c0a8f729505b1c59e9660e2eea170f8929d5e5f0
[platform/upstream/gcc.git] / gcc / ChangeLog
1 2016-04-05  Jakub Jelinek  <jakub@redhat.com>
2
3         PR target/70525
4         * config/i386/sse.md (*andnot<mode>3): Simplify assertions.
5         Use vpandn<ssemodesuffix> for V16SI/V8DImode, vpandnq for
6         V32HI/V64QImode, don't use <mask_operand3_1>, fix up formatting.
7         (*andnot<mode>3_mask): Remove insn with VI12_AVX512VL iterator.
8
9 2016-04-05  Richard Biener  <rguenther@suse.de>
10
11         PR middle-end/70499
12         * gimplify-me.c (gimple_regimplify_operands): Do not rewrite
13         non-register type temporaries into SSA.
14
15 2016-04-04  Jan Hubicka  <hubicka@ucw.cz>
16
17         PR ipa/66223
18         * ipa-devirt.c (maybe_record_node): Do not optimize cxa_pure_virtual
19         calls when sanitizing.
20         (possible_polymorphic_call_target_p): Fix formating.
21
22 2016-04-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
23             Jakub Jelinek <jakub@redhat.com>
24
25         PR middle-end/70457
26         * tree-inline.c (estimate_num_insn): Use gimple_call_builtin_p
27         to ensure a call statement is compatible with a built-in's
28         prototype.
29         * tree-ssa-math-opts.c (pass_optimize_windening_mul::execute):
30         Likewise.
31
32 2016-04-04  Richard Biener  <rguenther@suse.de>
33
34         PR rtl-optimization/70484
35         * rtl.h (canon_output_dependence): Declare.
36         * alias.c (canon_output_dependence): New function.
37         * dse.c (record_store): Use canon_output_dependence rather
38         than canon_true_dependence.
39
40 2016-03-30  Jan Hubicka  <hubicka@ucw.cz>
41
42         PR ipa/68881
43         * cgraph.h (symtab_node::copy_visibility_from): New function.
44         * symtab.c (symtab_node::copy_visibility_from): New function.
45         * ipa-visibility.c (optimize_weakref): New function.
46         (function_and_variable_visibility): Use it.
47
48 2016-04-04  Martin Liska  <mliska@suse.cz>
49
50         PR hsa/70402
51         * hsa-gen.c (gen_hsa_insns_for_switch_stmt): Guard index
52         value that is really in range handled by SBR instruction.
53         * hsa-brig.c (emit_switch_insn): Do not emit unconditional
54         jump.
55         * hsa-dump.c (dump_hsa_insn_1): Do not dump default BB.
56         * hsa.h (hsa_insn_sbr::m_default_bb): Remove field.
57
58 2016-04-03  Oleg Endo  <olegendo@gcc.gnu.org>
59
60         PR target/70416
61         PR target/67391
62         * config/sh/sh.md (*addsi3): Allow pattern when reload_in_progress is
63         set, but not for SP_REG operands.
64
65 2016-04-02  Martin Sebor  <msebor@redhat.com>
66
67         PR c++/67376
68         * fold-const.c (maybe_nonzero_address): New function.
69         (fold_comparison): Call it.  Fold equality and relational
70         expressions involving null pointers.
71         (tree_single_nonzero_warnv_p): Call maybe_nonzero_address.
72
73 2016-03-31  Evandro Menezes  <e.menezes@samsung.com>
74
75         Fix the predicate "aarch64_simd_reg_or_zero" to correctly validate
76         the "Y" constraint (scalar FP 0.0 immediate).
77
78         * gcc/config/aarch64/predicates.md (aarch64_simd_reg_or_zero):
79         Add the "const_double" to the list of operand constraints.
80
81 2016-04-01  Jakub Jelinek  <jakub@redhat.com>
82
83         PR rtl-optimization/70467
84         * config/i386/i386.md (*add<dwi>3_doubleword, *sub<dwi>3_doubleword):
85         If low word of the last operand is 0, just emit addition/subtraction
86         for the high word.
87
88 2016-04-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
89
90         PR target/70404
91         * config/s390/s390.c (s390_expand_insv): Check for everything
92         constant instead of just VOIDmode stuff.
93
94 2016-04-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
95
96         PR target/70496
97         * config/arm/arm.h (ASM_APP_OFF): Handle TARGET_ARM
98         and TARGET_THUMB.
99
100 2016-04-01  Nathan Sidwell  <nathan@acm.org>
101
102         * tree.def (TRY_CATCH_EXPR): Correct documentation.
103
104 2016-03-31  Vladimir Makarov  <vmakarov@redhat.com>
105
106         PR rtl-optimization/70461
107         * ira-color.c (allocno_copy_cost_saving): Use allocno class if it
108         is necessary.
109
110 2016-03-31  Martin Liska  <mliska@suse.cz>
111
112         PR hsa/70399
113         * hsa-brig.c (hsa_op_immed::emit_to_buffer): Emit either
114         a tree value or an immediate integer value to a buffer
115         that is eventually copied to a BRIG section.
116         (emit_immediate_operand): Call the function here.
117         * hsa-dump.c (dump_hsa_immed): Remove checking assert.
118         * hsa-gen.c (hsa_op_immed::hsa_op_immed): Remove initialization
119         of class' fields that are removed.
120         (hsa_op_immed::~hsa_op_immed): Remove deinitialization.
121         * hsa.h (class hsa_op_immed): Remove m_brig_repr and
122         m_brig_repr_size fields.
123
124 2016-03-31  Martin Liska  <mliska@suse.cz>
125
126         PR hsa/70391
127         * hsa-gen.c (hsa_function_representation::update_dominance): New
128         function.
129         (convert_addr_to_flat_segment): Likewise.
130         (gen_hsa_memory_set): New alignment argument.
131         (gen_hsa_ctor_assignment): Likewise.
132         (gen_hsa_insns_for_single_assignment): Provide alignment
133         to gen_hsa_ctor_assignment.
134         (gen_hsa_insns_for_direct_call): Add new argument.
135         (expand_lhs_of_string_op): New function.
136         (expand_string_operation_builtin): Likewise.
137         (expand_memory_copy): New function.
138         (expand_memory_set): New function.
139         (gen_hsa_insns_for_call): Use HOST_WIDE_INT.
140         (convert_switch_statements): Change signature.
141         (generate_hsa): Use a return value of the function.
142         (pass_gen_hsail::execute): Do not call
143         convert_switch_statements here.
144         * hsa-regalloc.c (hsa_regalloc): Call update_dominance.
145         * hsa.h (hsa_function_representation::m_modified_cfg):
146         New flag.
147         (hsa_function_representation::update_dominance): New function.
148
149 2016-03-31  Martin Liska  <mliska@suse.cz>
150
151         PR hsa/70391
152         * hsa-brig.c (emit_directive_variable): Emit alignment
153         according to hsa_symbol::m_align.
154         * hsa-dump.c (hsa_byte_alignment): Move the function to
155         another file.
156         (dump_hsa_symbol): Dump alignment of HSA symbols.
157         * hsa-gen.c (get_symbol_for_decl): Set-up alignment
158         of a symbol.
159         (gen_hsa_addr_with_align): New function.
160         (hsa_bitmemref_alignment): Use newly added function.
161         (gen_hsa_insns_for_load): Likewise.
162         (gen_hsa_insns_for_store): Likewise.
163         (gen_hsa_memory_copy): New argument added.
164         (gen_hsa_insns_for_single_assignment): Respect
165         alignment for assignments processed via
166         gen_hsa_memory_copy.
167         (gen_hsa_insns_for_direct_call): Likewise.
168         (gen_hsa_insns_for_return): Likewise.
169         (gen_function_def_parameters): Set default
170         alignment.
171         * hsa.c (hsa_object_alignment): New function.
172         (hsa_byte_alignment): Pasted function.
173         * hsa.h (hsa_symbol::m_align): New field.
174
175 2016-03-31  Bin Cheng  <bin.cheng@arm.com>
176
177         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Initialize
178         scratch field for goto case.
179
180 2016-03-31  James Greenhalgh  <james.greenhalgh@arm.com>
181
182         * config/arm/linux-elf.h (ASM_OUTPUT_DEF): Delete.
183
184 2016-03-31  Ilya Enkovich  <enkovich.gnu@gmail.com>
185
186         PR target/70442
187         * config/i386/i386.c (scalar_chain::convert_op): Fix
188         description.
189         (scalar_chain::convert_insn): Call convert_op for reg
190         moves to handle undefined registers.
191
192 2016-03-31  Nathan Sidwell  <nathan@acm.org>
193
194         PR c++/70393
195         * varasm.c (output_constructor_regular_field): Flush bitfield
196         earlier.  Assert we don't want to move backwards.
197
198 2016-03-31  Kirill Yukhin  <kirill.yukhin@intel.com>
199
200         PR target/70453
201         * config/i386/sse.md (define_mode_attr shuffletype): Fix typo.
202
203 2016-03-31  Jakub Jelinek  <jakub@redhat.com>
204
205         PR rtl-optimization/70460
206         * ira.c (indirect_jump_optimize): Don't substitute LABEL_REF
207         with operand from REG_LABEL_OPERAND, instead substitute
208         SET_SRC or REG_EQUAL note content if it is a LABEL_REF.
209         Don't do anything for REG_NON_LOCAL_GOTO jumps.
210
211 2016-03-31  Martin Liska  <mliska@suse.cz>
212
213         * passes.c (execute_one_pass): Do not call
214         todo_after for a discarded function.
215
216 2016-03-31  Bin Cheng  <bin.cheng@arm.com>
217
218         * tree-ssa-loop-ivopts.c (struct comp_cost): New scrach field.
219         (no_cost, infinite_cost): Initialize the new field.
220         (get_computation_cost_at): Record setup cost.
221         (determine_use_iv_cost_address): Skip cost computation for sub
222         uses if we can estimate it without losing accuracy.
223
224 2016-03-30  Jan Hubicka  <hubicka@ucw.cz>
225
226         * tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can't get realistic
227         estimates here.
228         * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also
229         max_loop_iterations_int.
230         (tree_unswitch_outer_loop): Likewise.
231         * tree-ssa-loop-ivopts.c (avg_loop_niter): Likewise.
232         * tree-vect-loop.c (vect_analyze_loop_2): Likewise.
233
234 2016-03-30  Richard Biener  <rguenther@suse.de>
235
236         PR middle-end/70450
237         * fold-const.c (extract_muldiv_1): Fix thinko in wide_int::from
238         usage.
239
240 2016-03-30  Jakub Jelinek  <jakub@redhat.com>
241
242         PR target/70421
243         * config/i386/i386.c (ix86_expand_vector_set): Fix up argument order
244         in gen_blendm expander.
245
246 2016-03-30  Nick Clifton  <nickc@redhat.com>
247
248         PR target/62254
249         * config/arm/arm.c (arm_reload_out_hi): Add code to handle the
250         case where we are already provided with an SImode SUBREG.
251
252 2016-03-30  H.J. Lu  <hongjiu.lu@intel.com>
253
254         PR target/70439
255         * config/i386/i386.c (ix86_expand_epilogue): Properly check
256         conflict between DRAP register and __builtin_eh_return.
257
258 2016-03-30  Michael Matz  <matz@suse.de>
259             Richard Biener  <rguenther@suse.de>
260
261         PR ipa/12392
262         * ipa-polymorphic-call.c (struct type_change_info): Change
263         speculative to an unsigned allowing to limit the work we do.
264         (csftc_abort_walking_p): New inline function..
265         (check_stmt_for_type_change): Limit the number of may-defs
266         skipped for speculative devirtualization to
267         max-speculative-devirt-maydefs.
268         * params.def (max-speculative-devirt-maydefs): New param.
269         * doc/invoke.texi (--param max-speculative-devirt-maydefs): Document.
270
271 2016-03-30  Mike Stump  <mrs@gcc.gnu.org>
272
273         PR target/63890
274         * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Use when profiling
275         and TARGET_MACHO.
276
277 2016-03-30  Patrick Palka  <ppalka@gcc.gnu.org>
278
279         PR tree-optimization/59124
280         * tree-vrp.c (register_edge_assert_for_2): For NAME != CST1
281         where NAME = A +- CST2 add the assertion A != (CST1 -+ CST2).
282
283 2016-03-29  Jeff Law  <law@redhat.com>
284
285         * tree-ssa-coalesce.c (struct ssa_conflicts): Fix typo in
286         comment.
287
288 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
289
290         * tree-ssa-loop-ivcanon.c (try_peel_loop): Change type of peel
291         to HOST_WIDE_INT.
292
293 2016-03-29  Thomas Schwinge  <thomas@codesourcery.com>
294
295         * config/gnu.h (CPP_SPEC, LIB_SPEC): Don't override.
296         * config/i386/gnu.h (STARTFILE_SPEC): Use gcrt1.o instead of
297         gcrt0.o if linking dynamically.
298
299 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
300
301         PR ipa/70283
302         * ipa-devirt.c (methods_equal_p): New function.
303         (compare_virtual_tables): Use it.
304         * cgraph.h (symbol_table::symbol_suffix_separator): Declare.
305         * cgraphclones.c (clone_function_name_1): Use
306         symbol_table::symbol_suffix_separator.
307         * coverage.c (build_var): Likewise.
308         * symtab.c (symbol_table::symbol_suffix_separator): New.
309
310 2016-03-29  Jakub Jelinek  <jakub@redhat.com>
311
312         PR rtl-optimization/70429
313         * combine.c (simplify_shift_const_1): For ASHIFTRT don't optimize
314         (cst1 >> count) >> cst2 into (cst1 >> cst2) >> count if
315         mode != result_mode.
316
317         PR c++/70353
318         * tree-inline.c (remap_decls): Don't add_local_decl if
319         cfun is null.
320
321         PR tree-optimization/70405
322         * ssa-iterators.h (num_imm_uses): Add missing braces.
323
324 2016-03-29  Vladimir Makarov  <vmakarov@redhat.com>
325
326         PR rtl-optimization/68695
327         * ira-color.c (allocno_copy_cost_saving): New.
328         (improve_allocation): Use it.
329
330 2016-03-29  Richard Henderson  <rth@redhat.com>
331
332         PR middle-end/70355
333         * lower-subreg.c (simplify_subreg_concatn): Reject paradoxical
334         subregs.
335
336 2016-03-29  Richard Biener  <rguenther@suse.de>
337
338         PR middle-end/70424
339         * ipa-prop.c (ipa_compute_jump_functions_for_edge): Always
340         use alignment returned by get_pointer_alignment_1 if it is
341         bigger than BITS_PER_UNIT.
342         * builtins.c (get_pointer_alignment_1): Do not return true
343         for alignment extracted from SSA info.
344
345 2016-03-28  James Bowman  <james.bowman@ftdichip.com>
346
347         * config/ft32/ft32.opt (mnodiv): New.
348         * config/ft32/ft32.md (*divsi3, *modsi3): Qualify with
349         TARGET_NODIV.
350         * doc/invoke.texi (FT32 Options -mnodiv): New.
351
352 2016-03-28  Kirill Yukhin  <kirill.yukhin@intel.com>
353
354          PR target/70406
355          * config/i386/i386.md (define_split, andn): Fix modes.
356
357 2016-03-26  Richard Biener  <rguenther@suse.de>
358             Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
359
360         PR ipa/70366
361         * ipa-inline-transform.c (inline_call): Pass opts_for_fn (to->decl)
362         instead of
363         TREE_OPTIMIZATION (DECL_FUNCTION_SPECIFIC_OPTIMIZATION (to->decl))
364         as 2nd argument to cl_optimization_restore().
365
366 2016-03-25  Richard Henderson  <rth@redhat.com>
367
368         PR target/70120
369         * config/aarch64/aarch64.c (aarch64_asm_output_pool_epilogue): New.
370         * config/aarch64/aarch64-protos.h: Declare it.
371         * config/aarch64/aarch64.h (ASM_OUTPUT_POOL_EPILOGUE): New.
372
373 2016-03-25  Alan Modra  <amodra@gmail.com>
374
375         PR target/70052
376         * config/rs6000/constraints.md (j): Simplify.
377         * config/rs6000/predicates.md (easy_fp_constant): Exclude
378         decimal float 0.D.
379         * config/rs6000/rs6000.md (zero_fp): New mode_attr.
380         (mov<mode>_hardfloat, mov<mode>_hardfloat32, mov<mode>_hardfloat64,
381          mov<mode>_64bit_dm, mov<mode>_32bit): Use zero_fp in place of j
382         in all constraint alternatives.
383         (movtd_64bit_nodm): Delete "j" constraint alternative.
384
385 2016-03-24  Aldy Hernandez  <aldyh@redhat.com>
386
387         * tree-ssa-propagate.c: Enhance docs for
388         SSA_PROP_NOT_INTERESTING.
389
390 2016-03-24  Aldy Hernandez  <aldyh@redhat.com>
391
392         * doc/extend.texi: Fix typo in documentation to pure attribute.
393
394 2016-03-24  John David Anglin  <danglin@gcc.gnu.org>
395
396         PR target/70319
397         * config/pa/pa.md (bswapdi2): Use a scratch register.
398
399 2016-03-24  Richard Henderson  <rth@redhat.com>
400
401         PR middle-end/69845
402         * fold-const.c (extract_muldiv_1): Correct test for multiplication
403         overflow.
404
405 2016-03-24  Uros Bizjak  <ubizjak@gmail.com>
406
407         * config/i386/i386.md (*anddi3_doubleword): Generate AND insn
408         using ix86_expand_binary_operator instead of gen_andsi3.
409
410 2016-03-24  Richard Biener  <rguenther@suse.de>
411
412         PR tree-optimization/70396
413         * tree-vect-stmts.c (vectorizable_comparison): Use
414         get_vectype_for_scalar_type.
415
416 2016-03-24  Richard Biener  <rguenther@suse.de>
417
418         PR middle-end/70370
419         * gimplify.c (gimplify_asm_expr): Handle !allows_mem outputs
420         with register bases.
421
422 2016-03-24  Richard Biener  <rguenther@suse.de>
423
424         PR tree-optimization/70372
425         * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Use
426         build_all_ones_cst to also handle vector types correctly.
427
428 2016-03-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
429
430         PR target/70381
431         * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Do not set
432         -mfloat128 here.
433
434 2016-03-23  Marek Polacek  <polacek@redhat.com>
435
436         PR c++/69884
437         * doc/invoke.texi: Document -Wignored-attributes.
438
439 2016-03-23  Bin Cheng  <bin.cheng@arm.com>
440
441         PR tree-optimization/69042
442         * params.def (PARAM_IV_CONSIDER_ALL_CANDIDATES_BOUND): Increase the
443         parameter from 30 to 40.
444
445 2016-03-23  Bin Cheng  <bin.cheng@arm.com>
446
447         PR tree-optimization/69042
448         * tree-ssa-loop-ivopts.c (add_iv_candidate_for_use): Add IV cand
449         for use with constant offset stripped in base.
450
451 2016-03-23  Richard Biener  <rguenther@suse.de>
452
453         PR middle-end/70251
454         * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Adjust
455         mode compatibility check.
456         (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise.
457
458 2016-03-23  Jeff Law  <law@redhat.com>
459
460         PR tree-optimization/64058
461         * tree-ssa-coalesce.c (struct coalesce_pair): Add new field
462         CONFLICT_COUNT.
463         (struct ssa_conflicts): Move up earlier in the file.
464         (conflicts_, var_map_): New static variables.
465         (initialize_conflict_count): New function to initialize the
466         CONFLICT_COUNT field for each conflict pair.
467         (compare_pairs): Lazily initialize the conflict count and use it
468         as the first tie-breaker.
469         (sort_coalesce_list): Add new arguments conflicts, map.  Initialize
470         and wipe conflicts_ and map_ around the call to qsort.  Remove
471         special case for 2 coalesce pairs.
472         * bitmap.c (bitmap_count_unique_bits): New function.
473         (bitmap_count_bits_in_word): New function, extracted from
474         bitmap_count_bits.
475         (bitmap_count_bits): Use bitmap_count_bits_in_word.
476         * bitmap.h (bitmap_count_unique_bits): Declare it.
477
478 2016-03-23  Ilya Enkovich  <enkovich.gnu@gmail.com>
479
480         PR target/69917
481         * config/i386/sol2.h (ASM_OUTPUT_DEF_FROM_DECLS): Follow
482         transparent alias chain for decl assembler name.
483         * config/sol2.c (solaris_assemble_visibility): Likewise.
484
485 2016-03-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
486
487         * config/arm/arm1020e.md (1020call_op): Reduce reservation
488         duration.
489         (v10_fdivs): Likewise.
490         (v10_fdivd): Likewise.
491
492 2016-03-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
493
494         PR driver/70132
495         * config/arm/driver-arm.c (host_detect_local_cpu): Reorder exit logic
496         to not call fclose twice on file.
497
498 2016-03-23  Jakub Jelinek  <jakub@redhat.com>
499
500         PR tree-optimization/70354
501         * tree-vect-patterns.c (vect_recog_vector_vector_shift_pattern): If
502         oprnd0 is wider than oprnd1 and there is a cast from the wider
503         type to oprnd1, mask it with the mask of the narrower type.
504
505         PR target/70321
506         * config/i386/i386.md (*anddi3_doubleword, *<code>di3_doubleword):
507         Optimize TARGET_STV splitters, if high or low word of last argument
508         is 0 or -1.
509
510 2016-03-22  Jeff Law  <law@redhat.com>
511
512         PR target/70232
513         tree-ssa-threadbackward.c
514         (fsm_find_control_statement_thread_paths): Correctly distinguish
515         between old style jump threads vs FSM jump threads.
516
517 2016-03-22  Ilya Enkovich  <enkovich.gnu@gmail.com>
518
519         PR target/70302
520         * config/i386/i386.c (scalar_chain::convert_op): Support
521         uninitialized register usage case.
522
523 2016-03-22  Richard Biener  <rguenther@suse.de>
524
525         PR middle-end/70251
526         * genmatch.c (gen_transform): Adjust last parameter to a three-state
527         int...
528         (capture::gen_transform): ... to change behavior when substituting
529         a condition into cond or not-cond expr context.
530         (dt_simplify::gen_1): Adjust.
531         * gimple-match-head.c: Include gimplify.h for unshare_expr.
532         * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Revert
533         last change and instead change to
534         A + (B vcmp C ? 1 : 0) -> A - (B vcmp C ? -1 : 0).
535         (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise.
536
537 2016-03-22  Anthony Green  <green@moxielogic.com>
538
539         * config/moxie/moxiebox.h (CC1_SPEC): Define.  Fix endianness
540         issue for moxiebox targets.
541         (CC1PLUS_SPEC): Ditto.
542
543 2016-03-22  Richard Biener  <rguenther@suse.de>
544
545         PR middle-end/70333
546         * fold-const.c (extract_muldiv_1): Properly perform multiplication
547         in the wide type.
548
549 2016-03-22  Kirill Yukhin  <kirill.yukhin@intel.com>
550
551         * config/i386/i386.c (def_builtin): Remove duplicated functionality.
552
553 2016-03-22  Kirill Yukhin  <kirill.yukhin@intel.com>
554
555         PR target/70325
556         * config/i386/i386.c (def_builtin): Handle
557         OPTION_MASK_ISA_AVX512VL to be and-ed with other
558         bits.
559         (const struct builtin_description bdesc_special_args[]):
560         Remove duplicate ISA bits.
561
562 2016-03-22  Jakub Jelinek  <jakub@redhat.com>
563
564         PR target/70329
565         * config/i386/i386.c (ix86_expand_vecop_qihi): Don't bother computing
566         d.perm[i] for i >= d.nelt.  If not full_interleave, compute d.perm[i]
567         in a way that works also for AVX512BW.
568
569         PR target/70300
570         * config/i386/i386.md (cvtsd2ss splitter): Unpack in destination
571         instead of source if operands[1] is xmm16 and above and
572         !TARGET_AVX512VL.  Use avx512f_vec_dupv16sf_1 instead of
573         vec_interleave_lowv4sf if we need to unpack xmm16 and above.
574
575         PR c++/70295
576         * gimplify.c (gimplify_modify_expr): Call gimple_set_no_warning
577         on assign if (*from_p) is a comparison, set it to
578         TREE_NO_WARNING (*from_p).
579
580 2016-03-21  Jakub Jelinek  <jakub@redhat.com>
581
582         PR middle-end/70326
583         * lra.c (restore_scratches): Ignore deleted insns.
584
585 2016-03-21  Marc Glisse  <marc.glisse@inria.fr>
586             Jakub Jelinek  <jakub@redhat.com>
587
588         PR tree-optimization/70317
589         * match.pd (cmp @0 @0): Pass @0 instead of TYPE_MODE (TREE_TYPE (@0))
590         to HONOR_NANS.
591
592 2016-03-21  Uros Bizjak  <ubizjak@gmail.com>
593
594         PR target/70327
595         * config/i386/i386.md (movxi): Use ix86_expand_vector_move instead
596         of ix86_expand_move.
597         (movoi): Ditto.
598         (movti): Use general_operand for operand 1 predicate.
599
600 2016-03-21  Martin Liska  <mliska@suse.cz>
601
602         * hsa-dump.c (dump_hsa_insn_1): dump default branch of SBR
603         insns.
604         (dump_hsa_symbol): Dump BRIG offset of hsa_symbols.
605
606 2016-03-21  Martin Liska  <mliska@suse.cz>
607
608         PR ipa/70306
609         * ipa-icf.c (sem_function::parse): Skip static
610         constructors and destructors.
611
612 2016-03-21  Jakub Jelinek  <jakub@redhat.com>
613
614         PR target/70296
615         * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If IDENT is
616         function-like macro, peek following token(s) if it is followed
617         by CPP_OPEN_PAREN token with optional padding in between, and
618         if not, don't treat it like a macro.
619
620 2016-03-21  Thomas Schwinge  <thomas@codesourcery.com>
621             Alexander Monakov  <amonakov@ispras.ru>
622
623         * config/nvptx/nvptx.c (nvptx_option_override): Don't emit sorry
624         for the stabs debug format.
625
626 2016-03-21  Richard Biener  <rguenther@suse.de>
627
628         PR tree-optimization/70310
629         * tree-vect-generic.c (expand_vector_condition): Fold the built
630         condition.
631
632 2016-03-21  Kirill Yukhin  <kirill.yukhin@intel.com>
633
634         PR target/70293
635         * config/i386/sse.md: (define_insn "*vec_dup<mode>"/AVX2):
636         Block third alternative for AVX-512VL target,
637
638 2016-03-21  Martin Liska  <mliska@suse.cz>
639
640         PR hsa/70234
641         * hsa-brig.c (emit_function_directives): Mark unemitted
642         global variables for emission.
643         * hsa-gen.c (hsa_symbol::hsa_symbol): Initialize a new flag.
644         (get_symbol_for_decl): Likewise.
645         * hsa.h (struct hsa_symbol): New flag.
646
647 2016-03-21  Richard Biener  <rguenther@suse.de>
648
649         PR tree-optimization/70288
650         * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Make sure
651         we do not estimate unsimplified all-constant conditionals or
652         switches as optimized away.
653
654 2016-03-21  Andrey Belevantsev  <abel@ispras.ru>
655
656         PR rtl-optimization/69102
657         * sched-deps.c (sched_analyze_insn): Do not set last_args_size field
658         when we have a readonly dependency context.
659
660 2016-03-18  Jeff Law  <law@redhat.com>
661
662         PR rtl-optimization/70263
663         * ira.c (memref_used_between_p): Assert we found END in the insn chain.
664         (update_equiv_regs): When trying to move a store to after the insn
665         that sets the source of the store, make sure the store occurs after
666         the insn that sets the source of the store.  When successful note
667         the REG_EQUIV note created in the dump file.
668
669 2016-03-16  David Wohlferd  <dw@LimeGreenSocks.com>
670             Bernd Schmidt  <bschmidt@redhat.com>
671
672         * doc/extend.texi: Document more potential problems with basic asms.
673
674 2016-03-18  Bernd Schmidt  <bschmidt@redhat.com>
675
676         PR rtl-optimization/70278
677         * lra-constraints.c (split_reg): Handle the case where biggest_mode is
678         VOIDmode.
679
680 2016-03-18  Jason Merrill  <jason@redhat.com>
681
682         * calls.c (load_register_parameters): Fix zero size sibcall logic.
683
684 2016-03-18  Kirill Yukhin  <kirill.yukhin@intel.com>
685
686         * config/i386/sse.md: Use vpbroadcastq for broadcasting DF
687         values to 128b regs.
688
689 2016-03-18  Ilya Enkovich  <enkovich.gnu@gmail.com>
690
691         PR tree-optimization/70252
692         * tree-vect-stmts.c (supportable_widening_operation): Check resulting
693         boolean vector has a proper number of elements.
694         (supportable_narrowing_operation): Likewise.
695
696 2016-03-18  Tom de Vries  <tom@codesourcery.com>
697
698         PR ipa/70269
699         * cgraph.c (cgraph_node::get_body): Set dump_file to NULL after save.
700
701 2016-03-18  Jakub Jelinek  <jakub@redhat.com>
702
703         * reload1.c (emit_input_reload_insns): Use simplify_replace_rtx
704         instead of replace_rtx for DEBUG_INSNs.
705
706 2016-03-18  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
707
708         * config/i386/znver1.md : Fix latencies of FP/SSE/AVX
709         load type reservations.
710
711 2016-03-17  John David Anglin  <danglin@gcc.gnu.org>
712
713         PR target/70188
714         * config/pa/constraints.md: Revert 2015-02-13 change.  Use
715         define_constraint for "Q" and "T" constraints.
716
717 2016-03-17  Evandro Menezes  <e.menezes@samsung.com>
718
719         Tweak the pipeline model for Exynos M1
720
721         * config/aarch64/aarch64.c (exynosm1_tunings):  Enable weak prefetching
722         model.
723
724 2016-03-17  David Malcolm  <dmalcolm@redhat.com>
725
726         PR c/70264
727         * diagnostic-show-locus.c (compatible_locations_p): Handle the case
728         where one or both locations aren't within a line_map.
729
730 2016-03-17  H.J. Lu  <hongjiu.lu@intel.com>
731
732         PR driver/70192
733         * opts.c (finish_options): Don't set flag_pie to the default if
734         -fpic, -fPIC, -fno-pic or -fno-PIC is used.  Set flag_pic to 0
735         if it is -1.
736
737 2016-03-17  Joern Rennecke  <joern.rennecke@embecosm.com>
738
739         * config/i386/i386.md (*movv4qicc_insn+1..36): Pass
740         true as ALL_REGS argument to replace_rtx.
741
742 2016-03-17  Richard Biener  <rguenther@suse.de>
743
744         PR debug/70271
745         * dwarf2out.c (dwarf2out_early_finish): Process deferred_asm_name
746         last.
747
748 2016-03-17  Jakub Jelinek  <jakub@redhat.com>
749
750         PR target/70245
751         * rtl.h (replace_rtx): Add ALL_REGS argument.
752         * rtlanal.c (replace_rtx): Likewise.  If true, use REGNO
753         equality and assert mode is the same, instead of just rtx pointer
754         equality.
755         * config/i386/i386.md (mov + arithmetics with load peephole): Pass
756         true as ALL_REGS argument to replace_rtx.
757
758 2016-03-17  Ilya Enkovich  <enkovich.gnu@gmail.com>
759
760         * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Apply
761         for boolean vector with vector mode only.
762         (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise.
763
764 2016-03-17  Nick Clifton  <nickc@redhat.com>
765
766         PR target/70162
767         * config/rx/rx.c (rx_print_integer): Print negative constants in
768         decimal.
769
770 2016-03-17  Jakub Jelinek  <jakub@redhat.com>
771
772         PR target/70261
773         * rtlanal.c (replace_rtx): Revert 2016-03-16 change.
774
775 2016-03-16  Richard Henderson  <rth@redhat.com>
776             Richard Biener  <rguenth@suse.de>
777
778         PR middle-end/70240
779         PR middle-end/68215
780         PR tree-opt/68714
781         * gimplify.c (gimplify_expr) [VEC_COND_EXPR]: Gimplify the
782         first operand as is_gimple_condexpr.
783
784         PR middle-end/70240
785         PR middle-end/68215
786         Revert r231575
787         2015-12-11  Eric Botcazou  <ebotcazou@adacore.com>
788         * tree-vect-generic.c (tree_vec_extract): Remove GSI parameter.
789         Do not gimplify the result.
790         (do_unop): Adjust call to tree_vec_extract.
791         (do_binop): Likewise.
792         (do_compare): Likewise.
793         (do_plus_minus): Likewise.
794         (do_negate): Likewise.
795         (expand_vector_condition): Likewise.
796         (do_cond): Likewise.
797
798 2016-03-16  Richard Henderson  <rth@redhat.com>
799
800         PR target/70048
801         * config/aarch64/aarch64.c (virt_or_elim_regno_p): New.
802         (aarch64_classify_address): Use it.
803         (aarch64_legitimize_address): Force all subexpressions of PLUS
804         into registers.  Simplify as (sfp+const)+reg or (reg+reg)+const.
805
806 2016-03-16  Jakub Jelinek  <jakub@redhat.com>
807             Richard Biener  <rguenth@suse.de>
808
809         PR target/70245
810         * rtlanal.c (replace_rtx): For REG, if from is a REG,
811         return to even if only REGNO is equal, and assert
812         mode is the same.
813
814 2016-03-11  Jeff Law  <law@redhat.com>
815
816         PR rtl-optimization/70224
817         * reorg.c (relax_delay_slots): Pass right argument to CROSSING_JUMP_P.
818
819 2016-03-16  Richard Henderson  <rth@redhat.com>
820
821         PR middle-end/70199
822         * function.h (struct function): Add has_forced_label_in_static.
823         * gimplify.c (force_labels_r): Set it.
824         * lto-streamer-in.c (input_struct_function_base): Read it.
825         * lto-streamer-out.c (output_struct_function_base): Write it.
826         * tree-inline.c (has_label_address_in_static_1): Remove.
827         (copy_forbidden): Remove fndecl parameter; test
828         has_forced_label_in_static.
829         (inline_forbidden_p): Update call to copy_forbidden.
830         (tree_versionable_function_p): Likewise.
831         * ipa-chkp.c (chkp_instrumentable_p): Likewise.
832         (chkp_versioning): Likewise.
833         * tree-inline.h (copy_forbidden): Update decl.
834
835 2016-03-16  Marek Polacek  <polacek@redhat.com>
836
837         PR c/70093
838         * cgraphunit.c (cgraph_node::expand_thunk): Also build call to the
839         function being thunked if the result type doesn't have fixed size.
840         * gimplify.c (gimplify_modify_expr): Also set LHS if the result type
841         doesn't have fixed size.
842
843 2016-03-16  Bin Cheng  <bin.cheng@arm.com>
844
845         * tree-vect-loop.c (vect_analyze_loop_2): Fix wrong dump info by
846         reporting malformed loop nest.
847
848 2016-03-16  Tom de Vries  <tom@codesourcery.com>
849
850         PR lto/70187
851         * ipa-devirt.c (possible_polymorphic_call_targets): Move
852         nodes.length () == 1 test to before first nodes[0] access.
853
854 2016-03-16  Tom de Vries  <tom@codesourcery.com>
855
856         PR tree-optimization/68715
857         * graphite-scop-detection.c (scop_detection::merge_sese): Add missing
858         single_pred_p test.
859
860 2016-03-16  Tom de Vries  <tom@codesourcery.com>
861
862         PR tree-optimization/68809
863         * graphite-scop-detection.c (same_close_phi_node): Test if result types
864         are the same.
865
866 2016-03-16  Carlos O'Donell  <carlos@redhat.com>
867             Sandra Loosemore  <sandra@codesourcery.com>
868
869         * doc/extend.texi (Common Function Attributes): Describe ifunc impact
870         on leaf attribute. Mention ELF interposition problems.
871
872 2016-03-16  Alan Modra  <amodra@gmail.com>
873
874         PR rtl-optimization/69195
875         PR rtl-optimization/47992
876         * ira.c (indirect_jump_optimize): Ignore artificial defs.
877         Add comments.
878
879 2016-03-15  Eric Botcazou  <ebotcazou@adacore.com>
880
881         PR bootstrap/69513
882         * dwarf2out.c (flush_limbo_die_list): Really flush the limbo list.
883
884 2016-03-15  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
885
886         * config/avr/avr.md (rotl<mode>3): Set mode for operand 2.
887
888 2016-03-15  Jakub Jelinek  <jakub@redhat.com>
889
890         PR rtl-optimization/70222
891         * combine.c (simplify_shift_const_1): For A >> B >> C LSHIFTRT
892         optimization if mode is different from result_mode, queue up masking
893         of the result in outer_op.  Formatting fix.
894
895         PR middle-end/70239
896         * tree-ssa-sccvn.c (VN_INFO_GET): Use safe_grow_cleared instead
897         of safe_grow.
898
899 2016-03-15  Andrey Belevantsev  <abel@ispras.ru>
900
901         PR rtl-optimization/69032
902         * sel-sched-ir.c (get_seqno_by_preds): Include both insn and head when
903         looping backwards over basic block insns.
904
905 2016-03-15  Andrey Belevantsev  <abel@ispras.ru>
906
907         PR target/66660
908         * sel-sched-ir.c (merge_expr): Avoid changing the speculative pattern
909         to non-speculative when propagating trap bits.
910
911 2016-03-15  Andrey Belevantsev  <abel@ispras.ru>
912
913         PR rtl-optimization/63384
914         * sel-sched.c (invoke_aftermath_hooks): Do not decrease issue_more on
915         DEBUG_INSN_P insns.
916
917 2016-03-15  Andrey Belevantsev  <abel@ispras.ru>
918
919         PR target/64411
920         * sched-deps.c (get_implicit_reg_pending_clobbers): New function,
921         factored out from ...
922         (sched_analyze_insn): ... here.
923         * sched-int.h (get_implicit_reg_pending_clobbers): Declare it.
924         * sel-sched-ir.c (setup_id_implicit_regs): New function, use
925         get_implicit_reg_pending_clobbers in it.
926         (setup_id_reg_sets): Use setup_id_implicit_regs.
927         (deps_init_id): Ditto.
928
929 2016-03-15  Tom de Vries  <tom@codesourcery.com>
930
931         PR ipa/70161
932         * cgraph.c (cgraph_node::get_body): Save, reset and restore
933         dump_file_name.
934         * passes.c (execute_one_ipa_transform_pass): Add missing argument to
935         execute_function_dump.
936         (execute_one_pass): Don't dump function if it will be dumped after ipa
937         transform.
938
939 2016-03-15  Segher Boessenkool  <segher@kernel.crashing.org>
940
941         * genrecog.c (match_pattern_2): If pred is NULL don't call
942         safe_predicate_mode on it.
943
944 2016-03-14  Jakub Jelinek  <jakub@redhat.com>
945
946         PR middle-end/70219
947         * lra-constraints.c (delete_move_and_clobber): Change assertion
948         to also allow dregno == 0.
949
950 2016-03-14  Richard Henderson  <rth@redhat.com>
951
952         PR tree-opt/68714
953         * tree-ssa-reassoc.c (ovce_extract_ops, optimize_vec_cond_expr): New.
954         (can_reassociate_p): Allow ANY_INTEGRAL_TYPE_P.
955         (reassociate_bb): Use optimize_vec_cond_expr; avoid
956         optimize_range_tests, attempt_builtin_copysign and attempt_builtin_powi
957         on vectors.
958
959 2016-03-14  Bernd Schmidt  <bschmidt@redhat.com>
960
961         PR target/70083
962         * lra-lives.c (process_bb_lives): Also update biggest mode for hard
963         regs.
964         (lra_create_live_ranges_1): initialize hard register biggest_mode to
965         VOIDmode.
966         * lra-constraints.c (split_reg): For hard regs, try to find the
967         biggest single-register mode used in the function.
968
969 2016-03-14  Richard Biener  <rguenther@suse.de>
970
971         PR tree-optimization/56365
972         * tree-ssa-phiopt.c (minmax_replacement): Handle alternate
973         constants to compare against.
974
975 2016-03-14  Segher Boessenkool  <segher@kernel.crashing.org>
976
977         PR target/70098
978         * config/rs6000/rs6000.md (*ctr<mode>_internal1, *ctr<mode>_internal2,
979         *ctr<mode>_internal5, *ctr<mode>_internal6): Also allow "d" as output.
980         (define_split for the GPR case): Use int_reg_operand instead of
981         gpc_reg_operand for the output.
982
983 2016-03-14  Tom de Vries  <tom@codesourcery.com>
984
985         PR tree-optimization/70045
986         * graphite-isl-ast-to-gimple.c (graphite_create_new_loop_guard): Unshare
987         create_empty_if_region_on_edge argument.
988
989 2016-03-13  Eric Botcazou  <ebotcazou@adacore.com>
990
991         * config/arm/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Define.
992         (STACK_CHECK_PROTECT): Likewise.
993         * config/i386/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise
994         (STACK_CHECK_PROTECT): Likewise.
995         * config/rs6000/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise
996         (STACK_CHECK_PROTECT): Likewise.
997         * config/rs6000/vxworksae.h (STACK_CHECK_PROTECT): Likewise.
998         * config/sparc/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
999         (STACK_CHECK_PROTECT): Likewise.
1000
1001 2016-03-12  Andrey Belevantsev  <abel@ispras.ru>
1002
1003         PR rtl-optimization/69307
1004         * sel-sched.c (choose_best_pseudo_reg): Properly check for hard
1005         registers in modes that span more than one register.
1006
1007 2016-03-12  Vladimir Makarov  <vmakarov@redhat.com>
1008
1009         PR target/69614
1010         * lra-constraints.c (delete_move_and_clobber): New.
1011         (remove_inheritance_pseudos): Use it.
1012
1013 2016-03-12  Eric Botcazou  <ebotcazou@adacore.com>
1014
1015         PR ada/70017
1016         * calls.c (emit_library_call_value_1): Clear the ECF_NOTHROW flag if
1017         the libcall is LCT_THROW.
1018         * explow.c (probe_stack_range): Pass LCT_THROW to emit_library_call
1019         for the checking routine.
1020
1021 2016-03-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
1022
1023         PR target/70131
1024         * config/rs6000/rs6000.md (round32<mode>2_fprs): Do not do the
1025         optimization if we have direct move.
1026         (roundu32<mode>2_fprs): Likewise.
1027
1028 2016-03-11  Bernd Schmidt  <bschmidt@redhat.com>
1029
1030         PR target/70123
1031         * lra-remat.c (operand_to_remat): Disallow hard regs in the value t
1032         be rematerialized.
1033         (reg_overlap_for_remat_p): Renamed from input_regno_present_p.
1034         Arguments swapped.  All callers changed.  Take reg_renumber into
1035         account, and Calculate and compare register ranges for hard regs.
1036
1037 2016-03-11  Jeff Law  <law@redhat.com>
1038
1039         PR tree-optimization/70190
1040         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
1041         Handle cases where we can not extract the taken edge, even though we
1042         found a constant value.
1043
1044         PR tree-optimization/64058
1045         * tree-ssa-coalesce.c (struct coalesce_pair): Add new field INDEX.
1046         (num_coalesce_pairs): Move up earlier in file.
1047         (find_coalesce_pair): Initialize the INDEX field for each pair
1048         discovered.
1049         (compare_pairs): No longer sort on the elements in each pair.
1050         Instead break ties with the index of the coalesce pair.
1051
1052 2016-03-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1053
1054         PR target/70002
1055         * config/aarch64/aarch64-protos.h
1056         (aarch64_save_restore_target_globals): New prototype.
1057         * config/aarch64/aarch64-c.c (aarch64_pragma_target_parse):
1058         Call the above when popping pragma.
1059         * config/aarch64/aarch64.c (aarch64_save_restore_target_globals):
1060         New function.
1061         (aarch64_set_current_function): Rewrite using the above.
1062
1063 2016-03-11  Jakub Jelinek  <jakub@redhat.com>
1064
1065         PR tree-optimization/70177
1066         * gimple-expr.h (extract_ops_from_tree_1): Renamed to ...
1067         (extract_ops_from_tree): ... this.  In the 2 argument
1068         overload remove _1 suffix.
1069         * gimple-expr.c (extract_ops_from_tree_1): Renamed to ...
1070         (extract_ops_from_tree): ... this.
1071         * gimple.c (gimple_build_assign, gimple_assign_set_rhs_from_tree):
1072         Adjust callers.
1073         * tree-ssa-loop-niter.c (derive_constant_upper_bound): Likewise.
1074         * tree-ssa-forwprop.c (defcodefor_name): Call 3 operand
1075         extract_ops_from_tree instead of 2 operand one.
1076
1077 2016-03-11  Alan Lawrence  <alan.lawrence@arm.com>
1078
1079         PR tree-optimization/70013
1080         * tree-sra.c (analyze_access_subtree): Also set grp_unscalarized_data
1081         for constant-pool entries.
1082
1083 2016-03-11  Jakub Jelinek  <jakub@redhat.com>
1084
1085         PR rtl-optimization/70174
1086         * expmed.c (store_bit_field_using_insv): Use gen_lowpart_if_possible
1087         followed by gen_lowpart on force_reg instead of just gen_lowpart.
1088
1089         PR tree-optimization/70169
1090         * tree-ssa-loop.c (gen_lsm_tmp_name): Handle FUNCTION_DECL and
1091         LABEL_DECL like VAR_DECL.  Emit nothing instead of gcc_unreachable
1092         for unknown codes.
1093
1094 2016-03-11  Ilya Enkovich  <enkovich.gnu@gmail.com>
1095             Jakub Jelinek  <jakub@redhat.com>
1096
1097         PR target/70160
1098         * config/i386/i386.c (scalar_chain::convert_reg): Skip uses
1099         of uninitialized values.
1100
1101 2016-03-11  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
1102
1103         * config/s390/s390.md ("trunctddd2"): Turn former define_insn into
1104         define_expand.
1105         ("*trunctddd2"): New pattern definition.
1106         ("trunctdsd2"): Set prep_for_short_prec rounding mode for the
1107         TD->DD truncation.
1108
1109 2016-03-11  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
1110
1111         * config/s390/s390.md (BFP_RND_*, DFP_RND_*): Add new constant
1112         definitions for BFP and DFP rounding modes.
1113         ("fixuns_truncdddi2", "fixuns_trunctddi2")
1114         ("fixuns_trunc<BFP:mode><GPR:mode>2", "fixuns_trunc<mode>si2")
1115         ("fix_trunc<DSF:mode><GPR:mode>2", "fix_trunc<mode>di2")
1116         ("fix_trunctf<mode>2"): Use the new constants instead of magic
1117         numbers.
1118
1119 2016-03-11  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
1120
1121         * config/s390/constraints.md: Adjust comment.
1122         ("Y"): Adjust comment.  Rename s390_decompose_shift_count to
1123         s390_decompose_addrstyle_without_index.
1124         * config/s390/predicates.md (shift_count_or_setmem_operand):
1125         Rename to setmem_operand.
1126         * config/s390/s390-protos.h
1127         (s390_decompose_shift_count): Rename to
1128         s390_decompose_addrstyle_without_index.
1129         * config/s390/s390.c (s390_decompose_shift_count)
1130         (s390_mem_constraint, print_shift_count_operand)
1131         (print_operand_address, print_operand): Rename
1132         s390_decompose_shift_count to
1133         s390_decompose_addrstyle_without_index and rename
1134         print_shift_count_operand to print_addrstyle_operand troughout the
1135         file.
1136         * config/s390/s390.md ("setmem_long_<P:mode>", "*setmem_long")
1137         ("*setmem_long_and", "*setmem_long_31z", "*setmem_long_and_31z"):
1138         Rename shift_count_or_setmem_operand to setmem_operand.
1139         * config/s390/vx-builtins.md ("vec_insert<mode>")
1140         ("vec_promote<mode>"): Replace shift_count_or_setmem_operand with
1141         nonmemory_operand.
1142
1143 2016-03-10  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1144
1145         PR target/70168
1146         * config/rs6000/rs6000.c (rs6000_expand_atomic_compare_and_swap):
1147         Handle overlapping retval and newval.
1148
1149 2016-03-10  Nick Clifton  <nickc@redhat.com>
1150
1151         PR target/7044
1152         * config/aarch64/aarch64.c
1153         (aarch64_override_options_after_change_1): When forcing
1154         flag_omit_frame_pointer to be true, use a special value that can
1155         be detected if this function is called again, thus preventing
1156         flag_omit_leaf_frame_pointer from being forced to be false.
1157
1158 2016-03-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1159
1160         * common/config/aarch64/aarch64-common.c (aarch64_handle_option):
1161         Set x_flag_omit_leaf_frame_pointer when handling
1162         -momit-leaf-frame-pointer.
1163
1164 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
1165
1166         PR lto/69589
1167         * cgraph.c (cgraph_node::dump): Dump split_part and
1168         indirect_call_target.
1169         * cgraph.h (cgraph_node): Add indirect_call_target flag.
1170         * ipa.c (has_addr_references_p): Cleanup.
1171         (is_indirect_call_target_p): New.
1172         (walk_polymorphic_call_targets): Do not mark virtuals that may be
1173         called indirectly as local.
1174         (symbol_table::remove_unreachable_nodes): Compute indirect_call_target.
1175
1176 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
1177
1178         PR ipa/69630
1179         * ipa-devirt.c (possible_polymorphic_call_targets): Do not ICE
1180         on cxa_pure_virtual.
1181
1182 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
1183
1184         PR lto/69589
1185         * tree.c (free_lang_data_in_decl): Clear visibility of TYPE_DECL.
1186
1187 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
1188
1189         PR lto/69589
1190         * tree.c (need_assembler_name_p): Only record main variant type names.
1191
1192 2016-03-10  Christophe Lyon  <christophe.lyon@linaro.org>
1193
1194         PR target/70113.
1195         * config/aarch64/aarch64.h (TARGET_FIX_ERR_A53_843419_DEFAULT):
1196         Always define to 0 or 1.
1197         (TARGET_FIX_ERR_A53_843419): New macro.
1198         * config/aarch64/aarch64-elf-raw.h
1199         (TARGET_FIX_ERR_A53_843419_DEFAULT): Update for above changes.
1200         * config/aarch64/aarch64-linux.h: Likewise.
1201         * config/aarch64/aarch64.c
1202         (aarch64_override_options_after_change_1): Do not default
1203         aarch64_nopcrelative_literal_loads to true if Cortex-A53 erratum
1204         843419 is on.
1205         (aarch64_attributes): Handle fix-cortex-a53-843419.
1206         (aarch64_can_inline_p): Likewise.
1207         * config/aarch64/aarch64.opt (aarch64_fix_a53_err843419): Save.
1208
1209 2016-03-10  Alan Lawrence  <alan.lawrence@arm.com>
1210         Jakub Jelinek <jakub@redhat.com>
1211
1212         * common.opt (funconstrained-commons, flag_unconstrained_commons): New.
1213         * tree.c (array_at_struct_end_p): Do not limit to size of decl for
1214         DECL_COMMONS if flag_unconstrained_commons is set.
1215         * tree-dfa.c (get_ref_base_and_extent): Likewise.
1216         * doc/invoke.texi (Optimize Options): Add -funconstrained-commons.
1217         (funconstrained-commons): Document.
1218
1219 2016-03-10  Christophe Lyon  <christophe.lyon@linaro.org>
1220
1221         * config/aarch64/t-aarch64 (OPTIONS_H_EXTRA): Add
1222         aarch64-fusion-pairs.def and aarch64-tuning-flags.def
1223
1224 2016-03-10  Ilya Enkovich  <enkovich.gnu@gmail.com>
1225
1226         * tree-vect-stmts.c (vectorizable_mask_load_store): Check mask
1227         has a proper number of elements.
1228
1229 2016-03-10  Alan Modra  <amodra@gmail.com>
1230
1231         PR rtl-optimization/69195
1232         PR rtl-optimization/47992
1233         * ira.c (recorded_label_ref): Delete.
1234         (update_equiv_regs): Return void.
1235         (indirect_jump_optimize): New function.
1236         (ira): Call indirect_jump_optimize and delete_trivially_dead_insns
1237         before regstat_compute_ri.  Don't rebuild_jump_labels here.
1238         Delete update_regstat.
1239
1240 2016-03-10  Richard Biener  <rguenther@suse.de>
1241
1242         PR tree-optimization/70128
1243         * tree-ssa-structalias.c (set_uids_in_ptset): Set
1244         vars_contains_nonlocal for any FUNCTION_DECL or LABEL_DECL.
1245
1246 2016-03-09  Jakub Jelinek  <jakub@redhat.com>
1247
1248         PR tree-optimization/70152
1249         * tree-sra.c (replace_removed_params_ssa_names): Copy over
1250         SSA_NAME_OCCURS_IN_ABNORMAL_PHI from old_name to new_name.
1251
1252         PR target/70086
1253         * config/i386/i386.md (truncdfsf2 splitter): Use gen_vec_concatv2df
1254         instead of gen_sse2_loadlpd.
1255         * config/i386/sse.md (*vec_concatv2df): Rename to...
1256         (vec_concatv2df): ... this.
1257
1258         PR tree-optimization/70127
1259         * fold-const.c (operand_equal_p): Revert the 2015-10-28 change.
1260
1261 2016-03-09  David Malcolm  <dmalcolm@redhat.com>
1262
1263         PR c/68473
1264         PR c++/70105
1265         * diagnostic-show-locus.c (compatible_locations_p): New function.
1266         (layout::layout): Sanitize ranges using compatible_locations_p.
1267
1268 2016-03-09  David Malcolm  <dmalcolm@redhat.com>
1269
1270         PR c/68473
1271         PR c++/70105
1272         * diagnostic-show-locus.c (layout_range::layout_range): Replace
1273         location_range param with three const expanded_locations * and a
1274         bool.
1275         (layout::layout): Replace call to
1276         rich_location::lazily_expand_location with get_expanded_location.
1277         Extract the range and perform location expansion here, passing
1278         the results to the layout_range ctor.
1279         * diagnostic.c (source_range::debug): Delete.
1280         * diagnostic.h (diagnostic_expand_location): Reimplement in terms
1281         of rich_location::get_expanded_location.
1282         * gcc-rich-location.c (get_range_for_expr): Delete.
1283         (gcc_rich_location::add_expr): Reimplement to avoid the
1284         rich_location::add_range overload that took a location_range,
1285         passing a location_t instead.
1286
1287 2016-03-09  Richard Biener  <rguenther@suse.de>
1288         Jakub Jelinek  <jakub@redhat.com>
1289
1290         PR tree-optimization/70138
1291         * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
1292         Also skip vect_double_reduction_def.
1293
1294 2016-03-09  Jakub Jelinek  <jakub@redhat.com>
1295
1296         PR target/70049
1297         * config/i386/sse.md (*vec_extract<mode>): Use %0 instead of %k0
1298         if the operand is "m".
1299
1300 2016-03-09  Nathan Sidwell  <nathan@acm.org>
1301
1302         * config/nvptx/nvptx.c (nvptx_option_override): Don't kill debug level.
1303
1304 2016-03-09  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
1305
1306         * config/i386/i386.c (processor_target_table): Fix cost table
1307         intialization order for znver1.
1308
1309 2016-03-08  Jakub Jelinek  <jakub@redhat.com>
1310
1311         * ipa-polymorphic-call.c (walk_ssa_copies): Fix spelling
1312         - becuase -> because.
1313         * ipa-reference.c (ignore_module_statics): Likewise.
1314         * cgraph.c (cgraph_node::get_body): Likewise.
1315         * ipa-inline.c (early_inliner): Likewise.
1316         * ipa-devirt.c (types_same_for_odr): Likewise.
1317         * tree-streamer-out.c (pack_ts_type_common_value_fields): Likewise.
1318         * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Likewise.
1319
1320 2016-03-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1321
1322         * tree-ssa-math-opts.c: Fix typo in comment.
1323
1324 2016-03-08  Jakub Jelinek  <jakub@redhat.com>
1325
1326         PR target/70110
1327         * config/i386/i386.c (scalar_chain::make_vector_copies,
1328         scalar_chain::convert_reg): Call end_sequence in between
1329         get_insns and emit_conversion_insns rather than after both
1330         calls.
1331
1332 2016-03-07  Uros Bizjak  <ubizjak@gmail.com>
1333
1334         PR target/70064
1335         * config/i386/i386.h (machine_function): Add
1336         pc_thunk_call_expanded flag.
1337         (ix86_pc_thunk_call_expanded): New define.
1338         * config/i386/i386.md (set_got, set_got_labelled): New expanders.
1339         (*set_got): Rename insn pattern from set_got.
1340         (*set_got_labelled): Rename inst pattern from set_got_labelled.
1341         * config/i386/i386.c (ix86_compute_frame_layout): Use
1342         ix86_pc_thunk_call_expanded to prevent red-zone.
1343
1344 2016-03-07  Martin Jambor  <mjambor@suse.cz>
1345
1346         * hsa.h (hsa_get_ctor_statements): Declare.
1347         (hsa_get_dtor_statements): Likewise.
1348         (hsa_get_kernel_dispatch_type): Likewise.
1349         * hsa.c (hsa_get_ctor_statements): New function.
1350         (hsa_get_dtor_statements): Likewise.
1351         (hsa_get_kernel_dispatch_type): Likewise.
1352         * hsa-brig.c (hsa_cdtor_statements): Removed.
1353         (hsa_output_libgomp_mapping): Use hsa_get_ctor_statements and
1354         hsa_get_dtor_statements.
1355         * hsa-gen.c (hsa_kernel_dispatch_type): Removed.
1356         (get_hsa_kernel_dispatch_offset): Use hsa_get_kernel_dispatch_type.
1357
1358 2016-03-07  Andre Vieira  <andre.simoesdiasvieira@arm.com>
1359
1360         * config/arm/arm-cores.def (cortex-r8): New.
1361         * config/arm/arm-tables.opt (cortex-r8): Regenerate.
1362         * config/arm/arm-tune.md: Likewise.
1363         * gcc/doc/invoke.texi: Add cortex-r8 to list of cpu values.
1364
1365 2016-03-07  Martin Sebor  <msebor@redhat.com>
1366
1367         PR rtl-optimization/19705
1368         * doc/invoke.texi (Options That Control Optimization): Clarify
1369         -fno-branch-count-reg.
1370
1371 2016-02-26  Richard Biener  <rguenther@suse.de>
1372             Jeff Law  <law@redhat.com>
1373
1374         PR tree-optimization/69740
1375         * cfghooks.c (remove_edge): Request loop fixups if we delete
1376         an edge that might turn an irreducible loop into a natural
1377         loop.
1378         * cfgloop.h (check_verify_loop_structure): Clear LOOPS_NEED_FIXUP.
1379         Move after definition of loops_state_clear.
1380
1381 2016-03-07  Bin Cheng  <bin.cheng@arm.com>
1382
1383         PR rtl-optimization/69052
1384         * rtlanal.c (commutative_operand_precedence): Set higher precedence
1385         to CONST_WIDE_INT.
1386
1387 2016-03-07  Tom de Vries  <tom@codesourcery.com>
1388
1389         PR tree-optimization/70116
1390         * tree-ssa-tail-merge.c (merge_stmts_p): New function, handling
1391         is_tm_ending stmts and ubsan/asan internal functions.
1392         (find_duplicate): Use it.  Don't test is_tm_ending here.
1393
1394 2016-03-07  Richard Biener  <rguenther@suse.de>
1395
1396         PR tree-optimization/70115
1397         * tree-ssa-loop-ivcanon.c (propagate_into_all_uses): Remove.
1398         (propagate_constants_for_unrolling): Use replace_uses_by.
1399
1400 2016-03-07  Nathan Sidwell  <nathan@codesourcery.com>
1401
1402         PR middle-end/69916
1403         * omp-low.c (struct oacc_loop): Add ifns.
1404         (new_oacc_loop_raw): Initialize it.
1405         (finish_oacc_loop): Clear mask & flags if no ifns.
1406         (oacc_loop_discover_walk): Count IFN_GOACC_LOOP calls.
1407         (oacc_loop_xform_loop): Add ifns arg & adjust.
1408         (oacc_loop_process): Adjust oacc_loop_xform_loop call.
1409
1410 2016-03-07  Richard Henderson  <rth@redhat.com>
1411
1412         PR rtl-opt/70061
1413         * tree-outofssa.c (emit_partition_copy): Flush pending stack adjust.
1414         (insert_value_copy_on_edge): Likewise.
1415
1416 2016-03-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1417
1418         * config/arm/arm_neon.h: Show error if using with soft-float ABI.
1419
1420 2016-03-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1421
1422         PR target/62281
1423         * config/i386/sol2.h (STACK_REALIGN_DEFAULT): Define.
1424
1425 2016-03-05  Venkataramanan Kumar  <Venkataramanan.kumar@amd.com>
1426
1427         * config/i386/i386.c (znver1_cost): Fix Multiply cost.
1428
1429 2016-03-05  Venkataramanan Kumar  <Venkataramanan.kumar@amd.com>
1430
1431         Fix sseimul type attribute.
1432         * config/i386/znver1.md
1433         (znver1_sseimul, znver1_sseimul_avx256, znver1_sseimul_load,
1434         znver1_sseimul_avx256_load) : Fix the type attribute.
1435         (znver1_sseimul_di, znver1_sseimul_load_di): Fix type attribute,
1436         pipe usage and latency.
1437
1438 2016-03-05  Jakub Jelinek  <jakub@redhat.com>
1439
1440         PR c++/70084
1441         * tree-inline.c (copy_tree_body_r): When cancelling ADDR_EXPR
1442         of INDIRECT_REF and ADDR_EXPR changed type, fold_convert it
1443         to the right type.
1444
1445 2016-03-04  Bernd Schmidt  <bschmidt@redhat.com>
1446
1447         PR c/69973
1448         * targhooks.c (default_vector_alignment): Limit to MAX_OFILE_ALIGNMENT.
1449
1450         PR rtl-optimization/69941
1451         * postreload.c (reload_combine_recognize_pattern): Ensure all uses of
1452         the reg share its mode.
1453
1454 2016-03-04  Jeff Law  <law@redhat.com>
1455
1456         PR tree-optimization/69196
1457         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
1458         If the both SSA_NAMEs are anonymous, then consider them unassociated
1459         and include the PHI in the statement count.
1460
1461 2016-03-05  Tom de Vries  <tom@codesourcery.com>
1462
1463         * omp-low.c (check_omp_nesting_restrictions): Check for non-oacc
1464         construct in oacc routine.  Check for oacc region in oacc routine.
1465
1466 2016-03-04  Jakub Jelinek  <jakub@redhat.com>
1467
1468         PR target/70062
1469         * config/i386/i386.c (decide_alg): Add RECUR argument.  Revert
1470         2016-02-22 changes, instead don't recurse if RECUR is already true.
1471         Don't change *dynamic_check if RECUR.  Adjust recursive caller
1472         to pass true to the new argument.
1473         (ix86_expand_set_or_movmem): Adjust decide_alg caller.
1474
1475         PR target/70059
1476         * config/i386/sse.md (vec_set_lo_<mode><mask_name>,
1477         <extract_type_2>_vinsert<shuffletype><extract_suf_2>_mask): Formatting
1478         fixes.
1479         (vec_set_hi_<mode><mask_name>): Likewise.  Swap VEC_CONCAT operands.
1480
1481 2016-03-04  Bernd Schmidt  <bschmidt@redhat.com>
1482
1483         PR rtl-optimization/57676
1484         * lra-assigns.c (lra_assign): Guard test for maximum iterations
1485         with flag_checking.
1486
1487 2016-03-04  Ilya Enkovich  <enkovich.gnu@gmail.com>
1488
1489         * tree-vect-patterns.c (search_type_for_mask): Handle
1490         comparison of booleans.
1491
1492 2016-03-04  Jakub Jelinek  <jakub@redhat.com>
1493
1494         * doc/extend.texi (__builtin_alloca, __builtin_alloca_with_align):
1495         Fix @xref usage.
1496
1497         PR debug/69947
1498         * dwarf2out.c (prune_unused_types_walk_loc_descr): Handle
1499         all other ops that have dw_val_class_die_ref operands,
1500         and DW_OP_GNU_entry_value.
1501
1502 2016-03-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1503
1504         PR rtl-optimization/69904
1505         * config/arm/arm.c (arm_cannot_copy_insn_p):
1506         Return true for load-exclusive instructions.
1507
1508 2016-03-03  Jakub Jelinek  <jakub@redhat.com>
1509
1510         PR target/70021
1511         * tree-vect-stmts.c (vect_mark_relevant): Remove USED_IN_PATTERN
1512         argument, if STMT_VINFO_IN_PATTERN_P (stmt_info), always mark
1513         the pattern no matter if it is used just by non-pattern, pattern
1514         or mix thereof.
1515         (process_use, vect_mark_stmts_to_be_vectorized): Adjust callers.
1516         * tree-vect-patterns.c (vect_recog_vector_vector_shift_pattern): If
1517         oprnd1 def_stmt is in pattern, don't look through it.
1518
1519 2016-03-03  Marek Polacek  <polacek@redhat.com>
1520
1521         PR middle-end/70050
1522         * match.pd (X % -Y): Add INTEGRAL_TYPE_P check.
1523
1524 2016-03-03  Martin Liska  <mliska@suse.cz>
1525
1526         PR tree-optimization/70043
1527         * tree-vect-loop.c (optimize_mask_stores): Move iterator to
1528         previous statement if we see a debug statement.
1529
1530 2016-03-03  Richard Biener  <rguenther@suse.de>
1531
1532         PR tree-optimization/55936
1533         * tree-vrp.c (compare_name_with_value): Add use_equiv_p
1534         parameter and guard unsafe equivalence use.
1535         (vrp_evaluate_conditional_warnv_with_ops): Always use
1536         safe equivalences but not via the quadratic compare_names
1537         helper.
1538
1539 2016-03-03  Michael Collison  <michael.collison@linaro.org>
1540
1541         PR target/70014
1542         * config/arm/arm.md (*subsi3_carryin_const): Change predicate
1543         for operand 1 to s_register_operand. Change predicate for operand
1544         2 to arm_not_immediate_operand.
1545
1546 2016-03-02  H.J. Lu  <hongjiu.lu@intel.com>
1547
1548         * doc/tm.texi: Regenerated.
1549
1550 2016-03-02  Richard Henderson  <rth@redhat.com>
1551
1552         PR rtl-opt/67145
1553         * simplify-rtx.c (simplify_plus_minus): Allow reassoc without
1554         simplification when all args are positive non-fixed registers.
1555
1556 2016-03-02  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1557
1558         * target.def (lra_p): Specify that new ports should use LRA.
1559
1560 2016-03-02  Jakub Jelinek  <jakub@redhat.com>
1561
1562         PR libgomp/69555
1563         * gimplify.c (gimplify_decl_expr): For decls with REFERENCE_TYPE, also
1564         gimplify_type_sizes the type they refer to.
1565         (omp_notice_variable): Handle reference vars to VLAs.
1566         * omp-low.c (lower_omp_target): Emit setup of OMP_CLAUSE_PRIVATE
1567         reference to VLA decls in the second pass instead of first pass.
1568
1569 2016-03-02  Tom de Vries  <tom@codesourcery.com>
1570
1571         PR tree-optimization/68659
1572         * graphite-isl-ast-to-gimple.c (collect_all_ssa_names): Handle
1573         new_expr == NULL_TREE.
1574         (get_new_name): Handle ADDR_EXPR.
1575
1576 2016-03-02  Bin Cheng  <bin.cheng@arm.com>
1577
1578         PR rtl-optimization/69052
1579         * loop-invariant.c (canonicalize_address): New function.
1580         (inv_can_prop_to_addr_use): Check validity of address expression
1581         which is canonicalized by above function.
1582
1583 2016-03-02  Alan Modra  <amodra@gmail.com>
1584
1585         PR ipa/69990
1586         * ipa-icf.c (sem_variable::merge): Do not merge an alias with
1587         larger alignment.
1588
1589 2016-03-02  Jakub Jelinek  <jakub@redhat.com>
1590
1591         PR target/70028
1592         * config/i386/i386.md (kmovw): Move m constraint to 2nd alternative.
1593         (*movhi_internal): Put mask moves from and to memory separately
1594         from moves from/to GPRs.
1595
1596 2016-03-02  Richard Biener  <rguenther@suse.de>
1597
1598         * genmatch.c (dt_node::gen_kids): Fix match code-gen for embedded
1599         GENERIC expressions in GIMPLE.
1600
1601 2016-03-02  Richard Biener  <rguenther@suse.de>
1602
1603         * config/i386/i386.c (type_natural_mode): Fix typo.
1604
1605 2016-03-02  Nick Clifton  <nickc@redhat.com>
1606
1607         * config.gcc (mep-*-elf): Add newlib-stdint.h to tm_file.
1608
1609 2016-03-02  Richard Biener  <rguenther@suse.de>
1610             Uros Bizjak  <ubizjak@gmail.com>
1611
1612         PR target/67278
1613         * config/i386/i386.c (type_natural_mode): Handle XFmode vectors.
1614
1615 2016-03-02  Richard Biener  <rguenther@suse.de>
1616
1617         PR middle-end/67278
1618         * tree-cfg.c (verify_expr): Adjust BIT_FIELD_REF case.
1619
1620 2016-03-02  Marek Polacek  <polacek@redhat.com>
1621
1622         PR c/67854
1623         * gimplify.c (gimplify_va_arg_expr): Use expanded location for the
1624         "is promoted to" warning.
1625
1626 2016-03-01  DJ Delorie  <dj@redhat.com>
1627
1628         * config.gcc: Deprecate mep-*.
1629
1630 2016-03-01  Vladimir Makarov  <vmakarov@redhat.com>
1631
1632         PR middle-end/70025
1633         * lra-constraints.c (regno_val_use_in): New.
1634         (match_reload): Use it instead of regno_use_in.
1635
1636 2016-03-01  Eric Botcazou  <ebotcazou@adacore.com>
1637
1638         PR rtl-optimization/70007
1639         * gcse.c (compute_ld_motion_mems): Tidy up and also invalidate memory
1640         references present in REG_EQUAL notes attached to non-SET patterns.
1641
1642 2016-03-01  Jeff Law  <law@redhat.com>
1643
1644         PR tree-optimization/69196
1645         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
1646         Appropriately clamp the number of statements to copy when the
1647         thread path does not traverse a loop backedge.
1648
1649         PR tree-optimization/69196
1650         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
1651         Do count some PHIs in the thread path against the insn count.  Decrease
1652         final statement count by one as the control statement in the last
1653         block will get removed.  Remove special cased code for handling PHIs
1654         in the last block.
1655
1656 2016-03-01  Uros Bizjak  <ubizjak@gmail.com>
1657
1658         PR target/70027
1659         * config/i386/i386.c (ix86_output_call_insn): Add -masm=intel
1660         asm dialect alternatives to explicit GOTPCREL calls.
1661
1662 2016-03-01  Eric Botcazou  <ebotcazou@adacore.com>
1663
1664         PR ada/70017
1665         * ira.c (do_reload): Issue warning for generic stack checking here...
1666         * reload1.c (reload): ...instead of here and streamline it.
1667
1668 2016-03-01  Nick Clifton  <nickc@redhat.com>
1669
1670         * config.gcc (cr16-*-elf): Add newlib-stdint.h to tm_file.
1671
1672 2016-03-01  Richard Biener  <rguenther@suse.de>
1673
1674         PR tree-optimization/69983
1675         * tree-chrec.c (eq_evolutions_p): Handle conversions, compare
1676         types and fall back to operand_equal_p.
1677
1678 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
1679
1680         Revert
1681         2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
1682
1683         * config/s390/constraints.md ("jm8"): New constraint.
1684         * config/s390/predicates.md ("const_int_8bitset_operand"): New
1685         predicate.
1686         * config/s390/s390.md ("*setmem_long", "*setmem_long_and"): Merge
1687         into ...
1688         ("*setmem_long<setmem_and>"): New pattern.
1689         ("*setmem_long_31z", "*setmem_long_and_31z"): Merge
1690         into ...
1691         ("*setmem_long_31z<setmem_and>"): New pattern.
1692         * config/s390/subst.md ("setmem_31z_subst", "setmem_and_subst"):
1693         New substitution rules with the required attributes.
1694
1695
1696 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
1697
1698         Revert
1699         2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
1700
1701         * gensupport.c (process_substs_on_one_elem): Split loop to
1702         complete mark_operands_used_in_match_dup on all expressions in the
1703         vector first.
1704         (adjust_operands_numbers): Inline into process_substs_on_one_elem
1705         and remove function.
1706
1707 2016-03-01  Richard Biener  <rguenther@suse.de>
1708
1709         PR middle-end/70022
1710         * fold-const.c (fold_indirect_ref_1): Fix range checking for
1711         vector BIT_FIELD_REF extract.
1712
1713 2016-03-01  Richard Biener  <rguenther@suse.de>
1714
1715         PR tree-optimization/69994
1716         * tree-ssa-reassoc.c (ops_equal_values_p): Handle missing case.
1717
1718 2016-03-01  Ilya Enkovich  <enkovich.gnu@gmail.com>
1719
1720         PR tree-optimization/69956
1721         * tree-vect-stmts.c (supportable_widening_operation): Support
1722         multi-step conversion of boolean vectors.
1723         (supportable_narrowing_operation): Likewise.
1724
1725 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
1726
1727         * config/s390/s390.c (s390_decompose_address): Don't accept SImode
1728         anymore.
1729
1730 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
1731
1732         * config/s390/subst.md (DSI_VI): New mode iterator.
1733         ("addr_style_op_subst"): Use DSI_VI instead of DSI.
1734         * config/s390/vector.md ("vec_set<mode>"): Move expander before
1735         the insn definition.
1736         ("*vec_set<mode>"): Change predicate and add alternative to
1737         support only either register or const_int operands as element
1738         selector.
1739         ("*vec_set<mode>_plus"): New pattern to support reg + const_int
1740         operands.
1741         ("vec_extract<mode>"): New expander.
1742         ("*vec_extract<mode>"): New insn definition supporting reg and
1743         const_int element selectors.
1744         ("*vec_extract<mode>_plus"): New insn definition supporting
1745         reg+const_int element selectors.
1746         ("rotl<mode>3", "ashl<mode>3", "ashr<mode>3"): Merge into the
1747         following expander+insn definition.
1748         ("<vec_shifts_name><mode>3"): New expander.
1749         ("*<vec_shifts_name><mode>3<addr_style_op>"): New insn definition.
1750
1751 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
1752
1753         * config/s390/s390.md ("*tabort_1"): Change predicate to
1754         nonmemory_operand.  Add a second alternative to cover
1755         register as well as const int operands.
1756         ("*tabort_1_plus"): New pattern definition.
1757
1758 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
1759
1760         * config/s390/s390.md ("*ashrdi3_cc_31")
1761         ("*ashrdi3_cconly_31""*ashrdi3_cc_31_and")
1762         ("*ashrdi3_cconly_31_and", "*ashrdi3_31_and", "*ashrdi3_31"):
1763         Merge insn definitions into ...
1764         ("*ashrdi3_31<addr_style_op_cc><masked_op_cc><setcc><cconly>"):
1765         New pattern definition.
1766         ("*ashr<mode>3_cc", "*ashr<mode>3_cconly", "ashr<mode>3", )
1767         ("*ashr<mode>3_cc_and", "*ashr<mode>3_cconly_and")
1768         ("*ashr<mode>3_and"): Merge insn definitions into ...
1769         ("*ashr<mode>3<addr_style_op_cc><masked_op_cc><setcc><cconly>"):
1770         New pattern definition.
1771         * config/s390/subst.md ("addr_style_op_cc_subst")
1772         ("masked_op_cc_subst", "setcc_subst", "cconly_subst"): New
1773         substitutions patterns plus attributes.
1774         Add ashiftrt to SUBST iterator.
1775
1776 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
1777
1778         * config/s390/s390.md ("<shift><mode>3"): Change predicate of
1779         op2 to nonmemory_operand.
1780         ("*<shift>di3_31", "*<shift>di3_31_and"):
1781         Merge into single pattern definition ...
1782         ("*<shift>di3_31<addr_style_op><masked_op>"): New pattern.
1783         ("*<shift><mode>3", "*<shift><mode>3_and"): Merge into single
1784         pattern definition ...
1785         ("*<shift><mode>3<addr_style_op><masked_op>"): New pattern.
1786         * config/s390/subst.md: Add ashift and lshiftrt to SUBST
1787         iterator.
1788
1789 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
1790
1791         * config/s390/predicates.md (const_int_6bitset_operand): New
1792         predicate.
1793         * config/s390/s390.md: Include subst.md.
1794         ("rotl<mode>3"): New expander.
1795         ("rotl<mode>3", "*rotl<mode>3_and"): Merge insn definitions into
1796         ...
1797         ("*rotl<mode>3<addr_style_op><masked_op>"): New insn definition.
1798         * config/s390/subst.md: New file.
1799
1800 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
1801
1802         * config/s390/s390.md ("op_type", "atype", "length" attributes):
1803         Remove RRR type.  It doesn't really exist.
1804         ("RRer", "f0", "v0", "vf", "vd", "op1", "Rf"): Remove mode
1805         attributes.
1806         ("BFP", "DFP", "nDSF", "nDFDI"): Add mode attributes.
1807         ("*cmp<mode>_ccs", "floatdi<mode>2", "add<mode>3")
1808         ("*add<mode>3_cc", "*add<mode>3_cconly", "sub<mode>3")
1809         ("*sub<mode>3_cc", "*sub<mode>3_cconly", "mul<mode>3")
1810         ("fma<mode>4", "fms<mode>4", "div<mode>3", "*neg<mode>2")
1811         ("*abs<mode>2", "*negabs<mode>2", "sqrt<mode>2"): Override
1812         `enabled' attribute.
1813
1814 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
1815
1816         * gensupport.c (process_substs_on_one_elem): Split loop to
1817         complete mark_operands_used_in_match_dup on all expressions in the
1818         vector first.
1819         (adjust_operands_numbers): Inline into process_substs_on_one_elem
1820         and remove function.
1821
1822 2016-02-29  Eric Botcazou  <ebotcazou@adacore.com>
1823
1824         PR target/69706
1825         * config/sparc/sparc.c (NWORDS_UP): Rename to...
1826         (CEIL_NWORDS): ...this.  Use CEIL macro.
1827         (compute_fp_layout): Adjust to above renaming.
1828         (function_arg_union_value): Likewise.
1829         (sparc_arg_partial_bytes): Likewise.
1830         (sparc_function_arg_advance): Likewise.
1831
1832 2016-02-29  Jeff Law  <law@redhat.com>
1833
1834         PR tree-optimization/70005
1835         * tree-ssa-uncprop.c (associate_equivalences_with_edges): Handle case
1836         where an object with a boolean range is compared against a value
1837         outside [0..1].
1838
1839         PR tree-optimization/69999
1840         * gimple-ssa-split-paths.c (split_paths): When duplicating a block
1841         with an outgoing edge marked with EDGE_IRREDUCIBLE_LOOP, schedule
1842         loop cleanups.
1843
1844 2016-02-29  Richard Biener  <rguenther@suse.de>
1845
1846         PR tree-optimization/69994
1847         * tree-ssa-reassoc.c (gimple_nop_conversion_p): New function.
1848         (get_unary_op): Look through nop conversions.
1849         (ops_equal_values_p): New function, look for equality diregarding
1850         nop conversions.
1851         (eliminate_plus_minus_pair): Use ops_equal_values_p
1852         (repropagate_negates): Do not use get_unary_op here.
1853
1854 2016-02-29  Martin Liska  <mliska@suse.cz>
1855
1856         * system.h: Poison ENABLE_CHECKING macro.
1857
1858 2016-02-29  Martin Liska  <mliska@suse.cz>
1859
1860         * hsa-gen.c (gen_body_from_gimple): Dump only if TDF_DETAILS
1861         is presented in dump flags.
1862         * hsa-regalloc.c (linear_scan_regalloc): Likewise.
1863         (hsa_regalloc): Likewise.
1864
1865 2016-02-19  Richard Biener  <rguenther@suse.de>
1866
1867         PR tree-optimization/69980
1868         * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Update
1869         permutation of those we need to keep.
1870
1871 2016-02-29  Eric Botcazou  <ebotcazou@adacore.com>
1872
1873         PR target/69706
1874         * config/sparc/sparc.c (ROUND_ADVANCE): Rename to...
1875         (NWORDS_UP): ...this
1876         (init_cumulative_args): Minor tweaks.
1877         (sparc_promote_function_mode): Likewise.
1878         (scan_record_type): Delete.
1879         (traverse_record_type): New function template.
1880         (classify_data_t): New structure type.
1881         (classify_registers): New inline function.
1882         (function_arg_slotno): In 64-bit mode, bail out early if FP slots are
1883         exhausted.  Instantiate traverse_record_type on classify_registers and
1884         deal with the case of a structure passed in slot #15 with no FP field
1885         in the first word.
1886         (assign_data_t): New structure type.
1887         (compute_int_layout): New static function.
1888         (compute_fp_layout): Likewise.
1889         (count_registers): New inline function.
1890         (assign_int_registers): New static function.
1891         (assign_fp_registers): Likewise.
1892         (assign_registers): New inline function.
1893         (function_arg_record_value_1): Delete.
1894         (function_arg_record_value_2): Likewise.
1895         (function_arg_record_value_3): Likewise.
1896         (function_arg_record_value): Adjust to above changes.  Instantiate
1897         traverse_record_type on count_registers to first count the number of
1898         registers to be used and then on assign_registers to assign them.
1899         (function_arg_union_value): Adjust to above renaming.
1900         (sparc_function_arg_1); Minor tweaks.  Remove commented out code.
1901         (sparc_arg_partial_bytes): Adjust to above renaming.  Deal with the
1902         case of a structure passed in slot #15
1903         (sparc_function_arg_advance): Likewise.
1904         (function_arg_padding): Minor tweak.
1905
1906 2016-02-29  Richard Biener  <rguenther@suse.de>
1907
1908         PR tree-optimization/69720
1909         * tree-vect-loop.c (get_initial_def_for_reduction): Avoid
1910         the adjustment_def path for possibly vectorized defs.
1911         (vect_create_epilog_for_reduction): Handle vectorized initial
1912         defs properly.
1913
1914 2016-02-28  Eric Botcazou  <ebotcazou@adacore.com>
1915
1916         * config/i386/cygming.h (STACK_REALIGN_DEFAULT): Define.
1917
1918 2016-02-27  Jeff Law  <law@redhat.com>
1919
1920         Revert
1921         2016-02-26  Richard Biener  <rguenther@suse.de>
1922                     Jeff Law  <law@redhat.com>
1923
1924         PR tree-optimization/69740
1925         * cfghooks.c (remove_edge): Request loop fixups if we delete
1926         an edge that might turn an irreducible loop into a natural
1927         loop.
1928
1929 2016-02-27  Jakub Jelinek  <jakub@redhat.com>
1930
1931         PR rtl-optimization/69896
1932         * tree-vect-generic.c (get_compute_type): Avoid single element
1933         vector types.
1934
1935 2016-02-26  Evandro Menezes  <e.menezes@samsung.com>
1936
1937         Rename the AArch64 tuning option and related functions to enable the
1938         Newton series for the reciprocal square root to reflect its
1939         approximative characteristic.
1940
1941         * config/aarch64/aarch64-protos.h (aarch64_emit_swrsqrt): Rename
1942         function to "aarch64_emit_approx_rsqrt".
1943         * config/aarch64/aarch64-tuning-flags.def: Rename tuning flag to
1944         AARCH64_EXTRA_TUNE_APPROX_RSQRT.
1945         * config/aarch64/aarch64.c (exynosm1_tunigs): Use new flag name.
1946         (xgene1_tunings): Likewise.
1947         (use_rsqrt_p): Likewise.
1948         (aarch64_emit_swrsqrt): Use new function name.
1949         * config/aarch64/aarch64-simd.md (aarch64_rsqrts_*): Likewise.
1950         * config/aarch64/aarch64.opt (mlow-precision-recip-sqrt): Reword the
1951         text explaining this option.
1952         * doc/invoke.texi (-mlow-precision-recip-sqrt): Likewise.
1953
1954 2016-02-26  Jakub Jelinek  <jakub@redhat.com>
1955
1956         PR target/69969
1957         * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
1958         complain about -mallow-movmisalign without -mvsx if
1959         TARGET_ALLOW_MOVMISALIGN was not set explicitly.
1960
1961 2016-02-26  Joel Sherrill  <joel@rtems.org>
1962
1963         * config.gcc: Add x86_64-*-rtems*.
1964         * gcc/config/i386/rtems-64.h: New file.
1965
1966 2016-02-26  Joel Sherrill  <joel@rtems.org>
1967
1968         * config.gcc: Add aarch64-*-rtems*.
1969         * gcc/config/aarch64/rtems.h: New file.
1970
1971 2016-02-26  Segher Boessenkool  <segher@kernel.crashing.org>
1972
1973         PR target/69946
1974         * config/rs6000/rs6000.c (rs6000_insn_for_shift_mask): Print rlwinm
1975         shift amount using %h.  Add comment.
1976
1977 2016-02-26  Richard Biener  <rguenther@suse.de>
1978             Jeff Law  <law@redhat.com>
1979
1980         PR tree-optimization/69740
1981         * cfghooks.c (remove_edge): Request loop fixups if we delete
1982         an edge that might turn an irreducible loop into a natural
1983         loop.
1984
1985 2016-02-26  Martin Jambor  <mjambor@suse.cz>
1986
1987         PR middle-end/69920
1988         * tree-sra.c (sra_modify_assign): Do not remove loads of
1989         uninitialized aggregates to SSA_NAMEs.
1990
1991 2016-02-26  Richard Henderson  <rth@redhat.com>
1992
1993         PR target/69709
1994         * config/s390/s390.md (risbg and risbgn splitters): Allocate new
1995         pseudo in case the target rtx matches the source of the left
1996         shift.
1997
1998 2016-02-26  Martin Jambor  <mjambor@suse.cz>
1999
2000         PR hsa/69568
2001         * hsa.h (hsa_type_packed_p): Declare.
2002         * hsa.c (hsa_type_packed_p): New function.
2003         * hsa-gen.c (mem_type_for_type): Use unsigned type for packed
2004         loads.
2005         (gen_hsa_insns_for_store): Use hsa_type_packed_p.
2006         * hsa-brig.c (emit_basic_insn): Likewise.
2007
2008 2016-02-26  Martin Jambor  <mjambor@suse.cz>
2009
2010         pr hsa/69674
2011         * hsa-gen.c (gen_hsa_phi_from_gimple_phi): Use proper hsa type for
2012         pointers.
2013         (gen_hsa_addr): Allow integer constants in TMR_INDEX2.
2014
2015 2016-02-26  Martin Jambor  <mjambor@suse.cz>
2016
2017         * hsa.h (is_a_helper): New overload for hsa_op_immed for
2018         hsa_op_with_type operands.
2019         (hsa_unsigned_type_for_type): Declare.
2020         * hsa.c (hsa_unsigned_type_for_type): New function.
2021         * hsa-gen.c (gen_hsa_binary_operation): Use hsa_unsigned_type_for_type.
2022         (gen_hsa_insns_for_operation_assignment): Satisfy constrains of
2023         the finalizer.  Do not emit extra move.
2024
2025 2016-02-26  Martin Jambor  <mjambor@suse.cz>
2026
2027         * hsa-gen.c (gen_hsa_ternary_atomic_for_builtin): Fail in presence of
2028         atomic operations in private segment.
2029
2030 2016-02-26  Martin Jambor  <mjambor@suse.cz>
2031
2032         * omp-low.c (grid_find_ungridifiable_statement): Store problematic
2033         statements to wi->info.  Also disallow omp simd constructs.
2034         (grid_target_follows_gridifiable_pattern): Use wi.info to dump reason
2035         for not gridifying.  Dump special string for omp_for.
2036
2037 2016-02-26  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2038
2039         PR target/69245
2040         * config/aarch64/aarch64.c (aarch64_set_current_function):
2041         Save/restore target globals when switching to
2042         target_option_default_node.
2043
2044 2016-02-26  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2045
2046         PR target/69613
2047         * config/aarch64/aarch64.c (aarch64_shift_truncation_mask):
2048         Return 0 if !SHIFT_COUNT_TRUNCATED.
2049
2050 2016-02-26  Jakub Jelinek  <jakub@redhat.com>
2051             Eric Botcazou  <ebotcazou@adacore.com>
2052
2053         PR rtl-optimization/69891
2054         * dse.c (scan_insn): If we can't figure out memset arguments
2055         or they are non-constant, call clear_rhs_from_active_local_stores.
2056
2057 2016-02-26  Martin Liska  <mliska@suse.cz>
2058
2059         * doc/extend.texi: Mention clog10, clog10f an clog10l
2060         in Builtins section.
2061
2062 2016-02-26  Martin Liska  <mliska@suse.cz>
2063
2064         * dwarf2out.c (new_loc_descr): Replace ENABLE_CHECKING with
2065         CHECKING_P.
2066         (resolve_args_picking_1): Likewise.
2067         * dwarf2out.h (struct GTY): Likewise.
2068
2069 2016-02-26  Martin Liska  <mliska@suse.cz>
2070
2071         * hsa-gen.c (generate_hsa): Replace ENABLE_CHECKING macro
2072         with flag_checking.
2073         * hsa-regalloc.c (linear_scan_regalloc): Likewise.
2074
2075 2016-02-26  Markus Trippelsdorf  <markus@trippelsdorf.de>
2076             Martin Liska  <mliska@suse.cz>
2077
2078         * doc/install.texi: Mention --enable-valgrind-annotations.
2079
2080 2016-02-26  Richard Biener  <rguenther@suse.de>
2081
2082         PR tree-optimization/69551
2083         * tree-ssa-structalias.c (get_constraint_for_ssa_var): When
2084         looking through aliases adjust DECL_PT_UID to refer to the
2085         ultimate alias target.
2086
2087 2016-02-25  Martin Liska  <mliska@suse.cz>
2088
2089         PR middle-end/69919
2090         * alloc-pool.c (after_memory_report): New variable.
2091         * alloc-pool.h (base_pool_allocator ::release): Do not use
2092         the infrastructure if after_memory_report.
2093         * toplev.c (toplev::main): Mark after memory report.
2094
2095 2016-02-25  Richard Biener  <rguenther@suse.de>
2096
2097         PR tree-optimization/48795
2098         * tree-vrp.c (check_array_ref): Use array_at_struct_end_p.
2099
2100 2016-02-25  Ilya Verbin  <ilya.verbin@intel.com>
2101
2102         PR driver/68463
2103         * config/gnu-user.h (CRTOFFLOADBEGIN): Define.  Add crtoffloadbegin.o if
2104         offloading is enabled and -fopenacc or -fopenmp is specified.
2105         (CRTOFFLOADEND): Likewise.
2106         (GNU_USER_TARGET_STARTFILE_SPEC): Add CRTOFFLOADBEGIN.
2107         (GNU_USER_TARGET_ENDFILE_SPEC): Add CRTOFFLOADEND.
2108         * lto-wrapper.c (offloadbegin, offloadend): Remove static vars.
2109         (offload_objects_file_name): New static var.
2110         (tool_cleanup): Remove offload_objects_file_name file.
2111         (find_offloadbeginend): Replace with ...
2112         (find_crtoffloadtable): ... this.
2113         (run_gcc): Remove offload_argc and offload_argv.
2114         Get offload_objects_file_name from -foffload-objects=... option.
2115         Read names of object files with offload from this file, pass them to
2116         compile_images_for_offload_targets.  Don't call find_offloadbeginend and
2117         don't pass offloadbegin and offloadend to the linker.  Don't pass
2118         offload non-LTO files to the linker, because now they're not claimed.
2119
2120 2016-02-25  Jan Hubicka  <hubicka@ucw.cz>
2121
2122         PR ipa/69630
2123         * ipa-devirt.c (possible_polymorphic_call_targets): Do not ICE
2124         on builtin_unreachable.
2125
2126 2016-02-25  Jakub Jelinek  <jakub@redhat.com>
2127
2128         PR rtl-optimization/69896
2129         * regcprop.c: Include cfgrtl.h.
2130         (copyprop_hardreg_forward_1): If noop_p insn uses narrower
2131         than remembered mode, either delete it (if noop_move_p), or
2132         treat like copy_p but not noop_p instruction.
2133
2134 2016-02-24  Jakub Jelinek  <jakub@redhat.com>
2135
2136         PR debug/69705
2137         * dwarf2out.c (gen_variable_die): Work around buggy LTO
2138         - allow NULL decl for Fortran DW_TAG_common_block variables.
2139
2140 2016-02-24  Jason Merrill  <jason@redhat.com>
2141
2142         * common.opt (flifetime-dse): Add -flifetime-dse=1.
2143
2144 2016-02-24  Richard Biener  <rguenther@suse.de>
2145             Jakub Jelinek  <jakub@redhat.com>
2146
2147         PR middle-end/69760
2148         * tree-scalar-evolution.c (interpret_rhs_expr): Re-write
2149         conditionally executed ops to well-defined overflow behavior.
2150
2151 2016-02-24  Jakub Jelinek  <jakub@redhat.com>
2152
2153         PR middle-end/69915
2154         * tree.c (build_vector_from_ctor): Fix handling of VECTOR_CST
2155         elements.
2156
2157 2016-02-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2158
2159         PR rtl-optimization/69886
2160         * gcse.c (can_assign_to_reg_without_clobbers_p): Accept mode
2161         argument.  Use it when checking validity of set instructions.
2162         (want_to_gcse_p): Pass mode to can_assign_to_reg_without_clobbers_p.
2163         (compute_ld_motion_mems): Update can_assign_to_reg_without_clobbers_p
2164         callsite.
2165         * rtl.h (can_assign_to_reg_without_clobbers_p): Update prototype.
2166         * store-motion.c (find_moveable_store): Update
2167         can_assign_to_reg_without_clobbers_p callsite.
2168
2169 2016-02-24  Richard Biener  <rguenther@suse.de>
2170
2171         PR middle-end/68963
2172         * tree-ssa-loop-niter.c (derive_constant_upper_bound_ops): Fix
2173         bogus check.
2174         (record_nonwrapping_iv): Do not fall back to the low/high bound
2175         for non-constant IV bases if the stmt is not always executed.
2176
2177 2016-02-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2178
2179         * config/arm/arm-cores.def (cortex-a32): New entry.
2180         * config/arm/arm-tables.opt: Regenerate.
2181         * config/arm/arm-tune.md: Regenerate.
2182         * config/arm/bpabi.h (BE8_LINK_SPEC): Add mcpu=cortex-a32.
2183         * config/arm/t-aprofile: Handle mcpu=cortex-a32.
2184         * doc/invoke.texi (ARM Options): Document cortex-a32 as value
2185         for -mcpu and -mtune.
2186
2187 2016-02-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2188
2189         PR target/69875
2190         * config/arm/arm.h (TARGET_HAVE_LPAE): Define.
2191         * config/arm/unspecs.md (VUNSPEC_LDRD_ATOMIC): New value.
2192         * config/arm/sync.md (arm_atomic_loaddi2_ldrd): New pattern.
2193         (atomic_loaddi_1): Delete.
2194         (atomic_loaddi): Rewrite expander using the above changes.
2195
2196 2016-02-24  Jakub Jelinek  <jakub@redhat.com>
2197
2198         PR c/69918
2199         * params.def (PARAM_MAX_SSA_NAME_QUERY_DEPTH): Bump default from
2200         2 to 3.
2201
2202 2016-02-24  Jakub Jelinek  <jakub@redhat.com>
2203             Richard Biener  <rguenth@suse.de>
2204
2205         PR middle-end/69909
2206         * expr.c (expand_expr_real_1) <normal_inner_ref>: Avoid
2207         set_mem_attributes if tem is SSA_NAME which got expanded
2208         as a MEM.
2209
2210 2016-02-24  Richard Biener  <rguenther@suse.de>
2211
2212         PR tree-optimization/69907
2213         * tree-vect-stmts.c (vectorizable_load): Check for gaps at the
2214         end of permutations for BB vectorization.
2215
2216 2016-02-24  Christian Bruel  <christian.bruel@st.com>
2217
2218         * config/arm/arm-c.c (arm_option_override): Initialize
2219         target_option_current_node.
2220         * config/arm/arm.c (arm_pragma_target_parse): Replace
2221         build_target_option_node call by target_option_current_node.
2222         Set target_option_current_node.
2223         Fix comments.
2224
2225 2016-02-23  David Edelsohn  <dje.gcc@gmail.com>
2226
2227         PR target/69810
2228         * config/rs6000/rs6000.md (zero_extendqi<mode>2_dot): Convert from
2229         define_insn_and_split to define_insn.
2230         (zero_extendqi<mode>2_dot2): Same.
2231         (extendqi<mode>2_dot): Same.
2232         (extendqi<mode>2_dot2): Same.
2233
2234 2016-02-23  Evandro Menezes  <e.menezes@samsung.com>
2235
2236         * config/arm/exynos-m1.md: Change cost of STP, fix bypass for stores
2237         and add bypass for AES{D,E} and AESMC pairs.
2238         * config/aarch64/aarch64.c (exynosm1_tunings): Enable fusion of AES{D,E}
2239         and AESMC pairs.
2240
2241 2016-02-23  Evandro Menezes  <e.menezes@samsung.com>
2242
2243         * config/aarch64/aarch64.c (exynosm1_tunings): Enable the Newton
2244         series for reciprocal square root in Exynos M1.
2245
2246 2016-02-23  Martin Sebor  <msebor@redhat.com>
2247
2248         PR c/69759
2249         * doc/extend.texi (Other Builtins): Document __builtin_alloca and
2250         __builtin_alloca_with_align.
2251
2252 2016-02-23  Richard Henderson  <rth@redhat.com>
2253
2254         * config/i386/i386-c.c (ix86_target_macros): Remove __SEG_TLS.
2255         (ix86_register_pragmas): Remove __seg_tls.
2256         * config/i386/i386-protos.h (ADDR_SPACE_SEG_TLS): Remove.
2257         * config/i386/i386.c (ix86_print_operand_address_as): Don't handle it.
2258         (ix86_addr_space_subset_p, TARGET_ADDR_SPACE_SUBSET_P): Remove.
2259         (ix86_addr_space_convert, TARGET_ADDR_SPACE_CONVERT): Remove.
2260         (ix86_addr_space_debug, TARGET_ADDR_SPACE_DEBUG): Remove.
2261         * doc/extend.texi (__seg_tls): Remove item.
2262
2263 2016-02-23  Richard Biener  <rguenther@suse.de>
2264
2265         * alloc-pool.h (struct allocation_object): Make id member
2266         conditional on CHECKING_P again.
2267         (get_instance): Adjust.
2268         (base_pool_allocator): Likewise.
2269
2270 2016-02-23  Thomas Schwinge  <thomas@codesourcery.com>
2271
2272         * tree-parloops.c (create_parallel_loop, gen_parallel_loop)
2273         (parallelize_loops): In OpenACC kernels mode, set n_threads to
2274         zero.
2275         (pass_parallelize_loops::gate): In OpenACC kernels mode, gate on
2276         flag_openacc.
2277         * tree-ssa-loop.c (gate_oacc_kernels): Likewise.
2278
2279 2016-02-23  Richard Biener  <rguenther@suse.de>
2280
2281         * mem-stats.h (struct mem_usage): Use PRIu64 for printing size_t.
2282         * bitmap.h (struct bitmap_usage): Likewise.
2283         (bitmap_move): Declare.
2284         * bitmap.c (register_overhead): Take size_t argument.
2285         (bitmap_move): New function.
2286         * df-problems.c (df_rd_transfer_function): Use bitmap_move
2287         to properly account overhead.
2288         * tree.c (free_node): Use tree_size.
2289
2290 2016-02-23  Jakub Jelinek  <jakub@redhat.com>
2291
2292         PR c++/69902
2293         * fold-const.c (fold_truth_not_expr): Propagate TREE_NO_WARNING
2294         when inverting comparison.
2295
2296         PR c/69900
2297         * common.opt (Wunreachable-code): Add Warning flag.
2298
2299 2016-02-23  Mark Wielaard  <mjw@redhat.com>
2300             Jakub Jelinek  <jakub@redhat.com>
2301
2302         PR c/69911
2303         * cgraphunit.c (check_global_declaration): Check main_input_filename
2304         and DECL_SOURCE_FILE are not NULL.
2305
2306 2016-02-23  Martin Jambor  <mjambor@suse.cz>
2307
2308         PR tree-optimization/69666
2309         * tree-sra.c (sra_modify_assign): Do not attempt to create
2310         default_def replacements for unscalarizable regions.
2311
2312 2016-02-20  Mark Wielaard  <mjw@redhat.com>
2313
2314         PR c/28901
2315         * cgraphunit.c (check_global_declaration): Check level of
2316         warn_unused_const_variable and main_input_filename.
2317         * doc/invoke.texi (Warning Options): Add -Wunused-const-variable=.
2318         (-Wunused-variable): For C implies -Wunused-const-variable=1.
2319         (-Wunused-const-variable): Explain levels 1 and 2.
2320
2321 2016-02-22  Jakub Jelinek  <jakub@redhat.com>
2322
2323         PR target/69888
2324         * config/i386/i386.c (decide_alg): Ensure we don't recurse with
2325         identical arguments.  Formatting and spelling fixes.
2326
2327         PR target/69885
2328         * doc/md.texi (ashl@var{m}3): Document that mode of operand 2 must
2329         be specified.
2330
2331         PR target/69894
2332         PR target/69895
2333         * config/m68k/t-opts (OPTIONS_H_EXTRA): Add m68k-microarchs.def
2334         and m68k-devices.def.
2335         * config/c6x/t-c6x (OPTIONS_H_EXTRA): Add c6x-isas.def.
2336         * config/aarch64/t-aarch64 (OPTIONS_H_EXTRA): Add aarch64-arches.def.
2337
2338 2016-02-22  Cesar Philippidis  <cesar@codesourcery.com>
2339
2340         * config/nvptx/nvptx.c (nvptx_gen_shuffle): Add support for QImode
2341         and HImode registers.
2342
2343 2016-02-22  Richard Biener  <rguenther@suse.de>
2344
2345         PR tree-optimization/69882
2346         * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Properly
2347         preserve permutations present because of gaps.
2348         (vect_supported_load_permutation_p): Always continue checking
2349         permutations after vect_attempt_slp_rearrange_stmts.
2350
2351 2016-02-22  Bin Cheng  <bin.cheng@arm.com>
2352
2353         * tree-vect-loop.c (vect_estimate_min_profitable_iters): Dump
2354         min_profitable_estimate, rather than min_profitable_iters.
2355
2356 2016-02-22  Jakub Jelinek  <jakub@redhat.com>
2357
2358         PR target/69885
2359         * config/m68k/m68k.md (ashldi3, ashrdi3, lshrdi3): Use
2360         SImode for last match_operand.
2361
2362 2016-02-22  Martin Liska  <mliska@suse.cz>
2363
2364         * hsa-gen.c (gen_hsa_clrsb): In case of zero value,
2365         return bitsize - 1 as the return value.
2366
2367 2016-02-22  Oleg Endo  <olegendo@gcc.gnu.org>
2368
2369         PR target/69806
2370         PR target/54089
2371         * config/sh/sh.c (sh_lshrsi_clobbers_t_reg_p, sh_dynamicalize_shift_p):
2372         Handle negative shift counts.
2373         * config/sh/sh.md (ashlsi3, lshrsi3_n, lshrsi3_n_clobbers_t): Don't use
2374         force_reg on the shift constant.
2375         (lshrsi3): Likewise.  Expand into lshrsi3_n* instead of lshrsi3_d.
2376         (lshrsi3_d): Handle negative shift counts.
2377
2378 2016-02-22  Richard Biener  <rguenther@suse.de>
2379             Tom de Vries  <tom@codesourcery.com>
2380
2381         * graph.c: Include dumpfile.h.
2382         (print_graph_cfg): Split into three overloads.
2383         * gdbhooks.py (class DotFn): Add and instantiate, adding command dot-fn.
2384
2385 2016-02-22  Tom de Vries  <tom@codesourcery.com>
2386
2387         * gdbhooks.py (class DumpFn): Add and instantiate, adding command
2388         dump-fn.
2389
2390 2016-02-22  Richard Biener  <rguenther@suse.de>
2391
2392         PR ipa/37448
2393         * ipa-inline-transform.c (inline_call): When not updating
2394         overall summaries adjust self size by the growth estimate.
2395         * ipa-inline.c (inline_to_all_callers_1): Add to the callers
2396         hash-set, do not update overall summaries here.  Renamed from ...
2397         (inline_to_all_callers): ... this which is now wrapping the
2398         above and performing delayed overall summary update.
2399         (early_inline_small_functions): Delay updating of the overall
2400         summary.
2401
2402 2016-02-21  Markus Trippelsdorf  <markus@trippelsdorf.de>
2403
2404         * tree-chkp.c (chkp_mark_invalid_bounds_walker): Initialize
2405         variable.
2406
2407 2016-02-19  Jakub Jelinek  <jakub@redhat.com>
2408
2409         PR driver/69805
2410         * gcc.c (LINK_COMMAND_SPEC, GOMP_SELF_SPECS): Use
2411         :%* in %:gt() argument.
2412         (greater_than_spec_func): Adjust for expecting only numbers,
2413         if there are more than two numbers, compare the last two.
2414
2415 2016-02-19  Jonathan Wakely  <jwakely@redhat.com>
2416
2417         * doc/invoke.texi (C++ Dialect Options): Clarify interaction of
2418         -Wnarrowing with -std.
2419
2420 2016-02-19  Jakub Jelinek  <jakub@redhat.com>
2421
2422         PR c++/69851
2423         * expr.c (store_field): Don't use bit-field path if exp is
2424         COMPONENT_REF with TREE_ADDRESSABLE type, where TYPE_SIZE is
2425         different from bitsize, but DECL_SIZE of FIELD_DECL is bitsize
2426         and the assignment can be performed by bitwise copy.  Formatting
2427         fix.
2428
2429         PR middle-end/69838
2430         * lra.c (lra_process_new_insns): If non-call exceptions are enabled,
2431         call copy_reg_eh_region_note_forward on before and/or after sequences
2432         and remove note from insn if it no longer can throw.
2433
2434         PR target/69820
2435         * config/i386/sse.md (VI_512): Only include V64QImode and V32HImode
2436         if TARGET_AVX512BW.
2437
2438 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
2439
2440         * config/s390/vector.md: Add missing commutative operand markers
2441         to the patterns which qualify for one.
2442         * config/s390/vx-builtins.md: Likewise.
2443
2444 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
2445
2446         * config/s390/vector.md (VI, VI_QHS): Add single element vector
2447         types to mode iterators.
2448         (vec_double): ... and mode attribute.
2449         * config/s390/vx-builtins.md (non_vec_int): Likewise.
2450
2451 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
2452
2453         * config/s390/vector.md ("<ti*>add<mode>3", "<ti*>sub<mode>3"):
2454         Change the predicate of op2 from nonimmediate to general and let
2455         reload fix it if necessary.
2456
2457 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
2458
2459         * config/s390/vecintrin.h (vec_sub_u128): Define missing macro.
2460
2461 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
2462
2463         * config/s390/s390.c (s390_expand_vcond): Use the compare operand
2464         mode.
2465
2466 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
2467
2468         * config/s390/s390-protos.h: Add s390_expand_vec_movstr prototype.
2469         * config/s390/s390.c (s390_expand_vec_movstr): New function.
2470         * config/s390/s390.md ("movstr<P:mode>"): Call
2471         s390_expand_vec_movstr.
2472
2473 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
2474
2475         * config/s390/s390.md: Add missing output modifier for operand 1
2476         to print it as address properly.
2477
2478 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
2479
2480         * config/s390/2827.md: Rename ooo_* insn attributes to zEC12_*.
2481         * config/s390/2964.md: New file.
2482         * config/s390/s390.c (s390_get_sched_attrmask): Use the right set
2483         of insn grouping attributes depending on the CPU level.
2484         (s390_get_unit_mask): New function.
2485         (s390_sched_score): Remove the OOO from the scheduling macros.
2486         Add loop to calculate a score for the instruction mix.
2487         (s390_sched_reorder): Likewise plus improve debug output.
2488         (s390_sched_variable_issue): Rename macros as above.  Calculate
2489         the unit distances after actually scheduling an insn.  Improve
2490         debug output.
2491         (s390_sched_init): Clear last_scheduled_unit_distance array.
2492         * config/s390/s390.md: Include 2964.md.
2493
2494 2016-02-18  Jakub Jelinek  <jakub@redhat.com>
2495
2496         PR target/69671
2497         * config/i386/sse.md (*<floatsuffix>floatv2div2sf2_mask_1,
2498         *avx512vl_<code>v2div2qi2_mask_1, *avx512vl_<code><mode>v4qi2_mask_1,
2499         *avx512vl_<code><mode>v8qi2_mask_1, *avx512vl_<code><mode>v4hi2_mask_1,
2500         *avx512vl_<code>v2div2hi2_mask_1, *avx512vl_<code>v2div2si2_mask_1,
2501         *avx512f_<code>v8div16qi2_mask_1): New insns.
2502
2503 2016-02-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
2504
2505         PR target/68404
2506         * config/rs6000/predicates.md (fusion_gpr_addis): Revert
2507         2016-02-09 change.
2508
2509         * config/rs6000/rs6000.md (fusion_gpr_load_<mode>): Remove
2510         earlyclobber from target.  Use wF constraint for fused memory
2511         address.
2512         (fusion_gpr_<P:mode>_<GPR_FUSION:mode>_load): Likewise.
2513
2514 2016-02-18  Jakub Jelinek  <jakub@redhat.com>
2515             Martin Liska  <mliska@suse.cz>
2516
2517         PR sanitizer/69863
2518         * cfgexpand.c (asan_sanitize_stack_p): New function.
2519         (partition_stack_vars): Use the function.
2520         (expand_stack_vars): Likewise.
2521         (defer_stack_allocation): Likewise.
2522         (expand_used_vars): Likewise.
2523
2524 2016-02-18  Richard Biener  <rguenther@suse.de>
2525
2526         PR middle-end/69553
2527         * fold-const.c (operand_equal_p): Properly compare offsets for
2528         IMAGPART_EXPR and ARRAY_REF.
2529
2530 2016-02-18  Nick Clifton  <nickc@redhat.com>
2531
2532         PR target/62254
2533         PR target/69610
2534         * config/arm/arm.c (arm_option_override_internal): Disable
2535         interworking if the target does not support thumb instructions.
2536         (arm_reload_in_hi): Handle the case where a register to register
2537         move needs reloading because there is no simple pattern to handle
2538         it.
2539         (arm_reload_out_hi): Likewise.
2540
2541 2016-02-18  Richard Biener  <rguenther@suse.de>
2542
2543         PR middle-end/69854
2544         * match.pd: Don't use fold_binary or fold_unary for folding
2545         constants.
2546
2547 2016-02-17  Jakub Jelinek  <jakub@redhat.com>
2548
2549         PR c++/69850
2550         * gimplify.c (gimplify_cond_expr): Call gimple_set_no_warning
2551         on the cond_stmt from TREE_NO_WARNING on COND_EXPR_COND.
2552         * gimple-ssa-nonnull-compare.c (do_warn_nonnull_compare): Don't
2553         warn on gimple_no_warning_p statements.
2554
2555 2016-02-17  Jonathan Wakely  <jwakely@redhat.com>
2556
2557         * doc/extend.texi (C++ Attributes): Correct description of
2558         warn_unused type attribute.
2559
2560 2016-02-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2561
2562         * config/rs6000/altivec.md (*altivec_lvxl_<mode>_internal): Output
2563         correct instruction.
2564
2565 2016-02-17  Richard Biener  <rguenther@suse.de>
2566
2567         PR rtl-optimization/69609
2568         * bb-reorder.c (struct bbro_basic_block_data): Add priority member.
2569         (find_traces_1_round): When ending a trace update cached priority
2570         of successors.
2571         (bb_to_key): Use cached priority when available.
2572         (copy_bb): Initialize cached priority.
2573         (reorder_basic_blocks_software_trace_cache): Likewise.
2574
2575 2016-02-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2576
2577         PR target/69161
2578         * config/aarch64/predicates.md (aarch64_comparison_operator_mode):
2579         New predicate.
2580         (aarch64_comparison_operator): Break overly long line into two.
2581         (aarch64_comparison_operation): Likewise.
2582         * config/aarch64/aarch64.md (cstorecc4): Use
2583         aarch64_comparison_operator_mode instead of
2584         aarch64_comparison_operator.
2585         (cstore<mode>4): Likewise.
2586         (aarch64_cstore<mode>): Likewise.
2587         (*cstoresi_insn_uxtw): Likewise.
2588         (cstore<mode>_neg): Likewise.
2589         (*cstoresi_neg_uxtw): Likewise.
2590
2591 2016-02-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2592
2593         PR target/69161
2594         * config/arm/predicates.md (arm_comparison_operator_mode):
2595         New predicate.
2596         * config/arm/arm.md (*mov_scc): Use arm_comparison_operator_mode
2597         instead of arm_comparison_operator.
2598         (*mov_negscc): Likewise.
2599         (*mov_notscc): Likewise.
2600         * config/arm/thumb2.md (*thumb2_mov_scc): Likewise.
2601         (*thumb2_mov_negscc): Likewise.
2602         (*thumb2_mov_negscc_strict_it): Likewise.
2603         (*thumb2_mov_notscc): Likewise.
2604         (*thumb2_mov_notscc_strict_it): Likewise.
2605
2606 2016-02-17  Wilco Dijkstra  <wdijkstr@arm.com>
2607
2608         * config/aarch64/aarch64.c (aarch64_internal_mov_immediate):
2609         Add missing return.
2610
2611 2016-02-17  Eric Botcazou  <ebotcazou@adacore.com>
2612
2613         * config/visium/visium.c (machine_libfunc_index): New enum.
2614         (machine_libfuncs): New structure.
2615         (visium_libfuncs): New static variable.
2616         (TARGET_INIT_LIBFUNCS): Define to...
2617         (visium_init_libfuncs): ...this.  New function.
2618         (expand_block_move_4): Use the appropriate libfunc.
2619         (expand_block_move_2): Likewise.
2620         (expand_block_move_1): Likewise.
2621         (expand_block_set_4): Likewise.
2622         (expand_block_set_2): Likewise.
2623         (expand_block_set_1): Likewise.
2624         (visium_trampoline_init): Likewise.
2625
2626 2016-02-17  Nick Clifton  <nickc@redhat.com>
2627
2628         * config/msp430/msp430.c (msp430_mcu_data): Sync with data from
2629         TI's devices.csv file as of March 2016.
2630
2631 2016-02-16  Kelvin Nilsen  <kelvin@gcc.gnu.org>
2632
2633         PR Target/48344
2634         * opts-global.c (handle_common_deferred_options): Introduce and
2635         initialize two global variables to remember command-line options
2636         specifying a stack-limiting register.
2637         * opts.h: Add extern declarations of the two new global variables.
2638         * emit-rtl.c (init_emit_once): Initialize the stack_limit_rtx
2639         variable based on the values of the two new global variables.
2640
2641 2016-02-16  Jakub Jelinek  <jakub@redhat.com>
2642
2643         PR c/69835
2644         * common.opt (Wnonnull-compare): New warning.
2645         * doc/invoke.texi (-Wnonnull): Remove text about comparison
2646         of arguments against NULL.
2647         (-Wnonnull-compare): Document.
2648         * Makefile.in (OBJS): Add gimple-ssa-nonnull-compare.o.
2649         * tree-pass.h (make_pass_warn_nonnull_compare): Declare.
2650         * passes.def (pass_warn_nonnull_compare): Add.
2651         * gimple-ssa-nonnull-compare.c: New file.
2652
2653 2016-02-16  James Greenhalgh  <james.greenhalgh@arm.com>
2654
2655         * config/aarch64/aarch64.c (cortexa57_tunings): Remove
2656         AARCH64_EXTRA_TUNE_RECIP_SQRT.
2657
2658 2016-02-16  James Greenhalgh  <james.greenhalgh@arm.com>
2659
2660         * config/aarch64/aarch64.c (use_rsqrt_p): Always use software
2661         reciprocal sqrt for -mlow-precision-recip-sqrt.
2662
2663 2016-02-16  James Greenhalgh  <james.greenhalgh@arm.com>
2664             Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2665
2666         * config/aarch64/aarch64.c (aarch64_expand_vector_init): Refactor,
2667         always use lane loads to construct non-constant vectors.
2668
2669 2016-02-16  James Greenhalgh  <james.greenhalgh@arm.com>
2670
2671         * config/aarch64/aarch64.md
2672         (arch64_sqrdml<SQRDMLH_AS:rdma_as>h_lane<mode>): Fix register
2673         constraints for operand 3.
2674         (aarch64_sqrdml<SQRDMLH_AS:rdma_as>h_laneq<mode>): Likewise.
2675
2676 2016-02-16  Jakub Jelinek  <jakub@redhat.com>
2677             Richard Biener  <rguenther@suse.de>
2678
2679         PR tree-optimization/69820
2680         * tree-vect-patterns.c (type_conversion_p): Return false if
2681         *orig_type is unsigned single precision or boolean.
2682         (vect_recog_dot_prod_pattern, vect_recog_widen_mult_pattern):
2683         Formatting fix.
2684
2685 2016-02-16  Jakub Jelinek  <jakub@redhat.com>
2686
2687         PR rtl-optimization/69764
2688         PR rtl-optimization/69771
2689         * optabs.c (expand_binop): Ensure for shift optabs invalid CONST_INT
2690         op1 is valid for GET_MODE_INNER (mode) and force it into a reg.
2691
2692 2016-02-16  Richard Biener  <rguenther@suse.de>
2693
2694         PR tree-optimization/69776
2695         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Get alias
2696         sets from caller.
2697         (indirect_refs_may_alias_p): Likewise.
2698         (refs_may_alias_p_1): Pass alias sets as from ao_ref.
2699         * tree-ssa-sccvn.c (vn_reference_lookup): Also adjust vr alias-set
2700         according to tbaa_p.
2701         * tree-ssa-dom.c (lookup_avail_expr): Add tbaa_p flag.
2702         (optimize_stmt): For redundant store discovery do not allow tbaa.
2703
2704 2016-02-16  Bernd Schmidt  <bschmidt@redhat.com>
2705
2706         PR tree-optimization/69714
2707         * tree-ssa-math-opts.c (find_bswap_or_nop): Revert previous change.
2708         Return NULL if we have irrelevant high bytes on BIG_ENDIAN.
2709
2710 2016-02-16  Claudiu Zissulescu  <claziss@synopsys.com>
2711
2712         * config/arc/arc-modes.def (CC_FPU, CC_FPU_UNEQ): New modes.
2713         * config/arc/arc-opts.h (FPU_SP, FPU_SF, FPU_SC, FPU_SD, FPU_DP)
2714         (FPU_DF, FPU_DC, FPU_DD, FXP_DP): Define.
2715         * config/arc/arc.c (arc_init): Check FPU options.
2716         (get_arc_condition_code): Handle new CC_FPU* modes.
2717         (arc_select_cc_mode): Likewise.
2718         (arc_conditional_register_usage): Allow 64 bit datum into even-odd
2719         register pair only. Allow access for ARCv2 accumulator.
2720         (gen_compare_reg): Whenever we have FPU support use FPU compare
2721         instructions.
2722         (arc_reorg): Don't generate brcc insns when FPU compare
2723         instructions are involved.
2724         * config/arc/arc.h (TARGET_DPFP): Add TARGET_FP_DPAX condition.
2725         (TARGET_OPTFPE): Add condition when ARC EM can use optimized
2726         floating point emulation.
2727         (ACC_REG_FIRST, ACC_REG_LAST, ACCL_REGNO, ACCH_REGNO): Define.
2728         (REVERSE_CONDITION): Add new CC_FPU* modes.
2729         (TARGET_FP_SP_BASE): Define.
2730         (TARGET_FP_DP_BASE): Likewise.
2731         (TARGET_FP_SP_FUSED): Likewise.
2732         (TARGET_FP_DP_FUSED): Likewise.
2733         (TARGET_FP_SP_CONV): Likewise.
2734         (TARGET_FP_DP_CONV): Likewise.
2735         (TARGET_FP_SP_SQRT): Likewise.
2736         (TARGET_FP_DP_SQRT): Likewise.
2737         (TARGET_FP_DP_AX): Likewise.
2738         * config/arc/arc.md (ARCV2_ACC): New constant.
2739         (type): New fpu type attribute.
2740         (SDF): Conditional iterator.
2741         (cstore<mode>, cbranch<mode>): Change expand condition.
2742         (addsf3, subsf3, mulsf3, adddf3, subdf3, muldf3): New expands,
2743         handles FPU/FPX cases as well.
2744         * config/arc/arc.opt (mfpu): New option.
2745         * config/arc/fpx.md (addsf3_fpx, subsf3_fpx, mulsf3_fpx):
2746         Renamed.
2747         (adddf3, muldf3, subdf3): Removed.
2748         * config/arc/predicates.md (proper_comparison_operator): Recognize
2749         CC_FPU* modes.
2750         * config/arc/fpu.md: New file.
2751         * doc/invoke.texi (ARC Options): Document mfpu option.
2752
2753 2016-02-16  Richard Biener  <rguenther@suse.de>
2754
2755         PR rtl-optimization/69291
2756         * ifcvt.c (noce_try_store_flag_constants): Re-instantiate
2757         noce_operand_ok check.
2758
2759 2016-02-16  Tom de Vries  <tom@codesourcery.com>
2760
2761         PR lto/67709
2762         * omp-low.c (simd_clone_create): Remove call to
2763         symtab->call_cgraph_insertion_hooks.
2764
2765 2016-02-16  Jakub Jelinek  <jakub@redhat.com>
2766
2767         PR tree-optimization/69802
2768         * tree-ssa-reassoc.c (update_range_test): If op is
2769         SSA_NAME_IS_DEFAULT_DEF, give up unless tem is a positive
2770         op == 1 test of precision 1 integral op, otherwise handle
2771         that case as op itself.  Fix up formatting.
2772         (optimize_range_tests_to_bit_test, optimize_range_tests): Fix
2773         up formatting.
2774
2775 2016-02-16  Richard Biener  <rguenther@suse.de>
2776
2777         PR tree-optimization/69586
2778         * tree-vrp.c (register_edge_assert_for_2): Handle all integral
2779         types for conversion sources.
2780
2781 2016-02-16  Richard Biener  <rguenther@suse.de>
2782
2783         PR middle-end/69801
2784         * fold-const.c (operand_equal_p): For COND_EXPR zero operand
2785         mask OEP_ADDRESS_OF.
2786
2787 2016-02-16  Alan Modra  <amodra@gmail.com>
2788
2789         PR target/68973
2790         * config/rs6000/rs6000.md (reload_vsx_from_gprsf): Rewrite splitter.
2791         (p8_mtvsrd_df, p8_mtvsrd_sf): New.
2792         (p8_mtvsrd_1, p8_mtvsrd_2): Delete.
2793         (p8_mtvsrwz): New.
2794         (p8_mtvsrwz_1, p8_mtvsrwz_2): Delete.
2795         (p8_xxpermdi_<mode>): Take two DF inputs rather than one TF.
2796         (p8_fmrgow_<mode>): Likewise.
2797         (reload_vsx_from_gpr<mode>): Make clobber IF.  Adjust for above
2798         changes.
2799         (reload_fpr_from_gpr<mode>): Similarly. Use "d" for op0 constraint.
2800         (reload_vsx_from_gprsf): Use p8_mtvsrd_sf rather than attempting
2801         to use movdi_internal64.  Remove op0_di.
2802         * config/rs6000/vsx.md (vsx_xscvspdpn_directmove): Make op1 SFmode.
2803
2804 2016-02-15  Evandro Menezes  <e.menezes@samsung.com>
2805
2806         Add support for the FCCMP insn types
2807
2808         * config/aarch64/aarch64.md (fccmp): Change insn type.
2809         (fccmpe): Likewise.
2810         * config/aarch64/thunderx.md (thunderx_fcmp): Add "fccmp{s,d}" types.
2811         * config/arm/cortex-a53.md (cortex_a53_fpalu): Likewise.
2812         * config/arm/cortex-a57.md (cortex_a57_fp_cmp): Likewise.
2813         * config/arm/xgene1.md (xgene1_fcmp): Likewise.
2814         * config/arm/exynos-m1.md (exynos_m1_fp_ccmp): New insn reservation.
2815         * config/arm/types.md (fccmps): Add new insn type.
2816         (fccmpd): Likewise.
2817
2818 2016-02-15  Bernd Edlinger  <bernd.edlinger@hotmail.de>
2819
2820         * alias.c (get_alias_set): Fix a typo in comment.
2821
2822 2016-02-15  Richard Biener  <rguenther@suse.de>
2823
2824         PR tree-optimization/69595
2825         * match.pd: Complete range test simplification to true.
2826
2827 2016-02-15  Bernd Schmidt  <bschmidt@redhat.com>
2828
2829         PR rtl-optimization/69648
2830         * lra-constraints.c (update_ebb_live_info): Don't remove sets of
2831         pic_offset_table_rtx.
2832
2833         PR rtl-optimization/69752
2834         * ira.c (update_equiv_regs): When looking for more than a single SET,
2835         also take other side effects into account.
2836
2837 2016-02-15  Marcin Kościelnicki  <koriakin@0x04.net>
2838
2839         * config/s390/s390.c (s390_function_profiler): Add a new sequence
2840         for z900+ CPUs in 31-bit mode.
2841
2842 2016-02-15  Marcin Kościelnicki  <koriakin@0x04.net>
2843
2844         * common/config/s390/s390-common.c (s390_supports_split_stack):
2845         New function.
2846         (TARGET_SUPPORTS_SPLIT_STACK): New macro.
2847         * config/s390/s390-protos.h: Add s390_expand_split_stack_prologue.
2848         * config/s390/s390.c (struct machine_function): New field
2849         split_stack_varargs_pointer.
2850         (s390_register_info): Mark r12 as clobbered if it'll be used as temp
2851         in s390_emit_prologue.
2852         (s390_emit_prologue): Use r12 as temp if r1 is taken by split-stack
2853         vararg pointer.
2854         (morestack_ref): New global.
2855         (SPLIT_STACK_AVAILABLE): New macro.
2856         (s390_expand_split_stack_prologue): New function.
2857         (s390_live_on_entry): New function.
2858         (s390_va_start): Use split-stack vararg pointer if appropriate.
2859         (s390_asm_file_end): Emit the split-stack note sections.
2860         (TARGET_EXTRA_LIVE_ON_ENTRY): New macro.
2861         * config/s390/s390.md (UNSPEC_STACK_CHECK): New unspec.
2862         (UNSPECV_SPLIT_STACK_CALL): New unspec.
2863         (UNSPECV_SPLIT_STACK_DATA): New unspec.
2864         (split_stack_prologue): New expand.
2865         (split_stack_space_check): New expand.
2866         (split_stack_data): New insn.
2867         (split_stack_call): New expand.
2868         (split_stack_call_*): New insn.
2869         (split_stack_cond_call): New expand.
2870         (split_stack_cond_call_*): New insn.
2871
2872 2016-02-15  Richard Biener  <rguenther@suse.de>
2873
2874         PR tree-optimization/69783
2875         * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
2876         Add trivially correct cases.
2877
2878 2016-02-15  Tom de Vries  <tom@codesourcery.com>
2879
2880         PR lto/69655
2881         * lto-cgraph.c (input_offload_tables): Add and handle bool parameter
2882         do_force_output.
2883         * lto-streamer.h (input_offload_tables): Add and handle bool parameter.
2884
2885 2016-02-15  Richard Biener  <rguenther@suse.de>
2886
2887         PR tree-optimization/69776
2888         * tree-ssa-sccvn.h (vn_reference_lookup): Adjust prototype.
2889         * tree-ssa-sccvn.c (vn_reference_lookup): Add parameter to
2890         indicate whether we can use TBAA to disambiguate against stores.
2891         Use alias-set zero if not.
2892         (visit_reference_op_store): Do not use TBAA when looking up
2893         redundant stores.
2894         * tree-ssa-pre.c (compute_avail): Use TBAA here.
2895         (eliminate_dom_walker::before_dom_children): But not when looking
2896         up redundant stores.
2897
2898 2016-02-14  John David Anglin  <danglin@gcc.gnu.org>
2899
2900         * config/pa/pa.md (absqi2, absghi2, bswaphi2, bswapsi2, bswapdi2): New.
2901
2902 2016-02-14  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
2903
2904         *  config/i386/znver1.md
2905         (znver1_pop, znver1_pop_mem,
2906         znver1_load_imov_double_store,
2907         znver1_load_imov_direct_store,
2908         znver1_load_imov_direct_load,
2909         znver1_load_imov_double_load): Add new.
2910         (znver1_insn, znver1_insn_load): Add icmov type.
2911         (znver1_sseavx_fma,
2912         znver1_sseavx_fma_load,
2913         znver1_avx256_fma,
2914         znver1_avx256_fma_load): Fix pipe usage.
2915
2916 2016-02-14  Alan Modra  <amodra@gmail.com>
2917
2918         PR target/68973
2919         * reloads.c (find_reloads_address_1): For pre/post-inc/dec
2920         with an invalid hard reg, reload just the reg not the entire
2921         pre/post-inc/dec address expression.
2922
2923 2016-02-13  Oleg Endo  <olegendo@gcc.gnu.org>
2924
2925         PR target/67260
2926         * config/sh/sh.md (sibcall_value_pcrel): Replace =&k scratch reg with
2927         fixed R1_REG scratch reg.
2928         (sibcall_value_pcrel_fdpic): Likewise.
2929
2930 2016-02-13  Oleg Endo  <olegendo@gcc.gnu.org>
2931
2932         PR target/67636
2933         PR target/64345
2934         * config/sh/sh.md (*zero_extract_3): New insn_and_split pattern.
2935
2936 2016-02-12  Walter Lee  <walt@tilera.com>
2937
2938         * config/tilepro/t-tilepro: Replace CC_FOR_BUILD with CXX_FOR_BUILD.
2939         * config/tilegx/t-tilegx: Likewise.
2940
2941 2016-02-12  David Malcolm  <dmalcolm@redhat.com>
2942
2943         PR other/69554
2944         * diagnostic-show-locus.c (struct line_span): New struct.
2945         (layout::get_first_line): Delete.
2946         (layout::get_last_line): Delete.
2947         (layout::get_num_line_spans): New member function.
2948         (layout::get_line_span): Likewise.
2949         (layout::print_heading_for_line_span_index_p): Likewise.
2950         (layout::get_expanded_location): Likewise.
2951         (layout::calculate_line_spans): Likewise.
2952         (layout::m_first_line): Delete.
2953         (layout::m_last_line): Delete.
2954         (layout::m_line_spans): New field.
2955         (layout::layout): Update comment.  Replace m_first_line and
2956         m_last_line with m_line_spans, replacing their initialization
2957         with a call to calculate_line_spans.
2958         (diagnostic_show_locus): When printing source lines and
2959         annotations, rather than looping over a single span
2960         of lines, instead loop over each line_span within
2961         the layout, with an inner loop over the lines within them.
2962         Call the context's start_span callback when changing line spans.
2963         * diagnostic.c (diagnostic_initialize): Initialize start_span.
2964         (diagnostic_build_prefix): Break out the building of the location
2965         part of the string into...
2966         (diagnostic_get_location_text): ...this new function, rewriting
2967         it from nested ternary expressions to a sequence of "if"
2968         statements.
2969         (default_diagnostic_start_span_fn): New function.
2970         * diagnostic.h (diagnostic_start_span_fn): New typedef.
2971         (diagnostic_context::start_span): New field.
2972         (default_diagnostic_start_span_fn): New prototype.
2973
2974 2016-02-12  David Malcolm  <dmalcolm@redhat.com>
2975
2976         PR driver/69779
2977         * gcc.c (driver::finalize): Fix cleanup of "specs".
2978
2979 2016-02-12  David Malcolm  <dmalcolm@redhat.com>
2980
2981         PR driver/69265
2982         PR driver/69453
2983         * gcc.c (driver::driver): Initialize m_option_suggestions.
2984         (driver::~driver): Clean up m_option_suggestions.
2985         (suggest_option): Convert to...
2986         (driver::suggest_option): ...this, and split out into
2987         driver::build_option_suggestions and find_closest_string.
2988         (driver::build_option_suggestions): New function, from
2989         first half of suggest_option.  Special-case
2990         OPT_fsanitize_ and OPT_fsanitize_recover_, making use of
2991         the sanitizer_opts array.  For options of enum types, add the
2992         various enum values to the candidate strings.
2993         (driver::handle_unrecognized_options): Remove "const".
2994         * gcc.h (driver::handle_unrecognized_options): Likewise.
2995         (driver::build_option_suggestions): New decl.
2996         (driver::suggest_option): New decl.
2997         (driver::m_option_suggestions): New field.
2998         * opts-common.c (add_misspelling_candidates): New function.
2999         * opts.c (sanitizer_opts): Remove decl of struct sanitizer_opts_s
3000         and make non-static.
3001         * opts.h (sanitizer_opts): New array decl.
3002         (add_misspelling_candidates): New function decl.
3003         * spellcheck.c (find_closest_string): New function.
3004         * spellcheck.h (find_closest_string): New function decl.
3005
3006 2016-02-12  Jakub Jelinek  <jakub@redhat.com>
3007
3008         PR rtl-optimization/69764
3009         PR rtl-optimization/69771
3010         * optabs.c (expand_binop_directly): For shift_optab_p, force
3011         convert_modes with VOIDmode if xop1 has VOIDmode.
3012
3013 2016-02-12  Ilya Enkovich  <enkovich.gnu@gmail.com>
3014
3015         PR target/69729
3016         * lto-streamer-out.c (lto_output): Use thunk.add_pointer_bounds_args
3017         to correctly determine instrumentation thunks.
3018
3019 2016-02-12  Jakub Jelinek  <jakub@redhat.com>
3020
3021         PR ipa/69241
3022         * ipa-split.c (split_function): If split part returns TREE_ADDRESSABLE
3023         type by reference, force lhs on the call.
3024
3025         PR ipa/68672
3026         * ipa-split.c (split_function): Don't compute/use main_part_return_p.
3027         Compute retval and retbnd early in all cases if split_part_return_p
3028         and return_bb is not EXIT.  Remove all clobber stmts and reset
3029         all debug stmts that refer to SSA_NAMEs defined in split part,
3030         except if it is retval, in that case replace the old retval with the
3031         lhs of the call to the split part.
3032
3033 2016-02-12  Kugan Vivekanandarajah  <kuganv@linaro.org>
3034
3035         revert:
3036         2016-02-12  Kugan Vivekanandarajah  <kuganv@linaro.org>
3037
3038         PR middle-end/66726
3039         * tree-ssa-reassoc.c (optimize_range_tests): Handle tcc_compare stmt
3040         whose result is used in PHI.
3041         (maybe_optimize_range_tests): Likewise.
3042         (final_range_test_p): Likweise.
3043
3044 2016-02-12  Kugan Vivekanandarajah  <kuganv@linaro.org>
3045
3046         PR middle-end/66726
3047         * tree-ssa-reassoc.c (optimize_range_tests): Handle tcc_compare stmt
3048         whose result is used in PHI.
3049         (maybe_optimize_range_tests): Likewise.
3050         (final_range_test_p): Likweise.
3051
3052 2016-02-12  Jakub Jelinek  <jakub@redhat.com>
3053
3054         * cgraph.c: Spelling fixes - behaviour -> behavior and
3055         neighbour -> neighbor.
3056         * target.def: Likewise.
3057         * sel-sched.c: Likewise.
3058         * config/mips/mips.c: Likewise.
3059         * config/arc/arc.md: Likewise.
3060         * config/arm/cortex-a57.md: Likewise.
3061         * config/arm/arm.c: Likewise.
3062         * config/arm/neon.md: Likewise.
3063         * config/arm/arm-c.c: Likewise.
3064         * config/vms/vms-c.c: Likewise.
3065         * config/s390/s390.c: Likewise.
3066         * config/i386/znver1.md: Likewise.
3067         * config/i386/i386.c: Likewise.
3068         * config/ia64/hpux-unix2003.h: Likewise.
3069         * config/msp430/msp430.md: Likewise.
3070         * config/rx/rx.c: Likewise.
3071         * config/rx/rx.md: Likewise.
3072         * config/aarch64/aarch64-simd.md: Likewise.
3073         * config/aarch64/aarch64.c: Likewise.
3074         * config/nvptx/nvptx.c: Likewise.
3075         * config/bfin/bfin.c: Likewise.
3076         * config/cris/cris.opt: Likewise.
3077         * config/rs6000/rs6000.c: Likewise.
3078         * target.h: Likewise.
3079         * spellcheck.c: Likewise.
3080         * ira-build.c: Likewise.
3081         * tree-inline.c: Likewise.
3082         * builtins.c: Likewise.
3083         * lra-constraints.c: Likewise.
3084         * explow.c: Likewise.
3085         * hwint.h: Likewise.
3086         * targhooks.c: Likewise.
3087         * tree-vect-data-refs.c: Likewise.
3088         * expr.c: Likewise.
3089         * doc/tm.texi: Likewise.
3090         * doc/extend.texi: Likewise.
3091         * doc/install.texi: Likewise.
3092         * doc/md.texi: Likewise.
3093         * tree-ssa-tail-merge.c: Likewise.
3094         * sched-int.h: Likewise.
3095         * match.pd: Likewise.
3096         * sched-ebb.c: Likewise.
3097         * target.def (omit_struct_return_reg): Likewise.
3098         * gimple-ssa-isolate-paths.c: Likewise.
3099         (find_implicit_erroneous_behaviour): Renamed to...
3100         (find_implicit_erroneous_behavior): ... this.
3101         (find_explicit_erroneous_behaviour): Renamed to...
3102         (find_explicit_erroneous_behavior): ... this.
3103         (gimple_ssa_isolate_erroneous_paths): Adjust caller.
3104
3105 2016-02-11  Segher Boessenkool  <segher@kernel.crashing.org>
3106
3107         PR rtl-optimization/64682
3108         PR rtl-optimization/69567
3109         PR rtl-optimization/69737
3110         * combine.c (distribute_notes) <REG_DEAD>: If the register is set
3111         in I2 as well, just lose it.
3112
3113 2016-02-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3114
3115         * config/aarch64/aarch64.c (aarch64_last_printed_arch_string):
3116         New variable.
3117         (aarch64_last_printed_tune_string): Likewise.
3118         (aarch64_declare_function_name): Only output .arch assembler
3119         directive if it will be different from the previously output
3120         directive.  Same for .tune comment but only if -dA is set.
3121         (aarch64_start_file): New function.
3122         (TARGET_ASM_FILE_START): Define.
3123
3124 2016-02-11  David Malcolm  <dmalcolm@redhat.com>
3125
3126         PR plugins/69758
3127         * Makefile.in (PLUGIN_HEADERS): Add params.list.
3128
3129 2016-02-11  Jakub Jelinek  <jakub@redhat.com>
3130
3131         PR target/65313
3132         * tree-vect-slp.c (vect_schedule_slp_instance): Avoid
3133         -Wmaybe-uninitialized warning.
3134
3135 2016-02-11  Oleg Endo  <olegendo@gcc.gnu.org>
3136
3137         PR target/69713
3138         * config/sh/sh.md (casesi_worker_0): Add T_REG use.
3139
3140 2016-02-11  Richard Biener  <rguenther@suse.de>
3141
3142         PR rtl-optimization/69291
3143         * ifcvt.c (noce_try_store_flag_constants): Do not allow
3144         subexpressions affected by changing the result.
3145
3146 2016-02-10  Vladimir Makarov  <vmakarov@redhat.com>
3147
3148         PR target/69148
3149         * lra-constraints.c (curr_insn_transform): Find in/out operands
3150         for secondary memory moves.  Update dups.
3151
3152 2016-02-10  Yuri Rumyantsev  <ysrumyan@gmail.com>
3153
3154         PR tree-optimization/69652
3155         * tree-vect-loop.c (optimize_mask_stores): Move declaration of STMT1
3156         to nested loop, did source re-formatting, skip debug statements,
3157         add check on statement with volatile operand, remove dead scalar
3158         statements.
3159
3160 2016-02-10  Jakub Jelinek  <jakub@redhat.com>
3161             Patrick Palka  <ppalka@gcc.gnu.org>
3162
3163         PR ipa/69241
3164         PR c++/69649
3165         * gimplify.c (gimplify_modify_expr): Set lhs even for noreturn
3166         calls if the return type is TREE_ADDRESSABLE.
3167         * cgraphunit.c (cgraph_node::expand_thunk): Likewise.
3168         * ipa-split.c (split_function): Fix doubled "we" in comment.
3169         Use void return type for the split part even if
3170         !split_point->split_part_set_retval.
3171
3172 2016-02-10  Bin Cheng  <bin.cheng@arm.com>
3173
3174         PR tree-optimization/68021
3175         * tree-ssa-loop-ivopts.c (get_computation_aff): Set ratio to 1 if
3176         when computing the value of biv cand by itself.
3177
3178 2016-02-10  Wilco Dijkstra  <wdijkstr@arm.com>
3179
3180         * config/aarch64/aarch64.c (cortexa53_tunings): Enable AES fusion.
3181         (cortexa57_tunings): Likewise.
3182         (cortexa72_tunings): Likewise.
3183         (arch_macro_fusion_pair_p): Add support for AES fusion.
3184         * config/aarch64/aarch64-fusion-pairs.def: Add AES_AESMC entry.
3185         * config/arm/aarch-common.c (aarch_crypto_can_dual_issue):
3186         Allow virtual registers before reload so early scheduling works.
3187         * config/arm/cortex-a57.md (cortex_a57_crypto_simple): Use
3188         correct latency and pipeline.
3189         (cortex_a57_crypto_complex): Likewise.
3190         (cortex_a57_crypto_xor): Likewise.
3191         (define_bypass): Add AES bypass.
3192
3193 2016-02-10  Richard Biener  <rguenther@suse.de>
3194
3195         PR tree-optimization/69726
3196         * passes.def: Add DCE pass before late uninit.
3197         * match.pd: Add A ? B : (!A ? C : X) -> A ? B : C patterns to
3198         really fixup if-conversions job.
3199
3200 2016-02-10  Wilco Dijkstra  <wdijkstr@arm.com>
3201
3202         * config/arm/arm.c (arm_cortex_a53_tune): Enable AES fusion.
3203         (arm_cortex_a57_tune): Likewise.
3204         (aarch_macro_fusion_pair_p): Add support for AES fusion.
3205         * config/arm/arm-protos.h (fuse_ops): Add FUSE_AES_AESMC.
3206
3207 2016-02-10  Eric Botcazou  <ebotcazou@adacore.com>
3208
3209         * timevar.def (TV_PHASE_DBGINFO): Delete.
3210         (TV_PHASE_CHECK_DBGINFO): Likewise.
3211         * varpool.c (varpool_node::assemble_decl): Do not change timevar.
3212
3213 2016-02-10  Richard Biener  <rguenther@suse.de>
3214
3215         PR tree-optimization/69719
3216         * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
3217         Adjust previous fix by ensuring that dr_a1 is left of dr_a2.
3218
3219 2016-02-09  Andrew Pinski  <apinski@cavium.com>
3220
3221         PR tree-opt/69282
3222         * optabs-tree.c (expand_vec_cond_expr_p): Don't early return if
3223         get_vcond_mask_icode returns false.
3224
3225 2016-02-09  Michael Meissner  <meissner@linux.vnet.ibm.com>
3226
3227         PR target/68404
3228         * config/rs6000/predicates.md (fusion_gpr_addis): Prevent fusing
3229         an ADDIS that adds a pointer to a large constant that sets the
3230         upper16 bits with a load operation.
3231
3232 2016-02-09  Charles Baylis  <charles.baylis@linaro.org>
3233
3234         PR target/68532
3235         * config/arm/arm.c (arm_evpc_neon_vzip): Allow for big endian lane
3236         order.
3237         * config/arm/arm_neon.h (vzipq_s8): Adjust shuffle patterns for big
3238         endian.
3239         (vzipq_s16): Likewise.
3240         (vzipq_s32): Likewise.
3241         (vzipq_f32): Likewise.
3242         (vzipq_u8): Likewise.
3243         (vzipq_u16): Likewise.
3244         (vzipq_u32): Likewise.
3245         (vzipq_p8): Likewise.
3246         (vzipq_p16): Likewise.
3247
3248 2016-02-09  Charles Baylis  <charles.baylis@linaro.org>
3249
3250         PR target/68532
3251         * config/arm/arm.c (neon_endian_lane_map): New function.
3252         (neon_vector_pair_endian_lane_map): New function.
3253         (arm_evpc_neon_vuzp): Allow for big endian lane order.
3254         * config/arm/arm_neon.h (vuzpq_s8): Adjust shuffle patterns for big
3255         endian.
3256         (vuzpq_s16): Likewise.
3257         (vuzpq_s32): Likewise.
3258         (vuzpq_f32): Likewise.
3259         (vuzpq_u8): Likewise.
3260         (vuzpq_u16): Likewise.
3261         (vuzpq_u32): Likewise.
3262         (vuzpq_p8): Likewise.
3263         (vuzpq_p16): Likewise.
3264
3265 2016-02-11  Alexandre Oliva  <aoliva@redhat.com>
3266
3267         PR target/69634
3268         * regstat.c (regstat_bb_compute_calls_crossed): Disregard
3269         debug insns.
3270
3271 2016-02-09  Uros Bizjak  <ubizjak@gmail.com>
3272
3273         * config/i386/i386.md (insv<mode>_1): Use gen_int_mode to
3274         truncate const_int operand 1 to QImode.
3275
3276 2016-02-09  Eric Botcazou  <ebotcazou@adacore.com>
3277
3278         * gimple-ssa-backprop.c (optimize_phi): Do not replace an argument
3279         corresponding to an abnormal edge.
3280
3281 2016-02-09  Tom de Vries  <tom@codesourcery.com>
3282
3283         PR tree-optimization/69599
3284         * tree-ssa-structalias.c (fndecl_maybe_in_other_partition): New
3285         function.
3286         (find_func_aliases_for_builtin_call, find_func_clobbers)
3287         (ipa_pta_execute):  Handle case that foo and foo._0 are not in same lto
3288         partition.
3289
3290 2016-02-09  Richard Biener  <rguenther@suse.de>
3291
3292         PR tree-optimization/69715
3293         * tree-ssa.c (execute_update_addresses_taken): Mark non-decl
3294         LHS on calls as non-rewritable.
3295
3296 2016-02-09  Tom de Vries  <tom@codesourcery.com>
3297
3298         PR lto/69707
3299         * lto-wrapper.c (append_diag_options): New function.
3300         (compile_offload_image): Call append_diag_options.
3301
3302 2016-02-08  Sandra Loosemore  <sandra@codesourcery.com>
3303
3304         PR other/69722
3305         * doc/extend.texi (Flag Output Operands): Correct sectioning.
3306         Minor copy-edit to fix verb tenses.
3307
3308 2016-02-08  Jakub Jelinek  <jakub@redhat.com>
3309
3310         PR tree-optimization/69209
3311         * ipa-split.c (split_function): If split part is not
3312         returning retval, retval has gimple type but is not
3313         gimple value, force it into a SSA_NAME first.
3314
3315 2016-02-08  Nicklas Bo Jensen  <nbjensen@gmail.com>
3316
3317         * doc/tree-ssa.texi (Preserving the virtual SSA form): Remove
3318         outdated section.
3319
3320 2016-02-08  Jason Merrill  <jason@redhat.com>
3321
3322         PR c++/69631
3323         * convert.c (convert_to_integer_1): Check dofold on truncation
3324         distribution.
3325         (convert_to_pointer_maybe_fold, convert_to_real_maybe_fold)
3326         (convert_to_integer_maybe_fold, convert_to_complex_maybe_fold):
3327         Rename from *_nofold.
3328         * convert.h (convert_to_pointer_nofold, convert_to_integer_nofold)
3329         (convert_to_real_nofold, convert_to_complex_nofold): New inlines.
3330
3331 2016-02-08  Bernd Schmidt  <bschmidt@redhat.com>
3332
3333         PR target/60410
3334         * tree.c (build_common_tree_nodes): Remove short_double argument.
3335         All callers changed.
3336         * tree.h (build_common_tree_nodes): Adjust declaration.
3337         * doc/invoke.texi (-fshort-double): Remove documentation.
3338         * config/mips/t-img-elf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
3339         MULTILIB_EXCEPTIONS): Remove -fshort-double variant.
3340         * lto-wrapper.c (merge_and_complain, append_compiler_options)
3341         (append_linker_options): Don't handle OPT_fshort_double.
3342
3343         PR rtl-optimization/68730
3344         * lra-remat.c (insn_to_cand_activation): New static variable.
3345         (lra_remat): Allocate and free it.
3346         (create_cand): New arg activation. Initialize a field in
3347         insn_to_cand_activation if it is nonnull.
3348         (create_cands): Pass the activation insn to create_cand when making
3349         a candidate involving an output reload.  Reorganize code a little.
3350         (do_remat): Keep track of active status of candidates in a separate
3351         bitmap.
3352
3353 2016-02-08  Richard Biener  <rguenther@suse.de>
3354
3355         PR tree-optimization/69719
3356         * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
3357         Properly use absolute of the difference of the two offsets to
3358         compare or adjust the segment length.
3359
3360 2016-02-08  Richard Biener  <rguenther@suse.de>
3361             Jeff Law  <law@redhat.com>
3362
3363         PR target/68273
3364         * tree-ssanames.c (make_ssa_name_fn): Always use unqualified
3365         types for anonymous SSA names.
3366
3367 2016-02-08   Richard Biener  <rguenther@suse.de>
3368
3369         PR rtl-optimization/69274
3370         * ira.c (ira_setup_alts): Do not change recog_data.operand order.
3371
3372 2016-02-08  Jeff Law  <law@redhat.com>
3373
3374         PR tree-optimization/65917
3375         * tree-ssa-dom.c (record_temporary_equivalences): Record both
3376         equivalences from if (x == y) style conditionals.
3377         (loop_depth_of_name): Remove.
3378         (record_equality): Remove loop depth check.
3379         * tree-ssa-scopedtables.h (const_and_copies): Refine comments.
3380         (const_and_copies::record_const_or_copy_raw): New member function.
3381         * tree-ssa-scopedtables.c
3382         (const_and_copies::record_const_or_copy_raw): New, factored out of
3383         (const_and_copies::record_const_or_copy): Call new member function.
3384
3385 2016-02-05  Jeff Law  <law@redhat.com>
3386
3387         PR tree-optimization/68541
3388         * gimple-ssa-split-paths.c: Include tree-cfg.h and params.h.
3389         (count_stmts_in_block): New function.
3390         (poor_ifcvt_candidate_code): Likewise.
3391         (is_feasible_trace): Add some heuristics to determine when path
3392         splitting is profitable.
3393         (find_block_to_duplicate_for_splitting_paths): Make sure the graph
3394         is a diamond with a single exit.
3395
3396 2016-02-05  Martin Sebor  <msebor@redhat.com>
3397
3398         PR c++/69662
3399         * doc/invoke.texi: Update -Wplacement-new to take an optional
3400         argument.
3401
3402 2016-02-06  Richard Henderson  <rth@redhat.com>
3403
3404         PR c/69643
3405         * tree.c (tree_nop_conversion_p): Do not strip casts into or
3406         out of non-standard address spaces.
3407
3408 2016-02-05  Jakub Jelinek  <jakub@redhat.com>
3409
3410         PR rtl-optimization/69691
3411         * lra-eliminations.c (move_plus_up): Don't add the addend twice.
3412
3413 2016-02-05  Pat Haugen  <pthaugen@us.ibm.com>
3414
3415         * config/rs6000/crypto.md (crypto_vpermxor_<mode>): Correct insn type.
3416         * config/rs6000/rs6000.md (mov<mode>_hardfloat): Likewise.
3417         (*ieee128_mfvsrd_64bit): Likewise.
3418         (*ieee128_mfvsrd_32bit): Likewise.
3419
3420 2016-02-05  Ilya Enkovich  <enkovich.gnu@gmail.com>
3421
3422         PR target/69369
3423         Revert r232560:
3424         2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
3425
3426         * cgraphunit.c (cgraph_node::reset): Clear thunk info and
3427         instrumented_version.
3428
3429 2016-01-05  Jeremy Bennett  <jeremy.bennett@embecosm.com>
3430
3431         * doc/invoke.texi (Optimize Options): In table of --param options
3432         rename second occurrence of tracer-min-branch-ratio to
3433         tracer-min-branch-probability, rename
3434         tracer-min-branch-ratio-feedback to
3435         tracer-min-branch-probability-feedback and clarify description,
3436         rename sched-spec-state-edge-prob-cutoff to
3437         sched-state-edge-prob-cutoff, rename selsched-max-insns-to-rename
3438         to selsched-insns-to-rename, rename lto-minpartition to
3439         lto-min-partition, delete reorder-blocks-duplicate and
3440         reorder-blocks-duplicate-feedback.
3441
3442 2016-02-05  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
3443
3444         * config/s390/s390.c (s390_register_info_set_ranges): Remove
3445         superfluous loops.
3446
3447 2016-02-05  Dominik Vogt  <vogt@linux.vnet.ibm.com>
3448
3449         * doc/extend.texi: S/390: Correct some typos.
3450
3451 2016-02-05  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
3452
3453         * config/s390/s390.c (s390_emit_call): Add missing 64 bit check.
3454
3455 2016-02-05  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
3456
3457         PR target/69625
3458         * config/s390/s390.c (SAVE_SLOT_NONE, SAVE_SLOT_STACK): New defines.
3459         (s390_register_info_gprtofpr): Use new macros above.
3460         (s390_register_info_stdarg_fpr): Adjust max_fpr to better match
3461         its name.
3462         (s390_register_info_stdarg_gpr): Adjust max_gpr to better match
3463         its name.  Adjust restore and save gpr ranges.
3464         (s390_register_info_set_ranges): New function.
3465         (s390_register_info): Use new macros above.  Call
3466         s390_register_info_set_ranges.
3467         (s390_optimize_register_info): Likewise.
3468         (s390_hard_regno_rename_ok): Use new macros.
3469         (s390_hard_regno_scratch_ok): Likewise.
3470         (s390_emit_epilogue): Likewise.
3471         (s390_can_use_return_insn): Likewise.
3472         (s390_optimize_prologue): Likewise.
3473         * config/s390/s390.md (GPR2_REGNUM, GPR6_REGNUM): New constants.
3474
3475 2016-02-05  Jakub Jelinek  <jakub@redhat.com>
3476
3477         PR bootstrap/69677
3478         * config/i386/i386.c (convert_scalars_to_vector): Readd stack
3479         alignment fixes.
3480         (ix86_option_override_internal): Disable TARGET_STV even for
3481         -m{incoming,preferred}-stack-boundary=3.
3482
3483 2016-02-03  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
3484
3485         * config.gcc: Mark deprecated rtems targets as obsolete.
3486
3487 2016-02-04  Segher Boessenkool  <segher@kernel.crashing.org>
3488
3489         PR rtl-optimization/64682
3490         PR rtl-optimization/69567
3491         * combine.c (distribute_notes) <REG_DEAD>: Place the death note
3492         before I2 only if the register is both used and set in I2.
3493
3494 2016-02-04  DJ Delorie  <dj@redhat.com>
3495
3496         * config/msp430/msp430.c (msp430_start_function): Add function type.
3497
3498 2016-02-04  Jakub Jelinek  <jakub@redhat.com>
3499
3500         PR fortran/69368
3501         * tree-dfa.c (get_ref_base_and_extent): Remove unreachable code.
3502
3503 2016-02-04  Uros Bizjak  <ubizjak@gmail.com>
3504
3505         PR rtl-optimization/69577
3506         Revert:
3507         2015-10-29  Richard Henderson  <rth@redhat.com>
3508
3509         PR target/68124
3510         PR rtl-opt/67609
3511         * config/i386/i386.c (ix86_cannot_change_mode_class): Tighten
3512         sse check to the exact conditions of PR 67609.
3513
3514 2016-02-04  Michael Meissner  <meissner@linux.vnet.ibm.com>
3515
3516         PR target/69667
3517         * config/rs6000/rs6000.md (mov<mode>_64bit_dm): Use 'd' constraint
3518         instead of 'ws', and 'wh' instead of 'wm' since TFmode/IFmode are
3519         not allowed into the traditional Altivec registers.
3520         (movtd_64bit_nodm): Likewise.
3521         (mov<mode>_32bit, FMOVE128_FPR iterator): Likewise.
3522
3523 2016-02-04  David Malcolm  <dmalcolm@redhat.com>
3524
3525         * config/aarch64/cortex-a57-fma-steering.c
3526         (aarch64_register_fma_steering): Remove "static" from arguments
3527         to register_pass.
3528
3529 2016-02-04  Wilco Dijkstra  <wdijkstr@arm.com>
3530
3531         PR target/69619
3532         * ccmp.c (expand_ccmp_expr_1): Avoid evaluating gs0/gs1
3533         twice when complex.
3534
3535 2016-02-04  Mike Frysinger  <vapier@gentoo.org>
3536
3537         * doc/invoke.texi: Delete -mno-fma4.
3538
3539 2016-02-04  Richard Sandiford  <richard.sandiford@arm.com>
3540
3541         PR rtl-optimization/69577
3542         * reginfo.c (record_subregs_of_mode): Add a partial_def parameter.
3543         (find_subregs_of_mode): Update accordingly.  Iterate over partial
3544         definitions.
3545
3546 2016-02-04  Alan Lawrence  <alan.lawrence@arm.com>
3547
3548         * config/arm/arm-protos.h (neon_reinterpret): Remove.
3549         * config/arm/arm.c (neon_reinterpret): Remove.
3550         * config/arm/arm_neon_builtins.def (vreinterpretv8qi, vreinterpretv4hi,
3551         vreinterpretv2si, vreinterpretv2sf, vreinterpretdi, vreinterpretv16qi,
3552         vreinterpretv8hi, vreinterpretv4si, vreinterpretv4sf, vreinterpretv2di,
3553         vreinterpretti): Remove.
3554         * config/arm/neon.md (neon_vreinterpretv8qi<mode>,
3555         neon_vreinterpretv4hi<mode>, neon_vreinterpretv2si<mode>,
3556         neon_vreinterpretv2sf<mode>, neon_vreinterpretdi<mode>,
3557         neon_vreinterpretti<mode>, neon_vreinterpretv16qi<mode>,
3558         neon_vreinterpretv8hi<mode>, neon_vreinterpretv4si<mode>,
3559         neon_vreinterpretv4sf<mode>, neon_vreinterpretv2di<mode>): Remove.
3560         * config/arm/arm_neon.h (vreinterpret_p8_p16, vreinterpret_p8_f32,
3561         vreinterpret_p8_p64, vreinterpret_p8_s64, vreinterpret_p8_u64,
3562         vreinterpret_p8_s8, vreinterpret_p8_s16, vreinterpret_p8_s32,
3563         vreinterpret_p8_u8, vreinterpret_p8_u16, vreinterpret_p8_u32,
3564         vreinterpret_p16_p8, vreinterpret_p16_f32, vreinterpret_p16_p64,
3565         vreinterpret_p16_s64, vreinterpret_p16_u64, vreinterpret_p16_s8,
3566         vreinterpret_p16_s16, vreinterpret_p16_s32, vreinterpret_p16_u8,
3567         vreinterpret_p16_u16, vreinterpret_p16_u32, vreinterpret_f32_p8,
3568         vreinterpret_f32_p16, vreinterpret_f32_p64, vreinterpret_f32_s64,
3569         vreinterpret_f32_u64, vreinterpret_f32_s8, vreinterpret_f32_s16,
3570         vreinterpret_f32_s32, vreinterpret_f32_u8, vreinterpret_f32_u16,
3571         vreinterpret_f32_u32, vreinterpret_p64_p8, vreinterpret_p64_p16,
3572         vreinterpret_p64_f32, vreinterpret_p64_s64, vreinterpret_p64_u64,
3573         vreinterpret_p64_s8, vreinterpret_p64_s16, vreinterpret_p64_s32,
3574         vreinterpret_p64_u8, vreinterpret_p64_u16, vreinterpret_p64_u32,
3575         vreinterpret_s64_p8, vreinterpret_s64_p16, vreinterpret_s64_f32,
3576         vreinterpret_s64_p64, vreinterpret_s64_u64, vreinterpret_s64_s8,
3577         vreinterpret_s64_s16, vreinterpret_s64_s32, vreinterpret_s64_u8,
3578         vreinterpret_s64_u16, vreinterpret_s64_u32, vreinterpret_u64_p8,
3579         vreinterpret_u64_p16, vreinterpret_u64_f32, vreinterpret_u64_p64,
3580         vreinterpret_u64_s64, vreinterpret_u64_s8, vreinterpret_u64_s16,
3581         vreinterpret_u64_s32, vreinterpret_u64_u8, vreinterpret_u64_u16,
3582         vreinterpret_u64_u32, vreinterpret_s8_p8, vreinterpret_s8_p16,
3583         vreinterpret_s8_f32, vreinterpret_s8_p64, vreinterpret_s8_s64,
3584         vreinterpret_s8_u64, vreinterpret_s8_s16, vreinterpret_s8_s32,
3585         vreinterpret_s8_u8, vreinterpret_s8_u16, vreinterpret_s8_u32,
3586         vreinterpret_s16_p8, vreinterpret_s16_p16, vreinterpret_s16_f32,
3587         vreinterpret_s16_p64, vreinterpret_s16_s64, vreinterpret_s16_u64,
3588         vreinterpret_s16_s8, vreinterpret_s16_s32, vreinterpret_s16_u8,
3589         vreinterpret_s16_u16, vreinterpret_s16_u32, vreinterpret_s32_p8,
3590         vreinterpret_s32_p16, vreinterpret_s32_f32, vreinterpret_s32_p64,
3591         vreinterpret_s32_s64, vreinterpret_s32_u64, vreinterpret_s32_s8,
3592         vreinterpret_s32_s16, vreinterpret_s32_u8, vreinterpret_s32_u16,
3593         vreinterpret_s32_u32, vreinterpret_u8_p8, vreinterpret_u8_p16,
3594         vreinterpret_u8_f32, vreinterpret_u8_p64, vreinterpret_u8_s64,
3595         vreinterpret_u8_u64, vreinterpret_u8_s8, vreinterpret_u8_s16,
3596         vreinterpret_u8_s32, vreinterpret_u8_u16, vreinterpret_u8_u32,
3597         vreinterpret_u16_p8, vreinterpret_u16_p16, vreinterpret_u16_f32,
3598         vreinterpret_u16_p64, vreinterpret_u16_s64, vreinterpret_u16_u64,
3599         vreinterpret_u16_s8, vreinterpret_u16_s16, vreinterpret_u16_s32,
3600         vreinterpret_u16_u8, vreinterpret_u16_u32, vreinterpret_u32_p8,
3601         vreinterpret_u32_p16, vreinterpret_u32_f32, vreinterpret_u32_p64,
3602         vreinterpret_u32_s64, vreinterpret_u32_u64, vreinterpret_u32_s8,
3603         vreinterpret_u32_s16, vreinterpret_u32_s32, vreinterpret_u32_u8,
3604         vreinterpret_u32_u16, vreinterpretq_p8_p16, vreinterpretq_p8_f32,
3605         vreinterpretq_p8_p64, vreinterpretq_p8_p128, vreinterpretq_p8_s64,
3606         vreinterpretq_p8_u64, vreinterpretq_p8_s8, vreinterpretq_p8_s16,
3607         vreinterpretq_p8_s32, vreinterpretq_p8_u8, vreinterpretq_p8_u16,
3608         vreinterpretq_p8_u32, vreinterpretq_p16_p8, vreinterpretq_p16_f32,
3609         vreinterpretq_p16_p64, vreinterpretq_p16_p128, vreinterpretq_p16_s64,
3610         vreinterpretq_p16_u64, vreinterpretq_p16_s8, vreinterpretq_p16_s16,
3611         vreinterpretq_p16_s32, vreinterpretq_p16_u8, vreinterpretq_p16_u16,
3612         vreinterpretq_p16_u32, vreinterpretq_f32_p8, vreinterpretq_f32_p16,
3613         vreinterpretq_f32_p64, vreinterpretq_f32_p128, vreinterpretq_f32_s64,
3614         vreinterpretq_f32_u64, vreinterpretq_f32_s8, vreinterpretq_f32_s16,
3615         vreinterpretq_f32_s32, vreinterpretq_f32_u8, vreinterpretq_f32_u16,
3616         vreinterpretq_f32_u32, vreinterpretq_p64_p8, vreinterpretq_p64_p16,
3617         vreinterpretq_p64_f32, vreinterpretq_p64_p128, vreinterpretq_p64_s64,
3618         vreinterpretq_p64_u64, vreinterpretq_p64_s8, vreinterpretq_p64_s16,
3619         vreinterpretq_p64_s32, vreinterpretq_p64_u8, vreinterpretq_p64_u16,
3620         vreinterpretq_p64_u32, vreinterpretq_p128_p8, vreinterpretq_p128_p16,
3621         vreinterpretq_p128_f32, vreinterpretq_p128_p64, vreinterpretq_p128_s64,
3622         vreinterpretq_p128_u64, vreinterpretq_p128_s8, vreinterpretq_p128_s16,
3623         vreinterpretq_p128_s32, vreinterpretq_p128_u8, vreinterpretq_p128_u16,
3624         vreinterpretq_p128_u32, vreinterpretq_s64_p8, vreinterpretq_s64_p16,
3625         vreinterpretq_s64_f32, vreinterpretq_s64_p64, vreinterpretq_s64_p128,
3626         vreinterpretq_s64_u64, vreinterpretq_s64_s8, vreinterpretq_s64_s16,
3627         vreinterpretq_s64_s32, vreinterpretq_s64_u8, vreinterpretq_s64_u16,
3628         vreinterpretq_s64_u32, vreinterpretq_u64_p8, vreinterpretq_u64_p16,
3629         vreinterpretq_u64_f32, vreinterpretq_u64_p64, vreinterpretq_u64_p128,
3630         vreinterpretq_u64_s64, vreinterpretq_u64_s8, vreinterpretq_u64_s16,
3631         vreinterpretq_u64_s32, vreinterpretq_u64_u8, vreinterpretq_u64_u16,
3632         vreinterpretq_u64_u32, vreinterpretq_s8_p8, vreinterpretq_s8_p16,
3633         vreinterpretq_s8_f32, vreinterpretq_s8_p64, vreinterpretq_s8_p128,
3634         vreinterpretq_s8_s64, vreinterpretq_s8_u64, vreinterpretq_s8_s16,
3635         vreinterpretq_s8_s32, vreinterpretq_s8_u8, vreinterpretq_s8_u16,
3636         vreinterpretq_s8_u32, vreinterpretq_s16_p8, vreinterpretq_s16_p16,
3637         vreinterpretq_s16_f32, vreinterpretq_s16_p64, vreinterpretq_s16_p128,
3638         vreinterpretq_s16_s64, vreinterpretq_s16_u64, vreinterpretq_s16_s8,
3639         vreinterpretq_s16_s32, vreinterpretq_s16_u8, vreinterpretq_s16_u16,
3640         vreinterpretq_s16_u32, vreinterpretq_s32_p8, vreinterpretq_s32_p16,
3641         vreinterpretq_s32_f16, vreinterpretq_s32_f32, vreinterpretq_s32_p64,
3642         vreinterpretq_s32_p128, vreinterpretq_s32_s64, vreinterpretq_s32_u64,
3643         vreinterpretq_s32_s8, vreinterpretq_s32_s16, vreinterpretq_s32_u8,
3644         vreinterpretq_s32_u16, vreinterpretq_s32_u32, vreinterpretq_u8_p8,
3645         vreinterpretq_u8_p16, vreinterpretq_u8_f32, vreinterpretq_u8_p64,
3646         vreinterpretq_u8_p128, vreinterpretq_u8_s64, vreinterpretq_u8_u64,
3647         vreinterpretq_u8_s8, vreinterpretq_u8_s16, vreinterpretq_u8_s32,
3648         vreinterpretq_u8_u16, vreinterpretq_u8_u32, vreinterpretq_u16_p8,
3649         vreinterpretq_u16_p16, vreinterpretq_u16_f32, vreinterpretq_u16_p64,
3650         vreinterpretq_u16_p128, vreinterpretq_u16_s64, vreinterpretq_u16_u64,
3651         vreinterpretq_u16_s8, vreinterpretq_u16_s16, vreinterpretq_u16_s32,
3652         vreinterpretq_u16_u8, vreinterpretq_u16_u32, vreinterpretq_u32_p8,
3653         vreinterpretq_u32_p16, vreinterpretq_u32_f32, vreinterpretq_u32_p64,
3654         vreinterpretq_u32_p128, vreinterpretq_u32_s64, vreinterpretq_u32_u64,
3655         vreinterpretq_u32_s8, vreinterpretq_u32_s16, vreinterpretq_u32_s32,
3656         vreinterpretq_u32_u8, vreinterpretq_u32_u16): Rewrite using casts.
3657
3658 2016-02-04  Martin Liska  <mliska@suse.cz>
3659
3660         PR sanitizer/69276
3661         * asan.c (has_stmt_been_instrumented_p): Instrument gimple calls
3662         that are gimple_store_p.
3663         (maybe_instrument_call): Likewise.
3664
3665 2016-02-04  Bin Cheng  <bin.cheng@arm.com>
3666
3667         * config/aarch64/aarch64.c (aarch64_legitimize_address): Force
3668         register scaling out of memory reference and comment why.
3669
3670 2016-02-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3671
3672         PR target/65932
3673         PR target/67714
3674         * cse.c (cse_insn): Pass NULL to fold_rtx when initially
3675         folding the source of a SET.
3676
3677 2016-02-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3678
3679         PR target/65932
3680         PR target/67714
3681         * config/arm/arm.c (arm_new_rtx_costs, MULT case): Properly extract
3682         the operands of the SIGN_EXTENDs from a SMUL[TB][TB] rtx.
3683
3684 2016-02-04  Jim Wilson  <jim.wilson@linaro.org>
3685
3686         PR target/65932
3687         PR target/67714
3688         * config/arm/arm.h (PROMOTE_MODE): Don't set UNSIGNEDP for QImode and
3689         HImode.
3690
3691 2016-02-04  Christian Bruel  <christian.bruel@st.com>
3692
3693         * config/arm/arm-c.c (arm_reset_previous_fndecl): Style fix and typo.
3694         * config/arm/arm.c (arm_set_current_function): Likewise.
3695
3696 2016-02-04  Jakub Jelinek  <jakub@redhat.com>
3697             Ilya Enkovich  <enkovich.gnu@gmail.com>
3698             H.J. Lu  <hongjiu.lu@intel.com>
3699
3700         PR target/69454
3701         * config/i386/i386.c (convert_scalars_to_vector): Remove
3702         stack alignment fixes.
3703         (ix86_option_override_internal): Disable TARGET_STV if stack
3704         might not be aligned enough.
3705         (ix86_minimum_alignment): Assert that TARGET_STV is false.
3706
3707 2016-02-04  Victoria Stepanyan  <victoria.stepanyan@amd.com>
3708
3709         * gcc/config/i386/x86-tune.def: Disable default prefetching
3710         for -march=znver1.
3711
3712 2016-02-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
3713             Vladimir Makarov  <vmakarov@redhat.com>
3714
3715         PR target/69461
3716         * config/rs6000/rs6000.c (rs6000_legitimate_address_p): Fix thinko
3717         in validating fused toc addresses.
3718
3719 2016-02-03  Jakub Jelinek  <jakub@redhat.com>
3720
3721         PR c/69627
3722         * diagnostic-show-locus.c (layout::get_state_at_point): Don't read
3723         range->m_caret fields if range->m_show_caret_p is false.
3724
3725         PR target/69644
3726         * config/rs6000/rs6000.c (rs6000_expand_atomic_compare_and_swap):
3727         Force oldval into register if it does not satisfy reg_or_short_operand
3728         predicate.  Fix up formatting.
3729
3730 2016-02-03  Vladimir Makarov  <vmakarov@redhat.com>
3731             Alexandre Oliva  <aoliva@redhat.com>
3732
3733         PR target/69461
3734         * lra-constraints.c (simplify_operand_subreg): Check additionally
3735         address validity after potential reloading.
3736         (process_address_1): Check insns validity.  In case of failure do
3737         nothing.
3738
3739 2016-02-03  Kirill Yukhin  <kirill.yukhin@intel.com>
3740
3741         PR target/69118
3742         * config/i386/sse.md (define_insn "avx512f_maskcmp<mode>3"):
3743         Fix target.
3744
3745 2016-02-02  Jakub Jelinek  <jakub@redhat.com>
3746
3747         * wide-int.cc (canonize_uhwi): New function.
3748         (wi::divmod_internal): Use it.
3749
3750 2016-02-02  James Norris  <jnorris@codesourcery.com
3751
3752         * gimplify.c (omp_notice_variable): Add usage check.
3753
3754 2016-02-02  Alexander Monakov  <amonakov@ispras.ru>
3755
3756         * config/nvptx/nvptx.c (nvptx_print_operand): Treat LEU, GEU, LTU, GTU
3757         like LE, GE, LT, GT when emitting relational operator.
3758
3759 2016-02-02  Wilco Dijkstra  <wdijkstr@arm.com>
3760
3761         * ira-costs.c (find_costs_and_classes): Add extra argument.
3762         * target.def (ira_change_pseudo_allocno_class): Add parameter.
3763         * targhooks.h (ira_change_pseudo_allocno_class): Likewise.
3764         * targhooks.c (ira_change_pseudo_allocno_class): Likewise.
3765         * config/aarch64/aarch64.c (aarch64_ira_change_pseudo_allocno_class)
3766         Add best_class parameter, and return it if not ALL_REGS.
3767         * config/mips/mips.c (mips_ira_change_pseudo_allocno_class):
3768         Add parameter.
3769         * doc/tm.texi (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS):
3770         Update target hook.
3771
3772 2016-02-02  Wilco Dijkstra  <wdijkstr@arm.com>
3773
3774         * config/aarch64/aarch64.c
3775         (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS): New define.
3776         (aarch64_ira_change_pseudo_allocno_class): New function.
3777
3778 2016-02-02  Uros Bizjak  <ubizjak@gmail.com>
3779
3780         PR target/67032
3781         * config/i386/i386.c (geode_cost): Increase cost of MMX and SSE moves.
3782
3783 2016-02-02  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
3784
3785         * config/avr/avr.c (avr_option_override): Set
3786         PARAM_ALLOW_STORE_DATA_RACES to 1.
3787
3788 2016-02-02  Richard Biener  <rguenther@suse.de>
3789
3790         PR tree-optimization/69595
3791         * match.pd: Add range test simplifications to true/false.
3792
3793 2016-02-02  Thomas Schwinge  <thomas@codesourcery.com>
3794
3795         * omp-builtins.def (BUILT_IN_GOACC_HOST_DATA): Remove.
3796         * omp-low.c (expand_omp_target): Use BUILT_IN_GOACC_DATA_START
3797         instead.
3798
3799 2016-02-02  Richard Biener  <rguenther@suse.de>
3800
3801         PR tree-optimization/69606
3802         * tree-ssa-math-opts.c (bswap_replace): Clear flow sensitive
3803         info on the result before moving a stmt.
3804
3805 2016-02-02  Yuri Rumyantsev  <ysrumyan@gmail.com>
3806
3807         PR middle-end/68542
3808         * config/i386/i386.c (ix86_expand_branch): Add support for conditional
3809         branch with vector comparison.
3810         * config/i386/sse.md (VI48_AVX): New mode iterator.
3811         (define_expand "cbranch<mode>4): Add support for conditional branch
3812         with vector comparison.
3813         * tree-vect-loop.c (optimize_mask_stores): New function.
3814         * tree-vect-stmts.c (vectorizable_mask_load_store): Initialize
3815         has_mask_store field of vect_info.
3816         * tree-vectorizer.c (vectorize_loops): Invoke optimaze_mask_stores for
3817         vectorized loops having masked stores after vec_info destroy.
3818         * tree-vectorizer.h (loop_vec_info): Add new has_mask_store field and
3819         correspondent macros.
3820         (optimize_mask_stores): Add prototype.
3821
3822 2016-02-02  Alan Modra  <amodra@gmail.com>
3823
3824         PR target/69548
3825         * config/rs6000/predicates.md (quad_int_reg_operand): Don't
3826         allow subregs.
3827
3828 2016-02-02  Alan Modra  <amodra@gmail.com>
3829
3830         PR target/68662
3831         * config/rs6000/rs6000.c (need_toc_init): New var, set it
3832         whenever toc_label_name used.
3833         (rs6000_file_start): Don't set up toc section here,
3834         (rs6000_output_function_epilogue): do so here instead,
3835         (rs6000_xcoff_file_start): and here.
3836         * config/rs6000/rs6000.md (load_toc_aix_si): Set need_toc_init.
3837         (load_toc_aix_di): Likewise.
3838
3839 2016-02-01  Jakub Jelinek  <jakub@redhat.com>
3840
3841         PR rtl-optimization/69592
3842         * rtlanal.c (nonzero_bits_binary_arith_p): New inline function.
3843         (cached_nonzero_bits): Use it instead of ARITHMETIC_P.
3844         (num_sign_bit_copies_binary_arith_p): New inline function.
3845         (cached_num_sign_bit_copies): Use it instead of ARITHMETIC_P.
3846
3847 2016-02-01  Jeff Law  <law@redhat.com>
3848
3849         PR tree-optimization/69580
3850         * params.def (FSM_MAXIMUM_PHI_ARGUMENTS): New param.
3851         * tree-ssa-threadbackward.c
3852         (fsm_find_control_statement_thread_paths): Do not try to walk
3853         through large PHI nodes.
3854
3855 2016-02-01  Jakub Jelinek  <jakub@redhat.com>
3856
3857         * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Return false
3858         when count is incremented above limit, don't analyze further
3859         insns afterwards.
3860
3861         * omp-low.c (oacc_parse_default_dims): Avoid
3862         -Wsign-compare warning, make sure value fits into int
3863         rather than just unsigned int.
3864
3865 2016-02-01  Bin Cheng  <bin.cheng@arm.com>
3866
3867         PR tree-optimization/67921
3868         * fold-const.c (split_tree): New parameters.  Convert pointer
3869         type variable part to proper type before negating.
3870         (fold_binary_loc): Pass new arguments to split_tree.
3871
3872 2016-02-01  Nathan Sidwell  <nathan@codesourcery.com>
3873
3874         * config/nvptx/nvptx.c (PTX_GANG_DEFAULT): New.
3875         (nvptx_goacc_validate_dims): Extend to handle global defaults.
3876         * target.def (OACC_VALIDATE_DIMS): Extend documentation.
3877         * doc/tm.texti: Rebuilt.
3878         * doc/invoke.texi (fopenacc-dim): Document.
3879         * lto-wrapper.c (merge_and_complain): Add OPT_fopenacc_dim_ case.
3880         (append_compiler_options): Likewise.
3881         * omp-low.c (oacc_default_dims, oacc_min_dims): New.
3882         (oacc_parse_default_dims): New.
3883         (oacc_validate_dims): Add USED arg.  Select non-unity default when
3884         possible.
3885         (oacc_loop_fixed_partitions): Return mask of used partitions.
3886         (oacc_loop_auto_partitions): Emit dump info.
3887         (oacc_loop_partition): Return mask of used partitions.
3888         (execute_oacc_device_lower): Parse default dimension arg.  Adjust
3889         loop partitioning and validation calls.
3890
3891 2016-02-01  Richard Biener  <rguenther@suse.de>
3892
3893         PR middle-end/69556
3894         * match.pd: Guard (C1/X)*C2 -> (C1*C2)/X with single_use.
3895
3896 2016-02-01  Richard Biener  <rguenther@suse.de>
3897
3898         PR tree-optimization/69574
3899         * tree-chrec.c (hide_evolution_in_other_loops_than_loop): Instead
3900         of asserting return chrec_dont_know.
3901
3902 2016-02-01  Martin Liska  <mliska@suse.cz>
3903
3904         * mem-stats-traits.h: Add copyright header.
3905         * mem-stats.h: Likewise.
3906
3907 2016-02-01  Richard Biener  <rguenther@suse.de>
3908
3909         PR tree-optimization/69579
3910         * tree-ssa-loop-ivcanon.c (propagate_constants_for_unrolling):
3911         Do not propagate through abnormal PHI results.
3912
3913 2016-02-01  Eric Botcazou  <ebotcazou@adacore.com>
3914
3915         * postreload.c (reload_cse_simplify): Remove dead code.
3916
3917 2016-02-01  Jakub Jelinek  <jakub@redhat.com>
3918
3919         PR rtl-optimization/69570
3920         * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Return true only
3921         if there is more than one set, not if there is a single set.
3922
3923 2016-02-01  Richard Henderson  <rth@redhat.com>
3924
3925         PR rtl-opt/69535
3926         * combine.c (make_compound_operation): When looking through a
3927         subreg, make sure to re-extend to the width of the outer mode.
3928
3929 2016-01-30  Jakub Jelinek  <jakub@redhat.com>
3930
3931         PR tree-optimization/69546
3932         * wide-int.cc (wi::divmod_internal): For unsigned division
3933         where both operands fit into uhwi, if o1 is 1 and o0 has
3934         msb set, if divident_prec is larger than bits per hwi,
3935         clear another quotient word and return 2 instead of 1.
3936         Similarly for remainder with msb in HWI set, if dividend_prec
3937         is larger than bits per hwi.
3938
3939 2016-01-29  Martin Jambor  <mjambor@suse.cz>
3940
3941         * hsa-gen.c (get_memory_order_name): Mask with MEMMODEL_BASE_MASK.
3942         Use short lowercase names.
3943         (get_memory_order): Mask with MEMMODEL_BASE_MASK.  Support
3944         MEMMODEL_CONSUME with acquire semantics and MEMMODEL_SEQ_CST with
3945         acq_rel one.  Protect warning agains segfaults if
3946         get_memory_order_name returns NULL.
3947         (gen_hsa_ternary_atomic_for_builtin): Support with MEMMODEL_SEQ_CST
3948         with release semantics.  Do not warn if get_memory_order already did.
3949         (gen_hsa_insns_for_call): Support with MEMMODEL_SEQ_CST with acquire
3950         semantics.  Fix check for relaxed or acquire semantics.  Do not warn
3951         if get_memory_order already did.
3952
3953 2016-01-29  Sebastian Pop  <s.pop@samsung.com>
3954
3955         * doc/install.texi: Document that isl-0.16 is supported.
3956
3957 2016-01-29  Vladimir Makarov  <vmakarov@redhat.com>
3958
3959         PR target/69299
3960         * config/i386/constraints.md (Bm): Describe as special memory
3961         constraint.
3962         * doc/md.texi (DEFINE_SPECIAL_MEMORY_CONSTRAINT): Describe it.
3963         * genoutput.c (main): Process DEFINE_SPECIAL_MEMORY_CONSTRAINT.
3964         * genpreds.c (struct constraint_data): Add is_special_memory.
3965         (have_special_memory_constraints, special_memory_start): New
3966         static vars.
3967         (special_memory_end): Ditto.
3968         (add_constraint): Add new arg is_special_memory.  Add code to
3969         process its true value.  Update have_special_memory_constraints.
3970         (process_define_constraint): Pass the new arg.
3971         (process_define_register_constraint): Ditto.
3972         (choose_enum_order): Process special memory.
3973         (write_tm_preds_h): Generate enum const CT_SPECIAL_MEMORY and
3974         function insn_extra_special_memory_constraint.
3975         (main): Process DEFINE_SPECIAL_MEMORY_CONSTRAINT.
3976         * gensupport.c (process_rtx): Process
3977         DEFINE_SPECIAL_MEMORY_CONSTRAINT.
3978         * ira-costs.c (record_reg_classes): Process CT_SPECIAL_MEMORY.
3979         * ira-lives.c (single_reg_class): Use
3980         insn_extra_special_memory_constraint.
3981         * ira.c (ira_setup_alts): Process CT_SPECIAL_MEMORY.
3982         * lra-constraints.c (process_alt_operands): Ditto.
3983         (curr_insn_transform): Use insn_extra_special_memory_constraint.
3984         * recog.c (asm_operand_ok, preprocess_constraints): Process
3985         CT_SPECIAL_MEMORY.
3986         * reload.c (find_reloads): Ditto.
3987         * rtl.def (DEFINE_SPECIFAL_MEMORY_CONSTRAINT): New.
3988         * stmt.c (parse_input_constraint): Use
3989         insn_extra_special_memory_constraint.
3990
3991 2016-01-29  H.J. Lu  <hongjiu.lu@intel.com>
3992
3993         PR target/69530
3994         * lra-splill.c (lra_final_code_change): Revert r229087 by
3995         removing all sub-registers.
3996
3997 2016-01-29  Steve Ellcey  <sellcey@imgtec.com>
3998
3999         PR target/65604
4000         * config/mips/mips.c (mips_output_division): Check flag_delayed_branch.
4001
4002 2016-01-29  Jakub Jelinek  <jakub@redhat.com>
4003
4004         PR target/69551
4005         * config/i386/i386.c (ix86_expand_vector_set) <case V4SImode>: For
4006         SSE1, copy target into the temporary reg first before recursing
4007         on it.
4008
4009 2016-01-29  H.J. Lu  <hongjiu.lu@intel.com>
4010
4011         * config/i386/sse.md (sse2_cvtps2pd<mask_name>): Replace vBm
4012         with vm.
4013
4014 2016-01-29  Jonathan Wakely  <jwakely@redhat.com>
4015
4016         * ginclude/stdarg.h: Test __cplusplus instead of
4017         __GXX_EXPERIMENTAL_CXX0X__.
4018
4019 2016-01-29  Richard Biener  <rguenther@suse.de>
4020
4021         PR tree-optimization/69547
4022         * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1):
4023         Do not mark clobbers necessary.
4024         (mark_all_reaching_defs_necessary_1): Likewise.
4025
4026 2016-01-29  Dominik Vogt  <vogt@linux.vnet.ibm.com>
4027
4028         * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Format
4029         declaration name with %qs and print it in both error messages.
4030         Also fix indentation.
4031
4032 2016-01-29  Dominik Vogt  <vogt@linux.vnet.ibm.com>
4033
4034         PR other/69006
4035         * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Remove
4036         trailing blank line from error message.
4037
4038 2016-01-29  Jonathan Wakely  <jwakely@redhat.com>
4039
4040         PR c++/69462
4041         * ginclude/float.h: Also provide FLT_EVAL_METHOD and DECIMAL_DIG
4042         for C++-11.
4043
4044 2016-01-29  Richard Biener  <rguenther@suse.de>
4045
4046         PR middle-end/69537
4047         * match.pd: Allow all integral types when simplifying a
4048         widening or sign-changing conversion.
4049
4050 2016-01-28  Sebastian Pop  <s.pop@samsung.com>
4051
4052         * graphite-isl-ast-to-gimple.c (get_rename_from_scev): Revert assert
4053         back to setting codegen_error to fail codegen.
4054
4055 2016-01-28  Uros Bizjak  <ubizjak@gmail.com>
4056
4057         PR target/69459
4058         * config/i386/constraints.md (C): Only accept constant zero operand.
4059         (BC): New constraint.
4060         * config/i386/sse.md (*mov<mode>_internal): Use BC constraint
4061         instead of C constraint.
4062         * doc/md.texi (Machine Constraints): Update description
4063         of C constraint.
4064
4065 2016-01-28  Steve Ellcey  <sellcey@imgtec.com>
4066
4067         PR target/68400
4068         * config/mips/mips.c (and_operands_ok): Add MIPS16 check.
4069
4070 2016-01-28  Jakub Jelinek  <jakub@redhat.com>
4071
4072         PR middle-end/69542
4073         * lra-remat.c (calculate_local_reg_remat_bb_data): Only consider
4074         non-debug insns.
4075
4076 2016-01-28  Pat Haugen  <pthaugen@us.ibm.com>
4077
4078         * config/rs6000/rs6000.c (output_cbranch): Don't statically predict
4079         branches if using guessed profile.
4080
4081 2016-01-28  H.J. Lu  <hongjiu.lu@intel.com>
4082
4083         * graphite-optimize-isl.c (optimize_isl): Fix dump.
4084
4085 2016-01-28  Richard Henderson  <rth@redhat.com>
4086
4087         PR target/69305
4088         * config/aarch64/aarch64-modes.def (CC_Cmode): New
4089         * config/aarch64/aarch64-protos.h: Update.
4090         * config/aarch64/aarch64.c (aarch64_zero_extend_const_eq): New.
4091         (aarch64_select_cc_mode): Add check for use of CC_Cmode.
4092         (aarch64_get_condition_code_1): Handle CC_Cmode.
4093         * config/aarch64/aarch64.md (addti3): Use adddi3_compareC.
4094         (*add<mode>3_compareC_cconly_imm): New.
4095         (*add<mode>3_compareC_cconly): New.
4096         (*add<mode>3_compareC_imm): New.
4097         (add<mode>3_compareC): New.
4098         (add<mode>3_carryin, *addsi3_carryin_uxtw): Sort compare operand
4099         to be first.  Use aarch64_carry_operation.
4100         (*add<mode>3_carryin_alt1, *addsi3_carryin_alt1_uxtw): Remove.
4101         (*add<mode>3_carryin_alt2, *addsi3_carryin_alt2_uxtw): Remove.
4102         (*add<mode>3_carryin_alt3, *addsi3_carryin_alt3_uxtw): Remove.
4103         (subti3): Use subdi3_compare1.
4104         (*sub<mode>3_compare0): Rename from sub<mode>3_compare0.
4105         (sub<mode>3_compare1): New.
4106         (*sub<mode>3_carryin0, *subsi3_carryin_uxtw): New.
4107         (*sub<mode>3_carryin): Use aarch64_borrow_operation.
4108         (*subsi3_carryin_uxtw): Likewise.
4109         (*ngc<mode>, *ngcsi_uxtw): Likewise.
4110         (*sub<mode>3_carryin_alt, *subsi3_carryin_alt_uxtw): New.
4111         * config/aarch64/iterators.md (DWI): New.
4112         * config/aarch64/predicates.md (aarch64_carry_operation): New.
4113         (aarch64_borrow_operation): New.
4114
4115 2016-01-28  Abderrazek Zaafrani  <a.zaafrani@samsung.com>
4116
4117         * graphite-optimize-isl.c (optimize_isl): Print a different debug
4118         message when isl does not return a valid schedule.
4119
4120 2016-01-28  Sebastian Pop  <s.pop@samsung.com>
4121
4122         * graphite-isl-ast-to-gimple.c (class translate_isl_ast_to_gimple):
4123         Remove comments from class declarations: they are already in the code
4124         close by the defs.
4125
4126 2016-01-28  Sebastian Pop  <s.pop@samsung.com>
4127
4128         * graphite-isl-ast-to-gimple.c (binary_op_to_tree): Call
4129         codegen_error_p.
4130         (ternary_op_to_tree): Same.
4131         (unary_op_to_tree): Same.
4132         (nary_op_to_tree): Same.
4133         (gcc_expression_from_isl_expr_op): Same.
4134         (gcc_expression_from_isl_expression): Same.
4135         (graphite_create_new_loop): Same.
4136         (graphite_create_new_loop_guard): Same.
4137         (build_iv_mapping): Same.
4138         (graphite_create_new_guard): Same.
4139         (translate_isl_ast_to_gimple::copy_loop_phi_nodes): Same.
4140         (translate_isl_ast_to_gimple::translate_pending_phi_nodes): Same.
4141
4142 2016-01-28  Sebastian Pop  <s.pop@samsung.com>
4143
4144         * graphite-isl-ast-to-gimple.c (get_rename_from_scev): Assert
4145         instead of setting codegen_error to fail codegen.
4146
4147 2016-01-28  Jason Merrill  <jason@redhat.com>
4148
4149         * tree.h (BINFO_FLAG_0): Rename from BINFO_MARKED.
4150
4151 2016-01-28  Wilco Dijkstra  <wdijkstr@arm.com>
4152
4153         * config/aarch64/aarch64.c (aarch64_if_then_else_costs):
4154         Remove CONST_INT_P check in CCMP cost calculation.
4155
4156 2016-01-28  Wilco Dijkstra  <wdijkstr@arm.com>
4157
4158         * config/aarch64/aarch64.c (generic_vector_cost):
4159         Set vec_permute_cost.
4160         (cortexa57_vector_cost): Likewise.
4161         (exynosm1_vector_cost): Likewise.
4162         (xgene1_vector_cost): Likewise.
4163         (aarch64_builtin_vectorization_cost): Use vec_permute_cost.
4164         * config/aarch64/aarch64-protos.h (cpu_vector_cost):
4165         Add vec_permute_cost entry.
4166
4167 2016-01-28  Wilco Dijkstra  <wdijkstr@arm.com>
4168
4169         * config/aarch64/aarch64.md (ccmp<mode>): Disassemble
4170         immediate as %1.
4171         (add<mode>3_compare0): Likewise.
4172         (addsi3_compare0_uxtw): Likewise.
4173         (add<mode>3nr_compare0): Likewise.
4174         (compare_neg<mode>): Likewise.
4175         (<optab><mode>3): Likewise.
4176
4177 2016-01-28  Ilya Enkovich  <enkovich.gnu@gmail.com>
4178
4179         * tree-vect-stmts.c (vectorizable_comparison): Add
4180         NULL check for vectype.
4181
4182 2016-01-28  Richard Biener  <rguenther@suse.de>
4183
4184         PR tree-optimization/69466
4185         * tree-vect-loop-manip.c (slpeel_duplicate_current_defs_from_edges):
4186         Account for PHIs we couldn't duplicate.
4187
4188 2016-01-28  Martin Liska  <mliska@suse.cz>
4189
4190         PR pch/68758
4191         * ggc-common.c (gt_pch_save): Use ENABLE_VALGRIND_ANNOTATIONS macro
4192         instead of ENABLE_VALGRIND_CHECKING.
4193
4194 2016-01-27  Richard Henderson  <rth@redhat.com>
4195
4196         PR rtl-opt/69447
4197         * lra-remat.c (subreg_regs): New.
4198         (dump_candidates_and_remat_bb_data): Dump it.
4199         (operand_to_remat): Reject if operand in subreg_regs.
4200         (set_bb_regs): Collect subreg_regs.
4201         (lra_remat): Init and free subreg_regs.  Compute
4202         calculate_local_reg_remat_bb_data before create_cands.
4203
4204 2016-01-27  H.J. Lu  <hongjiu.lu@intel.com>
4205
4206         PR target/68986
4207         * config/i386/i386.c (ix86_update_stack_boundary): Don't
4208         change stack_alignment_needed for __tls_get_addr call.
4209
4210 2016-01-27  Segher Boessenkool  <segher@kernel.crashing.org>
4211
4212         * config/rs6000/rs6000.c (print_operand): Rollback 's' removal.
4213
4214 2016-01-27  Jeff Law  <law@redhat.com>
4215
4216         PR tree-optimization/68398
4217         PR tree-optimization/69196
4218         * params.def (PARAM_FSM_SCALE_PATH_STMTS): New parameter.
4219         (PARAM_FSM_SCALE_PATH_BLOCKS): Likewise.
4220         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
4221         Only count PHIs in the last block in the path.  The others will
4222         const/copy propagate away.  Add heuristic to allow more irreducible
4223         subloops to be created when it is likely profitable to do so.
4224
4225         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
4226         Fix typo in comment.  Use gsi_after_labels and remove the GIMPLE_LABEL
4227         check from within the loop.  Use gsi_next_nondebug rather than gsi_next.
4228
4229 2016-01-27  Jakub Jelinek  <jakub@redhat.com>
4230
4231         PR lto/69254
4232         * sanitizer.def: Add BEGIN_SANITIZER_BUILTINS and
4233         END_SANITIZER_BUILTINS markers using DEF_BUILTIN_STUB.
4234         * asan.c (DEF_BUILTIN_STUB): Temporarily define.
4235         * tree-streamer-in.c: Include asan.h.
4236         (streamer_get_builtin_tree): For builtins in sanitizer
4237         range call initialize_sanitizer_builtins and retry.
4238
4239 2016-01-27  Ian Lance Taylor  <iant@google.com>
4240
4241         * common.opt (fkeep-gc-roots-live): New undocumented option.
4242         * tree-ssa-loop-ivopts.c (add_candidate_1): If
4243         -fkeep-gc-roots-live, skip pointers.
4244         (add_iv_candidate_for_biv): Handle add_candidate_1 returning
4245         NULL.
4246
4247 2016-01-27  Uros Bizjak  <ubizjak@gmail.com>
4248
4249         PR target/69512
4250         * config/i386/i386.md (*zext<mode>_doubleword_and): New pattern.
4251         (*zext<mode>_doubleword): Disable for TARGET_ZERO_EXTEND_WITH_AND.
4252
4253 2016-01-27  Thomas Klausner  <wiz@NetBSD.org>
4254
4255         PR target/68380
4256         * configure.ac: NetBSD provides SSP in its C library.
4257         * configure: Updated.
4258
4259 2016-01-27  Richard Biener  <rguenther@suse.de>
4260
4261         PR tree-optimization/69166
4262         * tree-vect-loop.c (vect_is_simple_reduction): Always check
4263         reduction code for commutativity / associativity.
4264
4265 2016-01-27  Martin Jambor  <mjambor@suse.cz>
4266
4267         PR tree-optimization/69355
4268         * tree-sra.c (analyze_access_subtree): Correct hole detection when
4269         total_scalarization fails.
4270
4271 2016-01-27  David Edelsohn  <dje.gcc@gmail.com>
4272
4273         * config/rs6000/driver-rs6000.c (detect_processor_aix): Add
4274         power9.
4275
4276 2016-01-27  Christian Bruel  <christian.bruel@st.com>
4277
4278         PR target/69245
4279         * config/arm/arm-c.c (arm_pragma_target_parse): Add comments.
4280         Move arm_reset_previous_fndecl and set_target_option_current_node in
4281         the conditional part.  Call save_restore_target_globals.
4282         * config/arm/arm.c (arm_set_current_function):
4283         Refactor to better support #pragma target and attribute mix.
4284         Call save_restore_target_globals.
4285         * config/arm/arm-protos.h (save_restore_target_globals): New function.
4286
4287 2016-01-27  Martin Liska  <mliska@suse.cz>
4288
4289         * hsa.c (hsa_summary_t::link_functions): Create IPA_REF_ADDR
4290         reference for an HSA kernel and its host function.
4291
4292 2016-01-27  Jakub Jelinek  <jakub@redhat.com>
4293
4294         PR tree-optimization/69399
4295         * wide-int.h (wi::lrshift): For larger precisions, only
4296         use fast path if shift is known to be < HOST_BITS_PER_WIDE_INT.
4297
4298 2016-01-27  Claudiu Zissulescu  <claziss@synopsys.com>
4299
4300         * config/arc/predicates.md (proper_comparison_operator): Reject
4301         constant-constant comparison.
4302
4303 2016-01-26  Tom de Vries  <tom@codesourcery.com>
4304
4305         PR tree-optimization/69110
4306         * tree-data-ref.c (initialize_data_dependence_relation): Handle
4307         DR_NUM_DIMENSIONS == 0.
4308
4309 2016-01-26  Abderrazek Zaafrani  <a.zaafrani@samsung.com>
4310             Sebastian Pop  <s.pop@samsung.com>
4311
4312         * graphite-isl-ast-to-gimple.c (ternary_op_to_tree): Handle
4313         isl_ast_op_cond and isl_ast_op_select.
4314         (gcc_expression_from_isl_expr_op): Same.
4315
4316 2016-01-26  Jason Merrill  <jason@redhat.com>
4317
4318         PR c++/68782
4319         * tree.c (recompute_constructor_flags): Split out from
4320         build_constructor.
4321         (verify_constructor_flags): New.
4322         * tree.h: Declare them.
4323
4324 2016-01-26  Iain Buclaw  <ibuclaw@gdcproject.org>
4325
4326         PR rtl-optimization/69217
4327         * var-tracking.c (tracked_record_parameter_p): Don't segfault if there
4328         are no TYPE_FIELDS set for the record type.
4329
4330 2016-01-26  Jakub Jelinek  <jakub@redhat.com>
4331
4332         PR target/68662
4333         * config/rs6000/rs6000.c (rs6000_option_override_internal): Initialize
4334         toc_label_name unconditionally.
4335         (rs6000_emit_load_toc_table): Call ggc_strdup on toc_label_name for
4336         SYMBOL_REF string.  Use toc_label_name instead of constructing
4337         LCTOC1.
4338         (rs6000_elf_declare_function_name): Use toc_label_name instead of
4339         constructing LCTOC1.
4340
4341 2016-01-26  Martin Sebor  <msebor@redhat.com>
4342
4343         PR other/69477
4344         * doc/extend.texi (Common Type Attributes): Move text that talks about
4345         attribute packed from attribute aligned to the section discussing
4346         the former attribute for clarity.
4347
4348 2016-01-26  Richard Henderson  <rth@redhat.com>
4349
4350         PR middle-end/60908
4351         * trans-mem.c (tm_region_init): Mark entry block as visited.
4352
4353 2016-01-26  David Malcolm  <dmalcolm@redhat.com>
4354
4355         PR other/69006
4356         * diagnostic-show-locus.c (layout::print_source_line): Replace
4357         call to pp_newline with call to layout::print_newline.
4358         (layout::print_annotation_line): Likewise.
4359         (layout::move_to_column): Likewise.
4360         (layout::print_any_fixits): After printing any fixits, print a
4361         trailing newline, if necessary.
4362         (layout::print_newline): New method, resetting any colorization
4363         before a newline.
4364         (diagnostic_show_locus): Move the pp_newline to before the
4365         early bailout.  Remove dummy block enclosing the layout instance.
4366         * diagnostic.c (default_diagnostic_finalizer): Replace invocation
4367         of pp_newline_and_flush with pp_flush.
4368         (diagnostic_append_note): Delete use of pp_newline.
4369         (diagnostic_append_note_at_rich_loc): Delete.
4370         * diagnostic.h (diagnostic_append_note_at_rich_loc): Delete.
4371         * pretty-print.h (output_buffer_append_r): Reset buff->line_length
4372         when newline characters are added to the buffer.
4373
4374 2016-01-26  Michael Matz  <matz@suse.de>
4375
4376         * configure.ac (ac_cv_std_swap_in_utility): New test.
4377         * system.h (<algorithm>): Check HAVE_SWAP_IN_UTILITY as well.
4378         * configure: Regenerate.
4379         * config.in: Regenerate.
4380
4381 2016-01-26  Claudiu Zissulescu  <claziss@synopsys.com>
4382
4383         * config/arc/arc.md (cstoresi4): Force operand into register.
4384         (arcset<code>): Fix predicate.
4385         (arcsetltu): Likewise.
4386         (arcsetgeu): Likewise.
4387         (arcsethi): Likewise.
4388         (arcsetls): Likewise.
4389
4390 2016-01-26  Jakub Jelinek  <jakub@redhat.com>
4391
4392         PR tree-optimization/69483
4393         * gimple-fold.c (canonicalize_constructor_val): Return NULL
4394         if base has error_mark_node type.
4395
4396 2016-01-26  Christophe Lyon  <christophe.lyon@linaro.org>
4397
4398         PR target/68620
4399         * config/arm/arm.c (neon_valid_immediate): Handle FP16 vectors.
4400         * config/arm/arm_neon.h (__ARM_NUM_LANES, __arm_lane, arm_lanq):
4401         New helper macros.
4402         (vget_lane_f16): Handle big-endian.
4403         (vgetq_lane_f16): Likewise.
4404         (vset_lane_f16): Likewise.
4405         (vsetq_lane_f16): Likewise.
4406         * config/arm/iterators.md (VQXMOV): Add V8HF.
4407         (VDQ): Add V4HF and V8HF.
4408         (V_reg): Handle V4HF and V8HF.
4409         (Is_float_mode): Likewise.
4410         * config/arm/neon.md (movv4hf, movv8hf, neon_vdup_nv4hf,
4411         neon_vdup_nv8hf): New patterns.
4412         (vec_set<mode>_internal, vec_extract<mode>, neon_vld1_dup<mode>):
4413         Use VD_LANE iterator.
4414         (neon_vld1_dup<mode>): Use VQ2 iterator.
4415
4416 2016-01-26  Nathan Sidwell  <nathan@acm.org>
4417
4418         * omp-low.h (oacc_fn_attrib_kernels_p): Declare.
4419         (set_oacc_fn_attrib): Add IS_KERNEL arg.
4420         * omp-low.c (set_oacc_fn_attrib): Add IS_KERNEL arg.
4421         (oacc_fn_attrib_kernels_p, oacc_fn_attrib_level): New.
4422         (expand_omp_target): Pass is_kernel to set_oacc_fn_attrib.
4423         (oacc_validate_dims): Add LEVEL arg, don't return level.
4424         (new_oacc_loop_routine): Use oacc_fn_attrib_level, not
4425         oacc_validate_dims.
4426         (execute_oacc_device_lower): Adjust, add more dump output.
4427         * tree-ssa-loop.c (gate_oacc_kernels): Use
4428         oacc_fn_attrib_kernels_p.
4429         * tree-parloops.c (create_parallel_loop): Adjust
4430         set_oacc_fn_attrib call.
4431
4432 2016-01-26  Jakub Jelinek  <jakub@redhat.com>
4433
4434         PR lto/69254
4435         * lto-wrapper.c (merge_and_complain): Handle -fcilkplus.
4436         (append_compiler_options): Handle -fcilkplus.
4437         (append_linker_options): Ignore -fno-{openmp,openacc,cilkplus}.
4438
4439 2016-01-26  Nick Clifton  <nickc@redhat.com>
4440
4441         PR target/66655
4442         * config/i386/winnt.c (i386_pe_binds_local_p): If a function has
4443         been marked as DECL_ONE_ONLY but we do not the means to make it
4444         so, then do not allow it to bind locally.
4445
4446 2016-01-26  Jakub Jelinek  <jakub@redhat.com>
4447
4448         PR lto/69254
4449         * opts.h (parse_sanitizer_options): New prototype.
4450         * opts.c (sanitizer_opts): New array.
4451         (parse_sanitizer_options): New function.
4452         (common_handle_option): Use parse_sanitizer_options.
4453
4454 2016-01-26  H.J. Lu  <hongjiu.lu@intel.com>
4455
4456         PR target/68986
4457         * config/i386/i386.c (ix86_compute_frame_layout): Move stack
4458         alignment adjustment to ...
4459         (ix86_update_stack_boundary): Here.  Don't over-align stack for
4460         __tls_get_addr.
4461         (ix86_finalize_stack_realign_flags): Use stack_alignment_needed
4462         if __tls_get_addr is called.
4463
4464 2016-01-26  Christian Bruel  <christian.bruel@st.com>
4465
4466         * doc/sourcebuild.texi (arm_crypto_pragma_ok): Remove.
4467
4468 2016-01-26  Eric Botcazou  <ebotcazou@adacore.com>
4469
4470         * config/ia64/ia64.c (ia64_expand_vecint_compare): Use gen_int_mode.
4471
4472 2016-01-26  Richard Biener  <rguenther@suse.de>
4473
4474         PR middle-end/69467
4475         * match.pd: Guard X * CST CMP 0 pattern with single_use.
4476
4477 2016-01-26  Richard Biener  <rguenther@suse.de>
4478
4479         PR tree-optimization/69452
4480         * tree-ssa-loop-im.c (move_computations_dom_walker): Remove.
4481         (move_computations_dom_walker::before_dom_children): Rename
4482         to ...
4483         (move_computations_worker): This.
4484         (move_computations): Perform an RPO rather than a DOM walk.
4485
4486 2016-01-26  Jakub Jelinek  <jakub@redhat.com>
4487
4488         PR target/69442
4489         * combine.c (combine_instructions): For REG_EQUAL note with
4490         SET_DEST being ZERO_EXTRACT, also temporarily set SET_DEST
4491         to the underlying register.
4492         * doc/rtl.texi (REG_EQUAL): Document the behavior of
4493         REG_EQUAL/REG_EQUIV notes if SET_DEST is ZERO_EXTRACT.
4494
4495 2016-01-26  Roger Ferrer Ibáñez  <rofirrim@gmail.com>
4496
4497         PR target/67896
4498         * config/aarch64/aarch64-builtins.c
4499         (aarch64_init_simd_builtin_types): Do not set structural
4500         equality to __Poly{8,16,64,128}_t types.
4501
4502 2016-01-26  Richard Sandiford  <richard.sandiford@arm.com>
4503
4504         PR tree-optimization/69400
4505         * wide-int.cc (wi_pack): Take the precision as argument and
4506         perform canonicalization here rather than in the callers.
4507         Use the main loop to handle all full-width HWIs.  Add a
4508         zero HWI if in_len isn't a full result.
4509         (wi::divmod_internal): Update accordingly.
4510         (wi::mul_internal): Likewise.  Simplify.
4511
4512 2016-01-25  Aditya Kumar  <aditya.k7@samsung.com>
4513             Sebastian Pop  <s.pop@samsung.com>
4514
4515         * graphite-poly.c (apply_poly_transforms): Simplify.
4516         (print_isl_set): Use more readable format: ISL_YAML_STYLE_BLOCK.
4517         (print_isl_map): Same.
4518         (print_isl_union_map): Same.
4519         (print_isl_schedule): New.
4520         (debug_isl_schedule): New.
4521         * graphite-dependences.c (scop_get_reads): Do not call
4522         isl_union_map_add_map that is undocumented isl functionality.
4523         (scop_get_must_writes): Same.
4524         (scop_get_may_writes): Same.
4525         (scop_get_original_schedule): Remove.
4526         (scop_get_dependences): Do not call isl_union_map_compute_flow that
4527         is deprecated in isl 0.15.  Instead, use isl_union_access_* interface.
4528         (compute_deps): Remove.
4529         * graphite-isl-ast-to-gimple.c (print_schedule_ast): New.
4530         (debug_schedule_ast): New.
4531         (translate_isl_ast_to_gimple::scop_to_isl_ast): Call
4532         set_separate_option.
4533         (graphite_regenerate_ast_isl): Add dump.
4534         (translate_isl_ast_to_gimple::scop_to_isl_ast): Generate code
4535         from scop->transformed_schedule.
4536         (graphite_regenerate_ast_isl): Add more dump.
4537         * graphite-optimize-isl.c (optimize_isl): Set
4538         scop->transformed_schedule.  Check whether schedules are equal.
4539         (apply_poly_transforms): Move here.
4540         * graphite-poly.c (apply_poly_transforms): ... from here.
4541         (free_poly_bb): Static.
4542         (free_scop): Static.
4543         (pbb_number_of_iterations_at_time): Remove.
4544         (print_isl_ast): New.
4545         (debug_isl_ast): New.
4546         (debug_scop_pbb): New.
4547         * graphite-scop-detection.c (print_edge): Move.
4548         (print_sese): Move.
4549         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Remove.
4550         (build_scop_scattering): Remove.
4551         (create_pw_aff_from_tree): Assert instead of bailing out.
4552         (add_condition_to_pbb): Remove unused code, do not fail.
4553         (add_conditions_to_domain): Same.
4554         (add_conditions_to_constraints): Remove.
4555         (build_scop_context): New.
4556         (add_iter_domain_dimension): New.
4557         (build_iteration_domains): Initialize pbb->iterators.
4558         Call add_conditions_to_domain.
4559         (nested_in): New.
4560         (loop_at): New.
4561         (index_outermost_in_loop): New.
4562         (index_pbb_in_loop): New.
4563         (outermost_pbb_in): New.
4564         (add_in_sequence): New.
4565         (add_outer_projection): New.
4566         (outer_projection_mupa): New.
4567         (add_loop_schedule): New.
4568         (build_schedule_pbb): New.
4569         (build_schedule_loop): New.
4570         (embed_in_surrounding_loops): New.
4571         (build_schedule_loop_nest): New.
4572         (build_original_schedule): New.
4573         (build_poly_scop): Call build_original_schedule.
4574         * graphite.h: Declare print_isl_schedule and debug_isl_schedule.
4575         (free_poly_dr): Remove.
4576         (struct poly_bb): Add iterators.  Remove schedule, transformed, saved.
4577         (free_poly_bb): Remove.
4578         (debug_loop_vec): Remove.
4579         (print_isl_ast): Declare.
4580         (debug_isl_ast): Declare.
4581         (scop_do_interchange): Remove.
4582         (scop_do_strip_mine): Remove.
4583         (scop_do_block): Remove.
4584         (flatten_all_loops): Remove.
4585         (optimize_isl): Remove.
4586         (pbb_number_of_iterations_at_time): Remove.
4587         (debug_scop_pbb): Declare.
4588         (print_schedule_ast): Declare.
4589         (debug_schedule_ast): Declare.
4590         (struct scop): Remove schedule.  Add original_schedule,
4591         transformed_schedule.
4592         (free_gimple_poly_bb): Remove.
4593         (print_generated_program): Remove.
4594         (debug_generated_program): Remove.
4595         (unify_scattering_dimensions): Remove.
4596         * sese.c (print_edge): ... here.
4597         (print_sese): ... here.
4598         (debug_edge): ... here.
4599         (debug_sese): ... here.
4600         * sese.h (print_edge): Declare.
4601         (print_sese): Declare.
4602         (dump_edge): Declare.
4603         (dump_sese): Declare.
4604
4605 2016-01-25  Aditya Kumar  <aditya.k7@samsung.com>
4606             Sebastian Pop  <s.pop@samsung.com>
4607
4608         * Makefile.in: Set ISLVER in site.exp.
4609
4610 2016-01-25  Jakub Jelinek  <jakub@redhat.com>
4611
4612         * omp-low.c (lower_omp_target) <case USE_DEVICE_PTR>: Set
4613         DECL_VALUE_EXPR of new_var even for the non-array case.  Look
4614         through DECL_VALUE_EXPR for expansion.
4615
4616 2016-01-25  Bernd Edlinger  <bernd.edlinger@hotmail.de>
4617
4618         * config/mips/mips.c (mips_compute_frame_info): Skip re-computing
4619         the frame info after reload completed.
4620
4621 2016-01-25  Jeff Law  <law@redhat.com>
4622
4623         PR tree-optimization/69196
4624         PR tree-optimization/68398
4625         * tree-ssa-threadupdate.h (enum bb_dom_status): Moved here from
4626         tree-ssa-threadupdate.c.
4627         (determine_bb_domination_status): Prototype
4628         * tree-ssa-threadupdate.c (enum bb_dom_status): Remove
4629         (determine_bb_domination_status): No longer static.
4630         (valid_jump_thread_path): Remove code to detect characteristics
4631         of the jump thread path not associated with correctness.
4632         * tree-ssa-threadbackward.c (fsm_find_control_statment_thread_paths):
4633         Correct test for thread path length.  Count PHIs for real operands as
4634         statements that need to be copied.  Do not count ASSERT_EXPRs.
4635         Look at all the blocks in the thread path.  Compute and selectively
4636         filter thread paths based on threading through the latch, threading
4637         a multiway branch or crossing a multiway branch.
4638
4639 2016-01-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
4640
4641         * config/rs6000/rs6000.c (rs6000_keep_leaf_when_profiled):  Add
4642         decl with __attribute__ ((unused)) annotation.
4643
4644 2016-01-25  Ilya Enkovich  <enkovich.gnu@gmail.com>
4645
4646         PR target/69421
4647         * tree-vect-stmts.c (vectorizable_condition): Check vectype
4648         of operands is compatible with a statement vectype.
4649
4650 2016-01-25  Eric Botcazou  <ebotcazou@adacore.com>
4651
4652         * doc/extend.texi (scalar_storage_order type attribute): Fix typo and
4653         improve wording for mixed storage order support.
4654
4655 2016-01-25  Bilyan Borisov  <bilyan.borisov@arm.com>
4656
4657         * config/aarch64/arm_neon.h (vcvt_s64_f64): New intrinsic.
4658         (vcvt_u64_f64): Likewise.
4659         (vcvta_s64_f64): Likewise.
4660         (vcvta_u64_f64): Likewise.
4661         (vcvtm_s64_f64): Likewise.
4662         (vcvtm_u64_f64): Likewise.
4663         (vcvtn_s64_f64): Likewise.
4664         (vcvtn_u64_f64): Likewise.
4665         (vcvtp_s64_f64): Likewise.
4666         (vcvtp_u64_f64): Likewise.
4667
4668 2016-01-25  Claudiu Zissulescu  <claziss@synopsys.com>
4669
4670         * config/arc/arc.c (TARGET_DWARF_REGISTER_SPAN): Define.
4671         (arc_init): Check validity mll64 option.
4672         (arc_save_restore): Use double load/store instruction.
4673         (arc_expand_movmem): Likewise.
4674         (arc_split_move): Don't split if we have double load/store
4675         instructions. Returns a boolean.
4676         (arc_process_double_reg_moves): Change function to return boolean
4677         instead of a sequence of instructions.
4678         (arc_dwarf_register_span): New function.
4679         * config/arc/arc-protos.h (arc_split_move): Change prototype.
4680         * config/arc/arc.h (TARGET_CPU_CPP_BUILTINS): Define __ARC_LL64__.
4681         * config/arc/arc.md (*movdi_insn): Emit ldd/std instructions.
4682         (*movdf_insn): Likewise.
4683         * config/arc/arc.opt (mll64): New option.
4684         * config/arc/predicates.md (even_register_operand): New predicate.
4685         * doc/invoke.texi (ARC Options): Add mll64 documentation.
4686
4687 2016-01-25  Richard Biener  <rguenther@suse.de>
4688
4689         PR lto/69393
4690         * dwarf2out.c (is_naming_typedef_decl): Not when DECL_NAMELESS.
4691         * tree-streamer-out.c (pack_ts_base_value_fields): Stream
4692         DECL_NAMELESS.
4693         * tree-streamer-in.c (unpack_ts_base_value_fields): Likewise.
4694
4695 2016-01-25  Richard Biener  <rguenther@suse.de>
4696
4697         PR tree-optimization/69376
4698         * tree-ssa-sccvn.h (struct vn_ssa_aux): Add range_info_anti_range_p
4699         flag.
4700         (VN_INFO_ANTI_RANGE_P): New inline.
4701         (VN_INFO_RANGE_TYPE): Likewise.
4702         * tree-ssa-sccvn.c (set_ssa_val_to): Also record and copy
4703         SSA_NAME_ANTI_RANGE_P.
4704         (free_scc_vn): Restore SSA_NAME_ANTI_RANGE_P.
4705         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
4706         Properly query VN_INFO_RANGE_TYPE.
4707
4708 2016-01-25  Nick Clifton  <nickc@redhat.com>
4709
4710         PR target/66655
4711         * config/i386/cygming.h (MAKE_DECL_ONE_ONLY): Remove definition.
4712
4713 2016-01-23  Tom de Vries  <tom@codesourcery.com>
4714
4715         PR tree-optimization/69426
4716         * tree-parloops.c (eliminate_local_variables_stmt): Handle vdef of
4717         removed clobber.
4718
4719 2016-01-23  Jakub Jelinek  <jakub@redhat.com>
4720
4721         * tree-ssanames.c (release_free_names_and_compact_live_names): Replace
4722         "the the" with "the" in the comments.
4723         * ipa-devirt.c (build_type_inheritance_graph,
4724         update_type_inheritance_graph): Likewise.
4725         * tree.c (build_function_type_list_1): Likewise.
4726         * cfgloopmanip.c (scale_loop_profile): Likewise.
4727         * tree-ssa-loop-ivopts.c (get_shiftadd_cost): Likewise.
4728         * gimple-ssa-split-paths.c
4729         (find_block_to_duplicate_for_splitting_paths): Likewise.
4730         * tree-sra.c (init_subtree_with_zero, clobber_subtree): Likewise.
4731         * expr.c (convert_move): Likewise.
4732         * var-tracking.c (vt_stack_adjustments): Likewise.
4733         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise.
4734         * tree-vrp.c (test_for_singularity): Likewise.
4735
4736         * tree-vect-stmts.c (vectorizable_condition): Build a VEC_COND_EXPR
4737         directly instead of building a temporary tree.
4738
4739         PR bootstrap/69434
4740         * genrecog.c: Define INCLUDE_ALGORITHM before including system.h,
4741         remove <algorithm> include.
4742
4743 2016-01-22  Jakub Jelinek  <jakub@redhat.com>
4744
4745         PR target/69432
4746         * config/i386/i386.c: Include dojump.h.
4747         (expand_small_movmem_or_setmem,
4748         expand_set_or_movmem_prologue_epilogue_by_misaligned_moves): Spelling
4749         fixes.
4750         (ix86_expand_set_or_movmem): Call do_pending_stack_adjust () early
4751         if dynamic_check != -1.
4752
4753 2016-01-21  Jeff Law  <law@redhat.com>
4754
4755         PR middle-end/69347
4756         * tree-ssa-dom.c (back_propagate_equivalences): Factored out of
4757         record_temporary_equivalences.  Rewritten to avoid unnecessary calls
4758         into dominated_by_p.
4759         (cprop_into_successor_phis): Avoid unnecessary tests.
4760
4761 2016-01-22  Richard Henderson  <rth@redhat.com>
4762
4763         PR target/69416
4764         * config/aarch64/aarch64.md (UNSPEC_NZCV): New.
4765         (ccmp<mode>, fccmp<mode>, fccmpe<mode>): Use it.
4766
4767 2016-01-22  Michael Matz  <matz@suse.de>
4768
4769         * system.h (string, algorithm): Include only conditionally.
4770         (new): Include always under C++.
4771         * bb-reorder.c (toplevel): Define INCLUDE_ALGORITHM.
4772         * final.c (toplevel): Ditto.
4773         * ipa-chkp.c (toplevel): Define INCLUDE_STRING.
4774         * genconditions.c (write_header): Make gencondmd.c define
4775         INCLUDE_STRING.
4776         * mem-stats.h (mem_usage::print_dash_line): Don't use std::string.
4777
4778         * config/aarch64/aarch64.c (toplevel): Define INCLUDE_STRING.
4779         * common/config/aarch64/aarch64-common.c (toplevel): Ditto.
4780
4781 2016-01-22  Christian Bruel  <christian.bruel@st.com>
4782
4783         PR target/68674
4784         * expr.c (expand_expr_real_1): Reset DECL_MODE if VECTOR_TYPE_P changed.
4785
4786 2016-01-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4787
4788         PR target/69403
4789         * config/arm/thumb2.md (*thumb2_ior_scc_strict_it): Convert to
4790         define_insn_and_split.  Ensure operands[1] and operands[0] do not
4791         get assigned the same register.
4792
4793 2016-01-22  Kugan Vivekanandarajah  <kuganv@linaro.org>
4794
4795         * ipa-prop.c (ipa_set_jf_constant): Remove redundant unshare_expr.
4796
4797 2016-01-22  Christian Bruel  <christian.bruel@st.com>
4798
4799         * config/arm/arm-c.c (arm_pragma_target_parse):
4800         Remove warn_builtin_macro_redefined overwrite.
4801
4802 2016-01-22  Eric Botcazou  <ebotcazou@adacore.com>
4803
4804         * ipa-inline.c (can_inline_edge_p): Back out overzealous check on
4805         flag_non_call_exceptions compatibility.
4806
4807 2016-01-22  Jakub Jelinek  <jakub@redhat.com>
4808
4809         PR debug/66668
4810         * dwarf2out.c (add_child_die_after): New function.
4811         (dwarf_qual_info_t): New type.
4812         (dwarf_qual_info): New variable.
4813         (qualified_die_p): New function.
4814         (modified_type_die): For -fdebug-types-section, ensure
4815         canonical order of qualifiers.  Put qualified DIEs adjacent
4816         to the corresponding non-qualified type DIE and search there
4817         for existing qualified DIEs.
4818
4819 2016-01-22  Eric Botcazou  <ebotcazou@adacore.com>
4820
4821         * doc/extend.texi (scalar_storage_order type attribute): Document
4822         restriction on type punning and aliasing, and remove future tense.
4823
4824 2016-01-21  Roman Zhuykov  <zhroma@ispras.ru>
4825
4826         PR target/69252
4827         * modulo-sched.c (optimize_sc): Allow branch-scheduling to add a new
4828         first stage.
4829
4830 2016-01-21  Jeff Law  <law@redhat.com>
4831
4832         PR middle-end/69347
4833         * tree-ssa-dom.c (dom_opt_dom_walker::thread_across_edge): Avoid
4834         useless call to record_temporary_equivalences.
4835         * tree-ssa-threadbackward.c (find_jump_threads_backwards): Just
4836         allocate 10 slots in the bb_path vector and let it grow as needed.
4837         (fsm_find_control_statement_thread_paths): Similarly for the next_path
4838         vector.
4839
4840 2016-01-21  David Edelsohn  <dje.gcc@gmail.com>
4841
4842         * configure.ac (gcc_cv_as_powerpc_mfcrf, gcc_cv_as_machine_directive):
4843         Detangle.
4844         * configure: Regenerate.
4845
4846 2016-01-21  Pat Haugen  <pthaugen@us.ibm.com>
4847
4848         * config/rs6000/aix71.h (ASM_CPU_SPEC): Add entry for Power9.
4849         * config/rs6000/driver-rs6000.c (struct asm_names): Likewise.
4850
4851 2016-01-21  Bernd Schmidt  <bschmidt@redhat.com>
4852
4853         PR middle-end/66178
4854         * expr.c (expand_expr_real_2) [PLUS_EXPR, MINUS_EXPR]: Don't
4855         drop EXPAND_INITIALIZER.
4856         * rtl.h (contains_symbolic_reference_p): Declare.
4857         * rtlanal.c (contains_symbolic_reference_p): New function.
4858         * simplify-rtx.c (simplify_binary_operation_1): Don't turn
4859         a subtraction into a NOT if symbolic constants are involved.
4860
4861 2016-01-21  Anton Blanchard  <anton@samba.org>
4862             Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
4863
4864         PR target/63354
4865         * config/rs6000/linux64.h (TARGET_KEEP_LEAF_WHEN_PROFILED): New
4866         #define.
4867         * config/rs6000/rs6000.c (rs6000_keep_leaf_when_profiled): New
4868         function.
4869
4870 2016-01-21  Ajit Agarwal  <ajitkum@xilinx.com>
4871
4872         * config/microblaze/microblaze.c
4873         (get_branch_target): New.
4874         (insert_wic_for_ilb_runout): New.
4875         (insert_wic): New.
4876         (microblaze_machine_dependent_reorg): New.
4877         (TARGET_MACHINE_DEPENDENT_REORG): Define macro.
4878         * config/microblaze/microblaze.md
4879         (UNSPEC_IPREFETCH): Define.
4880         (iprefetch): New pattern
4881         * config/microblaze/microblaze.opt
4882         (mxl-prefetch): New flag.
4883
4884 2016-01-21  Ajit Agarwal  <ajitkum@xilinx.com>
4885
4886         * config/microblaze/microblaze.h
4887         (FIXED_REGISTERS): Update in macro.
4888         (CALL_USED_REGISTERS): Update in macro.
4889
4890 2016-01-21  Yuri Rumyantsev  <ysrumyan@gmail.com>
4891
4892         PR rtl-optimization/68920
4893         * ifcvt.c (cond_move_process_if_block): Limit number of conditional
4894         moves.
4895
4896 2016-01-21  Vladimir Makarov  <vmakarov@redhat.com>
4897
4898         PR rtl-optimization/68990
4899         * lra-coalesce.c (lra_coalesce): Invalidate value for the result
4900         pseudo instead of inheritance ones.
4901
4902 2016-01-21  Bernd Edlinger  <bernd.edlinger@hotmail.de>
4903             Nick Clifton  <nickc@redhat.com>
4904
4905         PR target/69129
4906         PR target/69012
4907         * config/mips/mips.c (mips_compute_frame_info): Initialise
4908         args_size and hard_frame_pointer_offset fields of the frame
4909         structure before calling mips_global_pointer.
4910
4911 2016-01-21  David Edelsohn  <dje.gcc@gmail.com>
4912
4913         * configure.ac (gcc_cv_as_dwloc): Test support for debug frame section
4914         label reference.
4915         * configure: Regenerate.
4916
4917 2016-01-21  Richard Biener  <rguenther@suse.de>
4918
4919         * graphite-optimize-isl.c (get_schedule_map): Fix typo.
4920
4921 2016-01-21  Marcin Kościelnicki  <koriakin@0x04.net>
4922
4923         * config/s390/s390.c (s390_asm_declare_function_size): Add code
4924         to actually emit the .size directive.
4925
4926 2016-01-21   Stefan Sørensen  <stefan.sorensen@spectralink.com>
4927              Jakub Jelinek  <jakub@redhat.com>
4928
4929         PR target/69187
4930         PR target/65624
4931         * config/arm/arm-builtins.c (arm_expand_neon_builtin): Increase
4932         args array size by one to avoid buffer overflow.
4933
4934 2016-01-21  Marcin Kościelnicki  <koriakin@0x04.net>
4935
4936         * config/s390/s390.md (pool_section_start): Use switch_to_section
4937         to select proper read-only data section instead of hardcoding
4938         .rodata.
4939         (pool_section_end): Use switch_to_section to match the above.
4940
4941 2016-01-21  Richard Biener  <rguenther@suse.de>
4942
4943         PR tree-optimization/69378
4944         * tree-ssa-sccvn.c (dominated_by_p_w_unex): New function.
4945         (set_ssa_val_to): Use it for dominance checks taking into
4946         account not executable edges.
4947
4948 2016-01-21  Jakub Jelinek  <jakub@redhat.com>
4949
4950         PR c++/69355
4951         * tree-dfa.c (get_ref_base_and_extent): Use GET_MODE_BITSIZE (mode)
4952         for bitsize instead of GET_MODE_PRECISION (mode).
4953
4954 2016-01-20  Martin Sebor  <msebor@redhat.com>
4955
4956         PR c/52291
4957         * extend.texi (__sync Builtins): Clarify the semantics of
4958         __sync_fetch_and_OP built-ins on pointers.
4959         (__atomic Builtins): Same.
4960
4961 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
4962             Sebastian Pop  <s.pop@samsung.com>
4963
4964         * graphite-isl-ast-to-gimple.c (enum phi_node_kind): New.
4965         (class translate_isl_ast_to_gimple): Use phi_node_kind instead of bool.
4966         (is_valid_rename): Same.
4967         (translate_isl_ast_to_gimple::get_rename): Same.
4968         (translate_isl_ast_to_gimple::rename_all_uses): Same.
4969         (translate_isl_ast_to_gimple::rename_uses): Same.
4970         (get_new_name): Check for close_phi nodes.
4971         (copy_loop_phi_args): Use phi_node_kind.
4972         (translate_isl_ast_to_gimple::copy_loop_close_phi_args): Same.
4973         (translate_isl_ast_to_gimple::copy_cond_phi_args): Same.
4974
4975 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
4976             Sebastian Pop  <s.pop@samsung.com>
4977
4978         Revert commit r229783.
4979         * graphite-isl-ast-to-gimple.c (gcc_expression_from_isl_ast_expr_id):
4980         Remove use of parameter_rename_map.
4981         (copy_def): Remove.
4982         (copy_internal_parameters): Remove.
4983         (graphite_regenerate_ast_isl): Remove call to copy_internal_parameters.
4984         * sese.c (new_sese_info): Do not initialize parameter_rename_map.
4985         (free_sese_info): Do not free parameter_rename_map.
4986         (set_rename): Do not use parameter_rename_map.
4987         (rename_uses): Update call to set_rename.
4988         (graphite_copy_stmts_from_block): Do not use parameter_rename_map.
4989         * sese.h (parameter_rename_map_t): Remove.
4990         (struct sese_info_t): Remove field parameter_rename_map.
4991
4992 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
4993             Sebastian Pop  <s.pop@samsung.com>
4994
4995         * graphite-isl-ast-to-gimple.c: Fix comment.
4996         * graphite-scop-detection.c (defined_in_loop_p): New.
4997         (canonicalize_loop_closed_ssa): Do not add close phi nodes for SSA
4998         names defined in loop.
4999
5000 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
5001             Sebastian Pop  <s.pop@samsung.com>
5002
5003         * graphite-scop-detection.c (scop_detection::harmful_loop_in_region):
5004         Discard unstructured if-then-else regions.
5005
5006 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
5007             Sebastian Pop  <s.pop@samsung.com>
5008
5009         * graphite-sese-to-poly.c (set_scop_parameter_dim): Remove.
5010         (cleanup_loop_iter_dom): Remove.
5011         (build_loop_iteration_domains): Remove.
5012         (build_scop_context): Remove.
5013         (build_scop_iteration_domain): Remove.
5014         (add_loop_constraints): New.
5015         (build_iteration_domains): New.
5016         (build_poly_scop): Call build_iteration_domains.
5017
5018 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
5019             Sebastian Pop  <s.pop@samsung.com>
5020
5021         * graphite-scop-detection.c
5022         (scop_detection::harmful_loop_in_region): Free dom and loops.
5023         (scop_detection::loop_body_is_valid_scop): Free bbs.
5024
5025 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
5026             Sebastian Pop  <s.pop@samsung.com>
5027
5028         * graphite-scop-detection.c (record_loop_in_sese): New.
5029         (gather_bbs::before_dom_children): Call record_loop_in_sese.
5030         (build_scops): Remove call to build_sese_loop_nests.
5031         * sese.c (sese_record_loop): Remove.
5032         (build_sese_loop_nests): Remove.
5033         (new_sese_info): Remove region->loops.
5034         (free_sese_info): Same.
5035         * sese.h (sese_contains_loop): Same.
5036         (build_sese_loop_nests): Remove.
5037         (sese_contains_loop): Remove.
5038
5039 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
5040             Sebastian Pop  <s.pop@samsung.com>
5041
5042         * graphite-scop-detection.c (loop_is_valid_scop): Renamed
5043         loop_is_valid_in_scop.
5044         (scop_detection::harmful_stmt_in_region): Renamed
5045         harmful_loop_in_region.
5046         Call loop_is_valid_in_scop.
5047
5048 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
5049             Sebastian Pop  <s.pop@samsung.com>
5050
5051         * graphite-isl-ast-to-gimple.c (translate_isl_ast): Also handle
5052         isl_ast_node_mark.
5053
5054 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
5055             Sebastian Pop  <s.pop@samsung.com>
5056
5057         * graphite-poly.c (new_poly_bb): Remove use of PBB_IS_REDUCTION.
5058         * graphite.h (struct poly_bb): Remove field is_reduction.
5059         (PBB_IS_REDUCTION): Remove.
5060
5061 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
5062             Sebastian Pop  <s.pop@samsung.com>
5063
5064         * graphite-dependences.c (constrain_domain): Add call to isl_*_coalesce.
5065         (add_pdr_constraints): Same.
5066         (scop_get_reads): Same.
5067         (scop_get_must_writes): Same.
5068         (scop_get_may_writes): Same.
5069         (scop_get_original_schedule): Same.
5070         (extend_schedule): Same.
5071         (apply_schedule_on_deps): Same.
5072         (carries_deps): Same.
5073         (compute_deps): Same.
5074         (scop_get_dependences): Same.
5075         * graphite-isl-ast-to-gimple.c
5076         (translate_isl_ast_to_gimple::generate_isl_schedule): Same.
5077         * graphite-optimize-isl.c (get_schedule_for_band): Same.
5078         (get_schedule_for_band_list): Same.
5079         (get_schedule_map): Same.
5080         (apply_schedule_map_to_scop): Same.
5081         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
5082         (build_loop_iteration_domains): Same.
5083         (add_condition_to_pbb): Same.
5084         (add_param_constraints): Same.
5085         (pdr_add_memory_accesses): Same.
5086         (pdr_add_data_dimensions): Same.
5087
5088 2016-01-20  Sandra Loosemore  <sandra@codesourcery.com>
5089
5090         * doc/invoke.texi (Instrumentation Options): Clarify -mmpx linking
5091         requirements.
5092
5093 2016-01-20  Sandra Loosemore  <sandra@codesourcery.com>
5094
5095         * common.opt (feliminate-dwarf2-dups): Replace references to
5096         "DWARF 2" with just "DWARF".
5097         * config/ia64/ia64.opt (mdwarf2-asm): Likewise.
5098         * doc/extend.texi: Likewise.
5099         * doc/cpp.texi: Likewise.
5100         * doc/invoke.texi: Likewise.
5101         (Option Summary): Add -gdwarf to list of Debugging Options.
5102         (Debugging Options): Document -gdwarf.
5103         * doc/contrib.texi: Spell "DWARF" like that.
5104
5105 2016-01-21  Jakub Jelinek  <jakub@redhat.com>
5106
5107         * omp-low.c (expand_omp_target): Avoid -Wmaybe-uninitialized
5108         warning.  Fix up formatting.
5109
5110         PR middle-end/67653
5111         * gimplify.c (gimplify_asm_expr): Warn if it is too late to
5112         attempt to mark memory input operand addressable and
5113         call prepare_gimple_addressable in that case.  Don't adjust
5114         input_location for diagnostics, use error_at instead.
5115
5116 2016-01-20  Peter Bergner  <bergner@vnet.ibm.com>
5117
5118         * config/rs6000/ppc-auxv.h: New file.
5119         * config/rs6000/rs6000-builtin.def (cpu_init): Add new builtin.
5120         (cpu_is): Likewise.
5121         (cpu_supports): Likewise.
5122         * config/rs6000/rs6000.c: include "ppc-auxv.h".
5123         (cpu_is_info): New variable.
5124         (cpu_supports_info): Likewise.
5125         (tcb_verification_symbol): Likewise.
5126         (cpu_builtin_p): Likewise.
5127         (cpu_expand_builtin): New function.
5128         (rs6000_expand_ternop_builtin): Add support for CPU builtin functions.
5129         (rs6000_init_builtins): Likewise.
5130         (rs6000_elf_file_end): Emit HWCAP in TCB verification symbol.
5131         * config/rs6000/rs6000.h (TLS_REGNUM): New define.
5132         * configure.ac (gcc_cv_libc_provides_hwcap_in_tcb): New test.
5133         * configure: Regenerate.
5134         * config.in: Likewise.
5135         * doc/extend.texi (PowerPC Built-in Functions): Document
5136         __builtin_cpu_init, __builtin_cpu_is and __builtin_cpu_supports.
5137
5138 2016-01-20  David Edelsohn  <dje.gcc@gmail.com>
5139
5140         PR target/68609
5141         * config/rs6000/rs6000.c (rs6000_emit_swsqrt): Add vector sqrt
5142         domain check.
5143         * config/rs6000/vector.md (sqrt<mode>2): Call rs6000_emit_swsqrt
5144         for V4SFmode.
5145
5146 2016-01-20  Richard Henderson  <rth@redhat.com>
5147
5148         PR bootstrap/69343
5149         PR bootstrap/69339
5150         PR tree-opt/68964
5151         Revert:
5152         * tree.c (tm_define_builtin): New.
5153         (find_tm_vector_type): New.
5154         (build_tm_vector_builtins): New.
5155         (build_common_builtin_nodes): Call it.
5156
5157 2016-01-20  Christophe Lyon  <christophe.lyon@linaro.org>
5158
5159         * doc/sourcebuild.texi (arm_crypto_pragma_ok): Document new entry.
5160         (arm_fp_ok): Likewise.
5161         (arm_fp): Likewise.
5162         (arm_crypto): Likewise.
5163
5164 2016-01-20  Ilya Enkovich  <enkovich.gnu@gmail.com>
5165             Richard Biener  <rguenther@suse.de>
5166
5167         PR tree-optimization/69328
5168         * tree-vect-stmts.c (vect_is_simple_cond): Check compared
5169         vectors have same number of elements.
5170         (vectorizable_condition): Fix masked version recognition.
5171
5172 2016-01-20  Richard Biener  <rguenther@suse.de>
5173
5174         PR tree-optimization/69345
5175         * tree-ssa-sccvn.h (VN_INFO_RANGE_INFO): New inline function.
5176         (VN_INFO_PTR_INFO): Likewise.
5177         * tree-ssa-sccvn.c (set_ssa_val_to): Avoid clearing points-to
5178         info when it is equal between non-dominating SSA names.
5179         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
5180         Make sure to look at original SSA infos.
5181
5182 2016-01-20  Jeff Law  <law@redhat.com>
5183
5184         PR target/25114
5185         * config/m68k/predicates.md (pow2_m1_operand): New predicate
5186         extracted from ...
5187         (reg_or_pow2_m1_operand): Call pow2_m1_operand.
5188         (pc_or_label_operand): New predicate.
5189         * config/m68k/m68k.md: Add new peephole2 patterns for GTU/LEU
5190         tests for small integers that are 2^n - 1.
5191
5192 2016-01-20  Jonathan Wakely  <jwakely@redhat.com>
5193
5194         * doc/invoke.texi (Options Summary): Add '.' after @xref.
5195
5196 2016-01-19  Jeff Law  <law@redhat.com>
5197
5198         PR middle-end/69347
5199         * tree-ssa-threadbackwards.c
5200         (fsm_find_control_statement_thread_paths): Do not try to lookup
5201         FSM paths for SSA_NAMEs appearing in abnormal PHIs.
5202
5203 2016-01-20  Kugan Vivekanandarajah  <kuganv@linaro.org>
5204
5205         * doc/lto.texi: Remove text that says only Gold has linker plugin
5206         support.
5207
5208 2016-01-19  Eric Botcazou  <ebotcazou@adacore.com>
5209
5210         * dwarf2out.c (need_endianity_attribute_p): New inline predicate.
5211         (base_type_die): Add REVERSE parameter and attach DW_AT_endianity to
5212         the DIE accordingly.
5213         (modified_type_die): Add REVERSE parameter and pass it recursively,
5214         as well as to base_type_die.  Adjust presence check accordingly.
5215         (base_type_for_mode): Adjust call to modified_type_die.
5216         (add_type_attribute): Add REVERSE parameter and pass it to
5217         modified_type_die.
5218         (generic_parameter_die): Adjust call to add_type_attribute.
5219         (add_scalar_info): Likewise.
5220         (add_subscript_info): Likewise.
5221         (gen_array_type_die): Likewise.
5222         (gen_descr_array_type_die): Likewise.
5223         (gen_entry_point_die): Likewise.
5224         (gen_enumeration_type_die): Likewise.
5225         (gen_formal_parameter_die): Likewise.
5226         (gen_subprogram_die): Likewise.
5227         (gen_variable_die ): Likewise.
5228         (gen_const_die): Likewise.
5229         (gen_field_die): Likewise.
5230         (gen_pointer_type_die): Likewise.
5231         (gen_reference_type_die): Likewise.
5232         (gen_ptr_to_mbr_type_die): Likewise.
5233         (gen_inheritance_die): Likewise.
5234         (gen_subroutine_type_die): Likewise.
5235         (gen_typedef_die): Likewise.
5236         (force_type_die): Adjust call to modified_type_die.
5237
5238 2016-01-19  Sandra Loosemore  <sandra@codesourcery.com>
5239
5240         * doc/standards.texi: Copy-editing for grammar, markup, and sentence
5241         flow throughout the file.  Fix broken link to Objective-C 2.0
5242         documentation.
5243         * doc/invoke.texi: More copy-editing; fix numerous typos and spelling
5244         errors.
5245
5246 2016-01-19  Wilco Dijkstra  <wdijkstr@arm.com>
5247
5248         * ccmp.c (expand_ccmp_expr_1): Avoid spurious unused warnings.
5249
5250 2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
5251
5252         PR ipa/66223
5253         * ipa-devirt.c (is_cxa_pure_virtual_p): New function.
5254         (maybe_record_node): Record cxa_pure_virtual as the only possible
5255         target if there are not ohter candidates.
5256         (possible_polymorphic_call_target_p): Accept cxa_pure_virtual.
5257
5258 2016-01-19  Richard Biener  <rguenther@suse.de>
5259
5260         * hsa-gen.c (get_memory_order_name): Use MEMMODEL_ constants.
5261         (get_memory_order): Likewise.
5262
5263 2016-01-19  Kirill Yukhin  <kirill.yukhin@intel.com>
5264
5265         * tree-vect-stmts.c (vectorizable_store): Check
5266         rhs vectype.
5267
5268 2016-01-19  David Malcolm  <dmalcolm@redhat.com>
5269
5270         PR jit/68446
5271         * gcc.c (driver::decode_argv): Add call to
5272         init_opts_obstack before init_options_struct.
5273         * opts.c (init_opts_obstack): Remove idempotency.
5274         (init_options_struct): Replace call to init_opts_obstack
5275         with a gcc_assert to verify that it has already been called.
5276         * toplev.c (toplev::main): Add call to init_opts_obstack before
5277         calls to init_options_struct.
5278         (toplev::finalize): Move cleanup of opts_obstack next to
5279         cleanup of save_decoded_options, clearing the latter, and
5280         save_decoded_options_count.
5281
5282 2016-01-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5283
5284         PR target/69135
5285         * config/arm/vfp.md (l<vrint_pattern><su_optab><mode>si2): Set "conds"
5286         attribute to unconditional.  Remove %? from output template.
5287
5288 2015-01-19  Wilco Dijkstra  <wdijkstr@arm.com>
5289             Jiong Wang  <jiong.wang@arm.com>
5290
5291         * ccmp.c (expand_ccmp_expr_1): Cost the instruction sequences
5292         generated from different expand order.
5293
5294 2015-01-19  Wilco Dijkstra  <wdijkstr@arm.com>
5295
5296         * /config/aarch64/aarch64.c (aarch64_if_then_else_costs):
5297         Add support for CCMP costing.
5298
5299 2015-01-19  Wilco Dijkstra  <wdijkstr@arm.com>
5300
5301         * ccmp.c (ccmp_candidate_p): Remove integer-only restriction.
5302         * config/aarch64/aarch64.md (fccmp<mode>): New pattern.
5303         (fccmpe<mode>): Likewise.
5304         (fcmp): Rename to fcmp and globalize pattern.
5305         (fcmpe): Likewise.
5306         * config/aarch64/aarch64.c (aarch64_gen_ccmp_first): Add FP support.
5307         (aarch64_gen_ccmp_next): Add FP support.
5308
5309 2015-01-19  Wilco Dijkstra  <wdijkstr@arm.com>
5310
5311         * target.def (gen_ccmp_first): Update documentation.
5312         (gen_ccmp_next): Likewise.
5313         * doc/tm.texi (gen_ccmp_first): Update documentation.
5314         (gen_ccmp_next): Likewise.
5315         * ccmp.c (expand_ccmp_expr): Extract cmp_code from return value of
5316         expand_ccmp_expr_1.  Improve comments.
5317         * config/aarch64/aarch64.md (ccmp_and): Use if_then_else for ccmp.
5318         (ccmp_ior<mode>): Remove pattern.
5319         (cmp<mode>): Remove expand.
5320         (cmp): Globalize pattern.
5321         (cstorecc4): Use cc_register.
5322         (mov<mode>cc): Remove ccmp_cc_register check.
5323         * config/aarch64/aarch64.c (aarch64_get_condition_code_1):
5324         Simplify after removal of CC_DNE/* modes.
5325         (aarch64_ccmp_mode_to_code): Remove.
5326         (aarch64_print_operand): Remove 'K' case.  Merge 'm' and 'M' cases.
5327         In 'k' case use integer as condition.
5328         (aarch64_nzcv_codes): Remove inverted cases.
5329         (aarch64_code_to_ccmode): Remove.
5330         (aarch64_gen_ccmp_first): Use cmp pattern directly.  Return the correct
5331         comparison with CC register to be used in folowing CCMP/branch/CSEL.
5332         (aarch64_gen_ccmp_next): Use previous comparison and mode in CCMP
5333         pattern.  Return the comparison with CC register.  Invert conditions
5334         when bitcode is OR.
5335         * config/aarch64/aarch64-modes.def: Remove CC_DNE/* modes.
5336         * config/aarch64/predicates.md (ccmp_cc_register): Remove.
5337
5338 2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
5339
5340         * cgraphunit.c (cgraph_node::reset): Clear thunk info and
5341         instrumented_version.
5342
5343 2016-01-19  Richard Biener  <rguenther@suse.de>
5344
5345         PR tree-optimization/69336
5346         * tree-ssa-scopedtables.c (avail_expr_hash): Handle all
5347         handled components with get_ref_base_and_extent.
5348         (equal_mem_array_ref_p): Adjust.
5349
5350 2016-01-19  Jakub Jelinek  <jakub@redhat.com>
5351
5352         PR debug/65779
5353         * shrink-wrap.c: Include valtrack.h.
5354         (move_insn_for_shrink_wrap): Add DEBUG argument.  If
5355         MAY_HAVE_DEBUG_INSNS, call dead_debug_add on DEBUG_INSNs
5356         in between insn and where it will be moved to.  Call
5357         dead_debug_insert_temp.
5358         (prepare_shrink_wrap): Adjust caller.  Call dead_debug_local_init
5359         first and dead_debug_local_finish at the end.
5360         For uses and defs bitmap, handle all regs in between REGNO and
5361         END_REGNO, not just the first one.
5362
5363 2016-01-19  Richard Biener  <rguenther@suse.de>
5364
5365         PR tree-optimization/69352
5366         * tree-ssa-scopedtables.c (avail_expr_hash): Check for size == -1.
5367         (equal_mem_array_ref_p): Constrain size and max size properly.
5368         Compare the reverse flag.
5369
5370 2016-01-19  Bernd Schmidt  <bschmidt@redhat.com>
5371
5372         * ira.c (ira): Update regstat data if we deleted insns.
5373
5374 2016-01-19  Jakub Jelinek  <jakub@redhat.com>
5375
5376         PR rtl-optimization/68955
5377         PR rtl-optimization/64557
5378         * dse.c (record_store, check_mem_read_rtx): Don't call get_addr
5379         here.  Fix up formatting.
5380         * alias.c (get_addr): Handle VALUE +/- CONST_SCALAR_INT_P.
5381
5382 2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
5383
5384         PR lto/69133
5385         * cgraphunit.c (cgraph_node::expand_thunk): When forcing gimple
5386         assume that the node has body.
5387         * cgraph.c (cgraph_node::get_untransformed_body): Use gimple_body_p
5388         check.
5389
5390 2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
5391
5392         * lto-streamer-out.c (lto_output): Do not stream instrumentation
5393         thunks.
5394
5395 2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
5396
5397         * symtab.c (symtab_node::asm_name): Do not call printable name directly.
5398         (symtab_node::name): Report name as unnamed if DECL_NAME is not set.
5399
5400 2016-01-19  Martin Jambor  <mjambor@suse.cz>
5401             Martin Liska  <mliska@suse.cz>
5402             Michael Matz  <matz@suse.de>
5403
5404         * Makefile.in (OBJS): Add new source files.
5405         (GTFILES): Add hsa.c.
5406         * common.opt (disable_hsa): New variable.
5407         (-Whsa): New warning.
5408         * config.in (ENABLE_HSA): New.
5409         * configure.ac: Treat hsa differently from other accelerators.
5410         (OFFLOAD_TARGETS): Define ENABLE_OFFLOADING according to
5411         $enable_offloading.
5412         (ENABLE_HSA): Define ENABLE_HSA according to $enable_hsa.
5413         * doc/install.texi (Configuration): Document --with-hsa-runtime,
5414         --with-hsa-runtime-include, --with-hsa-runtime-lib and
5415         --with-hsa-kmt-lib.
5416         * doc/invoke.texi (-Whsa): Document.
5417         (hsa-gen-debug-stores): Likewise.
5418         * lto-wrapper.c (compile_images_for_offload_targets): Do not attempt
5419         to invoke offload compiler for hsa acclerator.
5420         * opts.c (common_handle_option): Determine whether HSA offloading
5421         should be performed.
5422         * params.def (PARAM_HSA_GEN_DEBUG_STORES): New parameter.
5423         * builtin-types.def (BT_FN_VOID_UINT_PTR_INT_PTR): New.
5424         (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_INT_INT): Removed.
5425         (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_PTR): New.
5426         * gimple-low.c (lower_stmt): Also handle GIMPLE_OMP_GRID_BODY.
5427         * gimple-pretty-print.c (dump_gimple_omp_for): Also handle
5428         GF_OMP_FOR_KIND_GRID_LOOP.
5429         (dump_gimple_omp_block): Also handle GIMPLE_OMP_GRID_BODY.
5430         (pp_gimple_stmt_1): Likewise.
5431         * gimple-walk.c (walk_gimple_stmt): Likewise.
5432         * gimple.c (gimple_build_omp_grid_body): New function.
5433         (gimple_copy): Also handle GIMPLE_OMP_GRID_BODY.
5434         * gimple.def (GIMPLE_OMP_GRID_BODY): New.
5435         * gimple.h (enum gf_mask): Added GF_OMP_PARALLEL_GRID_PHONY,
5436         GF_OMP_FOR_KIND_GRID_LOOP, GF_OMP_FOR_GRID_PHONY and
5437         GF_OMP_TEAMS_GRID_PHONY.
5438         (gimple_statement_omp_single_layout): Updated comments.
5439         (gimple_build_omp_grid_body): New function.
5440         (gimple_has_substatements): Also handle GIMPLE_OMP_GRID_BODY.
5441         (gimple_omp_for_grid_phony): New function.
5442         (gimple_omp_for_set_grid_phony): Likewise.
5443         (gimple_omp_parallel_grid_phony): Likewise.
5444         (gimple_omp_parallel_set_grid_phony): Likewise.
5445         (gimple_omp_teams_grid_phony): Likewise.
5446         (gimple_omp_teams_set_grid_phony): Likewise.
5447         (gimple_return_set_retbnd): Also handle GIMPLE_OMP_GRID_BODY.
5448         * omp-builtins.def (BUILT_IN_GOMP_OFFLOAD_REGISTER): New.
5449         (BUILT_IN_GOMP_OFFLOAD_UNREGISTER): Likewise.
5450         (BUILT_IN_GOMP_TARGET): Updated type.
5451         * omp-low.c: Include symbol-summary.h, hsa.h and params.h.
5452         (adjust_for_condition): New function.
5453         (get_omp_for_step_from_incr): Likewise.
5454         (extract_omp_for_data): Moved parts to adjust_for_condition and
5455         get_omp_for_step_from_incr.
5456         (build_outer_var_ref): Handle GIMPLE_OMP_GRID_BODY.
5457         (fixup_child_record_type): Bail out if receiver_decl is NULL.
5458         (scan_sharing_clauses): Handle OMP_CLAUSE__GRIDDIM_.
5459         (scan_omp_parallel): Do not create child functions for phony
5460         constructs.
5461         (check_omp_nesting_restrictions): Handle GIMPLE_OMP_GRID_BODY.
5462         (scan_omp_1_op): Checking assert we are not remapping to
5463         ERROR_MARK.  Also also handle GIMPLE_OMP_GRID_BODY.
5464         (parallel_needs_hsa_kernel_p): New function.
5465         (expand_parallel_call): Register apprpriate parallel child
5466         functions as HSA kernels.
5467         (grid_launch_attributes_trees): New type.
5468         (grid_attr_trees): New variable.
5469         (grid_create_kernel_launch_attr_types): New function.
5470         (grid_insert_store_range_dim): Likewise.
5471         (grid_get_kernel_launch_attributes): Likewise.
5472         (get_target_argument_identifier_1): Likewise.
5473         (get_target_argument_identifier): Likewise.
5474         (get_target_argument_value): Likewise.
5475         (push_target_argument_according_to_value): Likewise.
5476         (get_target_arguments): Likewise.
5477         (expand_omp_target): Call get_target_arguments instead of looking
5478         up for teams and thread limit.
5479         (grid_expand_omp_for_loop): New function.
5480         (grid_arg_decl_map): New type.
5481         (grid_remap_kernel_arg_accesses): New function.
5482         (grid_expand_target_kernel_body): New function.
5483         (expand_omp): Call it.
5484         (lower_omp_for): Do not emit phony constructs.
5485         (lower_omp_taskreg): Do not emit phony constructs but create for them
5486         a temporary variable receiver_decl.
5487         (lower_omp_taskreg): Do not emit phony constructs.
5488         (lower_omp_teams): Likewise.
5489         (lower_omp_grid_body): New function.
5490         (lower_omp_1): Call it.
5491         (grid_reg_assignment_to_local_var_p): New function.
5492         (grid_seq_only_contains_local_assignments): Likewise.
5493         (grid_find_single_omp_among_assignments_1): Likewise.
5494         (grid_find_single_omp_among_assignments): Likewise.
5495         (grid_find_ungridifiable_statement): Likewise.
5496         (grid_target_follows_gridifiable_pattern): Likewise.
5497         (grid_remap_prebody_decls): Likewise.
5498         (grid_copy_leading_local_assignments): Likewise.
5499         (grid_process_kernel_body_copy): Likewise.
5500         (grid_attempt_target_gridification): Likewise.
5501         (grid_gridify_all_targets_stmt): Likewise.
5502         (grid_gridify_all_targets): Likewise.
5503         (execute_lower_omp): Call grid_gridify_all_targets.
5504         (make_gimple_omp_edges): Handle GIMPLE_OMP_GRID_BODY.
5505         * tree-core.h (omp_clause_code): Added OMP_CLAUSE__GRIDDIM_.
5506         (tree_omp_clause): Added union field dimension.
5507         * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE__GRIDDIM_.
5508         * tree.c (omp_clause_num_ops): Added number of arguments of
5509         OMP_CLAUSE__GRIDDIM_.
5510         (omp_clause_code_name): Added name of OMP_CLAUSE__GRIDDIM_.
5511         (walk_tree_1): Handle OMP_CLAUSE__GRIDDIM_.
5512         * tree.h (OMP_CLAUSE_GRIDDIM_DIMENSION): New.
5513         (OMP_CLAUSE_SET_GRIDDIM_DIMENSION): Likewise.
5514         (OMP_CLAUSE_GRIDDIM_SIZE): Likewise.
5515         (OMP_CLAUSE_GRIDDIM_GROUP): Likewise.
5516         * passes.def: Schedule pass_ipa_hsa and pass_gen_hsail.
5517         * tree-pass.h (make_pass_gen_hsail): Declare.
5518         (make_pass_ipa_hsa): Likewise.
5519         * ipa-hsa.c: New file.
5520         * lto-section-in.c (lto_section_name): Add hsa section name.
5521         * lto-streamer.h (lto_section_type): Add hsa section.
5522         * timevar.def (TV_IPA_HSA): New.
5523         * hsa-brig-format.h: New file.
5524         * hsa-brig.c: New file.
5525         * hsa-dump.c: Likewise.
5526         * hsa-gen.c: Likewise.
5527         * hsa.c: Likewise.
5528         * hsa.h: Likewise.
5529         * toplev.c (compile_file): Call hsa_output_brig.
5530         * hsa-regalloc.c: New file.
5531
5532 2016-01-18  Jeff Law  <law@redhat.com>
5533
5534         PR tree-optimization/69320
5535         * tree-ssa-dom.c (record_edge_info): For comparisons against a boolean
5536         ranged object, do nothing if the RHS constant is not [0..1].
5537         (optimize_stmt): Comparing a boolean ranged object against a
5538         constant outside [0..1] results in a compile-time constant.
5539
5540         * tree-ssanames.c (ssa_name_has_boolean_range): Remove unnecessary
5541         test.
5542
5543 2016-01-18  Sandra Loosemore  <sandra@codesourcery.com>
5544
5545         * doc/invoke.texi (Invoking GCC): Add new section to menu.
5546         (Option Summary): Update to reflect new section and moved options.
5547         (C++ Dialect Options): Move -fstats to new section.
5548         (Debugging Options): Move all dump, statistics, and other GCC
5549         developer options to new section.  Rewrite section introduction
5550         and re-order remaining options to put the more basic ones first.
5551         (Optimization Options): Move -fira-verbose and -flto-report* to
5552         new section.
5553         (Developer Options): New section incorporating moved options.
5554         * doc/cppopts.texi (-dM): Update cross-reference.
5555
5556 2016-01-18  Richard Henderson  <rth@redhat.com>
5557
5558         PR target/69176
5559         * config/aarch64/aarch64.md (add<GPI>3): Move long immediate
5560         operands to pseudo only if CSE is expected.  Split long immediate
5561         operands only after reload, and for the stack pointer.
5562         (*add<GPI>3_pluslong): Remove.
5563         (*addsi3_aarch64, *adddi3_aarch64): Merge into...
5564         (*add<GPI>3_aarch64): ... here.  Add r/rk/Upl alternative.
5565         (*addsi3_aarch64_uxtw): Add r/rk/Upl alternative.
5566         (*add<GPI>3 peepholes): New.
5567         (*add<GPI>3 splitters): New.
5568         * config/aarch64/constraints.md (Upl): New.
5569         * config/aarch64/predicates.md (aarch64_pluslong_strict_immedate): New.
5570
5571 2016-01-18  Richard Biener  <rguenther@suse.de>
5572
5573         PR tree-optimization/69297
5574         * tree-vect-slp.c (vect_bb_slp_scalar_cost): Count each scalar
5575         stmt at most once.
5576         (vect_bb_vectorization_profitable_p): Clear visited flag again.
5577
5578 2016-01-18  Yuri Rumyantsev  <ysrumyan@gmail.com>
5579
5580         PR middle-end/68542
5581         * fold-const.c (fold_binary_op_with_conditional_arg): Bail out for case
5582         of mixind vector and scalar types.
5583         (fold_relational_const): Add handling of vector
5584         comparison with boolean result.
5585         * tree-cfg.c (verify_gimple_comparison): Add argument CODE, allow
5586         comparison of vector operands with boolean result for EQ/NE only.
5587         (verify_gimple_assign_binary): Adjust call for verify_gimple_comparison.
5588         (verify_gimple_cond): Likewise.
5589         * tree-vrp.c (extract_code_and_val_from_cond_with_ops): Modify check on
5590         valid type of VAL.
5591
5592 2016-01-18  Joseph Myers  <joseph@codesourcery.com>
5593
5594         * config/mips/mips.h (ISA_HAS_PAIRED_SINGLE): Require
5595         !TARGET_OCTEON.
5596
5597 2016-01-18  Richard Biener  <rguenther@suse.de>
5598
5599         PR middle-end/69308
5600         * gimple.c (gimple_could_trap_p_1): Handle GIMPLE_COND.
5601
5602 2016-01-18  Tom de Vries  <tom@codesourcery.com>
5603
5604         * passes.def: Add pass_parallelize_loops to pass_oacc_kernels.
5605
5606 2016-01-18  Tom de Vries  <tom@codesourcery.com>
5607
5608         * omp-low.c (set_oacc_fn_attrib): Make extern.
5609         * omp-low.h (set_oacc_fn_attrib): Declare.
5610         * tree-parloops.c (struct reduction_info): Add reduc_addr field.
5611         (create_call_for_reduction_1): Handle case that reduc_addr is non-NULL.
5612         (create_parallel_loop, gen_parallel_loop, try_create_reduction_list):
5613         Add and handle function parameter oacc_kernels_p.
5614         (find_reduc_addr, get_omp_data_i_param): New function.
5615         (ref_conflicts_with_region, oacc_entry_exit_ok_1)
5616         (oacc_entry_exit_single_gang, oacc_entry_exit_ok): New function.
5617         (parallelize_loops): Add and handle function parameter oacc_kernels_p.
5618         Calculate dominance info.  Skip loops that are not in a kernels region
5619         in oacc_kernels_p mode.  Skip inner loops of parallelized loops.
5620         (pass_parallelize_loops::execute): Call parallelize_loops with
5621         oacc_kernels_p argument.
5622         (pass_parallelize_loops::clone, pass_parallelize_loops::set_pass_param):
5623         New member function.
5624         (pass_parallelize_loops::bool oacc_kernels_p): New member var.
5625         * passes.def: Add argument to pass_parallelize_loops instantation.
5626
5627 2016-01-18  Tom de Vries  <tom@codesourcery.com>
5628
5629         * tree-parloops.c (pass_parallelize_loops::execute): Allow
5630         pass_parallelize_loops to be run outside the loop pipeline.
5631
5632 2016-01-18  Alan Lawrence  <alan.lawrence@arm.com>
5633
5634         * tree-scalar-evolution.c (follow_copies_to_constant): New.
5635         (analyze_initial_condition, analyze_scalar_evolution_1): Call previous.
5636
5637 2016-01-18  Alan Lawrence  <alan.lawrence@arm.com>
5638
5639         PR target/63679
5640         * tree-ssa-scopedtables.c (avail_expr_hash): Hash MEM_REF and ARRAY_REF
5641         using get_ref_base_and_extent.
5642         (equal_mem_array_ref_p): New.
5643         (hashable_expr_equal_p): Add call to previous.
5644
5645 2016-01-18  Alan Lawrence  <alan.lawrence@arm.com>
5646
5647         PR target/63679
5648         * tree-sra.c (disqualified_constants, constant_decl_p): New.
5649         (sra_initialize): Allocate disqualified_constants.
5650         (sra_deinitialize): Free disqualified_constants.
5651         (disqualify_candidate): Update disqualified_constants when appropriate.
5652         (create_access): Scan for constant-pool entries as we go along.
5653         (scalarizable_type_p): Add check against type_contains_placeholder_p.
5654         (maybe_add_sra_candidate): Allow constant-pool entries.
5655         (load_assign_lhs_subreplacements): Bind debug for constant pool vars.
5656         (initialize_constant_pool_replacements): New.
5657         (sra_modify_assign): Avoid mangling assignments created by previous,
5658         and don't generate writes into constant pool.
5659         (sra_modify_function_body): Call initialize_constant_pool_replacements.
5660
5661 2016-01-18  Ilya Enkovich  <enkovich.gnu@gmail.com>
5662
5663         * config/i386/i386.c (scalar_to_vector_candidate_p): Support
5664         andnot instruction.
5665         (scalar_chain::convert_op): Likewise.
5666         * config/i386/i386.md (*andndi3_doubleword): New.
5667
5668 2016-01-18  Richard Biener  <rguenther@suse.de>
5669
5670         PR tree-optimization/69170
5671         * tree-vect-slp.c (vect_build_slp_tree): Verify we are not
5672         building a vector from scalar results of a pattern stmt.
5673
5674 2016-01-18  Jakub Jelinek  <jakub@redhat.com>
5675
5676         * haifa-sched.c (autopref_multipass_init): Work around
5677         -Wmaybe-uninitialized warning.
5678
5679 2016-01-18  Thomas Preud'homme  <thomas.preudhomme@arm.com>
5680
5681         * config/arm/arm.c (thumb1_reorg): Check that the comparison is
5682         against the constant 0.
5683
5684 2016-01-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
5685
5686         PR tree-optimization/68799
5687         * gimple-ssa-strength-reduction.c (create_phi_basis): Directly
5688         look up phi candidates in the statement-candidate map.
5689         (phi_add_costs): Likewise.
5690         (record_phi_increments): Likewise.
5691         (phi_incr_cost): Likewise.
5692         (ncd_with_phi): Likewise.
5693         (all_phi_incrs_profitable): Likewise.
5694
5695 2016-01-17  Jakub Jelinek  <jakub@redhat.com>
5696
5697         * omp-low.c (mark_loops_in_oacc_kernels_region): Work around
5698         -Wmaybe-uninitialized warning.
5699
5700 2016-01-16  Sandra Loosemore  <sandra@codesourcery.com>
5701
5702         * doc/invoke.texi (Invoking GCC): Add new section to menu.
5703         (Option Summary): Update to reflect new section and moved options.
5704         (C++ Dialect Options): Move -fvtable-verify and related options.
5705         (Debugging Options): Move Sanitizer, Pointer Bounds Checker,
5706         and profiling-related options.
5707         (Optimization Options): Move profile generation options and
5708         -fstack-protector and related options.
5709         (Instrumentation Options): New section incorporating moved options.
5710         (Code Generation Options): Move -finstrument-functions and
5711         related options, -fstack-check, -fstack-limit*, and -fbounds-check.
5712
5713 2016-01-16  Tom de Vries  <tom@codesourcery.com>
5714
5715         * passes.def: Move pass_expand_omp_ssa out of pass_parallelize_loops.
5716
5717 2016-01-16  Tom de Vries  <tom@codesourcery.com>
5718
5719         * omp-low.c (expand_omp_atomic_fetch_op):  Release defs of update stmt.
5720
5721 2016-01-16  Richard Sandiford  <richard.sandiford@arm.com>
5722
5723         * hash-table.h (hash_table::empty): Turn into an inline wrapper
5724         that checks whether the table is already empty.  Rename the
5725         original implementation to...
5726         (hash_table::empty_slot): ...this new private function.
5727
5728 2016-01-15  David Malcolm  <dmalcolm@redhat.com>
5729
5730         PR diagnostic/68899
5731         * diagnostic-show-locus.c (layout::print_source_line): Move x
5732         offset of line until after call to
5733         get_line_width_without_trailing_whitespace.
5734
5735 2016-01-15  Jeff Law  <law@redhat.com>
5736
5737         PR tree-optimization/69270
5738         * tree-ssanames.c (ssa_name_has_boolean_range): Moved here from
5739         tree-ssa-dom.c.  Improve test for [0..1] ranve from VRP.
5740         * tree-ssa-dom.c (ssa_name_has_boolean_range): Remove.
5741         * tree-ssanames.h (ssa_name_has_boolean_range): Prototype.
5742         * tree-ssa-uncprop.c (associate_equivalences_with_edges): Use
5743         ssa_name_has_boolean_range and constant_boolean_node.
5744
5745 2016-01-15  Vladimir Makarov  <vmakarov@redhat.com>
5746
5747         PR rtl-optimization/69030
5748         * lra-spills.c (remove_pseudos): Check nrefs and make the function
5749         returning bool.
5750         (spill_pseudos): Delete debug insn for dead pseudo.
5751         (lra_spill): Initiate spill_hard_reg and slots memory separately.
5752
5753 2016-01-15  Jiong Wang  <jiong.wang@arm.com>
5754
5755         * config/aarch64/aarch64-builtins.c (aarch64_types_unopus_qualifiers):
5756         New.
5757         (TYPES_UNOPUS): Likewise.
5758         * config/aarch64/aarch64-simd-builtins.def (lbtruncuv2sf): Correct
5759         builtin type, from UNOP to UNOPUS.
5760         (lbtruncuv4sf): Likewise.
5761         (lbtruncuv2df): Likewise.
5762         (lrounduv2sf): Likewise.
5763         (lrounduv4sf): Likewise.
5764         (lrounduv2df): Likewise.
5765         (lroundusf): Likewise.
5766         (lroundusf): Likewise.
5767         (lceiluv2sf): Likewise.
5768         (lceiluv4sf): Likewise.
5769         (lceiluv2df): Likewise.
5770         (lceilusf): Likewise.
5771         (lceiludf): Likewise.
5772         (lflooruv2sf): Likewise.
5773         (lflooruv4sf): Likewise.
5774         (lflooruv2df): Likewise.
5775         (lfloorusf): Likewise.
5776         (lfloorudf): Likewise.
5777         (lfrintnuv2sf): Likewise.
5778         (lfrintnuv4sf): Likewise.
5779         (lfrintnuv2df): Likewise.
5780         (lfrintnusf): Likewise.
5781         (lfrintnudf): Likewise.
5782         * config/aarch64/arm_neon.h (vcvt_u32_f32): Remove unncessary type
5783         conversion.
5784         (vcvtq_u32_f32): Likewise.
5785         (vcvtq_u64_f64): Likewise.
5786         (vcvta_u32_f32): Likewise.
5787         (vcvtaq_u32_f32): Likewise.
5788         (vcvtaq_u64_f64): Likewise.
5789         (vcvtm_u32_f32): Likewise.
5790         (vcvtmq_u32_f32): Likewise.
5791         (vcvtmq_u64_f64): Likewise.
5792         (vcvtn_u32_f32): Likwise.
5793         (vcvtnq_u32_f32): Likewise.
5794         (vcvtnq_u64_f64): Likewise.
5795         (vcvtp_u32_f32): Likewise.
5796         (vcvtpq_u32_f32): Likewise.
5797         (vcvtpq_u64_f64): Likewise.
5798         (vcvtmd_u64_f64): Likewise.
5799         (vcvtms_u32_f32): Likewise.
5800         (vcvtad_u64_f64): Likewise.
5801         (vcvtas_u32_f32): Likewise.
5802         (vcvtnd_u64_f64): Likewise.
5803         (vcvtns_u32_f32): Likewise.
5804         (vcvtpd_u64_f64): Likewise.
5805         (vcvtps_u32_f32): Likewise.
5806
5807 2016-01-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5808
5809         * config/aarch64/aarch64.c (aarch64_if_then_else_costs): Handle
5810         CSEL of zero_extended registers.
5811
5812 2016-01-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5813
5814         * config/aarch64/aarch64.c (aarch64_rtx_costs, COMPARE case):
5815         Handle COMPARE of ZERO_EXTRACT against zero form of TST-immediate.
5816
5817 2016-01-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5818
5819         * config/aarch64/aarch64.c (aarch64_process_one_target_attr): Return
5820         false when argument string is not found in the attributes table
5821         at all.
5822
5823 2016-01-15  David Edelsohn  <dje.gcc@gmail.com>
5824
5825         PR target/68609
5826         * config/rs6000/rs6000.c (rs6000_emit_msub): Delete.
5827         (rs6000_emit_swsqrt): Convert to Goldschmidt's Algorithm
5828         * config/rs6000/rs6000.md (sqrt<mode>2): Limit swsqrt to high
5829         precision estimate.
5830
5831 2016-01-15  Richard Biener  <rguenther@suse.de>
5832
5833         PR tree-optimization/66856
5834         * tree-vect-loop.c (vect_transform_loop): Free SLP instances here.
5835         * tree-vect-slp.c (vect_free_slp_tree): Decrement stmt reference count.
5836         (vect_create_new_slp_node): Increment stmt reference count.
5837         (vect_get_and_check_slp_defs): Make sure stmts are nor already in
5838         an SLP tree before swapping operands.
5839         (vect_build_slp_tree): Likewise.
5840         (destroy_bb_vec_info): Free stmt info after SLP instances.
5841         * tree-vect-stmts.c (new_stmt_vec_info): Initialize reference count.
5842         * tree-vectorizer.h (struct _stmt_vec_info): Add num_slp_uses field.
5843         (STMT_VINFO_NUM_SLP_USES): New macro.
5844
5845 2016-01-15  Richard Biener  <rguenther@suse.de>
5846
5847         PR debug/69137
5848         * dwarf2out.c (add_linkage_name_raw): New function split out from ...
5849         (add_linkage_name): ... here.
5850         (gen_typedef_die): Use add_linkage_name_raw instead of
5851         add_linkage_attr to delay DECL_ASSEMBLER_NAME computation
5852         if necessary.
5853
5854 2016-01-15  Cesar Philippidis  <cesar@codesourcery.com>
5855
5856         * gimplify.c (oacc_default_clause): Decode reference and pointer
5857         types for both kernels and parallel regions.
5858
5859 2016-01-15  Richard Sandiford  <richard.sandiford@arm.com>
5860
5861         PR middle-end/69246
5862         * calls.c (emit_call_1): Force n_popped to zero for sibcalls.
5863
5864 2016-01-15  Ilya Enkovich  <enkovich.gnu@gmail.com>
5865
5866         * config/i386/i386.c (scalar_chain::compute_convert_gain): Fix typo.
5867         (convert_scalars_to_vector): Likewise.
5868
5869 2016-01-15  Jonathan Wakely  <jwakely@redhat.com>
5870
5871         * doc/extend.texi (Type Traits): Fix grammar.
5872
5873 2016-01-15  Martin Jambor  <mjambor@suse.cz>
5874
5875         * tree-inline.c (remap_decl): Use existing dclarations if
5876         remapping a type and prevent_decl_creation_for_types.
5877         (replace_locals_stmt): Do an initial remapping of non-VLA typed
5878         decls first.  Do real remapping with
5879         prevent_decl_creation_for_types set.
5880         * tree-inline.h (copy_body_data): New field
5881         prevent_decl_creation_for_types, moved remap_var_for_cilk to avoid
5882         padding.
5883
5884 2016-01-15  Dominik Vogt  <vogt@linux.vnet.ibm.com>
5885
5886         * config/s390/s390.opt (mmvcle): More verbose help text.
5887
5888 2016-01-15  Dominik Vogt  <vogt@linux.vnet.ibm.com>
5889
5890         * config/s390/s390.opt: Add period to -mzvector option text.
5891
5892 2016-01-15  Richard Biener  <rguenther@suse.de>
5893
5894         PR tree-optimization/68961
5895         * tree-vect-slp.c (vect_analyze_slp_cost_1): Consider cost
5896         of invariants in stores again.
5897
5898 2016-01-15  Sebastian Huber  <sebastian.huber@embedded-brains.de>
5899
5900         * config/arm/t-rtems: Add cortex-m7/fpv5-d16 multilib.
5901
5902 2016-01-15  Ilya Enkovich  <enkovich.gnu@gmail.com>
5903
5904         * config/i386/i386.c (ix86_expand_branch): Don't split
5905         DI mode xor instruction to SI mode.
5906
5907 2016-01-15  Jan Hubicka  <hubicka@ucw.cz>
5908
5909         PR ipa/68148
5910         * ipa-icf.c (sem_function::merge): Virtual functions may become
5911         reachable even if they address is not taken and there are no
5912         idrect calls.
5913
5914 2016-01-15  Jan Hubicka  <hubicka@ucw.cz>
5915
5916         * lto-streamer-out.c (subtract_estimated_size): New function.
5917         (get_symbol_initial_value): Use it.
5918
5919 2016-01-15  Christian Bruel  <christian.bruel@st.com>
5920
5921         PR target/65837
5922         * config/arm/arm-builtins.c (ARM_BUILTIN_CRYPTO_BASE): New enum tag.
5923         (arm_init_neon_builtins_internal): Rename arm_init_neon_builtins,
5924         (arm_init_crypto_builtins_internal): Rename arm_init_crypto_builtins.
5925         use add_builtin_function_ext_scope instead of add_builtin_function.
5926         (neon_set_p, neon_crypto_set_p): Remove.
5927         (arm_init_builtins): Always call arm_init_neon_builtins and
5928         arm_init_crypto_builtins.
5929         (arm_expand_builtin): Check that builtins are allowed for the arch.
5930         * config/arm/arm-protos.h (arm_init_neon_builtins): Remove prototype.
5931         * config/arm/arm.c (arm_valid_target_attribute_tree): Remove
5932         arm_init_neon_builtins call.
5933
5934 2016-01-15  Richard Biener  <rguenther@suse.de>
5935
5936         PR tree-optimization/69117
5937         * tree-ssa-sccvn.h (struct vn_ssa_aux): Add info member.
5938         * tree-ssa-sccvn.c (set_ssa_val_to): Save and adjust SSA name info
5939         of the leader conservatively.
5940         (free_scc_vn): Restore original SSA name infos.
5941
5942 2016-01-14  Jeff Law  <law@redhat.com>
5943
5944         PR tree-optimization/69270
5945         * tree-ssa-dom.c (ssa_name_has_boolean_range): If the type has a
5946         single bit of precision, verify it's also unsigned.
5947         (record_edge_info): Use constant_boolean_node rather than fold_convert
5948         to convert boolean_true/boolean_false to the right type.
5949
5950 2016-01-14  Richard Henderson  <rth@redhat.com>
5951
5952         PR rtl-opt/69014
5953         * loop-doloop.c (record_reg_sets): New.
5954         (doloop_optimize): Reject the transform if the sequence
5955         clobbers registers live at the end of the loop block.
5956         (doloop_optimize_loops): Enable df_live if needed.
5957
5958 2016-01-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
5959
5960         * config/rs6000/rs6000-builtin.def: Revert 2016-01-13 change.
5961         * gcc/config/rs6000/rs6000.c: Likewise.
5962         * gcc/config/rs6000/rs6000.h: Likewise.
5963         * gcc/config/rs6000/rs6000.md: Likewise.
5964         * gcc/doc/extend.texi: Likewsie.
5965
5966 2016-01-14  Jeff Law  <law@redhat.com>
5967
5968         * tree-ssa-dom.c (ssa_name_has_boolean_range): Fix comment
5969         typo.
5970
5971 2016-01-14  Richard Henderson  <rth@redhat.com>
5972
5973         PR c/69272
5974         PR tree-opt/68964
5975         * trans-mem.c (tm_log_emit_stmt): Fix unit size to bit size.
5976         * tree.c (build_tm_vector_builtins): Use builtin_decl_explicit_p
5977         instead of builtin_decl_declared_p to test for declaration.
5978
5979 2016-01-14  Nicklas Bo Jensen  <nbjensen@gmail.com>
5980
5981         * doc/loop.texi (Loop Analysis and Representation): Document
5982         loop_depth function.
5983
5984 2016-01-14  Tom de Vries  <tom@codesourcery.com>
5985
5986         PR tree-optimization/68773
5987         * omp-low.c (expand_omp_target): Don't set force_output.
5988         * varpool.c (varpool_node::get_create): Same.
5989         * lto-cgraph.c (input_offload_tables): Mark entries in offload_vars and
5990         offload_funcs with force_output.
5991
5992 2016-01-14  Jakub Jelinek  <jakub@redhat.com>
5993
5994         PR debug/69244
5995         * lra-eliminations.c (move_plus_up): Don't change anything if either
5996         the outer or inner subreg mode is not MODE_INT.
5997         * dwarf2out.c (mem_loc_descriptor): For SUBREG, if outer mode is
5998         integral <= DWARF2_ADDR_SIZE, convert to untyped afterwards.
5999
6000 2016-01-14  Alan Lawrence  <alan.lawrence@arm.com>
6001
6002         * doc/md.texi (reduc_smin_@var{m}, reduc_smax_@var{m},
6003         reduc_umin_@var{m}, reduc_umax_@var{m}, reduc_splus_@var{m},
6004         reduc_uplus_@var{m}): Remove.
6005         * expr.c (expand_expr_real_2): Remove expansion path for
6006         reduc_[us](min|max|plus) optabs.
6007         * optabs-tree.c (scalar_reduc_to_vector): Remove.
6008         * optabs-tree.h (scalar_reduc_to_vector): Remove.
6009         * optabs.def (reduc_smax_optab, reduc_smin_optab, reduc_splus_optab,
6010         reduc_umax_optab, reduc_umin_optab, reduc_uplus_optab): Remove.
6011         * tree-vect-loop.c (vectorizable_reduction): Remove test for
6012         reduc_[us](min|max|plus) optabs.
6013
6014 2016-01-14  Alan Lawrence  <alan.lawrence@arm.com>
6015
6016         * config/mips/mips-ps-3d.md (reduc_splus_v2sf): Remove.
6017         (reduc_plus_scal_v2sf): New.
6018         (reduc_smax_v2sf): Rename to...
6019         (reduc_smax_scal_v2sf): ...here, make result SFmode, add vec_extract.
6020         (reduc_smin_v2sf): Rename to...
6021         (reduc_smin_scal_v2sf): ...here, make result SFmode, add vec_extract.
6022
6023 2016-01-14  Jan Hubicka  <hubicka@ucw.cz>
6024
6025         * alias.c (compare_base_symbol_refs): New function.
6026         (rtx_equal_for_memref_p, base_alias_check, memrefs_conflict_p): Use
6027         it.
6028
6029 2016-01-14  Jakub Jelinek  <jakub@redhat.com>
6030
6031         PR middle-end/68146
6032         PR tree-optimization/69155
6033         * tree-complex.c: Include cfganal.h.
6034         (phis_to_revisit): New variable.
6035         (extract_component): Add phiarg_p argument.  Assert that returned
6036         SSA_NAME has non-NULL SSA_NAME_DEF_STMT unless phiarg_p is true.
6037         (update_phi_components): Partly rewrite to use loop over real/imag
6038         components instead of code duplication.  If extract_component returns
6039         SSA_NAME with NULL SSA_NAME_DEF_STMT, store SSA_NAME_VAR or
6040         create_tmp_reg into the PHI node instead, and mention the phi triplet
6041         in phis_to_revisit.
6042         (tree_lower_complex): Walk bbs in rpo order.  Adjust phis recorded
6043         in phis_to_revisit at the end.
6044
6045 2016-01-14  Richard Biener  <rguenther@suse.de>
6046
6047         PR tree-optimization/68060
6048         * tree-vect-loop.c (vect_is_simple_reduction): Check the
6049         outer loop reduction is only used in the inner loop before
6050         detecting a double reduction.
6051
6052 2016-01-14  Jakub Jelinek  <jakub@redhat.com>
6053
6054         PR target/68269
6055         * combine.c (expand_field_assignment): Punt if compute_mode is
6056         unsupported scalar mode.
6057
6058 2016-01-14  Richard Biener  <rguenther@suse.de>
6059
6060         PR tree-optimization/66856
6061         * tree-vect-slp.c (vect_build_slp_tree): Refactor to build
6062         SLP node only if it built successfully.
6063         (vect_analyze_slp_instance): Adjust.
6064
6065 2016-01-14  Jeff Law  <law@redhat.com>
6066
6067         PR tree-optimization/69270
6068         * tree-ssa-dom.c (ssa_name_has_boolean_range): New function.
6069         (record_edge_info): Use it.  Convert boolean_{true,false}_node
6070         to the type of op0.
6071
6072 2016-01-13  Jan Hubicka  <hubicka@ucw.cz>
6073
6074         PR ipa/66487
6075         * ipa-polymorphic-call.c (inlined_polymorphic_ctor_dtor_block_p):
6076         use block_ultimate_origin
6077         (noncall-stmt_may_be_vtbl_ptr_store): Likewise.
6078
6079 2016-01-13  Sandra Loosemore  <sandra@codesourcery.com>
6080
6081         * doc/invoke.texi (Submodel Options): Rename section to
6082         "Machine-Dependent Options" to better reflect its content.
6083         Rewrite introductory text to remove archaic CPU names.
6084         Update references.
6085
6086 2016-01-13  Sandra Loosemore  <sandra@codesourcery.com>
6087
6088         * doc/invoke.texi (Code Gen Options): Move section up in file,
6089         before target-specific options.  Update menu and option summary
6090         to reflect the new section ordering.
6091
6092 2016-01-13  Jonathan Wakely  <jwakely@redhat.com>
6093
6094         * doc/invoke.texi (C Dialect Options): Adjust -std default for C++.
6095         (C++ Dialect Options): Add cross-reference to -std option.
6096         * doc/standards.texi (C++ Language): Document C++14 support.
6097
6098 2016-01-13  Michael Meissner  <meissner@linux.vnet.ibm.com>
6099
6100         * config/rs6000/rs6000-builtin.def (BU_FLOAT128_2): Add support
6101         for pack/unpack functions for __ibm128.
6102         (PACK_IF): Likewise.
6103         (UNPACK_IF): Likewise.
6104
6105         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
6106         support for __ibm128 pack/unpack functions.
6107         (rs6000_invalid_builtin): Likewise.
6108         (rs6000_init_builtins): Likewise.
6109         (rs6000_opt_masks): Likewise.
6110
6111         * config/rs6000/rs6000.h (MASK_FLOAT128): Add short name.
6112         (RS6000_BTM_FLOAT128): Add support for __ibm128 pack/unpack
6113         functions
6114         (RS6000_BTM_COMMON): Likewise.
6115
6116         * config/rs6000/rs6000.md (f128_vsx): New mode attribute.
6117         (unpack<mode>): Use FMOVE128_FPR iterator instead of FMOVE128, to
6118         disallow __builtin_{pack,unpack}_longdouble if long double is IEEE
6119         128-bit floating point.  Add support for the double values to be
6120         in Altivec registers for TF/IF packing and unpacking, but restrict
6121         TD packing sub-fields to be FPR registers.  Don't allow overlapped
6122         register support for packing.  Allow pack inputs to be memory
6123         locations.  Don't build generator functions for unpack<mode>_dm
6124         and unpack<mode>_nodm.
6125         (unpack<mode>_dm): Likewise.
6126         (unpack<mode>_nodm): Likewise.
6127         (pack<mode>): Likewise.
6128
6129         * config/rs6000/rs6000-builtin.def (__builtin_pack_ibm128): Add
6130         built-in functions to pack/unpack explicit __ibm128 values.
6131         (__builtin_unpack_ibm128): Likewise.
6132
6133         * doc/extend.texi (PowerPC Built-in Functions): Document
6134         __builtin_pack_ibm128 and __builtin_unpack_ibm128.
6135
6136 2016-01-13  Bernd Schmidt  <bschmidt@redhat.com>
6137
6138         PR c/66208
6139         * c-common.c (check_function_nonnull): Remove unnecessary declaration.
6140         Add new arg loc and pass it down as context.
6141         (check_nonnull_arg): Don't mark ctx arg as unused. Use it as a pointer
6142         to the location to use for the warning.
6143         (check_function_arguments): New arg loc.  All callers changed.  Pass
6144         it to check_function_nonnull.
6145         * c-common.h (check_function_arguments): Adjust declaration.
6146
6147 2016-01-13  Jakub Jelinek  <jakub@redhat.com>
6148
6149         PR tree-optimization/69156
6150         * gimple.c (validate_type): Removed.
6151         (gimple_builtin_call_types_compatible_p): Use
6152         useless_type_conversion_p instead of validate_type.
6153         * value-prof.c (gimple_stringop_fixed_value): Fold
6154         icall_size to correct type.
6155
6156 2016-01-13  Jonathan Wakely  <jwakely@redhat.com>
6157
6158         * doc/extend.texi (__atomic Builtins): Clarify compare_exchange
6159         effects.
6160
6161 2016-01-13  Richard Henderson  <rth@redhat.com>
6162
6163         PR tree-opt/68964
6164         * target.def (builtin_tm_load, builtin_tm_store): Remove.
6165         * config/i386/i386.c (ix86_builtin_tm_load): Remove.
6166         (ix86_builtin_tm_store): Remove.
6167         (TARGET_VECTORIZE_BUILTIN_TM_LOAD): Remove.
6168         (TARGET_VECTORIZE_BUILTIN_TM_STORE): Remove.
6169         * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_TM_LOAD): Remove.
6170         (TARGET_VECTORIZE_BUILTIN_TM_STORE): Remove.
6171         * doc/tm.texi: Rebuild.
6172
6173         * gtm-builtins.def (BUILT_IN_TM_MEMCPY_RNWT): New.
6174         (BUILT_IN_TM_MEMCPY_RTWN): New.
6175         * trans-mem.c (tm_log_emit_stmt): Rearrange code for better
6176         fallback from vector to integer helpers.
6177         (build_tm_load): Handle vector types directly, instead of
6178         via target hook.
6179         (build_tm_store): Likewise.
6180         (expand_assign_tm): Prepare for register types not handled by
6181         the above.  Copy them to memory and use memcpy.
6182         * tree.c (tm_define_builtin): New.
6183         (find_tm_vector_type): New.
6184         (build_tm_vector_builtins): New.
6185         (build_common_builtin_nodes): Call it.
6186
6187 2016-01-13  Uros Bizjak  <ubizjak@gmail.com>
6188
6189         * config/i386/i386.h (TARGET_FLT_EVAL_METHOD): Return -1 for
6190         TARGET_SSE_MATH without TARGET_SSE2.  Rewrite.
6191
6192 2016-01-13  Tom de Vries  <tom@codesourcery.com>
6193
6194         PR tree-optimization/69169
6195         * tree-ssa-structalias.c (create_variable_info_for_1): Add and handle
6196         handled_struct_type param.
6197         (create_variable_info_for, intra_create_variable_infos): Call
6198         create_variable_info_for_1 with extra arg.
6199
6200 2016-01-13  Yvan Roux  <yvan.roux@linaro.org>
6201
6202         * config/arm/arm-arches.def: Remove spurious whitespace in "armv8.1-a"
6203         and "armv8.1-a+crc" entries.
6204
6205 2016-01-13  Alexander Fomin  <alexander.fomin@intel.com>
6206
6207         PR target/69228
6208         * config/i386/sse.md (define_expand "avx512pf_gatherpf<mode>sf"):
6209         Change first operand predicate from register_or_constm1_operand
6210         to register_operand.
6211         (define_expand "avx512pf_gatherpf<mode>df"): Likewise.
6212         (define_expand "avx512pf_scatterpf<mode>sf"): Likewise.
6213         (define_expand "avx512pf_scatterpf<mode>df"): Likewise.
6214         (define_insn "*avx512pf_gatherpf<mode>sf"): Remove.
6215         (define_insn "*avx512pf_gatherpf<mode>df"): Likewise.
6216         (define_insn "*avx512pf_scatterpf<mode>sf"): Likewise.
6217         (define_insn "*avx512pf_scatterpf<mode>df"): Likewise.
6218         * config/i386/i386.c (ix86_expand_builtin): Remove first operand
6219         comparison with constm1_rtx from vec_prefetch_gen part.
6220
6221 2016-01-13  Richard Biener  <rguenther@suse.de>
6222
6223         PR tree-optimization/69013
6224         * tree-ssa-uninit.c (prune_uninit_phi_opnds_in_unrealizable_paths):
6225         Exchange assert for a test.
6226
6227 2016-01-13  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6228
6229         PR target/69247
6230         * config/s390/s390.md (bswaphi splitter): Use simplify_gen_subreg.
6231
6232 2016-01-13  Richard Biener  <rguenther@suse.de>
6233
6234         PR tree-optimization/69242
6235         * tree-ssa-sccvn.c (visit_reference_op_load): Replace bogus
6236         assert with a check.
6237
6238 2016-01-13  Richard Biener  <rguenther@suse.de>
6239
6240         PR tree-optimization/69186
6241         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
6242         Properly guard vect_update_misalignment_for_peel call.
6243
6244 2016-01-12  Jeff Law  <law@redhat.com>
6245
6246         PR tree-optimization/pr67755
6247         * tree-ssa-threadupdate.c (struct ssa_local_info_t): Add new field
6248         "need_profile_correction".
6249         (thread_block_1): Initialize new field to false by default.  If we
6250         have multiple thread paths through a common joiner to different
6251         final targets, then set new field to true.
6252         (compute_path_counts): Only do count adjustment when it's really
6253         needed.
6254
6255 2016-01-12  Sandra Loosemore  <sandra@codesourcery.com>
6256
6257         * doc/invoke.texi (Spec Files): Move section down in file, past
6258         all command-line option descriptions.
6259
6260 2016-01-12  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
6261
6262         PR middle-end/54809
6263         * doc/gty.texi: Remove documentation of mark_hook.
6264         * gengtype.c (struct write_types_data): Remove code to support
6265         mark_hook attribute.
6266         (walk_type): Likewise.
6267         (write_func_for_structure): Likewise.
6268
6269 2016-01-12  Sandra Loosemore  <sandra@codesourcery.com>
6270
6271         * doc/invoke.texi (Option Summary) Move -no-canonical-prefixes to
6272         Directory Options, and -specs= to Overall Options.
6273         (Overall Options): Adjust similarly.  Reorder to group related
6274         options together.  Make -specs= cross-reference the spec file details.
6275         (Directory Options): Adjust similarly.
6276
6277 2016-01-12  Jeff Law  <law@redhat.com>
6278
6279         * tree-ssa-threadupdate.c: Various whitespace and typo fixes.
6280
6281 2016-01-12  Olivier Hainque  <hainque@adacore.com>
6282
6283         * gcc.c (spec_undefvar_allowed): New global.
6284         (process_command): Set to true when running for --version or --help,
6285         alone or together.
6286         (getenv_spec_function): When the variable is not defined, use the
6287         variable name as the variable value if we're allowed not to issue
6288         a fatal error.
6289
6290 2016-01-12  Bin Cheng  <bin.cheng@arm.com>
6291
6292         PR tree-optimization/68911
6293         * tree-vrp.c (adjust_range_with_scev): Check overflow in range
6294         information computed for expression "init + nit * step".
6295
6296 2016-01-12  Sandra Loosemore  <sandra@codesourcery.com>
6297
6298         * doc/invoke.texi (Invoking GCC): Copy-edit.  Incorporate information
6299         about name of GCC executable.  Remove deleted node from menu.
6300         (Directory Options) <-B>: Remove cross-reference to deleted node.
6301         (Target Options): Delete section.
6302
6303 2016-01-12  Christian Bruel  <christian.bruel@st.com>
6304
6305         PR target/69180
6306         * config/arm/arm-c.c (arm_pragma_target_parse): Set NODE_CONDITIONAL
6307         for __ARM_NEON_FP, __ARM_FP, _ARM_FEATURE_LDREX.
6308
6309 2016-01-12  Jakub Jelinek  <jakub@redhat.com>
6310
6311         PR target/69198
6312         * config/i386/i386.c (ix86_expand_special_args_builtin): Ensure
6313         aligned_mem is properly set for AVX512-VL floating point masked
6314         stores.
6315
6316         PR target/69175
6317         * ifcvt.c (cond_exec_process_if_block): When removing the last
6318         insn from then_bb, remove also any possible barriers that follow it.
6319
6320 2016-01-12  H.J. Lu  <hongjiu.lu@intel.com>
6321
6322         PR target/68456
6323         PR target/69226
6324         * config/i386/iamcu.h (SIZE_TYPE): New macro.
6325         (PTRDIFF_TYPE): Likewise.
6326         (WCHAR_TYPE): Likewise.
6327         (WCHAR_TYPE_SIZE): Likewise.
6328         (STDINT_LONG32): Likewise.
6329
6330 2016-01-12  Richard Biener  <rguenther@suse.de>
6331
6332         PR tree-optimization/69053
6333         * tree-vect-loop.c (get_initial_def_for_reduction): Properly
6334         convert initial value for cond reductions.
6335
6336 2016-01-12  Richard Biener  <rguenther@suse.de>
6337
6338         PR tree-optimization/69007
6339         * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Move
6340         widen_sum after dot_prod and sad.
6341
6342 2016-01-12  Richard Biener  <rguenther@suse.de>
6343
6344         PR tree-optimization/69168
6345         * tree-vect-loop.c (vect_analyze_loop_2): Reset both main and
6346         pattern stmt SLP type.
6347         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Patterns may
6348         end up unused so cope with that case.
6349
6350 2016-01-12  Richard Biener  <rguenther@suse.de>
6351
6352         PR tree-optimization/69157
6353         * tree-vect-stmts.c (vectorizable_mask_load_store): Check
6354         stmts def type only during analyze phase.
6355         (vectorizable_call): Likewise.
6356         (vectorizable_simd_clone_call): Likewise.
6357         (vectorizable_conversion): Likewise.
6358         (vectorizable_assignment): Likewise.
6359         (vectorizable_shift): Likewise.
6360         (vectorizable_operation): Likewise.
6361         (vectorizable_store): Likewise.
6362         (vectorizable_load): Likewise.
6363
6364 2016-01-12  Richard Biener  <rguenther@suse.de>
6365
6366         PR tree-optimization/69174
6367         * tree-vect-stmts.c (vect_mark_relevant): Remove excessive vertical
6368         space.
6369         (vectorizable_load): Properly compute the number of loads needed
6370         for permuted strided SLP loads and do not spuriously assign
6371         to SLP_TREE_VEC_STMTS.
6372
6373 2016-01-12  Andris Pavenis  <andris.pavenis@iki.fi>
6374
6375         * config/i386/djgpp.h (PREFERRED_DEBUGGING_TYPE): Define to DWARF2
6376         (TARGET_ASM_OUTPUT_IDENT): Define to default_asm_output_ident_directive
6377         (MD_EXEC_PREFIX): Remove.
6378         (MD_STARTFILE_PREFIX) Removee.
6379         (FILE_NAME_ABSOLUTE_P): Remove.
6380         (CPP_SPEC): Do not read macros from sys/version.h.
6381         (LINK_COMMAND_SPEC): Remove.
6382         (LOCAL_INCLUDE_DIR): Remove.
6383         (TARGET_ASM_NAMED_SECTION): Define to i386_djgpp_asm_named_section
6384         (TARGET_OS_CPP_BUILTINS): Add DJGPP (non ISO only), __DJGPP, __DJGPP__, unix.
6385         (POST_LINK_SPEC): Define to invoke stubify after linker
6386         (LIBSTDCXX): Remove define
6387         (DBX_REGISTER_NUMBER): Define to svr4_dbx_register_map.
6388         (DEFAULT_PCC_STRUCT_RETURN): Define to 1.
6389         (SUBTARGET_OVERRIDE_OPTIONS): Remove warning about -mbnu2210.
6390         (SUBTARGET_OVERRIDE_OPTIONS): Ignore -fPIC and generate message.
6391         (SUBTARGET_OVERRIDE_OPTIONS): Default to DWARF2 debugging info.
6392         (IX86_MAYBE_NO_LIBGCC_TFMODE): Remove.
6393         (i386_djgpp_asm_named_section): Add propotype of new procedure
6394
6395         * config/i386/xm-djgpp.h (NATIVE_SYSTEM_HEADER_DIR): Define.
6396         (MD_EXEC_PREFIX): Define (moved from config/i386/djgpp.h).
6397         (STANDARD_STARTFILE_PREFIX_1): Define (moved from MD_STARTFILE_PREFIX
6398         in config/i386/djgpp.h).
6399         (STANDARD_STARTFILE_PREFIX_2): Define identical to
6400         STANDARD_STARTFILE_PREFIX_1.
6401         (LOCAL_INCLUDE_DIR): Define (moved from config/i386/djgpp.h).
6402         (GCC_DRIVER_HOST_INITIALIZATION): Fix reporting fatal
6403         installation errors.
6404         (MAX_OFILE_ALIGNMENT): Define to 128.
6405         (HAVE_FTW_H): Undefine as DJGPP do not have nftw, but have ftw.h.
6406
6407         * config/i386/djgpp.c: New file. Add implementation of
6408         i386_djgpp_asm_named_section.
6409
6410         * config/i386/djgpp.opt: Remove obsolete option -mbnu210.
6411
6412         * config/i386/t-djgpp: New file. Add djgpp.o to EXTRA_OBJS.
6413         Add rule for building djgpp.o.
6414
6415 2016-01-11  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
6416
6417         * config/rs6000/rs6000.c (v2df_reduction_p): New function.
6418         (rtx_is_swappable_p): Reductions are swappable.
6419         (insn_is_swappable_p): V2DF reductions are swappable.
6420
6421 2016-01-11  John David Anglin  <danglin@gcc.gnu.org>
6422
6423         * config/pa/pa.c (pa_emit_move_sequence): Handle floating point
6424         reloads for other unsupported memory operands.
6425
6426 2016-01-12  Kugan Vivekanandarajah  <kuganv@linaro.org>
6427             Jim Wilson  <jim.wilson@linaro.org>
6428
6429         PR target/69194
6430         * config/arm/arm-builtins.c (arm_expand_neon_args): Call
6431         copy_to_mode_reg instead of force_reg.
6432
6433 2016-01-11  H.J. Lu  <hongjiu.lu@intel.com>
6434
6435         PR target/69225
6436         * config/i386/i386.h (TARGET_FLT_EVAL_METHOD): Set to 2 only if
6437         TARGET_80387 is true.
6438
6439 2016-01-11  Jakub Jelinek  <jakub@redhat.com>
6440
6441         PR target/69071
6442         * lra-eliminations.c (move_plus_up): Only move plus up
6443         if subreg of the constant can be simplified into constant
6444         and use the simplified subreg of the constant instead of
6445         the original constant.
6446
6447         * fold-const.c (fold_convertible_p): Don't return true
6448         for conversion of VECTOR_TYPE to same sized integral type.
6449         (fold_convert_loc): Fix up formatting.  Fold conversion of
6450         VECTOR_TYPE to same sized integral type using VIEW_CONVERT_EXPR
6451         instead of NOP_EXPR.
6452
6453         PR tree-optimization/69214
6454         * tree-vrp.c (simplify_cond_using_ranges): Don't propagate
6455         innerop into a comparison if SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
6456         Formatting fix.
6457
6458         PR tree-optimization/69207
6459         * tree-vect-slp.c (vect_get_constant_vectors): For
6460         VECTOR_BOOLEAN_TYPE_P, assert op has integral type instead of
6461         fold_convertible_p to vector_type's element type, and always
6462         use VCE for non-VECTOR_BOOLEAN_TYPE_P.
6463
6464 2016-01-11  Richard Biener  <rguenther@suse.de>
6465
6466         PR tree-optimization/69173
6467         * tree-vect-loop.c (vect_fixup_scalar_cycles_with_patterns): Only
6468         fixup the cycle if all stmts are in a pattern.
6469
6470 2016-01-11  Uros Bizjak  <ubizjak@gmail.com>
6471
6472         PR middle-end/68999
6473         * alias.c (base_alias_check): Move check for addresses with
6474         alignment ANDs before the call for compare_base_decls.
6475         (memrefs_conflict_p): Return -1 for different decls
6476         that went through alignment adjustments.
6477
6478 2016-01-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6479
6480         PR rtl-optimization/68796
6481         * config/aarch64/aarch64.md (*and<mode>_compare0): New pattern.
6482         * config/aarch64/aarch64.c (aarch64_select_cc_mode): Handle HImode
6483         and QImode comparisons against zero with CC_NZmode.
6484         * config/aarch64/iterators.md (short_mask): New mode_attr.
6485
6486 2016-01-11  H.J. Lu  <hongjiu.lu@intel.com>
6487
6488         * config/i386/sse.md (<avx512>_load<mode>_mask): Remove snprintf.
6489         (<avx512>_store<mode>_mask): Likewise.
6490
6491 2016-01-11  Bernd Schmidt  <bschmidt@redhat.com>
6492             Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6493
6494         PR rtl-optimization/68841
6495         * ifcvt.c (struct noce_if_info): Add orig_x field.
6496         (bbs_ok_for_cmove_arith): Add to_rename parameter.
6497         Don't record conflicts on to_rename if it's present.
6498         Allow memory destinations in sets.
6499         (noce_try_cmove_arith): Call bbs_ok_for_cmove_arith even on simple
6500         blocks, passing orig_x to the checks.
6501         (noce_process_if_block): Set if_info->orig_x appropriately.
6502
6503 2016-01-11  Tom de Vries  <tom@codesourcery.com>
6504
6505         PR tree-optimization/69069
6506         * tree-parloops.c (create_parallel_loop): Add missing phi args.
6507
6508 2016-01-11  Yuri Rumyantsev  <ysrumyan@gmail.com>
6509
6510         PR rtl-optimization/68920
6511         * config/i386/i386.c (ix86_option_override_internal): Restrict number
6512         of conditional moves for  RTL if-conversion to 1 for
6513         TARGET_ONE_IF_CONV_INSN.
6514         * config/i386/i386.h (TARGET_ONE_IF_CONV_INSN): New macros.
6515         * config/i386/x86-tune.def (X86_TUNE_ONE_IF_CONV_INSN): New macros.
6516         * params.def (PARAM_MAX_RTL_IF_CONVERSION_INSNS) : Introduce new
6517         parameter to restirct number of conditional moves for
6518         RTL if-conversion.
6519         * doc/invoke.texi (max-rtl-if-conversion-insns): Document it.
6520         * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Limit number of
6521         conditionl moves.
6522
6523 2016-01-11  Alexandre Oliva  <aoliva@redhat.com>
6524
6525         PR bootstrap/69123
6526         * var-tracking.c (drop_overlapping_mem_locs): Operate on all
6527         onepart vars.  Fix typo in comment.  Fix reversed condition in
6528         unshare test.
6529         (dataflow_set_remove_mem_locs): Operate on all onepart vars.
6530
6531         PR bootstrap/69123
6532         * var-tracking.c (dump_onepart_variable_differences): New.
6533         (dataflow_set_different): If a detailed dump is requested,
6534         delay early returns and dump differences between onepart
6535         variables present before and after, and added variables.
6536
6537 2016-01-11  Ilya Enkovich  <enkovich.gnu@gmail.com>
6538
6539         PR target/69010
6540         * expr.c (expand_expr_real_1): For boolean vector constants
6541         with a scalar mode use const_scalar_mask_from_tree.
6542         (const_scalar_mask_from_tree): New.
6543         * optabs.c (expand_vec_cond_mask_expr): Use mask mode
6544         assigned to a mask type to handle constants.
6545
6546 2016-01-11  Martin Jambor  <mjambor@suse.cz>
6547
6548         PR ipa/69044
6549         * ipa-cp.c (estimate_local_effects): Do not clone for removal of
6550         useless parameters if we cannot change function signature.
6551
6552 2016-01-11  Martin Jambor  <mjambor@suse.cz>
6553
6554         PR ipa/66616
6555         * cgraphclones.c (duplicate_thunk_for_node): Copy can_change_signature
6556         flag.
6557
6558 2016-01-11  Tom de Vries  <tom@codesourcery.com>
6559
6560         PR tree-optimization/69109
6561         * tree-parloops.c (try_transform_to_exit_first_loop_alt): Don't allow
6562         latch with phi.
6563
6564 2016-01-11  Tom de Vries  <tom@codesourcery.com>
6565
6566         PR tree-optimization/69108
6567         * tree-parloops.c (gather_scalar_reductions): Handle case that outer phi
6568         res is not used in a phi.
6569
6570 2016-01-11  Yury Gribov  <y.gribov@samsung.com>
6571
6572         PR 67425
6573         * common.opt (frandom-seed): Fix parameter name.
6574         * doc/invoke.texi (frandom-seed): Ditto and describe parameter.
6575
6576 2016-01-11  Tom de Vries  <tom@codesourcery.com>
6577
6578         PR tree-optimization/69058
6579         * tree-parloops.c (pass_parallelize_loops::execute): Return 0 if libgomp
6580         not supported.
6581
6582 2016-01-11  Andrew Burgess  <andrew.burgess@embecosm.com>
6583
6584         * config/arc/arc.opt (mdiv-rem): Add period to the end.
6585         (mcode-density): Likewise.
6586
6587 2016-01-10  Tom de Vries  <tom@codesourcery.com>
6588
6589         PR tree-optimization/69062
6590         * tree-parloops.c (loop_has_phi_with_address_arg): New function.
6591         (parallelize_loops): Don't paralelize loop that has phi with address
6592         arg.
6593
6594 2016-01-10  Tom de Vries  <tom@codesourcery.com>
6595
6596         PR tree-optimization/69039
6597         * tree-parloops.c (try_create_reduction_list): Only allow single exit
6598         phi for reduction.
6599
6600 2016-01-09  John David Anglin  <danglin@gcc.gnu.org>
6601
6602         PR middle-end/68743
6603         * match.pd: Require target has function_c99_misc before doing
6604         truncl(extend(x)) and trunc(extend(x)) -> extend(truncf(x)), etc.
6605
6606 2016-01-09  Gerald Pfeifer  <gerald@pfeifer.com>
6607
6608         * configure.ac (isl_options_set_schedule_serialize_sccs): Also
6609         use GMPINC.
6610         * configure: Regenerate.
6611
6612 2016-01-09  Jakub Jelinek  <jakub@redhat.com>
6613
6614         PR middle-end/50865
6615         PR tree-optimization/69097
6616         * fold-const.h (expr_not_equal_to): New prototype.
6617         * fold-const.c: Include stringpool.h and tree-ssanames.h.
6618         (expr_not_equal_to): New function.
6619         * match.pd (X % -Y is the same as X % Y): Don't optimize
6620         unless X is known not to be equal to minimum or Y is known
6621         not to be equal to -1.
6622         * tree-vrp.c (simplify_div_or_mod_using_ranges): Add GSI argument.
6623         fold TRUNC_MOD_EXPR if the second argument is not a power of two.
6624         (simplify_stmt_using_ranges): Adjust caller.
6625         (vrp_finalize): Call set_value_range on SSA_NAMEs before calling
6626         substitute_and_fold.
6627
6628 2016-01-09  Jan Hubicka  <hubicka@ucw.cz>
6629
6630         * ipa-icf.c (sem_item_optimizer::merge_classes): Do not ICE on VAR_DECL
6631         w/o DECL_NAME.
6632
6633 2016-01-08  Jakub Jelinek  <jakub@redhat.com>
6634
6635         PR tree-optimization/69167
6636         * gimple-fold.c (replace_stmt_with_simplification): Also punt if
6637         new SSA_NAME_OCCURS_IN_ABNORMAL_PHI SSA_NAMEs appear in operands of
6638         ops[0] comparison.
6639         * gimple-match-head.c (maybe_push_res_to_seq): Likewise.
6640
6641 2016-01-08  Alan Lawrence  <alan.lawrence@arm.com>
6642             Richard Biener  <rguenther@suse.de>
6643
6644         PR tree-optimization/68707
6645         * tree-vect-slp.c (vect_analyze_slp_instance): Cancel permuted SLP
6646         instances that can be handled via vect_load_lanes.
6647
6648 2016-01-08  Uros Bizjak  <ubizjak@gmail.com>
6649
6650         * symtab.c (symtab_node::equal_address_to): Return -1 instead of 2
6651         if we can't determine address equivalence.
6652         * alias.c (compare_base_decl): Update for changed return value of
6653         symtab_node::equal_address_to.
6654
6655 2016-01-08  Jason Merrill  <jason@redhat.com>
6656
6657         PR c++/68983
6658         PR c++/67557
6659         * function.c (assign_temp): Guard against TREE_ADDRESSABLE types here.
6660         * expr.c (store_field): Not here.
6661         * tree-cfgcleanup.c (fixup_noreturn_call): Don't clear LHS of a
6662         call with TREE_ADDRESSABLE type.
6663         * tree-cfg.c (verify_gimple_call): Adjust.
6664
6665 2016-01-08  Olivier Hainque  <hainque@adacore.com>
6666
6667         * config/vxworks.h (VXWORKS_LIBGCC_SPEC): Don't link shared RTPs with
6668         libc_internal.
6669
6670 2016-01-08  Alan Lawrence  <alan.lawrence@arm.com>
6671
6672         * gcc.target/rs6000/paired.md (reduc_smax_v2sf): Rename to...
6673         (reduc_smax_scal_v2sf): ...here, make result SFmode, extract element.
6674         (reduc_smin_v2sf): Rename to...
6675         (reduc_smin_scal_v2sf): ...here, make result SFmode, extract element.
6676         (reduc_splus_v2sf): Rename to...
6677         (reduc_plus_scal_v2sf): ...here, make result SFmode, extract element.
6678
6679 2016-01-08  Jakub Jelinek  <jakub@redhat.com>
6680
6681         PR tree-optimization/69162
6682         * gimplify.c (gimplify_va_arg_expr): Encode original type of
6683         valist argument in another argument.
6684         (gimplify_modify_expr): Adjust for the above change.  Cleanup.
6685         * tree-stdarg.c (expand_ifn_va_arg_1): Use new 3rd argument
6686         to determine the va_list type, build a MEM_REF instead of
6687         build_fold_indirect_ref.
6688
6689         PR tree-optimization/69172
6690         * gimple-fold.c (gimple_fold_builtin_memory_chk): Pass type to
6691         gimple_build.
6692
6693 2016-01-08  Thomas Preud'homme  <thomas.preudhomme@arm.com>
6694
6695         PR tree-optimization/67781
6696         * tree-ssa-math-opts.c (find_bswap_or_nop): Zero out bytes in cmpxchg
6697         and cmpnop in two steps: first the ones not accessed in original
6698         gimple expression in a endian independent way and then the ones not
6699         accessed in the final result in an endian-specific way.
6700
6701 2016-01-08  Jakub Jelinek  <jakub@redhat.com>
6702
6703         PR tree-optimization/69083
6704         * tree-vect-slp.c (vect_get_constant_vectors): For
6705         VECTOR_BOOLEAN_TYPE_P assert op is fold_convertible_p to vector_type's
6706         element type.  If op is fold_convertible_p to vector_type's element
6707         type, use NOP_EXPR instead of VCE.
6708
6709 2016-01-08  Segher Boessenkool  <segher@kernel.crashing.org>
6710
6711         PR rtl-optimization/67778
6712         PR rtl-optimization/68634
6713         PR rtl-optimization/68909
6714         * shrink-wrap.c (try_shrink_wrapping): Add comment.  Don't pop
6715         block from the stack until done with it.  Remove a superfluous
6716         bitmap set.  Remove a superfluous bitmap test.
6717
6718 2016-01-07  Martin Sebor  <msebor@redhat.com>
6719
6720         PR c/68966
6721         * doc/extend.texi (__atomic Builtins, __sync Builtins): Document
6722         constraint on the type of arguments.
6723
6724 2016-01-07  Andreas Tobler  <andreast@gcc.gnu.org>
6725
6726         * config/arm/freebsd.h: Rename SUBTARGET_OVERRIDE_OPTIONS to
6727         SUBTARGET_OVERRIDE_INTERNAL_OPTIONS. Adjust to check
6728         unaligned_access on the gcc_options set.
6729         * config/arm/arm.c (arm_option_override_internal): Use
6730         SUBTARGET_OVERRIDE_INTERNAL_OPTIONS.
6731
6732 2016-01-07  Uros Bizjak  <ubizjak@gmail.com>
6733
6734         PR target/69140
6735         * config/i386/i386.c (ix86_frame_pointer_required): Enable
6736         frame pointer for TARGET_64BIT_MS_ABI when stack is misaligned.
6737
6738 2016-01-07  Uros Bizjak  <ubizjak@gmail.com>
6739
6740         Revert
6741         2016-01-06  Uros Bizjak  <ubizjak@gmail.com>
6742
6743         PR target/69140
6744         * config/i386/i386.c (ix86_expand_prologue): Declare fs.sp_valid
6745         depending on frame_pointer_needed before remaining integer and SSE
6746         registers are saved.
6747
6748 2016-01-07  Sandra Loosemore  <sandra@codesourcery.com>
6749
6750         PR 1078
6751         * doc/extend.texi (Nvidia PDX Function Attributes): New section.
6752
6753 2016-01-07  H.J. Lu  <hongjiu.lu@intel.com>
6754
6755         PR target/69171
6756         * config/i386/sse.md (<sse>_sqrt<mode>2<mask_name><round_name>):
6757         Use the "xBm" constraint.
6758         (float<sseintvecmodelower><mode>2<mask_name><round_name):
6759         Likewise.
6760         (sse_cvtsi2ss<round_name>): Use round_nimm_scalar_predicate.
6761         (sse_cvtsi2ssq<round_name>): Likewise.
6762         (sse_cvtss2si<round_name>): Likewise.
6763         (sse_cvtss2siq<round_name>): Likewise.
6764         (sse2_cvtsi2sdq<round_name>): Likewise.
6765         (sse2_cvtsd2si<round_name>): Likewise.
6766         (sse2_cvtsd2siq<round_name>): Likewise.
6767         * config/i386/subst.md (round_nimm_scalar_predicate): New
6768         predicate.
6769
6770 2015-12-15  Bernd Schmidt  <bschmidt@redhat.com>
6771
6772         PR middle-end/67639
6773         * varasm.c (make_decl_rtl): Mark invalid register vars as
6774         DECL_EXTERNAL.
6775
6776         PR rtl-optimization/66206
6777         * bt-load.c (find_btr_use): Change first arg to be a pointer to an rtx.
6778         All callers changed.
6779
6780 2016-01-07  Jakub Jelinek  <jakub@redhat.com>
6781
6782         PR tree-optimization/69141
6783         * tree-ssa-pre.c: Include langhooks.h.
6784         (eliminate_dom_walker::before_dom_children): Use
6785         lang_hooks.decl_printable_name instead of
6786         cgraph_node::get ()->name ().
6787
6788         PR middle-end/68960
6789         * gimple-expr.c (copy_var_decl): If var has DECL_USER_ALIGN set, copy
6790         it and DECL_ALIGN too.
6791
6792 2016-01-06  Robert Suchanek  <robert.suchanek@imgtec.com>
6793
6794         * config/mips/mips-ftypes.def: Sort to lexicographical order.
6795
6796 2016-01-06  Uros Bizjak  <ubizjak@gmail.com>
6797
6798         PR target/69140
6799         * config/i386/i386.c (ix86_expand_prologue): Declare fs.sp_valid
6800         depending on frame_pointer_needed before remaining integer and SSE
6801         registers are saved.
6802
6803 2015-01-06  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
6804
6805         * config/rs6000/vsx.md (*p9_vecload_<mode>): Replace VSX_M
6806         mode iterator with VSX_M2.
6807         (*p9_vecstore_<mode>): Likewise.
6808         (*vsx_le_permute_<mode>): Restrict to !TARGET_P9_VECTOR.
6809         (*vsx_le_perm_load_<mode> for VSX_LE_128): Likewise.
6810         (*vsx_le_perm_store_<mode> for VSX_LE_128): Likewise.
6811         (define_split for VSX_LE128 stores): Likewise.
6812         (define_peephole2 for TImode LE swaps): Likewise.
6813         (define_split for VSX_LE128 post-reload stores): Likewise.
6814
6815 2016-01-06  Marek Polacek  <polacek@redhat.com>
6816
6817         PR sanitizer/69099
6818         * convert.c (convert_to_integer_1): Adjust call to
6819         ubsan_instrument_float_cast.  Use NULL_TREE instead of NULL.
6820         * ubsan.c (ubsan_instrument_float_cast): Drop the ARG parameter.  Use
6821         EXPR instead of ARG.
6822         * ubsan.h (ubsan_instrument_float_cast): Adjust declaration.
6823
6824 2016-01-05  Sandra Loosemore  <sandra@codesourcery.com>
6825
6826         PR 1078
6827         * doc/extend.texi (RL78 Variable Attributes): New section.
6828
6829 2016-01-05  Marek Polacek  <polacek@redhat.com>
6830
6831         PR c/69104
6832         * builtins.c (get_memmodel): Use expansion point location rather than
6833         the input location.  Call warning_at rather than warning.
6834         (expand_builtin_atomic_compare_exchange): Likewise.
6835         (expand_builtin_atomic_load): Likewise.
6836         (expand_builtin_atomic_store): Likewise.
6837         (expand_builtin_atomic_clear): Likewise.
6838
6839 2016-01-05  H.J. Lu  <hongjiu.lu@intel.com>
6840
6841         PR target/68991
6842         * config/i386/i386.c (ix86_expand_vector_logical_operator):
6843         Replace nonimmediate_operand with vector_operand.
6844         * config/i386/predicates.md (vector_operand): New predicate.
6845         (general_vector_operand): Replace nonimmediate_operand with
6846         vector_operand.
6847         * config/i386/sse.md: Replace nonimmediate_operand with
6848         vector_operand and m constraint with Bm constraint on SSE
6849         patterns with 16-byte memory operand.
6850         * config/i386/subst.md (round_nimm_predicate): Replace
6851         nonimmediate_operand with vector_operand.
6852         (round_saeonly_nimm_predicate): Likewise.
6853         (round_saeonly_nimm_scalar_predicate): New.
6854
6855 2016-01-05  H.J. Lu  <hongjiu.lu@intel.com>
6856
6857         PR target/68991
6858         * config/i386/constraints.md (Bm): New constraint.
6859         * config/i386/predicates.md (vector_memory_operand): New
6860         predicate.
6861         * config/i386/sse.md: Replace xm with xBm in plusminus and
6862         any_logic patterns.
6863
6864 2016-01-05  Sandra Loosemore  <sandra@codesourcery.com>
6865
6866         PR 1078
6867         * doc/extend.texi (V850 Function Attributes): New section.
6868         (V850 Variable Attributes): New section.
6869
6870 2016-01-05  Sandra Loosemore  <sandra@codesourcery.com>
6871
6872         PR 1078
6873         * doc/extend.texi (MicroBlaze Function Attributes): Document
6874         interrupt_handler and fast_interrupt attributes.
6875
6876 2016-01-05  Sergei Trofimovich  <siarheit@google.com>
6877
6878         PR other/60465
6879         * config/ia64/ia64.c (ia64_expand_load_address): Use gprel64
6880         for local symbolic operands.
6881         * config/ia64/predicates.md (local_symbolic_operand64): New
6882         predicate.
6883
6884 2016-01-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6885
6886         PR rtl-optimization/68651
6887         * combine.c (combine_simplify_rtx): Canonicalize x + x into
6888         x << 1.
6889
6890 2016-01-05  Nathan Sidwell  <nathan@acm.org>
6891
6892         * alias.c (compare_base_decls): Use symtab_node::get.
6893
6894 2016-01-05  Nick Clifton  <nickc@redhat.com>
6895
6896         PR target/68770
6897         * ira-costs.c (copy_cost): Initialise the t_icode field of the
6898         secondary_reload_info structure.
6899
6900         PR target/66655
6901         * config/i386/cygming.h (MAKE_DECL_ONE_ONLY): Define to use weak
6902         decls if weak support is available.
6903
6904 2016-01-04  Martin Sebor  <msebor@redhat.com>
6905
6906         * doc/invoke.texi (Warning Options): Document -Winvalid-memory-model.
6907
6908 2016-01-04  Michael Meissner  <meissner@linux.vnet.ibm.com>
6909
6910         * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Add
6911         OPTION_MASK_P9_DFORM.
6912
6913         * config/rs6000/constraints.md (wo constraint): New constraint for
6914         ISA 3.0 (power9).
6915
6916         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Add support
6917         for wo constraint.
6918         (rs6000_init_hard_regno_mode_ok): Likewise.
6919
6920         * config/rs6000/rs6000.h (r6000_reg_class_enum): Add support for
6921         wo constraint.
6922
6923         * config/rs6000/altivec.md (altivec_vperm_<mode>): Clean up vperm
6924         expanders not to have constraints.  Add support for ISA 3.0 xxperm
6925         instruction.  Add support for fusing xxlor with xxperm.
6926         (altivec_vperm_<mode>_internal): Likewise.
6927         (altivec_vperm_v8hiv16qi): Likewise.
6928         (altivec_vperm_<mode>v16q): Likewise.
6929         (altivec_vperm_<mode>_uns): Likewise.
6930         (vperm_v8hiv4si): Likewise.
6931         (vperm_v16qiv8hi): Likewise.
6932
6933         * doc/md.texi (RS/6000 constraints): Document wo constraint.
6934
6935 2016-01-04  Jakub Jelinek  <jakub@redhat.com>
6936
6937         Update copyright years.
6938
6939         * gcc.c (process_command): Update copyright notice dates.
6940         * gcov-dump.c (print_version): Ditto.
6941         * gcov.c (print_version): Ditto.
6942         * gcov-tool.c (print_version): Ditto.
6943         * gengtype.c (create_file): Ditto.
6944         * doc/cpp.texi: Bump @copying's copyright year.
6945         * doc/cppinternals.texi: Ditto.
6946         * doc/gcc.texi: Ditto.
6947         * doc/gccint.texi: Ditto.
6948         * doc/gcov.texi: Ditto.
6949         * doc/install.texi: Ditto.
6950         * doc/invoke.texi: Ditto.
6951
6952 2016-01-04  Eric Botcazou  <ebotcazou@adacore.com>
6953
6954         * config/arm/arm.c (aapcs_vfp_allocate_return_reg): Treat all integer
6955         modes larger than TImode as TImode if NEON is not enabled.
6956
6957 2016-01-04  Eric Botcazou  <ebotcazou@adacore.com>
6958
6959         PR target/69100
6960         * config/sparc/sparc.h (FUNCTION_ARG_REGNO_P): Return true in 64-bit
6961         mode for %f0-%f31 only if TARGET_FPU.
6962
6963 2016-01-04  Eric Botcazou  <ebotcazou@adacore.com>
6964
6965         PR target/69072
6966         * config/sparc/sparc.c (scan_record_type): Take into account subfields
6967         to compute the PACKED_P predicate.
6968         (function_arg_record_value): Minor tweaks.
6969
6970 2016-01-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>
6971
6972         * doc/install.texi (--with-multilib-list): Describe the meaning of the
6973         option for arm*-*-* targets.
6974
6975 2016-01-03  Sandra Loosemore  <sandra@codesourcery.com>
6976
6977         * doc/extend.texi (Common Function Attributes): Move docs for
6978         MSP430-specific attributes to....
6979         (MSP430 Function Attributes): ...here.  Delete the redundant
6980         entries and copy-edit the remaining text.
6981         (MSP430 Variable Attributes): Use uniform format for index
6982         entries and add a cross-reference to the corresponding function
6983         attribute docs.
6984
6985 2016-01-03  Vladimír Čunát  <vcunat@gmail.com>
6986
6987         * doc/invoke.texi (RS/6000 and PowerPC Options): Fix
6988         -finite-math typo.
6989         (x86 Options): Likewise.
6990
6991 2016-01-01  Sandra Loosemore  <sandra@codesourcery.com>
6992
6993         PR 1078
6994
6995         * extend.texi (Common Function Attributes) <no_stack_limit>: New.
6996         * invoke.texi (Code Gen Options) <-fno-stack-limit>: Add pointer
6997         to corresponding attribute.
6998
6999 2016-01-01  Sandra Loosemore  <sandra@codesourcery.com>
7000
7001         * doc/extend.texi (Common Function Attributes) <noplt>: Move
7002         to correct alphabetization of table.  Copy-edit and correct
7003         markup.
7004         <stack_protect>: Likewise.
7005         <target_clones>: Likewise.
7006         <simd>: Likewise.
7007         * doc/invoke.texi (Optimize Options) <-fstack-protector-explicit>:
7008         Correct punctuation.
7009         (Code Gen Options) <-fno-plt>: Copy-edit.
7010
7011 2016-01-01  Bernd Edlinger  <bernd.edlinger@hotmail.de>
7012
7013         PR target/68917
7014         * config/tilegx/tilegx.md (clzsi2): Don't create DI subregs of
7015         SI values.  Explicitly convert SI to DI and vice-versa.
7016
7017 2016-01-01  Jakub Jelinek  <jakub@redhat.com>
7018
7019         PR tree-optimization/69070
7020         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Only test
7021         REAL_VALUE_ISSIGNALING_NAN on arg0 if arg0 is a REAL_CST.
7022
7023         PR sanitizer/69055
7024         * ubsan.c (ubsan_instrument_float_cast): Call
7025         initialize_sanitizer_builtins.
7026
7027         PR target/69015
7028         * ifcvt.c (find_cond_trap): Give up if returnjump_p (jump).
7029 \f
7030 Copyright (C) 2016 Free Software Foundation, Inc.
7031
7032 Copying and distribution of this file, with or without modification,
7033 are permitted in any medium without royalty provided the copyright
7034 notice and this notice are preserved.