ea8a549ed1bb817f51f38edfab47f5cb64ea0112
[platform/upstream/linaro-gcc.git] / gcc / ChangeLog
1 2018-08-23  Richard Earnshaw  <rearnsha@arm.com>
2
3         PR target/86951
4         * config/arm/arm-protos.h (arm_emit_speculation_barrier): New
5         prototype.
6         * config/arm/arm.c (speculation_barrier_libfunc): New static
7         variable.
8         (arm_init_libfuncs): Initialize it.
9         (arm_emit_speculation_barrier): New function.
10         * config/arm/arm.md (speculation_barrier): Call
11         arm_emit_speculation_barrier for architectures that do not have
12         DSB or ISB.
13         (speculation_barrier_insn): Only match on Armv7 or later.
14
15 2018-08-01  Richard Earnshaw  <rearnsha@arm.com>
16
17         * config/i386/i386.md (unspecv): Add UNSPECV_SPECULATION_BARRIER.
18         (speculation_barrier): New insn.
19
20 2018-07-31  Ian Lance Taylor  <iant@golang.org>
21
22         * targhooks.c (default_have_speculation_safe_value): Add
23         ATTRIBUTE_UNUSED.
24
25 2018-07-31  Richard Earnshaw  <rearnsha@arm.com>
26
27         * targhooks.h (speculation_safe_value_not_needed): New prototype.
28         * targhooks.c (speculation_safe_value_not_needed): New function.
29         * target.def (have_speculation_safe_value): Update documentation.
30         * doc/tm.texi: Regenerated.
31
32 2018-07-31  Richard Earnshaw  <rearnsha@arm.com>
33
34         * config/aarch64/iterators.md (ALLI_TI): New iterator.
35         * config/aarch64/aarch64.md (despeculate_copy<ALLI_TI:mode>): New
36         expand.
37         (despeculate_copy<ALLI:mode>_insn): New insn.
38         (despeculate_copyti_insn): New insn.
39         (despeculate_simple<ALLI:mode>): New insn
40         (despeculate_simpleti): New insn.
41         * config/aarch64/aarch64.c (aarch64_speculation_safe_value): New
42         function.
43         (TARGET_SPECULATION_SAFE_VALUE): Redefine to
44         aarch64_speculation_safe_value.
45         (aarch64_print_operand): Handle const0_rtx in modifier 'H'.
46
47 2018-07-31  Richard Earnshaw  <rearnsha@arm.com>
48
49         * config/aarch64/aarch64-speculation.cc: New file.
50         * config/aarch64/aarch64-passes.def (pass_track_speculation): Add
51         before pass_reorder_blocks.
52         * config/aarch64/aarch64-protos.h (make_pass_track_speculation): Add
53         prototype.
54         * config/aarch64/aarch64.c (aarch64_conditional_register_usage): Fix
55         X14 and X15 when tracking speculation.
56         * config/aarch64/aarch64.md (register name constants): Add
57         SPECULATION_TRACKER_REGNUM and SPECULATION_SCRATCH_REGNUM.
58         (unspec): Add UNSPEC_SPECULATION_TRACKER.
59         (speculation_barrier): New insn attribute.
60         (cmp<mode>): Allow SP in comparisons.
61         (speculation_tracker): New insn.
62         (speculation_barrier): Add speculation_barrier attribute.
63         * config/aarch64/t-aarch64: Add make rule for aarch64-speculation.o.
64         * config.gcc (aarch64*-*-*): Add aarch64-speculation.o to extra_objs.
65         * doc/invoke.texi (AArch64 Options): Document -mtrack-speculation.
66
67 2018-07-31  Richard Earnshaw  <rearnsha@arm.com>
68
69         * config/aarch64/aarch64.md (cb<optab><mode>1): Disable when
70         aarch64_track_speculation is true.
71         (tb<optab><mode>1): Likewise.
72         * config/aarch64/aarch64.c (aarch64_split_compare_regs): Do not
73         generate CB[N]Z when tracking speculation.
74         (aarch64_split_compare_and_swap): Likewise.
75         (aarch64_split_atomic_op): Likewise.
76
77 2018-07-31  Richard Earnshaw  <rearnsha@arm.com>
78
79         * config/aarch64/aarch64.opt (mtrack-speculation): New target option.
80
81 2018-07-31  Richard Earnshaw  <rearnsha@arm.com>
82
83         * config/aarch64.md (unspecv): Add UNSPECV_SPECULAION_BARRIER.
84         (speculation_barrier): New insn.
85
86 2018-07-31  Richard Earnshaw  <rearnsha@arm.com>
87
88         * config/arm/unspecs.md (unspecv): Add VUNSPEC_SPECULATION_BARRIER.
89         * config/arm/arm.md (speculation_barrier): New expand.
90         (speculation_barrier_insn): New pattern.
91
92 2018-07-31  Richard Earnshaw  <rearnsha@arm.com>
93
94         * builtin-types.def (BT_FN_PTR_PTR_VAR): New function type.
95         (BT_FN_I1_I1_VAR, BT_FN_I2_I2_VAR, BT_FN_I4_I4_VAR): Likewise.
96         (BT_FN_I8_I8_VAR, BT_FN_I16_I16_VAR): Likewise.
97         * builtin-attrs.def (ATTR_NOVOPS_NOTHROW_LEAF_LIST): New attribute
98         list.
99         * builtins.def (BUILT_IN_SPECULATION_SAFE_VALUE_N): New builtin.
100         (BUILT_IN_SPECULATION_SAFE_VALUE_PTR): New internal builtin.
101         (BUILT_IN_SPECULATION_SAFE_VALUE_1): Likewise.
102         (BUILT_IN_SPECULATION_SAFE_VALUE_2): Likewise.
103         (BUILT_IN_SPECULATION_SAFE_VALUE_4): Likewise.
104         (BUILT_IN_SPECULATION_SAFE_VALUE_8): Likewise.
105         (BUILT_IN_SPECULATION_SAFE_VALUE_16): Likewise.
106         * builtins.c (expand_speculation_safe_value): New function.
107         (expand_builtin): Call it.
108         * doc/cpp.texi: Document predefine __HAVE_SPECULATION_SAFE_VALUE.
109         * doc/extend.texi: Document __builtin_speculation_safe_value.
110         * doc/md.texi: Document "speculation_barrier" pattern.
111         * doc/tm.texi.in: Pull in TARGET_SPECULATION_SAFE_VALUE and
112         TARGET_HAVE_SPECULATION_SAFE_VALUE.
113         * doc/tm.texi: Regenerated.
114         * target.def (have_speculation_safe_value, speculation_safe_value): New
115         hooks.
116         * targhooks.c (default_have_speculation_safe_value): New function.
117         (default_speculation_safe_value): New function.
118         * targhooks.h (default_have_speculation_safe_value): Add prototype.
119         (default_speculation_safe_value): Add prototype.
120
121 2017-06-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
122
123         * config/aarch64/aarch64.c (aarch64_split_compare_and_swap):
124         Emit CBNZ inside loop when doing a strong exchange and comparing
125         against zero.  Generate the CC flags after the loop.
126
127 2017-02-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
128
129         PR rtl-optimization/68664
130         * config/arm/arm.c (arm_sched_can_speculate_insn):
131         New function.  Declare prototype.
132         (TARGET_SCHED_CAN_SPECULATE_INSN): Define.
133
134 2016-10-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
135
136         * config/aarch64/aarch64.c: Delete inclusion of
137         cortex-a57-fma-steering.h.
138         (aarch64_override_options): Delete call
139         to aarch64_register_fma_steering.
140         * config/aarch64/aarch64-protos.h (make_pass_fma_steering): Declare.
141         * config/aarch64/cortex-a57-fma-steering.h: Delete.
142         * config/aarch64/aarch64-passes.def: New file.
143         * config/aarch64/cortex-a57-fma-steering.c
144         (aarch64_register_fma_steering): Delete definition.
145         (make_pass_fma_steering): Remove static qualifier.
146         * config/aarch64/t-aarch64 (PASSES_EXTRA): New directive.
147         (cortex-a57-fma-steering.o): Remove dependency on
148         cortex-a57-fma-steering.h.
149
150 2017-07-06  Vyacheslav Barinov  <v.barinov@samsung.com>
151
152         * tree.def: Add STATEMENT_LIST_END tree code.
153         * tree.c: Add STATEMENT_LIST_END handling as TS_COMMON.
154         * gimplify.c (gimplify_expr): Use STATEMENT_LIST_END location to
155         provide right information for try_finally_expr.
156         * tree-eh.c (lower_try_finally_onedest): Set finally location
157         accordingly to location of last statement in cleanup.
158         * gimple.c (DEFTREECODE): handle STATEMENT_LIST_END as appropriate
159         GIMPLE_SINGLE_RHS.
160         * cp/constraint.cc (check_function_concept): Handle concept
161         definitions with STATEMENT_LIST_END.
162         * cp/error.c (dump_expr): Add STATEMENT_LIST_END support.
163         * fold-const.c (operand_equal_p): Add STATEMENT_LIST_END support.
164         * c-family/c-semantics.c (pop_stmt_list): Support single-statement
165         lists extraction with STATEMENT_LIST_END in the end.
166
167 2016-11-09  Maxim Ostapenko  <m.ostapenko@samsung.com>
168
169         * asan.h (asan_intercepted_p): Handle BUILT_IN_STRCSPN,
170         BUILT_IN_STRPBRK, BUILT_IN_STRSPN and BUILT_IN_STRSTR.
171
172 2016-11-09  Maxim Ostapenko  <m.ostapenko@samsung.com>
173
174         * asan.h (ASAN_STACK_MAGIC_PARTIAL): Remove.
175         * asan.c (ASAN_STACK_MAGIC_PARTIAL): Replace with
176         ASAN_STACK_MAGIC_MIDDLE.
177         (asan_global_struct): Increase the size of fields.
178         (asan_add_global): Add new field constructor.
179
180 2017-06-27  Jakub Jelinek  <jakub@redhat.com>
181
182         PR sanitizer/81209
183         * ubsan.c (ubsan_encode_value): Initialize DECL_CONTEXT on var.
184
185 2017-06-21  Jakub Jelinek  <jakub@redhat.com>
186
187         Backported from mainline
188         2017-06-20  Jakub Jelinek  <jakub@redhat.com>
189
190         PR sanitizer/81125
191         * ubsan.h (ubsan_encode_value): Workaround buggy clang++ parser
192         by removing enum keyword.
193         (ubsan_type_descriptor): Likewise.  Formatting fix.
194
195         2017-06-19  Jakub Jelinek  <jakub@redhat.com>
196
197         PR sanitizer/81125
198         * ubsan.h (enum ubsan_encode_value_phase): New.
199         (ubsan_encode_value): Change second argument to
200         enum ubsan_encode_value_phase with default value of
201         UBSAN_ENCODE_VALUE_GENERIC.
202         * ubsan.c (ubsan_encode_value): Change second argument to
203         enum ubsan_encode_value_phase PHASE from bool IN_EXPAND_P,
204         adjust uses, for UBSAN_ENCODE_VALUE_GENERIC use just
205         create_tmp_var_raw instead of create_tmp_var and use a
206         TARGET_EXPR.
207         (ubsan_expand_bounds_ifn, ubsan_build_overflow_builtin,
208         instrument_bool_enum_load, ubsan_instrument_float_cast): Adjust
209         ubsan_encode_value callers.
210
211         PR sanitizer/81111
212         * ubsan.c (ubsan_encode_value): If current_function_decl is NULL,
213         use create_tmp_var_raw instead of create_tmp_var, mark it addressable
214         just by setting TREE_ADDRESSABLE on the result and use a TARGET_EXPR.
215
216
217 2017-04-13  Denis Khalikov <d.khalikov@partner.samsung.com>
218
219         PR sanitizer/80414
220         * ubsan.c (ubsan_expand_bounds_ifn): Pass original index
221         to ubsan_encode_value.
222
223 2017-03-07  Jakub Jelinek  <jakub@redhat.com>
224
225         PR sanitizer/79897
226         * ubsan.c (ubsan_encode_value): Call mark_addressable on the
227         temporary.
228
229 2017-02-03  Carl Love  <cel@us.ibm.com>
230
231         Backport of two commits from mainline, r244943 and r244904,
232         dated 017-01-26 and 2017-01-25 respectively
233
234         * config/rs6000/rs6000-c (altivec_overloaded_builtins): Fix order
235         of entries for ALTIVEC_BUILTIN_VEC_PACKS.  Remove bogus entries
236         for P8V_BUILTIN_VEC_VGBBD.
237
238 2017-02-03  Walter Lee  <walt@tilera.com>
239
240         Backport from mainline
241         2017-02-03  Walter Lee  <walt@tilera.com>
242
243         PR target/78862
244         * config/tilegx/tilegx.md (tilegx_expand_prologue): Add blockage
245         after initial stackframe link reg save.
246         * config/tilepro/tilepro.md (tilepro_expand_prologue): Likewise.
247
248 2017-02-03  Maxim Ostapenko  <m.ostapenko@samsung.com>
249
250         PR lto/79061
251         * asan.c (asan_add_global): Force has_dynamic_init to zero in LTO mode.
252
253 2017-01-31  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
254
255         Backport from mainline
256         2017-01-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
257
258         PR target/79268
259         * config/rs6000/altivec.h (vec_xl): Revise #define.
260         (vec_xst): Likewise.
261
262 2017-01-26  Eric Botcazou  <ebotcazou@adacore.com>
263
264         Backport from mainline
265         2017-01-10  Eric Botcazou  <ebotcazou@adacore.com>
266
267         * expr.c (store_field): In the bitfield case, fetch the return value
268         from the registers before applying a single big-endian adjustment.
269         Always do a final load for a BLKmode value not larger than a word.
270
271         2017-01-09  Eric Botcazou  <ebotcazou@adacore.com>
272
273         * expr.c (store_field): In the bitfield case, if the value comes from
274         a function call and is of an aggregate type returned in registers, do
275         not modify the field mode; extract the value in all cases if the mode
276         is BLKmode and the size is not larger than a word.
277
278 2017-01-26  Richard Biener  <rguenther@suse.de>
279
280         * tree-vrp.c (vrp_visit_assignment_or_call): Use set_defs_to_varying.
281
282         Backport from mainline
283         2016-01-10  Richard Biener  <rguenther@suse.de>
284
285         PR tree-optimization/79034
286         * tree-call-cdce.c (shrink_wrap_one_built_in_call_with_conds):
287         Propagate out degenerate PHIs in the joiner.
288
289         2016-12-13  Richard Biener  <rguenther@suse.de>
290
291         PR middle-end/78742
292         * tree.c (cst_and_fits_in_hwi): Look if the actual value fits.
293         * tree-object-size.c (compute_builtin_object_size): Use
294         tree_fits_shwi_p.
295         * tree-data-ref.c (initialize_matrix_A): Remove excess assert.
296
297 2017-01-26  Richard Biener  <rguenther@suse.de>
298
299         Backport from mainline
300         2016-09-03  Kirill Yukhin  <kirill.yukhin@intel.com>
301
302         * ubsan.c (ubsan_use_new_style_p): Fix check for empty string.
303
304 2017-01-24  Eric Botcazou  <ebotcazou@adacore.com>
305
306         PR target/77439
307         * config/arm/arm.c (arm_function_ok_for_sibcall): Add back restriction
308         for long calls with APCS frame and VFP.
309
310 2017-01-24  Uros Bizjak  <ubizjak@gmail.com>
311
312         PR target/78478
313         Revert:
314         2013-11-05  Uros Bizjak  <ubizjak@gmail.com>
315
316         * config/i386/rtemself.h (LONG_DOUBLE_TYPE_SIZE): New define.
317
318 2017-01-23  Martin Liska  <mliska@suse.cz>
319
320         Backport from mainline
321         2017-01-20  Martin Liska  <mliska@suse.cz>
322
323         PR lto/69188
324         * tree-profile.c (init_ic_make_global_vars): Do not call
325         finalize_decl.
326         (gimple_init_gcov_profiler): Likewise.
327
328 2017-01-21  Gerald Pfeifer  <gerald@pfeifer.com>
329
330         Backport from mainline
331         2016-12-29  Gerald Pfeifer  <gerald@pfeifer.com>
332
333         * doc/extend.texi (Cilk Plus Builtins): cilkplus.org now uses
334         https by default.
335         * doc/passes.texi (Cilk Plus Transformation): Ditto.
336         * doc/generic.texi (Statements for C++): Ditto, and use @uref.
337
338 2017-01-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
339
340         Backport from mainline
341         2017-01-16  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
342
343         * config/rs6000/rs6000.c (rtx_is_swappable_p): Change
344         UNSPEC_VSX__XXSPLTD to require special splat handling.
345
346 2017-01-20  Wilco Dijkstra  <wdijkstr@arm.com>
347
348         Backport from mainline
349         PR target/77455
350         * config/aarch64/aarch64.md (eh_return): Remove pattern and splitter.
351         * config/aarch64/aarch64.h (AARCH64_EH_STACKADJ_REGNUM): Remove.
352         (EH_RETURN_HANDLER_RTX): New define.
353         * config/aarch64/aarch64.c (aarch64_frame_pointer_required):
354         Force frame pointer in EH return functions.
355         (aarch64_expand_epilogue): Add barrier for eh_return.
356         (aarch64_final_eh_return_addr): Remove.
357         (aarch64_eh_return_handler_rtx): New function.
358         * config/aarch64/aarch64-protos.h (aarch64_final_eh_return_addr):
359         Remove.
360         (aarch64_eh_return_handler_rtx): New prototype.
361
362 2017-01-20  Richard Earnshaw  <rearnsha@arm.com>
363
364         Backported from mainline
365         2017-01-19  Richard Earnshaw  <rearnsha@arm.com>
366
367         PR rtl-optimization/79121
368         * expr.c (expand_expr_real_2, case LSHIFT_EXPR): Look at the signedness
369         of the inner type when shifting an extended value.
370
371 2017-01-20  Martin Liska  <mliska@suse.cz>
372
373         Backport from mainline
374         2017-01-13  Martin Liska  <mliska@suse.cz>
375
376         PR ipa/79043
377         * function.c (set_cfun): Add new argument force.
378         * function.h (set_cfun): Likewise.
379         * ipa-inline-transform.c (inline_call): Use the function when
380         strict alising from is dropped for function we inline to.
381
382 2017-01-20  Martin Liska  <mliska@suse.cz>
383
384         Backport from mainline
385         2017-01-17  Martin Liska  <mliska@suse.cz>
386
387         PR ipa/71207
388         * ipa-polymorphic-call.c (contains_type_p): Fix wrong
389         assumption and add comment.
390
391 2017-01-19  Richard Biener  <rguenther@suse.de>
392
393         PR tree-optimization/72488
394         * tree-ssa-sccvn.c (run_scc_vn): When we abort the VN make
395         sure to restore SSA info.
396
397 2017-01-17  Jakub Jelinek  <jakub@redhat.com>
398
399         PR debug/78839
400         * dwarf2out.c (field_byte_offset): Restore the
401         PCC_BITFIELD_TYPE_MATTERS behavior for INTEGER_CST DECL_FIELD_OFFSET
402         and DECL_FIELD_BIT_OFFSET.  Use fold_build2 instead of build2 + fold.
403         (analyze_variants_discr, gen_variant_part): Use fold_build2 instead
404         of build2 + fold.
405
406 2017-01-17  Thomas Preud'homme  <thomas.preudhomme@arm.com>
407
408         Backport from mainline
409         2016-12-07  Thomas Preud'homme  <thomas.preudhomme@arm.com>
410
411         PR rtl-optimization/78617
412         * lra-remat.c (do_remat): Initialize live_hard_regs from live in
413         registers, also setting hard registers mapped to pseudo registers.
414
415 2017-01-13  Christophe Lyon  <christophe.lyon@linaro.org>
416
417         Backport from mainline r244320.
418         2017-01-11  Christophe Lyon  <christophe.lyon@linaro.org>
419
420         PR target/78253
421         * config/arm/arm.c (legitimize_pic_address): Handle reference to
422         weak symbol.
423         (arm_assemble_integer): Likewise.
424
425 2017-01-12  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
426
427         Backport from mainline
428         2017-01-12  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
429
430         PR target/79044
431         * config/rs6000/rs6000.c (insn_is_swappable_p): Mark
432         element-reversing loads and stores as not swappable.
433
434 2017-01-11  Uros Bizjak  <ubizjak@gmail.com>
435
436         * config/i386/i386.c (memory_address_length): Increase len
437         only when rip_relative_addr_p returns false.
438
439 2017-01-11  Maxim Ostapenko  <m.ostapenko@samsung.com>
440
441         Backport from mainline
442         2017-01-11  Maxim Ostapenko  <m.ostapenko@samsung.com>
443
444         PR lto/79042
445         * lto-cgraph.c (lto_output_varpool_node): Pack dynamically_initialized
446         bit.
447         (input_varpool_node): Unpack dynamically_initialized bit.
448         * lto-streamer.h (LTO_minor_version): Bump version.
449
450 2017-01-10  Michael Meissner  <meissner@linux.vnet.ibm.com>
451
452         Backport from mainline
453         2016-12-30  Michael Meissner  <meissner@linux.vnet.ibm.com>
454
455         PR target/78900
456         * config/rs6000/rs6000.c (rs6000_split_signbit): Change some
457         assertions.  Add support for doing the signbit if the IEEE 128-bit
458         floating point value is in a GPR.
459         * config/rs6000/rs6000.md (Fsignbit): Delete.
460         (signbit<mode>2_dm): Delete using <Fsignbit> and just use "wa".
461         Update the length attribute if the value is in a GPR.
462         (signbit<mode>2_dm_<su>ext): Add combiner pattern to eliminate
463         the sign or zero extension instruction, since the value is always
464         0/1.
465         (signbit<mode>2_dm2): Delete using <Fsignbit>.
466
467 2017-01-10  Martin Liska  <mliska@suse.cz>
468
469         Backport from mainline
470         2017-01-09  Martin Liska  <mliska@suse.cz>
471
472         PR pch/78970
473         * gcc.c (driver_handle_option): Handle OPT_E and set
474         have_E.
475         (lookup_compiler): Do not show error message with have_E.
476
477 2017-01-10  Martin Liska  <mliska@suse.cz>
478
479         Backport from mainline
480         2017-01-05  Martin Liska  <mliska@suse.cz>
481
482         PR pch/78970
483         * gcc.c (lookup_compiler): Reject '-' filename for a precompiled
484         header.
485
486 2017-01-10  Thomas Schwinge  <thomas@codesourcery.com>
487
488         PR tree-optimization/78024
489         * omp-low.c (oacc_loop_discovery): Call clear_bb_flags.
490
491         Backport trunk r239086:
492         2016-08-03  Nathan Sidwell  <nathan@codesourcery.com>
493
494         * config/nvptx/nvptx.c (nvptx_declare_function_name): Round frame
495         size to DImode boundary.
496         (nvptx_propagate): Likewise.
497
498 2017-01-10  Chung-Ju Wu  <jasonwucj@gmail.com>
499
500         Backport from mainline
501         2016-04-28  Segher Boessenkool  <segher@kernel.crashing.org>
502
503         PR target/70668
504         * config/nds32/nds32.md (casesi): Don't access the operands array
505         out of bounds.
506
507 2017-01-09  Andreas Tobler  <andreast@gcc.gnu.org>
508
509         Backport from mainline
510         2016-10-10  Andreas Tobler  <andreast@gcc.gnu.org>
511
512         * config.gcc: Add aarch64-*-freebsd* support.
513         * config.host: Likewise.
514         * config/aarch64/aarch64-freebsd.h: New file.
515         * config/aarch64/t-aarch64-freebsd: Ditto.
516
517 2017-01-09  Bill Seurer  <seurer@linux.vnet.ibm.com>
518
519         Backport from mainline
520         2016-12-21  Bill Seurer  <seurer@linux.vnet.ibm.com>
521
522         PR sanitizer/65479
523         * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
524         -fasynchronous-unwind-tables option when -fsanitize=address is
525         specified.
526
527 2017-01-09  Andreas Tobler  <andreast@gcc.gnu.org>
528
529         Backport from mainline
530         2016-09-19  Richard Biener  <rguenther@suse.de>
531
532         * dwarf2out.c (dwarf2out_late_global_decl): When being during the
533         early debug phase do not add locations but only const value
534         attributes.
535
536         Backport from mainline
537         2016-10-20  Richard Biener  <rguenther@suse.de>
538
539         * cgraphunit.c (analyze_functions): Set node->definition to
540         false to signal symbol removal to debug_hooks->late_global_decl.
541
542 2017-01-09  Andre Vieira <andre.simoesdiasvieira@arm.com>
543
544         Backport from mainline
545         2016-12-09  Andre Vieira <andre.simoesdiasvieira@arm.com>
546
547         PR rtl-optimization/78255
548         * gcc/postreload.c (reload_cse_simplify): Do not CSE a function if
549         NO_FUNCTION_CSE is true.
550
551 2017-01-06  Wilco Dijkstra  <wdijkstr@arm.com>
552
553         Backport from mainline
554         2016-10-25  Wilco Dijkstra  <wdijkstr@arm.com>
555
556         PR target/78041
557         * config/arm/neon.md (ashldi3_neon): Add "r 0 i" and "&r r i" variants.
558         Remove partial overlap check for shift by 1.
559         (ashldi3_neon): Likewise.
560
561 2017-01-05  Kelvin Nilsen  <kelvin@gcc.gnu.org>
562
563         Backport from mainline
564         2016-07-22  Kelvin Nilsen  <kelvin@gcc.gnu.org>
565
566         * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
567         comments to explain why certain error messages make mention of
568         undocumented options.
569         (rs6000_invalid_builtin): Change error messages to replace mention
570         of undocumented options with mention of the -mcpu=power9 option
571         that enables those undocumented options.
572         * config/rs6000/rs6000.h: Add macro definition of MASK_FLOAT128
573         and change the macro definition of RS6000_BTM_FLOAT128 to correct
574         an error that was discovered during the development of this patch.
575         * config/rs6000/rs6000.opt: Add the Undocumented qualifier to the
576         mpower9-fusion, mpower9-vector, mpower9-dform, and mmodulo entries.
577         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Modify
578         descriptions of built-in functions so that they depend on
579         -mcpu=power9 instead of on the corresponding undocumented flags.
580         * doc/invoke.texi (Option Summary):  Remove all mention of newly
581         undocumented flags.
582         (IBM RS/6000 and PowerPC Options): Likewise.
583         * doc/md.texi (Constraints for Particuliar Machines): Remove all
584         mention of newly undocumented flags.
585
586 2017-01-05  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
587
588         Backport from mainline
589         2016-12-22  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
590
591         * varasm.c (build_constant_desc): Use the alignment of the var
592         decl instead of the original expression.
593
594 2017-01-04  Richard Biener  <rguenther@suse.de>
595
596         Backport from mainline
597         2016-05-11  Richard Biener  <rguenther@suse.de>
598
599         PR tree-optimization/71055
600         * tree-ssa-sccvn.c (vn_reference_lookup_3): When native-interpreting
601         sth with precision not equal to access size verify we don't chop
602         off bits.
603
604 2017-01-03  Martin Liska  <mliska@suse.cz>
605
606         Backport from mainline
607         2016-12-21  Jakub Jelinek  <jakub@redhat.com>
608                     Martin Liska  <mliska@suse.cz>
609
610         PR driver/78863
611         * gcc.c (driver::build_option_suggestions): Do not add
612         -fsanitize=all as a suggestion candidate.
613
614 2017-01-03  Martin Liska  <mliska@suse.cz>
615
616         Backport from mainline
617         2016-12-22  Martin Liska  <mliska@suse.cz>
618
619         PR tree-optimization/78886
620         * tree-ssa-strlen.c (handle_builtin_malloc): Return when LHS
621         is equal to NULL.
622
623 2017-01-03  Martin Liska  <mliska@suse.cz>
624
625         Backport from mainline
626         2016-12-13  Martin Liska  <mliska@suse.cz>
627
628         PR tree-optimization/78428
629         * expr.c (store_constructor_field): Add new arguments to the
630         function.
631         (store_constructor): Set up bitregion_end and add
632         gcc_unreachable to fields that have either non-constant size
633         or (and) offset.
634
635 2016-12-27  Jakub Jelinek  <jakub@redhat.com>
636
637         PR translation/78922
638         * config/i386/stringop.opt: Remove.
639
640 2016-12-21  Jakub Jelinek  <jakub@redhat.com>
641
642         Backported from mainline
643         2016-12-13  Jakub Jelinek  <jakub@redhat.com>
644
645         PR ipa/77905
646         * ipa-pure-const.c (cdtor_p): Return true for
647         DECL_STATIC_{CON,DE}STRUCTOR even when it is
648         DECL_LOOPING_CONST_OR_PURE_P.
649
650 2016-12-21  Jakub Jelinek  <jakub@redhat.com>
651
652         * BASE-VER: Set to 6.3.1.
653
654 2016-12-21  Release Manager
655
656         * GCC 6.3.0 released.
657
658 2016-12-14  Uros Bizjak  <ubizjak@gmail.com>
659
660         PR target/59874
661         * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_CLZS
662         and IX86_BUILTIN_CTZS.
663         (bdesc_args): Add __builtin_clzs and __builtin_ctzs.
664         (ix86_fold_builtin): Handle IX86_BUILTIN_CTZS and IX86_BUILTIN_CLZS.
665
666 2016-12-14  Wilco Dijkstra  <wdijkstr@arm.com>
667             Jakub Jelinek  <jakub@redhat.com>
668
669         PR target/78796
670         * config/aarch64/aarch64.c (aarch64_classify_symbol): Merge large
671         model checks into switch.
672
673 2016-12-14  Thomas Preud'homme  <thomas.preudhomme@arm.com>
674
675         Backport from mainline
676         2016-11-25  Thomas Preud'homme  <thomas.preudhomme@arm.com>
677
678         * tree-ssa-math-opts.c (struct symbolic_number): Improve comment.
679
680 2016-12-14  Thomas Preud'homme  <thomas.preudhomme@arm.com>
681
682         Backport from mainline
683         2016-11-25  Thomas Preud'homme  <thomas.preudhomme@arm.com>
684
685         PR tree-optimization/77673
686         * tree-ssa-math-opts.c (struct symbolic_number): Add new src field.
687         (init_symbolic_number): Initialize src field from src parameter.
688         (perform_symbolic_merge): Select most dominated statement as the
689         source statement.  Set src field of resulting n structure from the
690         input src with the lowest address.
691         (find_bswap_or_nop): Rename source_stmt into ins_stmt.
692         (bswap_replace): Rename src_stmt into ins_stmt.  Initially get source
693         of load from src field rather than insertion statement.  Cancel
694         optimization if statement analyzed is not dominated by the insertion
695         statement.
696         (pass_optimize_bswap::execute): Rename src_stmt to ins_stmt.  Compute
697         dominance information.
698
699 2016-12-13  Michael Meissner  <meissner@linux.vnet.ibm.com>
700
701         Backport from mainline
702         2016-12-07  Michael Meissner  <meissner@linux.vnet.ibm.com>
703
704         PR target/72717
705         * config/rs6000/rs6000.c (rs6000_expand_vector_init): If the
706         V2DImode elements are SUBREG's convert the result into DImode
707         rather than failing in emit_move_insn.
708
709 2016-12-13  Iain Sandoe  <iain@codesourcery.com>
710
711         Backport from mainline
712         2016-12-11  Iain Sandoe  <iain@codesourcery.com>
713
714         PR rtl-optimization/71496
715         * config/rs6000/darwin.md (load_macho_picbase_si): Mark as non-
716         copyable.  (load_macho_picbase_di, reload_macho_picbase_si,
717         reload_macho_picbase_di): Likewise.
718
719 2016-12-12  Bernd Schmidt  <bschmidt@redhat.com>
720
721         Backport from mainline
722         2016-11-07  Bernd Schmidt  <bschmidt@redhat.com>
723
724         PR rtl-optimization/77309
725         * combine.c (make_compound_operation): Allow EQ for IN_CODE, and
726         don't assume an equality comparison for plain COMPARE.
727         (simplify_comparison): Pass a more accurate code to
728         make_compound_operation.
729
730 2016-12-12 Thomas Preud'homme <thomas.preudhomme@arm.com>
731
732         Backport from mainline
733         2016-11-22  Thomas Preud'homme  <thomas.preudhomme@arm.com>
734
735         PR target/77904
736         * config/arm/arm.c (thumb1_compute_save_reg_mask): Mark frame pointer
737         in save register mask if it is needed.
738
739 2016-12-11  Iain Sandoe  <iain@codesourcery.com>
740
741         Backport from mainline
742         2016-11-27  Iain Sandoe  <iain@codesourcery.com>
743                     Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
744
745         PR target/67710
746         * config.in: Regenerate
747         * config/darwin-driver.c (darwin_driver_init): Emit a version string
748         for the assembler.
749         * config/darwin.h(ASM_MMACOSX_VERSION_MIN_SPEC): New, new tests.
750         * config/darwin.opt(asm_macosx_version_min): New.
751         * config/i386/darwin.h: Handle ASM_MMACOSX_VERSION_MIN_SPEC.
752         * configure: Regenerate
753         * configure.ac: Check for mmacosx-version-min handling.
754
755 2016-12-11  Iain Sandoe  <iain@codesourcery.com>
756
757         Backport from mainline
758         2016-11-27  Iain Sandoe  <iain@codesourcery.com>
759
760         PR target/57438
761         * config/i386/i386.c (ix86_code_end): Note that we emitted code
762         where the function might otherwise appear empty for picbase thunks.
763         (ix86_output_function_epilogue): If we find a zero-sized function
764         assume that reaching it is UB and trap.  If we find a trailing label
765         append a nop.
766         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): If we
767         find a zero-sized function assume that reaching it is UB and trap.
768         If we find a trailing label, append a nop.
769
770 2016-12-11 Iain Sandoe  <iain@codesourcery.com>
771
772         Backport from mainline
773         2016-11-27  Iain Sandoe  <iain@codesourcery.com>
774
775         PR target/71767
776         * config/darwin-sections.def (picbase_thunk_section): New.
777         * config/darwin.c (darwin_init_sections): Set up picbase thunk
778         section. (darwin_rodata_section, darwin_objc2_section,
779         machopic_select_section, darwin_asm_declare_constant_name,
780         darwin_emit_weak_or_comdat, darwin_function_section): Don’t use
781         coalesced with newer linkers.
782         (darwin_override_options): Decide on usage of coalesed sections
783         on the basis of the target linker version.
784         * config/darwin.h (MIN_LD64_NO_COAL_SECTS): New.
785         * config/darwin.opt  (mtarget-linker): New.
786         * config/i386/i386.c (ix86_code_end): Do not force the thunks into
787         a coalesced section, instead use a thunks section.
788
789         Backport from mainline
790         2016-11-28  Iain Sandoe  <iain@codesourcery.com>
791
792         PR target/71767
793         * configure.ac (with_ld64): Use portable method to extract the
794         major part of the version number.
795         * configure: Regenerated.
796
797         Backport from mainline
798         2016-11-27  Iain Sandoe  <iain@codesourcery.com>
799
800         PR target/71767
801         * configure.ac (with-ld64): New var, set for Darwin, set on
802         detection of ld64, gcc_cv_ld64_export_dynamic: New, New test.
803         * config/darwin.h: Use LD64_HAS_DYNAMIC export. DEF_LD64: New,
804         define.
805         * config/darwin10.h(DEF_LD64): Update for this target version.
806         * config/darwin12.h(LINK_GCC_C_SEQUENCE_SPEC): Remove rdynamic
807         test.  (DEF_LD64): Update for this target version.
808         * configure: Regenerated.
809         * config.in: Regenerated.
810
811         Backport from mainline
812         2016-11-27  Iain Sandoe  <iain@codesourcery.com>
813
814         PR target/71767
815         * config/darwin.c (imachopic_indirection_name): Make data
816         section indirections linker-visible.
817         * config/darwin.h (ASM_GENERATE_INTERNAL_LABEL): Make local
818         constant labels linker-visible.
819
820 2016-12-09  Thomas Preud'homme  <thomas.preudhomme@arm.com>
821
822         Backport from mainline
823         2016-11-17  Thomas Preud'homme  <thomas.preudhomme@arm.com>
824
825         PR target/77933
826         * config/arm/arm.c (thumb1_expand_prologue): Distinguish between lr
827         being live in the function and lr needing to be saved.  Distinguish
828         between already saved pushable registers and registers to push.
829         Check for LR being an available pushable register.
830
831 2016-12-09  Nathan Sidwell  <nathan@acm.org>
832
833         PR C++/78550
834         * convert.c (convert_to_integer_1): Maybe fold conversions to
835         integral types with fewer bits than its mode.
836
837 2016-12-09  Richard Biener  <rguenther@suse.de>
838
839         Backport from mainline
840         2016-11-09  Richard Biener  <rguenther@suse.de>
841
842         * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
843         Look at the DR_BASE_ADDRESS object for forcing alignment.
844
845         2016-11-07  Richard Biener  <rguenther@suse.de>
846
847         PR tree-optimization/78189
848         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Fix
849         alignment computation.
850
851 2016-12-09  Richard Biener  <rguenther@suse.de>
852
853         Backport from mainline
854         2016-11-28  Richard Biener  <rguenther@suse.de>
855
856         PR tree-optimization/78542
857         * tree-ssa-ccp.c (evaluate_stmt): Only valueize simplification
858         if allowed.
859
860         2016-11-23  Richard Biener  <rguenther@suse.de>
861
862         PR tree-optimization/78482
863         * tree-cfgcleanup.c: Include tree-ssa-loop-niter.h.
864         (remove_forwarder_block_with_phi): When merging with a loop
865         header creates a new latch reset number of iteration information
866         of the loop.
867
868         2016-11-23  Richard Biener  <rguenther@suse.de>
869
870         PR middle-end/71762
871         * match.pd ((~X & Y) -> X < Y, (X & ~Y) -> Y < X,
872         (~X | Y) -> X <= Y, (X | ~Y) -> Y <= X): Remove.
873
874         2016-11-11  Richard Biener  <rguenther@suse.de>
875
876         PR tree-optimization/71575
877         * graphite-isl-ast-to-gimple.c (copy_cond_phi_nodes): Remove
878         bogus assert.
879
880         2016-11-07  Richard Biener  <rguenther@suse.de>
881
882         PR tree-optimization/78224
883         * tree-call-cdce.c (shrink_wrap_one_built_in_call_with_conds):
884         Split the fallthru edge in case its successor may have PHIs.
885
886         2016-11-05  David Edelsohn  <dje.gcc@gmail.com>
887                 Richard Biener  <rguenther@suse.de>
888
889         PR bootstrap/78188
890         PR c++/71848
891         * ipa-comdats.c (pass_ipa_comdats::gate): Require HAVE_COMDAT_GROUP.
892
893         2016-09-20  Richard Biener  <rguenther@suse.de>
894
895         PR tree-optimization/77646
896         * tree-ssa-sccvn.c (visit_reference_op_call): Always value-number
897         a VDEF.
898
899 2016-12-07  Segher Boessenkool  <segher@kernel.crashing.org>
900
901         Backport from mainline
902         2016-11-12  Segher Boessenkool  <segher@kernel.crashing.org>
903
904         PR target/77957
905         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Don't
906         return early if !optional_tbtab.
907
908 2016-12-07  Jakub Jelinek  <jakub@redhat.com>
909
910         Backported from mainline
911         2016-11-28  Jakub Jelinek  <jakub@redhat.com>
912
913         PR middle-end/78540
914         * rtl.h (remove_reg_equal_equiv_notes): Return bool instead of void.
915         * rtlanal.c (remove_reg_equal_equiv_notes): Return true if any
916         note has been removed.
917         * postreload.c (reload_combine_recognize_pattern): If
918         remove_reg_equal_equiv_notes returns true, call df_notes_rescan.
919
920         PR rtl-optimization/78546
921         * simplify-rtx.c (neg_const_int): When negating most negative
922         number in mode wider than HOST_BITS_PER_WIDE_INT, use
923         simplify_const_unary_operation to produce CONST_DOUBLE or
924         CONST_WIDE_INT.
925         (simplify_plus_minus): Hanlde the case where neg_const_int
926         doesn't return a CONST_INT.
927
928         PR fortran/78298
929         * tree-nested.c (convert_local_reference_stmt): After adding
930         shared (FRAME.NN) clause to omp parallel, task or target,
931         add it also to all outer omp parallel, task or target constructs.
932
933         2016-11-23  Jakub Jelinek  <jakub@redhat.com>
934
935         PR middle-end/69183
936         * omp-low.c (build_outer_var_ref): Change lastprivate argument
937         to code, pass it recursively, adjust uses.  For OMP_CLAUSE_PRIVATE
938         on worksharing constructs, treat it like clauses on simd construct.
939         Formatting fix.
940         (lower_rec_input_clauses): For OMP_CLAUSE_PRIVATE_OUTER_REF pass
941         OMP_CLAUSE_PRIVATE as last argument to build_outer_var_ref.
942         (lower_lastprivate_clauses): Pass OMP_CLAUSE_LASTPRIVATE instead
943         of true as last argument to build_outer_var_ref.
944
945         2016-11-22  Jakub Jelinek  <jakub@redhat.com>
946
947         PR middle-end/78416
948         * expmed.c (expand_divmod): Use wide_int for computation of
949         op1_is_pow2.  Don't set it if op1 is 0.  Formatting fixes.
950         Use size <= HOST_BITS_PER_WIDE_INT instead of
951         HOST_BITS_PER_WIDE_INT >= size.
952
953         2016-11-21  Jakub Jelinek  <jakub@redhat.com>
954
955         PR middle-end/67335
956         * omp-simd-clone.c (simd_clone_adjust_argument_types): Use NULL prefix
957         for tmp simd array if DECL_NAME (parm) is NULL.
958
959         2016-11-18  Jakub Jelinek  <jakub@redhat.com>
960
961         PR middle-end/78419
962         * multiple_target.c (get_attr_len): Start with argnum and increment
963         argnum on every arg.  Use strchr in a loop instead of counting commas
964         manually.
965         (get_attr_str): Increment argnum for every comma in the string.
966         (separate_attrs): Use for instead of while loop, simplify.
967         (expand_target_clones): Rename defenition argument to definition.
968         Free attrs and attr_str even when diagnosing errors.  Temporarily
969         change input_location around targetm.target_option.valid_attribute_p
970         calls.  Don't emit warning or errors if that function fails.
971
972         2016-11-16  Jakub Jelinek  <jakub@redhat.com>
973
974         PR rtl-optimization/78378
975         * combine.c (make_extraction): Use force_to_mode for non-{REG,MEM}
976         inner only if pos is 0.  Fix up formatting.
977
978         PR fortran/78299
979         * omp-low.c (expand_omp_for_static_nochunk): Don't assert
980         that loop->header == body_bb if broken_loop.
981
982         2016-11-07  Jakub Jelinek  <jakub@redhat.com>
983
984         PR target/77834
985         * dse.c (dse_step5): Call scan_reads even if just
986         insn_info->frame_read.  Improve and fix dump file messages.
987
988         PR target/78227
989         * config/i386/i386.c (ix86_expand_sse_cmp): Force dest into
990         cmp_mode argument even for -O0 if cmp_mode != mode and maskcmp.
991
992         2016-11-04  Jakub Jelinek  <jakub@redhat.com>
993
994         PR target/77834
995         * alias.c (nonoverlapping_memrefs_p): Return 0 if exprx or expry
996         doesn't have rtl set.
997
998         2016-10-29  Jakub Jelinek  <jakub@redhat.com>
999
1000         PR rtl-optimization/77919
1001         * expr.c (expand_expr_real_1) <normal_inner_ref>: Only avoid forcing
1002         into memory if both modes are complex and their inner modes have the
1003         same precision.  If the two modes are different complex modes, convert
1004         each part separately and generate a new CONCAT.
1005
1006         2016-10-28  Jakub Jelinek  <jakub@redhat.com>
1007
1008         PR rtl-optimization/77919
1009         * expr.c (expand_expr_real_1) <normal_inner_ref>: Force CONCAT into
1010         MEM if mode1 is not a complex mode.
1011
1012         2016-10-27  Jakub Jelinek  <jakub@redhat.com>
1013
1014         PR middle-end/78025
1015         * omp-simd-clone.c (simd_clone_adjust): Handle noreturn declare simd
1016         functions.
1017
1018         2016-10-26  Jakub Jelinek  <jakub@redhat.com>
1019                     Martin Liska  <mliska@suse.cz>
1020
1021         PR fortran/77973
1022         * gimplify.c (gimplify_adjust_omp_clauses_1): For all added map
1023         clauses with OMP_CLAUSE_SIZE being a decl, call omp_notice_variable
1024         on outer context if any.
1025
1026         2016-10-05  Jakub Jelinek  <jakub@redhat.com>
1027
1028         PR sanitizer/66343
1029         * ubsan.c (ubsan_ids): New GTY(()) array.
1030         (ubsan_type_descriptor, ubsan_create_data): Use ubsan_ids
1031         instead of static local counters.
1032
1033         2016-09-22  Jakub Jelinek  <jakub@redhat.com>
1034
1035         PR fortran/77665
1036         * tree-inline.c (remap_gimple_stmt): Set has_simduid_loops
1037         for all IFN_GOMP_SIMD_* internal fns, not just for
1038         IFN_GOMP_SIMD_ORDERED_*.
1039
1040         2016-09-20  Jakub Jelinek  <jakub@redhat.com>
1041
1042         PR middle-end/77624
1043         * builtins.c (fold_builtin_atomic_always_lock_free): Only look through
1044         cast to void * if the cast is from some other pointer type.
1045
1046         2016-09-19  Jakub Jelinek  <jakub@redhat.com>
1047                     Jan Hubicka  <jh@suse.cz>
1048
1049         PR target/77587
1050         * cgraph.c (cgraph_node::rtl_info): Pass &avail to
1051         ultimate_alias_target call, return NULL if avail < AVAIL_AVAILABLE.
1052         Call ultimate_alias_target just once, not up to 4 times.
1053
1054 2016-12-07  Thomas Preud'homme  <thomas.preudhomme@arm.com>
1055
1056         Backport from mainline
1057         2016-11-16  Thomas Preud'homme  <thomas.preudhomme@arm.com>
1058
1059         * config/arm/arm.md (arm_addsi3): Add alternative for addition of
1060         general register with general register or ARM constant into SP
1061         register.
1062
1063 2016-12-06  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1064
1065         Backport from mainline
1066         2016-12-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1067                     Stefan Freudenberger  <stefan@reservoir.com>
1068
1069         PR tree-optimization/78646
1070         * gimple-ssa-strength-reduction.c (replace_ref): The pointer
1071         addition used for the memory base expression should have the type
1072         of the candidate.
1073
1074 2016-12-06  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1075
1076         Backport from mainline
1077         2016-09-01  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1078                     Michael Meissner  <meissner@linux.vnet.ibm.com>
1079
1080         PR target/72827
1081         * config/rs6000/rs6000.c (rs6000_legitimize_address): Avoid
1082         reg+reg addressing for TImode.
1083         (rs6000_legitimate_address_p): Only allow register indirect
1084         addressing for TImode, even without TARGET_QUAD_MEMORY.
1085
1086 2016-12-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
1087
1088         Backport from mainline
1089         2016-12-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
1090
1091         * config/s390/s390-modes.def (CCVEQANY, CCVH, CCVHANY, CCVHU)
1092         (CCVHUANY): Remove modes.
1093         (CCVIH, CCVIHU, CCVIALL, CCVIANY, CCVFALL, CCVFANY): Add modes and
1094         documentation.
1095         * config/s390/s390.c (s390_match_ccmode_set): Rename cc modes.
1096         (s390_expand_vec_compare_scalar): Pick one of the cc consumer
1097         modes.
1098         (s390_branch_condition_mask): Adjust to use the new cc consumer
1099         modes.  The new modes allow for proper reversal in the middle-end.
1100         (s390_expand_vec_compare_cc): Determine the proper cc producer and
1101         consumer modes for a comparison.
1102         * config/s390/s390.md: Rename CCVH to CCVIH and CCVHU to CCVIHU
1103         throughout the file.
1104         * config/s390/vx-builtins.md: Likewise.
1105
1106 2016-12-01  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1107
1108         Backport from mainline
1109         2016-12-01  Alan Modra  <amodra@gmail.com>
1110
1111         * gcc/config/rs6000/rs6000.c (insn_is_swappable_p): Properly
1112         look inside UNSPEC_VSX_XXSPLTW vec.
1113
1114 2016-12-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
1115
1116         Back port from trunk
1117         2016-11-17  Michael Meissner  <meissner@linux.vnet.ibm.com>
1118
1119         PR target/78101
1120         * config/rs6000/predicates.md (fusion_addis_mem_combo_load): Add
1121         the appropriate checks for SFmode/DFmode load/stores in GPR
1122         registers.
1123         (fusion_addis_mem_combo_store): Likewise.
1124         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Rename
1125         fusion_fpr_* to fusion_vsx_* and add in support for ISA 3.0 scalar
1126         d-form instructions for traditional Altivec registers.
1127         (emit_fusion_p9_load): Likewise.
1128         (emit_fusion_p9_store): Likewise.
1129         * config/rs6000/rs6000.md (p9 fusion store peephole2): Remove
1130         early clobber from scratch register.  Do not match if the register
1131         being stored is the scratch register.
1132         (fusion_vsx_<P:mode>_<FPR_FUSION:mode>_load): Rename fusion_fpr_*
1133         to fusion_vsx_* and add in support for ISA 3.0 scalar d-form
1134         instructions for traditional Altivec registers.
1135         (fusion_fpr_<P:mode>_<FPR_FUSION:mode>_load): Likewise.
1136         (fusion_vsx_<P:mode>_<FPR_FUSION:mode>_store): Likewise.
1137         (fusion_fpr_<P:mode>_<FPR_FUSION:mode>_store): Likewise.
1138
1139 2016-12-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1140
1141         Backport from mainline
1142         2016-11-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1143
1144         PR target/48863
1145         PR inline-asm/70184
1146         * tree-ssa-ter.c (temp_expr_table): Add reg_vars_cnt field.
1147         (new_temp_expr_table): Initialise reg_vars_cnt.
1148         (free_temp_expr_table): Release reg_vars_cnt.
1149         (process_replaceable): Add reg_vars_cnt argument, set reg_vars_cnt
1150         field of TAB.
1151         (find_replaceable_in_bb): Use the above to record register variable
1152         write occurrences and cancel replacement across them.
1153
1154 2016-11-29  Kaz Kojima  <kkojima@gcc.gnu.org>
1155
1156         Backported from mainline
1157         2016-11-19  Kaz Kojima  <kkojima@gcc.gnu.org>
1158
1159         PR target/78426
1160         * config/sh/sh-mem.cc (sh_expand_cmpnstr): Use copy_to_mode_reg
1161         instead of force_reg.
1162         (sh_expand_setmem): Likewise.
1163
1164 2016-11-24  Eric Botcazou  <ebotcazou@adacore.com>
1165
1166         PR middle-end/78429
1167         * tree.h (wi::fits_to_boolean_p): New predicate.
1168         (wi::fits_to_tree_p): Use it for boolean types.
1169         * tree.c (int_fits_type_p): Likewise.
1170
1171 2016-11-24  Martin Liska  <mliska@suse.cz>
1172
1173         Backported from mainline
1174         2016-11-22  Martin Liska  <mliska@suse.cz>
1175
1176         PR ipa/78309
1177         * ipa-icf.c (void sem_item::set_hash): Update m_hash_set.
1178         (sem_function::get_hash): Use the new field.
1179         (sem_function::parse): Remove an argument from ctor.
1180         (sem_variable::parse): Likewise.
1181         (sem_variable::get_hash): Use the new field.
1182         (sem_item_optimizer::read_section): Use new ctor and set hash.
1183         * ipa-icf.h: _hash is removed from sem_item::sem_item,
1184         sem_variable::sem_variable, sem_function::sem_function.
1185
1186 2016-11-23  Uros Bizjak  <ubizjak@gmail.com>
1187
1188         * config/i386/i386.md (*<any_or:code>hi_1): Fix operand 2 constraints.
1189         (kxnor<mode>): Return "#" for alternative 0.
1190
1191 2016-11-23  Richard Biener  <rguenther@suse.de>
1192
1193         Backport from mainline
1194         2016-11-23  Richard Biener  <rguenther@suse.de>
1195
1196         PR lto/78472
1197         * tree.c (gimple_canonical_types_compatible_p): Ignore zero-sized
1198         fields.
1199
1200         2016-11-17  Richard Biener  <rguenther@suse.de>
1201
1202         PR middle-end/78305
1203         * fold-const.c (negate_expr_p): Fix multiplication case.
1204
1205         2016-11-16  Richard Biener  <rguenther@suse.de>
1206
1207         PR middle-end/78333
1208         * gimplify.c (gimplify_function_tree): Do not instrument
1209         GNU extern inline functions.
1210
1211         2016-11-07  Richard Biener  <rguenther@suse.de>
1212
1213         PR tree-optimization/78228
1214         * tree-ssa-phiopt.c (abs_replacement): Avoid introducing
1215         undefined behavior.
1216
1217         2016-11-04  Richard Biener  <rguenther@suse.de>
1218
1219         PR middle-end/78185
1220         * loop-invariant.c (find_exits): Record entering inner
1221         loops as possibly exiting to handle infinite sub-loops.
1222         * tree-ssa-loop-im.c: Include tree-ssa-loop-niter.h.
1223         (fill_always_executed_in_1): Honor infinite child loops.
1224
1225         2016-10-06  Richard Biener  <rguenther@suse.de>
1226
1227         PR tree-optimization/77855
1228         * tree-ssa-pre.c (prune_clobbered_mems): Queue exprs to remove
1229         instead of removing the current item while iterating over the set
1230         which is not safe.
1231
1232 2016-11-22  Walter Lee  <walt@tilera.com>
1233
1234         Backport from mainline
1235         2016-11-22  Walter Lee  <walt@tilera.com>
1236
1237         * config/tilegx/tilegx.md (trap): New pattern.
1238         * config/tilepro/tilepro.md (trap): Likewise.
1239
1240 2016-11-22  Walter Lee  <walt@tilera.com>
1241
1242         Backport from mainline
1243         2016-11-22  Walter Lee  <walt@tilera.com>
1244
1245         * config/tilegx/tilegx.md (*zero_extract): Use
1246         define_insn_and_split instead of define_insn; Handle pos + size >
1247         64.
1248         (*sign_extract): Likewise.
1249
1250 2016-11-22  Uros Bizjak  <ubizjak@gmail.com>
1251
1252         * Makefile.in ($(lang_checks_parallelized)): Fix detection
1253         of -j argument.
1254
1255 2016-11-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1256
1257         Backport from mainline
1258         2016-11-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1259
1260         PR target/77822
1261         * config/aarch64/aarch64.md (*tb<optab><mode>1): Use
1262         aarch64_simd_shift_imm_<mode> predicate for operand 1.
1263         (<optab>, ANY_EXTRACT): Use tighter predicates on operands 2 and 3
1264         to restrict them to an appropriate range and add FAIL check if the
1265         region they specify is out of range.  Delete useless constraint
1266         strings.
1267         (*<optab><mode>, ANY_EXTRACT): Add appropriate predicates on operands
1268         2 and 3 to restrict their range and add pattern predicate.
1269
1270 2016-11-18  Walter Lee  <walt@tilera.com>
1271
1272         Backport from mainline
1273         2016-11-18  Walter Lee  <walt@tilera.com>
1274
1275         * config/tilegx/tilegx.c (tilegx_gen_bundles): Preserve
1276           end-of-bundle marker for consecutive barriers.
1277
1278 2016-11-18  Walter Lee  <walt@tilera.com>
1279
1280         Backport from mainline
1281         2016-11-18  Walter Lee  <walt@tilera.com>
1282
1283         * config/tilegx/tilegx.md (clzsi2): Fix for big-endian.
1284
1285 2016-11-15  Matthias Klose  <doko@ubuntu.com>
1286
1287         * doc/install.texi: Move the 'Overriding configure test results'
1288         subsub section to the 'Cross-Compiler-Specific Options' sub section.
1289
1290 2016-11-13  Eric Botcazou  <ebotcazou@adacore.com>
1291
1292         * ipa-icf.c (sem_function::merge): Do not create a wrapper also if the
1293         original function needs a static chain.
1294
1295 2016-11-11  Uros Bizjak  <ubizjak@gmail.com>
1296
1297         PR target/78310
1298         * config/i386/i386.md (rotate to rotatex splitter): Avoid overflow
1299         when calculating operand 2.
1300         (rotate to rotatex zext splitter): Ditto.
1301
1302 2016-11-11  Dominik Vogt  <vogt@linux.vnet.ibm.com>
1303
1304         PR target/77822
1305         * config/s390/s390.md ("extzv", "*extzv<mode>_zEC12")
1306         ("*extzv<mode>_z10"): Check validity of zero_extend arguments.
1307
1308 2016-11-09  Uros Bizjak  <ubizjak@gmail.com>
1309
1310         PR target/78262
1311         * config/i386/i386.md (*<shift_insn><mode>3_doubleword): Mark
1312         operand 0 as earlyclobber.
1313         (*ashl<mode>3_doubleword): Ditto for all operand 0 alternatives.
1314
1315 2016-11-07  Peter Bergner  <bergner@vnet.ibm.com>
1316
1317         Backport from trunk
1318         2016-11-07  Peter Bergner  <bergner@vnet.ibm.com>
1319
1320         * config.gcc (powerpc*-*-*, rs6000*-*-*): Remove setting of
1321         INCLUDE_EXTRA_SPEC for Advance Toolchain builds.
1322
1323 2016-11-06  Jack Howarth  <howarth.at.gcc@gmail.com>
1324
1325         PR driver/78206
1326         * incpath.c: (remove_dup(): Also silently ignore EPERM.
1327
1328 2016-11-07  Richard Biener  <rguenther@suse.de>
1329
1330         PR target/78229
1331         * config/i386/i386.c (ix86_gimple_fold_builtin): Do not adjust
1332         EH info.
1333
1334 2016-11-03  Martin Liska  <mliska@suse.cz>
1335
1336         Backport from mainline
1337         2016-08-12  Martin Liska  <mliska@suse.cz>
1338         Adam Fineman  <afineman@afineman.com>
1339
1340         * gcov.c (process_file): Create .gcov file when .gcda
1341         file is missing.
1342
1343 2016-11-03  Richard Biener  <rguenther@suse.de>
1344
1345         Backport from mainline
1346         2016-09-29  Richard Biener  <rguenther@suse.de>
1347
1348         PR tree-optimization/77768
1349         * tree-ssa-sccvn.c (visit_reference_op_store): Properly deal
1350         with stores to a place we know has a constant value.
1351         * tree-vrp.c (set_defs_to_varying): New helper avoiding
1352         writing to vr_const_varying.
1353         (vrp_initialize): Call it.
1354         (vrp_visit_stmt): Likewise.
1355         (evrp_dom_walker::before_dom_children): Likewise.
1356         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
1357         Handle stores to readonly memory when removing redundant stores.
1358
1359 2016-11-03  Eric Botcazou  <ebotcazou@adacore.com>
1360
1361         Backport from mainline
1362         2016-10-17  Eric Botcazou  <ebotcazou@adacore.com>
1363
1364         * explow.c (validize_mem): Do not modify the argument in-place.
1365
1366 2016-11-02  Will Schmidt  <will_schmidt@vnet.ibm.com>
1367
1368         Backport from trunk
1369         2016-10-26  Will Schmidt <will_schmidt@vnet.ibm.com>
1370
1371         PR middle-end/72747
1372         * gimplify.c (gimplify_init_constructor): Move emit of constructor
1373         assignment to earlier in the if/else logic.
1374
1375 2016-11-02  Richard Biener  <rguenther@suse.de>
1376
1377         Backport from mainline
1378         2016-11-02  Richard Biener  <rguenther@suse.de>
1379
1380         PR tree-optimization/78047
1381         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Initialize
1382         fake field at offset zero conservatively regarding to may_have_pointers.
1383
1384         2016-10-07  Richard Biener  <rguenther@suse.de>
1385
1386         PR tree-optimization/77879
1387         * tree-ssa-structalias.c (handle_const_call): Properly handle
1388         NRV return slots.
1389         (handle_pure_call): Likewise.
1390
1391         2016-10-06  Richard Biener  <rguenther@suse.de>
1392
1393         PR tree-optimization/77839
1394         * tree-ssa-sccvn.c (set_ssa_val_to): Forbid value -> constant value
1395         lattice transition.
1396
1397         2016-09-27  Richard Biener  <rguenther@suse.de>
1398
1399         PR tree-optimization/77745
1400         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
1401         When removing redundant stores make sure to check compatibility
1402         of the TBAA state for downstream accesses.
1403         * tree-ssa-sccvn.c (visit_reference_op_store): Likewise for when
1404         value-numbering virtual operands for store matches.
1405
1406         2016-09-21  Richard Biener  <rguenther@suse.de>
1407
1408         PR tree-optimization/77648
1409         * tree-ssa-structalias.c (process_constraint): Handle all DEREF
1410         with complex RHS.
1411         (make_transitive_closure_constraints): Adjust comment.
1412         (make_any_offset_constraints): New function.
1413         (handle_rhs_call): Make sure to first expand a pointer to all
1414         subfields before transitively closing it.
1415         (handle_const_call): Likewise.  Properly expand returned
1416         pointers as well.
1417         (handle_pure_call): Likewise.
1418
1419 2016-11-01  John David Anglin  <danglin@gcc.gnu.org>
1420
1421         PR target/78166
1422         * config/pa/pa.md: Add new shift/add patterns to handle
1423         (plus (mult (reg) (mem_shadd_operand)) (reg)) source operand.
1424
1425 2016-11-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1426
1427         Backport from mainline
1428         2016-10-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1429
1430         PR rtl-optimization/78038
1431         * ree.c (get_defs): Return NULL if a defining insn for REG cannot
1432         be deduced to set REG through the RTL structure.
1433         (make_defs_and_copies_lists): Return false on a failing get_defs call.
1434
1435 2016-10-29  John David Anglin  <danglin@gcc.gnu.org>
1436
1437         * config/pa/pa.h (BIGGEST_ALIGNMENT): Adjust comment.
1438         (MALLOC_ABI_ALIGNMENT): Define.
1439
1440 2016-10-28  Richard Biener  <rguenther@suse.de>
1441
1442         PR middle-end/78128
1443         PR middle-end/71002
1444         * fold-const.c (make_bit_field_ref): Only adjust alias set
1445         when the original alias set was zero.
1446
1447 2016-10-26  Uros Bizjak  <ubizjak@gmail.com>
1448
1449         Backport from mainline
1450         2016-10-21  Jakub Jelinek  <jakub@redhat.com>
1451
1452         PR target/78057
1453         * config/i386/i386.c: Include fold-const-call.h, tree-vrp.h
1454         and tree-ssanames.h.
1455         (ix86_fold_builtin): Fold IX86_BUILTIN_[LT]ZCNT{16,32,64}
1456         with INTEGER_CST argument.
1457         (ix86_gimple_fold_builtin): New function.
1458         (TARGET_GIMPLE_FOLD_BUILTIN): Define.
1459
1460         Backport from mainline
1461         2016-10-20 Uros Bizjak  <ubizjak@gmail.com>
1462
1463         PR target/78037
1464         * config/i386/bmiintrin.h (__tzcnt_u16): Call __builtin_ia32_tzcnt_u16.
1465         (__tzcnt_u32, _tzcnt_u32): Call __builtin_ia32_tzcnt_u32.
1466         (__tzcnt_u64, _tzcnt_u64): Call __builtin_ia32_tzcnt_u64.
1467         * config/i386/lzcntintrin.h (__lzcnt_u16): Call
1468         __builtin_ia32_lzcnt_u16.
1469         (__lzcnt_u32, _lzcnt_u32): Call __builtin_ia32_lzcnt_u32.
1470         (__lzcnt_u64, _lzcnt_u64): Call __builtin_ia32_lzcnt_u64.
1471         * config/i386/i386.md (UNSPEC_LZCNT, UNSPEC_TZCNT): New unspecs.
1472         (ctz<mode>2, *ctz<mode>2): Use SWI48 mode iterator.
1473         (bmi_tzcnt_<mode>): New expander.
1474         (*bmi_tzcnt_<mode>_falsedep_1): New define_insn_and_split pattern.
1475         (*bmi_tzcnt_<mode>_falsedep, *bmi_tzcnt_<mode>): New insn patterns.
1476         (clz<mode>2_lzcnt, *clz<mode>2_lzcnt): Use SWI48 mode iterator.
1477         (lzcnt_<mode>): New expander.
1478         (*lzcnt_<mode>_falsedep_1): New define_insn_and_split pattern.
1479         (*lzcnt_<mode>_falsedep, *lzcnt_<mode>): New insn patterns.
1480         * config/i386/i386-builtin-types.def (UINT_FTYPE_UINT): New.
1481         (UINT64_FTYPE_UINT64): New.
1482         * config/i386/i386-builtin.def (__builtin_clzs): Remove description.
1483         (__builtin_ia32_lzcnt_u16): New description.
1484         (__builtin_ia32_lzcnt_u32): Ditto.
1485         (__builtin_ia32_lzcnt_u64): Ditto.
1486         (__builtin_ctzs): Remove description.
1487         (__builtin_ia32_tzcnt_u16): New description.
1488         (__builtin_ia32_tzcnt_u32): Ditto.
1489         (__builtin_ia32_tzcnt_u64): Ditto.
1490         * config/i386/i386.c (ix86_expand_args_builtin): Handle
1491         UINT_FTYPE_UINT and UINT64_FTYPE_UINT64.
1492
1493 2016-10-25  Eric Botcazou  <ebotcazou@adacore.com>
1494
1495         * tree.h (wi::fits_to_tree_p): Accept only 0 and 1 for boolean types.
1496         * tree.c (int_fits_type_p): Likewise.  Adjust head comment.
1497
1498 2016-10-24  Bernd Edlinger  <bernd.edlinger@hotmail.de>
1499
1500         Backport from mainline
1501         2016-09-21  Bernd Edlinger  <bernd.edlinger@hotmail.de>
1502
1503         PR tree-optimization/77550
1504         * tree-vect-stmts.c (create_array_ref): Change parameters.
1505         (get_group_alias_ptr_type): New function.
1506         (vectorizable_store, vectorizable_load): Use get_group_alias_ptr_type.
1507
1508 2016-10-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1509
1510         Backport from mainline
1511         2016-10-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1512
1513         PR tree-optimization/77916
1514         * gimple-ssa-strength-reduction.c (create_add_on_incoming_edge):
1515         Don't allow a MINUS_EXPR for pointer arithmetic for either known
1516         or unknown strides.
1517         (record_increment): Increments of -1 for unknown strides just use
1518         a multiply initializer like other negative values.
1519         (analyze_increments): Remove stopgap solution for -1 increment
1520         applied to pointer arithmetic.
1521         (insert_initializers): Requirement of initializer for -1 should be
1522         based on pointer-typedness of the candidate basis.
1523
1524 2016-10-23  Eric Botcazou  <ebotcazou@adacore.com>
1525
1526         * config/sparc/sparc.md (cpu_feature): Minor tweak.
1527         (enabled): Likewise.
1528         (movsi_insn, movdi_insn_sp32, movdi_insn_sp64, movsf_insn,
1529         movdf_insn_sp32, movdf_insn_sp64, zero_extendsidi2_insn_sp64,
1530         sign_extendsidi2_insn, mov<VM32:mode>_insn, mov<VM64:mode>_insn_sp64,
1531         mov<VM64:mode>_insn_sp32, not_<code><mode>, nand<mode>_vis,
1532         <code>_not1<mode>_vi, <code>_not2<mode>_vis, one_cmpl<mode>2,
1533         fcmp<code><GCM:gcm_name>, pdistn<mode>_vis): Likewise.
1534
1535 2016-10-23  Eric Botcazou  <ebotcazou@adacore.com>
1536
1537         * config/sparc/sparc-c.c (sparc_target_macros): Replace TARGET_64BIT
1538         with TARGET_ARCH64.  Define __VIS to 0x400 if TARGET_VIS4.
1539
1540 2016-10-19  Uros Bizjak  <ubizjak@gmail.com>
1541
1542         PR target/77991
1543         * config/i386/i386.c (legitimize_tls_address)
1544         <case TLS_MODEL_INITIAL_EXEC>: For TARGET_64BIT || TARGET_ANY_GNU_TLS
1545         convert dest to Pmode if different than Pmode.
1546
1547 2016-10-18  Kugan Vivekanandarajah  <kuganv@linaro.org>
1548
1549         Backport from mainline
1550         2016-10-11  Kugan Vivekanandarajah  <kuganv@linaro.org>
1551
1552         * tree-vrp.c (vrp_intersect_ranges_1): Allocate bitmap before
1553         copying.
1554
1555 2016-10-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1556
1557         Backport from mainline
1558         2016-10-12  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1559
1560         PR tree-optimization/77937
1561         * gimple-ssa-strength-reduction.c (analyze_increments): Use
1562         POINTER_TYPE_P on the candidate type to determine whether
1563         candidates in this chain require pointer arithmetic.
1564
1565         2016-10-13  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1566
1567         PR tree-optimization/77937
1568         * gimple-ssa-strength-reduction.c (analyze_increments): Set cost
1569         to infinite when we have a pointer with an increment of -1.
1570
1571 2016-10-17  Martin Liska  <mliska@suse.cz>
1572
1573         Backported from mainline
1574         2016-10-13  Martin Liska  <mliska@suse.cz>
1575
1576         PR tree-optimization/77943
1577         * tree-ssa-tail-merge.c (merge_stmts_p): Do not merge BBs with
1578         a different EH landing pads.
1579
1580 2016-10-17  Eric Botcazou  <ebotcazou@adacore.com>
1581
1582         PR bootstrap/77995
1583         Backport from mainline
1584         2016-10-11  Eric Botcazou  <ebotcazou@adacore.com>
1585
1586         * tree.h (build_complex_type): Add second parameter with default.
1587         * tree.c (build_complex_type): Add NAMED second parameter and adjust
1588         recursive call.  Create a TYPE_DECL only if NAMED is true.
1589         (build_common_tree_nodes): Pass true in calls to build_complex_type.
1590
1591 2016-10-16  Eric Botcazou  <ebotcazou@adacore.com>
1592
1593         * config/sparc/sparc.c (sparc_expand_vector_init): Only accept literal
1594         constants in CONST_VECTORs.
1595
1596 2016-10-15  Eric Botcazou  <ebotcazou@adacore.com>
1597
1598         * config/sparc/sparc.c (sparc_expand_vec_perm_bmask): Use a scratch
1599         register as destination of bmask.
1600         (vector_init_bshuffle): Likewise.
1601         * config/sparc/sparc.md (vec_perm_constv8qi): Likewise.
1602         (bmaskdi_vis): Enable only in 64-bit mode.
1603
1604 2016-10-13  Andrew Senkevich  <andrew.senkevich@intel.com>
1605
1606         Backport from trunk
1607         * common/config/i386/i386-common.c (OPTION_MASK_ISA_PCOMMIT_UNSET,
1608         OPTION_MASK_ISA_PCOMMIT_SET): Deleted definitions.
1609         (ix86_handle_option): Deleted handle of OPT_mpcommit.
1610         * config.gcc: Deleted pcommitintrin.h
1611         * config/i386/pcommitintrin.h: Deleted file.
1612         * config/i386/cpuid.h (bit_PCOMMIT): Deleted.
1613         * config/i386/driver-i386.c (host_detect_local_cpu): Deleted pcommit
1614         detection.
1615         * config/i386/i386-c.c (ix86_target_macros_internal): Deleted define
1616         __PCOMMIT__.
1617         * config/i386/i386.c (ix86_target_string): Deleted -mpcommit.
1618         (PTA_PCOMMIT, IX86_BUILTIN_PCOMMIT, __builtin_ia32_pcommit): Deleted.
1619         (ix86_option_override_internal): Deleted handle of option.
1620         (ix86_valid_target_attribute_inner_p): Deleted pcommit.
1621         * config/i386/i386.h (TARGET_PCOMMIT, TARGET_PCOMMIT_P): Deleted.
1622         * config/i386/i386.md (unspecv): Deleted UNSPECV_PCOMMIT.
1623         (pcommit): Deleted instruction.
1624         * config/i386/i386.opt: Mention -mpcommit deprecation.
1625         * config/i386/x86intrin.h: Deleted inclusion of pcommitintrin.h.
1626
1627 2016-10-13  Tom de Vries  <tom@codesourcery.com>
1628
1629         revert:
1630         2016-10-11  Tom de Vries  <tom@codesourcery.com>
1631
1632         backport from trunk:
1633         2016-10-11  Tom de Vries  <tom@codesourcery.com>
1634
1635         PR middle-end/77558
1636         * builtins.c (std_canonical_va_list_type): Remove RECORD_TYPE
1637         special-casing.
1638
1639 2016-10-11  Tom de Vries  <tom@codesourcery.com>
1640
1641         backport from trunk:
1642         2016-10-11  Tom de Vries  <tom@codesourcery.com>
1643
1644         PR middle-end/77558
1645         * builtins.c (std_canonical_va_list_type): Remove RECORD_TYPE
1646         special-casing.
1647
1648 2016-10-10  Georg-Johann Lay  <avr@gjlay.de>
1649
1650         * config/avr/gen-avr-mmcu-texi.c (string.h): Include.
1651
1652 2016-10-06  Uros Bizjak  <ubizjak@gmail.com>
1653
1654         PR target/77874
1655         * config/i386/sse.md (<mask_codefor><code><mode>3<mask_name>):
1656         Remove wrong assert.
1657         (<floatsuffix>float<sseintvecmodelower><mode>2<mask_name><round_name>:
1658         Use <round_constraint> as operand 1 constraint.
1659
1660 2016-10-06  James Clarke  <jrtc27@jrtc27.com>
1661             Eric Botcazou  <ebotcazou@adacore.com>
1662
1663         PR target/77759
1664         * config/sparc/sparc.c (classify_data_t): Remove int_regs field.
1665         (classify_registers): Don't set it
1666         (function_arg_slotno): Don't initialize and test it.  Tidy up.
1667
1668 2016-10-04  Uros Bizjak  <ubizjak@gmail.com>
1669
1670         Backport from mainline
1671         2016-09-29  Uros Bizjak  <ubizjak@gmail.com>
1672
1673         * config/i386/driver-i386.c (host_detect_local_cpu): Check maximum
1674         ext_level before calling CPUID with 0x80000008.
1675
1676         2016-09-29  Uros Bizjak  <ubizjak@gmail.com>
1677
1678         PR target/77756
1679         * config/i386/cpuid.h (__get_cpuid_count): New.
1680         (__get_cpuid): Rename __level to __leaf.
1681
1682 2016-09-30  Michael Meissner  <meissner@linux.vnet.ibm.com>
1683
1684         Back port from trunk
1685
1686         2016-09-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
1687
1688         PR target/77670
1689         * config/rs6000/predicates.md (invert_fpmask_comparison_operator):
1690         New predicate that matches the ISA 3.0 XSCMP{EQ,GT,GE}DP
1691         instructions when you want to invert the test.
1692         * config/rs6000/rs6000.md (fpmask<mode>): Use the arguments in the
1693         correct order for XXSEL.
1694         (mov<SFDF:mode><SFDF2:mode>cc_invert_p9): Define the inverted test
1695         for using XSCMP{EQ,GT,GE}DP.
1696
1697 2016-09-28  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1698             Alan Modra  <amodra@gmail.com>
1699
1700         Backport from mainline
1701         2016-07-01  Alan Modra  <amodra@gmail.com>
1702
1703         PR rtl-optimization/71709
1704         * ira-lives.c (find_call_crossed_cheap_reg): Exit loop on arg reg
1705         being set, not referenced.
1706
1707 2016-09-27  David Edelsohn  <dje.gcc@gmail.com>
1708
1709         Backport from mainline
1710         2016-09-27  David Edelsohn  <dje.gcc@gmail.com>
1711
1712         * config/rs6000/rs6000.c (rs6000_output_symbol): Don't modify
1713         VAR_DECL string.
1714
1715         2016-09-24  David Edelsohn  <dje.gcc@gmail.com>
1716
1717         * configure.ac (gcc_cv_as_aix_dwloc): Fix typo in assembly fragment.
1718         * configure: Regenerate.
1719
1720 2016-09-27  Richard Biener  <rguenther@suse.de>
1721
1722         Backport from mainline
1723         2016-09-01  Richard Biener  <rguenther@suse.de>
1724
1725         PR middle-end/77436
1726         * tree-chrec.c (tree_fold_binomial): Use widest_int, properly
1727         check whether the result fits the desired result type.
1728
1729         2016-09-19  Richard Biener  <rguenther@suse.de>
1730
1731         PR tree-optimization/77514
1732         * tree-ssa-pre.c (create_expression_by_pieces): Optimize
1733         search for folded stmt.
1734
1735         2016-09-15  Richard Biener  <rguenther@suse.de>
1736
1737         PR tree-optimization/77514
1738         * tree-ssa-pre.c (create_expression_by_pieces): Handle garbage
1739         only forced_stmts sequence.
1740
1741         2016-09-15  Richard Biener  <rguenther@suse.de>
1742
1743         PR middle-end/77544
1744         * fold-const.c (split_tree): Do not split constant ~X.
1745
1746         2016-09-19  Richard Biener  <rguenther@suse.de>
1747
1748         PR middle-end/77605
1749         * tree-data-ref.c (analyze_subscript_affine_affine): Use the
1750         proper niter to bound the loops.
1751
1752         2016-09-22  Richard Biener  <rguenther@suse.de>
1753
1754         PR middle-end/77679
1755         * gimple-fold.c (fold_array_ctor_reference): Turn asserts into
1756         fold fails.
1757
1758 2016-09-25  Uros Bizjak  <ubizjak@gmail.com>
1759
1760         Backport from mainline
1761         2016-09-21  Richard Biener  <rguenther@suse.de>
1762                     Jakub Jelinek  <jakub@redhat.com>
1763
1764         PR tree-optimization/77621
1765         * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Split
1766         group at non-vectorizable stmts.
1767
1768         Backport from mainline
1769         2016-09-20  Uros Bizjak  <ubizjak@gmail.com>
1770
1771         PR target/77621
1772         * config/i386/i386.c (ix86_preferred_simd_mode) <case DFmode>:
1773         Don't return word_mode for !TARGET_VECTORIZE_DOUBLE.
1774         (ix86_add_stmt_cost): Penalize DFmode vector operations
1775         for !TARGET_VECTORIZE_DOUBLE.
1776
1777 2016-09-22  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
1778
1779         Backport from 2016-09-22 trunk r240388.
1780
1781         * config/avr/avr.c (avr_rtx_costs_1): Handle DImode MULT.
1782         (avr_address_cost): Replace 61 with MAX_LD_OFFSET(mode).
1783
1784 2016-09-21  Segher Boessenkool  <segher@kernel.crashing.org>
1785
1786         * doc/rtl.texi (JUMP_LABEL): Document RETURN and SIMPLE_RETURN values.
1787
1788 2016-09-21  Georg-Johann Lay  <avr@gjlay.de>
1789
1790         Backport from 2016-09-21 trunk r240306.
1791
1792         PR target/77326
1793         * config/avr/avr.c (avr_notice_update_cc) [CC_NONE]: If insn
1794         touches some regs mentioned in cc_status, do CC_STATUS_INIT.
1795
1796 2016-09-20  Thomas Preud'homme  <thomas.preudhomme@arm.com>
1797
1798         Backport from mainline
1799         2016-07-14  Thomas Preud'homme  <thomas.preudhomme@arm.com>
1800
1801         * lra-constraints.c (match_reload): Pass information about other
1802         output operands.  Create new unique register value if matching input
1803         operand shares same register value as output operand being considered.
1804         (curr_insn_transform): Record output operands already processed.
1805
1806 2016-09-16  Jonathan Wakely  <jwakely@redhat.com>
1807
1808         * doc/extend.texi (Integer Overflow Builtins): Fix type of out
1809         parameters for functions taking long long arguments.
1810
1811 2016-09-16  David Edelsohn  <dje.gcc@gmail.com>
1812
1813         Backported from mainline
1814         2016-08-26  David Edelsohn  <dje.gcc@gmail.com>
1815
1816         PR target/77349
1817         * config/rs6000/xcoff.h (DWARF_OFFSET_SIZE): Define as PTR_SIZE.
1818
1819 2016-09-16  Jakub Jelinek  <jakub@redhat.com>
1820             Eric Botcazou  <ebotcazou@adacore.com>
1821
1822         PR middle-end/77594
1823         * internal-fn.c (expand_arith_overflow) <case MINUS_EXPR>: Don't fall
1824         through into expand_addsub_overflow after expand_neg_overflow.
1825
1826 2016-09-16  Jakub Jelinek  <jakub@redhat.com>
1827
1828         Backported from mainline
1829         2016-09-14  Jakub Jelinek  <jakub@redhat.com>
1830
1831         PR sanitizer/68260
1832         * tsan.c: Include target.h.
1833         (enum tsan_atomic_action): Add bool_clear and bool_test_and_set.
1834         (BOOL_CLEAR, BOOL_TEST_AND_SET): Define.
1835         (tsan_atomic_table): Add BUILT_IN_ATOMIC_CLEAR and
1836         BUILT_IN_ATOMIC_TEST_AND_SET entries.
1837         (instrument_builtin_call): Handle bool_clear and bool_test_and_set.
1838
1839         2016-09-08  Jakub Jelinek  <jakub@redhat.com>
1840
1841         PR fortran/77516
1842         * omp-low.c (lower_rec_simd_input_clauses): Use max_vf for non-positive
1843         OMP_CLAUSE_SAFELEN_EXPR.
1844
1845         2016-09-06  Jakub Jelinek  <jakub@redhat.com>
1846
1847         PR target/69255
1848         * config/i386/i386.c (ix86_expand_builtin): For builtin with
1849         unsupported or unknown ISA, use expand_call.
1850
1851 2016-09-06  Uros Bizjak  <ubizjak@gmail.com>
1852
1853         Backport from mainline
1854         2016-09-05  Uros Bizjak  <ubizjak@gmail.com>
1855
1856         PR rtl-optimization/77452
1857         * explow.c (plus_constant) <case MEM>: Extract scalar constant from
1858         inner-mode reference to a CONST_VECTOR constant in the constant pool.
1859
1860 2016-09-01  Jakub Jelinek  <jakub@redhat.com>
1861
1862         Backported from mainline
1863         2016-08-30  Jakub Jelinek  <jakub@redhat.com>
1864
1865         PR tree-optimization/72866
1866         * tree-vect-patterns.c (search_type_for_mask): Turn into
1867         a small wrapper, move all code to ...
1868         (search_type_for_mask_1): ... this new function.  Add caching
1869         and adjust recursive calls.
1870
1871         PR debug/77363
1872         * dwarf2out.c (modified_type_die): Use lookup_type_die (type)
1873         instead of lookup_type_die (type_main_variant (type)) even for array
1874         types.
1875
1876         PR middle-end/77377
1877         * simplify-rtx.c (avoid_constant_pool_reference): For out of bounds
1878         constant pool reference return x instead of c.
1879
1880         2016-08-19  Jakub Jelinek  <jakub@redhat.com>
1881
1882         * config/i386/t-i386 (i386-c.o): Don't depend on
1883         i386-builtin-types.inc.
1884         (i386.o): Depend on i386-builtin-types.inc.
1885
1886         2016-08-17  Jakub Jelinek  <jakub@redhat.com>
1887
1888         PR middle-end/77259
1889         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): If
1890         turning a call into __builtin_unreachable-like noreturn call, adjust
1891         gimple_call_set_fntype.
1892         * tree-cfgcleanup.c (fixup_noreturn_call): Remove lhs also if
1893         gimple_call_fntype has void return type.
1894
1895         2016-08-16  Jakub Jelinek  <jakub@redhat.com>
1896
1897         PR target/71910
1898         * tree-cfg.c (execute_fixup_cfg): Add node variable, use it.  Before inlining,
1899         add cgraph edge for the added __builtin_unreachable call.
1900
1901 2016-09-01  Gerald Pfeifer  <gerald@pfeifer.com>
1902
1903         * doc/extend.texi (SPU Built-in Functions): Remove stale
1904         references to material formerly at IBM and Sony.
1905
1906 2016-09-01  Matthew Wahab  <matthew.wahab@arm.com>
1907
1908         PR target/77281
1909         * config/arm/arm.c (neon_valid_immediate): Delete declaration.
1910         Use const_vec_duplicate to check for duplicated elements.
1911
1912 2016-09-01  Eric Botcazou  <ebotcazou@adacore.com>
1913
1914         * config/i386/i386.c (ix86_option_override_internal): Also disable the
1915         STV pass if -mstackrealign is enabled.
1916
1917 2016-08-31  Patrick Palka  <ppalka@gcc.gnu.org>
1918
1919         Backport from mainline
1920         2016-08-27  Patrick Palka  <ppalka@gcc.gnu.org>
1921
1922         PR tree-optimization/71077
1923         PR tree-optimization/68542
1924         * fold-const.c (fold_relational_const): Fix folding of
1925         VECTOR_CST comparisons that have a scalar boolean result type.
1926
1927 2016-08-31  Gerald Pfeifer  <gerald@pfeifer.com>
1928
1929         * doc/install.texi (Binaries): www.opencsw.org now uses https.
1930
1931 2016-08-31  Jakub Sejdak  <jakub.sejdak@phoesys.com>
1932
1933         * config.gcc: Add support for arm*-*-phoenix* targets.
1934         * config/arm/t-phoenix: New.
1935         * config/phoenix.h: New.
1936
1937 2016-08-29  Uros Bizjak  <ubizjak@gmail.com>
1938
1939         PR target/77403
1940         * config/i386/sse.md (vec_set_lo_<mode><mask_name>): Fix assembler
1941         template for intel asm dialect.
1942         (vec_set_hi_<mode><mask_name>): Ditto.
1943
1944 2016-08-29  Eric Botcazou  <ebotcazou@adacore.com>
1945
1946         * Makefile.in (gcov-iov.h): Add dummy recipe.
1947
1948 2016-08-28  Uros Bizjak  <ubizjak@gmail.com>
1949
1950         Backport from mainline
1951         2016-08-23  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
1952
1953         * config/i386/i386.c (processor_alias_table): Enable PTA_PRFCHW
1954         for targets amdfam10 and barcelona.
1955
1956         Backport from mainline
1957         2016-08-21  Uros Bizjak  <ubizjak@gmail.com>
1958
1959         PR target/77270
1960         * config/i386/i386.md (prefetch): When TARGET_PRFCHW or
1961         TARGET_PREFETCHWT1 are disabled, emit 3dNOW! write prefetches for
1962         non-SSE2 athlons only, otherwise prefer SSE prefetches.
1963
1964         Backport from mainline
1965         2016-08-19  Uros Bizjak  <ubizjak@gmail.com>
1966
1967         PR target/77270
1968         * config/i386/i386.c (ix86_option_override_internal): Remove
1969         PTA_PRFCHW from entries that also have PTA_3DNOW flag.
1970         Enable SSE prefetch also for TARGET_PREFETCHWT1.
1971         Do not try to enable TARGET_PRFCHW ISA flag here.
1972         * config/i386/i386.md (prefetch): Enable also for TARGET_3DNOW.
1973         Rewrite expander function body.
1974         (*prefetch_3dnow): Enable for TARGET_3DNOW and TARGET_PREFETCHWT1.
1975
1976 2016-08-28  Tom de Vries  <tom@codesourcery.com>
1977
1978         backport from trunk:
1979         2016-08-28  Tom de Vries  <tom@codesourcery.com>
1980
1981         PR lto/70955
1982         * config/i386/i386.c (ix86_build_builtin_va_list_64): Tag type with
1983         'sysv_abi va_list' attribute.
1984         (ix86_build_builtin_va_list): Tag type with 'ms_abi va_list' attribute.
1985         (ix86_canonical_va_list_type): Handle 'sysv_abi/ms_abi va_list'
1986         attributes.
1987
1988 2016-08-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1989
1990         Backport from mainline
1991         2016-08-11  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1992
1993         PR target/72863
1994         * vsx.md (vsx_load_<mode>): For P8LE, emit swaps at expand time.
1995         (vsx_store_<mode>): Likewise.
1996
1997 2016-08-24  Richard Biener  <rguenther@suse.de>
1998
1999         Backport from mainline
2000         2016-08-17  Richard Biener  <rguenther@suse.de>
2001
2002         PR tree-optimization/76490
2003         * tree-vrp.c (update_value_range): Preserve overflow infinities
2004         when intersecting with ranges from get_range_info.
2005         (operand_less_p): Handle overflow infinities correctly.
2006         (value_range_constant_singleton): Use vrp_operand_equal_p
2007         to handle overflow max/min correctly.
2008         (vrp_valueize): Likewise.
2009         (union_ranges): Likewise.
2010         (intersect_ranges): Likewise.
2011
2012 2016-08-24  Sebastian Huber  <sebastian.huber@embedded-brains.de>
2013
2014         * config/arm/t-rtems: Add vfp multilib.
2015
2016 2016-08-23  Richard Biener  <rguenther@suse.de>
2017
2018         Backport from mainline
2019         2016-08-16  Richard Biener  <rguenther@suse.de>
2020
2021         PR tree-optimization/76783
2022         * tree-ssa-propagate.c (ssa_prop_init): Use RPO order.  Clear
2023         BB visited flags at start.
2024
2025         2016-08-12  Richard Biener  <rguenther@suse.de>
2026
2027         PR tree-optimization/72851
2028         * tree-ssa-propagate.c: Include cfganal.h.  Rewrite block and stmt
2029         worklists to use bitmaps indexed in execution order.
2030         (executable_blocks, cfg_blocks_num, cfg_blocks_tail, cfg_blocks_head,
2031         bb_in_list, interesting_ssa_edges, varying_ssa_edges): Remove.
2032         (cfg_blocks): Make a bitmap.
2033         (bb_to_cfg_order, cfg_order_to_bb, ssa_edge_worklist, uid_to_stmt):
2034         New globals.
2035         (cfg_blocks_empty_p): Adjust.
2036         (cfg_blocks_add): Likewise.
2037         (cfg_blocks_get): Likewise.
2038         (add_ssa_edge): Likewise.
2039         (add_control_edge): Likewise.
2040         (simulate_stmt): Likewise.
2041         (process_ssa_edge_worklist): Likewise.
2042         (simulate_block): Likewise.
2043         (ssa_prop_init): Compute PRE order and stmt UIDs.
2044         (ssa_prop_fini): Adjust.
2045         (ssa_propagate): Adjust.
2046
2047 2016-08-22  Uros Bizjak  <ubizjak@gmail.com>
2048
2049         Backport from mainline
2050         2016-08-15  Uros Bizjak  <ubizjak@gmail.com>
2051
2052         PR target/72867
2053         * config/i386/sse.md (<code><mode>3<mask_name><round_saeonly_name>):
2054         Emit ieee_<ieee_maxmin><mode>3<mask_name><round_saeonly_name>
2055         for !flag_finite_math_only or flag_signed_zeros.
2056         (*<code><mode>3<mask_name><round_saeonly_name>): Rename from
2057         *<code><mode>3_finite<mask_name><round_saeonly_name>.  Do not
2058         depend on flag_finite_math_only.
2059         (ieee_<ieee_maxmin><mode>3<mask_name><round_saeonly_name>):
2060         New insn pattern.
2061         (*<code><mode>3<mask_name><round_saeonly_name>): Remove.
2062         (*ieee_smin<mode>3): Ditto.
2063         (*ieee_smax<mode>3): Ditto.
2064         * config/i386/mmx.md (mmx_<code>v2sf3): Emit
2065         mmx_ieee_<ieee_maxmin>v2sf3 for !flag_finite_math_only or
2066         flag_signed_zeros.
2067         (*mmx_<code>v2sf3): Rename from *mmx_<code>v2sf3_finite.  Do not
2068         depend on flag_finite_math_only.
2069         (mmx_ieee_<ieee_maxmin>v2sf3): New insn pattern.
2070         (*mmx_<code>v2sf3): Remove.
2071         * config/i386/subst.md (round_saeonly_mask_arg3): New subst attribute.
2072         * config/i386/i386.c (ix86_expand_sse_fp_mimnax): Check
2073         flag_signed_zeros instead of !flag_unsafe_math_optimizations.
2074
2075 2016-08-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2076
2077         Backport from mainline
2078         2016-07-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2079
2080         PR middle-end/71700
2081         * expr.c (store_constructor): Mask sign-extended bits when widening
2082         sub-word constructor element at the start of a word.
2083
2084 2016-08-22  Richard Biener  <rguenther@suse.de>
2085
2086         * BASE-VER: Set to 6.2.1.
2087
2088 2016-08-22  Release Manager
2089
2090         * GCC 6.2.0 released.
2091
2092 2016-08-18  Chung-Lin Tang  <cltang@codesourcery.com>
2093
2094         Backport from mainline
2095         2016-08-18  Chung-Lin Tang  <cltang@codesourcery.com>
2096
2097         PR middle-end/70895
2098         * gimplify.c (omp_add_variable): Adjust/add variable mapping on
2099         enclosing parallel construct for reduction variables on OpenACC loop
2100         directives.
2101
2102 2016-08-18  Oleg Endo  <olegendo@gcc.gnu.org>
2103
2104         Backport from mainline
2105         2016-06-17  DJ Delorie  <dj@redhat.com>
2106
2107         PR target/71338
2108         * config/rl78/rl78-expand.c (umulqihi3): Enable for G10.
2109         * config/rl78/rl78-virtual.c (umulhi3_shift_virt): Likewise.
2110         (umulqihi3_virt): Likewise.
2111         * config/rl78/rl78-real.c (umulhi3_shift_real): Likewise.
2112         (umulqihi3_real): Likewise.
2113
2114 2016-08-16  Eric Botcazou  <ebotcazou@adacore.com>
2115
2116         * doc/install.texi (*-*-solaris2*): Adjust latest change.
2117
2118 2016-08-15  Martin Liska  <mliska@suse.cz>
2119
2120         Backported from mainline
2121         2016-08-15  Martin Liska  <mliska@suse.cz>
2122
2123         PR driver/72765
2124         * gcc.c (do_spec_1): Call save_string with the right size.
2125
2126 2016-08-15  Jakub Jelinek  <jakub@redhat.com>
2127
2128         PR debug/71906
2129         * dwarf2out.c (string_types): New variable.
2130         (gen_array_type_die): Change early_dwarf handling of
2131         DW_AT_string_length, create DW_OP_call4 referencing the
2132         length var temporarily.  Handle parameters that are pointers
2133         to string length.
2134         (adjust_string_types): New function.
2135         (gen_subprogram_die): Temporarily set string_types to local var,
2136         call adjust_string_types if needed.
2137         (non_dwarf_expression, copy_deref_exprloc, optimize_string_length):
2138         New functions.
2139         (resolve_addr): Adjust DW_AT_string_length if it is DW_OP_call4.
2140
2141 2016-08-15  Richard Biener  <rguenther@suse.de>
2142
2143         PR tree-optimization/73434
2144         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Preserve
2145         TBAA info on the base when forwarding a non-invariant address.
2146
2147 2016-08-15  Eric Botcazou  <ebotcazou@adacore.com>
2148
2149         * doc/install.texi (*-*-solaris2*): Fix version number and document
2150         requirement on GNU make for building libjava with the Solaris linker.
2151
2152 2016-08-15  Martin Liska  <mliska@suse.cz>
2153             Jakub Jelinek  <jakub@redhat.com>
2154
2155         PR tree-optimization/72824
2156         * tree-loop-distribution.c (const_with_all_bytes_same)
2157         <case VECTOR_CST>: Fix a typo.
2158
2159 2016-08-14  Uros Bizjak  <ubizjak@gmail.com>
2160
2161         Backport from mainline
2162         2016-08-14  Uros Bizjak  <ubizjak@gmail.com>
2163
2164         PR target/76342
2165         * config/i386/avx512fintrin.h (_mm512_undefined_epi32):
2166         Renamed from _mm512_undefined_si512.
2167         (_mm_undefined_si512): New definition.
2168
2169         Backport from mainline:
2170         2016-08-09  David Wohlferd  <dw@LimeGreenSocks.com>
2171
2172         * config/i3836/avx512fintrin.h (_mm512_cvtsepi64_epi32): Remove
2173         unused variable __O.
2174
2175         Backport from mainline:
2176         2016-08-09  Uros Bizjak  <ubizjak@gmail.com>
2177
2178         PR target/72843
2179         * config/i386/i386.md (*movtf_internal): Use
2180         lra_in_progress || reload_completed instead of !can_create_pseudo_p
2181         in the insn constraint.
2182         (*movxf_internal): Ditto.
2183         (*movdf_internal): Ditto.
2184         (*movsf_internal): Ditto.
2185
2186 2016-08-12  Jakub Jelinek  <jakub@redhat.com>
2187
2188         PR c/71512
2189         * ubsan.c (instrument_si_overflow): Pass true instead of false
2190         to gsi_replace.
2191         (pass_ubsan::execute): Call gimple_purge_dead_eh_edges at the end
2192         of bbs.  Return TODO_cleanup_cfg if any returned true.
2193
2194 2016-08-12  Bernd Edlinger  <bernd.edlinger@hotmail.de>
2195
2196         Backport from mainline
2197         2016-08-11  Bernd Edlinger  <bernd.edlinger@hotmail.de>
2198
2199         PR tree-optimization/71083
2200         * tree-predcom.c (ref_at_iteration): Correctly align the
2201         reference type.
2202
2203 2016-08-12  James Greenhalgh  <james.greenhalgh@arm.com
2204
2205         Backport from mainline
2206         2016-08-05  James Greenhalgh  <james.greenhalgh@arm.com>
2207
2208         PR Target/72819
2209         * config/aarch64/aarch64.h (aarch64_fp16_type_node): Declare.
2210         (aarch64_fp16_ptr_type_node): Likewise.
2211         * config/aarch64/aarch64-simd-builtins.c
2212         (aarch64_fp16_ptr_type_node): Define.
2213         (aarch64_init_fp16_types): New, refactored out of...
2214         (aarch64_init_builtins): ...here, update to call
2215         aarch64_init_fp16_types.
2216         * config/aarch64/aarch64.c (aarch64_gimplify_va_arg_expr): Handle
2217         HFmode.
2218         (aapcs_vfp_sub_candidate): Likewise.
2219
2220 2016-08-11  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
2221
2222         Backport from mainline
2223         2016-08-11  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
2224
2225         * config/s390/s390-builtin-types.def: Add INT128 types.
2226         * config/s390/s390-builtins.def: Add INT128 variants for the add
2227         sub low-level builtins dealing with TImode.
2228         * config/s390/s390.c (s390_expand_builtin): Allow mode conversions
2229         via subreg when expanding a builtin.
2230         * config/s390/s390.md: Remove UNSPEC_VEC_ADDC_U128,
2231         UNSPEC_VEC_SUB_U128, and UNSPEC_VEC_SUBC_U128 constants.
2232         Fix comment.
2233         * config/s390/vecintrin.h: Adjust builtin names accordingly.
2234         * config/s390/vx-builtins.md ("vec_add_u128"): Remove expander.
2235         ("vec_addc<mode>", "vec_addc_u128"): Merge to
2236         "vacc<bhfgq>_<mode>".
2237         ("vec_adde_u128"): Rename to "vacq". Change mode to TImode.
2238         ("vec_addec_u128"): Rename to "vacccq". Change mode to TImode.
2239         ("vec_subc<mode>", "vec_subc_u128"): Merge to
2240         "vscbi<bhfgq>_<mode>".
2241         ("vec_sube_u128"): Rename to "vsbiq". Change mode to TImode.
2242         ("vec_subec_u128"): Rename to "vsbcbiq". Change mode to TImode.
2243
2244 2016-08-11  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
2245
2246         Backport from mainline
2247         2016-08-11  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
2248
2249         * config/s390/s390-builtins.def: Mark last operand of s390_vlvg*
2250         and s390_vlgv* builtins as element selector.
2251
2252 2016-08-11  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
2253
2254         Backport from mainline
2255         2016-07-06  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
2256
2257         * config/s390/s390.c (s390_expand_vec_init): Force initializer
2258         element to register if it doesn't match general_operand.
2259
2260 2016-08-11  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
2261
2262         Backport from mainline
2263         2016-06-13  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
2264
2265         * config/s390/vecintrin.h: Fix file description in comment.
2266
2267 2016-08-11  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
2268
2269         Backport from mainline
2270         2016-06-13  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
2271
2272         * config/s390/s390-builtin-types.def: Change builtin type naming
2273         scheme to match builtin-types.def.
2274
2275 2016-08-10  Michael Meissner  <meissner@linux.vnet.ibm.com>
2276
2277         Backport from mainline
2278         2016-08-10  Michael Meissner  <meissner@linux.vnet.ibm.com>
2279
2280         PR target/72853
2281         * config/rs6000/rs6000.c (mem_operand_ds_form): Add check for op
2282         being an offsettable address.
2283
2284 2016-08-10  Jakub Jelinek  <jakub@redhat.com>
2285
2286         Backported from mainline
2287         2016-08-09  Jakub Jelinek  <jakub@redhat.com>
2288
2289         PR tree-optimization/72824
2290         * tree-loop-distribution.c (const_with_all_bytes_same): Verify
2291         real_zerop is not negative.
2292
2293 2016-08-09  Martin Jambor  <mjambor@suse.cz>
2294
2295         PR ipa/71981
2296         * ipa-polymorphic-call.c (get_dynamic_type): Bail out gracefully
2297         if instance is a MEM_REF.
2298
2299 2016-08-09  Richard Biener  <rguenther@suse.de>
2300
2301         Backport from mainline
2302         2016-08-09  Richard Biener  <rguenther@suse.de>
2303
2304         PR ipa/68273
2305         * ipa-prop.c (ipa_modify_formal_parameters): Build
2306         parameter types with natural alignment also for the
2307         over-aligned case.
2308
2309         2016-07-15  Richard Biener  <rguenther@suse.de>
2310
2311         PR tree-optimization/71881
2312         * tree-loop-distribution.c (destroy_loop): Remove blocks in
2313         reverse DOM order to make debug temp generation happy.
2314
2315 2016-08-09  Alan Modra  <amodra@gmail.com>
2316
2317         PR target/72802
2318         * config/rs6000/rs6000.md (mov<mode>_hardfloat): Sort
2319         alternatives.  Put loads first, then stores, and reg/reg moves
2320         within same class later.  Delete attr length.
2321
2322 2016-08-09  Alan Modra  <amodra@gmail.com>
2323
2324         PR target/72802
2325         * config/rs6000/rs6000.c (mem_operand_gpr): Remove vsx dform test.
2326         (mem_operand_ds_form): New predicate.
2327         * config/rs6000/rs6000-protos.h (mem_operand_ds_form): Declare.
2328         * config/rs6000/constraints.md (wY): New constraint.
2329         * config/rs6000/rs6000.md (f32_lm2, f32_sm2): Use wY for SF.
2330         (extendsfdf2_fpr): Replace o constraint with wY.
2331
2332 2016-08-08  Georg-Johann Lay  <avr@gjlay.de>
2333
2334         Backport from 2016-07-29 trunk r238863.
2335
2336         PR rtl-optimization/71976
2337         * combine.c (get_last_value): Return 0 if the argument for which
2338         the function is called has a wider mode than the recorded value.
2339
2340 2016-08-04  Michael Meissner  <meissner@linux.vnet.ibm.com>
2341
2342         Backport from trunk
2343         2016-07-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
2344
2345         PR target/71869
2346         * config/rs6000/rs6000.c (rs6000_generate_compare): Rework
2347         __float128 support when we don't have hardware support, so that
2348         the IEEE built-in functions like isgreater, first call __unordkf3
2349         to make sure neither operand is a NaN, and if both operands are
2350         ordered, do the normal comparison.
2351
2352 2016-08-04  Uros Bizjak  <ubizjak@gmail.com>
2353
2354         PR target/72805
2355         * config/i386/avx512fintrin.h (_mm512_cmp_epi32_mask) [!__OPTIMIZE__]:
2356         Cast builtin function result to __mmask16 instead of __mmask8.
2357         (_mm512_cmp_epu32_mask) [!__OPTIMIZE__]: Ditto.
2358         (_mm512_mask_cmp_epi32_mask) [!__OPTIMIZE__]: Ditto.
2359         (_mm512_mask_cmp_epu32_mask) [!__OPTIMIZE__]: Ditto.
2360
2361 2016-08-03  Georg-Johann Lay  <avr@gjlay.de>
2362
2363         PR 70677
2364         * common/config/avr/avr-common.c (avr_option_optimization_table)
2365         [OPT_LEVELS_ALL]: Turn off -fcaller-saves.
2366
2367 2016-08-01  Georg-Johann Lay  <avr@gjlay.de>
2368
2369         Backport from 2016-08-01 trunk r238948.
2370
2371         PR target/72767
2372         * config/avr/avr.md (length) [branch]: Correct insn length
2373         attribute for forward branches.
2374
2375 2016-08-01  Georg-Johann Lay  <avr@gjlay.de>
2376
2377         Backport from 2016-06-16 trunk r237536.
2378         2016-06-16  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
2379
2380         PR target/71151
2381         * config/avr/avr.c (avr_asm_init_sections): Remove setup of
2382         progmem_swtable_section.
2383         (progmem_swtable_section): Remove.
2384         (avr_asm_function_rodata_section): Remove.
2385         (TARGET_ASM_FUNCTION_RODATA_SECTION): Remove.
2386         * config/avr/avr.h (JUMP_TABLES_IN_TEXT_SECTION): Define to 1.
2387
2388 2016-07-29  Marek Polacek  <polacek@redhat.com>
2389
2390         Backport from mainline
2391         2016-07-29  Marek Polacek  <polacek@redhat.com>
2392
2393         PR c/7652
2394         * config/rs6000/rs6000.c (altivec_expand_ld_builtin): Add break.
2395         (altivec_expand_st_builtin): Likewise.
2396         * config/i386/i386.c (ix86_expand_args_builtin): Likewise.
2397         (ix86_expand_round_builtin): Likewise.
2398
2399 2016-07-27  Segher Boessenkool  <segher@kernel.crashing.org>
2400
2401         PR target/71216
2402         * config/rs6000/rs6000.c (rs6000_file_start): Fix condition for
2403         when to emit a ".machine" pseudo-op.
2404
2405 2016-07-26  Alan Modra  <amodra@gmail.com>
2406
2407         PR target/72103
2408         * config/rs6000/rs6000.c (rs6000_secondary_reload): Initialize
2409         sri->t_icode.
2410
2411 2016-07-21  Jakub Jelinek  <jakub@redhat.com>
2412
2413         PR sanitizer/71953
2414         * asan.c (asan_dynamic_init_call): Call asan_init_shadow_ptr_types
2415         before builtin_decl_implicit.
2416
2417         * tree-object-size.c (unknown): Use HOST_WIDE_INT_M1U instead of -1.
2418
2419 2016-07-21  Andrew Sutton  <andrew.n.sutton@gmail.com>
2420
2421         Improving concepts performance and diagnostics.
2422         * timevar.def (TV_CONSTRAINT_SAT, TV_CONSTRAINT_SUB): New time vars
2423         for constraint satisfaction and subsumption.
2424         * timevar.h (auto_timevar): New constructor that matches the push/pop
2425         pattern of usage in pt.c.
2426
2427 2016-07-20  John David Anglin  <danglin@gcc.gnu.org>
2428
2429         Backport from mainline
2430         2016-07-16  John David Anglin  <danglin@gcc.gnu.org>
2431
2432         * config/pa/pa.c (hppa_profile_hook): Allocate stack space for
2433         register parameters.  Remove code to initialize argument pointer
2434         on TARGET_64BIT.  Optimize call to _mcount when it can be reached
2435         using a pc-relative branch.  Cleanup conditional code.
2436         * config/pa/pa.md (call_mcount): New expander.
2437         (call_mcount_nonpic): New insn.
2438         (call_mcount_pic): New insn and split.
2439         (call_mcount_pic_post_reload): New insn.
2440         (call_mcount_64bit): New insn and split.
2441         (call_mcount_64bit_post_reload): New insn.
2442
2443 2016-07-20  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
2444
2445         Backport from mainline
2446         2016-07-20  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
2447
2448         * config/s390/s390.c (s390_encode_section_info): Remove mode size
2449         check.
2450
2451 2016-07-20  Martin Jambor  <mjambor@suse.cz>
2452
2453         PR fortran/71688
2454         * trans-decl.c (gfc_generate_function_code): Use get_create rather
2455         than create to get a call graph node.
2456
2457 2016-07-19  Jakub Jelinek  <jakub@redhat.com>
2458
2459         PR rtl-optimization/71916
2460         * cfgrtl.c (contains_no_active_insn_p): Return false also for
2461         bb which have a single succ fake edge.
2462
2463 2016-07-19  Aldy Hernandez  <aldyh@redhat.com>
2464
2465         PR debug/71855
2466         * dwarf2out.c (gen_subprogram_die): Only call
2467         gen_unspecified_parameters_die while dumping early dwarf.
2468
2469 2016-07-19  Jakub Jelinek  <jakub@redhat.com>
2470
2471         PR middle-end/71874
2472         * gimple-fold.c (fold_builtin_memory_op): Use
2473         get_addr_base_and_unit_offset instead of get_ref_base_and_extent.
2474
2475 2016-07-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
2476
2477         Back port from mainline
2478         2016-07-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
2479
2480         PR target/71493
2481         * config/rs6000/rs6000.c (rs6000_function_value): Fix
2482         unintentional System V.4 structure return breakage for structures
2483         with a single floating point element.
2484
2485 2016-07-18  Martin Liska  <mliska@suse.cz>
2486
2487         Backported from mainline
2488         2016-07-12  Martin Liska  <mliska@suse.cz>
2489
2490         PR rtl-optimization/71634
2491         * ira-build.c (mark_loops_for_removal): Properly iterate
2492         loops.
2493
2494 2016-07-18  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
2495
2496         Backport from mainline
2497         2016-07-18  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
2498
2499         * config/s390/s390.c (s390_encode_section_info): Always set
2500         notaligned marker if mode size is 0 or no MEM_ALIGN info could be
2501         found.
2502
2503 2016-07-15  Alan Modra  <amodra@gmail.com>
2504
2505         Apply from mainline
2506         2016-07-11  Alan Modra  <amodra@gmail.com>
2507         * config/rs6000/rs6000.md (UNSPEC_DOLOOP): New unspec.
2508         (ctr<mode>): Add unspec.
2509         (ctr<mode>_internal*): Likewise.
2510
2511 2016-07-14  Alan Modra  <amodra@gmail.com>
2512
2513         PR target/71733
2514         * config/rs6000/rs6000.c (rs6000_option_override_internal): Deal
2515         with p9_vector override before power9-dform override.
2516
2517 2016-07-13  Ilya Enkovich  <ilya.enkovich@intel.com>
2518
2519         Backport from mainline r238086.
2520         2016-07-07  Ilya Enkovich  <ilya.enkovich@intel.com>
2521
2522         PR ipa/71624
2523         * ipa-inline-analysis.c (compute_inline_parameters): Set
2524         local.can_change_signature to false for intrumentation
2525         thunk callees.
2526
2527 2016-07-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
2528             Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2529
2530         Backport from mainline
2531         2016-07-05  Michael Meissner  <meissner@linux.vnet.ibm.com>
2532                     Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2533
2534         * config/rs6000/rs6000-protos.h (rs6000_split_signbit): New
2535         prototype.
2536         * config/rs6000/rs6000.c (rs6000_split_signbit): New function.
2537         * config/rs6000/rs6000.md (UNSPEC_SIGNBIT): New constant.
2538         (SIGNBIT): New mode iterator.
2539         (Fsignbit): New mode attribute.
2540         (signbit<mode>2): Change operand1 to match FLOAT128 instead of
2541         IBM128; dispatch to gen_signbit{kf,tf}2_dm for __float128
2542         when direct moves are available.
2543         (signbit<mode>2_dm): New define_insn_and_split).
2544         (signbit<mode>2_dm2): New define_insn.
2545
2546 2016-07-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
2547
2548         Backport from mainline
2549         2016-07-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
2550
2551         PR target/71805
2552         * config/rs6000/altivec.md (altivec_vperm_<mode>_internal):
2553         The xxperm and xxpermr instructions require that the 2nd input
2554         operand overlap with the output operand, and not the 1st.
2555         (altivec_vperm_v8hiv16qi): Likewise.
2556         (altivec_vperm_<mode>_uns_internal): Likewise.
2557         (altivec_vpermr_<mode>_internal): Likewise.
2558         (vperm_v8hiv4si): Likewise.
2559         (vperm_v16qiv8hi): Likewise.
2560
2561 2016-07-12  Segher Boessenkool  <segher@kernel.crashing.org>
2562
2563         Backport from mainline
2564         2016-07-06  Segher Boessenkool  <segher@kernel.crashing.org>
2565
2566         PR target/70098
2567         PR target/71763
2568         * config/rs6000/rs6000.md (*ctr<mode>_internal1, *ctr<mode>_internal2,
2569         *ctr<mode>_internal5, *ctr<mode>_internal6): Add *wi to the output
2570         constraint.
2571
2572 2016-07-11  Jakub Jelinek  <jakub@redhat.com>
2573
2574         PR middle-end/71758
2575         * omp-low.c (expand_omp_target): Gimplify device.
2576
2577         PR tree-optimization/71823
2578         * tree-vect-stmts.c (vectorizable_operation): Use vect_get_vec_defs
2579         to get vec_oprnds2 from op2.
2580
2581 2016-07-11  Yuri Rumyantsev  <ysrumyan@gmail.com>
2582
2583         Backport from mainline r238055.
2584         2016-07-06  Yuri Rumyantsev  <ysrumyan@gmail.com>
2585
2586         PR tree-optimization/71518
2587         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Adjust
2588         misalign also for outer loops with negative step.
2589
2590 2016-07-08  Martin Liska  <mliska@suse.cz>
2591
2592         Backported from mainline
2593         2016-07-08  Martin Liska  <mliska@suse.cz>
2594
2595         PR middle-end/71606
2596         * fold-const.c (fold_convertible_p): As COMPLEX_TYPE
2597         folding produces SAVE_EXPRs, thus return false for the type.
2598
2599 2016-07-08  Kelvin Nilsen  <kelvin@gcc.gnu.org>
2600
2601         * config/rs6000/rs6000-builtin.def (BU_P9_MISC_1): Remove
2602         redundant and erroneous definition of this macro accidentally
2603         inserted during backporting.
2604         (BU_P9_64BIT_MISC_0): Likewise.
2605         (BU_P9_MISC_0): Likewise.
2606
2607 2016-07-08  Jiong Wang  <jiong.wang@arm.com>
2608
2609         Back port from the trunk
2610         2016-07-08  Jiong Wang  <jiong.wang@arm.com>
2611
2612         * config/aarch64/aarch64-simd-builtins.def (smax): Remove float
2613         variants.
2614         (smin): Likewise.
2615         (fmax): New entry.
2616         (fmin): Likewise.
2617         * config/aarch64/arm_neon.h (vmaxnm_f32): Use
2618         __builtin_aarch64_fmaxv2sf.
2619         (vmaxnmq_f32): Likewise.
2620         (vmaxnmq_f64): Likewise.
2621         (vminnm_f32): Likewise.
2622         (vminnmq_f32): Likewise.
2623         (vminnmq_f64): Likewise.
2624
2625 2016-07-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
2626
2627         Back port from trunk
2628         2016-07-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
2629
2630         PR target/71806
2631         * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Do not
2632         enable -mfloat128-hardware by default.
2633         (ISA_3_0_MASKS_IEEE): New macro to give all of the VSX options
2634         that IEEE 128-bit hardware support needs.
2635         * config/rs6000/rs6000.c (rs6000_option_override_internal): If
2636         -mcpu=power9 -mfloat128, enable -mfloat128-hardware by default.
2637         Use ISA_3_0_MASKS_IEEE as the set of options that IEEE 128-bit
2638         floating point requires.
2639         * doc/invoke.texi (RS/6000 and PowerPC Options): Document
2640         -mfloat128 and -mfloat128-hardware changes.
2641
2642 2016-07-08  Kelvin Nilsen  <kelvin@gcc.gnu.org>
2643
2644         Backport from mainline r237912
2645         2016-07-01  Kelvin Nilsen  <kelvin@gcc.gnu.org>
2646
2647         * config/rs6000/altivec.md (*altivec_vpermr_<mode>_internal):
2648         Exchange the order of the second and third operands in the vpermr
2649         instruction tmeplate.
2650
2651 2016-07-07  Michael Meissner  <meissner@linux.vnet.ibm.com>
2652
2653         Back port from the trunk
2654         2016-07-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
2655
2656         PR target/71720
2657         * config/rs6000/vsx.md (vsx_splat_v4sf_internal): When splitting
2658         the insns, use an insn form that does not adjust the offset on
2659         little endian systems.
2660
2661 2016-07-07  Kelvin Nilsen  <kelvin@gcc.gnu.org>
2662
2663         Backport from mainline r237885
2664         2016-06-30  Kelvin Nilsen  <kelvin@gcc.gnu.org>
2665
2666         * config/rs6000/altivec.md (darn_32): Change the condition to
2667         TARGET_P9_MISC instead of TARGET_MODULO.
2668         (darn_raw): Replace TARGET_MODULO with TARGET_P9_MISC in the
2669         condition expression.
2670         (darn): Replace TARGET_MODULO with TARGET_P9_MISC in the
2671         condition expression.
2672         * config/rs6000/dfp.md (UNSPEC_DTSTSFI): New unspec constant.
2673         (DFP_TEST): New code iterator.
2674         (dfptstsfi_<code>_mode>): New define_expand.
2675         (*dfp_sgnfcnc_<mode>): New define_insn.
2676         * config/rs6000/rs6000-builtin.def (BU_P9_MISC_0): Move this macro
2677         definition next to BU_P9_MISC_1 definition and change the MASK
2678         value to RS6000_BTM_P9_MISC.
2679         (BU_P9_MISC_1): Change the MASK value to RS6000_BTM_P9_MISC.
2680         (BU_P9_64BIT_MISC_0): Likewise.
2681         (BU_P9_DFP_MISC_0): New macro definition.
2682         (BU_P9_DFP_MISC_1): New macro definition.
2683         (BU_P9_DFP_MISC_2): New macro definition.
2684         (BU_P9_DFP_OVERLOAD_1): New macro definition.
2685         (BU_P9_DFP_OVERLOAD_2): New macro definition.
2686         (BU_P9_DFP_OVERLOAD_3): New macro definition.
2687         (TSTSFI_LT_DD): New BU_P9_DFP_MISC_2.
2688         (TSTSFI_LT_TD): Likewise.
2689         (TSTSFI_EQ_DD): Likewise.
2690         (TSTSFI_EQ_TD): Likewise.
2691         (TSTSFI_GT_DD): Likewise.
2692         (TSTSFI_GT_TD): Likewise.
2693         (TSTSFI_OV_DD): Likewise.
2694         (TSTSFI_OV_TD): Likewise.
2695         (TSTSFI_LT): New BU_P9_DFP_OVERLOAD_2.
2696         (TSTSFI_LT_DD): Likewise.
2697         (TSTSFI_LT_TD): Likewise.
2698         (TSTSFI_EQ): Likewise.
2699         (TSTSFI_EQ_DD): Likewise.
2700         (TSTSFI_EQ_TD): Likewise.
2701         (TSTSFI_GT): Likewise.
2702         (TSTSFI_GT_DD): Likewise.
2703         (TSTSFI_GT_TD): Likewise.
2704         (TSTSFI_OV): Likewise.
2705         (TSTSFI_OV_DD): Likewise.
2706         (TSTSFI_OV_TD): Likewise.
2707         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
2708         overloaded test significance functions.
2709         * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Add
2710         OPTION_MASK_P9_MISC into the representation of this mask.
2711         (POWERPC_MASKS): Add OPTION_MASK_P9_MISC into the representation
2712         of this mask.
2713         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Set the
2714         RS6000_BTM_P9_MISC flag in the return value if TARGET_P9_MISC is
2715         non-zero.
2716         (rs6000_expand_binop_builtin): Enforce that argument 0 of the exp
2717         argument is a 6-bit unsigned literal value if the icode argument
2718         represents a DFP test significance built-in call.
2719         (rs6000_invalid_builtin): Add support for the RS6000_BTM_P9_MISC
2720         flag used independently and in combination with the
2721         RS6000_BTM_64BIT flag.
2722         (rs6000_opt_masks): Add entry for power9-misc command-line option.
2723         (rs6000_builtin_mask_names): Add entry for power9-misc
2724         command-line option.
2725         * config/rs6000/rs6000.h: Redefine TARGET_P9_MISC as 0 if
2726         HAVE_AS_POWER9 is not a defined macro.  Define MASK_P9_MISC and
2727         RS6000_BTM_P9_MISC macros.
2728         * config/rs6000/rs6000.opt: Add support for the -mpower9-misc
2729         option and change the description of the -mpower9-vector option to
2730         enable only vector instructions, removing its erroneously claimed
2731         support for scalar instructions.
2732         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
2733         the ISA 3.0 digital floating point test significance built-in
2734         functions.
2735
2736 2016-07-07  Richard Biener  <rguenther@suse.de>
2737
2738         Backport from mainline
2739         2016-06-13  Richard Biener  <rguenther@suse.de>
2740
2741         PR middle-end/64516
2742         * fold-const.c (fold_unary_loc): Preserve alignment when
2743         folding a VIEW_CONVERT_EXPR into a MEM_REF.
2744
2745 2016-07-07  Richard Biener  <rguenther@suse.de>
2746
2747         Backport from mainline
2748         2016-05-25  Richard Biener  <rguenther@suse.de>
2749
2750         PR tree-optimization/71264
2751         * tree-vect-stmts.c (vect_init_vector): Properly deal with
2752         vector type val.
2753
2754         2016-06-07  Richard Biener  <rguenther@suse.de>
2755
2756         PR middle-end/71423
2757         * match.pd ((X | ~Y) -> Y <= X): Properly invert the comparison
2758         for signed ops.
2759
2760         2016-06-14  Richard Biener  <rguenther@suse.de>
2761
2762         PR tree-optimization/71521
2763         * tree-vrp.c (extract_range_from_binary_expr_1): Guard
2764         division int_const_binop against zero divisor.
2765
2766         2016-06-08  Richard Biener  <rguenther@suse.de>
2767
2768         PR tree-optimization/71452
2769         * tree-ssa.c (non_rewritable_lvalue_p): Make sure that the
2770         type used for the SSA rewrite has enough precision to cover
2771         the dynamic type of the location.
2772
2773         2016-06-14  Richard Biener  <rguenther@suse.de>
2774
2775         PR tree-optimization/71522
2776         * tree-ssa.c (non_rewritable_lvalue_p): Do not rewrite non-float
2777         copying into float copying.
2778
2779 2016-07-06  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
2780
2781         Backport from mainline
2782         2016-07-06  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
2783
2784         PR target/50739
2785         * config/avr/avr.c (avr_asm_select_section): Strip off
2786         SECTION_DECLARED from flags when calling get_section.
2787
2788 2016-07-05  Pat Haugen  <pthaugen@us.ibm.com>
2789
2790         Backport from mainline
2791         2016-06-28  Pat Haugen  <pthaugen@us.ibm.com>
2792
2793         * config/rs6000/rs6000.md ('type' attribute): Add htmsimple/dfp types.
2794         ('size' attribute): Add '128'.
2795         Include power9.md.
2796         (*mov<mode>_hardfloat32, *mov<mode>_hardfloat64, *movdi_internal32,
2797         *movdi_internal64, *movdf_update1): Set size attribute to '64'.
2798         (add<mode>3, sub<mode>3, mul<mode>3, div<mode>3, sqrt<mode>2,
2799         copysign<mode>3, neg<mode>2_hw, abs<mode>2_hw, *nabs<mode>2_hw,
2800         *fma<mode>4_hw, *fms<mode>4_hw, *nfma<mode>4_hw, *nfms<mode>4_hw,
2801         extend<SFDF:mode><IEEE128:mode>2_hw, trunc<mode>df2_hw,
2802         *xscvqp<su>wz_<mode>, *xscvqp<su>dz_<mode>, *xscv<su>dqp_<mode>,
2803         *trunc<mode>df2_odd): Set size attribute to '128'.
2804         (*cmp<mode>_hw): Change type to veccmp and set size attribute to '128'.
2805         * config/rs6000/power6.md (power6-fp): Include dfp type.
2806         * config/rs6000/power7.md (power7-fp): Likewise.
2807         * config/rs6000/power8.md (power8-fp): Likewise.
2808         * config/rs6000/power9.md: New file.
2809         * config/rs6000/t-rs6000 (MD_INCLUDES): Add power9.md.
2810         * config/rs6000/htm.md (*tabort, *tabort<wd>c, *tabort<wd>ci,
2811         *trechkpt, *treclaim, *tsr, *ttest): Change type attribute to
2812         htmsimple.
2813         * config/rs6000/dfp.md (extendsddd2, truncddsd2, extendddtd2,
2814         trunctddd2, adddd3, addtd3, subdd3, subtd3, muldd3, multd3, divdd3,
2815         divtd3, *cmpdd_internal1, *cmptd_internal1, floatdidd2, floatditd2,
2816         ftruncdd2, fixdddi2, ftrunctd2, fixtddi2, dfp_ddedpd_<mode>,
2817         dfp_denbcd_<mode>, dfp_dxex_<mode>, dfp_diex_<mode>, dfp_dscli_<mode>,
2818         dfp_dscri_<mode>): Change type attribute to dfp.
2819         * config/rs6000/crypto.md (crypto_vshasigma<CR_char>): Change type
2820         attribute to vecsimple.
2821         * config/rs6000/rs6000.c (power9_cost): Update costs, cache size
2822         and prefetch streams.
2823         (rs6000_option_override_internal): Remove temporary code setting
2824         tuning to power8.  Don't set rs6000_sched_groups for power9.
2825         (last_scheduled_insn): Change to rtx_insn *.
2826         (divide_cnt, vec_load_pendulum): New variables.
2827         (rs6000_adjust_cost): Add Power9 to test for store->load separation.
2828         (rs6000_issue_rate): Set issue rate for Power9.
2829         (is_power9_pairable_vec_type): New.
2830         (power9_sched_reorder2): New.
2831         (rs6000_sched_reorder2): Call new function for Power9 specific
2832         reordering.
2833         (insn_must_be_first_in_group): Remove Power9.
2834         (insn_must_be_last_in_group): Likewise.
2835         (force_new_group): Likewise.
2836         (rs6000_sched_init): Fix initialization of last_scheduled_insn.
2837         Initialize divide_cnt/vec_load_pendulum.
2838         (_rs6000_sched_context, rs6000_init_sched_context,
2839         rs6000_set_sched_context): Handle context save/restore of new
2840         variables.
2841
2842 2016-07-05  Pat Haugen  <pthaugen@us.ibm.com>
2843
2844         Backport from mainline
2845         2016-06-27  Pat Haugen  <pthaugen@us.ibm.com>
2846
2847         * config/rs6000/rs6000.md ('type' attribute): Add
2848         veclogical,veccmpfx,vecexts,vecmove insn types.
2849         (*abs<mode>2_fpr, *nabs<mode>2_fpr, *neg<mode>2_fpr, *extendsfdf2_fpr,
2850         copysign<mode>3_fcpsgn, trunc<mode>df2_internal1, neg<mode>2_internal,
2851         p8_fmrgow_<mode>, pack<mode>): Change type to fpsimple.
2852         (*xxsel<mode>, copysign<mode>3_hard, neg<mode>2_hw, abs<mode>2_hw,
2853         *nabs<mode>2_hw): Change type to vecmove.
2854         (*and<mode>3_internal, *bool<mode>3_internal, *boolc<mode>3_internal,
2855         *boolcc<mode>3_internal, *eqv<mode>3_internal,
2856         *one_cmpl<mode>3_internal, *ieee_128bit_vsx_neg<mode>2_internal,
2857         *ieee_128bit_vsx_abs<mode>2_internal,
2858         *ieee_128bit_vsx_nabs<mode>2_internal, extendkftf2, trunctfkf2,
2859         *ieee128_mfvsrd_64bit, *ieee128_mfvsrd_32bit, *ieee128_mtvsrd_64bit,
2860         *ieee128_mtvsrd_32bit): Change type to veclogical.
2861         (mov<mode>_hardfloat, *mov<mode>_hardfloat32, *mov<mode>_hardfloat64,
2862         *movdi_internal32, *movdi_internal64): Update insn types.
2863         * config/rs6000/vsx.md (*vsx_le_undo_permute_<mode>,
2864         vsx_extract_<mode>): Change type to veclogical.
2865         (*vsx_xxsel<mode>, *vsx_xxsel<mode>_uns): Change type to vecmove.
2866         (vsx_sign_extend_qi_<mode>, *vsx_sign_extend_hi_<mode>,
2867         *vsx_sign_extend_si_v2di): Change type to vecexts.
2868         * config/rs6000/altivec.md (*altivec_mov<mode>, *altivec_movti): Change
2869         type to veclogical.
2870         (*altivec_eq<mode>, *altivec_gt<mode>, *altivec_gtu<mode>,
2871         *altivec_vcmpequ<VI_char>_p, *altivec_vcmpgts<VI_char>_p,
2872         *altivec_vcmpgtu<VI_char>_p): Change type to veccmpfx.
2873         (*altivec_vsel<mode>, *altivec_vsel<mode>_uns): Change type to vecmove.
2874         * config/rs6000/dfp.md (*negdd2_fpr, *absdd2_fpr, *nabsdd2_fpr,
2875         negtd2, *abstd2_fpr, *nabstd2_fpr): Change type to fpsimple.
2876         * config/rs6000/40x.md (ppc405-float): Add fpsimple.
2877         * config/rs6000/440.md (ppc440-fp): Add fpsimple.
2878         * config/rs6000/476.md (ppc476-fp): Add fpsimple.
2879         * config/rs6000/601.md (ppc601-fp): Add fpsimple.
2880         * config/rs6000/603.md (ppc603-fp): Add fpsimple.
2881         * config/rs6000/6xx.md (ppc604-fp): Add fpsimple.
2882         * config/rs6000/7xx.md (ppc750-fp): Add fpsimple.
2883         (ppc7400-vecsimple): Add veclogical, vecmove, veccmpfx.
2884         * config/rs6000/7450.md (ppc7450-fp): Add fpsimple.
2885         (ppc7450-vecsimple): Add veclogical, vecmove.
2886         (ppc7450-veccmp): Add veccmpfx.
2887         * config/rs6000/8540.md (ppc8540_simple_vector): Add veclogical,
2888         vecmove.
2889         (ppc8540_vector_compare): Add veccmpfx.
2890         * config/rs6000/a2.md (ppca2-fp): Add fpsimple.
2891         * config/rs6000/cell.md (cell-fp): Add fpsimple.
2892         (cell-vecsimple): Add veclogical, vecmove.
2893         (cell-veccmp): Add veccmpfx.
2894         * config/rs6000/e300c2c3.md (ppce300c3_fp): Add fpsimple.
2895         * config/rs6000/e6500.md (e6500_vecsimple): Add veclogical, vecmove,
2896         veccmpfx.
2897         * config/rs6000/mpc.md (mpccore-fp): Add fpsimple.
2898         * config/rs6000/power4.md (power4-fp): Add fpsimple.
2899         (power4-vecsimple): Add veclogical, vecmove.
2900         (power4-veccmp): Add veccmpfx.
2901         * config/rs6000/power5.md (power5-fp): Add fpsimple.
2902         * config/rs6000/power6.md (power6-fp): Add fpsimple.
2903         (power6-vecsimple): Add veclogical, vecmove.
2904         (power6-veccmp): Add veccmpfx.
2905         * config/rs6000/power7.md (power7-fp): Add fpsimple.
2906         (power7-vecsimple): Add veclogical, vecmove, veccmpfx.
2907         * config/rs6000/power8.md (power8-fp): Add fpsimple.
2908         (power8-vecsimple): Add veclogical, vecmove, veccmpfx.
2909         * config/rs6000/rs64.md (rs64a-fp): Add fpsimple.
2910         * config/rs6000/titan.md (titan_fp): Add fpsimple.
2911         * config/rs6000/xfpu.md (fp-default, fp-addsub-s, fp-addsub-d): Add
2912         fpsimple.
2913         * config/rs6000/rs6000.c (rs6000_adjust_cost): Add TYPE_FPSIMPLE.
2914
2915 2016-07-05  Kelvin Nilsen  <kelvin@gcc.gnu.org>
2916
2917         Backport from mainline r237391
2918         2016-06-13  Kelvin Nilsen  <kelvin@gcc.gnu.org>
2919
2920         * config/rs6000/rs6000.h (RS6000_BTM_COMMON): Add the
2921         RS6000_BTM_MODULO flag into the set of flags that are considered
2922         to be part of the common configuration.
2923
2924 2016-07-04  Jakub Jelinek  <jakub@redhat.com>
2925
2926         PR c++/71739
2927         * tree.c (attribute_value_equal): Use get_attribute_name instead of
2928         directly using TREE_PURPOSE.
2929
2930 2016-07-04  Segher Boessenkool  <segher@kernel.crashing.org>
2931
2932         Backport from mainline
2933         2016-06-27  Segher Boessenkool  <segher@kernel.crashing.org>
2934
2935         PR target/71670
2936         * config/rs6000/rs6000.md (ashdi3_extswsli_dot): Use
2937         gen_ashdi3_extswsli_dot2 instead of gen_ashdi3_extswsli_dot.
2938
2939 2016-07-02  Jakub Jelinek  <jakub@redhat.com>
2940
2941         Backported from mainline
2942         2016-06-28  Jakub Jelinek  <jakub@redhat.com>
2943
2944         PR middle-end/71626
2945         * config/i386/i386.c (ix86_expand_vector_move): For SUBREG of
2946         a constant, force its SUBREG_REG into memory or register instead
2947         of whole op1.
2948
2949         2016-06-20  Jakub Jelinek  <jakub@redhat.com>
2950
2951         PR target/71559
2952         * config/i386/i386.c (ix86_fp_cmp_code_to_pcmp_immediate): Fix up
2953         returned values and add UN*/LTGT/*ORDERED cases with values matching
2954         D operand modifier on vcmp for AVX.
2955
2956 2016-07-01  Kelvin Nilsen  <kelvin@gcc.gnu.org>
2957
2958         Backport from trunk r237659
2959         2016-06-21  Kelvin Nilsen  <kelvin@gcc.gnu.org>
2960
2961         * config/rs6000/rs6000.h: Add conditional preprocessing directives
2962         to disable Power9-specific compiler features if HAVE_AS_POWER9 is
2963         not defined.
2964
2965 2016-07-01  Peter Bergner  <bergner@vnet.ibm.com>
2966
2967         Backport from trunk
2968         2016-06-27  Peter Bergner  <bergner@vnet.ibm.com>
2969
2970         PR target/71656
2971         * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Add
2972         OPTION_MASK_P9_DFORM_VECTOR.
2973         * config/rs6000/rs6000.c (rs6000_option_override_internal): Do not
2974         disable -mpower9-dform-vector when using reload.
2975         (quad_address_p): Remove 'gpr_p' argument and all associated code.
2976         New 'strict' argument.  Update all callers.  Add strict addressing
2977         support.
2978         (rs6000_legitimate_offset_address_p): Remove call to
2979         virtual_stack_registers_memory_p.
2980         (rs6000_legitimize_reload_address): Add quad address support.
2981         (rs6000_legitimate_address_p): Move call to quad_address_p above
2982         call to virtual_stack_registers_memory_p.  Adjust quad_address_p args
2983         to account for new strict usage.
2984         (rs6000_output_move_128bit): Adjust quad_address_p args to account
2985         for new strict usage.
2986         * config/rs6000/predicates.md (quad_memory_operand): Likewise.
2987
2988 2016-07-01  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2989
2990         Backport from mainline
2991         2016-06-24  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2992
2993         * config/rs6000/rs6000-builtin.def (BU_FLOAT128_2): New #define.
2994         (BU_FLOAT128_1): Likewise.
2995         (FABSQ): Likewise.
2996         (COPYSIGNQ): Likewise.
2997         (RS6000_BUILTIN_NANQ): Likewise.
2998         (RS6000_BUILTIN_NANSQ): Likewise.
2999         (RS6000_BUILTIN_INFQ): Likewise.
3000         (RS6000_BUILTIN_HUGE_VALQ): Likewise.
3001         * config/rs6000/rs6000.c (rs6000_fold_builtin): New prototype.
3002         (TARGET_FOLD_BUILTIN): New #define.
3003         (rs6000_builtin_mask_calculate): Add TARGET_FLOAT128 entry.
3004         (rs6000_invalid_builtin): Add handling for RS6000_BTM_FLOAT128.
3005         (rs6000_fold_builtin): New target hook implementation, handling
3006         folding of 128-bit NaNs and infinities.
3007         (rs6000_init_builtins): Initialize const_str_type_node; ensure all
3008         entries are filled in to avoid problems during bootstrap
3009         self-test; define builtins for 128-bit NaNs and infinities.
3010         (rs6000_opt_mask): Add entry for float128.
3011         * config/rs6000/rs6000.h (RS6000_BTM_FLOAT128): New #define.
3012         (RS6000_BTM_COMMON): Include RS6000_BTM_FLOAT128.
3013         (rs6000_builtin_type_index): Add RS6000_BTI_const_str.
3014         (const_str_type_node): New #define.
3015         * config/rs6000/rs6000.md (copysign<mode>3 for IEEE128): Convert
3016         to a define_expand that dispatches to either copysign<mode>3_soft
3017         or copysign<mode>3_hard.
3018         (copysign<mode>3_hard): Rename from copysign<mode>3.
3019         (copysign<mode>3_soft): New define_insn.
3020         * doc/extend.texi: Document new builtins.
3021
3022 2016-07-01  Peter Bergner  <bergner@vnet.ibm.com>
3023
3024         Backport from trunk
3025         2016-07-01  Peter Bergner  <bergner@vnet.ibm.com>
3026
3027         PR target/71698
3028         * config/rs6000/rs6000.c (rs6000_secondary_reload_simple_move): Disallow
3029         TDmode values.
3030
3031 2016-07-01  Kelvin Nilsen  <kelvin@gcc.gnu.org>
3032
3033         Backport from trunk r236992
3034         2016-06-01  Kelvin Nilsen  <kelvin@gcc.gnu.org>
3035
3036         * config/rs6000/altivec.h (vec_slv): New macro.
3037         (vec_srv): New macro.
3038         * config/rs6000/altivec.md (UNSPEC_VSLV): New value.
3039         (UNSPEC_VSRV): New value.
3040         (vslv): New insn.
3041         (vsrv): New insn.
3042         * config/rs6000/rs6000-builtin.def (vslv): New builtin definition.
3043         (vsrv): New builtin definition.
3044         * config/rs6000/rs6000-c.c (P9V_BUILTIN_VSLV): Macro expansion to
3045         define argument types for new builtin.
3046         (P9V_BUILTIN_VSRV): Macro expansion to define argument types for
3047         new builtin.
3048         * doc/extend.texi: Document the new vec_vslv and vec_srv built-in
3049         functions.
3050
3051 2016-07-01  Eric Botcazou  <ebotcazou@adacore.com>
3052
3053         * config/arm/arm.c (arm_function_ok_for_sibcall): Add another check
3054         for NULL decl.
3055
3056 2016-06-30  Kelvin Nilsen  <kelvin@gcc.gnu.org>
3057
3058         Backport from trunk r237390
3059         2016-06-13  Kelvin Nilsen  <kelvin@gcc.gnu.org>
3060
3061         * config/rs6000/altivec.h (vec_absd): New macro for vector absolute
3062         difference unsigned.
3063         (vec_absdb): New macro for vector absolute difference unsigned
3064         byte.
3065         (vec_absdh): New macro for vector absolute difference unsigned
3066         half-word.
3067         (vec_absdw): New macro for vector absolute difference unsigned word.
3068         * config/rs6000/altivec.md (UNSPEC_VADU): New value.
3069         (vadu<mode>3): New insn.
3070         (*p9_vadu<mode>3): New insn.
3071         * config/rs6000/rs6000-builtin.def (vadub): New built-in
3072         definition.
3073         (vaduh): New built-in definition.
3074         (vaduw): New built-in definition.
3075         (vadu): New overloaded built-in definition.
3076         (vadub): New overloaded built-in definition.
3077         (vaduh): New overloaded built-in definition.
3078         (vaduw): New overloaded built-in definition.
3079         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
3080         overloaded vector absolute difference unsigned functions.
3081         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
3082         the ISA 3.0 vector absolute difference unsigned built-in functions.
3083
3084 2016-06-30  David Malcolm  <dmalcolm@redhat.com>
3085
3086         Backport from trunk r237880.
3087         2016-06-30  David Malcolm  <dmalcolm@redhat.com>
3088
3089         PR driver/71651
3090         * gcc.c (driver::build_option_suggestions): Pass "option" to
3091         add_misspelling_candidates.
3092         * opts-common.c (add_misspelling_candidates): Add "option" param;
3093         use it to avoid adding negated forms for options marked with
3094         RejectNegative.
3095         * opts.h (add_misspelling_candidates): Add "option" param.
3096
3097 2016-06-30  Jakub Jelinek  <jakub@redhat.com>
3098
3099         PR middle-end/71693
3100         * fold-const.c (fold_binary_loc) <case RROTATE_EXPR>: Cast
3101         TREE_OPERAND (arg0, 0) and TREE_OPERAND (arg0, 1) to type
3102         first when permuting bitwise operation with rotate.  Cast
3103         TREE_OPERAND (arg0, 0) to type when cancelling two rotations.
3104
3105 2016-06-30  Martin Liska  <mliska@suse.cz>
3106
3107         Parting backport from mainline
3108         2016-06-29  Martin Liska  <mliska@suse.cz>
3109
3110         * ipa-inline-transform.c (inline_call): Remove unnecessary call
3111         of build_optimization_node.
3112
3113 2016-06-29  Eric Botcazou  <ebotcazou@adacore.com>
3114
3115         Backport from mainline
3116         2016-06-09  Eric Botcazou  <ebotcazou@adacore.com>
3117
3118         * df-problems.c (df_note_bb_compute): Guard use of DF_INSN_INFO_GET.
3119
3120 2016-06-27  Michael Meissner  <meissner@linux.vnet.ibm.com>
3121
3122         Back port from trunk
3123         2016-06-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
3124
3125         * stor-layout.c (layout_type): Move setting complex MODE to
3126         layout_type, instead of setting it ahead of time by the caller.
3127
3128         Back port from trunk
3129         2016-05-11  Alan Modra  <amodra@gmail.com>
3130
3131         * config/rs6000/rs6000.c (is_complex_IBM_long_double,
3132         abi_v4_pass_in_fpr): New functions.
3133         (rs6000_function_arg_boundary): Exclude complex IBM long double
3134         from 64-bit alignment when ABI_V4.
3135         (rs6000_function_arg, rs6000_function_arg_advance_1,
3136         rs6000_gimplify_va_arg): Use abi_v4_pass_in_fpr.
3137
3138         Back port from trunk
3139         2016-05-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
3140
3141         * machmode.h (mode_complex): Add support to give the complex mode
3142         for a given mode.
3143         (GET_MODE_COMPLEX_MODE): Likewise.
3144         * stor-layout.c (layout_type): For COMPLEX_TYPE, use the mode
3145         stored by build_complex_type and gfc_build_complex_type instead of
3146         trying to figure out the appropriate mode based on the size. Raise
3147         an assertion error, if the type was not set.
3148         * genmodes.c (struct mode_data): Add field for the complex type of
3149         the given type.
3150         (blank_mode): Likewise.
3151         (make_complex_modes): Remember the complex mode created in the
3152         base type.
3153         (emit_mode_complex): Write out the mode_complex array to map a
3154         type mode to the complex version.
3155         (emit_insn_modes_c): Likewise.
3156         * tree.c (build_complex_type): Set the complex type to use before
3157         calling layout_type.
3158         * config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Add
3159         support for __float128 complex datatypes.
3160         (rs6000_hard_regno_mode_ok): Likewise.
3161         (rs6000_setup_reg_addr_masks): Likewise.
3162         (rs6000_complex_function_value): Likewise.
3163         * config/rs6000/rs6000.h (FLOAT128_IEEE_P): Likewise.
3164         __float128 and __ibm128 complex.
3165         (FLOAT128_IBM_P): Likewise.
3166         (ALTIVEC_ARG_MAX_RETURN): Likewise.
3167         * doc/extend.texi (Additional Floating Types): Document that
3168         -mfloat128 must be used to enable __float128.  Document complex
3169         __float128 and __ibm128 support.
3170
3171 2016-06-24  Jakub Jelinek  <jakub@redhat.com>
3172
3173         PR tree-optimization/71647
3174         * omp-low.c (lower_rec_input_clauses): Convert
3175         omp_clause_aligned_alignment (c) to size_type_node for the
3176         last argument of __builtin_assume_aligned.
3177
3178 2016-06-22  Eric Botcazou  <ebotcazou@adacore.com>
3179
3180         * function.c (assign_parm_setup_reg): Prevent sharing in another case.
3181
3182 2016-06-21  Georg-Johann Lay  <avr@gjlay.de>
3183
3184         Backport from 2016-06-21 trunk r237639.
3185
3186         PR target/30417
3187         * config/avr/gen-avr-mmcu-specs.c (print_mcu):
3188         [*link_data_start]: Wrap -Tdata into %{!Tdata:...}.
3189         [*link_text_start]: Wrap -Ttext into %{!Ttext:...}.
3190
3191 2016-06-21  Georg-Johann Lay  <avr@gjlay.de>
3192
3193         PR target/71103
3194         * config/avr/avr.md (movqi): Only handle loading subreg:qi of
3195         constant addresses if can_create_pseudo_p.
3196
3197 2016-06-21  Jakub Jelinek  <jakub@redhat.com>
3198
3199         PR tree-optimization/71588
3200         * tree-ssa-strlen.c (valid_builtin_call): New function.
3201         (adjust_last_stmt, handle_builtin_memset, strlen_optimize_stmt): Use
3202         it.
3203
3204         Backported from mainline
3205         2016-06-20  Jakub Jelinek  <jakub@redhat.com>
3206
3207         PR middle-end/71581
3208         * tree-ssa-uninit.c (warn_uninit): If EXPR and VAR are NULL,
3209         see if T isn't anonymous SSA_NAME with COMPLEX_EXPR created
3210         for conversion of scalar user var to complex type and use the
3211         underlying SSA_NAME_VAR in that case.  If EXPR is still NULL,
3212         punt.
3213
3214         2016-06-16  Jakub Jelinek  <jakub@redhat.com>
3215
3216         * gimplify.c (gimplify_scan_omp_clauses): Handle COMPONENT_REFs
3217         with base of reference to struct.
3218
3219 2016-06-20  Ilya Enkovich  <ilya.enkovich@intel.com>
3220
3221         Backport from mainline r237484.
3222         2016-06-15  Ilya Enkovich  <ilya.enkovich@intel.com>
3223
3224         PR middle-end/71529
3225         * ipa-chkp.c (chkp_build_instrumented_fndecl): Fix
3226         DECL_CONTEXT for copied arguments.
3227
3228 2016-06-20  Georg-Johann Lay  <avr@gjlay.de>
3229             Pitchumani Sivanupandi  <pitchumani.s@atmel.com>
3230
3231         Backport from 2016-06-20 trunk r237589, r236558.
3232
3233         PR target/71103
3234         * config/avr/avr.md (movqi): Handle loading subreg:qi (const,
3235         symbol_ref,label_ref).
3236
3237 2016-06-16  Jakub Jelinek  <jakub@redhat.com>
3238
3239         PR target/71554
3240         * config/i386/i386.md (setcc + movzbl peephole2): Use reg_set_p.
3241         (setcc + and peephole2): Likewise.
3242
3243 2016-06-15  Andreas Tobler  <andreast@gcc.gnu.org>
3244
3245         Backported from mainline
3246         2016-06-14  Andreas Tobler  <andreast@gcc.gnu.org>
3247
3248         * config/arm/freebsd.h: Only enable unaligned access for armv6 on
3249         FreeBSD 11 and above.
3250
3251 2016-06-15  Ilya Verbin  <ilya.verbin@intel.com>
3252
3253         Backport from mainline
3254         2016-04-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3255
3256         * config/darwin.h (LINK_COMMAND_SPEC_A): Handle -fcilkplus.
3257
3258 2016-06-14  Jakub Jelinek  <jakub@redhat.com>
3259
3260         Backported from mainline
3261         2016-06-10  Jakub Jelinek  <jakub@redhat.com>
3262
3263         PR middle-end/71494
3264         * tree-nested.c (convert_nonlocal_reference_stmt): For GIMPLE_GOTO
3265         without LABEL_DECL, set *handled_ops_p to false instead of true.
3266
3267         2016-06-08  Jakub Jelinek  <jakub@redhat.com>
3268                     Richard Biener  <rguenther@suse.de>
3269
3270         PR c++/71448
3271         * fold-const.c (fold_comparison): Handle CONSTANT_CLASS_P (base0)
3272         the same as DECL_P (base0) for indirect_base0.  Use equality_code
3273         in one further place.
3274
3275         2016-06-04  Jakub Jelinek  <jakub@redhat.com>
3276
3277         PR tree-optimization/71405
3278         * tree-ssa.c (execute_update_addresses_taken): For clobber with
3279         incompatible type, build a new clobber with the right type instead
3280         of building a VIEW_CONVERT_EXPR around it.
3281
3282 2016-06-13  Eric Botcazou  <ebotcazou@adacore.com>
3283
3284         * tree-ssa-sccvn.c (vn_reference_lookup_3): Use a uniform test and
3285         update shared_lookup_references only once after changing operands.
3286
3287 2016-06-13  Richard Biener  <rguenther@suse.de>
3288
3289         PR tree-optimization/71505
3290         * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Make
3291         assert match comment.
3292
3293 2016-06-13  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
3294
3295         Backport from mainline
3296         2016-06-13  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
3297
3298         PR target/71379
3299         * config/s390/s390.c (s390_expand_builtin): Increase MAX_ARGS by
3300         one.
3301
3302 2016-06-10  Thomas Schwinge  <thomas@codesourcery.com>
3303
3304         PR middle-end/71373
3305         Backport from trunk r237291:
3306         * tree-nested.c (convert_nonlocal_omp_clauses)
3307         (convert_local_omp_clauses): Handle OMP_CLAUSE_ASYNC,
3308         OMP_CLAUSE_WAIT, OMP_CLAUSE_INDEPENDENT, OMP_CLAUSE_AUTO,
3309         OMP_CLAUSE__CACHE_, OMP_CLAUSE_TILE.
3310
3311         Backport from trunk r237291:
3312         * gimplify.c (gimplify_adjust_omp_clauses): Discard
3313         OMP_CLAUSE_TILE.
3314         * omp-low.c (scan_sharing_clauses): Don't expect OMP_CLAUSE_TILE.
3315
3316         Backport from trunk r237290:
3317         * omp-low.c (scan_sharing_clauses): Don't expect
3318         OMP_CLAUSE__CACHE_.
3319
3320         Backport trunk r235964:
3321         2016-05-06  Nathan Sidwell  <nathan@codesourcery.com>
3322
3323         * gimple.c (gimple_call_same_target_p): Unique functions are eq.
3324         * tree-ssa-tail-merge.c (same_succ::equal): Check pointer eq
3325         equality first.
3326
3327 2016-06-10  Maxim Ostapenko  <m.ostapenko@samsung.com>
3328
3329         PR sanitizer/71480
3330         * varasm.c (place_block_symbol): Adjust alignment for asan protected
3331         STRING_CSTs even if TREE_CONSTANT_POOL_ADDRESS_P.
3332
3333 2016-06-09  Michael Meissner  <meissner@linux.vnet.ibm.com>
3334
3335         Back port from trunk
3336         2016-05-31  Michael Meissner  <meissner@linux.vnet.ibm.com>
3337
3338         * config/rs6000/vsx.md (vsx_splat_<mode>, V2DI/V2DF): Simplify
3339         alternatives, eliminating preferred register class.  Add support
3340         for the MTVSRDD instruction in ISA 3.0.
3341         (vsx_splat_v4si_internal): Use splat_input_operand instead of
3342         reg_or_indexed_operand.
3343         (vsx_splat_v4sf_internal): Likewise.
3344
3345         Back port from trunk
3346         2016-05-31  Michael Meissner  <meissner@linux.vnet.ibm.com>
3347
3348         PR target/71186
3349         * config/rs6000/vsx.md (xxspltib_<mode>_nosplit): Add alternatives
3350         for loading up all 0's or all 1's.
3351
3352         Back port from trunk
3353         2016-05-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
3354
3355         PR target/70915
3356         * config/rs6000/constraints.md (wE constraint): New constraint
3357         for a vector constant that can be loaded with XXSPLTIB.
3358         (wM constraint): New constraint for a vector constant of a 1's.
3359         (wS constraint): New constraint for a vector constant that can be
3360         loaded with XXSPLTIB and a vector sign extend instruction.
3361         * config/rs6000/predicates.md (xxspltib_constant_split): New
3362         predicates for wE/wS constraints.
3363         (xxspltib_constant_nosplit): Likewise.
3364         (easy_vector_constant): Add support for constants that can be
3365         loaded via XXSPLTIB.
3366         (splat_input_operand): Add support for ISA 3.0 word splat operations.
3367         * config/rs6000/rs6000.c (xxspltib_constant_p): New function to
3368         return if a constant can be loaded with the ISA 3.0 XXSPLTIB
3369         instruction and possibly with a sign extension.
3370         (output_vec_const_move): Add support for XXSPLTIB. If we are
3371         loading up 0/-1 into Altivec registers, prefer using VSPLTISW
3372         instead of XXLXOR/XXLORC.
3373         (rs6000_expand_vector_init): Add support for ISA 3.0 word splat
3374         operations.
3375         (rs6000_legitimize_reload_address): Likewise.
3376         (rs6000_output_move_128bit): Use output_vec_const_move to emit
3377         constants.
3378         * config/rs6000/vsx.md (VSX_M): Add TImode (if -mvsx-timode) and
3379         combine VSX_M and VSX_M2 into one iterator.
3380         (VSX_M2): Likewise.
3381         (VSINT_84): New iterators for loading constants with XXSPLTIB.
3382         (VSINT_842): Likewise.
3383         (UNSPEC_VSX_SIGN_EXTEND): New UNSPEC.
3384         (xxspltib_v16qi): New insns to load up constants with the ISA 3.0
3385         XXSPLTIB instruction.
3386         (xxspltib_<mode>_nosplit): Likewise.
3387         (xxspltib_<mode>_split): New insn to load up constants with
3388         XXSPLTIB and a sign extend instruction.
3389         (vsx_mov<mode>): Replace single move that handled all vector types
3390         with separate 32-bit and 64-bit moves.  Combine the movti_<bit>
3391         moves (when -mvsx-timode is in effect) into the main vector
3392         moves.  Eliminate separate moves for <VSr> <VSa>, where the
3393         preferred register class (<VSr>) is listed first, and the
3394         secondary register class (<VSa>) is listed second with a '?' to
3395         discourage use.  Prefer loading 0/-1 in any VSX register for ISA
3396         3.0, and Altivec registers for ISA 2.06/2.07 (PR target/70915) so
3397         that if the register was involved in a slow operation, the
3398         clear/set operation does not wait for the slow operation to
3399         finish.  Adjust the length attributes for 32-bit mode.  Use
3400         rs6000_output_move_128bit and drop the use of the string
3401         instructions for 32-bit movti when -mvsx-timode is in effect.  Use
3402         spacing so that the alternatives and attributes don't generate
3403         long lines, and put things in columns, so that it is easier to
3404         match up the operands and attributes with the insn alternatives.
3405         (vsx_mov<mode>_64bit): Likewise.
3406         (vsx_mov<mode>_32bit): Likewise.
3407         (vsx_movti_64bit): Fold movti into normal vector moves.
3408         (vsx_movti_32bit): Likewise.
3409         (vsx_splat_<mode>, V4SI/V4SF modes): Add support for ISA 3.0 word
3410         splat instructions.
3411         (vsx_splat_v4si_internal): Likewise.
3412         (vsx_splat_v4sf_internal): Likewise.
3413         (vector fusion peepholes): Use VSX_M instead of VSX_M2.
3414         (vsx_sign_extend_qi_<mode>): New ISA 3.0 instructions to sign
3415         extend vector elements.
3416         (vsx_sign_extend_hi_<mode>): Likewise.
3417         (vsx_sign_extend_si_v2di): Likewise.
3418         * config/rs6000/rs6000-protos.h (xxspltib_constant_p): Add
3419         declaration.
3420         * doc/md.texi (PowerPC constraints): Document the wE, wM, and wS
3421         constraints.  Add trailing period to wL documentation.
3422
3423 2016-06-08  Jose E. Marchesi  <jose.marchesi@oracle.com>
3424
3425         Backport from mainline
3426         2016-06-08  Jose E. Marchesi  <jose.marchesi@oracle.com>
3427
3428         * config/sparc/driver-sparc.c (cpu_names): Fix the entry for the
3429         SPARC-M7 and add an entry for SPARC-S7 cpus (Sonoma).
3430
3431 2016-06-08  Eric Botcazou  <ebotcazou@adacore.com>
3432
3433         Backport from mainline
3434         2016-06-06  Jose E. Marchesi  <jose.marchesi@oracle.com>
3435
3436         * config/sparc/sparc.md (cpu): Add niagara7 cpu type.
3437         Include the M7 SPARC DFA scheduler.
3438         New attribute v3pipe.
3439         Annotate insns with v3pipe where appropriate.
3440         Define cpu_feature vis4.
3441         Add lzd instruction type and set it on clzdi_sp64 and clzsi_sp64.
3442         Add (V8QI "8") to vbits.
3443         Add insns {add,sub}v8qi3
3444         Add insns ss{add,sub}v8qi3
3445         Add insns us{add,sub}{v8qi,v4hi}3
3446         Add insns {min,max}{v8qi,v4hi,v2si}3
3447         Add insns {minu,maxu}{v8qi,v4hi,v2si}3
3448         Add insns fpcmp{le,gt,ule,ug,ule,ugt}{8,16,32}_vis.
3449         * config/sparc/niagara4.md: Add a comment explaining the
3450         discrepancy between the documented latenty numbers and the
3451         implemented ones.
3452         * config/sparc/niagara7.md: New file.
3453         * configure.ac (HAVE_AS_SPARC5_VIS4): Define if the assembler
3454         supports SPARC5 and VIS 4.0 instructions.
3455         * configure: Regenerate.
3456         * config.in: Likewise.
3457         * config.gcc: niagara7 is a supported cpu in sparc*-*-* targets.
3458         * config/sparc/sol2.h (ASM_CPU32_DEFAUILT_SPEC): Set for
3459         TARGET_CPU_niagara7.
3460         (ASM_CPU64_DEFAULT_SPEC): Likewise.
3461         (CPP_CPU_SPEC): Handle niagara7.
3462         (ASM_CPU_SPEC): Likewise.
3463         * config/sparc/sparc-opts.h (processor_type): Add
3464         PROCESSOR_NIAGARA7.
3465         (mvis4): New option.
3466         * config/sparc/sparc.h (TARGET_CPU_niagara7): Define.
3467         (AS_NIAGARA7_FLAG): Define.
3468         (ASM_CPU64_DEFAULT_SPEC): Set for niagara7.
3469         (CPP_CPU64_DEFAULT_SPEC): Likewise.
3470         (CPP_CPU_SPEC): Handle niagara7.
3471         (ASM_CPU_SPEC): Likewise.
3472         * config/sparc/sparc.c (niagara7_costs): Define.
3473         (sparc_option_override): Handle niagara7 and adjust cache-related
3474         parameters with better values for niagara cpus.  Also support VIS4.
3475         (sparc32_initialize_trampoline): Likewise.
3476         (sparc_use_sched_lookahead): Likewise.
3477         (sparc_issue_rate): Likewise.
3478         (sparc_register_move_cost): Likewise.
3479         (dump_target_flag_bits): Support VIS4.
3480         (sparc_vis_init_builtins): Likewise.
3481         (sparc_builtins): Likewise.
3482         * config/sparc/sparc-c.c (sparc_target_macros): Define __VIS__ for
3483         VIS4 4.0.
3484         * config/sparc/driver-sparc.c (cpu_names): Add SPARC-M7 and
3485         UltraSparc M7.
3486         * config/sparc/sparc.opt (sparc_processor_type): New value
3487         niagara7.
3488         * config/sparc/visintrin.h (__attribute__): Prototypes for the
3489         VIS4 builtins.
3490         * doc/invoke.texi (SPARC Options): Document -mcpu=niagara7 and
3491         -mvis4.
3492         * doc/extend.texi (SPARC VIS Built-in Functions): Document the
3493         VIS4 builtins.
3494
3495         2016-05-30  Jose E. Marchesi  <jose.marchesi@oracle.com>
3496
3497         * config.gcc (sparc*-*-*): Support cpu_32, cpu_64, tune_32 and
3498         tune_64.
3499         * doc/install.texi (--with-cpu-32, --with-cpu-64): Document
3500         support on SPARC.
3501         * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): Add entries for
3502         cpu_32, cpu_64, tune_32 and tune_64.
3503         * config/sparc/sol2.h (OPTION_DEFAULT_SPECS): Likewise.
3504
3505 2016-06-08  Ilya Verbin  <ilya.verbin@intel.com>
3506
3507         Backport from mainline
3508         2016-05-25  Ilya Verbin  <ilya.verbin@intel.com>
3509
3510         * config/i386/i386-builtin-types.def: Add V16SI_FTYPE_V16SF,
3511         V8DF_FTYPE_V8DF_ROUND, V16SF_FTYPE_V16SF_ROUND, V16SI_FTYPE_V16SF_ROUND.
3512         * config/i386/i386.c (enum ix86_builtins): Add
3513         IX86_BUILTIN_CVTPS2DQ512_MASK, IX86_BUILTIN_FLOORPS512,
3514         IX86_BUILTIN_FLOORPD512, IX86_BUILTIN_CEILPS512, IX86_BUILTIN_CEILPD512,
3515         IX86_BUILTIN_TRUNCPS512, IX86_BUILTIN_TRUNCPD512,
3516         IX86_BUILTIN_CVTPS2DQ512, IX86_BUILTIN_VEC_PACK_SFIX512,
3517         IX86_BUILTIN_FLOORPS_SFIX512, IX86_BUILTIN_CEILPS_SFIX512,
3518         IX86_BUILTIN_ROUNDPS_AZ_SFIX512.
3519         (builtin_description bdesc_args): Add __builtin_ia32_floorps512,
3520         __builtin_ia32_ceilps512, __builtin_ia32_truncps512,
3521         __builtin_ia32_floorpd512, __builtin_ia32_ceilpd512,
3522         __builtin_ia32_truncpd512, __builtin_ia32_cvtps2dq512,
3523         __builtin_ia32_vec_pack_sfix512, __builtin_ia32_roundps_az_sfix512,
3524         __builtin_ia32_floorps_sfix512, __builtin_ia32_ceilps_sfix512.
3525         Change IX86_BUILTIN_CVTPS2DQ512 to IX86_BUILTIN_CVTPS2DQ512_MASK for
3526         __builtin_ia32_cvtps2dq512_mask.
3527         (ix86_expand_args_builtin): Handle V8DF_FTYPE_V8DF_ROUND,
3528         V16SF_FTYPE_V16SF_ROUND, V16SI_FTYPE_V16SF_ROUND, V16SI_FTYPE_V16SF.
3529         (ix86_builtin_vectorized_function): Handle builtins mentioned above.
3530         * config/i386/sse.md
3531         (<mask_codefor>avx512f_fix_notruncv16sfv16si<mask_name><round_name>):
3532         Rename to ...
3533         (avx512f_fix_notruncv16sfv16si<mask_name><round_name>): ... this.
3534         (<mask_codefor>avx512f_cvtpd2dq512<mask_name><round_name>): Rename
3535         to ...
3536         (avx512f_cvtpd2dq512<mask_name><round_name>): ... this.
3537         (avx512f_vec_pack_sfix_v8df): New define_expand.
3538         (avx512f_roundpd512): Rename to ...
3539         (avx512f_round<castmode>512): ... this.  Change iterator.
3540         (avx512f_roundps512_sfix): New define_expand.
3541         (round<mode>2_sfix): Change iterator.
3542
3543 2016-06-07  Peter Bergner  <bergner@vnet.ibm.com>
3544
3545         Backport from mainline
3546         2016-06-07  Peter Bergner  <bergner@vnet.ibm.com>
3547
3548         * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mhtm and
3549         -mno-htm.
3550
3551 2016-06-07  Uros Bizjak  <ubizjak@gmail.com>
3552
3553         PR target/71389
3554         * config/i386/i386.c (ix86_avx256_split_vector_move_misalign):
3555         Copy op1 RTX to avoid invalid sharing.
3556         (ix86_expand_vector_move_misalign): Ditto.
3557
3558 2016-06-06  Jakub Jelinek  <jakub@redhat.com>
3559
3560         PR tree-optimization/71259
3561         * tree-vect-slp.c (vect_get_constant_vectors): For
3562         VECTOR_BOOLEAN_TYPE_P, return all ones constant instead of
3563         one for constant op, and use COND_EXPR for non-constant.
3564
3565 2016-06-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3566
3567         Backport from trunk
3568         2016-06-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3569
3570         PR target/70830
3571         * config/arm/arm.c (arm_output_multireg_pop): Guard "pop" on update.
3572
3573 2016-06-05  Uros Bizjak  <ubizjak@gmail.com>
3574
3575         Backport from mainline
3576         2016-06-01  Uros Bizjak  <ubizjak@gmail.com>
3577                     Jocelyn Mayer  <l_indien@magic.fr>
3578
3579         PR target/67310
3580         * config/i386/driver-i386.c (host_detect_local_cpu): Correctly
3581         detect processor family for signature_CENTAUR_ebx.
3582         <case PROCESSOR_I486>: Pass c3, winchip2 or winchip-c6 for
3583         signature_CENTAUR_ebx.
3584         <case PROCESSOR _PENTIUMPRO>: Pass c3-2 for signature_CENTAUR_ebx.
3585         <default>: Pass x86-64 for has_longmode.
3586
3587 2016-06-03  Jakub Jelinek  <jakub@redhat.com>
3588
3589         PR middle-end/71387
3590         * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): If redirecting
3591         to noreturn e->callee->decl that has void return type and void
3592         arguments, adjust gimple_call_fntype and remove lhs even if it had
3593         previously addressable type.
3594
3595 2016-06-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
3596
3597         Back port from trunk
3598         2016-05-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
3599
3600         * config/rs6000/rs6000.c (rs6000_emit_p9_fp_minmax): New function
3601         for ISA 3.0 min/max support.
3602         (rs6000_emit_p9_fp_cmove): New function for ISA 3.0 floating point
3603         conditional move support.
3604         (rs6000_emit_cmove): Call rs6000_emit_p9_fp_minmax and
3605         rs6000_emit_p9_fp_cmove if the ISA 3.0 instructions are
3606         available.
3607         * config/rs6000/rs6000.md (SFDF2): New iterator to allow doing
3608         conditional moves where the comparison type is different from move
3609         type.
3610         (fp_minmax): New code iterator for smin/smax.
3611         (minmax): New code attributes for min/max.
3612         (SMINMAX): Likewise.
3613         (smax<mode>3): Combine min, max insns into one insn using the
3614         fp_minmax code iterator.  Add support for ISA 3.0 min/max
3615         instructions that don't need -ffast-math.
3616         (s<minmax><mode>3): Likewise.
3617         (smax<mode>3_vsx): Likewise.
3618         (smin<mode>3): Likewise.
3619         (s<minmax><mode>3_vsx): Likewise.
3620         (smin<mode>3_vsx): Likewise.
3621         (pre-VSX min/max splitters): Likewise.
3622         (s<minmax><mode>3_fpr): Likewise.
3623         (movsfcc): Rewrite floating point conditional moves to combine
3624         SFmode/DFmode into a single insn.
3625         (mov<mode>cc): Likewise.
3626         (movdfcc): Likewise.
3627         (fselsfsf4): Combine FSEL cases into a single insn, using SFDF and
3628         SFDF2 iterators to handle all combinations.
3629         (fseldfsf4): Likewise.
3630         (fsel<SFDF:mode><SFDF2:mode>4): Likewise.
3631         (fseldfdf4): Likewise.
3632         (fselsfdf4): Likewise.
3633         (mov<SFDF:mode><SFDF2:mode>cc_p9): Add support for the ISA 3.0
3634         comparison instructions that set a 0/-1 mask, and use it for
3635         floating point conditional move via XXSEL.
3636         (fpmask<mode>): Likewise.
3637         (xxsel<mode>): Likewise.
3638         * config/rs6000/predicates.md (min_max_operator): Delete, no
3639         longer used.
3640         (fpmask_comparison_operaton): New insn for ISA 3.0 comparison
3641         instructions that generate a 0/-1 mask for use with XXSEL.
3642         * config/rs6000/rs6000.h (TARGET_MINMAX_SF): New helper macros to
3643         say whether floating point min/max is available, either through
3644         FSEL, ISA 2.06 min/max, and ISA 3.0 min/max instrucitons.
3645         (TARGET_MINMAX_DF): Likewise.
3646
3647         Back port from trunk
3648         2016-05-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
3649
3650         * config/rs6000/predicate.md (all_ones_constant): New predicate
3651         for vector constant with all 1's set.
3652
3653 2016-06-02  Kelvin Nilsen  <kelvin@gcc.gnu.org>
3654
3655         Back port from trunk
3656         2016-05-19  Kelvin Nilsen  <kelvin@gcc.gnu.org>
3657
3658         * config/rs6000/altivec.md (UNSPEC_DARN): New unspec constant.
3659         (UNSPEC_DARN_32): New unspec constant.
3660         (UNSPEC_DARN_RAW): New unspec constant.
3661         (darn_32): New instruction.
3662         (darn_raw): New instruction.
3663         (darn): New instruction.
3664         * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_0): Add
3665         support and documentation for this macro.
3666         (BU_P9_MISC_1): New macro definition.
3667         (BU_P9_64BIT_MISC_0): New macro definition.
3668         (BU_P9_MISC_0): New macro definition.
3669         (darn_32): New builtin definition.
3670         (darn_raw): New builtin definition.
3671         (darn): New builtin definition.
3672         * config/rs6000/rs6000.c: Add #define RS6000_BUILTIN_0 and #undef
3673         RS6000_BUILTIN_0 directives to surround each occurrence of
3674         #include "rs6000-builtin.def".
3675         (rs6000_builtin_mask_calculate): Add in the RS6000_BTM_MODULO and
3676         RS6000_BTM_64BIT flags to the returned mask, depending on
3677         configuration.
3678         (def_builtin): Correct an error in the assignments made to the
3679         debugging variable attr_string.
3680         (rs6000_expand_builtin): Add support for no-operand built-in
3681         functions.
3682         (builtin_function_type): Remove fatal_error assertion that is no
3683         longer valid.
3684         (rs6000_common_init_builtins): Add support for no-operand built-in
3685         functions.
3686         * config/rs6000/rs6000.h (RS6000_BTM_MODULO): New macro
3687         definition.
3688         (RS6000_BTM_PURE): Enhance comment to clarify intent of this flag
3689         definition.
3690         (RS6000_BTM_64BIT): New macro definition.
3691         * doc/extend.texi: Document __builtin_darn (void),
3692         __builtin_darn_raw (void), and __builtin_darn_32 (void) built-in
3693         functions.
3694
3695 2016-06-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
3696
3697         Back port from trunk
3698         2016-05-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
3699
3700         PR target/71201
3701         * config/rs6000/altivec.md (altivec_vperm_<mode>_internal): Drop
3702         ISA 3.0 xxperm fusion alternative.
3703         (altivec_vperm_v8hiv16qi): Likewise.
3704         (altivec_vperm_<mode>_uns_internal): Likewise.
3705         (vperm_v8hiv4si): Likewise.
3706         (vperm_v16qiv8hi): Likewise.
3707
3708         Back port from trunk
3709         2016-05-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
3710                     Kelvin Nilsen  <kelvin@gcc.gnu.org>
3711
3712         * config/rs6000/rs6000.c (rs6000_expand_vector_set): Generate
3713         vpermr/xxpermr on ISA 3.0.
3714         (altivec_expand_vec_perm_le): Likewise.
3715         * config/rs6000/altivec.md (UNSPEC_VPERMR): New unspec.
3716         (altivec_vpermr_<mode>_internal): Add VPERMR/XXPERMR support for
3717         ISA 3.0.
3718
3719         Back port from trunk
3720         2016-05-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
3721
3722         * config/rs6000/altivec.md (VParity): New mode iterator for vector
3723         parity built-in functions.
3724         (p9v_ctz<mode>2): Add support for ISA 3.0 vector count trailing
3725         zeros.
3726         (p9v_parity<mode>2): Likewise.
3727         * config/rs6000/vector.md (VEC_IP): New mode iterator for vector
3728         parity.
3729         (ctz<mode>2): ISA 3.0 expander for vector count trailing zeros.
3730         (parity<mode>2): ISA 3.0 expander for vector parity.
3731         * config/rs6000/rs6000-builtin.def (BU_P9_MISC_1): New macros for
3732         power9 built-ins.
3733         (BU_P9_64BIT_MISC_0): Likewise.
3734         (BU_P9_MISC_0): Likewise.
3735         (BU_P9V_AV_1): Likewise.
3736         (BU_P9V_AV_2): Likewise.
3737         (BU_P9V_AV_3): Likewise.
3738         (BU_P9V_AV_P): Likewise.
3739         (BU_P9V_VSX_1): Likewise.
3740         (BU_P9V_OVERLOAD_1): Likewise.
3741         (BU_P9V_OVERLOAD_2): Likewise.
3742         (BU_P9V_OVERLOAD_3): Likewise.
3743         (VCTZB): Add vector count trailing zeros support.
3744         (VCTZH): Likewise.
3745         (VCTZW): Likewise.
3746         (VCTZD): Likewise.
3747         (VPRTYBD): Add vector parity support.
3748         (VPRTYBQ): Likewise.
3749         (VPRTYBW): Likewise.
3750         (VCTZ): Add overloaded vector count trailing zeros support.
3751         (VPRTYB): Add overloaded vector parity support.
3752         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
3753         overloaded vector count trailing zeros and parity instructions.
3754         * config/rs6000/rs6000.md (wd mode attribute): Add V1TI and TI for
3755         vector parity support.
3756         * config/rs6000/altivec.h (vec_vctz): Add ISA 3.0 vector count
3757         trailing zeros support.
3758         (vec_cntlz): Likewise.
3759         (vec_vctzb): Likewise.
3760         (vec_vctzd): Likewise.
3761         (vec_vctzh): Likewise.
3762         (vec_vctzw): Likewise.
3763         (vec_vprtyb): Add ISA 3.0 vector parity support.
3764         (vec_vprtybd): Likewise.
3765         (vec_vprtybw): Likewise.
3766         (vec_vprtybq): Likewise.
3767         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
3768         the ISA 3.0 vector count trailing zeros and vector parity built-in
3769         functions.
3770
3771         Back port from trunk
3772         2016-05-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
3773
3774         * config/rs6000/altivec.md (VNEG iterator): New iterator for
3775         VNEGW/VNEGD instructions.
3776         (p9_neg<mode>2): New insns for ISA 3.0 VNEGW/VNEGD.
3777         (neg<mode>2): Add expander for V2DImode added in ISA 2.07, and
3778         support for ISA 3.0 VNEGW/VNEGD instructions.
3779
3780         Back port from trunk
3781         2016-05-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
3782
3783         * config/rs6000/predicates.md (quad_memory_operand): Move most of
3784         the code into quad_address_p and call it to share code with
3785         vsx_quad_dform_memory_operand.
3786         (vsx_quad_dform_memory_operand): New predicate for ISA 3.0 vector
3787         d-form support.
3788         * config/rs6000/rs6000.opt (-mlra): Switch to being an option mask
3789         bit instead of being a separate word.  Split -mpower9-dform into
3790         two switches, -mpower9-dform-scalar and -mpower9-dform-vector.
3791         * config/rs6000/rs6000.c (RELOAD_REG_QUAD_OFFSET): New addr_mask
3792         for the register class supporting 128-bit quad word memory offsets.
3793         (mode_supports_vsx_dform_quad): Helper function to return if the
3794         register class uses quad word memory offsets.
3795         (rs6000_debug_addr_mask): Add support for quad word memory offsets.
3796         (rs6000_debug_reg_global): Always print if we are using LRA or not.
3797         (rs6000_setup_reg_addr_masks): If ISA 3.0 vector d-form
3798         instructions are enabled, set up the appropriate addr_masks for
3799         128-bit types.
3800         (rs6000_init_hard_regno_mode_ok): wb constraint is now based on
3801         -mpower9-dform-scalar, instead of -mpower9-dform.
3802         (rs6000_option_override_internal): Split -mpower9-dform into two
3803         switches, -mpower9-dform-scalar and -mpower9-dform-vector.  The
3804         -mpower9-dform switch sets or clears both.  If we are not using
3805         the LRA register allocator, do not enable -mpower9-dform-vector by
3806         default.  If we are using LRA, enable -mpower9-dform-vector and
3807         -mvsx-timode if it is appropriate.  Issue a warning if either
3808         -mpower9-dform-vector or -mvsx-timode are explicitly used without
3809         enabling LRA.
3810         (quad_address_offset_p): New helper function to return if the
3811         offset is legal for quad word memory instructions.
3812         (quad_address_p): New function to determin if GPR or vector
3813         register quad word memory addresses are legal.
3814         (mem_operand_gpr): Validate quad word address offsets.
3815         (reg_offset_addressing_ok_p): Add support for ISA 3.0 vector
3816         d-form (register + offset) instructions.
3817         (offsettable_ok_by_alignment): Likewise.
3818         (rs6000_legitimate_offset_address_p): Likewise.
3819         (legitimate_lo_sum_address_p): Likewise.
3820         (rs6000_legitimize_address): Likewise.
3821         (rs6000_legitimize_reload_address): Add more debug statements for
3822         -mdebug=addr.
3823         (rs6000_legitimate_address_p): Add support for ISA 3.0 vector
3824         d-form instructions.
3825         (rs6000_secondary_reload_memory): Add support for ISA 3.0 vector
3826         d-form instructions.  Distinguish different cases in debug
3827         output. (rs6000_secondary_reload_inner): Add support for ISA 3.0 vector
3828         d-form instructions.
3829         (rs6000_preferred_reload_class): Likewise.
3830         (rs6000_output_move_128bit): Add support for ISA 3.0 d-form
3831         instructions.  If ISA 3.0 is available, generate lxvx/stxvx instead
3832         of the ISA 2.06 indexed memory instructions.
3833         (rs6000_emit_prologue): If we have ISA 3.0 d-form instructions,
3834         use them to save/restore the saved vector registers instead of
3835         using Altivec instructions.
3836         (rs6000_emit_epilogue): Likewise.
3837         (rs6000_lra_p): Use TARGET_LRA instead of the old option word.
3838         (rs6000_opt_masks): Split -mpower9-dform into
3839         -mpower9-dform-scalar and -mpower9-dform-vector.
3840         (rs6000_print_options_internal): Print -mno-<switch> if <switch>
3841         was not selected.
3842         * config/rs6000/vsx.md (p9_vecload_<mode>): Delete hack to emit
3843         ISA 3.0 vector indexed memory instructions, and fold the code into
3844         the normal mov<mode> patterns.
3845         (p9_vecstore_<mode>): Likewise.
3846         (vsx_mov<mode>): Add support for ISA 3.0 vector d-form
3847         instructions.
3848         (vsx_movti_64bit): Likewise.
3849         (vsx_movti_32bit): Likewise.
3850         * config/rs6000/constraints.md (wO constraint): New constraint for
3851         ISA 3.0 vector d-form support.
3852         * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Use
3853         -mpower9-dform-scalar instead of -mpower9-dform.  Add note not to
3854         include -mpower9-dform-vector until we switch over to LRA.
3855         (POWERPC_MASKS): Add -mlra. Split -mpower9-dform into two.
3856         switches, -mpower9-dform-scalar and -mpower9-dform-vector.
3857         * config/rs6000/rs6000-protos.h (quad_address_p): Add declaration.
3858         * doc/invoke.texi (RS/6000 and PowerPC Options): Add documentation
3859         for -mpower9-dform and -mlra.
3860         * doc/md.texi (wO constraint): Document wO constraint.
3861
3862 2016-06-01  Eric Botcazou  <ebotcazou@adacore.com>
3863
3864         * tree-vect-loop.c (vect_determine_vectorization_factor): Also compute
3865         the factor for live Phi nodes.
3866
3867 2016-06-01  Jakub Jelinek  <jakub@redhat.com>
3868
3869         PR middle-end/71371
3870         * gimplify.c (gimplify_omp_for): Temporarily clear gimplify_omp_ctxp
3871         around creation of the temporary.
3872
3873 2016-06-01  Eric Botcazou  <ebotcazou@adacore.com>
3874
3875         * tree-vect-loop.c (vect_determine_vectorization_factor): Also take
3876         into account live statements for mask producers.
3877
3878 2016-05-31  Richard Biener  <rguenther@suse.de>
3879
3880         Backport from mainline
3881         2016-05-11  Richard Biener  <rguenther@suse.de>
3882
3883         PR debug/71057
3884         * dwarf2out.c (retry_incomplete_types): Set early_dwarf.
3885         (dwarf2out_finish): Move retry_incomplete_types call ...
3886         (dwarf2out_early_finish): ... here.
3887
3888 2016-05-31  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3889
3890         PR target/71056
3891         * config/arm/arm-builtins.c (arm_builtin_vectorized_function): Return
3892         NULL_TREE early if NEON is not available.  Remove now redundant check
3893         in ARM_CHECK_BUILTIN_MODE.
3894
3895 2016-05-31  Tom de Vries  <tom@codesourcery.com>
3896
3897         backport:
3898         2016-05-31  Tom de Vries  <tom@codesourcery.com>
3899
3900         PR tree-optimization/69068
3901         * graphite-isl-ast-to-gimple.c (copy_bb_and_scalar_dependences): Handle
3902         phis with more than two args.
3903
3904 2016-05-30  Andreas Tobler  <andreast@gcc.gnu.org>
3905
3906         Backport from mainline
3907         2016-05-30  Andreas Tobler  <andreast@gcc.gnu.org>
3908
3909         * config.gcc: Move hard float support for arm*hf*-*-freebsd* into
3910         armv6*-*-freebsd* for FreeBSD 11. Eliminate the arm*hf*-*-freebsd*
3911         target.
3912
3913 2016-05-30  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
3914
3915         Backport from mainline
3916         2016-04-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
3917
3918         * config/rs6000/altivec.h: Change definitions of vec_xl and
3919         vec_xst.
3920         * config/rs6000/rs6000-builtin.def (LD_ELEMREV_V2DF): New.
3921         (LD_ELEMREV_V2DI): New.
3922         (LD_ELEMREV_V4SF): New.
3923         (LD_ELEMREV_V4SI): New.
3924         (LD_ELEMREV_V8HI): New.
3925         (LD_ELEMREV_V16QI): New.
3926         (ST_ELEMREV_V2DF): New.
3927         (ST_ELEMREV_V2DI): New.
3928         (ST_ELEMREV_V4SF): New.
3929         (ST_ELEMREV_V4SI): New.
3930         (ST_ELEMREV_V8HI): New.
3931         (ST_ELEMREV_V16QI): New.
3932         (XL): New.
3933         (XST): New.
3934         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
3935         descriptions for VSX_BUILTIN_VEC_XL and VSX_BUILTIN_VEC_XST.
3936         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Map from
3937         TARGET_P9_VECTOR to RS6000_BTM_P9_VECTOR.
3938         (altivec_expand_builtin): Add handling for
3939         VSX_BUILTIN_ST_ELEMREV_<MODE> and VSX_BUILTIN_LD_ELEMREV_<MODE>.
3940         (rs6000_invalid_builtin): Add error-checking for
3941         RS6000_BTM_P9_VECTOR.
3942         (altivec_init_builtins): Define builtins used to implement vec_xl
3943         and vec_xst.
3944         (rs6000_builtin_mask_names): Define power9-vector.
3945         * config/rs6000/rs6000.h (MASK_P9_VECTOR): Define.
3946         (RS6000_BTM_P9_VECTOR): Define.
3947         (RS6000_BTM_COMMON): Include RS6000_BTM_P9_VECTOR.
3948         * config/rs6000/vsx.md (vsx_ld_elemrev_v2di): New define_insn.
3949         (vsx_ld_elemrev_v2df): Likewise.
3950         (vsx_ld_elemrev_v4sf): Likewise.
3951         (vsx_ld_elemrev_v4si): Likewise.
3952         (vsx_ld_elemrev_v8hi): Likewise.
3953         (vsx_ld_elemrev_v16qi): Likewise.
3954         (vsx_st_elemrev_v2df): Likewise.
3955         (vsx_st_elemrev_v2di): Likewise.
3956         (vsx_st_elemrev_v4sf): Likewise.
3957         (vsx_st_elemrev_v4si): Likewise.
3958         (vsx_st_elemrev_v8hi): Likewise.
3959         (vsx_st_elemrev_v16qi): Likewise.
3960         * doc/extend.texi: Add prototypes for vec_xl and vec_xst.  Correct
3961         grammar.
3962
3963 2016-05-30  Richard Biener  <rguenther@suse.de>
3964
3965         Backport from mainline
3966         2016-05-11  Richard Biener  <rguenther@suse.de>
3967
3968         PR middle-end/71002
3969         * alias.c (reference_alias_ptr_type): Preserve alias-set zero
3970         if the langhook insists on it.
3971         * fold-const.c (make_bit_field_ref): Add arg for the original
3972         reference and preserve its alias-set.
3973         (decode_field_reference): Take exp by reference and adjust it
3974         to the original memory reference.
3975         (optimize_bit_field_compare): Adjust callers.
3976         (fold_truth_andor_1): Likewise.
3977
3978         2016-05-13  Jakub Jelinek  <jakub@redhat.com>
3979
3980         PR bootstrap/71071
3981         * fold-const.c (fold_checksum_tree): Allow modification
3982         of TYPE_ALIAS_SET during folding.
3983
3984 2016-05-30  Eric Botcazou  <ebotcazou@adacore.com>
3985
3986         * config/visium/visium.c (visium_split_double_add): Minor tweaks.
3987         (visium_expand_copysign): Use gen_int_mode directly.
3988         (visium_compute_frame_size): Minor tweaks.
3989
3990 2016-05-30  Tom de Vries  <tom@codesourcery.com>
3991
3992         backport:
3993         2016-05-30  Tom de Vries  <tom@codesourcery.com>
3994
3995         PR tree-optimization/69067
3996         * graphite-isl-ast-to-gimple.c (get_def_bb_for_const): Remove assert.
3997
3998 2016-05-27  Eric Botcazou  <ebotcazou@adacore.com>
3999
4000         * config/visium/visium-protos.h (split_double_move): Rename into...
4001         (visium_split_double_move): ...this.
4002         (visium_split_double_add): Declare.
4003         * config/visium/visium.c (split_double_move): Rename into...
4004         (visium_split_double_move): ...this.
4005         (visium_split_double_add): New function.
4006         (visium_expand_copysign): Renumber operands for consistency.
4007         * config/visium/visium.md (DImode move splitter): Adjust to renaming.
4008         (DFmode move splitter): Likewise.
4009         (*addi3_insn): Split by means of visium_split_double_add.
4010         (*adddi3_insn_flags): Delete.
4011         (*plus_plus_sltu<subst_arith>): New insn.
4012         (*subdi3_insn): Split by means of visium_split_double_add.
4013         (subdi3_insn_flags): Delete.
4014         (*minus_minus_sltu<subst_arith>): New insn.
4015         (*negdi2_insn): Split by means of visium_split_double_add.
4016         (*negdi2_insn_flags): Delete.
4017
4018 2016-05-27  Ilya Enkovich  <ilya.enkovich@intel.com>
4019
4020         Backport from mainline r236810.
4021         2016-05-27  Ilya Enkovich  <ilya.enkovich@intel.com>
4022
4023         PR middle-end/71279
4024         * fold-const.c (fold_ternary_loc): Don't fold VEC_COND_EXPR
4025         into comparison.
4026
4027 2016-05-25  Eric Botcazou  <ebotcazou@adacore.com>
4028
4029         * tree-ssa-phiopt.c (factor_out_conditional_conversion): Remove
4030         redundant test and bail out if the type of the new operand is not
4031         a GIMPLE register type after stripping a VIEW_CONVERT_EXPR.
4032
4033 2016-05-24  Martin Sebor  <msebor@redhat.com>
4034
4035         PR c++/71147
4036         * tree.h (complete_or_array_type_p): New inline function.
4037
4038 2016-05-24  Jakub Jelinek  <jakub@redhat.com>
4039
4040         * config/i386/i386.h (TARGET_AVOID_4BYTE_PREFIXES): Define.
4041         * config/i386/constraints.md (Yr): Test TARGET_AVOID_4BYTE_PREFIXES
4042         rather than X86_TUNE_AVOID_4BYTE_PREFIXES.  Use SSE_REGS instead
4043         of ALL_SSE_REGS.  Return SSE_REGS also when TARGET_AVX.
4044
4045 2016-05-24  Jakub Jelinek  <jakub@redhat.com>
4046
4047         PR c++/71257
4048         * tree-vect-stmts.c (vectorizable_simd_clone_call): Handle
4049         SIMD_CLONE_ARG_TYPE_LINEAR_REF_CONSTANT_STEP like
4050         SIMD_CLONE_ARG_TYPE_LINEAR_CONSTANT_STEP.  Add
4051         SIMD_CLONE_ARG_TYPE_LINEAR_VAL_CONSTANT_STEP and
4052         SIMD_CLONE_ARG_TYPE_LINEAR_UVAL_CONSTANT_STEP cases explicitly.
4053
4054 2016-05-23  Martin Jambor  <mjambor@suse.cz>
4055
4056         * hsa-gen.c (gen_hsa_insns_for_switch_stmt): Create an empty
4057         default block if a PHI node in the original one would be resized.
4058
4059 2016-05-23  Martin Jambor  <mjambor@suse.cz>
4060
4061         PR tree-optimization/70884
4062         * tree-sra.c (initialize_constant_pool_replacements): Do not check
4063         should_scalarize_away_bitmap and cannot_scalarize_away_bitmap bits.
4064         (sort_and_splice_var_accesses): Do not consider multiple scalar reads
4065         of constant pool data as a reason for scalarization.
4066
4067 2016-05-20  Eric Botcazou  <ebotcazou@adacore.com>
4068
4069         * config/arm/arm.c (arm_expand_prologue): Set the stack usage to 0
4070         for naked functions.
4071         (thumb1_expand_prologue): Likewise.
4072
4073 2016-05-20  Jakub Jelinek  <jakub@redhat.com>
4074
4075         PR c++/71210
4076         * gimple-fold.c (gimple_fold_call): Do not remove lhs of noreturn
4077         calls if the LHS is variable length or has addressable type.
4078         If targets[0]->decl is a noreturn call with void return type and
4079         zero arguments, adjust fntype and remove lhs in that case.
4080
4081 2016-05-20  Uros Bizjak  <ubizjak@gmail.com>
4082
4083         * sched-deps.c (sched_analyze_2) <case TRAP_IF>: Also
4084         force pending loads from memory.
4085
4086 2016-05-19  Marek Polacek  <polacek@redhat.com>
4087
4088         Backport from mainline
4089         2016-05-19  Marek Polacek  <polacek@redhat.com>
4090
4091         PR tree-optimization/71031
4092         * tree-vrp.c (extract_range_from_binary_expr_1): Turn assert into a
4093         condition and adjust the code a bit.
4094
4095 2016-05-19  Martin Jambor  <mjambor@suse.cz>
4096
4097         PR ipa/70646
4098         * ipa-prop.c (determine_locally_known_aggregate_parts): Bail out early
4099         if parameter PARAM_IPA_MAX_AGG_ITEMS is zero.
4100
4101 2016-05-19  Martin Jambor  <mjambor@suse.cz>
4102
4103         PR ipa/70646
4104         * ipa-inline.h (condition): New field size.
4105         * ipa-inline-analysis.c (add_condition): New parameter SIZE, use it
4106         for comaprison and store it into the new condition.
4107         (evaluate_conditions_for_known_args): Use condition size to check
4108         access sizes for all but CHANGED conditions.
4109         (unmodified_parm_1): New parameter size_p, store access size into it.
4110         (unmodified_parm): Likewise.
4111         (unmodified_parm_or_parm_agg_item): Likewise.
4112         (eliminated_by_inlining_prob): Pass NULL to unmodified_parm as size_p.
4113         (set_cond_stmt_execution_predicate): Extract access sizes and store
4114         them to conditions.
4115         (set_switch_stmt_execution_predicate): Likewise.
4116         (will_be_nonconstant_expr_predicate): Likewise.
4117         (will_be_nonconstant_predicate): Likewise.
4118         (inline_read_section): Stream condition size.
4119         (inline_write_summary): Likewise.
4120         * lto-streamer.h (LTO_minor_version): Bump.
4121
4122 2016-05-18  Martin Liska  <mliska@suse.cz>
4123
4124         Backport from mainline
4125         2016-05-18  Martin Liska  <mliska@suse.cz>
4126
4127         PR fortran/70856
4128         * ipa-icf.c (sem_variable::merge): Set DECL_PT_UID for
4129         merged variables.
4130
4131 2016-05-18  Jakub Jelinek  <jakub@redhat.com>
4132
4133         PR c++/71100
4134         * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Don't drop
4135         lhs if it has TREE_ADDRESSABLE type.
4136
4137 2016-05-18  Uros Bizjak  <ubizjak@gmail.com>
4138
4139         PR target/71145
4140         * config/alpha/alpha.md (trap): Add (use (reg:DI 29)).
4141         (*exception_receiver_1): Return "#" for TARGET_EXPLICIT_RELOCS.
4142
4143 2016-05-17  Thomas Schwinge  <thomas@codesourcery.com>
4144
4145         Backport trunk r235748:
4146         PR target/70860
4147         * config/nvptx/nvptx.c (nvptx_libcall_value): Handle NULL cfun.
4148         (nvptx_function_value): Assert non-NULL cfun.
4149
4150 2016-05-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4151
4152         Backport from mainline
4153         2016-05-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4154
4155         PR target/70809
4156         * config/aarch64/aarch64-simd.md (aarch64_vmls<mode>): Delete.
4157
4158 2016-05-16  Martin Jambor  <mjambor@suse.cz>
4159
4160         * hsa-gen.c (fillup_for_decl): Increase alignment to natural one.
4161         (get_symbol_for_decl): Sorry if a global symbol in under-aligned.
4162
4163 2016-05-16  Martin Jambor  <mjambor@suse.cz>
4164
4165         PR hsa/70857
4166         * omp-low.c (grid_expand_target_grid_body): Copy RESULT_DECL of
4167         the outlined kernel function.
4168
4169 2016-05-16  James Norris  <jnorris@codesourcery.com>
4170
4171         Backport from mainline r236098.
4172         2016-05-10  James Norris  <jnorris@codesourcery.com>
4173
4174         PR driver/68463
4175         * config/rs6000/sysv4.h (CRTOFFLOADBEGIN): Define. Add crtoffloadbegin.o
4176         if offloading is enabled and -fopenacc or -fopenmp is specified.
4177         (CRTOFFLOADEND): Likewise.
4178         (STARTFILE_LINUX_SPEC): Add CRTOFFLOADBEGIN.
4179         (ENDFILE_LINUX_SPEC): Add CRTOFFLOADEND.
4180
4181 2016-05-16  Alan Modra  <amodra@gmail.com>
4182
4183         Apply from mainline
4184         2016-05-10  Alan Modra  <amodra@gmail.com>
4185         PR target/70947
4186         * config/rs6000/rs6000.c (rs6000_expand_split_stack_prologue): Stop
4187         regrename modifying insns saving lr before __morestack call.
4188         * config/rs6000/rs6000.md (split_stack_return): Similarly for
4189         insns restoring lr after __morestack call.
4190
4191 2016-05-13  Richard Biener  <rguenther@suse.de>
4192
4193         Backport from mainline
4194         2016-04-27  Richard Biener  <rguenther@suse.de>
4195
4196         PR ipa/70760
4197         * tree-ssa-structalias.c (find_func_aliases_for_call): Use
4198         aggregate_value_p to determine if a function result is
4199         returned by reference.
4200
4201         2016-05-06  Richard Biener  <rguenther@suse.de>
4202
4203         PR middle-end/70931
4204         * dwarf2out.c (native_encode_initializer): Skip zero-sized fields.
4205
4206         2016-05-06  Richard Biener  <rguenther@suse.de>
4207
4208         PR middle-end/70941
4209         * fold-const.c (split_tree): Always convert to the original type
4210         before negating.
4211
4212 2016-05-12  Martin Liska  <mliska@suse.cz>
4213
4214         Backport from mainline
4215         2016-05-10  Martin Liska  <mliska@suse.cz>
4216
4217         * tree-inline.c (remap_dependence_clique): Do not remap
4218         debugging statements.
4219
4220 2016-05-12  Ilya Enkovich  <ilya.enkovich@intel.com>
4221
4222         Backport from mainline r236171.
4223         2016-05-12  Ilya Enkovich  <ilya.enkovich@intel.com>
4224
4225         PR tree-optimization/71006
4226         * tree-vect-loop.c (vect_determine_vectorization_factor): Don't
4227         consider COND_EXPR as a mask producer.
4228
4229 2016-05-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4230
4231         Backport from mainline
4232         2016-05-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4233
4234         PR target/70830
4235         * config/arm/arm.c (arm_output_multireg_pop): Avoid POP instruction
4236         when popping the PC and within an interrupt handler routine.
4237         Add missing tab to output of "ldmfd".
4238         (output_return_instruction): Output LDMFD with SP update rather
4239         than POP when returning from interrupt handler.
4240
4241 2016-05-11  Ilya Enkovich  <ilya.enkovich@intel.com>
4242
4243         Backport from mainline r236088.
4244         2016-05-10  Ilya Enkovich  <ilya.enkovich@intel.com>
4245
4246         PR middle-end/70877
4247         * tree-chkp.c (chkp_add_bounds_to_call_stmt): Handle
4248         calls with type casted fndecl.
4249
4250 2016-05-11  Ilya Enkovich  <ilya.enkovich@intel.com>
4251
4252         Backport from mainline r236086.
4253         2016-05-10  Ilya Enkovich  <ilya.enkovich@intel.com>
4254
4255         PR tree-optimization/70876
4256         * tree-chkp.c (chkp_find_bounds_1): Support WITH_SIZE_EXPR.
4257         * gcc/calls.c (initialize_argument_information): Bind bounds
4258         with corresponding args passed by reference.
4259
4260 2016-05-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
4261
4262         Backport from mainline
4263         2016-05-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
4264
4265         PR target/70963
4266         * config/rs6000/vsx.md (vsx_xvcvdpsxds_scale): Generate correct
4267         code for a zero scale factor.
4268         (vsx_xvcvdpuxds_scale): Likewise.
4269
4270 2016-05-10  Jakub Jelinek  <jakub@redhat.com>
4271
4272         Backported from mainline
4273         2016-05-03  Jakub Jelinek  <jakub@redhat.com>
4274
4275         PR tree-optimization/70916
4276         * tree-vect-patterns.c (vect_recog_mask_conversion_pattern): Give up
4277         if COND_EXPR rhs1 is neither SSA_NAME nor COMPARISON_CLASS_P.
4278
4279 2016-05-10  Yuri Rumyantsev  <ysrumyan@gmail.com>
4280
4281         Backport from mainline r235962.
4282         2016-05-06  Yuri Rumyantsev  <ysrumyan@gmail.com>
4283
4284         PR debug/70935
4285         * tree-ssa-loop-unswitch.c (find_loop_guard): Reject guard edge with
4286         loop latch destination.
4287
4288 2016-05-10  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
4289
4290         Backport from mainline
4291         2016-05-10  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
4292
4293         * config/s390/s390.md ("*vec_cmp<insn_cmp>df_cconly")
4294         ("*fixuns_truncdfdi2_z13")
4295         ("*fixuns_trunc<FP:mode><GPR:mode>2_z196")
4296         ("*fix_truncdfdi2_bfp_z13", "*floatunsdidf2_z13")
4297         ("*extendsfdf2_z13"): Replace TARGET_Z13 with TARGET_VX.
4298
4299 2016-05-10  Sebastian Huber  <sebastian.huber@embedded-brains.de>
4300
4301         Backport from mainline
4302         2016-04-27  Sebastian Huber  <sebastian.huber@embedded-brains.de>
4303
4304         * config/rtems.h (LIB_SPEC): Add -latomic.
4305
4306 2016-05-10  Sebastian Huber  <sebastian.huber@embedded-brains.de>
4307
4308         Backport from mainline
4309         2016-04-27  Joel Sherrill  <joel@rtems.org>
4310
4311         * config/microblaze/rtems.h: Redefine LINK_SPEC to avoid
4312         xilink.ld and flags not relevant to RTEMS.
4313
4314 2016-05-09  Uros Bizjak  <ubizjak@gmail.com>
4315
4316         * config/i386/i386.md (absneg splitters with general regs): Use
4317         general_reg_operand predicate.
4318         (btsq peephole2): Use x86_64_immediate_operand to check if new
4319         value is suitable for immediate operand.  Generate emitted insn
4320         using RTL expressions.
4321         (btcq peephole2): Ditto.
4322         (btrq peephole2): Ditto.  Generate correct immediate operand
4323         for AND masking.
4324
4325 2016-05-07  Tom de Vries  <tom@codesourcery.com>
4326
4327         backport:
4328         2016-05-07  Tom de Vries  <tom@codesourcery.com>
4329
4330         PR tree-optimization/70956
4331         * graphite-scop-detection.c (build_cross_bb_scalars_def): Handle NULL
4332         def.
4333
4334 2016-05-06  Marek Polacek  <polacek@redhat.com>
4335
4336         Backported from mainline
4337         2016-05-06  Marek Polacek  <polacek@redhat.com>
4338
4339         PR sanitizer/70875
4340         * ubsan.c (get_ubsan_type_info_for_type): Remove assert.
4341
4342 2016-05-06  Marek Polacek  <polacek@redhat.com>
4343
4344         Backported from mainline
4345         2016-04-29  Marek Polacek  <polacek@redhat.com>
4346                     Jakub Jelinek  <jakub@redhat.com>
4347
4348         PR sanitizer/70342
4349         * fold-const.c (tree_single_nonzero_warnv_p): For TARGET_EXPR, use
4350         TARGET_EXPR_SLOT as a base.
4351
4352 2016-05-04  Eric Botcazou  <ebotcazou@adacore.com>
4353
4354         * tree-ssa-coalesce.c (gimple_can_coalesce_p): Fix reference in head
4355         comment.
4356         (compute_samebase_partition_bases): Fix typo.
4357
4358 2016-05-03  Pierre-Marie de Rodat  <derodat@adacore.com>
4359
4360         * dwarf2out.c (resolve_args_picking_1): Replace the frame_offset
4361         occurence with frame_offset_ ones.
4362
4363 2016-04-28  Jakub Jelinek  <jakub@redhat.com>
4364
4365         PR target/70858
4366         * config/i386/i386.c (bdesc_special_args): Add | OPTION_MASK_ISA_64BIT
4367         to __builtin_ia32_lwpval64 and __builtin_ia32_lwpins64.
4368         (bdesc_args): Add | OPTION_MASK_ISA_64BIT to __builtin_ia32_bextr_u64,
4369         __builtin_ia32_bextri_u64, __builtin_ia32_bzhi_di,
4370         __builtin_ia32_pdep_di and __builtin_ia32_pext_di.
4371
4372 2016-04-28  Eric Botcazou  <ebotcazou@adacore.com>
4373
4374         Backport from mainline
4375         2016-04-27  Eric Botcazou  <ebotcazou@adacore.com>
4376
4377         PR ada/70759
4378         * stor-layout.h (internal_reference_types): Delete.
4379         * stor-layout.c (reference_types_internal): Likewise.
4380         (internal_reference_types): Likewise.
4381         (layout_type) <REFERENCE_TYPE>: Adjust.
4382
4383 2016-04-27  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
4384
4385         Backport from mainline
4386         2016-04-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
4387
4388         * config/rs6000/rs6000-builtin.def: Correct pasto error for
4389         stxvd2x and stxvw4x built-in functions.
4390
4391 2016-04-27  H.J. Lu  <hongjiu.lu@intel.com>
4392
4393         Backported from mainline
4394         2016-04-21  H.J. Lu  <hongjiu.lu@intel.com>
4395
4396         PR target/70750
4397         * config/i386/predicates.md (call_insn_operand): Replace
4398         sibcall_memory_operand with memory_operand.
4399
4400 2016-04-27  Richard Biener  <rguenther@suse.de>
4401
4402         PR ipa/70785
4403         * tree-ssa-structalias.c (refered_from_nonlocal_fn): New
4404         function cummulating used_from_other_partition, externally_visible
4405         and force_output from aliases.
4406         (refered_from_nonlocal_var): Likewise.
4407         (ipa_pta_execute): Use call_for_symbol_and_aliases to cummulate
4408         node flags properly.
4409
4410 2016-04-27  Jakub Jelinek  <jakub@redhat.com>
4411
4412         Backported from mainline
4413         2016-04-23  Jakub Jelinek  <jakub@redhat.com>
4414
4415         PR sanitizer/70712
4416         * cfgexpand.c (expand_stack_vars): Fix typo.
4417
4418         2016-04-19  Jakub Jelinek  <jakub@redhat.com>
4419
4420         PR middle-end/70680
4421         * gimplify.c (gimplify_omp_for): Call omp_notice_variable for
4422         implicitly linear or lastprivate iterator on the outer context.
4423
4424 2016-04-27  Kirill Yukhin  <kirill.yukhin@intel.com>
4425
4426         PR target/70728
4427         * gcc/config/i386/sse.md (define_insn "<shift_insn><mode>3<mask_name>"):
4428         Extract AVX-512BW constraint from AVX.
4429
4430 2016-04-27  Jakub Jelinek  <jakub@redhat.com>
4431
4432         * BASE-VER: Set to 6.1.1.
4433
4434 2016-04-27  Release Manager
4435
4436         * GCC 6.1.0 released.
4437
4438 2016-04-25  Richard Biener  <rguenther@suse.de>
4439
4440         PR tree-optimization/70780
4441         * tree-ssa-pre.c (compute_antic_aux): Also return true if the block
4442         wasn't visited yet.
4443         (compute_antic): Mark blocks with abnormal preds as visited as
4444         they have a final empty antic-in solution already.
4445
4446 2016-04-22  H.J. Lu  <hongjiu.lu@intel.com>
4447
4448         Backport from mainline
4449         2016-04-20  H.J. Lu  <hongjiu.lu@intel.com>
4450
4451         * doc/invoke.texi: Replace -skip-rax-setup with -mskip-rax-setup.
4452
4453 2016-04-22  Szabolcs Nagy  <szabolcs.nagy@arm.com>
4454
4455         * system.h (list, map, set, vector): Include conditionally.
4456         * auto-profile.c (INCLUDE_MAP, INCLUDE_SET): Define.
4457         * graphite-isl-ast-to-gimple.c (INCLUDE_MAP): Define.
4458         * ipa-icf.c (INCLUDE_LIST): Define.
4459         * config/aarch64/cortex-a57-fma-steering.c (INCLUDE_LIST): Define.
4460         * config/sh/sh.c (INCLUDE_VECTOR): Define.
4461         * config/sh/sh_treg_combine.cc (INCLUDE_ALGORITHM): Define.
4462         (INCLUDE_LIST, INCLUDE_VECTOR): Define.
4463         * cp/logic.cc (INCLUDE_LIST): Define.
4464         * fortran/trans-common.c (INCLUDE_MAP): Define.
4465
4466 2016-04-22  Szabolcs Nagy  <szabolcs.nagy@arm.com>
4467
4468         * auto-profile.c: Remove <string.h> include.
4469         * ipa-icf-gimple.c: Remove <list> include.
4470         * diagnostic.c: Remove <new> include.
4471         * genmatch.c: Likewise.
4472         * pretty-print.c: Likewise.
4473         * toplev.c: Likewise
4474         * c/c-objc-common.c: Likewise.
4475         * cp/error.c: Likewise.
4476         * fortran/error.c: Likewise.
4477
4478 2016-04-21  Richard Biener  <rguenther@suse.de>
4479
4480         PR middle-end/70747
4481         * fold-const.c (fold_comparison): Return properly typed
4482         constant boolean.
4483
4484 2016-04-20  Andrew Pinski  <apinski@cavium.com>
4485             Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4486
4487         PR target/64971
4488         * config/aarch64/aarch64.md (sibcall): Force call
4489         address to be DImode for ILP32.
4490         (sibcall_value): Likewise.
4491
4492 2016-04-20  Marek Polacek  <polacek@redhat.com>
4493
4494         * tree-if-conv.c (is_false_predicate): For NULL_TREE return false
4495         rather than true.
4496
4497 2016-04-20  Marek Polacek  <polacek@redhat.com>
4498
4499         PR tree-optimization/70725
4500         * tree-if-conv.c (is_false_predicate): New function.
4501         (predicate_mem_writes): Use it.
4502
4503 2016-04-20  Richard Biener  <rguenther@suse.de>
4504
4505         PR tree-optimization/70726
4506         * tree-vect-stmts.c (vectorizable_shift): Do not use scalar
4507         shift amounts from a pattern stmt operand.
4508
4509 2016-04-20  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
4510
4511         PR target/70674
4512         * config/s390/s390.c (s390_restore_gprs_from_fprs): Pick the new
4513         stack_restore_from_fpr pattern when restoring r15.
4514         (s390_optimize_prologue): Strip away the memory barrier in the
4515         parallel when trying to get rid of restore insns.
4516         * config/s390/s390.md ("stack_restore_from_fpr"): New insn
4517         definition for loading the stack pointer from an FPR.  Compared to
4518         the normal move insn this pattern includes a full memory barrier.
4519
4520 2016-04-19  Richard Biener  <rguenther@suse.de>
4521
4522         PR tree-optimization/70724
4523         * tree-ssa-sccvn.c (scc_vn_restore_ssa_info): Split SSA info
4524         restoring out from ...
4525         (free_scc_vn): ... here.
4526         * tree-ssa-sccvn.h (scc_vn_restore_ssa_info): Declare.
4527         * tres-ssa-pre.c (pass_pre::execute): Restore SSA info before
4528         tail merging.
4529         (pass_fre::execute): Restore SSA info.
4530
4531 2016-04-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4532
4533         * doc/install.texi (Specific, i?86-*-solaris2.10): Update gas and
4534         gld requirements.
4535         (Specific, *-*-solaris2*): Update Solaris 11 bundled gcc
4536         versions.
4537         Mention Solaris 11 packaging changes.
4538         Update gas and gld requirements.
4539         Remove reference to pre-Solaris 10 bug.
4540         (Specific, sparc-sun-solaris2*): Remove reference to pre-Solaris 10
4541         systems and bugs.
4542         (Specific, sparc64-*-solaris2*): Remove reference to bootstrap
4543         with cc.
4544
4545 2016-04-18  Matthew Wahab  <matthew.wahab@arm.com>
4546
4547         PR target/70711
4548         * config/arm/bpabi.h (BE8_LINK_SPEC): Add entries for armv8+crc,
4549         armv8.1-a and armv8.1-a+crc.
4550
4551 2016-04-18  Segher Boessenkool  <segher@kernel.crashing.org>
4552
4553         * has-brig.c (lendian16): Don't try to use __builtin_bswap16
4554         unless compiling with at least GCC-4.8.
4555
4556 2016-04-15  Kirill Yukhin  <kirill.yukhin@intel.com>
4557
4558         PR target/70662
4559         * config/i386/sse.md (define_insn "<avx512>_vec_dup<mode><mask_name>"):
4560         Fix mode size check.
4561
4562 2016-04-15  Jakub Jelinek  <jakub@redhat.com>
4563
4564         * BASE-VER: Set to 6.0.1.
4565         * DEV-PHASE: Set to prerelease.
4566
4567 2016-04-15  Alexander Monakov  <amonakov@ispras.ru>
4568
4569         * config/nvptx/nvptx.opt (moptimize): Add a period at end of help text.
4570
4571 2016-04-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4572
4573         * doc/invoke.texi (ARM Options): Add note on deprecation of pre-ARMv4T
4574         architecture revisions.
4575
4576 2016-04-15  Bernd Schmidt  <bschmidt@redhat.com>
4577
4578         * config/i386/i386-protos.h (ix86_using_red_zone): Declare.
4579         * config/i386/i386.c (ix86_using_red_zone): No longer static.
4580         * config/i386/i386.md (stack decrement to push peepholes): Guard
4581         with !x86_using_red_zone ().
4582
4583 2016-04-15  Jakub Jelinek  <jakub@redhat.com>
4584
4585         PR c++/70675
4586         * tree-pretty-print.c (do_niy): Add FLAGS argument, pass it down
4587         to dump_generic_node.
4588         (NIY): Pass also flags to do_niy.
4589
4590 2016-04-15  Thomas Schwinge  <thomas@codesourcery.com>
4591
4592         * omp-low.c (simd_clone_struct_alloc, simd_clone_struct_copy)
4593         (simd_clone_vector_of_formal_parm_types)
4594         (simd_clone_clauses_extract, simd_clone_compute_base_data_type)
4595         (simd_clone_mangle, simd_clone_create)
4596         (simd_clone_adjust_return_type, create_tmp_simd_array)
4597         (simd_clone_adjust_argument_types, simd_clone_init_simd_arrays)
4598         (struct modify_stmt_info, ipa_simd_modify_stmt_ops)
4599         (ipa_simd_modify_function_body, simd_clone_linear_addend)
4600         (simd_clone_adjust, expand_simd_clones, ipa_omp_simd_clone)
4601         (pass_data_omp_simd_clone, class pass_omp_simd_clone)
4602         (pass_omp_simd_clone::gate, make_pass_omp_simd_clone): Move
4603         into...
4604         * omp-simd-clone.c: ... this new file.
4605         (simd_clone_vector_of_formal_parm_types): Make it static.
4606         * Makefile.in (OBJS): Add omp-simd-clone.o.
4607
4608 2016-04-15  Kirill Yukhin  <kirill.yukhin@intel.com>
4609
4610         PR target/70662
4611         * config/i386/sse.md: Use proper memory operand
4612         modifiers.
4613
4614
4615 2016-04-15  Richard Biener  <rguenther@suse.de>
4616         Alan Modra  <amodra@gmail.com>
4617
4618         PR tree-optimization/70130
4619         * tree-vect-data-refs.c (vect_supportable_dr_alignment): Detect
4620         when alignment stays not the same and no not use the realign
4621         scheme then.
4622
4623 2016-04-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
4624
4625         PR target/70669
4626         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
4627         direct move handlers for KFmode. Change TFmode handlers test from
4628         FLOAT128_IEEE_P to FLOAT128_VECTOR_P.
4629
4630 2016-04-14  Jakub Jelinek  <jakub@redhat.com>
4631
4632         PR c++/70594
4633         * ipa-utils.h (polymorphic_ctor_dtor_p): New prototype.
4634         * ipa-polymorphic-call.c (polymorphic_ctor_dtor_p): New function.
4635         (inlined_polymorphic_ctor_dtor_block_p): Use it.
4636         * tree-ssa-live.c (remove_unused_scope_block_p): When
4637         in_ctor_dtor_block, avoid discarding not just BLOCKs with
4638         BLOCK_ABSTRACT_ORIGIN being FUNCTION_DECL, but even when
4639         block_ultimate_origin is FUNCTION_DECL.
4640         (remove_unused_locals): If current_function_decl is
4641         polymorphic_ctor_dtor_p, pass initial true to
4642         remove_unused_scope_block_p' is_ctor_dtor_block.
4643
4644 2016-04-14  Martin Sebor  <msebor@redhat.com>
4645
4646         PR c++/69517
4647         PR c++/70019
4648         PR c++/70588
4649         * doc/extend.texi (Variable Length): Revert.
4650
4651 2016-04-14  Marek Polacek  <polacek@redhat.com>
4652             Jan Hubicka  <hubicka@ucw.cz>
4653
4654         PR c++/70029
4655         * tree.c (verify_type): Disable the canonical type of main variant
4656         check.
4657
4658 2016-04-14  Jason Merrill  <jason@redhat.com>
4659
4660         * cfgexpand.c, expr.c: Revert previous change.
4661
4662 2016-04-14  Cesar Philippidis  <cesar@codesourcery.com>
4663
4664         PR middle-end/70643
4665         * omp-low.c (lower_oacc_reductions): Check for TREE_CONSTANT
4666         when building a mem ref for the incoming reduction variable.
4667
4668 2016-04-14  Richard Biener  <rguenther@suse.de>
4669
4670         PR tree-optimization/70614
4671         * tree-scalar-evolution.c (analyze_evolution_in_loop): Terminate
4672         loop if the evolution dropped to chrec_dont_know.
4673         (interpret_condition_phi): Likewise.
4674
4675 2016-04-14  Richard Biener  <rguenther@suse.de>
4676
4677         PR tree-optimization/70623
4678         * tree-ssa-pre.c (changed_blocks): Make global ...
4679         (compute_antic): ... local here.  Move and fix worklist
4680         handling here.  Do not clear EDGE_DFS_BACK or call mark_dfs_back_edges.
4681         (compute_antic_aux): Add dumping for MAX assumed succs.  Remove
4682         worklist handling, dump when ANTIC_IN changed.
4683         (compute_partial_antic_aux): Remove worklist handling.
4684         (init_pre): Do not compute post dominators.  Add a comment about
4685         the CFG order chosen.
4686         (fini_pre): Do not free post dominators.
4687
4688 2016-04-13  Martin Sebor  <msebor@redhat.com>
4689
4690         PR c++/69517
4691         PR c++/70019
4692         PR c++/70588
4693         * doc/extend.texi (Variable Length): Document C++ specifics.
4694
4695 2016-04-13  Jakub Jelinek  <jakub@redhat.com>
4696
4697         PR c++/70641
4698         * ipa-pure-const.c (pass_nothrow::execute): Call maybe_clean_eh_stmt
4699         on all recursive call stmts.  Return TODO_cleanup_cfg if any dead
4700         eh edges have been purged.
4701
4702         PR c++/70594
4703         * tree-sra.c (create_access_replacement,
4704         get_replaced_param_substitute): Set DECL_NAMELESS on repl if it
4705         gets fancy name.
4706         * tree-pretty-print.c (dump_fancy_name): New function.
4707         (dump_decl_name, dump_generic_node): Use it.
4708
4709 2016-04-13  Jason Merrill  <jason@redhat.com>
4710
4711         * cfgexpand.c (pass_expand::execute): Handle attribute "abi warning".
4712         * expr.c (expand_expr_real_1): Likewise.
4713
4714 2016-04-13  Ilya Enkovich  <ilya.enkovich@intel.com>
4715
4716         * config/i386/i386.md (kunpckhi): Swap operands.
4717         (kunpcksi): Likewise.
4718         (kunpckdi): Likewise.
4719         * config/i386/sse.md (vec_pack_trunc_qi): Likewise.
4720         (vec_pack_trunc_<mode>): Likewise.
4721
4722 2016-04-13  Jakub Jelinek  <jakub@redhat.com>
4723
4724         PR debug/70628
4725         * explow.c (convert_memory_address_addr_space_1): Formatting fix.
4726
4727         PR middle-end/70633
4728         * gimplify.c (gimplify_init_constructor): Clear TREE_STATIC if
4729         gimplification turns some element into non-constant.
4730
4731         PR debug/70628
4732         * rtl.h (convert_memory_address_addr_space_1): New prototype.
4733         * explow.c (convert_memory_address_addr_space_1): No longer static,
4734         add NO_EMIT argument and don't call convert_modes if true, pass
4735         it down recursively, remove break after return.
4736         (convert_memory_address_addr_space): Adjust caller.
4737         * simplify-rtx.c (simplify_unary_operation_1): Call
4738         convert_memory_address_addr_space_1 instead of convert_memory_address,
4739         if it returns NULL, don't simplify.
4740
4741 2016-04-12  Eric Botcazou  <ebotcazou@adacore.com>
4742
4743         PR target/70630
4744         * config/sparc/sparc.c (sparc_compute_frame_size): Add parentheses.
4745
4746 2016-04-12  Jakub Jelinek  <jakub@redhat.com>
4747
4748         * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
4749         Bump the upper SIMDLEN limits, so that if the return type or
4750         characteristic type if the return type is void can be passed in
4751         all available SSE2/AVX/AVX2/AVX512-F registers, the SIMDLEN is
4752         allowed.
4753
4754 2016-04-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
4755
4756         PR target/70640
4757         * config/rs6000/rs6000.md (ieee_128bit_vsx_neg<mode>2_internal):
4758         Do not use "=" constraint on an input constraint.
4759         (ieee_128bit_vsx_abs<mode>2_internal): Likewise.
4760         (ieee_128bit_vsx_nabs<mode>2_internal): Likewise.
4761         (ieee_128bit_vsx_nabs<mode>2): Correct splitter so that it
4762         generates (neg (abs ...)) instead of (abs ...).
4763
4764 2016-04-12  Jakub Jelinek  <jakub@redhat.com>
4765
4766         PR rtl-optimization/70596
4767         * lra-spills.c (spill_pseudos): Don't delete debug insns, instead
4768         just invalidate LRA data and reset them.  Adjust dump wording.
4769
4770 2016-04-12  Martin Liska  <mliska@suse.cz>
4771
4772         Revert
4773         2016-03-30  Jan Hubicka  <hubicka@ucw.cz>
4774
4775         * tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can't get realistic
4776         estimates here.
4777         * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also
4778         max_loop_iterations_int.
4779         (tree_unswitch_outer_loop): Likewise.
4780         * tree-ssa-loop-ivopts.c (avg_loop_niter): Likewise.
4781         * tree-vect-loop.c (vect_analyze_loop_2): Likewise.
4782
4783 2016-04-12  Tom de Vries  <tom@codesourcery.com>
4784
4785         PR tree-optimization/68756
4786         * graphite-isl-ast-to-gimple.c (copy_cond_phi_args): Use new_expr
4787         instead of new_name.
4788
4789 2016-04-12  Jakub Jelinek  <jakub@redhat.com>
4790
4791         PR tree-optimization/70602
4792         * tree-sra.c (generate_subtree_copies): Don't write anything into
4793         constant pool decls.
4794
4795         * omp-low.c (lower_omp_target): Use GOMP_MAP_FIRSTPRIVATE_INT
4796         regardless whether there are depend clauses or not.
4797
4798 2016-04-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
4799
4800         PR target/70381
4801         * config/rs6000/rs6000.c (rs6000_opt_masks): Disable using the
4802         target attribute and pragma from changing the -mfloat128
4803         and -mfloat128-hardware options.
4804
4805         * doc/extend.texi (Additional Floating Types): Document PowerPC
4806         __float128 restrictions.
4807
4808 2016-04-11  James Greenhalgh  <james.greenhalgh@arm.com>
4809
4810         PR target/70133
4811         * config/aarch64/driver-aarch64.c
4812         (aarch64_get_extension_string_for_isa_flags): New.
4813         (arch_extension): Rename to...
4814         (aarch64_arch_extension): ...This.
4815         (ext_to_feat_string): Rename to...
4816         (aarch64_extensions): ...This.
4817         (aarch64_core_data): Keep track of architecture extension flags.
4818         (cpu_data): Rename to...
4819         (aarch64_cpu_data): ...This.
4820         (aarch64_arch_driver_info): Keep track of architecture extension
4821         flags.
4822         (get_arch_name_from_id): Rename to...
4823         (get_arch_from_id): ...This, change return type.
4824         (host_detect_local_cpu): Update and reformat for renames, handle
4825         extensions through common infrastructure.
4826
4827 2016-04-11  James Greenhalgh  <james.greenhalgh@arm.com>
4828
4829         PR target/70133
4830         * config/aarch64/aarch64-common.c (aarch64_option_extension): Keep
4831         track of a canonical flag name.
4832         (all_extensions): Likewise.
4833         (arch_to_arch_name): Also track extension flags enabled by the arch.
4834         (all_architectures): Likewise.
4835         (aarch64_parse_extension): Move to here.
4836         (aarch64_get_extension_string_for_isa_flags): Take a new argument,
4837         rework.
4838         (aarch64_rewrite_selected_cpu): Update for above change.
4839         * config/aarch64/aarch64-option-extensions.def: Rework the way flags
4840         are handled, such that the single explicit value enabled by an
4841         extension is kept seperate from the implicit values it also enables.
4842         * config/aarch64/aarch64-protos.h (aarch64_parse_opt_result): Move
4843         to here.
4844         (aarch64_parse_extension): New.
4845         * config/aarch64/aarch64.c (aarch64_parse_opt_result): Move from
4846         here to config/aarch64/aarch64-protos.h.
4847         (aarch64_parse_extension): Move from here to
4848         common/config/aarch64/aarch64-common.c.
4849         (aarch64_option_print): Update.
4850         (aarch64_declare_function_name): Likewise.
4851         (aarch64_start_file): Likewise.
4852         * config/aarch64/driver-aarch64.c (arch_extension): Keep track of
4853         the canonical flag for extensions.
4854         * config.gcc (aarch64*-*-*): Extend regex for capturing extension
4855         flags.
4856
4857 2016-04-11  James Greenhalgh  <james.greenhalgh@arm.com>
4858
4859         * config/aarch64/aarch64.h (AARCH64_FL_FOR_ARCH8_1): Also add
4860         AARCH64_FL_CRC.
4861
4862 2016-04-09  Tom de Vries  <tom@codesourcery.com>
4863
4864         PR tree-optimization/68953
4865         * graphite-sese-to-poly.c (pdr_add_memory_accesses): Order accesses from
4866         first to last subscript.
4867
4868 2016-04-09  Jakub Jelinek  <jakub@redhat.com>
4869
4870         PR tree-optimization/70586
4871         * tree-ssa-ifcombine.c (bb_no_side_effects_p): Return false
4872         for any calls.
4873
4874 2016-04-08  Cesar Philippidis  <cesar@codesourcery.com>
4875
4876         PR lto/70289
4877         PR ipa/70348
4878         PR tree-optimization/70373
4879         PR middle-end/70533
4880         PR middle-end/70534
4881         PR middle-end/70535
4882         * gimplify.c (gimplify_adjust_omp_clauses): Add or adjust data
4883         clauses for acc parallel reductions as necessary.  Error on those
4884         that are private.
4885         * omp-low.c (scan_sharing_clauses): Don't install variables which
4886         are used in acc parallel reductions.
4887         (lower_rec_input_clauses): Remove dead code.
4888         (lower_oacc_reductions): Add support for reference reductions.
4889         (lower_reduction_clauses): Remove dead code.
4890         (lower_omp_target): Don't remap variables appearing in acc parallel
4891         reductions.
4892         * tree.h (OMP_CLAUSE_MAP_IN_REDUCTION): New macro.
4893
4894 2016-04-08  Jakub Jelinek  <jakub@redhat.com>
4895
4896         PR middle-end/70593
4897         * tree-ssa-coalesce.c (build_ssa_conflict_graph): For stmt
4898         with multiple SSA_NAME defs, force the outputs other than first
4899         to be live before calling live_track_process_def on each output.
4900
4901         PR rtl-optimization/70574
4902         * fwprop.c (forward_propagate_and_simplify): Don't add
4903         REG_EQUAL note if DF_REF_REG (use) is a paradoxical subreg.
4904         (try_fwprop_subst): Don't add REG_EQUAL note if there are any
4905         paradoxical subregs within *loc.
4906
4907 2016-04-08  Thomas Schwinge  <thomas@codesourcery.com>
4908
4909         * config/arc/arc.h (LINK_COMMAND_SPEC): Use gt to ignore
4910         -ftree-parallelize-loops={0,1}.
4911         * config/darwin.h (LINK_COMMAND_SPEC_A): Likewise.
4912         * config/i386/mingw32.h (GOMP_SELF_SPECS): Likewise.
4913         * config/ia64/hpux.h (LIB_SPEC): Likewise.
4914         * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
4915         * config/pa/pa64-hpux.h (LIB_SPEC): Likewise.
4916
4917 2016-04-08  Maxim Ostapenko  <m.ostapenko@samsung.com>
4918
4919         PR sanitizer/70541
4920         * asan.c (instrument_derefs): If we get unknown location, extract it
4921         with EXPR_LOCATION.
4922         (maybe_instrument_call): Instrument gimple_call's arguments if needed.
4923
4924 2016-04-08  Tom de Vries  <tom@codesourcery.com>
4925
4926         * omp-low.c (lower_omp_target): Set TREE_NO_WARNING for oacc
4927         implicit firstprivate clause.
4928
4929 2016-04-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4930
4931         PR target/70566
4932         * config/arm/thumb2.md (tst + branch-> lsls + branch
4933         peephole below *orsi_not_shiftsi_si): Require that condition
4934         register is dead after the peephole.
4935         (second peephole after the above): Likewise.
4936
4937 2016-04-08  Alan Modra  <amodra@gmail.com>
4938
4939         PR target/70117
4940         * builtins.c (fold_builtin_classify): For IBM extended precision,
4941         look at just the high-order double to test for NaN.
4942         (fold_builtin_interclass_mathfn): Similarly for Inf.  For isnormal
4943         test just the high double for Inf but both doubles for subnormal
4944         limit.
4945
4946 2016-04-07  Jakub Jelinek  <jakub@redhat.com>
4947
4948         * cgraph.h (struct cgraph_simd_clone): Add mask_mode field.
4949         * omp-low.c (simd_clone_init_simd_arrays, simd_clone_adjust): Handle
4950         node->simdclone->mask_mode != VOIDmode masks.
4951         (simd_clone_adjust_argument_types): Likewise.  Move sc var definition
4952         earlier, use it instead of node->simdclone.
4953         * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
4954         Set clonei->mask_mode.
4955
4956 2016-04-06  Patrick Palka  <ppalka@gcc.gnu.org>
4957
4958         PR c/70436
4959         * parser.c (cp_parser_iteration_statement): New parameter IF_P.
4960         Pass it through to cp_parser_already_scoped_statement.
4961         (cp_parser_already_scoped_statement): New parameter IF_P.  Pass
4962         it through to cp_parser_statement.
4963         (cp_parser_statement): Pass IF_P through to
4964         cp_parser_iteration_statement.
4965         (cp_parser_pragma): Adjust call to
4966         cp_parser_iteration_statement.
4967
4968 2016-04-06  Patrick Palka  <ppalka@gcc.gnu.org>
4969
4970         PR c/70436
4971         * gimplify.c (gimplify_omp_ordered): Add explicit braces to
4972         resolve a future -Wparentheses warning.
4973         * omp-low.c (scan_sharing_clauses): Likewise.
4974         * tree-parloops.c (eliminate_local_variables): Likewise.
4975
4976 2016-04-06  Vladimir Makarov  <vmakarov@redhat.com>
4977
4978         PR rtl-optimization/70398
4979         * lra-constraints.c (process_address_1): Check zero scale and code
4980         for reloading with zero scale.
4981
4982 2016-04-06  Uros Bizjak  <ubizjak@gmail.com>
4983
4984         * config/i386/sse.md (shuffletype): Add V32HI and V4TI modes.
4985         (ssescalarsize): Add V8SF, V4SF, V4DF and V2DF modes.
4986
4987 2016-04-06  Jakub Jelinek  <jakub@redhat.com>
4988
4989         * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
4990         Add support for AVX512F clones, include them by default for
4991         exported OpenMP declare simd functions.  For AVX2 allow simdlen 32
4992         and use it if charasteric type is 8-bit, for AVX512F allow simdlen
4993         up to 128.
4994
4995         PR middle-end/70550
4996         * tree.h (OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT): Define.
4997         * gimplify.c (gimplify_adjust_omp_clauses_1): Set it for implicit
4998         firstprivate clauses.
4999         * omp-low.c (lower_send_clauses): Set TREE_NO_WARNING for
5000         OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT !by_ref vars in task contexts.
5001         (lower_omp_target): Set TREE_NO_WARNING for
5002         non-addressable possibly uninitialized vars which are copied into
5003         addressable temporaries or copied for GOMP_MAP_FIRSTPRIVATE_INT.
5004
5005 2016-04-05  John David Anglin  <danglin@gcc.gnu.org>
5006
5007         * config/pa/predicates.md (integer_store_memory_operand): Accept
5008         REG+D operands with a large offset when reload_in_progress is true.
5009         (floating_point_store_memory_operand): Likewise.
5010
5011 2016-04-05  Jakub Jelinek  <jakub@redhat.com>
5012
5013         PR c++/70336
5014         * match.pd (nested int casts): Limit to GIMPLE.
5015
5016 2016-04-05  Jan Hubicka  <hubicka@ucw.cz>
5017
5018         PR ipa/66223
5019         * ipa-devirt.c (maybe_record_node): Fix comment; use
5020         SANITIZE_UNREACHABLE instead of SANITIZE_UNDEFINED.
5021
5022 2016-04-05  Jakub Jelinek  <jakub@redhat.com>
5023
5024         PR rtl-optimization/70542
5025         * ree.c (add_removable_extension): For VECTOR_MODE_P punt
5026         if there are any uses other than insn or debug insns.
5027
5028 2016-04-05  Marc Glisse  <marc.glisse@inria.fr>
5029             Jakub Jelinek  <jakub@redhat.com>
5030
5031         PR tree-optimization/70509
5032         * simplify-rtx.c (simplify_binary_operation_1) <case VEC_SELECT>:
5033         Shift HOST_WIDE_INT_1U instead of 1.
5034
5035 2016-04-05  Zdenek Sojka  <zsojka@seznam.cz>
5036
5037         PR tree-optimization/70509
5038         * tree-ssa-forwprop.c (simplify_bitfield_ref): Use bitsize_int instead
5039         of the vector base type for index.
5040
5041 2016-04-05  Uros Bizjak  <ubizjak@gmail.com>
5042
5043         PR target/70510
5044         * config/i386/sse.md (iptr): Add V64QI, V32HI, V16SI and V8DI modes.
5045
5046 2016-04-05  Richard Biener  <rguenther@suse.de>
5047
5048         PR tree-optimization/70526
5049         * tree-sra.c (build_ref_for_offset): Use prev_base to
5050         extract the alias pointer type.
5051
5052 2016-04-05  Richard Biener  <rguenther@suse.de>
5053
5054         * dse.c (struct store_info): Remove alias_set member.
5055         (struct read_info_type): Likewise.
5056         (clear_alias_group, clear_alias_mode_table, clear_alias_mode_holder,
5057         spill_deleted, clear_alias_set_lookup): Remove.
5058         (get_group_info): Remove dead base == NULL_RTX case.
5059         (dse_step0): Remove initialization of removed variables.
5060         (delete_dead_store_insn): Reomve alias set dumping.
5061         (free_read_records): Remove alias_set handling.
5062         (canon_address): Remove alias_set_out parameter.
5063         (record_store): Remove spill_alias_set, it's always zero.
5064         (check_mem_read_rtx): Likewise.
5065         (dse_step2): Rename from ...
5066         (dse_step2_nospill): ... this.  Adjust.
5067         (scan_stores): Rename from ...
5068         (scan_stores_nospill): ... this.
5069         (scan_reads): Rename from ...
5070         (scan_reads_nospill): ... this.
5071         (scan_stores_spill, scan_reads_spill): Remove.
5072         (dse_step3_scan): Remove for_spills argument which is always false.
5073         (dse_step3): Likewise.
5074         (dse_step5): Rename from ...
5075         (dse_step5_nospill): ... this.  Remove alias_set handling.
5076         (rest_of_handle_dse): Adjust.
5077
5078 2016-04-05  Jakub Jelinek  <jakub@redhat.com>
5079
5080         PR target/70525
5081         * config/i386/sse.md (*andnot<mode>3): Simplify assertions.
5082         Use vpandn<ssemodesuffix> for V16SI/V8DImode, vpandnq for
5083         V32HI/V64QImode, don't use <mask_operand3_1>, fix up formatting.
5084         (*andnot<mode>3_mask): Remove insn with VI12_AVX512VL iterator.
5085
5086 2016-04-05  Richard Biener  <rguenther@suse.de>
5087
5088         PR middle-end/70499
5089         * gimplify-me.c (gimple_regimplify_operands): Do not rewrite
5090         non-register type temporaries into SSA.
5091
5092 2016-04-04  Jan Hubicka  <hubicka@ucw.cz>
5093
5094         PR ipa/66223
5095         * ipa-devirt.c (maybe_record_node): Do not optimize cxa_pure_virtual
5096         calls when sanitizing.
5097         (possible_polymorphic_call_target_p): Fix formatting.
5098
5099 2016-04-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
5100             Jakub Jelinek <jakub@redhat.com>
5101
5102         PR middle-end/70457
5103         * tree-inline.c (estimate_num_insn): Use gimple_call_builtin_p
5104         to ensure a call statement is compatible with a built-in's
5105         prototype.
5106         * tree-ssa-math-opts.c (pass_optimize_windening_mul::execute):
5107         Likewise.
5108
5109 2016-04-04  Richard Biener  <rguenther@suse.de>
5110
5111         PR rtl-optimization/70484
5112         * rtl.h (canon_output_dependence): Declare.
5113         * alias.c (canon_output_dependence): New function.
5114         * dse.c (record_store): Use canon_output_dependence rather
5115         than canon_true_dependence.
5116
5117 2016-03-30  Jan Hubicka  <hubicka@ucw.cz>
5118
5119         PR ipa/68881
5120         * cgraph.h (symtab_node::copy_visibility_from): New function.
5121         * symtab.c (symtab_node::copy_visibility_from): New function.
5122         * ipa-visibility.c (optimize_weakref): New function.
5123         (function_and_variable_visibility): Use it.
5124
5125 2016-04-04  Martin Liska  <mliska@suse.cz>
5126
5127         PR hsa/70402
5128         * hsa-gen.c (gen_hsa_insns_for_switch_stmt): Guard index
5129         value that is really in range handled by SBR instruction.
5130         * hsa-brig.c (emit_switch_insn): Do not emit unconditional jump.
5131         * hsa-dump.c (dump_hsa_insn_1): Do not dump default BB.
5132         * hsa.h (hsa_insn_sbr::m_default_bb): Remove field.
5133
5134 2016-04-03  Oleg Endo  <olegendo@gcc.gnu.org>
5135
5136         PR target/70416
5137         PR target/67391
5138         * config/sh/sh.md (*addsi3): Allow pattern when reload_in_progress is
5139         set, but not for SP_REG operands.
5140
5141 2016-04-02  Martin Sebor  <msebor@redhat.com>
5142
5143         PR c++/67376
5144         * fold-const.c (maybe_nonzero_address): New function.
5145         (fold_comparison): Call it.  Fold equality and relational
5146         expressions involving null pointers.
5147         (tree_single_nonzero_warnv_p): Call maybe_nonzero_address.
5148
5149 2016-03-31  Evandro Menezes  <e.menezes@samsung.com>
5150
5151         Fix the predicate "aarch64_simd_reg_or_zero" to correctly validate
5152         the "Y" constraint (scalar FP 0.0 immediate).
5153
5154         * gcc/config/aarch64/predicates.md (aarch64_simd_reg_or_zero):
5155         Add the "const_double" to the list of operand constraints.
5156
5157 2016-04-01  Jakub Jelinek  <jakub@redhat.com>
5158
5159         PR rtl-optimization/70467
5160         * config/i386/i386.md (*add<dwi>3_doubleword, *sub<dwi>3_doubleword):
5161         If low word of the last operand is 0, just emit addition/subtraction
5162         for the high word.
5163
5164 2016-04-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
5165
5166         PR target/70404
5167         * config/s390/s390.c (s390_expand_insv): Check for everything
5168         constant instead of just VOIDmode stuff.
5169
5170 2016-04-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
5171
5172         PR target/70496
5173         * config/arm/arm.h (ASM_APP_OFF): Handle TARGET_ARM and TARGET_THUMB.
5174
5175 2016-04-01  Nathan Sidwell  <nathan@acm.org>
5176
5177         * tree.def (TRY_CATCH_EXPR): Correct documentation.
5178
5179 2016-03-31  Vladimir Makarov  <vmakarov@redhat.com>
5180
5181         PR rtl-optimization/70461
5182         * ira-color.c (allocno_copy_cost_saving): Use allocno class if it
5183         is necessary.
5184
5185 2016-03-31  Martin Liska  <mliska@suse.cz>
5186
5187         PR hsa/70399
5188         * hsa-brig.c (hsa_op_immed::emit_to_buffer): Emit either
5189         a tree value or an immediate integer value to a buffer
5190         that is eventually copied to a BRIG section.
5191         (emit_immediate_operand): Call the function here.
5192         * hsa-dump.c (dump_hsa_immed): Remove checking assert.
5193         * hsa-gen.c (hsa_op_immed::hsa_op_immed): Remove initialization
5194         of class' fields that are removed.
5195         (hsa_op_immed::~hsa_op_immed): Remove deinitialization.
5196         * hsa.h (class hsa_op_immed): Remove m_brig_repr and
5197         m_brig_repr_size fields.
5198
5199 2016-03-31  Martin Liska  <mliska@suse.cz>
5200
5201         PR hsa/70391
5202         * hsa-gen.c (hsa_function_representation::update_dominance): New
5203         function.
5204         (convert_addr_to_flat_segment): Likewise.
5205         (gen_hsa_memory_set): New alignment argument.
5206         (gen_hsa_ctor_assignment): Likewise.
5207         (gen_hsa_insns_for_single_assignment): Provide alignment
5208         to gen_hsa_ctor_assignment.
5209         (gen_hsa_insns_for_direct_call): Add new argument.
5210         (expand_lhs_of_string_op): New function.
5211         (expand_string_operation_builtin): Likewise.
5212         (expand_memory_copy): New function.
5213         (expand_memory_set): New function.
5214         (gen_hsa_insns_for_call): Use HOST_WIDE_INT.
5215         (convert_switch_statements): Change signature.
5216         (generate_hsa): Use a return value of the function.
5217         (pass_gen_hsail::execute): Do not call
5218         convert_switch_statements here.
5219         * hsa-regalloc.c (hsa_regalloc): Call update_dominance.
5220         * hsa.h (hsa_function_representation::m_modified_cfg): New flag.
5221         (hsa_function_representation::update_dominance): New function.
5222
5223 2016-03-31  Martin Liska  <mliska@suse.cz>
5224
5225         PR hsa/70391
5226         * hsa-brig.c (emit_directive_variable): Emit alignment
5227         according to hsa_symbol::m_align.
5228         * hsa-dump.c (hsa_byte_alignment): Move the function to another file.
5229         (dump_hsa_symbol): Dump alignment of HSA symbols.
5230         * hsa-gen.c (get_symbol_for_decl): Set-up alignment of a symbol.
5231         (gen_hsa_addr_with_align): New function.
5232         (hsa_bitmemref_alignment): Use newly added function.
5233         (gen_hsa_insns_for_load): Likewise.
5234         (gen_hsa_insns_for_store): Likewise.
5235         (gen_hsa_memory_copy): New argument added.
5236         (gen_hsa_insns_for_single_assignment): Respect
5237         alignment for assignments processed via gen_hsa_memory_copy.
5238         (gen_hsa_insns_for_direct_call): Likewise.
5239         (gen_hsa_insns_for_return): Likewise.
5240         (gen_function_def_parameters): Set default alignment.
5241         * hsa.c (hsa_object_alignment): New function.
5242         (hsa_byte_alignment): Pasted function.
5243         * hsa.h (hsa_symbol::m_align): New field.
5244
5245 2016-03-31  Bin Cheng  <bin.cheng@arm.com>
5246
5247         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Initialize
5248         scratch field for goto case.
5249
5250 2016-03-31  James Greenhalgh  <james.greenhalgh@arm.com>
5251
5252         * config/arm/linux-elf.h (ASM_OUTPUT_DEF): Delete.
5253
5254 2016-03-31  Ilya Enkovich  <enkovich.gnu@gmail.com>
5255
5256         PR target/70442
5257         * config/i386/i386.c (scalar_chain::convert_op): Fix description.
5258         (scalar_chain::convert_insn): Call convert_op for reg
5259         moves to handle undefined registers.
5260
5261 2016-03-31  Nathan Sidwell  <nathan@acm.org>
5262
5263         PR c++/70393
5264         * varasm.c (output_constructor_regular_field): Flush bitfield earlier.
5265         Assert we don't want to move backwards.
5266
5267 2016-03-31  Kirill Yukhin  <kirill.yukhin@intel.com>
5268
5269         PR target/70453
5270         * config/i386/sse.md (define_mode_attr shuffletype): Fix typo.
5271
5272 2016-03-31  Jakub Jelinek  <jakub@redhat.com>
5273
5274         PR rtl-optimization/70460
5275         * ira.c (indirect_jump_optimize): Don't substitute LABEL_REF
5276         with operand from REG_LABEL_OPERAND, instead substitute
5277         SET_SRC or REG_EQUAL note content if it is a LABEL_REF.
5278         Don't do anything for REG_NON_LOCAL_GOTO jumps.
5279
5280 2016-03-31  Martin Liska  <mliska@suse.cz>
5281
5282         * passes.c (execute_one_pass): Do not call
5283         todo_after for a discarded function.
5284
5285 2016-03-31  Bin Cheng  <bin.cheng@arm.com>
5286
5287         * tree-ssa-loop-ivopts.c (struct comp_cost): New scrach field.
5288         (no_cost, infinite_cost): Initialize the new field.
5289         (get_computation_cost_at): Record setup cost.
5290         (determine_use_iv_cost_address): Skip cost computation for sub
5291         uses if we can estimate it without losing accuracy.
5292
5293 2016-03-30  Jan Hubicka  <hubicka@ucw.cz>
5294
5295         * tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can't get realistic
5296         estimates here.
5297         * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also
5298         max_loop_iterations_int.
5299         (tree_unswitch_outer_loop): Likewise.
5300         * tree-ssa-loop-ivopts.c (avg_loop_niter): Likewise.
5301         * tree-vect-loop.c (vect_analyze_loop_2): Likewise.
5302
5303 2016-03-30  Richard Biener  <rguenther@suse.de>
5304
5305         PR middle-end/70450
5306         * fold-const.c (extract_muldiv_1): Fix thinko in wide_int::from usage.
5307
5308 2016-03-30  Jakub Jelinek  <jakub@redhat.com>
5309
5310         PR target/70421
5311         * config/i386/i386.c (ix86_expand_vector_set): Fix up argument order
5312         in gen_blendm expander.
5313
5314 2016-03-30  Nick Clifton  <nickc@redhat.com>
5315
5316         PR target/62254
5317         * config/arm/arm.c (arm_reload_out_hi): Add code to handle the
5318         case where we are already provided with an SImode SUBREG.
5319
5320 2016-03-30  H.J. Lu  <hongjiu.lu@intel.com>
5321
5322         PR target/70439
5323         * config/i386/i386.c (ix86_expand_epilogue): Properly check
5324         conflict between DRAP register and __builtin_eh_return.
5325
5326 2016-03-30  Michael Matz  <matz@suse.de>
5327             Richard Biener  <rguenther@suse.de>
5328
5329         PR ipa/12392
5330         * ipa-polymorphic-call.c (struct type_change_info): Change
5331         speculative to an unsigned allowing to limit the work we do.
5332         (csftc_abort_walking_p): New inline function..
5333         (check_stmt_for_type_change): Limit the number of may-defs
5334         skipped for speculative devirtualization to
5335         max-speculative-devirt-maydefs.
5336         * params.def (max-speculative-devirt-maydefs): New param.
5337         * doc/invoke.texi (--param max-speculative-devirt-maydefs): Document.
5338
5339 2016-03-30  Mike Stump  <mrs@gcc.gnu.org>
5340
5341         PR target/63890
5342         * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Use when profiling
5343         and TARGET_MACHO.
5344
5345 2016-03-30  Patrick Palka  <ppalka@gcc.gnu.org>
5346
5347         PR tree-optimization/59124
5348         * tree-vrp.c (register_edge_assert_for_2): For NAME != CST1
5349         where NAME = A +- CST2 add the assertion A != (CST1 -+ CST2).
5350
5351 2016-03-29  Jeff Law  <law@redhat.com>
5352
5353         * tree-ssa-coalesce.c (struct ssa_conflicts): Fix typo in comment.
5354
5355 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
5356
5357         * tree-ssa-loop-ivcanon.c (try_peel_loop): Change type of peel
5358         to HOST_WIDE_INT.
5359
5360 2016-03-29  Thomas Schwinge  <thomas@codesourcery.com>
5361
5362         * config/gnu.h (CPP_SPEC, LIB_SPEC): Don't override.
5363         * config/i386/gnu.h (STARTFILE_SPEC): Use gcrt1.o instead of
5364         gcrt0.o if linking dynamically.
5365
5366 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
5367
5368         PR ipa/70283
5369         * ipa-devirt.c (methods_equal_p): New function.
5370         (compare_virtual_tables): Use it.
5371         * cgraph.h (symbol_table::symbol_suffix_separator): Declare.
5372         * cgraphclones.c (clone_function_name_1): Use
5373         symbol_table::symbol_suffix_separator.
5374         * coverage.c (build_var): Likewise.
5375         * symtab.c (symbol_table::symbol_suffix_separator): New.
5376
5377 2016-03-29  Jakub Jelinek  <jakub@redhat.com>
5378
5379         PR rtl-optimization/70429
5380         * combine.c (simplify_shift_const_1): For ASHIFTRT don't optimize
5381         (cst1 >> count) >> cst2 into (cst1 >> cst2) >> count if
5382         mode != result_mode.
5383
5384         PR c++/70353
5385         * tree-inline.c (remap_decls): Don't add_local_decl if cfun is null.
5386
5387         PR tree-optimization/70405
5388         * ssa-iterators.h (num_imm_uses): Add missing braces.
5389
5390 2016-03-29  Vladimir Makarov  <vmakarov@redhat.com>
5391
5392         PR rtl-optimization/68695
5393         * ira-color.c (allocno_copy_cost_saving): New.
5394         (improve_allocation): Use it.
5395
5396 2016-03-29  Richard Henderson  <rth@redhat.com>
5397
5398         PR middle-end/70355
5399         * lower-subreg.c (simplify_subreg_concatn): Reject paradoxical subregs.
5400
5401 2016-03-29  Richard Biener  <rguenther@suse.de>
5402
5403         PR middle-end/70424
5404         * ipa-prop.c (ipa_compute_jump_functions_for_edge): Always
5405         use alignment returned by get_pointer_alignment_1 if it is
5406         bigger than BITS_PER_UNIT.
5407         * builtins.c (get_pointer_alignment_1): Do not return true
5408         for alignment extracted from SSA info.
5409
5410 2016-03-28  James Bowman  <james.bowman@ftdichip.com>
5411
5412         * config/ft32/ft32.opt (mnodiv): New.
5413         * config/ft32/ft32.md (*divsi3, *modsi3): Qualify with TARGET_NODIV.
5414         * doc/invoke.texi (FT32 Options -mnodiv): New.
5415
5416 2016-03-28  Kirill Yukhin  <kirill.yukhin@intel.com>
5417
5418         PR target/70406
5419         * config/i386/i386.md (define_split, andn): Fix modes.
5420
5421 2016-03-26  Richard Biener  <rguenther@suse.de>
5422             Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
5423
5424         PR ipa/70366
5425         * ipa-inline-transform.c (inline_call): Pass opts_for_fn (to->decl)
5426         instead of
5427         TREE_OPTIMIZATION (DECL_FUNCTION_SPECIFIC_OPTIMIZATION (to->decl))
5428         as 2nd argument to cl_optimization_restore().
5429
5430 2016-03-25  Richard Henderson  <rth@redhat.com>
5431
5432         PR target/70120
5433         * config/aarch64/aarch64.c (aarch64_asm_output_pool_epilogue): New.
5434         * config/aarch64/aarch64-protos.h: Declare it.
5435         * config/aarch64/aarch64.h (ASM_OUTPUT_POOL_EPILOGUE): New.
5436
5437 2016-03-25  Alan Modra  <amodra@gmail.com>
5438
5439         PR target/70052
5440         * config/rs6000/constraints.md (j): Simplify.
5441         * config/rs6000/predicates.md (easy_fp_constant): Exclude
5442         decimal float 0.D.
5443         * config/rs6000/rs6000.md (zero_fp): New mode_attr.
5444         (mov<mode>_hardfloat, mov<mode>_hardfloat32, mov<mode>_hardfloat64,
5445          mov<mode>_64bit_dm, mov<mode>_32bit): Use zero_fp in place of j
5446         in all constraint alternatives.
5447         (movtd_64bit_nodm): Delete "j" constraint alternative.
5448
5449 2016-03-24  Aldy Hernandez  <aldyh@redhat.com>
5450
5451         * tree-ssa-propagate.c: Enhance docs for
5452         SSA_PROP_NOT_INTERESTING.
5453
5454 2016-03-24  Aldy Hernandez  <aldyh@redhat.com>
5455
5456         * doc/extend.texi: Fix typo in documentation to pure attribute.
5457
5458 2016-03-24  John David Anglin  <danglin@gcc.gnu.org>
5459
5460         PR target/70319
5461         * config/pa/pa.md (bswapdi2): Use a scratch register.
5462
5463 2016-03-24  Richard Henderson  <rth@redhat.com>
5464
5465         PR middle-end/69845
5466         * fold-const.c (extract_muldiv_1): Correct test for multiplication
5467         overflow.
5468
5469 2016-03-24  Uros Bizjak  <ubizjak@gmail.com>
5470
5471         * config/i386/i386.md (*anddi3_doubleword): Generate AND insn
5472         using ix86_expand_binary_operator instead of gen_andsi3.
5473
5474 2016-03-24  Richard Biener  <rguenther@suse.de>
5475
5476         PR tree-optimization/70396
5477         * tree-vect-stmts.c (vectorizable_comparison): Use
5478         get_vectype_for_scalar_type.
5479
5480 2016-03-24  Richard Biener  <rguenther@suse.de>
5481
5482         PR middle-end/70370
5483         * gimplify.c (gimplify_asm_expr): Handle !allows_mem outputs
5484         with register bases.
5485
5486 2016-03-24  Richard Biener  <rguenther@suse.de>
5487
5488         PR tree-optimization/70372
5489         * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Use
5490         build_all_ones_cst to also handle vector types correctly.
5491
5492 2016-03-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
5493
5494         PR target/70381
5495         * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Do not set
5496         -mfloat128 here.
5497
5498 2016-03-23  Marek Polacek  <polacek@redhat.com>
5499
5500         PR c++/69884
5501         * doc/invoke.texi: Document -Wignored-attributes.
5502
5503 2016-03-23  Bin Cheng  <bin.cheng@arm.com>
5504
5505         PR tree-optimization/69042
5506         * params.def (PARAM_IV_CONSIDER_ALL_CANDIDATES_BOUND): Increase the
5507         parameter from 30 to 40.
5508
5509 2016-03-23  Bin Cheng  <bin.cheng@arm.com>
5510
5511         PR tree-optimization/69042
5512         * tree-ssa-loop-ivopts.c (add_iv_candidate_for_use): Add IV cand
5513         for use with constant offset stripped in base.
5514
5515 2016-03-23  Richard Biener  <rguenther@suse.de>
5516
5517         PR middle-end/70251
5518         * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Adjust
5519         mode compatibility check.
5520         (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise.
5521
5522 2016-03-23  Jeff Law  <law@redhat.com>
5523
5524         PR tree-optimization/64058
5525         * tree-ssa-coalesce.c (struct coalesce_pair): Add new field
5526         CONFLICT_COUNT.
5527         (struct ssa_conflicts): Move up earlier in the file.
5528         (conflicts_, var_map_): New static variables.
5529         (initialize_conflict_count): New function to initialize the
5530         CONFLICT_COUNT field for each conflict pair.
5531         (compare_pairs): Lazily initialize the conflict count and use it
5532         as the first tie-breaker.
5533         (sort_coalesce_list): Add new arguments conflicts, map.  Initialize
5534         and wipe conflicts_ and map_ around the call to qsort.  Remove
5535         special case for 2 coalesce pairs.
5536         * bitmap.c (bitmap_count_unique_bits): New function.
5537         (bitmap_count_bits_in_word): New function, extracted from
5538         bitmap_count_bits.
5539         (bitmap_count_bits): Use bitmap_count_bits_in_word.
5540         * bitmap.h (bitmap_count_unique_bits): Declare it.
5541
5542 2016-03-23  Ilya Enkovich  <enkovich.gnu@gmail.com>
5543
5544         PR target/69917
5545         * config/i386/sol2.h (ASM_OUTPUT_DEF_FROM_DECLS): Follow
5546         transparent alias chain for decl assembler name.
5547         * config/sol2.c (solaris_assemble_visibility): Likewise.
5548
5549 2016-03-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5550
5551         * config/arm/arm1020e.md (1020call_op): Reduce reservation
5552         duration.
5553         (v10_fdivs): Likewise.
5554         (v10_fdivd): Likewise.
5555
5556 2016-03-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5557
5558         PR driver/70132
5559         * config/arm/driver-arm.c (host_detect_local_cpu): Reorder exit logic
5560         to not call fclose twice on file.
5561
5562 2016-03-23  Jakub Jelinek  <jakub@redhat.com>
5563
5564         PR tree-optimization/70354
5565         * tree-vect-patterns.c (vect_recog_vector_vector_shift_pattern): If
5566         oprnd0 is wider than oprnd1 and there is a cast from the wider
5567         type to oprnd1, mask it with the mask of the narrower type.
5568
5569         PR target/70321
5570         * config/i386/i386.md (*anddi3_doubleword, *<code>di3_doubleword):
5571         Optimize TARGET_STV splitters, if high or low word of last argument
5572         is 0 or -1.
5573
5574 2016-03-22  Jeff Law  <law@redhat.com>
5575
5576         PR target/70232
5577         tree-ssa-threadbackward.c
5578         (fsm_find_control_statement_thread_paths): Correctly distinguish
5579         between old style jump threads vs FSM jump threads.
5580
5581 2016-03-22  Ilya Enkovich  <enkovich.gnu@gmail.com>
5582
5583         PR target/70302
5584         * config/i386/i386.c (scalar_chain::convert_op): Support
5585         uninitialized register usage case.
5586
5587 2016-03-22  Richard Biener  <rguenther@suse.de>
5588
5589         PR middle-end/70251
5590         * genmatch.c (gen_transform): Adjust last parameter to a three-state
5591         int...
5592         (capture::gen_transform): ... to change behavior when substituting
5593         a condition into cond or not-cond expr context.
5594         (dt_simplify::gen_1): Adjust.
5595         * gimple-match-head.c: Include gimplify.h for unshare_expr.
5596         * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Revert
5597         last change and instead change to
5598         A + (B vcmp C ? 1 : 0) -> A - (B vcmp C ? -1 : 0).
5599         (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise.
5600
5601 2016-03-22  Anthony Green  <green@moxielogic.com>
5602
5603         * config/moxie/moxiebox.h (CC1_SPEC): Define.  Fix endianness
5604         issue for moxiebox targets.
5605         (CC1PLUS_SPEC): Ditto.
5606
5607 2016-03-22  Richard Biener  <rguenther@suse.de>
5608
5609         PR middle-end/70333
5610         * fold-const.c (extract_muldiv_1): Properly perform multiplication
5611         in the wide type.
5612
5613 2016-03-22  Kirill Yukhin  <kirill.yukhin@intel.com>
5614
5615         * config/i386/i386.c (def_builtin): Remove duplicated functionality.
5616
5617 2016-03-22  Kirill Yukhin  <kirill.yukhin@intel.com>
5618
5619         PR target/70325
5620         * config/i386/i386.c (def_builtin): Handle
5621         OPTION_MASK_ISA_AVX512VL to be and-ed with other
5622         bits.
5623         (const struct builtin_description bdesc_special_args[]):
5624         Remove duplicate ISA bits.
5625
5626 2016-03-22  Jakub Jelinek  <jakub@redhat.com>
5627
5628         PR target/70329
5629         * config/i386/i386.c (ix86_expand_vecop_qihi): Don't bother computing
5630         d.perm[i] for i >= d.nelt.  If not full_interleave, compute d.perm[i]
5631         in a way that works also for AVX512BW.
5632
5633         PR target/70300
5634         * config/i386/i386.md (cvtsd2ss splitter): Unpack in destination
5635         instead of source if operands[1] is xmm16 and above and
5636         !TARGET_AVX512VL.  Use avx512f_vec_dupv16sf_1 instead of
5637         vec_interleave_lowv4sf if we need to unpack xmm16 and above.
5638
5639         PR c++/70295
5640         * gimplify.c (gimplify_modify_expr): Call gimple_set_no_warning
5641         on assign if (*from_p) is a comparison, set it to
5642         TREE_NO_WARNING (*from_p).
5643
5644 2016-03-21  Jakub Jelinek  <jakub@redhat.com>
5645
5646         PR middle-end/70326
5647         * lra.c (restore_scratches): Ignore deleted insns.
5648
5649 2016-03-21  Marc Glisse  <marc.glisse@inria.fr>
5650             Jakub Jelinek  <jakub@redhat.com>
5651
5652         PR tree-optimization/70317
5653         * match.pd (cmp @0 @0): Pass @0 instead of TYPE_MODE (TREE_TYPE (@0))
5654         to HONOR_NANS.
5655
5656 2016-03-21  Uros Bizjak  <ubizjak@gmail.com>
5657
5658         PR target/70327
5659         * config/i386/i386.md (movxi): Use ix86_expand_vector_move instead
5660         of ix86_expand_move.
5661         (movoi): Ditto.
5662         (movti): Use general_operand for operand 1 predicate.
5663
5664 2016-03-21  Martin Liska  <mliska@suse.cz>
5665
5666         * hsa-dump.c (dump_hsa_insn_1): dump default branch of SBR
5667         insns.
5668         (dump_hsa_symbol): Dump BRIG offset of hsa_symbols.
5669
5670 2016-03-21  Martin Liska  <mliska@suse.cz>
5671
5672         PR ipa/70306
5673         * ipa-icf.c (sem_function::parse): Skip static
5674         constructors and destructors.
5675
5676 2016-03-21  Jakub Jelinek  <jakub@redhat.com>
5677
5678         PR target/70296
5679         * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If IDENT is
5680         function-like macro, peek following token(s) if it is followed
5681         by CPP_OPEN_PAREN token with optional padding in between, and
5682         if not, don't treat it like a macro.
5683
5684 2016-03-21  Thomas Schwinge  <thomas@codesourcery.com>
5685             Alexander Monakov  <amonakov@ispras.ru>
5686
5687         * config/nvptx/nvptx.c (nvptx_option_override): Don't emit sorry
5688         for the stabs debug format.
5689
5690 2016-03-21  Richard Biener  <rguenther@suse.de>
5691
5692         PR tree-optimization/70310
5693         * tree-vect-generic.c (expand_vector_condition): Fold the built
5694         condition.
5695
5696 2016-03-21  Kirill Yukhin  <kirill.yukhin@intel.com>
5697
5698         PR target/70293
5699         * config/i386/sse.md: (define_insn "*vec_dup<mode>"/AVX2):
5700         Block third alternative for AVX-512VL target,
5701
5702 2016-03-21  Martin Liska  <mliska@suse.cz>
5703
5704         PR hsa/70234
5705         * hsa-brig.c (emit_function_directives): Mark unemitted
5706         global variables for emission.
5707         * hsa-gen.c (hsa_symbol::hsa_symbol): Initialize a new flag.
5708         (get_symbol_for_decl): Likewise.
5709         * hsa.h (struct hsa_symbol): New flag.
5710
5711 2016-03-21  Richard Biener  <rguenther@suse.de>
5712
5713         PR tree-optimization/70288
5714         * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Make sure
5715         we do not estimate unsimplified all-constant conditionals or
5716         switches as optimized away.
5717
5718 2016-03-21  Andrey Belevantsev  <abel@ispras.ru>
5719
5720         PR rtl-optimization/69102
5721         * sched-deps.c (sched_analyze_insn): Do not set last_args_size field
5722         when we have a readonly dependency context.
5723
5724 2016-03-18  Jeff Law  <law@redhat.com>
5725
5726         PR rtl-optimization/70263
5727         * ira.c (memref_used_between_p): Assert we found END in the insn chain.
5728         (update_equiv_regs): When trying to move a store to after the insn
5729         that sets the source of the store, make sure the store occurs after
5730         the insn that sets the source of the store.  When successful note
5731         the REG_EQUIV note created in the dump file.
5732
5733 2016-03-16  David Wohlferd  <dw@LimeGreenSocks.com>
5734             Bernd Schmidt  <bschmidt@redhat.com>
5735
5736         * doc/extend.texi: Document more potential problems with basic asms.
5737
5738 2016-03-18  Bernd Schmidt  <bschmidt@redhat.com>
5739
5740         PR rtl-optimization/70278
5741         * lra-constraints.c (split_reg): Handle the case where biggest_mode is
5742         VOIDmode.
5743
5744 2016-03-18  Jason Merrill  <jason@redhat.com>
5745
5746         * calls.c (load_register_parameters): Fix zero size sibcall logic.
5747
5748 2016-03-18  Kirill Yukhin  <kirill.yukhin@intel.com>
5749
5750         * config/i386/sse.md: Use vpbroadcastq for broadcasting DF
5751         values to 128b regs.
5752
5753 2016-03-18  Ilya Enkovich  <enkovich.gnu@gmail.com>
5754
5755         PR tree-optimization/70252
5756         * tree-vect-stmts.c (supportable_widening_operation): Check resulting
5757         boolean vector has a proper number of elements.
5758         (supportable_narrowing_operation): Likewise.
5759
5760 2016-03-18  Tom de Vries  <tom@codesourcery.com>
5761
5762         PR ipa/70269
5763         * cgraph.c (cgraph_node::get_body): Set dump_file to NULL after save.
5764
5765 2016-03-18  Jakub Jelinek  <jakub@redhat.com>
5766
5767         * reload1.c (emit_input_reload_insns): Use simplify_replace_rtx
5768         instead of replace_rtx for DEBUG_INSNs.
5769
5770 2016-03-18  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
5771
5772         * config/i386/znver1.md : Fix latencies of FP/SSE/AVX
5773         load type reservations.
5774
5775 2016-03-17  John David Anglin  <danglin@gcc.gnu.org>
5776
5777         PR target/70188
5778         * config/pa/constraints.md: Revert 2015-02-13 change.  Use
5779         define_constraint for "Q" and "T" constraints.
5780
5781 2016-03-17  Evandro Menezes  <e.menezes@samsung.com>
5782
5783         Tweak the pipeline model for Exynos M1
5784
5785         * config/aarch64/aarch64.c (exynosm1_tunings):  Enable weak prefetching
5786         model.
5787
5788 2016-03-17  David Malcolm  <dmalcolm@redhat.com>
5789
5790         PR c/70264
5791         * diagnostic-show-locus.c (compatible_locations_p): Handle the case
5792         where one or both locations aren't within a line_map.
5793
5794 2016-03-17  H.J. Lu  <hongjiu.lu@intel.com>
5795
5796         PR driver/70192
5797         * opts.c (finish_options): Don't set flag_pie to the default if
5798         -fpic, -fPIC, -fno-pic or -fno-PIC is used.  Set flag_pic to 0
5799         if it is -1.
5800
5801 2016-03-17  Joern Rennecke  <joern.rennecke@embecosm.com>
5802
5803         * config/i386/i386.md (*movv4qicc_insn+1..36): Pass
5804         true as ALL_REGS argument to replace_rtx.
5805
5806 2016-03-17  Richard Biener  <rguenther@suse.de>
5807
5808         PR debug/70271
5809         * dwarf2out.c (dwarf2out_early_finish): Process deferred_asm_name
5810         last.
5811
5812 2016-03-17  Jakub Jelinek  <jakub@redhat.com>
5813
5814         PR target/70245
5815         * rtl.h (replace_rtx): Add ALL_REGS argument.
5816         * rtlanal.c (replace_rtx): Likewise.  If true, use REGNO
5817         equality and assert mode is the same, instead of just rtx pointer
5818         equality.
5819         * config/i386/i386.md (mov + arithmetics with load peephole): Pass
5820         true as ALL_REGS argument to replace_rtx.
5821
5822 2016-03-17  Ilya Enkovich  <enkovich.gnu@gmail.com>
5823
5824         * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Apply
5825         for boolean vector with vector mode only.
5826         (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise.
5827
5828 2016-03-17  Nick Clifton  <nickc@redhat.com>
5829
5830         PR target/70162
5831         * config/rx/rx.c (rx_print_integer): Print negative constants in
5832         decimal.
5833
5834 2016-03-17  Jakub Jelinek  <jakub@redhat.com>
5835
5836         PR target/70261
5837         * rtlanal.c (replace_rtx): Revert 2016-03-16 change.
5838
5839 2016-03-16  Richard Henderson  <rth@redhat.com>
5840             Richard Biener  <rguenth@suse.de>
5841
5842         PR middle-end/70240
5843         PR middle-end/68215
5844         PR tree-opt/68714
5845         * gimplify.c (gimplify_expr) [VEC_COND_EXPR]: Gimplify the
5846         first operand as is_gimple_condexpr.
5847
5848         PR middle-end/70240
5849         PR middle-end/68215
5850         Revert r231575
5851         2015-12-11  Eric Botcazou  <ebotcazou@adacore.com>
5852         * tree-vect-generic.c (tree_vec_extract): Remove GSI parameter.
5853         Do not gimplify the result.
5854         (do_unop): Adjust call to tree_vec_extract.
5855         (do_binop): Likewise.
5856         (do_compare): Likewise.
5857         (do_plus_minus): Likewise.
5858         (do_negate): Likewise.
5859         (expand_vector_condition): Likewise.
5860         (do_cond): Likewise.
5861
5862 2016-03-16  Richard Henderson  <rth@redhat.com>
5863
5864         PR target/70048
5865         * config/aarch64/aarch64.c (virt_or_elim_regno_p): New.
5866         (aarch64_classify_address): Use it.
5867         (aarch64_legitimize_address): Force all subexpressions of PLUS
5868         into registers.  Simplify as (sfp+const)+reg or (reg+reg)+const.
5869
5870 2016-03-16  Jakub Jelinek  <jakub@redhat.com>
5871             Richard Biener  <rguenth@suse.de>
5872
5873         PR target/70245
5874         * rtlanal.c (replace_rtx): For REG, if from is a REG,
5875         return to even if only REGNO is equal, and assert
5876         mode is the same.
5877
5878 2016-03-11  Jeff Law  <law@redhat.com>
5879
5880         PR rtl-optimization/70224
5881         * reorg.c (relax_delay_slots): Pass right argument to CROSSING_JUMP_P.
5882
5883 2016-03-16  Richard Henderson  <rth@redhat.com>
5884
5885         PR middle-end/70199
5886         * function.h (struct function): Add has_forced_label_in_static.
5887         * gimplify.c (force_labels_r): Set it.
5888         * lto-streamer-in.c (input_struct_function_base): Read it.
5889         * lto-streamer-out.c (output_struct_function_base): Write it.
5890         * tree-inline.c (has_label_address_in_static_1): Remove.
5891         (copy_forbidden): Remove fndecl parameter; test
5892         has_forced_label_in_static.
5893         (inline_forbidden_p): Update call to copy_forbidden.
5894         (tree_versionable_function_p): Likewise.
5895         * ipa-chkp.c (chkp_instrumentable_p): Likewise.
5896         (chkp_versioning): Likewise.
5897         * tree-inline.h (copy_forbidden): Update decl.
5898
5899 2016-03-16  Marek Polacek  <polacek@redhat.com>
5900
5901         PR c/70093
5902         * cgraphunit.c (cgraph_node::expand_thunk): Also build call to the
5903         function being thunked if the result type doesn't have fixed size.
5904         * gimplify.c (gimplify_modify_expr): Also set LHS if the result type
5905         doesn't have fixed size.
5906
5907 2016-03-16  Bin Cheng  <bin.cheng@arm.com>
5908
5909         * tree-vect-loop.c (vect_analyze_loop_2): Fix wrong dump info by
5910         reporting malformed loop nest.
5911
5912 2016-03-16  Tom de Vries  <tom@codesourcery.com>
5913
5914         PR lto/70187
5915         * ipa-devirt.c (possible_polymorphic_call_targets): Move
5916         nodes.length () == 1 test to before first nodes[0] access.
5917
5918 2016-03-16  Tom de Vries  <tom@codesourcery.com>
5919
5920         PR tree-optimization/68715
5921         * graphite-scop-detection.c (scop_detection::merge_sese): Add missing
5922         single_pred_p test.
5923
5924 2016-03-16  Tom de Vries  <tom@codesourcery.com>
5925
5926         PR tree-optimization/68809
5927         * graphite-scop-detection.c (same_close_phi_node): Test if result types
5928         are the same.
5929
5930 2016-03-16  Carlos O'Donell  <carlos@redhat.com>
5931             Sandra Loosemore  <sandra@codesourcery.com>
5932
5933         * doc/extend.texi (Common Function Attributes): Describe ifunc impact
5934         on leaf attribute. Mention ELF interposition problems.
5935
5936 2016-03-16  Alan Modra  <amodra@gmail.com>
5937
5938         PR rtl-optimization/69195
5939         PR rtl-optimization/47992
5940         * ira.c (indirect_jump_optimize): Ignore artificial defs.
5941         Add comments.
5942
5943 2016-03-15  Eric Botcazou  <ebotcazou@adacore.com>
5944
5945         PR bootstrap/69513
5946         * dwarf2out.c (flush_limbo_die_list): Really flush the limbo list.
5947
5948 2016-03-15  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
5949
5950         * config/avr/avr.md (rotl<mode>3): Set mode for operand 2.
5951
5952 2016-03-15  Jakub Jelinek  <jakub@redhat.com>
5953
5954         PR rtl-optimization/70222
5955         * combine.c (simplify_shift_const_1): For A >> B >> C LSHIFTRT
5956         optimization if mode is different from result_mode, queue up masking
5957         of the result in outer_op.  Formatting fix.
5958
5959         PR middle-end/70239
5960         * tree-ssa-sccvn.c (VN_INFO_GET): Use safe_grow_cleared instead
5961         of safe_grow.
5962
5963 2016-03-15  Andrey Belevantsev  <abel@ispras.ru>
5964
5965         PR rtl-optimization/69032
5966         * sel-sched-ir.c (get_seqno_by_preds): Include both insn and head when
5967         looping backwards over basic block insns.
5968
5969 2016-03-15  Andrey Belevantsev  <abel@ispras.ru>
5970
5971         PR target/66660
5972         * sel-sched-ir.c (merge_expr): Avoid changing the speculative pattern
5973         to non-speculative when propagating trap bits.
5974
5975 2016-03-15  Andrey Belevantsev  <abel@ispras.ru>
5976
5977         PR rtl-optimization/63384
5978         * sel-sched.c (invoke_aftermath_hooks): Do not decrease issue_more on
5979         DEBUG_INSN_P insns.
5980
5981 2016-03-15  Andrey Belevantsev  <abel@ispras.ru>
5982
5983         PR target/64411
5984         * sched-deps.c (get_implicit_reg_pending_clobbers): New function,
5985         factored out from ...
5986         (sched_analyze_insn): ... here.
5987         * sched-int.h (get_implicit_reg_pending_clobbers): Declare it.
5988         * sel-sched-ir.c (setup_id_implicit_regs): New function, use
5989         get_implicit_reg_pending_clobbers in it.
5990         (setup_id_reg_sets): Use setup_id_implicit_regs.
5991         (deps_init_id): Ditto.
5992
5993 2016-03-15  Tom de Vries  <tom@codesourcery.com>
5994
5995         PR ipa/70161
5996         * cgraph.c (cgraph_node::get_body): Save, reset and restore
5997         dump_file_name.
5998         * passes.c (execute_one_ipa_transform_pass): Add missing argument to
5999         execute_function_dump.
6000         (execute_one_pass): Don't dump function if it will be dumped after ipa
6001         transform.
6002
6003 2016-03-15  Segher Boessenkool  <segher@kernel.crashing.org>
6004
6005         * genrecog.c (match_pattern_2): If pred is NULL don't call
6006         safe_predicate_mode on it.
6007
6008 2016-03-14  Jakub Jelinek  <jakub@redhat.com>
6009
6010         PR middle-end/70219
6011         * lra-constraints.c (delete_move_and_clobber): Change assertion
6012         to also allow dregno == 0.
6013
6014 2016-03-14  Richard Henderson  <rth@redhat.com>
6015
6016         PR tree-opt/68714
6017         * tree-ssa-reassoc.c (ovce_extract_ops, optimize_vec_cond_expr): New.
6018         (can_reassociate_p): Allow ANY_INTEGRAL_TYPE_P.
6019         (reassociate_bb): Use optimize_vec_cond_expr; avoid
6020         optimize_range_tests, attempt_builtin_copysign and attempt_builtin_powi
6021         on vectors.
6022
6023 2016-03-14  Bernd Schmidt  <bschmidt@redhat.com>
6024
6025         PR target/70083
6026         * lra-lives.c (process_bb_lives): Also update biggest mode for hard
6027         regs.
6028         (lra_create_live_ranges_1): initialize hard register biggest_mode to
6029         VOIDmode.
6030         * lra-constraints.c (split_reg): For hard regs, try to find the
6031         biggest single-register mode used in the function.
6032
6033 2016-03-14  Richard Biener  <rguenther@suse.de>
6034
6035         PR tree-optimization/56365
6036         * tree-ssa-phiopt.c (minmax_replacement): Handle alternate
6037         constants to compare against.
6038
6039 2016-03-14  Segher Boessenkool  <segher@kernel.crashing.org>
6040
6041         PR target/70098
6042         * config/rs6000/rs6000.md (*ctr<mode>_internal1, *ctr<mode>_internal2,
6043         *ctr<mode>_internal5, *ctr<mode>_internal6): Also allow "d" as output.
6044         (define_split for the GPR case): Use int_reg_operand instead of
6045         gpc_reg_operand for the output.
6046
6047 2016-03-14  Tom de Vries  <tom@codesourcery.com>
6048
6049         PR tree-optimization/70045
6050         * graphite-isl-ast-to-gimple.c (graphite_create_new_loop_guard): Unshare
6051         create_empty_if_region_on_edge argument.
6052
6053 2016-03-13  Eric Botcazou  <ebotcazou@adacore.com>
6054
6055         * config/arm/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Define.
6056         (STACK_CHECK_PROTECT): Likewise.
6057         * config/i386/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise
6058         (STACK_CHECK_PROTECT): Likewise.
6059         * config/rs6000/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise
6060         (STACK_CHECK_PROTECT): Likewise.
6061         * config/rs6000/vxworksae.h (STACK_CHECK_PROTECT): Likewise.
6062         * config/sparc/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
6063         (STACK_CHECK_PROTECT): Likewise.
6064
6065 2016-03-12  Andrey Belevantsev  <abel@ispras.ru>
6066
6067         PR rtl-optimization/69307
6068         * sel-sched.c (choose_best_pseudo_reg): Properly check for hard
6069         registers in modes that span more than one register.
6070
6071 2016-03-12  Vladimir Makarov  <vmakarov@redhat.com>
6072
6073         PR target/69614
6074         * lra-constraints.c (delete_move_and_clobber): New.
6075         (remove_inheritance_pseudos): Use it.
6076
6077 2016-03-12  Eric Botcazou  <ebotcazou@adacore.com>
6078
6079         PR ada/70017
6080         * calls.c (emit_library_call_value_1): Clear the ECF_NOTHROW flag if
6081         the libcall is LCT_THROW.
6082         * explow.c (probe_stack_range): Pass LCT_THROW to emit_library_call
6083         for the checking routine.
6084
6085 2016-03-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
6086
6087         PR target/70131
6088         * config/rs6000/rs6000.md (round32<mode>2_fprs): Do not do the
6089         optimization if we have direct move.
6090         (roundu32<mode>2_fprs): Likewise.
6091
6092 2016-03-11  Bernd Schmidt  <bschmidt@redhat.com>
6093
6094         PR target/70123
6095         * lra-remat.c (operand_to_remat): Disallow hard regs in the value t
6096         be rematerialized.
6097         (reg_overlap_for_remat_p): Renamed from input_regno_present_p.
6098         Arguments swapped.  All callers changed.  Take reg_renumber into
6099         account, and Calculate and compare register ranges for hard regs.
6100
6101 2016-03-11  Jeff Law  <law@redhat.com>
6102
6103         PR tree-optimization/70190
6104         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
6105         Handle cases where we can not extract the taken edge, even though we
6106         found a constant value.
6107
6108         PR tree-optimization/64058
6109         * tree-ssa-coalesce.c (struct coalesce_pair): Add new field INDEX.
6110         (num_coalesce_pairs): Move up earlier in file.
6111         (find_coalesce_pair): Initialize the INDEX field for each pair
6112         discovered.
6113         (compare_pairs): No longer sort on the elements in each pair.
6114         Instead break ties with the index of the coalesce pair.
6115
6116 2016-03-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6117
6118         PR target/70002
6119         * config/aarch64/aarch64-protos.h
6120         (aarch64_save_restore_target_globals): New prototype.
6121         * config/aarch64/aarch64-c.c (aarch64_pragma_target_parse):
6122         Call the above when popping pragma.
6123         * config/aarch64/aarch64.c (aarch64_save_restore_target_globals):
6124         New function.
6125         (aarch64_set_current_function): Rewrite using the above.
6126
6127 2016-03-11  Jakub Jelinek  <jakub@redhat.com>
6128
6129         PR tree-optimization/70177
6130         * gimple-expr.h (extract_ops_from_tree_1): Renamed to ...
6131         (extract_ops_from_tree): ... this.  In the 2 argument
6132         overload remove _1 suffix.
6133         * gimple-expr.c (extract_ops_from_tree_1): Renamed to ...
6134         (extract_ops_from_tree): ... this.
6135         * gimple.c (gimple_build_assign, gimple_assign_set_rhs_from_tree):
6136         Adjust callers.
6137         * tree-ssa-loop-niter.c (derive_constant_upper_bound): Likewise.
6138         * tree-ssa-forwprop.c (defcodefor_name): Call 3 operand
6139         extract_ops_from_tree instead of 2 operand one.
6140
6141 2016-03-11  Alan Lawrence  <alan.lawrence@arm.com>
6142
6143         PR tree-optimization/70013
6144         * tree-sra.c (analyze_access_subtree): Also set grp_unscalarized_data
6145         for constant-pool entries.
6146
6147 2016-03-11  Jakub Jelinek  <jakub@redhat.com>
6148
6149         PR rtl-optimization/70174
6150         * expmed.c (store_bit_field_using_insv): Use gen_lowpart_if_possible
6151         followed by gen_lowpart on force_reg instead of just gen_lowpart.
6152
6153         PR tree-optimization/70169
6154         * tree-ssa-loop.c (gen_lsm_tmp_name): Handle FUNCTION_DECL and
6155         LABEL_DECL like VAR_DECL.  Emit nothing instead of gcc_unreachable
6156         for unknown codes.
6157
6158 2016-03-11  Ilya Enkovich  <enkovich.gnu@gmail.com>
6159             Jakub Jelinek  <jakub@redhat.com>
6160
6161         PR target/70160
6162         * config/i386/i386.c (scalar_chain::convert_reg): Skip uses
6163         of uninitialized values.
6164
6165 2016-03-11  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6166
6167         * config/s390/s390.md ("trunctddd2"): Turn former define_insn into
6168         define_expand.
6169         ("*trunctddd2"): New pattern definition.
6170         ("trunctdsd2"): Set prep_for_short_prec rounding mode for the
6171         TD->DD truncation.
6172
6173 2016-03-11  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6174
6175         * config/s390/s390.md (BFP_RND_*, DFP_RND_*): Add new constant
6176         definitions for BFP and DFP rounding modes.
6177         ("fixuns_truncdddi2", "fixuns_trunctddi2")
6178         ("fixuns_trunc<BFP:mode><GPR:mode>2", "fixuns_trunc<mode>si2")
6179         ("fix_trunc<DSF:mode><GPR:mode>2", "fix_trunc<mode>di2")
6180         ("fix_trunctf<mode>2"): Use the new constants instead of magic
6181         numbers.
6182
6183 2016-03-11  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6184
6185         * config/s390/constraints.md: Adjust comment.
6186         ("Y"): Adjust comment.  Rename s390_decompose_shift_count to
6187         s390_decompose_addrstyle_without_index.
6188         * config/s390/predicates.md (shift_count_or_setmem_operand):
6189         Rename to setmem_operand.
6190         * config/s390/s390-protos.h
6191         (s390_decompose_shift_count): Rename to
6192         s390_decompose_addrstyle_without_index.
6193         * config/s390/s390.c (s390_decompose_shift_count)
6194         (s390_mem_constraint, print_shift_count_operand)
6195         (print_operand_address, print_operand): Rename
6196         s390_decompose_shift_count to
6197         s390_decompose_addrstyle_without_index and rename
6198         print_shift_count_operand to print_addrstyle_operand troughout the
6199         file.
6200         * config/s390/s390.md ("setmem_long_<P:mode>", "*setmem_long")
6201         ("*setmem_long_and", "*setmem_long_31z", "*setmem_long_and_31z"):
6202         Rename shift_count_or_setmem_operand to setmem_operand.
6203         * config/s390/vx-builtins.md ("vec_insert<mode>")
6204         ("vec_promote<mode>"): Replace shift_count_or_setmem_operand with
6205         nonmemory_operand.
6206
6207 2016-03-10  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
6208
6209         PR target/70168
6210         * config/rs6000/rs6000.c (rs6000_expand_atomic_compare_and_swap):
6211         Handle overlapping retval and newval.
6212
6213 2016-03-10  Nick Clifton  <nickc@redhat.com>
6214
6215         PR target/7044
6216         * config/aarch64/aarch64.c
6217         (aarch64_override_options_after_change_1): When forcing
6218         flag_omit_frame_pointer to be true, use a special value that can
6219         be detected if this function is called again, thus preventing
6220         flag_omit_leaf_frame_pointer from being forced to be false.
6221
6222 2016-03-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6223
6224         * common/config/aarch64/aarch64-common.c (aarch64_handle_option):
6225         Set x_flag_omit_leaf_frame_pointer when handling
6226         -momit-leaf-frame-pointer.
6227
6228 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
6229
6230         PR lto/69589
6231         * cgraph.c (cgraph_node::dump): Dump split_part and
6232         indirect_call_target.
6233         * cgraph.h (cgraph_node): Add indirect_call_target flag.
6234         * ipa.c (has_addr_references_p): Cleanup.
6235         (is_indirect_call_target_p): New.
6236         (walk_polymorphic_call_targets): Do not mark virtuals that may be
6237         called indirectly as local.
6238         (symbol_table::remove_unreachable_nodes): Compute indirect_call_target.
6239
6240 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
6241
6242         PR ipa/69630
6243         * ipa-devirt.c (possible_polymorphic_call_targets): Do not ICE
6244         on cxa_pure_virtual.
6245
6246 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
6247
6248         PR lto/69589
6249         * tree.c (free_lang_data_in_decl): Clear visibility of TYPE_DECL.
6250
6251 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
6252
6253         PR lto/69589
6254         * tree.c (need_assembler_name_p): Only record main variant type names.
6255
6256 2016-03-10  Christophe Lyon  <christophe.lyon@linaro.org>
6257
6258         PR target/70113.
6259         * config/aarch64/aarch64.h (TARGET_FIX_ERR_A53_843419_DEFAULT):
6260         Always define to 0 or 1.
6261         (TARGET_FIX_ERR_A53_843419): New macro.
6262         * config/aarch64/aarch64-elf-raw.h
6263         (TARGET_FIX_ERR_A53_843419_DEFAULT): Update for above changes.
6264         * config/aarch64/aarch64-linux.h: Likewise.
6265         * config/aarch64/aarch64.c
6266         (aarch64_override_options_after_change_1): Do not default
6267         aarch64_nopcrelative_literal_loads to true if Cortex-A53 erratum
6268         843419 is on.
6269         (aarch64_attributes): Handle fix-cortex-a53-843419.
6270         (aarch64_can_inline_p): Likewise.
6271         * config/aarch64/aarch64.opt (aarch64_fix_a53_err843419): Save.
6272
6273 2016-03-10  Alan Lawrence  <alan.lawrence@arm.com>
6274         Jakub Jelinek <jakub@redhat.com>
6275
6276         * common.opt (funconstrained-commons, flag_unconstrained_commons): New.
6277         * tree.c (array_at_struct_end_p): Do not limit to size of decl for
6278         DECL_COMMONS if flag_unconstrained_commons is set.
6279         * tree-dfa.c (get_ref_base_and_extent): Likewise.
6280         * doc/invoke.texi (Optimize Options): Add -funconstrained-commons.
6281         (funconstrained-commons): Document.
6282
6283 2016-03-10  Christophe Lyon  <christophe.lyon@linaro.org>
6284
6285         * config/aarch64/t-aarch64 (OPTIONS_H_EXTRA): Add
6286         aarch64-fusion-pairs.def and aarch64-tuning-flags.def
6287
6288 2016-03-10  Ilya Enkovich  <enkovich.gnu@gmail.com>
6289
6290         * tree-vect-stmts.c (vectorizable_mask_load_store): Check mask
6291         has a proper number of elements.
6292
6293 2016-03-10  Alan Modra  <amodra@gmail.com>
6294
6295         PR rtl-optimization/69195
6296         PR rtl-optimization/47992
6297         * ira.c (recorded_label_ref): Delete.
6298         (update_equiv_regs): Return void.
6299         (indirect_jump_optimize): New function.
6300         (ira): Call indirect_jump_optimize and delete_trivially_dead_insns
6301         before regstat_compute_ri.  Don't rebuild_jump_labels here.
6302         Delete update_regstat.
6303
6304 2016-03-10  Richard Biener  <rguenther@suse.de>
6305
6306         PR tree-optimization/70128
6307         * tree-ssa-structalias.c (set_uids_in_ptset): Set
6308         vars_contains_nonlocal for any FUNCTION_DECL or LABEL_DECL.
6309
6310 2016-03-09  Jakub Jelinek  <jakub@redhat.com>
6311
6312         PR tree-optimization/70152
6313         * tree-sra.c (replace_removed_params_ssa_names): Copy over
6314         SSA_NAME_OCCURS_IN_ABNORMAL_PHI from old_name to new_name.
6315
6316         PR target/70086
6317         * config/i386/i386.md (truncdfsf2 splitter): Use gen_vec_concatv2df
6318         instead of gen_sse2_loadlpd.
6319         * config/i386/sse.md (*vec_concatv2df): Rename to...
6320         (vec_concatv2df): ... this.
6321
6322         PR tree-optimization/70127
6323         * fold-const.c (operand_equal_p): Revert the 2015-10-28 change.
6324
6325 2016-03-09  David Malcolm  <dmalcolm@redhat.com>
6326
6327         PR c/68473
6328         PR c++/70105
6329         * diagnostic-show-locus.c (compatible_locations_p): New function.
6330         (layout::layout): Sanitize ranges using compatible_locations_p.
6331
6332 2016-03-09  David Malcolm  <dmalcolm@redhat.com>
6333
6334         PR c/68473
6335         PR c++/70105
6336         * diagnostic-show-locus.c (layout_range::layout_range): Replace
6337         location_range param with three const expanded_locations * and a
6338         bool.
6339         (layout::layout): Replace call to
6340         rich_location::lazily_expand_location with get_expanded_location.
6341         Extract the range and perform location expansion here, passing
6342         the results to the layout_range ctor.
6343         * diagnostic.c (source_range::debug): Delete.
6344         * diagnostic.h (diagnostic_expand_location): Reimplement in terms
6345         of rich_location::get_expanded_location.
6346         * gcc-rich-location.c (get_range_for_expr): Delete.
6347         (gcc_rich_location::add_expr): Reimplement to avoid the
6348         rich_location::add_range overload that took a location_range,
6349         passing a location_t instead.
6350
6351 2016-03-09  Richard Biener  <rguenther@suse.de>
6352         Jakub Jelinek  <jakub@redhat.com>
6353
6354         PR tree-optimization/70138
6355         * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
6356         Also skip vect_double_reduction_def.
6357
6358 2016-03-09  Jakub Jelinek  <jakub@redhat.com>
6359
6360         PR target/70049
6361         * config/i386/sse.md (*vec_extract<mode>): Use %0 instead of %k0
6362         if the operand is "m".
6363
6364 2016-03-09  Nathan Sidwell  <nathan@acm.org>
6365
6366         * config/nvptx/nvptx.c (nvptx_option_override): Don't kill debug level.
6367
6368 2016-03-09  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
6369
6370         * config/i386/i386.c (processor_target_table): Fix cost table
6371         intialization order for znver1.
6372
6373 2016-03-08  Jakub Jelinek  <jakub@redhat.com>
6374
6375         * ipa-polymorphic-call.c (walk_ssa_copies): Fix spelling
6376         - becuase -> because.
6377         * ipa-reference.c (ignore_module_statics): Likewise.
6378         * cgraph.c (cgraph_node::get_body): Likewise.
6379         * ipa-inline.c (early_inliner): Likewise.
6380         * ipa-devirt.c (types_same_for_odr): Likewise.
6381         * tree-streamer-out.c (pack_ts_type_common_value_fields): Likewise.
6382         * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Likewise.
6383
6384 2016-03-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6385
6386         * tree-ssa-math-opts.c: Fix typo in comment.
6387
6388 2016-03-08  Jakub Jelinek  <jakub@redhat.com>
6389
6390         PR target/70110
6391         * config/i386/i386.c (scalar_chain::make_vector_copies,
6392         scalar_chain::convert_reg): Call end_sequence in between
6393         get_insns and emit_conversion_insns rather than after both
6394         calls.
6395
6396 2016-03-07  Uros Bizjak  <ubizjak@gmail.com>
6397
6398         PR target/70064
6399         * config/i386/i386.h (machine_function): Add
6400         pc_thunk_call_expanded flag.
6401         (ix86_pc_thunk_call_expanded): New define.
6402         * config/i386/i386.md (set_got, set_got_labelled): New expanders.
6403         (*set_got): Rename insn pattern from set_got.
6404         (*set_got_labelled): Rename inst pattern from set_got_labelled.
6405         * config/i386/i386.c (ix86_compute_frame_layout): Use
6406         ix86_pc_thunk_call_expanded to prevent red-zone.
6407
6408 2016-03-07  Martin Jambor  <mjambor@suse.cz>
6409
6410         * hsa.h (hsa_get_ctor_statements): Declare.
6411         (hsa_get_dtor_statements): Likewise.
6412         (hsa_get_kernel_dispatch_type): Likewise.
6413         * hsa.c (hsa_get_ctor_statements): New function.
6414         (hsa_get_dtor_statements): Likewise.
6415         (hsa_get_kernel_dispatch_type): Likewise.
6416         * hsa-brig.c (hsa_cdtor_statements): Removed.
6417         (hsa_output_libgomp_mapping): Use hsa_get_ctor_statements and
6418         hsa_get_dtor_statements.
6419         * hsa-gen.c (hsa_kernel_dispatch_type): Removed.
6420         (get_hsa_kernel_dispatch_offset): Use hsa_get_kernel_dispatch_type.
6421
6422 2016-03-07  Andre Vieira  <andre.simoesdiasvieira@arm.com>
6423
6424         * config/arm/arm-cores.def (cortex-r8): New.
6425         * config/arm/arm-tables.opt (cortex-r8): Regenerate.
6426         * config/arm/arm-tune.md: Likewise.
6427         * gcc/doc/invoke.texi: Add cortex-r8 to list of cpu values.
6428
6429 2016-03-07  Martin Sebor  <msebor@redhat.com>
6430
6431         PR rtl-optimization/19705
6432         * doc/invoke.texi (Options That Control Optimization): Clarify
6433         -fno-branch-count-reg.
6434
6435 2016-02-26  Richard Biener  <rguenther@suse.de>
6436             Jeff Law  <law@redhat.com>
6437
6438         PR tree-optimization/69740
6439         * cfghooks.c (remove_edge): Request loop fixups if we delete
6440         an edge that might turn an irreducible loop into a natural
6441         loop.
6442         * cfgloop.h (check_verify_loop_structure): Clear LOOPS_NEED_FIXUP.
6443         Move after definition of loops_state_clear.
6444
6445 2016-03-07  Bin Cheng  <bin.cheng@arm.com>
6446
6447         PR rtl-optimization/69052
6448         * rtlanal.c (commutative_operand_precedence): Set higher precedence
6449         to CONST_WIDE_INT.
6450
6451 2016-03-07  Tom de Vries  <tom@codesourcery.com>
6452
6453         PR tree-optimization/70116
6454         * tree-ssa-tail-merge.c (merge_stmts_p): New function, handling
6455         is_tm_ending stmts and ubsan/asan internal functions.
6456         (find_duplicate): Use it.  Don't test is_tm_ending here.
6457
6458 2016-03-07  Richard Biener  <rguenther@suse.de>
6459
6460         PR tree-optimization/70115
6461         * tree-ssa-loop-ivcanon.c (propagate_into_all_uses): Remove.
6462         (propagate_constants_for_unrolling): Use replace_uses_by.
6463
6464 2016-03-07  Nathan Sidwell  <nathan@codesourcery.com>
6465
6466         PR middle-end/69916
6467         * omp-low.c (struct oacc_loop): Add ifns.
6468         (new_oacc_loop_raw): Initialize it.
6469         (finish_oacc_loop): Clear mask & flags if no ifns.
6470         (oacc_loop_discover_walk): Count IFN_GOACC_LOOP calls.
6471         (oacc_loop_xform_loop): Add ifns arg & adjust.
6472         (oacc_loop_process): Adjust oacc_loop_xform_loop call.
6473
6474 2016-03-07  Richard Henderson  <rth@redhat.com>
6475
6476         PR rtl-opt/70061
6477         * tree-outofssa.c (emit_partition_copy): Flush pending stack adjust.
6478         (insert_value_copy_on_edge): Likewise.
6479
6480 2016-03-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6481
6482         * config/arm/arm_neon.h: Show error if using with soft-float ABI.
6483
6484 2016-03-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6485
6486         PR target/62281
6487         * config/i386/sol2.h (STACK_REALIGN_DEFAULT): Define.
6488
6489 2016-03-05  Venkataramanan Kumar  <Venkataramanan.kumar@amd.com>
6490
6491         * config/i386/i386.c (znver1_cost): Fix Multiply cost.
6492
6493 2016-03-05  Venkataramanan Kumar  <Venkataramanan.kumar@amd.com>
6494
6495         Fix sseimul type attribute.
6496         * config/i386/znver1.md
6497         (znver1_sseimul, znver1_sseimul_avx256, znver1_sseimul_load,
6498         znver1_sseimul_avx256_load) : Fix the type attribute.
6499         (znver1_sseimul_di, znver1_sseimul_load_di): Fix type attribute,
6500         pipe usage and latency.
6501
6502 2016-03-05  Jakub Jelinek  <jakub@redhat.com>
6503
6504         PR c++/70084
6505         * tree-inline.c (copy_tree_body_r): When cancelling ADDR_EXPR
6506         of INDIRECT_REF and ADDR_EXPR changed type, fold_convert it
6507         to the right type.
6508
6509 2016-03-04  Bernd Schmidt  <bschmidt@redhat.com>
6510
6511         PR c/69973
6512         * targhooks.c (default_vector_alignment): Limit to MAX_OFILE_ALIGNMENT.
6513
6514         PR rtl-optimization/69941
6515         * postreload.c (reload_combine_recognize_pattern): Ensure all uses of
6516         the reg share its mode.
6517
6518 2016-03-04  Jeff Law  <law@redhat.com>
6519
6520         PR tree-optimization/69196
6521         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
6522         If the both SSA_NAMEs are anonymous, then consider them unassociated
6523         and include the PHI in the statement count.
6524
6525 2016-03-05  Tom de Vries  <tom@codesourcery.com>
6526
6527         * omp-low.c (check_omp_nesting_restrictions): Check for non-oacc
6528         construct in oacc routine.  Check for oacc region in oacc routine.
6529
6530 2016-03-04  Jakub Jelinek  <jakub@redhat.com>
6531
6532         PR target/70062
6533         * config/i386/i386.c (decide_alg): Add RECUR argument.  Revert
6534         2016-02-22 changes, instead don't recurse if RECUR is already true.
6535         Don't change *dynamic_check if RECUR.  Adjust recursive caller
6536         to pass true to the new argument.
6537         (ix86_expand_set_or_movmem): Adjust decide_alg caller.
6538
6539         PR target/70059
6540         * config/i386/sse.md (vec_set_lo_<mode><mask_name>,
6541         <extract_type_2>_vinsert<shuffletype><extract_suf_2>_mask): Formatting
6542         fixes.
6543         (vec_set_hi_<mode><mask_name>): Likewise.  Swap VEC_CONCAT operands.
6544
6545 2016-03-04  Bernd Schmidt  <bschmidt@redhat.com>
6546
6547         PR rtl-optimization/57676
6548         * lra-assigns.c (lra_assign): Guard test for maximum iterations
6549         with flag_checking.
6550
6551 2016-03-04  Ilya Enkovich  <enkovich.gnu@gmail.com>
6552
6553         * tree-vect-patterns.c (search_type_for_mask): Handle
6554         comparison of booleans.
6555
6556 2016-03-04  Jakub Jelinek  <jakub@redhat.com>
6557
6558         * doc/extend.texi (__builtin_alloca, __builtin_alloca_with_align):
6559         Fix @xref usage.
6560
6561         PR debug/69947
6562         * dwarf2out.c (prune_unused_types_walk_loc_descr): Handle
6563         all other ops that have dw_val_class_die_ref operands,
6564         and DW_OP_GNU_entry_value.
6565
6566 2016-03-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6567
6568         PR rtl-optimization/69904
6569         * config/arm/arm.c (arm_cannot_copy_insn_p):
6570         Return true for load-exclusive instructions.
6571
6572 2016-03-03  Jakub Jelinek  <jakub@redhat.com>
6573
6574         PR target/70021
6575         * tree-vect-stmts.c (vect_mark_relevant): Remove USED_IN_PATTERN
6576         argument, if STMT_VINFO_IN_PATTERN_P (stmt_info), always mark
6577         the pattern no matter if it is used just by non-pattern, pattern
6578         or mix thereof.
6579         (process_use, vect_mark_stmts_to_be_vectorized): Adjust callers.
6580         * tree-vect-patterns.c (vect_recog_vector_vector_shift_pattern): If
6581         oprnd1 def_stmt is in pattern, don't look through it.
6582
6583 2016-03-03  Marek Polacek  <polacek@redhat.com>
6584
6585         PR middle-end/70050
6586         * match.pd (X % -Y): Add INTEGRAL_TYPE_P check.
6587
6588 2016-03-03  Martin Liska  <mliska@suse.cz>
6589
6590         PR tree-optimization/70043
6591         * tree-vect-loop.c (optimize_mask_stores): Move iterator to
6592         previous statement if we see a debug statement.
6593
6594 2016-03-03  Richard Biener  <rguenther@suse.de>
6595
6596         PR tree-optimization/55936
6597         * tree-vrp.c (compare_name_with_value): Add use_equiv_p
6598         parameter and guard unsafe equivalence use.
6599         (vrp_evaluate_conditional_warnv_with_ops): Always use
6600         safe equivalences but not via the quadratic compare_names
6601         helper.
6602
6603 2016-03-03  Michael Collison  <michael.collison@linaro.org>
6604
6605         PR target/70014
6606         * config/arm/arm.md (*subsi3_carryin_const): Change predicate
6607         for operand 1 to s_register_operand. Change predicate for operand
6608         2 to arm_not_immediate_operand.
6609
6610 2016-03-02  H.J. Lu  <hongjiu.lu@intel.com>
6611
6612         * doc/tm.texi: Regenerated.
6613
6614 2016-03-02  Richard Henderson  <rth@redhat.com>
6615
6616         PR rtl-opt/67145
6617         * simplify-rtx.c (simplify_plus_minus): Allow reassoc without
6618         simplification when all args are positive non-fixed registers.
6619
6620 2016-03-02  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
6621
6622         * target.def (lra_p): Specify that new ports should use LRA.
6623
6624 2016-03-02  Jakub Jelinek  <jakub@redhat.com>
6625
6626         PR libgomp/69555
6627         * gimplify.c (gimplify_decl_expr): For decls with REFERENCE_TYPE, also
6628         gimplify_type_sizes the type they refer to.
6629         (omp_notice_variable): Handle reference vars to VLAs.
6630         * omp-low.c (lower_omp_target): Emit setup of OMP_CLAUSE_PRIVATE
6631         reference to VLA decls in the second pass instead of first pass.
6632
6633 2016-03-02  Tom de Vries  <tom@codesourcery.com>
6634
6635         PR tree-optimization/68659
6636         * graphite-isl-ast-to-gimple.c (collect_all_ssa_names): Handle
6637         new_expr == NULL_TREE.
6638         (get_new_name): Handle ADDR_EXPR.
6639
6640 2016-03-02  Bin Cheng  <bin.cheng@arm.com>
6641
6642         PR rtl-optimization/69052
6643         * loop-invariant.c (canonicalize_address): New function.
6644         (inv_can_prop_to_addr_use): Check validity of address expression
6645         which is canonicalized by above function.
6646
6647 2016-03-02  Alan Modra  <amodra@gmail.com>
6648
6649         PR ipa/69990
6650         * ipa-icf.c (sem_variable::merge): Do not merge an alias with
6651         larger alignment.
6652
6653 2016-03-02  Jakub Jelinek  <jakub@redhat.com>
6654
6655         PR target/70028
6656         * config/i386/i386.md (kmovw): Move m constraint to 2nd alternative.
6657         (*movhi_internal): Put mask moves from and to memory separately
6658         from moves from/to GPRs.
6659
6660 2016-03-02  Richard Biener  <rguenther@suse.de>
6661
6662         * genmatch.c (dt_node::gen_kids): Fix match code-gen for embedded
6663         GENERIC expressions in GIMPLE.
6664
6665 2016-03-02  Richard Biener  <rguenther@suse.de>
6666
6667         * config/i386/i386.c (type_natural_mode): Fix typo.
6668
6669 2016-03-02  Nick Clifton  <nickc@redhat.com>
6670
6671         * config.gcc (mep-*-elf): Add newlib-stdint.h to tm_file.
6672
6673 2016-03-02  Richard Biener  <rguenther@suse.de>
6674             Uros Bizjak  <ubizjak@gmail.com>
6675
6676         PR target/67278
6677         * config/i386/i386.c (type_natural_mode): Handle XFmode vectors.
6678
6679 2016-03-02  Richard Biener  <rguenther@suse.de>
6680
6681         PR middle-end/67278
6682         * tree-cfg.c (verify_expr): Adjust BIT_FIELD_REF case.
6683
6684 2016-03-02  Marek Polacek  <polacek@redhat.com>
6685
6686         PR c/67854
6687         * gimplify.c (gimplify_va_arg_expr): Use expanded location for the
6688         "is promoted to" warning.
6689
6690 2016-03-01  DJ Delorie  <dj@redhat.com>
6691
6692         * config.gcc: Deprecate mep-*.
6693
6694 2016-03-01  Vladimir Makarov  <vmakarov@redhat.com>
6695
6696         PR middle-end/70025
6697         * lra-constraints.c (regno_val_use_in): New.
6698         (match_reload): Use it instead of regno_use_in.
6699
6700 2016-03-01  Eric Botcazou  <ebotcazou@adacore.com>
6701
6702         PR rtl-optimization/70007
6703         * gcse.c (compute_ld_motion_mems): Tidy up and also invalidate memory
6704         references present in REG_EQUAL notes attached to non-SET patterns.
6705
6706 2016-03-01  Jeff Law  <law@redhat.com>
6707
6708         PR tree-optimization/69196
6709         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
6710         Appropriately clamp the number of statements to copy when the
6711         thread path does not traverse a loop backedge.
6712
6713         PR tree-optimization/69196
6714         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
6715         Do count some PHIs in the thread path against the insn count.  Decrease
6716         final statement count by one as the control statement in the last
6717         block will get removed.  Remove special cased code for handling PHIs
6718         in the last block.
6719
6720 2016-03-01  Uros Bizjak  <ubizjak@gmail.com>
6721
6722         PR target/70027
6723         * config/i386/i386.c (ix86_output_call_insn): Add -masm=intel
6724         asm dialect alternatives to explicit GOTPCREL calls.
6725
6726 2016-03-01  Eric Botcazou  <ebotcazou@adacore.com>
6727
6728         PR ada/70017
6729         * ira.c (do_reload): Issue warning for generic stack checking here...
6730         * reload1.c (reload): ...instead of here and streamline it.
6731
6732 2016-03-01  Nick Clifton  <nickc@redhat.com>
6733
6734         * config.gcc (cr16-*-elf): Add newlib-stdint.h to tm_file.
6735
6736 2016-03-01  Richard Biener  <rguenther@suse.de>
6737
6738         PR tree-optimization/69983
6739         * tree-chrec.c (eq_evolutions_p): Handle conversions, compare
6740         types and fall back to operand_equal_p.
6741
6742 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6743
6744         Revert
6745         2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6746
6747         * config/s390/constraints.md ("jm8"): New constraint.
6748         * config/s390/predicates.md ("const_int_8bitset_operand"): New
6749         predicate.
6750         * config/s390/s390.md ("*setmem_long", "*setmem_long_and"): Merge
6751         into ...
6752         ("*setmem_long<setmem_and>"): New pattern.
6753         ("*setmem_long_31z", "*setmem_long_and_31z"): Merge
6754         into ...
6755         ("*setmem_long_31z<setmem_and>"): New pattern.
6756         * config/s390/subst.md ("setmem_31z_subst", "setmem_and_subst"):
6757         New substitution rules with the required attributes.
6758
6759
6760 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6761
6762         Revert
6763         2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6764
6765         * gensupport.c (process_substs_on_one_elem): Split loop to
6766         complete mark_operands_used_in_match_dup on all expressions in the
6767         vector first.
6768         (adjust_operands_numbers): Inline into process_substs_on_one_elem
6769         and remove function.
6770
6771 2016-03-01  Richard Biener  <rguenther@suse.de>
6772
6773         PR middle-end/70022
6774         * fold-const.c (fold_indirect_ref_1): Fix range checking for
6775         vector BIT_FIELD_REF extract.
6776
6777 2016-03-01  Richard Biener  <rguenther@suse.de>
6778
6779         PR tree-optimization/69994
6780         * tree-ssa-reassoc.c (ops_equal_values_p): Handle missing case.
6781
6782 2016-03-01  Ilya Enkovich  <enkovich.gnu@gmail.com>
6783
6784         PR tree-optimization/69956
6785         * tree-vect-stmts.c (supportable_widening_operation): Support
6786         multi-step conversion of boolean vectors.
6787         (supportable_narrowing_operation): Likewise.
6788
6789 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6790
6791         * config/s390/s390.c (s390_decompose_address): Don't accept SImode
6792         anymore.
6793
6794 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6795
6796         * config/s390/subst.md (DSI_VI): New mode iterator.
6797         ("addr_style_op_subst"): Use DSI_VI instead of DSI.
6798         * config/s390/vector.md ("vec_set<mode>"): Move expander before
6799         the insn definition.
6800         ("*vec_set<mode>"): Change predicate and add alternative to
6801         support only either register or const_int operands as element
6802         selector.
6803         ("*vec_set<mode>_plus"): New pattern to support reg + const_int
6804         operands.
6805         ("vec_extract<mode>"): New expander.
6806         ("*vec_extract<mode>"): New insn definition supporting reg and
6807         const_int element selectors.
6808         ("*vec_extract<mode>_plus"): New insn definition supporting
6809         reg+const_int element selectors.
6810         ("rotl<mode>3", "ashl<mode>3", "ashr<mode>3"): Merge into the
6811         following expander+insn definition.
6812         ("<vec_shifts_name><mode>3"): New expander.
6813         ("*<vec_shifts_name><mode>3<addr_style_op>"): New insn definition.
6814
6815 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6816
6817         * config/s390/s390.md ("*tabort_1"): Change predicate to
6818         nonmemory_operand.  Add a second alternative to cover
6819         register as well as const int operands.
6820         ("*tabort_1_plus"): New pattern definition.
6821
6822 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6823
6824         * config/s390/s390.md ("*ashrdi3_cc_31")
6825         ("*ashrdi3_cconly_31""*ashrdi3_cc_31_and")
6826         ("*ashrdi3_cconly_31_and", "*ashrdi3_31_and", "*ashrdi3_31"):
6827         Merge insn definitions into ...
6828         ("*ashrdi3_31<addr_style_op_cc><masked_op_cc><setcc><cconly>"):
6829         New pattern definition.
6830         ("*ashr<mode>3_cc", "*ashr<mode>3_cconly", "ashr<mode>3", )
6831         ("*ashr<mode>3_cc_and", "*ashr<mode>3_cconly_and")
6832         ("*ashr<mode>3_and"): Merge insn definitions into ...
6833         ("*ashr<mode>3<addr_style_op_cc><masked_op_cc><setcc><cconly>"):
6834         New pattern definition.
6835         * config/s390/subst.md ("addr_style_op_cc_subst")
6836         ("masked_op_cc_subst", "setcc_subst", "cconly_subst"): New
6837         substitutions patterns plus attributes.
6838         Add ashiftrt to SUBST iterator.
6839
6840 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6841
6842         * config/s390/s390.md ("<shift><mode>3"): Change predicate of
6843         op2 to nonmemory_operand.
6844         ("*<shift>di3_31", "*<shift>di3_31_and"):
6845         Merge into single pattern definition ...
6846         ("*<shift>di3_31<addr_style_op><masked_op>"): New pattern.
6847         ("*<shift><mode>3", "*<shift><mode>3_and"): Merge into single
6848         pattern definition ...
6849         ("*<shift><mode>3<addr_style_op><masked_op>"): New pattern.
6850         * config/s390/subst.md: Add ashift and lshiftrt to SUBST
6851         iterator.
6852
6853 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6854
6855         * config/s390/predicates.md (const_int_6bitset_operand): New
6856         predicate.
6857         * config/s390/s390.md: Include subst.md.
6858         ("rotl<mode>3"): New expander.
6859         ("rotl<mode>3", "*rotl<mode>3_and"): Merge insn definitions into
6860         ...
6861         ("*rotl<mode>3<addr_style_op><masked_op>"): New insn definition.
6862         * config/s390/subst.md: New file.
6863
6864 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6865
6866         * config/s390/s390.md ("op_type", "atype", "length" attributes):
6867         Remove RRR type.  It doesn't really exist.
6868         ("RRer", "f0", "v0", "vf", "vd", "op1", "Rf"): Remove mode
6869         attributes.
6870         ("BFP", "DFP", "nDSF", "nDFDI"): Add mode attributes.
6871         ("*cmp<mode>_ccs", "floatdi<mode>2", "add<mode>3")
6872         ("*add<mode>3_cc", "*add<mode>3_cconly", "sub<mode>3")
6873         ("*sub<mode>3_cc", "*sub<mode>3_cconly", "mul<mode>3")
6874         ("fma<mode>4", "fms<mode>4", "div<mode>3", "*neg<mode>2")
6875         ("*abs<mode>2", "*negabs<mode>2", "sqrt<mode>2"): Override
6876         `enabled' attribute.
6877
6878 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6879
6880         * gensupport.c (process_substs_on_one_elem): Split loop to
6881         complete mark_operands_used_in_match_dup on all expressions in the
6882         vector first.
6883         (adjust_operands_numbers): Inline into process_substs_on_one_elem
6884         and remove function.
6885
6886 2016-02-29  Eric Botcazou  <ebotcazou@adacore.com>
6887
6888         PR target/69706
6889         * config/sparc/sparc.c (NWORDS_UP): Rename to...
6890         (CEIL_NWORDS): ...this.  Use CEIL macro.
6891         (compute_fp_layout): Adjust to above renaming.
6892         (function_arg_union_value): Likewise.
6893         (sparc_arg_partial_bytes): Likewise.
6894         (sparc_function_arg_advance): Likewise.
6895
6896 2016-02-29  Jeff Law  <law@redhat.com>
6897
6898         PR tree-optimization/70005
6899         * tree-ssa-uncprop.c (associate_equivalences_with_edges): Handle case
6900         where an object with a boolean range is compared against a value
6901         outside [0..1].
6902
6903         PR tree-optimization/69999
6904         * gimple-ssa-split-paths.c (split_paths): When duplicating a block
6905         with an outgoing edge marked with EDGE_IRREDUCIBLE_LOOP, schedule
6906         loop cleanups.
6907
6908 2016-02-29  Richard Biener  <rguenther@suse.de>
6909
6910         PR tree-optimization/69994
6911         * tree-ssa-reassoc.c (gimple_nop_conversion_p): New function.
6912         (get_unary_op): Look through nop conversions.
6913         (ops_equal_values_p): New function, look for equality diregarding
6914         nop conversions.
6915         (eliminate_plus_minus_pair): Use ops_equal_values_p
6916         (repropagate_negates): Do not use get_unary_op here.
6917
6918 2016-02-29  Martin Liska  <mliska@suse.cz>
6919
6920         * system.h: Poison ENABLE_CHECKING macro.
6921
6922 2016-02-29  Martin Liska  <mliska@suse.cz>
6923
6924         * hsa-gen.c (gen_body_from_gimple): Dump only if TDF_DETAILS
6925         is presented in dump flags.
6926         * hsa-regalloc.c (linear_scan_regalloc): Likewise.
6927         (hsa_regalloc): Likewise.
6928
6929 2016-02-19  Richard Biener  <rguenther@suse.de>
6930
6931         PR tree-optimization/69980
6932         * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Update
6933         permutation of those we need to keep.
6934
6935 2016-02-29  Eric Botcazou  <ebotcazou@adacore.com>
6936
6937         PR target/69706
6938         * config/sparc/sparc.c (ROUND_ADVANCE): Rename to...
6939         (NWORDS_UP): ...this
6940         (init_cumulative_args): Minor tweaks.
6941         (sparc_promote_function_mode): Likewise.
6942         (scan_record_type): Delete.
6943         (traverse_record_type): New function template.
6944         (classify_data_t): New structure type.
6945         (classify_registers): New inline function.
6946         (function_arg_slotno): In 64-bit mode, bail out early if FP slots are
6947         exhausted.  Instantiate traverse_record_type on classify_registers and
6948         deal with the case of a structure passed in slot #15 with no FP field
6949         in the first word.
6950         (assign_data_t): New structure type.
6951         (compute_int_layout): New static function.
6952         (compute_fp_layout): Likewise.
6953         (count_registers): New inline function.
6954         (assign_int_registers): New static function.
6955         (assign_fp_registers): Likewise.
6956         (assign_registers): New inline function.
6957         (function_arg_record_value_1): Delete.
6958         (function_arg_record_value_2): Likewise.
6959         (function_arg_record_value_3): Likewise.
6960         (function_arg_record_value): Adjust to above changes.  Instantiate
6961         traverse_record_type on count_registers to first count the number of
6962         registers to be used and then on assign_registers to assign them.
6963         (function_arg_union_value): Adjust to above renaming.
6964         (sparc_function_arg_1); Minor tweaks.  Remove commented out code.
6965         (sparc_arg_partial_bytes): Adjust to above renaming.  Deal with the
6966         case of a structure passed in slot #15
6967         (sparc_function_arg_advance): Likewise.
6968         (function_arg_padding): Minor tweak.
6969
6970 2016-02-29  Richard Biener  <rguenther@suse.de>
6971
6972         PR tree-optimization/69720
6973         * tree-vect-loop.c (get_initial_def_for_reduction): Avoid
6974         the adjustment_def path for possibly vectorized defs.
6975         (vect_create_epilog_for_reduction): Handle vectorized initial
6976         defs properly.
6977
6978 2016-02-28  Eric Botcazou  <ebotcazou@adacore.com>
6979
6980         * config/i386/cygming.h (STACK_REALIGN_DEFAULT): Define.
6981
6982 2016-02-27  Jeff Law  <law@redhat.com>
6983
6984         Revert
6985         2016-02-26  Richard Biener  <rguenther@suse.de>
6986                     Jeff Law  <law@redhat.com>
6987
6988         PR tree-optimization/69740
6989         * cfghooks.c (remove_edge): Request loop fixups if we delete
6990         an edge that might turn an irreducible loop into a natural
6991         loop.
6992
6993 2016-02-27  Jakub Jelinek  <jakub@redhat.com>
6994
6995         PR rtl-optimization/69896
6996         * tree-vect-generic.c (get_compute_type): Avoid single element
6997         vector types.
6998
6999 2016-02-26  Evandro Menezes  <e.menezes@samsung.com>
7000
7001         Rename the AArch64 tuning option and related functions to enable the
7002         Newton series for the reciprocal square root to reflect its
7003         approximative characteristic.
7004
7005         * config/aarch64/aarch64-protos.h (aarch64_emit_swrsqrt): Rename
7006         function to "aarch64_emit_approx_rsqrt".
7007         * config/aarch64/aarch64-tuning-flags.def: Rename tuning flag to
7008         AARCH64_EXTRA_TUNE_APPROX_RSQRT.
7009         * config/aarch64/aarch64.c (exynosm1_tunigs): Use new flag name.
7010         (xgene1_tunings): Likewise.
7011         (use_rsqrt_p): Likewise.
7012         (aarch64_emit_swrsqrt): Use new function name.
7013         * config/aarch64/aarch64-simd.md (aarch64_rsqrts_*): Likewise.
7014         * config/aarch64/aarch64.opt (mlow-precision-recip-sqrt): Reword the
7015         text explaining this option.
7016         * doc/invoke.texi (-mlow-precision-recip-sqrt): Likewise.
7017
7018 2016-02-26  Jakub Jelinek  <jakub@redhat.com>
7019
7020         PR target/69969
7021         * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
7022         complain about -mallow-movmisalign without -mvsx if
7023         TARGET_ALLOW_MOVMISALIGN was not set explicitly.
7024
7025 2016-02-26  Joel Sherrill  <joel@rtems.org>
7026
7027         * config.gcc: Add x86_64-*-rtems*.
7028         * gcc/config/i386/rtems-64.h: New file.
7029
7030 2016-02-26  Joel Sherrill  <joel@rtems.org>
7031
7032         * config.gcc: Add aarch64-*-rtems*.
7033         * gcc/config/aarch64/rtems.h: New file.
7034
7035 2016-02-26  Segher Boessenkool  <segher@kernel.crashing.org>
7036
7037         PR target/69946
7038         * config/rs6000/rs6000.c (rs6000_insn_for_shift_mask): Print rlwinm
7039         shift amount using %h.  Add comment.
7040
7041 2016-02-26  Richard Biener  <rguenther@suse.de>
7042             Jeff Law  <law@redhat.com>
7043
7044         PR tree-optimization/69740
7045         * cfghooks.c (remove_edge): Request loop fixups if we delete
7046         an edge that might turn an irreducible loop into a natural
7047         loop.
7048
7049 2016-02-26  Martin Jambor  <mjambor@suse.cz>
7050
7051         PR middle-end/69920
7052         * tree-sra.c (sra_modify_assign): Do not remove loads of
7053         uninitialized aggregates to SSA_NAMEs.
7054
7055 2016-02-26  Richard Henderson  <rth@redhat.com>
7056
7057         PR target/69709
7058         * config/s390/s390.md (risbg and risbgn splitters): Allocate new
7059         pseudo in case the target rtx matches the source of the left
7060         shift.
7061
7062 2016-02-26  Martin Jambor  <mjambor@suse.cz>
7063
7064         PR hsa/69568
7065         * hsa.h (hsa_type_packed_p): Declare.
7066         * hsa.c (hsa_type_packed_p): New function.
7067         * hsa-gen.c (mem_type_for_type): Use unsigned type for packed
7068         loads.
7069         (gen_hsa_insns_for_store): Use hsa_type_packed_p.
7070         * hsa-brig.c (emit_basic_insn): Likewise.
7071
7072 2016-02-26  Martin Jambor  <mjambor@suse.cz>
7073
7074         pr hsa/69674
7075         * hsa-gen.c (gen_hsa_phi_from_gimple_phi): Use proper hsa type for
7076         pointers.
7077         (gen_hsa_addr): Allow integer constants in TMR_INDEX2.
7078
7079 2016-02-26  Martin Jambor  <mjambor@suse.cz>
7080
7081         * hsa.h (is_a_helper): New overload for hsa_op_immed for
7082         hsa_op_with_type operands.
7083         (hsa_unsigned_type_for_type): Declare.
7084         * hsa.c (hsa_unsigned_type_for_type): New function.
7085         * hsa-gen.c (gen_hsa_binary_operation): Use hsa_unsigned_type_for_type.
7086         (gen_hsa_insns_for_operation_assignment): Satisfy constrains of
7087         the finalizer.  Do not emit extra move.
7088
7089 2016-02-26  Martin Jambor  <mjambor@suse.cz>
7090
7091         * hsa-gen.c (gen_hsa_ternary_atomic_for_builtin): Fail in presence of
7092         atomic operations in private segment.
7093
7094 2016-02-26  Martin Jambor  <mjambor@suse.cz>
7095
7096         * omp-low.c (grid_find_ungridifiable_statement): Store problematic
7097         statements to wi->info.  Also disallow omp simd constructs.
7098         (grid_target_follows_gridifiable_pattern): Use wi.info to dump reason
7099         for not gridifying.  Dump special string for omp_for.
7100
7101 2016-02-26  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7102
7103         PR target/69245
7104         * config/aarch64/aarch64.c (aarch64_set_current_function):
7105         Save/restore target globals when switching to
7106         target_option_default_node.
7107
7108 2016-02-26  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7109
7110         PR target/69613
7111         * config/aarch64/aarch64.c (aarch64_shift_truncation_mask):
7112         Return 0 if !SHIFT_COUNT_TRUNCATED.
7113
7114 2016-02-26  Jakub Jelinek  <jakub@redhat.com>
7115             Eric Botcazou  <ebotcazou@adacore.com>
7116
7117         PR rtl-optimization/69891
7118         * dse.c (scan_insn): If we can't figure out memset arguments
7119         or they are non-constant, call clear_rhs_from_active_local_stores.
7120
7121 2016-02-26  Martin Liska  <mliska@suse.cz>
7122
7123         * doc/extend.texi: Mention clog10, clog10f an clog10l
7124         in Builtins section.
7125
7126 2016-02-26  Martin Liska  <mliska@suse.cz>
7127
7128         * dwarf2out.c (new_loc_descr): Replace ENABLE_CHECKING with
7129         CHECKING_P.
7130         (resolve_args_picking_1): Likewise.
7131         * dwarf2out.h (struct GTY): Likewise.
7132
7133 2016-02-26  Martin Liska  <mliska@suse.cz>
7134
7135         * hsa-gen.c (generate_hsa): Replace ENABLE_CHECKING macro
7136         with flag_checking.
7137         * hsa-regalloc.c (linear_scan_regalloc): Likewise.
7138
7139 2016-02-26  Markus Trippelsdorf  <markus@trippelsdorf.de>
7140             Martin Liska  <mliska@suse.cz>
7141
7142         * doc/install.texi: Mention --enable-valgrind-annotations.
7143
7144 2016-02-26  Richard Biener  <rguenther@suse.de>
7145
7146         PR tree-optimization/69551
7147         * tree-ssa-structalias.c (get_constraint_for_ssa_var): When
7148         looking through aliases adjust DECL_PT_UID to refer to the
7149         ultimate alias target.
7150
7151 2016-02-25  Martin Liska  <mliska@suse.cz>
7152
7153         PR middle-end/69919
7154         * alloc-pool.c (after_memory_report): New variable.
7155         * alloc-pool.h (base_pool_allocator ::release): Do not use
7156         the infrastructure if after_memory_report.
7157         * toplev.c (toplev::main): Mark after memory report.
7158
7159 2016-02-25  Richard Biener  <rguenther@suse.de>
7160
7161         PR tree-optimization/48795
7162         * tree-vrp.c (check_array_ref): Use array_at_struct_end_p.
7163
7164 2016-02-25  Ilya Verbin  <ilya.verbin@intel.com>
7165
7166         PR driver/68463
7167         * config/gnu-user.h (CRTOFFLOADBEGIN): Define.  Add crtoffloadbegin.o if
7168         offloading is enabled and -fopenacc or -fopenmp is specified.
7169         (CRTOFFLOADEND): Likewise.
7170         (GNU_USER_TARGET_STARTFILE_SPEC): Add CRTOFFLOADBEGIN.
7171         (GNU_USER_TARGET_ENDFILE_SPEC): Add CRTOFFLOADEND.
7172         * lto-wrapper.c (offloadbegin, offloadend): Remove static vars.
7173         (offload_objects_file_name): New static var.
7174         (tool_cleanup): Remove offload_objects_file_name file.
7175         (find_offloadbeginend): Replace with ...
7176         (find_crtoffloadtable): ... this.
7177         (run_gcc): Remove offload_argc and offload_argv.
7178         Get offload_objects_file_name from -foffload-objects=... option.
7179         Read names of object files with offload from this file, pass them to
7180         compile_images_for_offload_targets.  Don't call find_offloadbeginend and
7181         don't pass offloadbegin and offloadend to the linker.  Don't pass
7182         offload non-LTO files to the linker, because now they're not claimed.
7183
7184 2016-02-25  Jan Hubicka  <hubicka@ucw.cz>
7185
7186         PR ipa/69630
7187         * ipa-devirt.c (possible_polymorphic_call_targets): Do not ICE
7188         on builtin_unreachable.
7189
7190 2016-02-25  Jakub Jelinek  <jakub@redhat.com>
7191
7192         PR rtl-optimization/69896
7193         * regcprop.c: Include cfgrtl.h.
7194         (copyprop_hardreg_forward_1): If noop_p insn uses narrower
7195         than remembered mode, either delete it (if noop_move_p), or
7196         treat like copy_p but not noop_p instruction.
7197
7198 2016-02-24  Jakub Jelinek  <jakub@redhat.com>
7199
7200         PR debug/69705
7201         * dwarf2out.c (gen_variable_die): Work around buggy LTO
7202         - allow NULL decl for Fortran DW_TAG_common_block variables.
7203
7204 2016-02-24  Jason Merrill  <jason@redhat.com>
7205
7206         * common.opt (flifetime-dse): Add -flifetime-dse=1.
7207
7208 2016-02-24  Richard Biener  <rguenther@suse.de>
7209             Jakub Jelinek  <jakub@redhat.com>
7210
7211         PR middle-end/69760
7212         * tree-scalar-evolution.c (interpret_rhs_expr): Re-write
7213         conditionally executed ops to well-defined overflow behavior.
7214
7215 2016-02-24  Jakub Jelinek  <jakub@redhat.com>
7216
7217         PR middle-end/69915
7218         * tree.c (build_vector_from_ctor): Fix handling of VECTOR_CST
7219         elements.
7220
7221 2016-02-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7222
7223         PR rtl-optimization/69886
7224         * gcse.c (can_assign_to_reg_without_clobbers_p): Accept mode
7225         argument.  Use it when checking validity of set instructions.
7226         (want_to_gcse_p): Pass mode to can_assign_to_reg_without_clobbers_p.
7227         (compute_ld_motion_mems): Update can_assign_to_reg_without_clobbers_p
7228         callsite.
7229         * rtl.h (can_assign_to_reg_without_clobbers_p): Update prototype.
7230         * store-motion.c (find_moveable_store): Update
7231         can_assign_to_reg_without_clobbers_p callsite.
7232
7233 2016-02-24  Richard Biener  <rguenther@suse.de>
7234
7235         PR middle-end/68963
7236         * tree-ssa-loop-niter.c (derive_constant_upper_bound_ops): Fix
7237         bogus check.
7238         (record_nonwrapping_iv): Do not fall back to the low/high bound
7239         for non-constant IV bases if the stmt is not always executed.
7240
7241 2016-02-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7242
7243         * config/arm/arm-cores.def (cortex-a32): New entry.
7244         * config/arm/arm-tables.opt: Regenerate.
7245         * config/arm/arm-tune.md: Regenerate.
7246         * config/arm/bpabi.h (BE8_LINK_SPEC): Add mcpu=cortex-a32.
7247         * config/arm/t-aprofile: Handle mcpu=cortex-a32.
7248         * doc/invoke.texi (ARM Options): Document cortex-a32 as value
7249         for -mcpu and -mtune.
7250
7251 2016-02-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7252
7253         PR target/69875
7254         * config/arm/arm.h (TARGET_HAVE_LPAE): Define.
7255         * config/arm/unspecs.md (VUNSPEC_LDRD_ATOMIC): New value.
7256         * config/arm/sync.md (arm_atomic_loaddi2_ldrd): New pattern.
7257         (atomic_loaddi_1): Delete.
7258         (atomic_loaddi): Rewrite expander using the above changes.
7259
7260 2016-02-24  Jakub Jelinek  <jakub@redhat.com>
7261
7262         PR c/69918
7263         * params.def (PARAM_MAX_SSA_NAME_QUERY_DEPTH): Bump default from
7264         2 to 3.
7265
7266 2016-02-24  Jakub Jelinek  <jakub@redhat.com>
7267             Richard Biener  <rguenth@suse.de>
7268
7269         PR middle-end/69909
7270         * expr.c (expand_expr_real_1) <normal_inner_ref>: Avoid
7271         set_mem_attributes if tem is SSA_NAME which got expanded
7272         as a MEM.
7273
7274 2016-02-24  Richard Biener  <rguenther@suse.de>
7275
7276         PR tree-optimization/69907
7277         * tree-vect-stmts.c (vectorizable_load): Check for gaps at the
7278         end of permutations for BB vectorization.
7279
7280 2016-02-24  Christian Bruel  <christian.bruel@st.com>
7281
7282         * config/arm/arm-c.c (arm_option_override): Initialize
7283         target_option_current_node.
7284         * config/arm/arm.c (arm_pragma_target_parse): Replace
7285         build_target_option_node call by target_option_current_node.
7286         Set target_option_current_node.
7287         Fix comments.
7288
7289 2016-02-23  David Edelsohn  <dje.gcc@gmail.com>
7290
7291         PR target/69810
7292         * config/rs6000/rs6000.md (zero_extendqi<mode>2_dot): Convert from
7293         define_insn_and_split to define_insn.
7294         (zero_extendqi<mode>2_dot2): Same.
7295         (extendqi<mode>2_dot): Same.
7296         (extendqi<mode>2_dot2): Same.
7297
7298 2016-02-23  Evandro Menezes  <e.menezes@samsung.com>
7299
7300         * config/arm/exynos-m1.md: Change cost of STP, fix bypass for stores
7301         and add bypass for AES{D,E} and AESMC pairs.
7302         * config/aarch64/aarch64.c (exynosm1_tunings): Enable fusion of AES{D,E}
7303         and AESMC pairs.
7304
7305 2016-02-23  Evandro Menezes  <e.menezes@samsung.com>
7306
7307         * config/aarch64/aarch64.c (exynosm1_tunings): Enable the Newton
7308         series for reciprocal square root in Exynos M1.
7309
7310 2016-02-23  Martin Sebor  <msebor@redhat.com>
7311
7312         PR c/69759
7313         * doc/extend.texi (Other Builtins): Document __builtin_alloca and
7314         __builtin_alloca_with_align.
7315
7316 2016-02-23  Richard Henderson  <rth@redhat.com>
7317
7318         * config/i386/i386-c.c (ix86_target_macros): Remove __SEG_TLS.
7319         (ix86_register_pragmas): Remove __seg_tls.
7320         * config/i386/i386-protos.h (ADDR_SPACE_SEG_TLS): Remove.
7321         * config/i386/i386.c (ix86_print_operand_address_as): Don't handle it.
7322         (ix86_addr_space_subset_p, TARGET_ADDR_SPACE_SUBSET_P): Remove.
7323         (ix86_addr_space_convert, TARGET_ADDR_SPACE_CONVERT): Remove.
7324         (ix86_addr_space_debug, TARGET_ADDR_SPACE_DEBUG): Remove.
7325         * doc/extend.texi (__seg_tls): Remove item.
7326
7327 2016-02-23  Richard Biener  <rguenther@suse.de>
7328
7329         * alloc-pool.h (struct allocation_object): Make id member
7330         conditional on CHECKING_P again.
7331         (get_instance): Adjust.
7332         (base_pool_allocator): Likewise.
7333
7334 2016-02-23  Thomas Schwinge  <thomas@codesourcery.com>
7335
7336         * tree-parloops.c (create_parallel_loop, gen_parallel_loop)
7337         (parallelize_loops): In OpenACC kernels mode, set n_threads to
7338         zero.
7339         (pass_parallelize_loops::gate): In OpenACC kernels mode, gate on
7340         flag_openacc.
7341         * tree-ssa-loop.c (gate_oacc_kernels): Likewise.
7342
7343 2016-02-23  Richard Biener  <rguenther@suse.de>
7344
7345         * mem-stats.h (struct mem_usage): Use PRIu64 for printing size_t.
7346         * bitmap.h (struct bitmap_usage): Likewise.
7347         (bitmap_move): Declare.
7348         * bitmap.c (register_overhead): Take size_t argument.
7349         (bitmap_move): New function.
7350         * df-problems.c (df_rd_transfer_function): Use bitmap_move
7351         to properly account overhead.
7352         * tree.c (free_node): Use tree_size.
7353
7354 2016-02-23  Jakub Jelinek  <jakub@redhat.com>
7355
7356         PR c++/69902
7357         * fold-const.c (fold_truth_not_expr): Propagate TREE_NO_WARNING
7358         when inverting comparison.
7359
7360         PR c/69900
7361         * common.opt (Wunreachable-code): Add Warning flag.
7362
7363 2016-02-23  Mark Wielaard  <mjw@redhat.com>
7364             Jakub Jelinek  <jakub@redhat.com>
7365
7366         PR c/69911
7367         * cgraphunit.c (check_global_declaration): Check main_input_filename
7368         and DECL_SOURCE_FILE are not NULL.
7369
7370 2016-02-23  Martin Jambor  <mjambor@suse.cz>
7371
7372         PR tree-optimization/69666
7373         * tree-sra.c (sra_modify_assign): Do not attempt to create
7374         default_def replacements for unscalarizable regions.
7375
7376 2016-02-20  Mark Wielaard  <mjw@redhat.com>
7377
7378         PR c/28901
7379         * cgraphunit.c (check_global_declaration): Check level of
7380         warn_unused_const_variable and main_input_filename.
7381         * doc/invoke.texi (Warning Options): Add -Wunused-const-variable=.
7382         (-Wunused-variable): For C implies -Wunused-const-variable=1.
7383         (-Wunused-const-variable): Explain levels 1 and 2.
7384
7385 2016-02-22  Jakub Jelinek  <jakub@redhat.com>
7386
7387         PR target/69888
7388         * config/i386/i386.c (decide_alg): Ensure we don't recurse with
7389         identical arguments.  Formatting and spelling fixes.
7390
7391         PR target/69885
7392         * doc/md.texi (ashl@var{m}3): Document that mode of operand 2 must
7393         be specified.
7394
7395         PR target/69894
7396         PR target/69895
7397         * config/m68k/t-opts (OPTIONS_H_EXTRA): Add m68k-microarchs.def
7398         and m68k-devices.def.
7399         * config/c6x/t-c6x (OPTIONS_H_EXTRA): Add c6x-isas.def.
7400         * config/aarch64/t-aarch64 (OPTIONS_H_EXTRA): Add aarch64-arches.def.
7401
7402 2016-02-22  Cesar Philippidis  <cesar@codesourcery.com>
7403
7404         * config/nvptx/nvptx.c (nvptx_gen_shuffle): Add support for QImode
7405         and HImode registers.
7406
7407 2016-02-22  Richard Biener  <rguenther@suse.de>
7408
7409         PR tree-optimization/69882
7410         * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Properly
7411         preserve permutations present because of gaps.
7412         (vect_supported_load_permutation_p): Always continue checking
7413         permutations after vect_attempt_slp_rearrange_stmts.
7414
7415 2016-02-22  Bin Cheng  <bin.cheng@arm.com>
7416
7417         * tree-vect-loop.c (vect_estimate_min_profitable_iters): Dump
7418         min_profitable_estimate, rather than min_profitable_iters.
7419
7420 2016-02-22  Jakub Jelinek  <jakub@redhat.com>
7421
7422         PR target/69885
7423         * config/m68k/m68k.md (ashldi3, ashrdi3, lshrdi3): Use
7424         SImode for last match_operand.
7425
7426 2016-02-22  Martin Liska  <mliska@suse.cz>
7427
7428         * hsa-gen.c (gen_hsa_clrsb): In case of zero value,
7429         return bitsize - 1 as the return value.
7430
7431 2016-02-22  Oleg Endo  <olegendo@gcc.gnu.org>
7432
7433         PR target/69806
7434         PR target/54089
7435         * config/sh/sh.c (sh_lshrsi_clobbers_t_reg_p, sh_dynamicalize_shift_p):
7436         Handle negative shift counts.
7437         * config/sh/sh.md (ashlsi3, lshrsi3_n, lshrsi3_n_clobbers_t): Don't use
7438         force_reg on the shift constant.
7439         (lshrsi3): Likewise.  Expand into lshrsi3_n* instead of lshrsi3_d.
7440         (lshrsi3_d): Handle negative shift counts.
7441
7442 2016-02-22  Richard Biener  <rguenther@suse.de>
7443             Tom de Vries  <tom@codesourcery.com>
7444
7445         * graph.c: Include dumpfile.h.
7446         (print_graph_cfg): Split into three overloads.
7447         * gdbhooks.py (class DotFn): Add and instantiate, adding command dot-fn.
7448
7449 2016-02-22  Tom de Vries  <tom@codesourcery.com>
7450
7451         * gdbhooks.py (class DumpFn): Add and instantiate, adding command
7452         dump-fn.
7453
7454 2016-02-22  Richard Biener  <rguenther@suse.de>
7455
7456         PR ipa/37448
7457         * ipa-inline-transform.c (inline_call): When not updating
7458         overall summaries adjust self size by the growth estimate.
7459         * ipa-inline.c (inline_to_all_callers_1): Add to the callers
7460         hash-set, do not update overall summaries here.  Renamed from ...
7461         (inline_to_all_callers): ... this which is now wrapping the
7462         above and performing delayed overall summary update.
7463         (early_inline_small_functions): Delay updating of the overall
7464         summary.
7465
7466 2016-02-21  Markus Trippelsdorf  <markus@trippelsdorf.de>
7467
7468         * tree-chkp.c (chkp_mark_invalid_bounds_walker): Initialize
7469         variable.
7470
7471 2016-02-19  Jakub Jelinek  <jakub@redhat.com>
7472
7473         PR driver/69805
7474         * gcc.c (LINK_COMMAND_SPEC, GOMP_SELF_SPECS): Use
7475         :%* in %:gt() argument.
7476         (greater_than_spec_func): Adjust for expecting only numbers,
7477         if there are more than two numbers, compare the last two.
7478
7479 2016-02-19  Jonathan Wakely  <jwakely@redhat.com>
7480
7481         * doc/invoke.texi (C++ Dialect Options): Clarify interaction of
7482         -Wnarrowing with -std.
7483
7484 2016-02-19  Jakub Jelinek  <jakub@redhat.com>
7485
7486         PR c++/69851
7487         * expr.c (store_field): Don't use bit-field path if exp is
7488         COMPONENT_REF with TREE_ADDRESSABLE type, where TYPE_SIZE is
7489         different from bitsize, but DECL_SIZE of FIELD_DECL is bitsize
7490         and the assignment can be performed by bitwise copy.  Formatting
7491         fix.
7492
7493         PR middle-end/69838
7494         * lra.c (lra_process_new_insns): If non-call exceptions are enabled,
7495         call copy_reg_eh_region_note_forward on before and/or after sequences
7496         and remove note from insn if it no longer can throw.
7497
7498         PR target/69820
7499         * config/i386/sse.md (VI_512): Only include V64QImode and V32HImode
7500         if TARGET_AVX512BW.
7501
7502 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
7503
7504         * config/s390/vector.md: Add missing commutative operand markers
7505         to the patterns which qualify for one.
7506         * config/s390/vx-builtins.md: Likewise.
7507
7508 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
7509
7510         * config/s390/vector.md (VI, VI_QHS): Add single element vector
7511         types to mode iterators.
7512         (vec_double): ... and mode attribute.
7513         * config/s390/vx-builtins.md (non_vec_int): Likewise.
7514
7515 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
7516
7517         * config/s390/vector.md ("<ti*>add<mode>3", "<ti*>sub<mode>3"):
7518         Change the predicate of op2 from nonimmediate to general and let
7519         reload fix it if necessary.
7520
7521 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
7522
7523         * config/s390/vecintrin.h (vec_sub_u128): Define missing macro.
7524
7525 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
7526
7527         * config/s390/s390.c (s390_expand_vcond): Use the compare operand
7528         mode.
7529
7530 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
7531
7532         * config/s390/s390-protos.h: Add s390_expand_vec_movstr prototype.
7533         * config/s390/s390.c (s390_expand_vec_movstr): New function.
7534         * config/s390/s390.md ("movstr<P:mode>"): Call
7535         s390_expand_vec_movstr.
7536
7537 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
7538
7539         * config/s390/s390.md: Add missing output modifier for operand 1
7540         to print it as address properly.
7541
7542 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
7543
7544         * config/s390/2827.md: Rename ooo_* insn attributes to zEC12_*.
7545         * config/s390/2964.md: New file.
7546         * config/s390/s390.c (s390_get_sched_attrmask): Use the right set
7547         of insn grouping attributes depending on the CPU level.
7548         (s390_get_unit_mask): New function.
7549         (s390_sched_score): Remove the OOO from the scheduling macros.
7550         Add loop to calculate a score for the instruction mix.
7551         (s390_sched_reorder): Likewise plus improve debug output.
7552         (s390_sched_variable_issue): Rename macros as above.  Calculate
7553         the unit distances after actually scheduling an insn.  Improve
7554         debug output.
7555         (s390_sched_init): Clear last_scheduled_unit_distance array.
7556         * config/s390/s390.md: Include 2964.md.
7557
7558 2016-02-18  Jakub Jelinek  <jakub@redhat.com>
7559
7560         PR target/69671
7561         * config/i386/sse.md (*<floatsuffix>floatv2div2sf2_mask_1,
7562         *avx512vl_<code>v2div2qi2_mask_1, *avx512vl_<code><mode>v4qi2_mask_1,
7563         *avx512vl_<code><mode>v8qi2_mask_1, *avx512vl_<code><mode>v4hi2_mask_1,
7564         *avx512vl_<code>v2div2hi2_mask_1, *avx512vl_<code>v2div2si2_mask_1,
7565         *avx512f_<code>v8div16qi2_mask_1): New insns.
7566
7567 2016-02-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
7568
7569         PR target/68404
7570         * config/rs6000/predicates.md (fusion_gpr_addis): Revert
7571         2016-02-09 change.
7572
7573         * config/rs6000/rs6000.md (fusion_gpr_load_<mode>): Remove
7574         earlyclobber from target.  Use wF constraint for fused memory
7575         address.
7576         (fusion_gpr_<P:mode>_<GPR_FUSION:mode>_load): Likewise.
7577
7578 2016-02-18  Jakub Jelinek  <jakub@redhat.com>
7579             Martin Liska  <mliska@suse.cz>
7580
7581         PR sanitizer/69863
7582         * cfgexpand.c (asan_sanitize_stack_p): New function.
7583         (partition_stack_vars): Use the function.
7584         (expand_stack_vars): Likewise.
7585         (defer_stack_allocation): Likewise.
7586         (expand_used_vars): Likewise.
7587
7588 2016-02-18  Richard Biener  <rguenther@suse.de>
7589
7590         PR middle-end/69553
7591         * fold-const.c (operand_equal_p): Properly compare offsets for
7592         IMAGPART_EXPR and ARRAY_REF.
7593
7594 2016-02-18  Nick Clifton  <nickc@redhat.com>
7595
7596         PR target/62254
7597         PR target/69610
7598         * config/arm/arm.c (arm_option_override_internal): Disable
7599         interworking if the target does not support thumb instructions.
7600         (arm_reload_in_hi): Handle the case where a register to register
7601         move needs reloading because there is no simple pattern to handle
7602         it.
7603         (arm_reload_out_hi): Likewise.
7604
7605 2016-02-18  Richard Biener  <rguenther@suse.de>
7606
7607         PR middle-end/69854
7608         * match.pd: Don't use fold_binary or fold_unary for folding
7609         constants.
7610
7611 2016-02-17  Jakub Jelinek  <jakub@redhat.com>
7612
7613         PR c++/69850
7614         * gimplify.c (gimplify_cond_expr): Call gimple_set_no_warning
7615         on the cond_stmt from TREE_NO_WARNING on COND_EXPR_COND.
7616         * gimple-ssa-nonnull-compare.c (do_warn_nonnull_compare): Don't
7617         warn on gimple_no_warning_p statements.
7618
7619 2016-02-17  Jonathan Wakely  <jwakely@redhat.com>
7620
7621         * doc/extend.texi (C++ Attributes): Correct description of
7622         warn_unused type attribute.
7623
7624 2016-02-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
7625
7626         * config/rs6000/altivec.md (*altivec_lvxl_<mode>_internal): Output
7627         correct instruction.
7628
7629 2016-02-17  Richard Biener  <rguenther@suse.de>
7630
7631         PR rtl-optimization/69609
7632         * bb-reorder.c (struct bbro_basic_block_data): Add priority member.
7633         (find_traces_1_round): When ending a trace update cached priority
7634         of successors.
7635         (bb_to_key): Use cached priority when available.
7636         (copy_bb): Initialize cached priority.
7637         (reorder_basic_blocks_software_trace_cache): Likewise.
7638
7639 2016-02-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7640
7641         PR target/69161
7642         * config/aarch64/predicates.md (aarch64_comparison_operator_mode):
7643         New predicate.
7644         (aarch64_comparison_operator): Break overly long line into two.
7645         (aarch64_comparison_operation): Likewise.
7646         * config/aarch64/aarch64.md (cstorecc4): Use
7647         aarch64_comparison_operator_mode instead of
7648         aarch64_comparison_operator.
7649         (cstore<mode>4): Likewise.
7650         (aarch64_cstore<mode>): Likewise.
7651         (*cstoresi_insn_uxtw): Likewise.
7652         (cstore<mode>_neg): Likewise.
7653         (*cstoresi_neg_uxtw): Likewise.
7654
7655 2016-02-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7656
7657         PR target/69161
7658         * config/arm/predicates.md (arm_comparison_operator_mode):
7659         New predicate.
7660         * config/arm/arm.md (*mov_scc): Use arm_comparison_operator_mode
7661         instead of arm_comparison_operator.
7662         (*mov_negscc): Likewise.
7663         (*mov_notscc): Likewise.
7664         * config/arm/thumb2.md (*thumb2_mov_scc): Likewise.
7665         (*thumb2_mov_negscc): Likewise.
7666         (*thumb2_mov_negscc_strict_it): Likewise.
7667         (*thumb2_mov_notscc): Likewise.
7668         (*thumb2_mov_notscc_strict_it): Likewise.
7669
7670 2016-02-17  Wilco Dijkstra  <wdijkstr@arm.com>
7671
7672         * config/aarch64/aarch64.c (aarch64_internal_mov_immediate):
7673         Add missing return.
7674
7675 2016-02-17  Eric Botcazou  <ebotcazou@adacore.com>
7676
7677         * config/visium/visium.c (machine_libfunc_index): New enum.
7678         (machine_libfuncs): New structure.
7679         (visium_libfuncs): New static variable.
7680         (TARGET_INIT_LIBFUNCS): Define to...
7681         (visium_init_libfuncs): ...this.  New function.
7682         (expand_block_move_4): Use the appropriate libfunc.
7683         (expand_block_move_2): Likewise.
7684         (expand_block_move_1): Likewise.
7685         (expand_block_set_4): Likewise.
7686         (expand_block_set_2): Likewise.
7687         (expand_block_set_1): Likewise.
7688         (visium_trampoline_init): Likewise.
7689
7690 2016-02-17  Nick Clifton  <nickc@redhat.com>
7691
7692         * config/msp430/msp430.c (msp430_mcu_data): Sync with data from
7693         TI's devices.csv file as of March 2016.
7694
7695 2016-02-16  Kelvin Nilsen  <kelvin@gcc.gnu.org>
7696
7697         PR Target/48344
7698         * opts-global.c (handle_common_deferred_options): Introduce and
7699         initialize two global variables to remember command-line options
7700         specifying a stack-limiting register.
7701         * opts.h: Add extern declarations of the two new global variables.
7702         * emit-rtl.c (init_emit_once): Initialize the stack_limit_rtx
7703         variable based on the values of the two new global variables.
7704
7705 2016-02-16  Jakub Jelinek  <jakub@redhat.com>
7706
7707         PR c/69835
7708         * common.opt (Wnonnull-compare): New warning.
7709         * doc/invoke.texi (-Wnonnull): Remove text about comparison
7710         of arguments against NULL.
7711         (-Wnonnull-compare): Document.
7712         * Makefile.in (OBJS): Add gimple-ssa-nonnull-compare.o.
7713         * tree-pass.h (make_pass_warn_nonnull_compare): Declare.
7714         * passes.def (pass_warn_nonnull_compare): Add.
7715         * gimple-ssa-nonnull-compare.c: New file.
7716
7717 2016-02-16  James Greenhalgh  <james.greenhalgh@arm.com>
7718
7719         * config/aarch64/aarch64.c (cortexa57_tunings): Remove
7720         AARCH64_EXTRA_TUNE_RECIP_SQRT.
7721
7722 2016-02-16  James Greenhalgh  <james.greenhalgh@arm.com>
7723
7724         * config/aarch64/aarch64.c (use_rsqrt_p): Always use software
7725         reciprocal sqrt for -mlow-precision-recip-sqrt.
7726
7727 2016-02-16  James Greenhalgh  <james.greenhalgh@arm.com>
7728             Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
7729
7730         * config/aarch64/aarch64.c (aarch64_expand_vector_init): Refactor,
7731         always use lane loads to construct non-constant vectors.
7732
7733 2016-02-16  James Greenhalgh  <james.greenhalgh@arm.com>
7734
7735         * config/aarch64/aarch64.md
7736         (arch64_sqrdml<SQRDMLH_AS:rdma_as>h_lane<mode>): Fix register
7737         constraints for operand 3.
7738         (aarch64_sqrdml<SQRDMLH_AS:rdma_as>h_laneq<mode>): Likewise.
7739
7740 2016-02-16  Jakub Jelinek  <jakub@redhat.com>
7741             Richard Biener  <rguenther@suse.de>
7742
7743         PR tree-optimization/69820
7744         * tree-vect-patterns.c (type_conversion_p): Return false if
7745         *orig_type is unsigned single precision or boolean.
7746         (vect_recog_dot_prod_pattern, vect_recog_widen_mult_pattern):
7747         Formatting fix.
7748
7749 2016-02-16  Jakub Jelinek  <jakub@redhat.com>
7750
7751         PR rtl-optimization/69764
7752         PR rtl-optimization/69771
7753         * optabs.c (expand_binop): Ensure for shift optabs invalid CONST_INT
7754         op1 is valid for GET_MODE_INNER (mode) and force it into a reg.
7755
7756 2016-02-16  Richard Biener  <rguenther@suse.de>
7757
7758         PR tree-optimization/69776
7759         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Get alias
7760         sets from caller.
7761         (indirect_refs_may_alias_p): Likewise.
7762         (refs_may_alias_p_1): Pass alias sets as from ao_ref.
7763         * tree-ssa-sccvn.c (vn_reference_lookup): Also adjust vr alias-set
7764         according to tbaa_p.
7765         * tree-ssa-dom.c (lookup_avail_expr): Add tbaa_p flag.
7766         (optimize_stmt): For redundant store discovery do not allow tbaa.
7767
7768 2016-02-16  Bernd Schmidt  <bschmidt@redhat.com>
7769
7770         PR tree-optimization/69714
7771         * tree-ssa-math-opts.c (find_bswap_or_nop): Revert previous change.
7772         Return NULL if we have irrelevant high bytes on BIG_ENDIAN.
7773
7774 2016-02-16  Claudiu Zissulescu  <claziss@synopsys.com>
7775
7776         * config/arc/arc-modes.def (CC_FPU, CC_FPU_UNEQ): New modes.
7777         * config/arc/arc-opts.h (FPU_SP, FPU_SF, FPU_SC, FPU_SD, FPU_DP)
7778         (FPU_DF, FPU_DC, FPU_DD, FXP_DP): Define.
7779         * config/arc/arc.c (arc_init): Check FPU options.
7780         (get_arc_condition_code): Handle new CC_FPU* modes.
7781         (arc_select_cc_mode): Likewise.
7782         (arc_conditional_register_usage): Allow 64 bit datum into even-odd
7783         register pair only. Allow access for ARCv2 accumulator.
7784         (gen_compare_reg): Whenever we have FPU support use FPU compare
7785         instructions.
7786         (arc_reorg): Don't generate brcc insns when FPU compare
7787         instructions are involved.
7788         * config/arc/arc.h (TARGET_DPFP): Add TARGET_FP_DPAX condition.
7789         (TARGET_OPTFPE): Add condition when ARC EM can use optimized
7790         floating point emulation.
7791         (ACC_REG_FIRST, ACC_REG_LAST, ACCL_REGNO, ACCH_REGNO): Define.
7792         (REVERSE_CONDITION): Add new CC_FPU* modes.
7793         (TARGET_FP_SP_BASE): Define.
7794         (TARGET_FP_DP_BASE): Likewise.
7795         (TARGET_FP_SP_FUSED): Likewise.
7796         (TARGET_FP_DP_FUSED): Likewise.
7797         (TARGET_FP_SP_CONV): Likewise.
7798         (TARGET_FP_DP_CONV): Likewise.
7799         (TARGET_FP_SP_SQRT): Likewise.
7800         (TARGET_FP_DP_SQRT): Likewise.
7801         (TARGET_FP_DP_AX): Likewise.
7802         * config/arc/arc.md (ARCV2_ACC): New constant.
7803         (type): New fpu type attribute.
7804         (SDF): Conditional iterator.
7805         (cstore<mode>, cbranch<mode>): Change expand condition.
7806         (addsf3, subsf3, mulsf3, adddf3, subdf3, muldf3): New expands,
7807         handles FPU/FPX cases as well.
7808         * config/arc/arc.opt (mfpu): New option.
7809         * config/arc/fpx.md (addsf3_fpx, subsf3_fpx, mulsf3_fpx):
7810         Renamed.
7811         (adddf3, muldf3, subdf3): Removed.
7812         * config/arc/predicates.md (proper_comparison_operator): Recognize
7813         CC_FPU* modes.
7814         * config/arc/fpu.md: New file.
7815         * doc/invoke.texi (ARC Options): Document mfpu option.
7816
7817 2016-02-16  Richard Biener  <rguenther@suse.de>
7818
7819         PR rtl-optimization/69291
7820         * ifcvt.c (noce_try_store_flag_constants): Re-instantiate
7821         noce_operand_ok check.
7822
7823 2016-02-16  Tom de Vries  <tom@codesourcery.com>
7824
7825         PR lto/67709
7826         * omp-low.c (simd_clone_create): Remove call to
7827         symtab->call_cgraph_insertion_hooks.
7828
7829 2016-02-16  Jakub Jelinek  <jakub@redhat.com>
7830
7831         PR tree-optimization/69802
7832         * tree-ssa-reassoc.c (update_range_test): If op is
7833         SSA_NAME_IS_DEFAULT_DEF, give up unless tem is a positive
7834         op == 1 test of precision 1 integral op, otherwise handle
7835         that case as op itself.  Fix up formatting.
7836         (optimize_range_tests_to_bit_test, optimize_range_tests): Fix
7837         up formatting.
7838
7839 2016-02-16  Richard Biener  <rguenther@suse.de>
7840
7841         PR tree-optimization/69586
7842         * tree-vrp.c (register_edge_assert_for_2): Handle all integral
7843         types for conversion sources.
7844
7845 2016-02-16  Richard Biener  <rguenther@suse.de>
7846
7847         PR middle-end/69801
7848         * fold-const.c (operand_equal_p): For COND_EXPR zero operand
7849         mask OEP_ADDRESS_OF.
7850
7851 2016-02-16  Alan Modra  <amodra@gmail.com>
7852
7853         PR target/68973
7854         * config/rs6000/rs6000.md (reload_vsx_from_gprsf): Rewrite splitter.
7855         (p8_mtvsrd_df, p8_mtvsrd_sf): New.
7856         (p8_mtvsrd_1, p8_mtvsrd_2): Delete.
7857         (p8_mtvsrwz): New.
7858         (p8_mtvsrwz_1, p8_mtvsrwz_2): Delete.
7859         (p8_xxpermdi_<mode>): Take two DF inputs rather than one TF.
7860         (p8_fmrgow_<mode>): Likewise.
7861         (reload_vsx_from_gpr<mode>): Make clobber IF.  Adjust for above
7862         changes.
7863         (reload_fpr_from_gpr<mode>): Similarly. Use "d" for op0 constraint.
7864         (reload_vsx_from_gprsf): Use p8_mtvsrd_sf rather than attempting
7865         to use movdi_internal64.  Remove op0_di.
7866         * config/rs6000/vsx.md (vsx_xscvspdpn_directmove): Make op1 SFmode.
7867
7868 2016-02-15  Evandro Menezes  <e.menezes@samsung.com>
7869
7870         Add support for the FCCMP insn types
7871
7872         * config/aarch64/aarch64.md (fccmp): Change insn type.
7873         (fccmpe): Likewise.
7874         * config/aarch64/thunderx.md (thunderx_fcmp): Add "fccmp{s,d}" types.
7875         * config/arm/cortex-a53.md (cortex_a53_fpalu): Likewise.
7876         * config/arm/cortex-a57.md (cortex_a57_fp_cmp): Likewise.
7877         * config/arm/xgene1.md (xgene1_fcmp): Likewise.
7878         * config/arm/exynos-m1.md (exynos_m1_fp_ccmp): New insn reservation.
7879         * config/arm/types.md (fccmps): Add new insn type.
7880         (fccmpd): Likewise.
7881
7882 2016-02-15  Bernd Edlinger  <bernd.edlinger@hotmail.de>
7883
7884         * alias.c (get_alias_set): Fix a typo in comment.
7885
7886 2016-02-15  Richard Biener  <rguenther@suse.de>
7887
7888         PR tree-optimization/69595
7889         * match.pd: Complete range test simplification to true.
7890
7891 2016-02-15  Bernd Schmidt  <bschmidt@redhat.com>
7892
7893         PR rtl-optimization/69648
7894         * lra-constraints.c (update_ebb_live_info): Don't remove sets of
7895         pic_offset_table_rtx.
7896
7897         PR rtl-optimization/69752
7898         * ira.c (update_equiv_regs): When looking for more than a single SET,
7899         also take other side effects into account.
7900
7901 2016-02-15  Marcin Kościelnicki  <koriakin@0x04.net>
7902
7903         * config/s390/s390.c (s390_function_profiler): Add a new sequence
7904         for z900+ CPUs in 31-bit mode.
7905
7906 2016-02-15  Marcin Kościelnicki  <koriakin@0x04.net>
7907
7908         * common/config/s390/s390-common.c (s390_supports_split_stack):
7909         New function.
7910         (TARGET_SUPPORTS_SPLIT_STACK): New macro.
7911         * config/s390/s390-protos.h: Add s390_expand_split_stack_prologue.
7912         * config/s390/s390.c (struct machine_function): New field
7913         split_stack_varargs_pointer.
7914         (s390_register_info): Mark r12 as clobbered if it'll be used as temp
7915         in s390_emit_prologue.
7916         (s390_emit_prologue): Use r12 as temp if r1 is taken by split-stack
7917         vararg pointer.
7918         (morestack_ref): New global.
7919         (SPLIT_STACK_AVAILABLE): New macro.
7920         (s390_expand_split_stack_prologue): New function.
7921         (s390_live_on_entry): New function.
7922         (s390_va_start): Use split-stack vararg pointer if appropriate.
7923         (s390_asm_file_end): Emit the split-stack note sections.
7924         (TARGET_EXTRA_LIVE_ON_ENTRY): New macro.
7925         * config/s390/s390.md (UNSPEC_STACK_CHECK): New unspec.
7926         (UNSPECV_SPLIT_STACK_CALL): New unspec.
7927         (UNSPECV_SPLIT_STACK_DATA): New unspec.
7928         (split_stack_prologue): New expand.
7929         (split_stack_space_check): New expand.
7930         (split_stack_data): New insn.
7931         (split_stack_call): New expand.
7932         (split_stack_call_*): New insn.
7933         (split_stack_cond_call): New expand.
7934         (split_stack_cond_call_*): New insn.
7935
7936 2016-02-15  Richard Biener  <rguenther@suse.de>
7937
7938         PR tree-optimization/69783
7939         * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
7940         Add trivially correct cases.
7941
7942 2016-02-15  Tom de Vries  <tom@codesourcery.com>
7943
7944         PR lto/69655
7945         * lto-cgraph.c (input_offload_tables): Add and handle bool parameter
7946         do_force_output.
7947         * lto-streamer.h (input_offload_tables): Add and handle bool parameter.
7948
7949 2016-02-15  Richard Biener  <rguenther@suse.de>
7950
7951         PR tree-optimization/69776
7952         * tree-ssa-sccvn.h (vn_reference_lookup): Adjust prototype.
7953         * tree-ssa-sccvn.c (vn_reference_lookup): Add parameter to
7954         indicate whether we can use TBAA to disambiguate against stores.
7955         Use alias-set zero if not.
7956         (visit_reference_op_store): Do not use TBAA when looking up
7957         redundant stores.
7958         * tree-ssa-pre.c (compute_avail): Use TBAA here.
7959         (eliminate_dom_walker::before_dom_children): But not when looking
7960         up redundant stores.
7961
7962 2016-02-14  John David Anglin  <danglin@gcc.gnu.org>
7963
7964         * config/pa/pa.md (absqi2, absghi2, bswaphi2, bswapsi2, bswapdi2): New.
7965
7966 2016-02-14  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
7967
7968         *  config/i386/znver1.md
7969         (znver1_pop, znver1_pop_mem,
7970         znver1_load_imov_double_store,
7971         znver1_load_imov_direct_store,
7972         znver1_load_imov_direct_load,
7973         znver1_load_imov_double_load): Add new.
7974         (znver1_insn, znver1_insn_load): Add icmov type.
7975         (znver1_sseavx_fma,
7976         znver1_sseavx_fma_load,
7977         znver1_avx256_fma,
7978         znver1_avx256_fma_load): Fix pipe usage.
7979
7980 2016-02-14  Alan Modra  <amodra@gmail.com>
7981
7982         PR target/68973
7983         * reloads.c (find_reloads_address_1): For pre/post-inc/dec
7984         with an invalid hard reg, reload just the reg not the entire
7985         pre/post-inc/dec address expression.
7986
7987 2016-02-13  Oleg Endo  <olegendo@gcc.gnu.org>
7988
7989         PR target/67260
7990         * config/sh/sh.md (sibcall_value_pcrel): Replace =&k scratch reg with
7991         fixed R1_REG scratch reg.
7992         (sibcall_value_pcrel_fdpic): Likewise.
7993
7994 2016-02-13  Oleg Endo  <olegendo@gcc.gnu.org>
7995
7996         PR target/67636
7997         PR target/64345
7998         * config/sh/sh.md (*zero_extract_3): New insn_and_split pattern.
7999
8000 2016-02-12  Walter Lee  <walt@tilera.com>
8001
8002         * config/tilepro/t-tilepro: Replace CC_FOR_BUILD with CXX_FOR_BUILD.
8003         * config/tilegx/t-tilegx: Likewise.
8004
8005 2016-02-12  David Malcolm  <dmalcolm@redhat.com>
8006
8007         PR other/69554
8008         * diagnostic-show-locus.c (struct line_span): New struct.
8009         (layout::get_first_line): Delete.
8010         (layout::get_last_line): Delete.
8011         (layout::get_num_line_spans): New member function.
8012         (layout::get_line_span): Likewise.
8013         (layout::print_heading_for_line_span_index_p): Likewise.
8014         (layout::get_expanded_location): Likewise.
8015         (layout::calculate_line_spans): Likewise.
8016         (layout::m_first_line): Delete.
8017         (layout::m_last_line): Delete.
8018         (layout::m_line_spans): New field.
8019         (layout::layout): Update comment.  Replace m_first_line and
8020         m_last_line with m_line_spans, replacing their initialization
8021         with a call to calculate_line_spans.
8022         (diagnostic_show_locus): When printing source lines and
8023         annotations, rather than looping over a single span
8024         of lines, instead loop over each line_span within
8025         the layout, with an inner loop over the lines within them.
8026         Call the context's start_span callback when changing line spans.
8027         * diagnostic.c (diagnostic_initialize): Initialize start_span.
8028         (diagnostic_build_prefix): Break out the building of the location
8029         part of the string into...
8030         (diagnostic_get_location_text): ...this new function, rewriting
8031         it from nested ternary expressions to a sequence of "if"
8032         statements.
8033         (default_diagnostic_start_span_fn): New function.
8034         * diagnostic.h (diagnostic_start_span_fn): New typedef.
8035         (diagnostic_context::start_span): New field.
8036         (default_diagnostic_start_span_fn): New prototype.
8037
8038 2016-02-12  David Malcolm  <dmalcolm@redhat.com>
8039
8040         PR driver/69779
8041         * gcc.c (driver::finalize): Fix cleanup of "specs".
8042
8043 2016-02-12  David Malcolm  <dmalcolm@redhat.com>
8044
8045         PR driver/69265
8046         PR driver/69453
8047         * gcc.c (driver::driver): Initialize m_option_suggestions.
8048         (driver::~driver): Clean up m_option_suggestions.
8049         (suggest_option): Convert to...
8050         (driver::suggest_option): ...this, and split out into
8051         driver::build_option_suggestions and find_closest_string.
8052         (driver::build_option_suggestions): New function, from
8053         first half of suggest_option.  Special-case
8054         OPT_fsanitize_ and OPT_fsanitize_recover_, making use of
8055         the sanitizer_opts array.  For options of enum types, add the
8056         various enum values to the candidate strings.
8057         (driver::handle_unrecognized_options): Remove "const".
8058         * gcc.h (driver::handle_unrecognized_options): Likewise.
8059         (driver::build_option_suggestions): New decl.
8060         (driver::suggest_option): New decl.
8061         (driver::m_option_suggestions): New field.
8062         * opts-common.c (add_misspelling_candidates): New function.
8063         * opts.c (sanitizer_opts): Remove decl of struct sanitizer_opts_s
8064         and make non-static.
8065         * opts.h (sanitizer_opts): New array decl.
8066         (add_misspelling_candidates): New function decl.
8067         * spellcheck.c (find_closest_string): New function.
8068         * spellcheck.h (find_closest_string): New function decl.
8069
8070 2016-02-12  Jakub Jelinek  <jakub@redhat.com>
8071
8072         PR rtl-optimization/69764
8073         PR rtl-optimization/69771
8074         * optabs.c (expand_binop_directly): For shift_optab_p, force
8075         convert_modes with VOIDmode if xop1 has VOIDmode.
8076
8077 2016-02-12  Ilya Enkovich  <enkovich.gnu@gmail.com>
8078
8079         PR target/69729
8080         * lto-streamer-out.c (lto_output): Use thunk.add_pointer_bounds_args
8081         to correctly determine instrumentation thunks.
8082
8083 2016-02-12  Jakub Jelinek  <jakub@redhat.com>
8084
8085         PR ipa/69241
8086         * ipa-split.c (split_function): If split part returns TREE_ADDRESSABLE
8087         type by reference, force lhs on the call.
8088
8089         PR ipa/68672
8090         * ipa-split.c (split_function): Don't compute/use main_part_return_p.
8091         Compute retval and retbnd early in all cases if split_part_return_p
8092         and return_bb is not EXIT.  Remove all clobber stmts and reset
8093         all debug stmts that refer to SSA_NAMEs defined in split part,
8094         except if it is retval, in that case replace the old retval with the
8095         lhs of the call to the split part.
8096
8097 2016-02-12  Kugan Vivekanandarajah  <kuganv@linaro.org>
8098
8099         revert:
8100         2016-02-12  Kugan Vivekanandarajah  <kuganv@linaro.org>
8101
8102         PR middle-end/66726
8103         * tree-ssa-reassoc.c (optimize_range_tests): Handle tcc_compare stmt
8104         whose result is used in PHI.
8105         (maybe_optimize_range_tests): Likewise.
8106         (final_range_test_p): Likweise.
8107
8108 2016-02-12  Kugan Vivekanandarajah  <kuganv@linaro.org>
8109
8110         PR middle-end/66726
8111         * tree-ssa-reassoc.c (optimize_range_tests): Handle tcc_compare stmt
8112         whose result is used in PHI.
8113         (maybe_optimize_range_tests): Likewise.
8114         (final_range_test_p): Likweise.
8115
8116 2016-02-12  Jakub Jelinek  <jakub@redhat.com>
8117
8118         * cgraph.c: Spelling fixes - behaviour -> behavior and
8119         neighbour -> neighbor.
8120         * target.def: Likewise.
8121         * sel-sched.c: Likewise.
8122         * config/mips/mips.c: Likewise.
8123         * config/arc/arc.md: Likewise.
8124         * config/arm/cortex-a57.md: Likewise.
8125         * config/arm/arm.c: Likewise.
8126         * config/arm/neon.md: Likewise.
8127         * config/arm/arm-c.c: Likewise.
8128         * config/vms/vms-c.c: Likewise.
8129         * config/s390/s390.c: Likewise.
8130         * config/i386/znver1.md: Likewise.
8131         * config/i386/i386.c: Likewise.
8132         * config/ia64/hpux-unix2003.h: Likewise.
8133         * config/msp430/msp430.md: Likewise.
8134         * config/rx/rx.c: Likewise.
8135         * config/rx/rx.md: Likewise.
8136         * config/aarch64/aarch64-simd.md: Likewise.
8137         * config/aarch64/aarch64.c: Likewise.
8138         * config/nvptx/nvptx.c: Likewise.
8139         * config/bfin/bfin.c: Likewise.
8140         * config/cris/cris.opt: Likewise.
8141         * config/rs6000/rs6000.c: Likewise.
8142         * target.h: Likewise.
8143         * spellcheck.c: Likewise.
8144         * ira-build.c: Likewise.
8145         * tree-inline.c: Likewise.
8146         * builtins.c: Likewise.
8147         * lra-constraints.c: Likewise.
8148         * explow.c: Likewise.
8149         * hwint.h: Likewise.
8150         * targhooks.c: Likewise.
8151         * tree-vect-data-refs.c: Likewise.
8152         * expr.c: Likewise.
8153         * doc/tm.texi: Likewise.
8154         * doc/extend.texi: Likewise.
8155         * doc/install.texi: Likewise.
8156         * doc/md.texi: Likewise.
8157         * tree-ssa-tail-merge.c: Likewise.
8158         * sched-int.h: Likewise.
8159         * match.pd: Likewise.
8160         * sched-ebb.c: Likewise.
8161         * target.def (omit_struct_return_reg): Likewise.
8162         * gimple-ssa-isolate-paths.c: Likewise.
8163         (find_implicit_erroneous_behaviour): Renamed to...
8164         (find_implicit_erroneous_behavior): ... this.
8165         (find_explicit_erroneous_behaviour): Renamed to...
8166         (find_explicit_erroneous_behavior): ... this.
8167         (gimple_ssa_isolate_erroneous_paths): Adjust caller.
8168
8169 2016-02-11  Segher Boessenkool  <segher@kernel.crashing.org>
8170
8171         PR rtl-optimization/64682
8172         PR rtl-optimization/69567
8173         PR rtl-optimization/69737
8174         * combine.c (distribute_notes) <REG_DEAD>: If the register is set
8175         in I2 as well, just lose it.
8176
8177 2016-02-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8178
8179         * config/aarch64/aarch64.c (aarch64_last_printed_arch_string):
8180         New variable.
8181         (aarch64_last_printed_tune_string): Likewise.
8182         (aarch64_declare_function_name): Only output .arch assembler
8183         directive if it will be different from the previously output
8184         directive.  Same for .tune comment but only if -dA is set.
8185         (aarch64_start_file): New function.
8186         (TARGET_ASM_FILE_START): Define.
8187
8188 2016-02-11  David Malcolm  <dmalcolm@redhat.com>
8189
8190         PR plugins/69758
8191         * Makefile.in (PLUGIN_HEADERS): Add params.list.
8192
8193 2016-02-11  Jakub Jelinek  <jakub@redhat.com>
8194
8195         PR target/65313
8196         * tree-vect-slp.c (vect_schedule_slp_instance): Avoid
8197         -Wmaybe-uninitialized warning.
8198
8199 2016-02-11  Oleg Endo  <olegendo@gcc.gnu.org>
8200
8201         PR target/69713
8202         * config/sh/sh.md (casesi_worker_0): Add T_REG use.
8203
8204 2016-02-11  Richard Biener  <rguenther@suse.de>
8205
8206         PR rtl-optimization/69291
8207         * ifcvt.c (noce_try_store_flag_constants): Do not allow
8208         subexpressions affected by changing the result.
8209
8210 2016-02-10  Vladimir Makarov  <vmakarov@redhat.com>
8211
8212         PR target/69148
8213         * lra-constraints.c (curr_insn_transform): Find in/out operands
8214         for secondary memory moves.  Update dups.
8215
8216 2016-02-10  Yuri Rumyantsev  <ysrumyan@gmail.com>
8217
8218         PR tree-optimization/69652
8219         * tree-vect-loop.c (optimize_mask_stores): Move declaration of STMT1
8220         to nested loop, did source re-formatting, skip debug statements,
8221         add check on statement with volatile operand, remove dead scalar
8222         statements.
8223
8224 2016-02-10  Jakub Jelinek  <jakub@redhat.com>
8225             Patrick Palka  <ppalka@gcc.gnu.org>
8226
8227         PR ipa/69241
8228         PR c++/69649
8229         * gimplify.c (gimplify_modify_expr): Set lhs even for noreturn
8230         calls if the return type is TREE_ADDRESSABLE.
8231         * cgraphunit.c (cgraph_node::expand_thunk): Likewise.
8232         * ipa-split.c (split_function): Fix doubled "we" in comment.
8233         Use void return type for the split part even if
8234         !split_point->split_part_set_retval.
8235
8236 2016-02-10  Bin Cheng  <bin.cheng@arm.com>
8237
8238         PR tree-optimization/68021
8239         * tree-ssa-loop-ivopts.c (get_computation_aff): Set ratio to 1 if
8240         when computing the value of biv cand by itself.
8241
8242 2016-02-10  Wilco Dijkstra  <wdijkstr@arm.com>
8243
8244         * config/aarch64/aarch64.c (cortexa53_tunings): Enable AES fusion.
8245         (cortexa57_tunings): Likewise.
8246         (cortexa72_tunings): Likewise.
8247         (arch_macro_fusion_pair_p): Add support for AES fusion.
8248         * config/aarch64/aarch64-fusion-pairs.def: Add AES_AESMC entry.
8249         * config/arm/aarch-common.c (aarch_crypto_can_dual_issue):
8250         Allow virtual registers before reload so early scheduling works.
8251         * config/arm/cortex-a57.md (cortex_a57_crypto_simple): Use
8252         correct latency and pipeline.
8253         (cortex_a57_crypto_complex): Likewise.
8254         (cortex_a57_crypto_xor): Likewise.
8255         (define_bypass): Add AES bypass.
8256
8257 2016-02-10  Richard Biener  <rguenther@suse.de>
8258
8259         PR tree-optimization/69726
8260         * passes.def: Add DCE pass before late uninit.
8261         * match.pd: Add A ? B : (!A ? C : X) -> A ? B : C patterns to
8262         really fixup if-conversions job.
8263
8264 2016-02-10  Wilco Dijkstra  <wdijkstr@arm.com>
8265
8266         * config/arm/arm.c (arm_cortex_a53_tune): Enable AES fusion.
8267         (arm_cortex_a57_tune): Likewise.
8268         (aarch_macro_fusion_pair_p): Add support for AES fusion.
8269         * config/arm/arm-protos.h (fuse_ops): Add FUSE_AES_AESMC.
8270
8271 2016-02-10  Eric Botcazou  <ebotcazou@adacore.com>
8272
8273         * timevar.def (TV_PHASE_DBGINFO): Delete.
8274         (TV_PHASE_CHECK_DBGINFO): Likewise.
8275         * varpool.c (varpool_node::assemble_decl): Do not change timevar.
8276
8277 2016-02-10  Richard Biener  <rguenther@suse.de>
8278
8279         PR tree-optimization/69719
8280         * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
8281         Adjust previous fix by ensuring that dr_a1 is left of dr_a2.
8282
8283 2016-02-09  Andrew Pinski  <apinski@cavium.com>
8284
8285         PR tree-opt/69282
8286         * optabs-tree.c (expand_vec_cond_expr_p): Don't early return if
8287         get_vcond_mask_icode returns false.
8288
8289 2016-02-09  Michael Meissner  <meissner@linux.vnet.ibm.com>
8290
8291         PR target/68404
8292         * config/rs6000/predicates.md (fusion_gpr_addis): Prevent fusing
8293         an ADDIS that adds a pointer to a large constant that sets the
8294         upper16 bits with a load operation.
8295
8296 2016-02-09  Charles Baylis  <charles.baylis@linaro.org>
8297
8298         PR target/68532
8299         * config/arm/arm.c (arm_evpc_neon_vzip): Allow for big endian lane
8300         order.
8301         * config/arm/arm_neon.h (vzipq_s8): Adjust shuffle patterns for big
8302         endian.
8303         (vzipq_s16): Likewise.
8304         (vzipq_s32): Likewise.
8305         (vzipq_f32): Likewise.
8306         (vzipq_u8): Likewise.
8307         (vzipq_u16): Likewise.
8308         (vzipq_u32): Likewise.
8309         (vzipq_p8): Likewise.
8310         (vzipq_p16): Likewise.
8311
8312 2016-02-09  Charles Baylis  <charles.baylis@linaro.org>
8313
8314         PR target/68532
8315         * config/arm/arm.c (neon_endian_lane_map): New function.
8316         (neon_vector_pair_endian_lane_map): New function.
8317         (arm_evpc_neon_vuzp): Allow for big endian lane order.
8318         * config/arm/arm_neon.h (vuzpq_s8): Adjust shuffle patterns for big
8319         endian.
8320         (vuzpq_s16): Likewise.
8321         (vuzpq_s32): Likewise.
8322         (vuzpq_f32): Likewise.
8323         (vuzpq_u8): Likewise.
8324         (vuzpq_u16): Likewise.
8325         (vuzpq_u32): Likewise.
8326         (vuzpq_p8): Likewise.
8327         (vuzpq_p16): Likewise.
8328
8329 2016-02-11  Alexandre Oliva  <aoliva@redhat.com>
8330
8331         PR target/69634
8332         * regstat.c (regstat_bb_compute_calls_crossed): Disregard
8333         debug insns.
8334
8335 2016-02-09  Uros Bizjak  <ubizjak@gmail.com>
8336
8337         * config/i386/i386.md (insv<mode>_1): Use gen_int_mode to
8338         truncate const_int operand 1 to QImode.
8339
8340 2016-02-09  Eric Botcazou  <ebotcazou@adacore.com>
8341
8342         * gimple-ssa-backprop.c (optimize_phi): Do not replace an argument
8343         corresponding to an abnormal edge.
8344
8345 2016-02-09  Tom de Vries  <tom@codesourcery.com>
8346
8347         PR tree-optimization/69599
8348         * tree-ssa-structalias.c (fndecl_maybe_in_other_partition): New
8349         function.
8350         (find_func_aliases_for_builtin_call, find_func_clobbers)
8351         (ipa_pta_execute):  Handle case that foo and foo._0 are not in same lto
8352         partition.
8353
8354 2016-02-09  Richard Biener  <rguenther@suse.de>
8355
8356         PR tree-optimization/69715
8357         * tree-ssa.c (execute_update_addresses_taken): Mark non-decl
8358         LHS on calls as non-rewritable.
8359
8360 2016-02-09  Tom de Vries  <tom@codesourcery.com>
8361
8362         PR lto/69707
8363         * lto-wrapper.c (append_diag_options): New function.
8364         (compile_offload_image): Call append_diag_options.
8365
8366 2016-02-08  Sandra Loosemore  <sandra@codesourcery.com>
8367
8368         PR other/69722
8369         * doc/extend.texi (Flag Output Operands): Correct sectioning.
8370         Minor copy-edit to fix verb tenses.
8371
8372 2016-02-08  Jakub Jelinek  <jakub@redhat.com>
8373
8374         PR tree-optimization/69209
8375         * ipa-split.c (split_function): If split part is not
8376         returning retval, retval has gimple type but is not
8377         gimple value, force it into a SSA_NAME first.
8378
8379 2016-02-08  Nicklas Bo Jensen  <nbjensen@gmail.com>
8380
8381         * doc/tree-ssa.texi (Preserving the virtual SSA form): Remove
8382         outdated section.
8383
8384 2016-02-08  Jason Merrill  <jason@redhat.com>
8385
8386         PR c++/69631
8387         * convert.c (convert_to_integer_1): Check dofold on truncation
8388         distribution.
8389         (convert_to_pointer_maybe_fold, convert_to_real_maybe_fold)
8390         (convert_to_integer_maybe_fold, convert_to_complex_maybe_fold):
8391         Rename from *_nofold.
8392         * convert.h (convert_to_pointer_nofold, convert_to_integer_nofold)
8393         (convert_to_real_nofold, convert_to_complex_nofold): New inlines.
8394
8395 2016-02-08  Bernd Schmidt  <bschmidt@redhat.com>
8396
8397         PR target/60410
8398         * tree.c (build_common_tree_nodes): Remove short_double argument.
8399         All callers changed.
8400         * tree.h (build_common_tree_nodes): Adjust declaration.
8401         * doc/invoke.texi (-fshort-double): Remove documentation.
8402         * config/mips/t-img-elf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
8403         MULTILIB_EXCEPTIONS): Remove -fshort-double variant.
8404         * lto-wrapper.c (merge_and_complain, append_compiler_options)
8405         (append_linker_options): Don't handle OPT_fshort_double.
8406
8407         PR rtl-optimization/68730
8408         * lra-remat.c (insn_to_cand_activation): New static variable.
8409         (lra_remat): Allocate and free it.
8410         (create_cand): New arg activation. Initialize a field in
8411         insn_to_cand_activation if it is nonnull.
8412         (create_cands): Pass the activation insn to create_cand when making
8413         a candidate involving an output reload.  Reorganize code a little.
8414         (do_remat): Keep track of active status of candidates in a separate
8415         bitmap.
8416
8417 2016-02-08  Richard Biener  <rguenther@suse.de>
8418
8419         PR tree-optimization/69719
8420         * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
8421         Properly use absolute of the difference of the two offsets to
8422         compare or adjust the segment length.
8423
8424 2016-02-08  Richard Biener  <rguenther@suse.de>
8425             Jeff Law  <law@redhat.com>
8426
8427         PR target/68273
8428         * tree-ssanames.c (make_ssa_name_fn): Always use unqualified
8429         types for anonymous SSA names.
8430
8431 2016-02-08   Richard Biener  <rguenther@suse.de>
8432
8433         PR rtl-optimization/69274
8434         * ira.c (ira_setup_alts): Do not change recog_data.operand order.
8435
8436 2016-02-08  Jeff Law  <law@redhat.com>
8437
8438         PR tree-optimization/65917
8439         * tree-ssa-dom.c (record_temporary_equivalences): Record both
8440         equivalences from if (x == y) style conditionals.
8441         (loop_depth_of_name): Remove.
8442         (record_equality): Remove loop depth check.
8443         * tree-ssa-scopedtables.h (const_and_copies): Refine comments.
8444         (const_and_copies::record_const_or_copy_raw): New member function.
8445         * tree-ssa-scopedtables.c
8446         (const_and_copies::record_const_or_copy_raw): New, factored out of
8447         (const_and_copies::record_const_or_copy): Call new member function.
8448
8449 2016-02-05  Jeff Law  <law@redhat.com>
8450
8451         PR tree-optimization/68541
8452         * gimple-ssa-split-paths.c: Include tree-cfg.h and params.h.
8453         (count_stmts_in_block): New function.
8454         (poor_ifcvt_candidate_code): Likewise.
8455         (is_feasible_trace): Add some heuristics to determine when path
8456         splitting is profitable.
8457         (find_block_to_duplicate_for_splitting_paths): Make sure the graph
8458         is a diamond with a single exit.
8459
8460 2016-02-05  Martin Sebor  <msebor@redhat.com>
8461
8462         PR c++/69662
8463         * doc/invoke.texi: Update -Wplacement-new to take an optional
8464         argument.
8465
8466 2016-02-06  Richard Henderson  <rth@redhat.com>
8467
8468         PR c/69643
8469         * tree.c (tree_nop_conversion_p): Do not strip casts into or
8470         out of non-standard address spaces.
8471
8472 2016-02-05  Jakub Jelinek  <jakub@redhat.com>
8473
8474         PR rtl-optimization/69691
8475         * lra-eliminations.c (move_plus_up): Don't add the addend twice.
8476
8477 2016-02-05  Pat Haugen  <pthaugen@us.ibm.com>
8478
8479         * config/rs6000/crypto.md (crypto_vpermxor_<mode>): Correct insn type.
8480         * config/rs6000/rs6000.md (mov<mode>_hardfloat): Likewise.
8481         (*ieee128_mfvsrd_64bit): Likewise.
8482         (*ieee128_mfvsrd_32bit): Likewise.
8483
8484 2016-02-05  Ilya Enkovich  <enkovich.gnu@gmail.com>
8485
8486         PR target/69369
8487         Revert r232560:
8488         2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
8489
8490         * cgraphunit.c (cgraph_node::reset): Clear thunk info and
8491         instrumented_version.
8492
8493 2016-01-05  Jeremy Bennett  <jeremy.bennett@embecosm.com>
8494
8495         * doc/invoke.texi (Optimize Options): In table of --param options
8496         rename second occurrence of tracer-min-branch-ratio to
8497         tracer-min-branch-probability, rename
8498         tracer-min-branch-ratio-feedback to
8499         tracer-min-branch-probability-feedback and clarify description,
8500         rename sched-spec-state-edge-prob-cutoff to
8501         sched-state-edge-prob-cutoff, rename selsched-max-insns-to-rename
8502         to selsched-insns-to-rename, rename lto-minpartition to
8503         lto-min-partition, delete reorder-blocks-duplicate and
8504         reorder-blocks-duplicate-feedback.
8505
8506 2016-02-05  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
8507
8508         * config/s390/s390.c (s390_register_info_set_ranges): Remove
8509         superfluous loops.
8510
8511 2016-02-05  Dominik Vogt  <vogt@linux.vnet.ibm.com>
8512
8513         * doc/extend.texi: S/390: Correct some typos.
8514
8515 2016-02-05  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
8516
8517         * config/s390/s390.c (s390_emit_call): Add missing 64 bit check.
8518
8519 2016-02-05  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
8520
8521         PR target/69625
8522         * config/s390/s390.c (SAVE_SLOT_NONE, SAVE_SLOT_STACK): New defines.
8523         (s390_register_info_gprtofpr): Use new macros above.
8524         (s390_register_info_stdarg_fpr): Adjust max_fpr to better match
8525         its name.
8526         (s390_register_info_stdarg_gpr): Adjust max_gpr to better match
8527         its name.  Adjust restore and save gpr ranges.
8528         (s390_register_info_set_ranges): New function.
8529         (s390_register_info): Use new macros above.  Call
8530         s390_register_info_set_ranges.
8531         (s390_optimize_register_info): Likewise.
8532         (s390_hard_regno_rename_ok): Use new macros.
8533         (s390_hard_regno_scratch_ok): Likewise.
8534         (s390_emit_epilogue): Likewise.
8535         (s390_can_use_return_insn): Likewise.
8536         (s390_optimize_prologue): Likewise.
8537         * config/s390/s390.md (GPR2_REGNUM, GPR6_REGNUM): New constants.
8538
8539 2016-02-05  Jakub Jelinek  <jakub@redhat.com>
8540
8541         PR bootstrap/69677
8542         * config/i386/i386.c (convert_scalars_to_vector): Readd stack
8543         alignment fixes.
8544         (ix86_option_override_internal): Disable TARGET_STV even for
8545         -m{incoming,preferred}-stack-boundary=3.
8546
8547 2016-02-03  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
8548
8549         * config.gcc: Mark deprecated rtems targets as obsolete.
8550
8551 2016-02-04  Segher Boessenkool  <segher@kernel.crashing.org>
8552
8553         PR rtl-optimization/64682
8554         PR rtl-optimization/69567
8555         * combine.c (distribute_notes) <REG_DEAD>: Place the death note
8556         before I2 only if the register is both used and set in I2.
8557
8558 2016-02-04  DJ Delorie  <dj@redhat.com>
8559
8560         * config/msp430/msp430.c (msp430_start_function): Add function type.
8561
8562 2016-02-04  Jakub Jelinek  <jakub@redhat.com>
8563
8564         PR fortran/69368
8565         * tree-dfa.c (get_ref_base_and_extent): Remove unreachable code.
8566
8567 2016-02-04  Uros Bizjak  <ubizjak@gmail.com>
8568
8569         PR rtl-optimization/69577
8570         Revert:
8571         2015-10-29  Richard Henderson  <rth@redhat.com>
8572
8573         PR target/68124
8574         PR rtl-opt/67609
8575         * config/i386/i386.c (ix86_cannot_change_mode_class): Tighten
8576         sse check to the exact conditions of PR 67609.
8577
8578 2016-02-04  Michael Meissner  <meissner@linux.vnet.ibm.com>
8579
8580         PR target/69667
8581         * config/rs6000/rs6000.md (mov<mode>_64bit_dm): Use 'd' constraint
8582         instead of 'ws', and 'wh' instead of 'wm' since TFmode/IFmode are
8583         not allowed into the traditional Altivec registers.
8584         (movtd_64bit_nodm): Likewise.
8585         (mov<mode>_32bit, FMOVE128_FPR iterator): Likewise.
8586
8587 2016-02-04  David Malcolm  <dmalcolm@redhat.com>
8588
8589         * config/aarch64/cortex-a57-fma-steering.c
8590         (aarch64_register_fma_steering): Remove "static" from arguments
8591         to register_pass.
8592
8593 2016-02-04  Wilco Dijkstra  <wdijkstr@arm.com>
8594
8595         PR target/69619
8596         * ccmp.c (expand_ccmp_expr_1): Avoid evaluating gs0/gs1
8597         twice when complex.
8598
8599 2016-02-04  Mike Frysinger  <vapier@gentoo.org>
8600
8601         * doc/invoke.texi: Delete -mno-fma4.
8602
8603 2016-02-04  Richard Sandiford  <richard.sandiford@arm.com>
8604
8605         PR rtl-optimization/69577
8606         * reginfo.c (record_subregs_of_mode): Add a partial_def parameter.
8607         (find_subregs_of_mode): Update accordingly.  Iterate over partial
8608         definitions.
8609
8610 2016-02-04  Alan Lawrence  <alan.lawrence@arm.com>
8611
8612         * config/arm/arm-protos.h (neon_reinterpret): Remove.
8613         * config/arm/arm.c (neon_reinterpret): Remove.
8614         * config/arm/arm_neon_builtins.def (vreinterpretv8qi, vreinterpretv4hi,
8615         vreinterpretv2si, vreinterpretv2sf, vreinterpretdi, vreinterpretv16qi,
8616         vreinterpretv8hi, vreinterpretv4si, vreinterpretv4sf, vreinterpretv2di,
8617         vreinterpretti): Remove.
8618         * config/arm/neon.md (neon_vreinterpretv8qi<mode>,
8619         neon_vreinterpretv4hi<mode>, neon_vreinterpretv2si<mode>,
8620         neon_vreinterpretv2sf<mode>, neon_vreinterpretdi<mode>,
8621         neon_vreinterpretti<mode>, neon_vreinterpretv16qi<mode>,
8622         neon_vreinterpretv8hi<mode>, neon_vreinterpretv4si<mode>,
8623         neon_vreinterpretv4sf<mode>, neon_vreinterpretv2di<mode>): Remove.
8624         * config/arm/arm_neon.h (vreinterpret_p8_p16, vreinterpret_p8_f32,
8625         vreinterpret_p8_p64, vreinterpret_p8_s64, vreinterpret_p8_u64,
8626         vreinterpret_p8_s8, vreinterpret_p8_s16, vreinterpret_p8_s32,
8627         vreinterpret_p8_u8, vreinterpret_p8_u16, vreinterpret_p8_u32,
8628         vreinterpret_p16_p8, vreinterpret_p16_f32, vreinterpret_p16_p64,
8629         vreinterpret_p16_s64, vreinterpret_p16_u64, vreinterpret_p16_s8,
8630         vreinterpret_p16_s16, vreinterpret_p16_s32, vreinterpret_p16_u8,
8631         vreinterpret_p16_u16, vreinterpret_p16_u32, vreinterpret_f32_p8,
8632         vreinterpret_f32_p16, vreinterpret_f32_p64, vreinterpret_f32_s64,
8633         vreinterpret_f32_u64, vreinterpret_f32_s8, vreinterpret_f32_s16,
8634         vreinterpret_f32_s32, vreinterpret_f32_u8, vreinterpret_f32_u16,
8635         vreinterpret_f32_u32, vreinterpret_p64_p8, vreinterpret_p64_p16,
8636         vreinterpret_p64_f32, vreinterpret_p64_s64, vreinterpret_p64_u64,
8637         vreinterpret_p64_s8, vreinterpret_p64_s16, vreinterpret_p64_s32,
8638         vreinterpret_p64_u8, vreinterpret_p64_u16, vreinterpret_p64_u32,
8639         vreinterpret_s64_p8, vreinterpret_s64_p16, vreinterpret_s64_f32,
8640         vreinterpret_s64_p64, vreinterpret_s64_u64, vreinterpret_s64_s8,
8641         vreinterpret_s64_s16, vreinterpret_s64_s32, vreinterpret_s64_u8,
8642         vreinterpret_s64_u16, vreinterpret_s64_u32, vreinterpret_u64_p8,
8643         vreinterpret_u64_p16, vreinterpret_u64_f32, vreinterpret_u64_p64,
8644         vreinterpret_u64_s64, vreinterpret_u64_s8, vreinterpret_u64_s16,
8645         vreinterpret_u64_s32, vreinterpret_u64_u8, vreinterpret_u64_u16,
8646         vreinterpret_u64_u32, vreinterpret_s8_p8, vreinterpret_s8_p16,
8647         vreinterpret_s8_f32, vreinterpret_s8_p64, vreinterpret_s8_s64,
8648         vreinterpret_s8_u64, vreinterpret_s8_s16, vreinterpret_s8_s32,
8649         vreinterpret_s8_u8, vreinterpret_s8_u16, vreinterpret_s8_u32,
8650         vreinterpret_s16_p8, vreinterpret_s16_p16, vreinterpret_s16_f32,
8651         vreinterpret_s16_p64, vreinterpret_s16_s64, vreinterpret_s16_u64,
8652         vreinterpret_s16_s8, vreinterpret_s16_s32, vreinterpret_s16_u8,
8653         vreinterpret_s16_u16, vreinterpret_s16_u32, vreinterpret_s32_p8,
8654         vreinterpret_s32_p16, vreinterpret_s32_f32, vreinterpret_s32_p64,
8655         vreinterpret_s32_s64, vreinterpret_s32_u64, vreinterpret_s32_s8,
8656         vreinterpret_s32_s16, vreinterpret_s32_u8, vreinterpret_s32_u16,
8657         vreinterpret_s32_u32, vreinterpret_u8_p8, vreinterpret_u8_p16,
8658         vreinterpret_u8_f32, vreinterpret_u8_p64, vreinterpret_u8_s64,
8659         vreinterpret_u8_u64, vreinterpret_u8_s8, vreinterpret_u8_s16,
8660         vreinterpret_u8_s32, vreinterpret_u8_u16, vreinterpret_u8_u32,
8661         vreinterpret_u16_p8, vreinterpret_u16_p16, vreinterpret_u16_f32,
8662         vreinterpret_u16_p64, vreinterpret_u16_s64, vreinterpret_u16_u64,
8663         vreinterpret_u16_s8, vreinterpret_u16_s16, vreinterpret_u16_s32,
8664         vreinterpret_u16_u8, vreinterpret_u16_u32, vreinterpret_u32_p8,
8665         vreinterpret_u32_p16, vreinterpret_u32_f32, vreinterpret_u32_p64,
8666         vreinterpret_u32_s64, vreinterpret_u32_u64, vreinterpret_u32_s8,
8667         vreinterpret_u32_s16, vreinterpret_u32_s32, vreinterpret_u32_u8,
8668         vreinterpret_u32_u16, vreinterpretq_p8_p16, vreinterpretq_p8_f32,
8669         vreinterpretq_p8_p64, vreinterpretq_p8_p128, vreinterpretq_p8_s64,
8670         vreinterpretq_p8_u64, vreinterpretq_p8_s8, vreinterpretq_p8_s16,
8671         vreinterpretq_p8_s32, vreinterpretq_p8_u8, vreinterpretq_p8_u16,
8672         vreinterpretq_p8_u32, vreinterpretq_p16_p8, vreinterpretq_p16_f32,
8673         vreinterpretq_p16_p64, vreinterpretq_p16_p128, vreinterpretq_p16_s64,
8674         vreinterpretq_p16_u64, vreinterpretq_p16_s8, vreinterpretq_p16_s16,
8675         vreinterpretq_p16_s32, vreinterpretq_p16_u8, vreinterpretq_p16_u16,
8676         vreinterpretq_p16_u32, vreinterpretq_f32_p8, vreinterpretq_f32_p16,
8677         vreinterpretq_f32_p64, vreinterpretq_f32_p128, vreinterpretq_f32_s64,
8678         vreinterpretq_f32_u64, vreinterpretq_f32_s8, vreinterpretq_f32_s16,
8679         vreinterpretq_f32_s32, vreinterpretq_f32_u8, vreinterpretq_f32_u16,
8680         vreinterpretq_f32_u32, vreinterpretq_p64_p8, vreinterpretq_p64_p16,
8681         vreinterpretq_p64_f32, vreinterpretq_p64_p128, vreinterpretq_p64_s64,
8682         vreinterpretq_p64_u64, vreinterpretq_p64_s8, vreinterpretq_p64_s16,
8683         vreinterpretq_p64_s32, vreinterpretq_p64_u8, vreinterpretq_p64_u16,
8684         vreinterpretq_p64_u32, vreinterpretq_p128_p8, vreinterpretq_p128_p16,
8685         vreinterpretq_p128_f32, vreinterpretq_p128_p64, vreinterpretq_p128_s64,
8686         vreinterpretq_p128_u64, vreinterpretq_p128_s8, vreinterpretq_p128_s16,
8687         vreinterpretq_p128_s32, vreinterpretq_p128_u8, vreinterpretq_p128_u16,
8688         vreinterpretq_p128_u32, vreinterpretq_s64_p8, vreinterpretq_s64_p16,
8689         vreinterpretq_s64_f32, vreinterpretq_s64_p64, vreinterpretq_s64_p128,
8690         vreinterpretq_s64_u64, vreinterpretq_s64_s8, vreinterpretq_s64_s16,
8691         vreinterpretq_s64_s32, vreinterpretq_s64_u8, vreinterpretq_s64_u16,
8692         vreinterpretq_s64_u32, vreinterpretq_u64_p8, vreinterpretq_u64_p16,
8693         vreinterpretq_u64_f32, vreinterpretq_u64_p64, vreinterpretq_u64_p128,
8694         vreinterpretq_u64_s64, vreinterpretq_u64_s8, vreinterpretq_u64_s16,
8695         vreinterpretq_u64_s32, vreinterpretq_u64_u8, vreinterpretq_u64_u16,
8696         vreinterpretq_u64_u32, vreinterpretq_s8_p8, vreinterpretq_s8_p16,
8697         vreinterpretq_s8_f32, vreinterpretq_s8_p64, vreinterpretq_s8_p128,
8698         vreinterpretq_s8_s64, vreinterpretq_s8_u64, vreinterpretq_s8_s16,
8699         vreinterpretq_s8_s32, vreinterpretq_s8_u8, vreinterpretq_s8_u16,
8700         vreinterpretq_s8_u32, vreinterpretq_s16_p8, vreinterpretq_s16_p16,
8701         vreinterpretq_s16_f32, vreinterpretq_s16_p64, vreinterpretq_s16_p128,
8702         vreinterpretq_s16_s64, vreinterpretq_s16_u64, vreinterpretq_s16_s8,
8703         vreinterpretq_s16_s32, vreinterpretq_s16_u8, vreinterpretq_s16_u16,
8704         vreinterpretq_s16_u32, vreinterpretq_s32_p8, vreinterpretq_s32_p16,
8705         vreinterpretq_s32_f16, vreinterpretq_s32_f32, vreinterpretq_s32_p64,
8706         vreinterpretq_s32_p128, vreinterpretq_s32_s64, vreinterpretq_s32_u64,
8707         vreinterpretq_s32_s8, vreinterpretq_s32_s16, vreinterpretq_s32_u8,
8708         vreinterpretq_s32_u16, vreinterpretq_s32_u32, vreinterpretq_u8_p8,
8709         vreinterpretq_u8_p16, vreinterpretq_u8_f32, vreinterpretq_u8_p64,
8710         vreinterpretq_u8_p128, vreinterpretq_u8_s64, vreinterpretq_u8_u64,
8711         vreinterpretq_u8_s8, vreinterpretq_u8_s16, vreinterpretq_u8_s32,
8712         vreinterpretq_u8_u16, vreinterpretq_u8_u32, vreinterpretq_u16_p8,
8713         vreinterpretq_u16_p16, vreinterpretq_u16_f32, vreinterpretq_u16_p64,
8714         vreinterpretq_u16_p128, vreinterpretq_u16_s64, vreinterpretq_u16_u64,
8715         vreinterpretq_u16_s8, vreinterpretq_u16_s16, vreinterpretq_u16_s32,
8716         vreinterpretq_u16_u8, vreinterpretq_u16_u32, vreinterpretq_u32_p8,
8717         vreinterpretq_u32_p16, vreinterpretq_u32_f32, vreinterpretq_u32_p64,
8718         vreinterpretq_u32_p128, vreinterpretq_u32_s64, vreinterpretq_u32_u64,
8719         vreinterpretq_u32_s8, vreinterpretq_u32_s16, vreinterpretq_u32_s32,
8720         vreinterpretq_u32_u8, vreinterpretq_u32_u16): Rewrite using casts.
8721
8722 2016-02-04  Martin Liska  <mliska@suse.cz>
8723
8724         PR sanitizer/69276
8725         * asan.c (has_stmt_been_instrumented_p): Instrument gimple calls
8726         that are gimple_store_p.
8727         (maybe_instrument_call): Likewise.
8728
8729 2016-02-04  Bin Cheng  <bin.cheng@arm.com>
8730
8731         * config/aarch64/aarch64.c (aarch64_legitimize_address): Force
8732         register scaling out of memory reference and comment why.
8733
8734 2016-02-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8735
8736         PR target/65932
8737         PR target/67714
8738         * cse.c (cse_insn): Pass NULL to fold_rtx when initially
8739         folding the source of a SET.
8740
8741 2016-02-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8742
8743         PR target/65932
8744         PR target/67714
8745         * config/arm/arm.c (arm_new_rtx_costs, MULT case): Properly extract
8746         the operands of the SIGN_EXTENDs from a SMUL[TB][TB] rtx.
8747
8748 2016-02-04  Jim Wilson  <jim.wilson@linaro.org>
8749
8750         PR target/65932
8751         PR target/67714
8752         * config/arm/arm.h (PROMOTE_MODE): Don't set UNSIGNEDP for QImode and
8753         HImode.
8754
8755 2016-02-04  Christian Bruel  <christian.bruel@st.com>
8756
8757         * config/arm/arm-c.c (arm_reset_previous_fndecl): Style fix and typo.
8758         * config/arm/arm.c (arm_set_current_function): Likewise.
8759
8760 2016-02-04  Jakub Jelinek  <jakub@redhat.com>
8761             Ilya Enkovich  <enkovich.gnu@gmail.com>
8762             H.J. Lu  <hongjiu.lu@intel.com>
8763
8764         PR target/69454
8765         * config/i386/i386.c (convert_scalars_to_vector): Remove
8766         stack alignment fixes.
8767         (ix86_option_override_internal): Disable TARGET_STV if stack
8768         might not be aligned enough.
8769         (ix86_minimum_alignment): Assert that TARGET_STV is false.
8770
8771 2016-02-04  Victoria Stepanyan  <victoria.stepanyan@amd.com>
8772
8773         * gcc/config/i386/x86-tune.def: Disable default prefetching
8774         for -march=znver1.
8775
8776 2016-02-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
8777             Vladimir Makarov  <vmakarov@redhat.com>
8778
8779         PR target/69461
8780         * config/rs6000/rs6000.c (rs6000_legitimate_address_p): Fix thinko
8781         in validating fused toc addresses.
8782
8783 2016-02-03  Jakub Jelinek  <jakub@redhat.com>
8784
8785         PR c/69627
8786         * diagnostic-show-locus.c (layout::get_state_at_point): Don't read
8787         range->m_caret fields if range->m_show_caret_p is false.
8788
8789         PR target/69644
8790         * config/rs6000/rs6000.c (rs6000_expand_atomic_compare_and_swap):
8791         Force oldval into register if it does not satisfy reg_or_short_operand
8792         predicate.  Fix up formatting.
8793
8794 2016-02-03  Vladimir Makarov  <vmakarov@redhat.com>
8795             Alexandre Oliva  <aoliva@redhat.com>
8796
8797         PR target/69461
8798         * lra-constraints.c (simplify_operand_subreg): Check additionally
8799         address validity after potential reloading.
8800         (process_address_1): Check insns validity.  In case of failure do
8801         nothing.
8802
8803 2016-02-03  Kirill Yukhin  <kirill.yukhin@intel.com>
8804
8805         PR target/69118
8806         * config/i386/sse.md (define_insn "avx512f_maskcmp<mode>3"):
8807         Fix target.
8808
8809 2016-02-02  Jakub Jelinek  <jakub@redhat.com>
8810
8811         * wide-int.cc (canonize_uhwi): New function.
8812         (wi::divmod_internal): Use it.
8813
8814 2016-02-02  James Norris  <jnorris@codesourcery.com
8815
8816         * gimplify.c (omp_notice_variable): Add usage check.
8817
8818 2016-02-02  Alexander Monakov  <amonakov@ispras.ru>
8819
8820         * config/nvptx/nvptx.c (nvptx_print_operand): Treat LEU, GEU, LTU, GTU
8821         like LE, GE, LT, GT when emitting relational operator.
8822
8823 2016-02-02  Wilco Dijkstra  <wdijkstr@arm.com>
8824
8825         * ira-costs.c (find_costs_and_classes): Add extra argument.
8826         * target.def (ira_change_pseudo_allocno_class): Add parameter.
8827         * targhooks.h (ira_change_pseudo_allocno_class): Likewise.
8828         * targhooks.c (ira_change_pseudo_allocno_class): Likewise.
8829         * config/aarch64/aarch64.c (aarch64_ira_change_pseudo_allocno_class)
8830         Add best_class parameter, and return it if not ALL_REGS.
8831         * config/mips/mips.c (mips_ira_change_pseudo_allocno_class):
8832         Add parameter.
8833         * doc/tm.texi (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS):
8834         Update target hook.
8835
8836 2016-02-02  Wilco Dijkstra  <wdijkstr@arm.com>
8837
8838         * config/aarch64/aarch64.c
8839         (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS): New define.
8840         (aarch64_ira_change_pseudo_allocno_class): New function.
8841
8842 2016-02-02  Uros Bizjak  <ubizjak@gmail.com>
8843
8844         PR target/67032
8845         * config/i386/i386.c (geode_cost): Increase cost of MMX and SSE moves.
8846
8847 2016-02-02  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
8848
8849         * config/avr/avr.c (avr_option_override): Set
8850         PARAM_ALLOW_STORE_DATA_RACES to 1.
8851
8852 2016-02-02  Richard Biener  <rguenther@suse.de>
8853
8854         PR tree-optimization/69595
8855         * match.pd: Add range test simplifications to true/false.
8856
8857 2016-02-02  Thomas Schwinge  <thomas@codesourcery.com>
8858
8859         * omp-builtins.def (BUILT_IN_GOACC_HOST_DATA): Remove.
8860         * omp-low.c (expand_omp_target): Use BUILT_IN_GOACC_DATA_START
8861         instead.
8862
8863 2016-02-02  Richard Biener  <rguenther@suse.de>
8864
8865         PR tree-optimization/69606
8866         * tree-ssa-math-opts.c (bswap_replace): Clear flow sensitive
8867         info on the result before moving a stmt.
8868
8869 2016-02-02  Yuri Rumyantsev  <ysrumyan@gmail.com>
8870
8871         PR middle-end/68542
8872         * config/i386/i386.c (ix86_expand_branch): Add support for conditional
8873         branch with vector comparison.
8874         * config/i386/sse.md (VI48_AVX): New mode iterator.
8875         (define_expand "cbranch<mode>4): Add support for conditional branch
8876         with vector comparison.
8877         * tree-vect-loop.c (optimize_mask_stores): New function.
8878         * tree-vect-stmts.c (vectorizable_mask_load_store): Initialize
8879         has_mask_store field of vect_info.
8880         * tree-vectorizer.c (vectorize_loops): Invoke optimaze_mask_stores for
8881         vectorized loops having masked stores after vec_info destroy.
8882         * tree-vectorizer.h (loop_vec_info): Add new has_mask_store field and
8883         correspondent macros.
8884         (optimize_mask_stores): Add prototype.
8885
8886 2016-02-02  Alan Modra  <amodra@gmail.com>
8887
8888         PR target/69548
8889         * config/rs6000/predicates.md (quad_int_reg_operand): Don't
8890         allow subregs.
8891
8892 2016-02-02  Alan Modra  <amodra@gmail.com>
8893
8894         PR target/68662
8895         * config/rs6000/rs6000.c (need_toc_init): New var, set it
8896         whenever toc_label_name used.
8897         (rs6000_file_start): Don't set up toc section here,
8898         (rs6000_output_function_epilogue): do so here instead,
8899         (rs6000_xcoff_file_start): and here.
8900         * config/rs6000/rs6000.md (load_toc_aix_si): Set need_toc_init.
8901         (load_toc_aix_di): Likewise.
8902
8903 2016-02-01  Jakub Jelinek  <jakub@redhat.com>
8904
8905         PR rtl-optimization/69592
8906         * rtlanal.c (nonzero_bits_binary_arith_p): New inline function.
8907         (cached_nonzero_bits): Use it instead of ARITHMETIC_P.
8908         (num_sign_bit_copies_binary_arith_p): New inline function.
8909         (cached_num_sign_bit_copies): Use it instead of ARITHMETIC_P.
8910
8911 2016-02-01  Jeff Law  <law@redhat.com>
8912
8913         PR tree-optimization/69580
8914         * params.def (FSM_MAXIMUM_PHI_ARGUMENTS): New param.
8915         * tree-ssa-threadbackward.c
8916         (fsm_find_control_statement_thread_paths): Do not try to walk
8917         through large PHI nodes.
8918
8919 2016-02-01  Jakub Jelinek  <jakub@redhat.com>
8920
8921         * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Return false
8922         when count is incremented above limit, don't analyze further
8923         insns afterwards.
8924
8925         * omp-low.c (oacc_parse_default_dims): Avoid
8926         -Wsign-compare warning, make sure value fits into int
8927         rather than just unsigned int.
8928
8929 2016-02-01  Bin Cheng  <bin.cheng@arm.com>
8930
8931         PR tree-optimization/67921
8932         * fold-const.c (split_tree): New parameters.  Convert pointer
8933         type variable part to proper type before negating.
8934         (fold_binary_loc): Pass new arguments to split_tree.
8935
8936 2016-02-01  Nathan Sidwell  <nathan@codesourcery.com>
8937
8938         * config/nvptx/nvptx.c (PTX_GANG_DEFAULT): New.
8939         (nvptx_goacc_validate_dims): Extend to handle global defaults.
8940         * target.def (OACC_VALIDATE_DIMS): Extend documentation.
8941         * doc/tm.texti: Rebuilt.
8942         * doc/invoke.texi (fopenacc-dim): Document.
8943         * lto-wrapper.c (merge_and_complain): Add OPT_fopenacc_dim_ case.
8944         (append_compiler_options): Likewise.
8945         * omp-low.c (oacc_default_dims, oacc_min_dims): New.
8946         (oacc_parse_default_dims): New.
8947         (oacc_validate_dims): Add USED arg.  Select non-unity default when
8948         possible.
8949         (oacc_loop_fixed_partitions): Return mask of used partitions.
8950         (oacc_loop_auto_partitions): Emit dump info.
8951         (oacc_loop_partition): Return mask of used partitions.
8952         (execute_oacc_device_lower): Parse default dimension arg.  Adjust
8953         loop partitioning and validation calls.
8954
8955 2016-02-01  Richard Biener  <rguenther@suse.de>
8956
8957         PR middle-end/69556
8958         * match.pd: Guard (C1/X)*C2 -> (C1*C2)/X with single_use.
8959
8960 2016-02-01  Richard Biener  <rguenther@suse.de>
8961
8962         PR tree-optimization/69574
8963         * tree-chrec.c (hide_evolution_in_other_loops_than_loop): Instead
8964         of asserting return chrec_dont_know.
8965
8966 2016-02-01  Martin Liska  <mliska@suse.cz>
8967
8968         * mem-stats-traits.h: Add copyright header.
8969         * mem-stats.h: Likewise.
8970
8971 2016-02-01  Richard Biener  <rguenther@suse.de>
8972
8973         PR tree-optimization/69579
8974         * tree-ssa-loop-ivcanon.c (propagate_constants_for_unrolling):
8975         Do not propagate through abnormal PHI results.
8976
8977 2016-02-01  Eric Botcazou  <ebotcazou@adacore.com>
8978
8979         * postreload.c (reload_cse_simplify): Remove dead code.
8980
8981 2016-02-01  Jakub Jelinek  <jakub@redhat.com>
8982
8983         PR rtl-optimization/69570
8984         * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Return true only
8985         if there is more than one set, not if there is a single set.
8986
8987 2016-02-01  Richard Henderson  <rth@redhat.com>
8988
8989         PR rtl-opt/69535
8990         * combine.c (make_compound_operation): When looking through a
8991         subreg, make sure to re-extend to the width of the outer mode.
8992
8993 2016-01-30  Jakub Jelinek  <jakub@redhat.com>
8994
8995         PR tree-optimization/69546
8996         * wide-int.cc (wi::divmod_internal): For unsigned division
8997         where both operands fit into uhwi, if o1 is 1 and o0 has
8998         msb set, if divident_prec is larger than bits per hwi,
8999         clear another quotient word and return 2 instead of 1.
9000         Similarly for remainder with msb in HWI set, if dividend_prec
9001         is larger than bits per hwi.
9002
9003 2016-01-29  Martin Jambor  <mjambor@suse.cz>
9004
9005         * hsa-gen.c (get_memory_order_name): Mask with MEMMODEL_BASE_MASK.
9006         Use short lowercase names.
9007         (get_memory_order): Mask with MEMMODEL_BASE_MASK.  Support
9008         MEMMODEL_CONSUME with acquire semantics and MEMMODEL_SEQ_CST with
9009         acq_rel one.  Protect warning agains segfaults if
9010         get_memory_order_name returns NULL.
9011         (gen_hsa_ternary_atomic_for_builtin): Support with MEMMODEL_SEQ_CST
9012         with release semantics.  Do not warn if get_memory_order already did.
9013         (gen_hsa_insns_for_call): Support with MEMMODEL_SEQ_CST with acquire
9014         semantics.  Fix check for relaxed or acquire semantics.  Do not warn
9015         if get_memory_order already did.
9016
9017 2016-01-29  Sebastian Pop  <s.pop@samsung.com>
9018
9019         * doc/install.texi: Document that isl-0.16 is supported.
9020
9021 2016-01-29  Vladimir Makarov  <vmakarov@redhat.com>
9022
9023         PR target/69299
9024         * config/i386/constraints.md (Bm): Describe as special memory
9025         constraint.
9026         * doc/md.texi (DEFINE_SPECIAL_MEMORY_CONSTRAINT): Describe it.
9027         * genoutput.c (main): Process DEFINE_SPECIAL_MEMORY_CONSTRAINT.
9028         * genpreds.c (struct constraint_data): Add is_special_memory.
9029         (have_special_memory_constraints, special_memory_start): New
9030         static vars.
9031         (special_memory_end): Ditto.
9032         (add_constraint): Add new arg is_special_memory.  Add code to
9033         process its true value.  Update have_special_memory_constraints.
9034         (process_define_constraint): Pass the new arg.
9035         (process_define_register_constraint): Ditto.
9036         (choose_enum_order): Process special memory.
9037         (write_tm_preds_h): Generate enum const CT_SPECIAL_MEMORY and
9038         function insn_extra_special_memory_constraint.
9039         (main): Process DEFINE_SPECIAL_MEMORY_CONSTRAINT.
9040         * gensupport.c (process_rtx): Process
9041         DEFINE_SPECIAL_MEMORY_CONSTRAINT.
9042         * ira-costs.c (record_reg_classes): Process CT_SPECIAL_MEMORY.
9043         * ira-lives.c (single_reg_class): Use
9044         insn_extra_special_memory_constraint.
9045         * ira.c (ira_setup_alts): Process CT_SPECIAL_MEMORY.
9046         * lra-constraints.c (process_alt_operands): Ditto.
9047         (curr_insn_transform): Use insn_extra_special_memory_constraint.
9048         * recog.c (asm_operand_ok, preprocess_constraints): Process
9049         CT_SPECIAL_MEMORY.
9050         * reload.c (find_reloads): Ditto.
9051         * rtl.def (DEFINE_SPECIFAL_MEMORY_CONSTRAINT): New.
9052         * stmt.c (parse_input_constraint): Use
9053         insn_extra_special_memory_constraint.
9054
9055 2016-01-29  H.J. Lu  <hongjiu.lu@intel.com>
9056
9057         PR target/69530
9058         * lra-splill.c (lra_final_code_change): Revert r229087 by
9059         removing all sub-registers.
9060
9061 2016-01-29  Steve Ellcey  <sellcey@imgtec.com>
9062
9063         PR target/65604
9064         * config/mips/mips.c (mips_output_division): Check flag_delayed_branch.
9065
9066 2016-01-29  Jakub Jelinek  <jakub@redhat.com>
9067
9068         PR target/69551
9069         * config/i386/i386.c (ix86_expand_vector_set) <case V4SImode>: For
9070         SSE1, copy target into the temporary reg first before recursing
9071         on it.
9072
9073 2016-01-29  H.J. Lu  <hongjiu.lu@intel.com>
9074
9075         * config/i386/sse.md (sse2_cvtps2pd<mask_name>): Replace vBm
9076         with vm.
9077
9078 2016-01-29  Jonathan Wakely  <jwakely@redhat.com>
9079
9080         * ginclude/stdarg.h: Test __cplusplus instead of
9081         __GXX_EXPERIMENTAL_CXX0X__.
9082
9083 2016-01-29  Richard Biener  <rguenther@suse.de>
9084
9085         PR tree-optimization/69547
9086         * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1):
9087         Do not mark clobbers necessary.
9088         (mark_all_reaching_defs_necessary_1): Likewise.
9089
9090 2016-01-29  Dominik Vogt  <vogt@linux.vnet.ibm.com>
9091
9092         * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Format
9093         declaration name with %qs and print it in both error messages.
9094         Also fix indentation.
9095
9096 2016-01-29  Dominik Vogt  <vogt@linux.vnet.ibm.com>
9097
9098         PR other/69006
9099         * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Remove
9100         trailing blank line from error message.
9101
9102 2016-01-29  Jonathan Wakely  <jwakely@redhat.com>
9103
9104         PR c++/69462
9105         * ginclude/float.h: Also provide FLT_EVAL_METHOD and DECIMAL_DIG
9106         for C++-11.
9107
9108 2016-01-29  Richard Biener  <rguenther@suse.de>
9109
9110         PR middle-end/69537
9111         * match.pd: Allow all integral types when simplifying a
9112         widening or sign-changing conversion.
9113
9114 2016-01-28  Sebastian Pop  <s.pop@samsung.com>
9115
9116         * graphite-isl-ast-to-gimple.c (get_rename_from_scev): Revert assert
9117         back to setting codegen_error to fail codegen.
9118
9119 2016-01-28  Uros Bizjak  <ubizjak@gmail.com>
9120
9121         PR target/69459
9122         * config/i386/constraints.md (C): Only accept constant zero operand.
9123         (BC): New constraint.
9124         * config/i386/sse.md (*mov<mode>_internal): Use BC constraint
9125         instead of C constraint.
9126         * doc/md.texi (Machine Constraints): Update description
9127         of C constraint.
9128
9129 2016-01-28  Steve Ellcey  <sellcey@imgtec.com>
9130
9131         PR target/68400
9132         * config/mips/mips.c (and_operands_ok): Add MIPS16 check.
9133
9134 2016-01-28  Jakub Jelinek  <jakub@redhat.com>
9135
9136         PR middle-end/69542
9137         * lra-remat.c (calculate_local_reg_remat_bb_data): Only consider
9138         non-debug insns.
9139
9140 2016-01-28  Pat Haugen  <pthaugen@us.ibm.com>
9141
9142         * config/rs6000/rs6000.c (output_cbranch): Don't statically predict
9143         branches if using guessed profile.
9144
9145 2016-01-28  H.J. Lu  <hongjiu.lu@intel.com>
9146
9147         * graphite-optimize-isl.c (optimize_isl): Fix dump.
9148
9149 2016-01-28  Richard Henderson  <rth@redhat.com>
9150
9151         PR target/69305
9152         * config/aarch64/aarch64-modes.def (CC_Cmode): New
9153         * config/aarch64/aarch64-protos.h: Update.
9154         * config/aarch64/aarch64.c (aarch64_zero_extend_const_eq): New.
9155         (aarch64_select_cc_mode): Add check for use of CC_Cmode.
9156         (aarch64_get_condition_code_1): Handle CC_Cmode.
9157         * config/aarch64/aarch64.md (addti3): Use adddi3_compareC.
9158         (*add<mode>3_compareC_cconly_imm): New.
9159         (*add<mode>3_compareC_cconly): New.
9160         (*add<mode>3_compareC_imm): New.
9161         (add<mode>3_compareC): New.
9162         (add<mode>3_carryin, *addsi3_carryin_uxtw): Sort compare operand
9163         to be first.  Use aarch64_carry_operation.
9164         (*add<mode>3_carryin_alt1, *addsi3_carryin_alt1_uxtw): Remove.
9165         (*add<mode>3_carryin_alt2, *addsi3_carryin_alt2_uxtw): Remove.
9166         (*add<mode>3_carryin_alt3, *addsi3_carryin_alt3_uxtw): Remove.
9167         (subti3): Use subdi3_compare1.
9168         (*sub<mode>3_compare0): Rename from sub<mode>3_compare0.
9169         (sub<mode>3_compare1): New.
9170         (*sub<mode>3_carryin0, *subsi3_carryin_uxtw): New.
9171         (*sub<mode>3_carryin): Use aarch64_borrow_operation.
9172         (*subsi3_carryin_uxtw): Likewise.
9173         (*ngc<mode>, *ngcsi_uxtw): Likewise.
9174         (*sub<mode>3_carryin_alt, *subsi3_carryin_alt_uxtw): New.
9175         * config/aarch64/iterators.md (DWI): New.
9176         * config/aarch64/predicates.md (aarch64_carry_operation): New.
9177         (aarch64_borrow_operation): New.
9178
9179 2016-01-28  Abderrazek Zaafrani  <a.zaafrani@samsung.com>
9180
9181         * graphite-optimize-isl.c (optimize_isl): Print a different debug
9182         message when isl does not return a valid schedule.
9183
9184 2016-01-28  Sebastian Pop  <s.pop@samsung.com>
9185
9186         * graphite-isl-ast-to-gimple.c (class translate_isl_ast_to_gimple):
9187         Remove comments from class declarations: they are already in the code
9188         close by the defs.
9189
9190 2016-01-28  Sebastian Pop  <s.pop@samsung.com>
9191
9192         * graphite-isl-ast-to-gimple.c (binary_op_to_tree): Call
9193         codegen_error_p.
9194         (ternary_op_to_tree): Same.
9195         (unary_op_to_tree): Same.
9196         (nary_op_to_tree): Same.
9197         (gcc_expression_from_isl_expr_op): Same.
9198         (gcc_expression_from_isl_expression): Same.
9199         (graphite_create_new_loop): Same.
9200         (graphite_create_new_loop_guard): Same.
9201         (build_iv_mapping): Same.
9202         (graphite_create_new_guard): Same.
9203         (translate_isl_ast_to_gimple::copy_loop_phi_nodes): Same.
9204         (translate_isl_ast_to_gimple::translate_pending_phi_nodes): Same.
9205
9206 2016-01-28  Sebastian Pop  <s.pop@samsung.com>
9207
9208         * graphite-isl-ast-to-gimple.c (get_rename_from_scev): Assert
9209         instead of setting codegen_error to fail codegen.
9210
9211 2016-01-28  Jason Merrill  <jason@redhat.com>
9212
9213         * tree.h (BINFO_FLAG_0): Rename from BINFO_MARKED.
9214
9215 2016-01-28  Wilco Dijkstra  <wdijkstr@arm.com>
9216
9217         * config/aarch64/aarch64.c (aarch64_if_then_else_costs):
9218         Remove CONST_INT_P check in CCMP cost calculation.
9219
9220 2016-01-28  Wilco Dijkstra  <wdijkstr@arm.com>
9221
9222         * config/aarch64/aarch64.c (generic_vector_cost):
9223         Set vec_permute_cost.
9224         (cortexa57_vector_cost): Likewise.
9225         (exynosm1_vector_cost): Likewise.
9226         (xgene1_vector_cost): Likewise.
9227         (aarch64_builtin_vectorization_cost): Use vec_permute_cost.
9228         * config/aarch64/aarch64-protos.h (cpu_vector_cost):
9229         Add vec_permute_cost entry.
9230
9231 2016-01-28  Wilco Dijkstra  <wdijkstr@arm.com>
9232
9233         * config/aarch64/aarch64.md (ccmp<mode>): Disassemble
9234         immediate as %1.
9235         (add<mode>3_compare0): Likewise.
9236         (addsi3_compare0_uxtw): Likewise.
9237         (add<mode>3nr_compare0): Likewise.
9238         (compare_neg<mode>): Likewise.
9239         (<optab><mode>3): Likewise.
9240
9241 2016-01-28  Ilya Enkovich  <enkovich.gnu@gmail.com>
9242
9243         * tree-vect-stmts.c (vectorizable_comparison): Add
9244         NULL check for vectype.
9245
9246 2016-01-28  Richard Biener  <rguenther@suse.de>
9247
9248         PR tree-optimization/69466
9249         * tree-vect-loop-manip.c (slpeel_duplicate_current_defs_from_edges):
9250         Account for PHIs we couldn't duplicate.
9251
9252 2016-01-28  Martin Liska  <mliska@suse.cz>
9253
9254         PR pch/68758
9255         * ggc-common.c (gt_pch_save): Use ENABLE_VALGRIND_ANNOTATIONS macro
9256         instead of ENABLE_VALGRIND_CHECKING.
9257
9258 2016-01-27  Richard Henderson  <rth@redhat.com>
9259
9260         PR rtl-opt/69447
9261         * lra-remat.c (subreg_regs): New.
9262         (dump_candidates_and_remat_bb_data): Dump it.
9263         (operand_to_remat): Reject if operand in subreg_regs.
9264         (set_bb_regs): Collect subreg_regs.
9265         (lra_remat): Init and free subreg_regs.  Compute
9266         calculate_local_reg_remat_bb_data before create_cands.
9267
9268 2016-01-27  H.J. Lu  <hongjiu.lu@intel.com>
9269
9270         PR target/68986
9271         * config/i386/i386.c (ix86_update_stack_boundary): Don't
9272         change stack_alignment_needed for __tls_get_addr call.
9273
9274 2016-01-27  Segher Boessenkool  <segher@kernel.crashing.org>
9275
9276         * config/rs6000/rs6000.c (print_operand): Rollback 's' removal.
9277
9278 2016-01-27  Jeff Law  <law@redhat.com>
9279
9280         PR tree-optimization/68398
9281         PR tree-optimization/69196
9282         * params.def (PARAM_FSM_SCALE_PATH_STMTS): New parameter.
9283         (PARAM_FSM_SCALE_PATH_BLOCKS): Likewise.
9284         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
9285         Only count PHIs in the last block in the path.  The others will
9286         const/copy propagate away.  Add heuristic to allow more irreducible
9287         subloops to be created when it is likely profitable to do so.
9288
9289         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
9290         Fix typo in comment.  Use gsi_after_labels and remove the GIMPLE_LABEL
9291         check from within the loop.  Use gsi_next_nondebug rather than gsi_next.
9292
9293 2016-01-27  Jakub Jelinek  <jakub@redhat.com>
9294
9295         PR lto/69254
9296         * sanitizer.def: Add BEGIN_SANITIZER_BUILTINS and
9297         END_SANITIZER_BUILTINS markers using DEF_BUILTIN_STUB.
9298         * asan.c (DEF_BUILTIN_STUB): Temporarily define.
9299         * tree-streamer-in.c: Include asan.h.
9300         (streamer_get_builtin_tree): For builtins in sanitizer
9301         range call initialize_sanitizer_builtins and retry.
9302
9303 2016-01-27  Ian Lance Taylor  <iant@google.com>
9304
9305         * common.opt (fkeep-gc-roots-live): New undocumented option.
9306         * tree-ssa-loop-ivopts.c (add_candidate_1): If
9307         -fkeep-gc-roots-live, skip pointers.
9308         (add_iv_candidate_for_biv): Handle add_candidate_1 returning
9309         NULL.
9310
9311 2016-01-27  Uros Bizjak  <ubizjak@gmail.com>
9312
9313         PR target/69512
9314         * config/i386/i386.md (*zext<mode>_doubleword_and): New pattern.
9315         (*zext<mode>_doubleword): Disable for TARGET_ZERO_EXTEND_WITH_AND.
9316
9317 2016-01-27  Thomas Klausner  <wiz@NetBSD.org>
9318
9319         PR target/68380
9320         * configure.ac: NetBSD provides SSP in its C library.
9321         * configure: Updated.
9322
9323 2016-01-27  Richard Biener  <rguenther@suse.de>
9324
9325         PR tree-optimization/69166
9326         * tree-vect-loop.c (vect_is_simple_reduction): Always check
9327         reduction code for commutativity / associativity.
9328
9329 2016-01-27  Martin Jambor  <mjambor@suse.cz>
9330
9331         PR tree-optimization/69355
9332         * tree-sra.c (analyze_access_subtree): Correct hole detection when
9333         total_scalarization fails.
9334
9335 2016-01-27  David Edelsohn  <dje.gcc@gmail.com>
9336
9337         * config/rs6000/driver-rs6000.c (detect_processor_aix): Add
9338         power9.
9339
9340 2016-01-27  Christian Bruel  <christian.bruel@st.com>
9341
9342         PR target/69245
9343         * config/arm/arm-c.c (arm_pragma_target_parse): Add comments.
9344         Move arm_reset_previous_fndecl and set_target_option_current_node in
9345         the conditional part.  Call save_restore_target_globals.
9346         * config/arm/arm.c (arm_set_current_function):
9347         Refactor to better support #pragma target and attribute mix.
9348         Call save_restore_target_globals.
9349         * config/arm/arm-protos.h (save_restore_target_globals): New function.
9350
9351 2016-01-27  Martin Liska  <mliska@suse.cz>
9352
9353         * hsa.c (hsa_summary_t::link_functions): Create IPA_REF_ADDR
9354         reference for an HSA kernel and its host function.
9355
9356 2016-01-27  Jakub Jelinek  <jakub@redhat.com>
9357
9358         PR tree-optimization/69399
9359         * wide-int.h (wi::lrshift): For larger precisions, only
9360         use fast path if shift is known to be < HOST_BITS_PER_WIDE_INT.
9361
9362 2016-01-27  Claudiu Zissulescu  <claziss@synopsys.com>
9363
9364         * config/arc/predicates.md (proper_comparison_operator): Reject
9365         constant-constant comparison.
9366
9367 2016-01-26  Tom de Vries  <tom@codesourcery.com>
9368
9369         PR tree-optimization/69110
9370         * tree-data-ref.c (initialize_data_dependence_relation): Handle
9371         DR_NUM_DIMENSIONS == 0.
9372
9373 2016-01-26  Abderrazek Zaafrani  <a.zaafrani@samsung.com>
9374             Sebastian Pop  <s.pop@samsung.com>
9375
9376         * graphite-isl-ast-to-gimple.c (ternary_op_to_tree): Handle
9377         isl_ast_op_cond and isl_ast_op_select.
9378         (gcc_expression_from_isl_expr_op): Same.
9379
9380 2016-01-26  Jason Merrill  <jason@redhat.com>
9381
9382         PR c++/68782
9383         * tree.c (recompute_constructor_flags): Split out from
9384         build_constructor.
9385         (verify_constructor_flags): New.
9386         * tree.h: Declare them.
9387
9388 2016-01-26  Iain Buclaw  <ibuclaw@gdcproject.org>
9389
9390         PR rtl-optimization/69217
9391         * var-tracking.c (tracked_record_parameter_p): Don't segfault if there
9392         are no TYPE_FIELDS set for the record type.
9393
9394 2016-01-26  Jakub Jelinek  <jakub@redhat.com>
9395
9396         PR target/68662
9397         * config/rs6000/rs6000.c (rs6000_option_override_internal): Initialize
9398         toc_label_name unconditionally.
9399         (rs6000_emit_load_toc_table): Call ggc_strdup on toc_label_name for
9400         SYMBOL_REF string.  Use toc_label_name instead of constructing
9401         LCTOC1.
9402         (rs6000_elf_declare_function_name): Use toc_label_name instead of
9403         constructing LCTOC1.
9404
9405 2016-01-26  Martin Sebor  <msebor@redhat.com>
9406
9407         PR other/69477
9408         * doc/extend.texi (Common Type Attributes): Move text that talks about
9409         attribute packed from attribute aligned to the section discussing
9410         the former attribute for clarity.
9411
9412 2016-01-26  Richard Henderson  <rth@redhat.com>
9413
9414         PR middle-end/60908
9415         * trans-mem.c (tm_region_init): Mark entry block as visited.
9416
9417 2016-01-26  David Malcolm  <dmalcolm@redhat.com>
9418
9419         PR other/69006
9420         * diagnostic-show-locus.c (layout::print_source_line): Replace
9421         call to pp_newline with call to layout::print_newline.
9422         (layout::print_annotation_line): Likewise.
9423         (layout::move_to_column): Likewise.
9424         (layout::print_any_fixits): After printing any fixits, print a
9425         trailing newline, if necessary.
9426         (layout::print_newline): New method, resetting any colorization
9427         before a newline.
9428         (diagnostic_show_locus): Move the pp_newline to before the
9429         early bailout.  Remove dummy block enclosing the layout instance.
9430         * diagnostic.c (default_diagnostic_finalizer): Replace invocation
9431         of pp_newline_and_flush with pp_flush.
9432         (diagnostic_append_note): Delete use of pp_newline.
9433         (diagnostic_append_note_at_rich_loc): Delete.
9434         * diagnostic.h (diagnostic_append_note_at_rich_loc): Delete.
9435         * pretty-print.h (output_buffer_append_r): Reset buff->line_length
9436         when newline characters are added to the buffer.
9437
9438 2016-01-26  Michael Matz  <matz@suse.de>
9439
9440         * configure.ac (ac_cv_std_swap_in_utility): New test.
9441         * system.h (<algorithm>): Check HAVE_SWAP_IN_UTILITY as well.
9442         * configure: Regenerate.
9443         * config.in: Regenerate.
9444
9445 2016-01-26  Claudiu Zissulescu  <claziss@synopsys.com>
9446
9447         * config/arc/arc.md (cstoresi4): Force operand into register.
9448         (arcset<code>): Fix predicate.
9449         (arcsetltu): Likewise.
9450         (arcsetgeu): Likewise.
9451         (arcsethi): Likewise.
9452         (arcsetls): Likewise.
9453
9454 2016-01-26  Jakub Jelinek  <jakub@redhat.com>
9455
9456         PR tree-optimization/69483
9457         * gimple-fold.c (canonicalize_constructor_val): Return NULL
9458         if base has error_mark_node type.
9459
9460 2016-01-26  Christophe Lyon  <christophe.lyon@linaro.org>
9461
9462         PR target/68620
9463         * config/arm/arm.c (neon_valid_immediate): Handle FP16 vectors.
9464         * config/arm/arm_neon.h (__ARM_NUM_LANES, __arm_lane, arm_lanq):
9465         New helper macros.
9466         (vget_lane_f16): Handle big-endian.
9467         (vgetq_lane_f16): Likewise.
9468         (vset_lane_f16): Likewise.
9469         (vsetq_lane_f16): Likewise.
9470         * config/arm/iterators.md (VQXMOV): Add V8HF.
9471         (VDQ): Add V4HF and V8HF.
9472         (V_reg): Handle V4HF and V8HF.
9473         (Is_float_mode): Likewise.
9474         * config/arm/neon.md (movv4hf, movv8hf, neon_vdup_nv4hf,
9475         neon_vdup_nv8hf): New patterns.
9476         (vec_set<mode>_internal, vec_extract<mode>, neon_vld1_dup<mode>):
9477         Use VD_LANE iterator.
9478         (neon_vld1_dup<mode>): Use VQ2 iterator.
9479
9480 2016-01-26  Nathan Sidwell  <nathan@acm.org>
9481
9482         * omp-low.h (oacc_fn_attrib_kernels_p): Declare.
9483         (set_oacc_fn_attrib): Add IS_KERNEL arg.
9484         * omp-low.c (set_oacc_fn_attrib): Add IS_KERNEL arg.
9485         (oacc_fn_attrib_kernels_p, oacc_fn_attrib_level): New.
9486         (expand_omp_target): Pass is_kernel to set_oacc_fn_attrib.
9487         (oacc_validate_dims): Add LEVEL arg, don't return level.
9488         (new_oacc_loop_routine): Use oacc_fn_attrib_level, not
9489         oacc_validate_dims.
9490         (execute_oacc_device_lower): Adjust, add more dump output.
9491         * tree-ssa-loop.c (gate_oacc_kernels): Use
9492         oacc_fn_attrib_kernels_p.
9493         * tree-parloops.c (create_parallel_loop): Adjust
9494         set_oacc_fn_attrib call.
9495
9496 2016-01-26  Jakub Jelinek  <jakub@redhat.com>
9497
9498         PR lto/69254
9499         * lto-wrapper.c (merge_and_complain): Handle -fcilkplus.
9500         (append_compiler_options): Handle -fcilkplus.
9501         (append_linker_options): Ignore -fno-{openmp,openacc,cilkplus}.
9502
9503 2016-01-26  Nick Clifton  <nickc@redhat.com>
9504
9505         PR target/66655
9506         * config/i386/winnt.c (i386_pe_binds_local_p): If a function has
9507         been marked as DECL_ONE_ONLY but we do not the means to make it
9508         so, then do not allow it to bind locally.
9509
9510 2016-01-26  Jakub Jelinek  <jakub@redhat.com>
9511
9512         PR lto/69254
9513         * opts.h (parse_sanitizer_options): New prototype.
9514         * opts.c (sanitizer_opts): New array.
9515         (parse_sanitizer_options): New function.
9516         (common_handle_option): Use parse_sanitizer_options.
9517
9518 2016-01-26  H.J. Lu  <hongjiu.lu@intel.com>
9519
9520         PR target/68986
9521         * config/i386/i386.c (ix86_compute_frame_layout): Move stack
9522         alignment adjustment to ...
9523         (ix86_update_stack_boundary): Here.  Don't over-align stack for
9524         __tls_get_addr.
9525         (ix86_finalize_stack_realign_flags): Use stack_alignment_needed
9526         if __tls_get_addr is called.
9527
9528 2016-01-26  Christian Bruel  <christian.bruel@st.com>
9529
9530         * doc/sourcebuild.texi (arm_crypto_pragma_ok): Remove.
9531
9532 2016-01-26  Eric Botcazou  <ebotcazou@adacore.com>
9533
9534         * config/ia64/ia64.c (ia64_expand_vecint_compare): Use gen_int_mode.
9535
9536 2016-01-26  Richard Biener  <rguenther@suse.de>
9537
9538         PR middle-end/69467
9539         * match.pd: Guard X * CST CMP 0 pattern with single_use.
9540
9541 2016-01-26  Richard Biener  <rguenther@suse.de>
9542
9543         PR tree-optimization/69452
9544         * tree-ssa-loop-im.c (move_computations_dom_walker): Remove.
9545         (move_computations_dom_walker::before_dom_children): Rename
9546         to ...
9547         (move_computations_worker): This.
9548         (move_computations): Perform an RPO rather than a DOM walk.
9549
9550 2016-01-26  Jakub Jelinek  <jakub@redhat.com>
9551
9552         PR target/69442
9553         * combine.c (combine_instructions): For REG_EQUAL note with
9554         SET_DEST being ZERO_EXTRACT, also temporarily set SET_DEST
9555         to the underlying register.
9556         * doc/rtl.texi (REG_EQUAL): Document the behavior of
9557         REG_EQUAL/REG_EQUIV notes if SET_DEST is ZERO_EXTRACT.
9558
9559 2016-01-26  Roger Ferrer Ibáñez  <rofirrim@gmail.com>
9560
9561         PR target/67896
9562         * config/aarch64/aarch64-builtins.c
9563         (aarch64_init_simd_builtin_types): Do not set structural
9564         equality to __Poly{8,16,64,128}_t types.
9565
9566 2016-01-26  Richard Sandiford  <richard.sandiford@arm.com>
9567
9568         PR tree-optimization/69400
9569         * wide-int.cc (wi_pack): Take the precision as argument and
9570         perform canonicalization here rather than in the callers.
9571         Use the main loop to handle all full-width HWIs.  Add a
9572         zero HWI if in_len isn't a full result.
9573         (wi::divmod_internal): Update accordingly.
9574         (wi::mul_internal): Likewise.  Simplify.
9575
9576 2016-01-25  Aditya Kumar  <aditya.k7@samsung.com>
9577             Sebastian Pop  <s.pop@samsung.com>
9578
9579         * graphite-poly.c (apply_poly_transforms): Simplify.
9580         (print_isl_set): Use more readable format: ISL_YAML_STYLE_BLOCK.
9581         (print_isl_map): Same.
9582         (print_isl_union_map): Same.
9583         (print_isl_schedule): New.
9584         (debug_isl_schedule): New.
9585         * graphite-dependences.c (scop_get_reads): Do not call
9586         isl_union_map_add_map that is undocumented isl functionality.
9587         (scop_get_must_writes): Same.
9588         (scop_get_may_writes): Same.
9589         (scop_get_original_schedule): Remove.
9590         (scop_get_dependences): Do not call isl_union_map_compute_flow that
9591         is deprecated in isl 0.15.  Instead, use isl_union_access_* interface.
9592         (compute_deps): Remove.
9593         * graphite-isl-ast-to-gimple.c (print_schedule_ast): New.
9594         (debug_schedule_ast): New.
9595         (translate_isl_ast_to_gimple::scop_to_isl_ast): Call
9596         set_separate_option.
9597         (graphite_regenerate_ast_isl): Add dump.
9598         (translate_isl_ast_to_gimple::scop_to_isl_ast): Generate code
9599         from scop->transformed_schedule.
9600         (graphite_regenerate_ast_isl): Add more dump.
9601         * graphite-optimize-isl.c (optimize_isl): Set
9602         scop->transformed_schedule.  Check whether schedules are equal.
9603         (apply_poly_transforms): Move here.
9604         * graphite-poly.c (apply_poly_transforms): ... from here.
9605         (free_poly_bb): Static.
9606         (free_scop): Static.
9607         (pbb_number_of_iterations_at_time): Remove.
9608         (print_isl_ast): New.
9609         (debug_isl_ast): New.
9610         (debug_scop_pbb): New.
9611         * graphite-scop-detection.c (print_edge): Move.
9612         (print_sese): Move.
9613         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Remove.
9614         (build_scop_scattering): Remove.
9615         (create_pw_aff_from_tree): Assert instead of bailing out.
9616         (add_condition_to_pbb): Remove unused code, do not fail.
9617         (add_conditions_to_domain): Same.
9618         (add_conditions_to_constraints): Remove.
9619         (build_scop_context): New.
9620         (add_iter_domain_dimension): New.
9621         (build_iteration_domains): Initialize pbb->iterators.
9622         Call add_conditions_to_domain.
9623         (nested_in): New.
9624         (loop_at): New.
9625         (index_outermost_in_loop): New.
9626         (index_pbb_in_loop): New.
9627         (outermost_pbb_in): New.
9628         (add_in_sequence): New.
9629         (add_outer_projection): New.
9630         (outer_projection_mupa): New.
9631         (add_loop_schedule): New.
9632         (build_schedule_pbb): New.
9633         (build_schedule_loop): New.
9634         (embed_in_surrounding_loops): New.
9635         (build_schedule_loop_nest): New.
9636         (build_original_schedule): New.
9637         (build_poly_scop): Call build_original_schedule.
9638         * graphite.h: Declare print_isl_schedule and debug_isl_schedule.
9639         (free_poly_dr): Remove.
9640         (struct poly_bb): Add iterators.  Remove schedule, transformed, saved.
9641         (free_poly_bb): Remove.
9642         (debug_loop_vec): Remove.
9643         (print_isl_ast): Declare.
9644         (debug_isl_ast): Declare.
9645         (scop_do_interchange): Remove.
9646         (scop_do_strip_mine): Remove.
9647         (scop_do_block): Remove.
9648         (flatten_all_loops): Remove.
9649         (optimize_isl): Remove.
9650         (pbb_number_of_iterations_at_time): Remove.
9651         (debug_scop_pbb): Declare.
9652         (print_schedule_ast): Declare.
9653         (debug_schedule_ast): Declare.
9654         (struct scop): Remove schedule.  Add original_schedule,
9655         transformed_schedule.
9656         (free_gimple_poly_bb): Remove.
9657         (print_generated_program): Remove.
9658         (debug_generated_program): Remove.
9659         (unify_scattering_dimensions): Remove.
9660         * sese.c (print_edge): ... here.
9661         (print_sese): ... here.
9662         (debug_edge): ... here.
9663         (debug_sese): ... here.
9664         * sese.h (print_edge): Declare.
9665         (print_sese): Declare.
9666         (dump_edge): Declare.
9667         (dump_sese): Declare.
9668
9669 2016-01-25  Aditya Kumar  <aditya.k7@samsung.com>
9670             Sebastian Pop  <s.pop@samsung.com>
9671
9672         * Makefile.in: Set ISLVER in site.exp.
9673
9674 2016-01-25  Jakub Jelinek  <jakub@redhat.com>
9675
9676         * omp-low.c (lower_omp_target) <case USE_DEVICE_PTR>: Set
9677         DECL_VALUE_EXPR of new_var even for the non-array case.  Look
9678         through DECL_VALUE_EXPR for expansion.
9679
9680 2016-01-25  Bernd Edlinger  <bernd.edlinger@hotmail.de>
9681
9682         * config/mips/mips.c (mips_compute_frame_info): Skip re-computing
9683         the frame info after reload completed.
9684
9685 2016-01-25  Jeff Law  <law@redhat.com>
9686
9687         PR tree-optimization/69196
9688         PR tree-optimization/68398
9689         * tree-ssa-threadupdate.h (enum bb_dom_status): Moved here from
9690         tree-ssa-threadupdate.c.
9691         (determine_bb_domination_status): Prototype
9692         * tree-ssa-threadupdate.c (enum bb_dom_status): Remove
9693         (determine_bb_domination_status): No longer static.
9694         (valid_jump_thread_path): Remove code to detect characteristics
9695         of the jump thread path not associated with correctness.
9696         * tree-ssa-threadbackward.c (fsm_find_control_statment_thread_paths):
9697         Correct test for thread path length.  Count PHIs for real operands as
9698         statements that need to be copied.  Do not count ASSERT_EXPRs.
9699         Look at all the blocks in the thread path.  Compute and selectively
9700         filter thread paths based on threading through the latch, threading
9701         a multiway branch or crossing a multiway branch.
9702
9703 2016-01-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
9704
9705         * config/rs6000/rs6000.c (rs6000_keep_leaf_when_profiled):  Add
9706         decl with __attribute__ ((unused)) annotation.
9707
9708 2016-01-25  Ilya Enkovich  <enkovich.gnu@gmail.com>
9709
9710         PR target/69421
9711         * tree-vect-stmts.c (vectorizable_condition): Check vectype
9712         of operands is compatible with a statement vectype.
9713
9714 2016-01-25  Eric Botcazou  <ebotcazou@adacore.com>
9715
9716         * doc/extend.texi (scalar_storage_order type attribute): Fix typo and
9717         improve wording for mixed storage order support.
9718
9719 2016-01-25  Bilyan Borisov  <bilyan.borisov@arm.com>
9720
9721         * config/aarch64/arm_neon.h (vcvt_s64_f64): New intrinsic.
9722         (vcvt_u64_f64): Likewise.
9723         (vcvta_s64_f64): Likewise.
9724         (vcvta_u64_f64): Likewise.
9725         (vcvtm_s64_f64): Likewise.
9726         (vcvtm_u64_f64): Likewise.
9727         (vcvtn_s64_f64): Likewise.
9728         (vcvtn_u64_f64): Likewise.
9729         (vcvtp_s64_f64): Likewise.
9730         (vcvtp_u64_f64): Likewise.
9731
9732 2016-01-25  Claudiu Zissulescu  <claziss@synopsys.com>
9733
9734         * config/arc/arc.c (TARGET_DWARF_REGISTER_SPAN): Define.
9735         (arc_init): Check validity mll64 option.
9736         (arc_save_restore): Use double load/store instruction.
9737         (arc_expand_movmem): Likewise.
9738         (arc_split_move): Don't split if we have double load/store
9739         instructions. Returns a boolean.
9740         (arc_process_double_reg_moves): Change function to return boolean
9741         instead of a sequence of instructions.
9742         (arc_dwarf_register_span): New function.
9743         * config/arc/arc-protos.h (arc_split_move): Change prototype.
9744         * config/arc/arc.h (TARGET_CPU_CPP_BUILTINS): Define __ARC_LL64__.
9745         * config/arc/arc.md (*movdi_insn): Emit ldd/std instructions.
9746         (*movdf_insn): Likewise.
9747         * config/arc/arc.opt (mll64): New option.
9748         * config/arc/predicates.md (even_register_operand): New predicate.
9749         * doc/invoke.texi (ARC Options): Add mll64 documentation.
9750
9751 2016-01-25  Richard Biener  <rguenther@suse.de>
9752
9753         PR lto/69393
9754         * dwarf2out.c (is_naming_typedef_decl): Not when DECL_NAMELESS.
9755         * tree-streamer-out.c (pack_ts_base_value_fields): Stream
9756         DECL_NAMELESS.
9757         * tree-streamer-in.c (unpack_ts_base_value_fields): Likewise.
9758
9759 2016-01-25  Richard Biener  <rguenther@suse.de>
9760
9761         PR tree-optimization/69376
9762         * tree-ssa-sccvn.h (struct vn_ssa_aux): Add range_info_anti_range_p
9763         flag.
9764         (VN_INFO_ANTI_RANGE_P): New inline.
9765         (VN_INFO_RANGE_TYPE): Likewise.
9766         * tree-ssa-sccvn.c (set_ssa_val_to): Also record and copy
9767         SSA_NAME_ANTI_RANGE_P.
9768         (free_scc_vn): Restore SSA_NAME_ANTI_RANGE_P.
9769         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
9770         Properly query VN_INFO_RANGE_TYPE.
9771
9772 2016-01-25  Nick Clifton  <nickc@redhat.com>
9773
9774         PR target/66655
9775         * config/i386/cygming.h (MAKE_DECL_ONE_ONLY): Remove definition.
9776
9777 2016-01-23  Tom de Vries  <tom@codesourcery.com>
9778
9779         PR tree-optimization/69426
9780         * tree-parloops.c (eliminate_local_variables_stmt): Handle vdef of
9781         removed clobber.
9782
9783 2016-01-23  Jakub Jelinek  <jakub@redhat.com>
9784
9785         * tree-ssanames.c (release_free_names_and_compact_live_names): Replace
9786         "the the" with "the" in the comments.
9787         * ipa-devirt.c (build_type_inheritance_graph,
9788         update_type_inheritance_graph): Likewise.
9789         * tree.c (build_function_type_list_1): Likewise.
9790         * cfgloopmanip.c (scale_loop_profile): Likewise.
9791         * tree-ssa-loop-ivopts.c (get_shiftadd_cost): Likewise.
9792         * gimple-ssa-split-paths.c
9793         (find_block_to_duplicate_for_splitting_paths): Likewise.
9794         * tree-sra.c (init_subtree_with_zero, clobber_subtree): Likewise.
9795         * expr.c (convert_move): Likewise.
9796         * var-tracking.c (vt_stack_adjustments): Likewise.
9797         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise.
9798         * tree-vrp.c (test_for_singularity): Likewise.
9799
9800         * tree-vect-stmts.c (vectorizable_condition): Build a VEC_COND_EXPR
9801         directly instead of building a temporary tree.
9802
9803         PR bootstrap/69434
9804         * genrecog.c: Define INCLUDE_ALGORITHM before including system.h,
9805         remove <algorithm> include.
9806
9807 2016-01-22  Jakub Jelinek  <jakub@redhat.com>
9808
9809         PR target/69432
9810         * config/i386/i386.c: Include dojump.h.
9811         (expand_small_movmem_or_setmem,
9812         expand_set_or_movmem_prologue_epilogue_by_misaligned_moves): Spelling
9813         fixes.
9814         (ix86_expand_set_or_movmem): Call do_pending_stack_adjust () early
9815         if dynamic_check != -1.
9816
9817 2016-01-21  Jeff Law  <law@redhat.com>
9818
9819         PR middle-end/69347
9820         * tree-ssa-dom.c (back_propagate_equivalences): Factored out of
9821         record_temporary_equivalences.  Rewritten to avoid unnecessary calls
9822         into dominated_by_p.
9823         (cprop_into_successor_phis): Avoid unnecessary tests.
9824
9825 2016-01-22  Richard Henderson  <rth@redhat.com>
9826
9827         PR target/69416
9828         * config/aarch64/aarch64.md (UNSPEC_NZCV): New.
9829         (ccmp<mode>, fccmp<mode>, fccmpe<mode>): Use it.
9830
9831 2016-01-22  Michael Matz  <matz@suse.de>
9832
9833         * system.h (string, algorithm): Include only conditionally.
9834         (new): Include always under C++.
9835         * bb-reorder.c (toplevel): Define INCLUDE_ALGORITHM.
9836         * final.c (toplevel): Ditto.
9837         * ipa-chkp.c (toplevel): Define INCLUDE_STRING.
9838         * genconditions.c (write_header): Make gencondmd.c define
9839         INCLUDE_STRING.
9840         * mem-stats.h (mem_usage::print_dash_line): Don't use std::string.
9841
9842         * config/aarch64/aarch64.c (toplevel): Define INCLUDE_STRING.
9843         * common/config/aarch64/aarch64-common.c (toplevel): Ditto.
9844
9845 2016-01-22  Christian Bruel  <christian.bruel@st.com>
9846
9847         PR target/68674
9848         * expr.c (expand_expr_real_1): Reset DECL_MODE if VECTOR_TYPE_P changed.
9849
9850 2016-01-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9851
9852         PR target/69403
9853         * config/arm/thumb2.md (*thumb2_ior_scc_strict_it): Convert to
9854         define_insn_and_split.  Ensure operands[1] and operands[0] do not
9855         get assigned the same register.
9856
9857 2016-01-22  Kugan Vivekanandarajah  <kuganv@linaro.org>
9858
9859         * ipa-prop.c (ipa_set_jf_constant): Remove redundant unshare_expr.
9860
9861 2016-01-22  Christian Bruel  <christian.bruel@st.com>
9862
9863         * config/arm/arm-c.c (arm_pragma_target_parse):
9864         Remove warn_builtin_macro_redefined overwrite.
9865
9866 2016-01-22  Eric Botcazou  <ebotcazou@adacore.com>
9867
9868         * ipa-inline.c (can_inline_edge_p): Back out overzealous check on
9869         flag_non_call_exceptions compatibility.
9870
9871 2016-01-22  Jakub Jelinek  <jakub@redhat.com>
9872
9873         PR debug/66668
9874         * dwarf2out.c (add_child_die_after): New function.
9875         (dwarf_qual_info_t): New type.
9876         (dwarf_qual_info): New variable.
9877         (qualified_die_p): New function.
9878         (modified_type_die): For -fdebug-types-section, ensure
9879         canonical order of qualifiers.  Put qualified DIEs adjacent
9880         to the corresponding non-qualified type DIE and search there
9881         for existing qualified DIEs.
9882
9883 2016-01-22  Eric Botcazou  <ebotcazou@adacore.com>
9884
9885         * doc/extend.texi (scalar_storage_order type attribute): Document
9886         restriction on type punning and aliasing, and remove future tense.
9887
9888 2016-01-21  Roman Zhuykov  <zhroma@ispras.ru>
9889
9890         PR target/69252
9891         * modulo-sched.c (optimize_sc): Allow branch-scheduling to add a new
9892         first stage.
9893
9894 2016-01-21  Jeff Law  <law@redhat.com>
9895
9896         PR middle-end/69347
9897         * tree-ssa-dom.c (dom_opt_dom_walker::thread_across_edge): Avoid
9898         useless call to record_temporary_equivalences.
9899         * tree-ssa-threadbackward.c (find_jump_threads_backwards): Just
9900         allocate 10 slots in the bb_path vector and let it grow as needed.
9901         (fsm_find_control_statement_thread_paths): Similarly for the next_path
9902         vector.
9903
9904 2016-01-21  David Edelsohn  <dje.gcc@gmail.com>
9905
9906         * configure.ac (gcc_cv_as_powerpc_mfcrf, gcc_cv_as_machine_directive):
9907         Detangle.
9908         * configure: Regenerate.
9909
9910 2016-01-21  Pat Haugen  <pthaugen@us.ibm.com>
9911
9912         * config/rs6000/aix71.h (ASM_CPU_SPEC): Add entry for Power9.
9913         * config/rs6000/driver-rs6000.c (struct asm_names): Likewise.
9914
9915 2016-01-21  Bernd Schmidt  <bschmidt@redhat.com>
9916
9917         PR middle-end/66178
9918         * expr.c (expand_expr_real_2) [PLUS_EXPR, MINUS_EXPR]: Don't
9919         drop EXPAND_INITIALIZER.
9920         * rtl.h (contains_symbolic_reference_p): Declare.
9921         * rtlanal.c (contains_symbolic_reference_p): New function.
9922         * simplify-rtx.c (simplify_binary_operation_1): Don't turn
9923         a subtraction into a NOT if symbolic constants are involved.
9924
9925 2016-01-21  Anton Blanchard  <anton@samba.org>
9926             Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
9927
9928         PR target/63354
9929         * config/rs6000/linux64.h (TARGET_KEEP_LEAF_WHEN_PROFILED): New
9930         #define.
9931         * config/rs6000/rs6000.c (rs6000_keep_leaf_when_profiled): New
9932         function.
9933
9934 2016-01-21  Ajit Agarwal  <ajitkum@xilinx.com>
9935
9936         * config/microblaze/microblaze.c
9937         (get_branch_target): New.
9938         (insert_wic_for_ilb_runout): New.
9939         (insert_wic): New.
9940         (microblaze_machine_dependent_reorg): New.
9941         (TARGET_MACHINE_DEPENDENT_REORG): Define macro.
9942         * config/microblaze/microblaze.md
9943         (UNSPEC_IPREFETCH): Define.
9944         (iprefetch): New pattern
9945         * config/microblaze/microblaze.opt
9946         (mxl-prefetch): New flag.
9947
9948 2016-01-21  Ajit Agarwal  <ajitkum@xilinx.com>
9949
9950         * config/microblaze/microblaze.h
9951         (FIXED_REGISTERS): Update in macro.
9952         (CALL_USED_REGISTERS): Update in macro.
9953
9954 2016-01-21  Yuri Rumyantsev  <ysrumyan@gmail.com>
9955
9956         PR rtl-optimization/68920
9957         * ifcvt.c (cond_move_process_if_block): Limit number of conditional
9958         moves.
9959
9960 2016-01-21  Vladimir Makarov  <vmakarov@redhat.com>
9961
9962         PR rtl-optimization/68990
9963         * lra-coalesce.c (lra_coalesce): Invalidate value for the result
9964         pseudo instead of inheritance ones.
9965
9966 2016-01-21  Bernd Edlinger  <bernd.edlinger@hotmail.de>
9967             Nick Clifton  <nickc@redhat.com>
9968
9969         PR target/69129
9970         PR target/69012
9971         * config/mips/mips.c (mips_compute_frame_info): Initialise
9972         args_size and hard_frame_pointer_offset fields of the frame
9973         structure before calling mips_global_pointer.
9974
9975 2016-01-21  David Edelsohn  <dje.gcc@gmail.com>
9976
9977         * configure.ac (gcc_cv_as_dwloc): Test support for debug frame section
9978         label reference.
9979         * configure: Regenerate.
9980
9981 2016-01-21  Richard Biener  <rguenther@suse.de>
9982
9983         * graphite-optimize-isl.c (get_schedule_map): Fix typo.
9984
9985 2016-01-21  Marcin Kościelnicki  <koriakin@0x04.net>
9986
9987         * config/s390/s390.c (s390_asm_declare_function_size): Add code
9988         to actually emit the .size directive.
9989
9990 2016-01-21   Stefan Sørensen  <stefan.sorensen@spectralink.com>
9991              Jakub Jelinek  <jakub@redhat.com>
9992
9993         PR target/69187
9994         PR target/65624
9995         * config/arm/arm-builtins.c (arm_expand_neon_builtin): Increase
9996         args array size by one to avoid buffer overflow.
9997
9998 2016-01-21  Marcin Kościelnicki  <koriakin@0x04.net>
9999
10000         * config/s390/s390.md (pool_section_start): Use switch_to_section
10001         to select proper read-only data section instead of hardcoding
10002         .rodata.
10003         (pool_section_end): Use switch_to_section to match the above.
10004
10005 2016-01-21  Richard Biener  <rguenther@suse.de>
10006
10007         PR tree-optimization/69378
10008         * tree-ssa-sccvn.c (dominated_by_p_w_unex): New function.
10009         (set_ssa_val_to): Use it for dominance checks taking into
10010         account not executable edges.
10011
10012 2016-01-21  Jakub Jelinek  <jakub@redhat.com>
10013
10014         PR c++/69355
10015         * tree-dfa.c (get_ref_base_and_extent): Use GET_MODE_BITSIZE (mode)
10016         for bitsize instead of GET_MODE_PRECISION (mode).
10017
10018 2016-01-20  Martin Sebor  <msebor@redhat.com>
10019
10020         PR c/52291
10021         * extend.texi (__sync Builtins): Clarify the semantics of
10022         __sync_fetch_and_OP built-ins on pointers.
10023         (__atomic Builtins): Same.
10024
10025 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
10026             Sebastian Pop  <s.pop@samsung.com>
10027
10028         * graphite-isl-ast-to-gimple.c (enum phi_node_kind): New.
10029         (class translate_isl_ast_to_gimple): Use phi_node_kind instead of bool.
10030         (is_valid_rename): Same.
10031         (translate_isl_ast_to_gimple::get_rename): Same.
10032         (translate_isl_ast_to_gimple::rename_all_uses): Same.
10033         (translate_isl_ast_to_gimple::rename_uses): Same.
10034         (get_new_name): Check for close_phi nodes.
10035         (copy_loop_phi_args): Use phi_node_kind.
10036         (translate_isl_ast_to_gimple::copy_loop_close_phi_args): Same.
10037         (translate_isl_ast_to_gimple::copy_cond_phi_args): Same.
10038
10039 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
10040             Sebastian Pop  <s.pop@samsung.com>
10041
10042         Revert commit r229783.
10043         * graphite-isl-ast-to-gimple.c (gcc_expression_from_isl_ast_expr_id):
10044         Remove use of parameter_rename_map.
10045         (copy_def): Remove.
10046         (copy_internal_parameters): Remove.
10047         (graphite_regenerate_ast_isl): Remove call to copy_internal_parameters.
10048         * sese.c (new_sese_info): Do not initialize parameter_rename_map.
10049         (free_sese_info): Do not free parameter_rename_map.
10050         (set_rename): Do not use parameter_rename_map.
10051         (rename_uses): Update call to set_rename.
10052         (graphite_copy_stmts_from_block): Do not use parameter_rename_map.
10053         * sese.h (parameter_rename_map_t): Remove.
10054         (struct sese_info_t): Remove field parameter_rename_map.
10055
10056 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
10057             Sebastian Pop  <s.pop@samsung.com>
10058
10059         * graphite-isl-ast-to-gimple.c: Fix comment.
10060         * graphite-scop-detection.c (defined_in_loop_p): New.
10061         (canonicalize_loop_closed_ssa): Do not add close phi nodes for SSA
10062         names defined in loop.
10063
10064 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
10065             Sebastian Pop  <s.pop@samsung.com>
10066
10067         * graphite-scop-detection.c (scop_detection::harmful_loop_in_region):
10068         Discard unstructured if-then-else regions.
10069
10070 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
10071             Sebastian Pop  <s.pop@samsung.com>
10072
10073         * graphite-sese-to-poly.c (set_scop_parameter_dim): Remove.
10074         (cleanup_loop_iter_dom): Remove.
10075         (build_loop_iteration_domains): Remove.
10076         (build_scop_context): Remove.
10077         (build_scop_iteration_domain): Remove.
10078         (add_loop_constraints): New.
10079         (build_iteration_domains): New.
10080         (build_poly_scop): Call build_iteration_domains.
10081
10082 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
10083             Sebastian Pop  <s.pop@samsung.com>
10084
10085         * graphite-scop-detection.c
10086         (scop_detection::harmful_loop_in_region): Free dom and loops.
10087         (scop_detection::loop_body_is_valid_scop): Free bbs.
10088
10089 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
10090             Sebastian Pop  <s.pop@samsung.com>
10091
10092         * graphite-scop-detection.c (record_loop_in_sese): New.
10093         (gather_bbs::before_dom_children): Call record_loop_in_sese.
10094         (build_scops): Remove call to build_sese_loop_nests.
10095         * sese.c (sese_record_loop): Remove.
10096         (build_sese_loop_nests): Remove.
10097         (new_sese_info): Remove region->loops.
10098         (free_sese_info): Same.
10099         * sese.h (sese_contains_loop): Same.
10100         (build_sese_loop_nests): Remove.
10101         (sese_contains_loop): Remove.
10102
10103 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
10104             Sebastian Pop  <s.pop@samsung.com>
10105
10106         * graphite-scop-detection.c (loop_is_valid_scop): Renamed
10107         loop_is_valid_in_scop.
10108         (scop_detection::harmful_stmt_in_region): Renamed
10109         harmful_loop_in_region.
10110         Call loop_is_valid_in_scop.
10111
10112 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
10113             Sebastian Pop  <s.pop@samsung.com>
10114
10115         * graphite-isl-ast-to-gimple.c (translate_isl_ast): Also handle
10116         isl_ast_node_mark.
10117
10118 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
10119             Sebastian Pop  <s.pop@samsung.com>
10120
10121         * graphite-poly.c (new_poly_bb): Remove use of PBB_IS_REDUCTION.
10122         * graphite.h (struct poly_bb): Remove field is_reduction.
10123         (PBB_IS_REDUCTION): Remove.
10124
10125 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
10126             Sebastian Pop  <s.pop@samsung.com>
10127
10128         * graphite-dependences.c (constrain_domain): Add call to isl_*_coalesce.
10129         (add_pdr_constraints): Same.
10130         (scop_get_reads): Same.
10131         (scop_get_must_writes): Same.
10132         (scop_get_may_writes): Same.
10133         (scop_get_original_schedule): Same.
10134         (extend_schedule): Same.
10135         (apply_schedule_on_deps): Same.
10136         (carries_deps): Same.
10137         (compute_deps): Same.
10138         (scop_get_dependences): Same.
10139         * graphite-isl-ast-to-gimple.c
10140         (translate_isl_ast_to_gimple::generate_isl_schedule): Same.
10141         * graphite-optimize-isl.c (get_schedule_for_band): Same.
10142         (get_schedule_for_band_list): Same.
10143         (get_schedule_map): Same.
10144         (apply_schedule_map_to_scop): Same.
10145         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
10146         (build_loop_iteration_domains): Same.
10147         (add_condition_to_pbb): Same.
10148         (add_param_constraints): Same.
10149         (pdr_add_memory_accesses): Same.
10150         (pdr_add_data_dimensions): Same.
10151
10152 2016-01-20  Sandra Loosemore  <sandra@codesourcery.com>
10153
10154         * doc/invoke.texi (Instrumentation Options): Clarify -mmpx linking
10155         requirements.
10156
10157 2016-01-20  Sandra Loosemore  <sandra@codesourcery.com>
10158
10159         * common.opt (feliminate-dwarf2-dups): Replace references to
10160         "DWARF 2" with just "DWARF".
10161         * config/ia64/ia64.opt (mdwarf2-asm): Likewise.
10162         * doc/extend.texi: Likewise.
10163         * doc/cpp.texi: Likewise.
10164         * doc/invoke.texi: Likewise.
10165         (Option Summary): Add -gdwarf to list of Debugging Options.
10166         (Debugging Options): Document -gdwarf.
10167         * doc/contrib.texi: Spell "DWARF" like that.
10168
10169 2016-01-21  Jakub Jelinek  <jakub@redhat.com>
10170
10171         * omp-low.c (expand_omp_target): Avoid -Wmaybe-uninitialized
10172         warning.  Fix up formatting.
10173
10174         PR middle-end/67653
10175         * gimplify.c (gimplify_asm_expr): Warn if it is too late to
10176         attempt to mark memory input operand addressable and
10177         call prepare_gimple_addressable in that case.  Don't adjust
10178         input_location for diagnostics, use error_at instead.
10179
10180 2016-01-20  Peter Bergner  <bergner@vnet.ibm.com>
10181
10182         * config/rs6000/ppc-auxv.h: New file.
10183         * config/rs6000/rs6000-builtin.def (cpu_init): Add new builtin.
10184         (cpu_is): Likewise.
10185         (cpu_supports): Likewise.
10186         * config/rs6000/rs6000.c: include "ppc-auxv.h".
10187         (cpu_is_info): New variable.
10188         (cpu_supports_info): Likewise.
10189         (tcb_verification_symbol): Likewise.
10190         (cpu_builtin_p): Likewise.
10191         (cpu_expand_builtin): New function.
10192         (rs6000_expand_ternop_builtin): Add support for CPU builtin functions.
10193         (rs6000_init_builtins): Likewise.
10194         (rs6000_elf_file_end): Emit HWCAP in TCB verification symbol.
10195         * config/rs6000/rs6000.h (TLS_REGNUM): New define.
10196         * configure.ac (gcc_cv_libc_provides_hwcap_in_tcb): New test.
10197         * configure: Regenerate.
10198         * config.in: Likewise.
10199         * doc/extend.texi (PowerPC Built-in Functions): Document
10200         __builtin_cpu_init, __builtin_cpu_is and __builtin_cpu_supports.
10201
10202 2016-01-20  David Edelsohn  <dje.gcc@gmail.com>
10203
10204         PR target/68609
10205         * config/rs6000/rs6000.c (rs6000_emit_swsqrt): Add vector sqrt
10206         domain check.
10207         * config/rs6000/vector.md (sqrt<mode>2): Call rs6000_emit_swsqrt
10208         for V4SFmode.
10209
10210 2016-01-20  Richard Henderson  <rth@redhat.com>
10211
10212         PR bootstrap/69343
10213         PR bootstrap/69339
10214         PR tree-opt/68964
10215         Revert:
10216         * tree.c (tm_define_builtin): New.
10217         (find_tm_vector_type): New.
10218         (build_tm_vector_builtins): New.
10219         (build_common_builtin_nodes): Call it.
10220
10221 2016-01-20  Christophe Lyon  <christophe.lyon@linaro.org>
10222
10223         * doc/sourcebuild.texi (arm_crypto_pragma_ok): Document new entry.
10224         (arm_fp_ok): Likewise.
10225         (arm_fp): Likewise.
10226         (arm_crypto): Likewise.
10227
10228 2016-01-20  Ilya Enkovich  <enkovich.gnu@gmail.com>
10229             Richard Biener  <rguenther@suse.de>
10230
10231         PR tree-optimization/69328
10232         * tree-vect-stmts.c (vect_is_simple_cond): Check compared
10233         vectors have same number of elements.
10234         (vectorizable_condition): Fix masked version recognition.
10235
10236 2016-01-20  Richard Biener  <rguenther@suse.de>
10237
10238         PR tree-optimization/69345
10239         * tree-ssa-sccvn.h (VN_INFO_RANGE_INFO): New inline function.
10240         (VN_INFO_PTR_INFO): Likewise.
10241         * tree-ssa-sccvn.c (set_ssa_val_to): Avoid clearing points-to
10242         info when it is equal between non-dominating SSA names.
10243         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
10244         Make sure to look at original SSA infos.
10245
10246 2016-01-20  Jeff Law  <law@redhat.com>
10247
10248         PR target/25114
10249         * config/m68k/predicates.md (pow2_m1_operand): New predicate
10250         extracted from ...
10251         (reg_or_pow2_m1_operand): Call pow2_m1_operand.
10252         (pc_or_label_operand): New predicate.
10253         * config/m68k/m68k.md: Add new peephole2 patterns for GTU/LEU
10254         tests for small integers that are 2^n - 1.
10255
10256 2016-01-20  Jonathan Wakely  <jwakely@redhat.com>
10257
10258         * doc/invoke.texi (Options Summary): Add '.' after @xref.
10259
10260 2016-01-19  Jeff Law  <law@redhat.com>
10261
10262         PR middle-end/69347
10263         * tree-ssa-threadbackwards.c
10264         (fsm_find_control_statement_thread_paths): Do not try to lookup
10265         FSM paths for SSA_NAMEs appearing in abnormal PHIs.
10266
10267 2016-01-20  Kugan Vivekanandarajah  <kuganv@linaro.org>
10268
10269         * doc/lto.texi: Remove text that says only Gold has linker plugin
10270         support.
10271
10272 2016-01-19  Eric Botcazou  <ebotcazou@adacore.com>
10273
10274         * dwarf2out.c (need_endianity_attribute_p): New inline predicate.
10275         (base_type_die): Add REVERSE parameter and attach DW_AT_endianity to
10276         the DIE accordingly.
10277         (modified_type_die): Add REVERSE parameter and pass it recursively,
10278         as well as to base_type_die.  Adjust presence check accordingly.
10279         (base_type_for_mode): Adjust call to modified_type_die.
10280         (add_type_attribute): Add REVERSE parameter and pass it to
10281         modified_type_die.
10282         (generic_parameter_die): Adjust call to add_type_attribute.
10283         (add_scalar_info): Likewise.
10284         (add_subscript_info): Likewise.
10285         (gen_array_type_die): Likewise.
10286         (gen_descr_array_type_die): Likewise.
10287         (gen_entry_point_die): Likewise.
10288         (gen_enumeration_type_die): Likewise.
10289         (gen_formal_parameter_die): Likewise.
10290         (gen_subprogram_die): Likewise.
10291         (gen_variable_die ): Likewise.
10292         (gen_const_die): Likewise.
10293         (gen_field_die): Likewise.
10294         (gen_pointer_type_die): Likewise.
10295         (gen_reference_type_die): Likewise.
10296         (gen_ptr_to_mbr_type_die): Likewise.
10297         (gen_inheritance_die): Likewise.
10298         (gen_subroutine_type_die): Likewise.
10299         (gen_typedef_die): Likewise.
10300         (force_type_die): Adjust call to modified_type_die.
10301
10302 2016-01-19  Sandra Loosemore  <sandra@codesourcery.com>
10303
10304         * doc/standards.texi: Copy-editing for grammar, markup, and sentence
10305         flow throughout the file.  Fix broken link to Objective-C 2.0
10306         documentation.
10307         * doc/invoke.texi: More copy-editing; fix numerous typos and spelling
10308         errors.
10309
10310 2016-01-19  Wilco Dijkstra  <wdijkstr@arm.com>
10311
10312         * ccmp.c (expand_ccmp_expr_1): Avoid spurious unused warnings.
10313
10314 2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
10315
10316         PR ipa/66223
10317         * ipa-devirt.c (is_cxa_pure_virtual_p): New function.
10318         (maybe_record_node): Record cxa_pure_virtual as the only possible
10319         target if there are not ohter candidates.
10320         (possible_polymorphic_call_target_p): Accept cxa_pure_virtual.
10321
10322 2016-01-19  Richard Biener  <rguenther@suse.de>
10323
10324         * hsa-gen.c (get_memory_order_name): Use MEMMODEL_ constants.
10325         (get_memory_order): Likewise.
10326
10327 2016-01-19  Kirill Yukhin  <kirill.yukhin@intel.com>
10328
10329         * tree-vect-stmts.c (vectorizable_store): Check
10330         rhs vectype.
10331
10332 2016-01-19  David Malcolm  <dmalcolm@redhat.com>
10333
10334         PR jit/68446
10335         * gcc.c (driver::decode_argv): Add call to
10336         init_opts_obstack before init_options_struct.
10337         * opts.c (init_opts_obstack): Remove idempotency.
10338         (init_options_struct): Replace call to init_opts_obstack
10339         with a gcc_assert to verify that it has already been called.
10340         * toplev.c (toplev::main): Add call to init_opts_obstack before
10341         calls to init_options_struct.
10342         (toplev::finalize): Move cleanup of opts_obstack next to
10343         cleanup of save_decoded_options, clearing the latter, and
10344         save_decoded_options_count.
10345
10346 2016-01-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10347
10348         PR target/69135
10349         * config/arm/vfp.md (l<vrint_pattern><su_optab><mode>si2): Set "conds"
10350         attribute to unconditional.  Remove %? from output template.
10351
10352 2015-01-19  Wilco Dijkstra  <wdijkstr@arm.com>
10353             Jiong Wang  <jiong.wang@arm.com>
10354
10355         * ccmp.c (expand_ccmp_expr_1): Cost the instruction sequences
10356         generated from different expand order.
10357
10358 2015-01-19  Wilco Dijkstra  <wdijkstr@arm.com>
10359
10360         * /config/aarch64/aarch64.c (aarch64_if_then_else_costs):
10361         Add support for CCMP costing.
10362
10363 2015-01-19  Wilco Dijkstra  <wdijkstr@arm.com>
10364
10365         * ccmp.c (ccmp_candidate_p): Remove integer-only restriction.
10366         * config/aarch64/aarch64.md (fccmp<mode>): New pattern.
10367         (fccmpe<mode>): Likewise.
10368         (fcmp): Rename to fcmp and globalize pattern.
10369         (fcmpe): Likewise.
10370         * config/aarch64/aarch64.c (aarch64_gen_ccmp_first): Add FP support.
10371         (aarch64_gen_ccmp_next): Add FP support.
10372
10373 2015-01-19  Wilco Dijkstra  <wdijkstr@arm.com>
10374
10375         * target.def (gen_ccmp_first): Update documentation.
10376         (gen_ccmp_next): Likewise.
10377         * doc/tm.texi (gen_ccmp_first): Update documentation.
10378         (gen_ccmp_next): Likewise.
10379         * ccmp.c (expand_ccmp_expr): Extract cmp_code from return value of
10380         expand_ccmp_expr_1.  Improve comments.
10381         * config/aarch64/aarch64.md (ccmp_and): Use if_then_else for ccmp.
10382         (ccmp_ior<mode>): Remove pattern.
10383         (cmp<mode>): Remove expand.
10384         (cmp): Globalize pattern.
10385         (cstorecc4): Use cc_register.
10386         (mov<mode>cc): Remove ccmp_cc_register check.
10387         * config/aarch64/aarch64.c (aarch64_get_condition_code_1):
10388         Simplify after removal of CC_DNE/* modes.
10389         (aarch64_ccmp_mode_to_code): Remove.
10390         (aarch64_print_operand): Remove 'K' case.  Merge 'm' and 'M' cases.
10391         In 'k' case use integer as condition.
10392         (aarch64_nzcv_codes): Remove inverted cases.
10393         (aarch64_code_to_ccmode): Remove.
10394         (aarch64_gen_ccmp_first): Use cmp pattern directly.  Return the correct
10395         comparison with CC register to be used in folowing CCMP/branch/CSEL.
10396         (aarch64_gen_ccmp_next): Use previous comparison and mode in CCMP
10397         pattern.  Return the comparison with CC register.  Invert conditions
10398         when bitcode is OR.
10399         * config/aarch64/aarch64-modes.def: Remove CC_DNE/* modes.
10400         * config/aarch64/predicates.md (ccmp_cc_register): Remove.
10401
10402 2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
10403
10404         * cgraphunit.c (cgraph_node::reset): Clear thunk info and
10405         instrumented_version.
10406
10407 2016-01-19  Richard Biener  <rguenther@suse.de>
10408
10409         PR tree-optimization/69336
10410         * tree-ssa-scopedtables.c (avail_expr_hash): Handle all
10411         handled components with get_ref_base_and_extent.
10412         (equal_mem_array_ref_p): Adjust.
10413
10414 2016-01-19  Jakub Jelinek  <jakub@redhat.com>
10415
10416         PR debug/65779
10417         * shrink-wrap.c: Include valtrack.h.
10418         (move_insn_for_shrink_wrap): Add DEBUG argument.  If
10419         MAY_HAVE_DEBUG_INSNS, call dead_debug_add on DEBUG_INSNs
10420         in between insn and where it will be moved to.  Call
10421         dead_debug_insert_temp.
10422         (prepare_shrink_wrap): Adjust caller.  Call dead_debug_local_init
10423         first and dead_debug_local_finish at the end.
10424         For uses and defs bitmap, handle all regs in between REGNO and
10425         END_REGNO, not just the first one.
10426
10427 2016-01-19  Richard Biener  <rguenther@suse.de>
10428
10429         PR tree-optimization/69352
10430         * tree-ssa-scopedtables.c (avail_expr_hash): Check for size == -1.
10431         (equal_mem_array_ref_p): Constrain size and max size properly.
10432         Compare the reverse flag.
10433
10434 2016-01-19  Bernd Schmidt  <bschmidt@redhat.com>
10435
10436         * ira.c (ira): Update regstat data if we deleted insns.
10437
10438 2016-01-19  Jakub Jelinek  <jakub@redhat.com>
10439
10440         PR rtl-optimization/68955
10441         PR rtl-optimization/64557
10442         * dse.c (record_store, check_mem_read_rtx): Don't call get_addr
10443         here.  Fix up formatting.
10444         * alias.c (get_addr): Handle VALUE +/- CONST_SCALAR_INT_P.
10445
10446 2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
10447
10448         PR lto/69133
10449         * cgraphunit.c (cgraph_node::expand_thunk): When forcing gimple
10450         assume that the node has body.
10451         * cgraph.c (cgraph_node::get_untransformed_body): Use gimple_body_p
10452         check.
10453
10454 2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
10455
10456         * lto-streamer-out.c (lto_output): Do not stream instrumentation
10457         thunks.
10458
10459 2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
10460
10461         * symtab.c (symtab_node::asm_name): Do not call printable name directly.
10462         (symtab_node::name): Report name as unnamed if DECL_NAME is not set.
10463
10464 2016-01-19  Martin Jambor  <mjambor@suse.cz>
10465             Martin Liska  <mliska@suse.cz>
10466             Michael Matz  <matz@suse.de>
10467
10468         * Makefile.in (OBJS): Add new source files.
10469         (GTFILES): Add hsa.c.
10470         * common.opt (disable_hsa): New variable.
10471         (-Whsa): New warning.
10472         * config.in (ENABLE_HSA): New.
10473         * configure.ac: Treat hsa differently from other accelerators.
10474         (OFFLOAD_TARGETS): Define ENABLE_OFFLOADING according to
10475         $enable_offloading.
10476         (ENABLE_HSA): Define ENABLE_HSA according to $enable_hsa.
10477         * doc/install.texi (Configuration): Document --with-hsa-runtime,
10478         --with-hsa-runtime-include, --with-hsa-runtime-lib and
10479         --with-hsa-kmt-lib.
10480         * doc/invoke.texi (-Whsa): Document.
10481         (hsa-gen-debug-stores): Likewise.
10482         * lto-wrapper.c (compile_images_for_offload_targets): Do not attempt
10483         to invoke offload compiler for hsa acclerator.
10484         * opts.c (common_handle_option): Determine whether HSA offloading
10485         should be performed.
10486         * params.def (PARAM_HSA_GEN_DEBUG_STORES): New parameter.
10487         * builtin-types.def (BT_FN_VOID_UINT_PTR_INT_PTR): New.
10488         (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_INT_INT): Removed.
10489         (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_PTR): New.
10490         * gimple-low.c (lower_stmt): Also handle GIMPLE_OMP_GRID_BODY.
10491         * gimple-pretty-print.c (dump_gimple_omp_for): Also handle
10492         GF_OMP_FOR_KIND_GRID_LOOP.
10493         (dump_gimple_omp_block): Also handle GIMPLE_OMP_GRID_BODY.
10494         (pp_gimple_stmt_1): Likewise.
10495         * gimple-walk.c (walk_gimple_stmt): Likewise.
10496         * gimple.c (gimple_build_omp_grid_body): New function.
10497         (gimple_copy): Also handle GIMPLE_OMP_GRID_BODY.
10498         * gimple.def (GIMPLE_OMP_GRID_BODY): New.
10499         * gimple.h (enum gf_mask): Added GF_OMP_PARALLEL_GRID_PHONY,
10500         GF_OMP_FOR_KIND_GRID_LOOP, GF_OMP_FOR_GRID_PHONY and
10501         GF_OMP_TEAMS_GRID_PHONY.
10502         (gimple_statement_omp_single_layout): Updated comments.
10503         (gimple_build_omp_grid_body): New function.
10504         (gimple_has_substatements): Also handle GIMPLE_OMP_GRID_BODY.
10505         (gimple_omp_for_grid_phony): New function.
10506         (gimple_omp_for_set_grid_phony): Likewise.
10507         (gimple_omp_parallel_grid_phony): Likewise.
10508         (gimple_omp_parallel_set_grid_phony): Likewise.
10509         (gimple_omp_teams_grid_phony): Likewise.
10510         (gimple_omp_teams_set_grid_phony): Likewise.
10511         (gimple_return_set_retbnd): Also handle GIMPLE_OMP_GRID_BODY.
10512         * omp-builtins.def (BUILT_IN_GOMP_OFFLOAD_REGISTER): New.
10513         (BUILT_IN_GOMP_OFFLOAD_UNREGISTER): Likewise.
10514         (BUILT_IN_GOMP_TARGET): Updated type.
10515         * omp-low.c: Include symbol-summary.h, hsa.h and params.h.
10516         (adjust_for_condition): New function.
10517         (get_omp_for_step_from_incr): Likewise.
10518         (extract_omp_for_data): Moved parts to adjust_for_condition and
10519         get_omp_for_step_from_incr.
10520         (build_outer_var_ref): Handle GIMPLE_OMP_GRID_BODY.
10521         (fixup_child_record_type): Bail out if receiver_decl is NULL.
10522         (scan_sharing_clauses): Handle OMP_CLAUSE__GRIDDIM_.
10523         (scan_omp_parallel): Do not create child functions for phony
10524         constructs.
10525         (check_omp_nesting_restrictions): Handle GIMPLE_OMP_GRID_BODY.
10526         (scan_omp_1_op): Checking assert we are not remapping to
10527         ERROR_MARK.  Also also handle GIMPLE_OMP_GRID_BODY.
10528         (parallel_needs_hsa_kernel_p): New function.
10529         (expand_parallel_call): Register apprpriate parallel child
10530         functions as HSA kernels.
10531         (grid_launch_attributes_trees): New type.
10532         (grid_attr_trees): New variable.
10533         (grid_create_kernel_launch_attr_types): New function.
10534         (grid_insert_store_range_dim): Likewise.
10535         (grid_get_kernel_launch_attributes): Likewise.
10536         (get_target_argument_identifier_1): Likewise.
10537         (get_target_argument_identifier): Likewise.
10538         (get_target_argument_value): Likewise.
10539         (push_target_argument_according_to_value): Likewise.
10540         (get_target_arguments): Likewise.
10541         (expand_omp_target): Call get_target_arguments instead of looking
10542         up for teams and thread limit.
10543         (grid_expand_omp_for_loop): New function.
10544         (grid_arg_decl_map): New type.
10545         (grid_remap_kernel_arg_accesses): New function.
10546         (grid_expand_target_kernel_body): New function.
10547         (expand_omp): Call it.
10548         (lower_omp_for): Do not emit phony constructs.
10549         (lower_omp_taskreg): Do not emit phony constructs but create for them
10550         a temporary variable receiver_decl.
10551         (lower_omp_taskreg): Do not emit phony constructs.
10552         (lower_omp_teams): Likewise.
10553         (lower_omp_grid_body): New function.
10554         (lower_omp_1): Call it.
10555         (grid_reg_assignment_to_local_var_p): New function.
10556         (grid_seq_only_contains_local_assignments): Likewise.
10557         (grid_find_single_omp_among_assignments_1): Likewise.
10558         (grid_find_single_omp_among_assignments): Likewise.
10559         (grid_find_ungridifiable_statement): Likewise.
10560         (grid_target_follows_gridifiable_pattern): Likewise.
10561         (grid_remap_prebody_decls): Likewise.
10562         (grid_copy_leading_local_assignments): Likewise.
10563         (grid_process_kernel_body_copy): Likewise.
10564         (grid_attempt_target_gridification): Likewise.
10565         (grid_gridify_all_targets_stmt): Likewise.
10566         (grid_gridify_all_targets): Likewise.
10567         (execute_lower_omp): Call grid_gridify_all_targets.
10568         (make_gimple_omp_edges): Handle GIMPLE_OMP_GRID_BODY.
10569         * tree-core.h (omp_clause_code): Added OMP_CLAUSE__GRIDDIM_.
10570         (tree_omp_clause): Added union field dimension.
10571         * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE__GRIDDIM_.
10572         * tree.c (omp_clause_num_ops): Added number of arguments of
10573         OMP_CLAUSE__GRIDDIM_.
10574         (omp_clause_code_name): Added name of OMP_CLAUSE__GRIDDIM_.
10575         (walk_tree_1): Handle OMP_CLAUSE__GRIDDIM_.
10576         * tree.h (OMP_CLAUSE_GRIDDIM_DIMENSION): New.
10577         (OMP_CLAUSE_SET_GRIDDIM_DIMENSION): Likewise.
10578         (OMP_CLAUSE_GRIDDIM_SIZE): Likewise.
10579         (OMP_CLAUSE_GRIDDIM_GROUP): Likewise.
10580         * passes.def: Schedule pass_ipa_hsa and pass_gen_hsail.
10581         * tree-pass.h (make_pass_gen_hsail): Declare.
10582         (make_pass_ipa_hsa): Likewise.
10583         * ipa-hsa.c: New file.
10584         * lto-section-in.c (lto_section_name): Add hsa section name.
10585         * lto-streamer.h (lto_section_type): Add hsa section.
10586         * timevar.def (TV_IPA_HSA): New.
10587         * hsa-brig-format.h: New file.
10588         * hsa-brig.c: New file.
10589         * hsa-dump.c: Likewise.
10590         * hsa-gen.c: Likewise.
10591         * hsa.c: Likewise.
10592         * hsa.h: Likewise.
10593         * toplev.c (compile_file): Call hsa_output_brig.
10594         * hsa-regalloc.c: New file.
10595
10596 2016-01-18  Jeff Law  <law@redhat.com>
10597
10598         PR tree-optimization/69320
10599         * tree-ssa-dom.c (record_edge_info): For comparisons against a boolean
10600         ranged object, do nothing if the RHS constant is not [0..1].
10601         (optimize_stmt): Comparing a boolean ranged object against a
10602         constant outside [0..1] results in a compile-time constant.
10603
10604         * tree-ssanames.c (ssa_name_has_boolean_range): Remove unnecessary
10605         test.
10606
10607 2016-01-18  Sandra Loosemore  <sandra@codesourcery.com>
10608
10609         * doc/invoke.texi (Invoking GCC): Add new section to menu.
10610         (Option Summary): Update to reflect new section and moved options.
10611         (C++ Dialect Options): Move -fstats to new section.
10612         (Debugging Options): Move all dump, statistics, and other GCC
10613         developer options to new section.  Rewrite section introduction
10614         and re-order remaining options to put the more basic ones first.
10615         (Optimization Options): Move -fira-verbose and -flto-report* to
10616         new section.
10617         (Developer Options): New section incorporating moved options.
10618         * doc/cppopts.texi (-dM): Update cross-reference.
10619
10620 2016-01-18  Richard Henderson  <rth@redhat.com>
10621
10622         PR target/69176
10623         * config/aarch64/aarch64.md (add<GPI>3): Move long immediate
10624         operands to pseudo only if CSE is expected.  Split long immediate
10625         operands only after reload, and for the stack pointer.
10626         (*add<GPI>3_pluslong): Remove.
10627         (*addsi3_aarch64, *adddi3_aarch64): Merge into...
10628         (*add<GPI>3_aarch64): ... here.  Add r/rk/Upl alternative.
10629         (*addsi3_aarch64_uxtw): Add r/rk/Upl alternative.
10630         (*add<GPI>3 peepholes): New.
10631         (*add<GPI>3 splitters): New.
10632         * config/aarch64/constraints.md (Upl): New.
10633         * config/aarch64/predicates.md (aarch64_pluslong_strict_immedate): New.
10634
10635 2016-01-18  Richard Biener  <rguenther@suse.de>
10636
10637         PR tree-optimization/69297
10638         * tree-vect-slp.c (vect_bb_slp_scalar_cost): Count each scalar
10639         stmt at most once.
10640         (vect_bb_vectorization_profitable_p): Clear visited flag again.
10641
10642 2016-01-18  Yuri Rumyantsev  <ysrumyan@gmail.com>
10643
10644         PR middle-end/68542
10645         * fold-const.c (fold_binary_op_with_conditional_arg): Bail out for case
10646         of mixind vector and scalar types.
10647         (fold_relational_const): Add handling of vector
10648         comparison with boolean result.
10649         * tree-cfg.c (verify_gimple_comparison): Add argument CODE, allow
10650         comparison of vector operands with boolean result for EQ/NE only.
10651         (verify_gimple_assign_binary): Adjust call for verify_gimple_comparison.
10652         (verify_gimple_cond): Likewise.
10653         * tree-vrp.c (extract_code_and_val_from_cond_with_ops): Modify check on
10654         valid type of VAL.
10655
10656 2016-01-18  Joseph Myers  <joseph@codesourcery.com>
10657
10658         * config/mips/mips.h (ISA_HAS_PAIRED_SINGLE): Require
10659         !TARGET_OCTEON.
10660
10661 2016-01-18  Richard Biener  <rguenther@suse.de>
10662
10663         PR middle-end/69308
10664         * gimple.c (gimple_could_trap_p_1): Handle GIMPLE_COND.
10665
10666 2016-01-18  Tom de Vries  <tom@codesourcery.com>
10667
10668         * passes.def: Add pass_parallelize_loops to pass_oacc_kernels.
10669
10670 2016-01-18  Tom de Vries  <tom@codesourcery.com>
10671
10672         * omp-low.c (set_oacc_fn_attrib): Make extern.
10673         * omp-low.h (set_oacc_fn_attrib): Declare.
10674         * tree-parloops.c (struct reduction_info): Add reduc_addr field.
10675         (create_call_for_reduction_1): Handle case that reduc_addr is non-NULL.
10676         (create_parallel_loop, gen_parallel_loop, try_create_reduction_list):
10677         Add and handle function parameter oacc_kernels_p.
10678         (find_reduc_addr, get_omp_data_i_param): New function.
10679         (ref_conflicts_with_region, oacc_entry_exit_ok_1)
10680         (oacc_entry_exit_single_gang, oacc_entry_exit_ok): New function.
10681         (parallelize_loops): Add and handle function parameter oacc_kernels_p.
10682         Calculate dominance info.  Skip loops that are not in a kernels region
10683         in oacc_kernels_p mode.  Skip inner loops of parallelized loops.
10684         (pass_parallelize_loops::execute): Call parallelize_loops with
10685         oacc_kernels_p argument.
10686         (pass_parallelize_loops::clone, pass_parallelize_loops::set_pass_param):
10687         New member function.
10688         (pass_parallelize_loops::bool oacc_kernels_p): New member var.
10689         * passes.def: Add argument to pass_parallelize_loops instantation.
10690
10691 2016-01-18  Tom de Vries  <tom@codesourcery.com>
10692
10693         * tree-parloops.c (pass_parallelize_loops::execute): Allow
10694         pass_parallelize_loops to be run outside the loop pipeline.
10695
10696 2016-01-18  Alan Lawrence  <alan.lawrence@arm.com>
10697
10698         * tree-scalar-evolution.c (follow_copies_to_constant): New.
10699         (analyze_initial_condition, analyze_scalar_evolution_1): Call previous.
10700
10701 2016-01-18  Alan Lawrence  <alan.lawrence@arm.com>
10702
10703         PR target/63679
10704         * tree-ssa-scopedtables.c (avail_expr_hash): Hash MEM_REF and ARRAY_REF
10705         using get_ref_base_and_extent.
10706         (equal_mem_array_ref_p): New.
10707         (hashable_expr_equal_p): Add call to previous.
10708
10709 2016-01-18  Alan Lawrence  <alan.lawrence@arm.com>
10710
10711         PR target/63679
10712         * tree-sra.c (disqualified_constants, constant_decl_p): New.
10713         (sra_initialize): Allocate disqualified_constants.
10714         (sra_deinitialize): Free disqualified_constants.
10715         (disqualify_candidate): Update disqualified_constants when appropriate.
10716         (create_access): Scan for constant-pool entries as we go along.
10717         (scalarizable_type_p): Add check against type_contains_placeholder_p.
10718         (maybe_add_sra_candidate): Allow constant-pool entries.
10719         (load_assign_lhs_subreplacements): Bind debug for constant pool vars.
10720         (initialize_constant_pool_replacements): New.
10721         (sra_modify_assign): Avoid mangling assignments created by previous,
10722         and don't generate writes into constant pool.
10723         (sra_modify_function_body): Call initialize_constant_pool_replacements.
10724
10725 2016-01-18  Ilya Enkovich  <enkovich.gnu@gmail.com>
10726
10727         * config/i386/i386.c (scalar_to_vector_candidate_p): Support
10728         andnot instruction.
10729         (scalar_chain::convert_op): Likewise.
10730         * config/i386/i386.md (*andndi3_doubleword): New.
10731
10732 2016-01-18  Richard Biener  <rguenther@suse.de>
10733
10734         PR tree-optimization/69170
10735         * tree-vect-slp.c (vect_build_slp_tree): Verify we are not
10736         building a vector from scalar results of a pattern stmt.
10737
10738 2016-01-18  Jakub Jelinek  <jakub@redhat.com>
10739
10740         * haifa-sched.c (autopref_multipass_init): Work around
10741         -Wmaybe-uninitialized warning.
10742
10743 2016-01-18  Thomas Preud'homme  <thomas.preudhomme@arm.com>
10744
10745         * config/arm/arm.c (thumb1_reorg): Check that the comparison is
10746         against the constant 0.
10747
10748 2016-01-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
10749
10750         PR tree-optimization/68799
10751         * gimple-ssa-strength-reduction.c (create_phi_basis): Directly
10752         look up phi candidates in the statement-candidate map.
10753         (phi_add_costs): Likewise.
10754         (record_phi_increments): Likewise.
10755         (phi_incr_cost): Likewise.
10756         (ncd_with_phi): Likewise.
10757         (all_phi_incrs_profitable): Likewise.
10758
10759 2016-01-17  Jakub Jelinek  <jakub@redhat.com>
10760
10761         * omp-low.c (mark_loops_in_oacc_kernels_region): Work around
10762         -Wmaybe-uninitialized warning.
10763
10764 2016-01-16  Sandra Loosemore  <sandra@codesourcery.com>
10765
10766         * doc/invoke.texi (Invoking GCC): Add new section to menu.
10767         (Option Summary): Update to reflect new section and moved options.
10768         (C++ Dialect Options): Move -fvtable-verify and related options.
10769         (Debugging Options): Move Sanitizer, Pointer Bounds Checker,
10770         and profiling-related options.
10771         (Optimization Options): Move profile generation options and
10772         -fstack-protector and related options.
10773         (Instrumentation Options): New section incorporating moved options.
10774         (Code Generation Options): Move -finstrument-functions and
10775         related options, -fstack-check, -fstack-limit*, and -fbounds-check.
10776
10777 2016-01-16  Tom de Vries  <tom@codesourcery.com>
10778
10779         * passes.def: Move pass_expand_omp_ssa out of pass_parallelize_loops.
10780
10781 2016-01-16  Tom de Vries  <tom@codesourcery.com>
10782
10783         * omp-low.c (expand_omp_atomic_fetch_op):  Release defs of update stmt.
10784
10785 2016-01-16  Richard Sandiford  <richard.sandiford@arm.com>
10786
10787         * hash-table.h (hash_table::empty): Turn into an inline wrapper
10788         that checks whether the table is already empty.  Rename the
10789         original implementation to...
10790         (hash_table::empty_slot): ...this new private function.
10791
10792 2016-01-15  David Malcolm  <dmalcolm@redhat.com>
10793
10794         PR diagnostic/68899
10795         * diagnostic-show-locus.c (layout::print_source_line): Move x
10796         offset of line until after call to
10797         get_line_width_without_trailing_whitespace.
10798
10799 2016-01-15  Jeff Law  <law@redhat.com>
10800
10801         PR tree-optimization/69270
10802         * tree-ssanames.c (ssa_name_has_boolean_range): Moved here from
10803         tree-ssa-dom.c.  Improve test for [0..1] ranve from VRP.
10804         * tree-ssa-dom.c (ssa_name_has_boolean_range): Remove.
10805         * tree-ssanames.h (ssa_name_has_boolean_range): Prototype.
10806         * tree-ssa-uncprop.c (associate_equivalences_with_edges): Use
10807         ssa_name_has_boolean_range and constant_boolean_node.
10808
10809 2016-01-15  Vladimir Makarov  <vmakarov@redhat.com>
10810
10811         PR rtl-optimization/69030
10812         * lra-spills.c (remove_pseudos): Check nrefs and make the function
10813         returning bool.
10814         (spill_pseudos): Delete debug insn for dead pseudo.
10815         (lra_spill): Initiate spill_hard_reg and slots memory separately.
10816
10817 2016-01-15  Jiong Wang  <jiong.wang@arm.com>
10818
10819         * config/aarch64/aarch64-builtins.c (aarch64_types_unopus_qualifiers):
10820         New.
10821         (TYPES_UNOPUS): Likewise.
10822         * config/aarch64/aarch64-simd-builtins.def (lbtruncuv2sf): Correct
10823         builtin type, from UNOP to UNOPUS.
10824         (lbtruncuv4sf): Likewise.
10825         (lbtruncuv2df): Likewise.
10826         (lrounduv2sf): Likewise.
10827         (lrounduv4sf): Likewise.
10828         (lrounduv2df): Likewise.
10829         (lroundusf): Likewise.
10830         (lroundusf): Likewise.
10831         (lceiluv2sf): Likewise.
10832         (lceiluv4sf): Likewise.
10833         (lceiluv2df): Likewise.
10834         (lceilusf): Likewise.
10835         (lceiludf): Likewise.
10836         (lflooruv2sf): Likewise.
10837         (lflooruv4sf): Likewise.
10838         (lflooruv2df): Likewise.
10839         (lfloorusf): Likewise.
10840         (lfloorudf): Likewise.
10841         (lfrintnuv2sf): Likewise.
10842         (lfrintnuv4sf): Likewise.
10843         (lfrintnuv2df): Likewise.
10844         (lfrintnusf): Likewise.
10845         (lfrintnudf): Likewise.
10846         * config/aarch64/arm_neon.h (vcvt_u32_f32): Remove unncessary type
10847         conversion.
10848         (vcvtq_u32_f32): Likewise.
10849         (vcvtq_u64_f64): Likewise.
10850         (vcvta_u32_f32): Likewise.
10851         (vcvtaq_u32_f32): Likewise.
10852         (vcvtaq_u64_f64): Likewise.
10853         (vcvtm_u32_f32): Likewise.
10854         (vcvtmq_u32_f32): Likewise.
10855         (vcvtmq_u64_f64): Likewise.
10856         (vcvtn_u32_f32): Likwise.
10857         (vcvtnq_u32_f32): Likewise.
10858         (vcvtnq_u64_f64): Likewise.
10859         (vcvtp_u32_f32): Likewise.
10860         (vcvtpq_u32_f32): Likewise.
10861         (vcvtpq_u64_f64): Likewise.
10862         (vcvtmd_u64_f64): Likewise.
10863         (vcvtms_u32_f32): Likewise.
10864         (vcvtad_u64_f64): Likewise.
10865         (vcvtas_u32_f32): Likewise.
10866         (vcvtnd_u64_f64): Likewise.
10867         (vcvtns_u32_f32): Likewise.
10868         (vcvtpd_u64_f64): Likewise.
10869         (vcvtps_u32_f32): Likewise.
10870
10871 2016-01-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10872
10873         * config/aarch64/aarch64.c (aarch64_if_then_else_costs): Handle
10874         CSEL of zero_extended registers.
10875
10876 2016-01-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10877
10878         * config/aarch64/aarch64.c (aarch64_rtx_costs, COMPARE case):
10879         Handle COMPARE of ZERO_EXTRACT against zero form of TST-immediate.
10880
10881 2016-01-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10882
10883         * config/aarch64/aarch64.c (aarch64_process_one_target_attr): Return
10884         false when argument string is not found in the attributes table
10885         at all.
10886
10887 2016-01-15  David Edelsohn  <dje.gcc@gmail.com>
10888
10889         PR target/68609
10890         * config/rs6000/rs6000.c (rs6000_emit_msub): Delete.
10891         (rs6000_emit_swsqrt): Convert to Goldschmidt's Algorithm
10892         * config/rs6000/rs6000.md (sqrt<mode>2): Limit swsqrt to high
10893         precision estimate.
10894
10895 2016-01-15  Richard Biener  <rguenther@suse.de>
10896
10897         PR tree-optimization/66856
10898         * tree-vect-loop.c (vect_transform_loop): Free SLP instances here.
10899         * tree-vect-slp.c (vect_free_slp_tree): Decrement stmt reference count.
10900         (vect_create_new_slp_node): Increment stmt reference count.
10901         (vect_get_and_check_slp_defs): Make sure stmts are nor already in
10902         an SLP tree before swapping operands.
10903         (vect_build_slp_tree): Likewise.
10904         (destroy_bb_vec_info): Free stmt info after SLP instances.
10905         * tree-vect-stmts.c (new_stmt_vec_info): Initialize reference count.
10906         * tree-vectorizer.h (struct _stmt_vec_info): Add num_slp_uses field.
10907         (STMT_VINFO_NUM_SLP_USES): New macro.
10908
10909 2016-01-15  Richard Biener  <rguenther@suse.de>
10910
10911         PR debug/69137
10912         * dwarf2out.c (add_linkage_name_raw): New function split out from ...
10913         (add_linkage_name): ... here.
10914         (gen_typedef_die): Use add_linkage_name_raw instead of
10915         add_linkage_attr to delay DECL_ASSEMBLER_NAME computation
10916         if necessary.
10917
10918 2016-01-15  Cesar Philippidis  <cesar@codesourcery.com>
10919
10920         * gimplify.c (oacc_default_clause): Decode reference and pointer
10921         types for both kernels and parallel regions.
10922
10923 2016-01-15  Richard Sandiford  <richard.sandiford@arm.com>
10924
10925         PR middle-end/69246
10926         * calls.c (emit_call_1): Force n_popped to zero for sibcalls.
10927
10928 2016-01-15  Ilya Enkovich  <enkovich.gnu@gmail.com>
10929
10930         * config/i386/i386.c (scalar_chain::compute_convert_gain): Fix typo.
10931         (convert_scalars_to_vector): Likewise.
10932
10933 2016-01-15  Jonathan Wakely  <jwakely@redhat.com>
10934
10935         * doc/extend.texi (Type Traits): Fix grammar.
10936
10937 2016-01-15  Martin Jambor  <mjambor@suse.cz>
10938
10939         * tree-inline.c (remap_decl): Use existing dclarations if
10940         remapping a type and prevent_decl_creation_for_types.
10941         (replace_locals_stmt): Do an initial remapping of non-VLA typed
10942         decls first.  Do real remapping with
10943         prevent_decl_creation_for_types set.
10944         * tree-inline.h (copy_body_data): New field
10945         prevent_decl_creation_for_types, moved remap_var_for_cilk to avoid
10946         padding.
10947
10948 2016-01-15  Dominik Vogt  <vogt@linux.vnet.ibm.com>
10949
10950         * config/s390/s390.opt (mmvcle): More verbose help text.
10951
10952 2016-01-15  Dominik Vogt  <vogt@linux.vnet.ibm.com>
10953
10954         * config/s390/s390.opt: Add period to -mzvector option text.
10955
10956 2016-01-15  Richard Biener  <rguenther@suse.de>
10957
10958         PR tree-optimization/68961
10959         * tree-vect-slp.c (vect_analyze_slp_cost_1): Consider cost
10960         of invariants in stores again.
10961
10962 2016-01-15  Sebastian Huber  <sebastian.huber@embedded-brains.de>
10963
10964         * config/arm/t-rtems: Add cortex-m7/fpv5-d16 multilib.
10965
10966 2016-01-15  Ilya Enkovich  <enkovich.gnu@gmail.com>
10967
10968         * config/i386/i386.c (ix86_expand_branch): Don't split
10969         DI mode xor instruction to SI mode.
10970
10971 2016-01-15  Jan Hubicka  <hubicka@ucw.cz>
10972
10973         PR ipa/68148
10974         * ipa-icf.c (sem_function::merge): Virtual functions may become
10975         reachable even if they address is not taken and there are no
10976         idrect calls.
10977
10978 2016-01-15  Jan Hubicka  <hubicka@ucw.cz>
10979
10980         * lto-streamer-out.c (subtract_estimated_size): New function.
10981         (get_symbol_initial_value): Use it.
10982
10983 2016-01-15  Christian Bruel  <christian.bruel@st.com>
10984
10985         PR target/65837
10986         * config/arm/arm-builtins.c (ARM_BUILTIN_CRYPTO_BASE): New enum tag.
10987         (arm_init_neon_builtins_internal): Rename arm_init_neon_builtins,
10988         (arm_init_crypto_builtins_internal): Rename arm_init_crypto_builtins.
10989         use add_builtin_function_ext_scope instead of add_builtin_function.
10990         (neon_set_p, neon_crypto_set_p): Remove.
10991         (arm_init_builtins): Always call arm_init_neon_builtins and
10992         arm_init_crypto_builtins.
10993         (arm_expand_builtin): Check that builtins are allowed for the arch.
10994         * config/arm/arm-protos.h (arm_init_neon_builtins): Remove prototype.
10995         * config/arm/arm.c (arm_valid_target_attribute_tree): Remove
10996         arm_init_neon_builtins call.
10997
10998 2016-01-15  Richard Biener  <rguenther@suse.de>
10999
11000         PR tree-optimization/69117
11001         * tree-ssa-sccvn.h (struct vn_ssa_aux): Add info member.
11002         * tree-ssa-sccvn.c (set_ssa_val_to): Save and adjust SSA name info
11003         of the leader conservatively.
11004         (free_scc_vn): Restore original SSA name infos.
11005
11006 2016-01-14  Jeff Law  <law@redhat.com>
11007
11008         PR tree-optimization/69270
11009         * tree-ssa-dom.c (ssa_name_has_boolean_range): If the type has a
11010         single bit of precision, verify it's also unsigned.
11011         (record_edge_info): Use constant_boolean_node rather than fold_convert
11012         to convert boolean_true/boolean_false to the right type.
11013
11014 2016-01-14  Richard Henderson  <rth@redhat.com>
11015
11016         PR rtl-opt/69014
11017         * loop-doloop.c (record_reg_sets): New.
11018         (doloop_optimize): Reject the transform if the sequence
11019         clobbers registers live at the end of the loop block.
11020         (doloop_optimize_loops): Enable df_live if needed.
11021
11022 2016-01-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
11023
11024         * config/rs6000/rs6000-builtin.def: Revert 2016-01-13 change.
11025         * gcc/config/rs6000/rs6000.c: Likewise.
11026         * gcc/config/rs6000/rs6000.h: Likewise.
11027         * gcc/config/rs6000/rs6000.md: Likewise.
11028         * gcc/doc/extend.texi: Likewsie.
11029
11030 2016-01-14  Jeff Law  <law@redhat.com>
11031
11032         * tree-ssa-dom.c (ssa_name_has_boolean_range): Fix comment
11033         typo.
11034
11035 2016-01-14  Richard Henderson  <rth@redhat.com>
11036
11037         PR c/69272
11038         PR tree-opt/68964
11039         * trans-mem.c (tm_log_emit_stmt): Fix unit size to bit size.
11040         * tree.c (build_tm_vector_builtins): Use builtin_decl_explicit_p
11041         instead of builtin_decl_declared_p to test for declaration.
11042
11043 2016-01-14  Nicklas Bo Jensen  <nbjensen@gmail.com>
11044
11045         * doc/loop.texi (Loop Analysis and Representation): Document
11046         loop_depth function.
11047
11048 2016-01-14  Tom de Vries  <tom@codesourcery.com>
11049
11050         PR tree-optimization/68773
11051         * omp-low.c (expand_omp_target): Don't set force_output.
11052         * varpool.c (varpool_node::get_create): Same.
11053         * lto-cgraph.c (input_offload_tables): Mark entries in offload_vars and
11054         offload_funcs with force_output.
11055
11056 2016-01-14  Jakub Jelinek  <jakub@redhat.com>
11057
11058         PR debug/69244
11059         * lra-eliminations.c (move_plus_up): Don't change anything if either
11060         the outer or inner subreg mode is not MODE_INT.
11061         * dwarf2out.c (mem_loc_descriptor): For SUBREG, if outer mode is
11062         integral <= DWARF2_ADDR_SIZE, convert to untyped afterwards.
11063
11064 2016-01-14  Alan Lawrence  <alan.lawrence@arm.com>
11065
11066         * doc/md.texi (reduc_smin_@var{m}, reduc_smax_@var{m},
11067         reduc_umin_@var{m}, reduc_umax_@var{m}, reduc_splus_@var{m},
11068         reduc_uplus_@var{m}): Remove.
11069         * expr.c (expand_expr_real_2): Remove expansion path for
11070         reduc_[us](min|max|plus) optabs.
11071         * optabs-tree.c (scalar_reduc_to_vector): Remove.
11072         * optabs-tree.h (scalar_reduc_to_vector): Remove.
11073         * optabs.def (reduc_smax_optab, reduc_smin_optab, reduc_splus_optab,
11074         reduc_umax_optab, reduc_umin_optab, reduc_uplus_optab): Remove.
11075         * tree-vect-loop.c (vectorizable_reduction): Remove test for
11076         reduc_[us](min|max|plus) optabs.
11077
11078 2016-01-14  Alan Lawrence  <alan.lawrence@arm.com>
11079
11080         * config/mips/mips-ps-3d.md (reduc_splus_v2sf): Remove.
11081         (reduc_plus_scal_v2sf): New.
11082         (reduc_smax_v2sf): Rename to...
11083         (reduc_smax_scal_v2sf): ...here, make result SFmode, add vec_extract.
11084         (reduc_smin_v2sf): Rename to...
11085         (reduc_smin_scal_v2sf): ...here, make result SFmode, add vec_extract.
11086
11087 2016-01-14  Jan Hubicka  <hubicka@ucw.cz>
11088
11089         * alias.c (compare_base_symbol_refs): New function.
11090         (rtx_equal_for_memref_p, base_alias_check, memrefs_conflict_p): Use
11091         it.
11092
11093 2016-01-14  Jakub Jelinek  <jakub@redhat.com>
11094
11095         PR middle-end/68146
11096         PR tree-optimization/69155
11097         * tree-complex.c: Include cfganal.h.
11098         (phis_to_revisit): New variable.
11099         (extract_component): Add phiarg_p argument.  Assert that returned
11100         SSA_NAME has non-NULL SSA_NAME_DEF_STMT unless phiarg_p is true.
11101         (update_phi_components): Partly rewrite to use loop over real/imag
11102         components instead of code duplication.  If extract_component returns
11103         SSA_NAME with NULL SSA_NAME_DEF_STMT, store SSA_NAME_VAR or
11104         create_tmp_reg into the PHI node instead, and mention the phi triplet
11105         in phis_to_revisit.
11106         (tree_lower_complex): Walk bbs in rpo order.  Adjust phis recorded
11107         in phis_to_revisit at the end.
11108
11109 2016-01-14  Richard Biener  <rguenther@suse.de>
11110
11111         PR tree-optimization/68060
11112         * tree-vect-loop.c (vect_is_simple_reduction): Check the
11113         outer loop reduction is only used in the inner loop before
11114         detecting a double reduction.
11115
11116 2016-01-14  Jakub Jelinek  <jakub@redhat.com>
11117
11118         PR target/68269
11119         * combine.c (expand_field_assignment): Punt if compute_mode is
11120         unsupported scalar mode.
11121
11122 2016-01-14  Richard Biener  <rguenther@suse.de>
11123
11124         PR tree-optimization/66856
11125         * tree-vect-slp.c (vect_build_slp_tree): Refactor to build
11126         SLP node only if it built successfully.
11127         (vect_analyze_slp_instance): Adjust.
11128
11129 2016-01-14  Jeff Law  <law@redhat.com>
11130
11131         PR tree-optimization/69270
11132         * tree-ssa-dom.c (ssa_name_has_boolean_range): New function.
11133         (record_edge_info): Use it.  Convert boolean_{true,false}_node
11134         to the type of op0.
11135
11136 2016-01-13  Jan Hubicka  <hubicka@ucw.cz>
11137
11138         PR ipa/66487
11139         * ipa-polymorphic-call.c (inlined_polymorphic_ctor_dtor_block_p):
11140         use block_ultimate_origin
11141         (noncall-stmt_may_be_vtbl_ptr_store): Likewise.
11142
11143 2016-01-13  Sandra Loosemore  <sandra@codesourcery.com>
11144
11145         * doc/invoke.texi (Submodel Options): Rename section to
11146         "Machine-Dependent Options" to better reflect its content.
11147         Rewrite introductory text to remove archaic CPU names.
11148         Update references.
11149
11150 2016-01-13  Sandra Loosemore  <sandra@codesourcery.com>
11151
11152         * doc/invoke.texi (Code Gen Options): Move section up in file,
11153         before target-specific options.  Update menu and option summary
11154         to reflect the new section ordering.
11155
11156 2016-01-13  Jonathan Wakely  <jwakely@redhat.com>
11157
11158         * doc/invoke.texi (C Dialect Options): Adjust -std default for C++.
11159         (C++ Dialect Options): Add cross-reference to -std option.
11160         * doc/standards.texi (C++ Language): Document C++14 support.
11161
11162 2016-01-13  Michael Meissner  <meissner@linux.vnet.ibm.com>
11163
11164         * config/rs6000/rs6000-builtin.def (BU_FLOAT128_2): Add support
11165         for pack/unpack functions for __ibm128.
11166         (PACK_IF): Likewise.
11167         (UNPACK_IF): Likewise.
11168
11169         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
11170         support for __ibm128 pack/unpack functions.
11171         (rs6000_invalid_builtin): Likewise.
11172         (rs6000_init_builtins): Likewise.
11173         (rs6000_opt_masks): Likewise.
11174
11175         * config/rs6000/rs6000.h (MASK_FLOAT128): Add short name.
11176         (RS6000_BTM_FLOAT128): Add support for __ibm128 pack/unpack
11177         functions
11178         (RS6000_BTM_COMMON): Likewise.
11179
11180         * config/rs6000/rs6000.md (f128_vsx): New mode attribute.
11181         (unpack<mode>): Use FMOVE128_FPR iterator instead of FMOVE128, to
11182         disallow __builtin_{pack,unpack}_longdouble if long double is IEEE
11183         128-bit floating point.  Add support for the double values to be
11184         in Altivec registers for TF/IF packing and unpacking, but restrict
11185         TD packing sub-fields to be FPR registers.  Don't allow overlapped
11186         register support for packing.  Allow pack inputs to be memory
11187         locations.  Don't build generator functions for unpack<mode>_dm
11188         and unpack<mode>_nodm.
11189         (unpack<mode>_dm): Likewise.
11190         (unpack<mode>_nodm): Likewise.
11191         (pack<mode>): Likewise.
11192
11193         * config/rs6000/rs6000-builtin.def (__builtin_pack_ibm128): Add
11194         built-in functions to pack/unpack explicit __ibm128 values.
11195         (__builtin_unpack_ibm128): Likewise.
11196
11197         * doc/extend.texi (PowerPC Built-in Functions): Document
11198         __builtin_pack_ibm128 and __builtin_unpack_ibm128.
11199
11200 2016-01-13  Bernd Schmidt  <bschmidt@redhat.com>
11201
11202         PR c/66208
11203         * c-common.c (check_function_nonnull): Remove unnecessary declaration.
11204         Add new arg loc and pass it down as context.
11205         (check_nonnull_arg): Don't mark ctx arg as unused. Use it as a pointer
11206         to the location to use for the warning.
11207         (check_function_arguments): New arg loc.  All callers changed.  Pass
11208         it to check_function_nonnull.
11209         * c-common.h (check_function_arguments): Adjust declaration.
11210
11211 2016-01-13  Jakub Jelinek  <jakub@redhat.com>
11212
11213         PR tree-optimization/69156
11214         * gimple.c (validate_type): Removed.
11215         (gimple_builtin_call_types_compatible_p): Use
11216         useless_type_conversion_p instead of validate_type.
11217         * value-prof.c (gimple_stringop_fixed_value): Fold
11218         icall_size to correct type.
11219
11220 2016-01-13  Jonathan Wakely  <jwakely@redhat.com>
11221
11222         * doc/extend.texi (__atomic Builtins): Clarify compare_exchange
11223         effects.
11224
11225 2016-01-13  Richard Henderson  <rth@redhat.com>
11226
11227         PR tree-opt/68964
11228         * target.def (builtin_tm_load, builtin_tm_store): Remove.
11229         * config/i386/i386.c (ix86_builtin_tm_load): Remove.
11230         (ix86_builtin_tm_store): Remove.
11231         (TARGET_VECTORIZE_BUILTIN_TM_LOAD): Remove.
11232         (TARGET_VECTORIZE_BUILTIN_TM_STORE): Remove.
11233         * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_TM_LOAD): Remove.
11234         (TARGET_VECTORIZE_BUILTIN_TM_STORE): Remove.
11235         * doc/tm.texi: Rebuild.
11236
11237         * gtm-builtins.def (BUILT_IN_TM_MEMCPY_RNWT): New.
11238         (BUILT_IN_TM_MEMCPY_RTWN): New.
11239         * trans-mem.c (tm_log_emit_stmt): Rearrange code for better
11240         fallback from vector to integer helpers.
11241         (build_tm_load): Handle vector types directly, instead of
11242         via target hook.
11243         (build_tm_store): Likewise.
11244         (expand_assign_tm): Prepare for register types not handled by
11245         the above.  Copy them to memory and use memcpy.
11246         * tree.c (tm_define_builtin): New.
11247         (find_tm_vector_type): New.
11248         (build_tm_vector_builtins): New.
11249         (build_common_builtin_nodes): Call it.
11250
11251 2016-01-13  Uros Bizjak  <ubizjak@gmail.com>
11252
11253         * config/i386/i386.h (TARGET_FLT_EVAL_METHOD): Return -1 for
11254         TARGET_SSE_MATH without TARGET_SSE2.  Rewrite.
11255
11256 2016-01-13  Tom de Vries  <tom@codesourcery.com>
11257
11258         PR tree-optimization/69169
11259         * tree-ssa-structalias.c (create_variable_info_for_1): Add and handle
11260         handled_struct_type param.
11261         (create_variable_info_for, intra_create_variable_infos): Call
11262         create_variable_info_for_1 with extra arg.
11263
11264 2016-01-13  Yvan Roux  <yvan.roux@linaro.org>
11265
11266         * config/arm/arm-arches.def: Remove spurious whitespace in "armv8.1-a"
11267         and "armv8.1-a+crc" entries.
11268
11269 2016-01-13  Alexander Fomin  <alexander.fomin@intel.com>
11270
11271         PR target/69228
11272         * config/i386/sse.md (define_expand "avx512pf_gatherpf<mode>sf"):
11273         Change first operand predicate from register_or_constm1_operand
11274         to register_operand.
11275         (define_expand "avx512pf_gatherpf<mode>df"): Likewise.
11276         (define_expand "avx512pf_scatterpf<mode>sf"): Likewise.
11277         (define_expand "avx512pf_scatterpf<mode>df"): Likewise.
11278         (define_insn "*avx512pf_gatherpf<mode>sf"): Remove.
11279         (define_insn "*avx512pf_gatherpf<mode>df"): Likewise.
11280         (define_insn "*avx512pf_scatterpf<mode>sf"): Likewise.
11281         (define_insn "*avx512pf_scatterpf<mode>df"): Likewise.
11282         * config/i386/i386.c (ix86_expand_builtin): Remove first operand
11283         comparison with constm1_rtx from vec_prefetch_gen part.
11284
11285 2016-01-13  Richard Biener  <rguenther@suse.de>
11286
11287         PR tree-optimization/69013
11288         * tree-ssa-uninit.c (prune_uninit_phi_opnds_in_unrealizable_paths):
11289         Exchange assert for a test.
11290
11291 2016-01-13  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
11292
11293         PR target/69247
11294         * config/s390/s390.md (bswaphi splitter): Use simplify_gen_subreg.
11295
11296 2016-01-13  Richard Biener  <rguenther@suse.de>
11297
11298         PR tree-optimization/69242
11299         * tree-ssa-sccvn.c (visit_reference_op_load): Replace bogus
11300         assert with a check.
11301
11302 2016-01-13  Richard Biener  <rguenther@suse.de>
11303
11304         PR tree-optimization/69186
11305         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
11306         Properly guard vect_update_misalignment_for_peel call.
11307
11308 2016-01-12  Jeff Law  <law@redhat.com>
11309
11310         PR tree-optimization/pr67755
11311         * tree-ssa-threadupdate.c (struct ssa_local_info_t): Add new field
11312         "need_profile_correction".
11313         (thread_block_1): Initialize new field to false by default.  If we
11314         have multiple thread paths through a common joiner to different
11315         final targets, then set new field to true.
11316         (compute_path_counts): Only do count adjustment when it's really
11317         needed.
11318
11319 2016-01-12  Sandra Loosemore  <sandra@codesourcery.com>
11320
11321         * doc/invoke.texi (Spec Files): Move section down in file, past
11322         all command-line option descriptions.
11323
11324 2016-01-12  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11325
11326         PR middle-end/54809
11327         * doc/gty.texi: Remove documentation of mark_hook.
11328         * gengtype.c (struct write_types_data): Remove code to support
11329         mark_hook attribute.
11330         (walk_type): Likewise.
11331         (write_func_for_structure): Likewise.
11332
11333 2016-01-12  Sandra Loosemore  <sandra@codesourcery.com>
11334
11335         * doc/invoke.texi (Option Summary) Move -no-canonical-prefixes to
11336         Directory Options, and -specs= to Overall Options.
11337         (Overall Options): Adjust similarly.  Reorder to group related
11338         options together.  Make -specs= cross-reference the spec file details.
11339         (Directory Options): Adjust similarly.
11340
11341 2016-01-12  Jeff Law  <law@redhat.com>
11342
11343         * tree-ssa-threadupdate.c: Various whitespace and typo fixes.
11344
11345 2016-01-12  Olivier Hainque  <hainque@adacore.com>
11346
11347         * gcc.c (spec_undefvar_allowed): New global.
11348         (process_command): Set to true when running for --version or --help,
11349         alone or together.
11350         (getenv_spec_function): When the variable is not defined, use the
11351         variable name as the variable value if we're allowed not to issue
11352         a fatal error.
11353
11354 2016-01-12  Bin Cheng  <bin.cheng@arm.com>
11355
11356         PR tree-optimization/68911
11357         * tree-vrp.c (adjust_range_with_scev): Check overflow in range
11358         information computed for expression "init + nit * step".
11359
11360 2016-01-12  Sandra Loosemore  <sandra@codesourcery.com>
11361
11362         * doc/invoke.texi (Invoking GCC): Copy-edit.  Incorporate information
11363         about name of GCC executable.  Remove deleted node from menu.
11364         (Directory Options) <-B>: Remove cross-reference to deleted node.
11365         (Target Options): Delete section.
11366
11367 2016-01-12  Christian Bruel  <christian.bruel@st.com>
11368
11369         PR target/69180
11370         * config/arm/arm-c.c (arm_pragma_target_parse): Set NODE_CONDITIONAL
11371         for __ARM_NEON_FP, __ARM_FP, _ARM_FEATURE_LDREX.
11372
11373 2016-01-12  Jakub Jelinek  <jakub@redhat.com>
11374
11375         PR target/69198
11376         * config/i386/i386.c (ix86_expand_special_args_builtin): Ensure
11377         aligned_mem is properly set for AVX512-VL floating point masked
11378         stores.
11379
11380         PR target/69175
11381         * ifcvt.c (cond_exec_process_if_block): When removing the last
11382         insn from then_bb, remove also any possible barriers that follow it.
11383
11384 2016-01-12  H.J. Lu  <hongjiu.lu@intel.com>
11385
11386         PR target/68456
11387         PR target/69226
11388         * config/i386/iamcu.h (SIZE_TYPE): New macro.
11389         (PTRDIFF_TYPE): Likewise.
11390         (WCHAR_TYPE): Likewise.
11391         (WCHAR_TYPE_SIZE): Likewise.
11392         (STDINT_LONG32): Likewise.
11393
11394 2016-01-12  Richard Biener  <rguenther@suse.de>
11395
11396         PR tree-optimization/69053
11397         * tree-vect-loop.c (get_initial_def_for_reduction): Properly
11398         convert initial value for cond reductions.
11399
11400 2016-01-12  Richard Biener  <rguenther@suse.de>
11401
11402         PR tree-optimization/69007
11403         * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Move
11404         widen_sum after dot_prod and sad.
11405
11406 2016-01-12  Richard Biener  <rguenther@suse.de>
11407
11408         PR tree-optimization/69168
11409         * tree-vect-loop.c (vect_analyze_loop_2): Reset both main and
11410         pattern stmt SLP type.
11411         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Patterns may
11412         end up unused so cope with that case.
11413
11414 2016-01-12  Richard Biener  <rguenther@suse.de>
11415
11416         PR tree-optimization/69157
11417         * tree-vect-stmts.c (vectorizable_mask_load_store): Check
11418         stmts def type only during analyze phase.
11419         (vectorizable_call): Likewise.
11420         (vectorizable_simd_clone_call): Likewise.
11421         (vectorizable_conversion): Likewise.
11422         (vectorizable_assignment): Likewise.
11423         (vectorizable_shift): Likewise.
11424         (vectorizable_operation): Likewise.
11425         (vectorizable_store): Likewise.
11426         (vectorizable_load): Likewise.
11427
11428 2016-01-12  Richard Biener  <rguenther@suse.de>
11429
11430         PR tree-optimization/69174
11431         * tree-vect-stmts.c (vect_mark_relevant): Remove excessive vertical
11432         space.
11433         (vectorizable_load): Properly compute the number of loads needed
11434         for permuted strided SLP loads and do not spuriously assign
11435         to SLP_TREE_VEC_STMTS.
11436
11437 2016-01-12  Andris Pavenis  <andris.pavenis@iki.fi>
11438
11439         * config/i386/djgpp.h (PREFERRED_DEBUGGING_TYPE): Define to DWARF2
11440         (TARGET_ASM_OUTPUT_IDENT): Define to default_asm_output_ident_directive
11441         (MD_EXEC_PREFIX): Remove.
11442         (MD_STARTFILE_PREFIX) Removee.
11443         (FILE_NAME_ABSOLUTE_P): Remove.
11444         (CPP_SPEC): Do not read macros from sys/version.h.
11445         (LINK_COMMAND_SPEC): Remove.
11446         (LOCAL_INCLUDE_DIR): Remove.
11447         (TARGET_ASM_NAMED_SECTION): Define to i386_djgpp_asm_named_section
11448         (TARGET_OS_CPP_BUILTINS): Add DJGPP (non ISO only), __DJGPP, __DJGPP__, unix.
11449         (POST_LINK_SPEC): Define to invoke stubify after linker
11450         (LIBSTDCXX): Remove define
11451         (DBX_REGISTER_NUMBER): Define to svr4_dbx_register_map.
11452         (DEFAULT_PCC_STRUCT_RETURN): Define to 1.
11453         (SUBTARGET_OVERRIDE_OPTIONS): Remove warning about -mbnu2210.
11454         (SUBTARGET_OVERRIDE_OPTIONS): Ignore -fPIC and generate message.
11455         (SUBTARGET_OVERRIDE_OPTIONS): Default to DWARF2 debugging info.
11456         (IX86_MAYBE_NO_LIBGCC_TFMODE): Remove.
11457         (i386_djgpp_asm_named_section): Add propotype of new procedure
11458
11459         * config/i386/xm-djgpp.h (NATIVE_SYSTEM_HEADER_DIR): Define.
11460         (MD_EXEC_PREFIX): Define (moved from config/i386/djgpp.h).
11461         (STANDARD_STARTFILE_PREFIX_1): Define (moved from MD_STARTFILE_PREFIX
11462         in config/i386/djgpp.h).
11463         (STANDARD_STARTFILE_PREFIX_2): Define identical to
11464         STANDARD_STARTFILE_PREFIX_1.
11465         (LOCAL_INCLUDE_DIR): Define (moved from config/i386/djgpp.h).
11466         (GCC_DRIVER_HOST_INITIALIZATION): Fix reporting fatal
11467         installation errors.
11468         (MAX_OFILE_ALIGNMENT): Define to 128.
11469         (HAVE_FTW_H): Undefine as DJGPP do not have nftw, but have ftw.h.
11470
11471         * config/i386/djgpp.c: New file. Add implementation of
11472         i386_djgpp_asm_named_section.
11473
11474         * config/i386/djgpp.opt: Remove obsolete option -mbnu210.
11475
11476         * config/i386/t-djgpp: New file. Add djgpp.o to EXTRA_OBJS.
11477         Add rule for building djgpp.o.
11478
11479 2016-01-11  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
11480
11481         * config/rs6000/rs6000.c (v2df_reduction_p): New function.
11482         (rtx_is_swappable_p): Reductions are swappable.
11483         (insn_is_swappable_p): V2DF reductions are swappable.
11484
11485 2016-01-11  John David Anglin  <danglin@gcc.gnu.org>
11486
11487         * config/pa/pa.c (pa_emit_move_sequence): Handle floating point
11488         reloads for other unsupported memory operands.
11489
11490 2016-01-12  Kugan Vivekanandarajah  <kuganv@linaro.org>
11491             Jim Wilson  <jim.wilson@linaro.org>
11492
11493         PR target/69194
11494         * config/arm/arm-builtins.c (arm_expand_neon_args): Call
11495         copy_to_mode_reg instead of force_reg.
11496
11497 2016-01-11  H.J. Lu  <hongjiu.lu@intel.com>
11498
11499         PR target/69225
11500         * config/i386/i386.h (TARGET_FLT_EVAL_METHOD): Set to 2 only if
11501         TARGET_80387 is true.
11502
11503 2016-01-11  Jakub Jelinek  <jakub@redhat.com>
11504
11505         PR target/69071
11506         * lra-eliminations.c (move_plus_up): Only move plus up
11507         if subreg of the constant can be simplified into constant
11508         and use the simplified subreg of the constant instead of
11509         the original constant.
11510
11511         * fold-const.c (fold_convertible_p): Don't return true
11512         for conversion of VECTOR_TYPE to same sized integral type.
11513         (fold_convert_loc): Fix up formatting.  Fold conversion of
11514         VECTOR_TYPE to same sized integral type using VIEW_CONVERT_EXPR
11515         instead of NOP_EXPR.
11516
11517         PR tree-optimization/69214
11518         * tree-vrp.c (simplify_cond_using_ranges): Don't propagate
11519         innerop into a comparison if SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
11520         Formatting fix.
11521
11522         PR tree-optimization/69207
11523         * tree-vect-slp.c (vect_get_constant_vectors): For
11524         VECTOR_BOOLEAN_TYPE_P, assert op has integral type instead of
11525         fold_convertible_p to vector_type's element type, and always
11526         use VCE for non-VECTOR_BOOLEAN_TYPE_P.
11527
11528 2016-01-11  Richard Biener  <rguenther@suse.de>
11529
11530         PR tree-optimization/69173
11531         * tree-vect-loop.c (vect_fixup_scalar_cycles_with_patterns): Only
11532         fixup the cycle if all stmts are in a pattern.
11533
11534 2016-01-11  Uros Bizjak  <ubizjak@gmail.com>
11535
11536         PR middle-end/68999
11537         * alias.c (base_alias_check): Move check for addresses with
11538         alignment ANDs before the call for compare_base_decls.
11539         (memrefs_conflict_p): Return -1 for different decls
11540         that went through alignment adjustments.
11541
11542 2016-01-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11543
11544         PR rtl-optimization/68796
11545         * config/aarch64/aarch64.md (*and<mode>_compare0): New pattern.
11546         * config/aarch64/aarch64.c (aarch64_select_cc_mode): Handle HImode
11547         and QImode comparisons against zero with CC_NZmode.
11548         * config/aarch64/iterators.md (short_mask): New mode_attr.
11549
11550 2016-01-11  H.J. Lu  <hongjiu.lu@intel.com>
11551
11552         * config/i386/sse.md (<avx512>_load<mode>_mask): Remove snprintf.
11553         (<avx512>_store<mode>_mask): Likewise.
11554
11555 2016-01-11  Bernd Schmidt  <bschmidt@redhat.com>
11556             Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11557
11558         PR rtl-optimization/68841
11559         * ifcvt.c (struct noce_if_info): Add orig_x field.
11560         (bbs_ok_for_cmove_arith): Add to_rename parameter.
11561         Don't record conflicts on to_rename if it's present.
11562         Allow memory destinations in sets.
11563         (noce_try_cmove_arith): Call bbs_ok_for_cmove_arith even on simple
11564         blocks, passing orig_x to the checks.
11565         (noce_process_if_block): Set if_info->orig_x appropriately.
11566
11567 2016-01-11  Tom de Vries  <tom@codesourcery.com>
11568
11569         PR tree-optimization/69069
11570         * tree-parloops.c (create_parallel_loop): Add missing phi args.
11571
11572 2016-01-11  Yuri Rumyantsev  <ysrumyan@gmail.com>
11573
11574         PR rtl-optimization/68920
11575         * config/i386/i386.c (ix86_option_override_internal): Restrict number
11576         of conditional moves for  RTL if-conversion to 1 for
11577         TARGET_ONE_IF_CONV_INSN.
11578         * config/i386/i386.h (TARGET_ONE_IF_CONV_INSN): New macros.
11579         * config/i386/x86-tune.def (X86_TUNE_ONE_IF_CONV_INSN): New macros.
11580         * params.def (PARAM_MAX_RTL_IF_CONVERSION_INSNS) : Introduce new
11581         parameter to restirct number of conditional moves for
11582         RTL if-conversion.
11583         * doc/invoke.texi (max-rtl-if-conversion-insns): Document it.
11584         * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Limit number of
11585         conditionl moves.
11586
11587 2016-01-11  Alexandre Oliva  <aoliva@redhat.com>
11588
11589         PR bootstrap/69123
11590         * var-tracking.c (drop_overlapping_mem_locs): Operate on all
11591         onepart vars.  Fix typo in comment.  Fix reversed condition in
11592         unshare test.
11593         (dataflow_set_remove_mem_locs): Operate on all onepart vars.
11594
11595         PR bootstrap/69123
11596         * var-tracking.c (dump_onepart_variable_differences): New.
11597         (dataflow_set_different): If a detailed dump is requested,
11598         delay early returns and dump differences between onepart
11599         variables present before and after, and added variables.
11600
11601 2016-01-11  Ilya Enkovich  <enkovich.gnu@gmail.com>
11602
11603         PR target/69010
11604         * expr.c (expand_expr_real_1): For boolean vector constants
11605         with a scalar mode use const_scalar_mask_from_tree.
11606         (const_scalar_mask_from_tree): New.
11607         * optabs.c (expand_vec_cond_mask_expr): Use mask mode
11608         assigned to a mask type to handle constants.
11609
11610 2016-01-11  Martin Jambor  <mjambor@suse.cz>
11611
11612         PR ipa/69044
11613         * ipa-cp.c (estimate_local_effects): Do not clone for removal of
11614         useless parameters if we cannot change function signature.
11615
11616 2016-01-11  Martin Jambor  <mjambor@suse.cz>
11617
11618         PR ipa/66616
11619         * cgraphclones.c (duplicate_thunk_for_node): Copy can_change_signature
11620         flag.
11621
11622 2016-01-11  Tom de Vries  <tom@codesourcery.com>
11623
11624         PR tree-optimization/69109
11625         * tree-parloops.c (try_transform_to_exit_first_loop_alt): Don't allow
11626         latch with phi.
11627
11628 2016-01-11  Tom de Vries  <tom@codesourcery.com>
11629
11630         PR tree-optimization/69108
11631         * tree-parloops.c (gather_scalar_reductions): Handle case that outer phi
11632         res is not used in a phi.
11633
11634 2016-01-11  Yury Gribov  <y.gribov@samsung.com>
11635
11636         PR 67425
11637         * common.opt (frandom-seed): Fix parameter name.
11638         * doc/invoke.texi (frandom-seed): Ditto and describe parameter.
11639
11640 2016-01-11  Tom de Vries  <tom@codesourcery.com>
11641
11642         PR tree-optimization/69058
11643         * tree-parloops.c (pass_parallelize_loops::execute): Return 0 if libgomp
11644         not supported.
11645
11646 2016-01-11  Andrew Burgess  <andrew.burgess@embecosm.com>
11647
11648         * config/arc/arc.opt (mdiv-rem): Add period to the end.
11649         (mcode-density): Likewise.
11650
11651 2016-01-10  Tom de Vries  <tom@codesourcery.com>
11652
11653         PR tree-optimization/69062
11654         * tree-parloops.c (loop_has_phi_with_address_arg): New function.
11655         (parallelize_loops): Don't paralelize loop that has phi with address
11656         arg.
11657
11658 2016-01-10  Tom de Vries  <tom@codesourcery.com>
11659
11660         PR tree-optimization/69039
11661         * tree-parloops.c (try_create_reduction_list): Only allow single exit
11662         phi for reduction.
11663
11664 2016-01-09  John David Anglin  <danglin@gcc.gnu.org>
11665
11666         PR middle-end/68743
11667         * match.pd: Require target has function_c99_misc before doing
11668         truncl(extend(x)) and trunc(extend(x)) -> extend(truncf(x)), etc.
11669
11670 2016-01-09  Gerald Pfeifer  <gerald@pfeifer.com>
11671
11672         * configure.ac (isl_options_set_schedule_serialize_sccs): Also
11673         use GMPINC.
11674         * configure: Regenerate.
11675
11676 2016-01-09  Jakub Jelinek  <jakub@redhat.com>
11677
11678         PR middle-end/50865
11679         PR tree-optimization/69097
11680         * fold-const.h (expr_not_equal_to): New prototype.
11681         * fold-const.c: Include stringpool.h and tree-ssanames.h.
11682         (expr_not_equal_to): New function.
11683         * match.pd (X % -Y is the same as X % Y): Don't optimize
11684         unless X is known not to be equal to minimum or Y is known
11685         not to be equal to -1.
11686         * tree-vrp.c (simplify_div_or_mod_using_ranges): Add GSI argument.
11687         fold TRUNC_MOD_EXPR if the second argument is not a power of two.
11688         (simplify_stmt_using_ranges): Adjust caller.
11689         (vrp_finalize): Call set_value_range on SSA_NAMEs before calling
11690         substitute_and_fold.
11691
11692 2016-01-09  Jan Hubicka  <hubicka@ucw.cz>
11693
11694         * ipa-icf.c (sem_item_optimizer::merge_classes): Do not ICE on VAR_DECL
11695         w/o DECL_NAME.
11696
11697 2016-01-08  Jakub Jelinek  <jakub@redhat.com>
11698
11699         PR tree-optimization/69167
11700         * gimple-fold.c (replace_stmt_with_simplification): Also punt if
11701         new SSA_NAME_OCCURS_IN_ABNORMAL_PHI SSA_NAMEs appear in operands of
11702         ops[0] comparison.
11703         * gimple-match-head.c (maybe_push_res_to_seq): Likewise.
11704
11705 2016-01-08  Alan Lawrence  <alan.lawrence@arm.com>
11706             Richard Biener  <rguenther@suse.de>
11707
11708         PR tree-optimization/68707
11709         * tree-vect-slp.c (vect_analyze_slp_instance): Cancel permuted SLP
11710         instances that can be handled via vect_load_lanes.
11711
11712 2016-01-08  Uros Bizjak  <ubizjak@gmail.com>
11713
11714         * symtab.c (symtab_node::equal_address_to): Return -1 instead of 2
11715         if we can't determine address equivalence.
11716         * alias.c (compare_base_decl): Update for changed return value of
11717         symtab_node::equal_address_to.
11718
11719 2016-01-08  Jason Merrill  <jason@redhat.com>
11720
11721         PR c++/68983
11722         PR c++/67557
11723         * function.c (assign_temp): Guard against TREE_ADDRESSABLE types here.
11724         * expr.c (store_field): Not here.
11725         * tree-cfgcleanup.c (fixup_noreturn_call): Don't clear LHS of a
11726         call with TREE_ADDRESSABLE type.
11727         * tree-cfg.c (verify_gimple_call): Adjust.
11728
11729 2016-01-08  Olivier Hainque  <hainque@adacore.com>
11730
11731         * config/vxworks.h (VXWORKS_LIBGCC_SPEC): Don't link shared RTPs with
11732         libc_internal.
11733
11734 2016-01-08  Alan Lawrence  <alan.lawrence@arm.com>
11735
11736         * gcc.target/rs6000/paired.md (reduc_smax_v2sf): Rename to...
11737         (reduc_smax_scal_v2sf): ...here, make result SFmode, extract element.
11738         (reduc_smin_v2sf): Rename to...
11739         (reduc_smin_scal_v2sf): ...here, make result SFmode, extract element.
11740         (reduc_splus_v2sf): Rename to...
11741         (reduc_plus_scal_v2sf): ...here, make result SFmode, extract element.
11742
11743 2016-01-08  Jakub Jelinek  <jakub@redhat.com>
11744
11745         PR tree-optimization/69162
11746         * gimplify.c (gimplify_va_arg_expr): Encode original type of
11747         valist argument in another argument.
11748         (gimplify_modify_expr): Adjust for the above change.  Cleanup.
11749         * tree-stdarg.c (expand_ifn_va_arg_1): Use new 3rd argument
11750         to determine the va_list type, build a MEM_REF instead of
11751         build_fold_indirect_ref.
11752
11753         PR tree-optimization/69172
11754         * gimple-fold.c (gimple_fold_builtin_memory_chk): Pass type to
11755         gimple_build.
11756
11757 2016-01-08  Thomas Preud'homme  <thomas.preudhomme@arm.com>
11758
11759         PR tree-optimization/67781
11760         * tree-ssa-math-opts.c (find_bswap_or_nop): Zero out bytes in cmpxchg
11761         and cmpnop in two steps: first the ones not accessed in original
11762         gimple expression in a endian independent way and then the ones not
11763         accessed in the final result in an endian-specific way.
11764
11765 2016-01-08  Jakub Jelinek  <jakub@redhat.com>
11766
11767         PR tree-optimization/69083
11768         * tree-vect-slp.c (vect_get_constant_vectors): For
11769         VECTOR_BOOLEAN_TYPE_P assert op is fold_convertible_p to vector_type's
11770         element type.  If op is fold_convertible_p to vector_type's element
11771         type, use NOP_EXPR instead of VCE.
11772
11773 2016-01-08  Segher Boessenkool  <segher@kernel.crashing.org>
11774
11775         PR rtl-optimization/67778
11776         PR rtl-optimization/68634
11777         PR rtl-optimization/68909
11778         * shrink-wrap.c (try_shrink_wrapping): Add comment.  Don't pop
11779         block from the stack until done with it.  Remove a superfluous
11780         bitmap set.  Remove a superfluous bitmap test.
11781
11782 2016-01-07  Martin Sebor  <msebor@redhat.com>
11783
11784         PR c/68966
11785         * doc/extend.texi (__atomic Builtins, __sync Builtins): Document
11786         constraint on the type of arguments.
11787
11788 2016-01-07  Andreas Tobler  <andreast@gcc.gnu.org>
11789
11790         * config/arm/freebsd.h: Rename SUBTARGET_OVERRIDE_OPTIONS to
11791         SUBTARGET_OVERRIDE_INTERNAL_OPTIONS. Adjust to check
11792         unaligned_access on the gcc_options set.
11793         * config/arm/arm.c (arm_option_override_internal): Use
11794         SUBTARGET_OVERRIDE_INTERNAL_OPTIONS.
11795
11796 2016-01-07  Uros Bizjak  <ubizjak@gmail.com>
11797
11798         PR target/69140
11799         * config/i386/i386.c (ix86_frame_pointer_required): Enable
11800         frame pointer for TARGET_64BIT_MS_ABI when stack is misaligned.
11801
11802 2016-01-07  Uros Bizjak  <ubizjak@gmail.com>
11803
11804         Revert
11805         2016-01-06  Uros Bizjak  <ubizjak@gmail.com>
11806
11807         PR target/69140
11808         * config/i386/i386.c (ix86_expand_prologue): Declare fs.sp_valid
11809         depending on frame_pointer_needed before remaining integer and SSE
11810         registers are saved.
11811
11812 2016-01-07  Sandra Loosemore  <sandra@codesourcery.com>
11813
11814         PR 1078
11815         * doc/extend.texi (Nvidia PDX Function Attributes): New section.
11816
11817 2016-01-07  H.J. Lu  <hongjiu.lu@intel.com>
11818
11819         PR target/69171
11820         * config/i386/sse.md (<sse>_sqrt<mode>2<mask_name><round_name>):
11821         Use the "xBm" constraint.
11822         (float<sseintvecmodelower><mode>2<mask_name><round_name):
11823         Likewise.
11824         (sse_cvtsi2ss<round_name>): Use round_nimm_scalar_predicate.
11825         (sse_cvtsi2ssq<round_name>): Likewise.
11826         (sse_cvtss2si<round_name>): Likewise.
11827         (sse_cvtss2siq<round_name>): Likewise.
11828         (sse2_cvtsi2sdq<round_name>): Likewise.
11829         (sse2_cvtsd2si<round_name>): Likewise.
11830         (sse2_cvtsd2siq<round_name>): Likewise.
11831         * config/i386/subst.md (round_nimm_scalar_predicate): New
11832         predicate.
11833
11834 2015-12-15  Bernd Schmidt  <bschmidt@redhat.com>
11835
11836         PR middle-end/67639
11837         * varasm.c (make_decl_rtl): Mark invalid register vars as
11838         DECL_EXTERNAL.
11839
11840         PR rtl-optimization/66206
11841         * bt-load.c (find_btr_use): Change first arg to be a pointer to an rtx.
11842         All callers changed.
11843
11844 2016-01-07  Jakub Jelinek  <jakub@redhat.com>
11845
11846         PR tree-optimization/69141
11847         * tree-ssa-pre.c: Include langhooks.h.
11848         (eliminate_dom_walker::before_dom_children): Use
11849         lang_hooks.decl_printable_name instead of
11850         cgraph_node::get ()->name ().
11851
11852         PR middle-end/68960
11853         * gimple-expr.c (copy_var_decl): If var has DECL_USER_ALIGN set, copy
11854         it and DECL_ALIGN too.
11855
11856 2016-01-06  Robert Suchanek  <robert.suchanek@imgtec.com>
11857
11858         * config/mips/mips-ftypes.def: Sort to lexicographical order.
11859
11860 2016-01-06  Uros Bizjak  <ubizjak@gmail.com>
11861
11862         PR target/69140
11863         * config/i386/i386.c (ix86_expand_prologue): Declare fs.sp_valid
11864         depending on frame_pointer_needed before remaining integer and SSE
11865         registers are saved.
11866
11867 2015-01-06  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
11868
11869         * config/rs6000/vsx.md (*p9_vecload_<mode>): Replace VSX_M
11870         mode iterator with VSX_M2.
11871         (*p9_vecstore_<mode>): Likewise.
11872         (*vsx_le_permute_<mode>): Restrict to !TARGET_P9_VECTOR.
11873         (*vsx_le_perm_load_<mode> for VSX_LE_128): Likewise.
11874         (*vsx_le_perm_store_<mode> for VSX_LE_128): Likewise.
11875         (define_split for VSX_LE128 stores): Likewise.
11876         (define_peephole2 for TImode LE swaps): Likewise.
11877         (define_split for VSX_LE128 post-reload stores): Likewise.
11878
11879 2016-01-06  Marek Polacek  <polacek@redhat.com>
11880
11881         PR sanitizer/69099
11882         * convert.c (convert_to_integer_1): Adjust call to
11883         ubsan_instrument_float_cast.  Use NULL_TREE instead of NULL.
11884         * ubsan.c (ubsan_instrument_float_cast): Drop the ARG parameter.  Use
11885         EXPR instead of ARG.
11886         * ubsan.h (ubsan_instrument_float_cast): Adjust declaration.
11887
11888 2016-01-05  Sandra Loosemore  <sandra@codesourcery.com>
11889
11890         PR 1078
11891         * doc/extend.texi (RL78 Variable Attributes): New section.
11892
11893 2016-01-05  Marek Polacek  <polacek@redhat.com>
11894
11895         PR c/69104
11896         * builtins.c (get_memmodel): Use expansion point location rather than
11897         the input location.  Call warning_at rather than warning.
11898         (expand_builtin_atomic_compare_exchange): Likewise.
11899         (expand_builtin_atomic_load): Likewise.
11900         (expand_builtin_atomic_store): Likewise.
11901         (expand_builtin_atomic_clear): Likewise.
11902
11903 2016-01-05  H.J. Lu  <hongjiu.lu@intel.com>
11904
11905         PR target/68991
11906         * config/i386/i386.c (ix86_expand_vector_logical_operator):
11907         Replace nonimmediate_operand with vector_operand.
11908         * config/i386/predicates.md (vector_operand): New predicate.
11909         (general_vector_operand): Replace nonimmediate_operand with
11910         vector_operand.
11911         * config/i386/sse.md: Replace nonimmediate_operand with
11912         vector_operand and m constraint with Bm constraint on SSE
11913         patterns with 16-byte memory operand.
11914         * config/i386/subst.md (round_nimm_predicate): Replace
11915         nonimmediate_operand with vector_operand.
11916         (round_saeonly_nimm_predicate): Likewise.
11917         (round_saeonly_nimm_scalar_predicate): New.
11918
11919 2016-01-05  H.J. Lu  <hongjiu.lu@intel.com>
11920
11921         PR target/68991
11922         * config/i386/constraints.md (Bm): New constraint.
11923         * config/i386/predicates.md (vector_memory_operand): New
11924         predicate.
11925         * config/i386/sse.md: Replace xm with xBm in plusminus and
11926         any_logic patterns.
11927
11928 2016-01-05  Sandra Loosemore  <sandra@codesourcery.com>
11929
11930         PR 1078
11931         * doc/extend.texi (V850 Function Attributes): New section.
11932         (V850 Variable Attributes): New section.
11933
11934 2016-01-05  Sandra Loosemore  <sandra@codesourcery.com>
11935
11936         PR 1078
11937         * doc/extend.texi (MicroBlaze Function Attributes): Document
11938         interrupt_handler and fast_interrupt attributes.
11939
11940 2016-01-05  Sergei Trofimovich  <siarheit@google.com>
11941
11942         PR other/60465
11943         * config/ia64/ia64.c (ia64_expand_load_address): Use gprel64
11944         for local symbolic operands.
11945         * config/ia64/predicates.md (local_symbolic_operand64): New
11946         predicate.
11947
11948 2016-01-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11949
11950         PR rtl-optimization/68651
11951         * combine.c (combine_simplify_rtx): Canonicalize x + x into
11952         x << 1.
11953
11954 2016-01-05  Nathan Sidwell  <nathan@acm.org>
11955
11956         * alias.c (compare_base_decls): Use symtab_node::get.
11957
11958 2016-01-05  Nick Clifton  <nickc@redhat.com>
11959
11960         PR target/68770
11961         * ira-costs.c (copy_cost): Initialise the t_icode field of the
11962         secondary_reload_info structure.
11963
11964         PR target/66655
11965         * config/i386/cygming.h (MAKE_DECL_ONE_ONLY): Define to use weak
11966         decls if weak support is available.
11967
11968 2016-01-04  Martin Sebor  <msebor@redhat.com>
11969
11970         * doc/invoke.texi (Warning Options): Document -Winvalid-memory-model.
11971
11972 2016-01-04  Michael Meissner  <meissner@linux.vnet.ibm.com>
11973
11974         * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Add
11975         OPTION_MASK_P9_DFORM.
11976
11977         * config/rs6000/constraints.md (wo constraint): New constraint for
11978         ISA 3.0 (power9).
11979
11980         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Add support
11981         for wo constraint.
11982         (rs6000_init_hard_regno_mode_ok): Likewise.
11983
11984         * config/rs6000/rs6000.h (r6000_reg_class_enum): Add support for
11985         wo constraint.
11986
11987         * config/rs6000/altivec.md (altivec_vperm_<mode>): Clean up vperm
11988         expanders not to have constraints.  Add support for ISA 3.0 xxperm
11989         instruction.  Add support for fusing xxlor with xxperm.
11990         (altivec_vperm_<mode>_internal): Likewise.
11991         (altivec_vperm_v8hiv16qi): Likewise.
11992         (altivec_vperm_<mode>v16q): Likewise.
11993         (altivec_vperm_<mode>_uns): Likewise.
11994         (vperm_v8hiv4si): Likewise.
11995         (vperm_v16qiv8hi): Likewise.
11996
11997         * doc/md.texi (RS/6000 constraints): Document wo constraint.
11998
11999 2016-01-04  Jakub Jelinek  <jakub@redhat.com>
12000
12001         Update copyright years.
12002
12003         * gcc.c (process_command): Update copyright notice dates.
12004         * gcov-dump.c (print_version): Ditto.
12005         * gcov.c (print_version): Ditto.
12006         * gcov-tool.c (print_version): Ditto.
12007         * gengtype.c (create_file): Ditto.
12008         * doc/cpp.texi: Bump @copying's copyright year.
12009         * doc/cppinternals.texi: Ditto.
12010         * doc/gcc.texi: Ditto.
12011         * doc/gccint.texi: Ditto.
12012         * doc/gcov.texi: Ditto.
12013         * doc/install.texi: Ditto.
12014         * doc/invoke.texi: Ditto.
12015
12016 2016-01-04  Eric Botcazou  <ebotcazou@adacore.com>
12017
12018         * config/arm/arm.c (aapcs_vfp_allocate_return_reg): Treat all integer
12019         modes larger than TImode as TImode if NEON is not enabled.
12020
12021 2016-01-04  Eric Botcazou  <ebotcazou@adacore.com>
12022
12023         PR target/69100
12024         * config/sparc/sparc.h (FUNCTION_ARG_REGNO_P): Return true in 64-bit
12025         mode for %f0-%f31 only if TARGET_FPU.
12026
12027 2016-01-04  Eric Botcazou  <ebotcazou@adacore.com>
12028
12029         PR target/69072
12030         * config/sparc/sparc.c (scan_record_type): Take into account subfields
12031         to compute the PACKED_P predicate.
12032         (function_arg_record_value): Minor tweaks.
12033
12034 2016-01-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>
12035
12036         * doc/install.texi (--with-multilib-list): Describe the meaning of the
12037         option for arm*-*-* targets.
12038
12039 2016-01-03  Sandra Loosemore  <sandra@codesourcery.com>
12040
12041         * doc/extend.texi (Common Function Attributes): Move docs for
12042         MSP430-specific attributes to....
12043         (MSP430 Function Attributes): ...here.  Delete the redundant
12044         entries and copy-edit the remaining text.
12045         (MSP430 Variable Attributes): Use uniform format for index
12046         entries and add a cross-reference to the corresponding function
12047         attribute docs.
12048
12049 2016-01-03  Vladimír Čunát  <vcunat@gmail.com>
12050
12051         * doc/invoke.texi (RS/6000 and PowerPC Options): Fix
12052         -finite-math typo.
12053         (x86 Options): Likewise.
12054
12055 2016-01-01  Sandra Loosemore  <sandra@codesourcery.com>
12056
12057         PR 1078
12058
12059         * extend.texi (Common Function Attributes) <no_stack_limit>: New.
12060         * invoke.texi (Code Gen Options) <-fno-stack-limit>: Add pointer
12061         to corresponding attribute.
12062
12063 2016-01-01  Sandra Loosemore  <sandra@codesourcery.com>
12064
12065         * doc/extend.texi (Common Function Attributes) <noplt>: Move
12066         to correct alphabetization of table.  Copy-edit and correct
12067         markup.
12068         <stack_protect>: Likewise.
12069         <target_clones>: Likewise.
12070         <simd>: Likewise.
12071         * doc/invoke.texi (Optimize Options) <-fstack-protector-explicit>:
12072         Correct punctuation.
12073         (Code Gen Options) <-fno-plt>: Copy-edit.
12074
12075 2016-01-01  Bernd Edlinger  <bernd.edlinger@hotmail.de>
12076
12077         PR target/68917
12078         * config/tilegx/tilegx.md (clzsi2): Don't create DI subregs of
12079         SI values.  Explicitly convert SI to DI and vice-versa.
12080
12081 2016-01-01  Jakub Jelinek  <jakub@redhat.com>
12082
12083         PR tree-optimization/69070
12084         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Only test
12085         REAL_VALUE_ISSIGNALING_NAN on arg0 if arg0 is a REAL_CST.
12086
12087         PR sanitizer/69055
12088         * ubsan.c (ubsan_instrument_float_cast): Call
12089         initialize_sanitizer_builtins.
12090
12091         PR target/69015
12092         * ifcvt.c (find_cond_trap): Give up if returnjump_p (jump).
12093 \f
12094 Copyright (C) 2016 Free Software Foundation, Inc.
12095
12096 Copying and distribution of this file, with or without modification,
12097 are permitted in any medium without royalty provided the copyright
12098 notice and this notice are preserved.