Fix cleanup location for try_finally_expr.
[platform/upstream/linaro-gcc.git] / gcc / ChangeLog
1 2017-07-06  Vyacheslav Barinov  <v.barinov@samsung.com>
2
3         * tree.def: Add STATEMENT_LIST_END tree code.
4         * tree.c: Add STATEMENT_LIST_END handling as TS_COMMON.
5         * gimplify.c (gimplify_expr): Use STATEMENT_LIST_END location to
6         provide right information for try_finally_expr.
7         * tree-eh.c (lower_try_finally_onedest): Set finally location
8         accordingly to location of last statement in cleanup.
9         * gimple.c (DEFTREECODE): handle STATEMENT_LIST_END as appropriate
10         GIMPLE_SINGLE_RHS.
11         * cp/constraint.cc (check_function_concept): Handle concept
12         definitions with STATEMENT_LIST_END.
13         * cp/error.c (dump_expr): Add STATEMENT_LIST_END support.
14         * fold-const.c (operand_equal_p): Add STATEMENT_LIST_END support.
15         * c-family/c-semantics.c (pop_stmt_list): Support single-statement
16         lists extraction with STATEMENT_LIST_END in the end.
17
18 2017-04-13  Denis Khalikov <d.khalikov@partner.samsung.com>
19
20         PR sanitizer/80414
21         * ubsan.c (ubsan_expand_bounds_ifn): Pass original index
22         to ubsan_encode_value.
23
24 2017-03-07  Jakub Jelinek  <jakub@redhat.com>
25
26         PR sanitizer/79897
27         * ubsan.c (ubsan_encode_value): Call mark_addressable on the
28         temporary.
29
30 2017-02-03  Carl Love  <cel@us.ibm.com>
31
32         Backport of two commits from mainline, r244943 and r244904,
33         dated 017-01-26 and 2017-01-25 respectively
34
35         * config/rs6000/rs6000-c (altivec_overloaded_builtins): Fix order
36         of entries for ALTIVEC_BUILTIN_VEC_PACKS.  Remove bogus entries
37         for P8V_BUILTIN_VEC_VGBBD.
38
39 2017-02-03  Walter Lee  <walt@tilera.com>
40
41         Backport from mainline
42         2017-02-03  Walter Lee  <walt@tilera.com>
43
44         PR target/78862
45         * config/tilegx/tilegx.md (tilegx_expand_prologue): Add blockage
46         after initial stackframe link reg save.
47         * config/tilepro/tilepro.md (tilepro_expand_prologue): Likewise.
48
49 2017-02-03  Maxim Ostapenko  <m.ostapenko@samsung.com>
50
51         PR lto/79061
52         * asan.c (asan_add_global): Force has_dynamic_init to zero in LTO mode.
53
54 2017-01-31  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
55
56         Backport from mainline
57         2017-01-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
58
59         PR target/79268
60         * config/rs6000/altivec.h (vec_xl): Revise #define.
61         (vec_xst): Likewise.
62
63 2017-01-26  Eric Botcazou  <ebotcazou@adacore.com>
64
65         Backport from mainline
66         2017-01-10  Eric Botcazou  <ebotcazou@adacore.com>
67
68         * expr.c (store_field): In the bitfield case, fetch the return value
69         from the registers before applying a single big-endian adjustment.
70         Always do a final load for a BLKmode value not larger than a word.
71
72         2017-01-09  Eric Botcazou  <ebotcazou@adacore.com>
73
74         * expr.c (store_field): In the bitfield case, if the value comes from
75         a function call and is of an aggregate type returned in registers, do
76         not modify the field mode; extract the value in all cases if the mode
77         is BLKmode and the size is not larger than a word.
78
79 2017-01-26  Richard Biener  <rguenther@suse.de>
80
81         * tree-vrp.c (vrp_visit_assignment_or_call): Use set_defs_to_varying.
82
83         Backport from mainline
84         2016-01-10  Richard Biener  <rguenther@suse.de>
85
86         PR tree-optimization/79034
87         * tree-call-cdce.c (shrink_wrap_one_built_in_call_with_conds):
88         Propagate out degenerate PHIs in the joiner.
89
90         2016-12-13  Richard Biener  <rguenther@suse.de>
91
92         PR middle-end/78742
93         * tree.c (cst_and_fits_in_hwi): Look if the actual value fits.
94         * tree-object-size.c (compute_builtin_object_size): Use
95         tree_fits_shwi_p.
96         * tree-data-ref.c (initialize_matrix_A): Remove excess assert.
97
98 2017-01-26  Richard Biener  <rguenther@suse.de>
99
100         Backport from mainline
101         2016-09-03  Kirill Yukhin  <kirill.yukhin@intel.com>
102
103         * ubsan.c (ubsan_use_new_style_p): Fix check for empty string.
104
105 2017-01-24  Eric Botcazou  <ebotcazou@adacore.com>
106
107         PR target/77439
108         * config/arm/arm.c (arm_function_ok_for_sibcall): Add back restriction
109         for long calls with APCS frame and VFP.
110
111 2017-01-24  Uros Bizjak  <ubizjak@gmail.com>
112
113         PR target/78478
114         Revert:
115         2013-11-05  Uros Bizjak  <ubizjak@gmail.com>
116
117         * config/i386/rtemself.h (LONG_DOUBLE_TYPE_SIZE): New define.
118
119 2017-01-23  Martin Liska  <mliska@suse.cz>
120
121         Backport from mainline
122         2017-01-20  Martin Liska  <mliska@suse.cz>
123
124         PR lto/69188
125         * tree-profile.c (init_ic_make_global_vars): Do not call
126         finalize_decl.
127         (gimple_init_gcov_profiler): Likewise.
128
129 2017-01-21  Gerald Pfeifer  <gerald@pfeifer.com>
130
131         Backport from mainline
132         2016-12-29  Gerald Pfeifer  <gerald@pfeifer.com>
133
134         * doc/extend.texi (Cilk Plus Builtins): cilkplus.org now uses
135         https by default.
136         * doc/passes.texi (Cilk Plus Transformation): Ditto.
137         * doc/generic.texi (Statements for C++): Ditto, and use @uref.
138
139 2017-01-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
140
141         Backport from mainline
142         2017-01-16  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
143
144         * config/rs6000/rs6000.c (rtx_is_swappable_p): Change
145         UNSPEC_VSX__XXSPLTD to require special splat handling.
146
147 2017-01-20  Wilco Dijkstra  <wdijkstr@arm.com>
148
149         Backport from mainline
150         PR target/77455
151         * config/aarch64/aarch64.md (eh_return): Remove pattern and splitter.
152         * config/aarch64/aarch64.h (AARCH64_EH_STACKADJ_REGNUM): Remove.
153         (EH_RETURN_HANDLER_RTX): New define.
154         * config/aarch64/aarch64.c (aarch64_frame_pointer_required):
155         Force frame pointer in EH return functions.
156         (aarch64_expand_epilogue): Add barrier for eh_return.
157         (aarch64_final_eh_return_addr): Remove.
158         (aarch64_eh_return_handler_rtx): New function.
159         * config/aarch64/aarch64-protos.h (aarch64_final_eh_return_addr):
160         Remove.
161         (aarch64_eh_return_handler_rtx): New prototype.
162
163 2017-01-20  Richard Earnshaw  <rearnsha@arm.com>
164
165         Backported from mainline
166         2017-01-19  Richard Earnshaw  <rearnsha@arm.com>
167
168         PR rtl-optimization/79121
169         * expr.c (expand_expr_real_2, case LSHIFT_EXPR): Look at the signedness
170         of the inner type when shifting an extended value.
171
172 2017-01-20  Martin Liska  <mliska@suse.cz>
173
174         Backport from mainline
175         2017-01-13  Martin Liska  <mliska@suse.cz>
176
177         PR ipa/79043
178         * function.c (set_cfun): Add new argument force.
179         * function.h (set_cfun): Likewise.
180         * ipa-inline-transform.c (inline_call): Use the function when
181         strict alising from is dropped for function we inline to.
182
183 2017-01-20  Martin Liska  <mliska@suse.cz>
184
185         Backport from mainline
186         2017-01-17  Martin Liska  <mliska@suse.cz>
187
188         PR ipa/71207
189         * ipa-polymorphic-call.c (contains_type_p): Fix wrong
190         assumption and add comment.
191
192 2017-01-19  Richard Biener  <rguenther@suse.de>
193
194         PR tree-optimization/72488
195         * tree-ssa-sccvn.c (run_scc_vn): When we abort the VN make
196         sure to restore SSA info.
197
198 2017-01-17  Jakub Jelinek  <jakub@redhat.com>
199
200         PR debug/78839
201         * dwarf2out.c (field_byte_offset): Restore the
202         PCC_BITFIELD_TYPE_MATTERS behavior for INTEGER_CST DECL_FIELD_OFFSET
203         and DECL_FIELD_BIT_OFFSET.  Use fold_build2 instead of build2 + fold.
204         (analyze_variants_discr, gen_variant_part): Use fold_build2 instead
205         of build2 + fold.
206
207 2017-01-17  Thomas Preud'homme  <thomas.preudhomme@arm.com>
208
209         Backport from mainline
210         2016-12-07  Thomas Preud'homme  <thomas.preudhomme@arm.com>
211
212         PR rtl-optimization/78617
213         * lra-remat.c (do_remat): Initialize live_hard_regs from live in
214         registers, also setting hard registers mapped to pseudo registers.
215
216 2017-01-13  Christophe Lyon  <christophe.lyon@linaro.org>
217
218         Backport from mainline r244320.
219         2017-01-11  Christophe Lyon  <christophe.lyon@linaro.org>
220
221         PR target/78253
222         * config/arm/arm.c (legitimize_pic_address): Handle reference to
223         weak symbol.
224         (arm_assemble_integer): Likewise.
225
226 2017-01-12  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
227
228         Backport from mainline
229         2017-01-12  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
230
231         PR target/79044
232         * config/rs6000/rs6000.c (insn_is_swappable_p): Mark
233         element-reversing loads and stores as not swappable.
234
235 2017-01-11  Uros Bizjak  <ubizjak@gmail.com>
236
237         * config/i386/i386.c (memory_address_length): Increase len
238         only when rip_relative_addr_p returns false.
239
240 2017-01-11  Maxim Ostapenko  <m.ostapenko@samsung.com>
241
242         Backport from mainline
243         2017-01-11  Maxim Ostapenko  <m.ostapenko@samsung.com>
244
245         PR lto/79042
246         * lto-cgraph.c (lto_output_varpool_node): Pack dynamically_initialized
247         bit.
248         (input_varpool_node): Unpack dynamically_initialized bit.
249         * lto-streamer.h (LTO_minor_version): Bump version.
250
251 2017-01-10  Michael Meissner  <meissner@linux.vnet.ibm.com>
252
253         Backport from mainline
254         2016-12-30  Michael Meissner  <meissner@linux.vnet.ibm.com>
255
256         PR target/78900
257         * config/rs6000/rs6000.c (rs6000_split_signbit): Change some
258         assertions.  Add support for doing the signbit if the IEEE 128-bit
259         floating point value is in a GPR.
260         * config/rs6000/rs6000.md (Fsignbit): Delete.
261         (signbit<mode>2_dm): Delete using <Fsignbit> and just use "wa".
262         Update the length attribute if the value is in a GPR.
263         (signbit<mode>2_dm_<su>ext): Add combiner pattern to eliminate
264         the sign or zero extension instruction, since the value is always
265         0/1.
266         (signbit<mode>2_dm2): Delete using <Fsignbit>.
267
268 2017-01-10  Martin Liska  <mliska@suse.cz>
269
270         Backport from mainline
271         2017-01-09  Martin Liska  <mliska@suse.cz>
272
273         PR pch/78970
274         * gcc.c (driver_handle_option): Handle OPT_E and set
275         have_E.
276         (lookup_compiler): Do not show error message with have_E.
277
278 2017-01-10  Martin Liska  <mliska@suse.cz>
279
280         Backport from mainline
281         2017-01-05  Martin Liska  <mliska@suse.cz>
282
283         PR pch/78970
284         * gcc.c (lookup_compiler): Reject '-' filename for a precompiled
285         header.
286
287 2017-01-10  Thomas Schwinge  <thomas@codesourcery.com>
288
289         PR tree-optimization/78024
290         * omp-low.c (oacc_loop_discovery): Call clear_bb_flags.
291
292         Backport trunk r239086:
293         2016-08-03  Nathan Sidwell  <nathan@codesourcery.com>
294
295         * config/nvptx/nvptx.c (nvptx_declare_function_name): Round frame
296         size to DImode boundary.
297         (nvptx_propagate): Likewise.
298
299 2017-01-10  Chung-Ju Wu  <jasonwucj@gmail.com>
300
301         Backport from mainline
302         2016-04-28  Segher Boessenkool  <segher@kernel.crashing.org>
303
304         PR target/70668
305         * config/nds32/nds32.md (casesi): Don't access the operands array
306         out of bounds.
307
308 2017-01-09  Andreas Tobler  <andreast@gcc.gnu.org>
309
310         Backport from mainline
311         2016-10-10  Andreas Tobler  <andreast@gcc.gnu.org>
312
313         * config.gcc: Add aarch64-*-freebsd* support.
314         * config.host: Likewise.
315         * config/aarch64/aarch64-freebsd.h: New file.
316         * config/aarch64/t-aarch64-freebsd: Ditto.
317
318 2017-01-09  Bill Seurer  <seurer@linux.vnet.ibm.com>
319
320         Backport from mainline
321         2016-12-21  Bill Seurer  <seurer@linux.vnet.ibm.com>
322
323         PR sanitizer/65479
324         * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
325         -fasynchronous-unwind-tables option when -fsanitize=address is
326         specified.
327
328 2017-01-09  Andreas Tobler  <andreast@gcc.gnu.org>
329
330         Backport from mainline
331         2016-09-19  Richard Biener  <rguenther@suse.de>
332
333         * dwarf2out.c (dwarf2out_late_global_decl): When being during the
334         early debug phase do not add locations but only const value
335         attributes.
336
337         Backport from mainline
338         2016-10-20  Richard Biener  <rguenther@suse.de>
339
340         * cgraphunit.c (analyze_functions): Set node->definition to
341         false to signal symbol removal to debug_hooks->late_global_decl.
342
343 2017-01-09  Andre Vieira <andre.simoesdiasvieira@arm.com>
344
345         Backport from mainline
346         2016-12-09  Andre Vieira <andre.simoesdiasvieira@arm.com>
347
348         PR rtl-optimization/78255
349         * gcc/postreload.c (reload_cse_simplify): Do not CSE a function if
350         NO_FUNCTION_CSE is true.
351
352 2017-01-06  Wilco Dijkstra  <wdijkstr@arm.com>
353
354         Backport from mainline
355         2016-10-25  Wilco Dijkstra  <wdijkstr@arm.com>
356
357         PR target/78041
358         * config/arm/neon.md (ashldi3_neon): Add "r 0 i" and "&r r i" variants.
359         Remove partial overlap check for shift by 1.
360         (ashldi3_neon): Likewise.
361
362 2017-01-05  Kelvin Nilsen  <kelvin@gcc.gnu.org>
363
364         Backport from mainline
365         2016-07-22  Kelvin Nilsen  <kelvin@gcc.gnu.org>
366
367         * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
368         comments to explain why certain error messages make mention of
369         undocumented options.
370         (rs6000_invalid_builtin): Change error messages to replace mention
371         of undocumented options with mention of the -mcpu=power9 option
372         that enables those undocumented options.
373         * config/rs6000/rs6000.h: Add macro definition of MASK_FLOAT128
374         and change the macro definition of RS6000_BTM_FLOAT128 to correct
375         an error that was discovered during the development of this patch.
376         * config/rs6000/rs6000.opt: Add the Undocumented qualifier to the
377         mpower9-fusion, mpower9-vector, mpower9-dform, and mmodulo entries.
378         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Modify
379         descriptions of built-in functions so that they depend on
380         -mcpu=power9 instead of on the corresponding undocumented flags.
381         * doc/invoke.texi (Option Summary):  Remove all mention of newly
382         undocumented flags.
383         (IBM RS/6000 and PowerPC Options): Likewise.
384         * doc/md.texi (Constraints for Particuliar Machines): Remove all
385         mention of newly undocumented flags.
386
387 2017-01-05  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
388
389         Backport from mainline
390         2016-12-22  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
391
392         * varasm.c (build_constant_desc): Use the alignment of the var
393         decl instead of the original expression.
394
395 2017-01-04  Richard Biener  <rguenther@suse.de>
396
397         Backport from mainline
398         2016-05-11  Richard Biener  <rguenther@suse.de>
399
400         PR tree-optimization/71055
401         * tree-ssa-sccvn.c (vn_reference_lookup_3): When native-interpreting
402         sth with precision not equal to access size verify we don't chop
403         off bits.
404
405 2017-01-03  Martin Liska  <mliska@suse.cz>
406
407         Backport from mainline
408         2016-12-21  Jakub Jelinek  <jakub@redhat.com>
409                     Martin Liska  <mliska@suse.cz>
410
411         PR driver/78863
412         * gcc.c (driver::build_option_suggestions): Do not add
413         -fsanitize=all as a suggestion candidate.
414
415 2017-01-03  Martin Liska  <mliska@suse.cz>
416
417         Backport from mainline
418         2016-12-22  Martin Liska  <mliska@suse.cz>
419
420         PR tree-optimization/78886
421         * tree-ssa-strlen.c (handle_builtin_malloc): Return when LHS
422         is equal to NULL.
423
424 2017-01-03  Martin Liska  <mliska@suse.cz>
425
426         Backport from mainline
427         2016-12-13  Martin Liska  <mliska@suse.cz>
428
429         PR tree-optimization/78428
430         * expr.c (store_constructor_field): Add new arguments to the
431         function.
432         (store_constructor): Set up bitregion_end and add
433         gcc_unreachable to fields that have either non-constant size
434         or (and) offset.
435
436 2016-12-27  Jakub Jelinek  <jakub@redhat.com>
437
438         PR translation/78922
439         * config/i386/stringop.opt: Remove.
440
441 2016-12-21  Jakub Jelinek  <jakub@redhat.com>
442
443         Backported from mainline
444         2016-12-13  Jakub Jelinek  <jakub@redhat.com>
445
446         PR ipa/77905
447         * ipa-pure-const.c (cdtor_p): Return true for
448         DECL_STATIC_{CON,DE}STRUCTOR even when it is
449         DECL_LOOPING_CONST_OR_PURE_P.
450
451 2016-12-21  Jakub Jelinek  <jakub@redhat.com>
452
453         * BASE-VER: Set to 6.3.1.
454
455 2016-12-21  Release Manager
456
457         * GCC 6.3.0 released.
458
459 2016-12-14  Uros Bizjak  <ubizjak@gmail.com>
460
461         PR target/59874
462         * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_CLZS
463         and IX86_BUILTIN_CTZS.
464         (bdesc_args): Add __builtin_clzs and __builtin_ctzs.
465         (ix86_fold_builtin): Handle IX86_BUILTIN_CTZS and IX86_BUILTIN_CLZS.
466
467 2016-12-14  Wilco Dijkstra  <wdijkstr@arm.com>
468             Jakub Jelinek  <jakub@redhat.com>
469
470         PR target/78796
471         * config/aarch64/aarch64.c (aarch64_classify_symbol): Merge large
472         model checks into switch.
473
474 2016-12-14  Thomas Preud'homme  <thomas.preudhomme@arm.com>
475
476         Backport from mainline
477         2016-11-25  Thomas Preud'homme  <thomas.preudhomme@arm.com>
478
479         * tree-ssa-math-opts.c (struct symbolic_number): Improve comment.
480
481 2016-12-14  Thomas Preud'homme  <thomas.preudhomme@arm.com>
482
483         Backport from mainline
484         2016-11-25  Thomas Preud'homme  <thomas.preudhomme@arm.com>
485
486         PR tree-optimization/77673
487         * tree-ssa-math-opts.c (struct symbolic_number): Add new src field.
488         (init_symbolic_number): Initialize src field from src parameter.
489         (perform_symbolic_merge): Select most dominated statement as the
490         source statement.  Set src field of resulting n structure from the
491         input src with the lowest address.
492         (find_bswap_or_nop): Rename source_stmt into ins_stmt.
493         (bswap_replace): Rename src_stmt into ins_stmt.  Initially get source
494         of load from src field rather than insertion statement.  Cancel
495         optimization if statement analyzed is not dominated by the insertion
496         statement.
497         (pass_optimize_bswap::execute): Rename src_stmt to ins_stmt.  Compute
498         dominance information.
499
500 2016-12-13  Michael Meissner  <meissner@linux.vnet.ibm.com>
501
502         Backport from mainline
503         2016-12-07  Michael Meissner  <meissner@linux.vnet.ibm.com>
504
505         PR target/72717
506         * config/rs6000/rs6000.c (rs6000_expand_vector_init): If the
507         V2DImode elements are SUBREG's convert the result into DImode
508         rather than failing in emit_move_insn.
509
510 2016-12-13  Iain Sandoe  <iain@codesourcery.com>
511
512         Backport from mainline
513         2016-12-11  Iain Sandoe  <iain@codesourcery.com>
514
515         PR rtl-optimization/71496
516         * config/rs6000/darwin.md (load_macho_picbase_si): Mark as non-
517         copyable.  (load_macho_picbase_di, reload_macho_picbase_si,
518         reload_macho_picbase_di): Likewise.
519
520 2016-12-12  Bernd Schmidt  <bschmidt@redhat.com>
521
522         Backport from mainline
523         2016-11-07  Bernd Schmidt  <bschmidt@redhat.com>
524
525         PR rtl-optimization/77309
526         * combine.c (make_compound_operation): Allow EQ for IN_CODE, and
527         don't assume an equality comparison for plain COMPARE.
528         (simplify_comparison): Pass a more accurate code to
529         make_compound_operation.
530
531 2016-12-12 Thomas Preud'homme <thomas.preudhomme@arm.com>
532
533         Backport from mainline
534         2016-11-22  Thomas Preud'homme  <thomas.preudhomme@arm.com>
535
536         PR target/77904
537         * config/arm/arm.c (thumb1_compute_save_reg_mask): Mark frame pointer
538         in save register mask if it is needed.
539
540 2016-12-11  Iain Sandoe  <iain@codesourcery.com>
541
542         Backport from mainline
543         2016-11-27  Iain Sandoe  <iain@codesourcery.com>
544                     Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
545
546         PR target/67710
547         * config.in: Regenerate
548         * config/darwin-driver.c (darwin_driver_init): Emit a version string
549         for the assembler.
550         * config/darwin.h(ASM_MMACOSX_VERSION_MIN_SPEC): New, new tests.
551         * config/darwin.opt(asm_macosx_version_min): New.
552         * config/i386/darwin.h: Handle ASM_MMACOSX_VERSION_MIN_SPEC.
553         * configure: Regenerate
554         * configure.ac: Check for mmacosx-version-min handling.
555
556 2016-12-11  Iain Sandoe  <iain@codesourcery.com>
557
558         Backport from mainline
559         2016-11-27  Iain Sandoe  <iain@codesourcery.com>
560
561         PR target/57438
562         * config/i386/i386.c (ix86_code_end): Note that we emitted code
563         where the function might otherwise appear empty for picbase thunks.
564         (ix86_output_function_epilogue): If we find a zero-sized function
565         assume that reaching it is UB and trap.  If we find a trailing label
566         append a nop.
567         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): If we
568         find a zero-sized function assume that reaching it is UB and trap.
569         If we find a trailing label, append a nop.
570
571 2016-12-11 Iain Sandoe  <iain@codesourcery.com>
572
573         Backport from mainline
574         2016-11-27  Iain Sandoe  <iain@codesourcery.com>
575
576         PR target/71767
577         * config/darwin-sections.def (picbase_thunk_section): New.
578         * config/darwin.c (darwin_init_sections): Set up picbase thunk
579         section. (darwin_rodata_section, darwin_objc2_section,
580         machopic_select_section, darwin_asm_declare_constant_name,
581         darwin_emit_weak_or_comdat, darwin_function_section): Don’t use
582         coalesced with newer linkers.
583         (darwin_override_options): Decide on usage of coalesed sections
584         on the basis of the target linker version.
585         * config/darwin.h (MIN_LD64_NO_COAL_SECTS): New.
586         * config/darwin.opt  (mtarget-linker): New.
587         * config/i386/i386.c (ix86_code_end): Do not force the thunks into
588         a coalesced section, instead use a thunks section.
589
590         Backport from mainline
591         2016-11-28  Iain Sandoe  <iain@codesourcery.com>
592
593         PR target/71767
594         * configure.ac (with_ld64): Use portable method to extract the
595         major part of the version number.
596         * configure: Regenerated.
597
598         Backport from mainline
599         2016-11-27  Iain Sandoe  <iain@codesourcery.com>
600
601         PR target/71767
602         * configure.ac (with-ld64): New var, set for Darwin, set on
603         detection of ld64, gcc_cv_ld64_export_dynamic: New, New test.
604         * config/darwin.h: Use LD64_HAS_DYNAMIC export. DEF_LD64: New,
605         define.
606         * config/darwin10.h(DEF_LD64): Update for this target version.
607         * config/darwin12.h(LINK_GCC_C_SEQUENCE_SPEC): Remove rdynamic
608         test.  (DEF_LD64): Update for this target version.
609         * configure: Regenerated.
610         * config.in: Regenerated.
611
612         Backport from mainline
613         2016-11-27  Iain Sandoe  <iain@codesourcery.com>
614
615         PR target/71767
616         * config/darwin.c (imachopic_indirection_name): Make data
617         section indirections linker-visible.
618         * config/darwin.h (ASM_GENERATE_INTERNAL_LABEL): Make local
619         constant labels linker-visible.
620
621 2016-12-09  Thomas Preud'homme  <thomas.preudhomme@arm.com>
622
623         Backport from mainline
624         2016-11-17  Thomas Preud'homme  <thomas.preudhomme@arm.com>
625
626         PR target/77933
627         * config/arm/arm.c (thumb1_expand_prologue): Distinguish between lr
628         being live in the function and lr needing to be saved.  Distinguish
629         between already saved pushable registers and registers to push.
630         Check for LR being an available pushable register.
631
632 2016-12-09  Nathan Sidwell  <nathan@acm.org>
633
634         PR C++/78550
635         * convert.c (convert_to_integer_1): Maybe fold conversions to
636         integral types with fewer bits than its mode.
637
638 2016-12-09  Richard Biener  <rguenther@suse.de>
639
640         Backport from mainline
641         2016-11-09  Richard Biener  <rguenther@suse.de>
642
643         * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
644         Look at the DR_BASE_ADDRESS object for forcing alignment.
645
646         2016-11-07  Richard Biener  <rguenther@suse.de>
647
648         PR tree-optimization/78189
649         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Fix
650         alignment computation.
651
652 2016-12-09  Richard Biener  <rguenther@suse.de>
653
654         Backport from mainline
655         2016-11-28  Richard Biener  <rguenther@suse.de>
656
657         PR tree-optimization/78542
658         * tree-ssa-ccp.c (evaluate_stmt): Only valueize simplification
659         if allowed.
660
661         2016-11-23  Richard Biener  <rguenther@suse.de>
662
663         PR tree-optimization/78482
664         * tree-cfgcleanup.c: Include tree-ssa-loop-niter.h.
665         (remove_forwarder_block_with_phi): When merging with a loop
666         header creates a new latch reset number of iteration information
667         of the loop.
668
669         2016-11-23  Richard Biener  <rguenther@suse.de>
670
671         PR middle-end/71762
672         * match.pd ((~X & Y) -> X < Y, (X & ~Y) -> Y < X,
673         (~X | Y) -> X <= Y, (X | ~Y) -> Y <= X): Remove.
674
675         2016-11-11  Richard Biener  <rguenther@suse.de>
676
677         PR tree-optimization/71575
678         * graphite-isl-ast-to-gimple.c (copy_cond_phi_nodes): Remove
679         bogus assert.
680
681         2016-11-07  Richard Biener  <rguenther@suse.de>
682
683         PR tree-optimization/78224
684         * tree-call-cdce.c (shrink_wrap_one_built_in_call_with_conds):
685         Split the fallthru edge in case its successor may have PHIs.
686
687         2016-11-05  David Edelsohn  <dje.gcc@gmail.com>
688                 Richard Biener  <rguenther@suse.de>
689
690         PR bootstrap/78188
691         PR c++/71848
692         * ipa-comdats.c (pass_ipa_comdats::gate): Require HAVE_COMDAT_GROUP.
693
694         2016-09-20  Richard Biener  <rguenther@suse.de>
695
696         PR tree-optimization/77646
697         * tree-ssa-sccvn.c (visit_reference_op_call): Always value-number
698         a VDEF.
699
700 2016-12-07  Segher Boessenkool  <segher@kernel.crashing.org>
701
702         Backport from mainline
703         2016-11-12  Segher Boessenkool  <segher@kernel.crashing.org>
704
705         PR target/77957
706         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Don't
707         return early if !optional_tbtab.
708
709 2016-12-07  Jakub Jelinek  <jakub@redhat.com>
710
711         Backported from mainline
712         2016-11-28  Jakub Jelinek  <jakub@redhat.com>
713
714         PR middle-end/78540
715         * rtl.h (remove_reg_equal_equiv_notes): Return bool instead of void.
716         * rtlanal.c (remove_reg_equal_equiv_notes): Return true if any
717         note has been removed.
718         * postreload.c (reload_combine_recognize_pattern): If
719         remove_reg_equal_equiv_notes returns true, call df_notes_rescan.
720
721         PR rtl-optimization/78546
722         * simplify-rtx.c (neg_const_int): When negating most negative
723         number in mode wider than HOST_BITS_PER_WIDE_INT, use
724         simplify_const_unary_operation to produce CONST_DOUBLE or
725         CONST_WIDE_INT.
726         (simplify_plus_minus): Hanlde the case where neg_const_int
727         doesn't return a CONST_INT.
728
729         PR fortran/78298
730         * tree-nested.c (convert_local_reference_stmt): After adding
731         shared (FRAME.NN) clause to omp parallel, task or target,
732         add it also to all outer omp parallel, task or target constructs.
733
734         2016-11-23  Jakub Jelinek  <jakub@redhat.com>
735
736         PR middle-end/69183
737         * omp-low.c (build_outer_var_ref): Change lastprivate argument
738         to code, pass it recursively, adjust uses.  For OMP_CLAUSE_PRIVATE
739         on worksharing constructs, treat it like clauses on simd construct.
740         Formatting fix.
741         (lower_rec_input_clauses): For OMP_CLAUSE_PRIVATE_OUTER_REF pass
742         OMP_CLAUSE_PRIVATE as last argument to build_outer_var_ref.
743         (lower_lastprivate_clauses): Pass OMP_CLAUSE_LASTPRIVATE instead
744         of true as last argument to build_outer_var_ref.
745
746         2016-11-22  Jakub Jelinek  <jakub@redhat.com>
747
748         PR middle-end/78416
749         * expmed.c (expand_divmod): Use wide_int for computation of
750         op1_is_pow2.  Don't set it if op1 is 0.  Formatting fixes.
751         Use size <= HOST_BITS_PER_WIDE_INT instead of
752         HOST_BITS_PER_WIDE_INT >= size.
753
754         2016-11-21  Jakub Jelinek  <jakub@redhat.com>
755
756         PR middle-end/67335
757         * omp-simd-clone.c (simd_clone_adjust_argument_types): Use NULL prefix
758         for tmp simd array if DECL_NAME (parm) is NULL.
759
760         2016-11-18  Jakub Jelinek  <jakub@redhat.com>
761
762         PR middle-end/78419
763         * multiple_target.c (get_attr_len): Start with argnum and increment
764         argnum on every arg.  Use strchr in a loop instead of counting commas
765         manually.
766         (get_attr_str): Increment argnum for every comma in the string.
767         (separate_attrs): Use for instead of while loop, simplify.
768         (expand_target_clones): Rename defenition argument to definition.
769         Free attrs and attr_str even when diagnosing errors.  Temporarily
770         change input_location around targetm.target_option.valid_attribute_p
771         calls.  Don't emit warning or errors if that function fails.
772
773         2016-11-16  Jakub Jelinek  <jakub@redhat.com>
774
775         PR rtl-optimization/78378
776         * combine.c (make_extraction): Use force_to_mode for non-{REG,MEM}
777         inner only if pos is 0.  Fix up formatting.
778
779         PR fortran/78299
780         * omp-low.c (expand_omp_for_static_nochunk): Don't assert
781         that loop->header == body_bb if broken_loop.
782
783         2016-11-07  Jakub Jelinek  <jakub@redhat.com>
784
785         PR target/77834
786         * dse.c (dse_step5): Call scan_reads even if just
787         insn_info->frame_read.  Improve and fix dump file messages.
788
789         PR target/78227
790         * config/i386/i386.c (ix86_expand_sse_cmp): Force dest into
791         cmp_mode argument even for -O0 if cmp_mode != mode and maskcmp.
792
793         2016-11-04  Jakub Jelinek  <jakub@redhat.com>
794
795         PR target/77834
796         * alias.c (nonoverlapping_memrefs_p): Return 0 if exprx or expry
797         doesn't have rtl set.
798
799         2016-10-29  Jakub Jelinek  <jakub@redhat.com>
800
801         PR rtl-optimization/77919
802         * expr.c (expand_expr_real_1) <normal_inner_ref>: Only avoid forcing
803         into memory if both modes are complex and their inner modes have the
804         same precision.  If the two modes are different complex modes, convert
805         each part separately and generate a new CONCAT.
806
807         2016-10-28  Jakub Jelinek  <jakub@redhat.com>
808
809         PR rtl-optimization/77919
810         * expr.c (expand_expr_real_1) <normal_inner_ref>: Force CONCAT into
811         MEM if mode1 is not a complex mode.
812
813         2016-10-27  Jakub Jelinek  <jakub@redhat.com>
814
815         PR middle-end/78025
816         * omp-simd-clone.c (simd_clone_adjust): Handle noreturn declare simd
817         functions.
818
819         2016-10-26  Jakub Jelinek  <jakub@redhat.com>
820                     Martin Liska  <mliska@suse.cz>
821
822         PR fortran/77973
823         * gimplify.c (gimplify_adjust_omp_clauses_1): For all added map
824         clauses with OMP_CLAUSE_SIZE being a decl, call omp_notice_variable
825         on outer context if any.
826
827         2016-10-05  Jakub Jelinek  <jakub@redhat.com>
828
829         PR sanitizer/66343
830         * ubsan.c (ubsan_ids): New GTY(()) array.
831         (ubsan_type_descriptor, ubsan_create_data): Use ubsan_ids
832         instead of static local counters.
833
834         2016-09-22  Jakub Jelinek  <jakub@redhat.com>
835
836         PR fortran/77665
837         * tree-inline.c (remap_gimple_stmt): Set has_simduid_loops
838         for all IFN_GOMP_SIMD_* internal fns, not just for
839         IFN_GOMP_SIMD_ORDERED_*.
840
841         2016-09-20  Jakub Jelinek  <jakub@redhat.com>
842
843         PR middle-end/77624
844         * builtins.c (fold_builtin_atomic_always_lock_free): Only look through
845         cast to void * if the cast is from some other pointer type.
846
847         2016-09-19  Jakub Jelinek  <jakub@redhat.com>
848                     Jan Hubicka  <jh@suse.cz>
849
850         PR target/77587
851         * cgraph.c (cgraph_node::rtl_info): Pass &avail to
852         ultimate_alias_target call, return NULL if avail < AVAIL_AVAILABLE.
853         Call ultimate_alias_target just once, not up to 4 times.
854
855 2016-12-07  Thomas Preud'homme  <thomas.preudhomme@arm.com>
856
857         Backport from mainline
858         2016-11-16  Thomas Preud'homme  <thomas.preudhomme@arm.com>
859
860         * config/arm/arm.md (arm_addsi3): Add alternative for addition of
861         general register with general register or ARM constant into SP
862         register.
863
864 2016-12-06  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
865
866         Backport from mainline
867         2016-12-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
868                     Stefan Freudenberger  <stefan@reservoir.com>
869
870         PR tree-optimization/78646
871         * gimple-ssa-strength-reduction.c (replace_ref): The pointer
872         addition used for the memory base expression should have the type
873         of the candidate.
874
875 2016-12-06  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
876
877         Backport from mainline
878         2016-09-01  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
879                     Michael Meissner  <meissner@linux.vnet.ibm.com>
880
881         PR target/72827
882         * config/rs6000/rs6000.c (rs6000_legitimize_address): Avoid
883         reg+reg addressing for TImode.
884         (rs6000_legitimate_address_p): Only allow register indirect
885         addressing for TImode, even without TARGET_QUAD_MEMORY.
886
887 2016-12-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
888
889         Backport from mainline
890         2016-12-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
891
892         * config/s390/s390-modes.def (CCVEQANY, CCVH, CCVHANY, CCVHU)
893         (CCVHUANY): Remove modes.
894         (CCVIH, CCVIHU, CCVIALL, CCVIANY, CCVFALL, CCVFANY): Add modes and
895         documentation.
896         * config/s390/s390.c (s390_match_ccmode_set): Rename cc modes.
897         (s390_expand_vec_compare_scalar): Pick one of the cc consumer
898         modes.
899         (s390_branch_condition_mask): Adjust to use the new cc consumer
900         modes.  The new modes allow for proper reversal in the middle-end.
901         (s390_expand_vec_compare_cc): Determine the proper cc producer and
902         consumer modes for a comparison.
903         * config/s390/s390.md: Rename CCVH to CCVIH and CCVHU to CCVIHU
904         throughout the file.
905         * config/s390/vx-builtins.md: Likewise.
906
907 2016-12-01  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
908
909         Backport from mainline
910         2016-12-01  Alan Modra  <amodra@gmail.com>
911
912         * gcc/config/rs6000/rs6000.c (insn_is_swappable_p): Properly
913         look inside UNSPEC_VSX_XXSPLTW vec.
914
915 2016-12-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
916
917         Back port from trunk
918         2016-11-17  Michael Meissner  <meissner@linux.vnet.ibm.com>
919
920         PR target/78101
921         * config/rs6000/predicates.md (fusion_addis_mem_combo_load): Add
922         the appropriate checks for SFmode/DFmode load/stores in GPR
923         registers.
924         (fusion_addis_mem_combo_store): Likewise.
925         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Rename
926         fusion_fpr_* to fusion_vsx_* and add in support for ISA 3.0 scalar
927         d-form instructions for traditional Altivec registers.
928         (emit_fusion_p9_load): Likewise.
929         (emit_fusion_p9_store): Likewise.
930         * config/rs6000/rs6000.md (p9 fusion store peephole2): Remove
931         early clobber from scratch register.  Do not match if the register
932         being stored is the scratch register.
933         (fusion_vsx_<P:mode>_<FPR_FUSION:mode>_load): Rename fusion_fpr_*
934         to fusion_vsx_* and add in support for ISA 3.0 scalar d-form
935         instructions for traditional Altivec registers.
936         (fusion_fpr_<P:mode>_<FPR_FUSION:mode>_load): Likewise.
937         (fusion_vsx_<P:mode>_<FPR_FUSION:mode>_store): Likewise.
938         (fusion_fpr_<P:mode>_<FPR_FUSION:mode>_store): Likewise.
939
940 2016-12-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
941
942         Backport from mainline
943         2016-11-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
944
945         PR target/48863
946         PR inline-asm/70184
947         * tree-ssa-ter.c (temp_expr_table): Add reg_vars_cnt field.
948         (new_temp_expr_table): Initialise reg_vars_cnt.
949         (free_temp_expr_table): Release reg_vars_cnt.
950         (process_replaceable): Add reg_vars_cnt argument, set reg_vars_cnt
951         field of TAB.
952         (find_replaceable_in_bb): Use the above to record register variable
953         write occurrences and cancel replacement across them.
954
955 2016-11-29  Kaz Kojima  <kkojima@gcc.gnu.org>
956
957         Backported from mainline
958         2016-11-19  Kaz Kojima  <kkojima@gcc.gnu.org>
959
960         PR target/78426
961         * config/sh/sh-mem.cc (sh_expand_cmpnstr): Use copy_to_mode_reg
962         instead of force_reg.
963         (sh_expand_setmem): Likewise.
964
965 2016-11-24  Eric Botcazou  <ebotcazou@adacore.com>
966
967         PR middle-end/78429
968         * tree.h (wi::fits_to_boolean_p): New predicate.
969         (wi::fits_to_tree_p): Use it for boolean types.
970         * tree.c (int_fits_type_p): Likewise.
971
972 2016-11-24  Martin Liska  <mliska@suse.cz>
973
974         Backported from mainline
975         2016-11-22  Martin Liska  <mliska@suse.cz>
976
977         PR ipa/78309
978         * ipa-icf.c (void sem_item::set_hash): Update m_hash_set.
979         (sem_function::get_hash): Use the new field.
980         (sem_function::parse): Remove an argument from ctor.
981         (sem_variable::parse): Likewise.
982         (sem_variable::get_hash): Use the new field.
983         (sem_item_optimizer::read_section): Use new ctor and set hash.
984         * ipa-icf.h: _hash is removed from sem_item::sem_item,
985         sem_variable::sem_variable, sem_function::sem_function.
986
987 2016-11-23  Uros Bizjak  <ubizjak@gmail.com>
988
989         * config/i386/i386.md (*<any_or:code>hi_1): Fix operand 2 constraints.
990         (kxnor<mode>): Return "#" for alternative 0.
991
992 2016-11-23  Richard Biener  <rguenther@suse.de>
993
994         Backport from mainline
995         2016-11-23  Richard Biener  <rguenther@suse.de>
996
997         PR lto/78472
998         * tree.c (gimple_canonical_types_compatible_p): Ignore zero-sized
999         fields.
1000
1001         2016-11-17  Richard Biener  <rguenther@suse.de>
1002
1003         PR middle-end/78305
1004         * fold-const.c (negate_expr_p): Fix multiplication case.
1005
1006         2016-11-16  Richard Biener  <rguenther@suse.de>
1007
1008         PR middle-end/78333
1009         * gimplify.c (gimplify_function_tree): Do not instrument
1010         GNU extern inline functions.
1011
1012         2016-11-07  Richard Biener  <rguenther@suse.de>
1013
1014         PR tree-optimization/78228
1015         * tree-ssa-phiopt.c (abs_replacement): Avoid introducing
1016         undefined behavior.
1017
1018         2016-11-04  Richard Biener  <rguenther@suse.de>
1019
1020         PR middle-end/78185
1021         * loop-invariant.c (find_exits): Record entering inner
1022         loops as possibly exiting to handle infinite sub-loops.
1023         * tree-ssa-loop-im.c: Include tree-ssa-loop-niter.h.
1024         (fill_always_executed_in_1): Honor infinite child loops.
1025
1026         2016-10-06  Richard Biener  <rguenther@suse.de>
1027
1028         PR tree-optimization/77855
1029         * tree-ssa-pre.c (prune_clobbered_mems): Queue exprs to remove
1030         instead of removing the current item while iterating over the set
1031         which is not safe.
1032
1033 2016-11-22  Walter Lee  <walt@tilera.com>
1034
1035         Backport from mainline
1036         2016-11-22  Walter Lee  <walt@tilera.com>
1037
1038         * config/tilegx/tilegx.md (trap): New pattern.
1039         * config/tilepro/tilepro.md (trap): Likewise.
1040
1041 2016-11-22  Walter Lee  <walt@tilera.com>
1042
1043         Backport from mainline
1044         2016-11-22  Walter Lee  <walt@tilera.com>
1045
1046         * config/tilegx/tilegx.md (*zero_extract): Use
1047         define_insn_and_split instead of define_insn; Handle pos + size >
1048         64.
1049         (*sign_extract): Likewise.
1050
1051 2016-11-22  Uros Bizjak  <ubizjak@gmail.com>
1052
1053         * Makefile.in ($(lang_checks_parallelized)): Fix detection
1054         of -j argument.
1055
1056 2016-11-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1057
1058         Backport from mainline
1059         2016-11-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1060
1061         PR target/77822
1062         * config/aarch64/aarch64.md (*tb<optab><mode>1): Use
1063         aarch64_simd_shift_imm_<mode> predicate for operand 1.
1064         (<optab>, ANY_EXTRACT): Use tighter predicates on operands 2 and 3
1065         to restrict them to an appropriate range and add FAIL check if the
1066         region they specify is out of range.  Delete useless constraint
1067         strings.
1068         (*<optab><mode>, ANY_EXTRACT): Add appropriate predicates on operands
1069         2 and 3 to restrict their range and add pattern predicate.
1070
1071 2016-11-18  Walter Lee  <walt@tilera.com>
1072
1073         Backport from mainline
1074         2016-11-18  Walter Lee  <walt@tilera.com>
1075
1076         * config/tilegx/tilegx.c (tilegx_gen_bundles): Preserve
1077           end-of-bundle marker for consecutive barriers.
1078
1079 2016-11-18  Walter Lee  <walt@tilera.com>
1080
1081         Backport from mainline
1082         2016-11-18  Walter Lee  <walt@tilera.com>
1083
1084         * config/tilegx/tilegx.md (clzsi2): Fix for big-endian.
1085
1086 2016-11-15  Matthias Klose  <doko@ubuntu.com>
1087
1088         * doc/install.texi: Move the 'Overriding configure test results'
1089         subsub section to the 'Cross-Compiler-Specific Options' sub section.
1090
1091 2016-11-13  Eric Botcazou  <ebotcazou@adacore.com>
1092
1093         * ipa-icf.c (sem_function::merge): Do not create a wrapper also if the
1094         original function needs a static chain.
1095
1096 2016-11-11  Uros Bizjak  <ubizjak@gmail.com>
1097
1098         PR target/78310
1099         * config/i386/i386.md (rotate to rotatex splitter): Avoid overflow
1100         when calculating operand 2.
1101         (rotate to rotatex zext splitter): Ditto.
1102
1103 2016-11-11  Dominik Vogt  <vogt@linux.vnet.ibm.com>
1104
1105         PR target/77822
1106         * config/s390/s390.md ("extzv", "*extzv<mode>_zEC12")
1107         ("*extzv<mode>_z10"): Check validity of zero_extend arguments.
1108
1109 2016-11-09  Uros Bizjak  <ubizjak@gmail.com>
1110
1111         PR target/78262
1112         * config/i386/i386.md (*<shift_insn><mode>3_doubleword): Mark
1113         operand 0 as earlyclobber.
1114         (*ashl<mode>3_doubleword): Ditto for all operand 0 alternatives.
1115
1116 2016-11-07  Peter Bergner  <bergner@vnet.ibm.com>
1117
1118         Backport from trunk
1119         2016-11-07  Peter Bergner  <bergner@vnet.ibm.com>
1120
1121         * config.gcc (powerpc*-*-*, rs6000*-*-*): Remove setting of
1122         INCLUDE_EXTRA_SPEC for Advance Toolchain builds.
1123
1124 2016-11-06  Jack Howarth  <howarth.at.gcc@gmail.com>
1125
1126         PR driver/78206
1127         * incpath.c: (remove_dup(): Also silently ignore EPERM.
1128
1129 2016-11-07  Richard Biener  <rguenther@suse.de>
1130
1131         PR target/78229
1132         * config/i386/i386.c (ix86_gimple_fold_builtin): Do not adjust
1133         EH info.
1134
1135 2016-11-03  Martin Liska  <mliska@suse.cz>
1136
1137         Backport from mainline
1138         2016-08-12  Martin Liska  <mliska@suse.cz>
1139         Adam Fineman  <afineman@afineman.com>
1140
1141         * gcov.c (process_file): Create .gcov file when .gcda
1142         file is missing.
1143
1144 2016-11-03  Richard Biener  <rguenther@suse.de>
1145
1146         Backport from mainline
1147         2016-09-29  Richard Biener  <rguenther@suse.de>
1148
1149         PR tree-optimization/77768
1150         * tree-ssa-sccvn.c (visit_reference_op_store): Properly deal
1151         with stores to a place we know has a constant value.
1152         * tree-vrp.c (set_defs_to_varying): New helper avoiding
1153         writing to vr_const_varying.
1154         (vrp_initialize): Call it.
1155         (vrp_visit_stmt): Likewise.
1156         (evrp_dom_walker::before_dom_children): Likewise.
1157         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
1158         Handle stores to readonly memory when removing redundant stores.
1159
1160 2016-11-03  Eric Botcazou  <ebotcazou@adacore.com>
1161
1162         Backport from mainline
1163         2016-10-17  Eric Botcazou  <ebotcazou@adacore.com>
1164
1165         * explow.c (validize_mem): Do not modify the argument in-place.
1166
1167 2016-11-02  Will Schmidt  <will_schmidt@vnet.ibm.com>
1168
1169         Backport from trunk
1170         2016-10-26  Will Schmidt <will_schmidt@vnet.ibm.com>
1171
1172         PR middle-end/72747
1173         * gimplify.c (gimplify_init_constructor): Move emit of constructor
1174         assignment to earlier in the if/else logic.
1175
1176 2016-11-02  Richard Biener  <rguenther@suse.de>
1177
1178         Backport from mainline
1179         2016-11-02  Richard Biener  <rguenther@suse.de>
1180
1181         PR tree-optimization/78047
1182         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Initialize
1183         fake field at offset zero conservatively regarding to may_have_pointers.
1184
1185         2016-10-07  Richard Biener  <rguenther@suse.de>
1186
1187         PR tree-optimization/77879
1188         * tree-ssa-structalias.c (handle_const_call): Properly handle
1189         NRV return slots.
1190         (handle_pure_call): Likewise.
1191
1192         2016-10-06  Richard Biener  <rguenther@suse.de>
1193
1194         PR tree-optimization/77839
1195         * tree-ssa-sccvn.c (set_ssa_val_to): Forbid value -> constant value
1196         lattice transition.
1197
1198         2016-09-27  Richard Biener  <rguenther@suse.de>
1199
1200         PR tree-optimization/77745
1201         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
1202         When removing redundant stores make sure to check compatibility
1203         of the TBAA state for downstream accesses.
1204         * tree-ssa-sccvn.c (visit_reference_op_store): Likewise for when
1205         value-numbering virtual operands for store matches.
1206
1207         2016-09-21  Richard Biener  <rguenther@suse.de>
1208
1209         PR tree-optimization/77648
1210         * tree-ssa-structalias.c (process_constraint): Handle all DEREF
1211         with complex RHS.
1212         (make_transitive_closure_constraints): Adjust comment.
1213         (make_any_offset_constraints): New function.
1214         (handle_rhs_call): Make sure to first expand a pointer to all
1215         subfields before transitively closing it.
1216         (handle_const_call): Likewise.  Properly expand returned
1217         pointers as well.
1218         (handle_pure_call): Likewise.
1219
1220 2016-11-01  John David Anglin  <danglin@gcc.gnu.org>
1221
1222         PR target/78166
1223         * config/pa/pa.md: Add new shift/add patterns to handle
1224         (plus (mult (reg) (mem_shadd_operand)) (reg)) source operand.
1225
1226 2016-11-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1227
1228         Backport from mainline
1229         2016-10-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1230
1231         PR rtl-optimization/78038
1232         * ree.c (get_defs): Return NULL if a defining insn for REG cannot
1233         be deduced to set REG through the RTL structure.
1234         (make_defs_and_copies_lists): Return false on a failing get_defs call.
1235
1236 2016-10-29  John David Anglin  <danglin@gcc.gnu.org>
1237
1238         * config/pa/pa.h (BIGGEST_ALIGNMENT): Adjust comment.
1239         (MALLOC_ABI_ALIGNMENT): Define.
1240
1241 2016-10-28  Richard Biener  <rguenther@suse.de>
1242
1243         PR middle-end/78128
1244         PR middle-end/71002
1245         * fold-const.c (make_bit_field_ref): Only adjust alias set
1246         when the original alias set was zero.
1247
1248 2016-10-26  Uros Bizjak  <ubizjak@gmail.com>
1249
1250         Backport from mainline
1251         2016-10-21  Jakub Jelinek  <jakub@redhat.com>
1252
1253         PR target/78057
1254         * config/i386/i386.c: Include fold-const-call.h, tree-vrp.h
1255         and tree-ssanames.h.
1256         (ix86_fold_builtin): Fold IX86_BUILTIN_[LT]ZCNT{16,32,64}
1257         with INTEGER_CST argument.
1258         (ix86_gimple_fold_builtin): New function.
1259         (TARGET_GIMPLE_FOLD_BUILTIN): Define.
1260
1261         Backport from mainline
1262         2016-10-20 Uros Bizjak  <ubizjak@gmail.com>
1263
1264         PR target/78037
1265         * config/i386/bmiintrin.h (__tzcnt_u16): Call __builtin_ia32_tzcnt_u16.
1266         (__tzcnt_u32, _tzcnt_u32): Call __builtin_ia32_tzcnt_u32.
1267         (__tzcnt_u64, _tzcnt_u64): Call __builtin_ia32_tzcnt_u64.
1268         * config/i386/lzcntintrin.h (__lzcnt_u16): Call
1269         __builtin_ia32_lzcnt_u16.
1270         (__lzcnt_u32, _lzcnt_u32): Call __builtin_ia32_lzcnt_u32.
1271         (__lzcnt_u64, _lzcnt_u64): Call __builtin_ia32_lzcnt_u64.
1272         * config/i386/i386.md (UNSPEC_LZCNT, UNSPEC_TZCNT): New unspecs.
1273         (ctz<mode>2, *ctz<mode>2): Use SWI48 mode iterator.
1274         (bmi_tzcnt_<mode>): New expander.
1275         (*bmi_tzcnt_<mode>_falsedep_1): New define_insn_and_split pattern.
1276         (*bmi_tzcnt_<mode>_falsedep, *bmi_tzcnt_<mode>): New insn patterns.
1277         (clz<mode>2_lzcnt, *clz<mode>2_lzcnt): Use SWI48 mode iterator.
1278         (lzcnt_<mode>): New expander.
1279         (*lzcnt_<mode>_falsedep_1): New define_insn_and_split pattern.
1280         (*lzcnt_<mode>_falsedep, *lzcnt_<mode>): New insn patterns.
1281         * config/i386/i386-builtin-types.def (UINT_FTYPE_UINT): New.
1282         (UINT64_FTYPE_UINT64): New.
1283         * config/i386/i386-builtin.def (__builtin_clzs): Remove description.
1284         (__builtin_ia32_lzcnt_u16): New description.
1285         (__builtin_ia32_lzcnt_u32): Ditto.
1286         (__builtin_ia32_lzcnt_u64): Ditto.
1287         (__builtin_ctzs): Remove description.
1288         (__builtin_ia32_tzcnt_u16): New description.
1289         (__builtin_ia32_tzcnt_u32): Ditto.
1290         (__builtin_ia32_tzcnt_u64): Ditto.
1291         * config/i386/i386.c (ix86_expand_args_builtin): Handle
1292         UINT_FTYPE_UINT and UINT64_FTYPE_UINT64.
1293
1294 2016-10-25  Eric Botcazou  <ebotcazou@adacore.com>
1295
1296         * tree.h (wi::fits_to_tree_p): Accept only 0 and 1 for boolean types.
1297         * tree.c (int_fits_type_p): Likewise.  Adjust head comment.
1298
1299 2016-10-24  Bernd Edlinger  <bernd.edlinger@hotmail.de>
1300
1301         Backport from mainline
1302         2016-09-21  Bernd Edlinger  <bernd.edlinger@hotmail.de>
1303
1304         PR tree-optimization/77550
1305         * tree-vect-stmts.c (create_array_ref): Change parameters.
1306         (get_group_alias_ptr_type): New function.
1307         (vectorizable_store, vectorizable_load): Use get_group_alias_ptr_type.
1308
1309 2016-10-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1310
1311         Backport from mainline
1312         2016-10-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1313
1314         PR tree-optimization/77916
1315         * gimple-ssa-strength-reduction.c (create_add_on_incoming_edge):
1316         Don't allow a MINUS_EXPR for pointer arithmetic for either known
1317         or unknown strides.
1318         (record_increment): Increments of -1 for unknown strides just use
1319         a multiply initializer like other negative values.
1320         (analyze_increments): Remove stopgap solution for -1 increment
1321         applied to pointer arithmetic.
1322         (insert_initializers): Requirement of initializer for -1 should be
1323         based on pointer-typedness of the candidate basis.
1324
1325 2016-10-23  Eric Botcazou  <ebotcazou@adacore.com>
1326
1327         * config/sparc/sparc.md (cpu_feature): Minor tweak.
1328         (enabled): Likewise.
1329         (movsi_insn, movdi_insn_sp32, movdi_insn_sp64, movsf_insn,
1330         movdf_insn_sp32, movdf_insn_sp64, zero_extendsidi2_insn_sp64,
1331         sign_extendsidi2_insn, mov<VM32:mode>_insn, mov<VM64:mode>_insn_sp64,
1332         mov<VM64:mode>_insn_sp32, not_<code><mode>, nand<mode>_vis,
1333         <code>_not1<mode>_vi, <code>_not2<mode>_vis, one_cmpl<mode>2,
1334         fcmp<code><GCM:gcm_name>, pdistn<mode>_vis): Likewise.
1335
1336 2016-10-23  Eric Botcazou  <ebotcazou@adacore.com>
1337
1338         * config/sparc/sparc-c.c (sparc_target_macros): Replace TARGET_64BIT
1339         with TARGET_ARCH64.  Define __VIS to 0x400 if TARGET_VIS4.
1340
1341 2016-10-19  Uros Bizjak  <ubizjak@gmail.com>
1342
1343         PR target/77991
1344         * config/i386/i386.c (legitimize_tls_address)
1345         <case TLS_MODEL_INITIAL_EXEC>: For TARGET_64BIT || TARGET_ANY_GNU_TLS
1346         convert dest to Pmode if different than Pmode.
1347
1348 2016-10-18  Kugan Vivekanandarajah  <kuganv@linaro.org>
1349
1350         Backport from mainline
1351         2016-10-11  Kugan Vivekanandarajah  <kuganv@linaro.org>
1352
1353         * tree-vrp.c (vrp_intersect_ranges_1): Allocate bitmap before
1354         copying.
1355
1356 2016-10-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1357
1358         Backport from mainline
1359         2016-10-12  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1360
1361         PR tree-optimization/77937
1362         * gimple-ssa-strength-reduction.c (analyze_increments): Use
1363         POINTER_TYPE_P on the candidate type to determine whether
1364         candidates in this chain require pointer arithmetic.
1365
1366         2016-10-13  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1367
1368         PR tree-optimization/77937
1369         * gimple-ssa-strength-reduction.c (analyze_increments): Set cost
1370         to infinite when we have a pointer with an increment of -1.
1371
1372 2016-10-17  Martin Liska  <mliska@suse.cz>
1373
1374         Backported from mainline
1375         2016-10-13  Martin Liska  <mliska@suse.cz>
1376
1377         PR tree-optimization/77943
1378         * tree-ssa-tail-merge.c (merge_stmts_p): Do not merge BBs with
1379         a different EH landing pads.
1380
1381 2016-10-17  Eric Botcazou  <ebotcazou@adacore.com>
1382
1383         PR bootstrap/77995
1384         Backport from mainline
1385         2016-10-11  Eric Botcazou  <ebotcazou@adacore.com>
1386
1387         * tree.h (build_complex_type): Add second parameter with default.
1388         * tree.c (build_complex_type): Add NAMED second parameter and adjust
1389         recursive call.  Create a TYPE_DECL only if NAMED is true.
1390         (build_common_tree_nodes): Pass true in calls to build_complex_type.
1391
1392 2016-10-16  Eric Botcazou  <ebotcazou@adacore.com>
1393
1394         * config/sparc/sparc.c (sparc_expand_vector_init): Only accept literal
1395         constants in CONST_VECTORs.
1396
1397 2016-10-15  Eric Botcazou  <ebotcazou@adacore.com>
1398
1399         * config/sparc/sparc.c (sparc_expand_vec_perm_bmask): Use a scratch
1400         register as destination of bmask.
1401         (vector_init_bshuffle): Likewise.
1402         * config/sparc/sparc.md (vec_perm_constv8qi): Likewise.
1403         (bmaskdi_vis): Enable only in 64-bit mode.
1404
1405 2016-10-13  Andrew Senkevich  <andrew.senkevich@intel.com>
1406
1407         Backport from trunk
1408         * common/config/i386/i386-common.c (OPTION_MASK_ISA_PCOMMIT_UNSET,
1409         OPTION_MASK_ISA_PCOMMIT_SET): Deleted definitions.
1410         (ix86_handle_option): Deleted handle of OPT_mpcommit.
1411         * config.gcc: Deleted pcommitintrin.h
1412         * config/i386/pcommitintrin.h: Deleted file.
1413         * config/i386/cpuid.h (bit_PCOMMIT): Deleted.
1414         * config/i386/driver-i386.c (host_detect_local_cpu): Deleted pcommit
1415         detection.
1416         * config/i386/i386-c.c (ix86_target_macros_internal): Deleted define
1417         __PCOMMIT__.
1418         * config/i386/i386.c (ix86_target_string): Deleted -mpcommit.
1419         (PTA_PCOMMIT, IX86_BUILTIN_PCOMMIT, __builtin_ia32_pcommit): Deleted.
1420         (ix86_option_override_internal): Deleted handle of option.
1421         (ix86_valid_target_attribute_inner_p): Deleted pcommit.
1422         * config/i386/i386.h (TARGET_PCOMMIT, TARGET_PCOMMIT_P): Deleted.
1423         * config/i386/i386.md (unspecv): Deleted UNSPECV_PCOMMIT.
1424         (pcommit): Deleted instruction.
1425         * config/i386/i386.opt: Mention -mpcommit deprecation.
1426         * config/i386/x86intrin.h: Deleted inclusion of pcommitintrin.h.
1427
1428 2016-10-13  Tom de Vries  <tom@codesourcery.com>
1429
1430         revert:
1431         2016-10-11  Tom de Vries  <tom@codesourcery.com>
1432
1433         backport from trunk:
1434         2016-10-11  Tom de Vries  <tom@codesourcery.com>
1435
1436         PR middle-end/77558
1437         * builtins.c (std_canonical_va_list_type): Remove RECORD_TYPE
1438         special-casing.
1439
1440 2016-10-11  Tom de Vries  <tom@codesourcery.com>
1441
1442         backport from trunk:
1443         2016-10-11  Tom de Vries  <tom@codesourcery.com>
1444
1445         PR middle-end/77558
1446         * builtins.c (std_canonical_va_list_type): Remove RECORD_TYPE
1447         special-casing.
1448
1449 2016-10-10  Georg-Johann Lay  <avr@gjlay.de>
1450
1451         * config/avr/gen-avr-mmcu-texi.c (string.h): Include.
1452
1453 2016-10-06  Uros Bizjak  <ubizjak@gmail.com>
1454
1455         PR target/77874
1456         * config/i386/sse.md (<mask_codefor><code><mode>3<mask_name>):
1457         Remove wrong assert.
1458         (<floatsuffix>float<sseintvecmodelower><mode>2<mask_name><round_name>:
1459         Use <round_constraint> as operand 1 constraint.
1460
1461 2016-10-06  James Clarke  <jrtc27@jrtc27.com>
1462             Eric Botcazou  <ebotcazou@adacore.com>
1463
1464         PR target/77759
1465         * config/sparc/sparc.c (classify_data_t): Remove int_regs field.
1466         (classify_registers): Don't set it
1467         (function_arg_slotno): Don't initialize and test it.  Tidy up.
1468
1469 2016-10-04  Uros Bizjak  <ubizjak@gmail.com>
1470
1471         Backport from mainline
1472         2016-09-29  Uros Bizjak  <ubizjak@gmail.com>
1473
1474         * config/i386/driver-i386.c (host_detect_local_cpu): Check maximum
1475         ext_level before calling CPUID with 0x80000008.
1476
1477         2016-09-29  Uros Bizjak  <ubizjak@gmail.com>
1478
1479         PR target/77756
1480         * config/i386/cpuid.h (__get_cpuid_count): New.
1481         (__get_cpuid): Rename __level to __leaf.
1482
1483 2016-09-30  Michael Meissner  <meissner@linux.vnet.ibm.com>
1484
1485         Back port from trunk
1486
1487         2016-09-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
1488
1489         PR target/77670
1490         * config/rs6000/predicates.md (invert_fpmask_comparison_operator):
1491         New predicate that matches the ISA 3.0 XSCMP{EQ,GT,GE}DP
1492         instructions when you want to invert the test.
1493         * config/rs6000/rs6000.md (fpmask<mode>): Use the arguments in the
1494         correct order for XXSEL.
1495         (mov<SFDF:mode><SFDF2:mode>cc_invert_p9): Define the inverted test
1496         for using XSCMP{EQ,GT,GE}DP.
1497
1498 2016-09-28  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1499             Alan Modra  <amodra@gmail.com>
1500
1501         Backport from mainline
1502         2016-07-01  Alan Modra  <amodra@gmail.com>
1503
1504         PR rtl-optimization/71709
1505         * ira-lives.c (find_call_crossed_cheap_reg): Exit loop on arg reg
1506         being set, not referenced.
1507
1508 2016-09-27  David Edelsohn  <dje.gcc@gmail.com>
1509
1510         Backport from mainline
1511         2016-09-27  David Edelsohn  <dje.gcc@gmail.com>
1512
1513         * config/rs6000/rs6000.c (rs6000_output_symbol): Don't modify
1514         VAR_DECL string.
1515
1516         2016-09-24  David Edelsohn  <dje.gcc@gmail.com>
1517
1518         * configure.ac (gcc_cv_as_aix_dwloc): Fix typo in assembly fragment.
1519         * configure: Regenerate.
1520
1521 2016-09-27  Richard Biener  <rguenther@suse.de>
1522
1523         Backport from mainline
1524         2016-09-01  Richard Biener  <rguenther@suse.de>
1525
1526         PR middle-end/77436
1527         * tree-chrec.c (tree_fold_binomial): Use widest_int, properly
1528         check whether the result fits the desired result type.
1529
1530         2016-09-19  Richard Biener  <rguenther@suse.de>
1531
1532         PR tree-optimization/77514
1533         * tree-ssa-pre.c (create_expression_by_pieces): Optimize
1534         search for folded stmt.
1535
1536         2016-09-15  Richard Biener  <rguenther@suse.de>
1537
1538         PR tree-optimization/77514
1539         * tree-ssa-pre.c (create_expression_by_pieces): Handle garbage
1540         only forced_stmts sequence.
1541
1542         2016-09-15  Richard Biener  <rguenther@suse.de>
1543
1544         PR middle-end/77544
1545         * fold-const.c (split_tree): Do not split constant ~X.
1546
1547         2016-09-19  Richard Biener  <rguenther@suse.de>
1548
1549         PR middle-end/77605
1550         * tree-data-ref.c (analyze_subscript_affine_affine): Use the
1551         proper niter to bound the loops.
1552
1553         2016-09-22  Richard Biener  <rguenther@suse.de>
1554
1555         PR middle-end/77679
1556         * gimple-fold.c (fold_array_ctor_reference): Turn asserts into
1557         fold fails.
1558
1559 2016-09-25  Uros Bizjak  <ubizjak@gmail.com>
1560
1561         Backport from mainline
1562         2016-09-21  Richard Biener  <rguenther@suse.de>
1563                     Jakub Jelinek  <jakub@redhat.com>
1564
1565         PR tree-optimization/77621
1566         * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Split
1567         group at non-vectorizable stmts.
1568
1569         Backport from mainline
1570         2016-09-20  Uros Bizjak  <ubizjak@gmail.com>
1571
1572         PR target/77621
1573         * config/i386/i386.c (ix86_preferred_simd_mode) <case DFmode>:
1574         Don't return word_mode for !TARGET_VECTORIZE_DOUBLE.
1575         (ix86_add_stmt_cost): Penalize DFmode vector operations
1576         for !TARGET_VECTORIZE_DOUBLE.
1577
1578 2016-09-22  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
1579
1580         Backport from 2016-09-22 trunk r240388.
1581
1582         * config/avr/avr.c (avr_rtx_costs_1): Handle DImode MULT.
1583         (avr_address_cost): Replace 61 with MAX_LD_OFFSET(mode).
1584
1585 2016-09-21  Segher Boessenkool  <segher@kernel.crashing.org>
1586
1587         * doc/rtl.texi (JUMP_LABEL): Document RETURN and SIMPLE_RETURN values.
1588
1589 2016-09-21  Georg-Johann Lay  <avr@gjlay.de>
1590
1591         Backport from 2016-09-21 trunk r240306.
1592
1593         PR target/77326
1594         * config/avr/avr.c (avr_notice_update_cc) [CC_NONE]: If insn
1595         touches some regs mentioned in cc_status, do CC_STATUS_INIT.
1596
1597 2016-09-20  Thomas Preud'homme  <thomas.preudhomme@arm.com>
1598
1599         Backport from mainline
1600         2016-07-14  Thomas Preud'homme  <thomas.preudhomme@arm.com>
1601
1602         * lra-constraints.c (match_reload): Pass information about other
1603         output operands.  Create new unique register value if matching input
1604         operand shares same register value as output operand being considered.
1605         (curr_insn_transform): Record output operands already processed.
1606
1607 2016-09-16  Jonathan Wakely  <jwakely@redhat.com>
1608
1609         * doc/extend.texi (Integer Overflow Builtins): Fix type of out
1610         parameters for functions taking long long arguments.
1611
1612 2016-09-16  David Edelsohn  <dje.gcc@gmail.com>
1613
1614         Backported from mainline
1615         2016-08-26  David Edelsohn  <dje.gcc@gmail.com>
1616
1617         PR target/77349
1618         * config/rs6000/xcoff.h (DWARF_OFFSET_SIZE): Define as PTR_SIZE.
1619
1620 2016-09-16  Jakub Jelinek  <jakub@redhat.com>
1621             Eric Botcazou  <ebotcazou@adacore.com>
1622
1623         PR middle-end/77594
1624         * internal-fn.c (expand_arith_overflow) <case MINUS_EXPR>: Don't fall
1625         through into expand_addsub_overflow after expand_neg_overflow.
1626
1627 2016-09-16  Jakub Jelinek  <jakub@redhat.com>
1628
1629         Backported from mainline
1630         2016-09-14  Jakub Jelinek  <jakub@redhat.com>
1631
1632         PR sanitizer/68260
1633         * tsan.c: Include target.h.
1634         (enum tsan_atomic_action): Add bool_clear and bool_test_and_set.
1635         (BOOL_CLEAR, BOOL_TEST_AND_SET): Define.
1636         (tsan_atomic_table): Add BUILT_IN_ATOMIC_CLEAR and
1637         BUILT_IN_ATOMIC_TEST_AND_SET entries.
1638         (instrument_builtin_call): Handle bool_clear and bool_test_and_set.
1639
1640         2016-09-08  Jakub Jelinek  <jakub@redhat.com>
1641
1642         PR fortran/77516
1643         * omp-low.c (lower_rec_simd_input_clauses): Use max_vf for non-positive
1644         OMP_CLAUSE_SAFELEN_EXPR.
1645
1646         2016-09-06  Jakub Jelinek  <jakub@redhat.com>
1647
1648         PR target/69255
1649         * config/i386/i386.c (ix86_expand_builtin): For builtin with
1650         unsupported or unknown ISA, use expand_call.
1651
1652 2016-09-06  Uros Bizjak  <ubizjak@gmail.com>
1653
1654         Backport from mainline
1655         2016-09-05  Uros Bizjak  <ubizjak@gmail.com>
1656
1657         PR rtl-optimization/77452
1658         * explow.c (plus_constant) <case MEM>: Extract scalar constant from
1659         inner-mode reference to a CONST_VECTOR constant in the constant pool.
1660
1661 2016-09-01  Jakub Jelinek  <jakub@redhat.com>
1662
1663         Backported from mainline
1664         2016-08-30  Jakub Jelinek  <jakub@redhat.com>
1665
1666         PR tree-optimization/72866
1667         * tree-vect-patterns.c (search_type_for_mask): Turn into
1668         a small wrapper, move all code to ...
1669         (search_type_for_mask_1): ... this new function.  Add caching
1670         and adjust recursive calls.
1671
1672         PR debug/77363
1673         * dwarf2out.c (modified_type_die): Use lookup_type_die (type)
1674         instead of lookup_type_die (type_main_variant (type)) even for array
1675         types.
1676
1677         PR middle-end/77377
1678         * simplify-rtx.c (avoid_constant_pool_reference): For out of bounds
1679         constant pool reference return x instead of c.
1680
1681         2016-08-19  Jakub Jelinek  <jakub@redhat.com>
1682
1683         * config/i386/t-i386 (i386-c.o): Don't depend on
1684         i386-builtin-types.inc.
1685         (i386.o): Depend on i386-builtin-types.inc.
1686
1687         2016-08-17  Jakub Jelinek  <jakub@redhat.com>
1688
1689         PR middle-end/77259
1690         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): If
1691         turning a call into __builtin_unreachable-like noreturn call, adjust
1692         gimple_call_set_fntype.
1693         * tree-cfgcleanup.c (fixup_noreturn_call): Remove lhs also if
1694         gimple_call_fntype has void return type.
1695
1696         2016-08-16  Jakub Jelinek  <jakub@redhat.com>
1697
1698         PR target/71910
1699         * tree-cfg.c (execute_fixup_cfg): Add node variable, use it.  Before inlining,
1700         add cgraph edge for the added __builtin_unreachable call.
1701
1702 2016-09-01  Gerald Pfeifer  <gerald@pfeifer.com>
1703
1704         * doc/extend.texi (SPU Built-in Functions): Remove stale
1705         references to material formerly at IBM and Sony.
1706
1707 2016-09-01  Matthew Wahab  <matthew.wahab@arm.com>
1708
1709         PR target/77281
1710         * config/arm/arm.c (neon_valid_immediate): Delete declaration.
1711         Use const_vec_duplicate to check for duplicated elements.
1712
1713 2016-09-01  Eric Botcazou  <ebotcazou@adacore.com>
1714
1715         * config/i386/i386.c (ix86_option_override_internal): Also disable the
1716         STV pass if -mstackrealign is enabled.
1717
1718 2016-08-31  Patrick Palka  <ppalka@gcc.gnu.org>
1719
1720         Backport from mainline
1721         2016-08-27  Patrick Palka  <ppalka@gcc.gnu.org>
1722
1723         PR tree-optimization/71077
1724         PR tree-optimization/68542
1725         * fold-const.c (fold_relational_const): Fix folding of
1726         VECTOR_CST comparisons that have a scalar boolean result type.
1727
1728 2016-08-31  Gerald Pfeifer  <gerald@pfeifer.com>
1729
1730         * doc/install.texi (Binaries): www.opencsw.org now uses https.
1731
1732 2016-08-31  Jakub Sejdak  <jakub.sejdak@phoesys.com>
1733
1734         * config.gcc: Add support for arm*-*-phoenix* targets.
1735         * config/arm/t-phoenix: New.
1736         * config/phoenix.h: New.
1737
1738 2016-08-29  Uros Bizjak  <ubizjak@gmail.com>
1739
1740         PR target/77403
1741         * config/i386/sse.md (vec_set_lo_<mode><mask_name>): Fix assembler
1742         template for intel asm dialect.
1743         (vec_set_hi_<mode><mask_name>): Ditto.
1744
1745 2016-08-29  Eric Botcazou  <ebotcazou@adacore.com>
1746
1747         * Makefile.in (gcov-iov.h): Add dummy recipe.
1748
1749 2016-08-28  Uros Bizjak  <ubizjak@gmail.com>
1750
1751         Backport from mainline
1752         2016-08-23  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
1753
1754         * config/i386/i386.c (processor_alias_table): Enable PTA_PRFCHW
1755         for targets amdfam10 and barcelona.
1756
1757         Backport from mainline
1758         2016-08-21  Uros Bizjak  <ubizjak@gmail.com>
1759
1760         PR target/77270
1761         * config/i386/i386.md (prefetch): When TARGET_PRFCHW or
1762         TARGET_PREFETCHWT1 are disabled, emit 3dNOW! write prefetches for
1763         non-SSE2 athlons only, otherwise prefer SSE prefetches.
1764
1765         Backport from mainline
1766         2016-08-19  Uros Bizjak  <ubizjak@gmail.com>
1767
1768         PR target/77270
1769         * config/i386/i386.c (ix86_option_override_internal): Remove
1770         PTA_PRFCHW from entries that also have PTA_3DNOW flag.
1771         Enable SSE prefetch also for TARGET_PREFETCHWT1.
1772         Do not try to enable TARGET_PRFCHW ISA flag here.
1773         * config/i386/i386.md (prefetch): Enable also for TARGET_3DNOW.
1774         Rewrite expander function body.
1775         (*prefetch_3dnow): Enable for TARGET_3DNOW and TARGET_PREFETCHWT1.
1776
1777 2016-08-28  Tom de Vries  <tom@codesourcery.com>
1778
1779         backport from trunk:
1780         2016-08-28  Tom de Vries  <tom@codesourcery.com>
1781
1782         PR lto/70955
1783         * config/i386/i386.c (ix86_build_builtin_va_list_64): Tag type with
1784         'sysv_abi va_list' attribute.
1785         (ix86_build_builtin_va_list): Tag type with 'ms_abi va_list' attribute.
1786         (ix86_canonical_va_list_type): Handle 'sysv_abi/ms_abi va_list'
1787         attributes.
1788
1789 2016-08-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1790
1791         Backport from mainline
1792         2016-08-11  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1793
1794         PR target/72863
1795         * vsx.md (vsx_load_<mode>): For P8LE, emit swaps at expand time.
1796         (vsx_store_<mode>): Likewise.
1797
1798 2016-08-24  Richard Biener  <rguenther@suse.de>
1799
1800         Backport from mainline
1801         2016-08-17  Richard Biener  <rguenther@suse.de>
1802
1803         PR tree-optimization/76490
1804         * tree-vrp.c (update_value_range): Preserve overflow infinities
1805         when intersecting with ranges from get_range_info.
1806         (operand_less_p): Handle overflow infinities correctly.
1807         (value_range_constant_singleton): Use vrp_operand_equal_p
1808         to handle overflow max/min correctly.
1809         (vrp_valueize): Likewise.
1810         (union_ranges): Likewise.
1811         (intersect_ranges): Likewise.
1812
1813 2016-08-24  Sebastian Huber  <sebastian.huber@embedded-brains.de>
1814
1815         * config/arm/t-rtems: Add vfp multilib.
1816
1817 2016-08-23  Richard Biener  <rguenther@suse.de>
1818
1819         Backport from mainline
1820         2016-08-16  Richard Biener  <rguenther@suse.de>
1821
1822         PR tree-optimization/76783
1823         * tree-ssa-propagate.c (ssa_prop_init): Use RPO order.  Clear
1824         BB visited flags at start.
1825
1826         2016-08-12  Richard Biener  <rguenther@suse.de>
1827
1828         PR tree-optimization/72851
1829         * tree-ssa-propagate.c: Include cfganal.h.  Rewrite block and stmt
1830         worklists to use bitmaps indexed in execution order.
1831         (executable_blocks, cfg_blocks_num, cfg_blocks_tail, cfg_blocks_head,
1832         bb_in_list, interesting_ssa_edges, varying_ssa_edges): Remove.
1833         (cfg_blocks): Make a bitmap.
1834         (bb_to_cfg_order, cfg_order_to_bb, ssa_edge_worklist, uid_to_stmt):
1835         New globals.
1836         (cfg_blocks_empty_p): Adjust.
1837         (cfg_blocks_add): Likewise.
1838         (cfg_blocks_get): Likewise.
1839         (add_ssa_edge): Likewise.
1840         (add_control_edge): Likewise.
1841         (simulate_stmt): Likewise.
1842         (process_ssa_edge_worklist): Likewise.
1843         (simulate_block): Likewise.
1844         (ssa_prop_init): Compute PRE order and stmt UIDs.
1845         (ssa_prop_fini): Adjust.
1846         (ssa_propagate): Adjust.
1847
1848 2016-08-22  Uros Bizjak  <ubizjak@gmail.com>
1849
1850         Backport from mainline
1851         2016-08-15  Uros Bizjak  <ubizjak@gmail.com>
1852
1853         PR target/72867
1854         * config/i386/sse.md (<code><mode>3<mask_name><round_saeonly_name>):
1855         Emit ieee_<ieee_maxmin><mode>3<mask_name><round_saeonly_name>
1856         for !flag_finite_math_only or flag_signed_zeros.
1857         (*<code><mode>3<mask_name><round_saeonly_name>): Rename from
1858         *<code><mode>3_finite<mask_name><round_saeonly_name>.  Do not
1859         depend on flag_finite_math_only.
1860         (ieee_<ieee_maxmin><mode>3<mask_name><round_saeonly_name>):
1861         New insn pattern.
1862         (*<code><mode>3<mask_name><round_saeonly_name>): Remove.
1863         (*ieee_smin<mode>3): Ditto.
1864         (*ieee_smax<mode>3): Ditto.
1865         * config/i386/mmx.md (mmx_<code>v2sf3): Emit
1866         mmx_ieee_<ieee_maxmin>v2sf3 for !flag_finite_math_only or
1867         flag_signed_zeros.
1868         (*mmx_<code>v2sf3): Rename from *mmx_<code>v2sf3_finite.  Do not
1869         depend on flag_finite_math_only.
1870         (mmx_ieee_<ieee_maxmin>v2sf3): New insn pattern.
1871         (*mmx_<code>v2sf3): Remove.
1872         * config/i386/subst.md (round_saeonly_mask_arg3): New subst attribute.
1873         * config/i386/i386.c (ix86_expand_sse_fp_mimnax): Check
1874         flag_signed_zeros instead of !flag_unsafe_math_optimizations.
1875
1876 2016-08-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1877
1878         Backport from mainline
1879         2016-07-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1880
1881         PR middle-end/71700
1882         * expr.c (store_constructor): Mask sign-extended bits when widening
1883         sub-word constructor element at the start of a word.
1884
1885 2016-08-22  Richard Biener  <rguenther@suse.de>
1886
1887         * BASE-VER: Set to 6.2.1.
1888
1889 2016-08-22  Release Manager
1890
1891         * GCC 6.2.0 released.
1892
1893 2016-08-18  Chung-Lin Tang  <cltang@codesourcery.com>
1894
1895         Backport from mainline
1896         2016-08-18  Chung-Lin Tang  <cltang@codesourcery.com>
1897
1898         PR middle-end/70895
1899         * gimplify.c (omp_add_variable): Adjust/add variable mapping on
1900         enclosing parallel construct for reduction variables on OpenACC loop
1901         directives.
1902
1903 2016-08-18  Oleg Endo  <olegendo@gcc.gnu.org>
1904
1905         Backport from mainline
1906         2016-06-17  DJ Delorie  <dj@redhat.com>
1907
1908         PR target/71338
1909         * config/rl78/rl78-expand.c (umulqihi3): Enable for G10.
1910         * config/rl78/rl78-virtual.c (umulhi3_shift_virt): Likewise.
1911         (umulqihi3_virt): Likewise.
1912         * config/rl78/rl78-real.c (umulhi3_shift_real): Likewise.
1913         (umulqihi3_real): Likewise.
1914
1915 2016-08-16  Eric Botcazou  <ebotcazou@adacore.com>
1916
1917         * doc/install.texi (*-*-solaris2*): Adjust latest change.
1918
1919 2016-08-15  Martin Liska  <mliska@suse.cz>
1920
1921         Backported from mainline
1922         2016-08-15  Martin Liska  <mliska@suse.cz>
1923
1924         PR driver/72765
1925         * gcc.c (do_spec_1): Call save_string with the right size.
1926
1927 2016-08-15  Jakub Jelinek  <jakub@redhat.com>
1928
1929         PR debug/71906
1930         * dwarf2out.c (string_types): New variable.
1931         (gen_array_type_die): Change early_dwarf handling of
1932         DW_AT_string_length, create DW_OP_call4 referencing the
1933         length var temporarily.  Handle parameters that are pointers
1934         to string length.
1935         (adjust_string_types): New function.
1936         (gen_subprogram_die): Temporarily set string_types to local var,
1937         call adjust_string_types if needed.
1938         (non_dwarf_expression, copy_deref_exprloc, optimize_string_length):
1939         New functions.
1940         (resolve_addr): Adjust DW_AT_string_length if it is DW_OP_call4.
1941
1942 2016-08-15  Richard Biener  <rguenther@suse.de>
1943
1944         PR tree-optimization/73434
1945         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Preserve
1946         TBAA info on the base when forwarding a non-invariant address.
1947
1948 2016-08-15  Eric Botcazou  <ebotcazou@adacore.com>
1949
1950         * doc/install.texi (*-*-solaris2*): Fix version number and document
1951         requirement on GNU make for building libjava with the Solaris linker.
1952
1953 2016-08-15  Martin Liska  <mliska@suse.cz>
1954             Jakub Jelinek  <jakub@redhat.com>
1955
1956         PR tree-optimization/72824
1957         * tree-loop-distribution.c (const_with_all_bytes_same)
1958         <case VECTOR_CST>: Fix a typo.
1959
1960 2016-08-14  Uros Bizjak  <ubizjak@gmail.com>
1961
1962         Backport from mainline
1963         2016-08-14  Uros Bizjak  <ubizjak@gmail.com>
1964
1965         PR target/76342
1966         * config/i386/avx512fintrin.h (_mm512_undefined_epi32):
1967         Renamed from _mm512_undefined_si512.
1968         (_mm_undefined_si512): New definition.
1969
1970         Backport from mainline:
1971         2016-08-09  David Wohlferd  <dw@LimeGreenSocks.com>
1972
1973         * config/i3836/avx512fintrin.h (_mm512_cvtsepi64_epi32): Remove
1974         unused variable __O.
1975
1976         Backport from mainline:
1977         2016-08-09  Uros Bizjak  <ubizjak@gmail.com>
1978
1979         PR target/72843
1980         * config/i386/i386.md (*movtf_internal): Use
1981         lra_in_progress || reload_completed instead of !can_create_pseudo_p
1982         in the insn constraint.
1983         (*movxf_internal): Ditto.
1984         (*movdf_internal): Ditto.
1985         (*movsf_internal): Ditto.
1986
1987 2016-08-12  Jakub Jelinek  <jakub@redhat.com>
1988
1989         PR c/71512
1990         * ubsan.c (instrument_si_overflow): Pass true instead of false
1991         to gsi_replace.
1992         (pass_ubsan::execute): Call gimple_purge_dead_eh_edges at the end
1993         of bbs.  Return TODO_cleanup_cfg if any returned true.
1994
1995 2016-08-12  Bernd Edlinger  <bernd.edlinger@hotmail.de>
1996
1997         Backport from mainline
1998         2016-08-11  Bernd Edlinger  <bernd.edlinger@hotmail.de>
1999
2000         PR tree-optimization/71083
2001         * tree-predcom.c (ref_at_iteration): Correctly align the
2002         reference type.
2003
2004 2016-08-12  James Greenhalgh  <james.greenhalgh@arm.com
2005
2006         Backport from mainline
2007         2016-08-05  James Greenhalgh  <james.greenhalgh@arm.com>
2008
2009         PR Target/72819
2010         * config/aarch64/aarch64.h (aarch64_fp16_type_node): Declare.
2011         (aarch64_fp16_ptr_type_node): Likewise.
2012         * config/aarch64/aarch64-simd-builtins.c
2013         (aarch64_fp16_ptr_type_node): Define.
2014         (aarch64_init_fp16_types): New, refactored out of...
2015         (aarch64_init_builtins): ...here, update to call
2016         aarch64_init_fp16_types.
2017         * config/aarch64/aarch64.c (aarch64_gimplify_va_arg_expr): Handle
2018         HFmode.
2019         (aapcs_vfp_sub_candidate): Likewise.
2020
2021 2016-08-11  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
2022
2023         Backport from mainline
2024         2016-08-11  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
2025
2026         * config/s390/s390-builtin-types.def: Add INT128 types.
2027         * config/s390/s390-builtins.def: Add INT128 variants for the add
2028         sub low-level builtins dealing with TImode.
2029         * config/s390/s390.c (s390_expand_builtin): Allow mode conversions
2030         via subreg when expanding a builtin.
2031         * config/s390/s390.md: Remove UNSPEC_VEC_ADDC_U128,
2032         UNSPEC_VEC_SUB_U128, and UNSPEC_VEC_SUBC_U128 constants.
2033         Fix comment.
2034         * config/s390/vecintrin.h: Adjust builtin names accordingly.
2035         * config/s390/vx-builtins.md ("vec_add_u128"): Remove expander.
2036         ("vec_addc<mode>", "vec_addc_u128"): Merge to
2037         "vacc<bhfgq>_<mode>".
2038         ("vec_adde_u128"): Rename to "vacq". Change mode to TImode.
2039         ("vec_addec_u128"): Rename to "vacccq". Change mode to TImode.
2040         ("vec_subc<mode>", "vec_subc_u128"): Merge to
2041         "vscbi<bhfgq>_<mode>".
2042         ("vec_sube_u128"): Rename to "vsbiq". Change mode to TImode.
2043         ("vec_subec_u128"): Rename to "vsbcbiq". Change mode to TImode.
2044
2045 2016-08-11  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
2046
2047         Backport from mainline
2048         2016-08-11  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
2049
2050         * config/s390/s390-builtins.def: Mark last operand of s390_vlvg*
2051         and s390_vlgv* builtins as element selector.
2052
2053 2016-08-11  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
2054
2055         Backport from mainline
2056         2016-07-06  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
2057
2058         * config/s390/s390.c (s390_expand_vec_init): Force initializer
2059         element to register if it doesn't match general_operand.
2060
2061 2016-08-11  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
2062
2063         Backport from mainline
2064         2016-06-13  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
2065
2066         * config/s390/vecintrin.h: Fix file description in comment.
2067
2068 2016-08-11  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
2069
2070         Backport from mainline
2071         2016-06-13  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
2072
2073         * config/s390/s390-builtin-types.def: Change builtin type naming
2074         scheme to match builtin-types.def.
2075
2076 2016-08-10  Michael Meissner  <meissner@linux.vnet.ibm.com>
2077
2078         Backport from mainline
2079         2016-08-10  Michael Meissner  <meissner@linux.vnet.ibm.com>
2080
2081         PR target/72853
2082         * config/rs6000/rs6000.c (mem_operand_ds_form): Add check for op
2083         being an offsettable address.
2084
2085 2016-08-10  Jakub Jelinek  <jakub@redhat.com>
2086
2087         Backported from mainline
2088         2016-08-09  Jakub Jelinek  <jakub@redhat.com>
2089
2090         PR tree-optimization/72824
2091         * tree-loop-distribution.c (const_with_all_bytes_same): Verify
2092         real_zerop is not negative.
2093
2094 2016-08-09  Martin Jambor  <mjambor@suse.cz>
2095
2096         PR ipa/71981
2097         * ipa-polymorphic-call.c (get_dynamic_type): Bail out gracefully
2098         if instance is a MEM_REF.
2099
2100 2016-08-09  Richard Biener  <rguenther@suse.de>
2101
2102         Backport from mainline
2103         2016-08-09  Richard Biener  <rguenther@suse.de>
2104
2105         PR ipa/68273
2106         * ipa-prop.c (ipa_modify_formal_parameters): Build
2107         parameter types with natural alignment also for the
2108         over-aligned case.
2109
2110         2016-07-15  Richard Biener  <rguenther@suse.de>
2111
2112         PR tree-optimization/71881
2113         * tree-loop-distribution.c (destroy_loop): Remove blocks in
2114         reverse DOM order to make debug temp generation happy.
2115
2116 2016-08-09  Alan Modra  <amodra@gmail.com>
2117
2118         PR target/72802
2119         * config/rs6000/rs6000.md (mov<mode>_hardfloat): Sort
2120         alternatives.  Put loads first, then stores, and reg/reg moves
2121         within same class later.  Delete attr length.
2122
2123 2016-08-09  Alan Modra  <amodra@gmail.com>
2124
2125         PR target/72802
2126         * config/rs6000/rs6000.c (mem_operand_gpr): Remove vsx dform test.
2127         (mem_operand_ds_form): New predicate.
2128         * config/rs6000/rs6000-protos.h (mem_operand_ds_form): Declare.
2129         * config/rs6000/constraints.md (wY): New constraint.
2130         * config/rs6000/rs6000.md (f32_lm2, f32_sm2): Use wY for SF.
2131         (extendsfdf2_fpr): Replace o constraint with wY.
2132
2133 2016-08-08  Georg-Johann Lay  <avr@gjlay.de>
2134
2135         Backport from 2016-07-29 trunk r238863.
2136
2137         PR rtl-optimization/71976
2138         * combine.c (get_last_value): Return 0 if the argument for which
2139         the function is called has a wider mode than the recorded value.
2140
2141 2016-08-04  Michael Meissner  <meissner@linux.vnet.ibm.com>
2142
2143         Backport from trunk
2144         2016-07-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
2145
2146         PR target/71869
2147         * config/rs6000/rs6000.c (rs6000_generate_compare): Rework
2148         __float128 support when we don't have hardware support, so that
2149         the IEEE built-in functions like isgreater, first call __unordkf3
2150         to make sure neither operand is a NaN, and if both operands are
2151         ordered, do the normal comparison.
2152
2153 2016-08-04  Uros Bizjak  <ubizjak@gmail.com>
2154
2155         PR target/72805
2156         * config/i386/avx512fintrin.h (_mm512_cmp_epi32_mask) [!__OPTIMIZE__]:
2157         Cast builtin function result to __mmask16 instead of __mmask8.
2158         (_mm512_cmp_epu32_mask) [!__OPTIMIZE__]: Ditto.
2159         (_mm512_mask_cmp_epi32_mask) [!__OPTIMIZE__]: Ditto.
2160         (_mm512_mask_cmp_epu32_mask) [!__OPTIMIZE__]: Ditto.
2161
2162 2016-08-03  Georg-Johann Lay  <avr@gjlay.de>
2163
2164         PR 70677
2165         * common/config/avr/avr-common.c (avr_option_optimization_table)
2166         [OPT_LEVELS_ALL]: Turn off -fcaller-saves.
2167
2168 2016-08-01  Georg-Johann Lay  <avr@gjlay.de>
2169
2170         Backport from 2016-08-01 trunk r238948.
2171
2172         PR target/72767
2173         * config/avr/avr.md (length) [branch]: Correct insn length
2174         attribute for forward branches.
2175
2176 2016-08-01  Georg-Johann Lay  <avr@gjlay.de>
2177
2178         Backport from 2016-06-16 trunk r237536.
2179         2016-06-16  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
2180
2181         PR target/71151
2182         * config/avr/avr.c (avr_asm_init_sections): Remove setup of
2183         progmem_swtable_section.
2184         (progmem_swtable_section): Remove.
2185         (avr_asm_function_rodata_section): Remove.
2186         (TARGET_ASM_FUNCTION_RODATA_SECTION): Remove.
2187         * config/avr/avr.h (JUMP_TABLES_IN_TEXT_SECTION): Define to 1.
2188
2189 2016-07-29  Marek Polacek  <polacek@redhat.com>
2190
2191         Backport from mainline
2192         2016-07-29  Marek Polacek  <polacek@redhat.com>
2193
2194         PR c/7652
2195         * config/rs6000/rs6000.c (altivec_expand_ld_builtin): Add break.
2196         (altivec_expand_st_builtin): Likewise.
2197         * config/i386/i386.c (ix86_expand_args_builtin): Likewise.
2198         (ix86_expand_round_builtin): Likewise.
2199
2200 2016-07-27  Segher Boessenkool  <segher@kernel.crashing.org>
2201
2202         PR target/71216
2203         * config/rs6000/rs6000.c (rs6000_file_start): Fix condition for
2204         when to emit a ".machine" pseudo-op.
2205
2206 2016-07-26  Alan Modra  <amodra@gmail.com>
2207
2208         PR target/72103
2209         * config/rs6000/rs6000.c (rs6000_secondary_reload): Initialize
2210         sri->t_icode.
2211
2212 2016-07-21  Jakub Jelinek  <jakub@redhat.com>
2213
2214         PR sanitizer/71953
2215         * asan.c (asan_dynamic_init_call): Call asan_init_shadow_ptr_types
2216         before builtin_decl_implicit.
2217
2218         * tree-object-size.c (unknown): Use HOST_WIDE_INT_M1U instead of -1.
2219
2220 2016-07-21  Andrew Sutton  <andrew.n.sutton@gmail.com>
2221
2222         Improving concepts performance and diagnostics.
2223         * timevar.def (TV_CONSTRAINT_SAT, TV_CONSTRAINT_SUB): New time vars
2224         for constraint satisfaction and subsumption.
2225         * timevar.h (auto_timevar): New constructor that matches the push/pop
2226         pattern of usage in pt.c.
2227
2228 2016-07-20  John David Anglin  <danglin@gcc.gnu.org>
2229
2230         Backport from mainline
2231         2016-07-16  John David Anglin  <danglin@gcc.gnu.org>
2232
2233         * config/pa/pa.c (hppa_profile_hook): Allocate stack space for
2234         register parameters.  Remove code to initialize argument pointer
2235         on TARGET_64BIT.  Optimize call to _mcount when it can be reached
2236         using a pc-relative branch.  Cleanup conditional code.
2237         * config/pa/pa.md (call_mcount): New expander.
2238         (call_mcount_nonpic): New insn.
2239         (call_mcount_pic): New insn and split.
2240         (call_mcount_pic_post_reload): New insn.
2241         (call_mcount_64bit): New insn and split.
2242         (call_mcount_64bit_post_reload): New insn.
2243
2244 2016-07-20  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
2245
2246         Backport from mainline
2247         2016-07-20  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
2248
2249         * config/s390/s390.c (s390_encode_section_info): Remove mode size
2250         check.
2251
2252 2016-07-20  Martin Jambor  <mjambor@suse.cz>
2253
2254         PR fortran/71688
2255         * trans-decl.c (gfc_generate_function_code): Use get_create rather
2256         than create to get a call graph node.
2257
2258 2016-07-19  Jakub Jelinek  <jakub@redhat.com>
2259
2260         PR rtl-optimization/71916
2261         * cfgrtl.c (contains_no_active_insn_p): Return false also for
2262         bb which have a single succ fake edge.
2263
2264 2016-07-19  Aldy Hernandez  <aldyh@redhat.com>
2265
2266         PR debug/71855
2267         * dwarf2out.c (gen_subprogram_die): Only call
2268         gen_unspecified_parameters_die while dumping early dwarf.
2269
2270 2016-07-19  Jakub Jelinek  <jakub@redhat.com>
2271
2272         PR middle-end/71874
2273         * gimple-fold.c (fold_builtin_memory_op): Use
2274         get_addr_base_and_unit_offset instead of get_ref_base_and_extent.
2275
2276 2016-07-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
2277
2278         Back port from mainline
2279         2016-07-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
2280
2281         PR target/71493
2282         * config/rs6000/rs6000.c (rs6000_function_value): Fix
2283         unintentional System V.4 structure return breakage for structures
2284         with a single floating point element.
2285
2286 2016-07-18  Martin Liska  <mliska@suse.cz>
2287
2288         Backported from mainline
2289         2016-07-12  Martin Liska  <mliska@suse.cz>
2290
2291         PR rtl-optimization/71634
2292         * ira-build.c (mark_loops_for_removal): Properly iterate
2293         loops.
2294
2295 2016-07-18  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
2296
2297         Backport from mainline
2298         2016-07-18  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
2299
2300         * config/s390/s390.c (s390_encode_section_info): Always set
2301         notaligned marker if mode size is 0 or no MEM_ALIGN info could be
2302         found.
2303
2304 2016-07-15  Alan Modra  <amodra@gmail.com>
2305
2306         Apply from mainline
2307         2016-07-11  Alan Modra  <amodra@gmail.com>
2308         * config/rs6000/rs6000.md (UNSPEC_DOLOOP): New unspec.
2309         (ctr<mode>): Add unspec.
2310         (ctr<mode>_internal*): Likewise.
2311
2312 2016-07-14  Alan Modra  <amodra@gmail.com>
2313
2314         PR target/71733
2315         * config/rs6000/rs6000.c (rs6000_option_override_internal): Deal
2316         with p9_vector override before power9-dform override.
2317
2318 2016-07-13  Ilya Enkovich  <ilya.enkovich@intel.com>
2319
2320         Backport from mainline r238086.
2321         2016-07-07  Ilya Enkovich  <ilya.enkovich@intel.com>
2322
2323         PR ipa/71624
2324         * ipa-inline-analysis.c (compute_inline_parameters): Set
2325         local.can_change_signature to false for intrumentation
2326         thunk callees.
2327
2328 2016-07-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
2329             Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2330
2331         Backport from mainline
2332         2016-07-05  Michael Meissner  <meissner@linux.vnet.ibm.com>
2333                     Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2334
2335         * config/rs6000/rs6000-protos.h (rs6000_split_signbit): New
2336         prototype.
2337         * config/rs6000/rs6000.c (rs6000_split_signbit): New function.
2338         * config/rs6000/rs6000.md (UNSPEC_SIGNBIT): New constant.
2339         (SIGNBIT): New mode iterator.
2340         (Fsignbit): New mode attribute.
2341         (signbit<mode>2): Change operand1 to match FLOAT128 instead of
2342         IBM128; dispatch to gen_signbit{kf,tf}2_dm for __float128
2343         when direct moves are available.
2344         (signbit<mode>2_dm): New define_insn_and_split).
2345         (signbit<mode>2_dm2): New define_insn.
2346
2347 2016-07-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
2348
2349         Backport from mainline
2350         2016-07-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
2351
2352         PR target/71805
2353         * config/rs6000/altivec.md (altivec_vperm_<mode>_internal):
2354         The xxperm and xxpermr instructions require that the 2nd input
2355         operand overlap with the output operand, and not the 1st.
2356         (altivec_vperm_v8hiv16qi): Likewise.
2357         (altivec_vperm_<mode>_uns_internal): Likewise.
2358         (altivec_vpermr_<mode>_internal): Likewise.
2359         (vperm_v8hiv4si): Likewise.
2360         (vperm_v16qiv8hi): Likewise.
2361
2362 2016-07-12  Segher Boessenkool  <segher@kernel.crashing.org>
2363
2364         Backport from mainline
2365         2016-07-06  Segher Boessenkool  <segher@kernel.crashing.org>
2366
2367         PR target/70098
2368         PR target/71763
2369         * config/rs6000/rs6000.md (*ctr<mode>_internal1, *ctr<mode>_internal2,
2370         *ctr<mode>_internal5, *ctr<mode>_internal6): Add *wi to the output
2371         constraint.
2372
2373 2016-07-11  Jakub Jelinek  <jakub@redhat.com>
2374
2375         PR middle-end/71758
2376         * omp-low.c (expand_omp_target): Gimplify device.
2377
2378         PR tree-optimization/71823
2379         * tree-vect-stmts.c (vectorizable_operation): Use vect_get_vec_defs
2380         to get vec_oprnds2 from op2.
2381
2382 2016-07-11  Yuri Rumyantsev  <ysrumyan@gmail.com>
2383
2384         Backport from mainline r238055.
2385         2016-07-06  Yuri Rumyantsev  <ysrumyan@gmail.com>
2386
2387         PR tree-optimization/71518
2388         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Adjust
2389         misalign also for outer loops with negative step.
2390
2391 2016-07-08  Martin Liska  <mliska@suse.cz>
2392
2393         Backported from mainline
2394         2016-07-08  Martin Liska  <mliska@suse.cz>
2395
2396         PR middle-end/71606
2397         * fold-const.c (fold_convertible_p): As COMPLEX_TYPE
2398         folding produces SAVE_EXPRs, thus return false for the type.
2399
2400 2016-07-08  Kelvin Nilsen  <kelvin@gcc.gnu.org>
2401
2402         * config/rs6000/rs6000-builtin.def (BU_P9_MISC_1): Remove
2403         redundant and erroneous definition of this macro accidentally
2404         inserted during backporting.
2405         (BU_P9_64BIT_MISC_0): Likewise.
2406         (BU_P9_MISC_0): Likewise.
2407
2408 2016-07-08  Jiong Wang  <jiong.wang@arm.com>
2409
2410         Back port from the trunk
2411         2016-07-08  Jiong Wang  <jiong.wang@arm.com>
2412
2413         * config/aarch64/aarch64-simd-builtins.def (smax): Remove float
2414         variants.
2415         (smin): Likewise.
2416         (fmax): New entry.
2417         (fmin): Likewise.
2418         * config/aarch64/arm_neon.h (vmaxnm_f32): Use
2419         __builtin_aarch64_fmaxv2sf.
2420         (vmaxnmq_f32): Likewise.
2421         (vmaxnmq_f64): Likewise.
2422         (vminnm_f32): Likewise.
2423         (vminnmq_f32): Likewise.
2424         (vminnmq_f64): Likewise.
2425
2426 2016-07-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
2427
2428         Back port from trunk
2429         2016-07-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
2430
2431         PR target/71806
2432         * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Do not
2433         enable -mfloat128-hardware by default.
2434         (ISA_3_0_MASKS_IEEE): New macro to give all of the VSX options
2435         that IEEE 128-bit hardware support needs.
2436         * config/rs6000/rs6000.c (rs6000_option_override_internal): If
2437         -mcpu=power9 -mfloat128, enable -mfloat128-hardware by default.
2438         Use ISA_3_0_MASKS_IEEE as the set of options that IEEE 128-bit
2439         floating point requires.
2440         * doc/invoke.texi (RS/6000 and PowerPC Options): Document
2441         -mfloat128 and -mfloat128-hardware changes.
2442
2443 2016-07-08  Kelvin Nilsen  <kelvin@gcc.gnu.org>
2444
2445         Backport from mainline r237912
2446         2016-07-01  Kelvin Nilsen  <kelvin@gcc.gnu.org>
2447
2448         * config/rs6000/altivec.md (*altivec_vpermr_<mode>_internal):
2449         Exchange the order of the second and third operands in the vpermr
2450         instruction tmeplate.
2451
2452 2016-07-07  Michael Meissner  <meissner@linux.vnet.ibm.com>
2453
2454         Back port from the trunk
2455         2016-07-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
2456
2457         PR target/71720
2458         * config/rs6000/vsx.md (vsx_splat_v4sf_internal): When splitting
2459         the insns, use an insn form that does not adjust the offset on
2460         little endian systems.
2461
2462 2016-07-07  Kelvin Nilsen  <kelvin@gcc.gnu.org>
2463
2464         Backport from mainline r237885
2465         2016-06-30  Kelvin Nilsen  <kelvin@gcc.gnu.org>
2466
2467         * config/rs6000/altivec.md (darn_32): Change the condition to
2468         TARGET_P9_MISC instead of TARGET_MODULO.
2469         (darn_raw): Replace TARGET_MODULO with TARGET_P9_MISC in the
2470         condition expression.
2471         (darn): Replace TARGET_MODULO with TARGET_P9_MISC in the
2472         condition expression.
2473         * config/rs6000/dfp.md (UNSPEC_DTSTSFI): New unspec constant.
2474         (DFP_TEST): New code iterator.
2475         (dfptstsfi_<code>_mode>): New define_expand.
2476         (*dfp_sgnfcnc_<mode>): New define_insn.
2477         * config/rs6000/rs6000-builtin.def (BU_P9_MISC_0): Move this macro
2478         definition next to BU_P9_MISC_1 definition and change the MASK
2479         value to RS6000_BTM_P9_MISC.
2480         (BU_P9_MISC_1): Change the MASK value to RS6000_BTM_P9_MISC.
2481         (BU_P9_64BIT_MISC_0): Likewise.
2482         (BU_P9_DFP_MISC_0): New macro definition.
2483         (BU_P9_DFP_MISC_1): New macro definition.
2484         (BU_P9_DFP_MISC_2): New macro definition.
2485         (BU_P9_DFP_OVERLOAD_1): New macro definition.
2486         (BU_P9_DFP_OVERLOAD_2): New macro definition.
2487         (BU_P9_DFP_OVERLOAD_3): New macro definition.
2488         (TSTSFI_LT_DD): New BU_P9_DFP_MISC_2.
2489         (TSTSFI_LT_TD): Likewise.
2490         (TSTSFI_EQ_DD): Likewise.
2491         (TSTSFI_EQ_TD): Likewise.
2492         (TSTSFI_GT_DD): Likewise.
2493         (TSTSFI_GT_TD): Likewise.
2494         (TSTSFI_OV_DD): Likewise.
2495         (TSTSFI_OV_TD): Likewise.
2496         (TSTSFI_LT): New BU_P9_DFP_OVERLOAD_2.
2497         (TSTSFI_LT_DD): Likewise.
2498         (TSTSFI_LT_TD): Likewise.
2499         (TSTSFI_EQ): Likewise.
2500         (TSTSFI_EQ_DD): Likewise.
2501         (TSTSFI_EQ_TD): Likewise.
2502         (TSTSFI_GT): Likewise.
2503         (TSTSFI_GT_DD): Likewise.
2504         (TSTSFI_GT_TD): Likewise.
2505         (TSTSFI_OV): Likewise.
2506         (TSTSFI_OV_DD): Likewise.
2507         (TSTSFI_OV_TD): Likewise.
2508         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
2509         overloaded test significance functions.
2510         * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Add
2511         OPTION_MASK_P9_MISC into the representation of this mask.
2512         (POWERPC_MASKS): Add OPTION_MASK_P9_MISC into the representation
2513         of this mask.
2514         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Set the
2515         RS6000_BTM_P9_MISC flag in the return value if TARGET_P9_MISC is
2516         non-zero.
2517         (rs6000_expand_binop_builtin): Enforce that argument 0 of the exp
2518         argument is a 6-bit unsigned literal value if the icode argument
2519         represents a DFP test significance built-in call.
2520         (rs6000_invalid_builtin): Add support for the RS6000_BTM_P9_MISC
2521         flag used independently and in combination with the
2522         RS6000_BTM_64BIT flag.
2523         (rs6000_opt_masks): Add entry for power9-misc command-line option.
2524         (rs6000_builtin_mask_names): Add entry for power9-misc
2525         command-line option.
2526         * config/rs6000/rs6000.h: Redefine TARGET_P9_MISC as 0 if
2527         HAVE_AS_POWER9 is not a defined macro.  Define MASK_P9_MISC and
2528         RS6000_BTM_P9_MISC macros.
2529         * config/rs6000/rs6000.opt: Add support for the -mpower9-misc
2530         option and change the description of the -mpower9-vector option to
2531         enable only vector instructions, removing its erroneously claimed
2532         support for scalar instructions.
2533         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
2534         the ISA 3.0 digital floating point test significance built-in
2535         functions.
2536
2537 2016-07-07  Richard Biener  <rguenther@suse.de>
2538
2539         Backport from mainline
2540         2016-06-13  Richard Biener  <rguenther@suse.de>
2541
2542         PR middle-end/64516
2543         * fold-const.c (fold_unary_loc): Preserve alignment when
2544         folding a VIEW_CONVERT_EXPR into a MEM_REF.
2545
2546 2016-07-07  Richard Biener  <rguenther@suse.de>
2547
2548         Backport from mainline
2549         2016-05-25  Richard Biener  <rguenther@suse.de>
2550
2551         PR tree-optimization/71264
2552         * tree-vect-stmts.c (vect_init_vector): Properly deal with
2553         vector type val.
2554
2555         2016-06-07  Richard Biener  <rguenther@suse.de>
2556
2557         PR middle-end/71423
2558         * match.pd ((X | ~Y) -> Y <= X): Properly invert the comparison
2559         for signed ops.
2560
2561         2016-06-14  Richard Biener  <rguenther@suse.de>
2562
2563         PR tree-optimization/71521
2564         * tree-vrp.c (extract_range_from_binary_expr_1): Guard
2565         division int_const_binop against zero divisor.
2566
2567         2016-06-08  Richard Biener  <rguenther@suse.de>
2568
2569         PR tree-optimization/71452
2570         * tree-ssa.c (non_rewritable_lvalue_p): Make sure that the
2571         type used for the SSA rewrite has enough precision to cover
2572         the dynamic type of the location.
2573
2574         2016-06-14  Richard Biener  <rguenther@suse.de>
2575
2576         PR tree-optimization/71522
2577         * tree-ssa.c (non_rewritable_lvalue_p): Do not rewrite non-float
2578         copying into float copying.
2579
2580 2016-07-06  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
2581
2582         Backport from mainline
2583         2016-07-06  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
2584
2585         PR target/50739
2586         * config/avr/avr.c (avr_asm_select_section): Strip off
2587         SECTION_DECLARED from flags when calling get_section.
2588
2589 2016-07-05  Pat Haugen  <pthaugen@us.ibm.com>
2590
2591         Backport from mainline
2592         2016-06-28  Pat Haugen  <pthaugen@us.ibm.com>
2593
2594         * config/rs6000/rs6000.md ('type' attribute): Add htmsimple/dfp types.
2595         ('size' attribute): Add '128'.
2596         Include power9.md.
2597         (*mov<mode>_hardfloat32, *mov<mode>_hardfloat64, *movdi_internal32,
2598         *movdi_internal64, *movdf_update1): Set size attribute to '64'.
2599         (add<mode>3, sub<mode>3, mul<mode>3, div<mode>3, sqrt<mode>2,
2600         copysign<mode>3, neg<mode>2_hw, abs<mode>2_hw, *nabs<mode>2_hw,
2601         *fma<mode>4_hw, *fms<mode>4_hw, *nfma<mode>4_hw, *nfms<mode>4_hw,
2602         extend<SFDF:mode><IEEE128:mode>2_hw, trunc<mode>df2_hw,
2603         *xscvqp<su>wz_<mode>, *xscvqp<su>dz_<mode>, *xscv<su>dqp_<mode>,
2604         *trunc<mode>df2_odd): Set size attribute to '128'.
2605         (*cmp<mode>_hw): Change type to veccmp and set size attribute to '128'.
2606         * config/rs6000/power6.md (power6-fp): Include dfp type.
2607         * config/rs6000/power7.md (power7-fp): Likewise.
2608         * config/rs6000/power8.md (power8-fp): Likewise.
2609         * config/rs6000/power9.md: New file.
2610         * config/rs6000/t-rs6000 (MD_INCLUDES): Add power9.md.
2611         * config/rs6000/htm.md (*tabort, *tabort<wd>c, *tabort<wd>ci,
2612         *trechkpt, *treclaim, *tsr, *ttest): Change type attribute to
2613         htmsimple.
2614         * config/rs6000/dfp.md (extendsddd2, truncddsd2, extendddtd2,
2615         trunctddd2, adddd3, addtd3, subdd3, subtd3, muldd3, multd3, divdd3,
2616         divtd3, *cmpdd_internal1, *cmptd_internal1, floatdidd2, floatditd2,
2617         ftruncdd2, fixdddi2, ftrunctd2, fixtddi2, dfp_ddedpd_<mode>,
2618         dfp_denbcd_<mode>, dfp_dxex_<mode>, dfp_diex_<mode>, dfp_dscli_<mode>,
2619         dfp_dscri_<mode>): Change type attribute to dfp.
2620         * config/rs6000/crypto.md (crypto_vshasigma<CR_char>): Change type
2621         attribute to vecsimple.
2622         * config/rs6000/rs6000.c (power9_cost): Update costs, cache size
2623         and prefetch streams.
2624         (rs6000_option_override_internal): Remove temporary code setting
2625         tuning to power8.  Don't set rs6000_sched_groups for power9.
2626         (last_scheduled_insn): Change to rtx_insn *.
2627         (divide_cnt, vec_load_pendulum): New variables.
2628         (rs6000_adjust_cost): Add Power9 to test for store->load separation.
2629         (rs6000_issue_rate): Set issue rate for Power9.
2630         (is_power9_pairable_vec_type): New.
2631         (power9_sched_reorder2): New.
2632         (rs6000_sched_reorder2): Call new function for Power9 specific
2633         reordering.
2634         (insn_must_be_first_in_group): Remove Power9.
2635         (insn_must_be_last_in_group): Likewise.
2636         (force_new_group): Likewise.
2637         (rs6000_sched_init): Fix initialization of last_scheduled_insn.
2638         Initialize divide_cnt/vec_load_pendulum.
2639         (_rs6000_sched_context, rs6000_init_sched_context,
2640         rs6000_set_sched_context): Handle context save/restore of new
2641         variables.
2642
2643 2016-07-05  Pat Haugen  <pthaugen@us.ibm.com>
2644
2645         Backport from mainline
2646         2016-06-27  Pat Haugen  <pthaugen@us.ibm.com>
2647
2648         * config/rs6000/rs6000.md ('type' attribute): Add
2649         veclogical,veccmpfx,vecexts,vecmove insn types.
2650         (*abs<mode>2_fpr, *nabs<mode>2_fpr, *neg<mode>2_fpr, *extendsfdf2_fpr,
2651         copysign<mode>3_fcpsgn, trunc<mode>df2_internal1, neg<mode>2_internal,
2652         p8_fmrgow_<mode>, pack<mode>): Change type to fpsimple.
2653         (*xxsel<mode>, copysign<mode>3_hard, neg<mode>2_hw, abs<mode>2_hw,
2654         *nabs<mode>2_hw): Change type to vecmove.
2655         (*and<mode>3_internal, *bool<mode>3_internal, *boolc<mode>3_internal,
2656         *boolcc<mode>3_internal, *eqv<mode>3_internal,
2657         *one_cmpl<mode>3_internal, *ieee_128bit_vsx_neg<mode>2_internal,
2658         *ieee_128bit_vsx_abs<mode>2_internal,
2659         *ieee_128bit_vsx_nabs<mode>2_internal, extendkftf2, trunctfkf2,
2660         *ieee128_mfvsrd_64bit, *ieee128_mfvsrd_32bit, *ieee128_mtvsrd_64bit,
2661         *ieee128_mtvsrd_32bit): Change type to veclogical.
2662         (mov<mode>_hardfloat, *mov<mode>_hardfloat32, *mov<mode>_hardfloat64,
2663         *movdi_internal32, *movdi_internal64): Update insn types.
2664         * config/rs6000/vsx.md (*vsx_le_undo_permute_<mode>,
2665         vsx_extract_<mode>): Change type to veclogical.
2666         (*vsx_xxsel<mode>, *vsx_xxsel<mode>_uns): Change type to vecmove.
2667         (vsx_sign_extend_qi_<mode>, *vsx_sign_extend_hi_<mode>,
2668         *vsx_sign_extend_si_v2di): Change type to vecexts.
2669         * config/rs6000/altivec.md (*altivec_mov<mode>, *altivec_movti): Change
2670         type to veclogical.
2671         (*altivec_eq<mode>, *altivec_gt<mode>, *altivec_gtu<mode>,
2672         *altivec_vcmpequ<VI_char>_p, *altivec_vcmpgts<VI_char>_p,
2673         *altivec_vcmpgtu<VI_char>_p): Change type to veccmpfx.
2674         (*altivec_vsel<mode>, *altivec_vsel<mode>_uns): Change type to vecmove.
2675         * config/rs6000/dfp.md (*negdd2_fpr, *absdd2_fpr, *nabsdd2_fpr,
2676         negtd2, *abstd2_fpr, *nabstd2_fpr): Change type to fpsimple.
2677         * config/rs6000/40x.md (ppc405-float): Add fpsimple.
2678         * config/rs6000/440.md (ppc440-fp): Add fpsimple.
2679         * config/rs6000/476.md (ppc476-fp): Add fpsimple.
2680         * config/rs6000/601.md (ppc601-fp): Add fpsimple.
2681         * config/rs6000/603.md (ppc603-fp): Add fpsimple.
2682         * config/rs6000/6xx.md (ppc604-fp): Add fpsimple.
2683         * config/rs6000/7xx.md (ppc750-fp): Add fpsimple.
2684         (ppc7400-vecsimple): Add veclogical, vecmove, veccmpfx.
2685         * config/rs6000/7450.md (ppc7450-fp): Add fpsimple.
2686         (ppc7450-vecsimple): Add veclogical, vecmove.
2687         (ppc7450-veccmp): Add veccmpfx.
2688         * config/rs6000/8540.md (ppc8540_simple_vector): Add veclogical,
2689         vecmove.
2690         (ppc8540_vector_compare): Add veccmpfx.
2691         * config/rs6000/a2.md (ppca2-fp): Add fpsimple.
2692         * config/rs6000/cell.md (cell-fp): Add fpsimple.
2693         (cell-vecsimple): Add veclogical, vecmove.
2694         (cell-veccmp): Add veccmpfx.
2695         * config/rs6000/e300c2c3.md (ppce300c3_fp): Add fpsimple.
2696         * config/rs6000/e6500.md (e6500_vecsimple): Add veclogical, vecmove,
2697         veccmpfx.
2698         * config/rs6000/mpc.md (mpccore-fp): Add fpsimple.
2699         * config/rs6000/power4.md (power4-fp): Add fpsimple.
2700         (power4-vecsimple): Add veclogical, vecmove.
2701         (power4-veccmp): Add veccmpfx.
2702         * config/rs6000/power5.md (power5-fp): Add fpsimple.
2703         * config/rs6000/power6.md (power6-fp): Add fpsimple.
2704         (power6-vecsimple): Add veclogical, vecmove.
2705         (power6-veccmp): Add veccmpfx.
2706         * config/rs6000/power7.md (power7-fp): Add fpsimple.
2707         (power7-vecsimple): Add veclogical, vecmove, veccmpfx.
2708         * config/rs6000/power8.md (power8-fp): Add fpsimple.
2709         (power8-vecsimple): Add veclogical, vecmove, veccmpfx.
2710         * config/rs6000/rs64.md (rs64a-fp): Add fpsimple.
2711         * config/rs6000/titan.md (titan_fp): Add fpsimple.
2712         * config/rs6000/xfpu.md (fp-default, fp-addsub-s, fp-addsub-d): Add
2713         fpsimple.
2714         * config/rs6000/rs6000.c (rs6000_adjust_cost): Add TYPE_FPSIMPLE.
2715
2716 2016-07-05  Kelvin Nilsen  <kelvin@gcc.gnu.org>
2717
2718         Backport from mainline r237391
2719         2016-06-13  Kelvin Nilsen  <kelvin@gcc.gnu.org>
2720
2721         * config/rs6000/rs6000.h (RS6000_BTM_COMMON): Add the
2722         RS6000_BTM_MODULO flag into the set of flags that are considered
2723         to be part of the common configuration.
2724
2725 2016-07-04  Jakub Jelinek  <jakub@redhat.com>
2726
2727         PR c++/71739
2728         * tree.c (attribute_value_equal): Use get_attribute_name instead of
2729         directly using TREE_PURPOSE.
2730
2731 2016-07-04  Segher Boessenkool  <segher@kernel.crashing.org>
2732
2733         Backport from mainline
2734         2016-06-27  Segher Boessenkool  <segher@kernel.crashing.org>
2735
2736         PR target/71670
2737         * config/rs6000/rs6000.md (ashdi3_extswsli_dot): Use
2738         gen_ashdi3_extswsli_dot2 instead of gen_ashdi3_extswsli_dot.
2739
2740 2016-07-02  Jakub Jelinek  <jakub@redhat.com>
2741
2742         Backported from mainline
2743         2016-06-28  Jakub Jelinek  <jakub@redhat.com>
2744
2745         PR middle-end/71626
2746         * config/i386/i386.c (ix86_expand_vector_move): For SUBREG of
2747         a constant, force its SUBREG_REG into memory or register instead
2748         of whole op1.
2749
2750         2016-06-20  Jakub Jelinek  <jakub@redhat.com>
2751
2752         PR target/71559
2753         * config/i386/i386.c (ix86_fp_cmp_code_to_pcmp_immediate): Fix up
2754         returned values and add UN*/LTGT/*ORDERED cases with values matching
2755         D operand modifier on vcmp for AVX.
2756
2757 2016-07-01  Kelvin Nilsen  <kelvin@gcc.gnu.org>
2758
2759         Backport from trunk r237659
2760         2016-06-21  Kelvin Nilsen  <kelvin@gcc.gnu.org>
2761
2762         * config/rs6000/rs6000.h: Add conditional preprocessing directives
2763         to disable Power9-specific compiler features if HAVE_AS_POWER9 is
2764         not defined.
2765
2766 2016-07-01  Peter Bergner  <bergner@vnet.ibm.com>
2767
2768         Backport from trunk
2769         2016-06-27  Peter Bergner  <bergner@vnet.ibm.com>
2770
2771         PR target/71656
2772         * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Add
2773         OPTION_MASK_P9_DFORM_VECTOR.
2774         * config/rs6000/rs6000.c (rs6000_option_override_internal): Do not
2775         disable -mpower9-dform-vector when using reload.
2776         (quad_address_p): Remove 'gpr_p' argument and all associated code.
2777         New 'strict' argument.  Update all callers.  Add strict addressing
2778         support.
2779         (rs6000_legitimate_offset_address_p): Remove call to
2780         virtual_stack_registers_memory_p.
2781         (rs6000_legitimize_reload_address): Add quad address support.
2782         (rs6000_legitimate_address_p): Move call to quad_address_p above
2783         call to virtual_stack_registers_memory_p.  Adjust quad_address_p args
2784         to account for new strict usage.
2785         (rs6000_output_move_128bit): Adjust quad_address_p args to account
2786         for new strict usage.
2787         * config/rs6000/predicates.md (quad_memory_operand): Likewise.
2788
2789 2016-07-01  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2790
2791         Backport from mainline
2792         2016-06-24  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2793
2794         * config/rs6000/rs6000-builtin.def (BU_FLOAT128_2): New #define.
2795         (BU_FLOAT128_1): Likewise.
2796         (FABSQ): Likewise.
2797         (COPYSIGNQ): Likewise.
2798         (RS6000_BUILTIN_NANQ): Likewise.
2799         (RS6000_BUILTIN_NANSQ): Likewise.
2800         (RS6000_BUILTIN_INFQ): Likewise.
2801         (RS6000_BUILTIN_HUGE_VALQ): Likewise.
2802         * config/rs6000/rs6000.c (rs6000_fold_builtin): New prototype.
2803         (TARGET_FOLD_BUILTIN): New #define.
2804         (rs6000_builtin_mask_calculate): Add TARGET_FLOAT128 entry.
2805         (rs6000_invalid_builtin): Add handling for RS6000_BTM_FLOAT128.
2806         (rs6000_fold_builtin): New target hook implementation, handling
2807         folding of 128-bit NaNs and infinities.
2808         (rs6000_init_builtins): Initialize const_str_type_node; ensure all
2809         entries are filled in to avoid problems during bootstrap
2810         self-test; define builtins for 128-bit NaNs and infinities.
2811         (rs6000_opt_mask): Add entry for float128.
2812         * config/rs6000/rs6000.h (RS6000_BTM_FLOAT128): New #define.
2813         (RS6000_BTM_COMMON): Include RS6000_BTM_FLOAT128.
2814         (rs6000_builtin_type_index): Add RS6000_BTI_const_str.
2815         (const_str_type_node): New #define.
2816         * config/rs6000/rs6000.md (copysign<mode>3 for IEEE128): Convert
2817         to a define_expand that dispatches to either copysign<mode>3_soft
2818         or copysign<mode>3_hard.
2819         (copysign<mode>3_hard): Rename from copysign<mode>3.
2820         (copysign<mode>3_soft): New define_insn.
2821         * doc/extend.texi: Document new builtins.
2822
2823 2016-07-01  Peter Bergner  <bergner@vnet.ibm.com>
2824
2825         Backport from trunk
2826         2016-07-01  Peter Bergner  <bergner@vnet.ibm.com>
2827
2828         PR target/71698
2829         * config/rs6000/rs6000.c (rs6000_secondary_reload_simple_move): Disallow
2830         TDmode values.
2831
2832 2016-07-01  Kelvin Nilsen  <kelvin@gcc.gnu.org>
2833
2834         Backport from trunk r236992
2835         2016-06-01  Kelvin Nilsen  <kelvin@gcc.gnu.org>
2836
2837         * config/rs6000/altivec.h (vec_slv): New macro.
2838         (vec_srv): New macro.
2839         * config/rs6000/altivec.md (UNSPEC_VSLV): New value.
2840         (UNSPEC_VSRV): New value.
2841         (vslv): New insn.
2842         (vsrv): New insn.
2843         * config/rs6000/rs6000-builtin.def (vslv): New builtin definition.
2844         (vsrv): New builtin definition.
2845         * config/rs6000/rs6000-c.c (P9V_BUILTIN_VSLV): Macro expansion to
2846         define argument types for new builtin.
2847         (P9V_BUILTIN_VSRV): Macro expansion to define argument types for
2848         new builtin.
2849         * doc/extend.texi: Document the new vec_vslv and vec_srv built-in
2850         functions.
2851
2852 2016-07-01  Eric Botcazou  <ebotcazou@adacore.com>
2853
2854         * config/arm/arm.c (arm_function_ok_for_sibcall): Add another check
2855         for NULL decl.
2856
2857 2016-06-30  Kelvin Nilsen  <kelvin@gcc.gnu.org>
2858
2859         Backport from trunk r237390
2860         2016-06-13  Kelvin Nilsen  <kelvin@gcc.gnu.org>
2861
2862         * config/rs6000/altivec.h (vec_absd): New macro for vector absolute
2863         difference unsigned.
2864         (vec_absdb): New macro for vector absolute difference unsigned
2865         byte.
2866         (vec_absdh): New macro for vector absolute difference unsigned
2867         half-word.
2868         (vec_absdw): New macro for vector absolute difference unsigned word.
2869         * config/rs6000/altivec.md (UNSPEC_VADU): New value.
2870         (vadu<mode>3): New insn.
2871         (*p9_vadu<mode>3): New insn.
2872         * config/rs6000/rs6000-builtin.def (vadub): New built-in
2873         definition.
2874         (vaduh): New built-in definition.
2875         (vaduw): New built-in definition.
2876         (vadu): New overloaded built-in definition.
2877         (vadub): New overloaded built-in definition.
2878         (vaduh): New overloaded built-in definition.
2879         (vaduw): New overloaded built-in definition.
2880         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
2881         overloaded vector absolute difference unsigned functions.
2882         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
2883         the ISA 3.0 vector absolute difference unsigned built-in functions.
2884
2885 2016-06-30  David Malcolm  <dmalcolm@redhat.com>
2886
2887         Backport from trunk r237880.
2888         2016-06-30  David Malcolm  <dmalcolm@redhat.com>
2889
2890         PR driver/71651
2891         * gcc.c (driver::build_option_suggestions): Pass "option" to
2892         add_misspelling_candidates.
2893         * opts-common.c (add_misspelling_candidates): Add "option" param;
2894         use it to avoid adding negated forms for options marked with
2895         RejectNegative.
2896         * opts.h (add_misspelling_candidates): Add "option" param.
2897
2898 2016-06-30  Jakub Jelinek  <jakub@redhat.com>
2899
2900         PR middle-end/71693
2901         * fold-const.c (fold_binary_loc) <case RROTATE_EXPR>: Cast
2902         TREE_OPERAND (arg0, 0) and TREE_OPERAND (arg0, 1) to type
2903         first when permuting bitwise operation with rotate.  Cast
2904         TREE_OPERAND (arg0, 0) to type when cancelling two rotations.
2905
2906 2016-06-30  Martin Liska  <mliska@suse.cz>
2907
2908         Parting backport from mainline
2909         2016-06-29  Martin Liska  <mliska@suse.cz>
2910
2911         * ipa-inline-transform.c (inline_call): Remove unnecessary call
2912         of build_optimization_node.
2913
2914 2016-06-29  Eric Botcazou  <ebotcazou@adacore.com>
2915
2916         Backport from mainline
2917         2016-06-09  Eric Botcazou  <ebotcazou@adacore.com>
2918
2919         * df-problems.c (df_note_bb_compute): Guard use of DF_INSN_INFO_GET.
2920
2921 2016-06-27  Michael Meissner  <meissner@linux.vnet.ibm.com>
2922
2923         Back port from trunk
2924         2016-06-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
2925
2926         * stor-layout.c (layout_type): Move setting complex MODE to
2927         layout_type, instead of setting it ahead of time by the caller.
2928
2929         Back port from trunk
2930         2016-05-11  Alan Modra  <amodra@gmail.com>
2931
2932         * config/rs6000/rs6000.c (is_complex_IBM_long_double,
2933         abi_v4_pass_in_fpr): New functions.
2934         (rs6000_function_arg_boundary): Exclude complex IBM long double
2935         from 64-bit alignment when ABI_V4.
2936         (rs6000_function_arg, rs6000_function_arg_advance_1,
2937         rs6000_gimplify_va_arg): Use abi_v4_pass_in_fpr.
2938
2939         Back port from trunk
2940         2016-05-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
2941
2942         * machmode.h (mode_complex): Add support to give the complex mode
2943         for a given mode.
2944         (GET_MODE_COMPLEX_MODE): Likewise.
2945         * stor-layout.c (layout_type): For COMPLEX_TYPE, use the mode
2946         stored by build_complex_type and gfc_build_complex_type instead of
2947         trying to figure out the appropriate mode based on the size. Raise
2948         an assertion error, if the type was not set.
2949         * genmodes.c (struct mode_data): Add field for the complex type of
2950         the given type.
2951         (blank_mode): Likewise.
2952         (make_complex_modes): Remember the complex mode created in the
2953         base type.
2954         (emit_mode_complex): Write out the mode_complex array to map a
2955         type mode to the complex version.
2956         (emit_insn_modes_c): Likewise.
2957         * tree.c (build_complex_type): Set the complex type to use before
2958         calling layout_type.
2959         * config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Add
2960         support for __float128 complex datatypes.
2961         (rs6000_hard_regno_mode_ok): Likewise.
2962         (rs6000_setup_reg_addr_masks): Likewise.
2963         (rs6000_complex_function_value): Likewise.
2964         * config/rs6000/rs6000.h (FLOAT128_IEEE_P): Likewise.
2965         __float128 and __ibm128 complex.
2966         (FLOAT128_IBM_P): Likewise.
2967         (ALTIVEC_ARG_MAX_RETURN): Likewise.
2968         * doc/extend.texi (Additional Floating Types): Document that
2969         -mfloat128 must be used to enable __float128.  Document complex
2970         __float128 and __ibm128 support.
2971
2972 2016-06-24  Jakub Jelinek  <jakub@redhat.com>
2973
2974         PR tree-optimization/71647
2975         * omp-low.c (lower_rec_input_clauses): Convert
2976         omp_clause_aligned_alignment (c) to size_type_node for the
2977         last argument of __builtin_assume_aligned.
2978
2979 2016-06-22  Eric Botcazou  <ebotcazou@adacore.com>
2980
2981         * function.c (assign_parm_setup_reg): Prevent sharing in another case.
2982
2983 2016-06-21  Georg-Johann Lay  <avr@gjlay.de>
2984
2985         Backport from 2016-06-21 trunk r237639.
2986
2987         PR target/30417
2988         * config/avr/gen-avr-mmcu-specs.c (print_mcu):
2989         [*link_data_start]: Wrap -Tdata into %{!Tdata:...}.
2990         [*link_text_start]: Wrap -Ttext into %{!Ttext:...}.
2991
2992 2016-06-21  Georg-Johann Lay  <avr@gjlay.de>
2993
2994         PR target/71103
2995         * config/avr/avr.md (movqi): Only handle loading subreg:qi of
2996         constant addresses if can_create_pseudo_p.
2997
2998 2016-06-21  Jakub Jelinek  <jakub@redhat.com>
2999
3000         PR tree-optimization/71588
3001         * tree-ssa-strlen.c (valid_builtin_call): New function.
3002         (adjust_last_stmt, handle_builtin_memset, strlen_optimize_stmt): Use
3003         it.
3004
3005         Backported from mainline
3006         2016-06-20  Jakub Jelinek  <jakub@redhat.com>
3007
3008         PR middle-end/71581
3009         * tree-ssa-uninit.c (warn_uninit): If EXPR and VAR are NULL,
3010         see if T isn't anonymous SSA_NAME with COMPLEX_EXPR created
3011         for conversion of scalar user var to complex type and use the
3012         underlying SSA_NAME_VAR in that case.  If EXPR is still NULL,
3013         punt.
3014
3015         2016-06-16  Jakub Jelinek  <jakub@redhat.com>
3016
3017         * gimplify.c (gimplify_scan_omp_clauses): Handle COMPONENT_REFs
3018         with base of reference to struct.
3019
3020 2016-06-20  Ilya Enkovich  <ilya.enkovich@intel.com>
3021
3022         Backport from mainline r237484.
3023         2016-06-15  Ilya Enkovich  <ilya.enkovich@intel.com>
3024
3025         PR middle-end/71529
3026         * ipa-chkp.c (chkp_build_instrumented_fndecl): Fix
3027         DECL_CONTEXT for copied arguments.
3028
3029 2016-06-20  Georg-Johann Lay  <avr@gjlay.de>
3030             Pitchumani Sivanupandi  <pitchumani.s@atmel.com>
3031
3032         Backport from 2016-06-20 trunk r237589, r236558.
3033
3034         PR target/71103
3035         * config/avr/avr.md (movqi): Handle loading subreg:qi (const,
3036         symbol_ref,label_ref).
3037
3038 2016-06-16  Jakub Jelinek  <jakub@redhat.com>
3039
3040         PR target/71554
3041         * config/i386/i386.md (setcc + movzbl peephole2): Use reg_set_p.
3042         (setcc + and peephole2): Likewise.
3043
3044 2016-06-15  Andreas Tobler  <andreast@gcc.gnu.org>
3045
3046         Backported from mainline
3047         2016-06-14  Andreas Tobler  <andreast@gcc.gnu.org>
3048
3049         * config/arm/freebsd.h: Only enable unaligned access for armv6 on
3050         FreeBSD 11 and above.
3051
3052 2016-06-15  Ilya Verbin  <ilya.verbin@intel.com>
3053
3054         Backport from mainline
3055         2016-04-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3056
3057         * config/darwin.h (LINK_COMMAND_SPEC_A): Handle -fcilkplus.
3058
3059 2016-06-14  Jakub Jelinek  <jakub@redhat.com>
3060
3061         Backported from mainline
3062         2016-06-10  Jakub Jelinek  <jakub@redhat.com>
3063
3064         PR middle-end/71494
3065         * tree-nested.c (convert_nonlocal_reference_stmt): For GIMPLE_GOTO
3066         without LABEL_DECL, set *handled_ops_p to false instead of true.
3067
3068         2016-06-08  Jakub Jelinek  <jakub@redhat.com>
3069                     Richard Biener  <rguenther@suse.de>
3070
3071         PR c++/71448
3072         * fold-const.c (fold_comparison): Handle CONSTANT_CLASS_P (base0)
3073         the same as DECL_P (base0) for indirect_base0.  Use equality_code
3074         in one further place.
3075
3076         2016-06-04  Jakub Jelinek  <jakub@redhat.com>
3077
3078         PR tree-optimization/71405
3079         * tree-ssa.c (execute_update_addresses_taken): For clobber with
3080         incompatible type, build a new clobber with the right type instead
3081         of building a VIEW_CONVERT_EXPR around it.
3082
3083 2016-06-13  Eric Botcazou  <ebotcazou@adacore.com>
3084
3085         * tree-ssa-sccvn.c (vn_reference_lookup_3): Use a uniform test and
3086         update shared_lookup_references only once after changing operands.
3087
3088 2016-06-13  Richard Biener  <rguenther@suse.de>
3089
3090         PR tree-optimization/71505
3091         * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Make
3092         assert match comment.
3093
3094 2016-06-13  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
3095
3096         Backport from mainline
3097         2016-06-13  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
3098
3099         PR target/71379
3100         * config/s390/s390.c (s390_expand_builtin): Increase MAX_ARGS by
3101         one.
3102
3103 2016-06-10  Thomas Schwinge  <thomas@codesourcery.com>
3104
3105         PR middle-end/71373
3106         Backport from trunk r237291:
3107         * tree-nested.c (convert_nonlocal_omp_clauses)
3108         (convert_local_omp_clauses): Handle OMP_CLAUSE_ASYNC,
3109         OMP_CLAUSE_WAIT, OMP_CLAUSE_INDEPENDENT, OMP_CLAUSE_AUTO,
3110         OMP_CLAUSE__CACHE_, OMP_CLAUSE_TILE.
3111
3112         Backport from trunk r237291:
3113         * gimplify.c (gimplify_adjust_omp_clauses): Discard
3114         OMP_CLAUSE_TILE.
3115         * omp-low.c (scan_sharing_clauses): Don't expect OMP_CLAUSE_TILE.
3116
3117         Backport from trunk r237290:
3118         * omp-low.c (scan_sharing_clauses): Don't expect
3119         OMP_CLAUSE__CACHE_.
3120
3121         Backport trunk r235964:
3122         2016-05-06  Nathan Sidwell  <nathan@codesourcery.com>
3123
3124         * gimple.c (gimple_call_same_target_p): Unique functions are eq.
3125         * tree-ssa-tail-merge.c (same_succ::equal): Check pointer eq
3126         equality first.
3127
3128 2016-06-10  Maxim Ostapenko  <m.ostapenko@samsung.com>
3129
3130         PR sanitizer/71480
3131         * varasm.c (place_block_symbol): Adjust alignment for asan protected
3132         STRING_CSTs even if TREE_CONSTANT_POOL_ADDRESS_P.
3133
3134 2016-06-09  Michael Meissner  <meissner@linux.vnet.ibm.com>
3135
3136         Back port from trunk
3137         2016-05-31  Michael Meissner  <meissner@linux.vnet.ibm.com>
3138
3139         * config/rs6000/vsx.md (vsx_splat_<mode>, V2DI/V2DF): Simplify
3140         alternatives, eliminating preferred register class.  Add support
3141         for the MTVSRDD instruction in ISA 3.0.
3142         (vsx_splat_v4si_internal): Use splat_input_operand instead of
3143         reg_or_indexed_operand.
3144         (vsx_splat_v4sf_internal): Likewise.
3145
3146         Back port from trunk
3147         2016-05-31  Michael Meissner  <meissner@linux.vnet.ibm.com>
3148
3149         PR target/71186
3150         * config/rs6000/vsx.md (xxspltib_<mode>_nosplit): Add alternatives
3151         for loading up all 0's or all 1's.
3152
3153         Back port from trunk
3154         2016-05-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
3155
3156         PR target/70915
3157         * config/rs6000/constraints.md (wE constraint): New constraint
3158         for a vector constant that can be loaded with XXSPLTIB.
3159         (wM constraint): New constraint for a vector constant of a 1's.
3160         (wS constraint): New constraint for a vector constant that can be
3161         loaded with XXSPLTIB and a vector sign extend instruction.
3162         * config/rs6000/predicates.md (xxspltib_constant_split): New
3163         predicates for wE/wS constraints.
3164         (xxspltib_constant_nosplit): Likewise.
3165         (easy_vector_constant): Add support for constants that can be
3166         loaded via XXSPLTIB.
3167         (splat_input_operand): Add support for ISA 3.0 word splat operations.
3168         * config/rs6000/rs6000.c (xxspltib_constant_p): New function to
3169         return if a constant can be loaded with the ISA 3.0 XXSPLTIB
3170         instruction and possibly with a sign extension.
3171         (output_vec_const_move): Add support for XXSPLTIB. If we are
3172         loading up 0/-1 into Altivec registers, prefer using VSPLTISW
3173         instead of XXLXOR/XXLORC.
3174         (rs6000_expand_vector_init): Add support for ISA 3.0 word splat
3175         operations.
3176         (rs6000_legitimize_reload_address): Likewise.
3177         (rs6000_output_move_128bit): Use output_vec_const_move to emit
3178         constants.
3179         * config/rs6000/vsx.md (VSX_M): Add TImode (if -mvsx-timode) and
3180         combine VSX_M and VSX_M2 into one iterator.
3181         (VSX_M2): Likewise.
3182         (VSINT_84): New iterators for loading constants with XXSPLTIB.
3183         (VSINT_842): Likewise.
3184         (UNSPEC_VSX_SIGN_EXTEND): New UNSPEC.
3185         (xxspltib_v16qi): New insns to load up constants with the ISA 3.0
3186         XXSPLTIB instruction.
3187         (xxspltib_<mode>_nosplit): Likewise.
3188         (xxspltib_<mode>_split): New insn to load up constants with
3189         XXSPLTIB and a sign extend instruction.
3190         (vsx_mov<mode>): Replace single move that handled all vector types
3191         with separate 32-bit and 64-bit moves.  Combine the movti_<bit>
3192         moves (when -mvsx-timode is in effect) into the main vector
3193         moves.  Eliminate separate moves for <VSr> <VSa>, where the
3194         preferred register class (<VSr>) is listed first, and the
3195         secondary register class (<VSa>) is listed second with a '?' to
3196         discourage use.  Prefer loading 0/-1 in any VSX register for ISA
3197         3.0, and Altivec registers for ISA 2.06/2.07 (PR target/70915) so
3198         that if the register was involved in a slow operation, the
3199         clear/set operation does not wait for the slow operation to
3200         finish.  Adjust the length attributes for 32-bit mode.  Use
3201         rs6000_output_move_128bit and drop the use of the string
3202         instructions for 32-bit movti when -mvsx-timode is in effect.  Use
3203         spacing so that the alternatives and attributes don't generate
3204         long lines, and put things in columns, so that it is easier to
3205         match up the operands and attributes with the insn alternatives.
3206         (vsx_mov<mode>_64bit): Likewise.
3207         (vsx_mov<mode>_32bit): Likewise.
3208         (vsx_movti_64bit): Fold movti into normal vector moves.
3209         (vsx_movti_32bit): Likewise.
3210         (vsx_splat_<mode>, V4SI/V4SF modes): Add support for ISA 3.0 word
3211         splat instructions.
3212         (vsx_splat_v4si_internal): Likewise.
3213         (vsx_splat_v4sf_internal): Likewise.
3214         (vector fusion peepholes): Use VSX_M instead of VSX_M2.
3215         (vsx_sign_extend_qi_<mode>): New ISA 3.0 instructions to sign
3216         extend vector elements.
3217         (vsx_sign_extend_hi_<mode>): Likewise.
3218         (vsx_sign_extend_si_v2di): Likewise.
3219         * config/rs6000/rs6000-protos.h (xxspltib_constant_p): Add
3220         declaration.
3221         * doc/md.texi (PowerPC constraints): Document the wE, wM, and wS
3222         constraints.  Add trailing period to wL documentation.
3223
3224 2016-06-08  Jose E. Marchesi  <jose.marchesi@oracle.com>
3225
3226         Backport from mainline
3227         2016-06-08  Jose E. Marchesi  <jose.marchesi@oracle.com>
3228
3229         * config/sparc/driver-sparc.c (cpu_names): Fix the entry for the
3230         SPARC-M7 and add an entry for SPARC-S7 cpus (Sonoma).
3231
3232 2016-06-08  Eric Botcazou  <ebotcazou@adacore.com>
3233
3234         Backport from mainline
3235         2016-06-06  Jose E. Marchesi  <jose.marchesi@oracle.com>
3236
3237         * config/sparc/sparc.md (cpu): Add niagara7 cpu type.
3238         Include the M7 SPARC DFA scheduler.
3239         New attribute v3pipe.
3240         Annotate insns with v3pipe where appropriate.
3241         Define cpu_feature vis4.
3242         Add lzd instruction type and set it on clzdi_sp64 and clzsi_sp64.
3243         Add (V8QI "8") to vbits.
3244         Add insns {add,sub}v8qi3
3245         Add insns ss{add,sub}v8qi3
3246         Add insns us{add,sub}{v8qi,v4hi}3
3247         Add insns {min,max}{v8qi,v4hi,v2si}3
3248         Add insns {minu,maxu}{v8qi,v4hi,v2si}3
3249         Add insns fpcmp{le,gt,ule,ug,ule,ugt}{8,16,32}_vis.
3250         * config/sparc/niagara4.md: Add a comment explaining the
3251         discrepancy between the documented latenty numbers and the
3252         implemented ones.
3253         * config/sparc/niagara7.md: New file.
3254         * configure.ac (HAVE_AS_SPARC5_VIS4): Define if the assembler
3255         supports SPARC5 and VIS 4.0 instructions.
3256         * configure: Regenerate.
3257         * config.in: Likewise.
3258         * config.gcc: niagara7 is a supported cpu in sparc*-*-* targets.
3259         * config/sparc/sol2.h (ASM_CPU32_DEFAUILT_SPEC): Set for
3260         TARGET_CPU_niagara7.
3261         (ASM_CPU64_DEFAULT_SPEC): Likewise.
3262         (CPP_CPU_SPEC): Handle niagara7.
3263         (ASM_CPU_SPEC): Likewise.
3264         * config/sparc/sparc-opts.h (processor_type): Add
3265         PROCESSOR_NIAGARA7.
3266         (mvis4): New option.
3267         * config/sparc/sparc.h (TARGET_CPU_niagara7): Define.
3268         (AS_NIAGARA7_FLAG): Define.
3269         (ASM_CPU64_DEFAULT_SPEC): Set for niagara7.
3270         (CPP_CPU64_DEFAULT_SPEC): Likewise.
3271         (CPP_CPU_SPEC): Handle niagara7.
3272         (ASM_CPU_SPEC): Likewise.
3273         * config/sparc/sparc.c (niagara7_costs): Define.
3274         (sparc_option_override): Handle niagara7 and adjust cache-related
3275         parameters with better values for niagara cpus.  Also support VIS4.
3276         (sparc32_initialize_trampoline): Likewise.
3277         (sparc_use_sched_lookahead): Likewise.
3278         (sparc_issue_rate): Likewise.
3279         (sparc_register_move_cost): Likewise.
3280         (dump_target_flag_bits): Support VIS4.
3281         (sparc_vis_init_builtins): Likewise.
3282         (sparc_builtins): Likewise.
3283         * config/sparc/sparc-c.c (sparc_target_macros): Define __VIS__ for
3284         VIS4 4.0.
3285         * config/sparc/driver-sparc.c (cpu_names): Add SPARC-M7 and
3286         UltraSparc M7.
3287         * config/sparc/sparc.opt (sparc_processor_type): New value
3288         niagara7.
3289         * config/sparc/visintrin.h (__attribute__): Prototypes for the
3290         VIS4 builtins.
3291         * doc/invoke.texi (SPARC Options): Document -mcpu=niagara7 and
3292         -mvis4.
3293         * doc/extend.texi (SPARC VIS Built-in Functions): Document the
3294         VIS4 builtins.
3295
3296         2016-05-30  Jose E. Marchesi  <jose.marchesi@oracle.com>
3297
3298         * config.gcc (sparc*-*-*): Support cpu_32, cpu_64, tune_32 and
3299         tune_64.
3300         * doc/install.texi (--with-cpu-32, --with-cpu-64): Document
3301         support on SPARC.
3302         * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): Add entries for
3303         cpu_32, cpu_64, tune_32 and tune_64.
3304         * config/sparc/sol2.h (OPTION_DEFAULT_SPECS): Likewise.
3305
3306 2016-06-08  Ilya Verbin  <ilya.verbin@intel.com>
3307
3308         Backport from mainline
3309         2016-05-25  Ilya Verbin  <ilya.verbin@intel.com>
3310
3311         * config/i386/i386-builtin-types.def: Add V16SI_FTYPE_V16SF,
3312         V8DF_FTYPE_V8DF_ROUND, V16SF_FTYPE_V16SF_ROUND, V16SI_FTYPE_V16SF_ROUND.
3313         * config/i386/i386.c (enum ix86_builtins): Add
3314         IX86_BUILTIN_CVTPS2DQ512_MASK, IX86_BUILTIN_FLOORPS512,
3315         IX86_BUILTIN_FLOORPD512, IX86_BUILTIN_CEILPS512, IX86_BUILTIN_CEILPD512,
3316         IX86_BUILTIN_TRUNCPS512, IX86_BUILTIN_TRUNCPD512,
3317         IX86_BUILTIN_CVTPS2DQ512, IX86_BUILTIN_VEC_PACK_SFIX512,
3318         IX86_BUILTIN_FLOORPS_SFIX512, IX86_BUILTIN_CEILPS_SFIX512,
3319         IX86_BUILTIN_ROUNDPS_AZ_SFIX512.
3320         (builtin_description bdesc_args): Add __builtin_ia32_floorps512,
3321         __builtin_ia32_ceilps512, __builtin_ia32_truncps512,
3322         __builtin_ia32_floorpd512, __builtin_ia32_ceilpd512,
3323         __builtin_ia32_truncpd512, __builtin_ia32_cvtps2dq512,
3324         __builtin_ia32_vec_pack_sfix512, __builtin_ia32_roundps_az_sfix512,
3325         __builtin_ia32_floorps_sfix512, __builtin_ia32_ceilps_sfix512.
3326         Change IX86_BUILTIN_CVTPS2DQ512 to IX86_BUILTIN_CVTPS2DQ512_MASK for
3327         __builtin_ia32_cvtps2dq512_mask.
3328         (ix86_expand_args_builtin): Handle V8DF_FTYPE_V8DF_ROUND,
3329         V16SF_FTYPE_V16SF_ROUND, V16SI_FTYPE_V16SF_ROUND, V16SI_FTYPE_V16SF.
3330         (ix86_builtin_vectorized_function): Handle builtins mentioned above.
3331         * config/i386/sse.md
3332         (<mask_codefor>avx512f_fix_notruncv16sfv16si<mask_name><round_name>):
3333         Rename to ...
3334         (avx512f_fix_notruncv16sfv16si<mask_name><round_name>): ... this.
3335         (<mask_codefor>avx512f_cvtpd2dq512<mask_name><round_name>): Rename
3336         to ...
3337         (avx512f_cvtpd2dq512<mask_name><round_name>): ... this.
3338         (avx512f_vec_pack_sfix_v8df): New define_expand.
3339         (avx512f_roundpd512): Rename to ...
3340         (avx512f_round<castmode>512): ... this.  Change iterator.
3341         (avx512f_roundps512_sfix): New define_expand.
3342         (round<mode>2_sfix): Change iterator.
3343
3344 2016-06-07  Peter Bergner  <bergner@vnet.ibm.com>
3345
3346         Backport from mainline
3347         2016-06-07  Peter Bergner  <bergner@vnet.ibm.com>
3348
3349         * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mhtm and
3350         -mno-htm.
3351
3352 2016-06-07  Uros Bizjak  <ubizjak@gmail.com>
3353
3354         PR target/71389
3355         * config/i386/i386.c (ix86_avx256_split_vector_move_misalign):
3356         Copy op1 RTX to avoid invalid sharing.
3357         (ix86_expand_vector_move_misalign): Ditto.
3358
3359 2016-06-06  Jakub Jelinek  <jakub@redhat.com>
3360
3361         PR tree-optimization/71259
3362         * tree-vect-slp.c (vect_get_constant_vectors): For
3363         VECTOR_BOOLEAN_TYPE_P, return all ones constant instead of
3364         one for constant op, and use COND_EXPR for non-constant.
3365
3366 2016-06-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3367
3368         Backport from trunk
3369         2016-06-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3370
3371         PR target/70830
3372         * config/arm/arm.c (arm_output_multireg_pop): Guard "pop" on update.
3373
3374 2016-06-05  Uros Bizjak  <ubizjak@gmail.com>
3375
3376         Backport from mainline
3377         2016-06-01  Uros Bizjak  <ubizjak@gmail.com>
3378                     Jocelyn Mayer  <l_indien@magic.fr>
3379
3380         PR target/67310
3381         * config/i386/driver-i386.c (host_detect_local_cpu): Correctly
3382         detect processor family for signature_CENTAUR_ebx.
3383         <case PROCESSOR_I486>: Pass c3, winchip2 or winchip-c6 for
3384         signature_CENTAUR_ebx.
3385         <case PROCESSOR _PENTIUMPRO>: Pass c3-2 for signature_CENTAUR_ebx.
3386         <default>: Pass x86-64 for has_longmode.
3387
3388 2016-06-03  Jakub Jelinek  <jakub@redhat.com>
3389
3390         PR middle-end/71387
3391         * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): If redirecting
3392         to noreturn e->callee->decl that has void return type and void
3393         arguments, adjust gimple_call_fntype and remove lhs even if it had
3394         previously addressable type.
3395
3396 2016-06-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
3397
3398         Back port from trunk
3399         2016-05-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
3400
3401         * config/rs6000/rs6000.c (rs6000_emit_p9_fp_minmax): New function
3402         for ISA 3.0 min/max support.
3403         (rs6000_emit_p9_fp_cmove): New function for ISA 3.0 floating point
3404         conditional move support.
3405         (rs6000_emit_cmove): Call rs6000_emit_p9_fp_minmax and
3406         rs6000_emit_p9_fp_cmove if the ISA 3.0 instructions are
3407         available.
3408         * config/rs6000/rs6000.md (SFDF2): New iterator to allow doing
3409         conditional moves where the comparison type is different from move
3410         type.
3411         (fp_minmax): New code iterator for smin/smax.
3412         (minmax): New code attributes for min/max.
3413         (SMINMAX): Likewise.
3414         (smax<mode>3): Combine min, max insns into one insn using the
3415         fp_minmax code iterator.  Add support for ISA 3.0 min/max
3416         instructions that don't need -ffast-math.
3417         (s<minmax><mode>3): Likewise.
3418         (smax<mode>3_vsx): Likewise.
3419         (smin<mode>3): Likewise.
3420         (s<minmax><mode>3_vsx): Likewise.
3421         (smin<mode>3_vsx): Likewise.
3422         (pre-VSX min/max splitters): Likewise.
3423         (s<minmax><mode>3_fpr): Likewise.
3424         (movsfcc): Rewrite floating point conditional moves to combine
3425         SFmode/DFmode into a single insn.
3426         (mov<mode>cc): Likewise.
3427         (movdfcc): Likewise.
3428         (fselsfsf4): Combine FSEL cases into a single insn, using SFDF and
3429         SFDF2 iterators to handle all combinations.
3430         (fseldfsf4): Likewise.
3431         (fsel<SFDF:mode><SFDF2:mode>4): Likewise.
3432         (fseldfdf4): Likewise.
3433         (fselsfdf4): Likewise.
3434         (mov<SFDF:mode><SFDF2:mode>cc_p9): Add support for the ISA 3.0
3435         comparison instructions that set a 0/-1 mask, and use it for
3436         floating point conditional move via XXSEL.
3437         (fpmask<mode>): Likewise.
3438         (xxsel<mode>): Likewise.
3439         * config/rs6000/predicates.md (min_max_operator): Delete, no
3440         longer used.
3441         (fpmask_comparison_operaton): New insn for ISA 3.0 comparison
3442         instructions that generate a 0/-1 mask for use with XXSEL.
3443         * config/rs6000/rs6000.h (TARGET_MINMAX_SF): New helper macros to
3444         say whether floating point min/max is available, either through
3445         FSEL, ISA 2.06 min/max, and ISA 3.0 min/max instrucitons.
3446         (TARGET_MINMAX_DF): Likewise.
3447
3448         Back port from trunk
3449         2016-05-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
3450
3451         * config/rs6000/predicate.md (all_ones_constant): New predicate
3452         for vector constant with all 1's set.
3453
3454 2016-06-02  Kelvin Nilsen  <kelvin@gcc.gnu.org>
3455
3456         Back port from trunk
3457         2016-05-19  Kelvin Nilsen  <kelvin@gcc.gnu.org>
3458
3459         * config/rs6000/altivec.md (UNSPEC_DARN): New unspec constant.
3460         (UNSPEC_DARN_32): New unspec constant.
3461         (UNSPEC_DARN_RAW): New unspec constant.
3462         (darn_32): New instruction.
3463         (darn_raw): New instruction.
3464         (darn): New instruction.
3465         * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_0): Add
3466         support and documentation for this macro.
3467         (BU_P9_MISC_1): New macro definition.
3468         (BU_P9_64BIT_MISC_0): New macro definition.
3469         (BU_P9_MISC_0): New macro definition.
3470         (darn_32): New builtin definition.
3471         (darn_raw): New builtin definition.
3472         (darn): New builtin definition.
3473         * config/rs6000/rs6000.c: Add #define RS6000_BUILTIN_0 and #undef
3474         RS6000_BUILTIN_0 directives to surround each occurrence of
3475         #include "rs6000-builtin.def".
3476         (rs6000_builtin_mask_calculate): Add in the RS6000_BTM_MODULO and
3477         RS6000_BTM_64BIT flags to the returned mask, depending on
3478         configuration.
3479         (def_builtin): Correct an error in the assignments made to the
3480         debugging variable attr_string.
3481         (rs6000_expand_builtin): Add support for no-operand built-in
3482         functions.
3483         (builtin_function_type): Remove fatal_error assertion that is no
3484         longer valid.
3485         (rs6000_common_init_builtins): Add support for no-operand built-in
3486         functions.
3487         * config/rs6000/rs6000.h (RS6000_BTM_MODULO): New macro
3488         definition.
3489         (RS6000_BTM_PURE): Enhance comment to clarify intent of this flag
3490         definition.
3491         (RS6000_BTM_64BIT): New macro definition.
3492         * doc/extend.texi: Document __builtin_darn (void),
3493         __builtin_darn_raw (void), and __builtin_darn_32 (void) built-in
3494         functions.
3495
3496 2016-06-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
3497
3498         Back port from trunk
3499         2016-05-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
3500
3501         PR target/71201
3502         * config/rs6000/altivec.md (altivec_vperm_<mode>_internal): Drop
3503         ISA 3.0 xxperm fusion alternative.
3504         (altivec_vperm_v8hiv16qi): Likewise.
3505         (altivec_vperm_<mode>_uns_internal): Likewise.
3506         (vperm_v8hiv4si): Likewise.
3507         (vperm_v16qiv8hi): Likewise.
3508
3509         Back port from trunk
3510         2016-05-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
3511                     Kelvin Nilsen  <kelvin@gcc.gnu.org>
3512
3513         * config/rs6000/rs6000.c (rs6000_expand_vector_set): Generate
3514         vpermr/xxpermr on ISA 3.0.
3515         (altivec_expand_vec_perm_le): Likewise.
3516         * config/rs6000/altivec.md (UNSPEC_VPERMR): New unspec.
3517         (altivec_vpermr_<mode>_internal): Add VPERMR/XXPERMR support for
3518         ISA 3.0.
3519
3520         Back port from trunk
3521         2016-05-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
3522
3523         * config/rs6000/altivec.md (VParity): New mode iterator for vector
3524         parity built-in functions.
3525         (p9v_ctz<mode>2): Add support for ISA 3.0 vector count trailing
3526         zeros.
3527         (p9v_parity<mode>2): Likewise.
3528         * config/rs6000/vector.md (VEC_IP): New mode iterator for vector
3529         parity.
3530         (ctz<mode>2): ISA 3.0 expander for vector count trailing zeros.
3531         (parity<mode>2): ISA 3.0 expander for vector parity.
3532         * config/rs6000/rs6000-builtin.def (BU_P9_MISC_1): New macros for
3533         power9 built-ins.
3534         (BU_P9_64BIT_MISC_0): Likewise.
3535         (BU_P9_MISC_0): Likewise.
3536         (BU_P9V_AV_1): Likewise.
3537         (BU_P9V_AV_2): Likewise.
3538         (BU_P9V_AV_3): Likewise.
3539         (BU_P9V_AV_P): Likewise.
3540         (BU_P9V_VSX_1): Likewise.
3541         (BU_P9V_OVERLOAD_1): Likewise.
3542         (BU_P9V_OVERLOAD_2): Likewise.
3543         (BU_P9V_OVERLOAD_3): Likewise.
3544         (VCTZB): Add vector count trailing zeros support.
3545         (VCTZH): Likewise.
3546         (VCTZW): Likewise.
3547         (VCTZD): Likewise.
3548         (VPRTYBD): Add vector parity support.
3549         (VPRTYBQ): Likewise.
3550         (VPRTYBW): Likewise.
3551         (VCTZ): Add overloaded vector count trailing zeros support.
3552         (VPRTYB): Add overloaded vector parity support.
3553         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
3554         overloaded vector count trailing zeros and parity instructions.
3555         * config/rs6000/rs6000.md (wd mode attribute): Add V1TI and TI for
3556         vector parity support.
3557         * config/rs6000/altivec.h (vec_vctz): Add ISA 3.0 vector count
3558         trailing zeros support.
3559         (vec_cntlz): Likewise.
3560         (vec_vctzb): Likewise.
3561         (vec_vctzd): Likewise.
3562         (vec_vctzh): Likewise.
3563         (vec_vctzw): Likewise.
3564         (vec_vprtyb): Add ISA 3.0 vector parity support.
3565         (vec_vprtybd): Likewise.
3566         (vec_vprtybw): Likewise.
3567         (vec_vprtybq): Likewise.
3568         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
3569         the ISA 3.0 vector count trailing zeros and vector parity built-in
3570         functions.
3571
3572         Back port from trunk
3573         2016-05-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
3574
3575         * config/rs6000/altivec.md (VNEG iterator): New iterator for
3576         VNEGW/VNEGD instructions.
3577         (p9_neg<mode>2): New insns for ISA 3.0 VNEGW/VNEGD.
3578         (neg<mode>2): Add expander for V2DImode added in ISA 2.07, and
3579         support for ISA 3.0 VNEGW/VNEGD instructions.
3580
3581         Back port from trunk
3582         2016-05-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
3583
3584         * config/rs6000/predicates.md (quad_memory_operand): Move most of
3585         the code into quad_address_p and call it to share code with
3586         vsx_quad_dform_memory_operand.
3587         (vsx_quad_dform_memory_operand): New predicate for ISA 3.0 vector
3588         d-form support.
3589         * config/rs6000/rs6000.opt (-mlra): Switch to being an option mask
3590         bit instead of being a separate word.  Split -mpower9-dform into
3591         two switches, -mpower9-dform-scalar and -mpower9-dform-vector.
3592         * config/rs6000/rs6000.c (RELOAD_REG_QUAD_OFFSET): New addr_mask
3593         for the register class supporting 128-bit quad word memory offsets.
3594         (mode_supports_vsx_dform_quad): Helper function to return if the
3595         register class uses quad word memory offsets.
3596         (rs6000_debug_addr_mask): Add support for quad word memory offsets.
3597         (rs6000_debug_reg_global): Always print if we are using LRA or not.
3598         (rs6000_setup_reg_addr_masks): If ISA 3.0 vector d-form
3599         instructions are enabled, set up the appropriate addr_masks for
3600         128-bit types.
3601         (rs6000_init_hard_regno_mode_ok): wb constraint is now based on
3602         -mpower9-dform-scalar, instead of -mpower9-dform.
3603         (rs6000_option_override_internal): Split -mpower9-dform into two
3604         switches, -mpower9-dform-scalar and -mpower9-dform-vector.  The
3605         -mpower9-dform switch sets or clears both.  If we are not using
3606         the LRA register allocator, do not enable -mpower9-dform-vector by
3607         default.  If we are using LRA, enable -mpower9-dform-vector and
3608         -mvsx-timode if it is appropriate.  Issue a warning if either
3609         -mpower9-dform-vector or -mvsx-timode are explicitly used without
3610         enabling LRA.
3611         (quad_address_offset_p): New helper function to return if the
3612         offset is legal for quad word memory instructions.
3613         (quad_address_p): New function to determin if GPR or vector
3614         register quad word memory addresses are legal.
3615         (mem_operand_gpr): Validate quad word address offsets.
3616         (reg_offset_addressing_ok_p): Add support for ISA 3.0 vector
3617         d-form (register + offset) instructions.
3618         (offsettable_ok_by_alignment): Likewise.
3619         (rs6000_legitimate_offset_address_p): Likewise.
3620         (legitimate_lo_sum_address_p): Likewise.
3621         (rs6000_legitimize_address): Likewise.
3622         (rs6000_legitimize_reload_address): Add more debug statements for
3623         -mdebug=addr.
3624         (rs6000_legitimate_address_p): Add support for ISA 3.0 vector
3625         d-form instructions.
3626         (rs6000_secondary_reload_memory): Add support for ISA 3.0 vector
3627         d-form instructions.  Distinguish different cases in debug
3628         output. (rs6000_secondary_reload_inner): Add support for ISA 3.0 vector
3629         d-form instructions.
3630         (rs6000_preferred_reload_class): Likewise.
3631         (rs6000_output_move_128bit): Add support for ISA 3.0 d-form
3632         instructions.  If ISA 3.0 is available, generate lxvx/stxvx instead
3633         of the ISA 2.06 indexed memory instructions.
3634         (rs6000_emit_prologue): If we have ISA 3.0 d-form instructions,
3635         use them to save/restore the saved vector registers instead of
3636         using Altivec instructions.
3637         (rs6000_emit_epilogue): Likewise.
3638         (rs6000_lra_p): Use TARGET_LRA instead of the old option word.
3639         (rs6000_opt_masks): Split -mpower9-dform into
3640         -mpower9-dform-scalar and -mpower9-dform-vector.
3641         (rs6000_print_options_internal): Print -mno-<switch> if <switch>
3642         was not selected.
3643         * config/rs6000/vsx.md (p9_vecload_<mode>): Delete hack to emit
3644         ISA 3.0 vector indexed memory instructions, and fold the code into
3645         the normal mov<mode> patterns.
3646         (p9_vecstore_<mode>): Likewise.
3647         (vsx_mov<mode>): Add support for ISA 3.0 vector d-form
3648         instructions.
3649         (vsx_movti_64bit): Likewise.
3650         (vsx_movti_32bit): Likewise.
3651         * config/rs6000/constraints.md (wO constraint): New constraint for
3652         ISA 3.0 vector d-form support.
3653         * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Use
3654         -mpower9-dform-scalar instead of -mpower9-dform.  Add note not to
3655         include -mpower9-dform-vector until we switch over to LRA.
3656         (POWERPC_MASKS): Add -mlra. Split -mpower9-dform into two.
3657         switches, -mpower9-dform-scalar and -mpower9-dform-vector.
3658         * config/rs6000/rs6000-protos.h (quad_address_p): Add declaration.
3659         * doc/invoke.texi (RS/6000 and PowerPC Options): Add documentation
3660         for -mpower9-dform and -mlra.
3661         * doc/md.texi (wO constraint): Document wO constraint.
3662
3663 2016-06-01  Eric Botcazou  <ebotcazou@adacore.com>
3664
3665         * tree-vect-loop.c (vect_determine_vectorization_factor): Also compute
3666         the factor for live Phi nodes.
3667
3668 2016-06-01  Jakub Jelinek  <jakub@redhat.com>
3669
3670         PR middle-end/71371
3671         * gimplify.c (gimplify_omp_for): Temporarily clear gimplify_omp_ctxp
3672         around creation of the temporary.
3673
3674 2016-06-01  Eric Botcazou  <ebotcazou@adacore.com>
3675
3676         * tree-vect-loop.c (vect_determine_vectorization_factor): Also take
3677         into account live statements for mask producers.
3678
3679 2016-05-31  Richard Biener  <rguenther@suse.de>
3680
3681         Backport from mainline
3682         2016-05-11  Richard Biener  <rguenther@suse.de>
3683
3684         PR debug/71057
3685         * dwarf2out.c (retry_incomplete_types): Set early_dwarf.
3686         (dwarf2out_finish): Move retry_incomplete_types call ...
3687         (dwarf2out_early_finish): ... here.
3688
3689 2016-05-31  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3690
3691         PR target/71056
3692         * config/arm/arm-builtins.c (arm_builtin_vectorized_function): Return
3693         NULL_TREE early if NEON is not available.  Remove now redundant check
3694         in ARM_CHECK_BUILTIN_MODE.
3695
3696 2016-05-31  Tom de Vries  <tom@codesourcery.com>
3697
3698         backport:
3699         2016-05-31  Tom de Vries  <tom@codesourcery.com>
3700
3701         PR tree-optimization/69068
3702         * graphite-isl-ast-to-gimple.c (copy_bb_and_scalar_dependences): Handle
3703         phis with more than two args.
3704
3705 2016-05-30  Andreas Tobler  <andreast@gcc.gnu.org>
3706
3707         Backport from mainline
3708         2016-05-30  Andreas Tobler  <andreast@gcc.gnu.org>
3709
3710         * config.gcc: Move hard float support for arm*hf*-*-freebsd* into
3711         armv6*-*-freebsd* for FreeBSD 11. Eliminate the arm*hf*-*-freebsd*
3712         target.
3713
3714 2016-05-30  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
3715
3716         Backport from mainline
3717         2016-04-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
3718
3719         * config/rs6000/altivec.h: Change definitions of vec_xl and
3720         vec_xst.
3721         * config/rs6000/rs6000-builtin.def (LD_ELEMREV_V2DF): New.
3722         (LD_ELEMREV_V2DI): New.
3723         (LD_ELEMREV_V4SF): New.
3724         (LD_ELEMREV_V4SI): New.
3725         (LD_ELEMREV_V8HI): New.
3726         (LD_ELEMREV_V16QI): New.
3727         (ST_ELEMREV_V2DF): New.
3728         (ST_ELEMREV_V2DI): New.
3729         (ST_ELEMREV_V4SF): New.
3730         (ST_ELEMREV_V4SI): New.
3731         (ST_ELEMREV_V8HI): New.
3732         (ST_ELEMREV_V16QI): New.
3733         (XL): New.
3734         (XST): New.
3735         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
3736         descriptions for VSX_BUILTIN_VEC_XL and VSX_BUILTIN_VEC_XST.
3737         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Map from
3738         TARGET_P9_VECTOR to RS6000_BTM_P9_VECTOR.
3739         (altivec_expand_builtin): Add handling for
3740         VSX_BUILTIN_ST_ELEMREV_<MODE> and VSX_BUILTIN_LD_ELEMREV_<MODE>.
3741         (rs6000_invalid_builtin): Add error-checking for
3742         RS6000_BTM_P9_VECTOR.
3743         (altivec_init_builtins): Define builtins used to implement vec_xl
3744         and vec_xst.
3745         (rs6000_builtin_mask_names): Define power9-vector.
3746         * config/rs6000/rs6000.h (MASK_P9_VECTOR): Define.
3747         (RS6000_BTM_P9_VECTOR): Define.
3748         (RS6000_BTM_COMMON): Include RS6000_BTM_P9_VECTOR.
3749         * config/rs6000/vsx.md (vsx_ld_elemrev_v2di): New define_insn.
3750         (vsx_ld_elemrev_v2df): Likewise.
3751         (vsx_ld_elemrev_v4sf): Likewise.
3752         (vsx_ld_elemrev_v4si): Likewise.
3753         (vsx_ld_elemrev_v8hi): Likewise.
3754         (vsx_ld_elemrev_v16qi): Likewise.
3755         (vsx_st_elemrev_v2df): Likewise.
3756         (vsx_st_elemrev_v2di): Likewise.
3757         (vsx_st_elemrev_v4sf): Likewise.
3758         (vsx_st_elemrev_v4si): Likewise.
3759         (vsx_st_elemrev_v8hi): Likewise.
3760         (vsx_st_elemrev_v16qi): Likewise.
3761         * doc/extend.texi: Add prototypes for vec_xl and vec_xst.  Correct
3762         grammar.
3763
3764 2016-05-30  Richard Biener  <rguenther@suse.de>
3765
3766         Backport from mainline
3767         2016-05-11  Richard Biener  <rguenther@suse.de>
3768
3769         PR middle-end/71002
3770         * alias.c (reference_alias_ptr_type): Preserve alias-set zero
3771         if the langhook insists on it.
3772         * fold-const.c (make_bit_field_ref): Add arg for the original
3773         reference and preserve its alias-set.
3774         (decode_field_reference): Take exp by reference and adjust it
3775         to the original memory reference.
3776         (optimize_bit_field_compare): Adjust callers.
3777         (fold_truth_andor_1): Likewise.
3778
3779         2016-05-13  Jakub Jelinek  <jakub@redhat.com>
3780
3781         PR bootstrap/71071
3782         * fold-const.c (fold_checksum_tree): Allow modification
3783         of TYPE_ALIAS_SET during folding.
3784
3785 2016-05-30  Eric Botcazou  <ebotcazou@adacore.com>
3786
3787         * config/visium/visium.c (visium_split_double_add): Minor tweaks.
3788         (visium_expand_copysign): Use gen_int_mode directly.
3789         (visium_compute_frame_size): Minor tweaks.
3790
3791 2016-05-30  Tom de Vries  <tom@codesourcery.com>
3792
3793         backport:
3794         2016-05-30  Tom de Vries  <tom@codesourcery.com>
3795
3796         PR tree-optimization/69067
3797         * graphite-isl-ast-to-gimple.c (get_def_bb_for_const): Remove assert.
3798
3799 2016-05-27  Eric Botcazou  <ebotcazou@adacore.com>
3800
3801         * config/visium/visium-protos.h (split_double_move): Rename into...
3802         (visium_split_double_move): ...this.
3803         (visium_split_double_add): Declare.
3804         * config/visium/visium.c (split_double_move): Rename into...
3805         (visium_split_double_move): ...this.
3806         (visium_split_double_add): New function.
3807         (visium_expand_copysign): Renumber operands for consistency.
3808         * config/visium/visium.md (DImode move splitter): Adjust to renaming.
3809         (DFmode move splitter): Likewise.
3810         (*addi3_insn): Split by means of visium_split_double_add.
3811         (*adddi3_insn_flags): Delete.
3812         (*plus_plus_sltu<subst_arith>): New insn.
3813         (*subdi3_insn): Split by means of visium_split_double_add.
3814         (subdi3_insn_flags): Delete.
3815         (*minus_minus_sltu<subst_arith>): New insn.
3816         (*negdi2_insn): Split by means of visium_split_double_add.
3817         (*negdi2_insn_flags): Delete.
3818
3819 2016-05-27  Ilya Enkovich  <ilya.enkovich@intel.com>
3820
3821         Backport from mainline r236810.
3822         2016-05-27  Ilya Enkovich  <ilya.enkovich@intel.com>
3823
3824         PR middle-end/71279
3825         * fold-const.c (fold_ternary_loc): Don't fold VEC_COND_EXPR
3826         into comparison.
3827
3828 2016-05-25  Eric Botcazou  <ebotcazou@adacore.com>
3829
3830         * tree-ssa-phiopt.c (factor_out_conditional_conversion): Remove
3831         redundant test and bail out if the type of the new operand is not
3832         a GIMPLE register type after stripping a VIEW_CONVERT_EXPR.
3833
3834 2016-05-24  Martin Sebor  <msebor@redhat.com>
3835
3836         PR c++/71147
3837         * tree.h (complete_or_array_type_p): New inline function.
3838
3839 2016-05-24  Jakub Jelinek  <jakub@redhat.com>
3840
3841         * config/i386/i386.h (TARGET_AVOID_4BYTE_PREFIXES): Define.
3842         * config/i386/constraints.md (Yr): Test TARGET_AVOID_4BYTE_PREFIXES
3843         rather than X86_TUNE_AVOID_4BYTE_PREFIXES.  Use SSE_REGS instead
3844         of ALL_SSE_REGS.  Return SSE_REGS also when TARGET_AVX.
3845
3846 2016-05-24  Jakub Jelinek  <jakub@redhat.com>
3847
3848         PR c++/71257
3849         * tree-vect-stmts.c (vectorizable_simd_clone_call): Handle
3850         SIMD_CLONE_ARG_TYPE_LINEAR_REF_CONSTANT_STEP like
3851         SIMD_CLONE_ARG_TYPE_LINEAR_CONSTANT_STEP.  Add
3852         SIMD_CLONE_ARG_TYPE_LINEAR_VAL_CONSTANT_STEP and
3853         SIMD_CLONE_ARG_TYPE_LINEAR_UVAL_CONSTANT_STEP cases explicitly.
3854
3855 2016-05-23  Martin Jambor  <mjambor@suse.cz>
3856
3857         * hsa-gen.c (gen_hsa_insns_for_switch_stmt): Create an empty
3858         default block if a PHI node in the original one would be resized.
3859
3860 2016-05-23  Martin Jambor  <mjambor@suse.cz>
3861
3862         PR tree-optimization/70884
3863         * tree-sra.c (initialize_constant_pool_replacements): Do not check
3864         should_scalarize_away_bitmap and cannot_scalarize_away_bitmap bits.
3865         (sort_and_splice_var_accesses): Do not consider multiple scalar reads
3866         of constant pool data as a reason for scalarization.
3867
3868 2016-05-20  Eric Botcazou  <ebotcazou@adacore.com>
3869
3870         * config/arm/arm.c (arm_expand_prologue): Set the stack usage to 0
3871         for naked functions.
3872         (thumb1_expand_prologue): Likewise.
3873
3874 2016-05-20  Jakub Jelinek  <jakub@redhat.com>
3875
3876         PR c++/71210
3877         * gimple-fold.c (gimple_fold_call): Do not remove lhs of noreturn
3878         calls if the LHS is variable length or has addressable type.
3879         If targets[0]->decl is a noreturn call with void return type and
3880         zero arguments, adjust fntype and remove lhs in that case.
3881
3882 2016-05-20  Uros Bizjak  <ubizjak@gmail.com>
3883
3884         * sched-deps.c (sched_analyze_2) <case TRAP_IF>: Also
3885         force pending loads from memory.
3886
3887 2016-05-19  Marek Polacek  <polacek@redhat.com>
3888
3889         Backport from mainline
3890         2016-05-19  Marek Polacek  <polacek@redhat.com>
3891
3892         PR tree-optimization/71031
3893         * tree-vrp.c (extract_range_from_binary_expr_1): Turn assert into a
3894         condition and adjust the code a bit.
3895
3896 2016-05-19  Martin Jambor  <mjambor@suse.cz>
3897
3898         PR ipa/70646
3899         * ipa-prop.c (determine_locally_known_aggregate_parts): Bail out early
3900         if parameter PARAM_IPA_MAX_AGG_ITEMS is zero.
3901
3902 2016-05-19  Martin Jambor  <mjambor@suse.cz>
3903
3904         PR ipa/70646
3905         * ipa-inline.h (condition): New field size.
3906         * ipa-inline-analysis.c (add_condition): New parameter SIZE, use it
3907         for comaprison and store it into the new condition.
3908         (evaluate_conditions_for_known_args): Use condition size to check
3909         access sizes for all but CHANGED conditions.
3910         (unmodified_parm_1): New parameter size_p, store access size into it.
3911         (unmodified_parm): Likewise.
3912         (unmodified_parm_or_parm_agg_item): Likewise.
3913         (eliminated_by_inlining_prob): Pass NULL to unmodified_parm as size_p.
3914         (set_cond_stmt_execution_predicate): Extract access sizes and store
3915         them to conditions.
3916         (set_switch_stmt_execution_predicate): Likewise.
3917         (will_be_nonconstant_expr_predicate): Likewise.
3918         (will_be_nonconstant_predicate): Likewise.
3919         (inline_read_section): Stream condition size.
3920         (inline_write_summary): Likewise.
3921         * lto-streamer.h (LTO_minor_version): Bump.
3922
3923 2016-05-18  Martin Liska  <mliska@suse.cz>
3924
3925         Backport from mainline
3926         2016-05-18  Martin Liska  <mliska@suse.cz>
3927
3928         PR fortran/70856
3929         * ipa-icf.c (sem_variable::merge): Set DECL_PT_UID for
3930         merged variables.
3931
3932 2016-05-18  Jakub Jelinek  <jakub@redhat.com>
3933
3934         PR c++/71100
3935         * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Don't drop
3936         lhs if it has TREE_ADDRESSABLE type.
3937
3938 2016-05-18  Uros Bizjak  <ubizjak@gmail.com>
3939
3940         PR target/71145
3941         * config/alpha/alpha.md (trap): Add (use (reg:DI 29)).
3942         (*exception_receiver_1): Return "#" for TARGET_EXPLICIT_RELOCS.
3943
3944 2016-05-17  Thomas Schwinge  <thomas@codesourcery.com>
3945
3946         Backport trunk r235748:
3947         PR target/70860
3948         * config/nvptx/nvptx.c (nvptx_libcall_value): Handle NULL cfun.
3949         (nvptx_function_value): Assert non-NULL cfun.
3950
3951 2016-05-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3952
3953         Backport from mainline
3954         2016-05-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3955
3956         PR target/70809
3957         * config/aarch64/aarch64-simd.md (aarch64_vmls<mode>): Delete.
3958
3959 2016-05-16  Martin Jambor  <mjambor@suse.cz>
3960
3961         * hsa-gen.c (fillup_for_decl): Increase alignment to natural one.
3962         (get_symbol_for_decl): Sorry if a global symbol in under-aligned.
3963
3964 2016-05-16  Martin Jambor  <mjambor@suse.cz>
3965
3966         PR hsa/70857
3967         * omp-low.c (grid_expand_target_grid_body): Copy RESULT_DECL of
3968         the outlined kernel function.
3969
3970 2016-05-16  James Norris  <jnorris@codesourcery.com>
3971
3972         Backport from mainline r236098.
3973         2016-05-10  James Norris  <jnorris@codesourcery.com>
3974
3975         PR driver/68463
3976         * config/rs6000/sysv4.h (CRTOFFLOADBEGIN): Define. Add crtoffloadbegin.o
3977         if offloading is enabled and -fopenacc or -fopenmp is specified.
3978         (CRTOFFLOADEND): Likewise.
3979         (STARTFILE_LINUX_SPEC): Add CRTOFFLOADBEGIN.
3980         (ENDFILE_LINUX_SPEC): Add CRTOFFLOADEND.
3981
3982 2016-05-16  Alan Modra  <amodra@gmail.com>
3983
3984         Apply from mainline
3985         2016-05-10  Alan Modra  <amodra@gmail.com>
3986         PR target/70947
3987         * config/rs6000/rs6000.c (rs6000_expand_split_stack_prologue): Stop
3988         regrename modifying insns saving lr before __morestack call.
3989         * config/rs6000/rs6000.md (split_stack_return): Similarly for
3990         insns restoring lr after __morestack call.
3991
3992 2016-05-13  Richard Biener  <rguenther@suse.de>
3993
3994         Backport from mainline
3995         2016-04-27  Richard Biener  <rguenther@suse.de>
3996
3997         PR ipa/70760
3998         * tree-ssa-structalias.c (find_func_aliases_for_call): Use
3999         aggregate_value_p to determine if a function result is
4000         returned by reference.
4001
4002         2016-05-06  Richard Biener  <rguenther@suse.de>
4003
4004         PR middle-end/70931
4005         * dwarf2out.c (native_encode_initializer): Skip zero-sized fields.
4006
4007         2016-05-06  Richard Biener  <rguenther@suse.de>
4008
4009         PR middle-end/70941
4010         * fold-const.c (split_tree): Always convert to the original type
4011         before negating.
4012
4013 2016-05-12  Martin Liska  <mliska@suse.cz>
4014
4015         Backport from mainline
4016         2016-05-10  Martin Liska  <mliska@suse.cz>
4017
4018         * tree-inline.c (remap_dependence_clique): Do not remap
4019         debugging statements.
4020
4021 2016-05-12  Ilya Enkovich  <ilya.enkovich@intel.com>
4022
4023         Backport from mainline r236171.
4024         2016-05-12  Ilya Enkovich  <ilya.enkovich@intel.com>
4025
4026         PR tree-optimization/71006
4027         * tree-vect-loop.c (vect_determine_vectorization_factor): Don't
4028         consider COND_EXPR as a mask producer.
4029
4030 2016-05-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4031
4032         Backport from mainline
4033         2016-05-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4034
4035         PR target/70830
4036         * config/arm/arm.c (arm_output_multireg_pop): Avoid POP instruction
4037         when popping the PC and within an interrupt handler routine.
4038         Add missing tab to output of "ldmfd".
4039         (output_return_instruction): Output LDMFD with SP update rather
4040         than POP when returning from interrupt handler.
4041
4042 2016-05-11  Ilya Enkovich  <ilya.enkovich@intel.com>
4043
4044         Backport from mainline r236088.
4045         2016-05-10  Ilya Enkovich  <ilya.enkovich@intel.com>
4046
4047         PR middle-end/70877
4048         * tree-chkp.c (chkp_add_bounds_to_call_stmt): Handle
4049         calls with type casted fndecl.
4050
4051 2016-05-11  Ilya Enkovich  <ilya.enkovich@intel.com>
4052
4053         Backport from mainline r236086.
4054         2016-05-10  Ilya Enkovich  <ilya.enkovich@intel.com>
4055
4056         PR tree-optimization/70876
4057         * tree-chkp.c (chkp_find_bounds_1): Support WITH_SIZE_EXPR.
4058         * gcc/calls.c (initialize_argument_information): Bind bounds
4059         with corresponding args passed by reference.
4060
4061 2016-05-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
4062
4063         Backport from mainline
4064         2016-05-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
4065
4066         PR target/70963
4067         * config/rs6000/vsx.md (vsx_xvcvdpsxds_scale): Generate correct
4068         code for a zero scale factor.
4069         (vsx_xvcvdpuxds_scale): Likewise.
4070
4071 2016-05-10  Jakub Jelinek  <jakub@redhat.com>
4072
4073         Backported from mainline
4074         2016-05-03  Jakub Jelinek  <jakub@redhat.com>
4075
4076         PR tree-optimization/70916
4077         * tree-vect-patterns.c (vect_recog_mask_conversion_pattern): Give up
4078         if COND_EXPR rhs1 is neither SSA_NAME nor COMPARISON_CLASS_P.
4079
4080 2016-05-10  Yuri Rumyantsev  <ysrumyan@gmail.com>
4081
4082         Backport from mainline r235962.
4083         2016-05-06  Yuri Rumyantsev  <ysrumyan@gmail.com>
4084
4085         PR debug/70935
4086         * tree-ssa-loop-unswitch.c (find_loop_guard): Reject guard edge with
4087         loop latch destination.
4088
4089 2016-05-10  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
4090
4091         Backport from mainline
4092         2016-05-10  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
4093
4094         * config/s390/s390.md ("*vec_cmp<insn_cmp>df_cconly")
4095         ("*fixuns_truncdfdi2_z13")
4096         ("*fixuns_trunc<FP:mode><GPR:mode>2_z196")
4097         ("*fix_truncdfdi2_bfp_z13", "*floatunsdidf2_z13")
4098         ("*extendsfdf2_z13"): Replace TARGET_Z13 with TARGET_VX.
4099
4100 2016-05-10  Sebastian Huber  <sebastian.huber@embedded-brains.de>
4101
4102         Backport from mainline
4103         2016-04-27  Sebastian Huber  <sebastian.huber@embedded-brains.de>
4104
4105         * config/rtems.h (LIB_SPEC): Add -latomic.
4106
4107 2016-05-10  Sebastian Huber  <sebastian.huber@embedded-brains.de>
4108
4109         Backport from mainline
4110         2016-04-27  Joel Sherrill  <joel@rtems.org>
4111
4112         * config/microblaze/rtems.h: Redefine LINK_SPEC to avoid
4113         xilink.ld and flags not relevant to RTEMS.
4114
4115 2016-05-09  Uros Bizjak  <ubizjak@gmail.com>
4116
4117         * config/i386/i386.md (absneg splitters with general regs): Use
4118         general_reg_operand predicate.
4119         (btsq peephole2): Use x86_64_immediate_operand to check if new
4120         value is suitable for immediate operand.  Generate emitted insn
4121         using RTL expressions.
4122         (btcq peephole2): Ditto.
4123         (btrq peephole2): Ditto.  Generate correct immediate operand
4124         for AND masking.
4125
4126 2016-05-07  Tom de Vries  <tom@codesourcery.com>
4127
4128         backport:
4129         2016-05-07  Tom de Vries  <tom@codesourcery.com>
4130
4131         PR tree-optimization/70956
4132         * graphite-scop-detection.c (build_cross_bb_scalars_def): Handle NULL
4133         def.
4134
4135 2016-05-06  Marek Polacek  <polacek@redhat.com>
4136
4137         Backported from mainline
4138         2016-05-06  Marek Polacek  <polacek@redhat.com>
4139
4140         PR sanitizer/70875
4141         * ubsan.c (get_ubsan_type_info_for_type): Remove assert.
4142
4143 2016-05-06  Marek Polacek  <polacek@redhat.com>
4144
4145         Backported from mainline
4146         2016-04-29  Marek Polacek  <polacek@redhat.com>
4147                     Jakub Jelinek  <jakub@redhat.com>
4148
4149         PR sanitizer/70342
4150         * fold-const.c (tree_single_nonzero_warnv_p): For TARGET_EXPR, use
4151         TARGET_EXPR_SLOT as a base.
4152
4153 2016-05-04  Eric Botcazou  <ebotcazou@adacore.com>
4154
4155         * tree-ssa-coalesce.c (gimple_can_coalesce_p): Fix reference in head
4156         comment.
4157         (compute_samebase_partition_bases): Fix typo.
4158
4159 2016-05-03  Pierre-Marie de Rodat  <derodat@adacore.com>
4160
4161         * dwarf2out.c (resolve_args_picking_1): Replace the frame_offset
4162         occurence with frame_offset_ ones.
4163
4164 2016-04-28  Jakub Jelinek  <jakub@redhat.com>
4165
4166         PR target/70858
4167         * config/i386/i386.c (bdesc_special_args): Add | OPTION_MASK_ISA_64BIT
4168         to __builtin_ia32_lwpval64 and __builtin_ia32_lwpins64.
4169         (bdesc_args): Add | OPTION_MASK_ISA_64BIT to __builtin_ia32_bextr_u64,
4170         __builtin_ia32_bextri_u64, __builtin_ia32_bzhi_di,
4171         __builtin_ia32_pdep_di and __builtin_ia32_pext_di.
4172
4173 2016-04-28  Eric Botcazou  <ebotcazou@adacore.com>
4174
4175         Backport from mainline
4176         2016-04-27  Eric Botcazou  <ebotcazou@adacore.com>
4177
4178         PR ada/70759
4179         * stor-layout.h (internal_reference_types): Delete.
4180         * stor-layout.c (reference_types_internal): Likewise.
4181         (internal_reference_types): Likewise.
4182         (layout_type) <REFERENCE_TYPE>: Adjust.
4183
4184 2016-04-27  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
4185
4186         Backport from mainline
4187         2016-04-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
4188
4189         * config/rs6000/rs6000-builtin.def: Correct pasto error for
4190         stxvd2x and stxvw4x built-in functions.
4191
4192 2016-04-27  H.J. Lu  <hongjiu.lu@intel.com>
4193
4194         Backported from mainline
4195         2016-04-21  H.J. Lu  <hongjiu.lu@intel.com>
4196
4197         PR target/70750
4198         * config/i386/predicates.md (call_insn_operand): Replace
4199         sibcall_memory_operand with memory_operand.
4200
4201 2016-04-27  Richard Biener  <rguenther@suse.de>
4202
4203         PR ipa/70785
4204         * tree-ssa-structalias.c (refered_from_nonlocal_fn): New
4205         function cummulating used_from_other_partition, externally_visible
4206         and force_output from aliases.
4207         (refered_from_nonlocal_var): Likewise.
4208         (ipa_pta_execute): Use call_for_symbol_and_aliases to cummulate
4209         node flags properly.
4210
4211 2016-04-27  Jakub Jelinek  <jakub@redhat.com>
4212
4213         Backported from mainline
4214         2016-04-23  Jakub Jelinek  <jakub@redhat.com>
4215
4216         PR sanitizer/70712
4217         * cfgexpand.c (expand_stack_vars): Fix typo.
4218
4219         2016-04-19  Jakub Jelinek  <jakub@redhat.com>
4220
4221         PR middle-end/70680
4222         * gimplify.c (gimplify_omp_for): Call omp_notice_variable for
4223         implicitly linear or lastprivate iterator on the outer context.
4224
4225 2016-04-27  Kirill Yukhin  <kirill.yukhin@intel.com>
4226
4227         PR target/70728
4228         * gcc/config/i386/sse.md (define_insn "<shift_insn><mode>3<mask_name>"):
4229         Extract AVX-512BW constraint from AVX.
4230
4231 2016-04-27  Jakub Jelinek  <jakub@redhat.com>
4232
4233         * BASE-VER: Set to 6.1.1.
4234
4235 2016-04-27  Release Manager
4236
4237         * GCC 6.1.0 released.
4238
4239 2016-04-25  Richard Biener  <rguenther@suse.de>
4240
4241         PR tree-optimization/70780
4242         * tree-ssa-pre.c (compute_antic_aux): Also return true if the block
4243         wasn't visited yet.
4244         (compute_antic): Mark blocks with abnormal preds as visited as
4245         they have a final empty antic-in solution already.
4246
4247 2016-04-22  H.J. Lu  <hongjiu.lu@intel.com>
4248
4249         Backport from mainline
4250         2016-04-20  H.J. Lu  <hongjiu.lu@intel.com>
4251
4252         * doc/invoke.texi: Replace -skip-rax-setup with -mskip-rax-setup.
4253
4254 2016-04-22  Szabolcs Nagy  <szabolcs.nagy@arm.com>
4255
4256         * system.h (list, map, set, vector): Include conditionally.
4257         * auto-profile.c (INCLUDE_MAP, INCLUDE_SET): Define.
4258         * graphite-isl-ast-to-gimple.c (INCLUDE_MAP): Define.
4259         * ipa-icf.c (INCLUDE_LIST): Define.
4260         * config/aarch64/cortex-a57-fma-steering.c (INCLUDE_LIST): Define.
4261         * config/sh/sh.c (INCLUDE_VECTOR): Define.
4262         * config/sh/sh_treg_combine.cc (INCLUDE_ALGORITHM): Define.
4263         (INCLUDE_LIST, INCLUDE_VECTOR): Define.
4264         * cp/logic.cc (INCLUDE_LIST): Define.
4265         * fortran/trans-common.c (INCLUDE_MAP): Define.
4266
4267 2016-04-22  Szabolcs Nagy  <szabolcs.nagy@arm.com>
4268
4269         * auto-profile.c: Remove <string.h> include.
4270         * ipa-icf-gimple.c: Remove <list> include.
4271         * diagnostic.c: Remove <new> include.
4272         * genmatch.c: Likewise.
4273         * pretty-print.c: Likewise.
4274         * toplev.c: Likewise
4275         * c/c-objc-common.c: Likewise.
4276         * cp/error.c: Likewise.
4277         * fortran/error.c: Likewise.
4278
4279 2016-04-21  Richard Biener  <rguenther@suse.de>
4280
4281         PR middle-end/70747
4282         * fold-const.c (fold_comparison): Return properly typed
4283         constant boolean.
4284
4285 2016-04-20  Andrew Pinski  <apinski@cavium.com>
4286             Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4287
4288         PR target/64971
4289         * config/aarch64/aarch64.md (sibcall): Force call
4290         address to be DImode for ILP32.
4291         (sibcall_value): Likewise.
4292
4293 2016-04-20  Marek Polacek  <polacek@redhat.com>
4294
4295         * tree-if-conv.c (is_false_predicate): For NULL_TREE return false
4296         rather than true.
4297
4298 2016-04-20  Marek Polacek  <polacek@redhat.com>
4299
4300         PR tree-optimization/70725
4301         * tree-if-conv.c (is_false_predicate): New function.
4302         (predicate_mem_writes): Use it.
4303
4304 2016-04-20  Richard Biener  <rguenther@suse.de>
4305
4306         PR tree-optimization/70726
4307         * tree-vect-stmts.c (vectorizable_shift): Do not use scalar
4308         shift amounts from a pattern stmt operand.
4309
4310 2016-04-20  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
4311
4312         PR target/70674
4313         * config/s390/s390.c (s390_restore_gprs_from_fprs): Pick the new
4314         stack_restore_from_fpr pattern when restoring r15.
4315         (s390_optimize_prologue): Strip away the memory barrier in the
4316         parallel when trying to get rid of restore insns.
4317         * config/s390/s390.md ("stack_restore_from_fpr"): New insn
4318         definition for loading the stack pointer from an FPR.  Compared to
4319         the normal move insn this pattern includes a full memory barrier.
4320
4321 2016-04-19  Richard Biener  <rguenther@suse.de>
4322
4323         PR tree-optimization/70724
4324         * tree-ssa-sccvn.c (scc_vn_restore_ssa_info): Split SSA info
4325         restoring out from ...
4326         (free_scc_vn): ... here.
4327         * tree-ssa-sccvn.h (scc_vn_restore_ssa_info): Declare.
4328         * tres-ssa-pre.c (pass_pre::execute): Restore SSA info before
4329         tail merging.
4330         (pass_fre::execute): Restore SSA info.
4331
4332 2016-04-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4333
4334         * doc/install.texi (Specific, i?86-*-solaris2.10): Update gas and
4335         gld requirements.
4336         (Specific, *-*-solaris2*): Update Solaris 11 bundled gcc
4337         versions.
4338         Mention Solaris 11 packaging changes.
4339         Update gas and gld requirements.
4340         Remove reference to pre-Solaris 10 bug.
4341         (Specific, sparc-sun-solaris2*): Remove reference to pre-Solaris 10
4342         systems and bugs.
4343         (Specific, sparc64-*-solaris2*): Remove reference to bootstrap
4344         with cc.
4345
4346 2016-04-18  Matthew Wahab  <matthew.wahab@arm.com>
4347
4348         PR target/70711
4349         * config/arm/bpabi.h (BE8_LINK_SPEC): Add entries for armv8+crc,
4350         armv8.1-a and armv8.1-a+crc.
4351
4352 2016-04-18  Segher Boessenkool  <segher@kernel.crashing.org>
4353
4354         * has-brig.c (lendian16): Don't try to use __builtin_bswap16
4355         unless compiling with at least GCC-4.8.
4356
4357 2016-04-15  Kirill Yukhin  <kirill.yukhin@intel.com>
4358
4359         PR target/70662
4360         * config/i386/sse.md (define_insn "<avx512>_vec_dup<mode><mask_name>"):
4361         Fix mode size check.
4362
4363 2016-04-15  Jakub Jelinek  <jakub@redhat.com>
4364
4365         * BASE-VER: Set to 6.0.1.
4366         * DEV-PHASE: Set to prerelease.
4367
4368 2016-04-15  Alexander Monakov  <amonakov@ispras.ru>
4369
4370         * config/nvptx/nvptx.opt (moptimize): Add a period at end of help text.
4371
4372 2016-04-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4373
4374         * doc/invoke.texi (ARM Options): Add note on deprecation of pre-ARMv4T
4375         architecture revisions.
4376
4377 2016-04-15  Bernd Schmidt  <bschmidt@redhat.com>
4378
4379         * config/i386/i386-protos.h (ix86_using_red_zone): Declare.
4380         * config/i386/i386.c (ix86_using_red_zone): No longer static.
4381         * config/i386/i386.md (stack decrement to push peepholes): Guard
4382         with !x86_using_red_zone ().
4383
4384 2016-04-15  Jakub Jelinek  <jakub@redhat.com>
4385
4386         PR c++/70675
4387         * tree-pretty-print.c (do_niy): Add FLAGS argument, pass it down
4388         to dump_generic_node.
4389         (NIY): Pass also flags to do_niy.
4390
4391 2016-04-15  Thomas Schwinge  <thomas@codesourcery.com>
4392
4393         * omp-low.c (simd_clone_struct_alloc, simd_clone_struct_copy)
4394         (simd_clone_vector_of_formal_parm_types)
4395         (simd_clone_clauses_extract, simd_clone_compute_base_data_type)
4396         (simd_clone_mangle, simd_clone_create)
4397         (simd_clone_adjust_return_type, create_tmp_simd_array)
4398         (simd_clone_adjust_argument_types, simd_clone_init_simd_arrays)
4399         (struct modify_stmt_info, ipa_simd_modify_stmt_ops)
4400         (ipa_simd_modify_function_body, simd_clone_linear_addend)
4401         (simd_clone_adjust, expand_simd_clones, ipa_omp_simd_clone)
4402         (pass_data_omp_simd_clone, class pass_omp_simd_clone)
4403         (pass_omp_simd_clone::gate, make_pass_omp_simd_clone): Move
4404         into...
4405         * omp-simd-clone.c: ... this new file.
4406         (simd_clone_vector_of_formal_parm_types): Make it static.
4407         * Makefile.in (OBJS): Add omp-simd-clone.o.
4408
4409 2016-04-15  Kirill Yukhin  <kirill.yukhin@intel.com>
4410
4411         PR target/70662
4412         * config/i386/sse.md: Use proper memory operand
4413         modifiers.
4414
4415
4416 2016-04-15  Richard Biener  <rguenther@suse.de>
4417         Alan Modra  <amodra@gmail.com>
4418
4419         PR tree-optimization/70130
4420         * tree-vect-data-refs.c (vect_supportable_dr_alignment): Detect
4421         when alignment stays not the same and no not use the realign
4422         scheme then.
4423
4424 2016-04-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
4425
4426         PR target/70669
4427         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
4428         direct move handlers for KFmode. Change TFmode handlers test from
4429         FLOAT128_IEEE_P to FLOAT128_VECTOR_P.
4430
4431 2016-04-14  Jakub Jelinek  <jakub@redhat.com>
4432
4433         PR c++/70594
4434         * ipa-utils.h (polymorphic_ctor_dtor_p): New prototype.
4435         * ipa-polymorphic-call.c (polymorphic_ctor_dtor_p): New function.
4436         (inlined_polymorphic_ctor_dtor_block_p): Use it.
4437         * tree-ssa-live.c (remove_unused_scope_block_p): When
4438         in_ctor_dtor_block, avoid discarding not just BLOCKs with
4439         BLOCK_ABSTRACT_ORIGIN being FUNCTION_DECL, but even when
4440         block_ultimate_origin is FUNCTION_DECL.
4441         (remove_unused_locals): If current_function_decl is
4442         polymorphic_ctor_dtor_p, pass initial true to
4443         remove_unused_scope_block_p' is_ctor_dtor_block.
4444
4445 2016-04-14  Martin Sebor  <msebor@redhat.com>
4446
4447         PR c++/69517
4448         PR c++/70019
4449         PR c++/70588
4450         * doc/extend.texi (Variable Length): Revert.
4451
4452 2016-04-14  Marek Polacek  <polacek@redhat.com>
4453             Jan Hubicka  <hubicka@ucw.cz>
4454
4455         PR c++/70029
4456         * tree.c (verify_type): Disable the canonical type of main variant
4457         check.
4458
4459 2016-04-14  Jason Merrill  <jason@redhat.com>
4460
4461         * cfgexpand.c, expr.c: Revert previous change.
4462
4463 2016-04-14  Cesar Philippidis  <cesar@codesourcery.com>
4464
4465         PR middle-end/70643
4466         * omp-low.c (lower_oacc_reductions): Check for TREE_CONSTANT
4467         when building a mem ref for the incoming reduction variable.
4468
4469 2016-04-14  Richard Biener  <rguenther@suse.de>
4470
4471         PR tree-optimization/70614
4472         * tree-scalar-evolution.c (analyze_evolution_in_loop): Terminate
4473         loop if the evolution dropped to chrec_dont_know.
4474         (interpret_condition_phi): Likewise.
4475
4476 2016-04-14  Richard Biener  <rguenther@suse.de>
4477
4478         PR tree-optimization/70623
4479         * tree-ssa-pre.c (changed_blocks): Make global ...
4480         (compute_antic): ... local here.  Move and fix worklist
4481         handling here.  Do not clear EDGE_DFS_BACK or call mark_dfs_back_edges.
4482         (compute_antic_aux): Add dumping for MAX assumed succs.  Remove
4483         worklist handling, dump when ANTIC_IN changed.
4484         (compute_partial_antic_aux): Remove worklist handling.
4485         (init_pre): Do not compute post dominators.  Add a comment about
4486         the CFG order chosen.
4487         (fini_pre): Do not free post dominators.
4488
4489 2016-04-13  Martin Sebor  <msebor@redhat.com>
4490
4491         PR c++/69517
4492         PR c++/70019
4493         PR c++/70588
4494         * doc/extend.texi (Variable Length): Document C++ specifics.
4495
4496 2016-04-13  Jakub Jelinek  <jakub@redhat.com>
4497
4498         PR c++/70641
4499         * ipa-pure-const.c (pass_nothrow::execute): Call maybe_clean_eh_stmt
4500         on all recursive call stmts.  Return TODO_cleanup_cfg if any dead
4501         eh edges have been purged.
4502
4503         PR c++/70594
4504         * tree-sra.c (create_access_replacement,
4505         get_replaced_param_substitute): Set DECL_NAMELESS on repl if it
4506         gets fancy name.
4507         * tree-pretty-print.c (dump_fancy_name): New function.
4508         (dump_decl_name, dump_generic_node): Use it.
4509
4510 2016-04-13  Jason Merrill  <jason@redhat.com>
4511
4512         * cfgexpand.c (pass_expand::execute): Handle attribute "abi warning".
4513         * expr.c (expand_expr_real_1): Likewise.
4514
4515 2016-04-13  Ilya Enkovich  <ilya.enkovich@intel.com>
4516
4517         * config/i386/i386.md (kunpckhi): Swap operands.
4518         (kunpcksi): Likewise.
4519         (kunpckdi): Likewise.
4520         * config/i386/sse.md (vec_pack_trunc_qi): Likewise.
4521         (vec_pack_trunc_<mode>): Likewise.
4522
4523 2016-04-13  Jakub Jelinek  <jakub@redhat.com>
4524
4525         PR debug/70628
4526         * explow.c (convert_memory_address_addr_space_1): Formatting fix.
4527
4528         PR middle-end/70633
4529         * gimplify.c (gimplify_init_constructor): Clear TREE_STATIC if
4530         gimplification turns some element into non-constant.
4531
4532         PR debug/70628
4533         * rtl.h (convert_memory_address_addr_space_1): New prototype.
4534         * explow.c (convert_memory_address_addr_space_1): No longer static,
4535         add NO_EMIT argument and don't call convert_modes if true, pass
4536         it down recursively, remove break after return.
4537         (convert_memory_address_addr_space): Adjust caller.
4538         * simplify-rtx.c (simplify_unary_operation_1): Call
4539         convert_memory_address_addr_space_1 instead of convert_memory_address,
4540         if it returns NULL, don't simplify.
4541
4542 2016-04-12  Eric Botcazou  <ebotcazou@adacore.com>
4543
4544         PR target/70630
4545         * config/sparc/sparc.c (sparc_compute_frame_size): Add parentheses.
4546
4547 2016-04-12  Jakub Jelinek  <jakub@redhat.com>
4548
4549         * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
4550         Bump the upper SIMDLEN limits, so that if the return type or
4551         characteristic type if the return type is void can be passed in
4552         all available SSE2/AVX/AVX2/AVX512-F registers, the SIMDLEN is
4553         allowed.
4554
4555 2016-04-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
4556
4557         PR target/70640
4558         * config/rs6000/rs6000.md (ieee_128bit_vsx_neg<mode>2_internal):
4559         Do not use "=" constraint on an input constraint.
4560         (ieee_128bit_vsx_abs<mode>2_internal): Likewise.
4561         (ieee_128bit_vsx_nabs<mode>2_internal): Likewise.
4562         (ieee_128bit_vsx_nabs<mode>2): Correct splitter so that it
4563         generates (neg (abs ...)) instead of (abs ...).
4564
4565 2016-04-12  Jakub Jelinek  <jakub@redhat.com>
4566
4567         PR rtl-optimization/70596
4568         * lra-spills.c (spill_pseudos): Don't delete debug insns, instead
4569         just invalidate LRA data and reset them.  Adjust dump wording.
4570
4571 2016-04-12  Martin Liska  <mliska@suse.cz>
4572
4573         Revert
4574         2016-03-30  Jan Hubicka  <hubicka@ucw.cz>
4575
4576         * tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can't get realistic
4577         estimates here.
4578         * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also
4579         max_loop_iterations_int.
4580         (tree_unswitch_outer_loop): Likewise.
4581         * tree-ssa-loop-ivopts.c (avg_loop_niter): Likewise.
4582         * tree-vect-loop.c (vect_analyze_loop_2): Likewise.
4583
4584 2016-04-12  Tom de Vries  <tom@codesourcery.com>
4585
4586         PR tree-optimization/68756
4587         * graphite-isl-ast-to-gimple.c (copy_cond_phi_args): Use new_expr
4588         instead of new_name.
4589
4590 2016-04-12  Jakub Jelinek  <jakub@redhat.com>
4591
4592         PR tree-optimization/70602
4593         * tree-sra.c (generate_subtree_copies): Don't write anything into
4594         constant pool decls.
4595
4596         * omp-low.c (lower_omp_target): Use GOMP_MAP_FIRSTPRIVATE_INT
4597         regardless whether there are depend clauses or not.
4598
4599 2016-04-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
4600
4601         PR target/70381
4602         * config/rs6000/rs6000.c (rs6000_opt_masks): Disable using the
4603         target attribute and pragma from changing the -mfloat128
4604         and -mfloat128-hardware options.
4605
4606         * doc/extend.texi (Additional Floating Types): Document PowerPC
4607         __float128 restrictions.
4608
4609 2016-04-11  James Greenhalgh  <james.greenhalgh@arm.com>
4610
4611         PR target/70133
4612         * config/aarch64/driver-aarch64.c
4613         (aarch64_get_extension_string_for_isa_flags): New.
4614         (arch_extension): Rename to...
4615         (aarch64_arch_extension): ...This.
4616         (ext_to_feat_string): Rename to...
4617         (aarch64_extensions): ...This.
4618         (aarch64_core_data): Keep track of architecture extension flags.
4619         (cpu_data): Rename to...
4620         (aarch64_cpu_data): ...This.
4621         (aarch64_arch_driver_info): Keep track of architecture extension
4622         flags.
4623         (get_arch_name_from_id): Rename to...
4624         (get_arch_from_id): ...This, change return type.
4625         (host_detect_local_cpu): Update and reformat for renames, handle
4626         extensions through common infrastructure.
4627
4628 2016-04-11  James Greenhalgh  <james.greenhalgh@arm.com>
4629
4630         PR target/70133
4631         * config/aarch64/aarch64-common.c (aarch64_option_extension): Keep
4632         track of a canonical flag name.
4633         (all_extensions): Likewise.
4634         (arch_to_arch_name): Also track extension flags enabled by the arch.
4635         (all_architectures): Likewise.
4636         (aarch64_parse_extension): Move to here.
4637         (aarch64_get_extension_string_for_isa_flags): Take a new argument,
4638         rework.
4639         (aarch64_rewrite_selected_cpu): Update for above change.
4640         * config/aarch64/aarch64-option-extensions.def: Rework the way flags
4641         are handled, such that the single explicit value enabled by an
4642         extension is kept seperate from the implicit values it also enables.
4643         * config/aarch64/aarch64-protos.h (aarch64_parse_opt_result): Move
4644         to here.
4645         (aarch64_parse_extension): New.
4646         * config/aarch64/aarch64.c (aarch64_parse_opt_result): Move from
4647         here to config/aarch64/aarch64-protos.h.
4648         (aarch64_parse_extension): Move from here to
4649         common/config/aarch64/aarch64-common.c.
4650         (aarch64_option_print): Update.
4651         (aarch64_declare_function_name): Likewise.
4652         (aarch64_start_file): Likewise.
4653         * config/aarch64/driver-aarch64.c (arch_extension): Keep track of
4654         the canonical flag for extensions.
4655         * config.gcc (aarch64*-*-*): Extend regex for capturing extension
4656         flags.
4657
4658 2016-04-11  James Greenhalgh  <james.greenhalgh@arm.com>
4659
4660         * config/aarch64/aarch64.h (AARCH64_FL_FOR_ARCH8_1): Also add
4661         AARCH64_FL_CRC.
4662
4663 2016-04-09  Tom de Vries  <tom@codesourcery.com>
4664
4665         PR tree-optimization/68953
4666         * graphite-sese-to-poly.c (pdr_add_memory_accesses): Order accesses from
4667         first to last subscript.
4668
4669 2016-04-09  Jakub Jelinek  <jakub@redhat.com>
4670
4671         PR tree-optimization/70586
4672         * tree-ssa-ifcombine.c (bb_no_side_effects_p): Return false
4673         for any calls.
4674
4675 2016-04-08  Cesar Philippidis  <cesar@codesourcery.com>
4676
4677         PR lto/70289
4678         PR ipa/70348
4679         PR tree-optimization/70373
4680         PR middle-end/70533
4681         PR middle-end/70534
4682         PR middle-end/70535
4683         * gimplify.c (gimplify_adjust_omp_clauses): Add or adjust data
4684         clauses for acc parallel reductions as necessary.  Error on those
4685         that are private.
4686         * omp-low.c (scan_sharing_clauses): Don't install variables which
4687         are used in acc parallel reductions.
4688         (lower_rec_input_clauses): Remove dead code.
4689         (lower_oacc_reductions): Add support for reference reductions.
4690         (lower_reduction_clauses): Remove dead code.
4691         (lower_omp_target): Don't remap variables appearing in acc parallel
4692         reductions.
4693         * tree.h (OMP_CLAUSE_MAP_IN_REDUCTION): New macro.
4694
4695 2016-04-08  Jakub Jelinek  <jakub@redhat.com>
4696
4697         PR middle-end/70593
4698         * tree-ssa-coalesce.c (build_ssa_conflict_graph): For stmt
4699         with multiple SSA_NAME defs, force the outputs other than first
4700         to be live before calling live_track_process_def on each output.
4701
4702         PR rtl-optimization/70574
4703         * fwprop.c (forward_propagate_and_simplify): Don't add
4704         REG_EQUAL note if DF_REF_REG (use) is a paradoxical subreg.
4705         (try_fwprop_subst): Don't add REG_EQUAL note if there are any
4706         paradoxical subregs within *loc.
4707
4708 2016-04-08  Thomas Schwinge  <thomas@codesourcery.com>
4709
4710         * config/arc/arc.h (LINK_COMMAND_SPEC): Use gt to ignore
4711         -ftree-parallelize-loops={0,1}.
4712         * config/darwin.h (LINK_COMMAND_SPEC_A): Likewise.
4713         * config/i386/mingw32.h (GOMP_SELF_SPECS): Likewise.
4714         * config/ia64/hpux.h (LIB_SPEC): Likewise.
4715         * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
4716         * config/pa/pa64-hpux.h (LIB_SPEC): Likewise.
4717
4718 2016-04-08  Maxim Ostapenko  <m.ostapenko@samsung.com>
4719
4720         PR sanitizer/70541
4721         * asan.c (instrument_derefs): If we get unknown location, extract it
4722         with EXPR_LOCATION.
4723         (maybe_instrument_call): Instrument gimple_call's arguments if needed.
4724
4725 2016-04-08  Tom de Vries  <tom@codesourcery.com>
4726
4727         * omp-low.c (lower_omp_target): Set TREE_NO_WARNING for oacc
4728         implicit firstprivate clause.
4729
4730 2016-04-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4731
4732         PR target/70566
4733         * config/arm/thumb2.md (tst + branch-> lsls + branch
4734         peephole below *orsi_not_shiftsi_si): Require that condition
4735         register is dead after the peephole.
4736         (second peephole after the above): Likewise.
4737
4738 2016-04-08  Alan Modra  <amodra@gmail.com>
4739
4740         PR target/70117
4741         * builtins.c (fold_builtin_classify): For IBM extended precision,
4742         look at just the high-order double to test for NaN.
4743         (fold_builtin_interclass_mathfn): Similarly for Inf.  For isnormal
4744         test just the high double for Inf but both doubles for subnormal
4745         limit.
4746
4747 2016-04-07  Jakub Jelinek  <jakub@redhat.com>
4748
4749         * cgraph.h (struct cgraph_simd_clone): Add mask_mode field.
4750         * omp-low.c (simd_clone_init_simd_arrays, simd_clone_adjust): Handle
4751         node->simdclone->mask_mode != VOIDmode masks.
4752         (simd_clone_adjust_argument_types): Likewise.  Move sc var definition
4753         earlier, use it instead of node->simdclone.
4754         * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
4755         Set clonei->mask_mode.
4756
4757 2016-04-06  Patrick Palka  <ppalka@gcc.gnu.org>
4758
4759         PR c/70436
4760         * parser.c (cp_parser_iteration_statement): New parameter IF_P.
4761         Pass it through to cp_parser_already_scoped_statement.
4762         (cp_parser_already_scoped_statement): New parameter IF_P.  Pass
4763         it through to cp_parser_statement.
4764         (cp_parser_statement): Pass IF_P through to
4765         cp_parser_iteration_statement.
4766         (cp_parser_pragma): Adjust call to
4767         cp_parser_iteration_statement.
4768
4769 2016-04-06  Patrick Palka  <ppalka@gcc.gnu.org>
4770
4771         PR c/70436
4772         * gimplify.c (gimplify_omp_ordered): Add explicit braces to
4773         resolve a future -Wparentheses warning.
4774         * omp-low.c (scan_sharing_clauses): Likewise.
4775         * tree-parloops.c (eliminate_local_variables): Likewise.
4776
4777 2016-04-06  Vladimir Makarov  <vmakarov@redhat.com>
4778
4779         PR rtl-optimization/70398
4780         * lra-constraints.c (process_address_1): Check zero scale and code
4781         for reloading with zero scale.
4782
4783 2016-04-06  Uros Bizjak  <ubizjak@gmail.com>
4784
4785         * config/i386/sse.md (shuffletype): Add V32HI and V4TI modes.
4786         (ssescalarsize): Add V8SF, V4SF, V4DF and V2DF modes.
4787
4788 2016-04-06  Jakub Jelinek  <jakub@redhat.com>
4789
4790         * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
4791         Add support for AVX512F clones, include them by default for
4792         exported OpenMP declare simd functions.  For AVX2 allow simdlen 32
4793         and use it if charasteric type is 8-bit, for AVX512F allow simdlen
4794         up to 128.
4795
4796         PR middle-end/70550
4797         * tree.h (OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT): Define.
4798         * gimplify.c (gimplify_adjust_omp_clauses_1): Set it for implicit
4799         firstprivate clauses.
4800         * omp-low.c (lower_send_clauses): Set TREE_NO_WARNING for
4801         OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT !by_ref vars in task contexts.
4802         (lower_omp_target): Set TREE_NO_WARNING for
4803         non-addressable possibly uninitialized vars which are copied into
4804         addressable temporaries or copied for GOMP_MAP_FIRSTPRIVATE_INT.
4805
4806 2016-04-05  John David Anglin  <danglin@gcc.gnu.org>
4807
4808         * config/pa/predicates.md (integer_store_memory_operand): Accept
4809         REG+D operands with a large offset when reload_in_progress is true.
4810         (floating_point_store_memory_operand): Likewise.
4811
4812 2016-04-05  Jakub Jelinek  <jakub@redhat.com>
4813
4814         PR c++/70336
4815         * match.pd (nested int casts): Limit to GIMPLE.
4816
4817 2016-04-05  Jan Hubicka  <hubicka@ucw.cz>
4818
4819         PR ipa/66223
4820         * ipa-devirt.c (maybe_record_node): Fix comment; use
4821         SANITIZE_UNREACHABLE instead of SANITIZE_UNDEFINED.
4822
4823 2016-04-05  Jakub Jelinek  <jakub@redhat.com>
4824
4825         PR rtl-optimization/70542
4826         * ree.c (add_removable_extension): For VECTOR_MODE_P punt
4827         if there are any uses other than insn or debug insns.
4828
4829 2016-04-05  Marc Glisse  <marc.glisse@inria.fr>
4830             Jakub Jelinek  <jakub@redhat.com>
4831
4832         PR tree-optimization/70509
4833         * simplify-rtx.c (simplify_binary_operation_1) <case VEC_SELECT>:
4834         Shift HOST_WIDE_INT_1U instead of 1.
4835
4836 2016-04-05  Zdenek Sojka  <zsojka@seznam.cz>
4837
4838         PR tree-optimization/70509
4839         * tree-ssa-forwprop.c (simplify_bitfield_ref): Use bitsize_int instead
4840         of the vector base type for index.
4841
4842 2016-04-05  Uros Bizjak  <ubizjak@gmail.com>
4843
4844         PR target/70510
4845         * config/i386/sse.md (iptr): Add V64QI, V32HI, V16SI and V8DI modes.
4846
4847 2016-04-05  Richard Biener  <rguenther@suse.de>
4848
4849         PR tree-optimization/70526
4850         * tree-sra.c (build_ref_for_offset): Use prev_base to
4851         extract the alias pointer type.
4852
4853 2016-04-05  Richard Biener  <rguenther@suse.de>
4854
4855         * dse.c (struct store_info): Remove alias_set member.
4856         (struct read_info_type): Likewise.
4857         (clear_alias_group, clear_alias_mode_table, clear_alias_mode_holder,
4858         spill_deleted, clear_alias_set_lookup): Remove.
4859         (get_group_info): Remove dead base == NULL_RTX case.
4860         (dse_step0): Remove initialization of removed variables.
4861         (delete_dead_store_insn): Reomve alias set dumping.
4862         (free_read_records): Remove alias_set handling.
4863         (canon_address): Remove alias_set_out parameter.
4864         (record_store): Remove spill_alias_set, it's always zero.
4865         (check_mem_read_rtx): Likewise.
4866         (dse_step2): Rename from ...
4867         (dse_step2_nospill): ... this.  Adjust.
4868         (scan_stores): Rename from ...
4869         (scan_stores_nospill): ... this.
4870         (scan_reads): Rename from ...
4871         (scan_reads_nospill): ... this.
4872         (scan_stores_spill, scan_reads_spill): Remove.
4873         (dse_step3_scan): Remove for_spills argument which is always false.
4874         (dse_step3): Likewise.
4875         (dse_step5): Rename from ...
4876         (dse_step5_nospill): ... this.  Remove alias_set handling.
4877         (rest_of_handle_dse): Adjust.
4878
4879 2016-04-05  Jakub Jelinek  <jakub@redhat.com>
4880
4881         PR target/70525
4882         * config/i386/sse.md (*andnot<mode>3): Simplify assertions.
4883         Use vpandn<ssemodesuffix> for V16SI/V8DImode, vpandnq for
4884         V32HI/V64QImode, don't use <mask_operand3_1>, fix up formatting.
4885         (*andnot<mode>3_mask): Remove insn with VI12_AVX512VL iterator.
4886
4887 2016-04-05  Richard Biener  <rguenther@suse.de>
4888
4889         PR middle-end/70499
4890         * gimplify-me.c (gimple_regimplify_operands): Do not rewrite
4891         non-register type temporaries into SSA.
4892
4893 2016-04-04  Jan Hubicka  <hubicka@ucw.cz>
4894
4895         PR ipa/66223
4896         * ipa-devirt.c (maybe_record_node): Do not optimize cxa_pure_virtual
4897         calls when sanitizing.
4898         (possible_polymorphic_call_target_p): Fix formatting.
4899
4900 2016-04-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
4901             Jakub Jelinek <jakub@redhat.com>
4902
4903         PR middle-end/70457
4904         * tree-inline.c (estimate_num_insn): Use gimple_call_builtin_p
4905         to ensure a call statement is compatible with a built-in's
4906         prototype.
4907         * tree-ssa-math-opts.c (pass_optimize_windening_mul::execute):
4908         Likewise.
4909
4910 2016-04-04  Richard Biener  <rguenther@suse.de>
4911
4912         PR rtl-optimization/70484
4913         * rtl.h (canon_output_dependence): Declare.
4914         * alias.c (canon_output_dependence): New function.
4915         * dse.c (record_store): Use canon_output_dependence rather
4916         than canon_true_dependence.
4917
4918 2016-03-30  Jan Hubicka  <hubicka@ucw.cz>
4919
4920         PR ipa/68881
4921         * cgraph.h (symtab_node::copy_visibility_from): New function.
4922         * symtab.c (symtab_node::copy_visibility_from): New function.
4923         * ipa-visibility.c (optimize_weakref): New function.
4924         (function_and_variable_visibility): Use it.
4925
4926 2016-04-04  Martin Liska  <mliska@suse.cz>
4927
4928         PR hsa/70402
4929         * hsa-gen.c (gen_hsa_insns_for_switch_stmt): Guard index
4930         value that is really in range handled by SBR instruction.
4931         * hsa-brig.c (emit_switch_insn): Do not emit unconditional jump.
4932         * hsa-dump.c (dump_hsa_insn_1): Do not dump default BB.
4933         * hsa.h (hsa_insn_sbr::m_default_bb): Remove field.
4934
4935 2016-04-03  Oleg Endo  <olegendo@gcc.gnu.org>
4936
4937         PR target/70416
4938         PR target/67391
4939         * config/sh/sh.md (*addsi3): Allow pattern when reload_in_progress is
4940         set, but not for SP_REG operands.
4941
4942 2016-04-02  Martin Sebor  <msebor@redhat.com>
4943
4944         PR c++/67376
4945         * fold-const.c (maybe_nonzero_address): New function.
4946         (fold_comparison): Call it.  Fold equality and relational
4947         expressions involving null pointers.
4948         (tree_single_nonzero_warnv_p): Call maybe_nonzero_address.
4949
4950 2016-03-31  Evandro Menezes  <e.menezes@samsung.com>
4951
4952         Fix the predicate "aarch64_simd_reg_or_zero" to correctly validate
4953         the "Y" constraint (scalar FP 0.0 immediate).
4954
4955         * gcc/config/aarch64/predicates.md (aarch64_simd_reg_or_zero):
4956         Add the "const_double" to the list of operand constraints.
4957
4958 2016-04-01  Jakub Jelinek  <jakub@redhat.com>
4959
4960         PR rtl-optimization/70467
4961         * config/i386/i386.md (*add<dwi>3_doubleword, *sub<dwi>3_doubleword):
4962         If low word of the last operand is 0, just emit addition/subtraction
4963         for the high word.
4964
4965 2016-04-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
4966
4967         PR target/70404
4968         * config/s390/s390.c (s390_expand_insv): Check for everything
4969         constant instead of just VOIDmode stuff.
4970
4971 2016-04-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
4972
4973         PR target/70496
4974         * config/arm/arm.h (ASM_APP_OFF): Handle TARGET_ARM and TARGET_THUMB.
4975
4976 2016-04-01  Nathan Sidwell  <nathan@acm.org>
4977
4978         * tree.def (TRY_CATCH_EXPR): Correct documentation.
4979
4980 2016-03-31  Vladimir Makarov  <vmakarov@redhat.com>
4981
4982         PR rtl-optimization/70461
4983         * ira-color.c (allocno_copy_cost_saving): Use allocno class if it
4984         is necessary.
4985
4986 2016-03-31  Martin Liska  <mliska@suse.cz>
4987
4988         PR hsa/70399
4989         * hsa-brig.c (hsa_op_immed::emit_to_buffer): Emit either
4990         a tree value or an immediate integer value to a buffer
4991         that is eventually copied to a BRIG section.
4992         (emit_immediate_operand): Call the function here.
4993         * hsa-dump.c (dump_hsa_immed): Remove checking assert.
4994         * hsa-gen.c (hsa_op_immed::hsa_op_immed): Remove initialization
4995         of class' fields that are removed.
4996         (hsa_op_immed::~hsa_op_immed): Remove deinitialization.
4997         * hsa.h (class hsa_op_immed): Remove m_brig_repr and
4998         m_brig_repr_size fields.
4999
5000 2016-03-31  Martin Liska  <mliska@suse.cz>
5001
5002         PR hsa/70391
5003         * hsa-gen.c (hsa_function_representation::update_dominance): New
5004         function.
5005         (convert_addr_to_flat_segment): Likewise.
5006         (gen_hsa_memory_set): New alignment argument.
5007         (gen_hsa_ctor_assignment): Likewise.
5008         (gen_hsa_insns_for_single_assignment): Provide alignment
5009         to gen_hsa_ctor_assignment.
5010         (gen_hsa_insns_for_direct_call): Add new argument.
5011         (expand_lhs_of_string_op): New function.
5012         (expand_string_operation_builtin): Likewise.
5013         (expand_memory_copy): New function.
5014         (expand_memory_set): New function.
5015         (gen_hsa_insns_for_call): Use HOST_WIDE_INT.
5016         (convert_switch_statements): Change signature.
5017         (generate_hsa): Use a return value of the function.
5018         (pass_gen_hsail::execute): Do not call
5019         convert_switch_statements here.
5020         * hsa-regalloc.c (hsa_regalloc): Call update_dominance.
5021         * hsa.h (hsa_function_representation::m_modified_cfg): New flag.
5022         (hsa_function_representation::update_dominance): New function.
5023
5024 2016-03-31  Martin Liska  <mliska@suse.cz>
5025
5026         PR hsa/70391
5027         * hsa-brig.c (emit_directive_variable): Emit alignment
5028         according to hsa_symbol::m_align.
5029         * hsa-dump.c (hsa_byte_alignment): Move the function to another file.
5030         (dump_hsa_symbol): Dump alignment of HSA symbols.
5031         * hsa-gen.c (get_symbol_for_decl): Set-up alignment of a symbol.
5032         (gen_hsa_addr_with_align): New function.
5033         (hsa_bitmemref_alignment): Use newly added function.
5034         (gen_hsa_insns_for_load): Likewise.
5035         (gen_hsa_insns_for_store): Likewise.
5036         (gen_hsa_memory_copy): New argument added.
5037         (gen_hsa_insns_for_single_assignment): Respect
5038         alignment for assignments processed via gen_hsa_memory_copy.
5039         (gen_hsa_insns_for_direct_call): Likewise.
5040         (gen_hsa_insns_for_return): Likewise.
5041         (gen_function_def_parameters): Set default alignment.
5042         * hsa.c (hsa_object_alignment): New function.
5043         (hsa_byte_alignment): Pasted function.
5044         * hsa.h (hsa_symbol::m_align): New field.
5045
5046 2016-03-31  Bin Cheng  <bin.cheng@arm.com>
5047
5048         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Initialize
5049         scratch field for goto case.
5050
5051 2016-03-31  James Greenhalgh  <james.greenhalgh@arm.com>
5052
5053         * config/arm/linux-elf.h (ASM_OUTPUT_DEF): Delete.
5054
5055 2016-03-31  Ilya Enkovich  <enkovich.gnu@gmail.com>
5056
5057         PR target/70442
5058         * config/i386/i386.c (scalar_chain::convert_op): Fix description.
5059         (scalar_chain::convert_insn): Call convert_op for reg
5060         moves to handle undefined registers.
5061
5062 2016-03-31  Nathan Sidwell  <nathan@acm.org>
5063
5064         PR c++/70393
5065         * varasm.c (output_constructor_regular_field): Flush bitfield earlier.
5066         Assert we don't want to move backwards.
5067
5068 2016-03-31  Kirill Yukhin  <kirill.yukhin@intel.com>
5069
5070         PR target/70453
5071         * config/i386/sse.md (define_mode_attr shuffletype): Fix typo.
5072
5073 2016-03-31  Jakub Jelinek  <jakub@redhat.com>
5074
5075         PR rtl-optimization/70460
5076         * ira.c (indirect_jump_optimize): Don't substitute LABEL_REF
5077         with operand from REG_LABEL_OPERAND, instead substitute
5078         SET_SRC or REG_EQUAL note content if it is a LABEL_REF.
5079         Don't do anything for REG_NON_LOCAL_GOTO jumps.
5080
5081 2016-03-31  Martin Liska  <mliska@suse.cz>
5082
5083         * passes.c (execute_one_pass): Do not call
5084         todo_after for a discarded function.
5085
5086 2016-03-31  Bin Cheng  <bin.cheng@arm.com>
5087
5088         * tree-ssa-loop-ivopts.c (struct comp_cost): New scrach field.
5089         (no_cost, infinite_cost): Initialize the new field.
5090         (get_computation_cost_at): Record setup cost.
5091         (determine_use_iv_cost_address): Skip cost computation for sub
5092         uses if we can estimate it without losing accuracy.
5093
5094 2016-03-30  Jan Hubicka  <hubicka@ucw.cz>
5095
5096         * tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can't get realistic
5097         estimates here.
5098         * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also
5099         max_loop_iterations_int.
5100         (tree_unswitch_outer_loop): Likewise.
5101         * tree-ssa-loop-ivopts.c (avg_loop_niter): Likewise.
5102         * tree-vect-loop.c (vect_analyze_loop_2): Likewise.
5103
5104 2016-03-30  Richard Biener  <rguenther@suse.de>
5105
5106         PR middle-end/70450
5107         * fold-const.c (extract_muldiv_1): Fix thinko in wide_int::from usage.
5108
5109 2016-03-30  Jakub Jelinek  <jakub@redhat.com>
5110
5111         PR target/70421
5112         * config/i386/i386.c (ix86_expand_vector_set): Fix up argument order
5113         in gen_blendm expander.
5114
5115 2016-03-30  Nick Clifton  <nickc@redhat.com>
5116
5117         PR target/62254
5118         * config/arm/arm.c (arm_reload_out_hi): Add code to handle the
5119         case where we are already provided with an SImode SUBREG.
5120
5121 2016-03-30  H.J. Lu  <hongjiu.lu@intel.com>
5122
5123         PR target/70439
5124         * config/i386/i386.c (ix86_expand_epilogue): Properly check
5125         conflict between DRAP register and __builtin_eh_return.
5126
5127 2016-03-30  Michael Matz  <matz@suse.de>
5128             Richard Biener  <rguenther@suse.de>
5129
5130         PR ipa/12392
5131         * ipa-polymorphic-call.c (struct type_change_info): Change
5132         speculative to an unsigned allowing to limit the work we do.
5133         (csftc_abort_walking_p): New inline function..
5134         (check_stmt_for_type_change): Limit the number of may-defs
5135         skipped for speculative devirtualization to
5136         max-speculative-devirt-maydefs.
5137         * params.def (max-speculative-devirt-maydefs): New param.
5138         * doc/invoke.texi (--param max-speculative-devirt-maydefs): Document.
5139
5140 2016-03-30  Mike Stump  <mrs@gcc.gnu.org>
5141
5142         PR target/63890
5143         * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Use when profiling
5144         and TARGET_MACHO.
5145
5146 2016-03-30  Patrick Palka  <ppalka@gcc.gnu.org>
5147
5148         PR tree-optimization/59124
5149         * tree-vrp.c (register_edge_assert_for_2): For NAME != CST1
5150         where NAME = A +- CST2 add the assertion A != (CST1 -+ CST2).
5151
5152 2016-03-29  Jeff Law  <law@redhat.com>
5153
5154         * tree-ssa-coalesce.c (struct ssa_conflicts): Fix typo in comment.
5155
5156 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
5157
5158         * tree-ssa-loop-ivcanon.c (try_peel_loop): Change type of peel
5159         to HOST_WIDE_INT.
5160
5161 2016-03-29  Thomas Schwinge  <thomas@codesourcery.com>
5162
5163         * config/gnu.h (CPP_SPEC, LIB_SPEC): Don't override.
5164         * config/i386/gnu.h (STARTFILE_SPEC): Use gcrt1.o instead of
5165         gcrt0.o if linking dynamically.
5166
5167 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
5168
5169         PR ipa/70283
5170         * ipa-devirt.c (methods_equal_p): New function.
5171         (compare_virtual_tables): Use it.
5172         * cgraph.h (symbol_table::symbol_suffix_separator): Declare.
5173         * cgraphclones.c (clone_function_name_1): Use
5174         symbol_table::symbol_suffix_separator.
5175         * coverage.c (build_var): Likewise.
5176         * symtab.c (symbol_table::symbol_suffix_separator): New.
5177
5178 2016-03-29  Jakub Jelinek  <jakub@redhat.com>
5179
5180         PR rtl-optimization/70429
5181         * combine.c (simplify_shift_const_1): For ASHIFTRT don't optimize
5182         (cst1 >> count) >> cst2 into (cst1 >> cst2) >> count if
5183         mode != result_mode.
5184
5185         PR c++/70353
5186         * tree-inline.c (remap_decls): Don't add_local_decl if cfun is null.
5187
5188         PR tree-optimization/70405
5189         * ssa-iterators.h (num_imm_uses): Add missing braces.
5190
5191 2016-03-29  Vladimir Makarov  <vmakarov@redhat.com>
5192
5193         PR rtl-optimization/68695
5194         * ira-color.c (allocno_copy_cost_saving): New.
5195         (improve_allocation): Use it.
5196
5197 2016-03-29  Richard Henderson  <rth@redhat.com>
5198
5199         PR middle-end/70355
5200         * lower-subreg.c (simplify_subreg_concatn): Reject paradoxical subregs.
5201
5202 2016-03-29  Richard Biener  <rguenther@suse.de>
5203
5204         PR middle-end/70424
5205         * ipa-prop.c (ipa_compute_jump_functions_for_edge): Always
5206         use alignment returned by get_pointer_alignment_1 if it is
5207         bigger than BITS_PER_UNIT.
5208         * builtins.c (get_pointer_alignment_1): Do not return true
5209         for alignment extracted from SSA info.
5210
5211 2016-03-28  James Bowman  <james.bowman@ftdichip.com>
5212
5213         * config/ft32/ft32.opt (mnodiv): New.
5214         * config/ft32/ft32.md (*divsi3, *modsi3): Qualify with TARGET_NODIV.
5215         * doc/invoke.texi (FT32 Options -mnodiv): New.
5216
5217 2016-03-28  Kirill Yukhin  <kirill.yukhin@intel.com>
5218
5219         PR target/70406
5220         * config/i386/i386.md (define_split, andn): Fix modes.
5221
5222 2016-03-26  Richard Biener  <rguenther@suse.de>
5223             Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
5224
5225         PR ipa/70366
5226         * ipa-inline-transform.c (inline_call): Pass opts_for_fn (to->decl)
5227         instead of
5228         TREE_OPTIMIZATION (DECL_FUNCTION_SPECIFIC_OPTIMIZATION (to->decl))
5229         as 2nd argument to cl_optimization_restore().
5230
5231 2016-03-25  Richard Henderson  <rth@redhat.com>
5232
5233         PR target/70120
5234         * config/aarch64/aarch64.c (aarch64_asm_output_pool_epilogue): New.
5235         * config/aarch64/aarch64-protos.h: Declare it.
5236         * config/aarch64/aarch64.h (ASM_OUTPUT_POOL_EPILOGUE): New.
5237
5238 2016-03-25  Alan Modra  <amodra@gmail.com>
5239
5240         PR target/70052
5241         * config/rs6000/constraints.md (j): Simplify.
5242         * config/rs6000/predicates.md (easy_fp_constant): Exclude
5243         decimal float 0.D.
5244         * config/rs6000/rs6000.md (zero_fp): New mode_attr.
5245         (mov<mode>_hardfloat, mov<mode>_hardfloat32, mov<mode>_hardfloat64,
5246          mov<mode>_64bit_dm, mov<mode>_32bit): Use zero_fp in place of j
5247         in all constraint alternatives.
5248         (movtd_64bit_nodm): Delete "j" constraint alternative.
5249
5250 2016-03-24  Aldy Hernandez  <aldyh@redhat.com>
5251
5252         * tree-ssa-propagate.c: Enhance docs for
5253         SSA_PROP_NOT_INTERESTING.
5254
5255 2016-03-24  Aldy Hernandez  <aldyh@redhat.com>
5256
5257         * doc/extend.texi: Fix typo in documentation to pure attribute.
5258
5259 2016-03-24  John David Anglin  <danglin@gcc.gnu.org>
5260
5261         PR target/70319
5262         * config/pa/pa.md (bswapdi2): Use a scratch register.
5263
5264 2016-03-24  Richard Henderson  <rth@redhat.com>
5265
5266         PR middle-end/69845
5267         * fold-const.c (extract_muldiv_1): Correct test for multiplication
5268         overflow.
5269
5270 2016-03-24  Uros Bizjak  <ubizjak@gmail.com>
5271
5272         * config/i386/i386.md (*anddi3_doubleword): Generate AND insn
5273         using ix86_expand_binary_operator instead of gen_andsi3.
5274
5275 2016-03-24  Richard Biener  <rguenther@suse.de>
5276
5277         PR tree-optimization/70396
5278         * tree-vect-stmts.c (vectorizable_comparison): Use
5279         get_vectype_for_scalar_type.
5280
5281 2016-03-24  Richard Biener  <rguenther@suse.de>
5282
5283         PR middle-end/70370
5284         * gimplify.c (gimplify_asm_expr): Handle !allows_mem outputs
5285         with register bases.
5286
5287 2016-03-24  Richard Biener  <rguenther@suse.de>
5288
5289         PR tree-optimization/70372
5290         * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Use
5291         build_all_ones_cst to also handle vector types correctly.
5292
5293 2016-03-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
5294
5295         PR target/70381
5296         * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Do not set
5297         -mfloat128 here.
5298
5299 2016-03-23  Marek Polacek  <polacek@redhat.com>
5300
5301         PR c++/69884
5302         * doc/invoke.texi: Document -Wignored-attributes.
5303
5304 2016-03-23  Bin Cheng  <bin.cheng@arm.com>
5305
5306         PR tree-optimization/69042
5307         * params.def (PARAM_IV_CONSIDER_ALL_CANDIDATES_BOUND): Increase the
5308         parameter from 30 to 40.
5309
5310 2016-03-23  Bin Cheng  <bin.cheng@arm.com>
5311
5312         PR tree-optimization/69042
5313         * tree-ssa-loop-ivopts.c (add_iv_candidate_for_use): Add IV cand
5314         for use with constant offset stripped in base.
5315
5316 2016-03-23  Richard Biener  <rguenther@suse.de>
5317
5318         PR middle-end/70251
5319         * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Adjust
5320         mode compatibility check.
5321         (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise.
5322
5323 2016-03-23  Jeff Law  <law@redhat.com>
5324
5325         PR tree-optimization/64058
5326         * tree-ssa-coalesce.c (struct coalesce_pair): Add new field
5327         CONFLICT_COUNT.
5328         (struct ssa_conflicts): Move up earlier in the file.
5329         (conflicts_, var_map_): New static variables.
5330         (initialize_conflict_count): New function to initialize the
5331         CONFLICT_COUNT field for each conflict pair.
5332         (compare_pairs): Lazily initialize the conflict count and use it
5333         as the first tie-breaker.
5334         (sort_coalesce_list): Add new arguments conflicts, map.  Initialize
5335         and wipe conflicts_ and map_ around the call to qsort.  Remove
5336         special case for 2 coalesce pairs.
5337         * bitmap.c (bitmap_count_unique_bits): New function.
5338         (bitmap_count_bits_in_word): New function, extracted from
5339         bitmap_count_bits.
5340         (bitmap_count_bits): Use bitmap_count_bits_in_word.
5341         * bitmap.h (bitmap_count_unique_bits): Declare it.
5342
5343 2016-03-23  Ilya Enkovich  <enkovich.gnu@gmail.com>
5344
5345         PR target/69917
5346         * config/i386/sol2.h (ASM_OUTPUT_DEF_FROM_DECLS): Follow
5347         transparent alias chain for decl assembler name.
5348         * config/sol2.c (solaris_assemble_visibility): Likewise.
5349
5350 2016-03-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5351
5352         * config/arm/arm1020e.md (1020call_op): Reduce reservation
5353         duration.
5354         (v10_fdivs): Likewise.
5355         (v10_fdivd): Likewise.
5356
5357 2016-03-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5358
5359         PR driver/70132
5360         * config/arm/driver-arm.c (host_detect_local_cpu): Reorder exit logic
5361         to not call fclose twice on file.
5362
5363 2016-03-23  Jakub Jelinek  <jakub@redhat.com>
5364
5365         PR tree-optimization/70354
5366         * tree-vect-patterns.c (vect_recog_vector_vector_shift_pattern): If
5367         oprnd0 is wider than oprnd1 and there is a cast from the wider
5368         type to oprnd1, mask it with the mask of the narrower type.
5369
5370         PR target/70321
5371         * config/i386/i386.md (*anddi3_doubleword, *<code>di3_doubleword):
5372         Optimize TARGET_STV splitters, if high or low word of last argument
5373         is 0 or -1.
5374
5375 2016-03-22  Jeff Law  <law@redhat.com>
5376
5377         PR target/70232
5378         tree-ssa-threadbackward.c
5379         (fsm_find_control_statement_thread_paths): Correctly distinguish
5380         between old style jump threads vs FSM jump threads.
5381
5382 2016-03-22  Ilya Enkovich  <enkovich.gnu@gmail.com>
5383
5384         PR target/70302
5385         * config/i386/i386.c (scalar_chain::convert_op): Support
5386         uninitialized register usage case.
5387
5388 2016-03-22  Richard Biener  <rguenther@suse.de>
5389
5390         PR middle-end/70251
5391         * genmatch.c (gen_transform): Adjust last parameter to a three-state
5392         int...
5393         (capture::gen_transform): ... to change behavior when substituting
5394         a condition into cond or not-cond expr context.
5395         (dt_simplify::gen_1): Adjust.
5396         * gimple-match-head.c: Include gimplify.h for unshare_expr.
5397         * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Revert
5398         last change and instead change to
5399         A + (B vcmp C ? 1 : 0) -> A - (B vcmp C ? -1 : 0).
5400         (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise.
5401
5402 2016-03-22  Anthony Green  <green@moxielogic.com>
5403
5404         * config/moxie/moxiebox.h (CC1_SPEC): Define.  Fix endianness
5405         issue for moxiebox targets.
5406         (CC1PLUS_SPEC): Ditto.
5407
5408 2016-03-22  Richard Biener  <rguenther@suse.de>
5409
5410         PR middle-end/70333
5411         * fold-const.c (extract_muldiv_1): Properly perform multiplication
5412         in the wide type.
5413
5414 2016-03-22  Kirill Yukhin  <kirill.yukhin@intel.com>
5415
5416         * config/i386/i386.c (def_builtin): Remove duplicated functionality.
5417
5418 2016-03-22  Kirill Yukhin  <kirill.yukhin@intel.com>
5419
5420         PR target/70325
5421         * config/i386/i386.c (def_builtin): Handle
5422         OPTION_MASK_ISA_AVX512VL to be and-ed with other
5423         bits.
5424         (const struct builtin_description bdesc_special_args[]):
5425         Remove duplicate ISA bits.
5426
5427 2016-03-22  Jakub Jelinek  <jakub@redhat.com>
5428
5429         PR target/70329
5430         * config/i386/i386.c (ix86_expand_vecop_qihi): Don't bother computing
5431         d.perm[i] for i >= d.nelt.  If not full_interleave, compute d.perm[i]
5432         in a way that works also for AVX512BW.
5433
5434         PR target/70300
5435         * config/i386/i386.md (cvtsd2ss splitter): Unpack in destination
5436         instead of source if operands[1] is xmm16 and above and
5437         !TARGET_AVX512VL.  Use avx512f_vec_dupv16sf_1 instead of
5438         vec_interleave_lowv4sf if we need to unpack xmm16 and above.
5439
5440         PR c++/70295
5441         * gimplify.c (gimplify_modify_expr): Call gimple_set_no_warning
5442         on assign if (*from_p) is a comparison, set it to
5443         TREE_NO_WARNING (*from_p).
5444
5445 2016-03-21  Jakub Jelinek  <jakub@redhat.com>
5446
5447         PR middle-end/70326
5448         * lra.c (restore_scratches): Ignore deleted insns.
5449
5450 2016-03-21  Marc Glisse  <marc.glisse@inria.fr>
5451             Jakub Jelinek  <jakub@redhat.com>
5452
5453         PR tree-optimization/70317
5454         * match.pd (cmp @0 @0): Pass @0 instead of TYPE_MODE (TREE_TYPE (@0))
5455         to HONOR_NANS.
5456
5457 2016-03-21  Uros Bizjak  <ubizjak@gmail.com>
5458
5459         PR target/70327
5460         * config/i386/i386.md (movxi): Use ix86_expand_vector_move instead
5461         of ix86_expand_move.
5462         (movoi): Ditto.
5463         (movti): Use general_operand for operand 1 predicate.
5464
5465 2016-03-21  Martin Liska  <mliska@suse.cz>
5466
5467         * hsa-dump.c (dump_hsa_insn_1): dump default branch of SBR
5468         insns.
5469         (dump_hsa_symbol): Dump BRIG offset of hsa_symbols.
5470
5471 2016-03-21  Martin Liska  <mliska@suse.cz>
5472
5473         PR ipa/70306
5474         * ipa-icf.c (sem_function::parse): Skip static
5475         constructors and destructors.
5476
5477 2016-03-21  Jakub Jelinek  <jakub@redhat.com>
5478
5479         PR target/70296
5480         * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If IDENT is
5481         function-like macro, peek following token(s) if it is followed
5482         by CPP_OPEN_PAREN token with optional padding in between, and
5483         if not, don't treat it like a macro.
5484
5485 2016-03-21  Thomas Schwinge  <thomas@codesourcery.com>
5486             Alexander Monakov  <amonakov@ispras.ru>
5487
5488         * config/nvptx/nvptx.c (nvptx_option_override): Don't emit sorry
5489         for the stabs debug format.
5490
5491 2016-03-21  Richard Biener  <rguenther@suse.de>
5492
5493         PR tree-optimization/70310
5494         * tree-vect-generic.c (expand_vector_condition): Fold the built
5495         condition.
5496
5497 2016-03-21  Kirill Yukhin  <kirill.yukhin@intel.com>
5498
5499         PR target/70293
5500         * config/i386/sse.md: (define_insn "*vec_dup<mode>"/AVX2):
5501         Block third alternative for AVX-512VL target,
5502
5503 2016-03-21  Martin Liska  <mliska@suse.cz>
5504
5505         PR hsa/70234
5506         * hsa-brig.c (emit_function_directives): Mark unemitted
5507         global variables for emission.
5508         * hsa-gen.c (hsa_symbol::hsa_symbol): Initialize a new flag.
5509         (get_symbol_for_decl): Likewise.
5510         * hsa.h (struct hsa_symbol): New flag.
5511
5512 2016-03-21  Richard Biener  <rguenther@suse.de>
5513
5514         PR tree-optimization/70288
5515         * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Make sure
5516         we do not estimate unsimplified all-constant conditionals or
5517         switches as optimized away.
5518
5519 2016-03-21  Andrey Belevantsev  <abel@ispras.ru>
5520
5521         PR rtl-optimization/69102
5522         * sched-deps.c (sched_analyze_insn): Do not set last_args_size field
5523         when we have a readonly dependency context.
5524
5525 2016-03-18  Jeff Law  <law@redhat.com>
5526
5527         PR rtl-optimization/70263
5528         * ira.c (memref_used_between_p): Assert we found END in the insn chain.
5529         (update_equiv_regs): When trying to move a store to after the insn
5530         that sets the source of the store, make sure the store occurs after
5531         the insn that sets the source of the store.  When successful note
5532         the REG_EQUIV note created in the dump file.
5533
5534 2016-03-16  David Wohlferd  <dw@LimeGreenSocks.com>
5535             Bernd Schmidt  <bschmidt@redhat.com>
5536
5537         * doc/extend.texi: Document more potential problems with basic asms.
5538
5539 2016-03-18  Bernd Schmidt  <bschmidt@redhat.com>
5540
5541         PR rtl-optimization/70278
5542         * lra-constraints.c (split_reg): Handle the case where biggest_mode is
5543         VOIDmode.
5544
5545 2016-03-18  Jason Merrill  <jason@redhat.com>
5546
5547         * calls.c (load_register_parameters): Fix zero size sibcall logic.
5548
5549 2016-03-18  Kirill Yukhin  <kirill.yukhin@intel.com>
5550
5551         * config/i386/sse.md: Use vpbroadcastq for broadcasting DF
5552         values to 128b regs.
5553
5554 2016-03-18  Ilya Enkovich  <enkovich.gnu@gmail.com>
5555
5556         PR tree-optimization/70252
5557         * tree-vect-stmts.c (supportable_widening_operation): Check resulting
5558         boolean vector has a proper number of elements.
5559         (supportable_narrowing_operation): Likewise.
5560
5561 2016-03-18  Tom de Vries  <tom@codesourcery.com>
5562
5563         PR ipa/70269
5564         * cgraph.c (cgraph_node::get_body): Set dump_file to NULL after save.
5565
5566 2016-03-18  Jakub Jelinek  <jakub@redhat.com>
5567
5568         * reload1.c (emit_input_reload_insns): Use simplify_replace_rtx
5569         instead of replace_rtx for DEBUG_INSNs.
5570
5571 2016-03-18  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
5572
5573         * config/i386/znver1.md : Fix latencies of FP/SSE/AVX
5574         load type reservations.
5575
5576 2016-03-17  John David Anglin  <danglin@gcc.gnu.org>
5577
5578         PR target/70188
5579         * config/pa/constraints.md: Revert 2015-02-13 change.  Use
5580         define_constraint for "Q" and "T" constraints.
5581
5582 2016-03-17  Evandro Menezes  <e.menezes@samsung.com>
5583
5584         Tweak the pipeline model for Exynos M1
5585
5586         * config/aarch64/aarch64.c (exynosm1_tunings):  Enable weak prefetching
5587         model.
5588
5589 2016-03-17  David Malcolm  <dmalcolm@redhat.com>
5590
5591         PR c/70264
5592         * diagnostic-show-locus.c (compatible_locations_p): Handle the case
5593         where one or both locations aren't within a line_map.
5594
5595 2016-03-17  H.J. Lu  <hongjiu.lu@intel.com>
5596
5597         PR driver/70192
5598         * opts.c (finish_options): Don't set flag_pie to the default if
5599         -fpic, -fPIC, -fno-pic or -fno-PIC is used.  Set flag_pic to 0
5600         if it is -1.
5601
5602 2016-03-17  Joern Rennecke  <joern.rennecke@embecosm.com>
5603
5604         * config/i386/i386.md (*movv4qicc_insn+1..36): Pass
5605         true as ALL_REGS argument to replace_rtx.
5606
5607 2016-03-17  Richard Biener  <rguenther@suse.de>
5608
5609         PR debug/70271
5610         * dwarf2out.c (dwarf2out_early_finish): Process deferred_asm_name
5611         last.
5612
5613 2016-03-17  Jakub Jelinek  <jakub@redhat.com>
5614
5615         PR target/70245
5616         * rtl.h (replace_rtx): Add ALL_REGS argument.
5617         * rtlanal.c (replace_rtx): Likewise.  If true, use REGNO
5618         equality and assert mode is the same, instead of just rtx pointer
5619         equality.
5620         * config/i386/i386.md (mov + arithmetics with load peephole): Pass
5621         true as ALL_REGS argument to replace_rtx.
5622
5623 2016-03-17  Ilya Enkovich  <enkovich.gnu@gmail.com>
5624
5625         * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Apply
5626         for boolean vector with vector mode only.
5627         (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise.
5628
5629 2016-03-17  Nick Clifton  <nickc@redhat.com>
5630
5631         PR target/70162
5632         * config/rx/rx.c (rx_print_integer): Print negative constants in
5633         decimal.
5634
5635 2016-03-17  Jakub Jelinek  <jakub@redhat.com>
5636
5637         PR target/70261
5638         * rtlanal.c (replace_rtx): Revert 2016-03-16 change.
5639
5640 2016-03-16  Richard Henderson  <rth@redhat.com>
5641             Richard Biener  <rguenth@suse.de>
5642
5643         PR middle-end/70240
5644         PR middle-end/68215
5645         PR tree-opt/68714
5646         * gimplify.c (gimplify_expr) [VEC_COND_EXPR]: Gimplify the
5647         first operand as is_gimple_condexpr.
5648
5649         PR middle-end/70240
5650         PR middle-end/68215
5651         Revert r231575
5652         2015-12-11  Eric Botcazou  <ebotcazou@adacore.com>
5653         * tree-vect-generic.c (tree_vec_extract): Remove GSI parameter.
5654         Do not gimplify the result.
5655         (do_unop): Adjust call to tree_vec_extract.
5656         (do_binop): Likewise.
5657         (do_compare): Likewise.
5658         (do_plus_minus): Likewise.
5659         (do_negate): Likewise.
5660         (expand_vector_condition): Likewise.
5661         (do_cond): Likewise.
5662
5663 2016-03-16  Richard Henderson  <rth@redhat.com>
5664
5665         PR target/70048
5666         * config/aarch64/aarch64.c (virt_or_elim_regno_p): New.
5667         (aarch64_classify_address): Use it.
5668         (aarch64_legitimize_address): Force all subexpressions of PLUS
5669         into registers.  Simplify as (sfp+const)+reg or (reg+reg)+const.
5670
5671 2016-03-16  Jakub Jelinek  <jakub@redhat.com>
5672             Richard Biener  <rguenth@suse.de>
5673
5674         PR target/70245
5675         * rtlanal.c (replace_rtx): For REG, if from is a REG,
5676         return to even if only REGNO is equal, and assert
5677         mode is the same.
5678
5679 2016-03-11  Jeff Law  <law@redhat.com>
5680
5681         PR rtl-optimization/70224
5682         * reorg.c (relax_delay_slots): Pass right argument to CROSSING_JUMP_P.
5683
5684 2016-03-16  Richard Henderson  <rth@redhat.com>
5685
5686         PR middle-end/70199
5687         * function.h (struct function): Add has_forced_label_in_static.
5688         * gimplify.c (force_labels_r): Set it.
5689         * lto-streamer-in.c (input_struct_function_base): Read it.
5690         * lto-streamer-out.c (output_struct_function_base): Write it.
5691         * tree-inline.c (has_label_address_in_static_1): Remove.
5692         (copy_forbidden): Remove fndecl parameter; test
5693         has_forced_label_in_static.
5694         (inline_forbidden_p): Update call to copy_forbidden.
5695         (tree_versionable_function_p): Likewise.
5696         * ipa-chkp.c (chkp_instrumentable_p): Likewise.
5697         (chkp_versioning): Likewise.
5698         * tree-inline.h (copy_forbidden): Update decl.
5699
5700 2016-03-16  Marek Polacek  <polacek@redhat.com>
5701
5702         PR c/70093
5703         * cgraphunit.c (cgraph_node::expand_thunk): Also build call to the
5704         function being thunked if the result type doesn't have fixed size.
5705         * gimplify.c (gimplify_modify_expr): Also set LHS if the result type
5706         doesn't have fixed size.
5707
5708 2016-03-16  Bin Cheng  <bin.cheng@arm.com>
5709
5710         * tree-vect-loop.c (vect_analyze_loop_2): Fix wrong dump info by
5711         reporting malformed loop nest.
5712
5713 2016-03-16  Tom de Vries  <tom@codesourcery.com>
5714
5715         PR lto/70187
5716         * ipa-devirt.c (possible_polymorphic_call_targets): Move
5717         nodes.length () == 1 test to before first nodes[0] access.
5718
5719 2016-03-16  Tom de Vries  <tom@codesourcery.com>
5720
5721         PR tree-optimization/68715
5722         * graphite-scop-detection.c (scop_detection::merge_sese): Add missing
5723         single_pred_p test.
5724
5725 2016-03-16  Tom de Vries  <tom@codesourcery.com>
5726
5727         PR tree-optimization/68809
5728         * graphite-scop-detection.c (same_close_phi_node): Test if result types
5729         are the same.
5730
5731 2016-03-16  Carlos O'Donell  <carlos@redhat.com>
5732             Sandra Loosemore  <sandra@codesourcery.com>
5733
5734         * doc/extend.texi (Common Function Attributes): Describe ifunc impact
5735         on leaf attribute. Mention ELF interposition problems.
5736
5737 2016-03-16  Alan Modra  <amodra@gmail.com>
5738
5739         PR rtl-optimization/69195
5740         PR rtl-optimization/47992
5741         * ira.c (indirect_jump_optimize): Ignore artificial defs.
5742         Add comments.
5743
5744 2016-03-15  Eric Botcazou  <ebotcazou@adacore.com>
5745
5746         PR bootstrap/69513
5747         * dwarf2out.c (flush_limbo_die_list): Really flush the limbo list.
5748
5749 2016-03-15  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
5750
5751         * config/avr/avr.md (rotl<mode>3): Set mode for operand 2.
5752
5753 2016-03-15  Jakub Jelinek  <jakub@redhat.com>
5754
5755         PR rtl-optimization/70222
5756         * combine.c (simplify_shift_const_1): For A >> B >> C LSHIFTRT
5757         optimization if mode is different from result_mode, queue up masking
5758         of the result in outer_op.  Formatting fix.
5759
5760         PR middle-end/70239
5761         * tree-ssa-sccvn.c (VN_INFO_GET): Use safe_grow_cleared instead
5762         of safe_grow.
5763
5764 2016-03-15  Andrey Belevantsev  <abel@ispras.ru>
5765
5766         PR rtl-optimization/69032
5767         * sel-sched-ir.c (get_seqno_by_preds): Include both insn and head when
5768         looping backwards over basic block insns.
5769
5770 2016-03-15  Andrey Belevantsev  <abel@ispras.ru>
5771
5772         PR target/66660
5773         * sel-sched-ir.c (merge_expr): Avoid changing the speculative pattern
5774         to non-speculative when propagating trap bits.
5775
5776 2016-03-15  Andrey Belevantsev  <abel@ispras.ru>
5777
5778         PR rtl-optimization/63384
5779         * sel-sched.c (invoke_aftermath_hooks): Do not decrease issue_more on
5780         DEBUG_INSN_P insns.
5781
5782 2016-03-15  Andrey Belevantsev  <abel@ispras.ru>
5783
5784         PR target/64411
5785         * sched-deps.c (get_implicit_reg_pending_clobbers): New function,
5786         factored out from ...
5787         (sched_analyze_insn): ... here.
5788         * sched-int.h (get_implicit_reg_pending_clobbers): Declare it.
5789         * sel-sched-ir.c (setup_id_implicit_regs): New function, use
5790         get_implicit_reg_pending_clobbers in it.
5791         (setup_id_reg_sets): Use setup_id_implicit_regs.
5792         (deps_init_id): Ditto.
5793
5794 2016-03-15  Tom de Vries  <tom@codesourcery.com>
5795
5796         PR ipa/70161
5797         * cgraph.c (cgraph_node::get_body): Save, reset and restore
5798         dump_file_name.
5799         * passes.c (execute_one_ipa_transform_pass): Add missing argument to
5800         execute_function_dump.
5801         (execute_one_pass): Don't dump function if it will be dumped after ipa
5802         transform.
5803
5804 2016-03-15  Segher Boessenkool  <segher@kernel.crashing.org>
5805
5806         * genrecog.c (match_pattern_2): If pred is NULL don't call
5807         safe_predicate_mode on it.
5808
5809 2016-03-14  Jakub Jelinek  <jakub@redhat.com>
5810
5811         PR middle-end/70219
5812         * lra-constraints.c (delete_move_and_clobber): Change assertion
5813         to also allow dregno == 0.
5814
5815 2016-03-14  Richard Henderson  <rth@redhat.com>
5816
5817         PR tree-opt/68714
5818         * tree-ssa-reassoc.c (ovce_extract_ops, optimize_vec_cond_expr): New.
5819         (can_reassociate_p): Allow ANY_INTEGRAL_TYPE_P.
5820         (reassociate_bb): Use optimize_vec_cond_expr; avoid
5821         optimize_range_tests, attempt_builtin_copysign and attempt_builtin_powi
5822         on vectors.
5823
5824 2016-03-14  Bernd Schmidt  <bschmidt@redhat.com>
5825
5826         PR target/70083
5827         * lra-lives.c (process_bb_lives): Also update biggest mode for hard
5828         regs.
5829         (lra_create_live_ranges_1): initialize hard register biggest_mode to
5830         VOIDmode.
5831         * lra-constraints.c (split_reg): For hard regs, try to find the
5832         biggest single-register mode used in the function.
5833
5834 2016-03-14  Richard Biener  <rguenther@suse.de>
5835
5836         PR tree-optimization/56365
5837         * tree-ssa-phiopt.c (minmax_replacement): Handle alternate
5838         constants to compare against.
5839
5840 2016-03-14  Segher Boessenkool  <segher@kernel.crashing.org>
5841
5842         PR target/70098
5843         * config/rs6000/rs6000.md (*ctr<mode>_internal1, *ctr<mode>_internal2,
5844         *ctr<mode>_internal5, *ctr<mode>_internal6): Also allow "d" as output.
5845         (define_split for the GPR case): Use int_reg_operand instead of
5846         gpc_reg_operand for the output.
5847
5848 2016-03-14  Tom de Vries  <tom@codesourcery.com>
5849
5850         PR tree-optimization/70045
5851         * graphite-isl-ast-to-gimple.c (graphite_create_new_loop_guard): Unshare
5852         create_empty_if_region_on_edge argument.
5853
5854 2016-03-13  Eric Botcazou  <ebotcazou@adacore.com>
5855
5856         * config/arm/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Define.
5857         (STACK_CHECK_PROTECT): Likewise.
5858         * config/i386/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise
5859         (STACK_CHECK_PROTECT): Likewise.
5860         * config/rs6000/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise
5861         (STACK_CHECK_PROTECT): Likewise.
5862         * config/rs6000/vxworksae.h (STACK_CHECK_PROTECT): Likewise.
5863         * config/sparc/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
5864         (STACK_CHECK_PROTECT): Likewise.
5865
5866 2016-03-12  Andrey Belevantsev  <abel@ispras.ru>
5867
5868         PR rtl-optimization/69307
5869         * sel-sched.c (choose_best_pseudo_reg): Properly check for hard
5870         registers in modes that span more than one register.
5871
5872 2016-03-12  Vladimir Makarov  <vmakarov@redhat.com>
5873
5874         PR target/69614
5875         * lra-constraints.c (delete_move_and_clobber): New.
5876         (remove_inheritance_pseudos): Use it.
5877
5878 2016-03-12  Eric Botcazou  <ebotcazou@adacore.com>
5879
5880         PR ada/70017
5881         * calls.c (emit_library_call_value_1): Clear the ECF_NOTHROW flag if
5882         the libcall is LCT_THROW.
5883         * explow.c (probe_stack_range): Pass LCT_THROW to emit_library_call
5884         for the checking routine.
5885
5886 2016-03-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
5887
5888         PR target/70131
5889         * config/rs6000/rs6000.md (round32<mode>2_fprs): Do not do the
5890         optimization if we have direct move.
5891         (roundu32<mode>2_fprs): Likewise.
5892
5893 2016-03-11  Bernd Schmidt  <bschmidt@redhat.com>
5894
5895         PR target/70123
5896         * lra-remat.c (operand_to_remat): Disallow hard regs in the value t
5897         be rematerialized.
5898         (reg_overlap_for_remat_p): Renamed from input_regno_present_p.
5899         Arguments swapped.  All callers changed.  Take reg_renumber into
5900         account, and Calculate and compare register ranges for hard regs.
5901
5902 2016-03-11  Jeff Law  <law@redhat.com>
5903
5904         PR tree-optimization/70190
5905         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
5906         Handle cases where we can not extract the taken edge, even though we
5907         found a constant value.
5908
5909         PR tree-optimization/64058
5910         * tree-ssa-coalesce.c (struct coalesce_pair): Add new field INDEX.
5911         (num_coalesce_pairs): Move up earlier in file.
5912         (find_coalesce_pair): Initialize the INDEX field for each pair
5913         discovered.
5914         (compare_pairs): No longer sort on the elements in each pair.
5915         Instead break ties with the index of the coalesce pair.
5916
5917 2016-03-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5918
5919         PR target/70002
5920         * config/aarch64/aarch64-protos.h
5921         (aarch64_save_restore_target_globals): New prototype.
5922         * config/aarch64/aarch64-c.c (aarch64_pragma_target_parse):
5923         Call the above when popping pragma.
5924         * config/aarch64/aarch64.c (aarch64_save_restore_target_globals):
5925         New function.
5926         (aarch64_set_current_function): Rewrite using the above.
5927
5928 2016-03-11  Jakub Jelinek  <jakub@redhat.com>
5929
5930         PR tree-optimization/70177
5931         * gimple-expr.h (extract_ops_from_tree_1): Renamed to ...
5932         (extract_ops_from_tree): ... this.  In the 2 argument
5933         overload remove _1 suffix.
5934         * gimple-expr.c (extract_ops_from_tree_1): Renamed to ...
5935         (extract_ops_from_tree): ... this.
5936         * gimple.c (gimple_build_assign, gimple_assign_set_rhs_from_tree):
5937         Adjust callers.
5938         * tree-ssa-loop-niter.c (derive_constant_upper_bound): Likewise.
5939         * tree-ssa-forwprop.c (defcodefor_name): Call 3 operand
5940         extract_ops_from_tree instead of 2 operand one.
5941
5942 2016-03-11  Alan Lawrence  <alan.lawrence@arm.com>
5943
5944         PR tree-optimization/70013
5945         * tree-sra.c (analyze_access_subtree): Also set grp_unscalarized_data
5946         for constant-pool entries.
5947
5948 2016-03-11  Jakub Jelinek  <jakub@redhat.com>
5949
5950         PR rtl-optimization/70174
5951         * expmed.c (store_bit_field_using_insv): Use gen_lowpart_if_possible
5952         followed by gen_lowpart on force_reg instead of just gen_lowpart.
5953
5954         PR tree-optimization/70169
5955         * tree-ssa-loop.c (gen_lsm_tmp_name): Handle FUNCTION_DECL and
5956         LABEL_DECL like VAR_DECL.  Emit nothing instead of gcc_unreachable
5957         for unknown codes.
5958
5959 2016-03-11  Ilya Enkovich  <enkovich.gnu@gmail.com>
5960             Jakub Jelinek  <jakub@redhat.com>
5961
5962         PR target/70160
5963         * config/i386/i386.c (scalar_chain::convert_reg): Skip uses
5964         of uninitialized values.
5965
5966 2016-03-11  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
5967
5968         * config/s390/s390.md ("trunctddd2"): Turn former define_insn into
5969         define_expand.
5970         ("*trunctddd2"): New pattern definition.
5971         ("trunctdsd2"): Set prep_for_short_prec rounding mode for the
5972         TD->DD truncation.
5973
5974 2016-03-11  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
5975
5976         * config/s390/s390.md (BFP_RND_*, DFP_RND_*): Add new constant
5977         definitions for BFP and DFP rounding modes.
5978         ("fixuns_truncdddi2", "fixuns_trunctddi2")
5979         ("fixuns_trunc<BFP:mode><GPR:mode>2", "fixuns_trunc<mode>si2")
5980         ("fix_trunc<DSF:mode><GPR:mode>2", "fix_trunc<mode>di2")
5981         ("fix_trunctf<mode>2"): Use the new constants instead of magic
5982         numbers.
5983
5984 2016-03-11  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
5985
5986         * config/s390/constraints.md: Adjust comment.
5987         ("Y"): Adjust comment.  Rename s390_decompose_shift_count to
5988         s390_decompose_addrstyle_without_index.
5989         * config/s390/predicates.md (shift_count_or_setmem_operand):
5990         Rename to setmem_operand.
5991         * config/s390/s390-protos.h
5992         (s390_decompose_shift_count): Rename to
5993         s390_decompose_addrstyle_without_index.
5994         * config/s390/s390.c (s390_decompose_shift_count)
5995         (s390_mem_constraint, print_shift_count_operand)
5996         (print_operand_address, print_operand): Rename
5997         s390_decompose_shift_count to
5998         s390_decompose_addrstyle_without_index and rename
5999         print_shift_count_operand to print_addrstyle_operand troughout the
6000         file.
6001         * config/s390/s390.md ("setmem_long_<P:mode>", "*setmem_long")
6002         ("*setmem_long_and", "*setmem_long_31z", "*setmem_long_and_31z"):
6003         Rename shift_count_or_setmem_operand to setmem_operand.
6004         * config/s390/vx-builtins.md ("vec_insert<mode>")
6005         ("vec_promote<mode>"): Replace shift_count_or_setmem_operand with
6006         nonmemory_operand.
6007
6008 2016-03-10  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
6009
6010         PR target/70168
6011         * config/rs6000/rs6000.c (rs6000_expand_atomic_compare_and_swap):
6012         Handle overlapping retval and newval.
6013
6014 2016-03-10  Nick Clifton  <nickc@redhat.com>
6015
6016         PR target/7044
6017         * config/aarch64/aarch64.c
6018         (aarch64_override_options_after_change_1): When forcing
6019         flag_omit_frame_pointer to be true, use a special value that can
6020         be detected if this function is called again, thus preventing
6021         flag_omit_leaf_frame_pointer from being forced to be false.
6022
6023 2016-03-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6024
6025         * common/config/aarch64/aarch64-common.c (aarch64_handle_option):
6026         Set x_flag_omit_leaf_frame_pointer when handling
6027         -momit-leaf-frame-pointer.
6028
6029 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
6030
6031         PR lto/69589
6032         * cgraph.c (cgraph_node::dump): Dump split_part and
6033         indirect_call_target.
6034         * cgraph.h (cgraph_node): Add indirect_call_target flag.
6035         * ipa.c (has_addr_references_p): Cleanup.
6036         (is_indirect_call_target_p): New.
6037         (walk_polymorphic_call_targets): Do not mark virtuals that may be
6038         called indirectly as local.
6039         (symbol_table::remove_unreachable_nodes): Compute indirect_call_target.
6040
6041 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
6042
6043         PR ipa/69630
6044         * ipa-devirt.c (possible_polymorphic_call_targets): Do not ICE
6045         on cxa_pure_virtual.
6046
6047 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
6048
6049         PR lto/69589
6050         * tree.c (free_lang_data_in_decl): Clear visibility of TYPE_DECL.
6051
6052 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
6053
6054         PR lto/69589
6055         * tree.c (need_assembler_name_p): Only record main variant type names.
6056
6057 2016-03-10  Christophe Lyon  <christophe.lyon@linaro.org>
6058
6059         PR target/70113.
6060         * config/aarch64/aarch64.h (TARGET_FIX_ERR_A53_843419_DEFAULT):
6061         Always define to 0 or 1.
6062         (TARGET_FIX_ERR_A53_843419): New macro.
6063         * config/aarch64/aarch64-elf-raw.h
6064         (TARGET_FIX_ERR_A53_843419_DEFAULT): Update for above changes.
6065         * config/aarch64/aarch64-linux.h: Likewise.
6066         * config/aarch64/aarch64.c
6067         (aarch64_override_options_after_change_1): Do not default
6068         aarch64_nopcrelative_literal_loads to true if Cortex-A53 erratum
6069         843419 is on.
6070         (aarch64_attributes): Handle fix-cortex-a53-843419.
6071         (aarch64_can_inline_p): Likewise.
6072         * config/aarch64/aarch64.opt (aarch64_fix_a53_err843419): Save.
6073
6074 2016-03-10  Alan Lawrence  <alan.lawrence@arm.com>
6075         Jakub Jelinek <jakub@redhat.com>
6076
6077         * common.opt (funconstrained-commons, flag_unconstrained_commons): New.
6078         * tree.c (array_at_struct_end_p): Do not limit to size of decl for
6079         DECL_COMMONS if flag_unconstrained_commons is set.
6080         * tree-dfa.c (get_ref_base_and_extent): Likewise.
6081         * doc/invoke.texi (Optimize Options): Add -funconstrained-commons.
6082         (funconstrained-commons): Document.
6083
6084 2016-03-10  Christophe Lyon  <christophe.lyon@linaro.org>
6085
6086         * config/aarch64/t-aarch64 (OPTIONS_H_EXTRA): Add
6087         aarch64-fusion-pairs.def and aarch64-tuning-flags.def
6088
6089 2016-03-10  Ilya Enkovich  <enkovich.gnu@gmail.com>
6090
6091         * tree-vect-stmts.c (vectorizable_mask_load_store): Check mask
6092         has a proper number of elements.
6093
6094 2016-03-10  Alan Modra  <amodra@gmail.com>
6095
6096         PR rtl-optimization/69195
6097         PR rtl-optimization/47992
6098         * ira.c (recorded_label_ref): Delete.
6099         (update_equiv_regs): Return void.
6100         (indirect_jump_optimize): New function.
6101         (ira): Call indirect_jump_optimize and delete_trivially_dead_insns
6102         before regstat_compute_ri.  Don't rebuild_jump_labels here.
6103         Delete update_regstat.
6104
6105 2016-03-10  Richard Biener  <rguenther@suse.de>
6106
6107         PR tree-optimization/70128
6108         * tree-ssa-structalias.c (set_uids_in_ptset): Set
6109         vars_contains_nonlocal for any FUNCTION_DECL or LABEL_DECL.
6110
6111 2016-03-09  Jakub Jelinek  <jakub@redhat.com>
6112
6113         PR tree-optimization/70152
6114         * tree-sra.c (replace_removed_params_ssa_names): Copy over
6115         SSA_NAME_OCCURS_IN_ABNORMAL_PHI from old_name to new_name.
6116
6117         PR target/70086
6118         * config/i386/i386.md (truncdfsf2 splitter): Use gen_vec_concatv2df
6119         instead of gen_sse2_loadlpd.
6120         * config/i386/sse.md (*vec_concatv2df): Rename to...
6121         (vec_concatv2df): ... this.
6122
6123         PR tree-optimization/70127
6124         * fold-const.c (operand_equal_p): Revert the 2015-10-28 change.
6125
6126 2016-03-09  David Malcolm  <dmalcolm@redhat.com>
6127
6128         PR c/68473
6129         PR c++/70105
6130         * diagnostic-show-locus.c (compatible_locations_p): New function.
6131         (layout::layout): Sanitize ranges using compatible_locations_p.
6132
6133 2016-03-09  David Malcolm  <dmalcolm@redhat.com>
6134
6135         PR c/68473
6136         PR c++/70105
6137         * diagnostic-show-locus.c (layout_range::layout_range): Replace
6138         location_range param with three const expanded_locations * and a
6139         bool.
6140         (layout::layout): Replace call to
6141         rich_location::lazily_expand_location with get_expanded_location.
6142         Extract the range and perform location expansion here, passing
6143         the results to the layout_range ctor.
6144         * diagnostic.c (source_range::debug): Delete.
6145         * diagnostic.h (diagnostic_expand_location): Reimplement in terms
6146         of rich_location::get_expanded_location.
6147         * gcc-rich-location.c (get_range_for_expr): Delete.
6148         (gcc_rich_location::add_expr): Reimplement to avoid the
6149         rich_location::add_range overload that took a location_range,
6150         passing a location_t instead.
6151
6152 2016-03-09  Richard Biener  <rguenther@suse.de>
6153         Jakub Jelinek  <jakub@redhat.com>
6154
6155         PR tree-optimization/70138
6156         * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
6157         Also skip vect_double_reduction_def.
6158
6159 2016-03-09  Jakub Jelinek  <jakub@redhat.com>
6160
6161         PR target/70049
6162         * config/i386/sse.md (*vec_extract<mode>): Use %0 instead of %k0
6163         if the operand is "m".
6164
6165 2016-03-09  Nathan Sidwell  <nathan@acm.org>
6166
6167         * config/nvptx/nvptx.c (nvptx_option_override): Don't kill debug level.
6168
6169 2016-03-09  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
6170
6171         * config/i386/i386.c (processor_target_table): Fix cost table
6172         intialization order for znver1.
6173
6174 2016-03-08  Jakub Jelinek  <jakub@redhat.com>
6175
6176         * ipa-polymorphic-call.c (walk_ssa_copies): Fix spelling
6177         - becuase -> because.
6178         * ipa-reference.c (ignore_module_statics): Likewise.
6179         * cgraph.c (cgraph_node::get_body): Likewise.
6180         * ipa-inline.c (early_inliner): Likewise.
6181         * ipa-devirt.c (types_same_for_odr): Likewise.
6182         * tree-streamer-out.c (pack_ts_type_common_value_fields): Likewise.
6183         * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Likewise.
6184
6185 2016-03-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6186
6187         * tree-ssa-math-opts.c: Fix typo in comment.
6188
6189 2016-03-08  Jakub Jelinek  <jakub@redhat.com>
6190
6191         PR target/70110
6192         * config/i386/i386.c (scalar_chain::make_vector_copies,
6193         scalar_chain::convert_reg): Call end_sequence in between
6194         get_insns and emit_conversion_insns rather than after both
6195         calls.
6196
6197 2016-03-07  Uros Bizjak  <ubizjak@gmail.com>
6198
6199         PR target/70064
6200         * config/i386/i386.h (machine_function): Add
6201         pc_thunk_call_expanded flag.
6202         (ix86_pc_thunk_call_expanded): New define.
6203         * config/i386/i386.md (set_got, set_got_labelled): New expanders.
6204         (*set_got): Rename insn pattern from set_got.
6205         (*set_got_labelled): Rename inst pattern from set_got_labelled.
6206         * config/i386/i386.c (ix86_compute_frame_layout): Use
6207         ix86_pc_thunk_call_expanded to prevent red-zone.
6208
6209 2016-03-07  Martin Jambor  <mjambor@suse.cz>
6210
6211         * hsa.h (hsa_get_ctor_statements): Declare.
6212         (hsa_get_dtor_statements): Likewise.
6213         (hsa_get_kernel_dispatch_type): Likewise.
6214         * hsa.c (hsa_get_ctor_statements): New function.
6215         (hsa_get_dtor_statements): Likewise.
6216         (hsa_get_kernel_dispatch_type): Likewise.
6217         * hsa-brig.c (hsa_cdtor_statements): Removed.
6218         (hsa_output_libgomp_mapping): Use hsa_get_ctor_statements and
6219         hsa_get_dtor_statements.
6220         * hsa-gen.c (hsa_kernel_dispatch_type): Removed.
6221         (get_hsa_kernel_dispatch_offset): Use hsa_get_kernel_dispatch_type.
6222
6223 2016-03-07  Andre Vieira  <andre.simoesdiasvieira@arm.com>
6224
6225         * config/arm/arm-cores.def (cortex-r8): New.
6226         * config/arm/arm-tables.opt (cortex-r8): Regenerate.
6227         * config/arm/arm-tune.md: Likewise.
6228         * gcc/doc/invoke.texi: Add cortex-r8 to list of cpu values.
6229
6230 2016-03-07  Martin Sebor  <msebor@redhat.com>
6231
6232         PR rtl-optimization/19705
6233         * doc/invoke.texi (Options That Control Optimization): Clarify
6234         -fno-branch-count-reg.
6235
6236 2016-02-26  Richard Biener  <rguenther@suse.de>
6237             Jeff Law  <law@redhat.com>
6238
6239         PR tree-optimization/69740
6240         * cfghooks.c (remove_edge): Request loop fixups if we delete
6241         an edge that might turn an irreducible loop into a natural
6242         loop.
6243         * cfgloop.h (check_verify_loop_structure): Clear LOOPS_NEED_FIXUP.
6244         Move after definition of loops_state_clear.
6245
6246 2016-03-07  Bin Cheng  <bin.cheng@arm.com>
6247
6248         PR rtl-optimization/69052
6249         * rtlanal.c (commutative_operand_precedence): Set higher precedence
6250         to CONST_WIDE_INT.
6251
6252 2016-03-07  Tom de Vries  <tom@codesourcery.com>
6253
6254         PR tree-optimization/70116
6255         * tree-ssa-tail-merge.c (merge_stmts_p): New function, handling
6256         is_tm_ending stmts and ubsan/asan internal functions.
6257         (find_duplicate): Use it.  Don't test is_tm_ending here.
6258
6259 2016-03-07  Richard Biener  <rguenther@suse.de>
6260
6261         PR tree-optimization/70115
6262         * tree-ssa-loop-ivcanon.c (propagate_into_all_uses): Remove.
6263         (propagate_constants_for_unrolling): Use replace_uses_by.
6264
6265 2016-03-07  Nathan Sidwell  <nathan@codesourcery.com>
6266
6267         PR middle-end/69916
6268         * omp-low.c (struct oacc_loop): Add ifns.
6269         (new_oacc_loop_raw): Initialize it.
6270         (finish_oacc_loop): Clear mask & flags if no ifns.
6271         (oacc_loop_discover_walk): Count IFN_GOACC_LOOP calls.
6272         (oacc_loop_xform_loop): Add ifns arg & adjust.
6273         (oacc_loop_process): Adjust oacc_loop_xform_loop call.
6274
6275 2016-03-07  Richard Henderson  <rth@redhat.com>
6276
6277         PR rtl-opt/70061
6278         * tree-outofssa.c (emit_partition_copy): Flush pending stack adjust.
6279         (insert_value_copy_on_edge): Likewise.
6280
6281 2016-03-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6282
6283         * config/arm/arm_neon.h: Show error if using with soft-float ABI.
6284
6285 2016-03-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6286
6287         PR target/62281
6288         * config/i386/sol2.h (STACK_REALIGN_DEFAULT): Define.
6289
6290 2016-03-05  Venkataramanan Kumar  <Venkataramanan.kumar@amd.com>
6291
6292         * config/i386/i386.c (znver1_cost): Fix Multiply cost.
6293
6294 2016-03-05  Venkataramanan Kumar  <Venkataramanan.kumar@amd.com>
6295
6296         Fix sseimul type attribute.
6297         * config/i386/znver1.md
6298         (znver1_sseimul, znver1_sseimul_avx256, znver1_sseimul_load,
6299         znver1_sseimul_avx256_load) : Fix the type attribute.
6300         (znver1_sseimul_di, znver1_sseimul_load_di): Fix type attribute,
6301         pipe usage and latency.
6302
6303 2016-03-05  Jakub Jelinek  <jakub@redhat.com>
6304
6305         PR c++/70084
6306         * tree-inline.c (copy_tree_body_r): When cancelling ADDR_EXPR
6307         of INDIRECT_REF and ADDR_EXPR changed type, fold_convert it
6308         to the right type.
6309
6310 2016-03-04  Bernd Schmidt  <bschmidt@redhat.com>
6311
6312         PR c/69973
6313         * targhooks.c (default_vector_alignment): Limit to MAX_OFILE_ALIGNMENT.
6314
6315         PR rtl-optimization/69941
6316         * postreload.c (reload_combine_recognize_pattern): Ensure all uses of
6317         the reg share its mode.
6318
6319 2016-03-04  Jeff Law  <law@redhat.com>
6320
6321         PR tree-optimization/69196
6322         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
6323         If the both SSA_NAMEs are anonymous, then consider them unassociated
6324         and include the PHI in the statement count.
6325
6326 2016-03-05  Tom de Vries  <tom@codesourcery.com>
6327
6328         * omp-low.c (check_omp_nesting_restrictions): Check for non-oacc
6329         construct in oacc routine.  Check for oacc region in oacc routine.
6330
6331 2016-03-04  Jakub Jelinek  <jakub@redhat.com>
6332
6333         PR target/70062
6334         * config/i386/i386.c (decide_alg): Add RECUR argument.  Revert
6335         2016-02-22 changes, instead don't recurse if RECUR is already true.
6336         Don't change *dynamic_check if RECUR.  Adjust recursive caller
6337         to pass true to the new argument.
6338         (ix86_expand_set_or_movmem): Adjust decide_alg caller.
6339
6340         PR target/70059
6341         * config/i386/sse.md (vec_set_lo_<mode><mask_name>,
6342         <extract_type_2>_vinsert<shuffletype><extract_suf_2>_mask): Formatting
6343         fixes.
6344         (vec_set_hi_<mode><mask_name>): Likewise.  Swap VEC_CONCAT operands.
6345
6346 2016-03-04  Bernd Schmidt  <bschmidt@redhat.com>
6347
6348         PR rtl-optimization/57676
6349         * lra-assigns.c (lra_assign): Guard test for maximum iterations
6350         with flag_checking.
6351
6352 2016-03-04  Ilya Enkovich  <enkovich.gnu@gmail.com>
6353
6354         * tree-vect-patterns.c (search_type_for_mask): Handle
6355         comparison of booleans.
6356
6357 2016-03-04  Jakub Jelinek  <jakub@redhat.com>
6358
6359         * doc/extend.texi (__builtin_alloca, __builtin_alloca_with_align):
6360         Fix @xref usage.
6361
6362         PR debug/69947
6363         * dwarf2out.c (prune_unused_types_walk_loc_descr): Handle
6364         all other ops that have dw_val_class_die_ref operands,
6365         and DW_OP_GNU_entry_value.
6366
6367 2016-03-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6368
6369         PR rtl-optimization/69904
6370         * config/arm/arm.c (arm_cannot_copy_insn_p):
6371         Return true for load-exclusive instructions.
6372
6373 2016-03-03  Jakub Jelinek  <jakub@redhat.com>
6374
6375         PR target/70021
6376         * tree-vect-stmts.c (vect_mark_relevant): Remove USED_IN_PATTERN
6377         argument, if STMT_VINFO_IN_PATTERN_P (stmt_info), always mark
6378         the pattern no matter if it is used just by non-pattern, pattern
6379         or mix thereof.
6380         (process_use, vect_mark_stmts_to_be_vectorized): Adjust callers.
6381         * tree-vect-patterns.c (vect_recog_vector_vector_shift_pattern): If
6382         oprnd1 def_stmt is in pattern, don't look through it.
6383
6384 2016-03-03  Marek Polacek  <polacek@redhat.com>
6385
6386         PR middle-end/70050
6387         * match.pd (X % -Y): Add INTEGRAL_TYPE_P check.
6388
6389 2016-03-03  Martin Liska  <mliska@suse.cz>
6390
6391         PR tree-optimization/70043
6392         * tree-vect-loop.c (optimize_mask_stores): Move iterator to
6393         previous statement if we see a debug statement.
6394
6395 2016-03-03  Richard Biener  <rguenther@suse.de>
6396
6397         PR tree-optimization/55936
6398         * tree-vrp.c (compare_name_with_value): Add use_equiv_p
6399         parameter and guard unsafe equivalence use.
6400         (vrp_evaluate_conditional_warnv_with_ops): Always use
6401         safe equivalences but not via the quadratic compare_names
6402         helper.
6403
6404 2016-03-03  Michael Collison  <michael.collison@linaro.org>
6405
6406         PR target/70014
6407         * config/arm/arm.md (*subsi3_carryin_const): Change predicate
6408         for operand 1 to s_register_operand. Change predicate for operand
6409         2 to arm_not_immediate_operand.
6410
6411 2016-03-02  H.J. Lu  <hongjiu.lu@intel.com>
6412
6413         * doc/tm.texi: Regenerated.
6414
6415 2016-03-02  Richard Henderson  <rth@redhat.com>
6416
6417         PR rtl-opt/67145
6418         * simplify-rtx.c (simplify_plus_minus): Allow reassoc without
6419         simplification when all args are positive non-fixed registers.
6420
6421 2016-03-02  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
6422
6423         * target.def (lra_p): Specify that new ports should use LRA.
6424
6425 2016-03-02  Jakub Jelinek  <jakub@redhat.com>
6426
6427         PR libgomp/69555
6428         * gimplify.c (gimplify_decl_expr): For decls with REFERENCE_TYPE, also
6429         gimplify_type_sizes the type they refer to.
6430         (omp_notice_variable): Handle reference vars to VLAs.
6431         * omp-low.c (lower_omp_target): Emit setup of OMP_CLAUSE_PRIVATE
6432         reference to VLA decls in the second pass instead of first pass.
6433
6434 2016-03-02  Tom de Vries  <tom@codesourcery.com>
6435
6436         PR tree-optimization/68659
6437         * graphite-isl-ast-to-gimple.c (collect_all_ssa_names): Handle
6438         new_expr == NULL_TREE.
6439         (get_new_name): Handle ADDR_EXPR.
6440
6441 2016-03-02  Bin Cheng  <bin.cheng@arm.com>
6442
6443         PR rtl-optimization/69052
6444         * loop-invariant.c (canonicalize_address): New function.
6445         (inv_can_prop_to_addr_use): Check validity of address expression
6446         which is canonicalized by above function.
6447
6448 2016-03-02  Alan Modra  <amodra@gmail.com>
6449
6450         PR ipa/69990
6451         * ipa-icf.c (sem_variable::merge): Do not merge an alias with
6452         larger alignment.
6453
6454 2016-03-02  Jakub Jelinek  <jakub@redhat.com>
6455
6456         PR target/70028
6457         * config/i386/i386.md (kmovw): Move m constraint to 2nd alternative.
6458         (*movhi_internal): Put mask moves from and to memory separately
6459         from moves from/to GPRs.
6460
6461 2016-03-02  Richard Biener  <rguenther@suse.de>
6462
6463         * genmatch.c (dt_node::gen_kids): Fix match code-gen for embedded
6464         GENERIC expressions in GIMPLE.
6465
6466 2016-03-02  Richard Biener  <rguenther@suse.de>
6467
6468         * config/i386/i386.c (type_natural_mode): Fix typo.
6469
6470 2016-03-02  Nick Clifton  <nickc@redhat.com>
6471
6472         * config.gcc (mep-*-elf): Add newlib-stdint.h to tm_file.
6473
6474 2016-03-02  Richard Biener  <rguenther@suse.de>
6475             Uros Bizjak  <ubizjak@gmail.com>
6476
6477         PR target/67278
6478         * config/i386/i386.c (type_natural_mode): Handle XFmode vectors.
6479
6480 2016-03-02  Richard Biener  <rguenther@suse.de>
6481
6482         PR middle-end/67278
6483         * tree-cfg.c (verify_expr): Adjust BIT_FIELD_REF case.
6484
6485 2016-03-02  Marek Polacek  <polacek@redhat.com>
6486
6487         PR c/67854
6488         * gimplify.c (gimplify_va_arg_expr): Use expanded location for the
6489         "is promoted to" warning.
6490
6491 2016-03-01  DJ Delorie  <dj@redhat.com>
6492
6493         * config.gcc: Deprecate mep-*.
6494
6495 2016-03-01  Vladimir Makarov  <vmakarov@redhat.com>
6496
6497         PR middle-end/70025
6498         * lra-constraints.c (regno_val_use_in): New.
6499         (match_reload): Use it instead of regno_use_in.
6500
6501 2016-03-01  Eric Botcazou  <ebotcazou@adacore.com>
6502
6503         PR rtl-optimization/70007
6504         * gcse.c (compute_ld_motion_mems): Tidy up and also invalidate memory
6505         references present in REG_EQUAL notes attached to non-SET patterns.
6506
6507 2016-03-01  Jeff Law  <law@redhat.com>
6508
6509         PR tree-optimization/69196
6510         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
6511         Appropriately clamp the number of statements to copy when the
6512         thread path does not traverse a loop backedge.
6513
6514         PR tree-optimization/69196
6515         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
6516         Do count some PHIs in the thread path against the insn count.  Decrease
6517         final statement count by one as the control statement in the last
6518         block will get removed.  Remove special cased code for handling PHIs
6519         in the last block.
6520
6521 2016-03-01  Uros Bizjak  <ubizjak@gmail.com>
6522
6523         PR target/70027
6524         * config/i386/i386.c (ix86_output_call_insn): Add -masm=intel
6525         asm dialect alternatives to explicit GOTPCREL calls.
6526
6527 2016-03-01  Eric Botcazou  <ebotcazou@adacore.com>
6528
6529         PR ada/70017
6530         * ira.c (do_reload): Issue warning for generic stack checking here...
6531         * reload1.c (reload): ...instead of here and streamline it.
6532
6533 2016-03-01  Nick Clifton  <nickc@redhat.com>
6534
6535         * config.gcc (cr16-*-elf): Add newlib-stdint.h to tm_file.
6536
6537 2016-03-01  Richard Biener  <rguenther@suse.de>
6538
6539         PR tree-optimization/69983
6540         * tree-chrec.c (eq_evolutions_p): Handle conversions, compare
6541         types and fall back to operand_equal_p.
6542
6543 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6544
6545         Revert
6546         2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6547
6548         * config/s390/constraints.md ("jm8"): New constraint.
6549         * config/s390/predicates.md ("const_int_8bitset_operand"): New
6550         predicate.
6551         * config/s390/s390.md ("*setmem_long", "*setmem_long_and"): Merge
6552         into ...
6553         ("*setmem_long<setmem_and>"): New pattern.
6554         ("*setmem_long_31z", "*setmem_long_and_31z"): Merge
6555         into ...
6556         ("*setmem_long_31z<setmem_and>"): New pattern.
6557         * config/s390/subst.md ("setmem_31z_subst", "setmem_and_subst"):
6558         New substitution rules with the required attributes.
6559
6560
6561 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6562
6563         Revert
6564         2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6565
6566         * gensupport.c (process_substs_on_one_elem): Split loop to
6567         complete mark_operands_used_in_match_dup on all expressions in the
6568         vector first.
6569         (adjust_operands_numbers): Inline into process_substs_on_one_elem
6570         and remove function.
6571
6572 2016-03-01  Richard Biener  <rguenther@suse.de>
6573
6574         PR middle-end/70022
6575         * fold-const.c (fold_indirect_ref_1): Fix range checking for
6576         vector BIT_FIELD_REF extract.
6577
6578 2016-03-01  Richard Biener  <rguenther@suse.de>
6579
6580         PR tree-optimization/69994
6581         * tree-ssa-reassoc.c (ops_equal_values_p): Handle missing case.
6582
6583 2016-03-01  Ilya Enkovich  <enkovich.gnu@gmail.com>
6584
6585         PR tree-optimization/69956
6586         * tree-vect-stmts.c (supportable_widening_operation): Support
6587         multi-step conversion of boolean vectors.
6588         (supportable_narrowing_operation): Likewise.
6589
6590 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6591
6592         * config/s390/s390.c (s390_decompose_address): Don't accept SImode
6593         anymore.
6594
6595 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6596
6597         * config/s390/subst.md (DSI_VI): New mode iterator.
6598         ("addr_style_op_subst"): Use DSI_VI instead of DSI.
6599         * config/s390/vector.md ("vec_set<mode>"): Move expander before
6600         the insn definition.
6601         ("*vec_set<mode>"): Change predicate and add alternative to
6602         support only either register or const_int operands as element
6603         selector.
6604         ("*vec_set<mode>_plus"): New pattern to support reg + const_int
6605         operands.
6606         ("vec_extract<mode>"): New expander.
6607         ("*vec_extract<mode>"): New insn definition supporting reg and
6608         const_int element selectors.
6609         ("*vec_extract<mode>_plus"): New insn definition supporting
6610         reg+const_int element selectors.
6611         ("rotl<mode>3", "ashl<mode>3", "ashr<mode>3"): Merge into the
6612         following expander+insn definition.
6613         ("<vec_shifts_name><mode>3"): New expander.
6614         ("*<vec_shifts_name><mode>3<addr_style_op>"): New insn definition.
6615
6616 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6617
6618         * config/s390/s390.md ("*tabort_1"): Change predicate to
6619         nonmemory_operand.  Add a second alternative to cover
6620         register as well as const int operands.
6621         ("*tabort_1_plus"): New pattern definition.
6622
6623 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6624
6625         * config/s390/s390.md ("*ashrdi3_cc_31")
6626         ("*ashrdi3_cconly_31""*ashrdi3_cc_31_and")
6627         ("*ashrdi3_cconly_31_and", "*ashrdi3_31_and", "*ashrdi3_31"):
6628         Merge insn definitions into ...
6629         ("*ashrdi3_31<addr_style_op_cc><masked_op_cc><setcc><cconly>"):
6630         New pattern definition.
6631         ("*ashr<mode>3_cc", "*ashr<mode>3_cconly", "ashr<mode>3", )
6632         ("*ashr<mode>3_cc_and", "*ashr<mode>3_cconly_and")
6633         ("*ashr<mode>3_and"): Merge insn definitions into ...
6634         ("*ashr<mode>3<addr_style_op_cc><masked_op_cc><setcc><cconly>"):
6635         New pattern definition.
6636         * config/s390/subst.md ("addr_style_op_cc_subst")
6637         ("masked_op_cc_subst", "setcc_subst", "cconly_subst"): New
6638         substitutions patterns plus attributes.
6639         Add ashiftrt to SUBST iterator.
6640
6641 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6642
6643         * config/s390/s390.md ("<shift><mode>3"): Change predicate of
6644         op2 to nonmemory_operand.
6645         ("*<shift>di3_31", "*<shift>di3_31_and"):
6646         Merge into single pattern definition ...
6647         ("*<shift>di3_31<addr_style_op><masked_op>"): New pattern.
6648         ("*<shift><mode>3", "*<shift><mode>3_and"): Merge into single
6649         pattern definition ...
6650         ("*<shift><mode>3<addr_style_op><masked_op>"): New pattern.
6651         * config/s390/subst.md: Add ashift and lshiftrt to SUBST
6652         iterator.
6653
6654 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6655
6656         * config/s390/predicates.md (const_int_6bitset_operand): New
6657         predicate.
6658         * config/s390/s390.md: Include subst.md.
6659         ("rotl<mode>3"): New expander.
6660         ("rotl<mode>3", "*rotl<mode>3_and"): Merge insn definitions into
6661         ...
6662         ("*rotl<mode>3<addr_style_op><masked_op>"): New insn definition.
6663         * config/s390/subst.md: New file.
6664
6665 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6666
6667         * config/s390/s390.md ("op_type", "atype", "length" attributes):
6668         Remove RRR type.  It doesn't really exist.
6669         ("RRer", "f0", "v0", "vf", "vd", "op1", "Rf"): Remove mode
6670         attributes.
6671         ("BFP", "DFP", "nDSF", "nDFDI"): Add mode attributes.
6672         ("*cmp<mode>_ccs", "floatdi<mode>2", "add<mode>3")
6673         ("*add<mode>3_cc", "*add<mode>3_cconly", "sub<mode>3")
6674         ("*sub<mode>3_cc", "*sub<mode>3_cconly", "mul<mode>3")
6675         ("fma<mode>4", "fms<mode>4", "div<mode>3", "*neg<mode>2")
6676         ("*abs<mode>2", "*negabs<mode>2", "sqrt<mode>2"): Override
6677         `enabled' attribute.
6678
6679 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6680
6681         * gensupport.c (process_substs_on_one_elem): Split loop to
6682         complete mark_operands_used_in_match_dup on all expressions in the
6683         vector first.
6684         (adjust_operands_numbers): Inline into process_substs_on_one_elem
6685         and remove function.
6686
6687 2016-02-29  Eric Botcazou  <ebotcazou@adacore.com>
6688
6689         PR target/69706
6690         * config/sparc/sparc.c (NWORDS_UP): Rename to...
6691         (CEIL_NWORDS): ...this.  Use CEIL macro.
6692         (compute_fp_layout): Adjust to above renaming.
6693         (function_arg_union_value): Likewise.
6694         (sparc_arg_partial_bytes): Likewise.
6695         (sparc_function_arg_advance): Likewise.
6696
6697 2016-02-29  Jeff Law  <law@redhat.com>
6698
6699         PR tree-optimization/70005
6700         * tree-ssa-uncprop.c (associate_equivalences_with_edges): Handle case
6701         where an object with a boolean range is compared against a value
6702         outside [0..1].
6703
6704         PR tree-optimization/69999
6705         * gimple-ssa-split-paths.c (split_paths): When duplicating a block
6706         with an outgoing edge marked with EDGE_IRREDUCIBLE_LOOP, schedule
6707         loop cleanups.
6708
6709 2016-02-29  Richard Biener  <rguenther@suse.de>
6710
6711         PR tree-optimization/69994
6712         * tree-ssa-reassoc.c (gimple_nop_conversion_p): New function.
6713         (get_unary_op): Look through nop conversions.
6714         (ops_equal_values_p): New function, look for equality diregarding
6715         nop conversions.
6716         (eliminate_plus_minus_pair): Use ops_equal_values_p
6717         (repropagate_negates): Do not use get_unary_op here.
6718
6719 2016-02-29  Martin Liska  <mliska@suse.cz>
6720
6721         * system.h: Poison ENABLE_CHECKING macro.
6722
6723 2016-02-29  Martin Liska  <mliska@suse.cz>
6724
6725         * hsa-gen.c (gen_body_from_gimple): Dump only if TDF_DETAILS
6726         is presented in dump flags.
6727         * hsa-regalloc.c (linear_scan_regalloc): Likewise.
6728         (hsa_regalloc): Likewise.
6729
6730 2016-02-19  Richard Biener  <rguenther@suse.de>
6731
6732         PR tree-optimization/69980
6733         * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Update
6734         permutation of those we need to keep.
6735
6736 2016-02-29  Eric Botcazou  <ebotcazou@adacore.com>
6737
6738         PR target/69706
6739         * config/sparc/sparc.c (ROUND_ADVANCE): Rename to...
6740         (NWORDS_UP): ...this
6741         (init_cumulative_args): Minor tweaks.
6742         (sparc_promote_function_mode): Likewise.
6743         (scan_record_type): Delete.
6744         (traverse_record_type): New function template.
6745         (classify_data_t): New structure type.
6746         (classify_registers): New inline function.
6747         (function_arg_slotno): In 64-bit mode, bail out early if FP slots are
6748         exhausted.  Instantiate traverse_record_type on classify_registers and
6749         deal with the case of a structure passed in slot #15 with no FP field
6750         in the first word.
6751         (assign_data_t): New structure type.
6752         (compute_int_layout): New static function.
6753         (compute_fp_layout): Likewise.
6754         (count_registers): New inline function.
6755         (assign_int_registers): New static function.
6756         (assign_fp_registers): Likewise.
6757         (assign_registers): New inline function.
6758         (function_arg_record_value_1): Delete.
6759         (function_arg_record_value_2): Likewise.
6760         (function_arg_record_value_3): Likewise.
6761         (function_arg_record_value): Adjust to above changes.  Instantiate
6762         traverse_record_type on count_registers to first count the number of
6763         registers to be used and then on assign_registers to assign them.
6764         (function_arg_union_value): Adjust to above renaming.
6765         (sparc_function_arg_1); Minor tweaks.  Remove commented out code.
6766         (sparc_arg_partial_bytes): Adjust to above renaming.  Deal with the
6767         case of a structure passed in slot #15
6768         (sparc_function_arg_advance): Likewise.
6769         (function_arg_padding): Minor tweak.
6770
6771 2016-02-29  Richard Biener  <rguenther@suse.de>
6772
6773         PR tree-optimization/69720
6774         * tree-vect-loop.c (get_initial_def_for_reduction): Avoid
6775         the adjustment_def path for possibly vectorized defs.
6776         (vect_create_epilog_for_reduction): Handle vectorized initial
6777         defs properly.
6778
6779 2016-02-28  Eric Botcazou  <ebotcazou@adacore.com>
6780
6781         * config/i386/cygming.h (STACK_REALIGN_DEFAULT): Define.
6782
6783 2016-02-27  Jeff Law  <law@redhat.com>
6784
6785         Revert
6786         2016-02-26  Richard Biener  <rguenther@suse.de>
6787                     Jeff Law  <law@redhat.com>
6788
6789         PR tree-optimization/69740
6790         * cfghooks.c (remove_edge): Request loop fixups if we delete
6791         an edge that might turn an irreducible loop into a natural
6792         loop.
6793
6794 2016-02-27  Jakub Jelinek  <jakub@redhat.com>
6795
6796         PR rtl-optimization/69896
6797         * tree-vect-generic.c (get_compute_type): Avoid single element
6798         vector types.
6799
6800 2016-02-26  Evandro Menezes  <e.menezes@samsung.com>
6801
6802         Rename the AArch64 tuning option and related functions to enable the
6803         Newton series for the reciprocal square root to reflect its
6804         approximative characteristic.
6805
6806         * config/aarch64/aarch64-protos.h (aarch64_emit_swrsqrt): Rename
6807         function to "aarch64_emit_approx_rsqrt".
6808         * config/aarch64/aarch64-tuning-flags.def: Rename tuning flag to
6809         AARCH64_EXTRA_TUNE_APPROX_RSQRT.
6810         * config/aarch64/aarch64.c (exynosm1_tunigs): Use new flag name.
6811         (xgene1_tunings): Likewise.
6812         (use_rsqrt_p): Likewise.
6813         (aarch64_emit_swrsqrt): Use new function name.
6814         * config/aarch64/aarch64-simd.md (aarch64_rsqrts_*): Likewise.
6815         * config/aarch64/aarch64.opt (mlow-precision-recip-sqrt): Reword the
6816         text explaining this option.
6817         * doc/invoke.texi (-mlow-precision-recip-sqrt): Likewise.
6818
6819 2016-02-26  Jakub Jelinek  <jakub@redhat.com>
6820
6821         PR target/69969
6822         * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
6823         complain about -mallow-movmisalign without -mvsx if
6824         TARGET_ALLOW_MOVMISALIGN was not set explicitly.
6825
6826 2016-02-26  Joel Sherrill  <joel@rtems.org>
6827
6828         * config.gcc: Add x86_64-*-rtems*.
6829         * gcc/config/i386/rtems-64.h: New file.
6830
6831 2016-02-26  Joel Sherrill  <joel@rtems.org>
6832
6833         * config.gcc: Add aarch64-*-rtems*.
6834         * gcc/config/aarch64/rtems.h: New file.
6835
6836 2016-02-26  Segher Boessenkool  <segher@kernel.crashing.org>
6837
6838         PR target/69946
6839         * config/rs6000/rs6000.c (rs6000_insn_for_shift_mask): Print rlwinm
6840         shift amount using %h.  Add comment.
6841
6842 2016-02-26  Richard Biener  <rguenther@suse.de>
6843             Jeff Law  <law@redhat.com>
6844
6845         PR tree-optimization/69740
6846         * cfghooks.c (remove_edge): Request loop fixups if we delete
6847         an edge that might turn an irreducible loop into a natural
6848         loop.
6849
6850 2016-02-26  Martin Jambor  <mjambor@suse.cz>
6851
6852         PR middle-end/69920
6853         * tree-sra.c (sra_modify_assign): Do not remove loads of
6854         uninitialized aggregates to SSA_NAMEs.
6855
6856 2016-02-26  Richard Henderson  <rth@redhat.com>
6857
6858         PR target/69709
6859         * config/s390/s390.md (risbg and risbgn splitters): Allocate new
6860         pseudo in case the target rtx matches the source of the left
6861         shift.
6862
6863 2016-02-26  Martin Jambor  <mjambor@suse.cz>
6864
6865         PR hsa/69568
6866         * hsa.h (hsa_type_packed_p): Declare.
6867         * hsa.c (hsa_type_packed_p): New function.
6868         * hsa-gen.c (mem_type_for_type): Use unsigned type for packed
6869         loads.
6870         (gen_hsa_insns_for_store): Use hsa_type_packed_p.
6871         * hsa-brig.c (emit_basic_insn): Likewise.
6872
6873 2016-02-26  Martin Jambor  <mjambor@suse.cz>
6874
6875         pr hsa/69674
6876         * hsa-gen.c (gen_hsa_phi_from_gimple_phi): Use proper hsa type for
6877         pointers.
6878         (gen_hsa_addr): Allow integer constants in TMR_INDEX2.
6879
6880 2016-02-26  Martin Jambor  <mjambor@suse.cz>
6881
6882         * hsa.h (is_a_helper): New overload for hsa_op_immed for
6883         hsa_op_with_type operands.
6884         (hsa_unsigned_type_for_type): Declare.
6885         * hsa.c (hsa_unsigned_type_for_type): New function.
6886         * hsa-gen.c (gen_hsa_binary_operation): Use hsa_unsigned_type_for_type.
6887         (gen_hsa_insns_for_operation_assignment): Satisfy constrains of
6888         the finalizer.  Do not emit extra move.
6889
6890 2016-02-26  Martin Jambor  <mjambor@suse.cz>
6891
6892         * hsa-gen.c (gen_hsa_ternary_atomic_for_builtin): Fail in presence of
6893         atomic operations in private segment.
6894
6895 2016-02-26  Martin Jambor  <mjambor@suse.cz>
6896
6897         * omp-low.c (grid_find_ungridifiable_statement): Store problematic
6898         statements to wi->info.  Also disallow omp simd constructs.
6899         (grid_target_follows_gridifiable_pattern): Use wi.info to dump reason
6900         for not gridifying.  Dump special string for omp_for.
6901
6902 2016-02-26  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6903
6904         PR target/69245
6905         * config/aarch64/aarch64.c (aarch64_set_current_function):
6906         Save/restore target globals when switching to
6907         target_option_default_node.
6908
6909 2016-02-26  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6910
6911         PR target/69613
6912         * config/aarch64/aarch64.c (aarch64_shift_truncation_mask):
6913         Return 0 if !SHIFT_COUNT_TRUNCATED.
6914
6915 2016-02-26  Jakub Jelinek  <jakub@redhat.com>
6916             Eric Botcazou  <ebotcazou@adacore.com>
6917
6918         PR rtl-optimization/69891
6919         * dse.c (scan_insn): If we can't figure out memset arguments
6920         or they are non-constant, call clear_rhs_from_active_local_stores.
6921
6922 2016-02-26  Martin Liska  <mliska@suse.cz>
6923
6924         * doc/extend.texi: Mention clog10, clog10f an clog10l
6925         in Builtins section.
6926
6927 2016-02-26  Martin Liska  <mliska@suse.cz>
6928
6929         * dwarf2out.c (new_loc_descr): Replace ENABLE_CHECKING with
6930         CHECKING_P.
6931         (resolve_args_picking_1): Likewise.
6932         * dwarf2out.h (struct GTY): Likewise.
6933
6934 2016-02-26  Martin Liska  <mliska@suse.cz>
6935
6936         * hsa-gen.c (generate_hsa): Replace ENABLE_CHECKING macro
6937         with flag_checking.
6938         * hsa-regalloc.c (linear_scan_regalloc): Likewise.
6939
6940 2016-02-26  Markus Trippelsdorf  <markus@trippelsdorf.de>
6941             Martin Liska  <mliska@suse.cz>
6942
6943         * doc/install.texi: Mention --enable-valgrind-annotations.
6944
6945 2016-02-26  Richard Biener  <rguenther@suse.de>
6946
6947         PR tree-optimization/69551
6948         * tree-ssa-structalias.c (get_constraint_for_ssa_var): When
6949         looking through aliases adjust DECL_PT_UID to refer to the
6950         ultimate alias target.
6951
6952 2016-02-25  Martin Liska  <mliska@suse.cz>
6953
6954         PR middle-end/69919
6955         * alloc-pool.c (after_memory_report): New variable.
6956         * alloc-pool.h (base_pool_allocator ::release): Do not use
6957         the infrastructure if after_memory_report.
6958         * toplev.c (toplev::main): Mark after memory report.
6959
6960 2016-02-25  Richard Biener  <rguenther@suse.de>
6961
6962         PR tree-optimization/48795
6963         * tree-vrp.c (check_array_ref): Use array_at_struct_end_p.
6964
6965 2016-02-25  Ilya Verbin  <ilya.verbin@intel.com>
6966
6967         PR driver/68463
6968         * config/gnu-user.h (CRTOFFLOADBEGIN): Define.  Add crtoffloadbegin.o if
6969         offloading is enabled and -fopenacc or -fopenmp is specified.
6970         (CRTOFFLOADEND): Likewise.
6971         (GNU_USER_TARGET_STARTFILE_SPEC): Add CRTOFFLOADBEGIN.
6972         (GNU_USER_TARGET_ENDFILE_SPEC): Add CRTOFFLOADEND.
6973         * lto-wrapper.c (offloadbegin, offloadend): Remove static vars.
6974         (offload_objects_file_name): New static var.
6975         (tool_cleanup): Remove offload_objects_file_name file.
6976         (find_offloadbeginend): Replace with ...
6977         (find_crtoffloadtable): ... this.
6978         (run_gcc): Remove offload_argc and offload_argv.
6979         Get offload_objects_file_name from -foffload-objects=... option.
6980         Read names of object files with offload from this file, pass them to
6981         compile_images_for_offload_targets.  Don't call find_offloadbeginend and
6982         don't pass offloadbegin and offloadend to the linker.  Don't pass
6983         offload non-LTO files to the linker, because now they're not claimed.
6984
6985 2016-02-25  Jan Hubicka  <hubicka@ucw.cz>
6986
6987         PR ipa/69630
6988         * ipa-devirt.c (possible_polymorphic_call_targets): Do not ICE
6989         on builtin_unreachable.
6990
6991 2016-02-25  Jakub Jelinek  <jakub@redhat.com>
6992
6993         PR rtl-optimization/69896
6994         * regcprop.c: Include cfgrtl.h.
6995         (copyprop_hardreg_forward_1): If noop_p insn uses narrower
6996         than remembered mode, either delete it (if noop_move_p), or
6997         treat like copy_p but not noop_p instruction.
6998
6999 2016-02-24  Jakub Jelinek  <jakub@redhat.com>
7000
7001         PR debug/69705
7002         * dwarf2out.c (gen_variable_die): Work around buggy LTO
7003         - allow NULL decl for Fortran DW_TAG_common_block variables.
7004
7005 2016-02-24  Jason Merrill  <jason@redhat.com>
7006
7007         * common.opt (flifetime-dse): Add -flifetime-dse=1.
7008
7009 2016-02-24  Richard Biener  <rguenther@suse.de>
7010             Jakub Jelinek  <jakub@redhat.com>
7011
7012         PR middle-end/69760
7013         * tree-scalar-evolution.c (interpret_rhs_expr): Re-write
7014         conditionally executed ops to well-defined overflow behavior.
7015
7016 2016-02-24  Jakub Jelinek  <jakub@redhat.com>
7017
7018         PR middle-end/69915
7019         * tree.c (build_vector_from_ctor): Fix handling of VECTOR_CST
7020         elements.
7021
7022 2016-02-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7023
7024         PR rtl-optimization/69886
7025         * gcse.c (can_assign_to_reg_without_clobbers_p): Accept mode
7026         argument.  Use it when checking validity of set instructions.
7027         (want_to_gcse_p): Pass mode to can_assign_to_reg_without_clobbers_p.
7028         (compute_ld_motion_mems): Update can_assign_to_reg_without_clobbers_p
7029         callsite.
7030         * rtl.h (can_assign_to_reg_without_clobbers_p): Update prototype.
7031         * store-motion.c (find_moveable_store): Update
7032         can_assign_to_reg_without_clobbers_p callsite.
7033
7034 2016-02-24  Richard Biener  <rguenther@suse.de>
7035
7036         PR middle-end/68963
7037         * tree-ssa-loop-niter.c (derive_constant_upper_bound_ops): Fix
7038         bogus check.
7039         (record_nonwrapping_iv): Do not fall back to the low/high bound
7040         for non-constant IV bases if the stmt is not always executed.
7041
7042 2016-02-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7043
7044         * config/arm/arm-cores.def (cortex-a32): New entry.
7045         * config/arm/arm-tables.opt: Regenerate.
7046         * config/arm/arm-tune.md: Regenerate.
7047         * config/arm/bpabi.h (BE8_LINK_SPEC): Add mcpu=cortex-a32.
7048         * config/arm/t-aprofile: Handle mcpu=cortex-a32.
7049         * doc/invoke.texi (ARM Options): Document cortex-a32 as value
7050         for -mcpu and -mtune.
7051
7052 2016-02-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7053
7054         PR target/69875
7055         * config/arm/arm.h (TARGET_HAVE_LPAE): Define.
7056         * config/arm/unspecs.md (VUNSPEC_LDRD_ATOMIC): New value.
7057         * config/arm/sync.md (arm_atomic_loaddi2_ldrd): New pattern.
7058         (atomic_loaddi_1): Delete.
7059         (atomic_loaddi): Rewrite expander using the above changes.
7060
7061 2016-02-24  Jakub Jelinek  <jakub@redhat.com>
7062
7063         PR c/69918
7064         * params.def (PARAM_MAX_SSA_NAME_QUERY_DEPTH): Bump default from
7065         2 to 3.
7066
7067 2016-02-24  Jakub Jelinek  <jakub@redhat.com>
7068             Richard Biener  <rguenth@suse.de>
7069
7070         PR middle-end/69909
7071         * expr.c (expand_expr_real_1) <normal_inner_ref>: Avoid
7072         set_mem_attributes if tem is SSA_NAME which got expanded
7073         as a MEM.
7074
7075 2016-02-24  Richard Biener  <rguenther@suse.de>
7076
7077         PR tree-optimization/69907
7078         * tree-vect-stmts.c (vectorizable_load): Check for gaps at the
7079         end of permutations for BB vectorization.
7080
7081 2016-02-24  Christian Bruel  <christian.bruel@st.com>
7082
7083         * config/arm/arm-c.c (arm_option_override): Initialize
7084         target_option_current_node.
7085         * config/arm/arm.c (arm_pragma_target_parse): Replace
7086         build_target_option_node call by target_option_current_node.
7087         Set target_option_current_node.
7088         Fix comments.
7089
7090 2016-02-23  David Edelsohn  <dje.gcc@gmail.com>
7091
7092         PR target/69810
7093         * config/rs6000/rs6000.md (zero_extendqi<mode>2_dot): Convert from
7094         define_insn_and_split to define_insn.
7095         (zero_extendqi<mode>2_dot2): Same.
7096         (extendqi<mode>2_dot): Same.
7097         (extendqi<mode>2_dot2): Same.
7098
7099 2016-02-23  Evandro Menezes  <e.menezes@samsung.com>
7100
7101         * config/arm/exynos-m1.md: Change cost of STP, fix bypass for stores
7102         and add bypass for AES{D,E} and AESMC pairs.
7103         * config/aarch64/aarch64.c (exynosm1_tunings): Enable fusion of AES{D,E}
7104         and AESMC pairs.
7105
7106 2016-02-23  Evandro Menezes  <e.menezes@samsung.com>
7107
7108         * config/aarch64/aarch64.c (exynosm1_tunings): Enable the Newton
7109         series for reciprocal square root in Exynos M1.
7110
7111 2016-02-23  Martin Sebor  <msebor@redhat.com>
7112
7113         PR c/69759
7114         * doc/extend.texi (Other Builtins): Document __builtin_alloca and
7115         __builtin_alloca_with_align.
7116
7117 2016-02-23  Richard Henderson  <rth@redhat.com>
7118
7119         * config/i386/i386-c.c (ix86_target_macros): Remove __SEG_TLS.
7120         (ix86_register_pragmas): Remove __seg_tls.
7121         * config/i386/i386-protos.h (ADDR_SPACE_SEG_TLS): Remove.
7122         * config/i386/i386.c (ix86_print_operand_address_as): Don't handle it.
7123         (ix86_addr_space_subset_p, TARGET_ADDR_SPACE_SUBSET_P): Remove.
7124         (ix86_addr_space_convert, TARGET_ADDR_SPACE_CONVERT): Remove.
7125         (ix86_addr_space_debug, TARGET_ADDR_SPACE_DEBUG): Remove.
7126         * doc/extend.texi (__seg_tls): Remove item.
7127
7128 2016-02-23  Richard Biener  <rguenther@suse.de>
7129
7130         * alloc-pool.h (struct allocation_object): Make id member
7131         conditional on CHECKING_P again.
7132         (get_instance): Adjust.
7133         (base_pool_allocator): Likewise.
7134
7135 2016-02-23  Thomas Schwinge  <thomas@codesourcery.com>
7136
7137         * tree-parloops.c (create_parallel_loop, gen_parallel_loop)
7138         (parallelize_loops): In OpenACC kernels mode, set n_threads to
7139         zero.
7140         (pass_parallelize_loops::gate): In OpenACC kernels mode, gate on
7141         flag_openacc.
7142         * tree-ssa-loop.c (gate_oacc_kernels): Likewise.
7143
7144 2016-02-23  Richard Biener  <rguenther@suse.de>
7145
7146         * mem-stats.h (struct mem_usage): Use PRIu64 for printing size_t.
7147         * bitmap.h (struct bitmap_usage): Likewise.
7148         (bitmap_move): Declare.
7149         * bitmap.c (register_overhead): Take size_t argument.
7150         (bitmap_move): New function.
7151         * df-problems.c (df_rd_transfer_function): Use bitmap_move
7152         to properly account overhead.
7153         * tree.c (free_node): Use tree_size.
7154
7155 2016-02-23  Jakub Jelinek  <jakub@redhat.com>
7156
7157         PR c++/69902
7158         * fold-const.c (fold_truth_not_expr): Propagate TREE_NO_WARNING
7159         when inverting comparison.
7160
7161         PR c/69900
7162         * common.opt (Wunreachable-code): Add Warning flag.
7163
7164 2016-02-23  Mark Wielaard  <mjw@redhat.com>
7165             Jakub Jelinek  <jakub@redhat.com>
7166
7167         PR c/69911
7168         * cgraphunit.c (check_global_declaration): Check main_input_filename
7169         and DECL_SOURCE_FILE are not NULL.
7170
7171 2016-02-23  Martin Jambor  <mjambor@suse.cz>
7172
7173         PR tree-optimization/69666
7174         * tree-sra.c (sra_modify_assign): Do not attempt to create
7175         default_def replacements for unscalarizable regions.
7176
7177 2016-02-20  Mark Wielaard  <mjw@redhat.com>
7178
7179         PR c/28901
7180         * cgraphunit.c (check_global_declaration): Check level of
7181         warn_unused_const_variable and main_input_filename.
7182         * doc/invoke.texi (Warning Options): Add -Wunused-const-variable=.
7183         (-Wunused-variable): For C implies -Wunused-const-variable=1.
7184         (-Wunused-const-variable): Explain levels 1 and 2.
7185
7186 2016-02-22  Jakub Jelinek  <jakub@redhat.com>
7187
7188         PR target/69888
7189         * config/i386/i386.c (decide_alg): Ensure we don't recurse with
7190         identical arguments.  Formatting and spelling fixes.
7191
7192         PR target/69885
7193         * doc/md.texi (ashl@var{m}3): Document that mode of operand 2 must
7194         be specified.
7195
7196         PR target/69894
7197         PR target/69895
7198         * config/m68k/t-opts (OPTIONS_H_EXTRA): Add m68k-microarchs.def
7199         and m68k-devices.def.
7200         * config/c6x/t-c6x (OPTIONS_H_EXTRA): Add c6x-isas.def.
7201         * config/aarch64/t-aarch64 (OPTIONS_H_EXTRA): Add aarch64-arches.def.
7202
7203 2016-02-22  Cesar Philippidis  <cesar@codesourcery.com>
7204
7205         * config/nvptx/nvptx.c (nvptx_gen_shuffle): Add support for QImode
7206         and HImode registers.
7207
7208 2016-02-22  Richard Biener  <rguenther@suse.de>
7209
7210         PR tree-optimization/69882
7211         * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Properly
7212         preserve permutations present because of gaps.
7213         (vect_supported_load_permutation_p): Always continue checking
7214         permutations after vect_attempt_slp_rearrange_stmts.
7215
7216 2016-02-22  Bin Cheng  <bin.cheng@arm.com>
7217
7218         * tree-vect-loop.c (vect_estimate_min_profitable_iters): Dump
7219         min_profitable_estimate, rather than min_profitable_iters.
7220
7221 2016-02-22  Jakub Jelinek  <jakub@redhat.com>
7222
7223         PR target/69885
7224         * config/m68k/m68k.md (ashldi3, ashrdi3, lshrdi3): Use
7225         SImode for last match_operand.
7226
7227 2016-02-22  Martin Liska  <mliska@suse.cz>
7228
7229         * hsa-gen.c (gen_hsa_clrsb): In case of zero value,
7230         return bitsize - 1 as the return value.
7231
7232 2016-02-22  Oleg Endo  <olegendo@gcc.gnu.org>
7233
7234         PR target/69806
7235         PR target/54089
7236         * config/sh/sh.c (sh_lshrsi_clobbers_t_reg_p, sh_dynamicalize_shift_p):
7237         Handle negative shift counts.
7238         * config/sh/sh.md (ashlsi3, lshrsi3_n, lshrsi3_n_clobbers_t): Don't use
7239         force_reg on the shift constant.
7240         (lshrsi3): Likewise.  Expand into lshrsi3_n* instead of lshrsi3_d.
7241         (lshrsi3_d): Handle negative shift counts.
7242
7243 2016-02-22  Richard Biener  <rguenther@suse.de>
7244             Tom de Vries  <tom@codesourcery.com>
7245
7246         * graph.c: Include dumpfile.h.
7247         (print_graph_cfg): Split into three overloads.
7248         * gdbhooks.py (class DotFn): Add and instantiate, adding command dot-fn.
7249
7250 2016-02-22  Tom de Vries  <tom@codesourcery.com>
7251
7252         * gdbhooks.py (class DumpFn): Add and instantiate, adding command
7253         dump-fn.
7254
7255 2016-02-22  Richard Biener  <rguenther@suse.de>
7256
7257         PR ipa/37448
7258         * ipa-inline-transform.c (inline_call): When not updating
7259         overall summaries adjust self size by the growth estimate.
7260         * ipa-inline.c (inline_to_all_callers_1): Add to the callers
7261         hash-set, do not update overall summaries here.  Renamed from ...
7262         (inline_to_all_callers): ... this which is now wrapping the
7263         above and performing delayed overall summary update.
7264         (early_inline_small_functions): Delay updating of the overall
7265         summary.
7266
7267 2016-02-21  Markus Trippelsdorf  <markus@trippelsdorf.de>
7268
7269         * tree-chkp.c (chkp_mark_invalid_bounds_walker): Initialize
7270         variable.
7271
7272 2016-02-19  Jakub Jelinek  <jakub@redhat.com>
7273
7274         PR driver/69805
7275         * gcc.c (LINK_COMMAND_SPEC, GOMP_SELF_SPECS): Use
7276         :%* in %:gt() argument.
7277         (greater_than_spec_func): Adjust for expecting only numbers,
7278         if there are more than two numbers, compare the last two.
7279
7280 2016-02-19  Jonathan Wakely  <jwakely@redhat.com>
7281
7282         * doc/invoke.texi (C++ Dialect Options): Clarify interaction of
7283         -Wnarrowing with -std.
7284
7285 2016-02-19  Jakub Jelinek  <jakub@redhat.com>
7286
7287         PR c++/69851
7288         * expr.c (store_field): Don't use bit-field path if exp is
7289         COMPONENT_REF with TREE_ADDRESSABLE type, where TYPE_SIZE is
7290         different from bitsize, but DECL_SIZE of FIELD_DECL is bitsize
7291         and the assignment can be performed by bitwise copy.  Formatting
7292         fix.
7293
7294         PR middle-end/69838
7295         * lra.c (lra_process_new_insns): If non-call exceptions are enabled,
7296         call copy_reg_eh_region_note_forward on before and/or after sequences
7297         and remove note from insn if it no longer can throw.
7298
7299         PR target/69820
7300         * config/i386/sse.md (VI_512): Only include V64QImode and V32HImode
7301         if TARGET_AVX512BW.
7302
7303 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
7304
7305         * config/s390/vector.md: Add missing commutative operand markers
7306         to the patterns which qualify for one.
7307         * config/s390/vx-builtins.md: Likewise.
7308
7309 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
7310
7311         * config/s390/vector.md (VI, VI_QHS): Add single element vector
7312         types to mode iterators.
7313         (vec_double): ... and mode attribute.
7314         * config/s390/vx-builtins.md (non_vec_int): Likewise.
7315
7316 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
7317
7318         * config/s390/vector.md ("<ti*>add<mode>3", "<ti*>sub<mode>3"):
7319         Change the predicate of op2 from nonimmediate to general and let
7320         reload fix it if necessary.
7321
7322 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
7323
7324         * config/s390/vecintrin.h (vec_sub_u128): Define missing macro.
7325
7326 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
7327
7328         * config/s390/s390.c (s390_expand_vcond): Use the compare operand
7329         mode.
7330
7331 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
7332
7333         * config/s390/s390-protos.h: Add s390_expand_vec_movstr prototype.
7334         * config/s390/s390.c (s390_expand_vec_movstr): New function.
7335         * config/s390/s390.md ("movstr<P:mode>"): Call
7336         s390_expand_vec_movstr.
7337
7338 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
7339
7340         * config/s390/s390.md: Add missing output modifier for operand 1
7341         to print it as address properly.
7342
7343 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
7344
7345         * config/s390/2827.md: Rename ooo_* insn attributes to zEC12_*.
7346         * config/s390/2964.md: New file.
7347         * config/s390/s390.c (s390_get_sched_attrmask): Use the right set
7348         of insn grouping attributes depending on the CPU level.
7349         (s390_get_unit_mask): New function.
7350         (s390_sched_score): Remove the OOO from the scheduling macros.
7351         Add loop to calculate a score for the instruction mix.
7352         (s390_sched_reorder): Likewise plus improve debug output.
7353         (s390_sched_variable_issue): Rename macros as above.  Calculate
7354         the unit distances after actually scheduling an insn.  Improve
7355         debug output.
7356         (s390_sched_init): Clear last_scheduled_unit_distance array.
7357         * config/s390/s390.md: Include 2964.md.
7358
7359 2016-02-18  Jakub Jelinek  <jakub@redhat.com>
7360
7361         PR target/69671
7362         * config/i386/sse.md (*<floatsuffix>floatv2div2sf2_mask_1,
7363         *avx512vl_<code>v2div2qi2_mask_1, *avx512vl_<code><mode>v4qi2_mask_1,
7364         *avx512vl_<code><mode>v8qi2_mask_1, *avx512vl_<code><mode>v4hi2_mask_1,
7365         *avx512vl_<code>v2div2hi2_mask_1, *avx512vl_<code>v2div2si2_mask_1,
7366         *avx512f_<code>v8div16qi2_mask_1): New insns.
7367
7368 2016-02-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
7369
7370         PR target/68404
7371         * config/rs6000/predicates.md (fusion_gpr_addis): Revert
7372         2016-02-09 change.
7373
7374         * config/rs6000/rs6000.md (fusion_gpr_load_<mode>): Remove
7375         earlyclobber from target.  Use wF constraint for fused memory
7376         address.
7377         (fusion_gpr_<P:mode>_<GPR_FUSION:mode>_load): Likewise.
7378
7379 2016-02-18  Jakub Jelinek  <jakub@redhat.com>
7380             Martin Liska  <mliska@suse.cz>
7381
7382         PR sanitizer/69863
7383         * cfgexpand.c (asan_sanitize_stack_p): New function.
7384         (partition_stack_vars): Use the function.
7385         (expand_stack_vars): Likewise.
7386         (defer_stack_allocation): Likewise.
7387         (expand_used_vars): Likewise.
7388
7389 2016-02-18  Richard Biener  <rguenther@suse.de>
7390
7391         PR middle-end/69553
7392         * fold-const.c (operand_equal_p): Properly compare offsets for
7393         IMAGPART_EXPR and ARRAY_REF.
7394
7395 2016-02-18  Nick Clifton  <nickc@redhat.com>
7396
7397         PR target/62254
7398         PR target/69610
7399         * config/arm/arm.c (arm_option_override_internal): Disable
7400         interworking if the target does not support thumb instructions.
7401         (arm_reload_in_hi): Handle the case where a register to register
7402         move needs reloading because there is no simple pattern to handle
7403         it.
7404         (arm_reload_out_hi): Likewise.
7405
7406 2016-02-18  Richard Biener  <rguenther@suse.de>
7407
7408         PR middle-end/69854
7409         * match.pd: Don't use fold_binary or fold_unary for folding
7410         constants.
7411
7412 2016-02-17  Jakub Jelinek  <jakub@redhat.com>
7413
7414         PR c++/69850
7415         * gimplify.c (gimplify_cond_expr): Call gimple_set_no_warning
7416         on the cond_stmt from TREE_NO_WARNING on COND_EXPR_COND.
7417         * gimple-ssa-nonnull-compare.c (do_warn_nonnull_compare): Don't
7418         warn on gimple_no_warning_p statements.
7419
7420 2016-02-17  Jonathan Wakely  <jwakely@redhat.com>
7421
7422         * doc/extend.texi (C++ Attributes): Correct description of
7423         warn_unused type attribute.
7424
7425 2016-02-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
7426
7427         * config/rs6000/altivec.md (*altivec_lvxl_<mode>_internal): Output
7428         correct instruction.
7429
7430 2016-02-17  Richard Biener  <rguenther@suse.de>
7431
7432         PR rtl-optimization/69609
7433         * bb-reorder.c (struct bbro_basic_block_data): Add priority member.
7434         (find_traces_1_round): When ending a trace update cached priority
7435         of successors.
7436         (bb_to_key): Use cached priority when available.
7437         (copy_bb): Initialize cached priority.
7438         (reorder_basic_blocks_software_trace_cache): Likewise.
7439
7440 2016-02-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7441
7442         PR target/69161
7443         * config/aarch64/predicates.md (aarch64_comparison_operator_mode):
7444         New predicate.
7445         (aarch64_comparison_operator): Break overly long line into two.
7446         (aarch64_comparison_operation): Likewise.
7447         * config/aarch64/aarch64.md (cstorecc4): Use
7448         aarch64_comparison_operator_mode instead of
7449         aarch64_comparison_operator.
7450         (cstore<mode>4): Likewise.
7451         (aarch64_cstore<mode>): Likewise.
7452         (*cstoresi_insn_uxtw): Likewise.
7453         (cstore<mode>_neg): Likewise.
7454         (*cstoresi_neg_uxtw): Likewise.
7455
7456 2016-02-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7457
7458         PR target/69161
7459         * config/arm/predicates.md (arm_comparison_operator_mode):
7460         New predicate.
7461         * config/arm/arm.md (*mov_scc): Use arm_comparison_operator_mode
7462         instead of arm_comparison_operator.
7463         (*mov_negscc): Likewise.
7464         (*mov_notscc): Likewise.
7465         * config/arm/thumb2.md (*thumb2_mov_scc): Likewise.
7466         (*thumb2_mov_negscc): Likewise.
7467         (*thumb2_mov_negscc_strict_it): Likewise.
7468         (*thumb2_mov_notscc): Likewise.
7469         (*thumb2_mov_notscc_strict_it): Likewise.
7470
7471 2016-02-17  Wilco Dijkstra  <wdijkstr@arm.com>
7472
7473         * config/aarch64/aarch64.c (aarch64_internal_mov_immediate):
7474         Add missing return.
7475
7476 2016-02-17  Eric Botcazou  <ebotcazou@adacore.com>
7477
7478         * config/visium/visium.c (machine_libfunc_index): New enum.
7479         (machine_libfuncs): New structure.
7480         (visium_libfuncs): New static variable.
7481         (TARGET_INIT_LIBFUNCS): Define to...
7482         (visium_init_libfuncs): ...this.  New function.
7483         (expand_block_move_4): Use the appropriate libfunc.
7484         (expand_block_move_2): Likewise.
7485         (expand_block_move_1): Likewise.
7486         (expand_block_set_4): Likewise.
7487         (expand_block_set_2): Likewise.
7488         (expand_block_set_1): Likewise.
7489         (visium_trampoline_init): Likewise.
7490
7491 2016-02-17  Nick Clifton  <nickc@redhat.com>
7492
7493         * config/msp430/msp430.c (msp430_mcu_data): Sync with data from
7494         TI's devices.csv file as of March 2016.
7495
7496 2016-02-16  Kelvin Nilsen  <kelvin@gcc.gnu.org>
7497
7498         PR Target/48344
7499         * opts-global.c (handle_common_deferred_options): Introduce and
7500         initialize two global variables to remember command-line options
7501         specifying a stack-limiting register.
7502         * opts.h: Add extern declarations of the two new global variables.
7503         * emit-rtl.c (init_emit_once): Initialize the stack_limit_rtx
7504         variable based on the values of the two new global variables.
7505
7506 2016-02-16  Jakub Jelinek  <jakub@redhat.com>
7507
7508         PR c/69835
7509         * common.opt (Wnonnull-compare): New warning.
7510         * doc/invoke.texi (-Wnonnull): Remove text about comparison
7511         of arguments against NULL.
7512         (-Wnonnull-compare): Document.
7513         * Makefile.in (OBJS): Add gimple-ssa-nonnull-compare.o.
7514         * tree-pass.h (make_pass_warn_nonnull_compare): Declare.
7515         * passes.def (pass_warn_nonnull_compare): Add.
7516         * gimple-ssa-nonnull-compare.c: New file.
7517
7518 2016-02-16  James Greenhalgh  <james.greenhalgh@arm.com>
7519
7520         * config/aarch64/aarch64.c (cortexa57_tunings): Remove
7521         AARCH64_EXTRA_TUNE_RECIP_SQRT.
7522
7523 2016-02-16  James Greenhalgh  <james.greenhalgh@arm.com>
7524
7525         * config/aarch64/aarch64.c (use_rsqrt_p): Always use software
7526         reciprocal sqrt for -mlow-precision-recip-sqrt.
7527
7528 2016-02-16  James Greenhalgh  <james.greenhalgh@arm.com>
7529             Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
7530
7531         * config/aarch64/aarch64.c (aarch64_expand_vector_init): Refactor,
7532         always use lane loads to construct non-constant vectors.
7533
7534 2016-02-16  James Greenhalgh  <james.greenhalgh@arm.com>
7535
7536         * config/aarch64/aarch64.md
7537         (arch64_sqrdml<SQRDMLH_AS:rdma_as>h_lane<mode>): Fix register
7538         constraints for operand 3.
7539         (aarch64_sqrdml<SQRDMLH_AS:rdma_as>h_laneq<mode>): Likewise.
7540
7541 2016-02-16  Jakub Jelinek  <jakub@redhat.com>
7542             Richard Biener  <rguenther@suse.de>
7543
7544         PR tree-optimization/69820
7545         * tree-vect-patterns.c (type_conversion_p): Return false if
7546         *orig_type is unsigned single precision or boolean.
7547         (vect_recog_dot_prod_pattern, vect_recog_widen_mult_pattern):
7548         Formatting fix.
7549
7550 2016-02-16  Jakub Jelinek  <jakub@redhat.com>
7551
7552         PR rtl-optimization/69764
7553         PR rtl-optimization/69771
7554         * optabs.c (expand_binop): Ensure for shift optabs invalid CONST_INT
7555         op1 is valid for GET_MODE_INNER (mode) and force it into a reg.
7556
7557 2016-02-16  Richard Biener  <rguenther@suse.de>
7558
7559         PR tree-optimization/69776
7560         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Get alias
7561         sets from caller.
7562         (indirect_refs_may_alias_p): Likewise.
7563         (refs_may_alias_p_1): Pass alias sets as from ao_ref.
7564         * tree-ssa-sccvn.c (vn_reference_lookup): Also adjust vr alias-set
7565         according to tbaa_p.
7566         * tree-ssa-dom.c (lookup_avail_expr): Add tbaa_p flag.
7567         (optimize_stmt): For redundant store discovery do not allow tbaa.
7568
7569 2016-02-16  Bernd Schmidt  <bschmidt@redhat.com>
7570
7571         PR tree-optimization/69714
7572         * tree-ssa-math-opts.c (find_bswap_or_nop): Revert previous change.
7573         Return NULL if we have irrelevant high bytes on BIG_ENDIAN.
7574
7575 2016-02-16  Claudiu Zissulescu  <claziss@synopsys.com>
7576
7577         * config/arc/arc-modes.def (CC_FPU, CC_FPU_UNEQ): New modes.
7578         * config/arc/arc-opts.h (FPU_SP, FPU_SF, FPU_SC, FPU_SD, FPU_DP)
7579         (FPU_DF, FPU_DC, FPU_DD, FXP_DP): Define.
7580         * config/arc/arc.c (arc_init): Check FPU options.
7581         (get_arc_condition_code): Handle new CC_FPU* modes.
7582         (arc_select_cc_mode): Likewise.
7583         (arc_conditional_register_usage): Allow 64 bit datum into even-odd
7584         register pair only. Allow access for ARCv2 accumulator.
7585         (gen_compare_reg): Whenever we have FPU support use FPU compare
7586         instructions.
7587         (arc_reorg): Don't generate brcc insns when FPU compare
7588         instructions are involved.
7589         * config/arc/arc.h (TARGET_DPFP): Add TARGET_FP_DPAX condition.
7590         (TARGET_OPTFPE): Add condition when ARC EM can use optimized
7591         floating point emulation.
7592         (ACC_REG_FIRST, ACC_REG_LAST, ACCL_REGNO, ACCH_REGNO): Define.
7593         (REVERSE_CONDITION): Add new CC_FPU* modes.
7594         (TARGET_FP_SP_BASE): Define.
7595         (TARGET_FP_DP_BASE): Likewise.
7596         (TARGET_FP_SP_FUSED): Likewise.
7597         (TARGET_FP_DP_FUSED): Likewise.
7598         (TARGET_FP_SP_CONV): Likewise.
7599         (TARGET_FP_DP_CONV): Likewise.
7600         (TARGET_FP_SP_SQRT): Likewise.
7601         (TARGET_FP_DP_SQRT): Likewise.
7602         (TARGET_FP_DP_AX): Likewise.
7603         * config/arc/arc.md (ARCV2_ACC): New constant.
7604         (type): New fpu type attribute.
7605         (SDF): Conditional iterator.
7606         (cstore<mode>, cbranch<mode>): Change expand condition.
7607         (addsf3, subsf3, mulsf3, adddf3, subdf3, muldf3): New expands,
7608         handles FPU/FPX cases as well.
7609         * config/arc/arc.opt (mfpu): New option.
7610         * config/arc/fpx.md (addsf3_fpx, subsf3_fpx, mulsf3_fpx):
7611         Renamed.
7612         (adddf3, muldf3, subdf3): Removed.
7613         * config/arc/predicates.md (proper_comparison_operator): Recognize
7614         CC_FPU* modes.
7615         * config/arc/fpu.md: New file.
7616         * doc/invoke.texi (ARC Options): Document mfpu option.
7617
7618 2016-02-16  Richard Biener  <rguenther@suse.de>
7619
7620         PR rtl-optimization/69291
7621         * ifcvt.c (noce_try_store_flag_constants): Re-instantiate
7622         noce_operand_ok check.
7623
7624 2016-02-16  Tom de Vries  <tom@codesourcery.com>
7625
7626         PR lto/67709
7627         * omp-low.c (simd_clone_create): Remove call to
7628         symtab->call_cgraph_insertion_hooks.
7629
7630 2016-02-16  Jakub Jelinek  <jakub@redhat.com>
7631
7632         PR tree-optimization/69802
7633         * tree-ssa-reassoc.c (update_range_test): If op is
7634         SSA_NAME_IS_DEFAULT_DEF, give up unless tem is a positive
7635         op == 1 test of precision 1 integral op, otherwise handle
7636         that case as op itself.  Fix up formatting.
7637         (optimize_range_tests_to_bit_test, optimize_range_tests): Fix
7638         up formatting.
7639
7640 2016-02-16  Richard Biener  <rguenther@suse.de>
7641
7642         PR tree-optimization/69586
7643         * tree-vrp.c (register_edge_assert_for_2): Handle all integral
7644         types for conversion sources.
7645
7646 2016-02-16  Richard Biener  <rguenther@suse.de>
7647
7648         PR middle-end/69801
7649         * fold-const.c (operand_equal_p): For COND_EXPR zero operand
7650         mask OEP_ADDRESS_OF.
7651
7652 2016-02-16  Alan Modra  <amodra@gmail.com>
7653
7654         PR target/68973
7655         * config/rs6000/rs6000.md (reload_vsx_from_gprsf): Rewrite splitter.
7656         (p8_mtvsrd_df, p8_mtvsrd_sf): New.
7657         (p8_mtvsrd_1, p8_mtvsrd_2): Delete.
7658         (p8_mtvsrwz): New.
7659         (p8_mtvsrwz_1, p8_mtvsrwz_2): Delete.
7660         (p8_xxpermdi_<mode>): Take two DF inputs rather than one TF.
7661         (p8_fmrgow_<mode>): Likewise.
7662         (reload_vsx_from_gpr<mode>): Make clobber IF.  Adjust for above
7663         changes.
7664         (reload_fpr_from_gpr<mode>): Similarly. Use "d" for op0 constraint.
7665         (reload_vsx_from_gprsf): Use p8_mtvsrd_sf rather than attempting
7666         to use movdi_internal64.  Remove op0_di.
7667         * config/rs6000/vsx.md (vsx_xscvspdpn_directmove): Make op1 SFmode.
7668
7669 2016-02-15  Evandro Menezes  <e.menezes@samsung.com>
7670
7671         Add support for the FCCMP insn types
7672
7673         * config/aarch64/aarch64.md (fccmp): Change insn type.
7674         (fccmpe): Likewise.
7675         * config/aarch64/thunderx.md (thunderx_fcmp): Add "fccmp{s,d}" types.
7676         * config/arm/cortex-a53.md (cortex_a53_fpalu): Likewise.
7677         * config/arm/cortex-a57.md (cortex_a57_fp_cmp): Likewise.
7678         * config/arm/xgene1.md (xgene1_fcmp): Likewise.
7679         * config/arm/exynos-m1.md (exynos_m1_fp_ccmp): New insn reservation.
7680         * config/arm/types.md (fccmps): Add new insn type.
7681         (fccmpd): Likewise.
7682
7683 2016-02-15  Bernd Edlinger  <bernd.edlinger@hotmail.de>
7684
7685         * alias.c (get_alias_set): Fix a typo in comment.
7686
7687 2016-02-15  Richard Biener  <rguenther@suse.de>
7688
7689         PR tree-optimization/69595
7690         * match.pd: Complete range test simplification to true.
7691
7692 2016-02-15  Bernd Schmidt  <bschmidt@redhat.com>
7693
7694         PR rtl-optimization/69648
7695         * lra-constraints.c (update_ebb_live_info): Don't remove sets of
7696         pic_offset_table_rtx.
7697
7698         PR rtl-optimization/69752
7699         * ira.c (update_equiv_regs): When looking for more than a single SET,
7700         also take other side effects into account.
7701
7702 2016-02-15  Marcin Kościelnicki  <koriakin@0x04.net>
7703
7704         * config/s390/s390.c (s390_function_profiler): Add a new sequence
7705         for z900+ CPUs in 31-bit mode.
7706
7707 2016-02-15  Marcin Kościelnicki  <koriakin@0x04.net>
7708
7709         * common/config/s390/s390-common.c (s390_supports_split_stack):
7710         New function.
7711         (TARGET_SUPPORTS_SPLIT_STACK): New macro.
7712         * config/s390/s390-protos.h: Add s390_expand_split_stack_prologue.
7713         * config/s390/s390.c (struct machine_function): New field
7714         split_stack_varargs_pointer.
7715         (s390_register_info): Mark r12 as clobbered if it'll be used as temp
7716         in s390_emit_prologue.
7717         (s390_emit_prologue): Use r12 as temp if r1 is taken by split-stack
7718         vararg pointer.
7719         (morestack_ref): New global.
7720         (SPLIT_STACK_AVAILABLE): New macro.
7721         (s390_expand_split_stack_prologue): New function.
7722         (s390_live_on_entry): New function.
7723         (s390_va_start): Use split-stack vararg pointer if appropriate.
7724         (s390_asm_file_end): Emit the split-stack note sections.
7725         (TARGET_EXTRA_LIVE_ON_ENTRY): New macro.
7726         * config/s390/s390.md (UNSPEC_STACK_CHECK): New unspec.
7727         (UNSPECV_SPLIT_STACK_CALL): New unspec.
7728         (UNSPECV_SPLIT_STACK_DATA): New unspec.
7729         (split_stack_prologue): New expand.
7730         (split_stack_space_check): New expand.
7731         (split_stack_data): New insn.
7732         (split_stack_call): New expand.
7733         (split_stack_call_*): New insn.
7734         (split_stack_cond_call): New expand.
7735         (split_stack_cond_call_*): New insn.
7736
7737 2016-02-15  Richard Biener  <rguenther@suse.de>
7738
7739         PR tree-optimization/69783
7740         * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
7741         Add trivially correct cases.
7742
7743 2016-02-15  Tom de Vries  <tom@codesourcery.com>
7744
7745         PR lto/69655
7746         * lto-cgraph.c (input_offload_tables): Add and handle bool parameter
7747         do_force_output.
7748         * lto-streamer.h (input_offload_tables): Add and handle bool parameter.
7749
7750 2016-02-15  Richard Biener  <rguenther@suse.de>
7751
7752         PR tree-optimization/69776
7753         * tree-ssa-sccvn.h (vn_reference_lookup): Adjust prototype.
7754         * tree-ssa-sccvn.c (vn_reference_lookup): Add parameter to
7755         indicate whether we can use TBAA to disambiguate against stores.
7756         Use alias-set zero if not.
7757         (visit_reference_op_store): Do not use TBAA when looking up
7758         redundant stores.
7759         * tree-ssa-pre.c (compute_avail): Use TBAA here.
7760         (eliminate_dom_walker::before_dom_children): But not when looking
7761         up redundant stores.
7762
7763 2016-02-14  John David Anglin  <danglin@gcc.gnu.org>
7764
7765         * config/pa/pa.md (absqi2, absghi2, bswaphi2, bswapsi2, bswapdi2): New.
7766
7767 2016-02-14  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
7768
7769         *  config/i386/znver1.md
7770         (znver1_pop, znver1_pop_mem,
7771         znver1_load_imov_double_store,
7772         znver1_load_imov_direct_store,
7773         znver1_load_imov_direct_load,
7774         znver1_load_imov_double_load): Add new.
7775         (znver1_insn, znver1_insn_load): Add icmov type.
7776         (znver1_sseavx_fma,
7777         znver1_sseavx_fma_load,
7778         znver1_avx256_fma,
7779         znver1_avx256_fma_load): Fix pipe usage.
7780
7781 2016-02-14  Alan Modra  <amodra@gmail.com>
7782
7783         PR target/68973
7784         * reloads.c (find_reloads_address_1): For pre/post-inc/dec
7785         with an invalid hard reg, reload just the reg not the entire
7786         pre/post-inc/dec address expression.
7787
7788 2016-02-13  Oleg Endo  <olegendo@gcc.gnu.org>
7789
7790         PR target/67260
7791         * config/sh/sh.md (sibcall_value_pcrel): Replace =&k scratch reg with
7792         fixed R1_REG scratch reg.
7793         (sibcall_value_pcrel_fdpic): Likewise.
7794
7795 2016-02-13  Oleg Endo  <olegendo@gcc.gnu.org>
7796
7797         PR target/67636
7798         PR target/64345
7799         * config/sh/sh.md (*zero_extract_3): New insn_and_split pattern.
7800
7801 2016-02-12  Walter Lee  <walt@tilera.com>
7802
7803         * config/tilepro/t-tilepro: Replace CC_FOR_BUILD with CXX_FOR_BUILD.
7804         * config/tilegx/t-tilegx: Likewise.
7805
7806 2016-02-12  David Malcolm  <dmalcolm@redhat.com>
7807
7808         PR other/69554
7809         * diagnostic-show-locus.c (struct line_span): New struct.
7810         (layout::get_first_line): Delete.
7811         (layout::get_last_line): Delete.
7812         (layout::get_num_line_spans): New member function.
7813         (layout::get_line_span): Likewise.
7814         (layout::print_heading_for_line_span_index_p): Likewise.
7815         (layout::get_expanded_location): Likewise.
7816         (layout::calculate_line_spans): Likewise.
7817         (layout::m_first_line): Delete.
7818         (layout::m_last_line): Delete.
7819         (layout::m_line_spans): New field.
7820         (layout::layout): Update comment.  Replace m_first_line and
7821         m_last_line with m_line_spans, replacing their initialization
7822         with a call to calculate_line_spans.
7823         (diagnostic_show_locus): When printing source lines and
7824         annotations, rather than looping over a single span
7825         of lines, instead loop over each line_span within
7826         the layout, with an inner loop over the lines within them.
7827         Call the context's start_span callback when changing line spans.
7828         * diagnostic.c (diagnostic_initialize): Initialize start_span.
7829         (diagnostic_build_prefix): Break out the building of the location
7830         part of the string into...
7831         (diagnostic_get_location_text): ...this new function, rewriting
7832         it from nested ternary expressions to a sequence of "if"
7833         statements.
7834         (default_diagnostic_start_span_fn): New function.
7835         * diagnostic.h (diagnostic_start_span_fn): New typedef.
7836         (diagnostic_context::start_span): New field.
7837         (default_diagnostic_start_span_fn): New prototype.
7838
7839 2016-02-12  David Malcolm  <dmalcolm@redhat.com>
7840
7841         PR driver/69779
7842         * gcc.c (driver::finalize): Fix cleanup of "specs".
7843
7844 2016-02-12  David Malcolm  <dmalcolm@redhat.com>
7845
7846         PR driver/69265
7847         PR driver/69453
7848         * gcc.c (driver::driver): Initialize m_option_suggestions.
7849         (driver::~driver): Clean up m_option_suggestions.
7850         (suggest_option): Convert to...
7851         (driver::suggest_option): ...this, and split out into
7852         driver::build_option_suggestions and find_closest_string.
7853         (driver::build_option_suggestions): New function, from
7854         first half of suggest_option.  Special-case
7855         OPT_fsanitize_ and OPT_fsanitize_recover_, making use of
7856         the sanitizer_opts array.  For options of enum types, add the
7857         various enum values to the candidate strings.
7858         (driver::handle_unrecognized_options): Remove "const".
7859         * gcc.h (driver::handle_unrecognized_options): Likewise.
7860         (driver::build_option_suggestions): New decl.
7861         (driver::suggest_option): New decl.
7862         (driver::m_option_suggestions): New field.
7863         * opts-common.c (add_misspelling_candidates): New function.
7864         * opts.c (sanitizer_opts): Remove decl of struct sanitizer_opts_s
7865         and make non-static.
7866         * opts.h (sanitizer_opts): New array decl.
7867         (add_misspelling_candidates): New function decl.
7868         * spellcheck.c (find_closest_string): New function.
7869         * spellcheck.h (find_closest_string): New function decl.
7870
7871 2016-02-12  Jakub Jelinek  <jakub@redhat.com>
7872
7873         PR rtl-optimization/69764
7874         PR rtl-optimization/69771
7875         * optabs.c (expand_binop_directly): For shift_optab_p, force
7876         convert_modes with VOIDmode if xop1 has VOIDmode.
7877
7878 2016-02-12  Ilya Enkovich  <enkovich.gnu@gmail.com>
7879
7880         PR target/69729
7881         * lto-streamer-out.c (lto_output): Use thunk.add_pointer_bounds_args
7882         to correctly determine instrumentation thunks.
7883
7884 2016-02-12  Jakub Jelinek  <jakub@redhat.com>
7885
7886         PR ipa/69241
7887         * ipa-split.c (split_function): If split part returns TREE_ADDRESSABLE
7888         type by reference, force lhs on the call.
7889
7890         PR ipa/68672
7891         * ipa-split.c (split_function): Don't compute/use main_part_return_p.
7892         Compute retval and retbnd early in all cases if split_part_return_p
7893         and return_bb is not EXIT.  Remove all clobber stmts and reset
7894         all debug stmts that refer to SSA_NAMEs defined in split part,
7895         except if it is retval, in that case replace the old retval with the
7896         lhs of the call to the split part.
7897
7898 2016-02-12  Kugan Vivekanandarajah  <kuganv@linaro.org>
7899
7900         revert:
7901         2016-02-12  Kugan Vivekanandarajah  <kuganv@linaro.org>
7902
7903         PR middle-end/66726
7904         * tree-ssa-reassoc.c (optimize_range_tests): Handle tcc_compare stmt
7905         whose result is used in PHI.
7906         (maybe_optimize_range_tests): Likewise.
7907         (final_range_test_p): Likweise.
7908
7909 2016-02-12  Kugan Vivekanandarajah  <kuganv@linaro.org>
7910
7911         PR middle-end/66726
7912         * tree-ssa-reassoc.c (optimize_range_tests): Handle tcc_compare stmt
7913         whose result is used in PHI.
7914         (maybe_optimize_range_tests): Likewise.
7915         (final_range_test_p): Likweise.
7916
7917 2016-02-12  Jakub Jelinek  <jakub@redhat.com>
7918
7919         * cgraph.c: Spelling fixes - behaviour -> behavior and
7920         neighbour -> neighbor.
7921         * target.def: Likewise.
7922         * sel-sched.c: Likewise.
7923         * config/mips/mips.c: Likewise.
7924         * config/arc/arc.md: Likewise.
7925         * config/arm/cortex-a57.md: Likewise.
7926         * config/arm/arm.c: Likewise.
7927         * config/arm/neon.md: Likewise.
7928         * config/arm/arm-c.c: Likewise.
7929         * config/vms/vms-c.c: Likewise.
7930         * config/s390/s390.c: Likewise.
7931         * config/i386/znver1.md: Likewise.
7932         * config/i386/i386.c: Likewise.
7933         * config/ia64/hpux-unix2003.h: Likewise.
7934         * config/msp430/msp430.md: Likewise.
7935         * config/rx/rx.c: Likewise.
7936         * config/rx/rx.md: Likewise.
7937         * config/aarch64/aarch64-simd.md: Likewise.
7938         * config/aarch64/aarch64.c: Likewise.
7939         * config/nvptx/nvptx.c: Likewise.
7940         * config/bfin/bfin.c: Likewise.
7941         * config/cris/cris.opt: Likewise.
7942         * config/rs6000/rs6000.c: Likewise.
7943         * target.h: Likewise.
7944         * spellcheck.c: Likewise.
7945         * ira-build.c: Likewise.
7946         * tree-inline.c: Likewise.
7947         * builtins.c: Likewise.
7948         * lra-constraints.c: Likewise.
7949         * explow.c: Likewise.
7950         * hwint.h: Likewise.
7951         * targhooks.c: Likewise.
7952         * tree-vect-data-refs.c: Likewise.
7953         * expr.c: Likewise.
7954         * doc/tm.texi: Likewise.
7955         * doc/extend.texi: Likewise.
7956         * doc/install.texi: Likewise.
7957         * doc/md.texi: Likewise.
7958         * tree-ssa-tail-merge.c: Likewise.
7959         * sched-int.h: Likewise.
7960         * match.pd: Likewise.
7961         * sched-ebb.c: Likewise.
7962         * target.def (omit_struct_return_reg): Likewise.
7963         * gimple-ssa-isolate-paths.c: Likewise.
7964         (find_implicit_erroneous_behaviour): Renamed to...
7965         (find_implicit_erroneous_behavior): ... this.
7966         (find_explicit_erroneous_behaviour): Renamed to...
7967         (find_explicit_erroneous_behavior): ... this.
7968         (gimple_ssa_isolate_erroneous_paths): Adjust caller.
7969
7970 2016-02-11  Segher Boessenkool  <segher@kernel.crashing.org>
7971
7972         PR rtl-optimization/64682
7973         PR rtl-optimization/69567
7974         PR rtl-optimization/69737
7975         * combine.c (distribute_notes) <REG_DEAD>: If the register is set
7976         in I2 as well, just lose it.
7977
7978 2016-02-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7979
7980         * config/aarch64/aarch64.c (aarch64_last_printed_arch_string):
7981         New variable.
7982         (aarch64_last_printed_tune_string): Likewise.
7983         (aarch64_declare_function_name): Only output .arch assembler
7984         directive if it will be different from the previously output
7985         directive.  Same for .tune comment but only if -dA is set.
7986         (aarch64_start_file): New function.
7987         (TARGET_ASM_FILE_START): Define.
7988
7989 2016-02-11  David Malcolm  <dmalcolm@redhat.com>
7990
7991         PR plugins/69758
7992         * Makefile.in (PLUGIN_HEADERS): Add params.list.
7993
7994 2016-02-11  Jakub Jelinek  <jakub@redhat.com>
7995
7996         PR target/65313
7997         * tree-vect-slp.c (vect_schedule_slp_instance): Avoid
7998         -Wmaybe-uninitialized warning.
7999
8000 2016-02-11  Oleg Endo  <olegendo@gcc.gnu.org>
8001
8002         PR target/69713
8003         * config/sh/sh.md (casesi_worker_0): Add T_REG use.
8004
8005 2016-02-11  Richard Biener  <rguenther@suse.de>
8006
8007         PR rtl-optimization/69291
8008         * ifcvt.c (noce_try_store_flag_constants): Do not allow
8009         subexpressions affected by changing the result.
8010
8011 2016-02-10  Vladimir Makarov  <vmakarov@redhat.com>
8012
8013         PR target/69148
8014         * lra-constraints.c (curr_insn_transform): Find in/out operands
8015         for secondary memory moves.  Update dups.
8016
8017 2016-02-10  Yuri Rumyantsev  <ysrumyan@gmail.com>
8018
8019         PR tree-optimization/69652
8020         * tree-vect-loop.c (optimize_mask_stores): Move declaration of STMT1
8021         to nested loop, did source re-formatting, skip debug statements,
8022         add check on statement with volatile operand, remove dead scalar
8023         statements.
8024
8025 2016-02-10  Jakub Jelinek  <jakub@redhat.com>
8026             Patrick Palka  <ppalka@gcc.gnu.org>
8027
8028         PR ipa/69241
8029         PR c++/69649
8030         * gimplify.c (gimplify_modify_expr): Set lhs even for noreturn
8031         calls if the return type is TREE_ADDRESSABLE.
8032         * cgraphunit.c (cgraph_node::expand_thunk): Likewise.
8033         * ipa-split.c (split_function): Fix doubled "we" in comment.
8034         Use void return type for the split part even if
8035         !split_point->split_part_set_retval.
8036
8037 2016-02-10  Bin Cheng  <bin.cheng@arm.com>
8038
8039         PR tree-optimization/68021
8040         * tree-ssa-loop-ivopts.c (get_computation_aff): Set ratio to 1 if
8041         when computing the value of biv cand by itself.
8042
8043 2016-02-10  Wilco Dijkstra  <wdijkstr@arm.com>
8044
8045         * config/aarch64/aarch64.c (cortexa53_tunings): Enable AES fusion.
8046         (cortexa57_tunings): Likewise.
8047         (cortexa72_tunings): Likewise.
8048         (arch_macro_fusion_pair_p): Add support for AES fusion.
8049         * config/aarch64/aarch64-fusion-pairs.def: Add AES_AESMC entry.
8050         * config/arm/aarch-common.c (aarch_crypto_can_dual_issue):
8051         Allow virtual registers before reload so early scheduling works.
8052         * config/arm/cortex-a57.md (cortex_a57_crypto_simple): Use
8053         correct latency and pipeline.
8054         (cortex_a57_crypto_complex): Likewise.
8055         (cortex_a57_crypto_xor): Likewise.
8056         (define_bypass): Add AES bypass.
8057
8058 2016-02-10  Richard Biener  <rguenther@suse.de>
8059
8060         PR tree-optimization/69726
8061         * passes.def: Add DCE pass before late uninit.
8062         * match.pd: Add A ? B : (!A ? C : X) -> A ? B : C patterns to
8063         really fixup if-conversions job.
8064
8065 2016-02-10  Wilco Dijkstra  <wdijkstr@arm.com>
8066
8067         * config/arm/arm.c (arm_cortex_a53_tune): Enable AES fusion.
8068         (arm_cortex_a57_tune): Likewise.
8069         (aarch_macro_fusion_pair_p): Add support for AES fusion.
8070         * config/arm/arm-protos.h (fuse_ops): Add FUSE_AES_AESMC.
8071
8072 2016-02-10  Eric Botcazou  <ebotcazou@adacore.com>
8073
8074         * timevar.def (TV_PHASE_DBGINFO): Delete.
8075         (TV_PHASE_CHECK_DBGINFO): Likewise.
8076         * varpool.c (varpool_node::assemble_decl): Do not change timevar.
8077
8078 2016-02-10  Richard Biener  <rguenther@suse.de>
8079
8080         PR tree-optimization/69719
8081         * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
8082         Adjust previous fix by ensuring that dr_a1 is left of dr_a2.
8083
8084 2016-02-09  Andrew Pinski  <apinski@cavium.com>
8085
8086         PR tree-opt/69282
8087         * optabs-tree.c (expand_vec_cond_expr_p): Don't early return if
8088         get_vcond_mask_icode returns false.
8089
8090 2016-02-09  Michael Meissner  <meissner@linux.vnet.ibm.com>
8091
8092         PR target/68404
8093         * config/rs6000/predicates.md (fusion_gpr_addis): Prevent fusing
8094         an ADDIS that adds a pointer to a large constant that sets the
8095         upper16 bits with a load operation.
8096
8097 2016-02-09  Charles Baylis  <charles.baylis@linaro.org>
8098
8099         PR target/68532
8100         * config/arm/arm.c (arm_evpc_neon_vzip): Allow for big endian lane
8101         order.
8102         * config/arm/arm_neon.h (vzipq_s8): Adjust shuffle patterns for big
8103         endian.
8104         (vzipq_s16): Likewise.
8105         (vzipq_s32): Likewise.
8106         (vzipq_f32): Likewise.
8107         (vzipq_u8): Likewise.
8108         (vzipq_u16): Likewise.
8109         (vzipq_u32): Likewise.
8110         (vzipq_p8): Likewise.
8111         (vzipq_p16): Likewise.
8112
8113 2016-02-09  Charles Baylis  <charles.baylis@linaro.org>
8114
8115         PR target/68532
8116         * config/arm/arm.c (neon_endian_lane_map): New function.
8117         (neon_vector_pair_endian_lane_map): New function.
8118         (arm_evpc_neon_vuzp): Allow for big endian lane order.
8119         * config/arm/arm_neon.h (vuzpq_s8): Adjust shuffle patterns for big
8120         endian.
8121         (vuzpq_s16): Likewise.
8122         (vuzpq_s32): Likewise.
8123         (vuzpq_f32): Likewise.
8124         (vuzpq_u8): Likewise.
8125         (vuzpq_u16): Likewise.
8126         (vuzpq_u32): Likewise.
8127         (vuzpq_p8): Likewise.
8128         (vuzpq_p16): Likewise.
8129
8130 2016-02-11  Alexandre Oliva  <aoliva@redhat.com>
8131
8132         PR target/69634
8133         * regstat.c (regstat_bb_compute_calls_crossed): Disregard
8134         debug insns.
8135
8136 2016-02-09  Uros Bizjak  <ubizjak@gmail.com>
8137
8138         * config/i386/i386.md (insv<mode>_1): Use gen_int_mode to
8139         truncate const_int operand 1 to QImode.
8140
8141 2016-02-09  Eric Botcazou  <ebotcazou@adacore.com>
8142
8143         * gimple-ssa-backprop.c (optimize_phi): Do not replace an argument
8144         corresponding to an abnormal edge.
8145
8146 2016-02-09  Tom de Vries  <tom@codesourcery.com>
8147
8148         PR tree-optimization/69599
8149         * tree-ssa-structalias.c (fndecl_maybe_in_other_partition): New
8150         function.
8151         (find_func_aliases_for_builtin_call, find_func_clobbers)
8152         (ipa_pta_execute):  Handle case that foo and foo._0 are not in same lto
8153         partition.
8154
8155 2016-02-09  Richard Biener  <rguenther@suse.de>
8156
8157         PR tree-optimization/69715
8158         * tree-ssa.c (execute_update_addresses_taken): Mark non-decl
8159         LHS on calls as non-rewritable.
8160
8161 2016-02-09  Tom de Vries  <tom@codesourcery.com>
8162
8163         PR lto/69707
8164         * lto-wrapper.c (append_diag_options): New function.
8165         (compile_offload_image): Call append_diag_options.
8166
8167 2016-02-08  Sandra Loosemore  <sandra@codesourcery.com>
8168
8169         PR other/69722
8170         * doc/extend.texi (Flag Output Operands): Correct sectioning.
8171         Minor copy-edit to fix verb tenses.
8172
8173 2016-02-08  Jakub Jelinek  <jakub@redhat.com>
8174
8175         PR tree-optimization/69209
8176         * ipa-split.c (split_function): If split part is not
8177         returning retval, retval has gimple type but is not
8178         gimple value, force it into a SSA_NAME first.
8179
8180 2016-02-08  Nicklas Bo Jensen  <nbjensen@gmail.com>
8181
8182         * doc/tree-ssa.texi (Preserving the virtual SSA form): Remove
8183         outdated section.
8184
8185 2016-02-08  Jason Merrill  <jason@redhat.com>
8186
8187         PR c++/69631
8188         * convert.c (convert_to_integer_1): Check dofold on truncation
8189         distribution.
8190         (convert_to_pointer_maybe_fold, convert_to_real_maybe_fold)
8191         (convert_to_integer_maybe_fold, convert_to_complex_maybe_fold):
8192         Rename from *_nofold.
8193         * convert.h (convert_to_pointer_nofold, convert_to_integer_nofold)
8194         (convert_to_real_nofold, convert_to_complex_nofold): New inlines.
8195
8196 2016-02-08  Bernd Schmidt  <bschmidt@redhat.com>
8197
8198         PR target/60410
8199         * tree.c (build_common_tree_nodes): Remove short_double argument.
8200         All callers changed.
8201         * tree.h (build_common_tree_nodes): Adjust declaration.
8202         * doc/invoke.texi (-fshort-double): Remove documentation.
8203         * config/mips/t-img-elf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
8204         MULTILIB_EXCEPTIONS): Remove -fshort-double variant.
8205         * lto-wrapper.c (merge_and_complain, append_compiler_options)
8206         (append_linker_options): Don't handle OPT_fshort_double.
8207
8208         PR rtl-optimization/68730
8209         * lra-remat.c (insn_to_cand_activation): New static variable.
8210         (lra_remat): Allocate and free it.
8211         (create_cand): New arg activation. Initialize a field in
8212         insn_to_cand_activation if it is nonnull.
8213         (create_cands): Pass the activation insn to create_cand when making
8214         a candidate involving an output reload.  Reorganize code a little.
8215         (do_remat): Keep track of active status of candidates in a separate
8216         bitmap.
8217
8218 2016-02-08  Richard Biener  <rguenther@suse.de>
8219
8220         PR tree-optimization/69719
8221         * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
8222         Properly use absolute of the difference of the two offsets to
8223         compare or adjust the segment length.
8224
8225 2016-02-08  Richard Biener  <rguenther@suse.de>
8226             Jeff Law  <law@redhat.com>
8227
8228         PR target/68273
8229         * tree-ssanames.c (make_ssa_name_fn): Always use unqualified
8230         types for anonymous SSA names.
8231
8232 2016-02-08   Richard Biener  <rguenther@suse.de>
8233
8234         PR rtl-optimization/69274
8235         * ira.c (ira_setup_alts): Do not change recog_data.operand order.
8236
8237 2016-02-08  Jeff Law  <law@redhat.com>
8238
8239         PR tree-optimization/65917
8240         * tree-ssa-dom.c (record_temporary_equivalences): Record both
8241         equivalences from if (x == y) style conditionals.
8242         (loop_depth_of_name): Remove.
8243         (record_equality): Remove loop depth check.
8244         * tree-ssa-scopedtables.h (const_and_copies): Refine comments.
8245         (const_and_copies::record_const_or_copy_raw): New member function.
8246         * tree-ssa-scopedtables.c
8247         (const_and_copies::record_const_or_copy_raw): New, factored out of
8248         (const_and_copies::record_const_or_copy): Call new member function.
8249
8250 2016-02-05  Jeff Law  <law@redhat.com>
8251
8252         PR tree-optimization/68541
8253         * gimple-ssa-split-paths.c: Include tree-cfg.h and params.h.
8254         (count_stmts_in_block): New function.
8255         (poor_ifcvt_candidate_code): Likewise.
8256         (is_feasible_trace): Add some heuristics to determine when path
8257         splitting is profitable.
8258         (find_block_to_duplicate_for_splitting_paths): Make sure the graph
8259         is a diamond with a single exit.
8260
8261 2016-02-05  Martin Sebor  <msebor@redhat.com>
8262
8263         PR c++/69662
8264         * doc/invoke.texi: Update -Wplacement-new to take an optional
8265         argument.
8266
8267 2016-02-06  Richard Henderson  <rth@redhat.com>
8268
8269         PR c/69643
8270         * tree.c (tree_nop_conversion_p): Do not strip casts into or
8271         out of non-standard address spaces.
8272
8273 2016-02-05  Jakub Jelinek  <jakub@redhat.com>
8274
8275         PR rtl-optimization/69691
8276         * lra-eliminations.c (move_plus_up): Don't add the addend twice.
8277
8278 2016-02-05  Pat Haugen  <pthaugen@us.ibm.com>
8279
8280         * config/rs6000/crypto.md (crypto_vpermxor_<mode>): Correct insn type.
8281         * config/rs6000/rs6000.md (mov<mode>_hardfloat): Likewise.
8282         (*ieee128_mfvsrd_64bit): Likewise.
8283         (*ieee128_mfvsrd_32bit): Likewise.
8284
8285 2016-02-05  Ilya Enkovich  <enkovich.gnu@gmail.com>
8286
8287         PR target/69369
8288         Revert r232560:
8289         2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
8290
8291         * cgraphunit.c (cgraph_node::reset): Clear thunk info and
8292         instrumented_version.
8293
8294 2016-01-05  Jeremy Bennett  <jeremy.bennett@embecosm.com>
8295
8296         * doc/invoke.texi (Optimize Options): In table of --param options
8297         rename second occurrence of tracer-min-branch-ratio to
8298         tracer-min-branch-probability, rename
8299         tracer-min-branch-ratio-feedback to
8300         tracer-min-branch-probability-feedback and clarify description,
8301         rename sched-spec-state-edge-prob-cutoff to
8302         sched-state-edge-prob-cutoff, rename selsched-max-insns-to-rename
8303         to selsched-insns-to-rename, rename lto-minpartition to
8304         lto-min-partition, delete reorder-blocks-duplicate and
8305         reorder-blocks-duplicate-feedback.
8306
8307 2016-02-05  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
8308
8309         * config/s390/s390.c (s390_register_info_set_ranges): Remove
8310         superfluous loops.
8311
8312 2016-02-05  Dominik Vogt  <vogt@linux.vnet.ibm.com>
8313
8314         * doc/extend.texi: S/390: Correct some typos.
8315
8316 2016-02-05  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
8317
8318         * config/s390/s390.c (s390_emit_call): Add missing 64 bit check.
8319
8320 2016-02-05  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
8321
8322         PR target/69625
8323         * config/s390/s390.c (SAVE_SLOT_NONE, SAVE_SLOT_STACK): New defines.
8324         (s390_register_info_gprtofpr): Use new macros above.
8325         (s390_register_info_stdarg_fpr): Adjust max_fpr to better match
8326         its name.
8327         (s390_register_info_stdarg_gpr): Adjust max_gpr to better match
8328         its name.  Adjust restore and save gpr ranges.
8329         (s390_register_info_set_ranges): New function.
8330         (s390_register_info): Use new macros above.  Call
8331         s390_register_info_set_ranges.
8332         (s390_optimize_register_info): Likewise.
8333         (s390_hard_regno_rename_ok): Use new macros.
8334         (s390_hard_regno_scratch_ok): Likewise.
8335         (s390_emit_epilogue): Likewise.
8336         (s390_can_use_return_insn): Likewise.
8337         (s390_optimize_prologue): Likewise.
8338         * config/s390/s390.md (GPR2_REGNUM, GPR6_REGNUM): New constants.
8339
8340 2016-02-05  Jakub Jelinek  <jakub@redhat.com>
8341
8342         PR bootstrap/69677
8343         * config/i386/i386.c (convert_scalars_to_vector): Readd stack
8344         alignment fixes.
8345         (ix86_option_override_internal): Disable TARGET_STV even for
8346         -m{incoming,preferred}-stack-boundary=3.
8347
8348 2016-02-03  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
8349
8350         * config.gcc: Mark deprecated rtems targets as obsolete.
8351
8352 2016-02-04  Segher Boessenkool  <segher@kernel.crashing.org>
8353
8354         PR rtl-optimization/64682
8355         PR rtl-optimization/69567
8356         * combine.c (distribute_notes) <REG_DEAD>: Place the death note
8357         before I2 only if the register is both used and set in I2.
8358
8359 2016-02-04  DJ Delorie  <dj@redhat.com>
8360
8361         * config/msp430/msp430.c (msp430_start_function): Add function type.
8362
8363 2016-02-04  Jakub Jelinek  <jakub@redhat.com>
8364
8365         PR fortran/69368
8366         * tree-dfa.c (get_ref_base_and_extent): Remove unreachable code.
8367
8368 2016-02-04  Uros Bizjak  <ubizjak@gmail.com>
8369
8370         PR rtl-optimization/69577
8371         Revert:
8372         2015-10-29  Richard Henderson  <rth@redhat.com>
8373
8374         PR target/68124
8375         PR rtl-opt/67609
8376         * config/i386/i386.c (ix86_cannot_change_mode_class): Tighten
8377         sse check to the exact conditions of PR 67609.
8378
8379 2016-02-04  Michael Meissner  <meissner@linux.vnet.ibm.com>
8380
8381         PR target/69667
8382         * config/rs6000/rs6000.md (mov<mode>_64bit_dm): Use 'd' constraint
8383         instead of 'ws', and 'wh' instead of 'wm' since TFmode/IFmode are
8384         not allowed into the traditional Altivec registers.
8385         (movtd_64bit_nodm): Likewise.
8386         (mov<mode>_32bit, FMOVE128_FPR iterator): Likewise.
8387
8388 2016-02-04  David Malcolm  <dmalcolm@redhat.com>
8389
8390         * config/aarch64/cortex-a57-fma-steering.c
8391         (aarch64_register_fma_steering): Remove "static" from arguments
8392         to register_pass.
8393
8394 2016-02-04  Wilco Dijkstra  <wdijkstr@arm.com>
8395
8396         PR target/69619
8397         * ccmp.c (expand_ccmp_expr_1): Avoid evaluating gs0/gs1
8398         twice when complex.
8399
8400 2016-02-04  Mike Frysinger  <vapier@gentoo.org>
8401
8402         * doc/invoke.texi: Delete -mno-fma4.
8403
8404 2016-02-04  Richard Sandiford  <richard.sandiford@arm.com>
8405
8406         PR rtl-optimization/69577
8407         * reginfo.c (record_subregs_of_mode): Add a partial_def parameter.
8408         (find_subregs_of_mode): Update accordingly.  Iterate over partial
8409         definitions.
8410
8411 2016-02-04  Alan Lawrence  <alan.lawrence@arm.com>
8412
8413         * config/arm/arm-protos.h (neon_reinterpret): Remove.
8414         * config/arm/arm.c (neon_reinterpret): Remove.
8415         * config/arm/arm_neon_builtins.def (vreinterpretv8qi, vreinterpretv4hi,
8416         vreinterpretv2si, vreinterpretv2sf, vreinterpretdi, vreinterpretv16qi,
8417         vreinterpretv8hi, vreinterpretv4si, vreinterpretv4sf, vreinterpretv2di,
8418         vreinterpretti): Remove.
8419         * config/arm/neon.md (neon_vreinterpretv8qi<mode>,
8420         neon_vreinterpretv4hi<mode>, neon_vreinterpretv2si<mode>,
8421         neon_vreinterpretv2sf<mode>, neon_vreinterpretdi<mode>,
8422         neon_vreinterpretti<mode>, neon_vreinterpretv16qi<mode>,
8423         neon_vreinterpretv8hi<mode>, neon_vreinterpretv4si<mode>,
8424         neon_vreinterpretv4sf<mode>, neon_vreinterpretv2di<mode>): Remove.
8425         * config/arm/arm_neon.h (vreinterpret_p8_p16, vreinterpret_p8_f32,
8426         vreinterpret_p8_p64, vreinterpret_p8_s64, vreinterpret_p8_u64,
8427         vreinterpret_p8_s8, vreinterpret_p8_s16, vreinterpret_p8_s32,
8428         vreinterpret_p8_u8, vreinterpret_p8_u16, vreinterpret_p8_u32,
8429         vreinterpret_p16_p8, vreinterpret_p16_f32, vreinterpret_p16_p64,
8430         vreinterpret_p16_s64, vreinterpret_p16_u64, vreinterpret_p16_s8,
8431         vreinterpret_p16_s16, vreinterpret_p16_s32, vreinterpret_p16_u8,
8432         vreinterpret_p16_u16, vreinterpret_p16_u32, vreinterpret_f32_p8,
8433         vreinterpret_f32_p16, vreinterpret_f32_p64, vreinterpret_f32_s64,
8434         vreinterpret_f32_u64, vreinterpret_f32_s8, vreinterpret_f32_s16,
8435         vreinterpret_f32_s32, vreinterpret_f32_u8, vreinterpret_f32_u16,
8436         vreinterpret_f32_u32, vreinterpret_p64_p8, vreinterpret_p64_p16,
8437         vreinterpret_p64_f32, vreinterpret_p64_s64, vreinterpret_p64_u64,
8438         vreinterpret_p64_s8, vreinterpret_p64_s16, vreinterpret_p64_s32,
8439         vreinterpret_p64_u8, vreinterpret_p64_u16, vreinterpret_p64_u32,
8440         vreinterpret_s64_p8, vreinterpret_s64_p16, vreinterpret_s64_f32,
8441         vreinterpret_s64_p64, vreinterpret_s64_u64, vreinterpret_s64_s8,
8442         vreinterpret_s64_s16, vreinterpret_s64_s32, vreinterpret_s64_u8,
8443         vreinterpret_s64_u16, vreinterpret_s64_u32, vreinterpret_u64_p8,
8444         vreinterpret_u64_p16, vreinterpret_u64_f32, vreinterpret_u64_p64,
8445         vreinterpret_u64_s64, vreinterpret_u64_s8, vreinterpret_u64_s16,
8446         vreinterpret_u64_s32, vreinterpret_u64_u8, vreinterpret_u64_u16,
8447         vreinterpret_u64_u32, vreinterpret_s8_p8, vreinterpret_s8_p16,
8448         vreinterpret_s8_f32, vreinterpret_s8_p64, vreinterpret_s8_s64,
8449         vreinterpret_s8_u64, vreinterpret_s8_s16, vreinterpret_s8_s32,
8450         vreinterpret_s8_u8, vreinterpret_s8_u16, vreinterpret_s8_u32,
8451         vreinterpret_s16_p8, vreinterpret_s16_p16, vreinterpret_s16_f32,
8452         vreinterpret_s16_p64, vreinterpret_s16_s64, vreinterpret_s16_u64,
8453         vreinterpret_s16_s8, vreinterpret_s16_s32, vreinterpret_s16_u8,
8454         vreinterpret_s16_u16, vreinterpret_s16_u32, vreinterpret_s32_p8,
8455         vreinterpret_s32_p16, vreinterpret_s32_f32, vreinterpret_s32_p64,
8456         vreinterpret_s32_s64, vreinterpret_s32_u64, vreinterpret_s32_s8,
8457         vreinterpret_s32_s16, vreinterpret_s32_u8, vreinterpret_s32_u16,
8458         vreinterpret_s32_u32, vreinterpret_u8_p8, vreinterpret_u8_p16,
8459         vreinterpret_u8_f32, vreinterpret_u8_p64, vreinterpret_u8_s64,
8460         vreinterpret_u8_u64, vreinterpret_u8_s8, vreinterpret_u8_s16,
8461         vreinterpret_u8_s32, vreinterpret_u8_u16, vreinterpret_u8_u32,
8462         vreinterpret_u16_p8, vreinterpret_u16_p16, vreinterpret_u16_f32,
8463         vreinterpret_u16_p64, vreinterpret_u16_s64, vreinterpret_u16_u64,
8464         vreinterpret_u16_s8, vreinterpret_u16_s16, vreinterpret_u16_s32,
8465         vreinterpret_u16_u8, vreinterpret_u16_u32, vreinterpret_u32_p8,
8466         vreinterpret_u32_p16, vreinterpret_u32_f32, vreinterpret_u32_p64,
8467         vreinterpret_u32_s64, vreinterpret_u32_u64, vreinterpret_u32_s8,
8468         vreinterpret_u32_s16, vreinterpret_u32_s32, vreinterpret_u32_u8,
8469         vreinterpret_u32_u16, vreinterpretq_p8_p16, vreinterpretq_p8_f32,
8470         vreinterpretq_p8_p64, vreinterpretq_p8_p128, vreinterpretq_p8_s64,
8471         vreinterpretq_p8_u64, vreinterpretq_p8_s8, vreinterpretq_p8_s16,
8472         vreinterpretq_p8_s32, vreinterpretq_p8_u8, vreinterpretq_p8_u16,
8473         vreinterpretq_p8_u32, vreinterpretq_p16_p8, vreinterpretq_p16_f32,
8474         vreinterpretq_p16_p64, vreinterpretq_p16_p128, vreinterpretq_p16_s64,
8475         vreinterpretq_p16_u64, vreinterpretq_p16_s8, vreinterpretq_p16_s16,
8476         vreinterpretq_p16_s32, vreinterpretq_p16_u8, vreinterpretq_p16_u16,
8477         vreinterpretq_p16_u32, vreinterpretq_f32_p8, vreinterpretq_f32_p16,
8478         vreinterpretq_f32_p64, vreinterpretq_f32_p128, vreinterpretq_f32_s64,
8479         vreinterpretq_f32_u64, vreinterpretq_f32_s8, vreinterpretq_f32_s16,
8480         vreinterpretq_f32_s32, vreinterpretq_f32_u8, vreinterpretq_f32_u16,
8481         vreinterpretq_f32_u32, vreinterpretq_p64_p8, vreinterpretq_p64_p16,
8482         vreinterpretq_p64_f32, vreinterpretq_p64_p128, vreinterpretq_p64_s64,
8483         vreinterpretq_p64_u64, vreinterpretq_p64_s8, vreinterpretq_p64_s16,
8484         vreinterpretq_p64_s32, vreinterpretq_p64_u8, vreinterpretq_p64_u16,
8485         vreinterpretq_p64_u32, vreinterpretq_p128_p8, vreinterpretq_p128_p16,
8486         vreinterpretq_p128_f32, vreinterpretq_p128_p64, vreinterpretq_p128_s64,
8487         vreinterpretq_p128_u64, vreinterpretq_p128_s8, vreinterpretq_p128_s16,
8488         vreinterpretq_p128_s32, vreinterpretq_p128_u8, vreinterpretq_p128_u16,
8489         vreinterpretq_p128_u32, vreinterpretq_s64_p8, vreinterpretq_s64_p16,
8490         vreinterpretq_s64_f32, vreinterpretq_s64_p64, vreinterpretq_s64_p128,
8491         vreinterpretq_s64_u64, vreinterpretq_s64_s8, vreinterpretq_s64_s16,
8492         vreinterpretq_s64_s32, vreinterpretq_s64_u8, vreinterpretq_s64_u16,
8493         vreinterpretq_s64_u32, vreinterpretq_u64_p8, vreinterpretq_u64_p16,
8494         vreinterpretq_u64_f32, vreinterpretq_u64_p64, vreinterpretq_u64_p128,
8495         vreinterpretq_u64_s64, vreinterpretq_u64_s8, vreinterpretq_u64_s16,
8496         vreinterpretq_u64_s32, vreinterpretq_u64_u8, vreinterpretq_u64_u16,
8497         vreinterpretq_u64_u32, vreinterpretq_s8_p8, vreinterpretq_s8_p16,
8498         vreinterpretq_s8_f32, vreinterpretq_s8_p64, vreinterpretq_s8_p128,
8499         vreinterpretq_s8_s64, vreinterpretq_s8_u64, vreinterpretq_s8_s16,
8500         vreinterpretq_s8_s32, vreinterpretq_s8_u8, vreinterpretq_s8_u16,
8501         vreinterpretq_s8_u32, vreinterpretq_s16_p8, vreinterpretq_s16_p16,
8502         vreinterpretq_s16_f32, vreinterpretq_s16_p64, vreinterpretq_s16_p128,
8503         vreinterpretq_s16_s64, vreinterpretq_s16_u64, vreinterpretq_s16_s8,
8504         vreinterpretq_s16_s32, vreinterpretq_s16_u8, vreinterpretq_s16_u16,
8505         vreinterpretq_s16_u32, vreinterpretq_s32_p8, vreinterpretq_s32_p16,
8506         vreinterpretq_s32_f16, vreinterpretq_s32_f32, vreinterpretq_s32_p64,
8507         vreinterpretq_s32_p128, vreinterpretq_s32_s64, vreinterpretq_s32_u64,
8508         vreinterpretq_s32_s8, vreinterpretq_s32_s16, vreinterpretq_s32_u8,
8509         vreinterpretq_s32_u16, vreinterpretq_s32_u32, vreinterpretq_u8_p8,
8510         vreinterpretq_u8_p16, vreinterpretq_u8_f32, vreinterpretq_u8_p64,
8511         vreinterpretq_u8_p128, vreinterpretq_u8_s64, vreinterpretq_u8_u64,
8512         vreinterpretq_u8_s8, vreinterpretq_u8_s16, vreinterpretq_u8_s32,
8513         vreinterpretq_u8_u16, vreinterpretq_u8_u32, vreinterpretq_u16_p8,
8514         vreinterpretq_u16_p16, vreinterpretq_u16_f32, vreinterpretq_u16_p64,
8515         vreinterpretq_u16_p128, vreinterpretq_u16_s64, vreinterpretq_u16_u64,
8516         vreinterpretq_u16_s8, vreinterpretq_u16_s16, vreinterpretq_u16_s32,
8517         vreinterpretq_u16_u8, vreinterpretq_u16_u32, vreinterpretq_u32_p8,
8518         vreinterpretq_u32_p16, vreinterpretq_u32_f32, vreinterpretq_u32_p64,
8519         vreinterpretq_u32_p128, vreinterpretq_u32_s64, vreinterpretq_u32_u64,
8520         vreinterpretq_u32_s8, vreinterpretq_u32_s16, vreinterpretq_u32_s32,
8521         vreinterpretq_u32_u8, vreinterpretq_u32_u16): Rewrite using casts.
8522
8523 2016-02-04  Martin Liska  <mliska@suse.cz>
8524
8525         PR sanitizer/69276
8526         * asan.c (has_stmt_been_instrumented_p): Instrument gimple calls
8527         that are gimple_store_p.
8528         (maybe_instrument_call): Likewise.
8529
8530 2016-02-04  Bin Cheng  <bin.cheng@arm.com>
8531
8532         * config/aarch64/aarch64.c (aarch64_legitimize_address): Force
8533         register scaling out of memory reference and comment why.
8534
8535 2016-02-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8536
8537         PR target/65932
8538         PR target/67714
8539         * cse.c (cse_insn): Pass NULL to fold_rtx when initially
8540         folding the source of a SET.
8541
8542 2016-02-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8543
8544         PR target/65932
8545         PR target/67714
8546         * config/arm/arm.c (arm_new_rtx_costs, MULT case): Properly extract
8547         the operands of the SIGN_EXTENDs from a SMUL[TB][TB] rtx.
8548
8549 2016-02-04  Jim Wilson  <jim.wilson@linaro.org>
8550
8551         PR target/65932
8552         PR target/67714
8553         * config/arm/arm.h (PROMOTE_MODE): Don't set UNSIGNEDP for QImode and
8554         HImode.
8555
8556 2016-02-04  Christian Bruel  <christian.bruel@st.com>
8557
8558         * config/arm/arm-c.c (arm_reset_previous_fndecl): Style fix and typo.
8559         * config/arm/arm.c (arm_set_current_function): Likewise.
8560
8561 2016-02-04  Jakub Jelinek  <jakub@redhat.com>
8562             Ilya Enkovich  <enkovich.gnu@gmail.com>
8563             H.J. Lu  <hongjiu.lu@intel.com>
8564
8565         PR target/69454
8566         * config/i386/i386.c (convert_scalars_to_vector): Remove
8567         stack alignment fixes.
8568         (ix86_option_override_internal): Disable TARGET_STV if stack
8569         might not be aligned enough.
8570         (ix86_minimum_alignment): Assert that TARGET_STV is false.
8571
8572 2016-02-04  Victoria Stepanyan  <victoria.stepanyan@amd.com>
8573
8574         * gcc/config/i386/x86-tune.def: Disable default prefetching
8575         for -march=znver1.
8576
8577 2016-02-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
8578             Vladimir Makarov  <vmakarov@redhat.com>
8579
8580         PR target/69461
8581         * config/rs6000/rs6000.c (rs6000_legitimate_address_p): Fix thinko
8582         in validating fused toc addresses.
8583
8584 2016-02-03  Jakub Jelinek  <jakub@redhat.com>
8585
8586         PR c/69627
8587         * diagnostic-show-locus.c (layout::get_state_at_point): Don't read
8588         range->m_caret fields if range->m_show_caret_p is false.
8589
8590         PR target/69644
8591         * config/rs6000/rs6000.c (rs6000_expand_atomic_compare_and_swap):
8592         Force oldval into register if it does not satisfy reg_or_short_operand
8593         predicate.  Fix up formatting.
8594
8595 2016-02-03  Vladimir Makarov  <vmakarov@redhat.com>
8596             Alexandre Oliva  <aoliva@redhat.com>
8597
8598         PR target/69461
8599         * lra-constraints.c (simplify_operand_subreg): Check additionally
8600         address validity after potential reloading.
8601         (process_address_1): Check insns validity.  In case of failure do
8602         nothing.
8603
8604 2016-02-03  Kirill Yukhin  <kirill.yukhin@intel.com>
8605
8606         PR target/69118
8607         * config/i386/sse.md (define_insn "avx512f_maskcmp<mode>3"):
8608         Fix target.
8609
8610 2016-02-02  Jakub Jelinek  <jakub@redhat.com>
8611
8612         * wide-int.cc (canonize_uhwi): New function.
8613         (wi::divmod_internal): Use it.
8614
8615 2016-02-02  James Norris  <jnorris@codesourcery.com
8616
8617         * gimplify.c (omp_notice_variable): Add usage check.
8618
8619 2016-02-02  Alexander Monakov  <amonakov@ispras.ru>
8620
8621         * config/nvptx/nvptx.c (nvptx_print_operand): Treat LEU, GEU, LTU, GTU
8622         like LE, GE, LT, GT when emitting relational operator.
8623
8624 2016-02-02  Wilco Dijkstra  <wdijkstr@arm.com>
8625
8626         * ira-costs.c (find_costs_and_classes): Add extra argument.
8627         * target.def (ira_change_pseudo_allocno_class): Add parameter.
8628         * targhooks.h (ira_change_pseudo_allocno_class): Likewise.
8629         * targhooks.c (ira_change_pseudo_allocno_class): Likewise.
8630         * config/aarch64/aarch64.c (aarch64_ira_change_pseudo_allocno_class)
8631         Add best_class parameter, and return it if not ALL_REGS.
8632         * config/mips/mips.c (mips_ira_change_pseudo_allocno_class):
8633         Add parameter.
8634         * doc/tm.texi (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS):
8635         Update target hook.
8636
8637 2016-02-02  Wilco Dijkstra  <wdijkstr@arm.com>
8638
8639         * config/aarch64/aarch64.c
8640         (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS): New define.
8641         (aarch64_ira_change_pseudo_allocno_class): New function.
8642
8643 2016-02-02  Uros Bizjak  <ubizjak@gmail.com>
8644
8645         PR target/67032
8646         * config/i386/i386.c (geode_cost): Increase cost of MMX and SSE moves.
8647
8648 2016-02-02  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
8649
8650         * config/avr/avr.c (avr_option_override): Set
8651         PARAM_ALLOW_STORE_DATA_RACES to 1.
8652
8653 2016-02-02  Richard Biener  <rguenther@suse.de>
8654
8655         PR tree-optimization/69595
8656         * match.pd: Add range test simplifications to true/false.
8657
8658 2016-02-02  Thomas Schwinge  <thomas@codesourcery.com>
8659
8660         * omp-builtins.def (BUILT_IN_GOACC_HOST_DATA): Remove.
8661         * omp-low.c (expand_omp_target): Use BUILT_IN_GOACC_DATA_START
8662         instead.
8663
8664 2016-02-02  Richard Biener  <rguenther@suse.de>
8665
8666         PR tree-optimization/69606
8667         * tree-ssa-math-opts.c (bswap_replace): Clear flow sensitive
8668         info on the result before moving a stmt.
8669
8670 2016-02-02  Yuri Rumyantsev  <ysrumyan@gmail.com>
8671
8672         PR middle-end/68542
8673         * config/i386/i386.c (ix86_expand_branch): Add support for conditional
8674         branch with vector comparison.
8675         * config/i386/sse.md (VI48_AVX): New mode iterator.
8676         (define_expand "cbranch<mode>4): Add support for conditional branch
8677         with vector comparison.
8678         * tree-vect-loop.c (optimize_mask_stores): New function.
8679         * tree-vect-stmts.c (vectorizable_mask_load_store): Initialize
8680         has_mask_store field of vect_info.
8681         * tree-vectorizer.c (vectorize_loops): Invoke optimaze_mask_stores for
8682         vectorized loops having masked stores after vec_info destroy.
8683         * tree-vectorizer.h (loop_vec_info): Add new has_mask_store field and
8684         correspondent macros.
8685         (optimize_mask_stores): Add prototype.
8686
8687 2016-02-02  Alan Modra  <amodra@gmail.com>
8688
8689         PR target/69548
8690         * config/rs6000/predicates.md (quad_int_reg_operand): Don't
8691         allow subregs.
8692
8693 2016-02-02  Alan Modra  <amodra@gmail.com>
8694
8695         PR target/68662
8696         * config/rs6000/rs6000.c (need_toc_init): New var, set it
8697         whenever toc_label_name used.
8698         (rs6000_file_start): Don't set up toc section here,
8699         (rs6000_output_function_epilogue): do so here instead,
8700         (rs6000_xcoff_file_start): and here.
8701         * config/rs6000/rs6000.md (load_toc_aix_si): Set need_toc_init.
8702         (load_toc_aix_di): Likewise.
8703
8704 2016-02-01  Jakub Jelinek  <jakub@redhat.com>
8705
8706         PR rtl-optimization/69592
8707         * rtlanal.c (nonzero_bits_binary_arith_p): New inline function.
8708         (cached_nonzero_bits): Use it instead of ARITHMETIC_P.
8709         (num_sign_bit_copies_binary_arith_p): New inline function.
8710         (cached_num_sign_bit_copies): Use it instead of ARITHMETIC_P.
8711
8712 2016-02-01  Jeff Law  <law@redhat.com>
8713
8714         PR tree-optimization/69580
8715         * params.def (FSM_MAXIMUM_PHI_ARGUMENTS): New param.
8716         * tree-ssa-threadbackward.c
8717         (fsm_find_control_statement_thread_paths): Do not try to walk
8718         through large PHI nodes.
8719
8720 2016-02-01  Jakub Jelinek  <jakub@redhat.com>
8721
8722         * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Return false
8723         when count is incremented above limit, don't analyze further
8724         insns afterwards.
8725
8726         * omp-low.c (oacc_parse_default_dims): Avoid
8727         -Wsign-compare warning, make sure value fits into int
8728         rather than just unsigned int.
8729
8730 2016-02-01  Bin Cheng  <bin.cheng@arm.com>
8731
8732         PR tree-optimization/67921
8733         * fold-const.c (split_tree): New parameters.  Convert pointer
8734         type variable part to proper type before negating.
8735         (fold_binary_loc): Pass new arguments to split_tree.
8736
8737 2016-02-01  Nathan Sidwell  <nathan@codesourcery.com>
8738
8739         * config/nvptx/nvptx.c (PTX_GANG_DEFAULT): New.
8740         (nvptx_goacc_validate_dims): Extend to handle global defaults.
8741         * target.def (OACC_VALIDATE_DIMS): Extend documentation.
8742         * doc/tm.texti: Rebuilt.
8743         * doc/invoke.texi (fopenacc-dim): Document.
8744         * lto-wrapper.c (merge_and_complain): Add OPT_fopenacc_dim_ case.
8745         (append_compiler_options): Likewise.
8746         * omp-low.c (oacc_default_dims, oacc_min_dims): New.
8747         (oacc_parse_default_dims): New.
8748         (oacc_validate_dims): Add USED arg.  Select non-unity default when
8749         possible.
8750         (oacc_loop_fixed_partitions): Return mask of used partitions.
8751         (oacc_loop_auto_partitions): Emit dump info.
8752         (oacc_loop_partition): Return mask of used partitions.
8753         (execute_oacc_device_lower): Parse default dimension arg.  Adjust
8754         loop partitioning and validation calls.
8755
8756 2016-02-01  Richard Biener  <rguenther@suse.de>
8757
8758         PR middle-end/69556
8759         * match.pd: Guard (C1/X)*C2 -> (C1*C2)/X with single_use.
8760
8761 2016-02-01  Richard Biener  <rguenther@suse.de>
8762
8763         PR tree-optimization/69574
8764         * tree-chrec.c (hide_evolution_in_other_loops_than_loop): Instead
8765         of asserting return chrec_dont_know.
8766
8767 2016-02-01  Martin Liska  <mliska@suse.cz>
8768
8769         * mem-stats-traits.h: Add copyright header.
8770         * mem-stats.h: Likewise.
8771
8772 2016-02-01  Richard Biener  <rguenther@suse.de>
8773
8774         PR tree-optimization/69579
8775         * tree-ssa-loop-ivcanon.c (propagate_constants_for_unrolling):
8776         Do not propagate through abnormal PHI results.
8777
8778 2016-02-01  Eric Botcazou  <ebotcazou@adacore.com>
8779
8780         * postreload.c (reload_cse_simplify): Remove dead code.
8781
8782 2016-02-01  Jakub Jelinek  <jakub@redhat.com>
8783
8784         PR rtl-optimization/69570
8785         * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Return true only
8786         if there is more than one set, not if there is a single set.
8787
8788 2016-02-01  Richard Henderson  <rth@redhat.com>
8789
8790         PR rtl-opt/69535
8791         * combine.c (make_compound_operation): When looking through a
8792         subreg, make sure to re-extend to the width of the outer mode.
8793
8794 2016-01-30  Jakub Jelinek  <jakub@redhat.com>
8795
8796         PR tree-optimization/69546
8797         * wide-int.cc (wi::divmod_internal): For unsigned division
8798         where both operands fit into uhwi, if o1 is 1 and o0 has
8799         msb set, if divident_prec is larger than bits per hwi,
8800         clear another quotient word and return 2 instead of 1.
8801         Similarly for remainder with msb in HWI set, if dividend_prec
8802         is larger than bits per hwi.
8803
8804 2016-01-29  Martin Jambor  <mjambor@suse.cz>
8805
8806         * hsa-gen.c (get_memory_order_name): Mask with MEMMODEL_BASE_MASK.
8807         Use short lowercase names.
8808         (get_memory_order): Mask with MEMMODEL_BASE_MASK.  Support
8809         MEMMODEL_CONSUME with acquire semantics and MEMMODEL_SEQ_CST with
8810         acq_rel one.  Protect warning agains segfaults if
8811         get_memory_order_name returns NULL.
8812         (gen_hsa_ternary_atomic_for_builtin): Support with MEMMODEL_SEQ_CST
8813         with release semantics.  Do not warn if get_memory_order already did.
8814         (gen_hsa_insns_for_call): Support with MEMMODEL_SEQ_CST with acquire
8815         semantics.  Fix check for relaxed or acquire semantics.  Do not warn
8816         if get_memory_order already did.
8817
8818 2016-01-29  Sebastian Pop  <s.pop@samsung.com>
8819
8820         * doc/install.texi: Document that isl-0.16 is supported.
8821
8822 2016-01-29  Vladimir Makarov  <vmakarov@redhat.com>
8823
8824         PR target/69299
8825         * config/i386/constraints.md (Bm): Describe as special memory
8826         constraint.
8827         * doc/md.texi (DEFINE_SPECIAL_MEMORY_CONSTRAINT): Describe it.
8828         * genoutput.c (main): Process DEFINE_SPECIAL_MEMORY_CONSTRAINT.
8829         * genpreds.c (struct constraint_data): Add is_special_memory.
8830         (have_special_memory_constraints, special_memory_start): New
8831         static vars.
8832         (special_memory_end): Ditto.
8833         (add_constraint): Add new arg is_special_memory.  Add code to
8834         process its true value.  Update have_special_memory_constraints.
8835         (process_define_constraint): Pass the new arg.
8836         (process_define_register_constraint): Ditto.
8837         (choose_enum_order): Process special memory.
8838         (write_tm_preds_h): Generate enum const CT_SPECIAL_MEMORY and
8839         function insn_extra_special_memory_constraint.
8840         (main): Process DEFINE_SPECIAL_MEMORY_CONSTRAINT.
8841         * gensupport.c (process_rtx): Process
8842         DEFINE_SPECIAL_MEMORY_CONSTRAINT.
8843         * ira-costs.c (record_reg_classes): Process CT_SPECIAL_MEMORY.
8844         * ira-lives.c (single_reg_class): Use
8845         insn_extra_special_memory_constraint.
8846         * ira.c (ira_setup_alts): Process CT_SPECIAL_MEMORY.
8847         * lra-constraints.c (process_alt_operands): Ditto.
8848         (curr_insn_transform): Use insn_extra_special_memory_constraint.
8849         * recog.c (asm_operand_ok, preprocess_constraints): Process
8850         CT_SPECIAL_MEMORY.
8851         * reload.c (find_reloads): Ditto.
8852         * rtl.def (DEFINE_SPECIFAL_MEMORY_CONSTRAINT): New.
8853         * stmt.c (parse_input_constraint): Use
8854         insn_extra_special_memory_constraint.
8855
8856 2016-01-29  H.J. Lu  <hongjiu.lu@intel.com>
8857
8858         PR target/69530
8859         * lra-splill.c (lra_final_code_change): Revert r229087 by
8860         removing all sub-registers.
8861
8862 2016-01-29  Steve Ellcey  <sellcey@imgtec.com>
8863
8864         PR target/65604
8865         * config/mips/mips.c (mips_output_division): Check flag_delayed_branch.
8866
8867 2016-01-29  Jakub Jelinek  <jakub@redhat.com>
8868
8869         PR target/69551
8870         * config/i386/i386.c (ix86_expand_vector_set) <case V4SImode>: For
8871         SSE1, copy target into the temporary reg first before recursing
8872         on it.
8873
8874 2016-01-29  H.J. Lu  <hongjiu.lu@intel.com>
8875
8876         * config/i386/sse.md (sse2_cvtps2pd<mask_name>): Replace vBm
8877         with vm.
8878
8879 2016-01-29  Jonathan Wakely  <jwakely@redhat.com>
8880
8881         * ginclude/stdarg.h: Test __cplusplus instead of
8882         __GXX_EXPERIMENTAL_CXX0X__.
8883
8884 2016-01-29  Richard Biener  <rguenther@suse.de>
8885
8886         PR tree-optimization/69547
8887         * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1):
8888         Do not mark clobbers necessary.
8889         (mark_all_reaching_defs_necessary_1): Likewise.
8890
8891 2016-01-29  Dominik Vogt  <vogt@linux.vnet.ibm.com>
8892
8893         * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Format
8894         declaration name with %qs and print it in both error messages.
8895         Also fix indentation.
8896
8897 2016-01-29  Dominik Vogt  <vogt@linux.vnet.ibm.com>
8898
8899         PR other/69006
8900         * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Remove
8901         trailing blank line from error message.
8902
8903 2016-01-29  Jonathan Wakely  <jwakely@redhat.com>
8904
8905         PR c++/69462
8906         * ginclude/float.h: Also provide FLT_EVAL_METHOD and DECIMAL_DIG
8907         for C++-11.
8908
8909 2016-01-29  Richard Biener  <rguenther@suse.de>
8910
8911         PR middle-end/69537
8912         * match.pd: Allow all integral types when simplifying a
8913         widening or sign-changing conversion.
8914
8915 2016-01-28  Sebastian Pop  <s.pop@samsung.com>
8916
8917         * graphite-isl-ast-to-gimple.c (get_rename_from_scev): Revert assert
8918         back to setting codegen_error to fail codegen.
8919
8920 2016-01-28  Uros Bizjak  <ubizjak@gmail.com>
8921
8922         PR target/69459
8923         * config/i386/constraints.md (C): Only accept constant zero operand.
8924         (BC): New constraint.
8925         * config/i386/sse.md (*mov<mode>_internal): Use BC constraint
8926         instead of C constraint.
8927         * doc/md.texi (Machine Constraints): Update description
8928         of C constraint.
8929
8930 2016-01-28  Steve Ellcey  <sellcey@imgtec.com>
8931
8932         PR target/68400
8933         * config/mips/mips.c (and_operands_ok): Add MIPS16 check.
8934
8935 2016-01-28  Jakub Jelinek  <jakub@redhat.com>
8936
8937         PR middle-end/69542
8938         * lra-remat.c (calculate_local_reg_remat_bb_data): Only consider
8939         non-debug insns.
8940
8941 2016-01-28  Pat Haugen  <pthaugen@us.ibm.com>
8942
8943         * config/rs6000/rs6000.c (output_cbranch): Don't statically predict
8944         branches if using guessed profile.
8945
8946 2016-01-28  H.J. Lu  <hongjiu.lu@intel.com>
8947
8948         * graphite-optimize-isl.c (optimize_isl): Fix dump.
8949
8950 2016-01-28  Richard Henderson  <rth@redhat.com>
8951
8952         PR target/69305
8953         * config/aarch64/aarch64-modes.def (CC_Cmode): New
8954         * config/aarch64/aarch64-protos.h: Update.
8955         * config/aarch64/aarch64.c (aarch64_zero_extend_const_eq): New.
8956         (aarch64_select_cc_mode): Add check for use of CC_Cmode.
8957         (aarch64_get_condition_code_1): Handle CC_Cmode.
8958         * config/aarch64/aarch64.md (addti3): Use adddi3_compareC.
8959         (*add<mode>3_compareC_cconly_imm): New.
8960         (*add<mode>3_compareC_cconly): New.
8961         (*add<mode>3_compareC_imm): New.
8962         (add<mode>3_compareC): New.
8963         (add<mode>3_carryin, *addsi3_carryin_uxtw): Sort compare operand
8964         to be first.  Use aarch64_carry_operation.
8965         (*add<mode>3_carryin_alt1, *addsi3_carryin_alt1_uxtw): Remove.
8966         (*add<mode>3_carryin_alt2, *addsi3_carryin_alt2_uxtw): Remove.
8967         (*add<mode>3_carryin_alt3, *addsi3_carryin_alt3_uxtw): Remove.
8968         (subti3): Use subdi3_compare1.
8969         (*sub<mode>3_compare0): Rename from sub<mode>3_compare0.
8970         (sub<mode>3_compare1): New.
8971         (*sub<mode>3_carryin0, *subsi3_carryin_uxtw): New.
8972         (*sub<mode>3_carryin): Use aarch64_borrow_operation.
8973         (*subsi3_carryin_uxtw): Likewise.
8974         (*ngc<mode>, *ngcsi_uxtw): Likewise.
8975         (*sub<mode>3_carryin_alt, *subsi3_carryin_alt_uxtw): New.
8976         * config/aarch64/iterators.md (DWI): New.
8977         * config/aarch64/predicates.md (aarch64_carry_operation): New.
8978         (aarch64_borrow_operation): New.
8979
8980 2016-01-28  Abderrazek Zaafrani  <a.zaafrani@samsung.com>
8981
8982         * graphite-optimize-isl.c (optimize_isl): Print a different debug
8983         message when isl does not return a valid schedule.
8984
8985 2016-01-28  Sebastian Pop  <s.pop@samsung.com>
8986
8987         * graphite-isl-ast-to-gimple.c (class translate_isl_ast_to_gimple):
8988         Remove comments from class declarations: they are already in the code
8989         close by the defs.
8990
8991 2016-01-28  Sebastian Pop  <s.pop@samsung.com>
8992
8993         * graphite-isl-ast-to-gimple.c (binary_op_to_tree): Call
8994         codegen_error_p.
8995         (ternary_op_to_tree): Same.
8996         (unary_op_to_tree): Same.
8997         (nary_op_to_tree): Same.
8998         (gcc_expression_from_isl_expr_op): Same.
8999         (gcc_expression_from_isl_expression): Same.
9000         (graphite_create_new_loop): Same.
9001         (graphite_create_new_loop_guard): Same.
9002         (build_iv_mapping): Same.
9003         (graphite_create_new_guard): Same.
9004         (translate_isl_ast_to_gimple::copy_loop_phi_nodes): Same.
9005         (translate_isl_ast_to_gimple::translate_pending_phi_nodes): Same.
9006
9007 2016-01-28  Sebastian Pop  <s.pop@samsung.com>
9008
9009         * graphite-isl-ast-to-gimple.c (get_rename_from_scev): Assert
9010         instead of setting codegen_error to fail codegen.
9011
9012 2016-01-28  Jason Merrill  <jason@redhat.com>
9013
9014         * tree.h (BINFO_FLAG_0): Rename from BINFO_MARKED.
9015
9016 2016-01-28  Wilco Dijkstra  <wdijkstr@arm.com>
9017
9018         * config/aarch64/aarch64.c (aarch64_if_then_else_costs):
9019         Remove CONST_INT_P check in CCMP cost calculation.
9020
9021 2016-01-28  Wilco Dijkstra  <wdijkstr@arm.com>
9022
9023         * config/aarch64/aarch64.c (generic_vector_cost):
9024         Set vec_permute_cost.
9025         (cortexa57_vector_cost): Likewise.
9026         (exynosm1_vector_cost): Likewise.
9027         (xgene1_vector_cost): Likewise.
9028         (aarch64_builtin_vectorization_cost): Use vec_permute_cost.
9029         * config/aarch64/aarch64-protos.h (cpu_vector_cost):
9030         Add vec_permute_cost entry.
9031
9032 2016-01-28  Wilco Dijkstra  <wdijkstr@arm.com>
9033
9034         * config/aarch64/aarch64.md (ccmp<mode>): Disassemble
9035         immediate as %1.
9036         (add<mode>3_compare0): Likewise.
9037         (addsi3_compare0_uxtw): Likewise.
9038         (add<mode>3nr_compare0): Likewise.
9039         (compare_neg<mode>): Likewise.
9040         (<optab><mode>3): Likewise.
9041
9042 2016-01-28  Ilya Enkovich  <enkovich.gnu@gmail.com>
9043
9044         * tree-vect-stmts.c (vectorizable_comparison): Add
9045         NULL check for vectype.
9046
9047 2016-01-28  Richard Biener  <rguenther@suse.de>
9048
9049         PR tree-optimization/69466
9050         * tree-vect-loop-manip.c (slpeel_duplicate_current_defs_from_edges):
9051         Account for PHIs we couldn't duplicate.
9052
9053 2016-01-28  Martin Liska  <mliska@suse.cz>
9054
9055         PR pch/68758
9056         * ggc-common.c (gt_pch_save): Use ENABLE_VALGRIND_ANNOTATIONS macro
9057         instead of ENABLE_VALGRIND_CHECKING.
9058
9059 2016-01-27  Richard Henderson  <rth@redhat.com>
9060
9061         PR rtl-opt/69447
9062         * lra-remat.c (subreg_regs): New.
9063         (dump_candidates_and_remat_bb_data): Dump it.
9064         (operand_to_remat): Reject if operand in subreg_regs.
9065         (set_bb_regs): Collect subreg_regs.
9066         (lra_remat): Init and free subreg_regs.  Compute
9067         calculate_local_reg_remat_bb_data before create_cands.
9068
9069 2016-01-27  H.J. Lu  <hongjiu.lu@intel.com>
9070
9071         PR target/68986
9072         * config/i386/i386.c (ix86_update_stack_boundary): Don't
9073         change stack_alignment_needed for __tls_get_addr call.
9074
9075 2016-01-27  Segher Boessenkool  <segher@kernel.crashing.org>
9076
9077         * config/rs6000/rs6000.c (print_operand): Rollback 's' removal.
9078
9079 2016-01-27  Jeff Law  <law@redhat.com>
9080
9081         PR tree-optimization/68398
9082         PR tree-optimization/69196
9083         * params.def (PARAM_FSM_SCALE_PATH_STMTS): New parameter.
9084         (PARAM_FSM_SCALE_PATH_BLOCKS): Likewise.
9085         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
9086         Only count PHIs in the last block in the path.  The others will
9087         const/copy propagate away.  Add heuristic to allow more irreducible
9088         subloops to be created when it is likely profitable to do so.
9089
9090         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
9091         Fix typo in comment.  Use gsi_after_labels and remove the GIMPLE_LABEL
9092         check from within the loop.  Use gsi_next_nondebug rather than gsi_next.
9093
9094 2016-01-27  Jakub Jelinek  <jakub@redhat.com>
9095
9096         PR lto/69254
9097         * sanitizer.def: Add BEGIN_SANITIZER_BUILTINS and
9098         END_SANITIZER_BUILTINS markers using DEF_BUILTIN_STUB.
9099         * asan.c (DEF_BUILTIN_STUB): Temporarily define.
9100         * tree-streamer-in.c: Include asan.h.
9101         (streamer_get_builtin_tree): For builtins in sanitizer
9102         range call initialize_sanitizer_builtins and retry.
9103
9104 2016-01-27  Ian Lance Taylor  <iant@google.com>
9105
9106         * common.opt (fkeep-gc-roots-live): New undocumented option.
9107         * tree-ssa-loop-ivopts.c (add_candidate_1): If
9108         -fkeep-gc-roots-live, skip pointers.
9109         (add_iv_candidate_for_biv): Handle add_candidate_1 returning
9110         NULL.
9111
9112 2016-01-27  Uros Bizjak  <ubizjak@gmail.com>
9113
9114         PR target/69512
9115         * config/i386/i386.md (*zext<mode>_doubleword_and): New pattern.
9116         (*zext<mode>_doubleword): Disable for TARGET_ZERO_EXTEND_WITH_AND.
9117
9118 2016-01-27  Thomas Klausner  <wiz@NetBSD.org>
9119
9120         PR target/68380
9121         * configure.ac: NetBSD provides SSP in its C library.
9122         * configure: Updated.
9123
9124 2016-01-27  Richard Biener  <rguenther@suse.de>
9125
9126         PR tree-optimization/69166
9127         * tree-vect-loop.c (vect_is_simple_reduction): Always check
9128         reduction code for commutativity / associativity.
9129
9130 2016-01-27  Martin Jambor  <mjambor@suse.cz>
9131
9132         PR tree-optimization/69355
9133         * tree-sra.c (analyze_access_subtree): Correct hole detection when
9134         total_scalarization fails.
9135
9136 2016-01-27  David Edelsohn  <dje.gcc@gmail.com>
9137
9138         * config/rs6000/driver-rs6000.c (detect_processor_aix): Add
9139         power9.
9140
9141 2016-01-27  Christian Bruel  <christian.bruel@st.com>
9142
9143         PR target/69245
9144         * config/arm/arm-c.c (arm_pragma_target_parse): Add comments.
9145         Move arm_reset_previous_fndecl and set_target_option_current_node in
9146         the conditional part.  Call save_restore_target_globals.
9147         * config/arm/arm.c (arm_set_current_function):
9148         Refactor to better support #pragma target and attribute mix.
9149         Call save_restore_target_globals.
9150         * config/arm/arm-protos.h (save_restore_target_globals): New function.
9151
9152 2016-01-27  Martin Liska  <mliska@suse.cz>
9153
9154         * hsa.c (hsa_summary_t::link_functions): Create IPA_REF_ADDR
9155         reference for an HSA kernel and its host function.
9156
9157 2016-01-27  Jakub Jelinek  <jakub@redhat.com>
9158
9159         PR tree-optimization/69399
9160         * wide-int.h (wi::lrshift): For larger precisions, only
9161         use fast path if shift is known to be < HOST_BITS_PER_WIDE_INT.
9162
9163 2016-01-27  Claudiu Zissulescu  <claziss@synopsys.com>
9164
9165         * config/arc/predicates.md (proper_comparison_operator): Reject
9166         constant-constant comparison.
9167
9168 2016-01-26  Tom de Vries  <tom@codesourcery.com>
9169
9170         PR tree-optimization/69110
9171         * tree-data-ref.c (initialize_data_dependence_relation): Handle
9172         DR_NUM_DIMENSIONS == 0.
9173
9174 2016-01-26  Abderrazek Zaafrani  <a.zaafrani@samsung.com>
9175             Sebastian Pop  <s.pop@samsung.com>
9176
9177         * graphite-isl-ast-to-gimple.c (ternary_op_to_tree): Handle
9178         isl_ast_op_cond and isl_ast_op_select.
9179         (gcc_expression_from_isl_expr_op): Same.
9180
9181 2016-01-26  Jason Merrill  <jason@redhat.com>
9182
9183         PR c++/68782
9184         * tree.c (recompute_constructor_flags): Split out from
9185         build_constructor.
9186         (verify_constructor_flags): New.
9187         * tree.h: Declare them.
9188
9189 2016-01-26  Iain Buclaw  <ibuclaw@gdcproject.org>
9190
9191         PR rtl-optimization/69217
9192         * var-tracking.c (tracked_record_parameter_p): Don't segfault if there
9193         are no TYPE_FIELDS set for the record type.
9194
9195 2016-01-26  Jakub Jelinek  <jakub@redhat.com>
9196
9197         PR target/68662
9198         * config/rs6000/rs6000.c (rs6000_option_override_internal): Initialize
9199         toc_label_name unconditionally.
9200         (rs6000_emit_load_toc_table): Call ggc_strdup on toc_label_name for
9201         SYMBOL_REF string.  Use toc_label_name instead of constructing
9202         LCTOC1.
9203         (rs6000_elf_declare_function_name): Use toc_label_name instead of
9204         constructing LCTOC1.
9205
9206 2016-01-26  Martin Sebor  <msebor@redhat.com>
9207
9208         PR other/69477
9209         * doc/extend.texi (Common Type Attributes): Move text that talks about
9210         attribute packed from attribute aligned to the section discussing
9211         the former attribute for clarity.
9212
9213 2016-01-26  Richard Henderson  <rth@redhat.com>
9214
9215         PR middle-end/60908
9216         * trans-mem.c (tm_region_init): Mark entry block as visited.
9217
9218 2016-01-26  David Malcolm  <dmalcolm@redhat.com>
9219
9220         PR other/69006
9221         * diagnostic-show-locus.c (layout::print_source_line): Replace
9222         call to pp_newline with call to layout::print_newline.
9223         (layout::print_annotation_line): Likewise.
9224         (layout::move_to_column): Likewise.
9225         (layout::print_any_fixits): After printing any fixits, print a
9226         trailing newline, if necessary.
9227         (layout::print_newline): New method, resetting any colorization
9228         before a newline.
9229         (diagnostic_show_locus): Move the pp_newline to before the
9230         early bailout.  Remove dummy block enclosing the layout instance.
9231         * diagnostic.c (default_diagnostic_finalizer): Replace invocation
9232         of pp_newline_and_flush with pp_flush.
9233         (diagnostic_append_note): Delete use of pp_newline.
9234         (diagnostic_append_note_at_rich_loc): Delete.
9235         * diagnostic.h (diagnostic_append_note_at_rich_loc): Delete.
9236         * pretty-print.h (output_buffer_append_r): Reset buff->line_length
9237         when newline characters are added to the buffer.
9238
9239 2016-01-26  Michael Matz  <matz@suse.de>
9240
9241         * configure.ac (ac_cv_std_swap_in_utility): New test.
9242         * system.h (<algorithm>): Check HAVE_SWAP_IN_UTILITY as well.
9243         * configure: Regenerate.
9244         * config.in: Regenerate.
9245
9246 2016-01-26  Claudiu Zissulescu  <claziss@synopsys.com>
9247
9248         * config/arc/arc.md (cstoresi4): Force operand into register.
9249         (arcset<code>): Fix predicate.
9250         (arcsetltu): Likewise.
9251         (arcsetgeu): Likewise.
9252         (arcsethi): Likewise.
9253         (arcsetls): Likewise.
9254
9255 2016-01-26  Jakub Jelinek  <jakub@redhat.com>
9256
9257         PR tree-optimization/69483
9258         * gimple-fold.c (canonicalize_constructor_val): Return NULL
9259         if base has error_mark_node type.
9260
9261 2016-01-26  Christophe Lyon  <christophe.lyon@linaro.org>
9262
9263         PR target/68620
9264         * config/arm/arm.c (neon_valid_immediate): Handle FP16 vectors.
9265         * config/arm/arm_neon.h (__ARM_NUM_LANES, __arm_lane, arm_lanq):
9266         New helper macros.
9267         (vget_lane_f16): Handle big-endian.
9268         (vgetq_lane_f16): Likewise.
9269         (vset_lane_f16): Likewise.
9270         (vsetq_lane_f16): Likewise.
9271         * config/arm/iterators.md (VQXMOV): Add V8HF.
9272         (VDQ): Add V4HF and V8HF.
9273         (V_reg): Handle V4HF and V8HF.
9274         (Is_float_mode): Likewise.
9275         * config/arm/neon.md (movv4hf, movv8hf, neon_vdup_nv4hf,
9276         neon_vdup_nv8hf): New patterns.
9277         (vec_set<mode>_internal, vec_extract<mode>, neon_vld1_dup<mode>):
9278         Use VD_LANE iterator.
9279         (neon_vld1_dup<mode>): Use VQ2 iterator.
9280
9281 2016-01-26  Nathan Sidwell  <nathan@acm.org>
9282
9283         * omp-low.h (oacc_fn_attrib_kernels_p): Declare.
9284         (set_oacc_fn_attrib): Add IS_KERNEL arg.
9285         * omp-low.c (set_oacc_fn_attrib): Add IS_KERNEL arg.
9286         (oacc_fn_attrib_kernels_p, oacc_fn_attrib_level): New.
9287         (expand_omp_target): Pass is_kernel to set_oacc_fn_attrib.
9288         (oacc_validate_dims): Add LEVEL arg, don't return level.
9289         (new_oacc_loop_routine): Use oacc_fn_attrib_level, not
9290         oacc_validate_dims.
9291         (execute_oacc_device_lower): Adjust, add more dump output.
9292         * tree-ssa-loop.c (gate_oacc_kernels): Use
9293         oacc_fn_attrib_kernels_p.
9294         * tree-parloops.c (create_parallel_loop): Adjust
9295         set_oacc_fn_attrib call.
9296
9297 2016-01-26  Jakub Jelinek  <jakub@redhat.com>
9298
9299         PR lto/69254
9300         * lto-wrapper.c (merge_and_complain): Handle -fcilkplus.
9301         (append_compiler_options): Handle -fcilkplus.
9302         (append_linker_options): Ignore -fno-{openmp,openacc,cilkplus}.
9303
9304 2016-01-26  Nick Clifton  <nickc@redhat.com>
9305
9306         PR target/66655
9307         * config/i386/winnt.c (i386_pe_binds_local_p): If a function has
9308         been marked as DECL_ONE_ONLY but we do not the means to make it
9309         so, then do not allow it to bind locally.
9310
9311 2016-01-26  Jakub Jelinek  <jakub@redhat.com>
9312
9313         PR lto/69254
9314         * opts.h (parse_sanitizer_options): New prototype.
9315         * opts.c (sanitizer_opts): New array.
9316         (parse_sanitizer_options): New function.
9317         (common_handle_option): Use parse_sanitizer_options.
9318
9319 2016-01-26  H.J. Lu  <hongjiu.lu@intel.com>
9320
9321         PR target/68986
9322         * config/i386/i386.c (ix86_compute_frame_layout): Move stack
9323         alignment adjustment to ...
9324         (ix86_update_stack_boundary): Here.  Don't over-align stack for
9325         __tls_get_addr.
9326         (ix86_finalize_stack_realign_flags): Use stack_alignment_needed
9327         if __tls_get_addr is called.
9328
9329 2016-01-26  Christian Bruel  <christian.bruel@st.com>
9330
9331         * doc/sourcebuild.texi (arm_crypto_pragma_ok): Remove.
9332
9333 2016-01-26  Eric Botcazou  <ebotcazou@adacore.com>
9334
9335         * config/ia64/ia64.c (ia64_expand_vecint_compare): Use gen_int_mode.
9336
9337 2016-01-26  Richard Biener  <rguenther@suse.de>
9338
9339         PR middle-end/69467
9340         * match.pd: Guard X * CST CMP 0 pattern with single_use.
9341
9342 2016-01-26  Richard Biener  <rguenther@suse.de>
9343
9344         PR tree-optimization/69452
9345         * tree-ssa-loop-im.c (move_computations_dom_walker): Remove.
9346         (move_computations_dom_walker::before_dom_children): Rename
9347         to ...
9348         (move_computations_worker): This.
9349         (move_computations): Perform an RPO rather than a DOM walk.
9350
9351 2016-01-26  Jakub Jelinek  <jakub@redhat.com>
9352
9353         PR target/69442
9354         * combine.c (combine_instructions): For REG_EQUAL note with
9355         SET_DEST being ZERO_EXTRACT, also temporarily set SET_DEST
9356         to the underlying register.
9357         * doc/rtl.texi (REG_EQUAL): Document the behavior of
9358         REG_EQUAL/REG_EQUIV notes if SET_DEST is ZERO_EXTRACT.
9359
9360 2016-01-26  Roger Ferrer Ibáñez  <rofirrim@gmail.com>
9361
9362         PR target/67896
9363         * config/aarch64/aarch64-builtins.c
9364         (aarch64_init_simd_builtin_types): Do not set structural
9365         equality to __Poly{8,16,64,128}_t types.
9366
9367 2016-01-26  Richard Sandiford  <richard.sandiford@arm.com>
9368
9369         PR tree-optimization/69400
9370         * wide-int.cc (wi_pack): Take the precision as argument and
9371         perform canonicalization here rather than in the callers.
9372         Use the main loop to handle all full-width HWIs.  Add a
9373         zero HWI if in_len isn't a full result.
9374         (wi::divmod_internal): Update accordingly.
9375         (wi::mul_internal): Likewise.  Simplify.
9376
9377 2016-01-25  Aditya Kumar  <aditya.k7@samsung.com>
9378             Sebastian Pop  <s.pop@samsung.com>
9379
9380         * graphite-poly.c (apply_poly_transforms): Simplify.
9381         (print_isl_set): Use more readable format: ISL_YAML_STYLE_BLOCK.
9382         (print_isl_map): Same.
9383         (print_isl_union_map): Same.
9384         (print_isl_schedule): New.
9385         (debug_isl_schedule): New.
9386         * graphite-dependences.c (scop_get_reads): Do not call
9387         isl_union_map_add_map that is undocumented isl functionality.
9388         (scop_get_must_writes): Same.
9389         (scop_get_may_writes): Same.
9390         (scop_get_original_schedule): Remove.
9391         (scop_get_dependences): Do not call isl_union_map_compute_flow that
9392         is deprecated in isl 0.15.  Instead, use isl_union_access_* interface.
9393         (compute_deps): Remove.
9394         * graphite-isl-ast-to-gimple.c (print_schedule_ast): New.
9395         (debug_schedule_ast): New.
9396         (translate_isl_ast_to_gimple::scop_to_isl_ast): Call
9397         set_separate_option.
9398         (graphite_regenerate_ast_isl): Add dump.
9399         (translate_isl_ast_to_gimple::scop_to_isl_ast): Generate code
9400         from scop->transformed_schedule.
9401         (graphite_regenerate_ast_isl): Add more dump.
9402         * graphite-optimize-isl.c (optimize_isl): Set
9403         scop->transformed_schedule.  Check whether schedules are equal.
9404         (apply_poly_transforms): Move here.
9405         * graphite-poly.c (apply_poly_transforms): ... from here.
9406         (free_poly_bb): Static.
9407         (free_scop): Static.
9408         (pbb_number_of_iterations_at_time): Remove.
9409         (print_isl_ast): New.
9410         (debug_isl_ast): New.
9411         (debug_scop_pbb): New.
9412         * graphite-scop-detection.c (print_edge): Move.
9413         (print_sese): Move.
9414         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Remove.
9415         (build_scop_scattering): Remove.
9416         (create_pw_aff_from_tree): Assert instead of bailing out.
9417         (add_condition_to_pbb): Remove unused code, do not fail.
9418         (add_conditions_to_domain): Same.
9419         (add_conditions_to_constraints): Remove.
9420         (build_scop_context): New.
9421         (add_iter_domain_dimension): New.
9422         (build_iteration_domains): Initialize pbb->iterators.
9423         Call add_conditions_to_domain.
9424         (nested_in): New.
9425         (loop_at): New.
9426         (index_outermost_in_loop): New.
9427         (index_pbb_in_loop): New.
9428         (outermost_pbb_in): New.
9429         (add_in_sequence): New.
9430         (add_outer_projection): New.
9431         (outer_projection_mupa): New.
9432         (add_loop_schedule): New.
9433         (build_schedule_pbb): New.
9434         (build_schedule_loop): New.
9435         (embed_in_surrounding_loops): New.
9436         (build_schedule_loop_nest): New.
9437         (build_original_schedule): New.
9438         (build_poly_scop): Call build_original_schedule.
9439         * graphite.h: Declare print_isl_schedule and debug_isl_schedule.
9440         (free_poly_dr): Remove.
9441         (struct poly_bb): Add iterators.  Remove schedule, transformed, saved.
9442         (free_poly_bb): Remove.
9443         (debug_loop_vec): Remove.
9444         (print_isl_ast): Declare.
9445         (debug_isl_ast): Declare.
9446         (scop_do_interchange): Remove.
9447         (scop_do_strip_mine): Remove.
9448         (scop_do_block): Remove.
9449         (flatten_all_loops): Remove.
9450         (optimize_isl): Remove.
9451         (pbb_number_of_iterations_at_time): Remove.
9452         (debug_scop_pbb): Declare.
9453         (print_schedule_ast): Declare.
9454         (debug_schedule_ast): Declare.
9455         (struct scop): Remove schedule.  Add original_schedule,
9456         transformed_schedule.
9457         (free_gimple_poly_bb): Remove.
9458         (print_generated_program): Remove.
9459         (debug_generated_program): Remove.
9460         (unify_scattering_dimensions): Remove.
9461         * sese.c (print_edge): ... here.
9462         (print_sese): ... here.
9463         (debug_edge): ... here.
9464         (debug_sese): ... here.
9465         * sese.h (print_edge): Declare.
9466         (print_sese): Declare.
9467         (dump_edge): Declare.
9468         (dump_sese): Declare.
9469
9470 2016-01-25  Aditya Kumar  <aditya.k7@samsung.com>
9471             Sebastian Pop  <s.pop@samsung.com>
9472
9473         * Makefile.in: Set ISLVER in site.exp.
9474
9475 2016-01-25  Jakub Jelinek  <jakub@redhat.com>
9476
9477         * omp-low.c (lower_omp_target) <case USE_DEVICE_PTR>: Set
9478         DECL_VALUE_EXPR of new_var even for the non-array case.  Look
9479         through DECL_VALUE_EXPR for expansion.
9480
9481 2016-01-25  Bernd Edlinger  <bernd.edlinger@hotmail.de>
9482
9483         * config/mips/mips.c (mips_compute_frame_info): Skip re-computing
9484         the frame info after reload completed.
9485
9486 2016-01-25  Jeff Law  <law@redhat.com>
9487
9488         PR tree-optimization/69196
9489         PR tree-optimization/68398
9490         * tree-ssa-threadupdate.h (enum bb_dom_status): Moved here from
9491         tree-ssa-threadupdate.c.
9492         (determine_bb_domination_status): Prototype
9493         * tree-ssa-threadupdate.c (enum bb_dom_status): Remove
9494         (determine_bb_domination_status): No longer static.
9495         (valid_jump_thread_path): Remove code to detect characteristics
9496         of the jump thread path not associated with correctness.
9497         * tree-ssa-threadbackward.c (fsm_find_control_statment_thread_paths):
9498         Correct test for thread path length.  Count PHIs for real operands as
9499         statements that need to be copied.  Do not count ASSERT_EXPRs.
9500         Look at all the blocks in the thread path.  Compute and selectively
9501         filter thread paths based on threading through the latch, threading
9502         a multiway branch or crossing a multiway branch.
9503
9504 2016-01-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
9505
9506         * config/rs6000/rs6000.c (rs6000_keep_leaf_when_profiled):  Add
9507         decl with __attribute__ ((unused)) annotation.
9508
9509 2016-01-25  Ilya Enkovich  <enkovich.gnu@gmail.com>
9510
9511         PR target/69421
9512         * tree-vect-stmts.c (vectorizable_condition): Check vectype
9513         of operands is compatible with a statement vectype.
9514
9515 2016-01-25  Eric Botcazou  <ebotcazou@adacore.com>
9516
9517         * doc/extend.texi (scalar_storage_order type attribute): Fix typo and
9518         improve wording for mixed storage order support.
9519
9520 2016-01-25  Bilyan Borisov  <bilyan.borisov@arm.com>
9521
9522         * config/aarch64/arm_neon.h (vcvt_s64_f64): New intrinsic.
9523         (vcvt_u64_f64): Likewise.
9524         (vcvta_s64_f64): Likewise.
9525         (vcvta_u64_f64): Likewise.
9526         (vcvtm_s64_f64): Likewise.
9527         (vcvtm_u64_f64): Likewise.
9528         (vcvtn_s64_f64): Likewise.
9529         (vcvtn_u64_f64): Likewise.
9530         (vcvtp_s64_f64): Likewise.
9531         (vcvtp_u64_f64): Likewise.
9532
9533 2016-01-25  Claudiu Zissulescu  <claziss@synopsys.com>
9534
9535         * config/arc/arc.c (TARGET_DWARF_REGISTER_SPAN): Define.
9536         (arc_init): Check validity mll64 option.
9537         (arc_save_restore): Use double load/store instruction.
9538         (arc_expand_movmem): Likewise.
9539         (arc_split_move): Don't split if we have double load/store
9540         instructions. Returns a boolean.
9541         (arc_process_double_reg_moves): Change function to return boolean
9542         instead of a sequence of instructions.
9543         (arc_dwarf_register_span): New function.
9544         * config/arc/arc-protos.h (arc_split_move): Change prototype.
9545         * config/arc/arc.h (TARGET_CPU_CPP_BUILTINS): Define __ARC_LL64__.
9546         * config/arc/arc.md (*movdi_insn): Emit ldd/std instructions.
9547         (*movdf_insn): Likewise.
9548         * config/arc/arc.opt (mll64): New option.
9549         * config/arc/predicates.md (even_register_operand): New predicate.
9550         * doc/invoke.texi (ARC Options): Add mll64 documentation.
9551
9552 2016-01-25  Richard Biener  <rguenther@suse.de>
9553
9554         PR lto/69393
9555         * dwarf2out.c (is_naming_typedef_decl): Not when DECL_NAMELESS.
9556         * tree-streamer-out.c (pack_ts_base_value_fields): Stream
9557         DECL_NAMELESS.
9558         * tree-streamer-in.c (unpack_ts_base_value_fields): Likewise.
9559
9560 2016-01-25  Richard Biener  <rguenther@suse.de>
9561
9562         PR tree-optimization/69376
9563         * tree-ssa-sccvn.h (struct vn_ssa_aux): Add range_info_anti_range_p
9564         flag.
9565         (VN_INFO_ANTI_RANGE_P): New inline.
9566         (VN_INFO_RANGE_TYPE): Likewise.
9567         * tree-ssa-sccvn.c (set_ssa_val_to): Also record and copy
9568         SSA_NAME_ANTI_RANGE_P.
9569         (free_scc_vn): Restore SSA_NAME_ANTI_RANGE_P.
9570         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
9571         Properly query VN_INFO_RANGE_TYPE.
9572
9573 2016-01-25  Nick Clifton  <nickc@redhat.com>
9574
9575         PR target/66655
9576         * config/i386/cygming.h (MAKE_DECL_ONE_ONLY): Remove definition.
9577
9578 2016-01-23  Tom de Vries  <tom@codesourcery.com>
9579
9580         PR tree-optimization/69426
9581         * tree-parloops.c (eliminate_local_variables_stmt): Handle vdef of
9582         removed clobber.
9583
9584 2016-01-23  Jakub Jelinek  <jakub@redhat.com>
9585
9586         * tree-ssanames.c (release_free_names_and_compact_live_names): Replace
9587         "the the" with "the" in the comments.
9588         * ipa-devirt.c (build_type_inheritance_graph,
9589         update_type_inheritance_graph): Likewise.
9590         * tree.c (build_function_type_list_1): Likewise.
9591         * cfgloopmanip.c (scale_loop_profile): Likewise.
9592         * tree-ssa-loop-ivopts.c (get_shiftadd_cost): Likewise.
9593         * gimple-ssa-split-paths.c
9594         (find_block_to_duplicate_for_splitting_paths): Likewise.
9595         * tree-sra.c (init_subtree_with_zero, clobber_subtree): Likewise.
9596         * expr.c (convert_move): Likewise.
9597         * var-tracking.c (vt_stack_adjustments): Likewise.
9598         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise.
9599         * tree-vrp.c (test_for_singularity): Likewise.
9600
9601         * tree-vect-stmts.c (vectorizable_condition): Build a VEC_COND_EXPR
9602         directly instead of building a temporary tree.
9603
9604         PR bootstrap/69434
9605         * genrecog.c: Define INCLUDE_ALGORITHM before including system.h,
9606         remove <algorithm> include.
9607
9608 2016-01-22  Jakub Jelinek  <jakub@redhat.com>
9609
9610         PR target/69432
9611         * config/i386/i386.c: Include dojump.h.
9612         (expand_small_movmem_or_setmem,
9613         expand_set_or_movmem_prologue_epilogue_by_misaligned_moves): Spelling
9614         fixes.
9615         (ix86_expand_set_or_movmem): Call do_pending_stack_adjust () early
9616         if dynamic_check != -1.
9617
9618 2016-01-21  Jeff Law  <law@redhat.com>
9619
9620         PR middle-end/69347
9621         * tree-ssa-dom.c (back_propagate_equivalences): Factored out of
9622         record_temporary_equivalences.  Rewritten to avoid unnecessary calls
9623         into dominated_by_p.
9624         (cprop_into_successor_phis): Avoid unnecessary tests.
9625
9626 2016-01-22  Richard Henderson  <rth@redhat.com>
9627
9628         PR target/69416
9629         * config/aarch64/aarch64.md (UNSPEC_NZCV): New.
9630         (ccmp<mode>, fccmp<mode>, fccmpe<mode>): Use it.
9631
9632 2016-01-22  Michael Matz  <matz@suse.de>
9633
9634         * system.h (string, algorithm): Include only conditionally.
9635         (new): Include always under C++.
9636         * bb-reorder.c (toplevel): Define INCLUDE_ALGORITHM.
9637         * final.c (toplevel): Ditto.
9638         * ipa-chkp.c (toplevel): Define INCLUDE_STRING.
9639         * genconditions.c (write_header): Make gencondmd.c define
9640         INCLUDE_STRING.
9641         * mem-stats.h (mem_usage::print_dash_line): Don't use std::string.
9642
9643         * config/aarch64/aarch64.c (toplevel): Define INCLUDE_STRING.
9644         * common/config/aarch64/aarch64-common.c (toplevel): Ditto.
9645
9646 2016-01-22  Christian Bruel  <christian.bruel@st.com>
9647
9648         PR target/68674
9649         * expr.c (expand_expr_real_1): Reset DECL_MODE if VECTOR_TYPE_P changed.
9650
9651 2016-01-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9652
9653         PR target/69403
9654         * config/arm/thumb2.md (*thumb2_ior_scc_strict_it): Convert to
9655         define_insn_and_split.  Ensure operands[1] and operands[0] do not
9656         get assigned the same register.
9657
9658 2016-01-22  Kugan Vivekanandarajah  <kuganv@linaro.org>
9659
9660         * ipa-prop.c (ipa_set_jf_constant): Remove redundant unshare_expr.
9661
9662 2016-01-22  Christian Bruel  <christian.bruel@st.com>
9663
9664         * config/arm/arm-c.c (arm_pragma_target_parse):
9665         Remove warn_builtin_macro_redefined overwrite.
9666
9667 2016-01-22  Eric Botcazou  <ebotcazou@adacore.com>
9668
9669         * ipa-inline.c (can_inline_edge_p): Back out overzealous check on
9670         flag_non_call_exceptions compatibility.
9671
9672 2016-01-22  Jakub Jelinek  <jakub@redhat.com>
9673
9674         PR debug/66668
9675         * dwarf2out.c (add_child_die_after): New function.
9676         (dwarf_qual_info_t): New type.
9677         (dwarf_qual_info): New variable.
9678         (qualified_die_p): New function.
9679         (modified_type_die): For -fdebug-types-section, ensure
9680         canonical order of qualifiers.  Put qualified DIEs adjacent
9681         to the corresponding non-qualified type DIE and search there
9682         for existing qualified DIEs.
9683
9684 2016-01-22  Eric Botcazou  <ebotcazou@adacore.com>
9685
9686         * doc/extend.texi (scalar_storage_order type attribute): Document
9687         restriction on type punning and aliasing, and remove future tense.
9688
9689 2016-01-21  Roman Zhuykov  <zhroma@ispras.ru>
9690
9691         PR target/69252
9692         * modulo-sched.c (optimize_sc): Allow branch-scheduling to add a new
9693         first stage.
9694
9695 2016-01-21  Jeff Law  <law@redhat.com>
9696
9697         PR middle-end/69347
9698         * tree-ssa-dom.c (dom_opt_dom_walker::thread_across_edge): Avoid
9699         useless call to record_temporary_equivalences.
9700         * tree-ssa-threadbackward.c (find_jump_threads_backwards): Just
9701         allocate 10 slots in the bb_path vector and let it grow as needed.
9702         (fsm_find_control_statement_thread_paths): Similarly for the next_path
9703         vector.
9704
9705 2016-01-21  David Edelsohn  <dje.gcc@gmail.com>
9706
9707         * configure.ac (gcc_cv_as_powerpc_mfcrf, gcc_cv_as_machine_directive):
9708         Detangle.
9709         * configure: Regenerate.
9710
9711 2016-01-21  Pat Haugen  <pthaugen@us.ibm.com>
9712
9713         * config/rs6000/aix71.h (ASM_CPU_SPEC): Add entry for Power9.
9714         * config/rs6000/driver-rs6000.c (struct asm_names): Likewise.
9715
9716 2016-01-21  Bernd Schmidt  <bschmidt@redhat.com>
9717
9718         PR middle-end/66178
9719         * expr.c (expand_expr_real_2) [PLUS_EXPR, MINUS_EXPR]: Don't
9720         drop EXPAND_INITIALIZER.
9721         * rtl.h (contains_symbolic_reference_p): Declare.
9722         * rtlanal.c (contains_symbolic_reference_p): New function.
9723         * simplify-rtx.c (simplify_binary_operation_1): Don't turn
9724         a subtraction into a NOT if symbolic constants are involved.
9725
9726 2016-01-21  Anton Blanchard  <anton@samba.org>
9727             Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
9728
9729         PR target/63354
9730         * config/rs6000/linux64.h (TARGET_KEEP_LEAF_WHEN_PROFILED): New
9731         #define.
9732         * config/rs6000/rs6000.c (rs6000_keep_leaf_when_profiled): New
9733         function.
9734
9735 2016-01-21  Ajit Agarwal  <ajitkum@xilinx.com>
9736
9737         * config/microblaze/microblaze.c
9738         (get_branch_target): New.
9739         (insert_wic_for_ilb_runout): New.
9740         (insert_wic): New.
9741         (microblaze_machine_dependent_reorg): New.
9742         (TARGET_MACHINE_DEPENDENT_REORG): Define macro.
9743         * config/microblaze/microblaze.md
9744         (UNSPEC_IPREFETCH): Define.
9745         (iprefetch): New pattern
9746         * config/microblaze/microblaze.opt
9747         (mxl-prefetch): New flag.
9748
9749 2016-01-21  Ajit Agarwal  <ajitkum@xilinx.com>
9750
9751         * config/microblaze/microblaze.h
9752         (FIXED_REGISTERS): Update in macro.
9753         (CALL_USED_REGISTERS): Update in macro.
9754
9755 2016-01-21  Yuri Rumyantsev  <ysrumyan@gmail.com>
9756
9757         PR rtl-optimization/68920
9758         * ifcvt.c (cond_move_process_if_block): Limit number of conditional
9759         moves.
9760
9761 2016-01-21  Vladimir Makarov  <vmakarov@redhat.com>
9762
9763         PR rtl-optimization/68990
9764         * lra-coalesce.c (lra_coalesce): Invalidate value for the result
9765         pseudo instead of inheritance ones.
9766
9767 2016-01-21  Bernd Edlinger  <bernd.edlinger@hotmail.de>
9768             Nick Clifton  <nickc@redhat.com>
9769
9770         PR target/69129
9771         PR target/69012
9772         * config/mips/mips.c (mips_compute_frame_info): Initialise
9773         args_size and hard_frame_pointer_offset fields of the frame
9774         structure before calling mips_global_pointer.
9775
9776 2016-01-21  David Edelsohn  <dje.gcc@gmail.com>
9777
9778         * configure.ac (gcc_cv_as_dwloc): Test support for debug frame section
9779         label reference.
9780         * configure: Regenerate.
9781
9782 2016-01-21  Richard Biener  <rguenther@suse.de>
9783
9784         * graphite-optimize-isl.c (get_schedule_map): Fix typo.
9785
9786 2016-01-21  Marcin Kościelnicki  <koriakin@0x04.net>
9787
9788         * config/s390/s390.c (s390_asm_declare_function_size): Add code
9789         to actually emit the .size directive.
9790
9791 2016-01-21   Stefan Sørensen  <stefan.sorensen@spectralink.com>
9792              Jakub Jelinek  <jakub@redhat.com>
9793
9794         PR target/69187
9795         PR target/65624
9796         * config/arm/arm-builtins.c (arm_expand_neon_builtin): Increase
9797         args array size by one to avoid buffer overflow.
9798
9799 2016-01-21  Marcin Kościelnicki  <koriakin@0x04.net>
9800
9801         * config/s390/s390.md (pool_section_start): Use switch_to_section
9802         to select proper read-only data section instead of hardcoding
9803         .rodata.
9804         (pool_section_end): Use switch_to_section to match the above.
9805
9806 2016-01-21  Richard Biener  <rguenther@suse.de>
9807
9808         PR tree-optimization/69378
9809         * tree-ssa-sccvn.c (dominated_by_p_w_unex): New function.
9810         (set_ssa_val_to): Use it for dominance checks taking into
9811         account not executable edges.
9812
9813 2016-01-21  Jakub Jelinek  <jakub@redhat.com>
9814
9815         PR c++/69355
9816         * tree-dfa.c (get_ref_base_and_extent): Use GET_MODE_BITSIZE (mode)
9817         for bitsize instead of GET_MODE_PRECISION (mode).
9818
9819 2016-01-20  Martin Sebor  <msebor@redhat.com>
9820
9821         PR c/52291
9822         * extend.texi (__sync Builtins): Clarify the semantics of
9823         __sync_fetch_and_OP built-ins on pointers.
9824         (__atomic Builtins): Same.
9825
9826 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
9827             Sebastian Pop  <s.pop@samsung.com>
9828
9829         * graphite-isl-ast-to-gimple.c (enum phi_node_kind): New.
9830         (class translate_isl_ast_to_gimple): Use phi_node_kind instead of bool.
9831         (is_valid_rename): Same.
9832         (translate_isl_ast_to_gimple::get_rename): Same.
9833         (translate_isl_ast_to_gimple::rename_all_uses): Same.
9834         (translate_isl_ast_to_gimple::rename_uses): Same.
9835         (get_new_name): Check for close_phi nodes.
9836         (copy_loop_phi_args): Use phi_node_kind.
9837         (translate_isl_ast_to_gimple::copy_loop_close_phi_args): Same.
9838         (translate_isl_ast_to_gimple::copy_cond_phi_args): Same.
9839
9840 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
9841             Sebastian Pop  <s.pop@samsung.com>
9842
9843         Revert commit r229783.
9844         * graphite-isl-ast-to-gimple.c (gcc_expression_from_isl_ast_expr_id):
9845         Remove use of parameter_rename_map.
9846         (copy_def): Remove.
9847         (copy_internal_parameters): Remove.
9848         (graphite_regenerate_ast_isl): Remove call to copy_internal_parameters.
9849         * sese.c (new_sese_info): Do not initialize parameter_rename_map.
9850         (free_sese_info): Do not free parameter_rename_map.
9851         (set_rename): Do not use parameter_rename_map.
9852         (rename_uses): Update call to set_rename.
9853         (graphite_copy_stmts_from_block): Do not use parameter_rename_map.
9854         * sese.h (parameter_rename_map_t): Remove.
9855         (struct sese_info_t): Remove field parameter_rename_map.
9856
9857 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
9858             Sebastian Pop  <s.pop@samsung.com>
9859
9860         * graphite-isl-ast-to-gimple.c: Fix comment.
9861         * graphite-scop-detection.c (defined_in_loop_p): New.
9862         (canonicalize_loop_closed_ssa): Do not add close phi nodes for SSA
9863         names defined in loop.
9864
9865 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
9866             Sebastian Pop  <s.pop@samsung.com>
9867
9868         * graphite-scop-detection.c (scop_detection::harmful_loop_in_region):
9869         Discard unstructured if-then-else regions.
9870
9871 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
9872             Sebastian Pop  <s.pop@samsung.com>
9873
9874         * graphite-sese-to-poly.c (set_scop_parameter_dim): Remove.
9875         (cleanup_loop_iter_dom): Remove.
9876         (build_loop_iteration_domains): Remove.
9877         (build_scop_context): Remove.
9878         (build_scop_iteration_domain): Remove.
9879         (add_loop_constraints): New.
9880         (build_iteration_domains): New.
9881         (build_poly_scop): Call build_iteration_domains.
9882
9883 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
9884             Sebastian Pop  <s.pop@samsung.com>
9885
9886         * graphite-scop-detection.c
9887         (scop_detection::harmful_loop_in_region): Free dom and loops.
9888         (scop_detection::loop_body_is_valid_scop): Free bbs.
9889
9890 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
9891             Sebastian Pop  <s.pop@samsung.com>
9892
9893         * graphite-scop-detection.c (record_loop_in_sese): New.
9894         (gather_bbs::before_dom_children): Call record_loop_in_sese.
9895         (build_scops): Remove call to build_sese_loop_nests.
9896         * sese.c (sese_record_loop): Remove.
9897         (build_sese_loop_nests): Remove.
9898         (new_sese_info): Remove region->loops.
9899         (free_sese_info): Same.
9900         * sese.h (sese_contains_loop): Same.
9901         (build_sese_loop_nests): Remove.
9902         (sese_contains_loop): Remove.
9903
9904 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
9905             Sebastian Pop  <s.pop@samsung.com>
9906
9907         * graphite-scop-detection.c (loop_is_valid_scop): Renamed
9908         loop_is_valid_in_scop.
9909         (scop_detection::harmful_stmt_in_region): Renamed
9910         harmful_loop_in_region.
9911         Call loop_is_valid_in_scop.
9912
9913 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
9914             Sebastian Pop  <s.pop@samsung.com>
9915
9916         * graphite-isl-ast-to-gimple.c (translate_isl_ast): Also handle
9917         isl_ast_node_mark.
9918
9919 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
9920             Sebastian Pop  <s.pop@samsung.com>
9921
9922         * graphite-poly.c (new_poly_bb): Remove use of PBB_IS_REDUCTION.
9923         * graphite.h (struct poly_bb): Remove field is_reduction.
9924         (PBB_IS_REDUCTION): Remove.
9925
9926 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
9927             Sebastian Pop  <s.pop@samsung.com>
9928
9929         * graphite-dependences.c (constrain_domain): Add call to isl_*_coalesce.
9930         (add_pdr_constraints): Same.
9931         (scop_get_reads): Same.
9932         (scop_get_must_writes): Same.
9933         (scop_get_may_writes): Same.
9934         (scop_get_original_schedule): Same.
9935         (extend_schedule): Same.
9936         (apply_schedule_on_deps): Same.
9937         (carries_deps): Same.
9938         (compute_deps): Same.
9939         (scop_get_dependences): Same.
9940         * graphite-isl-ast-to-gimple.c
9941         (translate_isl_ast_to_gimple::generate_isl_schedule): Same.
9942         * graphite-optimize-isl.c (get_schedule_for_band): Same.
9943         (get_schedule_for_band_list): Same.
9944         (get_schedule_map): Same.
9945         (apply_schedule_map_to_scop): Same.
9946         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
9947         (build_loop_iteration_domains): Same.
9948         (add_condition_to_pbb): Same.
9949         (add_param_constraints): Same.
9950         (pdr_add_memory_accesses): Same.
9951         (pdr_add_data_dimensions): Same.
9952
9953 2016-01-20  Sandra Loosemore  <sandra@codesourcery.com>
9954
9955         * doc/invoke.texi (Instrumentation Options): Clarify -mmpx linking
9956         requirements.
9957
9958 2016-01-20  Sandra Loosemore  <sandra@codesourcery.com>
9959
9960         * common.opt (feliminate-dwarf2-dups): Replace references to
9961         "DWARF 2" with just "DWARF".
9962         * config/ia64/ia64.opt (mdwarf2-asm): Likewise.
9963         * doc/extend.texi: Likewise.
9964         * doc/cpp.texi: Likewise.
9965         * doc/invoke.texi: Likewise.
9966         (Option Summary): Add -gdwarf to list of Debugging Options.
9967         (Debugging Options): Document -gdwarf.
9968         * doc/contrib.texi: Spell "DWARF" like that.
9969
9970 2016-01-21  Jakub Jelinek  <jakub@redhat.com>
9971
9972         * omp-low.c (expand_omp_target): Avoid -Wmaybe-uninitialized
9973         warning.  Fix up formatting.
9974
9975         PR middle-end/67653
9976         * gimplify.c (gimplify_asm_expr): Warn if it is too late to
9977         attempt to mark memory input operand addressable and
9978         call prepare_gimple_addressable in that case.  Don't adjust
9979         input_location for diagnostics, use error_at instead.
9980
9981 2016-01-20  Peter Bergner  <bergner@vnet.ibm.com>
9982
9983         * config/rs6000/ppc-auxv.h: New file.
9984         * config/rs6000/rs6000-builtin.def (cpu_init): Add new builtin.
9985         (cpu_is): Likewise.
9986         (cpu_supports): Likewise.
9987         * config/rs6000/rs6000.c: include "ppc-auxv.h".
9988         (cpu_is_info): New variable.
9989         (cpu_supports_info): Likewise.
9990         (tcb_verification_symbol): Likewise.
9991         (cpu_builtin_p): Likewise.
9992         (cpu_expand_builtin): New function.
9993         (rs6000_expand_ternop_builtin): Add support for CPU builtin functions.
9994         (rs6000_init_builtins): Likewise.
9995         (rs6000_elf_file_end): Emit HWCAP in TCB verification symbol.
9996         * config/rs6000/rs6000.h (TLS_REGNUM): New define.
9997         * configure.ac (gcc_cv_libc_provides_hwcap_in_tcb): New test.
9998         * configure: Regenerate.
9999         * config.in: Likewise.
10000         * doc/extend.texi (PowerPC Built-in Functions): Document
10001         __builtin_cpu_init, __builtin_cpu_is and __builtin_cpu_supports.
10002
10003 2016-01-20  David Edelsohn  <dje.gcc@gmail.com>
10004
10005         PR target/68609
10006         * config/rs6000/rs6000.c (rs6000_emit_swsqrt): Add vector sqrt
10007         domain check.
10008         * config/rs6000/vector.md (sqrt<mode>2): Call rs6000_emit_swsqrt
10009         for V4SFmode.
10010
10011 2016-01-20  Richard Henderson  <rth@redhat.com>
10012
10013         PR bootstrap/69343
10014         PR bootstrap/69339
10015         PR tree-opt/68964
10016         Revert:
10017         * tree.c (tm_define_builtin): New.
10018         (find_tm_vector_type): New.
10019         (build_tm_vector_builtins): New.
10020         (build_common_builtin_nodes): Call it.
10021
10022 2016-01-20  Christophe Lyon  <christophe.lyon@linaro.org>
10023
10024         * doc/sourcebuild.texi (arm_crypto_pragma_ok): Document new entry.
10025         (arm_fp_ok): Likewise.
10026         (arm_fp): Likewise.
10027         (arm_crypto): Likewise.
10028
10029 2016-01-20  Ilya Enkovich  <enkovich.gnu@gmail.com>
10030             Richard Biener  <rguenther@suse.de>
10031
10032         PR tree-optimization/69328
10033         * tree-vect-stmts.c (vect_is_simple_cond): Check compared
10034         vectors have same number of elements.
10035         (vectorizable_condition): Fix masked version recognition.
10036
10037 2016-01-20  Richard Biener  <rguenther@suse.de>
10038
10039         PR tree-optimization/69345
10040         * tree-ssa-sccvn.h (VN_INFO_RANGE_INFO): New inline function.
10041         (VN_INFO_PTR_INFO): Likewise.
10042         * tree-ssa-sccvn.c (set_ssa_val_to): Avoid clearing points-to
10043         info when it is equal between non-dominating SSA names.
10044         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
10045         Make sure to look at original SSA infos.
10046
10047 2016-01-20  Jeff Law  <law@redhat.com>
10048
10049         PR target/25114
10050         * config/m68k/predicates.md (pow2_m1_operand): New predicate
10051         extracted from ...
10052         (reg_or_pow2_m1_operand): Call pow2_m1_operand.
10053         (pc_or_label_operand): New predicate.
10054         * config/m68k/m68k.md: Add new peephole2 patterns for GTU/LEU
10055         tests for small integers that are 2^n - 1.
10056
10057 2016-01-20  Jonathan Wakely  <jwakely@redhat.com>
10058
10059         * doc/invoke.texi (Options Summary): Add '.' after @xref.
10060
10061 2016-01-19  Jeff Law  <law@redhat.com>
10062
10063         PR middle-end/69347
10064         * tree-ssa-threadbackwards.c
10065         (fsm_find_control_statement_thread_paths): Do not try to lookup
10066         FSM paths for SSA_NAMEs appearing in abnormal PHIs.
10067
10068 2016-01-20  Kugan Vivekanandarajah  <kuganv@linaro.org>
10069
10070         * doc/lto.texi: Remove text that says only Gold has linker plugin
10071         support.
10072
10073 2016-01-19  Eric Botcazou  <ebotcazou@adacore.com>
10074
10075         * dwarf2out.c (need_endianity_attribute_p): New inline predicate.
10076         (base_type_die): Add REVERSE parameter and attach DW_AT_endianity to
10077         the DIE accordingly.
10078         (modified_type_die): Add REVERSE parameter and pass it recursively,
10079         as well as to base_type_die.  Adjust presence check accordingly.
10080         (base_type_for_mode): Adjust call to modified_type_die.
10081         (add_type_attribute): Add REVERSE parameter and pass it to
10082         modified_type_die.
10083         (generic_parameter_die): Adjust call to add_type_attribute.
10084         (add_scalar_info): Likewise.
10085         (add_subscript_info): Likewise.
10086         (gen_array_type_die): Likewise.
10087         (gen_descr_array_type_die): Likewise.
10088         (gen_entry_point_die): Likewise.
10089         (gen_enumeration_type_die): Likewise.
10090         (gen_formal_parameter_die): Likewise.
10091         (gen_subprogram_die): Likewise.
10092         (gen_variable_die ): Likewise.
10093         (gen_const_die): Likewise.
10094         (gen_field_die): Likewise.
10095         (gen_pointer_type_die): Likewise.
10096         (gen_reference_type_die): Likewise.
10097         (gen_ptr_to_mbr_type_die): Likewise.
10098         (gen_inheritance_die): Likewise.
10099         (gen_subroutine_type_die): Likewise.
10100         (gen_typedef_die): Likewise.
10101         (force_type_die): Adjust call to modified_type_die.
10102
10103 2016-01-19  Sandra Loosemore  <sandra@codesourcery.com>
10104
10105         * doc/standards.texi: Copy-editing for grammar, markup, and sentence
10106         flow throughout the file.  Fix broken link to Objective-C 2.0
10107         documentation.
10108         * doc/invoke.texi: More copy-editing; fix numerous typos and spelling
10109         errors.
10110
10111 2016-01-19  Wilco Dijkstra  <wdijkstr@arm.com>
10112
10113         * ccmp.c (expand_ccmp_expr_1): Avoid spurious unused warnings.
10114
10115 2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
10116
10117         PR ipa/66223
10118         * ipa-devirt.c (is_cxa_pure_virtual_p): New function.
10119         (maybe_record_node): Record cxa_pure_virtual as the only possible
10120         target if there are not ohter candidates.
10121         (possible_polymorphic_call_target_p): Accept cxa_pure_virtual.
10122
10123 2016-01-19  Richard Biener  <rguenther@suse.de>
10124
10125         * hsa-gen.c (get_memory_order_name): Use MEMMODEL_ constants.
10126         (get_memory_order): Likewise.
10127
10128 2016-01-19  Kirill Yukhin  <kirill.yukhin@intel.com>
10129
10130         * tree-vect-stmts.c (vectorizable_store): Check
10131         rhs vectype.
10132
10133 2016-01-19  David Malcolm  <dmalcolm@redhat.com>
10134
10135         PR jit/68446
10136         * gcc.c (driver::decode_argv): Add call to
10137         init_opts_obstack before init_options_struct.
10138         * opts.c (init_opts_obstack): Remove idempotency.
10139         (init_options_struct): Replace call to init_opts_obstack
10140         with a gcc_assert to verify that it has already been called.
10141         * toplev.c (toplev::main): Add call to init_opts_obstack before
10142         calls to init_options_struct.
10143         (toplev::finalize): Move cleanup of opts_obstack next to
10144         cleanup of save_decoded_options, clearing the latter, and
10145         save_decoded_options_count.
10146
10147 2016-01-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10148
10149         PR target/69135
10150         * config/arm/vfp.md (l<vrint_pattern><su_optab><mode>si2): Set "conds"
10151         attribute to unconditional.  Remove %? from output template.
10152
10153 2015-01-19  Wilco Dijkstra  <wdijkstr@arm.com>
10154             Jiong Wang  <jiong.wang@arm.com>
10155
10156         * ccmp.c (expand_ccmp_expr_1): Cost the instruction sequences
10157         generated from different expand order.
10158
10159 2015-01-19  Wilco Dijkstra  <wdijkstr@arm.com>
10160
10161         * /config/aarch64/aarch64.c (aarch64_if_then_else_costs):
10162         Add support for CCMP costing.
10163
10164 2015-01-19  Wilco Dijkstra  <wdijkstr@arm.com>
10165
10166         * ccmp.c (ccmp_candidate_p): Remove integer-only restriction.
10167         * config/aarch64/aarch64.md (fccmp<mode>): New pattern.
10168         (fccmpe<mode>): Likewise.
10169         (fcmp): Rename to fcmp and globalize pattern.
10170         (fcmpe): Likewise.
10171         * config/aarch64/aarch64.c (aarch64_gen_ccmp_first): Add FP support.
10172         (aarch64_gen_ccmp_next): Add FP support.
10173
10174 2015-01-19  Wilco Dijkstra  <wdijkstr@arm.com>
10175
10176         * target.def (gen_ccmp_first): Update documentation.
10177         (gen_ccmp_next): Likewise.
10178         * doc/tm.texi (gen_ccmp_first): Update documentation.
10179         (gen_ccmp_next): Likewise.
10180         * ccmp.c (expand_ccmp_expr): Extract cmp_code from return value of
10181         expand_ccmp_expr_1.  Improve comments.
10182         * config/aarch64/aarch64.md (ccmp_and): Use if_then_else for ccmp.
10183         (ccmp_ior<mode>): Remove pattern.
10184         (cmp<mode>): Remove expand.
10185         (cmp): Globalize pattern.
10186         (cstorecc4): Use cc_register.
10187         (mov<mode>cc): Remove ccmp_cc_register check.
10188         * config/aarch64/aarch64.c (aarch64_get_condition_code_1):
10189         Simplify after removal of CC_DNE/* modes.
10190         (aarch64_ccmp_mode_to_code): Remove.
10191         (aarch64_print_operand): Remove 'K' case.  Merge 'm' and 'M' cases.
10192         In 'k' case use integer as condition.
10193         (aarch64_nzcv_codes): Remove inverted cases.
10194         (aarch64_code_to_ccmode): Remove.
10195         (aarch64_gen_ccmp_first): Use cmp pattern directly.  Return the correct
10196         comparison with CC register to be used in folowing CCMP/branch/CSEL.
10197         (aarch64_gen_ccmp_next): Use previous comparison and mode in CCMP
10198         pattern.  Return the comparison with CC register.  Invert conditions
10199         when bitcode is OR.
10200         * config/aarch64/aarch64-modes.def: Remove CC_DNE/* modes.
10201         * config/aarch64/predicates.md (ccmp_cc_register): Remove.
10202
10203 2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
10204
10205         * cgraphunit.c (cgraph_node::reset): Clear thunk info and
10206         instrumented_version.
10207
10208 2016-01-19  Richard Biener  <rguenther@suse.de>
10209
10210         PR tree-optimization/69336
10211         * tree-ssa-scopedtables.c (avail_expr_hash): Handle all
10212         handled components with get_ref_base_and_extent.
10213         (equal_mem_array_ref_p): Adjust.
10214
10215 2016-01-19  Jakub Jelinek  <jakub@redhat.com>
10216
10217         PR debug/65779
10218         * shrink-wrap.c: Include valtrack.h.
10219         (move_insn_for_shrink_wrap): Add DEBUG argument.  If
10220         MAY_HAVE_DEBUG_INSNS, call dead_debug_add on DEBUG_INSNs
10221         in between insn and where it will be moved to.  Call
10222         dead_debug_insert_temp.
10223         (prepare_shrink_wrap): Adjust caller.  Call dead_debug_local_init
10224         first and dead_debug_local_finish at the end.
10225         For uses and defs bitmap, handle all regs in between REGNO and
10226         END_REGNO, not just the first one.
10227
10228 2016-01-19  Richard Biener  <rguenther@suse.de>
10229
10230         PR tree-optimization/69352
10231         * tree-ssa-scopedtables.c (avail_expr_hash): Check for size == -1.
10232         (equal_mem_array_ref_p): Constrain size and max size properly.
10233         Compare the reverse flag.
10234
10235 2016-01-19  Bernd Schmidt  <bschmidt@redhat.com>
10236
10237         * ira.c (ira): Update regstat data if we deleted insns.
10238
10239 2016-01-19  Jakub Jelinek  <jakub@redhat.com>
10240
10241         PR rtl-optimization/68955
10242         PR rtl-optimization/64557
10243         * dse.c (record_store, check_mem_read_rtx): Don't call get_addr
10244         here.  Fix up formatting.
10245         * alias.c (get_addr): Handle VALUE +/- CONST_SCALAR_INT_P.
10246
10247 2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
10248
10249         PR lto/69133
10250         * cgraphunit.c (cgraph_node::expand_thunk): When forcing gimple
10251         assume that the node has body.
10252         * cgraph.c (cgraph_node::get_untransformed_body): Use gimple_body_p
10253         check.
10254
10255 2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
10256
10257         * lto-streamer-out.c (lto_output): Do not stream instrumentation
10258         thunks.
10259
10260 2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
10261
10262         * symtab.c (symtab_node::asm_name): Do not call printable name directly.
10263         (symtab_node::name): Report name as unnamed if DECL_NAME is not set.
10264
10265 2016-01-19  Martin Jambor  <mjambor@suse.cz>
10266             Martin Liska  <mliska@suse.cz>
10267             Michael Matz  <matz@suse.de>
10268
10269         * Makefile.in (OBJS): Add new source files.
10270         (GTFILES): Add hsa.c.
10271         * common.opt (disable_hsa): New variable.
10272         (-Whsa): New warning.
10273         * config.in (ENABLE_HSA): New.
10274         * configure.ac: Treat hsa differently from other accelerators.
10275         (OFFLOAD_TARGETS): Define ENABLE_OFFLOADING according to
10276         $enable_offloading.
10277         (ENABLE_HSA): Define ENABLE_HSA according to $enable_hsa.
10278         * doc/install.texi (Configuration): Document --with-hsa-runtime,
10279         --with-hsa-runtime-include, --with-hsa-runtime-lib and
10280         --with-hsa-kmt-lib.
10281         * doc/invoke.texi (-Whsa): Document.
10282         (hsa-gen-debug-stores): Likewise.
10283         * lto-wrapper.c (compile_images_for_offload_targets): Do not attempt
10284         to invoke offload compiler for hsa acclerator.
10285         * opts.c (common_handle_option): Determine whether HSA offloading
10286         should be performed.
10287         * params.def (PARAM_HSA_GEN_DEBUG_STORES): New parameter.
10288         * builtin-types.def (BT_FN_VOID_UINT_PTR_INT_PTR): New.
10289         (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_INT_INT): Removed.
10290         (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_PTR): New.
10291         * gimple-low.c (lower_stmt): Also handle GIMPLE_OMP_GRID_BODY.
10292         * gimple-pretty-print.c (dump_gimple_omp_for): Also handle
10293         GF_OMP_FOR_KIND_GRID_LOOP.
10294         (dump_gimple_omp_block): Also handle GIMPLE_OMP_GRID_BODY.
10295         (pp_gimple_stmt_1): Likewise.
10296         * gimple-walk.c (walk_gimple_stmt): Likewise.
10297         * gimple.c (gimple_build_omp_grid_body): New function.
10298         (gimple_copy): Also handle GIMPLE_OMP_GRID_BODY.
10299         * gimple.def (GIMPLE_OMP_GRID_BODY): New.
10300         * gimple.h (enum gf_mask): Added GF_OMP_PARALLEL_GRID_PHONY,
10301         GF_OMP_FOR_KIND_GRID_LOOP, GF_OMP_FOR_GRID_PHONY and
10302         GF_OMP_TEAMS_GRID_PHONY.
10303         (gimple_statement_omp_single_layout): Updated comments.
10304         (gimple_build_omp_grid_body): New function.
10305         (gimple_has_substatements): Also handle GIMPLE_OMP_GRID_BODY.
10306         (gimple_omp_for_grid_phony): New function.
10307         (gimple_omp_for_set_grid_phony): Likewise.
10308         (gimple_omp_parallel_grid_phony): Likewise.
10309         (gimple_omp_parallel_set_grid_phony): Likewise.
10310         (gimple_omp_teams_grid_phony): Likewise.
10311         (gimple_omp_teams_set_grid_phony): Likewise.
10312         (gimple_return_set_retbnd): Also handle GIMPLE_OMP_GRID_BODY.
10313         * omp-builtins.def (BUILT_IN_GOMP_OFFLOAD_REGISTER): New.
10314         (BUILT_IN_GOMP_OFFLOAD_UNREGISTER): Likewise.
10315         (BUILT_IN_GOMP_TARGET): Updated type.
10316         * omp-low.c: Include symbol-summary.h, hsa.h and params.h.
10317         (adjust_for_condition): New function.
10318         (get_omp_for_step_from_incr): Likewise.
10319         (extract_omp_for_data): Moved parts to adjust_for_condition and
10320         get_omp_for_step_from_incr.
10321         (build_outer_var_ref): Handle GIMPLE_OMP_GRID_BODY.
10322         (fixup_child_record_type): Bail out if receiver_decl is NULL.
10323         (scan_sharing_clauses): Handle OMP_CLAUSE__GRIDDIM_.
10324         (scan_omp_parallel): Do not create child functions for phony
10325         constructs.
10326         (check_omp_nesting_restrictions): Handle GIMPLE_OMP_GRID_BODY.
10327         (scan_omp_1_op): Checking assert we are not remapping to
10328         ERROR_MARK.  Also also handle GIMPLE_OMP_GRID_BODY.
10329         (parallel_needs_hsa_kernel_p): New function.
10330         (expand_parallel_call): Register apprpriate parallel child
10331         functions as HSA kernels.
10332         (grid_launch_attributes_trees): New type.
10333         (grid_attr_trees): New variable.
10334         (grid_create_kernel_launch_attr_types): New function.
10335         (grid_insert_store_range_dim): Likewise.
10336         (grid_get_kernel_launch_attributes): Likewise.
10337         (get_target_argument_identifier_1): Likewise.
10338         (get_target_argument_identifier): Likewise.
10339         (get_target_argument_value): Likewise.
10340         (push_target_argument_according_to_value): Likewise.
10341         (get_target_arguments): Likewise.
10342         (expand_omp_target): Call get_target_arguments instead of looking
10343         up for teams and thread limit.
10344         (grid_expand_omp_for_loop): New function.
10345         (grid_arg_decl_map): New type.
10346         (grid_remap_kernel_arg_accesses): New function.
10347         (grid_expand_target_kernel_body): New function.
10348         (expand_omp): Call it.
10349         (lower_omp_for): Do not emit phony constructs.
10350         (lower_omp_taskreg): Do not emit phony constructs but create for them
10351         a temporary variable receiver_decl.
10352         (lower_omp_taskreg): Do not emit phony constructs.
10353         (lower_omp_teams): Likewise.
10354         (lower_omp_grid_body): New function.
10355         (lower_omp_1): Call it.
10356         (grid_reg_assignment_to_local_var_p): New function.
10357         (grid_seq_only_contains_local_assignments): Likewise.
10358         (grid_find_single_omp_among_assignments_1): Likewise.
10359         (grid_find_single_omp_among_assignments): Likewise.
10360         (grid_find_ungridifiable_statement): Likewise.
10361         (grid_target_follows_gridifiable_pattern): Likewise.
10362         (grid_remap_prebody_decls): Likewise.
10363         (grid_copy_leading_local_assignments): Likewise.
10364         (grid_process_kernel_body_copy): Likewise.
10365         (grid_attempt_target_gridification): Likewise.
10366         (grid_gridify_all_targets_stmt): Likewise.
10367         (grid_gridify_all_targets): Likewise.
10368         (execute_lower_omp): Call grid_gridify_all_targets.
10369         (make_gimple_omp_edges): Handle GIMPLE_OMP_GRID_BODY.
10370         * tree-core.h (omp_clause_code): Added OMP_CLAUSE__GRIDDIM_.
10371         (tree_omp_clause): Added union field dimension.
10372         * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE__GRIDDIM_.
10373         * tree.c (omp_clause_num_ops): Added number of arguments of
10374         OMP_CLAUSE__GRIDDIM_.
10375         (omp_clause_code_name): Added name of OMP_CLAUSE__GRIDDIM_.
10376         (walk_tree_1): Handle OMP_CLAUSE__GRIDDIM_.
10377         * tree.h (OMP_CLAUSE_GRIDDIM_DIMENSION): New.
10378         (OMP_CLAUSE_SET_GRIDDIM_DIMENSION): Likewise.
10379         (OMP_CLAUSE_GRIDDIM_SIZE): Likewise.
10380         (OMP_CLAUSE_GRIDDIM_GROUP): Likewise.
10381         * passes.def: Schedule pass_ipa_hsa and pass_gen_hsail.
10382         * tree-pass.h (make_pass_gen_hsail): Declare.
10383         (make_pass_ipa_hsa): Likewise.
10384         * ipa-hsa.c: New file.
10385         * lto-section-in.c (lto_section_name): Add hsa section name.
10386         * lto-streamer.h (lto_section_type): Add hsa section.
10387         * timevar.def (TV_IPA_HSA): New.
10388         * hsa-brig-format.h: New file.
10389         * hsa-brig.c: New file.
10390         * hsa-dump.c: Likewise.
10391         * hsa-gen.c: Likewise.
10392         * hsa.c: Likewise.
10393         * hsa.h: Likewise.
10394         * toplev.c (compile_file): Call hsa_output_brig.
10395         * hsa-regalloc.c: New file.
10396
10397 2016-01-18  Jeff Law  <law@redhat.com>
10398
10399         PR tree-optimization/69320
10400         * tree-ssa-dom.c (record_edge_info): For comparisons against a boolean
10401         ranged object, do nothing if the RHS constant is not [0..1].
10402         (optimize_stmt): Comparing a boolean ranged object against a
10403         constant outside [0..1] results in a compile-time constant.
10404
10405         * tree-ssanames.c (ssa_name_has_boolean_range): Remove unnecessary
10406         test.
10407
10408 2016-01-18  Sandra Loosemore  <sandra@codesourcery.com>
10409
10410         * doc/invoke.texi (Invoking GCC): Add new section to menu.
10411         (Option Summary): Update to reflect new section and moved options.
10412         (C++ Dialect Options): Move -fstats to new section.
10413         (Debugging Options): Move all dump, statistics, and other GCC
10414         developer options to new section.  Rewrite section introduction
10415         and re-order remaining options to put the more basic ones first.
10416         (Optimization Options): Move -fira-verbose and -flto-report* to
10417         new section.
10418         (Developer Options): New section incorporating moved options.
10419         * doc/cppopts.texi (-dM): Update cross-reference.
10420
10421 2016-01-18  Richard Henderson  <rth@redhat.com>
10422
10423         PR target/69176
10424         * config/aarch64/aarch64.md (add<GPI>3): Move long immediate
10425         operands to pseudo only if CSE is expected.  Split long immediate
10426         operands only after reload, and for the stack pointer.
10427         (*add<GPI>3_pluslong): Remove.
10428         (*addsi3_aarch64, *adddi3_aarch64): Merge into...
10429         (*add<GPI>3_aarch64): ... here.  Add r/rk/Upl alternative.
10430         (*addsi3_aarch64_uxtw): Add r/rk/Upl alternative.
10431         (*add<GPI>3 peepholes): New.
10432         (*add<GPI>3 splitters): New.
10433         * config/aarch64/constraints.md (Upl): New.
10434         * config/aarch64/predicates.md (aarch64_pluslong_strict_immedate): New.
10435
10436 2016-01-18  Richard Biener  <rguenther@suse.de>
10437
10438         PR tree-optimization/69297
10439         * tree-vect-slp.c (vect_bb_slp_scalar_cost): Count each scalar
10440         stmt at most once.
10441         (vect_bb_vectorization_profitable_p): Clear visited flag again.
10442
10443 2016-01-18  Yuri Rumyantsev  <ysrumyan@gmail.com>
10444
10445         PR middle-end/68542
10446         * fold-const.c (fold_binary_op_with_conditional_arg): Bail out for case
10447         of mixind vector and scalar types.
10448         (fold_relational_const): Add handling of vector
10449         comparison with boolean result.
10450         * tree-cfg.c (verify_gimple_comparison): Add argument CODE, allow
10451         comparison of vector operands with boolean result for EQ/NE only.
10452         (verify_gimple_assign_binary): Adjust call for verify_gimple_comparison.
10453         (verify_gimple_cond): Likewise.
10454         * tree-vrp.c (extract_code_and_val_from_cond_with_ops): Modify check on
10455         valid type of VAL.
10456
10457 2016-01-18  Joseph Myers  <joseph@codesourcery.com>
10458
10459         * config/mips/mips.h (ISA_HAS_PAIRED_SINGLE): Require
10460         !TARGET_OCTEON.
10461
10462 2016-01-18  Richard Biener  <rguenther@suse.de>
10463
10464         PR middle-end/69308
10465         * gimple.c (gimple_could_trap_p_1): Handle GIMPLE_COND.
10466
10467 2016-01-18  Tom de Vries  <tom@codesourcery.com>
10468
10469         * passes.def: Add pass_parallelize_loops to pass_oacc_kernels.
10470
10471 2016-01-18  Tom de Vries  <tom@codesourcery.com>
10472
10473         * omp-low.c (set_oacc_fn_attrib): Make extern.
10474         * omp-low.h (set_oacc_fn_attrib): Declare.
10475         * tree-parloops.c (struct reduction_info): Add reduc_addr field.
10476         (create_call_for_reduction_1): Handle case that reduc_addr is non-NULL.
10477         (create_parallel_loop, gen_parallel_loop, try_create_reduction_list):
10478         Add and handle function parameter oacc_kernels_p.
10479         (find_reduc_addr, get_omp_data_i_param): New function.
10480         (ref_conflicts_with_region, oacc_entry_exit_ok_1)
10481         (oacc_entry_exit_single_gang, oacc_entry_exit_ok): New function.
10482         (parallelize_loops): Add and handle function parameter oacc_kernels_p.
10483         Calculate dominance info.  Skip loops that are not in a kernels region
10484         in oacc_kernels_p mode.  Skip inner loops of parallelized loops.
10485         (pass_parallelize_loops::execute): Call parallelize_loops with
10486         oacc_kernels_p argument.
10487         (pass_parallelize_loops::clone, pass_parallelize_loops::set_pass_param):
10488         New member function.
10489         (pass_parallelize_loops::bool oacc_kernels_p): New member var.
10490         * passes.def: Add argument to pass_parallelize_loops instantation.
10491
10492 2016-01-18  Tom de Vries  <tom@codesourcery.com>
10493
10494         * tree-parloops.c (pass_parallelize_loops::execute): Allow
10495         pass_parallelize_loops to be run outside the loop pipeline.
10496
10497 2016-01-18  Alan Lawrence  <alan.lawrence@arm.com>
10498
10499         * tree-scalar-evolution.c (follow_copies_to_constant): New.
10500         (analyze_initial_condition, analyze_scalar_evolution_1): Call previous.
10501
10502 2016-01-18  Alan Lawrence  <alan.lawrence@arm.com>
10503
10504         PR target/63679
10505         * tree-ssa-scopedtables.c (avail_expr_hash): Hash MEM_REF and ARRAY_REF
10506         using get_ref_base_and_extent.
10507         (equal_mem_array_ref_p): New.
10508         (hashable_expr_equal_p): Add call to previous.
10509
10510 2016-01-18  Alan Lawrence  <alan.lawrence@arm.com>
10511
10512         PR target/63679
10513         * tree-sra.c (disqualified_constants, constant_decl_p): New.
10514         (sra_initialize): Allocate disqualified_constants.
10515         (sra_deinitialize): Free disqualified_constants.
10516         (disqualify_candidate): Update disqualified_constants when appropriate.
10517         (create_access): Scan for constant-pool entries as we go along.
10518         (scalarizable_type_p): Add check against type_contains_placeholder_p.
10519         (maybe_add_sra_candidate): Allow constant-pool entries.
10520         (load_assign_lhs_subreplacements): Bind debug for constant pool vars.
10521         (initialize_constant_pool_replacements): New.
10522         (sra_modify_assign): Avoid mangling assignments created by previous,
10523         and don't generate writes into constant pool.
10524         (sra_modify_function_body): Call initialize_constant_pool_replacements.
10525
10526 2016-01-18  Ilya Enkovich  <enkovich.gnu@gmail.com>
10527
10528         * config/i386/i386.c (scalar_to_vector_candidate_p): Support
10529         andnot instruction.
10530         (scalar_chain::convert_op): Likewise.
10531         * config/i386/i386.md (*andndi3_doubleword): New.
10532
10533 2016-01-18  Richard Biener  <rguenther@suse.de>
10534
10535         PR tree-optimization/69170
10536         * tree-vect-slp.c (vect_build_slp_tree): Verify we are not
10537         building a vector from scalar results of a pattern stmt.
10538
10539 2016-01-18  Jakub Jelinek  <jakub@redhat.com>
10540
10541         * haifa-sched.c (autopref_multipass_init): Work around
10542         -Wmaybe-uninitialized warning.
10543
10544 2016-01-18  Thomas Preud'homme  <thomas.preudhomme@arm.com>
10545
10546         * config/arm/arm.c (thumb1_reorg): Check that the comparison is
10547         against the constant 0.
10548
10549 2016-01-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
10550
10551         PR tree-optimization/68799
10552         * gimple-ssa-strength-reduction.c (create_phi_basis): Directly
10553         look up phi candidates in the statement-candidate map.
10554         (phi_add_costs): Likewise.
10555         (record_phi_increments): Likewise.
10556         (phi_incr_cost): Likewise.
10557         (ncd_with_phi): Likewise.
10558         (all_phi_incrs_profitable): Likewise.
10559
10560 2016-01-17  Jakub Jelinek  <jakub@redhat.com>
10561
10562         * omp-low.c (mark_loops_in_oacc_kernels_region): Work around
10563         -Wmaybe-uninitialized warning.
10564
10565 2016-01-16  Sandra Loosemore  <sandra@codesourcery.com>
10566
10567         * doc/invoke.texi (Invoking GCC): Add new section to menu.
10568         (Option Summary): Update to reflect new section and moved options.
10569         (C++ Dialect Options): Move -fvtable-verify and related options.
10570         (Debugging Options): Move Sanitizer, Pointer Bounds Checker,
10571         and profiling-related options.
10572         (Optimization Options): Move profile generation options and
10573         -fstack-protector and related options.
10574         (Instrumentation Options): New section incorporating moved options.
10575         (Code Generation Options): Move -finstrument-functions and
10576         related options, -fstack-check, -fstack-limit*, and -fbounds-check.
10577
10578 2016-01-16  Tom de Vries  <tom@codesourcery.com>
10579
10580         * passes.def: Move pass_expand_omp_ssa out of pass_parallelize_loops.
10581
10582 2016-01-16  Tom de Vries  <tom@codesourcery.com>
10583
10584         * omp-low.c (expand_omp_atomic_fetch_op):  Release defs of update stmt.
10585
10586 2016-01-16  Richard Sandiford  <richard.sandiford@arm.com>
10587
10588         * hash-table.h (hash_table::empty): Turn into an inline wrapper
10589         that checks whether the table is already empty.  Rename the
10590         original implementation to...
10591         (hash_table::empty_slot): ...this new private function.
10592
10593 2016-01-15  David Malcolm  <dmalcolm@redhat.com>
10594
10595         PR diagnostic/68899
10596         * diagnostic-show-locus.c (layout::print_source_line): Move x
10597         offset of line until after call to
10598         get_line_width_without_trailing_whitespace.
10599
10600 2016-01-15  Jeff Law  <law@redhat.com>
10601
10602         PR tree-optimization/69270
10603         * tree-ssanames.c (ssa_name_has_boolean_range): Moved here from
10604         tree-ssa-dom.c.  Improve test for [0..1] ranve from VRP.
10605         * tree-ssa-dom.c (ssa_name_has_boolean_range): Remove.
10606         * tree-ssanames.h (ssa_name_has_boolean_range): Prototype.
10607         * tree-ssa-uncprop.c (associate_equivalences_with_edges): Use
10608         ssa_name_has_boolean_range and constant_boolean_node.
10609
10610 2016-01-15  Vladimir Makarov  <vmakarov@redhat.com>
10611
10612         PR rtl-optimization/69030
10613         * lra-spills.c (remove_pseudos): Check nrefs and make the function
10614         returning bool.
10615         (spill_pseudos): Delete debug insn for dead pseudo.
10616         (lra_spill): Initiate spill_hard_reg and slots memory separately.
10617
10618 2016-01-15  Jiong Wang  <jiong.wang@arm.com>
10619
10620         * config/aarch64/aarch64-builtins.c (aarch64_types_unopus_qualifiers):
10621         New.
10622         (TYPES_UNOPUS): Likewise.
10623         * config/aarch64/aarch64-simd-builtins.def (lbtruncuv2sf): Correct
10624         builtin type, from UNOP to UNOPUS.
10625         (lbtruncuv4sf): Likewise.
10626         (lbtruncuv2df): Likewise.
10627         (lrounduv2sf): Likewise.
10628         (lrounduv4sf): Likewise.
10629         (lrounduv2df): Likewise.
10630         (lroundusf): Likewise.
10631         (lroundusf): Likewise.
10632         (lceiluv2sf): Likewise.
10633         (lceiluv4sf): Likewise.
10634         (lceiluv2df): Likewise.
10635         (lceilusf): Likewise.
10636         (lceiludf): Likewise.
10637         (lflooruv2sf): Likewise.
10638         (lflooruv4sf): Likewise.
10639         (lflooruv2df): Likewise.
10640         (lfloorusf): Likewise.
10641         (lfloorudf): Likewise.
10642         (lfrintnuv2sf): Likewise.
10643         (lfrintnuv4sf): Likewise.
10644         (lfrintnuv2df): Likewise.
10645         (lfrintnusf): Likewise.
10646         (lfrintnudf): Likewise.
10647         * config/aarch64/arm_neon.h (vcvt_u32_f32): Remove unncessary type
10648         conversion.
10649         (vcvtq_u32_f32): Likewise.
10650         (vcvtq_u64_f64): Likewise.
10651         (vcvta_u32_f32): Likewise.
10652         (vcvtaq_u32_f32): Likewise.
10653         (vcvtaq_u64_f64): Likewise.
10654         (vcvtm_u32_f32): Likewise.
10655         (vcvtmq_u32_f32): Likewise.
10656         (vcvtmq_u64_f64): Likewise.
10657         (vcvtn_u32_f32): Likwise.
10658         (vcvtnq_u32_f32): Likewise.
10659         (vcvtnq_u64_f64): Likewise.
10660         (vcvtp_u32_f32): Likewise.
10661         (vcvtpq_u32_f32): Likewise.
10662         (vcvtpq_u64_f64): Likewise.
10663         (vcvtmd_u64_f64): Likewise.
10664         (vcvtms_u32_f32): Likewise.
10665         (vcvtad_u64_f64): Likewise.
10666         (vcvtas_u32_f32): Likewise.
10667         (vcvtnd_u64_f64): Likewise.
10668         (vcvtns_u32_f32): Likewise.
10669         (vcvtpd_u64_f64): Likewise.
10670         (vcvtps_u32_f32): Likewise.
10671
10672 2016-01-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10673
10674         * config/aarch64/aarch64.c (aarch64_if_then_else_costs): Handle
10675         CSEL of zero_extended registers.
10676
10677 2016-01-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10678
10679         * config/aarch64/aarch64.c (aarch64_rtx_costs, COMPARE case):
10680         Handle COMPARE of ZERO_EXTRACT against zero form of TST-immediate.
10681
10682 2016-01-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10683
10684         * config/aarch64/aarch64.c (aarch64_process_one_target_attr): Return
10685         false when argument string is not found in the attributes table
10686         at all.
10687
10688 2016-01-15  David Edelsohn  <dje.gcc@gmail.com>
10689
10690         PR target/68609
10691         * config/rs6000/rs6000.c (rs6000_emit_msub): Delete.
10692         (rs6000_emit_swsqrt): Convert to Goldschmidt's Algorithm
10693         * config/rs6000/rs6000.md (sqrt<mode>2): Limit swsqrt to high
10694         precision estimate.
10695
10696 2016-01-15  Richard Biener  <rguenther@suse.de>
10697
10698         PR tree-optimization/66856
10699         * tree-vect-loop.c (vect_transform_loop): Free SLP instances here.
10700         * tree-vect-slp.c (vect_free_slp_tree): Decrement stmt reference count.
10701         (vect_create_new_slp_node): Increment stmt reference count.
10702         (vect_get_and_check_slp_defs): Make sure stmts are nor already in
10703         an SLP tree before swapping operands.
10704         (vect_build_slp_tree): Likewise.
10705         (destroy_bb_vec_info): Free stmt info after SLP instances.
10706         * tree-vect-stmts.c (new_stmt_vec_info): Initialize reference count.
10707         * tree-vectorizer.h (struct _stmt_vec_info): Add num_slp_uses field.
10708         (STMT_VINFO_NUM_SLP_USES): New macro.
10709
10710 2016-01-15  Richard Biener  <rguenther@suse.de>
10711
10712         PR debug/69137
10713         * dwarf2out.c (add_linkage_name_raw): New function split out from ...
10714         (add_linkage_name): ... here.
10715         (gen_typedef_die): Use add_linkage_name_raw instead of
10716         add_linkage_attr to delay DECL_ASSEMBLER_NAME computation
10717         if necessary.
10718
10719 2016-01-15  Cesar Philippidis  <cesar@codesourcery.com>
10720
10721         * gimplify.c (oacc_default_clause): Decode reference and pointer
10722         types for both kernels and parallel regions.
10723
10724 2016-01-15  Richard Sandiford  <richard.sandiford@arm.com>
10725
10726         PR middle-end/69246
10727         * calls.c (emit_call_1): Force n_popped to zero for sibcalls.
10728
10729 2016-01-15  Ilya Enkovich  <enkovich.gnu@gmail.com>
10730
10731         * config/i386/i386.c (scalar_chain::compute_convert_gain): Fix typo.
10732         (convert_scalars_to_vector): Likewise.
10733
10734 2016-01-15  Jonathan Wakely  <jwakely@redhat.com>
10735
10736         * doc/extend.texi (Type Traits): Fix grammar.
10737
10738 2016-01-15  Martin Jambor  <mjambor@suse.cz>
10739
10740         * tree-inline.c (remap_decl): Use existing dclarations if
10741         remapping a type and prevent_decl_creation_for_types.
10742         (replace_locals_stmt): Do an initial remapping of non-VLA typed
10743         decls first.  Do real remapping with
10744         prevent_decl_creation_for_types set.
10745         * tree-inline.h (copy_body_data): New field
10746         prevent_decl_creation_for_types, moved remap_var_for_cilk to avoid
10747         padding.
10748
10749 2016-01-15  Dominik Vogt  <vogt@linux.vnet.ibm.com>
10750
10751         * config/s390/s390.opt (mmvcle): More verbose help text.
10752
10753 2016-01-15  Dominik Vogt  <vogt@linux.vnet.ibm.com>
10754
10755         * config/s390/s390.opt: Add period to -mzvector option text.
10756
10757 2016-01-15  Richard Biener  <rguenther@suse.de>
10758
10759         PR tree-optimization/68961
10760         * tree-vect-slp.c (vect_analyze_slp_cost_1): Consider cost
10761         of invariants in stores again.
10762
10763 2016-01-15  Sebastian Huber  <sebastian.huber@embedded-brains.de>
10764
10765         * config/arm/t-rtems: Add cortex-m7/fpv5-d16 multilib.
10766
10767 2016-01-15  Ilya Enkovich  <enkovich.gnu@gmail.com>
10768
10769         * config/i386/i386.c (ix86_expand_branch): Don't split
10770         DI mode xor instruction to SI mode.
10771
10772 2016-01-15  Jan Hubicka  <hubicka@ucw.cz>
10773
10774         PR ipa/68148
10775         * ipa-icf.c (sem_function::merge): Virtual functions may become
10776         reachable even if they address is not taken and there are no
10777         idrect calls.
10778
10779 2016-01-15  Jan Hubicka  <hubicka@ucw.cz>
10780
10781         * lto-streamer-out.c (subtract_estimated_size): New function.
10782         (get_symbol_initial_value): Use it.
10783
10784 2016-01-15  Christian Bruel  <christian.bruel@st.com>
10785
10786         PR target/65837
10787         * config/arm/arm-builtins.c (ARM_BUILTIN_CRYPTO_BASE): New enum tag.
10788         (arm_init_neon_builtins_internal): Rename arm_init_neon_builtins,
10789         (arm_init_crypto_builtins_internal): Rename arm_init_crypto_builtins.
10790         use add_builtin_function_ext_scope instead of add_builtin_function.
10791         (neon_set_p, neon_crypto_set_p): Remove.
10792         (arm_init_builtins): Always call arm_init_neon_builtins and
10793         arm_init_crypto_builtins.
10794         (arm_expand_builtin): Check that builtins are allowed for the arch.
10795         * config/arm/arm-protos.h (arm_init_neon_builtins): Remove prototype.
10796         * config/arm/arm.c (arm_valid_target_attribute_tree): Remove
10797         arm_init_neon_builtins call.
10798
10799 2016-01-15  Richard Biener  <rguenther@suse.de>
10800
10801         PR tree-optimization/69117
10802         * tree-ssa-sccvn.h (struct vn_ssa_aux): Add info member.
10803         * tree-ssa-sccvn.c (set_ssa_val_to): Save and adjust SSA name info
10804         of the leader conservatively.
10805         (free_scc_vn): Restore original SSA name infos.
10806
10807 2016-01-14  Jeff Law  <law@redhat.com>
10808
10809         PR tree-optimization/69270
10810         * tree-ssa-dom.c (ssa_name_has_boolean_range): If the type has a
10811         single bit of precision, verify it's also unsigned.
10812         (record_edge_info): Use constant_boolean_node rather than fold_convert
10813         to convert boolean_true/boolean_false to the right type.
10814
10815 2016-01-14  Richard Henderson  <rth@redhat.com>
10816
10817         PR rtl-opt/69014
10818         * loop-doloop.c (record_reg_sets): New.
10819         (doloop_optimize): Reject the transform if the sequence
10820         clobbers registers live at the end of the loop block.
10821         (doloop_optimize_loops): Enable df_live if needed.
10822
10823 2016-01-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
10824
10825         * config/rs6000/rs6000-builtin.def: Revert 2016-01-13 change.
10826         * gcc/config/rs6000/rs6000.c: Likewise.
10827         * gcc/config/rs6000/rs6000.h: Likewise.
10828         * gcc/config/rs6000/rs6000.md: Likewise.
10829         * gcc/doc/extend.texi: Likewsie.
10830
10831 2016-01-14  Jeff Law  <law@redhat.com>
10832
10833         * tree-ssa-dom.c (ssa_name_has_boolean_range): Fix comment
10834         typo.
10835
10836 2016-01-14  Richard Henderson  <rth@redhat.com>
10837
10838         PR c/69272
10839         PR tree-opt/68964
10840         * trans-mem.c (tm_log_emit_stmt): Fix unit size to bit size.
10841         * tree.c (build_tm_vector_builtins): Use builtin_decl_explicit_p
10842         instead of builtin_decl_declared_p to test for declaration.
10843
10844 2016-01-14  Nicklas Bo Jensen  <nbjensen@gmail.com>
10845
10846         * doc/loop.texi (Loop Analysis and Representation): Document
10847         loop_depth function.
10848
10849 2016-01-14  Tom de Vries  <tom@codesourcery.com>
10850
10851         PR tree-optimization/68773
10852         * omp-low.c (expand_omp_target): Don't set force_output.
10853         * varpool.c (varpool_node::get_create): Same.
10854         * lto-cgraph.c (input_offload_tables): Mark entries in offload_vars and
10855         offload_funcs with force_output.
10856
10857 2016-01-14  Jakub Jelinek  <jakub@redhat.com>
10858
10859         PR debug/69244
10860         * lra-eliminations.c (move_plus_up): Don't change anything if either
10861         the outer or inner subreg mode is not MODE_INT.
10862         * dwarf2out.c (mem_loc_descriptor): For SUBREG, if outer mode is
10863         integral <= DWARF2_ADDR_SIZE, convert to untyped afterwards.
10864
10865 2016-01-14  Alan Lawrence  <alan.lawrence@arm.com>
10866
10867         * doc/md.texi (reduc_smin_@var{m}, reduc_smax_@var{m},
10868         reduc_umin_@var{m}, reduc_umax_@var{m}, reduc_splus_@var{m},
10869         reduc_uplus_@var{m}): Remove.
10870         * expr.c (expand_expr_real_2): Remove expansion path for
10871         reduc_[us](min|max|plus) optabs.
10872         * optabs-tree.c (scalar_reduc_to_vector): Remove.
10873         * optabs-tree.h (scalar_reduc_to_vector): Remove.
10874         * optabs.def (reduc_smax_optab, reduc_smin_optab, reduc_splus_optab,
10875         reduc_umax_optab, reduc_umin_optab, reduc_uplus_optab): Remove.
10876         * tree-vect-loop.c (vectorizable_reduction): Remove test for
10877         reduc_[us](min|max|plus) optabs.
10878
10879 2016-01-14  Alan Lawrence  <alan.lawrence@arm.com>
10880
10881         * config/mips/mips-ps-3d.md (reduc_splus_v2sf): Remove.
10882         (reduc_plus_scal_v2sf): New.
10883         (reduc_smax_v2sf): Rename to...
10884         (reduc_smax_scal_v2sf): ...here, make result SFmode, add vec_extract.
10885         (reduc_smin_v2sf): Rename to...
10886         (reduc_smin_scal_v2sf): ...here, make result SFmode, add vec_extract.
10887
10888 2016-01-14  Jan Hubicka  <hubicka@ucw.cz>
10889
10890         * alias.c (compare_base_symbol_refs): New function.
10891         (rtx_equal_for_memref_p, base_alias_check, memrefs_conflict_p): Use
10892         it.
10893
10894 2016-01-14  Jakub Jelinek  <jakub@redhat.com>
10895
10896         PR middle-end/68146
10897         PR tree-optimization/69155
10898         * tree-complex.c: Include cfganal.h.
10899         (phis_to_revisit): New variable.
10900         (extract_component): Add phiarg_p argument.  Assert that returned
10901         SSA_NAME has non-NULL SSA_NAME_DEF_STMT unless phiarg_p is true.
10902         (update_phi_components): Partly rewrite to use loop over real/imag
10903         components instead of code duplication.  If extract_component returns
10904         SSA_NAME with NULL SSA_NAME_DEF_STMT, store SSA_NAME_VAR or
10905         create_tmp_reg into the PHI node instead, and mention the phi triplet
10906         in phis_to_revisit.
10907         (tree_lower_complex): Walk bbs in rpo order.  Adjust phis recorded
10908         in phis_to_revisit at the end.
10909
10910 2016-01-14  Richard Biener  <rguenther@suse.de>
10911
10912         PR tree-optimization/68060
10913         * tree-vect-loop.c (vect_is_simple_reduction): Check the
10914         outer loop reduction is only used in the inner loop before
10915         detecting a double reduction.
10916
10917 2016-01-14  Jakub Jelinek  <jakub@redhat.com>
10918
10919         PR target/68269
10920         * combine.c (expand_field_assignment): Punt if compute_mode is
10921         unsupported scalar mode.
10922
10923 2016-01-14  Richard Biener  <rguenther@suse.de>
10924
10925         PR tree-optimization/66856
10926         * tree-vect-slp.c (vect_build_slp_tree): Refactor to build
10927         SLP node only if it built successfully.
10928         (vect_analyze_slp_instance): Adjust.
10929
10930 2016-01-14  Jeff Law  <law@redhat.com>
10931
10932         PR tree-optimization/69270
10933         * tree-ssa-dom.c (ssa_name_has_boolean_range): New function.
10934         (record_edge_info): Use it.  Convert boolean_{true,false}_node
10935         to the type of op0.
10936
10937 2016-01-13  Jan Hubicka  <hubicka@ucw.cz>
10938
10939         PR ipa/66487
10940         * ipa-polymorphic-call.c (inlined_polymorphic_ctor_dtor_block_p):
10941         use block_ultimate_origin
10942         (noncall-stmt_may_be_vtbl_ptr_store): Likewise.
10943
10944 2016-01-13  Sandra Loosemore  <sandra@codesourcery.com>
10945
10946         * doc/invoke.texi (Submodel Options): Rename section to
10947         "Machine-Dependent Options" to better reflect its content.
10948         Rewrite introductory text to remove archaic CPU names.
10949         Update references.
10950
10951 2016-01-13  Sandra Loosemore  <sandra@codesourcery.com>
10952
10953         * doc/invoke.texi (Code Gen Options): Move section up in file,
10954         before target-specific options.  Update menu and option summary
10955         to reflect the new section ordering.
10956
10957 2016-01-13  Jonathan Wakely  <jwakely@redhat.com>
10958
10959         * doc/invoke.texi (C Dialect Options): Adjust -std default for C++.
10960         (C++ Dialect Options): Add cross-reference to -std option.
10961         * doc/standards.texi (C++ Language): Document C++14 support.
10962
10963 2016-01-13  Michael Meissner  <meissner@linux.vnet.ibm.com>
10964
10965         * config/rs6000/rs6000-builtin.def (BU_FLOAT128_2): Add support
10966         for pack/unpack functions for __ibm128.
10967         (PACK_IF): Likewise.
10968         (UNPACK_IF): Likewise.
10969
10970         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
10971         support for __ibm128 pack/unpack functions.
10972         (rs6000_invalid_builtin): Likewise.
10973         (rs6000_init_builtins): Likewise.
10974         (rs6000_opt_masks): Likewise.
10975
10976         * config/rs6000/rs6000.h (MASK_FLOAT128): Add short name.
10977         (RS6000_BTM_FLOAT128): Add support for __ibm128 pack/unpack
10978         functions
10979         (RS6000_BTM_COMMON): Likewise.
10980
10981         * config/rs6000/rs6000.md (f128_vsx): New mode attribute.
10982         (unpack<mode>): Use FMOVE128_FPR iterator instead of FMOVE128, to
10983         disallow __builtin_{pack,unpack}_longdouble if long double is IEEE
10984         128-bit floating point.  Add support for the double values to be
10985         in Altivec registers for TF/IF packing and unpacking, but restrict
10986         TD packing sub-fields to be FPR registers.  Don't allow overlapped
10987         register support for packing.  Allow pack inputs to be memory
10988         locations.  Don't build generator functions for unpack<mode>_dm
10989         and unpack<mode>_nodm.
10990         (unpack<mode>_dm): Likewise.
10991         (unpack<mode>_nodm): Likewise.
10992         (pack<mode>): Likewise.
10993
10994         * config/rs6000/rs6000-builtin.def (__builtin_pack_ibm128): Add
10995         built-in functions to pack/unpack explicit __ibm128 values.
10996         (__builtin_unpack_ibm128): Likewise.
10997
10998         * doc/extend.texi (PowerPC Built-in Functions): Document
10999         __builtin_pack_ibm128 and __builtin_unpack_ibm128.
11000
11001 2016-01-13  Bernd Schmidt  <bschmidt@redhat.com>
11002
11003         PR c/66208
11004         * c-common.c (check_function_nonnull): Remove unnecessary declaration.
11005         Add new arg loc and pass it down as context.
11006         (check_nonnull_arg): Don't mark ctx arg as unused. Use it as a pointer
11007         to the location to use for the warning.
11008         (check_function_arguments): New arg loc.  All callers changed.  Pass
11009         it to check_function_nonnull.
11010         * c-common.h (check_function_arguments): Adjust declaration.
11011
11012 2016-01-13  Jakub Jelinek  <jakub@redhat.com>
11013
11014         PR tree-optimization/69156
11015         * gimple.c (validate_type): Removed.
11016         (gimple_builtin_call_types_compatible_p): Use
11017         useless_type_conversion_p instead of validate_type.
11018         * value-prof.c (gimple_stringop_fixed_value): Fold
11019         icall_size to correct type.
11020
11021 2016-01-13  Jonathan Wakely  <jwakely@redhat.com>
11022
11023         * doc/extend.texi (__atomic Builtins): Clarify compare_exchange
11024         effects.
11025
11026 2016-01-13  Richard Henderson  <rth@redhat.com>
11027
11028         PR tree-opt/68964
11029         * target.def (builtin_tm_load, builtin_tm_store): Remove.
11030         * config/i386/i386.c (ix86_builtin_tm_load): Remove.
11031         (ix86_builtin_tm_store): Remove.
11032         (TARGET_VECTORIZE_BUILTIN_TM_LOAD): Remove.
11033         (TARGET_VECTORIZE_BUILTIN_TM_STORE): Remove.
11034         * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_TM_LOAD): Remove.
11035         (TARGET_VECTORIZE_BUILTIN_TM_STORE): Remove.
11036         * doc/tm.texi: Rebuild.
11037
11038         * gtm-builtins.def (BUILT_IN_TM_MEMCPY_RNWT): New.
11039         (BUILT_IN_TM_MEMCPY_RTWN): New.
11040         * trans-mem.c (tm_log_emit_stmt): Rearrange code for better
11041         fallback from vector to integer helpers.
11042         (build_tm_load): Handle vector types directly, instead of
11043         via target hook.
11044         (build_tm_store): Likewise.
11045         (expand_assign_tm): Prepare for register types not handled by
11046         the above.  Copy them to memory and use memcpy.
11047         * tree.c (tm_define_builtin): New.
11048         (find_tm_vector_type): New.
11049         (build_tm_vector_builtins): New.
11050         (build_common_builtin_nodes): Call it.
11051
11052 2016-01-13  Uros Bizjak  <ubizjak@gmail.com>
11053
11054         * config/i386/i386.h (TARGET_FLT_EVAL_METHOD): Return -1 for
11055         TARGET_SSE_MATH without TARGET_SSE2.  Rewrite.
11056
11057 2016-01-13  Tom de Vries  <tom@codesourcery.com>
11058
11059         PR tree-optimization/69169
11060         * tree-ssa-structalias.c (create_variable_info_for_1): Add and handle
11061         handled_struct_type param.
11062         (create_variable_info_for, intra_create_variable_infos): Call
11063         create_variable_info_for_1 with extra arg.
11064
11065 2016-01-13  Yvan Roux  <yvan.roux@linaro.org>
11066
11067         * config/arm/arm-arches.def: Remove spurious whitespace in "armv8.1-a"
11068         and "armv8.1-a+crc" entries.
11069
11070 2016-01-13  Alexander Fomin  <alexander.fomin@intel.com>
11071
11072         PR target/69228
11073         * config/i386/sse.md (define_expand "avx512pf_gatherpf<mode>sf"):
11074         Change first operand predicate from register_or_constm1_operand
11075         to register_operand.
11076         (define_expand "avx512pf_gatherpf<mode>df"): Likewise.
11077         (define_expand "avx512pf_scatterpf<mode>sf"): Likewise.
11078         (define_expand "avx512pf_scatterpf<mode>df"): Likewise.
11079         (define_insn "*avx512pf_gatherpf<mode>sf"): Remove.
11080         (define_insn "*avx512pf_gatherpf<mode>df"): Likewise.
11081         (define_insn "*avx512pf_scatterpf<mode>sf"): Likewise.
11082         (define_insn "*avx512pf_scatterpf<mode>df"): Likewise.
11083         * config/i386/i386.c (ix86_expand_builtin): Remove first operand
11084         comparison with constm1_rtx from vec_prefetch_gen part.
11085
11086 2016-01-13  Richard Biener  <rguenther@suse.de>
11087
11088         PR tree-optimization/69013
11089         * tree-ssa-uninit.c (prune_uninit_phi_opnds_in_unrealizable_paths):
11090         Exchange assert for a test.
11091
11092 2016-01-13  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
11093
11094         PR target/69247
11095         * config/s390/s390.md (bswaphi splitter): Use simplify_gen_subreg.
11096
11097 2016-01-13  Richard Biener  <rguenther@suse.de>
11098
11099         PR tree-optimization/69242
11100         * tree-ssa-sccvn.c (visit_reference_op_load): Replace bogus
11101         assert with a check.
11102
11103 2016-01-13  Richard Biener  <rguenther@suse.de>
11104
11105         PR tree-optimization/69186
11106         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
11107         Properly guard vect_update_misalignment_for_peel call.
11108
11109 2016-01-12  Jeff Law  <law@redhat.com>
11110
11111         PR tree-optimization/pr67755
11112         * tree-ssa-threadupdate.c (struct ssa_local_info_t): Add new field
11113         "need_profile_correction".
11114         (thread_block_1): Initialize new field to false by default.  If we
11115         have multiple thread paths through a common joiner to different
11116         final targets, then set new field to true.
11117         (compute_path_counts): Only do count adjustment when it's really
11118         needed.
11119
11120 2016-01-12  Sandra Loosemore  <sandra@codesourcery.com>
11121
11122         * doc/invoke.texi (Spec Files): Move section down in file, past
11123         all command-line option descriptions.
11124
11125 2016-01-12  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11126
11127         PR middle-end/54809
11128         * doc/gty.texi: Remove documentation of mark_hook.
11129         * gengtype.c (struct write_types_data): Remove code to support
11130         mark_hook attribute.
11131         (walk_type): Likewise.
11132         (write_func_for_structure): Likewise.
11133
11134 2016-01-12  Sandra Loosemore  <sandra@codesourcery.com>
11135
11136         * doc/invoke.texi (Option Summary) Move -no-canonical-prefixes to
11137         Directory Options, and -specs= to Overall Options.
11138         (Overall Options): Adjust similarly.  Reorder to group related
11139         options together.  Make -specs= cross-reference the spec file details.
11140         (Directory Options): Adjust similarly.
11141
11142 2016-01-12  Jeff Law  <law@redhat.com>
11143
11144         * tree-ssa-threadupdate.c: Various whitespace and typo fixes.
11145
11146 2016-01-12  Olivier Hainque  <hainque@adacore.com>
11147
11148         * gcc.c (spec_undefvar_allowed): New global.
11149         (process_command): Set to true when running for --version or --help,
11150         alone or together.
11151         (getenv_spec_function): When the variable is not defined, use the
11152         variable name as the variable value if we're allowed not to issue
11153         a fatal error.
11154
11155 2016-01-12  Bin Cheng  <bin.cheng@arm.com>
11156
11157         PR tree-optimization/68911
11158         * tree-vrp.c (adjust_range_with_scev): Check overflow in range
11159         information computed for expression "init + nit * step".
11160
11161 2016-01-12  Sandra Loosemore  <sandra@codesourcery.com>
11162
11163         * doc/invoke.texi (Invoking GCC): Copy-edit.  Incorporate information
11164         about name of GCC executable.  Remove deleted node from menu.
11165         (Directory Options) <-B>: Remove cross-reference to deleted node.
11166         (Target Options): Delete section.
11167
11168 2016-01-12  Christian Bruel  <christian.bruel@st.com>
11169
11170         PR target/69180
11171         * config/arm/arm-c.c (arm_pragma_target_parse): Set NODE_CONDITIONAL
11172         for __ARM_NEON_FP, __ARM_FP, _ARM_FEATURE_LDREX.
11173
11174 2016-01-12  Jakub Jelinek  <jakub@redhat.com>
11175
11176         PR target/69198
11177         * config/i386/i386.c (ix86_expand_special_args_builtin): Ensure
11178         aligned_mem is properly set for AVX512-VL floating point masked
11179         stores.
11180
11181         PR target/69175
11182         * ifcvt.c (cond_exec_process_if_block): When removing the last
11183         insn from then_bb, remove also any possible barriers that follow it.
11184
11185 2016-01-12  H.J. Lu  <hongjiu.lu@intel.com>
11186
11187         PR target/68456
11188         PR target/69226
11189         * config/i386/iamcu.h (SIZE_TYPE): New macro.
11190         (PTRDIFF_TYPE): Likewise.
11191         (WCHAR_TYPE): Likewise.
11192         (WCHAR_TYPE_SIZE): Likewise.
11193         (STDINT_LONG32): Likewise.
11194
11195 2016-01-12  Richard Biener  <rguenther@suse.de>
11196
11197         PR tree-optimization/69053
11198         * tree-vect-loop.c (get_initial_def_for_reduction): Properly
11199         convert initial value for cond reductions.
11200
11201 2016-01-12  Richard Biener  <rguenther@suse.de>
11202
11203         PR tree-optimization/69007
11204         * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Move
11205         widen_sum after dot_prod and sad.
11206
11207 2016-01-12  Richard Biener  <rguenther@suse.de>
11208
11209         PR tree-optimization/69168
11210         * tree-vect-loop.c (vect_analyze_loop_2): Reset both main and
11211         pattern stmt SLP type.
11212         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Patterns may
11213         end up unused so cope with that case.
11214
11215 2016-01-12  Richard Biener  <rguenther@suse.de>
11216
11217         PR tree-optimization/69157
11218         * tree-vect-stmts.c (vectorizable_mask_load_store): Check
11219         stmts def type only during analyze phase.
11220         (vectorizable_call): Likewise.
11221         (vectorizable_simd_clone_call): Likewise.
11222         (vectorizable_conversion): Likewise.
11223         (vectorizable_assignment): Likewise.
11224         (vectorizable_shift): Likewise.
11225         (vectorizable_operation): Likewise.
11226         (vectorizable_store): Likewise.
11227         (vectorizable_load): Likewise.
11228
11229 2016-01-12  Richard Biener  <rguenther@suse.de>
11230
11231         PR tree-optimization/69174
11232         * tree-vect-stmts.c (vect_mark_relevant): Remove excessive vertical
11233         space.
11234         (vectorizable_load): Properly compute the number of loads needed
11235         for permuted strided SLP loads and do not spuriously assign
11236         to SLP_TREE_VEC_STMTS.
11237
11238 2016-01-12  Andris Pavenis  <andris.pavenis@iki.fi>
11239
11240         * config/i386/djgpp.h (PREFERRED_DEBUGGING_TYPE): Define to DWARF2
11241         (TARGET_ASM_OUTPUT_IDENT): Define to default_asm_output_ident_directive
11242         (MD_EXEC_PREFIX): Remove.
11243         (MD_STARTFILE_PREFIX) Removee.
11244         (FILE_NAME_ABSOLUTE_P): Remove.
11245         (CPP_SPEC): Do not read macros from sys/version.h.
11246         (LINK_COMMAND_SPEC): Remove.
11247         (LOCAL_INCLUDE_DIR): Remove.
11248         (TARGET_ASM_NAMED_SECTION): Define to i386_djgpp_asm_named_section
11249         (TARGET_OS_CPP_BUILTINS): Add DJGPP (non ISO only), __DJGPP, __DJGPP__, unix.
11250         (POST_LINK_SPEC): Define to invoke stubify after linker
11251         (LIBSTDCXX): Remove define
11252         (DBX_REGISTER_NUMBER): Define to svr4_dbx_register_map.
11253         (DEFAULT_PCC_STRUCT_RETURN): Define to 1.
11254         (SUBTARGET_OVERRIDE_OPTIONS): Remove warning about -mbnu2210.
11255         (SUBTARGET_OVERRIDE_OPTIONS): Ignore -fPIC and generate message.
11256         (SUBTARGET_OVERRIDE_OPTIONS): Default to DWARF2 debugging info.
11257         (IX86_MAYBE_NO_LIBGCC_TFMODE): Remove.
11258         (i386_djgpp_asm_named_section): Add propotype of new procedure
11259
11260         * config/i386/xm-djgpp.h (NATIVE_SYSTEM_HEADER_DIR): Define.
11261         (MD_EXEC_PREFIX): Define (moved from config/i386/djgpp.h).
11262         (STANDARD_STARTFILE_PREFIX_1): Define (moved from MD_STARTFILE_PREFIX
11263         in config/i386/djgpp.h).
11264         (STANDARD_STARTFILE_PREFIX_2): Define identical to
11265         STANDARD_STARTFILE_PREFIX_1.
11266         (LOCAL_INCLUDE_DIR): Define (moved from config/i386/djgpp.h).
11267         (GCC_DRIVER_HOST_INITIALIZATION): Fix reporting fatal
11268         installation errors.
11269         (MAX_OFILE_ALIGNMENT): Define to 128.
11270         (HAVE_FTW_H): Undefine as DJGPP do not have nftw, but have ftw.h.
11271
11272         * config/i386/djgpp.c: New file. Add implementation of
11273         i386_djgpp_asm_named_section.
11274
11275         * config/i386/djgpp.opt: Remove obsolete option -mbnu210.
11276
11277         * config/i386/t-djgpp: New file. Add djgpp.o to EXTRA_OBJS.
11278         Add rule for building djgpp.o.
11279
11280 2016-01-11  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
11281
11282         * config/rs6000/rs6000.c (v2df_reduction_p): New function.
11283         (rtx_is_swappable_p): Reductions are swappable.
11284         (insn_is_swappable_p): V2DF reductions are swappable.
11285
11286 2016-01-11  John David Anglin  <danglin@gcc.gnu.org>
11287
11288         * config/pa/pa.c (pa_emit_move_sequence): Handle floating point
11289         reloads for other unsupported memory operands.
11290
11291 2016-01-12  Kugan Vivekanandarajah  <kuganv@linaro.org>
11292             Jim Wilson  <jim.wilson@linaro.org>
11293
11294         PR target/69194
11295         * config/arm/arm-builtins.c (arm_expand_neon_args): Call
11296         copy_to_mode_reg instead of force_reg.
11297
11298 2016-01-11  H.J. Lu  <hongjiu.lu@intel.com>
11299
11300         PR target/69225
11301         * config/i386/i386.h (TARGET_FLT_EVAL_METHOD): Set to 2 only if
11302         TARGET_80387 is true.
11303
11304 2016-01-11  Jakub Jelinek  <jakub@redhat.com>
11305
11306         PR target/69071
11307         * lra-eliminations.c (move_plus_up): Only move plus up
11308         if subreg of the constant can be simplified into constant
11309         and use the simplified subreg of the constant instead of
11310         the original constant.
11311
11312         * fold-const.c (fold_convertible_p): Don't return true
11313         for conversion of VECTOR_TYPE to same sized integral type.
11314         (fold_convert_loc): Fix up formatting.  Fold conversion of
11315         VECTOR_TYPE to same sized integral type using VIEW_CONVERT_EXPR
11316         instead of NOP_EXPR.
11317
11318         PR tree-optimization/69214
11319         * tree-vrp.c (simplify_cond_using_ranges): Don't propagate
11320         innerop into a comparison if SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
11321         Formatting fix.
11322
11323         PR tree-optimization/69207
11324         * tree-vect-slp.c (vect_get_constant_vectors): For
11325         VECTOR_BOOLEAN_TYPE_P, assert op has integral type instead of
11326         fold_convertible_p to vector_type's element type, and always
11327         use VCE for non-VECTOR_BOOLEAN_TYPE_P.
11328
11329 2016-01-11  Richard Biener  <rguenther@suse.de>
11330
11331         PR tree-optimization/69173
11332         * tree-vect-loop.c (vect_fixup_scalar_cycles_with_patterns): Only
11333         fixup the cycle if all stmts are in a pattern.
11334
11335 2016-01-11  Uros Bizjak  <ubizjak@gmail.com>
11336
11337         PR middle-end/68999
11338         * alias.c (base_alias_check): Move check for addresses with
11339         alignment ANDs before the call for compare_base_decls.
11340         (memrefs_conflict_p): Return -1 for different decls
11341         that went through alignment adjustments.
11342
11343 2016-01-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11344
11345         PR rtl-optimization/68796
11346         * config/aarch64/aarch64.md (*and<mode>_compare0): New pattern.
11347         * config/aarch64/aarch64.c (aarch64_select_cc_mode): Handle HImode
11348         and QImode comparisons against zero with CC_NZmode.
11349         * config/aarch64/iterators.md (short_mask): New mode_attr.
11350
11351 2016-01-11  H.J. Lu  <hongjiu.lu@intel.com>
11352
11353         * config/i386/sse.md (<avx512>_load<mode>_mask): Remove snprintf.
11354         (<avx512>_store<mode>_mask): Likewise.
11355
11356 2016-01-11  Bernd Schmidt  <bschmidt@redhat.com>
11357             Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11358
11359         PR rtl-optimization/68841
11360         * ifcvt.c (struct noce_if_info): Add orig_x field.
11361         (bbs_ok_for_cmove_arith): Add to_rename parameter.
11362         Don't record conflicts on to_rename if it's present.
11363         Allow memory destinations in sets.
11364         (noce_try_cmove_arith): Call bbs_ok_for_cmove_arith even on simple
11365         blocks, passing orig_x to the checks.
11366         (noce_process_if_block): Set if_info->orig_x appropriately.
11367
11368 2016-01-11  Tom de Vries  <tom@codesourcery.com>
11369
11370         PR tree-optimization/69069
11371         * tree-parloops.c (create_parallel_loop): Add missing phi args.
11372
11373 2016-01-11  Yuri Rumyantsev  <ysrumyan@gmail.com>
11374
11375         PR rtl-optimization/68920
11376         * config/i386/i386.c (ix86_option_override_internal): Restrict number
11377         of conditional moves for  RTL if-conversion to 1 for
11378         TARGET_ONE_IF_CONV_INSN.
11379         * config/i386/i386.h (TARGET_ONE_IF_CONV_INSN): New macros.
11380         * config/i386/x86-tune.def (X86_TUNE_ONE_IF_CONV_INSN): New macros.
11381         * params.def (PARAM_MAX_RTL_IF_CONVERSION_INSNS) : Introduce new
11382         parameter to restirct number of conditional moves for
11383         RTL if-conversion.
11384         * doc/invoke.texi (max-rtl-if-conversion-insns): Document it.
11385         * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Limit number of
11386         conditionl moves.
11387
11388 2016-01-11  Alexandre Oliva  <aoliva@redhat.com>
11389
11390         PR bootstrap/69123
11391         * var-tracking.c (drop_overlapping_mem_locs): Operate on all
11392         onepart vars.  Fix typo in comment.  Fix reversed condition in
11393         unshare test.
11394         (dataflow_set_remove_mem_locs): Operate on all onepart vars.
11395
11396         PR bootstrap/69123
11397         * var-tracking.c (dump_onepart_variable_differences): New.
11398         (dataflow_set_different): If a detailed dump is requested,
11399         delay early returns and dump differences between onepart
11400         variables present before and after, and added variables.
11401
11402 2016-01-11  Ilya Enkovich  <enkovich.gnu@gmail.com>
11403
11404         PR target/69010
11405         * expr.c (expand_expr_real_1): For boolean vector constants
11406         with a scalar mode use const_scalar_mask_from_tree.
11407         (const_scalar_mask_from_tree): New.
11408         * optabs.c (expand_vec_cond_mask_expr): Use mask mode
11409         assigned to a mask type to handle constants.
11410
11411 2016-01-11  Martin Jambor  <mjambor@suse.cz>
11412
11413         PR ipa/69044
11414         * ipa-cp.c (estimate_local_effects): Do not clone for removal of
11415         useless parameters if we cannot change function signature.
11416
11417 2016-01-11  Martin Jambor  <mjambor@suse.cz>
11418
11419         PR ipa/66616
11420         * cgraphclones.c (duplicate_thunk_for_node): Copy can_change_signature
11421         flag.
11422
11423 2016-01-11  Tom de Vries  <tom@codesourcery.com>
11424
11425         PR tree-optimization/69109
11426         * tree-parloops.c (try_transform_to_exit_first_loop_alt): Don't allow
11427         latch with phi.
11428
11429 2016-01-11  Tom de Vries  <tom@codesourcery.com>
11430
11431         PR tree-optimization/69108
11432         * tree-parloops.c (gather_scalar_reductions): Handle case that outer phi
11433         res is not used in a phi.
11434
11435 2016-01-11  Yury Gribov  <y.gribov@samsung.com>
11436
11437         PR 67425
11438         * common.opt (frandom-seed): Fix parameter name.
11439         * doc/invoke.texi (frandom-seed): Ditto and describe parameter.
11440
11441 2016-01-11  Tom de Vries  <tom@codesourcery.com>
11442
11443         PR tree-optimization/69058
11444         * tree-parloops.c (pass_parallelize_loops::execute): Return 0 if libgomp
11445         not supported.
11446
11447 2016-01-11  Andrew Burgess  <andrew.burgess@embecosm.com>
11448
11449         * config/arc/arc.opt (mdiv-rem): Add period to the end.
11450         (mcode-density): Likewise.
11451
11452 2016-01-10  Tom de Vries  <tom@codesourcery.com>
11453
11454         PR tree-optimization/69062
11455         * tree-parloops.c (loop_has_phi_with_address_arg): New function.
11456         (parallelize_loops): Don't paralelize loop that has phi with address
11457         arg.
11458
11459 2016-01-10  Tom de Vries  <tom@codesourcery.com>
11460
11461         PR tree-optimization/69039
11462         * tree-parloops.c (try_create_reduction_list): Only allow single exit
11463         phi for reduction.
11464
11465 2016-01-09  John David Anglin  <danglin@gcc.gnu.org>
11466
11467         PR middle-end/68743
11468         * match.pd: Require target has function_c99_misc before doing
11469         truncl(extend(x)) and trunc(extend(x)) -> extend(truncf(x)), etc.
11470
11471 2016-01-09  Gerald Pfeifer  <gerald@pfeifer.com>
11472
11473         * configure.ac (isl_options_set_schedule_serialize_sccs): Also
11474         use GMPINC.
11475         * configure: Regenerate.
11476
11477 2016-01-09  Jakub Jelinek  <jakub@redhat.com>
11478
11479         PR middle-end/50865
11480         PR tree-optimization/69097
11481         * fold-const.h (expr_not_equal_to): New prototype.
11482         * fold-const.c: Include stringpool.h and tree-ssanames.h.
11483         (expr_not_equal_to): New function.
11484         * match.pd (X % -Y is the same as X % Y): Don't optimize
11485         unless X is known not to be equal to minimum or Y is known
11486         not to be equal to -1.
11487         * tree-vrp.c (simplify_div_or_mod_using_ranges): Add GSI argument.
11488         fold TRUNC_MOD_EXPR if the second argument is not a power of two.
11489         (simplify_stmt_using_ranges): Adjust caller.
11490         (vrp_finalize): Call set_value_range on SSA_NAMEs before calling
11491         substitute_and_fold.
11492
11493 2016-01-09  Jan Hubicka  <hubicka@ucw.cz>
11494
11495         * ipa-icf.c (sem_item_optimizer::merge_classes): Do not ICE on VAR_DECL
11496         w/o DECL_NAME.
11497
11498 2016-01-08  Jakub Jelinek  <jakub@redhat.com>
11499
11500         PR tree-optimization/69167
11501         * gimple-fold.c (replace_stmt_with_simplification): Also punt if
11502         new SSA_NAME_OCCURS_IN_ABNORMAL_PHI SSA_NAMEs appear in operands of
11503         ops[0] comparison.
11504         * gimple-match-head.c (maybe_push_res_to_seq): Likewise.
11505
11506 2016-01-08  Alan Lawrence  <alan.lawrence@arm.com>
11507             Richard Biener  <rguenther@suse.de>
11508
11509         PR tree-optimization/68707
11510         * tree-vect-slp.c (vect_analyze_slp_instance): Cancel permuted SLP
11511         instances that can be handled via vect_load_lanes.
11512
11513 2016-01-08  Uros Bizjak  <ubizjak@gmail.com>
11514
11515         * symtab.c (symtab_node::equal_address_to): Return -1 instead of 2
11516         if we can't determine address equivalence.
11517         * alias.c (compare_base_decl): Update for changed return value of
11518         symtab_node::equal_address_to.
11519
11520 2016-01-08  Jason Merrill  <jason@redhat.com>
11521
11522         PR c++/68983
11523         PR c++/67557
11524         * function.c (assign_temp): Guard against TREE_ADDRESSABLE types here.
11525         * expr.c (store_field): Not here.
11526         * tree-cfgcleanup.c (fixup_noreturn_call): Don't clear LHS of a
11527         call with TREE_ADDRESSABLE type.
11528         * tree-cfg.c (verify_gimple_call): Adjust.
11529
11530 2016-01-08  Olivier Hainque  <hainque@adacore.com>
11531
11532         * config/vxworks.h (VXWORKS_LIBGCC_SPEC): Don't link shared RTPs with
11533         libc_internal.
11534
11535 2016-01-08  Alan Lawrence  <alan.lawrence@arm.com>
11536
11537         * gcc.target/rs6000/paired.md (reduc_smax_v2sf): Rename to...
11538         (reduc_smax_scal_v2sf): ...here, make result SFmode, extract element.
11539         (reduc_smin_v2sf): Rename to...
11540         (reduc_smin_scal_v2sf): ...here, make result SFmode, extract element.
11541         (reduc_splus_v2sf): Rename to...
11542         (reduc_plus_scal_v2sf): ...here, make result SFmode, extract element.
11543
11544 2016-01-08  Jakub Jelinek  <jakub@redhat.com>
11545
11546         PR tree-optimization/69162
11547         * gimplify.c (gimplify_va_arg_expr): Encode original type of
11548         valist argument in another argument.
11549         (gimplify_modify_expr): Adjust for the above change.  Cleanup.
11550         * tree-stdarg.c (expand_ifn_va_arg_1): Use new 3rd argument
11551         to determine the va_list type, build a MEM_REF instead of
11552         build_fold_indirect_ref.
11553
11554         PR tree-optimization/69172
11555         * gimple-fold.c (gimple_fold_builtin_memory_chk): Pass type to
11556         gimple_build.
11557
11558 2016-01-08  Thomas Preud'homme  <thomas.preudhomme@arm.com>
11559
11560         PR tree-optimization/67781
11561         * tree-ssa-math-opts.c (find_bswap_or_nop): Zero out bytes in cmpxchg
11562         and cmpnop in two steps: first the ones not accessed in original
11563         gimple expression in a endian independent way and then the ones not
11564         accessed in the final result in an endian-specific way.
11565
11566 2016-01-08  Jakub Jelinek  <jakub@redhat.com>
11567
11568         PR tree-optimization/69083
11569         * tree-vect-slp.c (vect_get_constant_vectors): For
11570         VECTOR_BOOLEAN_TYPE_P assert op is fold_convertible_p to vector_type's
11571         element type.  If op is fold_convertible_p to vector_type's element
11572         type, use NOP_EXPR instead of VCE.
11573
11574 2016-01-08  Segher Boessenkool  <segher@kernel.crashing.org>
11575
11576         PR rtl-optimization/67778
11577         PR rtl-optimization/68634
11578         PR rtl-optimization/68909
11579         * shrink-wrap.c (try_shrink_wrapping): Add comment.  Don't pop
11580         block from the stack until done with it.  Remove a superfluous
11581         bitmap set.  Remove a superfluous bitmap test.
11582
11583 2016-01-07  Martin Sebor  <msebor@redhat.com>
11584
11585         PR c/68966
11586         * doc/extend.texi (__atomic Builtins, __sync Builtins): Document
11587         constraint on the type of arguments.
11588
11589 2016-01-07  Andreas Tobler  <andreast@gcc.gnu.org>
11590
11591         * config/arm/freebsd.h: Rename SUBTARGET_OVERRIDE_OPTIONS to
11592         SUBTARGET_OVERRIDE_INTERNAL_OPTIONS. Adjust to check
11593         unaligned_access on the gcc_options set.
11594         * config/arm/arm.c (arm_option_override_internal): Use
11595         SUBTARGET_OVERRIDE_INTERNAL_OPTIONS.
11596
11597 2016-01-07  Uros Bizjak  <ubizjak@gmail.com>
11598
11599         PR target/69140
11600         * config/i386/i386.c (ix86_frame_pointer_required): Enable
11601         frame pointer for TARGET_64BIT_MS_ABI when stack is misaligned.
11602
11603 2016-01-07  Uros Bizjak  <ubizjak@gmail.com>
11604
11605         Revert
11606         2016-01-06  Uros Bizjak  <ubizjak@gmail.com>
11607
11608         PR target/69140
11609         * config/i386/i386.c (ix86_expand_prologue): Declare fs.sp_valid
11610         depending on frame_pointer_needed before remaining integer and SSE
11611         registers are saved.
11612
11613 2016-01-07  Sandra Loosemore  <sandra@codesourcery.com>
11614
11615         PR 1078
11616         * doc/extend.texi (Nvidia PDX Function Attributes): New section.
11617
11618 2016-01-07  H.J. Lu  <hongjiu.lu@intel.com>
11619
11620         PR target/69171
11621         * config/i386/sse.md (<sse>_sqrt<mode>2<mask_name><round_name>):
11622         Use the "xBm" constraint.
11623         (float<sseintvecmodelower><mode>2<mask_name><round_name):
11624         Likewise.
11625         (sse_cvtsi2ss<round_name>): Use round_nimm_scalar_predicate.
11626         (sse_cvtsi2ssq<round_name>): Likewise.
11627         (sse_cvtss2si<round_name>): Likewise.
11628         (sse_cvtss2siq<round_name>): Likewise.
11629         (sse2_cvtsi2sdq<round_name>): Likewise.
11630         (sse2_cvtsd2si<round_name>): Likewise.
11631         (sse2_cvtsd2siq<round_name>): Likewise.
11632         * config/i386/subst.md (round_nimm_scalar_predicate): New
11633         predicate.
11634
11635 2015-12-15  Bernd Schmidt  <bschmidt@redhat.com>
11636
11637         PR middle-end/67639
11638         * varasm.c (make_decl_rtl): Mark invalid register vars as
11639         DECL_EXTERNAL.
11640
11641         PR rtl-optimization/66206
11642         * bt-load.c (find_btr_use): Change first arg to be a pointer to an rtx.
11643         All callers changed.
11644
11645 2016-01-07  Jakub Jelinek  <jakub@redhat.com>
11646
11647         PR tree-optimization/69141
11648         * tree-ssa-pre.c: Include langhooks.h.
11649         (eliminate_dom_walker::before_dom_children): Use
11650         lang_hooks.decl_printable_name instead of
11651         cgraph_node::get ()->name ().
11652
11653         PR middle-end/68960
11654         * gimple-expr.c (copy_var_decl): If var has DECL_USER_ALIGN set, copy
11655         it and DECL_ALIGN too.
11656
11657 2016-01-06  Robert Suchanek  <robert.suchanek@imgtec.com>
11658
11659         * config/mips/mips-ftypes.def: Sort to lexicographical order.
11660
11661 2016-01-06  Uros Bizjak  <ubizjak@gmail.com>
11662
11663         PR target/69140
11664         * config/i386/i386.c (ix86_expand_prologue): Declare fs.sp_valid
11665         depending on frame_pointer_needed before remaining integer and SSE
11666         registers are saved.
11667
11668 2015-01-06  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
11669
11670         * config/rs6000/vsx.md (*p9_vecload_<mode>): Replace VSX_M
11671         mode iterator with VSX_M2.
11672         (*p9_vecstore_<mode>): Likewise.
11673         (*vsx_le_permute_<mode>): Restrict to !TARGET_P9_VECTOR.
11674         (*vsx_le_perm_load_<mode> for VSX_LE_128): Likewise.
11675         (*vsx_le_perm_store_<mode> for VSX_LE_128): Likewise.
11676         (define_split for VSX_LE128 stores): Likewise.
11677         (define_peephole2 for TImode LE swaps): Likewise.
11678         (define_split for VSX_LE128 post-reload stores): Likewise.
11679
11680 2016-01-06  Marek Polacek  <polacek@redhat.com>
11681
11682         PR sanitizer/69099
11683         * convert.c (convert_to_integer_1): Adjust call to
11684         ubsan_instrument_float_cast.  Use NULL_TREE instead of NULL.
11685         * ubsan.c (ubsan_instrument_float_cast): Drop the ARG parameter.  Use
11686         EXPR instead of ARG.
11687         * ubsan.h (ubsan_instrument_float_cast): Adjust declaration.
11688
11689 2016-01-05  Sandra Loosemore  <sandra@codesourcery.com>
11690
11691         PR 1078
11692         * doc/extend.texi (RL78 Variable Attributes): New section.
11693
11694 2016-01-05  Marek Polacek  <polacek@redhat.com>
11695
11696         PR c/69104
11697         * builtins.c (get_memmodel): Use expansion point location rather than
11698         the input location.  Call warning_at rather than warning.
11699         (expand_builtin_atomic_compare_exchange): Likewise.
11700         (expand_builtin_atomic_load): Likewise.
11701         (expand_builtin_atomic_store): Likewise.
11702         (expand_builtin_atomic_clear): Likewise.
11703
11704 2016-01-05  H.J. Lu  <hongjiu.lu@intel.com>
11705
11706         PR target/68991
11707         * config/i386/i386.c (ix86_expand_vector_logical_operator):
11708         Replace nonimmediate_operand with vector_operand.
11709         * config/i386/predicates.md (vector_operand): New predicate.
11710         (general_vector_operand): Replace nonimmediate_operand with
11711         vector_operand.
11712         * config/i386/sse.md: Replace nonimmediate_operand with
11713         vector_operand and m constraint with Bm constraint on SSE
11714         patterns with 16-byte memory operand.
11715         * config/i386/subst.md (round_nimm_predicate): Replace
11716         nonimmediate_operand with vector_operand.
11717         (round_saeonly_nimm_predicate): Likewise.
11718         (round_saeonly_nimm_scalar_predicate): New.
11719
11720 2016-01-05  H.J. Lu  <hongjiu.lu@intel.com>
11721
11722         PR target/68991
11723         * config/i386/constraints.md (Bm): New constraint.
11724         * config/i386/predicates.md (vector_memory_operand): New
11725         predicate.
11726         * config/i386/sse.md: Replace xm with xBm in plusminus and
11727         any_logic patterns.
11728
11729 2016-01-05  Sandra Loosemore  <sandra@codesourcery.com>
11730
11731         PR 1078
11732         * doc/extend.texi (V850 Function Attributes): New section.
11733         (V850 Variable Attributes): New section.
11734
11735 2016-01-05  Sandra Loosemore  <sandra@codesourcery.com>
11736
11737         PR 1078
11738         * doc/extend.texi (MicroBlaze Function Attributes): Document
11739         interrupt_handler and fast_interrupt attributes.
11740
11741 2016-01-05  Sergei Trofimovich  <siarheit@google.com>
11742
11743         PR other/60465
11744         * config/ia64/ia64.c (ia64_expand_load_address): Use gprel64
11745         for local symbolic operands.
11746         * config/ia64/predicates.md (local_symbolic_operand64): New
11747         predicate.
11748
11749 2016-01-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11750
11751         PR rtl-optimization/68651
11752         * combine.c (combine_simplify_rtx): Canonicalize x + x into
11753         x << 1.
11754
11755 2016-01-05  Nathan Sidwell  <nathan@acm.org>
11756
11757         * alias.c (compare_base_decls): Use symtab_node::get.
11758
11759 2016-01-05  Nick Clifton  <nickc@redhat.com>
11760
11761         PR target/68770
11762         * ira-costs.c (copy_cost): Initialise the t_icode field of the
11763         secondary_reload_info structure.
11764
11765         PR target/66655
11766         * config/i386/cygming.h (MAKE_DECL_ONE_ONLY): Define to use weak
11767         decls if weak support is available.
11768
11769 2016-01-04  Martin Sebor  <msebor@redhat.com>
11770
11771         * doc/invoke.texi (Warning Options): Document -Winvalid-memory-model.
11772
11773 2016-01-04  Michael Meissner  <meissner@linux.vnet.ibm.com>
11774
11775         * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Add
11776         OPTION_MASK_P9_DFORM.
11777
11778         * config/rs6000/constraints.md (wo constraint): New constraint for
11779         ISA 3.0 (power9).
11780
11781         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Add support
11782         for wo constraint.
11783         (rs6000_init_hard_regno_mode_ok): Likewise.
11784
11785         * config/rs6000/rs6000.h (r6000_reg_class_enum): Add support for
11786         wo constraint.
11787
11788         * config/rs6000/altivec.md (altivec_vperm_<mode>): Clean up vperm
11789         expanders not to have constraints.  Add support for ISA 3.0 xxperm
11790         instruction.  Add support for fusing xxlor with xxperm.
11791         (altivec_vperm_<mode>_internal): Likewise.
11792         (altivec_vperm_v8hiv16qi): Likewise.
11793         (altivec_vperm_<mode>v16q): Likewise.
11794         (altivec_vperm_<mode>_uns): Likewise.
11795         (vperm_v8hiv4si): Likewise.
11796         (vperm_v16qiv8hi): Likewise.
11797
11798         * doc/md.texi (RS/6000 constraints): Document wo constraint.
11799
11800 2016-01-04  Jakub Jelinek  <jakub@redhat.com>
11801
11802         Update copyright years.
11803
11804         * gcc.c (process_command): Update copyright notice dates.
11805         * gcov-dump.c (print_version): Ditto.
11806         * gcov.c (print_version): Ditto.
11807         * gcov-tool.c (print_version): Ditto.
11808         * gengtype.c (create_file): Ditto.
11809         * doc/cpp.texi: Bump @copying's copyright year.
11810         * doc/cppinternals.texi: Ditto.
11811         * doc/gcc.texi: Ditto.
11812         * doc/gccint.texi: Ditto.
11813         * doc/gcov.texi: Ditto.
11814         * doc/install.texi: Ditto.
11815         * doc/invoke.texi: Ditto.
11816
11817 2016-01-04  Eric Botcazou  <ebotcazou@adacore.com>
11818
11819         * config/arm/arm.c (aapcs_vfp_allocate_return_reg): Treat all integer
11820         modes larger than TImode as TImode if NEON is not enabled.
11821
11822 2016-01-04  Eric Botcazou  <ebotcazou@adacore.com>
11823
11824         PR target/69100
11825         * config/sparc/sparc.h (FUNCTION_ARG_REGNO_P): Return true in 64-bit
11826         mode for %f0-%f31 only if TARGET_FPU.
11827
11828 2016-01-04  Eric Botcazou  <ebotcazou@adacore.com>
11829
11830         PR target/69072
11831         * config/sparc/sparc.c (scan_record_type): Take into account subfields
11832         to compute the PACKED_P predicate.
11833         (function_arg_record_value): Minor tweaks.
11834
11835 2016-01-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>
11836
11837         * doc/install.texi (--with-multilib-list): Describe the meaning of the
11838         option for arm*-*-* targets.
11839
11840 2016-01-03  Sandra Loosemore  <sandra@codesourcery.com>
11841
11842         * doc/extend.texi (Common Function Attributes): Move docs for
11843         MSP430-specific attributes to....
11844         (MSP430 Function Attributes): ...here.  Delete the redundant
11845         entries and copy-edit the remaining text.
11846         (MSP430 Variable Attributes): Use uniform format for index
11847         entries and add a cross-reference to the corresponding function
11848         attribute docs.
11849
11850 2016-01-03  Vladimír Čunát  <vcunat@gmail.com>
11851
11852         * doc/invoke.texi (RS/6000 and PowerPC Options): Fix
11853         -finite-math typo.
11854         (x86 Options): Likewise.
11855
11856 2016-01-01  Sandra Loosemore  <sandra@codesourcery.com>
11857
11858         PR 1078
11859
11860         * extend.texi (Common Function Attributes) <no_stack_limit>: New.
11861         * invoke.texi (Code Gen Options) <-fno-stack-limit>: Add pointer
11862         to corresponding attribute.
11863
11864 2016-01-01  Sandra Loosemore  <sandra@codesourcery.com>
11865
11866         * doc/extend.texi (Common Function Attributes) <noplt>: Move
11867         to correct alphabetization of table.  Copy-edit and correct
11868         markup.
11869         <stack_protect>: Likewise.
11870         <target_clones>: Likewise.
11871         <simd>: Likewise.
11872         * doc/invoke.texi (Optimize Options) <-fstack-protector-explicit>:
11873         Correct punctuation.
11874         (Code Gen Options) <-fno-plt>: Copy-edit.
11875
11876 2016-01-01  Bernd Edlinger  <bernd.edlinger@hotmail.de>
11877
11878         PR target/68917
11879         * config/tilegx/tilegx.md (clzsi2): Don't create DI subregs of
11880         SI values.  Explicitly convert SI to DI and vice-versa.
11881
11882 2016-01-01  Jakub Jelinek  <jakub@redhat.com>
11883
11884         PR tree-optimization/69070
11885         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Only test
11886         REAL_VALUE_ISSIGNALING_NAN on arg0 if arg0 is a REAL_CST.
11887
11888         PR sanitizer/69055
11889         * ubsan.c (ubsan_instrument_float_cast): Call
11890         initialize_sanitizer_builtins.
11891
11892         PR target/69015
11893         * ifcvt.c (find_cond_trap): Give up if returnjump_p (jump).
11894 \f
11895 Copyright (C) 2016 Free Software Foundation, Inc.
11896
11897 Copying and distribution of this file, with or without modification,
11898 are permitted in any medium without royalty provided the copyright
11899 notice and this notice are preserved.