b575931ddb6914d6ceedb7b9045082edae6690c1
[platform/upstream/gcc.git] / gcc / ChangeLog
1 2016-05-06  Oleg Endo  <olegendo@gcc.gnu.org>
2
3         PR target/52933
4         * config/sh/sh.md (*cmp_div0s_7, *cmp_div0s_8): Add div0s variants.
5         * config/sh/sh.c (sh_rtx_costs): Add another div0s case.
6
7 2016-05-06  Marek Polacek  <polacek@redhat.com>
8
9         PR sanitizer/70875
10         * ubsan.c (get_ubsan_type_info_for_type): Remove assert.
11
12 2016-05-06  Oleg Endo  <olegendo@gcc.gnu.org>
13
14         PR target/54089
15         * config/sh/sh.md (*rotcr): Add another variant.
16
17 2016-05-06  Richard Biener  <rguenther@suse.de>
18
19         PR middle-end/70931
20         * dwarf2out.c (native_encode_initializer): Skip zero-sized fields.
21
22 2016-05-06  Richard Biener  <rguenther@suse.de>
23
24         PR middle-end/70941
25         * fold-const.c (split_tree): Always convert to the original type
26         before negating.
27
28 2016-05-06  Richard Biener  <rguenther@suse.de>
29
30         * fwprop.c (fwprop): Remove duplicate cleanup_cfg call.
31         (fwprop_addr): Likewise.
32
33 2016-05-06  Uros Bizjak  <ubizjak@gmail.com>
34
35         PR target/70873
36         * config/i386/i386-protos.h (ix86_standard_x87sse_constant_load_p):
37         New prototype.
38         * config/i386/i386.c (ix86_standard_x87sse_constant_load_p): New.
39         * config/i386/i386.md (push mem splitter): Use find_constant_src in
40         the splitter condition.
41         (FP load splitter): Use ix86_standard_x87sse_constant_load_p in
42         the splitter condition.
43         (FP float_extend load splitter): Ditto.
44
45 2016-05-05  Uros Bizjak  <ubizjak@gmail.com>
46
47         * config/i386/i386.md (peehole2 patterns): Change true_regnum
48         to REGNO in all peephole2 patterns.
49         (post-reload splitters): Change true_regnum to REGNO in
50         post-reload splitters.
51         (zero_extend splitters): Use general_reg_operand and
52         nonimmediate_gr_operand predicates.
53
54 2016-05-05  Jakub Jelinek  <jakub@redhat.com>
55
56         * config/i386/sse.md (<avx512>_fmadd_<mode>_mask3<round_name>): Use
57         v constraint instead of x.
58
59 2016-05-05  Alan Modra  <amodra@gmail.com>
60
61         PR target/68662
62         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Don't
63         set OPTION_MASK_RELOCATABLE when flag_pic == 2.  Set
64         TARGET_NO_FP_IN_TOC for -mrelocatable.
65         (MINIMAL_TOC_SECTION_ASM_OP): Remove redundant
66         TARGET_RELOCATABLE test.
67         (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
68         (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
69         * config/rs6000/linux64.h (MINIMAL_TOC_SECTION_ASM_OP): Likewise.
70         (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
71         (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
72         * config/rs6000/freebsd64.h (MINIMAL_TOC_SECTION_ASM_OP): Likewise.
73         (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
74         (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
75         * config/rs6000/predicates.md (easy_fp_constant): Likewise.
76         * config/rs6000/rs6000.c (rs6000_elf_output_toc_section_asm_op):
77         Likewise.
78         (rs6000_assemble_integer): Update TARGET_RELOCATABLE test.
79         (rs6000_stack_info): Likewise.
80         (rs6000_elf_asm_out_constructor): Likewise.
81         (rs6000_elf_asm_out_destructor): Likewise.
82         (rs6000_elf_declare_function_name): Likewise.
83         * config/rs6000/rs6000.md (load_toc_aix_di): Likewise.
84         * config/rs6000/rs6000.h (MASK_RELOCATABLE, MASK_MINIMAL_TOC):
85         Don't define.
86
87 2016-05-05  Alan Modra  <amodra@gmail.com>
88
89         * config/rs6000/rs6000.c (rs6000_frame_related): Rewrite.
90
91 2016-05-05  Alan Modra  <amodra@gmail.com>
92
93         * config/rs6000/rs6000.c (rs6000_savres_strategy): Don't use
94         out-of-line gpr restore for one or two regs if that would add
95         a save of lr.
96
97 2016-05-04  Uros Bizjak  <ubizjak@gmail.com>
98
99         PR target/70873
100         * config/i386/i386.md
101         (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_extend sf->df peephole2):
102         Change to post-epilogue_completed late splitter.  Use sse_reg_operand
103         as operand 0 predicate.
104         (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_truncate df->sf peephole2):
105         Ditto.
106         (TARGET_SSE_PARTIAL_REG_DEPENDENCY float {si,di}->{sf,df} peephole2):
107         Ditto.  Emit the pattern using RTX.
108
109         (TARGET_USE_VECTOR_FP_CONVERTS float_extend sf->df splitter):
110         Use sse_reg_opreand as operand 0 predicate.  Do not use true_regnum in
111         the post-reload splitter.  Use lowpart_subreg instead of gen_rtx_REG.
112         (TARGET_USE_VECTOR_FP_CONVERTS float_truncate df->sf splitter):
113         Ditto.
114         (TARGET_USE_VECTOR_CONVERTS float si->{sf,df} splitter): Use
115         sse_reg_operand as operand 0 predicate.
116
117         (TARGET_SPLIT_MEM_OPND_FOR_FP_CONVERTS float_extend sf->df peephole2):
118         Use sse_reg_opreand as operand 0 predicate.  Use lowpart_subreg
119         instead of gen_rtx_REG.
120         (TARGET_SPLIT_MEM_OPND_FOR_FP_CONVERTS float_truncate sf->df peephole2):
121         Ditto.
122
123 2016-05-04  Segher Boessenkool  <segher@kernel.crashing.org>
124
125         * function.c (emit_use_return_register_into_block): Delete.
126         (gen_return_pattern): Delete.
127         (emit_return_into_block): Delete.
128         (active_insn_between): Delete.
129         (convert_jumps_to_returns): Delete.
130         (emit_return_for_exit): Delete.
131         (thread_prologue_and_epilogue_insns): Delete all code dealing with
132         simple_return for shrink-wrapped blocks.
133         * shrink-wrap.c (try_shrink_wrapping): Insert simple_return at the
134         end of blocks that need one.
135         (get_unconverted_simple_return): Delete.
136         (convert_to_simple_return): Delete.
137         * shrink-wrap.c (get_unconverted_simple_return): Delete declaration.
138         (convert_to_simple_return): Ditto.
139
140 2016-05-04  Segher Boessenkool  <segher@kernel.crashing.org>
141
142         * cfgcleanup.c (bb_is_just_return): New function.
143         (try_optimize_cfg): Simplify jumps to return, branches to return,
144         and branches around return.
145
146 2016-05-04  Segher Boessenkool  <segher@kernel.crashing.org>
147
148         * cfgcleanup.c (try_simplify_condjump): Don't try to simplify a
149         branch to a return.
150
151 2016-05-04  Jakub Jelinek  <jakub@redhat.com>
152
153         PR c++/70906
154         PR c++/70933
155         * tree-core.h (enum operand_equal_flag): Add OEP_HASH_CHECK.
156         * tree.c (inchash::add_expr): If !IS_EXPR_CODE_CLASS (tclass),
157         assert flags & OEP_HASH_CHECK, instead of asserting it
158         never happens.  Handle TARGET_EXPR.
159         * fold-const.c (operand_equal_p): For hash verification,
160         or in OEP_HASH_CHECK into flags.
161
162 2016-05-04  Eric Botcazou  <ebotcazou@adacore.com>
163
164         * tree-ssa-coalesce.c (gimple_can_coalesce_p): Fix reference in head
165         comment.
166         (compute_samebase_partition_bases): Fix typo.
167
168 2016-05-04  Jakub Jelinek  <jakub@redhat.com>
169
170         * config/i386/sse.md (vec_interleave_highv8sf,
171         vec_interleave_lowv8sf, vec_interleave_highv4df,
172         vec_interleave_lowv4df): Remove constraints from expanders.
173
174         * config/i386/sse.md (sse2_movq128): Use v constraint instead of x.
175
176 2016-05-04  Jan Hubicka  <hubicka@ucw.cz>
177
178         * tree-inline.c (expand_call_inline): Fix path dealing with
179         making lhs of call statement undefined.
180
181 2016-05-04  Jan Hubicka  <hubicka@ucw.cz>
182
183         * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases):
184         Check availability on NODE, too.
185         * cgraph.h (symtab_node::call_for_symbol_and_aliases): Likewise.
186         (cgraph_node::call_for_symbol_and_aliases): Likewise.
187         (varpool_node::call_for_symbol_and_aliase): Likewise.
188         * ipa-pure-const.c (add_new_function): Analyze all bodies.
189         (propagate_pure_const): Propagate across interposable functions, too.
190         (skip_function_for_local_pure_const): Do not skip interposable bodies
191         with aliases.
192         (pass_local_pure_const::execute): Update.
193
194 2016-05-04  Marek Polacek  <polacek@redhat.com>
195
196         * doc/invoke.texi: Document -Wdangling-else.
197
198 2016-05-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>
199
200         * config.gcc: Error out when conflicting multilib is detected.  Do not
201         loop over multilibs since no combination is legal.
202
203 2016-05-04  Alan Modra  <amodra@gmail.com>
204
205         * config/rs6000/rs6000.h (PIC_OFFSET_TABLE_REGNUM): Correct.
206         * config/rs6000/sysv4.h (TARGET_TOC): Simplify.
207         * config/rs6000/rs6000.c (rs6000_elf_output_toc_section_asm_op):
208         Align .toc.
209
210 2016-05-04  Matthew Fortune  <matthew.fortune@imgtec.com>
211
212         * config/mips/mips-cpus.def (p5600): Avoid IMADD by default.
213         Clean up p5600 comments.
214
215 2016-05-04  Richard Biener  <rguenther@suse.de>
216
217         * match.pd: Add BIT_FIELD_REF canonicalizations and vector
218         constructor simplifications.
219         * fold-const.c (fold_ternary_loc): Remove duplicate functionality here.
220
221 2016-05-04  Oleg Endo  <olegendo@gcc.gnu.org>
222
223         * config/sh/predicates (post_inc_mem, pre_dec_mem): New predicates.
224         * config/sh/sh-protos.h (sh_find_set_of_reg): Return null result if
225         result.set_rtx is null instead of aborting.
226         * config/sh/sh.h (USE_LOAD_POST_INCREMENT, USE_STORE_PRE_DECREMENT):
227         Always enable.
228         (USE_LOAD_PRE_DECREMENT, USE_STORE_POST_INCREMENT): Enable for SH2A.
229         * config/sh/sh.md (*extend<mode>si2_predec, *mov<mode>_load_predec,
230         *mov<mode>_store_postinc): New patterns.
231
232 2016-05-04  Marc Glisse  <marc.glisse@inria.fr>
233
234         * match.pd ((A | B) & (A | C)): Generalize to BIT_XOR_EXPR.  Mark
235         as commutative.  Check both conversions are NOP.
236         ((A & B) OP (C & B)): Remove.
237
238 2016-05-04  Alan Modra  <amodra@gmail.com>
239
240         * combine.c (simplify_set): Correct WORD_REGISTER_OPERATIONS test.
241
242 2016-05-04  Alan Modra  <amodra@gmail.com>
243
244         PR target/70866
245         * config/rs6000/rs6000.c (rs6000_stack_info): Don't set cr_save_p
246         when cr2,3,4 are all fixed regs.
247
248 2016-05-04  Bernd Schmidt  <bschmidt@redhat.com>
249
250         PR rtl-optimization/57193
251         * opts.c (default_options_table): Revert OPT_frename_registers change.
252         * doc/invoke.texi (-frename-registers, -O2): Likewise.
253
254 2016-05-03  Martin Sebor  <msebor@redhat.com>
255
256         PR c++/66561
257         * builtins.c (fold_builtin_FILE): New function.
258         (fold_builtin_FUNCTION, fold_builtin_LINE): New functions.
259         (fold_builtin_0): Call them.
260         * gimplify.c (gimplify_call_expr): Remove the handling of
261         BUILT_IN_FILE, BUILT_IN_FUNCTION, and BUILT_IN_LINE.
262
263         PR c++/66561
264         * doc/extend.texi (Other Builtins): Update __builtin_FILE,
265         __builtin_FUNCTION, and __builtin_LINE to reflect they yield
266         constants.
267
268         PR c++/66639
269         * doc/extend.texi (Function Names as Strings): Update __func__,
270         __FUNCTION__, __PRETTY_FUNCTION__ to reflect they evaluate to
271         constants.
272
273 2016-05-03  Jakub Jelinek  <jakub@redhat.com>
274             Richard Biener  <rguenther@suse.de>
275
276         PR tree-optimization/70916
277         * tree-if-conv.c: Include cfganal.h.
278         (pass_if_conversion::execute): Call connect_infinite_loops_to_exit
279         and remove_fake_exit_edges around the optimization pass.
280
281 2016-05-03  Jan Hubicka  <hubicka@ucw.cz>
282
283         * cgraph.c (symbol_table::create_edge): Set inline_failed.
284         (cgraph_edge::make_direct): Likewise.
285         (cgraph_edge::dump_edge_flags): Dump call_stmt_cannot_inline_p.
286         * cgraphclones.c (duplicate_thunk_for_node): Set inline_failed.
287         * cif-code.def (CIF_LTO_MISMATCHED_DECLARATIONS): New code
288         (CIF_THUNK): New code.
289         * ipa-inline-analysis.c (initialize_inline_failed): Preserve
290         CIF_FINAL_ERROR codes; do not deal with call_stmt_cannot_inline_p.
291         (compute_inline_parameters): Set inline_failed for thunks.
292         (inline_analyze_function): Cleanup.
293         * ipa-inline.c (can_inline_edge_p): Do not deal with
294         call_stmt_cannot_inline_p.
295         (can_early_inline_edge_p): Likewise.
296         (early_inliner): Initialize inline_failed.
297         * lto-cgraph.c (lto_output_edge): Sanity check inline_failed.
298
299 2016-05-03  Uros Bizjak  <ubizjak@gmail.com>
300
301         * config/i386/predicates.md (x87nonimm_ssenomem_operand): Rename
302         from nonimm_ssenomem_operand.
303         (nonimm_ssenomem_operand): New predicate.
304         * config/i386/i386.md (extendsfdf2): Use nonimm_ssenomem_operand
305         as operand 0 predicate.
306         (*extendsfdf2): Merge from *extendsfdf2_mixed and *extendsfdf2_i387.
307         Disable unsupported alternatives using "enabled" attribute.
308         Use register_ssemem_operand as operand 0 predicate.
309         (*fop_<mode>_1): Use x87nonimm_ssenomem_operand as operand 1 predicate.
310
311 2016-05-03  Marek Polacek  <polacek@redhat.com>
312
313         PR c/70859
314         * input.c (expansion_point_location): New function.
315         * input.h (expansion_point_location): Declare.
316
317 2016-05-03  Pierre-Marie de Rodat  <derodat@adacore.com>
318
319         * dwarf2out.c (resolve_args_picking_1): Replace the frame_offset
320         occurence with frame_offset_ ones.
321
322 2016-05-03  Alan Modra  <amodra@gmail.com>
323
324         PR rtl-optimization/70890
325         * ira.c (combine_and_move_insns): When moving def_insn, remove
326         equivs on use_insn.
327
328 2016-05-03  Dominik Vogt  <vogt@linux.vnet.ibm.com>
329
330         * config/s390/s390.md ("*r<noxa>sbg_<mode>_sll")
331         ("*r<noxa>sbg_<mode>_srl"): New define_insns.
332         ("*r<noxa>sbg_<mode>_srl_bitmask"): Rename by adding "_bitmask".
333         ("*r<noxa>sbg_<mode>_sll_bitmask"): Likewise.
334
335 2016-05-03  Alan Modra  <amodra@gmail.com>
336
337         * config/rs6000/rs6000.c (rs6000_savres_strategy): Correct condition
338         for SAVE_MULTIPLE/STORE_MULTIPLE.
339
340 2016-05-03  Jakub Jelinek  <jakub@redhat.com>
341
342         * config/i386/i386.md (*truncdfsf_mixed, *truncdfsf_i387,
343         *truncxfsf2_mixed, *truncxfdf2_mixed): Use v constraint instead of x.
344
345 2016-05-03  Richard Biener  <rguenther@suse.de>
346
347         * gimplify.h (get_initialized_tmp_var): Add allow_ssa parameter
348         default true.
349         (gimplify_arg): Likewise.
350         * gimplify.c (gimplify_expr): Add overload with allow_ssa parameter,
351         re-writing the result to a decl if required.
352         (internal_get_tmp_var): Add allow_ssa parameter
353         and override into_ssa with it.
354         (get_formal_tmp_var): Adjust.
355         (get_initialized_tmp_var): Add allow_ssa parameter.
356         (gimplify_arg): Add allow_ssa parameter and avoid generating
357         SSA names for the result false.
358         (gimplify_call_expr): If the call may return twice do not
359         gimplify parameters into SSA.
360         (prepare_gimple_addressable): Do not allow an SSA name as temporary.
361         (gimplify_modify_expr): Adjust assert.  For noreturn calls
362         with a SSA name LHS adjust its def.
363         (gimplify_save_expr): Do not allow an SSA name as save-expr result.
364         (gimplify_one_sizepos): Do not allow an SSA name as a sizepos.
365         (gimplify_body): Init GIMPLE SSA data structures and gimplify into-SSA.
366         (gimplify_scan_omp_clauses): Make sure OMP_CLAUSE_SIZE is not
367         an SSA name.  Likewise for OMP_CLAUSE_REDUCTION operands.
368         (gimplify_omp_for): Likewise for OMP_CLAUSE_DECL.  Likewise
369         for OMP_FOR_COND,  OMP_FOR_INCR and OMP_CLAUSE_LINEAR_STEP.
370         (optimize_target_teams): Do not allow SSA names for clause operands.
371         (gimplify_expr): Likewise for where we mark the result addressable.
372         * passes.def (pass_init_datastructures): Remove.
373         * tree-into-ssa.c (mark_def_sites): Ignore existing SSA names.
374         (rewrite_stmt): Likewise.
375         * tree-inline.c (initialize_cfun): Properly transfer SSA state.
376         (replace_locals_op): Replace SSA names.
377         (copy_gimple_seq_and_replace_locals): Init src_cfun.
378         * gimple-low.c (lower_builtin_setjmp): Deal with SSA.
379         * cgraph.c (release_function_body): Free CFG annotations only
380         when we have a CFG.  Simplify.
381         * gimple-fold.c (gimplify_and_update_call_from_tree): Use
382         force_gimple_operand instead of get_initialized_tmp_var.
383         * tree-pass.h (make_pass_init_datastructures): Remove.
384         * tree-ssa.c (execute_init_datastructures): Remove.
385         (pass_data_init_datastructures): Likewise.
386         (class pass_init_datastructures): Likewise.
387         (make_pass_init_datastructures): Likewise.
388         * omp-low.c (create_omp_child_function): Init SSA data structures.
389         (grid_expand_target_grid_body): Likewise.
390         * tree-cfg.c (move_block_to_fn): Double-check the DEF is an SSA
391         name before adding it to names_to_release.
392         (remove_bb): Always release SSA defs.
393         * tree-ssa-ccp.c (get_default_value): Check SSA_NAME_VAR
394         before dereferencing it.
395         * cgraphunit.c (init_lowered_empty_function): Always
396         int SSA data structures.
397         * tree-ssanames.c (release_defs): Remove assert that we are in
398         SSA form.
399         * trans-mem.c (diagnose_tm_1): Handle SSA name function.
400
401 2016-05-03  Jakub Jelinek  <jakub@redhat.com>
402             Uros Bizjak  <ubizjak@gmail.com>
403
404         PR rtl-optimization/70467
405         * config/i386/predicates.md (x86_64_hilo_int_operand,
406         x86_64_hilo_general_operand): New predicates.
407         * config/i386/constraints.md (Wd): New constraint.
408         * config/i386/i386.md (mode attr di): Use Wd instead of e.
409         (general_hilo_operand): New mode attr.
410         (add<mode>3, sub<mode>3): Use <general_hilo_operand>
411         instead of <general_operand>.
412         (*add<dwi>3_doubleword, *sub<dwi>3_doubleword): Use
413         x86_64_hilo_general_operand instead of <general_operand>.
414
415 2016-05-03  Jakub Jelinek  <jakub@redhat.com>
416
417         PR tree-optimization/70916
418         * tree-if-conv.c (constant_or_ssa_name): Removed.
419         (fold_build_cond_expr): Use is_gimple_val instead of
420         constant_or_ssa_name.
421
422         PR tree-optimization/70916
423         * tree-vect-patterns.c (vect_recog_mask_conversion_pattern): Give up
424         if COND_EXPR rhs1 is neither SSA_NAME nor COMPARISON_CLASS_P.
425
426         PR target/49244
427         * tree-ssa-ccp.c: Include stor-layout.h and optabs-query.h.
428         (optimize_atomic_bit_test_and): New function.
429         (pass_fold_builtins::execute): Use it.
430         * optabs.def (atomic_bit_test_and_set_optab,
431         atomic_bit_test_and_complement_optab,
432         atomic_bit_test_and_reset_optab): New optabs.
433         * internal-fn.def (ATOMIC_BIT_TEST_AND_SET,
434         ATOMIC_BIT_TEST_AND_COMPLEMENT, ATOMIC_BIT_TEST_AND_RESET): New ifns.
435         * builtins.h (expand_ifn_atomic_bit_test_and): New prototype.
436         * builtins.c (expand_ifn_atomic_bit_test_and): New function.
437         * internal-fn.c (expand_ATOMIC_BIT_TEST_AND_SET,
438         expand_ATOMIC_BIT_TEST_AND_COMPLEMENT,
439         expand_ATOMIC_BIT_TEST_AND_RESET): New functions.
440         * doc/md.texi (atomic_bit_test_and_set@var{mode},
441         atomic_bit_test_and_complement@var{mode},
442         atomic_bit_test_and_reset@var{mode}): Document.
443         * config/i386/sync.md (atomic_bit_test_and_set<mode>,
444         atomic_bit_test_and_complement<mode>,
445         atomic_bit_test_and_reset<mode>): New expanders.
446         (atomic_bit_test_and_set<mode>_1,
447         atomic_bit_test_and_complement<mode>_1,
448         atomic_bit_test_and_reset<mode>_1): New insns.
449
450 2016-05-03  Richard Sandiford  <richard.sandiford@arm.com>
451
452         PR rtl-optimization/70687
453         * combine.c (change_zero_ext): Check for scalar modes.  Use wide_int
454         instead of unsigned HOST_WIDE_INT.
455
456 2016-05-03  Bernd Schmidt  <bschmidt@redhat.com>
457
458         PR rtl-optimization/44281
459         * hard-reg-set.h (struct target_hard_regs): New field
460         x_fixed_nonglobal_reg_set.
461         (fixed_nonglobal_reg_set): New macro.
462         * reginfo.c (init_reg_sets_1): Initialize it.
463         * ira.c (setup_alloc_regs): Use fixed_nonglobal_reg_set instead
464         of fixed_reg_set.
465         * df-scan.c (df_insn_refs_collect): Asms may reference global regs.
466
467 2016-05-03  Bin Cheng  <bin.cheng@arm.com>
468
469         PR tree-optimization/56541
470         * doc/invoke.texi (@item max-tree-if-conversion-phi-args): New item.
471         * params.def (PARAM_MAX_TREE_IF_CONVERSION_PHI_ARGS): new param.
472         * tree-if-conv.c (MAX_PHI_ARG_NUM): new macro.
473         (any_complicated_phi): new static variable.
474         (aggressive_if_conv): delete.
475         (if_convertible_phi_p): support phis with more than two arguments.
476         (if_convertible_bb_p): remvoe check on aggressive_if_conv and
477         critical pred edges.
478         (ifcvt_split_critical_edges): support phis with more than two
479         arguments by checking new parameter.  only split critical edges
480         if needed.
481         (tree_if_conversion): handle simd pragma marked loop using new
482         local variable aggressive_if_conv.  check any_complicated_phi.
483
484 2016-05-03  Bin Cheng  <bin.cheng@arm.com>
485
486         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Check depends_on
487         before using it.
488
489 2016-05-03  Bin Cheng  <bin.cheng@arm.com>
490
491         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Don't clobber
492         cbase.
493
494 2016-05-03  Oleg Endo  <olegendo@gcc.gnu.org>
495
496         * config/sh/sh.md (udivsi3, divsi3, mulsi3): Simplify.
497         (mulhisi3, umulhisi3, (smulsi3_highpart, umulsi3_highpart): Convert to
498         define_insn_and_split.
499         (mulsi3_i): New define_insn_and_split.
500         (mulsi3_call): Convert to define_insn.
501         (mulsidi3, mulsidi3_compact, umulsidi3, umulsidi3_compact):
502         Remove constraints.
503
504 2016-05-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
505
506         * machmode.h (mode_complex): Add support to give the complex mode
507         for a given mode.
508         (GET_MODE_COMPLEX_MODE): Likewise.
509         * stor-layout.c (layout_type): For COMPLEX_TYPE, use the mode
510         stored by build_complex_type and gfc_build_complex_type instead of
511         trying to figure out the appropriate mode based on the size. Raise
512         an assertion error, if the type was not set.
513         * genmodes.c (struct mode_data): Add field for the complex type of
514         the given type.
515         (blank_mode): Likewise.
516         (make_complex_modes): Remember the complex mode created in the
517         base type.
518         (emit_mode_complex): Write out the mode_complex array to map a
519         type mode to the complex version.
520         (emit_insn_modes_c): Likewise.
521         * tree.c (build_complex_type): Set the complex type to use before
522         calling layout_type.
523         * config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Add
524         support for __float128 complex datatypes.
525         (rs6000_hard_regno_mode_ok): Likewise.
526         (rs6000_setup_reg_addr_masks): Likewise.
527         (rs6000_complex_function_value): Likewise.
528         * config/rs6000/rs6000.h (FLOAT128_IEEE_P): Likewise.
529         __float128 and __ibm128 complex.
530         (FLOAT128_IBM_P): Likewise.
531         (ALTIVEC_ARG_MAX_RETURN): Likewise.
532         * doc/extend.texi (Additional Floating Types): Document that
533         -mfloat128 must be used to enable __float128.  Document complex
534         __float128 and __ibm128 support.
535
536 2016-05-02  Jakub Jelinek  <jakub@redhat.com>
537
538         PR target/49244
539         * gimple.c (gimple_builtin_call_types_compatible_p): Allow
540         char/short arguments promoted to int because of promote_prototypes.
541
542 2016-05-02  Uros Bizjak  <ubizjak@gmail.com>
543
544         * config/i386/predicates.md (register_ssemem_operand): New predicate.
545         * config/i386/i386.md (*cmpi<FPCMP:unord><MODEF:mode>): Merge from
546         *cmpi<FPCMP:unord><MODEF:mode>_mixed and
547         *cmpi<FPCMP:unord><X87MODEF:mode>_i387.  Disable unsupported
548         alternatives using "enabled" attribute.  Use register_ssemem_operand
549         as operand 1 predicate.
550         (*cmpi<unord>xf_i387): Split XFmode pattern from
551         *cmpi<FPCMP:unord><X87MODEF:mode>_i387.
552         (*absneg<mode>2): Merge from *absneg<mode>2_mixed and
553         *absneg<mode>2_i387.  Disable unsupported alternatives using
554         "enabled" attribute.
555         (*absnegxf2_i387): Split XFmode pattern from *absneg<mode>2_i387.
556
557 2016-05-02  Nathan Sidwell  <nathan@codesourcery.com>
558
559         * omp-low.c (lower_oacc_head_tail): Assert there is at least one
560         marker.
561         (oacc_loop_process): Check mask for loop termination.
562
563 2016-05-02  Jan Hubicka  <hubicka@ucw.cz>
564
565         * cif-code.def (CIF_THUNK): Add.
566         * ipa-inline-analsysis.c (evaluate_conditions_for_known_args): Revert
567         accidental change.
568
569 2016-05-02  Jan Hubicka  <hubicka@ucw.cz>
570
571         * ipa-inline-analysis.c (reset_inline_summary): Clear fp_expressions
572         (dump_inline_summary): Dump it.
573         (fp_expression_p): New predicate.
574         (estimate_function_body_sizes): Use it.
575         (inline_merge_summary): Merge fp_expressions.
576         (inline_read_section): Read fp_expressions.
577         (inline_write_summary): Write fp_expressions.
578         * ipa-inline.c (can_inline_edge_p): Permit inlining across fp math
579         codegen boundary if either caller or callee is !fp_expressions.
580         * ipa-inline.h (inline_summary): Add fp_expressions.
581         * ipa-inline-transform.c (inline_call): When inlining !fp_expressions
582         to fp_expressions be sure the fp generation flags are updated.
583
584 2016-05-02  Jakub Jelinek  <jakub@redhat.com>
585
586         PR rtl-optimization/70467
587         * cse.c (cse_insn): Handle no-op MEM moves after folding.
588
589         PR rtl-optimization/70467
590         * ipa-pure-const.c (check_call): Handle internal calls even in
591         ipa mode like in local mode.
592
593 2016-05-02  Bernd Edlinger  <bernd.edlinger@hotmail.de>
594
595         * doc/install.texi: Document supported in-tree gmp/mpfr/mpc versions.
596
597 2016-05-02  Marc Glisse  <marc.glisse@inria.fr>
598
599         * match.pd (X u< X, X u> X): New transformations.
600
601 2016-05-02  Marc Glisse  <marc.glisse@inria.fr>
602
603         * flag-types.h (enum warn_strict_overflow_code): Move ...
604         * coretypes.h: ... here.
605         * fold-const.h (fold_overflow_warning): Declare.
606         * fold-const.c (fold_overflow_warning): Make non-static.
607         (fold_comparison): Move the transformation of X +- C1 CMP C2
608         into X CMP C2 -+ C1 ...
609         * match.pd: ... here.
610         * gimple-fold.c (fold_stmt_1): Protect with
611         fold_defer_overflow_warnings.
612
613 2016-05-02  Nathan Sidwell  <nathan@codesourcery.com>
614
615         * omp-low.c (struct oacc_loop): Add 'inner' field.
616         (new_oacc_loop_raw): Initialize it to zero.
617         (oacc_loop_fixed_partitions): Initialize it.
618         (oacc_loop_auto_partitions): Partition outermost loop to outermost
619         available partitioning.
620
621 2016-05-02  Claudiu Zissulescu  <claziss@synopsys.com>
622
623         * config/arc/arc.md (mulsidi3): Change operand 0 predicate to
624         register_operand.
625         (umulsidi3): Likewise.
626         (indirect_jump): Fix jump instruction assembly patterns.
627
628 2016-05-02  Thomas Schwinge  <thomas@codesourcery.com>
629
630         PR target/70860
631         * config/nvptx/nvptx.c (nvptx_libcall_value): Handle NULL cfun.
632         (nvptx_function_value): Assert non-NULL cfun.
633
634 2016-05-02  Eric Botcazou  <ebotcazou@adacore.com>
635
636         PR rtl-optimization/70886
637         * sched-deps.c (estimate_dep_weak): Canonicalize cselib values.
638
639         * cselib.h (rtx_equal_for_cselib_1): Declare.
640         (rtx_equal_for_cselib_p: New inline function.
641         * cselib.c (rtx_equal_for_cselib_p): Delete.
642         (rtx_equal_for_cselib_1): Make public.
643
644 2016-05-02  Uros Bizjak  <ubizjak@gmail.com>
645
646         * config/i386/predicates.md (nonimm_ssenomem_operand): New predicate.
647         (register_mixssei387nonimm_operand): Remove predicate.
648         * config/i386/i386.md (*fop_<mode>_comm): Merge from
649         *fop_<mode>_comm_mixed and *fop_<mode>_comm_i387.  Disable unsupported
650         alternatives using "enabled" attribute.  Also check X87_ENABLE_ARITH
651         for TARGET_MIX_SSE_I387 alternatives.
652         (*fop_<mode>_1): Merge from *fop_<mode>_1_mixed and *fop_<mode>_1_i387.
653         Disable unsupported alternatives using "enabled" attribute.  Use
654         nonimm_ssenomem_operand as operand 1 predicate.  Also check
655         X87_ENABLE_ARITH for TARGET_MIX_SSE_I387 alternatives.
656
657 2016-05-02  Richard Sandiford  <richard.sandiford@arm.com>
658
659         * tree.c (cst_and_fits_in_hwi): Simplify.
660
661 2016-05-02  Richard Sandiford  <richard.sandiford@arm.com>
662
663         * tree.h (wi::to_wide): New function.
664         * expr.c (expand_expr_real_1): Use wi::to_wide.
665         * fold-const.c (int_const_binop_1): Likewise.
666         (extract_muldiv_1): Likewise.
667
668 2016-05-02  Richard Sandiford  <richard.sandiford@arm.com>
669
670         * wide-int.h: Update offset_int and widest_int documentation.
671         (WI_SIGNED_SHIFT_RESULT): New macro.
672         (wi::binary_shift): Define signed_shift_result_type for
673         shifts on offset_int- and widest_int-like types.
674         (generic_wide_int): Support <<= and >>= if << and >> are supported.
675         * tree.h (int_bit_position): Use shift operators instead of wi::
676          shifts.
677         * alias.c (adjust_offset_for_component_ref): Likewise.
678         * expr.c (get_inner_reference): Likewise.
679         * fold-const.c (fold_comparison): Likewise.
680         * gimple-fold.c (fold_nonarray_ctor_reference): Likewise.
681         * gimple-ssa-strength-reduction.c (restructure_reference): Likewise.
682         * tree-dfa.c (get_ref_base_and_extent): Likewise.
683         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Likewise.
684         (stmt_kills_ref_p): Likewise.
685         * tree-ssa-ccp.c (bit_value_binop_1): Likewise.
686         * tree-ssa-math-opts.c (find_bswap_or_nop_load): Likewise.
687         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
688         (ao_ref_init_from_vn_reference): Likewise.
689
690 2016-05-02  Richard Sandiford  <richard.sandiford@arm.com>
691
692         * wide-int.h: Update offset_int and widest_int documentation.
693         (WI_SIGNED_BINARY_PREDICATE_RESULT): New macro.
694         (wi::binary_traits): Allow ordered comparisons between offset_int and
695         offset_int, between widest_int and widest_int, and between either
696         of these types and basic C types.
697         (operator <, <=, >, >=): Define for the same combinations.
698         * tree.h (tree_int_cst_lt): Use comparison operators instead
699         of wi:: comparisons.
700         (tree_int_cst_le): Likewise.
701         * gimple-fold.c (fold_array_ctor_reference): Likewise.
702         (fold_nonarray_ctor_reference): Likewise.
703         * gimple-ssa-strength-reduction.c (record_increment): Likewise.
704         * tree-affine.c (aff_comb_cannot_overlap_p): Likewise.
705         * tree-parloops.c (try_transform_to_exit_first_loop_alt): Likewise.
706         * tree-sra.c (completely_scalarize): Likewise.
707         * tree-ssa-alias.c (stmt_kills_ref_p): Likewise.
708         * tree-ssa-reassoc.c (extract_bit_test_mask): Likewise.
709         * tree-vrp.c (extract_range_from_binary_expr_1): Likewise.
710         (check_for_binary_op_overflow): Likewise.
711         (search_for_addr_array): Likewise.
712         * ubsan.c (ubsan_expand_objsize_ifn): Likewise.
713
714 2016-05-02  Claudiu Zissulescu  <claziss@synopsys.com>
715
716         * config/arc/arc.c (arc_preferred_simd_mode): Remove enum keyword.
717         (arc_save_restore): Likewise.
718         (arc_dwarf_register_span): Likewise.
719         (arc_output_pic_addr_const): Initialize suffix variable.
720
721 2016-05-02  Martin Liska  <mliska@suse.cz>
722
723         * symbol-summary.h (function_summary::function_summary):
724         Remove checking assert for all cgraph nodes.
725         (function_summary::get): Check summary_uid.
726         (symtab_insertion): Check summary_uid.
727
728 2016-05-02  Claudiu Zissulescu  <claziss@synopsys.com>
729
730         * config/arc/arc-protos.h (compact_memory_operand_p): Declare.
731         * config/arc/arc.c (arc_output_commutative_cond_exec): Consider
732         bmaskn instruction.
733         (arc_dwarf_register_span): Remove enum keyword.
734         (compact_memory_operand_p): New function.
735         * config/arc/arc.h (reg_class): Add code density register classes.
736         (REG_CLASS_NAMES): Likewise.
737         (REG_CLASS_CONTENTS): Likewise.
738         * config/arc/arc.md (*movqi_insn): Add code density instructions.
739         (*movhi_insn, *movsi_insn, *movsf_insn): Likewise.
740         (*extendhisi2_i, andsi3_i, cmpsi_cc_insn_mixed): Likewise.
741         (*cmpsi_cc_c_insn, *movsi_ne): Likewise.
742         * config/arc/constraints.md (C2p, Uts, Cm1, Cm3, Ucd): New
743         constraints.
744         (h, Rcd, Rsd, Rzd): New register constraints.
745         (T): Use compact_memory_operand_p function.
746         * config/arc/predicates.md (compact_load_memory_operand): Remove.
747
748 2016-05-02  Oleg Endo  <olegendo@gcc.gnu.org>
749
750         * config/sh/sh.md (*negnegt, *movtt): Remove.
751
752 2016-05-02  Marek Polacek  <polacek@redhat.com>
753             Tom de Vries  <tom@codesourcery.com>
754
755         PR tree-optimization/70700
756         * tree-ssa-structalias.c (dump_pred_graph): Fix getting varinfo for ids
757         bigger than FIRST_REF_NODE.
758
759 2016-05-02  Oleg Endo  <olegendo@gcc.gnu.org>
760
761         PR target/52898
762         * config/sh/sh.c (sh_option_override): Remove TARGET_CBRANCHDI4,
763         TARGET_CMPEQDI_T.
764         (prepare_cbranch_operands): Don't use scratch register.  Assume that
765         function is used when pseudos can be created.
766         (expand_cbranchdi4): Likewise.  Remove unused TARGET_CMPEQDI_T paths.
767         * config/sh/sh.md (cbranchsi4): Allow only when pseudos can be created.
768         (cbranchdi4, cbranchdi4_i): Simplify to single cbranchdi4
769         define_expand.  Allow it only when pseudos can be created.
770         * config/sh/sh.opt (mcbranchdi, mcmpeqdi): Delete.
771
772 2016-05-01  Uros Bizjak  <ubizjak@gmail.com>
773
774         * config/i386/constraints.md (BC): Only allow -1 operands.
775         * config/i386/sse.md (mov<mode>_internal): Add (v,C) alternative.
776         Add "enabled" attribute.  Update XI mode attribute calculation.
777         * config/i386/i386.md (*movxi_internal_avx512f): Add (v,C) alternative.
778         (*movoi_internal_avx): Update XI mode attribute calculation.
779         (*movti_internal): Ditto.
780
781 2016-05-01  Oleg Endo  <olegendo@gcc.gnu.org>
782
783         * config/sh/sh.md (push, pop, ic_invalidate_line, cstoresi4, cstoredi4,
784         cstoresf4, cstoredf4, fix_truncsfsi2): Remove constraints.
785
786 2016-05-01  Eric Botcazou  <ebotcazou@adacore.com>
787
788         * config/rs6000/rs6000.c (altivec_expand_lv_builtin): Do not use switch
789         statement on instruction code.  Remove trailing spaces.
790         (altivec_expand_stv_builtin): Likewise.
791
792 2016-05-01  Oleg Endo  <olegendo@gcc.gnu.org>
793
794         * config/sh/sh.h (TARGET_SH4): Remove and use default implementation.
795         (TARGET_FPU_DOUBLE): Simplify.
796         (BASE_ARG_REG, DOUBLE_TYPE_SIZE, OPTIMIZE_MODE_SWITCHING): Replace
797         'TARGET_SH4 || TARGET_SH2A_DOUBLE' conditions with 'TARGET_FPU_DOUBLE'.
798         * config/sh/sh.c: Replace 'TARGET_SH4 || TARGET_SH2A_DOUBLE' conditions
799         with 'TARGET_FPU_DOUBLE'.
800         * config/sh/sh.md: Likewise.
801
802 2016-05-01  Yoshinori Sato  <ysato@users.sourceforge.jp>
803
804         * config/sh/linux.h (SH_DIV_STRATEGY_DEFAULT,
805         SH_DIV_STR_FOR_SIZE): Remove.
806         * config/sh/netbsd-elf.h (SH_DIV_STRATEGY_DEFAULT,
807         SH_DIV_STR_FOR_SIZE): Remove.
808
809 2016-05-01  Oleg Endo  <olegendo@gcc.gnu.org>
810
811         * config/sh/predicates.md (any_register_operand, zero_extend_operand,
812         logical_reg_operand): Delete.
813         (arith_operand, arith_reg_dest, arith_or_int_operand, cmpsi_operand,
814         arith_reg_or_0_operand, arith_reg_or_0_or_1_operand, logical_operand,
815         logical_and_operand, movsrc_no_disp_mem_operand): Rewrite using
816         match_operand and match_test.
817         (sh_const_vec, sh_1el_vec): Remove redundant checks.  Declare local
818         variables on their first use.  Return bool values.
819         * config/sh/sh.h (LOAD_EXTEND_OP): Update comment.
820         * config/sh/sh.md (andsi3, iorsi3): Use arith_reg_dest for result and
821         arith_reg_operand for input operand.  Remove empty constraints.
822         (xorsi3): Delete.
823         (*xorsi3_compact): Rename to xorsi3.
824         (zero_extend<mode>si2): Use arith_reg_operand for input operand.
825         (*zero_extend<mode>si2_disp_mem): Update comment.
826         (mov_nop): Delete.
827
828 2016-04-30  Oleg Endo  <olegendo@gcc.gnu.org>
829
830         * config/sh/t-sh: Remove SH5 support.
831         * config.gcc: Likewise.
832         * configure: Likewise.
833
834 2016-04-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
835
836         * config/darwin.h (LINK_COMMAND_SPEC_A): Handle -fcilkplus.
837
838 2016-04-30  Oleg Endo  <olegendo@gcc.gnu.org>
839
840         * config/sh/sh.c (register_sh_passes, sh_option_override,
841         sh_print_operand, prepare_move_operands,
842         sh_can_follow_jump): Remove TARGET_SH1 checks.
843         * config/sh/sh.h (TARGET_VARARGS_PRETEND_ARGS, VALID_REGISTER_P,
844         PROMOTE_MODE): Likewise.
845         * config/sh/sh.md (adddi3, addsi3, subdi3, subsi3, andsi3,
846         movdi): Likewise.
847
848 2016-04-30  Alan Modra  <amodra@gmail.com>
849
850         * config/rs6000/rs6000.c (rs6000_savres_strategy): Force inline
851         restoring when fixed_reg_p, but allow out-of-line or stmw save.
852         Check for user regs later to avoid unnecessary looping over regs.
853         Merge user reg check with non-saved reg check.  Don't force
854         inline VR restore when static chain used.
855         (rs6000_frame_related): Omit eh_frame info for user regs when
856         saving.
857         (fixed_regs_p): Delete.
858
859 2016-04-30  Alan Modra  <amodra@gmail.com>
860
861         * config/rs6000/rs6000.c (SAVRES_MULTIPLE): Replace with..
862         (SAVE_STRATEGY, REST_STRATEGY): ..this.  Renumber and sort enum.
863         Update all uses.
864
865 2016-04-30  Alan Modra  <amodra@gmail.com>
866
867         PR target/69645
868         * config/rs6000/rs6000.c (fixed_reg_p): New function.
869         (fixed_regs_p): Rename from global_regs_p.  Call fixed_reg_p.
870         Update all uses.
871
872 2016-04-30  Alan Modra  <amodra@gmail.com>
873
874         * config/rs6000/rs6000.c (rs6000_conditional_register_usage):
875         Remove redundant PIC_OFFSET_TABLE_REGNUM test.  Replace with
876         flag_pic test for Darwin.
877
878 2016-04-30  Alan Modra  <amodra@gmail.com>
879
880         * regs.h (struct reg_info_t): Delete freq_calls_crossed and
881         throw_calls_crossed.
882         (REG_FREQ_CALLS_CROSSED): Delete.
883         (REG_N_THROWING_CALLS_CROSSED): Delete.
884         * regstat.c (regstat_bb_compute_ri): Don't calculate
885         REG_FREQ_CALLS_CROSSED and REG_N_THROWING_CALLS_CROSSED.
886         (dump_reg_info): Don't print call cross frequency.
887         * ira.c (combine_and_move_insns): Don't set REG_FREQ_CALLS_CROSSED
888         and REG_N_THROWING_CALLS_CROSSED.
889
890 2016-04-30  Alan Modra  <amodra@gmail.com>
891
892         * regs.h (struct reg_info_t): Delete live_length.
893         (REG_LIVE_LENGTH): Delete macro.
894         * regstat.c (regstat_bb_compute_ri): Delete artificial_uses,
895         local_live, local_processed and local_live_last_luid params.
896         Replace bb_index param with bb.  Don't set REG_LIVE_LENGTH.
897         Formatting fixes.
898         (regstat_compute_ri): Adjust for above.  Don't set
899         REG_LIVE_LENGTH.
900         (dump_reg_info): Don't print live length.
901         * ira.c (update_equiv_regs): Replace test of REG_LIVE_LENGTH
902         with test of setjmp_crosses.  Don't set REG_LIVE_LENGTH.
903         Localize loop_depth var.
904
905 2016-04-30  Alan Modra  <amodra@gmail.com>
906
907         * ira.c (enum valid_equiv): New.
908         (validate_equiv_mem): Return enum.
909         (update_equiv_mem): Create replacement in more cases.
910         (add_store_equivs): Update validate_equiv_mem call.
911
912 2016-04-30  Alan Modra  <amodra@gmail.com>
913
914         * ira.c (combine_and_move_insns): Rather than scanning insns,
915         use DF infrastucture to find use and def insns.
916
917 2016-04-30  Alan Modra  <amodra@gmail.com>
918
919         ira.c (combine_and_move_insns): Move invariant conditions..
920         (ira.c): ..to here.  Call combine_and_move_insns before
921         add_store_equivs.  Call grow_reg_equivs later.  Allocate
922         req_equiv later using max_reg_num() rather than global max_regno.
923         (contains_replace_regs): Delete.
924         (add_store_equivs): Remove contains_replace_regs test.
925
926 2016-04-30  Alan Modra  <amodra@gmail.com>
927
928         * ira.c (struct equiv_mem_data): New.
929         (equiv_mem, equiv_mem_modified): Delete static vars.
930         (validate_equiv_mem_from_store): Use "data" param to communicate..
931         (validate_equiv_mem): ..from here.
932
933 2016-04-30  Alan Modra  <amodra@gmail.com>
934
935         * ira.c (add_store_equivs, combine_and_move_insns): New functions,
936         split out from..
937         (update_reg_equivs): ..here.  Move allocation and freeing of
938         reg_equiv, and calls to grow_reg_equivs, init_alias_analysis,
939         end_alias_analysis to..
940         (ira): ..here.
941
942 2016-04-30  Alan Modra  <amodra@gmail.com>
943
944         * ira.c (pdx_subregs): Delete.
945         (struct equivalence): Add pdx_subregs field.
946         (set_paradoxical_subreg): Remove pdx_subregs param.  Update
947         pdx_subregs access.
948         (update_equiv_regs): Don't create or free pdx_subregs.  Update
949         pdx_subregs access.
950
951 2016-04-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
952
953         * config/rs6000/altivec.h: Change definitions of vec_xl and
954         vec_xst.
955         * config/rs6000/rs6000-builtin.def (LD_ELEMREV_V2DF): New.
956         (LD_ELEMREV_V2DI): New.
957         (LD_ELEMREV_V4SF): New.
958         (LD_ELEMREV_V4SI): New.
959         (LD_ELEMREV_V8HI): New.
960         (LD_ELEMREV_V16QI): New.
961         (ST_ELEMREV_V2DF): New.
962         (ST_ELEMREV_V2DI): New.
963         (ST_ELEMREV_V4SF): New.
964         (ST_ELEMREV_V4SI): New.
965         (ST_ELEMREV_V8HI): New.
966         (ST_ELEMREV_V16QI): New.
967         (XL): New.
968         (XST): New.
969         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
970         descriptions for VSX_BUILTIN_VEC_XL and VSX_BUILTIN_VEC_XST.
971         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Map from
972         TARGET_P9_VECTOR to RS6000_BTM_P9_VECTOR.
973         (altivec_expand_builtin): Add handling for
974         VSX_BUILTIN_ST_ELEMREV_<MODE> and VSX_BUILTIN_LD_ELEMREV_<MODE>.
975         (rs6000_invalid_builtin): Add error-checking for
976         RS6000_BTM_P9_VECTOR.
977         (altivec_init_builtins): Define builtins used to implement vec_xl
978         and vec_xst.
979         (rs6000_builtin_mask_names): Define power9-vector.
980         * config/rs6000/rs6000.h (MASK_P9_VECTOR): Define.
981         (RS6000_BTM_P9_VECTOR): Define.
982         (RS6000_BTM_COMMON): Include RS6000_BTM_P9_VECTOR.
983         * config/rs6000/vsx.md (vsx_ld_elemrev_v2di): New define_insn.
984         (vsx_ld_elemrev_v2df): Likewise.
985         (vsx_ld_elemrev_v4sf): Likewise.
986         (vsx_ld_elemrev_v4si): Likewise.
987         (vsx_ld_elemrev_v8hi): Likewise.
988         (vsx_ld_elemrev_v16qi): Likewise.
989         (vsx_st_elemrev_v2df): Likewise.
990         (vsx_st_elemrev_v2di): Likewise.
991         (vsx_st_elemrev_v4sf): Likewise.
992         (vsx_st_elemrev_v4si): Likewise.
993         (vsx_st_elemrev_v8hi): Likewise.
994         (vsx_st_elemrev_v16qi): Likewise.
995         * doc/extend.texi: Add prototypes for vec_xl and vec_xst.  Correct
996         grammar.
997
998 2016-04-29  Patrick Palka  <ppalka@gcc.gnu.org>
999
1000         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Split
1001         out into ...
1002         (simplify_control_stmt_condition_1): ... here.  Recurse into
1003         BIT_AND_EXPRs and BIT_IOR_EXPRs.
1004
1005 2016-04-29  David Edelsohn  <dje.gcc@gmail.com>
1006
1007         PR target/69810
1008         * config/rs6000/rs6000.md (EXTQI): Don't allow extension to HImode.
1009         (zero_extendqi<mode>2_dot): Revert earlier conversion from
1010         define_insn_and_split to define_insn.
1011         (zero_extendqi<mode>2_dot2): Same.
1012         (extendqi<mode>2_dot): Same.
1013         (extendqi<mode>2_dot2): Same.
1014
1015 2016-04-29  Uros Bizjak  <ubizjak@gmail.com>
1016
1017         * config/i386/i386.md (unspec): Add UNSPEC_PROBE_STACK.
1018         (probe_stack): New expander.
1019         (probe_stack_<mode>): New insn pattern.
1020
1021 2016-04-29  Uros Bizjak  <ubizjak@gmail.com>
1022
1023         * config/i386/i386.md
1024         (operations with memory inputs setting flags peephole2):
1025         Remove uneeded REG_P checks.  Cleanup pattern generation.
1026
1027 2016-04-29  Ilya Enkovich  <ilya.enkovich@intel.com>
1028
1029         * tree-vect-loop.c (vect_transform_loop): Fix
1030         nb_iterations_upper_bound computation for vectorized loop.
1031
1032 2016-04-29  Marek Polacek  <polacek@redhat.com>
1033             Jakub Jelinek  <jakub@redhat.com>
1034
1035         PR sanitizer/70342
1036         * fold-const.c (tree_single_nonzero_warnv_p): For TARGET_EXPR, use
1037         TARGET_EXPR_SLOT as a base.
1038
1039 2016-04-29  Andrew Burgess  <andrew.burgess@embecosm.com>
1040
1041         * config/arc/arc.md (*loadqi_update): Replace use of 'rI' constraint
1042         with 'rCm2' constraints to limit possible immediate size.
1043         (*load_zeroextendqisi_update): Likewise.
1044         (*load_signextendqisi_update): Likewise.
1045         (*loadhi_update): Likewise.
1046         (*load_zeroextendhisi_update): Likewise.
1047         (*load_signextendhisi_update): Likewise.
1048         (*loadsi_update): Likewise.
1049         (*loadsf_update): Likewise.
1050
1051 2016-04-29  Uros Bizjak  <ubizjak@gmail.com>
1052
1053         * config/i386/predicates.md (constm1_operand): Fix comparison.
1054
1055 2016-04-29  Claudiu Zissulescu  <claziss@synopsys.com>
1056
1057         * testsuite/gcc.target/arc/ieee_eq.c: New test.
1058
1059 2016-04-29  Oleg Endo  <olegendo@gcc.gnu.org>
1060
1061         * common/config/sh/sh-common.c (sh_option_optimization_table): Remove
1062         remaining SH5 related settings.
1063         * config/sh/sh-protos.h (shmedia_cleanup_truncate,
1064         shmedia_prepare_call_address): Delete.
1065         * config/sh/sh.c (sh_print_operand, output_stack_adjust,
1066         DWARF_CIE_DATA_ALIGNMENT, LOCAL_ALIGNMENT): Update comments.
1067         * config/sh/sh.h (SUBTARGET_ASM_RELAX_SPEC,
1068         UNSUPPORTED_SH2A): Remove m5 checks.
1069         (sh_divide_strategy_e): Remove SH5 division strategies.
1070         (TARGET_PTRMEMFUNC_VBIT_LOCATION): Remove and use default.
1071         * config/sh/sh.md (divsf3): Reinstate define_expand pattern.
1072
1073 2016-04-29  Dominik Vogt  <vogt@linux.vnet.ibm.com>
1074
1075         * config/s390/s390.c (s390_rtx_costs): Update documentation.
1076
1077 2016-04-29  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
1078
1079         * config/s390/2964.md ("z13_unit_fxu", "z13_0"): Remove lder.
1080         * config/s390/s390.md ("movsi_larl", "*movsi_esa", "mov<mode>"):
1081         Change lder to ldr.
1082         * config/s390/vector.md ("mov<mode>"): Likewise.
1083
1084 2016-04-29  Ulrich Weigand  <uweigand@de.ibm.com>
1085
1086         * config/s390/constraints.md ("U", "W"): Invoke
1087         s390_mem_constraint with "ZR" and "ZT".
1088         * config/s390/s390.c (s390_check_qrst_address): Reject invalid
1089         addresses when using LRA.  Accept also short displacements for S
1090         and T constraints.  Do not check for long displacement target for
1091         S and T constraints.
1092         (s390_mem_constraint): Remove handling of U and W constraints.
1093         * config/s390/s390.md (various patterns): Remove the short
1094         displacement constraints (Q and R) if a long displacement
1095         constraint is present.  Add longdisp as required CPU capability.
1096         * config/s390/vector.md: Likewise.
1097         * config/s390/vx-builtins.md: Likewise.
1098
1099 2016-04-29  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
1100
1101         PR target/60040
1102         * reload1.c (reload): Call finish_spills before
1103         restarting reload loop. Skip select_reload_regs
1104         if update_eliminables_and_spill returns true.
1105
1106 2016-04-29  Claudiu Zissulescu  <claziss@synopsys.com>
1107
1108         * config/arc/arc.h (UNSIGNED_INT12, UNSIGNED_INT16): Define.
1109         * config/arc/arc.md (umulhisi3): Use arc_short_operand predicate.
1110         (umulhisi3_imm): Update predicates and constraint letters.
1111         (umulhisi3_reg): Declare instruction as commutative.
1112         * config/arc/constraints.md (J12, J16): New constraints.
1113         * config/arc/predicates.md (short_unsigned_const_operand): New
1114         predicate.
1115         (arc_short_operand): Likewise.
1116         * testsuite/gcc.target/arc/umulsihi3_z.c: New file.
1117
1118 2016-04-29  Richard Biener  <rguenther@suse.de>
1119
1120         PR tree-optimization/13962
1121         PR tree-optimization/65686
1122         * tree-ssa-alias.h (ptrs_compare_unequal): Declare.
1123         * tree-ssa-alias.c (ptrs_compare_unequal): New function
1124         using PTA to compare pointers.
1125         * match.pd: Add pattern for pointer equality compare simplification
1126         using ptrs_compare_unequal.
1127
1128 2016-04-29  Richard Biener  <rguenther@suse.de>
1129
1130         * stor-layout.c (layout_type): Do not build a pointer-to-element
1131         type for arrays.
1132
1133 2016-04-29  Uros Bizjak  <ubizjak@gmail.com>
1134
1135         * config/i386/i386.md (Load+RegOp to Mov+MemOp peephole2):
1136         Use SWI mode iterator.  Use general_reg_operand predicate.
1137         (Load+RegOp to Mov+MemOp peephole2 with vector regs): Split
1138         peephole to MMX and SSE part.  Use mmx_reg_operand and sse_reg_operand
1139         predicates.
1140
1141 2016-04-29  Jakub Jelinek  <jakub@redhat.com>
1142
1143         PR middle-end/70843
1144         * fold-const.c (operand_equal_p): Don't verify hash value equality
1145         if arg0 == arg1.
1146         * tree.c (inchash::add_expr): Handle STATEMENT_LIST.  Ignore BLOCK
1147         and OMP_CLAUSE.
1148
1149 2016-04-28  Jakub Jelinek  <jakub@redhat.com>
1150
1151         PR target/70858
1152         * config/i386/i386.c (bdesc_special_args): Add | OPTION_MASK_ISA_64BIT
1153         to __builtin_ia32_lwpval64 and __builtin_ia32_lwpins64.
1154         (bdesc_args): Add | OPTION_MASK_ISA_64BIT to __builtin_ia32_bextr_u64,
1155         __builtin_ia32_bextri_u64, __builtin_ia32_bzhi_di,
1156         __builtin_ia32_pdep_di and __builtin_ia32_pext_di.
1157
1158 2016-04-28  Segher Boessenkool  <segher@kernel.crashing.org>
1159
1160         * config/rs6000/rs6000.c (compute_save_world_info): Rename info_ptr
1161         to info.  Don't initialize separate fields to 0.  Clean up
1162         formatting a bit.
1163
1164 2016-04-28  Uros Bizjak  <ubizjak@gmail.com>
1165
1166         * config/i386/i386.md (peephole2s for operations with memory inputs):
1167         Use SWI mode iterator.
1168         (peephole2s for operations with memory outputs): Ditto.
1169         Do not check for stack checking probe.
1170
1171         (probe_stack): Remove expander.
1172
1173 2016-04-28  Joern Rennecke  <joern.rennecke@embecosm.com>
1174             Andrew Burgess  <andrew.burgess@embecosm.com>
1175
1176         * config/arc/arc.c (arc_print_operand): Print integer 'H' / 'L'
1177         operands as 32-bits.
1178
1179 2016-04-28  Jason Merrill  <jason@redhat.com>
1180
1181         * gdbinit.in: Skip line-map.h.
1182
1183 2016-04-28  Joern Rennecke  <joern.rennecke@embecosm.com>
1184             Andrew Burgess  <andrew.burgess@embecosm.com>
1185
1186         * config/arc/arc.c (arc_conditional_register_usage): Take
1187         TARGET_RRQ_CLASS into account.
1188         (arc_print_operand): Support printing 'p' and 's' operands.
1189         * config/arc/arc.h (TARGET_NPS_BITOPS_DEFAULT): Provide default
1190         as 0.
1191         (TARGET_RRQ_CLASS): Define.
1192         (IS_POWEROF2_OR_0_P): Define.
1193         * config/arc/arc.md (*movsi_insn): Add w/Clo, w/Chi, and w/Cbi
1194         alternatives.
1195         (*tst_movb): New define_insn.
1196         (*tst): Avoid recognition if it could prevent '*tst_movb'
1197         combination; replace c/CnL with c/Chs alternative.
1198         (*tst_bitfield_tst): New define_insn.
1199         (*tst_bitfield_asr): New define_insn.
1200         (*tst_bitfield): New define_insn.
1201         (andsi3_i): Add Rrq variant.
1202         (extzv): New define_expand.
1203         (insv): New define_expand.
1204         (*insv_i): New define_insn.
1205         (*movb): New define_insn.
1206         (*movb_signed): New define_insn.
1207         (*movb_high): New define_insn.
1208         (*movb_high_signed): New define_insn.
1209         (*movb_high_signed + 1): New define_split pattern.
1210         (*mrgb): New define_insn.
1211         (*mrgb + 1): New define_peephole2 pattern.
1212         (*mrgb + 2): New define_peephole2 pattern.
1213         * config/arc/arc.opt (mbitops): New option for nps400, uses
1214         TARGET_NPS_BITOPS_DEFAULT.
1215         * config/arc/constraints.md (q): Make register class conditional.
1216         (Rrq): New register constraint.
1217         (Chs): New constraint.
1218         (Clo): New constraint.
1219         (Chi): New constraint.
1220         (Cbf): New constraint.
1221         (Cbn): New constraint.
1222         (C18): New constraint.
1223         (Cbi): New constraint.
1224
1225 2016-04-28  Segher Boessenkool  <segher@kernel.crashing.org>
1226
1227         * cfganal.c (bitmap_intersection_of_succs): Delete assert checking
1228         dst->popcount.
1229         (bitmap_intersection_of_preds): Ditto.
1230         (bitmap_union_of_succs): Ditto.
1231         (bitmap_union_of_preds): Ditto.
1232         * sbitmap.c (do_popcount): Delete.
1233         (BITMAP_DEBUGGING): Delete.
1234         (sbitmap_verify_popcount): Delete.
1235         (sbitmap_alloc): Don't initialize the popcount field.
1236         (sbitmap_alloc_with_popcount): Delete.
1237         (sbitmap_resize): Don't resize the popcount array.
1238         (sbitmap_vector_alloc): Don't initialize the popcount field.
1239         (bitmap_copy): Don't copy the popcount array.
1240         (bitmap_clear): Don't clear the popcount array.
1241         (bitmap_clear): Delete the popcount array handling.
1242         (bitmap_ior_and_compl): Delete the popcount assert.
1243         (bitmap_not): Ditto.
1244         (bitmap_and_compl): Ditto.
1245         (bitmap_and): Delete the popcount array handling.
1246         (bitmap_xor): Ditto.
1247         (bitmap_ior): Ditto.
1248         (bitmap_or_and): Delete the popcount assert.
1249         (bitmap_and_or): Ditto.
1250         (popcount_table): Delete.
1251         (sbitmap_elt_popcount): Delete.
1252         * sbitmap.h (simple_bitmap_def): Delete the popcount field.
1253         (bitmap_set_bit): Delete the popcount assert.
1254         (bitmap_clear_bit): Ditto.
1255         (sbitmap_free): Don't free the popcount array.
1256         (sbitmap_alloc_with_popcount): Delete declaration.
1257         (sbitmap_popcount): Ditto.
1258
1259 2016-04-28  Joern Rennecke  <joern.rennecke@embecosm.com>
1260             Andrew Burgess  <andrew.burgess@embecosm.com>
1261
1262         * config/arc/arc.h (SYMBOL_FLAG_CMEM): Define.
1263         (TARGET_NPS_CMEM_DEFAULT): Provide default definition.
1264         * config/arc/arc.c (arc_address_cost): Return 0 for cmem_address.
1265         (arc_encode_section_info): Set SYMBOL_FLAG_CMEM where indicated.
1266         * config/arc/arc.opt (mcmem): New option.
1267         * config/arc/arc.md (*extendqihi2_i): Add r/Uex alternative,
1268         supply length for r/m alternative.
1269         (*extendqisi2_ac): Likewise.
1270         (*extendhisi2_i): Add r/Uex alternative, supply length for r/m and
1271         r/Uex alternative.
1272         (movqi_insn): Add r/Ucm and Ucm/?Rac alternatives.
1273         (movhi_insn): Likewise.
1274         (movsi_insn): Add r/Ucm,Ucm/w alternatives.
1275         (*zero_extendqihi2_i): Add r/Ucm alternative.
1276         (*zero_extendqisi2_ac): Likewise.
1277         (*zero_extendhisi2_i): Likewise.
1278         * config/arc/constraints.md (Uex): New memory constraint.
1279         (Ucm): New define_constraint.
1280         * config/arc/predicates.md (long_immediate_loadstore_operand):
1281         Return 0 for MEM with cmem_address address.
1282         (cmem_address_0): New predicates.
1283         (cmem_address_1): Likewise.
1284         (cmem_address_2): Likewise.
1285         (cmem_address): Likewise.
1286
1287 2016-04-28  Segher Boessenkool  <segher@kernel.crashing.org>
1288
1289         * config/rs6000/rs6000.c (machine_function): Rename
1290         insn_chain_scanned_p to spe_insn_chain_scanned_p.
1291         (rs6000_stack_info): Adjust.
1292
1293 2016-04-28  Joern Rennecke  <joern.rennecke@embecosm.com>
1294             Andrew Burgess  <andrew.burgess@embecosm.com>
1295
1296         * config/arc/constraints.md (Usd): Convert to define_constraint.
1297         (Us<): Likewise.
1298         (Us>): Likewise.
1299
1300 2016-04-28  Jakub Jelinek  <jakub@redhat.com>
1301
1302         PR target/70821
1303         * config/i386/sync.md (define_peephole2 *atomic_fetch_add_cmp<mode>):
1304         Add new peephole2 where the first insn is *mov<mode>_or instead of
1305         *mov<mode>_internal.
1306
1307 2016-04-28  Segher Boesssenkool  <segher@kernel.crashing.org>
1308
1309         * tracer.c (bb_seen): Make static.
1310
1311 2016-04-28  Andrew Burgess  <andrew.burgess@embecosm.com>
1312
1313         * common/config/arc/arc-common.c (arc_handle_option): Add NPS400
1314         support, setup defaults.
1315         * config/arc/arc-opts.h (enum processor_type): Add NPS400.
1316         * config/arc/arc.c (arc_init): Add NPS400 support.
1317         * config/arc/arc.h (CPP_SPEC): Add NPS400 defines.
1318         (TARGET_ARC700): NPS400 is also an ARC700.
1319         * config/arc/arc.opt: Add NPS400 options to -mcpu=.
1320
1321 2016-04-28  Segher Boessenkool  <segher@kernel.crashing.org>
1322
1323         PR target/70668
1324         * config/nds32/nds32.md (casesi): Don't access the operands array
1325         out of bounds.
1326
1327 2016-04-28  Uros Bizjak  <ubizjak@gmail.com>
1328
1329         * config/i386/i386.md (zeroing peephole2): Use general_reg_operand.
1330         (or $-1,reg peephole2): Ditto.
1331         (strict_low_part zeroing peephole2): Use SWI12 mode iterator.
1332
1333 2016-04-28  Markus Trippelsdorf  <markus@trippelsdorf.de>
1334
1335         * doc/extend.texi (Common Function Attributes) [optimize]:
1336         Discourage use of the optimize attribute.
1337
1338 2016-04-28  Bill Seurer  <seurer@linux.vnet.ibm.com>
1339
1340         * config/rs6000/rs6000-builtin.def (vec_adde): Change vec_adde to a
1341         special case builtin.
1342         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove
1343         ALTIVEC_BUILTIN_VEC_ADDE.
1344         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
1345         support for ALTIVEC_BUILTIN_VEC_ADDE.
1346         * config/rs6000/rs6000.c (altivec_init_builtins): Add definition
1347         for __builtin_vec_adde.
1348
1349 2016-04-28  Jakub Jelinek  <jakub@redhat.com>
1350
1351         * config/i386/i386.md (sse4_1_round<mode>2): Add avx512f alternative.
1352         * config/i386/sse.md (sse4_1_round<ssescalarmodesuffix>): Likewise.
1353
1354 2016-04-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1355
1356         PR testsuite/70595
1357         * doc/sourcebuild.texi (Effective-Target Keywords, Other
1358         attributes): Document cilkplus_runtime.
1359
1360 2016-04-28  Martin Jambor  <mjambor@suse.cz>
1361
1362         * tree-cfg.c (verify_expr): Verify that local declarations belong to
1363         this function.  Call verify_expr on MEM_REFs and bases of other
1364         handled_components.
1365
1366 2016-04-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1367
1368         * internal-fn.c (expand_arith_overflow): Convert preprocessor check
1369         for WORD_REGISTER_OPERATIONS to runtime check.
1370
1371 2016-04-28  Claudiu Zissulescu  <claziss@synopsys.com>
1372
1373         * config/arc/arc.h (ASM_SPEC): Pass mfpuda to assembler.
1374
1375 2016-04-28  Claudiu Zissulescu  <claziss@synopsys.com>
1376
1377         * config/arc/arc.c (arc_process_double_reg_moves): Fix for
1378         big-endian compilation.
1379         * config/arc/arc.md (addf3): Likewise.
1380         (subdf3): Likewise.
1381         (muldf3): Likewise.
1382
1383 2016-04-28  Richard Biener  <rguenther@suse.de>
1384
1385         PR tree-optimization/70840
1386         * match.pd: powi(-x, y) and powi(|x|,y) -> powi(x,y) if y is even;
1387         Fix pow(copysign(x, y), z) -> pow(x, z) and add powi variant;
1388         Mark x * pow(x,c) -> pow(x,c+1) commutative.
1389         Add powi(x,y) * powi(z,y) -> powi(x*z,y).
1390
1391 2015-04-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1392
1393         * config/aarch64/aarch64.h (WORD_REGISTER_OPERATIONS): Define to 0
1394         and explain why in a comment.
1395
1396 2016-04-28  Claudiu Zissulescu  <claziss@synopsys.com>
1397
1398         * config/arc/arc.md (cpu_facility): Add fpx variant.
1399         (subdf3): Prohibit use reverse sub when assist operations option
1400         is enabled.
1401         * config/arc/fpx.md (subdf3_insn, *dsubh_peep2_insn): Allow drsub
1402         instructions only when FPX is enabled.
1403         * testsuite/gcc.target/arc/trsub.c: New test.
1404
1405 2016-04-28  Uros Bizjak  <ubizjak@gmail.com>
1406
1407         * config/i386/i386.md (*fop_<mode>_1_mixed): Do not check for
1408         mult_operator when calculating "type" attribute.
1409         (*fop_<mode>_1_i387): Ditto.
1410         (*fop_xf_1_i387): Ditto.
1411         (x87 stack loads peephole2): Add "reg = op (mem, reg)" peephole2.
1412         Use std::swap to swap operands.  Use RTL expressions to generate
1413         converted pattern.
1414
1415 2016-04-28  Claudiu Zissulescu  <claziss@synopsys.com>
1416             Joern Rennecke  <joern.rennecke@embecosm.com>
1417
1418         * config/arc/arc-protos.h (arc_legitimize_pic_address): Remove
1419         declaration.
1420         (emit_pic_move): Remove.
1421         (arc_eh_uses, insn_is_tls_gd_dispatch): Declare.
1422         * config/arc/arc.c (emit_pic_move): Removed.
1423         (TARGET_HAVE_TLS): Define.
1424         (arc_conditional_register_usage): Test for arc_tp_regno.
1425         (arc_print_operand, arc_print_operand_address): Handle TLS
1426         unspecs.
1427         (arc_needs_pcl_p): New function.
1428         (arc_legitimate_pc_offset_p): Use arc_needs_pcl_p.
1429         (arc_legitimate_pic_addr_p): Handle TLS unspecs.
1430         (arc_raw_symbolic_reference_mentioned_p): Likewise.
1431         (arc_get_tp, arc_emit_call_tls_get_addr): New function.
1432         (arc_legitimize_tls_address): Likewise.
1433         (DTPOFF_ZERO_SYM): Define.
1434         (arc_legitimize_pic_address): Make it static, handle TLS cases.
1435         (arc_output_pic_addr_const): Print TLS unspecs.
1436         (prepare_pic_move): New function, replaces emit_pic_move.
1437         (arc_legitimate_constant_p): Handle TLS unspecs.
1438         (arc_legitimate_address_p): Likewise.
1439         (arc_rewrite_small_data_p): Use assert for TLS constants.
1440         (prepare_move_operands): Use prepare_pic_move.
1441         (arc_legitimize_address): Legitimize tls addresses.
1442         (arc_epilogue_uses): Check for arc_tp_regno.
1443         (arc_eh_uses, insn_is_tls_gd_dispatch): New function.
1444         * config/arc/arc.h [DEFAULT_LIBC != LIBC_UCLIBC] (EXTRA_SPECS):
1445         Define.
1446         [DEFAULT_LIBC != LIBC_UCLIBC] (ARC_TLS_EXTRA_START_SPEC):
1447         Likewise.
1448         [DEFAULT_LIBC != LIBC_UCLIBC] (STARTFILE_SPEC): Add
1449         %(arc_tls_extra_start_spec).
1450         (TARGET_CPU_CPP_BUILTINS): Define __ARC_TLS_REGNO__.
1451         (REGNO_OK_FOR_BASE_P): Check for arc_tp_regno.
1452         (EH_USES): Define.
1453         (INSN_REFERENCES_ARE_DELAYED): Use insn_is_tls_gd_dispatch.
1454         * config/arc/arc.md (UNSPEC_TLS_GD, UNSPEC_TLS_LD, UNSPEC_TLS_IE)
1455         (UNSPEC_TLS_OFF): Add.
1456         (R10_REG): Define.
1457         (tls_load_tp_soft, tls_gd_load, tls_gd_get_addr, tls_gd_dispatch)
1458         (get_thread_pointersi): New patterns.
1459         * config/arc/arc.opt (mtp-regno): New option.
1460         * config/arc/predicates.md (move_src_operand): Handle TLS symbols.
1461         (move_dest_operand): Likewise.
1462         * configure: Regenerate.
1463         * configure.ac: Add arc*-*-* case to test for tls.
1464         * doc/invoke.texi (ARC options): Document mtp-regno.
1465
1466 2016-04-28  Claudiu Zissulescu  <claziss@synopsys.com>
1467
1468         * config/arc/arc.c (arc_vector_mode_supported_p): Add support for
1469         the new ARC HS SIMD instructions.
1470         (arc_preferred_simd_mode): New function.
1471         (arc_autovectorize_vector_sizes): Likewise.
1472         (TARGET_VECTORIZE_PREFERRED_SIMD_MODE)
1473         (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
1474         (arc_init_reg_tables): Accept new ARC HS SIMD modes.
1475         (arc_init_builtins): Add new SIMD builtin types.
1476         (arc_split_move): Handle 64 bit vector moves.
1477         * config/arc/arc.h (TARGET_PLUS_DMPY, TARGET_PLUS_MACD)
1478         (TARGET_PLUS_QMACW): Define.
1479         * config/arc/builtins.def (QMACH, QMACHU, QMPYH, QMPYHU, DMACH)
1480         (DMACHU, DMPYH, DMPYHU, DMACWH, DMACWHU, VMAC2H, VMAC2HU, VMPY2H)
1481         (VMPY2HU, VADDSUB2H, VSUBADD2H, VADDSUB, VSUBADD, VADDSUB4H)
1482         (VSUBADD4H): New builtins.
1483         * config/arc/simdext.md: Add new ARC HS SIMD instructions.
1484         * testsuite/gcc.target/arc/builtin_simdarc.c: New file.
1485
1486 2016-04-28  Eduard Sanou  <dhole@openmailbox.org>
1487             Matthias Klose  <doko@debian.org>
1488
1489         * doc/cppenv.texi: Document SOURCE_DATE_EPOCH environment variable.
1490
1491 2016-04-28  Richard Biener  <rguenther@suse.de>
1492
1493         PR middle-end/70777
1494         * fold-const.c (fold_binary_loc): Remove x*x to pow(x,2.0)
1495         canonicalization.
1496
1497 2016-04-28  Oleg Endo  <olegendo@gcc.gnu.org>
1498
1499         * common/config/sh/sh-common.c: Remove SH5 support.
1500         * config/sh/constraints.md: Likewise.
1501         * config/sh/config/sh/elf.h: Likewise.
1502         * config/sh/linux.h: Likewise.
1503         * config/sh/netbsd-elf.h: Likewise.
1504         * config/sh/predicates.md: Likewise.
1505         * config/sh/sh-c.c: Likewise.
1506         * config/sh/sh-protos.h: Likewise.
1507         * config/sh/sh.c: Likewise.
1508         * config/sh/sh.h: Likewise.
1509         * config/sh/sh.md: Likewise.
1510         * config/sh/sh.opt: Likewise.
1511         * config/sh/sync.md: Likewise.
1512         * config/sh/sh64.h: Delete.
1513         * config/sh/shmedia.h: Likewise.
1514         * config/sh/shmedia.md: Likewise.
1515         * config/sh/sshmedia.h: Likewise.
1516         * config/sh/t-netbsd-sh5-64: Likewise.
1517         * config/sh/t-sh64: Likewise.
1518         * config/sh/ushmedia.h: Likewise.
1519
1520 2016-04-28  Uros Bizjak  <ubizjak@gmail.com>
1521
1522         * config/i386/i386.md (sign_extend to memory peephole2s): Use
1523         general_reg_operand instead of register_operand predicate.
1524
1525 2016-04-27  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
1526
1527         * params.def (MIN_PARTITION_SIZE): Set default value to 10000.
1528
1529 2016-04-27  Marc Glisse  <marc.glisse@inria.fr>
1530
1531         * match.pd (A - B > A, A + B < A): New transformations.
1532
1533 2016-04-27  Patrick Palka  <ppalka@gcc.gnu.org>
1534
1535         * genattrtab.c (write_test_expr): New parameter EMIT_PARENS
1536         which defaults to true.  Emit an outer pair of parentheses only if
1537         EMIT_PARENS.  When continuing a chain of && or || (or & or |),
1538         don't emit parentheses for the right-hand operand.
1539
1540 2016-04-27  Jeff Law  <law@redhat.com>
1541
1542         * tree-ssa-dom.c (record_temporary_equivalences): Fix typo in comment.
1543
1544 2016-04-27  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1545
1546         * config/rs6000/altivec.md (altivec_lvx_<mode>): Remove.
1547         (altivec_lvx_<mode>_internal): Document.
1548         (altivec_lvx_<mode>_2op): New define_insn.
1549         (altivec_lvx_<mode>_1op): Likewise.
1550         (altivec_lvx_<mode>_2op_si): Likewise.
1551         (altivec_lvx_<mode>_1op_si): Likewise.
1552         (altivec_stvx_<mode>): Remove.
1553         (altivec_stvx_<mode>_internal): Document.
1554         (altivec_stvx_<mode>_2op): New define_insn.
1555         (altivec_stvx_<mode>_1op): Likewise.
1556         (altivec_stvx_<mode>_2op_si): Likewise.
1557         (altivec_stvx_<mode>_1op_si): Likewise.
1558         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
1559         Expand vec_ld and vec_st during parsing.
1560         * config/rs6000/rs6000.c (altivec_expand_lvx_be): Commentary
1561         changes.
1562         (altivec_expand_stvx_be): Likewise.
1563         (altivec_expand_lv_builtin): Expand lvx built-ins to expose the
1564         address-masking behavior in RTL.
1565         (altivec_expand_stv_builtin): Expand stvx built-ins to expose the
1566         address-masking behavior in RTL.
1567         (altivec_expand_builtin): Change builtin code arguments for calls
1568         to altivec_expand_stv_builtin and altivec_expand_lv_builtin.
1569         (insn_is_swappable_p): Avoid incorrect swap optimization in the
1570         presence of lvx/stvx patterns.
1571         (alignment_with_canonical_addr): New function.
1572         (alignment_mask): Likewise.
1573         (find_alignment_op): Likewise.
1574         (recombine_lvx_pattern): Likewise.
1575         (recombine_stvx_pattern): Likewise.
1576         (recombine_lvx_stvx_patterns): Likewise.
1577         (rs6000_analyze_swaps): Perform a pre-pass to recognize lvx and
1578         stvx patterns from expand.
1579         * config/rs6000/vector.md (vector_altivec_load_<mode>): Use new
1580         expansions.
1581         (vector_altivec_store_<mode>): Likewise.
1582
1583 2016-04-26  Evandro Menezes  <e.menezes@samsung.com>
1584
1585         * config/aarch64/aarch64.md
1586         (*movhf_aarch64): Add "movi %0, #0" to zero up register and
1587         remove the "fp" attributes.
1588         (*movsf_aarch64): Add "movi %0, #0" to zero up register and
1589         add the "simd" attributes.
1590         (*movdf_aarch64): Likewise.
1591         (*movtf_aarch64): Remove the "fp" attributes.
1592         * testsuite/gcc.target/aarch64/fmovf-zero-reg.c: Update accordingly.
1593         * testsuite/gcc.target/aarch64/fmovd-zero-reg.c: Likewise.
1594
1595 2016-04-27  David Malcolm  <dmalcolm@redhat.com>
1596
1597         * emit-rtl.c (maybe_set_first_label_num): Strengthen param from
1598         rtx to rtx_code_label *.
1599         * rtl.h (maybe_set_first_label_num): Likewise.
1600
1601 2016-04-27  David Malcolm  <dmalcolm@redhat.com>
1602
1603         * df-core.c (df_add_problem): Make the problem param be const.
1604         (df_remove_problem): Make local "problem" be const.
1605         * df-problems.c (problem_RD): Make const.
1606         (problem_LR): Likewise.
1607         (problem_LIVE): Likewise.
1608         (problem_MIR): Likewise.
1609         (problem_CHAIN): Likewise.
1610         (problem_WORD_LR): Likewise.
1611         (problem_NOTE): Likewise.
1612         (problem_MD): Likewise.
1613         * df-scan.c (problem_SCAN): Likewise.
1614         * df.h (struct df_problem): Make field "dependent_problem" be
1615         const.
1616         (struct dataflow): Likewise for field "problem".
1617         (df_add_problem): Make param const.
1618
1619 2016-04-27  Uros Bizjak  <ubizjak@gmail.com>
1620
1621         * config/i386/i386.c (ix86_spill_class): Enable for TARGET_SSE2 when
1622         inter-unit moves to/from vector registers are enabled.  Do not disable
1623         for TARGET_MMX.
1624
1625 2016-04-27  David Malcolm  <dmalcolm@redhat.com>
1626
1627         * df.h (DF_SCAN, DF_LR, DF_LIVE, DF_RD, DF_CHAIN, DF_WORD_LR,
1628         DF_NOTE, DF_MD, DF_MIR, DF_LAST_PROBLEM_PLUS1): Convert from
1629         #define to...
1630         (enum df_problem_id): ...this new enum.
1631         (struct df_problem): Convert field "id" from "int" to
1632         enum df_problem_id.
1633
1634 2016-04-27  David Malcolm  <dmalcolm@redhat.com>
1635
1636         * rtl.def: Update comment for "things in the instruction chain" to
1637         reflect the removal of the leading "i" field for INSN_UID in
1638         r210360.  Fix bogus apostrophe.
1639
1640 2016-04-27  Uros Bizjak  <ubizjak@gmail.com>
1641
1642         * config/i386/i386.md
1643         (lea arith with mem operand + setcc peephole2): Set operator mode.
1644
1645 2016-04-27  H.J. Lu  <hongjiu.lu@intel.com>
1646
1647         PR target/70155
1648         * config/i386/i386.c (scalar_to_vector_candidate_p): Renamed to ...
1649         (dimode_scalar_to_vector_candidate_p): This.
1650         (timode_scalar_to_vector_candidate_p): New function.
1651         (scalar_to_vector_candidate_p): Likewise.
1652         (timode_check_non_convertible_regs): Likewise.
1653         (timode_remove_non_convertible_regs): Likewise.
1654         (remove_non_convertible_regs): Likewise.
1655         (remove_non_convertible_regs): Renamed to ...
1656         (dimode_remove_non_convertible_regs): This.
1657         (scalar_chain::~scalar_chain): Make it virtual.
1658         (scalar_chain::compute_convert_gain): Make it pure virtual.
1659         (scalar_chain::mark_dual_mode_def): Likewise.
1660         (scalar_chain::convert_insn): Likewise.
1661         (scalar_chain::convert_registers): Likewise.
1662         (scalar_chain::add_to_queue): Make it protected.
1663         (scalar_chain::emit_conversion_insns): Likewise.
1664         (scalar_chain::replace_with_subreg): Likewise.
1665         (scalar_chain::replace_with_subreg_in_insn): Likewise.
1666         (scalar_chain::convert_op): Likewise.
1667         (scalar_chain::convert_reg): Likewise.
1668         (scalar_chain::make_vector_copies): Likewise.
1669         (scalar_chain::convert_registers): New pure virtual function.
1670         (class dimode_scalar_chain): New class.
1671         (class timode_scalar_chain): Likewise.
1672         (scalar_chain::mark_dual_mode_def): Renamed to ...
1673         (dimode_scalar_chain::mark_dual_mode_def): This.
1674         (timode_scalar_chain::mark_dual_mode_def): New function.
1675         (timode_scalar_chain::convert_insn): Likewise.
1676         (dimode_scalar_chain::convert_registers): Likewise.
1677         (scalar_chain::compute_convert_gain): Renamed to ...
1678         (dimode_scalar_chain::compute_convert_gain): This.
1679         (scalar_chain::replace_with_subreg): Renamed to ...
1680         (dimode_scalar_chain::replace_with_subreg): This.
1681         (scalar_chain::replace_with_subreg_in_insn): Renamed to ...
1682         (dimode_scalar_chain::replace_with_subreg_in_insn): This.
1683         (scalar_chain::make_vector_copies): Renamed to ...
1684         (dimode_scalar_chain::make_vector_copies): This.
1685         (scalar_chain::convert_reg): Renamed to ...
1686         (dimode_scalar_chain::convert_reg ): This.
1687         (scalar_chain::convert_op): Renamed to ...
1688         (dimode_scalar_chain::convert_op): This.
1689         (scalar_chain::convert_insn): Renamed to ...
1690         (dimode_scalar_chain::convert_insn): This.
1691         (scalar_chain::convert): Call convert_registers.
1692         (convert_scalars_to_vector): Change to scalar_chain pointer to
1693         use timode_scalar_chain in 64-bit mode and dimode_scalar_chain
1694         in 32-bit mode.  Delete scalar_chain pointer.  Call
1695         free_dominance_info in 64-bit mode.
1696         (pass_stv::gate): Remove TARGET_64BIT check.
1697         (ix86_option_override): Put the 64-bit STV pass before the CSE
1698         pass.
1699
1700 2016-04-27  Pierre-Marie de Rodat  <derodat@adacore.com>
1701
1702         * dwarf2out.h (struct dw_loc_descr_node): Remove the
1703         dw_loc_frame_offset field.
1704         * dwarf2out.c (new_loc_descr): Likewise.
1705         (resolve_args_picking_1): Turn the VISITED hash set into a
1706         FRAME_OFFSET hash map. Use it to associate a frame offset to
1707         visited nodes. Remove uses of the CHECKING_P macro.
1708         (resolve_args_picking): Update call to resolve_args_picking_1.
1709
1710 2016-04-27  Martin Liska  <mliska@suse.cz>
1711
1712         * tree-ssa-loop-ivopts.c (iv_ca_dump): Fix level of indentation.
1713         (free_loop_data): Release vuses of groups.
1714
1715 2016-04-27  Bin Cheng  <bin.cheng@arm.com>
1716
1717         * tree-ssa-loop-ivopts.c (struct iv): Use pointer to struct iv_use
1718         instead of redundant use_id and boolean have_use_for.
1719         (struct iv_use): Change sub_id into group_id.  Remove field next.
1720         Move fields: related_cands, n_map_members, cost_map and selected
1721         to ...
1722         (struct iv_group): ... here.  New structure.
1723         (struct iv_common_cand): Use structure declaration directly.
1724         (struct ivopts_data, iv_ca, iv_ca_delta): Rename fields.
1725         (MAX_CONSIDERED_USES): Rename macro to ...
1726         (MAX_CONSIDERED_GROUPS): ... here.
1727         (n_iv_uses, iv_use, n_iv_cands, iv_cand): Delete.
1728         (dump_iv, dump_use, dump_cand): Refactor format of dump information.
1729         (dump_uses): Rename to ...
1730         (dump_groups): ... here.  Update all uses.
1731         (tree_ssa_iv_optimize_init, alloc_iv): Update all uses.
1732         (find_induction_variables): Refactor format of dump information.
1733         (record_sub_use): Delete.
1734         (record_use): Update all uses.
1735         (record_group): New function.
1736         (record_group_use, find_interesting_uses_op): Call above functions.
1737         Update all uses.
1738         (find_interesting_uses_cond): Ditto.
1739         (group_compare_offset): New function.
1740         (split_all_small_groups): Rename to ...
1741         (split_small_address_groups_p): ... here.  Update all uses.
1742         (split_address_groups):  Update all uses.
1743         (find_interesting_uses): Refactor format of dump information.
1744         (add_candidate_1): Update all uses.  Remove redundant check on iv,
1745         base and step.
1746         (add_candidate, record_common_cand): Remove redundant assert.
1747         (add_iv_candidate_for_biv): Update use.
1748         (add_iv_candidate_derived_from_uses): Update all uses.
1749         (add_iv_candidate_for_groups, record_important_candidates): Ditto.
1750         (alloc_use_cost_map): Ditto.
1751         (set_use_iv_cost, get_use_iv_cost): Rename to ...
1752         (set_group_iv_cost, get_group_iv_cost): ... here.  Update all uses.
1753         (determine_use_iv_cost_generic): Ditto.
1754         (determine_group_iv_cost_generic): Ditto.
1755         (determine_use_iv_cost_address): Ditto.
1756         (determine_group_iv_cost_address): Ditto.
1757         (determine_use_iv_cost_condition): Ditto.
1758         (determine_group_iv_cost_cond): Ditto.
1759         (determine_use_iv_cost): Ditto.
1760         (determine_group_iv_cost): Ditto.
1761         (set_autoinc_for_original_candidates): Update all uses.
1762         (find_iv_candidates): Update all uses.  Refactor dump information.
1763         (determine_use_iv_costs): Ditto.
1764         (determine_iv_costs): Ditto.
1765         (iv_ca_cand_for_use): Rename to ...
1766         (iv_ca_cand_for_group): ... here.  Update all uses.
1767         (iv_ca_add_use, iv_ca_add_group): Ditto.
1768         (iv_ca_set_cp, iv_ca_cost, iv_ca_delta_add): Update all uses.
1769         (iv_ca_delta_join, iv_ca_delta_reverse, iv_ca_delta_free): Ditto.
1770         (iv_ca_new, iv_ca_dump, iv_ca_extend, iv_ca_narrow): Ditto.
1771         (iv_ca_prune, cheaper_cost_with_cand, iv_ca_replace): Ditto.
1772         (try_add_cand_for, try_improve_iv_set, find_optimal_iv_set): Ditto.
1773         (create_new_iv, adjust_iv_update_pos): Ditto.
1774         (rewrite_use_address): Delete.
1775         (rewrite_use_address_1): Rename to ...
1776         (rewrite_use_address): ... here.
1777         (rewrite_use_compare): Update all uses.
1778         (rewrite_use): Delete.
1779         (rewrite_uses): Rename to ...
1780         (rewrite_groups): ... here.  Update all uses.
1781         (remove_unused_ivs, free_loop_data): Update all uses.
1782         (tree_ssa_iv_optimize_finalize, tree_ssa_iv_optimize_loop): Ditto.
1783
1784 2016-04-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1785
1786         * rtlanal.c (nonzero_bits1): Convert preprocessor check
1787         for WORD_REGISTER_OPERATIONS to runtime check.
1788
1789 2016-04-27  Richard Biener  <rguenther@suse.de>
1790
1791         PR ipa/70760
1792         * tree-ssa-structalias.c (find_func_aliases_for_call): Use
1793         aggregate_value_p to determine if a function result is
1794         returned by reference.
1795         (ipa_pta_execute): Functions having their address taken are
1796         not automatically nonlocal.
1797
1798 2016-04-27  Jakub Jelinek  <jakub@redhat.com>
1799
1800         PR sanitizer/70683
1801         * tree-core.h (enum operand_equal_flag): Add OEP_NO_HASH_CHECK.
1802         * fold-const.c (operand_equal_p): If flag_checking and
1803         OEP_NO_HASH_CHECK is not set in flag, recurse with OEP_NO_HASH_CHECK
1804         and if it returns non-zero, assert iterative_hash_expr on both
1805         args is the same.
1806
1807 2016-04-27  Bernd Schmidt  <bschmidt@redhat.com>
1808
1809         * doc/invoke.texi (-frename-registers): Also enabled at -Os.
1810
1811 2016-04-27  Nick Clifton  <nickc@redhat.com>
1812
1813         PR middle-end/49889
1814         * varasm.c (merge_weak): Generate an error if an attempt is made
1815         to convert a non-weak static function into a weak, public function.
1816
1817 2016-04-27  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
1818
1819         * params.def (MAX_PARTITION_SIZE): New param.
1820         * doc/invoke.texi: Document lto-max-partition.
1821
1822 2016-04-27  Richard Biener  <rguenther@suse.de>
1823
1824         PR ipa/70785
1825         * tree-ssa-structalias.c (refered_from_nonlocal_fn): New
1826         function cummulating used_from_other_partition, externally_visible
1827         and force_output from aliases.
1828         (refered_from_nonlocal_var): Likewise.
1829         (ipa_pta_execute): Use call_for_symbol_and_aliases to cummulate
1830         node flags properly.
1831
1832 2016-04-27  Bernd Schmidt  <bschmidt@redhat.com>
1833
1834         * doc/invoke.texi (Warning Options): Add -Wmemset-elt-size.
1835         (-Wmemset-elt-size): New item.
1836
1837 2016-04-27  Eric Botcazou  <ebotcazou@adacore.com>
1838
1839         PR ada/70759
1840         * stor-layout.h (internal_reference_types): Delete.
1841         * stor-layout.c (reference_types_internal): Likewise.
1842         (internal_reference_types): Likewise.
1843         (layout_type) <REFERENCE_TYPE>: Adjust.
1844
1845 2016-04-27  Jakub Jelinek  <jakub@redhat.com>
1846
1847         PR sanitizer/70683
1848         * tree.h (inchash::add_expr): Add FLAGS argument.
1849         * tree.c (inchash::add_expr): Likewise.  If not OEP_ADDRESS_OF,
1850         use STRIP_NOPS first.  For INTEGER_CST assert not OEP_ADDRESS_OF.
1851         For REAL_CST and !HONOR_SIGNED_ZEROS (t) hash +/- 0 the same.
1852         Formatting fix.  Adjust recursive calls.  For tcc_comparison,
1853         if swap_tree_comparison (code) is smaller than code, hash that
1854         and arguments in the other order.  Hash CONVERT_EXPR the same
1855         as NOP_EXPR.  For OEP_ADDRESS_OF hash MEM_REF with 0 offset
1856         of ADDR_EXPR of decl as the decl itself.  Add or remove
1857         OEP_ADDRESS_OF from recursive flags as needed.  For
1858         FMA_EXPR, WIDEN_MULT_{PLUS,MINUS}_EXPR hash the first two
1859         operands commutatively and only the third one normally.
1860         For internal CALL_EXPR hash in CALL_EXPR_IFN.
1861
1862 2016-04-27  Sebastian Huber  <sebastian.huber@embedded-brains.de>
1863
1864         * config/rtems.h (LIB_SPEC): Add -latomic.
1865
1866 2016-04-27  Joel Sherrill  <joel@rtems.org>
1867
1868         * config/microblaze/rtems.h: Redefine LINK_SPEC to avoid
1869         xilink.ld and flags not relevant to RTEMS.
1870
1871 2016-04-26  Zhouyi Zhou  <yizhouzhou@ict.ac.cn>
1872
1873         * toplev.c (backend_init_target): Avoid calling init_reload when using
1874         LRA.
1875
1876 2016-04-26  Jakub Jelinek  <jakub@redhat.com>
1877
1878         * reorg.c (try_merge_delay_insns): Declare i and j inside the
1879         for loops rather than one for the whole function.
1880
1881 2016-04-26  Marc Glisse  <marc.glisse@inria.fr>
1882
1883         * match.pd (X + CST CMP X): New transformation.
1884
1885 2016-04-26  Marc Glisse  <marc.glisse@inria.fr>
1886
1887         * genmatch.c (write_predicate): Add ATTRIBUTE_UNUSED.
1888         * fold-const.c (fold_binary_loc): Remove 2 transformations
1889         superseded by match.pd.
1890         * match.pd (x+x -> x*2): Generalize to integers.
1891
1892 2016-04-26  Bernd Schmidt  <bschmidt@redhat.com>
1893
1894         * config/i386/i386.md (operation on memory peephole): Duplicate an
1895         existing peephole and adapt it to match lea rather than an operation
1896         that clobbers CC.
1897
1898         PR rtl-optimization/57193
1899         * opts.c (default_options_table): Add OPT_frename_registers at -O2
1900         and above.
1901         * doc/invoke.texi (-frename-registers, -O2): Update documentation.
1902
1903 2016-04-26  Bin Cheng  <bin.cheng@arm.com>
1904
1905         * tree-if-conv.c (any_pred_load_store): New static variable.
1906         (if_convertible_gimple_assign_stmt_p): Remove parameter.  Use
1907         any_pred_load_store instead of and_mask_load_store.
1908         (if_convertible_stmt_p, if_convertible_loop_p_1): Ditto.
1909         (if_convertible_loop_p, insert_gimplified_predicates): Ditto.
1910         (combine_blocks, tree_if_conversion): Ditto.
1911
1912 2016-04-26  Bin Cheng  <bin.cheng@arm.com>
1913
1914         PR tree-optimization/70771
1915         PR tree-optimization/70775
1916         * tree-if-conv.c (if_convertible_phi_p): Remove check on special
1917         virtual PHI nodes.  Delete parameter.
1918         (if_convertible_loop_p_1): Delete argument to above function.
1919         (predicate_all_scalar_phis): Delete code handling single-argument
1920         PHIs.
1921         (tree_if_conversion): Mark and update virtual SSA.
1922
1923 2016-04-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1924
1925         PR target/61821
1926         * config/i386/i386.c (LARGECOMM_SECTION_ASM_OP): Define default.
1927         (x86_elf_aligned_common): Rename to ...
1928         (x86_elf_aligned_decl_common): ... this.
1929         Add decl arg.  Switch to .lbss for largecomm object.  Use
1930         LARGECOMM_SECTION_ASM_OP.
1931         * config/i386/i386-protos.h (x86_elf_aligned_common): Reflect
1932         renaming.
1933         * config/i386/x86-64.h (ASM_OUTPUT_ALIGNED_COMMON): Rename to ...
1934         (ASM_OUTPUT_ALIGNED_DECL_COMMON): ... this.
1935         Pass new decl arg.
1936         * config/i386/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
1937         [!USE_GAS] (LARGECOMM_SECTION_ASM_OP): Define.
1938
1939 2016-04-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1940
1941         PR target/59407
1942         * config/i386/i386.c (SECTION_LARGE): Define.
1943         (x86_64_elf_select_section): Set it for large data/bss sections.
1944         Only clear SECTION_WRITE for .lrodata.
1945         (x86_64_elf_section_type_flags): Set SECTION_LARGE for large
1946         data/bss sections.
1947         * config/i386/sol2.h (MACH_DEP_SECTION_ASM_FLAG): Define.
1948         * varasm.c (default_elf_asm_named_section): Grow flagchars.
1949         [MACH_DEP_SECTION_ASM_FLAG] Emit MACH_DEP_SECTION_ASM_FLAG for
1950         SECTION_MACH_DEP.
1951         * doc/tm.texi.in (Sections, MACH_DEP_SECTION_ASM_FLAG): Describe.
1952         * doc/tm.texi: Regenerate.
1953
1954 2016-04-26  Jakub Jelinek  <jakub@redhat.com>
1955
1956         PR bootstrap/70704
1957         * configure.ac (--enable-checking): Document extra flag, for
1958         non-release builds default to --enable-checking=yes,extra.
1959         If misc checking and extra checking, define CHECKING_P to 2 instead
1960         of 1.
1961         * common.opt (fchecking=): Add.
1962         * doc/invoke.texi (-fchecking=): Document.
1963         * doc/install.texi: Document --enable-checking changes.
1964         * configure: Regenerated.
1965         * config.in: Regenerated.
1966
1967 2016-04-25  Uros Bizjak  <ubizjak@gmail.com>
1968
1969         * config/i386/i386.md (*movxi_internal_avx512f): Use insn type
1970         attribute instead of which_alternative.
1971         * config/i386/sse.md (*mov<mode>_internal): Ditto.
1972         Use EXT_REX_SSE_REG_P where appropriate.
1973
1974 2016-04-25  Uros Bizjak  <ubizjak@gmail.com>
1975
1976         * config/i386/predicates.md (const0_operand): Do not match
1977         const_wide_int code.
1978         (const1_operand): Ditto.
1979
1980 2016-04-25  Uros Bizjak  <ubizjak@gmail.com>
1981
1982         * config/i386/i386.md (*movoi_internal_avx): Set mode attribute to XI
1983         for SSE constm1 operands and TARGET_AVX512VL.
1984         (*movti_internal): Ditto.
1985         (*mov<mode>_or): Use constm1_operand predicate.
1986         * config/i386/sse.md (*mov<mode>_internal): Set mode attribute to XI
1987         for SSE vector_all_ones operands and TARGET_AVX512VL.
1988         * config/i386/predicates.md (constm1_operand): New predicate.
1989         * config/i386/i386.c (standard_sse_constant_opcode): Simplify
1990         emission of constant -1 load.
1991
1992 2016-04-25  Jason Merrill  <jason@redhat.com>
1993
1994         * gdbinit.in: Skip is-a.h.
1995
1996         * attribs.c (register_scoped_attributes): Fix logic.
1997         * attribs.h: Declare register_scoped_attributes.
1998
1999 2016-04-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2000
2001         * config/rs6000/rs6000-builtin.def: Correct pasto error for
2002         stxvd2x and stxvw4x built-in functions.
2003
2004 2016-04-25  DJ Delorie  <dj@redhat.com>
2005
2006         * config/msp430/msp430.md (ashlhi3): Optimize one bit shifts.
2007         (ashrhi3): Likewise.
2008         (lshrhi3): Likewise.
2009
2010 2016-04-25  Richard Biener  <rguenther@suse.de>
2011
2012         PR tree-optimization/70780
2013         * tree-ssa-pre.c (compute_antic_aux): Also return true if the block
2014         wasn't visited yet.
2015         (compute_antic): Mark blocks with abnormal preds as visited as
2016         they have a final empty antic-in solution already.
2017
2018 2016-04-25  Michael Collison  <michael.collison@linaro.org>
2019
2020         * ChangeLog(2016-04-25): Fix ChangeLog formatting.
2021
2022 2016-04-25  Michael Collison  <michael.collison@linaro.org>
2023
2024         * config/arm/neon.md (widen_<us>sum<mode>): New patterns where
2025         mode is VQI to improve mixed mode vectorization.
2026         * config/arm/neon.md (vec_sel_widen_ssum_lo<VQI:mode><VW:mode>3): New
2027         define_insn to match low half of signed vaddw.
2028         * config/arm/neon.md (vec_sel_widen_ssum_hi<VQI:mode><VW:mode>3): New
2029         define_insn to match high half of signed vaddw.
2030         * config/arm/neon.md (vec_sel_widen_usum_lo<VQI:mode><VW:mode>3): New
2031         define_insn to match low half of unsigned vaddw.
2032         * config/arm/neon.md (vec_sel_widen_usum_hi<VQI:mode><VW:mode>3): New
2033         define_insn to match high half of unsigned vaddw.
2034         * config/arm/arm.c (arm_simd_vect_par_cnst_half): New function.
2035         (arm_simd_check_vect_par_cnst_half_p): Likewise.
2036         * config/arm/arm-protos.h (arm_simd_vect_par_cnst_half): Prototype
2037         for new function.
2038         (arm_simd_check_vect_par_cnst_half_p): Likewise.
2039         * config/arm/predicates.md (vect_par_constant_high): Support
2040         big endian and simplify by calling
2041         arm_simd_check_vect_par_cnst_half
2042         (vect_par_constant_low): Likewise.
2043
2044 2016-04-25  Uros Bizjak  <ubizjak@gmail.com>
2045
2046         * config/i386/i386.md (*lea<mode>_general_4): Use const_0_to_3_operand
2047         predicate for operand 2.
2048
2049 2016-04-24  Uros Bizjak  <ubizjak@gmail.com>
2050             H.J. Lu  <hongjiu.lu@intel.com>
2051
2052         * config/i386/i386-protos.h (standard_sse_constant_p): Add
2053         machine_mode argument.
2054         * config/i386/i386.c (standard_sse_constant_p): Return 2 for
2055         constm1_rtx operands.  For VOIDmode constants, get mode from
2056         pred_mode.  Check mode size if the mode is supported by ABI.
2057         (standard_sse_constant_opcode): Do not use standard_constant_p.
2058         Strictly check ABI support for all-ones operands.
2059         (ix86_legitimate_constant_p): Handle TImode, OImode and XImode
2060         immediates. Update calls to standard_sse_constant_p.
2061         (ix86_expand_vector_move): Update calls to standard_sse_constant_p.
2062         (ix86_rtx_costs): Ditto.
2063         * config/i386/i386.md (*movxi_internal_avx512f): Use
2064         nonimmediate_or_sse_const_operand instead of vector_move_operand.
2065         Use (v,BC) alternative instead of (v,C). Use register_operand
2066         checks instead of MEM_P.
2067         (*movoi_internal_avx): Use nonimmediate_or_sse_const_operand instead
2068         of vector_move_operand.  Add (v,BC) alternative and corresponding avx2
2069         isa attribute.  Use register_operand checks instead of MEM_P.
2070         (*movti_internal): Use nonimmediate_or_sse_const_operand for
2071         TARGET_SSE.  Improve TARGET_SSE insn constraint.  Add (v,BC)
2072         alternative and corresponding sse2 isa attribute.
2073         (*movtf_internal, *movdf_internal, *movsf_interal): Update calls
2074         to standard_sse_constant_p.
2075         (FP constant splitters): Ditto.
2076         * config/i386/constraints.md (BC): Do not use standard_sse_constant_p.
2077         (C): Ditto.
2078         * config/i386/predicates.md (constm1_operand): Remove.
2079         (nonimmediate_or_sse_const_operand): Rewrite using RTX.
2080         * config/i386/sse.md (*<avx512>_cvtmask2<ssemodesuffix><mode>): Use
2081         vector_all_ones_operand instead of constm1_operand.
2082
2083 2016-04-24  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2084
2085         * print-rtl.c (print_rtx_insn_vec): New function.
2086         * print-rtl.h: New prototype.
2087         * store-motion.c (struct st_expr): Make avail_stores a vector.
2088         (st_expr_entry): Adjust.
2089         (free_st_expr_entry): Likewise.
2090         (print_store_motion_mems): Likewise.
2091         (find_moveable_store): Likewise.
2092         (compute_store_table): Likewise.
2093         (delete_store): Likewise.
2094         (build_store_vectors): Likewise.
2095
2096 2016-04-24  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2097
2098         * reorg.c (try_merge_delay_insns): Make merged_insns a vector.
2099
2100 2016-04-24  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2101
2102         * vec.h (vec_safe_contains): New function.
2103         (vec::contains): Likewise.
2104         (vec::begin): Likewise.
2105         (vec::end): Likewise.
2106
2107 2016-04-23  Jakub Jelinek  <jakub@redhat.com>
2108
2109         PR sanitizer/70712
2110         * cfgexpand.c (expand_stack_vars): Fix typo.
2111
2112 2016-04-22  Szabolcs Nagy  <szabolcs.nagy@arm.com>
2113
2114         * system.h (list, map, set, vector): Include conditionally.
2115         * auto-profile.c (INCLUDE_MAP, INCLUDE_SET): Define.
2116         * graphite-isl-ast-to-gimple.c (INCLUDE_MAP): Define.
2117         * ipa-icf.c (INCLUDE_LIST): Define.
2118         * config/aarch64/cortex-a57-fma-steering.c (INCLUDE_LIST): Define.
2119         * config/sh/sh.c (INCLUDE_VECTOR): Define.
2120         * config/sh/sh_treg_combine.cc (INCLUDE_ALGORITHM): Define.
2121         (INCLUDE_LIST, INCLUDE_VECTOR): Define.
2122         * cp/logic.cc (INCLUDE_LIST): Define.
2123         * fortran/trans-common.c (INCLUDE_MAP): Define.
2124
2125 2016-04-22  Szabolcs Nagy  <szabolcs.nagy@arm.com>
2126
2127         * auto-profile.c: Remove <string.h> include.
2128         * ipa-icf-gimple.c: Remove <list> include.
2129         * diagnostic.c: Remove <new> include.
2130         * genmatch.c: Likewise.
2131         * pretty-print.c: Likewise.
2132         * toplev.c: Likewise
2133         * c/c-objc-common.c: Likewise.
2134         * cp/error.c: Likewise.
2135         * fortran/error.c: Likewise.
2136
2137 2016-04-22  Richard Biener  <rguenther@suse.de>
2138
2139         * lto-streamer-in.c (input_ssa_names): Do not allocate
2140         GIMPLE_NOP for all SSA names.
2141         * lto-streamer-out.c (output_ssa_names): Do not output
2142         SSA names that should have been released.
2143
2144 2016-04-22  Richard Biener  <rguenther@suse.de>
2145
2146         PR tree-optimization/70740
2147         * tree-ssa-phiprop.c (propagate_with_phi): Handle inserted
2148         VDEF.
2149
2150 2016-04-21  H.J. Lu  <hongjiu.lu@intel.com>
2151
2152         PR target/70750
2153         * config/i386/predicates.md (call_insn_operand): Replace
2154         sibcall_memory_operand with memory_operand.
2155
2156 2016-04-21  Patrick Palka  <ppalka@gcc.gnu.org>
2157
2158         * tree-vrp.c (register_edge_assert_for_2): Remove redundant
2159         has_single_use() tests.
2160         (register_edge_assert_for_1): Likewise.
2161         (find_assert_locations_1): Check the liveness bitmap instead of
2162         checking has_single_use().
2163
2164 2016-04-21  Kirill Yukhin  <kirill.yukhin@intel.com>
2165
2166         PR target/70728
2167         * gcc/config/i386/sse.md (define_insn "<shift_insn><mode>3<mask_name>"):
2168         Extract AVX-512BW constraint from AVX.
2169
2170 2016-04-21  Richard Biener  <rguenther@suse.de>
2171
2172         PR tree-optimization/70725
2173         * tree-if-conv.c (if_convertible_phi_p): Adjust guard
2174         for phi_convertible_by_degenerating_args.
2175         (predicate_all_scalar_phis): Handle single-argument PHIs.
2176
2177 2016-04-21  Richard Biener  <rguenther@suse.de>
2178
2179         PR middle-end/70747
2180         * fold-const.c (fold_comparison): Return properly typed
2181         constant boolean.
2182
2183 2016-04-21  Bin Cheng  <bin.cheng@arm.com>
2184
2185         PR tree-optimization/70715
2186         * tree-ssa-loop-niter.c (loop_exits_before_overflow): Check equality
2187         after expanding BASE using expand_simple_operations.
2188
2189 2016-04-21  Marc Glisse  <marc.glisse@inria.fr>
2190
2191         * match.pd (min(-x, -y), max(-x, -y), min(~x, ~y), max(~x, ~y)):
2192         New transformations.
2193
2194 2016-04-21  Marc Glisse  <marc.glisse@inria.fr>
2195
2196         * match.pd (min(int_max, x), max(int_min, x)): New transformations.
2197
2198 2016-04-20  Jan Hubicka  <jh@suse.cz>
2199
2200         * ipa-inline.c (can_inline_edge_p): Pass caller info to
2201         ultiimate_alias_target.
2202         (update_callee_keys): Likewise.
2203         (lookup_recursive_calls): Likewise.
2204         (speculation_useful_p): Likewise.
2205
2206 2016-04-20  Jan Hubicka  <jh@suse.cz>
2207
2208         PR ipa/70018
2209         * cgraph.c (cgraph_set_nothrow_flag_1): Rename to ...
2210         (set_nothrow_flag_1): ... this; handle interposition correctly;
2211         recurse on aliases and thunks.
2212         (cgraph_node::set_nothrow_flag): New.
2213         * ipa-pure-const.c (ignore_edge_for_nothrow): Ignore calls to
2214         functions compiled with non-call exceptions that binds to current
2215         def.
2216         (propagate_nothrow): Be safe WRT interposition.
2217         * cgraph.h (set_nothrow_flag): Update prototype.
2218
2219 2016-04-18  Jan Hubicka  <jh@suse.cz>
2220
2221         * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also
2222         max_loop_iterations_int.
2223         (tree_unswitch_outer_loop): Likewise.
2224
2225 2016-04-20  Bin Cheng  <bin.cheng@arm.com>
2226
2227         PR tree-optimization/69489
2228         * tree-if-conv.c (phi_convertible_by_degenerating_args): New.
2229         (if_convertible_phi_p): Call phi_convertible_by_degenerating_args.
2230         Revise dump message.
2231         (if_convertible_bb_p): Remove check on edge count of basic block's
2232         predecessors.
2233
2234 2016-04-20  Bin Cheng  <bin.cheng@arm.com>
2235
2236         PR tree-optimization/56625
2237         PR tree-optimization/69489
2238         * tree-data-ref.h (DR_INNERMOST): New macro.
2239         * tree-if-conv.c (innermost_loop_behavior_hash): New class for
2240         hashing struct innermost_loop_behavior.
2241         (ref_DR_map): Remove.
2242         (innermost_DR_map): New map.
2243         (baseref_DR_map): Revise comment.
2244         (hash_memrefs_baserefs_and_store_DRs_read_written_info): Store DR
2245         to innermost_DR_map accroding to its innermost loop behavior.
2246         (ifcvt_memrefs_wont_trap): Get DR from innermost_DR_map according
2247         to its innermost loop behavior.
2248         (if_convertible_loop_p_1): Remove intialization for ref_DR_map.
2249         Add initialization for innermost_DR_map.  Record memory reference
2250         in DR_BASE_ADDRESS if the reference is compound one or it doesn't
2251         have innermost loop behavior.
2252         (if_convertible_loop_p): Remove release for ref_DR_map.  Release
2253         innermost_DR_map.
2254
2255 2016-04-20  Uros Bizjak  <ubizjak@gmail.com>
2256
2257         * config/i386/i386.md (*lea<mode>_general_1): Rename from
2258         *lea_general_1.  Use explicit SWI12 mode interator.
2259         (*lea<mode>_general_2): Rename from *lea_general_2.
2260         Use explicit SWI12 mode interator.
2261         (*lea<mode>_general_3): Rename from *lea_general_3.
2262         Use explicit SWI12 mode interator.
2263         (*lea<SWI12:mode>_general_4): Split from *lea_general_4.
2264         Use explicit SWI12 mode interator.
2265         (*lea<SWI48:mode>_general_4): Split from *lea_general_4.
2266         Use explicit SWI48 mode interator.
2267
2268 2016-04-20  H.J. Lu  <hongjiu.lu@intel.com>
2269
2270         * config/i386/i386.c (ix86_avx256_split_vector_move_misalign):
2271         Short-cut unaligned load and store cases.  Handle all integer
2272         vector modes.
2273         (ix86_expand_vector_move_misalign): Short-cut unaligned load
2274         and store cases.  Call ix86_avx256_split_vector_move_misalign
2275         directly without checking mode class.
2276
2277 2016-04-20  Andrew Pinski  <apinski@cavium.com>
2278             Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2279
2280         PR target/64971
2281         * config/aarch64/aarch64.md (sibcall): Force call
2282         address to be DImode for ILP32.
2283         (sibcall_value): Likewise.
2284
2285 2016-04-20  H.J. Lu  <hongjiu.lu@intel.com>
2286
2287         * doc/invoke.texi: Replace -skip-rax-setup with -mskip-rax-setup.
2288
2289 2016-04-20  Richard Biener  <rguenther@suse.de>
2290
2291         * gimple-match.h (maybe_build_generic_op): Adjust prototype.
2292         * gimple-match-head.c (maybe_build_generic_op): Pass all ops
2293         by reference, clear op1 and op2 when GENERICizing BIT_FIELD_REF.
2294         (maybe_push_res_to_seq): Adjust.
2295         * gimple-fold.c (maybe_build_generic_op): Likewise.
2296
2297 2016-04-20  Marek Polacek  <polacek@redhat.com>
2298
2299         * tree-if-conv.c (is_false_predicate): For NULL_TREE return false
2300         rather than true.
2301
2302 2016-04-20  Ilya Enkovich  <ilya.enkovich@intel.com>
2303
2304         * config/i386/sse.md (vec_unpacks_lo_hi): Always
2305         use kmovw to support AVX512F target.
2306
2307 2016-04-20  Bin Cheng  <bin.cheng@arm.com>
2308
2309         * tree-scalar-evolution.c (interpret_rhs_expr): Handle BIT_AND_EXPR.
2310
2311 2016-04-20  Marek Polacek  <polacek@redhat.com>
2312
2313         PR tree-optimization/70725
2314         * tree-if-conv.c (is_false_predicate): New function.
2315         (predicate_mem_writes): Use it.
2316
2317 2016-04-20  Richard Biener  <rguenther@suse.de>
2318
2319         PR tree-optimization/70726
2320         * tree-vect-stmts.c (vectorizable_shift): Do not use scalar
2321         shift amounts from a pattern stmt operand.
2322
2323 2016-04-20  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
2324
2325         PR target/70674
2326         * config/s390/s390.c (s390_restore_gprs_from_fprs): Pick the new
2327         stack_restore_from_fpr pattern when restoring r15.
2328         (s390_optimize_prologue): Strip away the memory barrier in the
2329         parallel when trying to get rid of restore insns.
2330         * config/s390/s390.md ("stack_restore_from_fpr"): New insn
2331         definition for loading the stack pointer from an FPR.  Compared to
2332         the normal move insn this pattern includes a full memory barrier.
2333
2334 2016-04-19  Jakub Jelinek  <jakub@redhat.com>
2335
2336         PR middle-end/70680
2337         * gimplify.c (gimplify_omp_for): Call omp_notice_variable for
2338         implicitly linear or lastprivate iterator on the outer context.
2339
2340 2016-04-19  H.J. Lu  <hongjiu.lu@intel.com>
2341
2342         * config/i386/i386.c (ix86_legitimate_combined_insn): Remove
2343         alignment check.
2344         * config/i386/i386.md (ssememalign): Removed.
2345         * config/i386/sse.md: Remove ssememalign attribute from patterns.
2346
2347 2016-04-19  H.J. Lu  <hongjiu.lu@intel.com>
2348
2349         PR target/69201
2350         * config/i386/avx512bwintrin.h (_mm512_mask_loadu_epi16): Pass
2351         const short * to __builtin_ia32_loaddquhi512_mask.
2352         (_mm512_maskz_loadu_epi16): Likewise.
2353         (_mm512_mask_storeu_epi16): Pass short * to
2354         __builtin_ia32_storedquhi512_mask.
2355         (_mm512_mask_loadu_epi8): Pass const char * to
2356         __builtin_ia32_loaddquqi512_mask.
2357         (_mm512_maskz_loadu_epi8): Likewise.
2358         (_mm512_mask_storeu_epi8): Pass char * to
2359         __builtin_ia32_storedquqi512_mask.
2360         * config/i386/avx512fintrin.h (_mm512_loadu_pd): Pass
2361         const double * to __builtin_ia32_loadupd512_mask.
2362         (_mm512_mask_loadu_pd): Likewise.
2363         (_mm512_maskz_loadu_pd): Likewise.
2364         (_mm512_storeu_pd): Pass double * to
2365         __builtin_ia32_storeupd512_mask.
2366         (_mm512_mask_storeu_pd): Likewise.
2367         (_mm512_loadu_ps): Pass const float * to
2368         __builtin_ia32_loadups512_mask.
2369         (_mm512_mask_loadu_ps): Likewise.
2370         (_mm512_maskz_loadu_ps): Likewise.
2371         (_mm512_storeu_ps): Pass float * to
2372         __builtin_ia32_storeups512_mask.
2373         (_mm512_mask_storeu_ps): Likewise.
2374         (_mm512_mask_loadu_epi64): Pass const long long * to
2375         __builtin_ia32_loaddqudi512_mask.
2376         (_mm512_maskz_loadu_epi64): Likewise.
2377         (_mm512_mask_storeu_epi64): Pass long long *
2378         to __builtin_ia32_storedqudi512_mask.
2379         (_mm512_loadu_si512): Pass const int * to
2380         __builtin_ia32_loaddqusi512_mask.
2381         (_mm512_mask_loadu_epi32): Likewise.
2382         (_mm512_maskz_loadu_epi32): Likewise.
2383         (_mm512_storeu_si512): Pass int * to
2384         __builtin_ia32_storedqusi512_mask.
2385         (_mm512_mask_storeu_epi32): Likewise.
2386         * config/i386/avx512vlbwintrin.h (_mm256_mask_storeu_epi8): Pass
2387         char * to __builtin_ia32_storedquqi256_mask.
2388         (_mm_mask_storeu_epi8): Likewise.
2389         (_mm256_mask_loadu_epi16): Pass const short * to
2390         __builtin_ia32_loaddquhi256_mask.
2391         (_mm256_maskz_loadu_epi16): Likewise.
2392         (_mm_mask_loadu_epi16): Pass const short * to
2393         __builtin_ia32_loaddquhi128_mask.
2394         (_mm_maskz_loadu_epi16): Likewise.
2395         (_mm256_mask_loadu_epi8): Pass const char * to
2396         __builtin_ia32_loaddquqi256_mask.
2397         (_mm256_maskz_loadu_epi8): Likewise.
2398         (_mm_mask_loadu_epi8): Pass const char * to
2399         __builtin_ia32_loaddquqi128_mask.
2400         (_mm_maskz_loadu_epi8): Likewise.
2401         (_mm256_mask_storeu_epi16): Pass short * to.
2402         __builtin_ia32_storedquhi256_mask.
2403         (_mm_mask_storeu_epi16): Pass short * to.
2404         __builtin_ia32_storedquhi128_mask.
2405         * config/i386/avx512vlintrin.h (_mm256_mask_loadu_pd): Pass
2406         const double * to __builtin_ia32_loadupd256_mask.
2407         (_mm256_maskz_loadu_pd): Likewise.
2408         (_mm_mask_loadu_pd): Pass onst double * to
2409         __builtin_ia32_loadupd128_mask.
2410         (_mm_maskz_loadu_pd): Likewise.
2411         (_mm256_mask_storeu_pd): Pass double * to
2412         __builtin_ia32_storeupd256_mask.
2413         (_mm_mask_storeu_pd): Pass double * to
2414         __builtin_ia32_storeupd128_mask.
2415         (_mm256_mask_loadu_ps): Pass const float * to
2416         __builtin_ia32_loadups256_mask.
2417         (_mm256_maskz_loadu_ps): Likewise.
2418         (_mm_mask_loadu_ps): Pass const float * to
2419         __builtin_ia32_loadups128_mask.
2420         (_mm_maskz_loadu_ps): Likewise.
2421         (_mm256_mask_storeu_ps): Pass float * to
2422         __builtin_ia32_storeups256_mask.
2423         (_mm_mask_storeu_ps): ass float * to
2424         __builtin_ia32_storeups128_mask.
2425         (_mm256_mask_loadu_epi64): Pass const long long * to
2426         __builtin_ia32_loaddqudi256_mask.
2427         (_mm256_maskz_loadu_epi64): Likewise.
2428         (_mm_mask_loadu_epi64): Pass const long long * to
2429         __builtin_ia32_loaddqudi128_mask.
2430         (_mm_maskz_loadu_epi64): Likewise.
2431         (_mm256_mask_storeu_epi64): Pass long long * to
2432         __builtin_ia32_storedqudi256_mask.
2433         (_mm_mask_storeu_epi64): Pass long long * to
2434         __builtin_ia32_storedqudi128_mask.
2435         (_mm256_mask_loadu_epi32): Pass const int * to
2436         __builtin_ia32_loaddqusi256_mask.
2437         (_mm256_maskz_loadu_epi32): Likewise.
2438         (_mm_mask_loadu_epi32): Pass const int * to
2439         __builtin_ia32_loaddqusi128_mask.
2440         (_mm_maskz_loadu_epi32): Likewise.
2441         (_mm256_mask_storeu_epi32): Pass int * to
2442         __builtin_ia32_storedqusi256_mask.
2443         (_mm_mask_storeu_epi32): Pass int * to
2444         __builtin_ia32_storedqusi128_mask.
2445         * config/i386/i386-builtin-types.def (PCSHORT): New.
2446         (PINT64): Likewise.
2447         (V64QI_FTYPE_PCCHAR_V64QI_UDI): Likewise.
2448         (V32HI_FTYPE_PCSHORT_V32HI_USI): Likewise.
2449         (V32QI_FTYPE_PCCHAR_V32QI_USI): Likewise.
2450         (V16SF_FTYPE_PCFLOAT_V16SF_UHI): Likewise.
2451         (V8DF_FTYPE_PCDOUBLE_V8DF_UQI): Likewise.
2452         (V16SI_FTYPE_PCINT_V16SI_UHI): Likewise.
2453         (V16HI_FTYPE_PCSHORT_V16HI_UHI): Likewise.
2454         (V16QI_FTYPE_PCCHAR_V16QI_UHI): Likewise.
2455         (V8SF_FTYPE_PCFLOAT_V8SF_UQI): Likewise.
2456         (V8DI_FTYPE_PCINT64_V8DI_UQI): Likewise.
2457         (V8SI_FTYPE_PCINT_V8SI_UQI): Likewise.
2458         (V8HI_FTYPE_PCSHORT_V8HI_UQI): Likewise.
2459         (V4DF_FTYPE_PCDOUBLE_V4DF_UQI): Likewise.
2460         (V4SF_FTYPE_PCFLOAT_V4SF_UQI): Likewise.
2461         (V4DI_FTYPE_PCINT64_V4DI_UQI): Likewise.
2462         (V4SI_FTYPE_PCINT_V4SI_UQI): Likewise.
2463         (V2DF_FTYPE_PCDOUBLE_V2DF_UQI): Likewise.
2464         (V2DI_FTYPE_PCINT64_V2DI_UQI): Likewise.
2465         (VOID_FTYPE_PDOUBLE_V8DF_UQI): Likewise.
2466         (VOID_FTYPE_PDOUBLE_V4DF_UQI): Likewise.
2467         (VOID_FTYPE_PDOUBLE_V2DF_UQI): Likewise.
2468         (VOID_FTYPE_PFLOAT_V16SF_UHI): Likewise.
2469         (VOID_FTYPE_PFLOAT_V8SF_UQI): Likewise.
2470         (VOID_FTYPE_PFLOAT_V4SF_UQI): Likewise.
2471         (VOID_FTYPE_PINT64_V8DI_UQI): Likewise.
2472         (VOID_FTYPE_PINT64_V4DI_UQI): Likewise.
2473         (VOID_FTYPE_PINT64_V2DI_UQI): Likewise.
2474         (VOID_FTYPE_PINT_V16SI_UHI): Likewise.
2475         (VOID_FTYPE_PINT_V8SI_UHI): Likewise.
2476         (VOID_FTYPE_PINT_V4SI_UHI): Likewise.
2477         (VOID_FTYPE_PSHORT_V32HI_USI): Likewise.
2478         (VOID_FTYPE_PSHORT_V16HI_UHI): Likewise.
2479         (VOID_FTYPE_PSHORT_V8HI_UQI): Likewise.
2480         (VOID_FTYPE_PCHAR_V64QI_UDI): Likewise.
2481         (VOID_FTYPE_PCHAR_V32QI_USI): Likewise.
2482         (VOID_FTYPE_PCHAR_V16QI_UHI): Likewise.
2483         (V64QI_FTYPE_PCV64QI_V64QI_UDI): Removed.
2484         (V32HI_FTYPE_PCV32HI_V32HI_USI): Likewise.
2485         (V32QI_FTYPE_PCV32QI_V32QI_USI): Likewise.
2486         (V16HI_FTYPE_PCV16HI_V16HI_UHI): Likewise.
2487         (V16QI_FTYPE_PCV16QI_V16QI_UHI): Likewise.
2488         (V8HI_FTYPE_PCV8HI_V8HI_UQI): Likewise.
2489         (VOID_FTYPE_PV32HI_V32HI_USI): Likewise.
2490         (VOID_FTYPE_PV16HI_V16HI_UHI): Likewise.
2491         (VOID_FTYPE_PV8HI_V8HI_UQI): Likewise.
2492         (VOID_FTYPE_PV64QI_V64QI_UDI): Likewise.
2493         (VOID_FTYPE_PV32QI_V32QI_USI): Likewise.
2494         (VOID_FTYPE_PV16QI_V16QI_UHI): Likewise.
2495         * config/i386/i386.c (ix86_emit_save_reg_using_mov): Don't
2496         use UNSPEC_STOREU.
2497         (ix86_emit_restore_sse_regs_using_mov): Don't use UNSPEC_LOADU.
2498         (ix86_avx256_split_vector_move_misalign): Don't use unaligned
2499         load nor store.
2500         (ix86_expand_vector_move_misalign): Likewise.
2501         (bdesc_special_args): Use CODE_FOR_movvNXY_internal and pointer
2502         to scalar function prototype for unaligned load/store builtins.
2503         (ix86_expand_special_args_builtin): Updated.
2504         * config/i386/sse.md (UNSPEC_LOADU): Removed.
2505         (UNSPEC_STOREU): Likewise.
2506         (VI_ULOADSTORE_BW_AVX512VL): Likewise.
2507         (VI_ULOADSTORE_F_AVX512VL): Likewise.
2508         (ssescalarsize): Handle V4TI, V2TI and V1TI.
2509         (<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>): Likewise.
2510         (*<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>): Likewise.
2511         (<sse>_storeu<ssemodesuffix><avxsizesuffix>): Likewise.
2512         (<avx512>_storeu<ssemodesuffix><avxsizesuffix>_mask): Likewise.
2513         (<sse2_avx_avx512f>_loaddqu<mode><mask_name>): Likewise.
2514         (*<sse2_avx_avx512f>_loaddqu<mode><mask_name>"): Likewise.
2515         (sse2_avx_avx512f>_storedqu<mode>): Likewise.
2516         (<avx512>_storedqu<mode>_mask): Likewise.
2517         (*sse4_2_pcmpestr_unaligned): Likewise.
2518         (*sse4_2_pcmpistr_unaligned): Likewise.
2519         (*mov<mode>_internal): Renamed to ...
2520         (mov<mode>_internal): This.  Remove check of AVX and IAMCU on
2521         misaligned operand.  Replace vmovdqu64 with vmovdqu<ssescalarsize>.
2522         (movsd/movhpd to movupd peephole): Don't use UNSPEC_LOADU.
2523         (movlpd/movhpd to movupd peephole): Don't use UNSPEC_STOREU.
2524
2525 2016-04-19  Richard Biener  <rguenther@suse.de>
2526
2527         PR tree-optimization/70171
2528         * tree-ssa-phiprop.c: Include stor-layout.h.
2529         (phiprop_insert_phi): Handle the aggregate copy case.
2530         (propagate_with_phi): Likewise.
2531
2532 2016-04-19  Uros Bizjak  <ubizjak@gmail.com>
2533
2534         * config/i386/i386.c (ix86_decompose_address): Use lowpart_subreg
2535         instead of simplify_gen_subreg (... , 0).
2536         (ix86_delegitimize_address): Ditto.
2537         (ix86_split_divmod): Ditto.
2538         (ix86_split_copysign_const): Ditto.
2539         (ix86_split_copysign_var): Ditto.
2540         (ix86_expand_args_builtin): Ditto.
2541         (ix86_expand_round_builtin): Ditto.
2542         (ix86_expand_special_args_builtin): Ditto.
2543         * config/i386/i386.md (TARGET_USE_VECTOR_FP_CONVERTS splitters): Ditto.
2544         (TARGET_SSE_PARTIAL_REG_DEPENDENCY splitters and peephole2s): Ditto.
2545         (udivmodqi4): Ditto.
2546         (absneg splitters): Ditto.
2547         (*jcc_bt<mode>_1): Ditto.
2548
2549 2016-04-19  Richard Biener  <rguenther@suse.de>
2550
2551         PR tree-optimization/70724
2552         * tree-ssa-sccvn.c (scc_vn_restore_ssa_info): Split SSA info
2553         restoring out from ...
2554         (free_scc_vn): ... here.
2555         * tree-ssa-sccvn.h (scc_vn_restore_ssa_info): Declare.
2556         * tres-ssa-pre.c (pass_pre::execute): Restore SSA info before
2557         tail merging.
2558         (pass_fre::execute): Restore SSA info.
2559
2560 2016-04-19  Richard Biener  <rguenther@suse.de>
2561
2562         * gimple-walk.h (struct walk_stmt_info): Add stmt member.
2563         * gimple-walk.c (walk_gimple_op): Initialize it.
2564         (walk_gimple_asm): Set wi->is_lhs before each callback invocation.
2565         * tree-inline.c (remap_gimple_op_r): Set SSA_NAME_DEF_STMT when
2566         remapping SSA names of defs.
2567         (copy_bb): Remove walk over all SSA defs and SSA_NAME_DEF_STMT
2568         adjustment.
2569
2570 2016-04-18  Vladimir Makarov  <vmakarov@redhat.com>
2571
2572         PR middle-end/70689
2573         * lra-constraints.c (equiv_substition_p): New.
2574         (process_alt_operands): Use it.
2575         (swap_operands): Swap it.
2576         (curr_insn_transform): Update it.
2577
2578 2016-04-18  Michael Matz  <matz@suse.de>
2579
2580         * tree.h (TYPE_ALIGN, DECL_ALIGN): Return shifted amount.
2581         (SET_TYPE_ALIGN, SET_DECL_ALIGN): New.
2582         * tree-core.h (tree_type_common.align): Use bit-field.
2583         (tree_type_common.spare): New.
2584         (tree_decl_common.off_align): Make smaller.
2585         (tree_decl_common.align): Use bit-field.
2586
2587         * expr.c (expand_expr_addr_expr_1): Use SET_TYPE_ALIGN.
2588         * omp-low.c (install_var_field): Use SET_DECL_ALIGN.
2589         (scan_sharing_clauses): Ditto.
2590         (finish_taskreg_scan): Use SET_DECL_ALIGN and SET_TYPE_ALIGN.
2591         (omp_finish_file): Ditto.
2592         * stor-layout.c (do_type_align): Use SET_DECL_ALIGN.
2593         (layout_decl): Ditto.
2594         (relayout_decl): Ditto.
2595         (finalize_record_size): Use SET_TYPE_ALIGN.
2596         (finalize_type_size): Ditto.
2597         (finish_builtin_struct): Ditto.
2598         (layout_type): Ditto.
2599         (initialize_sizetypes): Ditto.
2600         * targhooks.c (std_gimplify_va_arg_expr): Use SET_TYPE_ALIGN.
2601         * tree-nested.c (insert_field_into_struct): Use SET_TYPE_ALIGN.
2602         (lookup_field_for_decl): Use SET_DECL_ALIGN.
2603         (get_chain_field): Ditto.
2604         (get_trampoline_type): Ditto.
2605         (get_nl_goto_field): Ditto.
2606         * tree-streamer-in.c (unpack_ts_decl_common_value_fields): Use
2607         SET_DECL_ALIGN.
2608         (unpack_ts_type_common_value_fields): Use SET_TYPE_ALIGN.
2609         * gimple-expr.c (copy_var_decl): Use SET_DECL_ALIGN.
2610         * tree.c (make_node_stat): Use SET_DECL_ALIGN and SET_TYPE_ALIGN.
2611         (build_qualified_type): Use SET_TYPE_ALIGN.
2612         (build_aligned_type, build_range_type_1): Ditto.
2613         (build_atomic_base): Ditto.
2614         (build_common_tree_nodes): Ditto.
2615         * cfgexpand.c (align_local_variable): Use SET_DECL_ALIGN.
2616         (expand_one_stack_var_at): Ditto.
2617         * coverage.c (build_var): Use SET_DECL_ALIGN.
2618         * except.c (init_eh): Ditto.
2619         * function.c (assign_parm_setup_block): Ditto.
2620         * symtab.c (increase_alignment_1): Ditto.
2621         * tree-ssa-ccp.c (fold_builtin_alloca_with_align): Ditto.
2622         * tree-vect-stmts.c (ensure_base_align): Ditto.
2623         * varasm.c (align_variable): Ditto.
2624         (assemble_variable): Ditto.
2625         (build_constant_desc): Ditto.
2626         (output_constant_def_contents): Ditto.
2627
2628         * config/arm/arm.c (arm_relayout_function): Use SET_DECL_ALIGN.
2629         * config/avr/avr.c (avr_adjust_type_node): Use SET_TYPE_ALIGN.
2630         * config/mips/mips.c (mips_std_gimplify_va_arg_expr): Ditto.
2631         * config/msp430/msp430.c (msp430_gimplify_va_arg_expr): Ditto.
2632         * config/spu/spu.c (spu_build_builtin_va_list): Use SET_DECL_ALIGN.
2633
2634 2016-04-18  H.J. Lu  <hongjiu.lu@intel.com>
2635
2636         PR target/70708
2637         * config/i386/sse.md (sse2_loadlpd): Accept load from "xm" and
2638         replace %vmovsd with "%vmovq".
2639         (vec_concatv2df): Likewise.
2640
2641 2016-04-18  Uros Bizjak  <ubizjak@gmail.com>
2642
2643         * config/i386/mmx.md (*vec_extractv2sf_0): Use gen_lowpart.
2644         (*vec_extractv2si_0): Ditto.
2645         * config/i386/sse.md (*vec_extractv4sf_0): Ditto.
2646         (zero_extended_scalar_load_operand splitters): Ditto.
2647         (vec_extract splitters): Ditto.
2648         (*vec_extractv4si_0_zext): Ditto.
2649         (avx_<castmode><avxsizesuffix>_<castmode>): Use gen_lowpart
2650         and lowpart_subreg.
2651         (avx512f_<castmode><avxsizesuffix>_<castmode>): Ditto.
2652         (avx512f_<castmode><avxsizesuffix>_256<castmode>): Ditto.
2653         (*sse4_1_extractps): Use lowpart_subreg.
2654
2655 2016-04-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2656
2657         * doc/install.texi (Specific, i?86-*-solaris2.10): Update gas and
2658         gld requirements.
2659         (Specific, *-*-solaris2*): Update Solaris 11 bundled gcc versions.
2660         Mention Solaris 11 packaging changes.
2661         Update gas and gld requirements.
2662         Remove reference to pre-Solaris 10 bug.
2663         (Specific, sparc-sun-solaris2*): Remove reference to pre-Solaris 10
2664         systems and bugs.
2665         (Specific, sparc64-*-solaris2*): Remove reference to bootstrap
2666         with cc.
2667
2668 2016-04-17  Jan Hubicka  <jh@suse.cz>
2669
2670         * tree-ssa-loop-ivopts.c (avg_loop_niter): Use also
2671         max_loop_iterations_int.
2672
2673 2016-04-18  Richard Biener  <rguenther@suse.de>
2674
2675         PR tree-optimization/43434
2676         * tree-ssa-structalias.c (struct vls_data): New.
2677         (visit_loadstore): Handle all pointer-based accesses.
2678         (compute_dependence_clique): Compute a bitmap of restrict tags
2679         assigned bases and pass it to visit_loadstore.
2680
2681 2016-04-18  Matthew Wahab  <matthew.wahab@arm.com>
2682
2683         PR target/70711
2684         * config/arm/bpabi.h (BE8_LINK_SPEC): Add entries for armv8+crc,
2685         armv8.1-a and armv8.1-a+crc.
2686
2687 2016-04-18  Richard Biener  <rguenther@suse.de>
2688
2689         PR tree-optimization/70701
2690         * tree-ssa-sccvn.c (vn_reference_lookup_3): Resolve fully constant
2691         references after translating through a memcpy.
2692
2693 2016-04-18  Richard Biener  <rguenther@suse.de>
2694
2695         * tree-ssa-pre.c (postorder, postorder_num): Make locals ...
2696         (compute_antic): ... here.  For partial antic use regular
2697         postorder and scrap iteration.
2698         (compute_partial_antic_aux): Remove unused return value.
2699         (init_pre): Do not allocate postorder.
2700         (fini_pre): Do not free postorder.
2701
2702 2016-04-18  Richard Biener  <rguenther@suse.de>
2703
2704         PR middle-end/37870
2705         * expmed.c (extract_bit_field_1): Remove broken case
2706         using a wider MODE_INT mode.
2707
2708 2016-04-18  Segher Boessenkool  <segher@kernel.crashing.org>
2709
2710         * has-brig.c (lendian16): Don't try to use __builtin_bswap16
2711         unless compiling with at least GCC-4.8.
2712
2713 2016-04-17  Jan Hubicka  <jh@suse.cz>
2714
2715         PR bootstrap/70706
2716         * graphite.c (graphite_finalize): Update call to
2717         tree_estimate_probability.
2718         * predict.h (tree_estimate_probability): Update prototype.
2719
2720 2016-04-17  Jan Hubicka  <jh@suse.cz>
2721
2722         * predict.c (combine_predictions_for_bb): Add dry_run parmaeter.
2723         (tree_estimate_probability): Likewise.
2724         (pass_profile::execute): Update.
2725         (report_predictor_hitrates): New function.
2726         * profile.c (compute_branch_probabilities): Use it.
2727         * predict.h (report_predictor_hitrates): Declare.
2728
2729 2016-04-17  Jan Hubicka  <jh@suse.cz>
2730
2731         PR ipa/70018
2732         * cgraph.h (cgraph_node::set_const_flag,
2733         cgraph_node::set_pure_flag): Update prototype to return bool;
2734         update comment.
2735         * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases): Thunks
2736         of interposable symbol are interposable, too.
2737         (cgraph_set_const_flag_1): Rename to ...
2738         (set_const_flag_1): ... this one; change to self recursive function
2739         instead of call_for_symbol_thunks_and_aliases. Handle correctly
2740         clearnig the flag in all variants and also virtual thunks of const
2741         functions are pure; track if any change was done.
2742         (cgraph_node::set_const_flag): Update.
2743         (struct set_pure_flag_info): New struct.
2744         (cgraph_set_pure_flag_1): Rename to ...
2745         (set_pure_flag_1): ... this one; take set_pure_flag_info parameter
2746         rather than pointer encoded flags; track if any changes was done;
2747         handle correctly clearning flag and setting flag of aliases already
2748         declared const.
2749         (cgraph_node::set_pure_flag): Update.
2750         (cgraph_node::set_nothrow_flag): Handle correctly clearning the flag.
2751
2752 2016-04-17  Tom de Vries  <tom@codesourcery.com>
2753
2754         PR other/70433
2755         * pretty-print.c (pp_write_text_as_dot_label_to_stream): Escape
2756         backslash in label.
2757
2758 2016-04-17  Tom de Vries  <tom@codesourcery.com>
2759
2760         * pretty-print.c (pp_write_text_as_dot_label_to_stream): Classify chars
2761         '{}<> ' as escape-for-record.
2762
2763 2016-04-17  Tom de Vries  <tom@codesourcery.com>
2764
2765         * pretty-print.c (pp_write_text_as_dot_label_to_stream): Simplify loop
2766         structure.
2767
2768 2016-04-17  Tom de Vries  <tom@codesourcery.com>
2769
2770         PR other/70185
2771         * tree-pass.h (class opt_pass): Remove graph_dump_initialized member.
2772         * dumpfile.h (struct dump_file_info): Add graph_dump_initialized field.
2773         * dumpfile.c (dump_files): Initialize graph_dump_initialized field.
2774         * passes.c (finish_optimization_passes): Only call
2775         finish_graph_dump_file if dfi->graph_dump_initialized.
2776         (execute_function_dump, pass_init_dump_file): Use
2777         dfi->graph_dump_initialized instead of pass->graph_dump_initialized.
2778
2779 2016-04-17  Tom de Vries  <tom@codesourcery.com>
2780
2781         PR tree-optimization/70256
2782         * tree-ssa-structalias.c (dump_varinfo, debug_varinfo, dump_varmap)
2783         (debug_varmap): New function.
2784
2785 2016-04-17  Tom de Vries  <tom@codesourcery.com>
2786
2787         PR other/70183
2788         * passes.c (pass_manager::register_pass): Propagate pflags.
2789
2790 2016-04-17  Tom de Vries  <tom@codesourcery.com>
2791
2792         PR other/68875
2793         * pass_manager.h (TERMINATE_PASS_LIST): Add pass argument.
2794         * passes.c (pass_manager::pass_manager): Declare and init p_start in
2795         INSERT_PASSES_AFTER.  Add pass parameter to TERMINATE_PASS_LIST, and
2796         check if it's equal to p_start.
2797         * passes.def: Add arguments to TERMINATE_PASS_LISTs.
2798
2799 2016-04-15  Jan Hubicka  <jh@suse.cz>
2800
2801         PR ipa/70018
2802         * cgraph.c (cgraph_set_const_flag_1): Only set as pure if
2803         function does not bind to current def.
2804         * ipa-pure-const.c (worse_state): Add FROM and TO parameters;
2805         handle conservatively calls to functions that does not need to bind
2806         to current def.
2807         (check_call): Update call of worse_state.
2808         (ignore_edge_for_nothrow): Update.
2809         (ignore_edge_for_pure_const): Likewise.
2810         (propagate_pure_const): Update calls to worse_state.
2811         (skip_function_for_local_pure_const): Reformat comments.
2812
2813 2016-04-15  Jan Hubicka  <jh@suse.cz>
2814
2815         PR ipa/70018
2816         * cgraph.c (cgraph_node::get_availability): Add REF parameter.
2817         (cgraph_node::function_symbol): Likewise.
2818         (cgraph_node::function_or_virtual_thunk_symbol): Likewise.
2819         * cgraph.h (symtab_node::get_availabbility): Add REF parameter.
2820         (symtab_node::ultimate_alias_target): Add REF parameter.
2821         (symtab_node::binds_to_current_def_p): Declare.
2822         (symtab_node;:ultimate_alias_target_1): Add REF parameter.
2823         (cgraph_node::function_symbol): Likewise.
2824         (cgraph_node::function_or_virtual_thunk_symbol): Likewise.
2825         (cgraph_node::get_availability): Likewise.
2826         (cgraph_edge::binds_to_current_def_p): New inline function.
2827         (varpool_node::get_availability): Add REF parameter.
2828         (varpool_node::ultimate_alias_target): Likewise.
2829         * symtab.c (symtab_node::ultimate_alias_target_1): Likewise.
2830         (symtab_node::binds_to_current_def_p): Likewise.
2831         * varpool.c (varpool_node::get_availability): Likewise.
2832
2833 2016-04-15  Kirill Yukhin  <kirill.yukhin@intel.com>
2834
2835         PR target/70662
2836         * config/i386/sse.md(define_insn "<avx512>_vec_dup<mode><mask_name>"):
2837         Fix mode size check.
2838
2839 2016-04-15  Jakub Jelinek  <jakub@redhat.com>
2840
2841         * BASE-VER: Set to 7.0.0.
2842
2843 2016-04-15  Alexander Monakov  <amonakov@ispras.ru>
2844
2845         * config/nvptx/nvptx.opt (moptimize): Add a period at end of help text.
2846
2847 2016-04-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2848
2849         * doc/invoke.texi (ARM Options): Add note on deprecation of pre-ARMv4T
2850         architecture revisions.
2851
2852 2016-04-15  Bernd Schmidt  <bschmidt@redhat.com>
2853
2854         * config/i386/i386-protos.h (ix86_using_red_zone): Declare.
2855         * config/i386/i386.c (ix86_using_red_zone): No longer static.
2856         * config/i386/i386.md (stack decrement to push peepholes): Guard
2857         with !x86_using_red_zone ().
2858
2859 2016-04-15  Jakub Jelinek  <jakub@redhat.com>
2860
2861         PR c++/70675
2862         * tree-pretty-print.c (do_niy): Add FLAGS argument, pass it down
2863         to dump_generic_node.
2864         (NIY): Pass also flags to do_niy.
2865
2866 2016-04-15  Thomas Schwinge  <thomas@codesourcery.com>
2867
2868         * omp-low.c (simd_clone_struct_alloc, simd_clone_struct_copy)
2869         (simd_clone_vector_of_formal_parm_types)
2870         (simd_clone_clauses_extract, simd_clone_compute_base_data_type)
2871         (simd_clone_mangle, simd_clone_create)
2872         (simd_clone_adjust_return_type, create_tmp_simd_array)
2873         (simd_clone_adjust_argument_types, simd_clone_init_simd_arrays)
2874         (struct modify_stmt_info, ipa_simd_modify_stmt_ops)
2875         (ipa_simd_modify_function_body, simd_clone_linear_addend)
2876         (simd_clone_adjust, expand_simd_clones, ipa_omp_simd_clone)
2877         (pass_data_omp_simd_clone, class pass_omp_simd_clone)
2878         (pass_omp_simd_clone::gate, make_pass_omp_simd_clone): Move into...
2879         * omp-simd-clone.c: ... this new file.
2880         (simd_clone_vector_of_formal_parm_types): Make it static.
2881         * Makefile.in (OBJS): Add omp-simd-clone.o.
2882
2883 2016-04-15  Kirill Yukhin  <kirill.yukhin@intel.com>
2884
2885         PR target/70662
2886         * config/i386/sse.md: Use proper memory operand modifiers.
2887
2888
2889 2016-04-15  Richard Biener  <rguenther@suse.de>
2890         Alan Modra  <amodra@gmail.com>
2891
2892         PR tree-optimization/70130
2893         * tree-vect-data-refs.c (vect_supportable_dr_alignment): Detect
2894         when alignment stays not the same and no not use the realign
2895         scheme then.
2896
2897 2016-04-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
2898
2899         PR target/70669
2900         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
2901         direct move handlers for KFmode. Change TFmode handlers test from
2902         FLOAT128_IEEE_P to FLOAT128_VECTOR_P.
2903
2904 2016-04-14  Jakub Jelinek  <jakub@redhat.com>
2905
2906         PR c++/70594
2907         * ipa-utils.h (polymorphic_ctor_dtor_p): New prototype.
2908         * ipa-polymorphic-call.c (polymorphic_ctor_dtor_p): New function.
2909         (inlined_polymorphic_ctor_dtor_block_p): Use it.
2910         * tree-ssa-live.c (remove_unused_scope_block_p): When
2911         in_ctor_dtor_block, avoid discarding not just BLOCKs with
2912         BLOCK_ABSTRACT_ORIGIN being FUNCTION_DECL, but even when
2913         block_ultimate_origin is FUNCTION_DECL.
2914         (remove_unused_locals): If current_function_decl is
2915         polymorphic_ctor_dtor_p, pass initial true to
2916         remove_unused_scope_block_p' is_ctor_dtor_block.
2917
2918 2016-04-14  Martin Sebor  <msebor@redhat.com>
2919
2920         PR c++/69517
2921         PR c++/70019
2922         PR c++/70588
2923         * doc/extend.texi (Variable Length): Revert.
2924
2925 2016-04-14  Marek Polacek  <polacek@redhat.com>
2926             Jan Hubicka  <hubicka@ucw.cz>
2927
2928         PR c++/70029
2929         * tree.c (verify_type): Disable the canonical type of main variant
2930         check.
2931
2932 2016-04-14  Jason Merrill  <jason@redhat.com>
2933
2934         * cfgexpand.c, expr.c: Revert previous change.
2935
2936 2016-04-14  Cesar Philippidis  <cesar@codesourcery.com>
2937
2938         PR middle-end/70643
2939         * omp-low.c (lower_oacc_reductions): Check for TREE_CONSTANT
2940         when building a mem ref for the incoming reduction variable.
2941
2942 2016-04-14  Richard Biener  <rguenther@suse.de>
2943
2944         PR tree-optimization/70614
2945         * tree-scalar-evolution.c (analyze_evolution_in_loop): Terminate
2946         loop if the evolution dropped to chrec_dont_know.
2947         (interpret_condition_phi): Likewise.
2948
2949 2016-04-14  Richard Biener  <rguenther@suse.de>
2950
2951         PR tree-optimization/70623
2952         * tree-ssa-pre.c (changed_blocks): Make global ...
2953         (compute_antic): ... local here.  Move and fix worklist
2954         handling here.  Do not clear EDGE_DFS_BACK or call mark_dfs_back_edges.
2955         (compute_antic_aux): Add dumping for MAX assumed succs.  Remove
2956         worklist handling, dump when ANTIC_IN changed.
2957         (compute_partial_antic_aux): Remove worklist handling.
2958         (init_pre): Do not compute post dominators.  Add a comment about
2959         the CFG order chosen.
2960         (fini_pre): Do not free post dominators.
2961
2962 2016-04-13  Martin Sebor  <msebor@redhat.com>
2963
2964         PR c++/69517
2965         PR c++/70019
2966         PR c++/70588
2967         * doc/extend.texi (Variable Length): Document C++ specifics.
2968
2969 2016-04-13  Jakub Jelinek  <jakub@redhat.com>
2970
2971         PR c++/70641
2972         * ipa-pure-const.c (pass_nothrow::execute): Call maybe_clean_eh_stmt
2973         on all recursive call stmts.  Return TODO_cleanup_cfg if any dead
2974         eh edges have been purged.
2975
2976         PR c++/70594
2977         * tree-sra.c (create_access_replacement,
2978         get_replaced_param_substitute): Set DECL_NAMELESS on repl if it
2979         gets fancy name.
2980         * tree-pretty-print.c (dump_fancy_name): New function.
2981         (dump_decl_name, dump_generic_node): Use it.
2982
2983 2016-04-13  Jason Merrill  <jason@redhat.com>
2984
2985         * cfgexpand.c (pass_expand::execute): Handle attribute "abi warning".
2986         * expr.c (expand_expr_real_1): Likewise.
2987
2988 2016-04-13  Ilya Enkovich  <ilya.enkovich@intel.com>
2989
2990         * config/i386/i386.md (kunpckhi): Swap operands.
2991         (kunpcksi): Likewise.
2992         (kunpckdi): Likewise.
2993         * config/i386/sse.md (vec_pack_trunc_qi): Likewise.
2994         (vec_pack_trunc_<mode>): Likewise.
2995
2996 2016-04-13  Jakub Jelinek  <jakub@redhat.com>
2997
2998         PR debug/70628
2999         * explow.c (convert_memory_address_addr_space_1): Formatting fix.
3000
3001         PR middle-end/70633
3002         * gimplify.c (gimplify_init_constructor): Clear TREE_STATIC if
3003         gimplification turns some element into non-constant.
3004
3005         PR debug/70628
3006         * rtl.h (convert_memory_address_addr_space_1): New prototype.
3007         * explow.c (convert_memory_address_addr_space_1): No longer static,
3008         add NO_EMIT argument and don't call convert_modes if true, pass
3009         it down recursively, remove break after return.
3010         (convert_memory_address_addr_space): Adjust caller.
3011         * simplify-rtx.c (simplify_unary_operation_1): Call
3012         convert_memory_address_addr_space_1 instead of convert_memory_address,
3013         if it returns NULL, don't simplify.
3014
3015 2016-04-12  Eric Botcazou  <ebotcazou@adacore.com>
3016
3017         PR target/70630
3018         * config/sparc/sparc.c (sparc_compute_frame_size): Add parentheses.
3019
3020 2016-04-12  Jakub Jelinek  <jakub@redhat.com>
3021
3022         * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
3023         Bump the upper SIMDLEN limits, so that if the return type or
3024         characteristic type if the return type is void can be passed in
3025         all available SSE2/AVX/AVX2/AVX512-F registers, the SIMDLEN is
3026         allowed.
3027
3028 2016-04-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
3029
3030         PR target/70640
3031         * config/rs6000/rs6000.md (ieee_128bit_vsx_neg<mode>2_internal):
3032         Do not use "=" constraint on an input constraint.
3033         (ieee_128bit_vsx_abs<mode>2_internal): Likewise.
3034         (ieee_128bit_vsx_nabs<mode>2_internal): Likewise.
3035         (ieee_128bit_vsx_nabs<mode>2): Correct splitter so that it
3036         generates (neg (abs ...)) instead of (abs ...).
3037
3038 2016-04-12  Jakub Jelinek  <jakub@redhat.com>
3039
3040         PR rtl-optimization/70596
3041         * lra-spills.c (spill_pseudos): Don't delete debug insns, instead
3042         just invalidate LRA data and reset them.  Adjust dump wording.
3043
3044 2016-04-12  Martin Liska  <mliska@suse.cz>
3045
3046         Revert
3047         2016-03-30  Jan Hubicka  <hubicka@ucw.cz>
3048
3049         * tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can't get realistic
3050         estimates here.
3051         * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also
3052         max_loop_iterations_int.
3053         (tree_unswitch_outer_loop): Likewise.
3054         * tree-ssa-loop-ivopts.c (avg_loop_niter): Likewise.
3055         * tree-vect-loop.c (vect_analyze_loop_2): Likewise.
3056
3057 2016-04-12  Tom de Vries  <tom@codesourcery.com>
3058
3059         PR tree-optimization/68756
3060         * graphite-isl-ast-to-gimple.c (copy_cond_phi_args): Use new_expr
3061         instead of new_name.
3062
3063 2016-04-12  Jakub Jelinek  <jakub@redhat.com>
3064
3065         PR tree-optimization/70602
3066         * tree-sra.c (generate_subtree_copies): Don't write anything into
3067         constant pool decls.
3068
3069         * omp-low.c (lower_omp_target): Use GOMP_MAP_FIRSTPRIVATE_INT
3070         regardless whether there are depend clauses or not.
3071
3072 2016-04-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
3073
3074         PR target/70381
3075         * config/rs6000/rs6000.c (rs6000_opt_masks): Disable using the
3076         target attribute and pragma from changing the -mfloat128
3077         and -mfloat128-hardware options.
3078
3079         * doc/extend.texi (Additional Floating Types): Document PowerPC
3080         __float128 restrictions.
3081
3082 2016-04-11  James Greenhalgh  <james.greenhalgh@arm.com>
3083
3084         PR target/70133
3085         * config/aarch64/driver-aarch64.c
3086         (aarch64_get_extension_string_for_isa_flags): New.
3087         (arch_extension): Rename to...
3088         (aarch64_arch_extension): ...This.
3089         (ext_to_feat_string): Rename to...
3090         (aarch64_extensions): ...This.
3091         (aarch64_core_data): Keep track of architecture extension flags.
3092         (cpu_data): Rename to...
3093         (aarch64_cpu_data): ...This.
3094         (aarch64_arch_driver_info): Keep track of architecture extension
3095         flags.
3096         (get_arch_name_from_id): Rename to...
3097         (get_arch_from_id): ...This, change return type.
3098         (host_detect_local_cpu): Update and reformat for renames, handle
3099         extensions through common infrastructure.
3100
3101 2016-04-11  James Greenhalgh  <james.greenhalgh@arm.com>
3102
3103         PR target/70133
3104         * config/aarch64/aarch64-common.c (aarch64_option_extension): Keep
3105         track of a canonical flag name.
3106         (all_extensions): Likewise.
3107         (arch_to_arch_name): Also track extension flags enabled by the arch.
3108         (all_architectures): Likewise.
3109         (aarch64_parse_extension): Move to here.
3110         (aarch64_get_extension_string_for_isa_flags): Take a new argument,
3111         rework.
3112         (aarch64_rewrite_selected_cpu): Update for above change.
3113         * config/aarch64/aarch64-option-extensions.def: Rework the way flags
3114         are handled, such that the single explicit value enabled by an
3115         extension is kept seperate from the implicit values it also enables.
3116         * config/aarch64/aarch64-protos.h (aarch64_parse_opt_result): Move
3117         to here.
3118         (aarch64_parse_extension): New.
3119         * config/aarch64/aarch64.c (aarch64_parse_opt_result): Move from
3120         here to config/aarch64/aarch64-protos.h.
3121         (aarch64_parse_extension): Move from here to
3122         common/config/aarch64/aarch64-common.c.
3123         (aarch64_option_print): Update.
3124         (aarch64_declare_function_name): Likewise.
3125         (aarch64_start_file): Likewise.
3126         * config/aarch64/driver-aarch64.c (arch_extension): Keep track of
3127         the canonical flag for extensions.
3128         * config.gcc (aarch64*-*-*): Extend regex for capturing extension
3129         flags.
3130
3131 2016-04-11  James Greenhalgh  <james.greenhalgh@arm.com>
3132
3133         * config/aarch64/aarch64.h (AARCH64_FL_FOR_ARCH8_1): Also add
3134         AARCH64_FL_CRC.
3135
3136 2016-04-09  Tom de Vries  <tom@codesourcery.com>
3137
3138         PR tree-optimization/68953
3139         * graphite-sese-to-poly.c (pdr_add_memory_accesses): Order accesses from
3140         first to last subscript.
3141
3142 2016-04-09  Jakub Jelinek  <jakub@redhat.com>
3143
3144         PR tree-optimization/70586
3145         * tree-ssa-ifcombine.c (bb_no_side_effects_p): Return false
3146         for any calls.
3147
3148 2016-04-08  Cesar Philippidis  <cesar@codesourcery.com>
3149
3150         PR lto/70289
3151         PR ipa/70348
3152         PR tree-optimization/70373
3153         PR middle-end/70533
3154         PR middle-end/70534
3155         PR middle-end/70535
3156         * gimplify.c (gimplify_adjust_omp_clauses): Add or adjust data
3157         clauses for acc parallel reductions as necessary.  Error on those
3158         that are private.
3159         * omp-low.c (scan_sharing_clauses): Don't install variables which
3160         are used in acc parallel reductions.
3161         (lower_rec_input_clauses): Remove dead code.
3162         (lower_oacc_reductions): Add support for reference reductions.
3163         (lower_reduction_clauses): Remove dead code.
3164         (lower_omp_target): Don't remap variables appearing in acc parallel
3165         reductions.
3166         * tree.h (OMP_CLAUSE_MAP_IN_REDUCTION): New macro.
3167
3168 2016-04-08  Jakub Jelinek  <jakub@redhat.com>
3169
3170         PR middle-end/70593
3171         * tree-ssa-coalesce.c (build_ssa_conflict_graph): For stmt
3172         with multiple SSA_NAME defs, force the outputs other than first
3173         to be live before calling live_track_process_def on each output.
3174
3175         PR rtl-optimization/70574
3176         * fwprop.c (forward_propagate_and_simplify): Don't add
3177         REG_EQUAL note if DF_REF_REG (use) is a paradoxical subreg.
3178         (try_fwprop_subst): Don't add REG_EQUAL note if there are any
3179         paradoxical subregs within *loc.
3180
3181 2016-04-08  Thomas Schwinge  <thomas@codesourcery.com>
3182
3183         * config/arc/arc.h (LINK_COMMAND_SPEC): Use gt to ignore
3184         -ftree-parallelize-loops={0,1}.
3185         * config/darwin.h (LINK_COMMAND_SPEC_A): Likewise.
3186         * config/i386/mingw32.h (GOMP_SELF_SPECS): Likewise.
3187         * config/ia64/hpux.h (LIB_SPEC): Likewise.
3188         * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
3189         * config/pa/pa64-hpux.h (LIB_SPEC): Likewise.
3190
3191 2016-04-08  Maxim Ostapenko  <m.ostapenko@samsung.com>
3192
3193         PR sanitizer/70541
3194         * asan.c (instrument_derefs): If we get unknown location, extract it
3195         with EXPR_LOCATION.
3196         (maybe_instrument_call): Instrument gimple_call's arguments if needed.
3197
3198 2016-04-08  Tom de Vries  <tom@codesourcery.com>
3199
3200         * omp-low.c (lower_omp_target): Set TREE_NO_WARNING for oacc
3201         implicit firstprivate clause.
3202
3203 2016-04-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3204
3205         PR target/70566
3206         * config/arm/thumb2.md (tst + branch-> lsls + branch
3207         peephole below *orsi_not_shiftsi_si): Require that condition
3208         register is dead after the peephole.
3209         (second peephole after the above): Likewise.
3210
3211 2016-04-08  Alan Modra  <amodra@gmail.com>
3212
3213         PR target/70117
3214         * builtins.c (fold_builtin_classify): For IBM extended precision,
3215         look at just the high-order double to test for NaN.
3216         (fold_builtin_interclass_mathfn): Similarly for Inf.  For isnormal
3217         test just the high double for Inf but both doubles for subnormal
3218         limit.
3219
3220 2016-04-07  Jakub Jelinek  <jakub@redhat.com>
3221
3222         * cgraph.h (struct cgraph_simd_clone): Add mask_mode field.
3223         * omp-low.c (simd_clone_init_simd_arrays, simd_clone_adjust): Handle
3224         node->simdclone->mask_mode != VOIDmode masks.
3225         (simd_clone_adjust_argument_types): Likewise.  Move sc var definition
3226         earlier, use it instead of node->simdclone.
3227         * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
3228         Set clonei->mask_mode.
3229
3230 2016-04-06  Patrick Palka  <ppalka@gcc.gnu.org>
3231
3232         PR c/70436
3233         * parser.c (cp_parser_iteration_statement): New parameter IF_P.
3234         Pass it through to cp_parser_already_scoped_statement.
3235         (cp_parser_already_scoped_statement): New parameter IF_P.  Pass
3236         it through to cp_parser_statement.
3237         (cp_parser_statement): Pass IF_P through to
3238         cp_parser_iteration_statement.
3239         (cp_parser_pragma): Adjust call to
3240         cp_parser_iteration_statement.
3241
3242 2016-04-06  Patrick Palka  <ppalka@gcc.gnu.org>
3243
3244         PR c/70436
3245         * gimplify.c (gimplify_omp_ordered): Add explicit braces to
3246         resolve a future -Wparentheses warning.
3247         * omp-low.c (scan_sharing_clauses): Likewise.
3248         * tree-parloops.c (eliminate_local_variables): Likewise.
3249
3250 2016-04-06  Vladimir Makarov  <vmakarov@redhat.com>
3251
3252         PR rtl-optimization/70398
3253         * lra-constraints.c (process_address_1): Check zero scale and code
3254         for reloading with zero scale.
3255
3256 2016-04-06  Uros Bizjak  <ubizjak@gmail.com>
3257
3258         * config/i386/sse.md (shuffletype): Add V32HI and V4TI modes.
3259         (ssescalarsize): Add V8SF, V4SF, V4DF and V2DF modes.
3260
3261 2016-04-06  Jakub Jelinek  <jakub@redhat.com>
3262
3263         * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
3264         Add support for AVX512F clones, include them by default for
3265         exported OpenMP declare simd functions.  For AVX2 allow simdlen 32
3266         and use it if charasteric type is 8-bit, for AVX512F allow simdlen
3267         up to 128.
3268
3269         PR middle-end/70550
3270         * tree.h (OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT): Define.
3271         * gimplify.c (gimplify_adjust_omp_clauses_1): Set it for implicit
3272         firstprivate clauses.
3273         * omp-low.c (lower_send_clauses): Set TREE_NO_WARNING for
3274         OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT !by_ref vars in task contexts.
3275         (lower_omp_target): Set TREE_NO_WARNING for
3276         non-addressable possibly uninitialized vars which are copied into
3277         addressable temporaries or copied for GOMP_MAP_FIRSTPRIVATE_INT.
3278
3279 2016-04-05  John David Anglin  <danglin@gcc.gnu.org>
3280
3281         * config/pa/predicates.md (integer_store_memory_operand): Accept
3282         REG+D operands with a large offset when reload_in_progress is true.
3283         (floating_point_store_memory_operand): Likewise.
3284
3285 2016-04-05  Jakub Jelinek  <jakub@redhat.com>
3286
3287         PR c++/70336
3288         * match.pd (nested int casts): Limit to GIMPLE.
3289
3290 2016-04-05  Jan Hubicka  <hubicka@ucw.cz>
3291
3292         PR ipa/66223
3293         * ipa-devirt.c (maybe_record_node): Fix comment; use
3294         SANITIZE_UNREACHABLE instead of SANITIZE_UNDEFINED.
3295
3296 2016-04-05  Jakub Jelinek  <jakub@redhat.com>
3297
3298         PR rtl-optimization/70542
3299         * ree.c (add_removable_extension): For VECTOR_MODE_P punt
3300         if there are any uses other than insn or debug insns.
3301
3302 2016-04-05  Marc Glisse  <marc.glisse@inria.fr>
3303             Jakub Jelinek  <jakub@redhat.com>
3304
3305         PR tree-optimization/70509
3306         * simplify-rtx.c (simplify_binary_operation_1) <case VEC_SELECT>:
3307         Shift HOST_WIDE_INT_1U instead of 1.
3308
3309 2016-04-05  Zdenek Sojka  <zsojka@seznam.cz>
3310
3311         PR tree-optimization/70509
3312         * tree-ssa-forwprop.c (simplify_bitfield_ref): Use bitsize_int instead
3313         of the vector base type for index.
3314
3315 2016-04-05  Uros Bizjak  <ubizjak@gmail.com>
3316
3317         PR target/70510
3318         * config/i386/sse.md (iptr): Add V64QI, V32HI, V16SI and V8DI modes.
3319
3320 2016-04-05  Richard Biener  <rguenther@suse.de>
3321
3322         PR tree-optimization/70526
3323         * tree-sra.c (build_ref_for_offset): Use prev_base to
3324         extract the alias pointer type.
3325
3326 2016-04-05  Richard Biener  <rguenther@suse.de>
3327
3328         * dse.c (struct store_info): Remove alias_set member.
3329         (struct read_info_type): Likewise.
3330         (clear_alias_group, clear_alias_mode_table, clear_alias_mode_holder,
3331         spill_deleted, clear_alias_set_lookup): Remove.
3332         (get_group_info): Remove dead base == NULL_RTX case.
3333         (dse_step0): Remove initialization of removed variables.
3334         (delete_dead_store_insn): Reomve alias set dumping.
3335         (free_read_records): Remove alias_set handling.
3336         (canon_address): Remove alias_set_out parameter.
3337         (record_store): Remove spill_alias_set, it's always zero.
3338         (check_mem_read_rtx): Likewise.
3339         (dse_step2): Rename from ...
3340         (dse_step2_nospill): ... this.  Adjust.
3341         (scan_stores): Rename from ...
3342         (scan_stores_nospill): ... this.
3343         (scan_reads): Rename from ...
3344         (scan_reads_nospill): ... this.
3345         (scan_stores_spill, scan_reads_spill): Remove.
3346         (dse_step3_scan): Remove for_spills argument which is always false.
3347         (dse_step3): Likewise.
3348         (dse_step5): Rename from ...
3349         (dse_step5_nospill): ... this.  Remove alias_set handling.
3350         (rest_of_handle_dse): Adjust.
3351
3352 2016-04-05  Jakub Jelinek  <jakub@redhat.com>
3353
3354         PR target/70525
3355         * config/i386/sse.md (*andnot<mode>3): Simplify assertions.
3356         Use vpandn<ssemodesuffix> for V16SI/V8DImode, vpandnq for
3357         V32HI/V64QImode, don't use <mask_operand3_1>, fix up formatting.
3358         (*andnot<mode>3_mask): Remove insn with VI12_AVX512VL iterator.
3359
3360 2016-04-05  Richard Biener  <rguenther@suse.de>
3361
3362         PR middle-end/70499
3363         * gimplify-me.c (gimple_regimplify_operands): Do not rewrite
3364         non-register type temporaries into SSA.
3365
3366 2016-04-04  Jan Hubicka  <hubicka@ucw.cz>
3367
3368         PR ipa/66223
3369         * ipa-devirt.c (maybe_record_node): Do not optimize cxa_pure_virtual
3370         calls when sanitizing.
3371         (possible_polymorphic_call_target_p): Fix formatting.
3372
3373 2016-04-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
3374             Jakub Jelinek <jakub@redhat.com>
3375
3376         PR middle-end/70457
3377         * tree-inline.c (estimate_num_insn): Use gimple_call_builtin_p
3378         to ensure a call statement is compatible with a built-in's
3379         prototype.
3380         * tree-ssa-math-opts.c (pass_optimize_windening_mul::execute):
3381         Likewise.
3382
3383 2016-04-04  Richard Biener  <rguenther@suse.de>
3384
3385         PR rtl-optimization/70484
3386         * rtl.h (canon_output_dependence): Declare.
3387         * alias.c (canon_output_dependence): New function.
3388         * dse.c (record_store): Use canon_output_dependence rather
3389         than canon_true_dependence.
3390
3391 2016-03-30  Jan Hubicka  <hubicka@ucw.cz>
3392
3393         PR ipa/68881
3394         * cgraph.h (symtab_node::copy_visibility_from): New function.
3395         * symtab.c (symtab_node::copy_visibility_from): New function.
3396         * ipa-visibility.c (optimize_weakref): New function.
3397         (function_and_variable_visibility): Use it.
3398
3399 2016-04-04  Martin Liska  <mliska@suse.cz>
3400
3401         PR hsa/70402
3402         * hsa-gen.c (gen_hsa_insns_for_switch_stmt): Guard index
3403         value that is really in range handled by SBR instruction.
3404         * hsa-brig.c (emit_switch_insn): Do not emit unconditional jump.
3405         * hsa-dump.c (dump_hsa_insn_1): Do not dump default BB.
3406         * hsa.h (hsa_insn_sbr::m_default_bb): Remove field.
3407
3408 2016-04-03  Oleg Endo  <olegendo@gcc.gnu.org>
3409
3410         PR target/70416
3411         PR target/67391
3412         * config/sh/sh.md (*addsi3): Allow pattern when reload_in_progress is
3413         set, but not for SP_REG operands.
3414
3415 2016-04-02  Martin Sebor  <msebor@redhat.com>
3416
3417         PR c++/67376
3418         * fold-const.c (maybe_nonzero_address): New function.
3419         (fold_comparison): Call it.  Fold equality and relational
3420         expressions involving null pointers.
3421         (tree_single_nonzero_warnv_p): Call maybe_nonzero_address.
3422
3423 2016-03-31  Evandro Menezes  <e.menezes@samsung.com>
3424
3425         Fix the predicate "aarch64_simd_reg_or_zero" to correctly validate
3426         the "Y" constraint (scalar FP 0.0 immediate).
3427
3428         * gcc/config/aarch64/predicates.md (aarch64_simd_reg_or_zero):
3429         Add the "const_double" to the list of operand constraints.
3430
3431 2016-04-01  Jakub Jelinek  <jakub@redhat.com>
3432
3433         PR rtl-optimization/70467
3434         * config/i386/i386.md (*add<dwi>3_doubleword, *sub<dwi>3_doubleword):
3435         If low word of the last operand is 0, just emit addition/subtraction
3436         for the high word.
3437
3438 2016-04-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
3439
3440         PR target/70404
3441         * config/s390/s390.c (s390_expand_insv): Check for everything
3442         constant instead of just VOIDmode stuff.
3443
3444 2016-04-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
3445
3446         PR target/70496
3447         * config/arm/arm.h (ASM_APP_OFF): Handle TARGET_ARM and TARGET_THUMB.
3448
3449 2016-04-01  Nathan Sidwell  <nathan@acm.org>
3450
3451         * tree.def (TRY_CATCH_EXPR): Correct documentation.
3452
3453 2016-03-31  Vladimir Makarov  <vmakarov@redhat.com>
3454
3455         PR rtl-optimization/70461
3456         * ira-color.c (allocno_copy_cost_saving): Use allocno class if it
3457         is necessary.
3458
3459 2016-03-31  Martin Liska  <mliska@suse.cz>
3460
3461         PR hsa/70399
3462         * hsa-brig.c (hsa_op_immed::emit_to_buffer): Emit either
3463         a tree value or an immediate integer value to a buffer
3464         that is eventually copied to a BRIG section.
3465         (emit_immediate_operand): Call the function here.
3466         * hsa-dump.c (dump_hsa_immed): Remove checking assert.
3467         * hsa-gen.c (hsa_op_immed::hsa_op_immed): Remove initialization
3468         of class' fields that are removed.
3469         (hsa_op_immed::~hsa_op_immed): Remove deinitialization.
3470         * hsa.h (class hsa_op_immed): Remove m_brig_repr and
3471         m_brig_repr_size fields.
3472
3473 2016-03-31  Martin Liska  <mliska@suse.cz>
3474
3475         PR hsa/70391
3476         * hsa-gen.c (hsa_function_representation::update_dominance): New
3477         function.
3478         (convert_addr_to_flat_segment): Likewise.
3479         (gen_hsa_memory_set): New alignment argument.
3480         (gen_hsa_ctor_assignment): Likewise.
3481         (gen_hsa_insns_for_single_assignment): Provide alignment
3482         to gen_hsa_ctor_assignment.
3483         (gen_hsa_insns_for_direct_call): Add new argument.
3484         (expand_lhs_of_string_op): New function.
3485         (expand_string_operation_builtin): Likewise.
3486         (expand_memory_copy): New function.
3487         (expand_memory_set): New function.
3488         (gen_hsa_insns_for_call): Use HOST_WIDE_INT.
3489         (convert_switch_statements): Change signature.
3490         (generate_hsa): Use a return value of the function.
3491         (pass_gen_hsail::execute): Do not call
3492         convert_switch_statements here.
3493         * hsa-regalloc.c (hsa_regalloc): Call update_dominance.
3494         * hsa.h (hsa_function_representation::m_modified_cfg): New flag.
3495         (hsa_function_representation::update_dominance): New function.
3496
3497 2016-03-31  Martin Liska  <mliska@suse.cz>
3498
3499         PR hsa/70391
3500         * hsa-brig.c (emit_directive_variable): Emit alignment
3501         according to hsa_symbol::m_align.
3502         * hsa-dump.c (hsa_byte_alignment): Move the function to another file.
3503         (dump_hsa_symbol): Dump alignment of HSA symbols.
3504         * hsa-gen.c (get_symbol_for_decl): Set-up alignment of a symbol.
3505         (gen_hsa_addr_with_align): New function.
3506         (hsa_bitmemref_alignment): Use newly added function.
3507         (gen_hsa_insns_for_load): Likewise.
3508         (gen_hsa_insns_for_store): Likewise.
3509         (gen_hsa_memory_copy): New argument added.
3510         (gen_hsa_insns_for_single_assignment): Respect
3511         alignment for assignments processed via gen_hsa_memory_copy.
3512         (gen_hsa_insns_for_direct_call): Likewise.
3513         (gen_hsa_insns_for_return): Likewise.
3514         (gen_function_def_parameters): Set default alignment.
3515         * hsa.c (hsa_object_alignment): New function.
3516         (hsa_byte_alignment): Pasted function.
3517         * hsa.h (hsa_symbol::m_align): New field.
3518
3519 2016-03-31  Bin Cheng  <bin.cheng@arm.com>
3520
3521         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Initialize
3522         scratch field for goto case.
3523
3524 2016-03-31  James Greenhalgh  <james.greenhalgh@arm.com>
3525
3526         * config/arm/linux-elf.h (ASM_OUTPUT_DEF): Delete.
3527
3528 2016-03-31  Ilya Enkovich  <enkovich.gnu@gmail.com>
3529
3530         PR target/70442
3531         * config/i386/i386.c (scalar_chain::convert_op): Fix description.
3532         (scalar_chain::convert_insn): Call convert_op for reg
3533         moves to handle undefined registers.
3534
3535 2016-03-31  Nathan Sidwell  <nathan@acm.org>
3536
3537         PR c++/70393
3538         * varasm.c (output_constructor_regular_field): Flush bitfield earlier.
3539         Assert we don't want to move backwards.
3540
3541 2016-03-31  Kirill Yukhin  <kirill.yukhin@intel.com>
3542
3543         PR target/70453
3544         * config/i386/sse.md (define_mode_attr shuffletype): Fix typo.
3545
3546 2016-03-31  Jakub Jelinek  <jakub@redhat.com>
3547
3548         PR rtl-optimization/70460
3549         * ira.c (indirect_jump_optimize): Don't substitute LABEL_REF
3550         with operand from REG_LABEL_OPERAND, instead substitute
3551         SET_SRC or REG_EQUAL note content if it is a LABEL_REF.
3552         Don't do anything for REG_NON_LOCAL_GOTO jumps.
3553
3554 2016-03-31  Martin Liska  <mliska@suse.cz>
3555
3556         * passes.c (execute_one_pass): Do not call
3557         todo_after for a discarded function.
3558
3559 2016-03-31  Bin Cheng  <bin.cheng@arm.com>
3560
3561         * tree-ssa-loop-ivopts.c (struct comp_cost): New scrach field.
3562         (no_cost, infinite_cost): Initialize the new field.
3563         (get_computation_cost_at): Record setup cost.
3564         (determine_use_iv_cost_address): Skip cost computation for sub
3565         uses if we can estimate it without losing accuracy.
3566
3567 2016-03-30  Jan Hubicka  <hubicka@ucw.cz>
3568
3569         * tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can't get realistic
3570         estimates here.
3571         * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also
3572         max_loop_iterations_int.
3573         (tree_unswitch_outer_loop): Likewise.
3574         * tree-ssa-loop-ivopts.c (avg_loop_niter): Likewise.
3575         * tree-vect-loop.c (vect_analyze_loop_2): Likewise.
3576
3577 2016-03-30  Richard Biener  <rguenther@suse.de>
3578
3579         PR middle-end/70450
3580         * fold-const.c (extract_muldiv_1): Fix thinko in wide_int::from usage.
3581
3582 2016-03-30  Jakub Jelinek  <jakub@redhat.com>
3583
3584         PR target/70421
3585         * config/i386/i386.c (ix86_expand_vector_set): Fix up argument order
3586         in gen_blendm expander.
3587
3588 2016-03-30  Nick Clifton  <nickc@redhat.com>
3589
3590         PR target/62254
3591         * config/arm/arm.c (arm_reload_out_hi): Add code to handle the
3592         case where we are already provided with an SImode SUBREG.
3593
3594 2016-03-30  H.J. Lu  <hongjiu.lu@intel.com>
3595
3596         PR target/70439
3597         * config/i386/i386.c (ix86_expand_epilogue): Properly check
3598         conflict between DRAP register and __builtin_eh_return.
3599
3600 2016-03-30  Michael Matz  <matz@suse.de>
3601             Richard Biener  <rguenther@suse.de>
3602
3603         PR ipa/12392
3604         * ipa-polymorphic-call.c (struct type_change_info): Change
3605         speculative to an unsigned allowing to limit the work we do.
3606         (csftc_abort_walking_p): New inline function..
3607         (check_stmt_for_type_change): Limit the number of may-defs
3608         skipped for speculative devirtualization to
3609         max-speculative-devirt-maydefs.
3610         * params.def (max-speculative-devirt-maydefs): New param.
3611         * doc/invoke.texi (--param max-speculative-devirt-maydefs): Document.
3612
3613 2016-03-30  Mike Stump  <mrs@gcc.gnu.org>
3614
3615         PR target/63890
3616         * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Use when profiling
3617         and TARGET_MACHO.
3618
3619 2016-03-30  Patrick Palka  <ppalka@gcc.gnu.org>
3620
3621         PR tree-optimization/59124
3622         * tree-vrp.c (register_edge_assert_for_2): For NAME != CST1
3623         where NAME = A +- CST2 add the assertion A != (CST1 -+ CST2).
3624
3625 2016-03-29  Jeff Law  <law@redhat.com>
3626
3627         * tree-ssa-coalesce.c (struct ssa_conflicts): Fix typo in comment.
3628
3629 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
3630
3631         * tree-ssa-loop-ivcanon.c (try_peel_loop): Change type of peel
3632         to HOST_WIDE_INT.
3633
3634 2016-03-29  Thomas Schwinge  <thomas@codesourcery.com>
3635
3636         * config/gnu.h (CPP_SPEC, LIB_SPEC): Don't override.
3637         * config/i386/gnu.h (STARTFILE_SPEC): Use gcrt1.o instead of
3638         gcrt0.o if linking dynamically.
3639
3640 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
3641
3642         PR ipa/70283
3643         * ipa-devirt.c (methods_equal_p): New function.
3644         (compare_virtual_tables): Use it.
3645         * cgraph.h (symbol_table::symbol_suffix_separator): Declare.
3646         * cgraphclones.c (clone_function_name_1): Use
3647         symbol_table::symbol_suffix_separator.
3648         * coverage.c (build_var): Likewise.
3649         * symtab.c (symbol_table::symbol_suffix_separator): New.
3650
3651 2016-03-29  Jakub Jelinek  <jakub@redhat.com>
3652
3653         PR rtl-optimization/70429
3654         * combine.c (simplify_shift_const_1): For ASHIFTRT don't optimize
3655         (cst1 >> count) >> cst2 into (cst1 >> cst2) >> count if
3656         mode != result_mode.
3657
3658         PR c++/70353
3659         * tree-inline.c (remap_decls): Don't add_local_decl if cfun is null.
3660
3661         PR tree-optimization/70405
3662         * ssa-iterators.h (num_imm_uses): Add missing braces.
3663
3664 2016-03-29  Vladimir Makarov  <vmakarov@redhat.com>
3665
3666         PR rtl-optimization/68695
3667         * ira-color.c (allocno_copy_cost_saving): New.
3668         (improve_allocation): Use it.
3669
3670 2016-03-29  Richard Henderson  <rth@redhat.com>
3671
3672         PR middle-end/70355
3673         * lower-subreg.c (simplify_subreg_concatn): Reject paradoxical subregs.
3674
3675 2016-03-29  Richard Biener  <rguenther@suse.de>
3676
3677         PR middle-end/70424
3678         * ipa-prop.c (ipa_compute_jump_functions_for_edge): Always
3679         use alignment returned by get_pointer_alignment_1 if it is
3680         bigger than BITS_PER_UNIT.
3681         * builtins.c (get_pointer_alignment_1): Do not return true
3682         for alignment extracted from SSA info.
3683
3684 2016-03-28  James Bowman  <james.bowman@ftdichip.com>
3685
3686         * config/ft32/ft32.opt (mnodiv): New.
3687         * config/ft32/ft32.md (*divsi3, *modsi3): Qualify with TARGET_NODIV.
3688         * doc/invoke.texi (FT32 Options -mnodiv): New.
3689
3690 2016-03-28  Kirill Yukhin  <kirill.yukhin@intel.com>
3691
3692         PR target/70406
3693         * config/i386/i386.md (define_split, andn): Fix modes.
3694
3695 2016-03-26  Richard Biener  <rguenther@suse.de>
3696             Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
3697
3698         PR ipa/70366
3699         * ipa-inline-transform.c (inline_call): Pass opts_for_fn (to->decl)
3700         instead of
3701         TREE_OPTIMIZATION (DECL_FUNCTION_SPECIFIC_OPTIMIZATION (to->decl))
3702         as 2nd argument to cl_optimization_restore().
3703
3704 2016-03-25  Richard Henderson  <rth@redhat.com>
3705
3706         PR target/70120
3707         * config/aarch64/aarch64.c (aarch64_asm_output_pool_epilogue): New.
3708         * config/aarch64/aarch64-protos.h: Declare it.
3709         * config/aarch64/aarch64.h (ASM_OUTPUT_POOL_EPILOGUE): New.
3710
3711 2016-03-25  Alan Modra  <amodra@gmail.com>
3712
3713         PR target/70052
3714         * config/rs6000/constraints.md (j): Simplify.
3715         * config/rs6000/predicates.md (easy_fp_constant): Exclude
3716         decimal float 0.D.
3717         * config/rs6000/rs6000.md (zero_fp): New mode_attr.
3718         (mov<mode>_hardfloat, mov<mode>_hardfloat32, mov<mode>_hardfloat64,
3719          mov<mode>_64bit_dm, mov<mode>_32bit): Use zero_fp in place of j
3720         in all constraint alternatives.
3721         (movtd_64bit_nodm): Delete "j" constraint alternative.
3722
3723 2016-03-24  Aldy Hernandez  <aldyh@redhat.com>
3724
3725         * tree-ssa-propagate.c: Enhance docs for
3726         SSA_PROP_NOT_INTERESTING.
3727
3728 2016-03-24  Aldy Hernandez  <aldyh@redhat.com>
3729
3730         * doc/extend.texi: Fix typo in documentation to pure attribute.
3731
3732 2016-03-24  John David Anglin  <danglin@gcc.gnu.org>
3733
3734         PR target/70319
3735         * config/pa/pa.md (bswapdi2): Use a scratch register.
3736
3737 2016-03-24  Richard Henderson  <rth@redhat.com>
3738
3739         PR middle-end/69845
3740         * fold-const.c (extract_muldiv_1): Correct test for multiplication
3741         overflow.
3742
3743 2016-03-24  Uros Bizjak  <ubizjak@gmail.com>
3744
3745         * config/i386/i386.md (*anddi3_doubleword): Generate AND insn
3746         using ix86_expand_binary_operator instead of gen_andsi3.
3747
3748 2016-03-24  Richard Biener  <rguenther@suse.de>
3749
3750         PR tree-optimization/70396
3751         * tree-vect-stmts.c (vectorizable_comparison): Use
3752         get_vectype_for_scalar_type.
3753
3754 2016-03-24  Richard Biener  <rguenther@suse.de>
3755
3756         PR middle-end/70370
3757         * gimplify.c (gimplify_asm_expr): Handle !allows_mem outputs
3758         with register bases.
3759
3760 2016-03-24  Richard Biener  <rguenther@suse.de>
3761
3762         PR tree-optimization/70372
3763         * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Use
3764         build_all_ones_cst to also handle vector types correctly.
3765
3766 2016-03-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
3767
3768         PR target/70381
3769         * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Do not set
3770         -mfloat128 here.
3771
3772 2016-03-23  Marek Polacek  <polacek@redhat.com>
3773
3774         PR c++/69884
3775         * doc/invoke.texi: Document -Wignored-attributes.
3776
3777 2016-03-23  Bin Cheng  <bin.cheng@arm.com>
3778
3779         PR tree-optimization/69042
3780         * params.def (PARAM_IV_CONSIDER_ALL_CANDIDATES_BOUND): Increase the
3781         parameter from 30 to 40.
3782
3783 2016-03-23  Bin Cheng  <bin.cheng@arm.com>
3784
3785         PR tree-optimization/69042
3786         * tree-ssa-loop-ivopts.c (add_iv_candidate_for_use): Add IV cand
3787         for use with constant offset stripped in base.
3788
3789 2016-03-23  Richard Biener  <rguenther@suse.de>
3790
3791         PR middle-end/70251
3792         * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Adjust
3793         mode compatibility check.
3794         (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise.
3795
3796 2016-03-23  Jeff Law  <law@redhat.com>
3797
3798         PR tree-optimization/64058
3799         * tree-ssa-coalesce.c (struct coalesce_pair): Add new field
3800         CONFLICT_COUNT.
3801         (struct ssa_conflicts): Move up earlier in the file.
3802         (conflicts_, var_map_): New static variables.
3803         (initialize_conflict_count): New function to initialize the
3804         CONFLICT_COUNT field for each conflict pair.
3805         (compare_pairs): Lazily initialize the conflict count and use it
3806         as the first tie-breaker.
3807         (sort_coalesce_list): Add new arguments conflicts, map.  Initialize
3808         and wipe conflicts_ and map_ around the call to qsort.  Remove
3809         special case for 2 coalesce pairs.
3810         * bitmap.c (bitmap_count_unique_bits): New function.
3811         (bitmap_count_bits_in_word): New function, extracted from
3812         bitmap_count_bits.
3813         (bitmap_count_bits): Use bitmap_count_bits_in_word.
3814         * bitmap.h (bitmap_count_unique_bits): Declare it.
3815
3816 2016-03-23  Ilya Enkovich  <enkovich.gnu@gmail.com>
3817
3818         PR target/69917
3819         * config/i386/sol2.h (ASM_OUTPUT_DEF_FROM_DECLS): Follow
3820         transparent alias chain for decl assembler name.
3821         * config/sol2.c (solaris_assemble_visibility): Likewise.
3822
3823 2016-03-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3824
3825         * config/arm/arm1020e.md (1020call_op): Reduce reservation
3826         duration.
3827         (v10_fdivs): Likewise.
3828         (v10_fdivd): Likewise.
3829
3830 2016-03-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3831
3832         PR driver/70132
3833         * config/arm/driver-arm.c (host_detect_local_cpu): Reorder exit logic
3834         to not call fclose twice on file.
3835
3836 2016-03-23  Jakub Jelinek  <jakub@redhat.com>
3837
3838         PR tree-optimization/70354
3839         * tree-vect-patterns.c (vect_recog_vector_vector_shift_pattern): If
3840         oprnd0 is wider than oprnd1 and there is a cast from the wider
3841         type to oprnd1, mask it with the mask of the narrower type.
3842
3843         PR target/70321
3844         * config/i386/i386.md (*anddi3_doubleword, *<code>di3_doubleword):
3845         Optimize TARGET_STV splitters, if high or low word of last argument
3846         is 0 or -1.
3847
3848 2016-03-22  Jeff Law  <law@redhat.com>
3849
3850         PR target/70232
3851         tree-ssa-threadbackward.c
3852         (fsm_find_control_statement_thread_paths): Correctly distinguish
3853         between old style jump threads vs FSM jump threads.
3854
3855 2016-03-22  Ilya Enkovich  <enkovich.gnu@gmail.com>
3856
3857         PR target/70302
3858         * config/i386/i386.c (scalar_chain::convert_op): Support
3859         uninitialized register usage case.
3860
3861 2016-03-22  Richard Biener  <rguenther@suse.de>
3862
3863         PR middle-end/70251
3864         * genmatch.c (gen_transform): Adjust last parameter to a three-state
3865         int...
3866         (capture::gen_transform): ... to change behavior when substituting
3867         a condition into cond or not-cond expr context.
3868         (dt_simplify::gen_1): Adjust.
3869         * gimple-match-head.c: Include gimplify.h for unshare_expr.
3870         * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Revert
3871         last change and instead change to
3872         A + (B vcmp C ? 1 : 0) -> A - (B vcmp C ? -1 : 0).
3873         (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise.
3874
3875 2016-03-22  Anthony Green  <green@moxielogic.com>
3876
3877         * config/moxie/moxiebox.h (CC1_SPEC): Define.  Fix endianness
3878         issue for moxiebox targets.
3879         (CC1PLUS_SPEC): Ditto.
3880
3881 2016-03-22  Richard Biener  <rguenther@suse.de>
3882
3883         PR middle-end/70333
3884         * fold-const.c (extract_muldiv_1): Properly perform multiplication
3885         in the wide type.
3886
3887 2016-03-22  Kirill Yukhin  <kirill.yukhin@intel.com>
3888
3889         * config/i386/i386.c (def_builtin): Remove duplicated functionality.
3890
3891 2016-03-22  Kirill Yukhin  <kirill.yukhin@intel.com>
3892
3893         PR target/70325
3894         * config/i386/i386.c (def_builtin): Handle
3895         OPTION_MASK_ISA_AVX512VL to be and-ed with other
3896         bits.
3897         (const struct builtin_description bdesc_special_args[]):
3898         Remove duplicate ISA bits.
3899
3900 2016-03-22  Jakub Jelinek  <jakub@redhat.com>
3901
3902         PR target/70329
3903         * config/i386/i386.c (ix86_expand_vecop_qihi): Don't bother computing
3904         d.perm[i] for i >= d.nelt.  If not full_interleave, compute d.perm[i]
3905         in a way that works also for AVX512BW.
3906
3907         PR target/70300
3908         * config/i386/i386.md (cvtsd2ss splitter): Unpack in destination
3909         instead of source if operands[1] is xmm16 and above and
3910         !TARGET_AVX512VL.  Use avx512f_vec_dupv16sf_1 instead of
3911         vec_interleave_lowv4sf if we need to unpack xmm16 and above.
3912
3913         PR c++/70295
3914         * gimplify.c (gimplify_modify_expr): Call gimple_set_no_warning
3915         on assign if (*from_p) is a comparison, set it to
3916         TREE_NO_WARNING (*from_p).
3917
3918 2016-03-21  Jakub Jelinek  <jakub@redhat.com>
3919
3920         PR middle-end/70326
3921         * lra.c (restore_scratches): Ignore deleted insns.
3922
3923 2016-03-21  Marc Glisse  <marc.glisse@inria.fr>
3924             Jakub Jelinek  <jakub@redhat.com>
3925
3926         PR tree-optimization/70317
3927         * match.pd (cmp @0 @0): Pass @0 instead of TYPE_MODE (TREE_TYPE (@0))
3928         to HONOR_NANS.
3929
3930 2016-03-21  Uros Bizjak  <ubizjak@gmail.com>
3931
3932         PR target/70327
3933         * config/i386/i386.md (movxi): Use ix86_expand_vector_move instead
3934         of ix86_expand_move.
3935         (movoi): Ditto.
3936         (movti): Use general_operand for operand 1 predicate.
3937
3938 2016-03-21  Martin Liska  <mliska@suse.cz>
3939
3940         * hsa-dump.c (dump_hsa_insn_1): dump default branch of SBR
3941         insns.
3942         (dump_hsa_symbol): Dump BRIG offset of hsa_symbols.
3943
3944 2016-03-21  Martin Liska  <mliska@suse.cz>
3945
3946         PR ipa/70306
3947         * ipa-icf.c (sem_function::parse): Skip static
3948         constructors and destructors.
3949
3950 2016-03-21  Jakub Jelinek  <jakub@redhat.com>
3951
3952         PR target/70296
3953         * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If IDENT is
3954         function-like macro, peek following token(s) if it is followed
3955         by CPP_OPEN_PAREN token with optional padding in between, and
3956         if not, don't treat it like a macro.
3957
3958 2016-03-21  Thomas Schwinge  <thomas@codesourcery.com>
3959             Alexander Monakov  <amonakov@ispras.ru>
3960
3961         * config/nvptx/nvptx.c (nvptx_option_override): Don't emit sorry
3962         for the stabs debug format.
3963
3964 2016-03-21  Richard Biener  <rguenther@suse.de>
3965
3966         PR tree-optimization/70310
3967         * tree-vect-generic.c (expand_vector_condition): Fold the built
3968         condition.
3969
3970 2016-03-21  Kirill Yukhin  <kirill.yukhin@intel.com>
3971
3972         PR target/70293
3973         * config/i386/sse.md: (define_insn "*vec_dup<mode>"/AVX2):
3974         Block third alternative for AVX-512VL target,
3975
3976 2016-03-21  Martin Liska  <mliska@suse.cz>
3977
3978         PR hsa/70234
3979         * hsa-brig.c (emit_function_directives): Mark unemitted
3980         global variables for emission.
3981         * hsa-gen.c (hsa_symbol::hsa_symbol): Initialize a new flag.
3982         (get_symbol_for_decl): Likewise.
3983         * hsa.h (struct hsa_symbol): New flag.
3984
3985 2016-03-21  Richard Biener  <rguenther@suse.de>
3986
3987         PR tree-optimization/70288
3988         * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Make sure
3989         we do not estimate unsimplified all-constant conditionals or
3990         switches as optimized away.
3991
3992 2016-03-21  Andrey Belevantsev  <abel@ispras.ru>
3993
3994         PR rtl-optimization/69102
3995         * sched-deps.c (sched_analyze_insn): Do not set last_args_size field
3996         when we have a readonly dependency context.
3997
3998 2016-03-18  Jeff Law  <law@redhat.com>
3999
4000         PR rtl-optimization/70263
4001         * ira.c (memref_used_between_p): Assert we found END in the insn chain.
4002         (update_equiv_regs): When trying to move a store to after the insn
4003         that sets the source of the store, make sure the store occurs after
4004         the insn that sets the source of the store.  When successful note
4005         the REG_EQUIV note created in the dump file.
4006
4007 2016-03-16  David Wohlferd  <dw@LimeGreenSocks.com>
4008             Bernd Schmidt  <bschmidt@redhat.com>
4009
4010         * doc/extend.texi: Document more potential problems with basic asms.
4011
4012 2016-03-18  Bernd Schmidt  <bschmidt@redhat.com>
4013
4014         PR rtl-optimization/70278
4015         * lra-constraints.c (split_reg): Handle the case where biggest_mode is
4016         VOIDmode.
4017
4018 2016-03-18  Jason Merrill  <jason@redhat.com>
4019
4020         * calls.c (load_register_parameters): Fix zero size sibcall logic.
4021
4022 2016-03-18  Kirill Yukhin  <kirill.yukhin@intel.com>
4023
4024         * config/i386/sse.md: Use vpbroadcastq for broadcasting DF
4025         values to 128b regs.
4026
4027 2016-03-18  Ilya Enkovich  <enkovich.gnu@gmail.com>
4028
4029         PR tree-optimization/70252
4030         * tree-vect-stmts.c (supportable_widening_operation): Check resulting
4031         boolean vector has a proper number of elements.
4032         (supportable_narrowing_operation): Likewise.
4033
4034 2016-03-18  Tom de Vries  <tom@codesourcery.com>
4035
4036         PR ipa/70269
4037         * cgraph.c (cgraph_node::get_body): Set dump_file to NULL after save.
4038
4039 2016-03-18  Jakub Jelinek  <jakub@redhat.com>
4040
4041         * reload1.c (emit_input_reload_insns): Use simplify_replace_rtx
4042         instead of replace_rtx for DEBUG_INSNs.
4043
4044 2016-03-18  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
4045
4046         * config/i386/znver1.md : Fix latencies of FP/SSE/AVX
4047         load type reservations.
4048
4049 2016-03-17  John David Anglin  <danglin@gcc.gnu.org>
4050
4051         PR target/70188
4052         * config/pa/constraints.md: Revert 2015-02-13 change.  Use
4053         define_constraint for "Q" and "T" constraints.
4054
4055 2016-03-17  Evandro Menezes  <e.menezes@samsung.com>
4056
4057         Tweak the pipeline model for Exynos M1
4058
4059         * config/aarch64/aarch64.c (exynosm1_tunings):  Enable weak prefetching
4060         model.
4061
4062 2016-03-17  David Malcolm  <dmalcolm@redhat.com>
4063
4064         PR c/70264
4065         * diagnostic-show-locus.c (compatible_locations_p): Handle the case
4066         where one or both locations aren't within a line_map.
4067
4068 2016-03-17  H.J. Lu  <hongjiu.lu@intel.com>
4069
4070         PR driver/70192
4071         * opts.c (finish_options): Don't set flag_pie to the default if
4072         -fpic, -fPIC, -fno-pic or -fno-PIC is used.  Set flag_pic to 0
4073         if it is -1.
4074
4075 2016-03-17  Joern Rennecke  <joern.rennecke@embecosm.com>
4076
4077         * config/i386/i386.md (*movv4qicc_insn+1..36): Pass
4078         true as ALL_REGS argument to replace_rtx.
4079
4080 2016-03-17  Richard Biener  <rguenther@suse.de>
4081
4082         PR debug/70271
4083         * dwarf2out.c (dwarf2out_early_finish): Process deferred_asm_name
4084         last.
4085
4086 2016-03-17  Jakub Jelinek  <jakub@redhat.com>
4087
4088         PR target/70245
4089         * rtl.h (replace_rtx): Add ALL_REGS argument.
4090         * rtlanal.c (replace_rtx): Likewise.  If true, use REGNO
4091         equality and assert mode is the same, instead of just rtx pointer
4092         equality.
4093         * config/i386/i386.md (mov + arithmetics with load peephole): Pass
4094         true as ALL_REGS argument to replace_rtx.
4095
4096 2016-03-17  Ilya Enkovich  <enkovich.gnu@gmail.com>
4097
4098         * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Apply
4099         for boolean vector with vector mode only.
4100         (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise.
4101
4102 2016-03-17  Nick Clifton  <nickc@redhat.com>
4103
4104         PR target/70162
4105         * config/rx/rx.c (rx_print_integer): Print negative constants in
4106         decimal.
4107
4108 2016-03-17  Jakub Jelinek  <jakub@redhat.com>
4109
4110         PR target/70261
4111         * rtlanal.c (replace_rtx): Revert 2016-03-16 change.
4112
4113 2016-03-16  Richard Henderson  <rth@redhat.com>
4114             Richard Biener  <rguenth@suse.de>
4115
4116         PR middle-end/70240
4117         PR middle-end/68215
4118         PR tree-opt/68714
4119         * gimplify.c (gimplify_expr) [VEC_COND_EXPR]: Gimplify the
4120         first operand as is_gimple_condexpr.
4121
4122         PR middle-end/70240
4123         PR middle-end/68215
4124         Revert r231575
4125         2015-12-11  Eric Botcazou  <ebotcazou@adacore.com>
4126         * tree-vect-generic.c (tree_vec_extract): Remove GSI parameter.
4127         Do not gimplify the result.
4128         (do_unop): Adjust call to tree_vec_extract.
4129         (do_binop): Likewise.
4130         (do_compare): Likewise.
4131         (do_plus_minus): Likewise.
4132         (do_negate): Likewise.
4133         (expand_vector_condition): Likewise.
4134         (do_cond): Likewise.
4135
4136 2016-03-16  Richard Henderson  <rth@redhat.com>
4137
4138         PR target/70048
4139         * config/aarch64/aarch64.c (virt_or_elim_regno_p): New.
4140         (aarch64_classify_address): Use it.
4141         (aarch64_legitimize_address): Force all subexpressions of PLUS
4142         into registers.  Simplify as (sfp+const)+reg or (reg+reg)+const.
4143
4144 2016-03-16  Jakub Jelinek  <jakub@redhat.com>
4145             Richard Biener  <rguenth@suse.de>
4146
4147         PR target/70245
4148         * rtlanal.c (replace_rtx): For REG, if from is a REG,
4149         return to even if only REGNO is equal, and assert
4150         mode is the same.
4151
4152 2016-03-11  Jeff Law  <law@redhat.com>
4153
4154         PR rtl-optimization/70224
4155         * reorg.c (relax_delay_slots): Pass right argument to CROSSING_JUMP_P.
4156
4157 2016-03-16  Richard Henderson  <rth@redhat.com>
4158
4159         PR middle-end/70199
4160         * function.h (struct function): Add has_forced_label_in_static.
4161         * gimplify.c (force_labels_r): Set it.
4162         * lto-streamer-in.c (input_struct_function_base): Read it.
4163         * lto-streamer-out.c (output_struct_function_base): Write it.
4164         * tree-inline.c (has_label_address_in_static_1): Remove.
4165         (copy_forbidden): Remove fndecl parameter; test
4166         has_forced_label_in_static.
4167         (inline_forbidden_p): Update call to copy_forbidden.
4168         (tree_versionable_function_p): Likewise.
4169         * ipa-chkp.c (chkp_instrumentable_p): Likewise.
4170         (chkp_versioning): Likewise.
4171         * tree-inline.h (copy_forbidden): Update decl.
4172
4173 2016-03-16  Marek Polacek  <polacek@redhat.com>
4174
4175         PR c/70093
4176         * cgraphunit.c (cgraph_node::expand_thunk): Also build call to the
4177         function being thunked if the result type doesn't have fixed size.
4178         * gimplify.c (gimplify_modify_expr): Also set LHS if the result type
4179         doesn't have fixed size.
4180
4181 2016-03-16  Bin Cheng  <bin.cheng@arm.com>
4182
4183         * tree-vect-loop.c (vect_analyze_loop_2): Fix wrong dump info by
4184         reporting malformed loop nest.
4185
4186 2016-03-16  Tom de Vries  <tom@codesourcery.com>
4187
4188         PR lto/70187
4189         * ipa-devirt.c (possible_polymorphic_call_targets): Move
4190         nodes.length () == 1 test to before first nodes[0] access.
4191
4192 2016-03-16  Tom de Vries  <tom@codesourcery.com>
4193
4194         PR tree-optimization/68715
4195         * graphite-scop-detection.c (scop_detection::merge_sese): Add missing
4196         single_pred_p test.
4197
4198 2016-03-16  Tom de Vries  <tom@codesourcery.com>
4199
4200         PR tree-optimization/68809
4201         * graphite-scop-detection.c (same_close_phi_node): Test if result types
4202         are the same.
4203
4204 2016-03-16  Carlos O'Donell  <carlos@redhat.com>
4205             Sandra Loosemore  <sandra@codesourcery.com>
4206
4207         * doc/extend.texi (Common Function Attributes): Describe ifunc impact
4208         on leaf attribute. Mention ELF interposition problems.
4209
4210 2016-03-16  Alan Modra  <amodra@gmail.com>
4211
4212         PR rtl-optimization/69195
4213         PR rtl-optimization/47992
4214         * ira.c (indirect_jump_optimize): Ignore artificial defs.
4215         Add comments.
4216
4217 2016-03-15  Eric Botcazou  <ebotcazou@adacore.com>
4218
4219         PR bootstrap/69513
4220         * dwarf2out.c (flush_limbo_die_list): Really flush the limbo list.
4221
4222 2016-03-15  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
4223
4224         * config/avr/avr.md (rotl<mode>3): Set mode for operand 2.
4225
4226 2016-03-15  Jakub Jelinek  <jakub@redhat.com>
4227
4228         PR rtl-optimization/70222
4229         * combine.c (simplify_shift_const_1): For A >> B >> C LSHIFTRT
4230         optimization if mode is different from result_mode, queue up masking
4231         of the result in outer_op.  Formatting fix.
4232
4233         PR middle-end/70239
4234         * tree-ssa-sccvn.c (VN_INFO_GET): Use safe_grow_cleared instead
4235         of safe_grow.
4236
4237 2016-03-15  Andrey Belevantsev  <abel@ispras.ru>
4238
4239         PR rtl-optimization/69032
4240         * sel-sched-ir.c (get_seqno_by_preds): Include both insn and head when
4241         looping backwards over basic block insns.
4242
4243 2016-03-15  Andrey Belevantsev  <abel@ispras.ru>
4244
4245         PR target/66660
4246         * sel-sched-ir.c (merge_expr): Avoid changing the speculative pattern
4247         to non-speculative when propagating trap bits.
4248
4249 2016-03-15  Andrey Belevantsev  <abel@ispras.ru>
4250
4251         PR rtl-optimization/63384
4252         * sel-sched.c (invoke_aftermath_hooks): Do not decrease issue_more on
4253         DEBUG_INSN_P insns.
4254
4255 2016-03-15  Andrey Belevantsev  <abel@ispras.ru>
4256
4257         PR target/64411
4258         * sched-deps.c (get_implicit_reg_pending_clobbers): New function,
4259         factored out from ...
4260         (sched_analyze_insn): ... here.
4261         * sched-int.h (get_implicit_reg_pending_clobbers): Declare it.
4262         * sel-sched-ir.c (setup_id_implicit_regs): New function, use
4263         get_implicit_reg_pending_clobbers in it.
4264         (setup_id_reg_sets): Use setup_id_implicit_regs.
4265         (deps_init_id): Ditto.
4266
4267 2016-03-15  Tom de Vries  <tom@codesourcery.com>
4268
4269         PR ipa/70161
4270         * cgraph.c (cgraph_node::get_body): Save, reset and restore
4271         dump_file_name.
4272         * passes.c (execute_one_ipa_transform_pass): Add missing argument to
4273         execute_function_dump.
4274         (execute_one_pass): Don't dump function if it will be dumped after ipa
4275         transform.
4276
4277 2016-03-15  Segher Boessenkool  <segher@kernel.crashing.org>
4278
4279         * genrecog.c (match_pattern_2): If pred is NULL don't call
4280         safe_predicate_mode on it.
4281
4282 2016-03-14  Jakub Jelinek  <jakub@redhat.com>
4283
4284         PR middle-end/70219
4285         * lra-constraints.c (delete_move_and_clobber): Change assertion
4286         to also allow dregno == 0.
4287
4288 2016-03-14  Richard Henderson  <rth@redhat.com>
4289
4290         PR tree-opt/68714
4291         * tree-ssa-reassoc.c (ovce_extract_ops, optimize_vec_cond_expr): New.
4292         (can_reassociate_p): Allow ANY_INTEGRAL_TYPE_P.
4293         (reassociate_bb): Use optimize_vec_cond_expr; avoid
4294         optimize_range_tests, attempt_builtin_copysign and attempt_builtin_powi
4295         on vectors.
4296
4297 2016-03-14  Bernd Schmidt  <bschmidt@redhat.com>
4298
4299         PR target/70083
4300         * lra-lives.c (process_bb_lives): Also update biggest mode for hard
4301         regs.
4302         (lra_create_live_ranges_1): initialize hard register biggest_mode to
4303         VOIDmode.
4304         * lra-constraints.c (split_reg): For hard regs, try to find the
4305         biggest single-register mode used in the function.
4306
4307 2016-03-14  Richard Biener  <rguenther@suse.de>
4308
4309         PR tree-optimization/56365
4310         * tree-ssa-phiopt.c (minmax_replacement): Handle alternate
4311         constants to compare against.
4312
4313 2016-03-14  Segher Boessenkool  <segher@kernel.crashing.org>
4314
4315         PR target/70098
4316         * config/rs6000/rs6000.md (*ctr<mode>_internal1, *ctr<mode>_internal2,
4317         *ctr<mode>_internal5, *ctr<mode>_internal6): Also allow "d" as output.
4318         (define_split for the GPR case): Use int_reg_operand instead of
4319         gpc_reg_operand for the output.
4320
4321 2016-03-14  Tom de Vries  <tom@codesourcery.com>
4322
4323         PR tree-optimization/70045
4324         * graphite-isl-ast-to-gimple.c (graphite_create_new_loop_guard): Unshare
4325         create_empty_if_region_on_edge argument.
4326
4327 2016-03-13  Eric Botcazou  <ebotcazou@adacore.com>
4328
4329         * config/arm/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Define.
4330         (STACK_CHECK_PROTECT): Likewise.
4331         * config/i386/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise
4332         (STACK_CHECK_PROTECT): Likewise.
4333         * config/rs6000/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise
4334         (STACK_CHECK_PROTECT): Likewise.
4335         * config/rs6000/vxworksae.h (STACK_CHECK_PROTECT): Likewise.
4336         * config/sparc/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
4337         (STACK_CHECK_PROTECT): Likewise.
4338
4339 2016-03-12  Andrey Belevantsev  <abel@ispras.ru>
4340
4341         PR rtl-optimization/69307
4342         * sel-sched.c (choose_best_pseudo_reg): Properly check for hard
4343         registers in modes that span more than one register.
4344
4345 2016-03-12  Vladimir Makarov  <vmakarov@redhat.com>
4346
4347         PR target/69614
4348         * lra-constraints.c (delete_move_and_clobber): New.
4349         (remove_inheritance_pseudos): Use it.
4350
4351 2016-03-12  Eric Botcazou  <ebotcazou@adacore.com>
4352
4353         PR ada/70017
4354         * calls.c (emit_library_call_value_1): Clear the ECF_NOTHROW flag if
4355         the libcall is LCT_THROW.
4356         * explow.c (probe_stack_range): Pass LCT_THROW to emit_library_call
4357         for the checking routine.
4358
4359 2016-03-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
4360
4361         PR target/70131
4362         * config/rs6000/rs6000.md (round32<mode>2_fprs): Do not do the
4363         optimization if we have direct move.
4364         (roundu32<mode>2_fprs): Likewise.
4365
4366 2016-03-11  Bernd Schmidt  <bschmidt@redhat.com>
4367
4368         PR target/70123
4369         * lra-remat.c (operand_to_remat): Disallow hard regs in the value t
4370         be rematerialized.
4371         (reg_overlap_for_remat_p): Renamed from input_regno_present_p.
4372         Arguments swapped.  All callers changed.  Take reg_renumber into
4373         account, and Calculate and compare register ranges for hard regs.
4374
4375 2016-03-11  Jeff Law  <law@redhat.com>
4376
4377         PR tree-optimization/70190
4378         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
4379         Handle cases where we can not extract the taken edge, even though we
4380         found a constant value.
4381
4382         PR tree-optimization/64058
4383         * tree-ssa-coalesce.c (struct coalesce_pair): Add new field INDEX.
4384         (num_coalesce_pairs): Move up earlier in file.
4385         (find_coalesce_pair): Initialize the INDEX field for each pair
4386         discovered.
4387         (compare_pairs): No longer sort on the elements in each pair.
4388         Instead break ties with the index of the coalesce pair.
4389
4390 2016-03-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4391
4392         PR target/70002
4393         * config/aarch64/aarch64-protos.h
4394         (aarch64_save_restore_target_globals): New prototype.
4395         * config/aarch64/aarch64-c.c (aarch64_pragma_target_parse):
4396         Call the above when popping pragma.
4397         * config/aarch64/aarch64.c (aarch64_save_restore_target_globals):
4398         New function.
4399         (aarch64_set_current_function): Rewrite using the above.
4400
4401 2016-03-11  Jakub Jelinek  <jakub@redhat.com>
4402
4403         PR tree-optimization/70177
4404         * gimple-expr.h (extract_ops_from_tree_1): Renamed to ...
4405         (extract_ops_from_tree): ... this.  In the 2 argument
4406         overload remove _1 suffix.
4407         * gimple-expr.c (extract_ops_from_tree_1): Renamed to ...
4408         (extract_ops_from_tree): ... this.
4409         * gimple.c (gimple_build_assign, gimple_assign_set_rhs_from_tree):
4410         Adjust callers.
4411         * tree-ssa-loop-niter.c (derive_constant_upper_bound): Likewise.
4412         * tree-ssa-forwprop.c (defcodefor_name): Call 3 operand
4413         extract_ops_from_tree instead of 2 operand one.
4414
4415 2016-03-11  Alan Lawrence  <alan.lawrence@arm.com>
4416
4417         PR tree-optimization/70013
4418         * tree-sra.c (analyze_access_subtree): Also set grp_unscalarized_data
4419         for constant-pool entries.
4420
4421 2016-03-11  Jakub Jelinek  <jakub@redhat.com>
4422
4423         PR rtl-optimization/70174
4424         * expmed.c (store_bit_field_using_insv): Use gen_lowpart_if_possible
4425         followed by gen_lowpart on force_reg instead of just gen_lowpart.
4426
4427         PR tree-optimization/70169
4428         * tree-ssa-loop.c (gen_lsm_tmp_name): Handle FUNCTION_DECL and
4429         LABEL_DECL like VAR_DECL.  Emit nothing instead of gcc_unreachable
4430         for unknown codes.
4431
4432 2016-03-11  Ilya Enkovich  <enkovich.gnu@gmail.com>
4433             Jakub Jelinek  <jakub@redhat.com>
4434
4435         PR target/70160
4436         * config/i386/i386.c (scalar_chain::convert_reg): Skip uses
4437         of uninitialized values.
4438
4439 2016-03-11  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
4440
4441         * config/s390/s390.md ("trunctddd2"): Turn former define_insn into
4442         define_expand.
4443         ("*trunctddd2"): New pattern definition.
4444         ("trunctdsd2"): Set prep_for_short_prec rounding mode for the
4445         TD->DD truncation.
4446
4447 2016-03-11  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
4448
4449         * config/s390/s390.md (BFP_RND_*, DFP_RND_*): Add new constant
4450         definitions for BFP and DFP rounding modes.
4451         ("fixuns_truncdddi2", "fixuns_trunctddi2")
4452         ("fixuns_trunc<BFP:mode><GPR:mode>2", "fixuns_trunc<mode>si2")
4453         ("fix_trunc<DSF:mode><GPR:mode>2", "fix_trunc<mode>di2")
4454         ("fix_trunctf<mode>2"): Use the new constants instead of magic
4455         numbers.
4456
4457 2016-03-11  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
4458
4459         * config/s390/constraints.md: Adjust comment.
4460         ("Y"): Adjust comment.  Rename s390_decompose_shift_count to
4461         s390_decompose_addrstyle_without_index.
4462         * config/s390/predicates.md (shift_count_or_setmem_operand):
4463         Rename to setmem_operand.
4464         * config/s390/s390-protos.h
4465         (s390_decompose_shift_count): Rename to
4466         s390_decompose_addrstyle_without_index.
4467         * config/s390/s390.c (s390_decompose_shift_count)
4468         (s390_mem_constraint, print_shift_count_operand)
4469         (print_operand_address, print_operand): Rename
4470         s390_decompose_shift_count to
4471         s390_decompose_addrstyle_without_index and rename
4472         print_shift_count_operand to print_addrstyle_operand troughout the
4473         file.
4474         * config/s390/s390.md ("setmem_long_<P:mode>", "*setmem_long")
4475         ("*setmem_long_and", "*setmem_long_31z", "*setmem_long_and_31z"):
4476         Rename shift_count_or_setmem_operand to setmem_operand.
4477         * config/s390/vx-builtins.md ("vec_insert<mode>")
4478         ("vec_promote<mode>"): Replace shift_count_or_setmem_operand with
4479         nonmemory_operand.
4480
4481 2016-03-10  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
4482
4483         PR target/70168
4484         * config/rs6000/rs6000.c (rs6000_expand_atomic_compare_and_swap):
4485         Handle overlapping retval and newval.
4486
4487 2016-03-10  Nick Clifton  <nickc@redhat.com>
4488
4489         PR target/7044
4490         * config/aarch64/aarch64.c
4491         (aarch64_override_options_after_change_1): When forcing
4492         flag_omit_frame_pointer to be true, use a special value that can
4493         be detected if this function is called again, thus preventing
4494         flag_omit_leaf_frame_pointer from being forced to be false.
4495
4496 2016-03-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4497
4498         * common/config/aarch64/aarch64-common.c (aarch64_handle_option):
4499         Set x_flag_omit_leaf_frame_pointer when handling
4500         -momit-leaf-frame-pointer.
4501
4502 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
4503
4504         PR lto/69589
4505         * cgraph.c (cgraph_node::dump): Dump split_part and
4506         indirect_call_target.
4507         * cgraph.h (cgraph_node): Add indirect_call_target flag.
4508         * ipa.c (has_addr_references_p): Cleanup.
4509         (is_indirect_call_target_p): New.
4510         (walk_polymorphic_call_targets): Do not mark virtuals that may be
4511         called indirectly as local.
4512         (symbol_table::remove_unreachable_nodes): Compute indirect_call_target.
4513
4514 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
4515
4516         PR ipa/69630
4517         * ipa-devirt.c (possible_polymorphic_call_targets): Do not ICE
4518         on cxa_pure_virtual.
4519
4520 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
4521
4522         PR lto/69589
4523         * tree.c (free_lang_data_in_decl): Clear visibility of TYPE_DECL.
4524
4525 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
4526
4527         PR lto/69589
4528         * tree.c (need_assembler_name_p): Only record main variant type names.
4529
4530 2016-03-10  Christophe Lyon  <christophe.lyon@linaro.org>
4531
4532         PR target/70113.
4533         * config/aarch64/aarch64.h (TARGET_FIX_ERR_A53_843419_DEFAULT):
4534         Always define to 0 or 1.
4535         (TARGET_FIX_ERR_A53_843419): New macro.
4536         * config/aarch64/aarch64-elf-raw.h
4537         (TARGET_FIX_ERR_A53_843419_DEFAULT): Update for above changes.
4538         * config/aarch64/aarch64-linux.h: Likewise.
4539         * config/aarch64/aarch64.c
4540         (aarch64_override_options_after_change_1): Do not default
4541         aarch64_nopcrelative_literal_loads to true if Cortex-A53 erratum
4542         843419 is on.
4543         (aarch64_attributes): Handle fix-cortex-a53-843419.
4544         (aarch64_can_inline_p): Likewise.
4545         * config/aarch64/aarch64.opt (aarch64_fix_a53_err843419): Save.
4546
4547 2016-03-10  Alan Lawrence  <alan.lawrence@arm.com>
4548         Jakub Jelinek <jakub@redhat.com>
4549
4550         * common.opt (funconstrained-commons, flag_unconstrained_commons): New.
4551         * tree.c (array_at_struct_end_p): Do not limit to size of decl for
4552         DECL_COMMONS if flag_unconstrained_commons is set.
4553         * tree-dfa.c (get_ref_base_and_extent): Likewise.
4554         * doc/invoke.texi (Optimize Options): Add -funconstrained-commons.
4555         (funconstrained-commons): Document.
4556
4557 2016-03-10  Christophe Lyon  <christophe.lyon@linaro.org>
4558
4559         * config/aarch64/t-aarch64 (OPTIONS_H_EXTRA): Add
4560         aarch64-fusion-pairs.def and aarch64-tuning-flags.def
4561
4562 2016-03-10  Ilya Enkovich  <enkovich.gnu@gmail.com>
4563
4564         * tree-vect-stmts.c (vectorizable_mask_load_store): Check mask
4565         has a proper number of elements.
4566
4567 2016-03-10  Alan Modra  <amodra@gmail.com>
4568
4569         PR rtl-optimization/69195
4570         PR rtl-optimization/47992
4571         * ira.c (recorded_label_ref): Delete.
4572         (update_equiv_regs): Return void.
4573         (indirect_jump_optimize): New function.
4574         (ira): Call indirect_jump_optimize and delete_trivially_dead_insns
4575         before regstat_compute_ri.  Don't rebuild_jump_labels here.
4576         Delete update_regstat.
4577
4578 2016-03-10  Richard Biener  <rguenther@suse.de>
4579
4580         PR tree-optimization/70128
4581         * tree-ssa-structalias.c (set_uids_in_ptset): Set
4582         vars_contains_nonlocal for any FUNCTION_DECL or LABEL_DECL.
4583
4584 2016-03-09  Jakub Jelinek  <jakub@redhat.com>
4585
4586         PR tree-optimization/70152
4587         * tree-sra.c (replace_removed_params_ssa_names): Copy over
4588         SSA_NAME_OCCURS_IN_ABNORMAL_PHI from old_name to new_name.
4589
4590         PR target/70086
4591         * config/i386/i386.md (truncdfsf2 splitter): Use gen_vec_concatv2df
4592         instead of gen_sse2_loadlpd.
4593         * config/i386/sse.md (*vec_concatv2df): Rename to...
4594         (vec_concatv2df): ... this.
4595
4596         PR tree-optimization/70127
4597         * fold-const.c (operand_equal_p): Revert the 2015-10-28 change.
4598
4599 2016-03-09  David Malcolm  <dmalcolm@redhat.com>
4600
4601         PR c/68473
4602         PR c++/70105
4603         * diagnostic-show-locus.c (compatible_locations_p): New function.
4604         (layout::layout): Sanitize ranges using compatible_locations_p.
4605
4606 2016-03-09  David Malcolm  <dmalcolm@redhat.com>
4607
4608         PR c/68473
4609         PR c++/70105
4610         * diagnostic-show-locus.c (layout_range::layout_range): Replace
4611         location_range param with three const expanded_locations * and a
4612         bool.
4613         (layout::layout): Replace call to
4614         rich_location::lazily_expand_location with get_expanded_location.
4615         Extract the range and perform location expansion here, passing
4616         the results to the layout_range ctor.
4617         * diagnostic.c (source_range::debug): Delete.
4618         * diagnostic.h (diagnostic_expand_location): Reimplement in terms
4619         of rich_location::get_expanded_location.
4620         * gcc-rich-location.c (get_range_for_expr): Delete.
4621         (gcc_rich_location::add_expr): Reimplement to avoid the
4622         rich_location::add_range overload that took a location_range,
4623         passing a location_t instead.
4624
4625 2016-03-09  Richard Biener  <rguenther@suse.de>
4626         Jakub Jelinek  <jakub@redhat.com>
4627
4628         PR tree-optimization/70138
4629         * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
4630         Also skip vect_double_reduction_def.
4631
4632 2016-03-09  Jakub Jelinek  <jakub@redhat.com>
4633
4634         PR target/70049
4635         * config/i386/sse.md (*vec_extract<mode>): Use %0 instead of %k0
4636         if the operand is "m".
4637
4638 2016-03-09  Nathan Sidwell  <nathan@acm.org>
4639
4640         * config/nvptx/nvptx.c (nvptx_option_override): Don't kill debug level.
4641
4642 2016-03-09  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
4643
4644         * config/i386/i386.c (processor_target_table): Fix cost table
4645         intialization order for znver1.
4646
4647 2016-03-08  Jakub Jelinek  <jakub@redhat.com>
4648
4649         * ipa-polymorphic-call.c (walk_ssa_copies): Fix spelling
4650         - becuase -> because.
4651         * ipa-reference.c (ignore_module_statics): Likewise.
4652         * cgraph.c (cgraph_node::get_body): Likewise.
4653         * ipa-inline.c (early_inliner): Likewise.
4654         * ipa-devirt.c (types_same_for_odr): Likewise.
4655         * tree-streamer-out.c (pack_ts_type_common_value_fields): Likewise.
4656         * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Likewise.
4657
4658 2016-03-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4659
4660         * tree-ssa-math-opts.c: Fix typo in comment.
4661
4662 2016-03-08  Jakub Jelinek  <jakub@redhat.com>
4663
4664         PR target/70110
4665         * config/i386/i386.c (scalar_chain::make_vector_copies,
4666         scalar_chain::convert_reg): Call end_sequence in between
4667         get_insns and emit_conversion_insns rather than after both
4668         calls.
4669
4670 2016-03-07  Uros Bizjak  <ubizjak@gmail.com>
4671
4672         PR target/70064
4673         * config/i386/i386.h (machine_function): Add
4674         pc_thunk_call_expanded flag.
4675         (ix86_pc_thunk_call_expanded): New define.
4676         * config/i386/i386.md (set_got, set_got_labelled): New expanders.
4677         (*set_got): Rename insn pattern from set_got.
4678         (*set_got_labelled): Rename inst pattern from set_got_labelled.
4679         * config/i386/i386.c (ix86_compute_frame_layout): Use
4680         ix86_pc_thunk_call_expanded to prevent red-zone.
4681
4682 2016-03-07  Martin Jambor  <mjambor@suse.cz>
4683
4684         * hsa.h (hsa_get_ctor_statements): Declare.
4685         (hsa_get_dtor_statements): Likewise.
4686         (hsa_get_kernel_dispatch_type): Likewise.
4687         * hsa.c (hsa_get_ctor_statements): New function.
4688         (hsa_get_dtor_statements): Likewise.
4689         (hsa_get_kernel_dispatch_type): Likewise.
4690         * hsa-brig.c (hsa_cdtor_statements): Removed.
4691         (hsa_output_libgomp_mapping): Use hsa_get_ctor_statements and
4692         hsa_get_dtor_statements.
4693         * hsa-gen.c (hsa_kernel_dispatch_type): Removed.
4694         (get_hsa_kernel_dispatch_offset): Use hsa_get_kernel_dispatch_type.
4695
4696 2016-03-07  Andre Vieira  <andre.simoesdiasvieira@arm.com>
4697
4698         * config/arm/arm-cores.def (cortex-r8): New.
4699         * config/arm/arm-tables.opt (cortex-r8): Regenerate.
4700         * config/arm/arm-tune.md: Likewise.
4701         * gcc/doc/invoke.texi: Add cortex-r8 to list of cpu values.
4702
4703 2016-03-07  Martin Sebor  <msebor@redhat.com>
4704
4705         PR rtl-optimization/19705
4706         * doc/invoke.texi (Options That Control Optimization): Clarify
4707         -fno-branch-count-reg.
4708
4709 2016-02-26  Richard Biener  <rguenther@suse.de>
4710             Jeff Law  <law@redhat.com>
4711
4712         PR tree-optimization/69740
4713         * cfghooks.c (remove_edge): Request loop fixups if we delete
4714         an edge that might turn an irreducible loop into a natural
4715         loop.
4716         * cfgloop.h (check_verify_loop_structure): Clear LOOPS_NEED_FIXUP.
4717         Move after definition of loops_state_clear.
4718
4719 2016-03-07  Bin Cheng  <bin.cheng@arm.com>
4720
4721         PR rtl-optimization/69052
4722         * rtlanal.c (commutative_operand_precedence): Set higher precedence
4723         to CONST_WIDE_INT.
4724
4725 2016-03-07  Tom de Vries  <tom@codesourcery.com>
4726
4727         PR tree-optimization/70116
4728         * tree-ssa-tail-merge.c (merge_stmts_p): New function, handling
4729         is_tm_ending stmts and ubsan/asan internal functions.
4730         (find_duplicate): Use it.  Don't test is_tm_ending here.
4731
4732 2016-03-07  Richard Biener  <rguenther@suse.de>
4733
4734         PR tree-optimization/70115
4735         * tree-ssa-loop-ivcanon.c (propagate_into_all_uses): Remove.
4736         (propagate_constants_for_unrolling): Use replace_uses_by.
4737
4738 2016-03-07  Nathan Sidwell  <nathan@codesourcery.com>
4739
4740         PR middle-end/69916
4741         * omp-low.c (struct oacc_loop): Add ifns.
4742         (new_oacc_loop_raw): Initialize it.
4743         (finish_oacc_loop): Clear mask & flags if no ifns.
4744         (oacc_loop_discover_walk): Count IFN_GOACC_LOOP calls.
4745         (oacc_loop_xform_loop): Add ifns arg & adjust.
4746         (oacc_loop_process): Adjust oacc_loop_xform_loop call.
4747
4748 2016-03-07  Richard Henderson  <rth@redhat.com>
4749
4750         PR rtl-opt/70061
4751         * tree-outofssa.c (emit_partition_copy): Flush pending stack adjust.
4752         (insert_value_copy_on_edge): Likewise.
4753
4754 2016-03-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4755
4756         * config/arm/arm_neon.h: Show error if using with soft-float ABI.
4757
4758 2016-03-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4759
4760         PR target/62281
4761         * config/i386/sol2.h (STACK_REALIGN_DEFAULT): Define.
4762
4763 2016-03-05  Venkataramanan Kumar  <Venkataramanan.kumar@amd.com>
4764
4765         * config/i386/i386.c (znver1_cost): Fix Multiply cost.
4766
4767 2016-03-05  Venkataramanan Kumar  <Venkataramanan.kumar@amd.com>
4768
4769         Fix sseimul type attribute.
4770         * config/i386/znver1.md
4771         (znver1_sseimul, znver1_sseimul_avx256, znver1_sseimul_load,
4772         znver1_sseimul_avx256_load) : Fix the type attribute.
4773         (znver1_sseimul_di, znver1_sseimul_load_di): Fix type attribute,
4774         pipe usage and latency.
4775
4776 2016-03-05  Jakub Jelinek  <jakub@redhat.com>
4777
4778         PR c++/70084
4779         * tree-inline.c (copy_tree_body_r): When cancelling ADDR_EXPR
4780         of INDIRECT_REF and ADDR_EXPR changed type, fold_convert it
4781         to the right type.
4782
4783 2016-03-04  Bernd Schmidt  <bschmidt@redhat.com>
4784
4785         PR c/69973
4786         * targhooks.c (default_vector_alignment): Limit to MAX_OFILE_ALIGNMENT.
4787
4788         PR rtl-optimization/69941
4789         * postreload.c (reload_combine_recognize_pattern): Ensure all uses of
4790         the reg share its mode.
4791
4792 2016-03-04  Jeff Law  <law@redhat.com>
4793
4794         PR tree-optimization/69196
4795         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
4796         If the both SSA_NAMEs are anonymous, then consider them unassociated
4797         and include the PHI in the statement count.
4798
4799 2016-03-05  Tom de Vries  <tom@codesourcery.com>
4800
4801         * omp-low.c (check_omp_nesting_restrictions): Check for non-oacc
4802         construct in oacc routine.  Check for oacc region in oacc routine.
4803
4804 2016-03-04  Jakub Jelinek  <jakub@redhat.com>
4805
4806         PR target/70062
4807         * config/i386/i386.c (decide_alg): Add RECUR argument.  Revert
4808         2016-02-22 changes, instead don't recurse if RECUR is already true.
4809         Don't change *dynamic_check if RECUR.  Adjust recursive caller
4810         to pass true to the new argument.
4811         (ix86_expand_set_or_movmem): Adjust decide_alg caller.
4812
4813         PR target/70059
4814         * config/i386/sse.md (vec_set_lo_<mode><mask_name>,
4815         <extract_type_2>_vinsert<shuffletype><extract_suf_2>_mask): Formatting
4816         fixes.
4817         (vec_set_hi_<mode><mask_name>): Likewise.  Swap VEC_CONCAT operands.
4818
4819 2016-03-04  Bernd Schmidt  <bschmidt@redhat.com>
4820
4821         PR rtl-optimization/57676
4822         * lra-assigns.c (lra_assign): Guard test for maximum iterations
4823         with flag_checking.
4824
4825 2016-03-04  Ilya Enkovich  <enkovich.gnu@gmail.com>
4826
4827         * tree-vect-patterns.c (search_type_for_mask): Handle
4828         comparison of booleans.
4829
4830 2016-03-04  Jakub Jelinek  <jakub@redhat.com>
4831
4832         * doc/extend.texi (__builtin_alloca, __builtin_alloca_with_align):
4833         Fix @xref usage.
4834
4835         PR debug/69947
4836         * dwarf2out.c (prune_unused_types_walk_loc_descr): Handle
4837         all other ops that have dw_val_class_die_ref operands,
4838         and DW_OP_GNU_entry_value.
4839
4840 2016-03-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4841
4842         PR rtl-optimization/69904
4843         * config/arm/arm.c (arm_cannot_copy_insn_p):
4844         Return true for load-exclusive instructions.
4845
4846 2016-03-03  Jakub Jelinek  <jakub@redhat.com>
4847
4848         PR target/70021
4849         * tree-vect-stmts.c (vect_mark_relevant): Remove USED_IN_PATTERN
4850         argument, if STMT_VINFO_IN_PATTERN_P (stmt_info), always mark
4851         the pattern no matter if it is used just by non-pattern, pattern
4852         or mix thereof.
4853         (process_use, vect_mark_stmts_to_be_vectorized): Adjust callers.
4854         * tree-vect-patterns.c (vect_recog_vector_vector_shift_pattern): If
4855         oprnd1 def_stmt is in pattern, don't look through it.
4856
4857 2016-03-03  Marek Polacek  <polacek@redhat.com>
4858
4859         PR middle-end/70050
4860         * match.pd (X % -Y): Add INTEGRAL_TYPE_P check.
4861
4862 2016-03-03  Martin Liska  <mliska@suse.cz>
4863
4864         PR tree-optimization/70043
4865         * tree-vect-loop.c (optimize_mask_stores): Move iterator to
4866         previous statement if we see a debug statement.
4867
4868 2016-03-03  Richard Biener  <rguenther@suse.de>
4869
4870         PR tree-optimization/55936
4871         * tree-vrp.c (compare_name_with_value): Add use_equiv_p
4872         parameter and guard unsafe equivalence use.
4873         (vrp_evaluate_conditional_warnv_with_ops): Always use
4874         safe equivalences but not via the quadratic compare_names
4875         helper.
4876
4877 2016-03-03  Michael Collison  <michael.collison@linaro.org>
4878
4879         PR target/70014
4880         * config/arm/arm.md (*subsi3_carryin_const): Change predicate
4881         for operand 1 to s_register_operand. Change predicate for operand
4882         2 to arm_not_immediate_operand.
4883
4884 2016-03-02  H.J. Lu  <hongjiu.lu@intel.com>
4885
4886         * doc/tm.texi: Regenerated.
4887
4888 2016-03-02  Richard Henderson  <rth@redhat.com>
4889
4890         PR rtl-opt/67145
4891         * simplify-rtx.c (simplify_plus_minus): Allow reassoc without
4892         simplification when all args are positive non-fixed registers.
4893
4894 2016-03-02  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
4895
4896         * target.def (lra_p): Specify that new ports should use LRA.
4897
4898 2016-03-02  Jakub Jelinek  <jakub@redhat.com>
4899
4900         PR libgomp/69555
4901         * gimplify.c (gimplify_decl_expr): For decls with REFERENCE_TYPE, also
4902         gimplify_type_sizes the type they refer to.
4903         (omp_notice_variable): Handle reference vars to VLAs.
4904         * omp-low.c (lower_omp_target): Emit setup of OMP_CLAUSE_PRIVATE
4905         reference to VLA decls in the second pass instead of first pass.
4906
4907 2016-03-02  Tom de Vries  <tom@codesourcery.com>
4908
4909         PR tree-optimization/68659
4910         * graphite-isl-ast-to-gimple.c (collect_all_ssa_names): Handle
4911         new_expr == NULL_TREE.
4912         (get_new_name): Handle ADDR_EXPR.
4913
4914 2016-03-02  Bin Cheng  <bin.cheng@arm.com>
4915
4916         PR rtl-optimization/69052
4917         * loop-invariant.c (canonicalize_address): New function.
4918         (inv_can_prop_to_addr_use): Check validity of address expression
4919         which is canonicalized by above function.
4920
4921 2016-03-02  Alan Modra  <amodra@gmail.com>
4922
4923         PR ipa/69990
4924         * ipa-icf.c (sem_variable::merge): Do not merge an alias with
4925         larger alignment.
4926
4927 2016-03-02  Jakub Jelinek  <jakub@redhat.com>
4928
4929         PR target/70028
4930         * config/i386/i386.md (kmovw): Move m constraint to 2nd alternative.
4931         (*movhi_internal): Put mask moves from and to memory separately
4932         from moves from/to GPRs.
4933
4934 2016-03-02  Richard Biener  <rguenther@suse.de>
4935
4936         * genmatch.c (dt_node::gen_kids): Fix match code-gen for embedded
4937         GENERIC expressions in GIMPLE.
4938
4939 2016-03-02  Richard Biener  <rguenther@suse.de>
4940
4941         * config/i386/i386.c (type_natural_mode): Fix typo.
4942
4943 2016-03-02  Nick Clifton  <nickc@redhat.com>
4944
4945         * config.gcc (mep-*-elf): Add newlib-stdint.h to tm_file.
4946
4947 2016-03-02  Richard Biener  <rguenther@suse.de>
4948             Uros Bizjak  <ubizjak@gmail.com>
4949
4950         PR target/67278
4951         * config/i386/i386.c (type_natural_mode): Handle XFmode vectors.
4952
4953 2016-03-02  Richard Biener  <rguenther@suse.de>
4954
4955         PR middle-end/67278
4956         * tree-cfg.c (verify_expr): Adjust BIT_FIELD_REF case.
4957
4958 2016-03-02  Marek Polacek  <polacek@redhat.com>
4959
4960         PR c/67854
4961         * gimplify.c (gimplify_va_arg_expr): Use expanded location for the
4962         "is promoted to" warning.
4963
4964 2016-03-01  DJ Delorie  <dj@redhat.com>
4965
4966         * config.gcc: Deprecate mep-*.
4967
4968 2016-03-01  Vladimir Makarov  <vmakarov@redhat.com>
4969
4970         PR middle-end/70025
4971         * lra-constraints.c (regno_val_use_in): New.
4972         (match_reload): Use it instead of regno_use_in.
4973
4974 2016-03-01  Eric Botcazou  <ebotcazou@adacore.com>
4975
4976         PR rtl-optimization/70007
4977         * gcse.c (compute_ld_motion_mems): Tidy up and also invalidate memory
4978         references present in REG_EQUAL notes attached to non-SET patterns.
4979
4980 2016-03-01  Jeff Law  <law@redhat.com>
4981
4982         PR tree-optimization/69196
4983         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
4984         Appropriately clamp the number of statements to copy when the
4985         thread path does not traverse a loop backedge.
4986
4987         PR tree-optimization/69196
4988         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
4989         Do count some PHIs in the thread path against the insn count.  Decrease
4990         final statement count by one as the control statement in the last
4991         block will get removed.  Remove special cased code for handling PHIs
4992         in the last block.
4993
4994 2016-03-01  Uros Bizjak  <ubizjak@gmail.com>
4995
4996         PR target/70027
4997         * config/i386/i386.c (ix86_output_call_insn): Add -masm=intel
4998         asm dialect alternatives to explicit GOTPCREL calls.
4999
5000 2016-03-01  Eric Botcazou  <ebotcazou@adacore.com>
5001
5002         PR ada/70017
5003         * ira.c (do_reload): Issue warning for generic stack checking here...
5004         * reload1.c (reload): ...instead of here and streamline it.
5005
5006 2016-03-01  Nick Clifton  <nickc@redhat.com>
5007
5008         * config.gcc (cr16-*-elf): Add newlib-stdint.h to tm_file.
5009
5010 2016-03-01  Richard Biener  <rguenther@suse.de>
5011
5012         PR tree-optimization/69983
5013         * tree-chrec.c (eq_evolutions_p): Handle conversions, compare
5014         types and fall back to operand_equal_p.
5015
5016 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
5017
5018         Revert
5019         2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
5020
5021         * config/s390/constraints.md ("jm8"): New constraint.
5022         * config/s390/predicates.md ("const_int_8bitset_operand"): New
5023         predicate.
5024         * config/s390/s390.md ("*setmem_long", "*setmem_long_and"): Merge
5025         into ...
5026         ("*setmem_long<setmem_and>"): New pattern.
5027         ("*setmem_long_31z", "*setmem_long_and_31z"): Merge
5028         into ...
5029         ("*setmem_long_31z<setmem_and>"): New pattern.
5030         * config/s390/subst.md ("setmem_31z_subst", "setmem_and_subst"):
5031         New substitution rules with the required attributes.
5032
5033
5034 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
5035
5036         Revert
5037         2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
5038
5039         * gensupport.c (process_substs_on_one_elem): Split loop to
5040         complete mark_operands_used_in_match_dup on all expressions in the
5041         vector first.
5042         (adjust_operands_numbers): Inline into process_substs_on_one_elem
5043         and remove function.
5044
5045 2016-03-01  Richard Biener  <rguenther@suse.de>
5046
5047         PR middle-end/70022
5048         * fold-const.c (fold_indirect_ref_1): Fix range checking for
5049         vector BIT_FIELD_REF extract.
5050
5051 2016-03-01  Richard Biener  <rguenther@suse.de>
5052
5053         PR tree-optimization/69994
5054         * tree-ssa-reassoc.c (ops_equal_values_p): Handle missing case.
5055
5056 2016-03-01  Ilya Enkovich  <enkovich.gnu@gmail.com>
5057
5058         PR tree-optimization/69956
5059         * tree-vect-stmts.c (supportable_widening_operation): Support
5060         multi-step conversion of boolean vectors.
5061         (supportable_narrowing_operation): Likewise.
5062
5063 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
5064
5065         * config/s390/s390.c (s390_decompose_address): Don't accept SImode
5066         anymore.
5067
5068 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
5069
5070         * config/s390/subst.md (DSI_VI): New mode iterator.
5071         ("addr_style_op_subst"): Use DSI_VI instead of DSI.
5072         * config/s390/vector.md ("vec_set<mode>"): Move expander before
5073         the insn definition.
5074         ("*vec_set<mode>"): Change predicate and add alternative to
5075         support only either register or const_int operands as element
5076         selector.
5077         ("*vec_set<mode>_plus"): New pattern to support reg + const_int
5078         operands.
5079         ("vec_extract<mode>"): New expander.
5080         ("*vec_extract<mode>"): New insn definition supporting reg and
5081         const_int element selectors.
5082         ("*vec_extract<mode>_plus"): New insn definition supporting
5083         reg+const_int element selectors.
5084         ("rotl<mode>3", "ashl<mode>3", "ashr<mode>3"): Merge into the
5085         following expander+insn definition.
5086         ("<vec_shifts_name><mode>3"): New expander.
5087         ("*<vec_shifts_name><mode>3<addr_style_op>"): New insn definition.
5088
5089 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
5090
5091         * config/s390/s390.md ("*tabort_1"): Change predicate to
5092         nonmemory_operand.  Add a second alternative to cover
5093         register as well as const int operands.
5094         ("*tabort_1_plus"): New pattern definition.
5095
5096 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
5097
5098         * config/s390/s390.md ("*ashrdi3_cc_31")
5099         ("*ashrdi3_cconly_31""*ashrdi3_cc_31_and")
5100         ("*ashrdi3_cconly_31_and", "*ashrdi3_31_and", "*ashrdi3_31"):
5101         Merge insn definitions into ...
5102         ("*ashrdi3_31<addr_style_op_cc><masked_op_cc><setcc><cconly>"):
5103         New pattern definition.
5104         ("*ashr<mode>3_cc", "*ashr<mode>3_cconly", "ashr<mode>3", )
5105         ("*ashr<mode>3_cc_and", "*ashr<mode>3_cconly_and")
5106         ("*ashr<mode>3_and"): Merge insn definitions into ...
5107         ("*ashr<mode>3<addr_style_op_cc><masked_op_cc><setcc><cconly>"):
5108         New pattern definition.
5109         * config/s390/subst.md ("addr_style_op_cc_subst")
5110         ("masked_op_cc_subst", "setcc_subst", "cconly_subst"): New
5111         substitutions patterns plus attributes.
5112         Add ashiftrt to SUBST iterator.
5113
5114 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
5115
5116         * config/s390/s390.md ("<shift><mode>3"): Change predicate of
5117         op2 to nonmemory_operand.
5118         ("*<shift>di3_31", "*<shift>di3_31_and"):
5119         Merge into single pattern definition ...
5120         ("*<shift>di3_31<addr_style_op><masked_op>"): New pattern.
5121         ("*<shift><mode>3", "*<shift><mode>3_and"): Merge into single
5122         pattern definition ...
5123         ("*<shift><mode>3<addr_style_op><masked_op>"): New pattern.
5124         * config/s390/subst.md: Add ashift and lshiftrt to SUBST
5125         iterator.
5126
5127 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
5128
5129         * config/s390/predicates.md (const_int_6bitset_operand): New
5130         predicate.
5131         * config/s390/s390.md: Include subst.md.
5132         ("rotl<mode>3"): New expander.
5133         ("rotl<mode>3", "*rotl<mode>3_and"): Merge insn definitions into
5134         ...
5135         ("*rotl<mode>3<addr_style_op><masked_op>"): New insn definition.
5136         * config/s390/subst.md: New file.
5137
5138 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
5139
5140         * config/s390/s390.md ("op_type", "atype", "length" attributes):
5141         Remove RRR type.  It doesn't really exist.
5142         ("RRer", "f0", "v0", "vf", "vd", "op1", "Rf"): Remove mode
5143         attributes.
5144         ("BFP", "DFP", "nDSF", "nDFDI"): Add mode attributes.
5145         ("*cmp<mode>_ccs", "floatdi<mode>2", "add<mode>3")
5146         ("*add<mode>3_cc", "*add<mode>3_cconly", "sub<mode>3")
5147         ("*sub<mode>3_cc", "*sub<mode>3_cconly", "mul<mode>3")
5148         ("fma<mode>4", "fms<mode>4", "div<mode>3", "*neg<mode>2")
5149         ("*abs<mode>2", "*negabs<mode>2", "sqrt<mode>2"): Override
5150         `enabled' attribute.
5151
5152 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
5153
5154         * gensupport.c (process_substs_on_one_elem): Split loop to
5155         complete mark_operands_used_in_match_dup on all expressions in the
5156         vector first.
5157         (adjust_operands_numbers): Inline into process_substs_on_one_elem
5158         and remove function.
5159
5160 2016-02-29  Eric Botcazou  <ebotcazou@adacore.com>
5161
5162         PR target/69706
5163         * config/sparc/sparc.c (NWORDS_UP): Rename to...
5164         (CEIL_NWORDS): ...this.  Use CEIL macro.
5165         (compute_fp_layout): Adjust to above renaming.
5166         (function_arg_union_value): Likewise.
5167         (sparc_arg_partial_bytes): Likewise.
5168         (sparc_function_arg_advance): Likewise.
5169
5170 2016-02-29  Jeff Law  <law@redhat.com>
5171
5172         PR tree-optimization/70005
5173         * tree-ssa-uncprop.c (associate_equivalences_with_edges): Handle case
5174         where an object with a boolean range is compared against a value
5175         outside [0..1].
5176
5177         PR tree-optimization/69999
5178         * gimple-ssa-split-paths.c (split_paths): When duplicating a block
5179         with an outgoing edge marked with EDGE_IRREDUCIBLE_LOOP, schedule
5180         loop cleanups.
5181
5182 2016-02-29  Richard Biener  <rguenther@suse.de>
5183
5184         PR tree-optimization/69994
5185         * tree-ssa-reassoc.c (gimple_nop_conversion_p): New function.
5186         (get_unary_op): Look through nop conversions.
5187         (ops_equal_values_p): New function, look for equality diregarding
5188         nop conversions.
5189         (eliminate_plus_minus_pair): Use ops_equal_values_p
5190         (repropagate_negates): Do not use get_unary_op here.
5191
5192 2016-02-29  Martin Liska  <mliska@suse.cz>
5193
5194         * system.h: Poison ENABLE_CHECKING macro.
5195
5196 2016-02-29  Martin Liska  <mliska@suse.cz>
5197
5198         * hsa-gen.c (gen_body_from_gimple): Dump only if TDF_DETAILS
5199         is presented in dump flags.
5200         * hsa-regalloc.c (linear_scan_regalloc): Likewise.
5201         (hsa_regalloc): Likewise.
5202
5203 2016-02-19  Richard Biener  <rguenther@suse.de>
5204
5205         PR tree-optimization/69980
5206         * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Update
5207         permutation of those we need to keep.
5208
5209 2016-02-29  Eric Botcazou  <ebotcazou@adacore.com>
5210
5211         PR target/69706
5212         * config/sparc/sparc.c (ROUND_ADVANCE): Rename to...
5213         (NWORDS_UP): ...this
5214         (init_cumulative_args): Minor tweaks.
5215         (sparc_promote_function_mode): Likewise.
5216         (scan_record_type): Delete.
5217         (traverse_record_type): New function template.
5218         (classify_data_t): New structure type.
5219         (classify_registers): New inline function.
5220         (function_arg_slotno): In 64-bit mode, bail out early if FP slots are
5221         exhausted.  Instantiate traverse_record_type on classify_registers and
5222         deal with the case of a structure passed in slot #15 with no FP field
5223         in the first word.
5224         (assign_data_t): New structure type.
5225         (compute_int_layout): New static function.
5226         (compute_fp_layout): Likewise.
5227         (count_registers): New inline function.
5228         (assign_int_registers): New static function.
5229         (assign_fp_registers): Likewise.
5230         (assign_registers): New inline function.
5231         (function_arg_record_value_1): Delete.
5232         (function_arg_record_value_2): Likewise.
5233         (function_arg_record_value_3): Likewise.
5234         (function_arg_record_value): Adjust to above changes.  Instantiate
5235         traverse_record_type on count_registers to first count the number of
5236         registers to be used and then on assign_registers to assign them.
5237         (function_arg_union_value): Adjust to above renaming.
5238         (sparc_function_arg_1); Minor tweaks.  Remove commented out code.
5239         (sparc_arg_partial_bytes): Adjust to above renaming.  Deal with the
5240         case of a structure passed in slot #15
5241         (sparc_function_arg_advance): Likewise.
5242         (function_arg_padding): Minor tweak.
5243
5244 2016-02-29  Richard Biener  <rguenther@suse.de>
5245
5246         PR tree-optimization/69720
5247         * tree-vect-loop.c (get_initial_def_for_reduction): Avoid
5248         the adjustment_def path for possibly vectorized defs.
5249         (vect_create_epilog_for_reduction): Handle vectorized initial
5250         defs properly.
5251
5252 2016-02-28  Eric Botcazou  <ebotcazou@adacore.com>
5253
5254         * config/i386/cygming.h (STACK_REALIGN_DEFAULT): Define.
5255
5256 2016-02-27  Jeff Law  <law@redhat.com>
5257
5258         Revert
5259         2016-02-26  Richard Biener  <rguenther@suse.de>
5260                     Jeff Law  <law@redhat.com>
5261
5262         PR tree-optimization/69740
5263         * cfghooks.c (remove_edge): Request loop fixups if we delete
5264         an edge that might turn an irreducible loop into a natural
5265         loop.
5266
5267 2016-02-27  Jakub Jelinek  <jakub@redhat.com>
5268
5269         PR rtl-optimization/69896
5270         * tree-vect-generic.c (get_compute_type): Avoid single element
5271         vector types.
5272
5273 2016-02-26  Evandro Menezes  <e.menezes@samsung.com>
5274
5275         Rename the AArch64 tuning option and related functions to enable the
5276         Newton series for the reciprocal square root to reflect its
5277         approximative characteristic.
5278
5279         * config/aarch64/aarch64-protos.h (aarch64_emit_swrsqrt): Rename
5280         function to "aarch64_emit_approx_rsqrt".
5281         * config/aarch64/aarch64-tuning-flags.def: Rename tuning flag to
5282         AARCH64_EXTRA_TUNE_APPROX_RSQRT.
5283         * config/aarch64/aarch64.c (exynosm1_tunigs): Use new flag name.
5284         (xgene1_tunings): Likewise.
5285         (use_rsqrt_p): Likewise.
5286         (aarch64_emit_swrsqrt): Use new function name.
5287         * config/aarch64/aarch64-simd.md (aarch64_rsqrts_*): Likewise.
5288         * config/aarch64/aarch64.opt (mlow-precision-recip-sqrt): Reword the
5289         text explaining this option.
5290         * doc/invoke.texi (-mlow-precision-recip-sqrt): Likewise.
5291
5292 2016-02-26  Jakub Jelinek  <jakub@redhat.com>
5293
5294         PR target/69969
5295         * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
5296         complain about -mallow-movmisalign without -mvsx if
5297         TARGET_ALLOW_MOVMISALIGN was not set explicitly.
5298
5299 2016-02-26  Joel Sherrill  <joel@rtems.org>
5300
5301         * config.gcc: Add x86_64-*-rtems*.
5302         * gcc/config/i386/rtems-64.h: New file.
5303
5304 2016-02-26  Joel Sherrill  <joel@rtems.org>
5305
5306         * config.gcc: Add aarch64-*-rtems*.
5307         * gcc/config/aarch64/rtems.h: New file.
5308
5309 2016-02-26  Segher Boessenkool  <segher@kernel.crashing.org>
5310
5311         PR target/69946
5312         * config/rs6000/rs6000.c (rs6000_insn_for_shift_mask): Print rlwinm
5313         shift amount using %h.  Add comment.
5314
5315 2016-02-26  Richard Biener  <rguenther@suse.de>
5316             Jeff Law  <law@redhat.com>
5317
5318         PR tree-optimization/69740
5319         * cfghooks.c (remove_edge): Request loop fixups if we delete
5320         an edge that might turn an irreducible loop into a natural
5321         loop.
5322
5323 2016-02-26  Martin Jambor  <mjambor@suse.cz>
5324
5325         PR middle-end/69920
5326         * tree-sra.c (sra_modify_assign): Do not remove loads of
5327         uninitialized aggregates to SSA_NAMEs.
5328
5329 2016-02-26  Richard Henderson  <rth@redhat.com>
5330
5331         PR target/69709
5332         * config/s390/s390.md (risbg and risbgn splitters): Allocate new
5333         pseudo in case the target rtx matches the source of the left
5334         shift.
5335
5336 2016-02-26  Martin Jambor  <mjambor@suse.cz>
5337
5338         PR hsa/69568
5339         * hsa.h (hsa_type_packed_p): Declare.
5340         * hsa.c (hsa_type_packed_p): New function.
5341         * hsa-gen.c (mem_type_for_type): Use unsigned type for packed
5342         loads.
5343         (gen_hsa_insns_for_store): Use hsa_type_packed_p.
5344         * hsa-brig.c (emit_basic_insn): Likewise.
5345
5346 2016-02-26  Martin Jambor  <mjambor@suse.cz>
5347
5348         pr hsa/69674
5349         * hsa-gen.c (gen_hsa_phi_from_gimple_phi): Use proper hsa type for
5350         pointers.
5351         (gen_hsa_addr): Allow integer constants in TMR_INDEX2.
5352
5353 2016-02-26  Martin Jambor  <mjambor@suse.cz>
5354
5355         * hsa.h (is_a_helper): New overload for hsa_op_immed for
5356         hsa_op_with_type operands.
5357         (hsa_unsigned_type_for_type): Declare.
5358         * hsa.c (hsa_unsigned_type_for_type): New function.
5359         * hsa-gen.c (gen_hsa_binary_operation): Use hsa_unsigned_type_for_type.
5360         (gen_hsa_insns_for_operation_assignment): Satisfy constrains of
5361         the finalizer.  Do not emit extra move.
5362
5363 2016-02-26  Martin Jambor  <mjambor@suse.cz>
5364
5365         * hsa-gen.c (gen_hsa_ternary_atomic_for_builtin): Fail in presence of
5366         atomic operations in private segment.
5367
5368 2016-02-26  Martin Jambor  <mjambor@suse.cz>
5369
5370         * omp-low.c (grid_find_ungridifiable_statement): Store problematic
5371         statements to wi->info.  Also disallow omp simd constructs.
5372         (grid_target_follows_gridifiable_pattern): Use wi.info to dump reason
5373         for not gridifying.  Dump special string for omp_for.
5374
5375 2016-02-26  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5376
5377         PR target/69245
5378         * config/aarch64/aarch64.c (aarch64_set_current_function):
5379         Save/restore target globals when switching to
5380         target_option_default_node.
5381
5382 2016-02-26  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5383
5384         PR target/69613
5385         * config/aarch64/aarch64.c (aarch64_shift_truncation_mask):
5386         Return 0 if !SHIFT_COUNT_TRUNCATED.
5387
5388 2016-02-26  Jakub Jelinek  <jakub@redhat.com>
5389             Eric Botcazou  <ebotcazou@adacore.com>
5390
5391         PR rtl-optimization/69891
5392         * dse.c (scan_insn): If we can't figure out memset arguments
5393         or they are non-constant, call clear_rhs_from_active_local_stores.
5394
5395 2016-02-26  Martin Liska  <mliska@suse.cz>
5396
5397         * doc/extend.texi: Mention clog10, clog10f an clog10l
5398         in Builtins section.
5399
5400 2016-02-26  Martin Liska  <mliska@suse.cz>
5401
5402         * dwarf2out.c (new_loc_descr): Replace ENABLE_CHECKING with
5403         CHECKING_P.
5404         (resolve_args_picking_1): Likewise.
5405         * dwarf2out.h (struct GTY): Likewise.
5406
5407 2016-02-26  Martin Liska  <mliska@suse.cz>
5408
5409         * hsa-gen.c (generate_hsa): Replace ENABLE_CHECKING macro
5410         with flag_checking.
5411         * hsa-regalloc.c (linear_scan_regalloc): Likewise.
5412
5413 2016-02-26  Markus Trippelsdorf  <markus@trippelsdorf.de>
5414             Martin Liska  <mliska@suse.cz>
5415
5416         * doc/install.texi: Mention --enable-valgrind-annotations.
5417
5418 2016-02-26  Richard Biener  <rguenther@suse.de>
5419
5420         PR tree-optimization/69551
5421         * tree-ssa-structalias.c (get_constraint_for_ssa_var): When
5422         looking through aliases adjust DECL_PT_UID to refer to the
5423         ultimate alias target.
5424
5425 2016-02-25  Martin Liska  <mliska@suse.cz>
5426
5427         PR middle-end/69919
5428         * alloc-pool.c (after_memory_report): New variable.
5429         * alloc-pool.h (base_pool_allocator ::release): Do not use
5430         the infrastructure if after_memory_report.
5431         * toplev.c (toplev::main): Mark after memory report.
5432
5433 2016-02-25  Richard Biener  <rguenther@suse.de>
5434
5435         PR tree-optimization/48795
5436         * tree-vrp.c (check_array_ref): Use array_at_struct_end_p.
5437
5438 2016-02-25  Ilya Verbin  <ilya.verbin@intel.com>
5439
5440         PR driver/68463
5441         * config/gnu-user.h (CRTOFFLOADBEGIN): Define.  Add crtoffloadbegin.o if
5442         offloading is enabled and -fopenacc or -fopenmp is specified.
5443         (CRTOFFLOADEND): Likewise.
5444         (GNU_USER_TARGET_STARTFILE_SPEC): Add CRTOFFLOADBEGIN.
5445         (GNU_USER_TARGET_ENDFILE_SPEC): Add CRTOFFLOADEND.
5446         * lto-wrapper.c (offloadbegin, offloadend): Remove static vars.
5447         (offload_objects_file_name): New static var.
5448         (tool_cleanup): Remove offload_objects_file_name file.
5449         (find_offloadbeginend): Replace with ...
5450         (find_crtoffloadtable): ... this.
5451         (run_gcc): Remove offload_argc and offload_argv.
5452         Get offload_objects_file_name from -foffload-objects=... option.
5453         Read names of object files with offload from this file, pass them to
5454         compile_images_for_offload_targets.  Don't call find_offloadbeginend and
5455         don't pass offloadbegin and offloadend to the linker.  Don't pass
5456         offload non-LTO files to the linker, because now they're not claimed.
5457
5458 2016-02-25  Jan Hubicka  <hubicka@ucw.cz>
5459
5460         PR ipa/69630
5461         * ipa-devirt.c (possible_polymorphic_call_targets): Do not ICE
5462         on builtin_unreachable.
5463
5464 2016-02-25  Jakub Jelinek  <jakub@redhat.com>
5465
5466         PR rtl-optimization/69896
5467         * regcprop.c: Include cfgrtl.h.
5468         (copyprop_hardreg_forward_1): If noop_p insn uses narrower
5469         than remembered mode, either delete it (if noop_move_p), or
5470         treat like copy_p but not noop_p instruction.
5471
5472 2016-02-24  Jakub Jelinek  <jakub@redhat.com>
5473
5474         PR debug/69705
5475         * dwarf2out.c (gen_variable_die): Work around buggy LTO
5476         - allow NULL decl for Fortran DW_TAG_common_block variables.
5477
5478 2016-02-24  Jason Merrill  <jason@redhat.com>
5479
5480         * common.opt (flifetime-dse): Add -flifetime-dse=1.
5481
5482 2016-02-24  Richard Biener  <rguenther@suse.de>
5483             Jakub Jelinek  <jakub@redhat.com>
5484
5485         PR middle-end/69760
5486         * tree-scalar-evolution.c (interpret_rhs_expr): Re-write
5487         conditionally executed ops to well-defined overflow behavior.
5488
5489 2016-02-24  Jakub Jelinek  <jakub@redhat.com>
5490
5491         PR middle-end/69915
5492         * tree.c (build_vector_from_ctor): Fix handling of VECTOR_CST
5493         elements.
5494
5495 2016-02-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5496
5497         PR rtl-optimization/69886
5498         * gcse.c (can_assign_to_reg_without_clobbers_p): Accept mode
5499         argument.  Use it when checking validity of set instructions.
5500         (want_to_gcse_p): Pass mode to can_assign_to_reg_without_clobbers_p.
5501         (compute_ld_motion_mems): Update can_assign_to_reg_without_clobbers_p
5502         callsite.
5503         * rtl.h (can_assign_to_reg_without_clobbers_p): Update prototype.
5504         * store-motion.c (find_moveable_store): Update
5505         can_assign_to_reg_without_clobbers_p callsite.
5506
5507 2016-02-24  Richard Biener  <rguenther@suse.de>
5508
5509         PR middle-end/68963
5510         * tree-ssa-loop-niter.c (derive_constant_upper_bound_ops): Fix
5511         bogus check.
5512         (record_nonwrapping_iv): Do not fall back to the low/high bound
5513         for non-constant IV bases if the stmt is not always executed.
5514
5515 2016-02-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5516
5517         * config/arm/arm-cores.def (cortex-a32): New entry.
5518         * config/arm/arm-tables.opt: Regenerate.
5519         * config/arm/arm-tune.md: Regenerate.
5520         * config/arm/bpabi.h (BE8_LINK_SPEC): Add mcpu=cortex-a32.
5521         * config/arm/t-aprofile: Handle mcpu=cortex-a32.
5522         * doc/invoke.texi (ARM Options): Document cortex-a32 as value
5523         for -mcpu and -mtune.
5524
5525 2016-02-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5526
5527         PR target/69875
5528         * config/arm/arm.h (TARGET_HAVE_LPAE): Define.
5529         * config/arm/unspecs.md (VUNSPEC_LDRD_ATOMIC): New value.
5530         * config/arm/sync.md (arm_atomic_loaddi2_ldrd): New pattern.
5531         (atomic_loaddi_1): Delete.
5532         (atomic_loaddi): Rewrite expander using the above changes.
5533
5534 2016-02-24  Jakub Jelinek  <jakub@redhat.com>
5535
5536         PR c/69918
5537         * params.def (PARAM_MAX_SSA_NAME_QUERY_DEPTH): Bump default from
5538         2 to 3.
5539
5540 2016-02-24  Jakub Jelinek  <jakub@redhat.com>
5541             Richard Biener  <rguenth@suse.de>
5542
5543         PR middle-end/69909
5544         * expr.c (expand_expr_real_1) <normal_inner_ref>: Avoid
5545         set_mem_attributes if tem is SSA_NAME which got expanded
5546         as a MEM.
5547
5548 2016-02-24  Richard Biener  <rguenther@suse.de>
5549
5550         PR tree-optimization/69907
5551         * tree-vect-stmts.c (vectorizable_load): Check for gaps at the
5552         end of permutations for BB vectorization.
5553
5554 2016-02-24  Christian Bruel  <christian.bruel@st.com>
5555
5556         * config/arm/arm-c.c (arm_option_override): Initialize
5557         target_option_current_node.
5558         * config/arm/arm.c (arm_pragma_target_parse): Replace
5559         build_target_option_node call by target_option_current_node.
5560         Set target_option_current_node.
5561         Fix comments.
5562
5563 2016-02-23  David Edelsohn  <dje.gcc@gmail.com>
5564
5565         PR target/69810
5566         * config/rs6000/rs6000.md (zero_extendqi<mode>2_dot): Convert from
5567         define_insn_and_split to define_insn.
5568         (zero_extendqi<mode>2_dot2): Same.
5569         (extendqi<mode>2_dot): Same.
5570         (extendqi<mode>2_dot2): Same.
5571
5572 2016-02-23  Evandro Menezes  <e.menezes@samsung.com>
5573
5574         * config/arm/exynos-m1.md: Change cost of STP, fix bypass for stores
5575         and add bypass for AES{D,E} and AESMC pairs.
5576         * config/aarch64/aarch64.c (exynosm1_tunings): Enable fusion of AES{D,E}
5577         and AESMC pairs.
5578
5579 2016-02-23  Evandro Menezes  <e.menezes@samsung.com>
5580
5581         * config/aarch64/aarch64.c (exynosm1_tunings): Enable the Newton
5582         series for reciprocal square root in Exynos M1.
5583
5584 2016-02-23  Martin Sebor  <msebor@redhat.com>
5585
5586         PR c/69759
5587         * doc/extend.texi (Other Builtins): Document __builtin_alloca and
5588         __builtin_alloca_with_align.
5589
5590 2016-02-23  Richard Henderson  <rth@redhat.com>
5591
5592         * config/i386/i386-c.c (ix86_target_macros): Remove __SEG_TLS.
5593         (ix86_register_pragmas): Remove __seg_tls.
5594         * config/i386/i386-protos.h (ADDR_SPACE_SEG_TLS): Remove.
5595         * config/i386/i386.c (ix86_print_operand_address_as): Don't handle it.
5596         (ix86_addr_space_subset_p, TARGET_ADDR_SPACE_SUBSET_P): Remove.
5597         (ix86_addr_space_convert, TARGET_ADDR_SPACE_CONVERT): Remove.
5598         (ix86_addr_space_debug, TARGET_ADDR_SPACE_DEBUG): Remove.
5599         * doc/extend.texi (__seg_tls): Remove item.
5600
5601 2016-02-23  Richard Biener  <rguenther@suse.de>
5602
5603         * alloc-pool.h (struct allocation_object): Make id member
5604         conditional on CHECKING_P again.
5605         (get_instance): Adjust.
5606         (base_pool_allocator): Likewise.
5607
5608 2016-02-23  Thomas Schwinge  <thomas@codesourcery.com>
5609
5610         * tree-parloops.c (create_parallel_loop, gen_parallel_loop)
5611         (parallelize_loops): In OpenACC kernels mode, set n_threads to
5612         zero.
5613         (pass_parallelize_loops::gate): In OpenACC kernels mode, gate on
5614         flag_openacc.
5615         * tree-ssa-loop.c (gate_oacc_kernels): Likewise.
5616
5617 2016-02-23  Richard Biener  <rguenther@suse.de>
5618
5619         * mem-stats.h (struct mem_usage): Use PRIu64 for printing size_t.
5620         * bitmap.h (struct bitmap_usage): Likewise.
5621         (bitmap_move): Declare.
5622         * bitmap.c (register_overhead): Take size_t argument.
5623         (bitmap_move): New function.
5624         * df-problems.c (df_rd_transfer_function): Use bitmap_move
5625         to properly account overhead.
5626         * tree.c (free_node): Use tree_size.
5627
5628 2016-02-23  Jakub Jelinek  <jakub@redhat.com>
5629
5630         PR c++/69902
5631         * fold-const.c (fold_truth_not_expr): Propagate TREE_NO_WARNING
5632         when inverting comparison.
5633
5634         PR c/69900
5635         * common.opt (Wunreachable-code): Add Warning flag.
5636
5637 2016-02-23  Mark Wielaard  <mjw@redhat.com>
5638             Jakub Jelinek  <jakub@redhat.com>
5639
5640         PR c/69911
5641         * cgraphunit.c (check_global_declaration): Check main_input_filename
5642         and DECL_SOURCE_FILE are not NULL.
5643
5644 2016-02-23  Martin Jambor  <mjambor@suse.cz>
5645
5646         PR tree-optimization/69666
5647         * tree-sra.c (sra_modify_assign): Do not attempt to create
5648         default_def replacements for unscalarizable regions.
5649
5650 2016-02-20  Mark Wielaard  <mjw@redhat.com>
5651
5652         PR c/28901
5653         * cgraphunit.c (check_global_declaration): Check level of
5654         warn_unused_const_variable and main_input_filename.
5655         * doc/invoke.texi (Warning Options): Add -Wunused-const-variable=.
5656         (-Wunused-variable): For C implies -Wunused-const-variable=1.
5657         (-Wunused-const-variable): Explain levels 1 and 2.
5658
5659 2016-02-22  Jakub Jelinek  <jakub@redhat.com>
5660
5661         PR target/69888
5662         * config/i386/i386.c (decide_alg): Ensure we don't recurse with
5663         identical arguments.  Formatting and spelling fixes.
5664
5665         PR target/69885
5666         * doc/md.texi (ashl@var{m}3): Document that mode of operand 2 must
5667         be specified.
5668
5669         PR target/69894
5670         PR target/69895
5671         * config/m68k/t-opts (OPTIONS_H_EXTRA): Add m68k-microarchs.def
5672         and m68k-devices.def.
5673         * config/c6x/t-c6x (OPTIONS_H_EXTRA): Add c6x-isas.def.
5674         * config/aarch64/t-aarch64 (OPTIONS_H_EXTRA): Add aarch64-arches.def.
5675
5676 2016-02-22  Cesar Philippidis  <cesar@codesourcery.com>
5677
5678         * config/nvptx/nvptx.c (nvptx_gen_shuffle): Add support for QImode
5679         and HImode registers.
5680
5681 2016-02-22  Richard Biener  <rguenther@suse.de>
5682
5683         PR tree-optimization/69882
5684         * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Properly
5685         preserve permutations present because of gaps.
5686         (vect_supported_load_permutation_p): Always continue checking
5687         permutations after vect_attempt_slp_rearrange_stmts.
5688
5689 2016-02-22  Bin Cheng  <bin.cheng@arm.com>
5690
5691         * tree-vect-loop.c (vect_estimate_min_profitable_iters): Dump
5692         min_profitable_estimate, rather than min_profitable_iters.
5693
5694 2016-02-22  Jakub Jelinek  <jakub@redhat.com>
5695
5696         PR target/69885
5697         * config/m68k/m68k.md (ashldi3, ashrdi3, lshrdi3): Use
5698         SImode for last match_operand.
5699
5700 2016-02-22  Martin Liska  <mliska@suse.cz>
5701
5702         * hsa-gen.c (gen_hsa_clrsb): In case of zero value,
5703         return bitsize - 1 as the return value.
5704
5705 2016-02-22  Oleg Endo  <olegendo@gcc.gnu.org>
5706
5707         PR target/69806
5708         PR target/54089
5709         * config/sh/sh.c (sh_lshrsi_clobbers_t_reg_p, sh_dynamicalize_shift_p):
5710         Handle negative shift counts.
5711         * config/sh/sh.md (ashlsi3, lshrsi3_n, lshrsi3_n_clobbers_t): Don't use
5712         force_reg on the shift constant.
5713         (lshrsi3): Likewise.  Expand into lshrsi3_n* instead of lshrsi3_d.
5714         (lshrsi3_d): Handle negative shift counts.
5715
5716 2016-02-22  Richard Biener  <rguenther@suse.de>
5717             Tom de Vries  <tom@codesourcery.com>
5718
5719         * graph.c: Include dumpfile.h.
5720         (print_graph_cfg): Split into three overloads.
5721         * gdbhooks.py (class DotFn): Add and instantiate, adding command dot-fn.
5722
5723 2016-02-22  Tom de Vries  <tom@codesourcery.com>
5724
5725         * gdbhooks.py (class DumpFn): Add and instantiate, adding command
5726         dump-fn.
5727
5728 2016-02-22  Richard Biener  <rguenther@suse.de>
5729
5730         PR ipa/37448
5731         * ipa-inline-transform.c (inline_call): When not updating
5732         overall summaries adjust self size by the growth estimate.
5733         * ipa-inline.c (inline_to_all_callers_1): Add to the callers
5734         hash-set, do not update overall summaries here.  Renamed from ...
5735         (inline_to_all_callers): ... this which is now wrapping the
5736         above and performing delayed overall summary update.
5737         (early_inline_small_functions): Delay updating of the overall
5738         summary.
5739
5740 2016-02-21  Markus Trippelsdorf  <markus@trippelsdorf.de>
5741
5742         * tree-chkp.c (chkp_mark_invalid_bounds_walker): Initialize
5743         variable.
5744
5745 2016-02-19  Jakub Jelinek  <jakub@redhat.com>
5746
5747         PR driver/69805
5748         * gcc.c (LINK_COMMAND_SPEC, GOMP_SELF_SPECS): Use
5749         :%* in %:gt() argument.
5750         (greater_than_spec_func): Adjust for expecting only numbers,
5751         if there are more than two numbers, compare the last two.
5752
5753 2016-02-19  Jonathan Wakely  <jwakely@redhat.com>
5754
5755         * doc/invoke.texi (C++ Dialect Options): Clarify interaction of
5756         -Wnarrowing with -std.
5757
5758 2016-02-19  Jakub Jelinek  <jakub@redhat.com>
5759
5760         PR c++/69851
5761         * expr.c (store_field): Don't use bit-field path if exp is
5762         COMPONENT_REF with TREE_ADDRESSABLE type, where TYPE_SIZE is
5763         different from bitsize, but DECL_SIZE of FIELD_DECL is bitsize
5764         and the assignment can be performed by bitwise copy.  Formatting
5765         fix.
5766
5767         PR middle-end/69838
5768         * lra.c (lra_process_new_insns): If non-call exceptions are enabled,
5769         call copy_reg_eh_region_note_forward on before and/or after sequences
5770         and remove note from insn if it no longer can throw.
5771
5772         PR target/69820
5773         * config/i386/sse.md (VI_512): Only include V64QImode and V32HImode
5774         if TARGET_AVX512BW.
5775
5776 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
5777
5778         * config/s390/vector.md: Add missing commutative operand markers
5779         to the patterns which qualify for one.
5780         * config/s390/vx-builtins.md: Likewise.
5781
5782 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
5783
5784         * config/s390/vector.md (VI, VI_QHS): Add single element vector
5785         types to mode iterators.
5786         (vec_double): ... and mode attribute.
5787         * config/s390/vx-builtins.md (non_vec_int): Likewise.
5788
5789 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
5790
5791         * config/s390/vector.md ("<ti*>add<mode>3", "<ti*>sub<mode>3"):
5792         Change the predicate of op2 from nonimmediate to general and let
5793         reload fix it if necessary.
5794
5795 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
5796
5797         * config/s390/vecintrin.h (vec_sub_u128): Define missing macro.
5798
5799 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
5800
5801         * config/s390/s390.c (s390_expand_vcond): Use the compare operand
5802         mode.
5803
5804 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
5805
5806         * config/s390/s390-protos.h: Add s390_expand_vec_movstr prototype.
5807         * config/s390/s390.c (s390_expand_vec_movstr): New function.
5808         * config/s390/s390.md ("movstr<P:mode>"): Call
5809         s390_expand_vec_movstr.
5810
5811 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
5812
5813         * config/s390/s390.md: Add missing output modifier for operand 1
5814         to print it as address properly.
5815
5816 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
5817
5818         * config/s390/2827.md: Rename ooo_* insn attributes to zEC12_*.
5819         * config/s390/2964.md: New file.
5820         * config/s390/s390.c (s390_get_sched_attrmask): Use the right set
5821         of insn grouping attributes depending on the CPU level.
5822         (s390_get_unit_mask): New function.
5823         (s390_sched_score): Remove the OOO from the scheduling macros.
5824         Add loop to calculate a score for the instruction mix.
5825         (s390_sched_reorder): Likewise plus improve debug output.
5826         (s390_sched_variable_issue): Rename macros as above.  Calculate
5827         the unit distances after actually scheduling an insn.  Improve
5828         debug output.
5829         (s390_sched_init): Clear last_scheduled_unit_distance array.
5830         * config/s390/s390.md: Include 2964.md.
5831
5832 2016-02-18  Jakub Jelinek  <jakub@redhat.com>
5833
5834         PR target/69671
5835         * config/i386/sse.md (*<floatsuffix>floatv2div2sf2_mask_1,
5836         *avx512vl_<code>v2div2qi2_mask_1, *avx512vl_<code><mode>v4qi2_mask_1,
5837         *avx512vl_<code><mode>v8qi2_mask_1, *avx512vl_<code><mode>v4hi2_mask_1,
5838         *avx512vl_<code>v2div2hi2_mask_1, *avx512vl_<code>v2div2si2_mask_1,
5839         *avx512f_<code>v8div16qi2_mask_1): New insns.
5840
5841 2016-02-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
5842
5843         PR target/68404
5844         * config/rs6000/predicates.md (fusion_gpr_addis): Revert
5845         2016-02-09 change.
5846
5847         * config/rs6000/rs6000.md (fusion_gpr_load_<mode>): Remove
5848         earlyclobber from target.  Use wF constraint for fused memory
5849         address.
5850         (fusion_gpr_<P:mode>_<GPR_FUSION:mode>_load): Likewise.
5851
5852 2016-02-18  Jakub Jelinek  <jakub@redhat.com>
5853             Martin Liska  <mliska@suse.cz>
5854
5855         PR sanitizer/69863
5856         * cfgexpand.c (asan_sanitize_stack_p): New function.
5857         (partition_stack_vars): Use the function.
5858         (expand_stack_vars): Likewise.
5859         (defer_stack_allocation): Likewise.
5860         (expand_used_vars): Likewise.
5861
5862 2016-02-18  Richard Biener  <rguenther@suse.de>
5863
5864         PR middle-end/69553
5865         * fold-const.c (operand_equal_p): Properly compare offsets for
5866         IMAGPART_EXPR and ARRAY_REF.
5867
5868 2016-02-18  Nick Clifton  <nickc@redhat.com>
5869
5870         PR target/62254
5871         PR target/69610
5872         * config/arm/arm.c (arm_option_override_internal): Disable
5873         interworking if the target does not support thumb instructions.
5874         (arm_reload_in_hi): Handle the case where a register to register
5875         move needs reloading because there is no simple pattern to handle
5876         it.
5877         (arm_reload_out_hi): Likewise.
5878
5879 2016-02-18  Richard Biener  <rguenther@suse.de>
5880
5881         PR middle-end/69854
5882         * match.pd: Don't use fold_binary or fold_unary for folding
5883         constants.
5884
5885 2016-02-17  Jakub Jelinek  <jakub@redhat.com>
5886
5887         PR c++/69850
5888         * gimplify.c (gimplify_cond_expr): Call gimple_set_no_warning
5889         on the cond_stmt from TREE_NO_WARNING on COND_EXPR_COND.
5890         * gimple-ssa-nonnull-compare.c (do_warn_nonnull_compare): Don't
5891         warn on gimple_no_warning_p statements.
5892
5893 2016-02-17  Jonathan Wakely  <jwakely@redhat.com>
5894
5895         * doc/extend.texi (C++ Attributes): Correct description of
5896         warn_unused type attribute.
5897
5898 2016-02-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
5899
5900         * config/rs6000/altivec.md (*altivec_lvxl_<mode>_internal): Output
5901         correct instruction.
5902
5903 2016-02-17  Richard Biener  <rguenther@suse.de>
5904
5905         PR rtl-optimization/69609
5906         * bb-reorder.c (struct bbro_basic_block_data): Add priority member.
5907         (find_traces_1_round): When ending a trace update cached priority
5908         of successors.
5909         (bb_to_key): Use cached priority when available.
5910         (copy_bb): Initialize cached priority.
5911         (reorder_basic_blocks_software_trace_cache): Likewise.
5912
5913 2016-02-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5914
5915         PR target/69161
5916         * config/aarch64/predicates.md (aarch64_comparison_operator_mode):
5917         New predicate.
5918         (aarch64_comparison_operator): Break overly long line into two.
5919         (aarch64_comparison_operation): Likewise.
5920         * config/aarch64/aarch64.md (cstorecc4): Use
5921         aarch64_comparison_operator_mode instead of
5922         aarch64_comparison_operator.
5923         (cstore<mode>4): Likewise.
5924         (aarch64_cstore<mode>): Likewise.
5925         (*cstoresi_insn_uxtw): Likewise.
5926         (cstore<mode>_neg): Likewise.
5927         (*cstoresi_neg_uxtw): Likewise.
5928
5929 2016-02-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5930
5931         PR target/69161
5932         * config/arm/predicates.md (arm_comparison_operator_mode):
5933         New predicate.
5934         * config/arm/arm.md (*mov_scc): Use arm_comparison_operator_mode
5935         instead of arm_comparison_operator.
5936         (*mov_negscc): Likewise.
5937         (*mov_notscc): Likewise.
5938         * config/arm/thumb2.md (*thumb2_mov_scc): Likewise.
5939         (*thumb2_mov_negscc): Likewise.
5940         (*thumb2_mov_negscc_strict_it): Likewise.
5941         (*thumb2_mov_notscc): Likewise.
5942         (*thumb2_mov_notscc_strict_it): Likewise.
5943
5944 2016-02-17  Wilco Dijkstra  <wdijkstr@arm.com>
5945
5946         * config/aarch64/aarch64.c (aarch64_internal_mov_immediate):
5947         Add missing return.
5948
5949 2016-02-17  Eric Botcazou  <ebotcazou@adacore.com>
5950
5951         * config/visium/visium.c (machine_libfunc_index): New enum.
5952         (machine_libfuncs): New structure.
5953         (visium_libfuncs): New static variable.
5954         (TARGET_INIT_LIBFUNCS): Define to...
5955         (visium_init_libfuncs): ...this.  New function.
5956         (expand_block_move_4): Use the appropriate libfunc.
5957         (expand_block_move_2): Likewise.
5958         (expand_block_move_1): Likewise.
5959         (expand_block_set_4): Likewise.
5960         (expand_block_set_2): Likewise.
5961         (expand_block_set_1): Likewise.
5962         (visium_trampoline_init): Likewise.
5963
5964 2016-02-17  Nick Clifton  <nickc@redhat.com>
5965
5966         * config/msp430/msp430.c (msp430_mcu_data): Sync with data from
5967         TI's devices.csv file as of March 2016.
5968
5969 2016-02-16  Kelvin Nilsen  <kelvin@gcc.gnu.org>
5970
5971         PR Target/48344
5972         * opts-global.c (handle_common_deferred_options): Introduce and
5973         initialize two global variables to remember command-line options
5974         specifying a stack-limiting register.
5975         * opts.h: Add extern declarations of the two new global variables.
5976         * emit-rtl.c (init_emit_once): Initialize the stack_limit_rtx
5977         variable based on the values of the two new global variables.
5978
5979 2016-02-16  Jakub Jelinek  <jakub@redhat.com>
5980
5981         PR c/69835
5982         * common.opt (Wnonnull-compare): New warning.
5983         * doc/invoke.texi (-Wnonnull): Remove text about comparison
5984         of arguments against NULL.
5985         (-Wnonnull-compare): Document.
5986         * Makefile.in (OBJS): Add gimple-ssa-nonnull-compare.o.
5987         * tree-pass.h (make_pass_warn_nonnull_compare): Declare.
5988         * passes.def (pass_warn_nonnull_compare): Add.
5989         * gimple-ssa-nonnull-compare.c: New file.
5990
5991 2016-02-16  James Greenhalgh  <james.greenhalgh@arm.com>
5992
5993         * config/aarch64/aarch64.c (cortexa57_tunings): Remove
5994         AARCH64_EXTRA_TUNE_RECIP_SQRT.
5995
5996 2016-02-16  James Greenhalgh  <james.greenhalgh@arm.com>
5997
5998         * config/aarch64/aarch64.c (use_rsqrt_p): Always use software
5999         reciprocal sqrt for -mlow-precision-recip-sqrt.
6000
6001 2016-02-16  James Greenhalgh  <james.greenhalgh@arm.com>
6002             Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
6003
6004         * config/aarch64/aarch64.c (aarch64_expand_vector_init): Refactor,
6005         always use lane loads to construct non-constant vectors.
6006
6007 2016-02-16  James Greenhalgh  <james.greenhalgh@arm.com>
6008
6009         * config/aarch64/aarch64.md
6010         (arch64_sqrdml<SQRDMLH_AS:rdma_as>h_lane<mode>): Fix register
6011         constraints for operand 3.
6012         (aarch64_sqrdml<SQRDMLH_AS:rdma_as>h_laneq<mode>): Likewise.
6013
6014 2016-02-16  Jakub Jelinek  <jakub@redhat.com>
6015             Richard Biener  <rguenther@suse.de>
6016
6017         PR tree-optimization/69820
6018         * tree-vect-patterns.c (type_conversion_p): Return false if
6019         *orig_type is unsigned single precision or boolean.
6020         (vect_recog_dot_prod_pattern, vect_recog_widen_mult_pattern):
6021         Formatting fix.
6022
6023 2016-02-16  Jakub Jelinek  <jakub@redhat.com>
6024
6025         PR rtl-optimization/69764
6026         PR rtl-optimization/69771
6027         * optabs.c (expand_binop): Ensure for shift optabs invalid CONST_INT
6028         op1 is valid for GET_MODE_INNER (mode) and force it into a reg.
6029
6030 2016-02-16  Richard Biener  <rguenther@suse.de>
6031
6032         PR tree-optimization/69776
6033         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Get alias
6034         sets from caller.
6035         (indirect_refs_may_alias_p): Likewise.
6036         (refs_may_alias_p_1): Pass alias sets as from ao_ref.
6037         * tree-ssa-sccvn.c (vn_reference_lookup): Also adjust vr alias-set
6038         according to tbaa_p.
6039         * tree-ssa-dom.c (lookup_avail_expr): Add tbaa_p flag.
6040         (optimize_stmt): For redundant store discovery do not allow tbaa.
6041
6042 2016-02-16  Bernd Schmidt  <bschmidt@redhat.com>
6043
6044         PR tree-optimization/69714
6045         * tree-ssa-math-opts.c (find_bswap_or_nop): Revert previous change.
6046         Return NULL if we have irrelevant high bytes on BIG_ENDIAN.
6047
6048 2016-02-16  Claudiu Zissulescu  <claziss@synopsys.com>
6049
6050         * config/arc/arc-modes.def (CC_FPU, CC_FPU_UNEQ): New modes.
6051         * config/arc/arc-opts.h (FPU_SP, FPU_SF, FPU_SC, FPU_SD, FPU_DP)
6052         (FPU_DF, FPU_DC, FPU_DD, FXP_DP): Define.
6053         * config/arc/arc.c (arc_init): Check FPU options.
6054         (get_arc_condition_code): Handle new CC_FPU* modes.
6055         (arc_select_cc_mode): Likewise.
6056         (arc_conditional_register_usage): Allow 64 bit datum into even-odd
6057         register pair only. Allow access for ARCv2 accumulator.
6058         (gen_compare_reg): Whenever we have FPU support use FPU compare
6059         instructions.
6060         (arc_reorg): Don't generate brcc insns when FPU compare
6061         instructions are involved.
6062         * config/arc/arc.h (TARGET_DPFP): Add TARGET_FP_DPAX condition.
6063         (TARGET_OPTFPE): Add condition when ARC EM can use optimized
6064         floating point emulation.
6065         (ACC_REG_FIRST, ACC_REG_LAST, ACCL_REGNO, ACCH_REGNO): Define.
6066         (REVERSE_CONDITION): Add new CC_FPU* modes.
6067         (TARGET_FP_SP_BASE): Define.
6068         (TARGET_FP_DP_BASE): Likewise.
6069         (TARGET_FP_SP_FUSED): Likewise.
6070         (TARGET_FP_DP_FUSED): Likewise.
6071         (TARGET_FP_SP_CONV): Likewise.
6072         (TARGET_FP_DP_CONV): Likewise.
6073         (TARGET_FP_SP_SQRT): Likewise.
6074         (TARGET_FP_DP_SQRT): Likewise.
6075         (TARGET_FP_DP_AX): Likewise.
6076         * config/arc/arc.md (ARCV2_ACC): New constant.
6077         (type): New fpu type attribute.
6078         (SDF): Conditional iterator.
6079         (cstore<mode>, cbranch<mode>): Change expand condition.
6080         (addsf3, subsf3, mulsf3, adddf3, subdf3, muldf3): New expands,
6081         handles FPU/FPX cases as well.
6082         * config/arc/arc.opt (mfpu): New option.
6083         * config/arc/fpx.md (addsf3_fpx, subsf3_fpx, mulsf3_fpx):
6084         Renamed.
6085         (adddf3, muldf3, subdf3): Removed.
6086         * config/arc/predicates.md (proper_comparison_operator): Recognize
6087         CC_FPU* modes.
6088         * config/arc/fpu.md: New file.
6089         * doc/invoke.texi (ARC Options): Document mfpu option.
6090
6091 2016-02-16  Richard Biener  <rguenther@suse.de>
6092
6093         PR rtl-optimization/69291
6094         * ifcvt.c (noce_try_store_flag_constants): Re-instantiate
6095         noce_operand_ok check.
6096
6097 2016-02-16  Tom de Vries  <tom@codesourcery.com>
6098
6099         PR lto/67709
6100         * omp-low.c (simd_clone_create): Remove call to
6101         symtab->call_cgraph_insertion_hooks.
6102
6103 2016-02-16  Jakub Jelinek  <jakub@redhat.com>
6104
6105         PR tree-optimization/69802
6106         * tree-ssa-reassoc.c (update_range_test): If op is
6107         SSA_NAME_IS_DEFAULT_DEF, give up unless tem is a positive
6108         op == 1 test of precision 1 integral op, otherwise handle
6109         that case as op itself.  Fix up formatting.
6110         (optimize_range_tests_to_bit_test, optimize_range_tests): Fix
6111         up formatting.
6112
6113 2016-02-16  Richard Biener  <rguenther@suse.de>
6114
6115         PR tree-optimization/69586
6116         * tree-vrp.c (register_edge_assert_for_2): Handle all integral
6117         types for conversion sources.
6118
6119 2016-02-16  Richard Biener  <rguenther@suse.de>
6120
6121         PR middle-end/69801
6122         * fold-const.c (operand_equal_p): For COND_EXPR zero operand
6123         mask OEP_ADDRESS_OF.
6124
6125 2016-02-16  Alan Modra  <amodra@gmail.com>
6126
6127         PR target/68973
6128         * config/rs6000/rs6000.md (reload_vsx_from_gprsf): Rewrite splitter.
6129         (p8_mtvsrd_df, p8_mtvsrd_sf): New.
6130         (p8_mtvsrd_1, p8_mtvsrd_2): Delete.
6131         (p8_mtvsrwz): New.
6132         (p8_mtvsrwz_1, p8_mtvsrwz_2): Delete.
6133         (p8_xxpermdi_<mode>): Take two DF inputs rather than one TF.
6134         (p8_fmrgow_<mode>): Likewise.
6135         (reload_vsx_from_gpr<mode>): Make clobber IF.  Adjust for above
6136         changes.
6137         (reload_fpr_from_gpr<mode>): Similarly. Use "d" for op0 constraint.
6138         (reload_vsx_from_gprsf): Use p8_mtvsrd_sf rather than attempting
6139         to use movdi_internal64.  Remove op0_di.
6140         * config/rs6000/vsx.md (vsx_xscvspdpn_directmove): Make op1 SFmode.
6141
6142 2016-02-15  Evandro Menezes  <e.menezes@samsung.com>
6143
6144         Add support for the FCCMP insn types
6145
6146         * config/aarch64/aarch64.md (fccmp): Change insn type.
6147         (fccmpe): Likewise.
6148         * config/aarch64/thunderx.md (thunderx_fcmp): Add "fccmp{s,d}" types.
6149         * config/arm/cortex-a53.md (cortex_a53_fpalu): Likewise.
6150         * config/arm/cortex-a57.md (cortex_a57_fp_cmp): Likewise.
6151         * config/arm/xgene1.md (xgene1_fcmp): Likewise.
6152         * config/arm/exynos-m1.md (exynos_m1_fp_ccmp): New insn reservation.
6153         * config/arm/types.md (fccmps): Add new insn type.
6154         (fccmpd): Likewise.
6155
6156 2016-02-15  Bernd Edlinger  <bernd.edlinger@hotmail.de>
6157
6158         * alias.c (get_alias_set): Fix a typo in comment.
6159
6160 2016-02-15  Richard Biener  <rguenther@suse.de>
6161
6162         PR tree-optimization/69595
6163         * match.pd: Complete range test simplification to true.
6164
6165 2016-02-15  Bernd Schmidt  <bschmidt@redhat.com>
6166
6167         PR rtl-optimization/69648
6168         * lra-constraints.c (update_ebb_live_info): Don't remove sets of
6169         pic_offset_table_rtx.
6170
6171         PR rtl-optimization/69752
6172         * ira.c (update_equiv_regs): When looking for more than a single SET,
6173         also take other side effects into account.
6174
6175 2016-02-15  Marcin Kościelnicki  <koriakin@0x04.net>
6176
6177         * config/s390/s390.c (s390_function_profiler): Add a new sequence
6178         for z900+ CPUs in 31-bit mode.
6179
6180 2016-02-15  Marcin Kościelnicki  <koriakin@0x04.net>
6181
6182         * common/config/s390/s390-common.c (s390_supports_split_stack):
6183         New function.
6184         (TARGET_SUPPORTS_SPLIT_STACK): New macro.
6185         * config/s390/s390-protos.h: Add s390_expand_split_stack_prologue.
6186         * config/s390/s390.c (struct machine_function): New field
6187         split_stack_varargs_pointer.
6188         (s390_register_info): Mark r12 as clobbered if it'll be used as temp
6189         in s390_emit_prologue.
6190         (s390_emit_prologue): Use r12 as temp if r1 is taken by split-stack
6191         vararg pointer.
6192         (morestack_ref): New global.
6193         (SPLIT_STACK_AVAILABLE): New macro.
6194         (s390_expand_split_stack_prologue): New function.
6195         (s390_live_on_entry): New function.
6196         (s390_va_start): Use split-stack vararg pointer if appropriate.
6197         (s390_asm_file_end): Emit the split-stack note sections.
6198         (TARGET_EXTRA_LIVE_ON_ENTRY): New macro.
6199         * config/s390/s390.md (UNSPEC_STACK_CHECK): New unspec.
6200         (UNSPECV_SPLIT_STACK_CALL): New unspec.
6201         (UNSPECV_SPLIT_STACK_DATA): New unspec.
6202         (split_stack_prologue): New expand.
6203         (split_stack_space_check): New expand.
6204         (split_stack_data): New insn.
6205         (split_stack_call): New expand.
6206         (split_stack_call_*): New insn.
6207         (split_stack_cond_call): New expand.
6208         (split_stack_cond_call_*): New insn.
6209
6210 2016-02-15  Richard Biener  <rguenther@suse.de>
6211
6212         PR tree-optimization/69783
6213         * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
6214         Add trivially correct cases.
6215
6216 2016-02-15  Tom de Vries  <tom@codesourcery.com>
6217
6218         PR lto/69655
6219         * lto-cgraph.c (input_offload_tables): Add and handle bool parameter
6220         do_force_output.
6221         * lto-streamer.h (input_offload_tables): Add and handle bool parameter.
6222
6223 2016-02-15  Richard Biener  <rguenther@suse.de>
6224
6225         PR tree-optimization/69776
6226         * tree-ssa-sccvn.h (vn_reference_lookup): Adjust prototype.
6227         * tree-ssa-sccvn.c (vn_reference_lookup): Add parameter to
6228         indicate whether we can use TBAA to disambiguate against stores.
6229         Use alias-set zero if not.
6230         (visit_reference_op_store): Do not use TBAA when looking up
6231         redundant stores.
6232         * tree-ssa-pre.c (compute_avail): Use TBAA here.
6233         (eliminate_dom_walker::before_dom_children): But not when looking
6234         up redundant stores.
6235
6236 2016-02-14  John David Anglin  <danglin@gcc.gnu.org>
6237
6238         * config/pa/pa.md (absqi2, absghi2, bswaphi2, bswapsi2, bswapdi2): New.
6239
6240 2016-02-14  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
6241
6242         *  config/i386/znver1.md
6243         (znver1_pop, znver1_pop_mem,
6244         znver1_load_imov_double_store,
6245         znver1_load_imov_direct_store,
6246         znver1_load_imov_direct_load,
6247         znver1_load_imov_double_load): Add new.
6248         (znver1_insn, znver1_insn_load): Add icmov type.
6249         (znver1_sseavx_fma,
6250         znver1_sseavx_fma_load,
6251         znver1_avx256_fma,
6252         znver1_avx256_fma_load): Fix pipe usage.
6253
6254 2016-02-14  Alan Modra  <amodra@gmail.com>
6255
6256         PR target/68973
6257         * reloads.c (find_reloads_address_1): For pre/post-inc/dec
6258         with an invalid hard reg, reload just the reg not the entire
6259         pre/post-inc/dec address expression.
6260
6261 2016-02-13  Oleg Endo  <olegendo@gcc.gnu.org>
6262
6263         PR target/67260
6264         * config/sh/sh.md (sibcall_value_pcrel): Replace =&k scratch reg with
6265         fixed R1_REG scratch reg.
6266         (sibcall_value_pcrel_fdpic): Likewise.
6267
6268 2016-02-13  Oleg Endo  <olegendo@gcc.gnu.org>
6269
6270         PR target/67636
6271         PR target/64345
6272         * config/sh/sh.md (*zero_extract_3): New insn_and_split pattern.
6273
6274 2016-02-12  Walter Lee  <walt@tilera.com>
6275
6276         * config/tilepro/t-tilepro: Replace CC_FOR_BUILD with CXX_FOR_BUILD.
6277         * config/tilegx/t-tilegx: Likewise.
6278
6279 2016-02-12  David Malcolm  <dmalcolm@redhat.com>
6280
6281         PR other/69554
6282         * diagnostic-show-locus.c (struct line_span): New struct.
6283         (layout::get_first_line): Delete.
6284         (layout::get_last_line): Delete.
6285         (layout::get_num_line_spans): New member function.
6286         (layout::get_line_span): Likewise.
6287         (layout::print_heading_for_line_span_index_p): Likewise.
6288         (layout::get_expanded_location): Likewise.
6289         (layout::calculate_line_spans): Likewise.
6290         (layout::m_first_line): Delete.
6291         (layout::m_last_line): Delete.
6292         (layout::m_line_spans): New field.
6293         (layout::layout): Update comment.  Replace m_first_line and
6294         m_last_line with m_line_spans, replacing their initialization
6295         with a call to calculate_line_spans.
6296         (diagnostic_show_locus): When printing source lines and
6297         annotations, rather than looping over a single span
6298         of lines, instead loop over each line_span within
6299         the layout, with an inner loop over the lines within them.
6300         Call the context's start_span callback when changing line spans.
6301         * diagnostic.c (diagnostic_initialize): Initialize start_span.
6302         (diagnostic_build_prefix): Break out the building of the location
6303         part of the string into...
6304         (diagnostic_get_location_text): ...this new function, rewriting
6305         it from nested ternary expressions to a sequence of "if"
6306         statements.
6307         (default_diagnostic_start_span_fn): New function.
6308         * diagnostic.h (diagnostic_start_span_fn): New typedef.
6309         (diagnostic_context::start_span): New field.
6310         (default_diagnostic_start_span_fn): New prototype.
6311
6312 2016-02-12  David Malcolm  <dmalcolm@redhat.com>
6313
6314         PR driver/69779
6315         * gcc.c (driver::finalize): Fix cleanup of "specs".
6316
6317 2016-02-12  David Malcolm  <dmalcolm@redhat.com>
6318
6319         PR driver/69265
6320         PR driver/69453
6321         * gcc.c (driver::driver): Initialize m_option_suggestions.
6322         (driver::~driver): Clean up m_option_suggestions.
6323         (suggest_option): Convert to...
6324         (driver::suggest_option): ...this, and split out into
6325         driver::build_option_suggestions and find_closest_string.
6326         (driver::build_option_suggestions): New function, from
6327         first half of suggest_option.  Special-case
6328         OPT_fsanitize_ and OPT_fsanitize_recover_, making use of
6329         the sanitizer_opts array.  For options of enum types, add the
6330         various enum values to the candidate strings.
6331         (driver::handle_unrecognized_options): Remove "const".
6332         * gcc.h (driver::handle_unrecognized_options): Likewise.
6333         (driver::build_option_suggestions): New decl.
6334         (driver::suggest_option): New decl.
6335         (driver::m_option_suggestions): New field.
6336         * opts-common.c (add_misspelling_candidates): New function.
6337         * opts.c (sanitizer_opts): Remove decl of struct sanitizer_opts_s
6338         and make non-static.
6339         * opts.h (sanitizer_opts): New array decl.
6340         (add_misspelling_candidates): New function decl.
6341         * spellcheck.c (find_closest_string): New function.
6342         * spellcheck.h (find_closest_string): New function decl.
6343
6344 2016-02-12  Jakub Jelinek  <jakub@redhat.com>
6345
6346         PR rtl-optimization/69764
6347         PR rtl-optimization/69771
6348         * optabs.c (expand_binop_directly): For shift_optab_p, force
6349         convert_modes with VOIDmode if xop1 has VOIDmode.
6350
6351 2016-02-12  Ilya Enkovich  <enkovich.gnu@gmail.com>
6352
6353         PR target/69729
6354         * lto-streamer-out.c (lto_output): Use thunk.add_pointer_bounds_args
6355         to correctly determine instrumentation thunks.
6356
6357 2016-02-12  Jakub Jelinek  <jakub@redhat.com>
6358
6359         PR ipa/69241
6360         * ipa-split.c (split_function): If split part returns TREE_ADDRESSABLE
6361         type by reference, force lhs on the call.
6362
6363         PR ipa/68672
6364         * ipa-split.c (split_function): Don't compute/use main_part_return_p.
6365         Compute retval and retbnd early in all cases if split_part_return_p
6366         and return_bb is not EXIT.  Remove all clobber stmts and reset
6367         all debug stmts that refer to SSA_NAMEs defined in split part,
6368         except if it is retval, in that case replace the old retval with the
6369         lhs of the call to the split part.
6370
6371 2016-02-12  Kugan Vivekanandarajah  <kuganv@linaro.org>
6372
6373         revert:
6374         2016-02-12  Kugan Vivekanandarajah  <kuganv@linaro.org>
6375
6376         PR middle-end/66726
6377         * tree-ssa-reassoc.c (optimize_range_tests): Handle tcc_compare stmt
6378         whose result is used in PHI.
6379         (maybe_optimize_range_tests): Likewise.
6380         (final_range_test_p): Likweise.
6381
6382 2016-02-12  Kugan Vivekanandarajah  <kuganv@linaro.org>
6383
6384         PR middle-end/66726
6385         * tree-ssa-reassoc.c (optimize_range_tests): Handle tcc_compare stmt
6386         whose result is used in PHI.
6387         (maybe_optimize_range_tests): Likewise.
6388         (final_range_test_p): Likweise.
6389
6390 2016-02-12  Jakub Jelinek  <jakub@redhat.com>
6391
6392         * cgraph.c: Spelling fixes - behaviour -> behavior and
6393         neighbour -> neighbor.
6394         * target.def: Likewise.
6395         * sel-sched.c: Likewise.
6396         * config/mips/mips.c: Likewise.
6397         * config/arc/arc.md: Likewise.
6398         * config/arm/cortex-a57.md: Likewise.
6399         * config/arm/arm.c: Likewise.
6400         * config/arm/neon.md: Likewise.
6401         * config/arm/arm-c.c: Likewise.
6402         * config/vms/vms-c.c: Likewise.
6403         * config/s390/s390.c: Likewise.
6404         * config/i386/znver1.md: Likewise.
6405         * config/i386/i386.c: Likewise.
6406         * config/ia64/hpux-unix2003.h: Likewise.
6407         * config/msp430/msp430.md: Likewise.
6408         * config/rx/rx.c: Likewise.
6409         * config/rx/rx.md: Likewise.
6410         * config/aarch64/aarch64-simd.md: Likewise.
6411         * config/aarch64/aarch64.c: Likewise.
6412         * config/nvptx/nvptx.c: Likewise.
6413         * config/bfin/bfin.c: Likewise.
6414         * config/cris/cris.opt: Likewise.
6415         * config/rs6000/rs6000.c: Likewise.
6416         * target.h: Likewise.
6417         * spellcheck.c: Likewise.
6418         * ira-build.c: Likewise.
6419         * tree-inline.c: Likewise.
6420         * builtins.c: Likewise.
6421         * lra-constraints.c: Likewise.
6422         * explow.c: Likewise.
6423         * hwint.h: Likewise.
6424         * targhooks.c: Likewise.
6425         * tree-vect-data-refs.c: Likewise.
6426         * expr.c: Likewise.
6427         * doc/tm.texi: Likewise.
6428         * doc/extend.texi: Likewise.
6429         * doc/install.texi: Likewise.
6430         * doc/md.texi: Likewise.
6431         * tree-ssa-tail-merge.c: Likewise.
6432         * sched-int.h: Likewise.
6433         * match.pd: Likewise.
6434         * sched-ebb.c: Likewise.
6435         * target.def (omit_struct_return_reg): Likewise.
6436         * gimple-ssa-isolate-paths.c: Likewise.
6437         (find_implicit_erroneous_behaviour): Renamed to...
6438         (find_implicit_erroneous_behavior): ... this.
6439         (find_explicit_erroneous_behaviour): Renamed to...
6440         (find_explicit_erroneous_behavior): ... this.
6441         (gimple_ssa_isolate_erroneous_paths): Adjust caller.
6442
6443 2016-02-11  Segher Boessenkool  <segher@kernel.crashing.org>
6444
6445         PR rtl-optimization/64682
6446         PR rtl-optimization/69567
6447         PR rtl-optimization/69737
6448         * combine.c (distribute_notes) <REG_DEAD>: If the register is set
6449         in I2 as well, just lose it.
6450
6451 2016-02-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6452
6453         * config/aarch64/aarch64.c (aarch64_last_printed_arch_string):
6454         New variable.
6455         (aarch64_last_printed_tune_string): Likewise.
6456         (aarch64_declare_function_name): Only output .arch assembler
6457         directive if it will be different from the previously output
6458         directive.  Same for .tune comment but only if -dA is set.
6459         (aarch64_start_file): New function.
6460         (TARGET_ASM_FILE_START): Define.
6461
6462 2016-02-11  David Malcolm  <dmalcolm@redhat.com>
6463
6464         PR plugins/69758
6465         * Makefile.in (PLUGIN_HEADERS): Add params.list.
6466
6467 2016-02-11  Jakub Jelinek  <jakub@redhat.com>
6468
6469         PR target/65313
6470         * tree-vect-slp.c (vect_schedule_slp_instance): Avoid
6471         -Wmaybe-uninitialized warning.
6472
6473 2016-02-11  Oleg Endo  <olegendo@gcc.gnu.org>
6474
6475         PR target/69713
6476         * config/sh/sh.md (casesi_worker_0): Add T_REG use.
6477
6478 2016-02-11  Richard Biener  <rguenther@suse.de>
6479
6480         PR rtl-optimization/69291
6481         * ifcvt.c (noce_try_store_flag_constants): Do not allow
6482         subexpressions affected by changing the result.
6483
6484 2016-02-10  Vladimir Makarov  <vmakarov@redhat.com>
6485
6486         PR target/69148
6487         * lra-constraints.c (curr_insn_transform): Find in/out operands
6488         for secondary memory moves.  Update dups.
6489
6490 2016-02-10  Yuri Rumyantsev  <ysrumyan@gmail.com>
6491
6492         PR tree-optimization/69652
6493         * tree-vect-loop.c (optimize_mask_stores): Move declaration of STMT1
6494         to nested loop, did source re-formatting, skip debug statements,
6495         add check on statement with volatile operand, remove dead scalar
6496         statements.
6497
6498 2016-02-10  Jakub Jelinek  <jakub@redhat.com>
6499             Patrick Palka  <ppalka@gcc.gnu.org>
6500
6501         PR ipa/69241
6502         PR c++/69649
6503         * gimplify.c (gimplify_modify_expr): Set lhs even for noreturn
6504         calls if the return type is TREE_ADDRESSABLE.
6505         * cgraphunit.c (cgraph_node::expand_thunk): Likewise.
6506         * ipa-split.c (split_function): Fix doubled "we" in comment.
6507         Use void return type for the split part even if
6508         !split_point->split_part_set_retval.
6509
6510 2016-02-10  Bin Cheng  <bin.cheng@arm.com>
6511
6512         PR tree-optimization/68021
6513         * tree-ssa-loop-ivopts.c (get_computation_aff): Set ratio to 1 if
6514         when computing the value of biv cand by itself.
6515
6516 2016-02-10  Wilco Dijkstra  <wdijkstr@arm.com>
6517
6518         * config/aarch64/aarch64.c (cortexa53_tunings): Enable AES fusion.
6519         (cortexa57_tunings): Likewise.
6520         (cortexa72_tunings): Likewise.
6521         (arch_macro_fusion_pair_p): Add support for AES fusion.
6522         * config/aarch64/aarch64-fusion-pairs.def: Add AES_AESMC entry.
6523         * config/arm/aarch-common.c (aarch_crypto_can_dual_issue):
6524         Allow virtual registers before reload so early scheduling works.
6525         * config/arm/cortex-a57.md (cortex_a57_crypto_simple): Use
6526         correct latency and pipeline.
6527         (cortex_a57_crypto_complex): Likewise.
6528         (cortex_a57_crypto_xor): Likewise.
6529         (define_bypass): Add AES bypass.
6530
6531 2016-02-10  Richard Biener  <rguenther@suse.de>
6532
6533         PR tree-optimization/69726
6534         * passes.def: Add DCE pass before late uninit.
6535         * match.pd: Add A ? B : (!A ? C : X) -> A ? B : C patterns to
6536         really fixup if-conversions job.
6537
6538 2016-02-10  Wilco Dijkstra  <wdijkstr@arm.com>
6539
6540         * config/arm/arm.c (arm_cortex_a53_tune): Enable AES fusion.
6541         (arm_cortex_a57_tune): Likewise.
6542         (aarch_macro_fusion_pair_p): Add support for AES fusion.
6543         * config/arm/arm-protos.h (fuse_ops): Add FUSE_AES_AESMC.
6544
6545 2016-02-10  Eric Botcazou  <ebotcazou@adacore.com>
6546
6547         * timevar.def (TV_PHASE_DBGINFO): Delete.
6548         (TV_PHASE_CHECK_DBGINFO): Likewise.
6549         * varpool.c (varpool_node::assemble_decl): Do not change timevar.
6550
6551 2016-02-10  Richard Biener  <rguenther@suse.de>
6552
6553         PR tree-optimization/69719
6554         * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
6555         Adjust previous fix by ensuring that dr_a1 is left of dr_a2.
6556
6557 2016-02-09  Andrew Pinski  <apinski@cavium.com>
6558
6559         PR tree-opt/69282
6560         * optabs-tree.c (expand_vec_cond_expr_p): Don't early return if
6561         get_vcond_mask_icode returns false.
6562
6563 2016-02-09  Michael Meissner  <meissner@linux.vnet.ibm.com>
6564
6565         PR target/68404
6566         * config/rs6000/predicates.md (fusion_gpr_addis): Prevent fusing
6567         an ADDIS that adds a pointer to a large constant that sets the
6568         upper16 bits with a load operation.
6569
6570 2016-02-09  Charles Baylis  <charles.baylis@linaro.org>
6571
6572         PR target/68532
6573         * config/arm/arm.c (arm_evpc_neon_vzip): Allow for big endian lane
6574         order.
6575         * config/arm/arm_neon.h (vzipq_s8): Adjust shuffle patterns for big
6576         endian.
6577         (vzipq_s16): Likewise.
6578         (vzipq_s32): Likewise.
6579         (vzipq_f32): Likewise.
6580         (vzipq_u8): Likewise.
6581         (vzipq_u16): Likewise.
6582         (vzipq_u32): Likewise.
6583         (vzipq_p8): Likewise.
6584         (vzipq_p16): Likewise.
6585
6586 2016-02-09  Charles Baylis  <charles.baylis@linaro.org>
6587
6588         PR target/68532
6589         * config/arm/arm.c (neon_endian_lane_map): New function.
6590         (neon_vector_pair_endian_lane_map): New function.
6591         (arm_evpc_neon_vuzp): Allow for big endian lane order.
6592         * config/arm/arm_neon.h (vuzpq_s8): Adjust shuffle patterns for big
6593         endian.
6594         (vuzpq_s16): Likewise.
6595         (vuzpq_s32): Likewise.
6596         (vuzpq_f32): Likewise.
6597         (vuzpq_u8): Likewise.
6598         (vuzpq_u16): Likewise.
6599         (vuzpq_u32): Likewise.
6600         (vuzpq_p8): Likewise.
6601         (vuzpq_p16): Likewise.
6602
6603 2016-02-11  Alexandre Oliva  <aoliva@redhat.com>
6604
6605         PR target/69634
6606         * regstat.c (regstat_bb_compute_calls_crossed): Disregard
6607         debug insns.
6608
6609 2016-02-09  Uros Bizjak  <ubizjak@gmail.com>
6610
6611         * config/i386/i386.md (insv<mode>_1): Use gen_int_mode to
6612         truncate const_int operand 1 to QImode.
6613
6614 2016-02-09  Eric Botcazou  <ebotcazou@adacore.com>
6615
6616         * gimple-ssa-backprop.c (optimize_phi): Do not replace an argument
6617         corresponding to an abnormal edge.
6618
6619 2016-02-09  Tom de Vries  <tom@codesourcery.com>
6620
6621         PR tree-optimization/69599
6622         * tree-ssa-structalias.c (fndecl_maybe_in_other_partition): New
6623         function.
6624         (find_func_aliases_for_builtin_call, find_func_clobbers)
6625         (ipa_pta_execute):  Handle case that foo and foo._0 are not in same lto
6626         partition.
6627
6628 2016-02-09  Richard Biener  <rguenther@suse.de>
6629
6630         PR tree-optimization/69715
6631         * tree-ssa.c (execute_update_addresses_taken): Mark non-decl
6632         LHS on calls as non-rewritable.
6633
6634 2016-02-09  Tom de Vries  <tom@codesourcery.com>
6635
6636         PR lto/69707
6637         * lto-wrapper.c (append_diag_options): New function.
6638         (compile_offload_image): Call append_diag_options.
6639
6640 2016-02-08  Sandra Loosemore  <sandra@codesourcery.com>
6641
6642         PR other/69722
6643         * doc/extend.texi (Flag Output Operands): Correct sectioning.
6644         Minor copy-edit to fix verb tenses.
6645
6646 2016-02-08  Jakub Jelinek  <jakub@redhat.com>
6647
6648         PR tree-optimization/69209
6649         * ipa-split.c (split_function): If split part is not
6650         returning retval, retval has gimple type but is not
6651         gimple value, force it into a SSA_NAME first.
6652
6653 2016-02-08  Nicklas Bo Jensen  <nbjensen@gmail.com>
6654
6655         * doc/tree-ssa.texi (Preserving the virtual SSA form): Remove
6656         outdated section.
6657
6658 2016-02-08  Jason Merrill  <jason@redhat.com>
6659
6660         PR c++/69631
6661         * convert.c (convert_to_integer_1): Check dofold on truncation
6662         distribution.
6663         (convert_to_pointer_maybe_fold, convert_to_real_maybe_fold)
6664         (convert_to_integer_maybe_fold, convert_to_complex_maybe_fold):
6665         Rename from *_nofold.
6666         * convert.h (convert_to_pointer_nofold, convert_to_integer_nofold)
6667         (convert_to_real_nofold, convert_to_complex_nofold): New inlines.
6668
6669 2016-02-08  Bernd Schmidt  <bschmidt@redhat.com>
6670
6671         PR target/60410
6672         * tree.c (build_common_tree_nodes): Remove short_double argument.
6673         All callers changed.
6674         * tree.h (build_common_tree_nodes): Adjust declaration.
6675         * doc/invoke.texi (-fshort-double): Remove documentation.
6676         * config/mips/t-img-elf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
6677         MULTILIB_EXCEPTIONS): Remove -fshort-double variant.
6678         * lto-wrapper.c (merge_and_complain, append_compiler_options)
6679         (append_linker_options): Don't handle OPT_fshort_double.
6680
6681         PR rtl-optimization/68730
6682         * lra-remat.c (insn_to_cand_activation): New static variable.
6683         (lra_remat): Allocate and free it.
6684         (create_cand): New arg activation. Initialize a field in
6685         insn_to_cand_activation if it is nonnull.
6686         (create_cands): Pass the activation insn to create_cand when making
6687         a candidate involving an output reload.  Reorganize code a little.
6688         (do_remat): Keep track of active status of candidates in a separate
6689         bitmap.
6690
6691 2016-02-08  Richard Biener  <rguenther@suse.de>
6692
6693         PR tree-optimization/69719
6694         * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
6695         Properly use absolute of the difference of the two offsets to
6696         compare or adjust the segment length.
6697
6698 2016-02-08  Richard Biener  <rguenther@suse.de>
6699             Jeff Law  <law@redhat.com>
6700
6701         PR target/68273
6702         * tree-ssanames.c (make_ssa_name_fn): Always use unqualified
6703         types for anonymous SSA names.
6704
6705 2016-02-08   Richard Biener  <rguenther@suse.de>
6706
6707         PR rtl-optimization/69274
6708         * ira.c (ira_setup_alts): Do not change recog_data.operand order.
6709
6710 2016-02-08  Jeff Law  <law@redhat.com>
6711
6712         PR tree-optimization/65917
6713         * tree-ssa-dom.c (record_temporary_equivalences): Record both
6714         equivalences from if (x == y) style conditionals.
6715         (loop_depth_of_name): Remove.
6716         (record_equality): Remove loop depth check.
6717         * tree-ssa-scopedtables.h (const_and_copies): Refine comments.
6718         (const_and_copies::record_const_or_copy_raw): New member function.
6719         * tree-ssa-scopedtables.c
6720         (const_and_copies::record_const_or_copy_raw): New, factored out of
6721         (const_and_copies::record_const_or_copy): Call new member function.
6722
6723 2016-02-05  Jeff Law  <law@redhat.com>
6724
6725         PR tree-optimization/68541
6726         * gimple-ssa-split-paths.c: Include tree-cfg.h and params.h.
6727         (count_stmts_in_block): New function.
6728         (poor_ifcvt_candidate_code): Likewise.
6729         (is_feasible_trace): Add some heuristics to determine when path
6730         splitting is profitable.
6731         (find_block_to_duplicate_for_splitting_paths): Make sure the graph
6732         is a diamond with a single exit.
6733
6734 2016-02-05  Martin Sebor  <msebor@redhat.com>
6735
6736         PR c++/69662
6737         * doc/invoke.texi: Update -Wplacement-new to take an optional
6738         argument.
6739
6740 2016-02-06  Richard Henderson  <rth@redhat.com>
6741
6742         PR c/69643
6743         * tree.c (tree_nop_conversion_p): Do not strip casts into or
6744         out of non-standard address spaces.
6745
6746 2016-02-05  Jakub Jelinek  <jakub@redhat.com>
6747
6748         PR rtl-optimization/69691
6749         * lra-eliminations.c (move_plus_up): Don't add the addend twice.
6750
6751 2016-02-05  Pat Haugen  <pthaugen@us.ibm.com>
6752
6753         * config/rs6000/crypto.md (crypto_vpermxor_<mode>): Correct insn type.
6754         * config/rs6000/rs6000.md (mov<mode>_hardfloat): Likewise.
6755         (*ieee128_mfvsrd_64bit): Likewise.
6756         (*ieee128_mfvsrd_32bit): Likewise.
6757
6758 2016-02-05  Ilya Enkovich  <enkovich.gnu@gmail.com>
6759
6760         PR target/69369
6761         Revert r232560:
6762         2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
6763
6764         * cgraphunit.c (cgraph_node::reset): Clear thunk info and
6765         instrumented_version.
6766
6767 2016-01-05  Jeremy Bennett  <jeremy.bennett@embecosm.com>
6768
6769         * doc/invoke.texi (Optimize Options): In table of --param options
6770         rename second occurrence of tracer-min-branch-ratio to
6771         tracer-min-branch-probability, rename
6772         tracer-min-branch-ratio-feedback to
6773         tracer-min-branch-probability-feedback and clarify description,
6774         rename sched-spec-state-edge-prob-cutoff to
6775         sched-state-edge-prob-cutoff, rename selsched-max-insns-to-rename
6776         to selsched-insns-to-rename, rename lto-minpartition to
6777         lto-min-partition, delete reorder-blocks-duplicate and
6778         reorder-blocks-duplicate-feedback.
6779
6780 2016-02-05  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6781
6782         * config/s390/s390.c (s390_register_info_set_ranges): Remove
6783         superfluous loops.
6784
6785 2016-02-05  Dominik Vogt  <vogt@linux.vnet.ibm.com>
6786
6787         * doc/extend.texi: S/390: Correct some typos.
6788
6789 2016-02-05  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6790
6791         * config/s390/s390.c (s390_emit_call): Add missing 64 bit check.
6792
6793 2016-02-05  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6794
6795         PR target/69625
6796         * config/s390/s390.c (SAVE_SLOT_NONE, SAVE_SLOT_STACK): New defines.
6797         (s390_register_info_gprtofpr): Use new macros above.
6798         (s390_register_info_stdarg_fpr): Adjust max_fpr to better match
6799         its name.
6800         (s390_register_info_stdarg_gpr): Adjust max_gpr to better match
6801         its name.  Adjust restore and save gpr ranges.
6802         (s390_register_info_set_ranges): New function.
6803         (s390_register_info): Use new macros above.  Call
6804         s390_register_info_set_ranges.
6805         (s390_optimize_register_info): Likewise.
6806         (s390_hard_regno_rename_ok): Use new macros.
6807         (s390_hard_regno_scratch_ok): Likewise.
6808         (s390_emit_epilogue): Likewise.
6809         (s390_can_use_return_insn): Likewise.
6810         (s390_optimize_prologue): Likewise.
6811         * config/s390/s390.md (GPR2_REGNUM, GPR6_REGNUM): New constants.
6812
6813 2016-02-05  Jakub Jelinek  <jakub@redhat.com>
6814
6815         PR bootstrap/69677
6816         * config/i386/i386.c (convert_scalars_to_vector): Readd stack
6817         alignment fixes.
6818         (ix86_option_override_internal): Disable TARGET_STV even for
6819         -m{incoming,preferred}-stack-boundary=3.
6820
6821 2016-02-03  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
6822
6823         * config.gcc: Mark deprecated rtems targets as obsolete.
6824
6825 2016-02-04  Segher Boessenkool  <segher@kernel.crashing.org>
6826
6827         PR rtl-optimization/64682
6828         PR rtl-optimization/69567
6829         * combine.c (distribute_notes) <REG_DEAD>: Place the death note
6830         before I2 only if the register is both used and set in I2.
6831
6832 2016-02-04  DJ Delorie  <dj@redhat.com>
6833
6834         * config/msp430/msp430.c (msp430_start_function): Add function type.
6835
6836 2016-02-04  Jakub Jelinek  <jakub@redhat.com>
6837
6838         PR fortran/69368
6839         * tree-dfa.c (get_ref_base_and_extent): Remove unreachable code.
6840
6841 2016-02-04  Uros Bizjak  <ubizjak@gmail.com>
6842
6843         PR rtl-optimization/69577
6844         Revert:
6845         2015-10-29  Richard Henderson  <rth@redhat.com>
6846
6847         PR target/68124
6848         PR rtl-opt/67609
6849         * config/i386/i386.c (ix86_cannot_change_mode_class): Tighten
6850         sse check to the exact conditions of PR 67609.
6851
6852 2016-02-04  Michael Meissner  <meissner@linux.vnet.ibm.com>
6853
6854         PR target/69667
6855         * config/rs6000/rs6000.md (mov<mode>_64bit_dm): Use 'd' constraint
6856         instead of 'ws', and 'wh' instead of 'wm' since TFmode/IFmode are
6857         not allowed into the traditional Altivec registers.
6858         (movtd_64bit_nodm): Likewise.
6859         (mov<mode>_32bit, FMOVE128_FPR iterator): Likewise.
6860
6861 2016-02-04  David Malcolm  <dmalcolm@redhat.com>
6862
6863         * config/aarch64/cortex-a57-fma-steering.c
6864         (aarch64_register_fma_steering): Remove "static" from arguments
6865         to register_pass.
6866
6867 2016-02-04  Wilco Dijkstra  <wdijkstr@arm.com>
6868
6869         PR target/69619
6870         * ccmp.c (expand_ccmp_expr_1): Avoid evaluating gs0/gs1
6871         twice when complex.
6872
6873 2016-02-04  Mike Frysinger  <vapier@gentoo.org>
6874
6875         * doc/invoke.texi: Delete -mno-fma4.
6876
6877 2016-02-04  Richard Sandiford  <richard.sandiford@arm.com>
6878
6879         PR rtl-optimization/69577
6880         * reginfo.c (record_subregs_of_mode): Add a partial_def parameter.
6881         (find_subregs_of_mode): Update accordingly.  Iterate over partial
6882         definitions.
6883
6884 2016-02-04  Alan Lawrence  <alan.lawrence@arm.com>
6885
6886         * config/arm/arm-protos.h (neon_reinterpret): Remove.
6887         * config/arm/arm.c (neon_reinterpret): Remove.
6888         * config/arm/arm_neon_builtins.def (vreinterpretv8qi, vreinterpretv4hi,
6889         vreinterpretv2si, vreinterpretv2sf, vreinterpretdi, vreinterpretv16qi,
6890         vreinterpretv8hi, vreinterpretv4si, vreinterpretv4sf, vreinterpretv2di,
6891         vreinterpretti): Remove.
6892         * config/arm/neon.md (neon_vreinterpretv8qi<mode>,
6893         neon_vreinterpretv4hi<mode>, neon_vreinterpretv2si<mode>,
6894         neon_vreinterpretv2sf<mode>, neon_vreinterpretdi<mode>,
6895         neon_vreinterpretti<mode>, neon_vreinterpretv16qi<mode>,
6896         neon_vreinterpretv8hi<mode>, neon_vreinterpretv4si<mode>,
6897         neon_vreinterpretv4sf<mode>, neon_vreinterpretv2di<mode>): Remove.
6898         * config/arm/arm_neon.h (vreinterpret_p8_p16, vreinterpret_p8_f32,
6899         vreinterpret_p8_p64, vreinterpret_p8_s64, vreinterpret_p8_u64,
6900         vreinterpret_p8_s8, vreinterpret_p8_s16, vreinterpret_p8_s32,
6901         vreinterpret_p8_u8, vreinterpret_p8_u16, vreinterpret_p8_u32,
6902         vreinterpret_p16_p8, vreinterpret_p16_f32, vreinterpret_p16_p64,
6903         vreinterpret_p16_s64, vreinterpret_p16_u64, vreinterpret_p16_s8,
6904         vreinterpret_p16_s16, vreinterpret_p16_s32, vreinterpret_p16_u8,
6905         vreinterpret_p16_u16, vreinterpret_p16_u32, vreinterpret_f32_p8,
6906         vreinterpret_f32_p16, vreinterpret_f32_p64, vreinterpret_f32_s64,
6907         vreinterpret_f32_u64, vreinterpret_f32_s8, vreinterpret_f32_s16,
6908         vreinterpret_f32_s32, vreinterpret_f32_u8, vreinterpret_f32_u16,
6909         vreinterpret_f32_u32, vreinterpret_p64_p8, vreinterpret_p64_p16,
6910         vreinterpret_p64_f32, vreinterpret_p64_s64, vreinterpret_p64_u64,
6911         vreinterpret_p64_s8, vreinterpret_p64_s16, vreinterpret_p64_s32,
6912         vreinterpret_p64_u8, vreinterpret_p64_u16, vreinterpret_p64_u32,
6913         vreinterpret_s64_p8, vreinterpret_s64_p16, vreinterpret_s64_f32,
6914         vreinterpret_s64_p64, vreinterpret_s64_u64, vreinterpret_s64_s8,
6915         vreinterpret_s64_s16, vreinterpret_s64_s32, vreinterpret_s64_u8,
6916         vreinterpret_s64_u16, vreinterpret_s64_u32, vreinterpret_u64_p8,
6917         vreinterpret_u64_p16, vreinterpret_u64_f32, vreinterpret_u64_p64,
6918         vreinterpret_u64_s64, vreinterpret_u64_s8, vreinterpret_u64_s16,
6919         vreinterpret_u64_s32, vreinterpret_u64_u8, vreinterpret_u64_u16,
6920         vreinterpret_u64_u32, vreinterpret_s8_p8, vreinterpret_s8_p16,
6921         vreinterpret_s8_f32, vreinterpret_s8_p64, vreinterpret_s8_s64,
6922         vreinterpret_s8_u64, vreinterpret_s8_s16, vreinterpret_s8_s32,
6923         vreinterpret_s8_u8, vreinterpret_s8_u16, vreinterpret_s8_u32,
6924         vreinterpret_s16_p8, vreinterpret_s16_p16, vreinterpret_s16_f32,
6925         vreinterpret_s16_p64, vreinterpret_s16_s64, vreinterpret_s16_u64,
6926         vreinterpret_s16_s8, vreinterpret_s16_s32, vreinterpret_s16_u8,
6927         vreinterpret_s16_u16, vreinterpret_s16_u32, vreinterpret_s32_p8,
6928         vreinterpret_s32_p16, vreinterpret_s32_f32, vreinterpret_s32_p64,
6929         vreinterpret_s32_s64, vreinterpret_s32_u64, vreinterpret_s32_s8,
6930         vreinterpret_s32_s16, vreinterpret_s32_u8, vreinterpret_s32_u16,
6931         vreinterpret_s32_u32, vreinterpret_u8_p8, vreinterpret_u8_p16,
6932         vreinterpret_u8_f32, vreinterpret_u8_p64, vreinterpret_u8_s64,
6933         vreinterpret_u8_u64, vreinterpret_u8_s8, vreinterpret_u8_s16,
6934         vreinterpret_u8_s32, vreinterpret_u8_u16, vreinterpret_u8_u32,
6935         vreinterpret_u16_p8, vreinterpret_u16_p16, vreinterpret_u16_f32,
6936         vreinterpret_u16_p64, vreinterpret_u16_s64, vreinterpret_u16_u64,
6937         vreinterpret_u16_s8, vreinterpret_u16_s16, vreinterpret_u16_s32,
6938         vreinterpret_u16_u8, vreinterpret_u16_u32, vreinterpret_u32_p8,
6939         vreinterpret_u32_p16, vreinterpret_u32_f32, vreinterpret_u32_p64,
6940         vreinterpret_u32_s64, vreinterpret_u32_u64, vreinterpret_u32_s8,
6941         vreinterpret_u32_s16, vreinterpret_u32_s32, vreinterpret_u32_u8,
6942         vreinterpret_u32_u16, vreinterpretq_p8_p16, vreinterpretq_p8_f32,
6943         vreinterpretq_p8_p64, vreinterpretq_p8_p128, vreinterpretq_p8_s64,
6944         vreinterpretq_p8_u64, vreinterpretq_p8_s8, vreinterpretq_p8_s16,
6945         vreinterpretq_p8_s32, vreinterpretq_p8_u8, vreinterpretq_p8_u16,
6946         vreinterpretq_p8_u32, vreinterpretq_p16_p8, vreinterpretq_p16_f32,
6947         vreinterpretq_p16_p64, vreinterpretq_p16_p128, vreinterpretq_p16_s64,
6948         vreinterpretq_p16_u64, vreinterpretq_p16_s8, vreinterpretq_p16_s16,
6949         vreinterpretq_p16_s32, vreinterpretq_p16_u8, vreinterpretq_p16_u16,
6950         vreinterpretq_p16_u32, vreinterpretq_f32_p8, vreinterpretq_f32_p16,
6951         vreinterpretq_f32_p64, vreinterpretq_f32_p128, vreinterpretq_f32_s64,
6952         vreinterpretq_f32_u64, vreinterpretq_f32_s8, vreinterpretq_f32_s16,
6953         vreinterpretq_f32_s32, vreinterpretq_f32_u8, vreinterpretq_f32_u16,
6954         vreinterpretq_f32_u32, vreinterpretq_p64_p8, vreinterpretq_p64_p16,
6955         vreinterpretq_p64_f32, vreinterpretq_p64_p128, vreinterpretq_p64_s64,
6956         vreinterpretq_p64_u64, vreinterpretq_p64_s8, vreinterpretq_p64_s16,
6957         vreinterpretq_p64_s32, vreinterpretq_p64_u8, vreinterpretq_p64_u16,
6958         vreinterpretq_p64_u32, vreinterpretq_p128_p8, vreinterpretq_p128_p16,
6959         vreinterpretq_p128_f32, vreinterpretq_p128_p64, vreinterpretq_p128_s64,
6960         vreinterpretq_p128_u64, vreinterpretq_p128_s8, vreinterpretq_p128_s16,
6961         vreinterpretq_p128_s32, vreinterpretq_p128_u8, vreinterpretq_p128_u16,
6962         vreinterpretq_p128_u32, vreinterpretq_s64_p8, vreinterpretq_s64_p16,
6963         vreinterpretq_s64_f32, vreinterpretq_s64_p64, vreinterpretq_s64_p128,
6964         vreinterpretq_s64_u64, vreinterpretq_s64_s8, vreinterpretq_s64_s16,
6965         vreinterpretq_s64_s32, vreinterpretq_s64_u8, vreinterpretq_s64_u16,
6966         vreinterpretq_s64_u32, vreinterpretq_u64_p8, vreinterpretq_u64_p16,
6967         vreinterpretq_u64_f32, vreinterpretq_u64_p64, vreinterpretq_u64_p128,
6968         vreinterpretq_u64_s64, vreinterpretq_u64_s8, vreinterpretq_u64_s16,
6969         vreinterpretq_u64_s32, vreinterpretq_u64_u8, vreinterpretq_u64_u16,
6970         vreinterpretq_u64_u32, vreinterpretq_s8_p8, vreinterpretq_s8_p16,
6971         vreinterpretq_s8_f32, vreinterpretq_s8_p64, vreinterpretq_s8_p128,
6972         vreinterpretq_s8_s64, vreinterpretq_s8_u64, vreinterpretq_s8_s16,
6973         vreinterpretq_s8_s32, vreinterpretq_s8_u8, vreinterpretq_s8_u16,
6974         vreinterpretq_s8_u32, vreinterpretq_s16_p8, vreinterpretq_s16_p16,
6975         vreinterpretq_s16_f32, vreinterpretq_s16_p64, vreinterpretq_s16_p128,
6976         vreinterpretq_s16_s64, vreinterpretq_s16_u64, vreinterpretq_s16_s8,
6977         vreinterpretq_s16_s32, vreinterpretq_s16_u8, vreinterpretq_s16_u16,
6978         vreinterpretq_s16_u32, vreinterpretq_s32_p8, vreinterpretq_s32_p16,
6979         vreinterpretq_s32_f16, vreinterpretq_s32_f32, vreinterpretq_s32_p64,
6980         vreinterpretq_s32_p128, vreinterpretq_s32_s64, vreinterpretq_s32_u64,
6981         vreinterpretq_s32_s8, vreinterpretq_s32_s16, vreinterpretq_s32_u8,
6982         vreinterpretq_s32_u16, vreinterpretq_s32_u32, vreinterpretq_u8_p8,
6983         vreinterpretq_u8_p16, vreinterpretq_u8_f32, vreinterpretq_u8_p64,
6984         vreinterpretq_u8_p128, vreinterpretq_u8_s64, vreinterpretq_u8_u64,
6985         vreinterpretq_u8_s8, vreinterpretq_u8_s16, vreinterpretq_u8_s32,
6986         vreinterpretq_u8_u16, vreinterpretq_u8_u32, vreinterpretq_u16_p8,
6987         vreinterpretq_u16_p16, vreinterpretq_u16_f32, vreinterpretq_u16_p64,
6988         vreinterpretq_u16_p128, vreinterpretq_u16_s64, vreinterpretq_u16_u64,
6989         vreinterpretq_u16_s8, vreinterpretq_u16_s16, vreinterpretq_u16_s32,
6990         vreinterpretq_u16_u8, vreinterpretq_u16_u32, vreinterpretq_u32_p8,
6991         vreinterpretq_u32_p16, vreinterpretq_u32_f32, vreinterpretq_u32_p64,
6992         vreinterpretq_u32_p128, vreinterpretq_u32_s64, vreinterpretq_u32_u64,
6993         vreinterpretq_u32_s8, vreinterpretq_u32_s16, vreinterpretq_u32_s32,
6994         vreinterpretq_u32_u8, vreinterpretq_u32_u16): Rewrite using casts.
6995
6996 2016-02-04  Martin Liska  <mliska@suse.cz>
6997
6998         PR sanitizer/69276
6999         * asan.c (has_stmt_been_instrumented_p): Instrument gimple calls
7000         that are gimple_store_p.
7001         (maybe_instrument_call): Likewise.
7002
7003 2016-02-04  Bin Cheng  <bin.cheng@arm.com>
7004
7005         * config/aarch64/aarch64.c (aarch64_legitimize_address): Force
7006         register scaling out of memory reference and comment why.
7007
7008 2016-02-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7009
7010         PR target/65932
7011         PR target/67714
7012         * cse.c (cse_insn): Pass NULL to fold_rtx when initially
7013         folding the source of a SET.
7014
7015 2016-02-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7016
7017         PR target/65932
7018         PR target/67714
7019         * config/arm/arm.c (arm_new_rtx_costs, MULT case): Properly extract
7020         the operands of the SIGN_EXTENDs from a SMUL[TB][TB] rtx.
7021
7022 2016-02-04  Jim Wilson  <jim.wilson@linaro.org>
7023
7024         PR target/65932
7025         PR target/67714
7026         * config/arm/arm.h (PROMOTE_MODE): Don't set UNSIGNEDP for QImode and
7027         HImode.
7028
7029 2016-02-04  Christian Bruel  <christian.bruel@st.com>
7030
7031         * config/arm/arm-c.c (arm_reset_previous_fndecl): Style fix and typo.
7032         * config/arm/arm.c (arm_set_current_function): Likewise.
7033
7034 2016-02-04  Jakub Jelinek  <jakub@redhat.com>
7035             Ilya Enkovich  <enkovich.gnu@gmail.com>
7036             H.J. Lu  <hongjiu.lu@intel.com>
7037
7038         PR target/69454
7039         * config/i386/i386.c (convert_scalars_to_vector): Remove
7040         stack alignment fixes.
7041         (ix86_option_override_internal): Disable TARGET_STV if stack
7042         might not be aligned enough.
7043         (ix86_minimum_alignment): Assert that TARGET_STV is false.
7044
7045 2016-02-04  Victoria Stepanyan  <victoria.stepanyan@amd.com>
7046
7047         * gcc/config/i386/x86-tune.def: Disable default prefetching
7048         for -march=znver1.
7049
7050 2016-02-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
7051             Vladimir Makarov  <vmakarov@redhat.com>
7052
7053         PR target/69461
7054         * config/rs6000/rs6000.c (rs6000_legitimate_address_p): Fix thinko
7055         in validating fused toc addresses.
7056
7057 2016-02-03  Jakub Jelinek  <jakub@redhat.com>
7058
7059         PR c/69627
7060         * diagnostic-show-locus.c (layout::get_state_at_point): Don't read
7061         range->m_caret fields if range->m_show_caret_p is false.
7062
7063         PR target/69644
7064         * config/rs6000/rs6000.c (rs6000_expand_atomic_compare_and_swap):
7065         Force oldval into register if it does not satisfy reg_or_short_operand
7066         predicate.  Fix up formatting.
7067
7068 2016-02-03  Vladimir Makarov  <vmakarov@redhat.com>
7069             Alexandre Oliva  <aoliva@redhat.com>
7070
7071         PR target/69461
7072         * lra-constraints.c (simplify_operand_subreg): Check additionally
7073         address validity after potential reloading.
7074         (process_address_1): Check insns validity.  In case of failure do
7075         nothing.
7076
7077 2016-02-03  Kirill Yukhin  <kirill.yukhin@intel.com>
7078
7079         PR target/69118
7080         * config/i386/sse.md (define_insn "avx512f_maskcmp<mode>3"):
7081         Fix target.
7082
7083 2016-02-02  Jakub Jelinek  <jakub@redhat.com>
7084
7085         * wide-int.cc (canonize_uhwi): New function.
7086         (wi::divmod_internal): Use it.
7087
7088 2016-02-02  James Norris  <jnorris@codesourcery.com
7089
7090         * gimplify.c (omp_notice_variable): Add usage check.
7091
7092 2016-02-02  Alexander Monakov  <amonakov@ispras.ru>
7093
7094         * config/nvptx/nvptx.c (nvptx_print_operand): Treat LEU, GEU, LTU, GTU
7095         like LE, GE, LT, GT when emitting relational operator.
7096
7097 2016-02-02  Wilco Dijkstra  <wdijkstr@arm.com>
7098
7099         * ira-costs.c (find_costs_and_classes): Add extra argument.
7100         * target.def (ira_change_pseudo_allocno_class): Add parameter.
7101         * targhooks.h (ira_change_pseudo_allocno_class): Likewise.
7102         * targhooks.c (ira_change_pseudo_allocno_class): Likewise.
7103         * config/aarch64/aarch64.c (aarch64_ira_change_pseudo_allocno_class)
7104         Add best_class parameter, and return it if not ALL_REGS.
7105         * config/mips/mips.c (mips_ira_change_pseudo_allocno_class):
7106         Add parameter.
7107         * doc/tm.texi (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS):
7108         Update target hook.
7109
7110 2016-02-02  Wilco Dijkstra  <wdijkstr@arm.com>
7111
7112         * config/aarch64/aarch64.c
7113         (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS): New define.
7114         (aarch64_ira_change_pseudo_allocno_class): New function.
7115
7116 2016-02-02  Uros Bizjak  <ubizjak@gmail.com>
7117
7118         PR target/67032
7119         * config/i386/i386.c (geode_cost): Increase cost of MMX and SSE moves.
7120
7121 2016-02-02  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
7122
7123         * config/avr/avr.c (avr_option_override): Set
7124         PARAM_ALLOW_STORE_DATA_RACES to 1.
7125
7126 2016-02-02  Richard Biener  <rguenther@suse.de>
7127
7128         PR tree-optimization/69595
7129         * match.pd: Add range test simplifications to true/false.
7130
7131 2016-02-02  Thomas Schwinge  <thomas@codesourcery.com>
7132
7133         * omp-builtins.def (BUILT_IN_GOACC_HOST_DATA): Remove.
7134         * omp-low.c (expand_omp_target): Use BUILT_IN_GOACC_DATA_START
7135         instead.
7136
7137 2016-02-02  Richard Biener  <rguenther@suse.de>
7138
7139         PR tree-optimization/69606
7140         * tree-ssa-math-opts.c (bswap_replace): Clear flow sensitive
7141         info on the result before moving a stmt.
7142
7143 2016-02-02  Yuri Rumyantsev  <ysrumyan@gmail.com>
7144
7145         PR middle-end/68542
7146         * config/i386/i386.c (ix86_expand_branch): Add support for conditional
7147         branch with vector comparison.
7148         * config/i386/sse.md (VI48_AVX): New mode iterator.
7149         (define_expand "cbranch<mode>4): Add support for conditional branch
7150         with vector comparison.
7151         * tree-vect-loop.c (optimize_mask_stores): New function.
7152         * tree-vect-stmts.c (vectorizable_mask_load_store): Initialize
7153         has_mask_store field of vect_info.
7154         * tree-vectorizer.c (vectorize_loops): Invoke optimaze_mask_stores for
7155         vectorized loops having masked stores after vec_info destroy.
7156         * tree-vectorizer.h (loop_vec_info): Add new has_mask_store field and
7157         correspondent macros.
7158         (optimize_mask_stores): Add prototype.
7159
7160 2016-02-02  Alan Modra  <amodra@gmail.com>
7161
7162         PR target/69548
7163         * config/rs6000/predicates.md (quad_int_reg_operand): Don't
7164         allow subregs.
7165
7166 2016-02-02  Alan Modra  <amodra@gmail.com>
7167
7168         PR target/68662
7169         * config/rs6000/rs6000.c (need_toc_init): New var, set it
7170         whenever toc_label_name used.
7171         (rs6000_file_start): Don't set up toc section here,
7172         (rs6000_output_function_epilogue): do so here instead,
7173         (rs6000_xcoff_file_start): and here.
7174         * config/rs6000/rs6000.md (load_toc_aix_si): Set need_toc_init.
7175         (load_toc_aix_di): Likewise.
7176
7177 2016-02-01  Jakub Jelinek  <jakub@redhat.com>
7178
7179         PR rtl-optimization/69592
7180         * rtlanal.c (nonzero_bits_binary_arith_p): New inline function.
7181         (cached_nonzero_bits): Use it instead of ARITHMETIC_P.
7182         (num_sign_bit_copies_binary_arith_p): New inline function.
7183         (cached_num_sign_bit_copies): Use it instead of ARITHMETIC_P.
7184
7185 2016-02-01  Jeff Law  <law@redhat.com>
7186
7187         PR tree-optimization/69580
7188         * params.def (FSM_MAXIMUM_PHI_ARGUMENTS): New param.
7189         * tree-ssa-threadbackward.c
7190         (fsm_find_control_statement_thread_paths): Do not try to walk
7191         through large PHI nodes.
7192
7193 2016-02-01  Jakub Jelinek  <jakub@redhat.com>
7194
7195         * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Return false
7196         when count is incremented above limit, don't analyze further
7197         insns afterwards.
7198
7199         * omp-low.c (oacc_parse_default_dims): Avoid
7200         -Wsign-compare warning, make sure value fits into int
7201         rather than just unsigned int.
7202
7203 2016-02-01  Bin Cheng  <bin.cheng@arm.com>
7204
7205         PR tree-optimization/67921
7206         * fold-const.c (split_tree): New parameters.  Convert pointer
7207         type variable part to proper type before negating.
7208         (fold_binary_loc): Pass new arguments to split_tree.
7209
7210 2016-02-01  Nathan Sidwell  <nathan@codesourcery.com>
7211
7212         * config/nvptx/nvptx.c (PTX_GANG_DEFAULT): New.
7213         (nvptx_goacc_validate_dims): Extend to handle global defaults.
7214         * target.def (OACC_VALIDATE_DIMS): Extend documentation.
7215         * doc/tm.texti: Rebuilt.
7216         * doc/invoke.texi (fopenacc-dim): Document.
7217         * lto-wrapper.c (merge_and_complain): Add OPT_fopenacc_dim_ case.
7218         (append_compiler_options): Likewise.
7219         * omp-low.c (oacc_default_dims, oacc_min_dims): New.
7220         (oacc_parse_default_dims): New.
7221         (oacc_validate_dims): Add USED arg.  Select non-unity default when
7222         possible.
7223         (oacc_loop_fixed_partitions): Return mask of used partitions.
7224         (oacc_loop_auto_partitions): Emit dump info.
7225         (oacc_loop_partition): Return mask of used partitions.
7226         (execute_oacc_device_lower): Parse default dimension arg.  Adjust
7227         loop partitioning and validation calls.
7228
7229 2016-02-01  Richard Biener  <rguenther@suse.de>
7230
7231         PR middle-end/69556
7232         * match.pd: Guard (C1/X)*C2 -> (C1*C2)/X with single_use.
7233
7234 2016-02-01  Richard Biener  <rguenther@suse.de>
7235
7236         PR tree-optimization/69574
7237         * tree-chrec.c (hide_evolution_in_other_loops_than_loop): Instead
7238         of asserting return chrec_dont_know.
7239
7240 2016-02-01  Martin Liska  <mliska@suse.cz>
7241
7242         * mem-stats-traits.h: Add copyright header.
7243         * mem-stats.h: Likewise.
7244
7245 2016-02-01  Richard Biener  <rguenther@suse.de>
7246
7247         PR tree-optimization/69579
7248         * tree-ssa-loop-ivcanon.c (propagate_constants_for_unrolling):
7249         Do not propagate through abnormal PHI results.
7250
7251 2016-02-01  Eric Botcazou  <ebotcazou@adacore.com>
7252
7253         * postreload.c (reload_cse_simplify): Remove dead code.
7254
7255 2016-02-01  Jakub Jelinek  <jakub@redhat.com>
7256
7257         PR rtl-optimization/69570
7258         * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Return true only
7259         if there is more than one set, not if there is a single set.
7260
7261 2016-02-01  Richard Henderson  <rth@redhat.com>
7262
7263         PR rtl-opt/69535
7264         * combine.c (make_compound_operation): When looking through a
7265         subreg, make sure to re-extend to the width of the outer mode.
7266
7267 2016-01-30  Jakub Jelinek  <jakub@redhat.com>
7268
7269         PR tree-optimization/69546
7270         * wide-int.cc (wi::divmod_internal): For unsigned division
7271         where both operands fit into uhwi, if o1 is 1 and o0 has
7272         msb set, if divident_prec is larger than bits per hwi,
7273         clear another quotient word and return 2 instead of 1.
7274         Similarly for remainder with msb in HWI set, if dividend_prec
7275         is larger than bits per hwi.
7276
7277 2016-01-29  Martin Jambor  <mjambor@suse.cz>
7278
7279         * hsa-gen.c (get_memory_order_name): Mask with MEMMODEL_BASE_MASK.
7280         Use short lowercase names.
7281         (get_memory_order): Mask with MEMMODEL_BASE_MASK.  Support
7282         MEMMODEL_CONSUME with acquire semantics and MEMMODEL_SEQ_CST with
7283         acq_rel one.  Protect warning agains segfaults if
7284         get_memory_order_name returns NULL.
7285         (gen_hsa_ternary_atomic_for_builtin): Support with MEMMODEL_SEQ_CST
7286         with release semantics.  Do not warn if get_memory_order already did.
7287         (gen_hsa_insns_for_call): Support with MEMMODEL_SEQ_CST with acquire
7288         semantics.  Fix check for relaxed or acquire semantics.  Do not warn
7289         if get_memory_order already did.
7290
7291 2016-01-29  Sebastian Pop  <s.pop@samsung.com>
7292
7293         * doc/install.texi: Document that isl-0.16 is supported.
7294
7295 2016-01-29  Vladimir Makarov  <vmakarov@redhat.com>
7296
7297         PR target/69299
7298         * config/i386/constraints.md (Bm): Describe as special memory
7299         constraint.
7300         * doc/md.texi (DEFINE_SPECIAL_MEMORY_CONSTRAINT): Describe it.
7301         * genoutput.c (main): Process DEFINE_SPECIAL_MEMORY_CONSTRAINT.
7302         * genpreds.c (struct constraint_data): Add is_special_memory.
7303         (have_special_memory_constraints, special_memory_start): New
7304         static vars.
7305         (special_memory_end): Ditto.
7306         (add_constraint): Add new arg is_special_memory.  Add code to
7307         process its true value.  Update have_special_memory_constraints.
7308         (process_define_constraint): Pass the new arg.
7309         (process_define_register_constraint): Ditto.
7310         (choose_enum_order): Process special memory.
7311         (write_tm_preds_h): Generate enum const CT_SPECIAL_MEMORY and
7312         function insn_extra_special_memory_constraint.
7313         (main): Process DEFINE_SPECIAL_MEMORY_CONSTRAINT.
7314         * gensupport.c (process_rtx): Process
7315         DEFINE_SPECIAL_MEMORY_CONSTRAINT.
7316         * ira-costs.c (record_reg_classes): Process CT_SPECIAL_MEMORY.
7317         * ira-lives.c (single_reg_class): Use
7318         insn_extra_special_memory_constraint.
7319         * ira.c (ira_setup_alts): Process CT_SPECIAL_MEMORY.
7320         * lra-constraints.c (process_alt_operands): Ditto.
7321         (curr_insn_transform): Use insn_extra_special_memory_constraint.
7322         * recog.c (asm_operand_ok, preprocess_constraints): Process
7323         CT_SPECIAL_MEMORY.
7324         * reload.c (find_reloads): Ditto.
7325         * rtl.def (DEFINE_SPECIFAL_MEMORY_CONSTRAINT): New.
7326         * stmt.c (parse_input_constraint): Use
7327         insn_extra_special_memory_constraint.
7328
7329 2016-01-29  H.J. Lu  <hongjiu.lu@intel.com>
7330
7331         PR target/69530
7332         * lra-splill.c (lra_final_code_change): Revert r229087 by
7333         removing all sub-registers.
7334
7335 2016-01-29  Steve Ellcey  <sellcey@imgtec.com>
7336
7337         PR target/65604
7338         * config/mips/mips.c (mips_output_division): Check flag_delayed_branch.
7339
7340 2016-01-29  Jakub Jelinek  <jakub@redhat.com>
7341
7342         PR target/69551
7343         * config/i386/i386.c (ix86_expand_vector_set) <case V4SImode>: For
7344         SSE1, copy target into the temporary reg first before recursing
7345         on it.
7346
7347 2016-01-29  H.J. Lu  <hongjiu.lu@intel.com>
7348
7349         * config/i386/sse.md (sse2_cvtps2pd<mask_name>): Replace vBm
7350         with vm.
7351
7352 2016-01-29  Jonathan Wakely  <jwakely@redhat.com>
7353
7354         * ginclude/stdarg.h: Test __cplusplus instead of
7355         __GXX_EXPERIMENTAL_CXX0X__.
7356
7357 2016-01-29  Richard Biener  <rguenther@suse.de>
7358
7359         PR tree-optimization/69547
7360         * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1):
7361         Do not mark clobbers necessary.
7362         (mark_all_reaching_defs_necessary_1): Likewise.
7363
7364 2016-01-29  Dominik Vogt  <vogt@linux.vnet.ibm.com>
7365
7366         * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Format
7367         declaration name with %qs and print it in both error messages.
7368         Also fix indentation.
7369
7370 2016-01-29  Dominik Vogt  <vogt@linux.vnet.ibm.com>
7371
7372         PR other/69006
7373         * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Remove
7374         trailing blank line from error message.
7375
7376 2016-01-29  Jonathan Wakely  <jwakely@redhat.com>
7377
7378         PR c++/69462
7379         * ginclude/float.h: Also provide FLT_EVAL_METHOD and DECIMAL_DIG
7380         for C++-11.
7381
7382 2016-01-29  Richard Biener  <rguenther@suse.de>
7383
7384         PR middle-end/69537
7385         * match.pd: Allow all integral types when simplifying a
7386         widening or sign-changing conversion.
7387
7388 2016-01-28  Sebastian Pop  <s.pop@samsung.com>
7389
7390         * graphite-isl-ast-to-gimple.c (get_rename_from_scev): Revert assert
7391         back to setting codegen_error to fail codegen.
7392
7393 2016-01-28  Uros Bizjak  <ubizjak@gmail.com>
7394
7395         PR target/69459
7396         * config/i386/constraints.md (C): Only accept constant zero operand.
7397         (BC): New constraint.
7398         * config/i386/sse.md (*mov<mode>_internal): Use BC constraint
7399         instead of C constraint.
7400         * doc/md.texi (Machine Constraints): Update description
7401         of C constraint.
7402
7403 2016-01-28  Steve Ellcey  <sellcey@imgtec.com>
7404
7405         PR target/68400
7406         * config/mips/mips.c (and_operands_ok): Add MIPS16 check.
7407
7408 2016-01-28  Jakub Jelinek  <jakub@redhat.com>
7409
7410         PR middle-end/69542
7411         * lra-remat.c (calculate_local_reg_remat_bb_data): Only consider
7412         non-debug insns.
7413
7414 2016-01-28  Pat Haugen  <pthaugen@us.ibm.com>
7415
7416         * config/rs6000/rs6000.c (output_cbranch): Don't statically predict
7417         branches if using guessed profile.
7418
7419 2016-01-28  H.J. Lu  <hongjiu.lu@intel.com>
7420
7421         * graphite-optimize-isl.c (optimize_isl): Fix dump.
7422
7423 2016-01-28  Richard Henderson  <rth@redhat.com>
7424
7425         PR target/69305
7426         * config/aarch64/aarch64-modes.def (CC_Cmode): New
7427         * config/aarch64/aarch64-protos.h: Update.
7428         * config/aarch64/aarch64.c (aarch64_zero_extend_const_eq): New.
7429         (aarch64_select_cc_mode): Add check for use of CC_Cmode.
7430         (aarch64_get_condition_code_1): Handle CC_Cmode.
7431         * config/aarch64/aarch64.md (addti3): Use adddi3_compareC.
7432         (*add<mode>3_compareC_cconly_imm): New.
7433         (*add<mode>3_compareC_cconly): New.
7434         (*add<mode>3_compareC_imm): New.
7435         (add<mode>3_compareC): New.
7436         (add<mode>3_carryin, *addsi3_carryin_uxtw): Sort compare operand
7437         to be first.  Use aarch64_carry_operation.
7438         (*add<mode>3_carryin_alt1, *addsi3_carryin_alt1_uxtw): Remove.
7439         (*add<mode>3_carryin_alt2, *addsi3_carryin_alt2_uxtw): Remove.
7440         (*add<mode>3_carryin_alt3, *addsi3_carryin_alt3_uxtw): Remove.
7441         (subti3): Use subdi3_compare1.
7442         (*sub<mode>3_compare0): Rename from sub<mode>3_compare0.
7443         (sub<mode>3_compare1): New.
7444         (*sub<mode>3_carryin0, *subsi3_carryin_uxtw): New.
7445         (*sub<mode>3_carryin): Use aarch64_borrow_operation.
7446         (*subsi3_carryin_uxtw): Likewise.
7447         (*ngc<mode>, *ngcsi_uxtw): Likewise.
7448         (*sub<mode>3_carryin_alt, *subsi3_carryin_alt_uxtw): New.
7449         * config/aarch64/iterators.md (DWI): New.
7450         * config/aarch64/predicates.md (aarch64_carry_operation): New.
7451         (aarch64_borrow_operation): New.
7452
7453 2016-01-28  Abderrazek Zaafrani  <a.zaafrani@samsung.com>
7454
7455         * graphite-optimize-isl.c (optimize_isl): Print a different debug
7456         message when isl does not return a valid schedule.
7457
7458 2016-01-28  Sebastian Pop  <s.pop@samsung.com>
7459
7460         * graphite-isl-ast-to-gimple.c (class translate_isl_ast_to_gimple):
7461         Remove comments from class declarations: they are already in the code
7462         close by the defs.
7463
7464 2016-01-28  Sebastian Pop  <s.pop@samsung.com>
7465
7466         * graphite-isl-ast-to-gimple.c (binary_op_to_tree): Call
7467         codegen_error_p.
7468         (ternary_op_to_tree): Same.
7469         (unary_op_to_tree): Same.
7470         (nary_op_to_tree): Same.
7471         (gcc_expression_from_isl_expr_op): Same.
7472         (gcc_expression_from_isl_expression): Same.
7473         (graphite_create_new_loop): Same.
7474         (graphite_create_new_loop_guard): Same.
7475         (build_iv_mapping): Same.
7476         (graphite_create_new_guard): Same.
7477         (translate_isl_ast_to_gimple::copy_loop_phi_nodes): Same.
7478         (translate_isl_ast_to_gimple::translate_pending_phi_nodes): Same.
7479
7480 2016-01-28  Sebastian Pop  <s.pop@samsung.com>
7481
7482         * graphite-isl-ast-to-gimple.c (get_rename_from_scev): Assert
7483         instead of setting codegen_error to fail codegen.
7484
7485 2016-01-28  Jason Merrill  <jason@redhat.com>
7486
7487         * tree.h (BINFO_FLAG_0): Rename from BINFO_MARKED.
7488
7489 2016-01-28  Wilco Dijkstra  <wdijkstr@arm.com>
7490
7491         * config/aarch64/aarch64.c (aarch64_if_then_else_costs):
7492         Remove CONST_INT_P check in CCMP cost calculation.
7493
7494 2016-01-28  Wilco Dijkstra  <wdijkstr@arm.com>
7495
7496         * config/aarch64/aarch64.c (generic_vector_cost):
7497         Set vec_permute_cost.
7498         (cortexa57_vector_cost): Likewise.
7499         (exynosm1_vector_cost): Likewise.
7500         (xgene1_vector_cost): Likewise.
7501         (aarch64_builtin_vectorization_cost): Use vec_permute_cost.
7502         * config/aarch64/aarch64-protos.h (cpu_vector_cost):
7503         Add vec_permute_cost entry.
7504
7505 2016-01-28  Wilco Dijkstra  <wdijkstr@arm.com>
7506
7507         * config/aarch64/aarch64.md (ccmp<mode>): Disassemble
7508         immediate as %1.
7509         (add<mode>3_compare0): Likewise.
7510         (addsi3_compare0_uxtw): Likewise.
7511         (add<mode>3nr_compare0): Likewise.
7512         (compare_neg<mode>): Likewise.
7513         (<optab><mode>3): Likewise.
7514
7515 2016-01-28  Ilya Enkovich  <enkovich.gnu@gmail.com>
7516
7517         * tree-vect-stmts.c (vectorizable_comparison): Add
7518         NULL check for vectype.
7519
7520 2016-01-28  Richard Biener  <rguenther@suse.de>
7521
7522         PR tree-optimization/69466
7523         * tree-vect-loop-manip.c (slpeel_duplicate_current_defs_from_edges):
7524         Account for PHIs we couldn't duplicate.
7525
7526 2016-01-28  Martin Liska  <mliska@suse.cz>
7527
7528         PR pch/68758
7529         * ggc-common.c (gt_pch_save): Use ENABLE_VALGRIND_ANNOTATIONS macro
7530         instead of ENABLE_VALGRIND_CHECKING.
7531
7532 2016-01-27  Richard Henderson  <rth@redhat.com>
7533
7534         PR rtl-opt/69447
7535         * lra-remat.c (subreg_regs): New.
7536         (dump_candidates_and_remat_bb_data): Dump it.
7537         (operand_to_remat): Reject if operand in subreg_regs.
7538         (set_bb_regs): Collect subreg_regs.
7539         (lra_remat): Init and free subreg_regs.  Compute
7540         calculate_local_reg_remat_bb_data before create_cands.
7541
7542 2016-01-27  H.J. Lu  <hongjiu.lu@intel.com>
7543
7544         PR target/68986
7545         * config/i386/i386.c (ix86_update_stack_boundary): Don't
7546         change stack_alignment_needed for __tls_get_addr call.
7547
7548 2016-01-27  Segher Boessenkool  <segher@kernel.crashing.org>
7549
7550         * config/rs6000/rs6000.c (print_operand): Rollback 's' removal.
7551
7552 2016-01-27  Jeff Law  <law@redhat.com>
7553
7554         PR tree-optimization/68398
7555         PR tree-optimization/69196
7556         * params.def (PARAM_FSM_SCALE_PATH_STMTS): New parameter.
7557         (PARAM_FSM_SCALE_PATH_BLOCKS): Likewise.
7558         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
7559         Only count PHIs in the last block in the path.  The others will
7560         const/copy propagate away.  Add heuristic to allow more irreducible
7561         subloops to be created when it is likely profitable to do so.
7562
7563         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
7564         Fix typo in comment.  Use gsi_after_labels and remove the GIMPLE_LABEL
7565         check from within the loop.  Use gsi_next_nondebug rather than gsi_next.
7566
7567 2016-01-27  Jakub Jelinek  <jakub@redhat.com>
7568
7569         PR lto/69254
7570         * sanitizer.def: Add BEGIN_SANITIZER_BUILTINS and
7571         END_SANITIZER_BUILTINS markers using DEF_BUILTIN_STUB.
7572         * asan.c (DEF_BUILTIN_STUB): Temporarily define.
7573         * tree-streamer-in.c: Include asan.h.
7574         (streamer_get_builtin_tree): For builtins in sanitizer
7575         range call initialize_sanitizer_builtins and retry.
7576
7577 2016-01-27  Ian Lance Taylor  <iant@google.com>
7578
7579         * common.opt (fkeep-gc-roots-live): New undocumented option.
7580         * tree-ssa-loop-ivopts.c (add_candidate_1): If
7581         -fkeep-gc-roots-live, skip pointers.
7582         (add_iv_candidate_for_biv): Handle add_candidate_1 returning
7583         NULL.
7584
7585 2016-01-27  Uros Bizjak  <ubizjak@gmail.com>
7586
7587         PR target/69512
7588         * config/i386/i386.md (*zext<mode>_doubleword_and): New pattern.
7589         (*zext<mode>_doubleword): Disable for TARGET_ZERO_EXTEND_WITH_AND.
7590
7591 2016-01-27  Thomas Klausner  <wiz@NetBSD.org>
7592
7593         PR target/68380
7594         * configure.ac: NetBSD provides SSP in its C library.
7595         * configure: Updated.
7596
7597 2016-01-27  Richard Biener  <rguenther@suse.de>
7598
7599         PR tree-optimization/69166
7600         * tree-vect-loop.c (vect_is_simple_reduction): Always check
7601         reduction code for commutativity / associativity.
7602
7603 2016-01-27  Martin Jambor  <mjambor@suse.cz>
7604
7605         PR tree-optimization/69355
7606         * tree-sra.c (analyze_access_subtree): Correct hole detection when
7607         total_scalarization fails.
7608
7609 2016-01-27  David Edelsohn  <dje.gcc@gmail.com>
7610
7611         * config/rs6000/driver-rs6000.c (detect_processor_aix): Add
7612         power9.
7613
7614 2016-01-27  Christian Bruel  <christian.bruel@st.com>
7615
7616         PR target/69245
7617         * config/arm/arm-c.c (arm_pragma_target_parse): Add comments.
7618         Move arm_reset_previous_fndecl and set_target_option_current_node in
7619         the conditional part.  Call save_restore_target_globals.
7620         * config/arm/arm.c (arm_set_current_function):
7621         Refactor to better support #pragma target and attribute mix.
7622         Call save_restore_target_globals.
7623         * config/arm/arm-protos.h (save_restore_target_globals): New function.
7624
7625 2016-01-27  Martin Liska  <mliska@suse.cz>
7626
7627         * hsa.c (hsa_summary_t::link_functions): Create IPA_REF_ADDR
7628         reference for an HSA kernel and its host function.
7629
7630 2016-01-27  Jakub Jelinek  <jakub@redhat.com>
7631
7632         PR tree-optimization/69399
7633         * wide-int.h (wi::lrshift): For larger precisions, only
7634         use fast path if shift is known to be < HOST_BITS_PER_WIDE_INT.
7635
7636 2016-01-27  Claudiu Zissulescu  <claziss@synopsys.com>
7637
7638         * config/arc/predicates.md (proper_comparison_operator): Reject
7639         constant-constant comparison.
7640
7641 2016-01-26  Tom de Vries  <tom@codesourcery.com>
7642
7643         PR tree-optimization/69110
7644         * tree-data-ref.c (initialize_data_dependence_relation): Handle
7645         DR_NUM_DIMENSIONS == 0.
7646
7647 2016-01-26  Abderrazek Zaafrani  <a.zaafrani@samsung.com>
7648             Sebastian Pop  <s.pop@samsung.com>
7649
7650         * graphite-isl-ast-to-gimple.c (ternary_op_to_tree): Handle
7651         isl_ast_op_cond and isl_ast_op_select.
7652         (gcc_expression_from_isl_expr_op): Same.
7653
7654 2016-01-26  Jason Merrill  <jason@redhat.com>
7655
7656         PR c++/68782
7657         * tree.c (recompute_constructor_flags): Split out from
7658         build_constructor.
7659         (verify_constructor_flags): New.
7660         * tree.h: Declare them.
7661
7662 2016-01-26  Iain Buclaw  <ibuclaw@gdcproject.org>
7663
7664         PR rtl-optimization/69217
7665         * var-tracking.c (tracked_record_parameter_p): Don't segfault if there
7666         are no TYPE_FIELDS set for the record type.
7667
7668 2016-01-26  Jakub Jelinek  <jakub@redhat.com>
7669
7670         PR target/68662
7671         * config/rs6000/rs6000.c (rs6000_option_override_internal): Initialize
7672         toc_label_name unconditionally.
7673         (rs6000_emit_load_toc_table): Call ggc_strdup on toc_label_name for
7674         SYMBOL_REF string.  Use toc_label_name instead of constructing
7675         LCTOC1.
7676         (rs6000_elf_declare_function_name): Use toc_label_name instead of
7677         constructing LCTOC1.
7678
7679 2016-01-26  Martin Sebor  <msebor@redhat.com>
7680
7681         PR other/69477
7682         * doc/extend.texi (Common Type Attributes): Move text that talks about
7683         attribute packed from attribute aligned to the section discussing
7684         the former attribute for clarity.
7685
7686 2016-01-26  Richard Henderson  <rth@redhat.com>
7687
7688         PR middle-end/60908
7689         * trans-mem.c (tm_region_init): Mark entry block as visited.
7690
7691 2016-01-26  David Malcolm  <dmalcolm@redhat.com>
7692
7693         PR other/69006
7694         * diagnostic-show-locus.c (layout::print_source_line): Replace
7695         call to pp_newline with call to layout::print_newline.
7696         (layout::print_annotation_line): Likewise.
7697         (layout::move_to_column): Likewise.
7698         (layout::print_any_fixits): After printing any fixits, print a
7699         trailing newline, if necessary.
7700         (layout::print_newline): New method, resetting any colorization
7701         before a newline.
7702         (diagnostic_show_locus): Move the pp_newline to before the
7703         early bailout.  Remove dummy block enclosing the layout instance.
7704         * diagnostic.c (default_diagnostic_finalizer): Replace invocation
7705         of pp_newline_and_flush with pp_flush.
7706         (diagnostic_append_note): Delete use of pp_newline.
7707         (diagnostic_append_note_at_rich_loc): Delete.
7708         * diagnostic.h (diagnostic_append_note_at_rich_loc): Delete.
7709         * pretty-print.h (output_buffer_append_r): Reset buff->line_length
7710         when newline characters are added to the buffer.
7711
7712 2016-01-26  Michael Matz  <matz@suse.de>
7713
7714         * configure.ac (ac_cv_std_swap_in_utility): New test.
7715         * system.h (<algorithm>): Check HAVE_SWAP_IN_UTILITY as well.
7716         * configure: Regenerate.
7717         * config.in: Regenerate.
7718
7719 2016-01-26  Claudiu Zissulescu  <claziss@synopsys.com>
7720
7721         * config/arc/arc.md (cstoresi4): Force operand into register.
7722         (arcset<code>): Fix predicate.
7723         (arcsetltu): Likewise.
7724         (arcsetgeu): Likewise.
7725         (arcsethi): Likewise.
7726         (arcsetls): Likewise.
7727
7728 2016-01-26  Jakub Jelinek  <jakub@redhat.com>
7729
7730         PR tree-optimization/69483
7731         * gimple-fold.c (canonicalize_constructor_val): Return NULL
7732         if base has error_mark_node type.
7733
7734 2016-01-26  Christophe Lyon  <christophe.lyon@linaro.org>
7735
7736         PR target/68620
7737         * config/arm/arm.c (neon_valid_immediate): Handle FP16 vectors.
7738         * config/arm/arm_neon.h (__ARM_NUM_LANES, __arm_lane, arm_lanq):
7739         New helper macros.
7740         (vget_lane_f16): Handle big-endian.
7741         (vgetq_lane_f16): Likewise.
7742         (vset_lane_f16): Likewise.
7743         (vsetq_lane_f16): Likewise.
7744         * config/arm/iterators.md (VQXMOV): Add V8HF.
7745         (VDQ): Add V4HF and V8HF.
7746         (V_reg): Handle V4HF and V8HF.
7747         (Is_float_mode): Likewise.
7748         * config/arm/neon.md (movv4hf, movv8hf, neon_vdup_nv4hf,
7749         neon_vdup_nv8hf): New patterns.
7750         (vec_set<mode>_internal, vec_extract<mode>, neon_vld1_dup<mode>):
7751         Use VD_LANE iterator.
7752         (neon_vld1_dup<mode>): Use VQ2 iterator.
7753
7754 2016-01-26  Nathan Sidwell  <nathan@acm.org>
7755
7756         * omp-low.h (oacc_fn_attrib_kernels_p): Declare.
7757         (set_oacc_fn_attrib): Add IS_KERNEL arg.
7758         * omp-low.c (set_oacc_fn_attrib): Add IS_KERNEL arg.
7759         (oacc_fn_attrib_kernels_p, oacc_fn_attrib_level): New.
7760         (expand_omp_target): Pass is_kernel to set_oacc_fn_attrib.
7761         (oacc_validate_dims): Add LEVEL arg, don't return level.
7762         (new_oacc_loop_routine): Use oacc_fn_attrib_level, not
7763         oacc_validate_dims.
7764         (execute_oacc_device_lower): Adjust, add more dump output.
7765         * tree-ssa-loop.c (gate_oacc_kernels): Use
7766         oacc_fn_attrib_kernels_p.
7767         * tree-parloops.c (create_parallel_loop): Adjust
7768         set_oacc_fn_attrib call.
7769
7770 2016-01-26  Jakub Jelinek  <jakub@redhat.com>
7771
7772         PR lto/69254
7773         * lto-wrapper.c (merge_and_complain): Handle -fcilkplus.
7774         (append_compiler_options): Handle -fcilkplus.
7775         (append_linker_options): Ignore -fno-{openmp,openacc,cilkplus}.
7776
7777 2016-01-26  Nick Clifton  <nickc@redhat.com>
7778
7779         PR target/66655
7780         * config/i386/winnt.c (i386_pe_binds_local_p): If a function has
7781         been marked as DECL_ONE_ONLY but we do not the means to make it
7782         so, then do not allow it to bind locally.
7783
7784 2016-01-26  Jakub Jelinek  <jakub@redhat.com>
7785
7786         PR lto/69254
7787         * opts.h (parse_sanitizer_options): New prototype.
7788         * opts.c (sanitizer_opts): New array.
7789         (parse_sanitizer_options): New function.
7790         (common_handle_option): Use parse_sanitizer_options.
7791
7792 2016-01-26  H.J. Lu  <hongjiu.lu@intel.com>
7793
7794         PR target/68986
7795         * config/i386/i386.c (ix86_compute_frame_layout): Move stack
7796         alignment adjustment to ...
7797         (ix86_update_stack_boundary): Here.  Don't over-align stack for
7798         __tls_get_addr.
7799         (ix86_finalize_stack_realign_flags): Use stack_alignment_needed
7800         if __tls_get_addr is called.
7801
7802 2016-01-26  Christian Bruel  <christian.bruel@st.com>
7803
7804         * doc/sourcebuild.texi (arm_crypto_pragma_ok): Remove.
7805
7806 2016-01-26  Eric Botcazou  <ebotcazou@adacore.com>
7807
7808         * config/ia64/ia64.c (ia64_expand_vecint_compare): Use gen_int_mode.
7809
7810 2016-01-26  Richard Biener  <rguenther@suse.de>
7811
7812         PR middle-end/69467
7813         * match.pd: Guard X * CST CMP 0 pattern with single_use.
7814
7815 2016-01-26  Richard Biener  <rguenther@suse.de>
7816
7817         PR tree-optimization/69452
7818         * tree-ssa-loop-im.c (move_computations_dom_walker): Remove.
7819         (move_computations_dom_walker::before_dom_children): Rename
7820         to ...
7821         (move_computations_worker): This.
7822         (move_computations): Perform an RPO rather than a DOM walk.
7823
7824 2016-01-26  Jakub Jelinek  <jakub@redhat.com>
7825
7826         PR target/69442
7827         * combine.c (combine_instructions): For REG_EQUAL note with
7828         SET_DEST being ZERO_EXTRACT, also temporarily set SET_DEST
7829         to the underlying register.
7830         * doc/rtl.texi (REG_EQUAL): Document the behavior of
7831         REG_EQUAL/REG_EQUIV notes if SET_DEST is ZERO_EXTRACT.
7832
7833 2016-01-26  Roger Ferrer Ibáñez  <rofirrim@gmail.com>
7834
7835         PR target/67896
7836         * config/aarch64/aarch64-builtins.c
7837         (aarch64_init_simd_builtin_types): Do not set structural
7838         equality to __Poly{8,16,64,128}_t types.
7839
7840 2016-01-26  Richard Sandiford  <richard.sandiford@arm.com>
7841
7842         PR tree-optimization/69400
7843         * wide-int.cc (wi_pack): Take the precision as argument and
7844         perform canonicalization here rather than in the callers.
7845         Use the main loop to handle all full-width HWIs.  Add a
7846         zero HWI if in_len isn't a full result.
7847         (wi::divmod_internal): Update accordingly.
7848         (wi::mul_internal): Likewise.  Simplify.
7849
7850 2016-01-25  Aditya Kumar  <aditya.k7@samsung.com>
7851             Sebastian Pop  <s.pop@samsung.com>
7852
7853         * graphite-poly.c (apply_poly_transforms): Simplify.
7854         (print_isl_set): Use more readable format: ISL_YAML_STYLE_BLOCK.
7855         (print_isl_map): Same.
7856         (print_isl_union_map): Same.
7857         (print_isl_schedule): New.
7858         (debug_isl_schedule): New.
7859         * graphite-dependences.c (scop_get_reads): Do not call
7860         isl_union_map_add_map that is undocumented isl functionality.
7861         (scop_get_must_writes): Same.
7862         (scop_get_may_writes): Same.
7863         (scop_get_original_schedule): Remove.
7864         (scop_get_dependences): Do not call isl_union_map_compute_flow that
7865         is deprecated in isl 0.15.  Instead, use isl_union_access_* interface.
7866         (compute_deps): Remove.
7867         * graphite-isl-ast-to-gimple.c (print_schedule_ast): New.
7868         (debug_schedule_ast): New.
7869         (translate_isl_ast_to_gimple::scop_to_isl_ast): Call
7870         set_separate_option.
7871         (graphite_regenerate_ast_isl): Add dump.
7872         (translate_isl_ast_to_gimple::scop_to_isl_ast): Generate code
7873         from scop->transformed_schedule.
7874         (graphite_regenerate_ast_isl): Add more dump.
7875         * graphite-optimize-isl.c (optimize_isl): Set
7876         scop->transformed_schedule.  Check whether schedules are equal.
7877         (apply_poly_transforms): Move here.
7878         * graphite-poly.c (apply_poly_transforms): ... from here.
7879         (free_poly_bb): Static.
7880         (free_scop): Static.
7881         (pbb_number_of_iterations_at_time): Remove.
7882         (print_isl_ast): New.
7883         (debug_isl_ast): New.
7884         (debug_scop_pbb): New.
7885         * graphite-scop-detection.c (print_edge): Move.
7886         (print_sese): Move.
7887         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Remove.
7888         (build_scop_scattering): Remove.
7889         (create_pw_aff_from_tree): Assert instead of bailing out.
7890         (add_condition_to_pbb): Remove unused code, do not fail.
7891         (add_conditions_to_domain): Same.
7892         (add_conditions_to_constraints): Remove.
7893         (build_scop_context): New.
7894         (add_iter_domain_dimension): New.
7895         (build_iteration_domains): Initialize pbb->iterators.
7896         Call add_conditions_to_domain.
7897         (nested_in): New.
7898         (loop_at): New.
7899         (index_outermost_in_loop): New.
7900         (index_pbb_in_loop): New.
7901         (outermost_pbb_in): New.
7902         (add_in_sequence): New.
7903         (add_outer_projection): New.
7904         (outer_projection_mupa): New.
7905         (add_loop_schedule): New.
7906         (build_schedule_pbb): New.
7907         (build_schedule_loop): New.
7908         (embed_in_surrounding_loops): New.
7909         (build_schedule_loop_nest): New.
7910         (build_original_schedule): New.
7911         (build_poly_scop): Call build_original_schedule.
7912         * graphite.h: Declare print_isl_schedule and debug_isl_schedule.
7913         (free_poly_dr): Remove.
7914         (struct poly_bb): Add iterators.  Remove schedule, transformed, saved.
7915         (free_poly_bb): Remove.
7916         (debug_loop_vec): Remove.
7917         (print_isl_ast): Declare.
7918         (debug_isl_ast): Declare.
7919         (scop_do_interchange): Remove.
7920         (scop_do_strip_mine): Remove.
7921         (scop_do_block): Remove.
7922         (flatten_all_loops): Remove.
7923         (optimize_isl): Remove.
7924         (pbb_number_of_iterations_at_time): Remove.
7925         (debug_scop_pbb): Declare.
7926         (print_schedule_ast): Declare.
7927         (debug_schedule_ast): Declare.
7928         (struct scop): Remove schedule.  Add original_schedule,
7929         transformed_schedule.
7930         (free_gimple_poly_bb): Remove.
7931         (print_generated_program): Remove.
7932         (debug_generated_program): Remove.
7933         (unify_scattering_dimensions): Remove.
7934         * sese.c (print_edge): ... here.
7935         (print_sese): ... here.
7936         (debug_edge): ... here.
7937         (debug_sese): ... here.
7938         * sese.h (print_edge): Declare.
7939         (print_sese): Declare.
7940         (dump_edge): Declare.
7941         (dump_sese): Declare.
7942
7943 2016-01-25  Aditya Kumar  <aditya.k7@samsung.com>
7944             Sebastian Pop  <s.pop@samsung.com>
7945
7946         * Makefile.in: Set ISLVER in site.exp.
7947
7948 2016-01-25  Jakub Jelinek  <jakub@redhat.com>
7949
7950         * omp-low.c (lower_omp_target) <case USE_DEVICE_PTR>: Set
7951         DECL_VALUE_EXPR of new_var even for the non-array case.  Look
7952         through DECL_VALUE_EXPR for expansion.
7953
7954 2016-01-25  Bernd Edlinger  <bernd.edlinger@hotmail.de>
7955
7956         * config/mips/mips.c (mips_compute_frame_info): Skip re-computing
7957         the frame info after reload completed.
7958
7959 2016-01-25  Jeff Law  <law@redhat.com>
7960
7961         PR tree-optimization/69196
7962         PR tree-optimization/68398
7963         * tree-ssa-threadupdate.h (enum bb_dom_status): Moved here from
7964         tree-ssa-threadupdate.c.
7965         (determine_bb_domination_status): Prototype
7966         * tree-ssa-threadupdate.c (enum bb_dom_status): Remove
7967         (determine_bb_domination_status): No longer static.
7968         (valid_jump_thread_path): Remove code to detect characteristics
7969         of the jump thread path not associated with correctness.
7970         * tree-ssa-threadbackward.c (fsm_find_control_statment_thread_paths):
7971         Correct test for thread path length.  Count PHIs for real operands as
7972         statements that need to be copied.  Do not count ASSERT_EXPRs.
7973         Look at all the blocks in the thread path.  Compute and selectively
7974         filter thread paths based on threading through the latch, threading
7975         a multiway branch or crossing a multiway branch.
7976
7977 2016-01-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
7978
7979         * config/rs6000/rs6000.c (rs6000_keep_leaf_when_profiled):  Add
7980         decl with __attribute__ ((unused)) annotation.
7981
7982 2016-01-25  Ilya Enkovich  <enkovich.gnu@gmail.com>
7983
7984         PR target/69421
7985         * tree-vect-stmts.c (vectorizable_condition): Check vectype
7986         of operands is compatible with a statement vectype.
7987
7988 2016-01-25  Eric Botcazou  <ebotcazou@adacore.com>
7989
7990         * doc/extend.texi (scalar_storage_order type attribute): Fix typo and
7991         improve wording for mixed storage order support.
7992
7993 2016-01-25  Bilyan Borisov  <bilyan.borisov@arm.com>
7994
7995         * config/aarch64/arm_neon.h (vcvt_s64_f64): New intrinsic.
7996         (vcvt_u64_f64): Likewise.
7997         (vcvta_s64_f64): Likewise.
7998         (vcvta_u64_f64): Likewise.
7999         (vcvtm_s64_f64): Likewise.
8000         (vcvtm_u64_f64): Likewise.
8001         (vcvtn_s64_f64): Likewise.
8002         (vcvtn_u64_f64): Likewise.
8003         (vcvtp_s64_f64): Likewise.
8004         (vcvtp_u64_f64): Likewise.
8005
8006 2016-01-25  Claudiu Zissulescu  <claziss@synopsys.com>
8007
8008         * config/arc/arc.c (TARGET_DWARF_REGISTER_SPAN): Define.
8009         (arc_init): Check validity mll64 option.
8010         (arc_save_restore): Use double load/store instruction.
8011         (arc_expand_movmem): Likewise.
8012         (arc_split_move): Don't split if we have double load/store
8013         instructions. Returns a boolean.
8014         (arc_process_double_reg_moves): Change function to return boolean
8015         instead of a sequence of instructions.
8016         (arc_dwarf_register_span): New function.
8017         * config/arc/arc-protos.h (arc_split_move): Change prototype.
8018         * config/arc/arc.h (TARGET_CPU_CPP_BUILTINS): Define __ARC_LL64__.
8019         * config/arc/arc.md (*movdi_insn): Emit ldd/std instructions.
8020         (*movdf_insn): Likewise.
8021         * config/arc/arc.opt (mll64): New option.
8022         * config/arc/predicates.md (even_register_operand): New predicate.
8023         * doc/invoke.texi (ARC Options): Add mll64 documentation.
8024
8025 2016-01-25  Richard Biener  <rguenther@suse.de>
8026
8027         PR lto/69393
8028         * dwarf2out.c (is_naming_typedef_decl): Not when DECL_NAMELESS.
8029         * tree-streamer-out.c (pack_ts_base_value_fields): Stream
8030         DECL_NAMELESS.
8031         * tree-streamer-in.c (unpack_ts_base_value_fields): Likewise.
8032
8033 2016-01-25  Richard Biener  <rguenther@suse.de>
8034
8035         PR tree-optimization/69376
8036         * tree-ssa-sccvn.h (struct vn_ssa_aux): Add range_info_anti_range_p
8037         flag.
8038         (VN_INFO_ANTI_RANGE_P): New inline.
8039         (VN_INFO_RANGE_TYPE): Likewise.
8040         * tree-ssa-sccvn.c (set_ssa_val_to): Also record and copy
8041         SSA_NAME_ANTI_RANGE_P.
8042         (free_scc_vn): Restore SSA_NAME_ANTI_RANGE_P.
8043         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
8044         Properly query VN_INFO_RANGE_TYPE.
8045
8046 2016-01-25  Nick Clifton  <nickc@redhat.com>
8047
8048         PR target/66655
8049         * config/i386/cygming.h (MAKE_DECL_ONE_ONLY): Remove definition.
8050
8051 2016-01-23  Tom de Vries  <tom@codesourcery.com>
8052
8053         PR tree-optimization/69426
8054         * tree-parloops.c (eliminate_local_variables_stmt): Handle vdef of
8055         removed clobber.
8056
8057 2016-01-23  Jakub Jelinek  <jakub@redhat.com>
8058
8059         * tree-ssanames.c (release_free_names_and_compact_live_names): Replace
8060         "the the" with "the" in the comments.
8061         * ipa-devirt.c (build_type_inheritance_graph,
8062         update_type_inheritance_graph): Likewise.
8063         * tree.c (build_function_type_list_1): Likewise.
8064         * cfgloopmanip.c (scale_loop_profile): Likewise.
8065         * tree-ssa-loop-ivopts.c (get_shiftadd_cost): Likewise.
8066         * gimple-ssa-split-paths.c
8067         (find_block_to_duplicate_for_splitting_paths): Likewise.
8068         * tree-sra.c (init_subtree_with_zero, clobber_subtree): Likewise.
8069         * expr.c (convert_move): Likewise.
8070         * var-tracking.c (vt_stack_adjustments): Likewise.
8071         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise.
8072         * tree-vrp.c (test_for_singularity): Likewise.
8073
8074         * tree-vect-stmts.c (vectorizable_condition): Build a VEC_COND_EXPR
8075         directly instead of building a temporary tree.
8076
8077         PR bootstrap/69434
8078         * genrecog.c: Define INCLUDE_ALGORITHM before including system.h,
8079         remove <algorithm> include.
8080
8081 2016-01-22  Jakub Jelinek  <jakub@redhat.com>
8082
8083         PR target/69432
8084         * config/i386/i386.c: Include dojump.h.
8085         (expand_small_movmem_or_setmem,
8086         expand_set_or_movmem_prologue_epilogue_by_misaligned_moves): Spelling
8087         fixes.
8088         (ix86_expand_set_or_movmem): Call do_pending_stack_adjust () early
8089         if dynamic_check != -1.
8090
8091 2016-01-21  Jeff Law  <law@redhat.com>
8092
8093         PR middle-end/69347
8094         * tree-ssa-dom.c (back_propagate_equivalences): Factored out of
8095         record_temporary_equivalences.  Rewritten to avoid unnecessary calls
8096         into dominated_by_p.
8097         (cprop_into_successor_phis): Avoid unnecessary tests.
8098
8099 2016-01-22  Richard Henderson  <rth@redhat.com>
8100
8101         PR target/69416
8102         * config/aarch64/aarch64.md (UNSPEC_NZCV): New.
8103         (ccmp<mode>, fccmp<mode>, fccmpe<mode>): Use it.
8104
8105 2016-01-22  Michael Matz  <matz@suse.de>
8106
8107         * system.h (string, algorithm): Include only conditionally.
8108         (new): Include always under C++.
8109         * bb-reorder.c (toplevel): Define INCLUDE_ALGORITHM.
8110         * final.c (toplevel): Ditto.
8111         * ipa-chkp.c (toplevel): Define INCLUDE_STRING.
8112         * genconditions.c (write_header): Make gencondmd.c define
8113         INCLUDE_STRING.
8114         * mem-stats.h (mem_usage::print_dash_line): Don't use std::string.
8115
8116         * config/aarch64/aarch64.c (toplevel): Define INCLUDE_STRING.
8117         * common/config/aarch64/aarch64-common.c (toplevel): Ditto.
8118
8119 2016-01-22  Christian Bruel  <christian.bruel@st.com>
8120
8121         PR target/68674
8122         * expr.c (expand_expr_real_1): Reset DECL_MODE if VECTOR_TYPE_P changed.
8123
8124 2016-01-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8125
8126         PR target/69403
8127         * config/arm/thumb2.md (*thumb2_ior_scc_strict_it): Convert to
8128         define_insn_and_split.  Ensure operands[1] and operands[0] do not
8129         get assigned the same register.
8130
8131 2016-01-22  Kugan Vivekanandarajah  <kuganv@linaro.org>
8132
8133         * ipa-prop.c (ipa_set_jf_constant): Remove redundant unshare_expr.
8134
8135 2016-01-22  Christian Bruel  <christian.bruel@st.com>
8136
8137         * config/arm/arm-c.c (arm_pragma_target_parse):
8138         Remove warn_builtin_macro_redefined overwrite.
8139
8140 2016-01-22  Eric Botcazou  <ebotcazou@adacore.com>
8141
8142         * ipa-inline.c (can_inline_edge_p): Back out overzealous check on
8143         flag_non_call_exceptions compatibility.
8144
8145 2016-01-22  Jakub Jelinek  <jakub@redhat.com>
8146
8147         PR debug/66668
8148         * dwarf2out.c (add_child_die_after): New function.
8149         (dwarf_qual_info_t): New type.
8150         (dwarf_qual_info): New variable.
8151         (qualified_die_p): New function.
8152         (modified_type_die): For -fdebug-types-section, ensure
8153         canonical order of qualifiers.  Put qualified DIEs adjacent
8154         to the corresponding non-qualified type DIE and search there
8155         for existing qualified DIEs.
8156
8157 2016-01-22  Eric Botcazou  <ebotcazou@adacore.com>
8158
8159         * doc/extend.texi (scalar_storage_order type attribute): Document
8160         restriction on type punning and aliasing, and remove future tense.
8161
8162 2016-01-21  Roman Zhuykov  <zhroma@ispras.ru>
8163
8164         PR target/69252
8165         * modulo-sched.c (optimize_sc): Allow branch-scheduling to add a new
8166         first stage.
8167
8168 2016-01-21  Jeff Law  <law@redhat.com>
8169
8170         PR middle-end/69347
8171         * tree-ssa-dom.c (dom_opt_dom_walker::thread_across_edge): Avoid
8172         useless call to record_temporary_equivalences.
8173         * tree-ssa-threadbackward.c (find_jump_threads_backwards): Just
8174         allocate 10 slots in the bb_path vector and let it grow as needed.
8175         (fsm_find_control_statement_thread_paths): Similarly for the next_path
8176         vector.
8177
8178 2016-01-21  David Edelsohn  <dje.gcc@gmail.com>
8179
8180         * configure.ac (gcc_cv_as_powerpc_mfcrf, gcc_cv_as_machine_directive):
8181         Detangle.
8182         * configure: Regenerate.
8183
8184 2016-01-21  Pat Haugen  <pthaugen@us.ibm.com>
8185
8186         * config/rs6000/aix71.h (ASM_CPU_SPEC): Add entry for Power9.
8187         * config/rs6000/driver-rs6000.c (struct asm_names): Likewise.
8188
8189 2016-01-21  Bernd Schmidt  <bschmidt@redhat.com>
8190
8191         PR middle-end/66178
8192         * expr.c (expand_expr_real_2) [PLUS_EXPR, MINUS_EXPR]: Don't
8193         drop EXPAND_INITIALIZER.
8194         * rtl.h (contains_symbolic_reference_p): Declare.
8195         * rtlanal.c (contains_symbolic_reference_p): New function.
8196         * simplify-rtx.c (simplify_binary_operation_1): Don't turn
8197         a subtraction into a NOT if symbolic constants are involved.
8198
8199 2016-01-21  Anton Blanchard  <anton@samba.org>
8200             Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
8201
8202         PR target/63354
8203         * config/rs6000/linux64.h (TARGET_KEEP_LEAF_WHEN_PROFILED): New
8204         #define.
8205         * config/rs6000/rs6000.c (rs6000_keep_leaf_when_profiled): New
8206         function.
8207
8208 2016-01-21  Ajit Agarwal  <ajitkum@xilinx.com>
8209
8210         * config/microblaze/microblaze.c
8211         (get_branch_target): New.
8212         (insert_wic_for_ilb_runout): New.
8213         (insert_wic): New.
8214         (microblaze_machine_dependent_reorg): New.
8215         (TARGET_MACHINE_DEPENDENT_REORG): Define macro.
8216         * config/microblaze/microblaze.md
8217         (UNSPEC_IPREFETCH): Define.
8218         (iprefetch): New pattern
8219         * config/microblaze/microblaze.opt
8220         (mxl-prefetch): New flag.
8221
8222 2016-01-21  Ajit Agarwal  <ajitkum@xilinx.com>
8223
8224         * config/microblaze/microblaze.h
8225         (FIXED_REGISTERS): Update in macro.
8226         (CALL_USED_REGISTERS): Update in macro.
8227
8228 2016-01-21  Yuri Rumyantsev  <ysrumyan@gmail.com>
8229
8230         PR rtl-optimization/68920
8231         * ifcvt.c (cond_move_process_if_block): Limit number of conditional
8232         moves.
8233
8234 2016-01-21  Vladimir Makarov  <vmakarov@redhat.com>
8235
8236         PR rtl-optimization/68990
8237         * lra-coalesce.c (lra_coalesce): Invalidate value for the result
8238         pseudo instead of inheritance ones.
8239
8240 2016-01-21  Bernd Edlinger  <bernd.edlinger@hotmail.de>
8241             Nick Clifton  <nickc@redhat.com>
8242
8243         PR target/69129
8244         PR target/69012
8245         * config/mips/mips.c (mips_compute_frame_info): Initialise
8246         args_size and hard_frame_pointer_offset fields of the frame
8247         structure before calling mips_global_pointer.
8248
8249 2016-01-21  David Edelsohn  <dje.gcc@gmail.com>
8250
8251         * configure.ac (gcc_cv_as_dwloc): Test support for debug frame section
8252         label reference.
8253         * configure: Regenerate.
8254
8255 2016-01-21  Richard Biener  <rguenther@suse.de>
8256
8257         * graphite-optimize-isl.c (get_schedule_map): Fix typo.
8258
8259 2016-01-21  Marcin Kościelnicki  <koriakin@0x04.net>
8260
8261         * config/s390/s390.c (s390_asm_declare_function_size): Add code
8262         to actually emit the .size directive.
8263
8264 2016-01-21   Stefan Sørensen  <stefan.sorensen@spectralink.com>
8265              Jakub Jelinek  <jakub@redhat.com>
8266
8267         PR target/69187
8268         PR target/65624
8269         * config/arm/arm-builtins.c (arm_expand_neon_builtin): Increase
8270         args array size by one to avoid buffer overflow.
8271
8272 2016-01-21  Marcin Kościelnicki  <koriakin@0x04.net>
8273
8274         * config/s390/s390.md (pool_section_start): Use switch_to_section
8275         to select proper read-only data section instead of hardcoding
8276         .rodata.
8277         (pool_section_end): Use switch_to_section to match the above.
8278
8279 2016-01-21  Richard Biener  <rguenther@suse.de>
8280
8281         PR tree-optimization/69378
8282         * tree-ssa-sccvn.c (dominated_by_p_w_unex): New function.
8283         (set_ssa_val_to): Use it for dominance checks taking into
8284         account not executable edges.
8285
8286 2016-01-21  Jakub Jelinek  <jakub@redhat.com>
8287
8288         PR c++/69355
8289         * tree-dfa.c (get_ref_base_and_extent): Use GET_MODE_BITSIZE (mode)
8290         for bitsize instead of GET_MODE_PRECISION (mode).
8291
8292 2016-01-20  Martin Sebor  <msebor@redhat.com>
8293
8294         PR c/52291
8295         * extend.texi (__sync Builtins): Clarify the semantics of
8296         __sync_fetch_and_OP built-ins on pointers.
8297         (__atomic Builtins): Same.
8298
8299 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
8300             Sebastian Pop  <s.pop@samsung.com>
8301
8302         * graphite-isl-ast-to-gimple.c (enum phi_node_kind): New.
8303         (class translate_isl_ast_to_gimple): Use phi_node_kind instead of bool.
8304         (is_valid_rename): Same.
8305         (translate_isl_ast_to_gimple::get_rename): Same.
8306         (translate_isl_ast_to_gimple::rename_all_uses): Same.
8307         (translate_isl_ast_to_gimple::rename_uses): Same.
8308         (get_new_name): Check for close_phi nodes.
8309         (copy_loop_phi_args): Use phi_node_kind.
8310         (translate_isl_ast_to_gimple::copy_loop_close_phi_args): Same.
8311         (translate_isl_ast_to_gimple::copy_cond_phi_args): Same.
8312
8313 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
8314             Sebastian Pop  <s.pop@samsung.com>
8315
8316         Revert commit r229783.
8317         * graphite-isl-ast-to-gimple.c (gcc_expression_from_isl_ast_expr_id):
8318         Remove use of parameter_rename_map.
8319         (copy_def): Remove.
8320         (copy_internal_parameters): Remove.
8321         (graphite_regenerate_ast_isl): Remove call to copy_internal_parameters.
8322         * sese.c (new_sese_info): Do not initialize parameter_rename_map.
8323         (free_sese_info): Do not free parameter_rename_map.
8324         (set_rename): Do not use parameter_rename_map.
8325         (rename_uses): Update call to set_rename.
8326         (graphite_copy_stmts_from_block): Do not use parameter_rename_map.
8327         * sese.h (parameter_rename_map_t): Remove.
8328         (struct sese_info_t): Remove field parameter_rename_map.
8329
8330 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
8331             Sebastian Pop  <s.pop@samsung.com>
8332
8333         * graphite-isl-ast-to-gimple.c: Fix comment.
8334         * graphite-scop-detection.c (defined_in_loop_p): New.
8335         (canonicalize_loop_closed_ssa): Do not add close phi nodes for SSA
8336         names defined in loop.
8337
8338 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
8339             Sebastian Pop  <s.pop@samsung.com>
8340
8341         * graphite-scop-detection.c (scop_detection::harmful_loop_in_region):
8342         Discard unstructured if-then-else regions.
8343
8344 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
8345             Sebastian Pop  <s.pop@samsung.com>
8346
8347         * graphite-sese-to-poly.c (set_scop_parameter_dim): Remove.
8348         (cleanup_loop_iter_dom): Remove.
8349         (build_loop_iteration_domains): Remove.
8350         (build_scop_context): Remove.
8351         (build_scop_iteration_domain): Remove.
8352         (add_loop_constraints): New.
8353         (build_iteration_domains): New.
8354         (build_poly_scop): Call build_iteration_domains.
8355
8356 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
8357             Sebastian Pop  <s.pop@samsung.com>
8358
8359         * graphite-scop-detection.c
8360         (scop_detection::harmful_loop_in_region): Free dom and loops.
8361         (scop_detection::loop_body_is_valid_scop): Free bbs.
8362
8363 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
8364             Sebastian Pop  <s.pop@samsung.com>
8365
8366         * graphite-scop-detection.c (record_loop_in_sese): New.
8367         (gather_bbs::before_dom_children): Call record_loop_in_sese.
8368         (build_scops): Remove call to build_sese_loop_nests.
8369         * sese.c (sese_record_loop): Remove.
8370         (build_sese_loop_nests): Remove.
8371         (new_sese_info): Remove region->loops.
8372         (free_sese_info): Same.
8373         * sese.h (sese_contains_loop): Same.
8374         (build_sese_loop_nests): Remove.
8375         (sese_contains_loop): Remove.
8376
8377 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
8378             Sebastian Pop  <s.pop@samsung.com>
8379
8380         * graphite-scop-detection.c (loop_is_valid_scop): Renamed
8381         loop_is_valid_in_scop.
8382         (scop_detection::harmful_stmt_in_region): Renamed
8383         harmful_loop_in_region.
8384         Call loop_is_valid_in_scop.
8385
8386 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
8387             Sebastian Pop  <s.pop@samsung.com>
8388
8389         * graphite-isl-ast-to-gimple.c (translate_isl_ast): Also handle
8390         isl_ast_node_mark.
8391
8392 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
8393             Sebastian Pop  <s.pop@samsung.com>
8394
8395         * graphite-poly.c (new_poly_bb): Remove use of PBB_IS_REDUCTION.
8396         * graphite.h (struct poly_bb): Remove field is_reduction.
8397         (PBB_IS_REDUCTION): Remove.
8398
8399 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
8400             Sebastian Pop  <s.pop@samsung.com>
8401
8402         * graphite-dependences.c (constrain_domain): Add call to isl_*_coalesce.
8403         (add_pdr_constraints): Same.
8404         (scop_get_reads): Same.
8405         (scop_get_must_writes): Same.
8406         (scop_get_may_writes): Same.
8407         (scop_get_original_schedule): Same.
8408         (extend_schedule): Same.
8409         (apply_schedule_on_deps): Same.
8410         (carries_deps): Same.
8411         (compute_deps): Same.
8412         (scop_get_dependences): Same.
8413         * graphite-isl-ast-to-gimple.c
8414         (translate_isl_ast_to_gimple::generate_isl_schedule): Same.
8415         * graphite-optimize-isl.c (get_schedule_for_band): Same.
8416         (get_schedule_for_band_list): Same.
8417         (get_schedule_map): Same.
8418         (apply_schedule_map_to_scop): Same.
8419         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
8420         (build_loop_iteration_domains): Same.
8421         (add_condition_to_pbb): Same.
8422         (add_param_constraints): Same.
8423         (pdr_add_memory_accesses): Same.
8424         (pdr_add_data_dimensions): Same.
8425
8426 2016-01-20  Sandra Loosemore  <sandra@codesourcery.com>
8427
8428         * doc/invoke.texi (Instrumentation Options): Clarify -mmpx linking
8429         requirements.
8430
8431 2016-01-20  Sandra Loosemore  <sandra@codesourcery.com>
8432
8433         * common.opt (feliminate-dwarf2-dups): Replace references to
8434         "DWARF 2" with just "DWARF".
8435         * config/ia64/ia64.opt (mdwarf2-asm): Likewise.
8436         * doc/extend.texi: Likewise.
8437         * doc/cpp.texi: Likewise.
8438         * doc/invoke.texi: Likewise.
8439         (Option Summary): Add -gdwarf to list of Debugging Options.
8440         (Debugging Options): Document -gdwarf.
8441         * doc/contrib.texi: Spell "DWARF" like that.
8442
8443 2016-01-21  Jakub Jelinek  <jakub@redhat.com>
8444
8445         * omp-low.c (expand_omp_target): Avoid -Wmaybe-uninitialized
8446         warning.  Fix up formatting.
8447
8448         PR middle-end/67653
8449         * gimplify.c (gimplify_asm_expr): Warn if it is too late to
8450         attempt to mark memory input operand addressable and
8451         call prepare_gimple_addressable in that case.  Don't adjust
8452         input_location for diagnostics, use error_at instead.
8453
8454 2016-01-20  Peter Bergner  <bergner@vnet.ibm.com>
8455
8456         * config/rs6000/ppc-auxv.h: New file.
8457         * config/rs6000/rs6000-builtin.def (cpu_init): Add new builtin.
8458         (cpu_is): Likewise.
8459         (cpu_supports): Likewise.
8460         * config/rs6000/rs6000.c: include "ppc-auxv.h".
8461         (cpu_is_info): New variable.
8462         (cpu_supports_info): Likewise.
8463         (tcb_verification_symbol): Likewise.
8464         (cpu_builtin_p): Likewise.
8465         (cpu_expand_builtin): New function.
8466         (rs6000_expand_ternop_builtin): Add support for CPU builtin functions.
8467         (rs6000_init_builtins): Likewise.
8468         (rs6000_elf_file_end): Emit HWCAP in TCB verification symbol.
8469         * config/rs6000/rs6000.h (TLS_REGNUM): New define.
8470         * configure.ac (gcc_cv_libc_provides_hwcap_in_tcb): New test.
8471         * configure: Regenerate.
8472         * config.in: Likewise.
8473         * doc/extend.texi (PowerPC Built-in Functions): Document
8474         __builtin_cpu_init, __builtin_cpu_is and __builtin_cpu_supports.
8475
8476 2016-01-20  David Edelsohn  <dje.gcc@gmail.com>
8477
8478         PR target/68609
8479         * config/rs6000/rs6000.c (rs6000_emit_swsqrt): Add vector sqrt
8480         domain check.
8481         * config/rs6000/vector.md (sqrt<mode>2): Call rs6000_emit_swsqrt
8482         for V4SFmode.
8483
8484 2016-01-20  Richard Henderson  <rth@redhat.com>
8485
8486         PR bootstrap/69343
8487         PR bootstrap/69339
8488         PR tree-opt/68964
8489         Revert:
8490         * tree.c (tm_define_builtin): New.
8491         (find_tm_vector_type): New.
8492         (build_tm_vector_builtins): New.
8493         (build_common_builtin_nodes): Call it.
8494
8495 2016-01-20  Christophe Lyon  <christophe.lyon@linaro.org>
8496
8497         * doc/sourcebuild.texi (arm_crypto_pragma_ok): Document new entry.
8498         (arm_fp_ok): Likewise.
8499         (arm_fp): Likewise.
8500         (arm_crypto): Likewise.
8501
8502 2016-01-20  Ilya Enkovich  <enkovich.gnu@gmail.com>
8503             Richard Biener  <rguenther@suse.de>
8504
8505         PR tree-optimization/69328
8506         * tree-vect-stmts.c (vect_is_simple_cond): Check compared
8507         vectors have same number of elements.
8508         (vectorizable_condition): Fix masked version recognition.
8509
8510 2016-01-20  Richard Biener  <rguenther@suse.de>
8511
8512         PR tree-optimization/69345
8513         * tree-ssa-sccvn.h (VN_INFO_RANGE_INFO): New inline function.
8514         (VN_INFO_PTR_INFO): Likewise.
8515         * tree-ssa-sccvn.c (set_ssa_val_to): Avoid clearing points-to
8516         info when it is equal between non-dominating SSA names.
8517         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
8518         Make sure to look at original SSA infos.
8519
8520 2016-01-20  Jeff Law  <law@redhat.com>
8521
8522         PR target/25114
8523         * config/m68k/predicates.md (pow2_m1_operand): New predicate
8524         extracted from ...
8525         (reg_or_pow2_m1_operand): Call pow2_m1_operand.
8526         (pc_or_label_operand): New predicate.
8527         * config/m68k/m68k.md: Add new peephole2 patterns for GTU/LEU
8528         tests for small integers that are 2^n - 1.
8529
8530 2016-01-20  Jonathan Wakely  <jwakely@redhat.com>
8531
8532         * doc/invoke.texi (Options Summary): Add '.' after @xref.
8533
8534 2016-01-19  Jeff Law  <law@redhat.com>
8535
8536         PR middle-end/69347
8537         * tree-ssa-threadbackwards.c
8538         (fsm_find_control_statement_thread_paths): Do not try to lookup
8539         FSM paths for SSA_NAMEs appearing in abnormal PHIs.
8540
8541 2016-01-20  Kugan Vivekanandarajah  <kuganv@linaro.org>
8542
8543         * doc/lto.texi: Remove text that says only Gold has linker plugin
8544         support.
8545
8546 2016-01-19  Eric Botcazou  <ebotcazou@adacore.com>
8547
8548         * dwarf2out.c (need_endianity_attribute_p): New inline predicate.
8549         (base_type_die): Add REVERSE parameter and attach DW_AT_endianity to
8550         the DIE accordingly.
8551         (modified_type_die): Add REVERSE parameter and pass it recursively,
8552         as well as to base_type_die.  Adjust presence check accordingly.
8553         (base_type_for_mode): Adjust call to modified_type_die.
8554         (add_type_attribute): Add REVERSE parameter and pass it to
8555         modified_type_die.
8556         (generic_parameter_die): Adjust call to add_type_attribute.
8557         (add_scalar_info): Likewise.
8558         (add_subscript_info): Likewise.
8559         (gen_array_type_die): Likewise.
8560         (gen_descr_array_type_die): Likewise.
8561         (gen_entry_point_die): Likewise.
8562         (gen_enumeration_type_die): Likewise.
8563         (gen_formal_parameter_die): Likewise.
8564         (gen_subprogram_die): Likewise.
8565         (gen_variable_die ): Likewise.
8566         (gen_const_die): Likewise.
8567         (gen_field_die): Likewise.
8568         (gen_pointer_type_die): Likewise.
8569         (gen_reference_type_die): Likewise.
8570         (gen_ptr_to_mbr_type_die): Likewise.
8571         (gen_inheritance_die): Likewise.
8572         (gen_subroutine_type_die): Likewise.
8573         (gen_typedef_die): Likewise.
8574         (force_type_die): Adjust call to modified_type_die.
8575
8576 2016-01-19  Sandra Loosemore  <sandra@codesourcery.com>
8577
8578         * doc/standards.texi: Copy-editing for grammar, markup, and sentence
8579         flow throughout the file.  Fix broken link to Objective-C 2.0
8580         documentation.
8581         * doc/invoke.texi: More copy-editing; fix numerous typos and spelling
8582         errors.
8583
8584 2016-01-19  Wilco Dijkstra  <wdijkstr@arm.com>
8585
8586         * ccmp.c (expand_ccmp_expr_1): Avoid spurious unused warnings.
8587
8588 2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
8589
8590         PR ipa/66223
8591         * ipa-devirt.c (is_cxa_pure_virtual_p): New function.
8592         (maybe_record_node): Record cxa_pure_virtual as the only possible
8593         target if there are not ohter candidates.
8594         (possible_polymorphic_call_target_p): Accept cxa_pure_virtual.
8595
8596 2016-01-19  Richard Biener  <rguenther@suse.de>
8597
8598         * hsa-gen.c (get_memory_order_name): Use MEMMODEL_ constants.
8599         (get_memory_order): Likewise.
8600
8601 2016-01-19  Kirill Yukhin  <kirill.yukhin@intel.com>
8602
8603         * tree-vect-stmts.c (vectorizable_store): Check
8604         rhs vectype.
8605
8606 2016-01-19  David Malcolm  <dmalcolm@redhat.com>
8607
8608         PR jit/68446
8609         * gcc.c (driver::decode_argv): Add call to
8610         init_opts_obstack before init_options_struct.
8611         * opts.c (init_opts_obstack): Remove idempotency.
8612         (init_options_struct): Replace call to init_opts_obstack
8613         with a gcc_assert to verify that it has already been called.
8614         * toplev.c (toplev::main): Add call to init_opts_obstack before
8615         calls to init_options_struct.
8616         (toplev::finalize): Move cleanup of opts_obstack next to
8617         cleanup of save_decoded_options, clearing the latter, and
8618         save_decoded_options_count.
8619
8620 2016-01-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8621
8622         PR target/69135
8623         * config/arm/vfp.md (l<vrint_pattern><su_optab><mode>si2): Set "conds"
8624         attribute to unconditional.  Remove %? from output template.
8625
8626 2015-01-19  Wilco Dijkstra  <wdijkstr@arm.com>
8627             Jiong Wang  <jiong.wang@arm.com>
8628
8629         * ccmp.c (expand_ccmp_expr_1): Cost the instruction sequences
8630         generated from different expand order.
8631
8632 2015-01-19  Wilco Dijkstra  <wdijkstr@arm.com>
8633
8634         * /config/aarch64/aarch64.c (aarch64_if_then_else_costs):
8635         Add support for CCMP costing.
8636
8637 2015-01-19  Wilco Dijkstra  <wdijkstr@arm.com>
8638
8639         * ccmp.c (ccmp_candidate_p): Remove integer-only restriction.
8640         * config/aarch64/aarch64.md (fccmp<mode>): New pattern.
8641         (fccmpe<mode>): Likewise.
8642         (fcmp): Rename to fcmp and globalize pattern.
8643         (fcmpe): Likewise.
8644         * config/aarch64/aarch64.c (aarch64_gen_ccmp_first): Add FP support.
8645         (aarch64_gen_ccmp_next): Add FP support.
8646
8647 2015-01-19  Wilco Dijkstra  <wdijkstr@arm.com>
8648
8649         * target.def (gen_ccmp_first): Update documentation.
8650         (gen_ccmp_next): Likewise.
8651         * doc/tm.texi (gen_ccmp_first): Update documentation.
8652         (gen_ccmp_next): Likewise.
8653         * ccmp.c (expand_ccmp_expr): Extract cmp_code from return value of
8654         expand_ccmp_expr_1.  Improve comments.
8655         * config/aarch64/aarch64.md (ccmp_and): Use if_then_else for ccmp.
8656         (ccmp_ior<mode>): Remove pattern.
8657         (cmp<mode>): Remove expand.
8658         (cmp): Globalize pattern.
8659         (cstorecc4): Use cc_register.
8660         (mov<mode>cc): Remove ccmp_cc_register check.
8661         * config/aarch64/aarch64.c (aarch64_get_condition_code_1):
8662         Simplify after removal of CC_DNE/* modes.
8663         (aarch64_ccmp_mode_to_code): Remove.
8664         (aarch64_print_operand): Remove 'K' case.  Merge 'm' and 'M' cases.
8665         In 'k' case use integer as condition.
8666         (aarch64_nzcv_codes): Remove inverted cases.
8667         (aarch64_code_to_ccmode): Remove.
8668         (aarch64_gen_ccmp_first): Use cmp pattern directly.  Return the correct
8669         comparison with CC register to be used in folowing CCMP/branch/CSEL.
8670         (aarch64_gen_ccmp_next): Use previous comparison and mode in CCMP
8671         pattern.  Return the comparison with CC register.  Invert conditions
8672         when bitcode is OR.
8673         * config/aarch64/aarch64-modes.def: Remove CC_DNE/* modes.
8674         * config/aarch64/predicates.md (ccmp_cc_register): Remove.
8675
8676 2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
8677
8678         * cgraphunit.c (cgraph_node::reset): Clear thunk info and
8679         instrumented_version.
8680
8681 2016-01-19  Richard Biener  <rguenther@suse.de>
8682
8683         PR tree-optimization/69336
8684         * tree-ssa-scopedtables.c (avail_expr_hash): Handle all
8685         handled components with get_ref_base_and_extent.
8686         (equal_mem_array_ref_p): Adjust.
8687
8688 2016-01-19  Jakub Jelinek  <jakub@redhat.com>
8689
8690         PR debug/65779
8691         * shrink-wrap.c: Include valtrack.h.
8692         (move_insn_for_shrink_wrap): Add DEBUG argument.  If
8693         MAY_HAVE_DEBUG_INSNS, call dead_debug_add on DEBUG_INSNs
8694         in between insn and where it will be moved to.  Call
8695         dead_debug_insert_temp.
8696         (prepare_shrink_wrap): Adjust caller.  Call dead_debug_local_init
8697         first and dead_debug_local_finish at the end.
8698         For uses and defs bitmap, handle all regs in between REGNO and
8699         END_REGNO, not just the first one.
8700
8701 2016-01-19  Richard Biener  <rguenther@suse.de>
8702
8703         PR tree-optimization/69352
8704         * tree-ssa-scopedtables.c (avail_expr_hash): Check for size == -1.
8705         (equal_mem_array_ref_p): Constrain size and max size properly.
8706         Compare the reverse flag.
8707
8708 2016-01-19  Bernd Schmidt  <bschmidt@redhat.com>
8709
8710         * ira.c (ira): Update regstat data if we deleted insns.
8711
8712 2016-01-19  Jakub Jelinek  <jakub@redhat.com>
8713
8714         PR rtl-optimization/68955
8715         PR rtl-optimization/64557
8716         * dse.c (record_store, check_mem_read_rtx): Don't call get_addr
8717         here.  Fix up formatting.
8718         * alias.c (get_addr): Handle VALUE +/- CONST_SCALAR_INT_P.
8719
8720 2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
8721
8722         PR lto/69133
8723         * cgraphunit.c (cgraph_node::expand_thunk): When forcing gimple
8724         assume that the node has body.
8725         * cgraph.c (cgraph_node::get_untransformed_body): Use gimple_body_p
8726         check.
8727
8728 2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
8729
8730         * lto-streamer-out.c (lto_output): Do not stream instrumentation
8731         thunks.
8732
8733 2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
8734
8735         * symtab.c (symtab_node::asm_name): Do not call printable name directly.
8736         (symtab_node::name): Report name as unnamed if DECL_NAME is not set.
8737
8738 2016-01-19  Martin Jambor  <mjambor@suse.cz>
8739             Martin Liska  <mliska@suse.cz>
8740             Michael Matz  <matz@suse.de>
8741
8742         * Makefile.in (OBJS): Add new source files.
8743         (GTFILES): Add hsa.c.
8744         * common.opt (disable_hsa): New variable.
8745         (-Whsa): New warning.
8746         * config.in (ENABLE_HSA): New.
8747         * configure.ac: Treat hsa differently from other accelerators.
8748         (OFFLOAD_TARGETS): Define ENABLE_OFFLOADING according to
8749         $enable_offloading.
8750         (ENABLE_HSA): Define ENABLE_HSA according to $enable_hsa.
8751         * doc/install.texi (Configuration): Document --with-hsa-runtime,
8752         --with-hsa-runtime-include, --with-hsa-runtime-lib and
8753         --with-hsa-kmt-lib.
8754         * doc/invoke.texi (-Whsa): Document.
8755         (hsa-gen-debug-stores): Likewise.
8756         * lto-wrapper.c (compile_images_for_offload_targets): Do not attempt
8757         to invoke offload compiler for hsa acclerator.
8758         * opts.c (common_handle_option): Determine whether HSA offloading
8759         should be performed.
8760         * params.def (PARAM_HSA_GEN_DEBUG_STORES): New parameter.
8761         * builtin-types.def (BT_FN_VOID_UINT_PTR_INT_PTR): New.
8762         (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_INT_INT): Removed.
8763         (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_PTR): New.
8764         * gimple-low.c (lower_stmt): Also handle GIMPLE_OMP_GRID_BODY.
8765         * gimple-pretty-print.c (dump_gimple_omp_for): Also handle
8766         GF_OMP_FOR_KIND_GRID_LOOP.
8767         (dump_gimple_omp_block): Also handle GIMPLE_OMP_GRID_BODY.
8768         (pp_gimple_stmt_1): Likewise.
8769         * gimple-walk.c (walk_gimple_stmt): Likewise.
8770         * gimple.c (gimple_build_omp_grid_body): New function.
8771         (gimple_copy): Also handle GIMPLE_OMP_GRID_BODY.
8772         * gimple.def (GIMPLE_OMP_GRID_BODY): New.
8773         * gimple.h (enum gf_mask): Added GF_OMP_PARALLEL_GRID_PHONY,
8774         GF_OMP_FOR_KIND_GRID_LOOP, GF_OMP_FOR_GRID_PHONY and
8775         GF_OMP_TEAMS_GRID_PHONY.
8776         (gimple_statement_omp_single_layout): Updated comments.
8777         (gimple_build_omp_grid_body): New function.
8778         (gimple_has_substatements): Also handle GIMPLE_OMP_GRID_BODY.
8779         (gimple_omp_for_grid_phony): New function.
8780         (gimple_omp_for_set_grid_phony): Likewise.
8781         (gimple_omp_parallel_grid_phony): Likewise.
8782         (gimple_omp_parallel_set_grid_phony): Likewise.
8783         (gimple_omp_teams_grid_phony): Likewise.
8784         (gimple_omp_teams_set_grid_phony): Likewise.
8785         (gimple_return_set_retbnd): Also handle GIMPLE_OMP_GRID_BODY.
8786         * omp-builtins.def (BUILT_IN_GOMP_OFFLOAD_REGISTER): New.
8787         (BUILT_IN_GOMP_OFFLOAD_UNREGISTER): Likewise.
8788         (BUILT_IN_GOMP_TARGET): Updated type.
8789         * omp-low.c: Include symbol-summary.h, hsa.h and params.h.
8790         (adjust_for_condition): New function.
8791         (get_omp_for_step_from_incr): Likewise.
8792         (extract_omp_for_data): Moved parts to adjust_for_condition and
8793         get_omp_for_step_from_incr.
8794         (build_outer_var_ref): Handle GIMPLE_OMP_GRID_BODY.
8795         (fixup_child_record_type): Bail out if receiver_decl is NULL.
8796         (scan_sharing_clauses): Handle OMP_CLAUSE__GRIDDIM_.
8797         (scan_omp_parallel): Do not create child functions for phony
8798         constructs.
8799         (check_omp_nesting_restrictions): Handle GIMPLE_OMP_GRID_BODY.
8800         (scan_omp_1_op): Checking assert we are not remapping to
8801         ERROR_MARK.  Also also handle GIMPLE_OMP_GRID_BODY.
8802         (parallel_needs_hsa_kernel_p): New function.
8803         (expand_parallel_call): Register apprpriate parallel child
8804         functions as HSA kernels.
8805         (grid_launch_attributes_trees): New type.
8806         (grid_attr_trees): New variable.
8807         (grid_create_kernel_launch_attr_types): New function.
8808         (grid_insert_store_range_dim): Likewise.
8809         (grid_get_kernel_launch_attributes): Likewise.
8810         (get_target_argument_identifier_1): Likewise.
8811         (get_target_argument_identifier): Likewise.
8812         (get_target_argument_value): Likewise.
8813         (push_target_argument_according_to_value): Likewise.
8814         (get_target_arguments): Likewise.
8815         (expand_omp_target): Call get_target_arguments instead of looking
8816         up for teams and thread limit.
8817         (grid_expand_omp_for_loop): New function.
8818         (grid_arg_decl_map): New type.
8819         (grid_remap_kernel_arg_accesses): New function.
8820         (grid_expand_target_kernel_body): New function.
8821         (expand_omp): Call it.
8822         (lower_omp_for): Do not emit phony constructs.
8823         (lower_omp_taskreg): Do not emit phony constructs but create for them
8824         a temporary variable receiver_decl.
8825         (lower_omp_taskreg): Do not emit phony constructs.
8826         (lower_omp_teams): Likewise.
8827         (lower_omp_grid_body): New function.
8828         (lower_omp_1): Call it.
8829         (grid_reg_assignment_to_local_var_p): New function.
8830         (grid_seq_only_contains_local_assignments): Likewise.
8831         (grid_find_single_omp_among_assignments_1): Likewise.
8832         (grid_find_single_omp_among_assignments): Likewise.
8833         (grid_find_ungridifiable_statement): Likewise.
8834         (grid_target_follows_gridifiable_pattern): Likewise.
8835         (grid_remap_prebody_decls): Likewise.
8836         (grid_copy_leading_local_assignments): Likewise.
8837         (grid_process_kernel_body_copy): Likewise.
8838         (grid_attempt_target_gridification): Likewise.
8839         (grid_gridify_all_targets_stmt): Likewise.
8840         (grid_gridify_all_targets): Likewise.
8841         (execute_lower_omp): Call grid_gridify_all_targets.
8842         (make_gimple_omp_edges): Handle GIMPLE_OMP_GRID_BODY.
8843         * tree-core.h (omp_clause_code): Added OMP_CLAUSE__GRIDDIM_.
8844         (tree_omp_clause): Added union field dimension.
8845         * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE__GRIDDIM_.
8846         * tree.c (omp_clause_num_ops): Added number of arguments of
8847         OMP_CLAUSE__GRIDDIM_.
8848         (omp_clause_code_name): Added name of OMP_CLAUSE__GRIDDIM_.
8849         (walk_tree_1): Handle OMP_CLAUSE__GRIDDIM_.
8850         * tree.h (OMP_CLAUSE_GRIDDIM_DIMENSION): New.
8851         (OMP_CLAUSE_SET_GRIDDIM_DIMENSION): Likewise.
8852         (OMP_CLAUSE_GRIDDIM_SIZE): Likewise.
8853         (OMP_CLAUSE_GRIDDIM_GROUP): Likewise.
8854         * passes.def: Schedule pass_ipa_hsa and pass_gen_hsail.
8855         * tree-pass.h (make_pass_gen_hsail): Declare.
8856         (make_pass_ipa_hsa): Likewise.
8857         * ipa-hsa.c: New file.
8858         * lto-section-in.c (lto_section_name): Add hsa section name.
8859         * lto-streamer.h (lto_section_type): Add hsa section.
8860         * timevar.def (TV_IPA_HSA): New.
8861         * hsa-brig-format.h: New file.
8862         * hsa-brig.c: New file.
8863         * hsa-dump.c: Likewise.
8864         * hsa-gen.c: Likewise.
8865         * hsa.c: Likewise.
8866         * hsa.h: Likewise.
8867         * toplev.c (compile_file): Call hsa_output_brig.
8868         * hsa-regalloc.c: New file.
8869
8870 2016-01-18  Jeff Law  <law@redhat.com>
8871
8872         PR tree-optimization/69320
8873         * tree-ssa-dom.c (record_edge_info): For comparisons against a boolean
8874         ranged object, do nothing if the RHS constant is not [0..1].
8875         (optimize_stmt): Comparing a boolean ranged object against a
8876         constant outside [0..1] results in a compile-time constant.
8877
8878         * tree-ssanames.c (ssa_name_has_boolean_range): Remove unnecessary
8879         test.
8880
8881 2016-01-18  Sandra Loosemore  <sandra@codesourcery.com>
8882
8883         * doc/invoke.texi (Invoking GCC): Add new section to menu.
8884         (Option Summary): Update to reflect new section and moved options.
8885         (C++ Dialect Options): Move -fstats to new section.
8886         (Debugging Options): Move all dump, statistics, and other GCC
8887         developer options to new section.  Rewrite section introduction
8888         and re-order remaining options to put the more basic ones first.
8889         (Optimization Options): Move -fira-verbose and -flto-report* to
8890         new section.
8891         (Developer Options): New section incorporating moved options.
8892         * doc/cppopts.texi (-dM): Update cross-reference.
8893
8894 2016-01-18  Richard Henderson  <rth@redhat.com>
8895
8896         PR target/69176
8897         * config/aarch64/aarch64.md (add<GPI>3): Move long immediate
8898         operands to pseudo only if CSE is expected.  Split long immediate
8899         operands only after reload, and for the stack pointer.
8900         (*add<GPI>3_pluslong): Remove.
8901         (*addsi3_aarch64, *adddi3_aarch64): Merge into...
8902         (*add<GPI>3_aarch64): ... here.  Add r/rk/Upl alternative.
8903         (*addsi3_aarch64_uxtw): Add r/rk/Upl alternative.
8904         (*add<GPI>3 peepholes): New.
8905         (*add<GPI>3 splitters): New.
8906         * config/aarch64/constraints.md (Upl): New.
8907         * config/aarch64/predicates.md (aarch64_pluslong_strict_immedate): New.
8908
8909 2016-01-18  Richard Biener  <rguenther@suse.de>
8910
8911         PR tree-optimization/69297
8912         * tree-vect-slp.c (vect_bb_slp_scalar_cost): Count each scalar
8913         stmt at most once.
8914         (vect_bb_vectorization_profitable_p): Clear visited flag again.
8915
8916 2016-01-18  Yuri Rumyantsev  <ysrumyan@gmail.com>
8917
8918         PR middle-end/68542
8919         * fold-const.c (fold_binary_op_with_conditional_arg): Bail out for case
8920         of mixind vector and scalar types.
8921         (fold_relational_const): Add handling of vector
8922         comparison with boolean result.
8923         * tree-cfg.c (verify_gimple_comparison): Add argument CODE, allow
8924         comparison of vector operands with boolean result for EQ/NE only.
8925         (verify_gimple_assign_binary): Adjust call for verify_gimple_comparison.
8926         (verify_gimple_cond): Likewise.
8927         * tree-vrp.c (extract_code_and_val_from_cond_with_ops): Modify check on
8928         valid type of VAL.
8929
8930 2016-01-18  Joseph Myers  <joseph@codesourcery.com>
8931
8932         * config/mips/mips.h (ISA_HAS_PAIRED_SINGLE): Require
8933         !TARGET_OCTEON.
8934
8935 2016-01-18  Richard Biener  <rguenther@suse.de>
8936
8937         PR middle-end/69308
8938         * gimple.c (gimple_could_trap_p_1): Handle GIMPLE_COND.
8939
8940 2016-01-18  Tom de Vries  <tom@codesourcery.com>
8941
8942         * passes.def: Add pass_parallelize_loops to pass_oacc_kernels.
8943
8944 2016-01-18  Tom de Vries  <tom@codesourcery.com>
8945
8946         * omp-low.c (set_oacc_fn_attrib): Make extern.
8947         * omp-low.h (set_oacc_fn_attrib): Declare.
8948         * tree-parloops.c (struct reduction_info): Add reduc_addr field.
8949         (create_call_for_reduction_1): Handle case that reduc_addr is non-NULL.
8950         (create_parallel_loop, gen_parallel_loop, try_create_reduction_list):
8951         Add and handle function parameter oacc_kernels_p.
8952         (find_reduc_addr, get_omp_data_i_param): New function.
8953         (ref_conflicts_with_region, oacc_entry_exit_ok_1)
8954         (oacc_entry_exit_single_gang, oacc_entry_exit_ok): New function.
8955         (parallelize_loops): Add and handle function parameter oacc_kernels_p.
8956         Calculate dominance info.  Skip loops that are not in a kernels region
8957         in oacc_kernels_p mode.  Skip inner loops of parallelized loops.
8958         (pass_parallelize_loops::execute): Call parallelize_loops with
8959         oacc_kernels_p argument.
8960         (pass_parallelize_loops::clone, pass_parallelize_loops::set_pass_param):
8961         New member function.
8962         (pass_parallelize_loops::bool oacc_kernels_p): New member var.
8963         * passes.def: Add argument to pass_parallelize_loops instantation.
8964
8965 2016-01-18  Tom de Vries  <tom@codesourcery.com>
8966
8967         * tree-parloops.c (pass_parallelize_loops::execute): Allow
8968         pass_parallelize_loops to be run outside the loop pipeline.
8969
8970 2016-01-18  Alan Lawrence  <alan.lawrence@arm.com>
8971
8972         * tree-scalar-evolution.c (follow_copies_to_constant): New.
8973         (analyze_initial_condition, analyze_scalar_evolution_1): Call previous.
8974
8975 2016-01-18  Alan Lawrence  <alan.lawrence@arm.com>
8976
8977         PR target/63679
8978         * tree-ssa-scopedtables.c (avail_expr_hash): Hash MEM_REF and ARRAY_REF
8979         using get_ref_base_and_extent.
8980         (equal_mem_array_ref_p): New.
8981         (hashable_expr_equal_p): Add call to previous.
8982
8983 2016-01-18  Alan Lawrence  <alan.lawrence@arm.com>
8984
8985         PR target/63679
8986         * tree-sra.c (disqualified_constants, constant_decl_p): New.
8987         (sra_initialize): Allocate disqualified_constants.
8988         (sra_deinitialize): Free disqualified_constants.
8989         (disqualify_candidate): Update disqualified_constants when appropriate.
8990         (create_access): Scan for constant-pool entries as we go along.
8991         (scalarizable_type_p): Add check against type_contains_placeholder_p.
8992         (maybe_add_sra_candidate): Allow constant-pool entries.
8993         (load_assign_lhs_subreplacements): Bind debug for constant pool vars.
8994         (initialize_constant_pool_replacements): New.
8995         (sra_modify_assign): Avoid mangling assignments created by previous,
8996         and don't generate writes into constant pool.
8997         (sra_modify_function_body): Call initialize_constant_pool_replacements.
8998
8999 2016-01-18  Ilya Enkovich  <enkovich.gnu@gmail.com>
9000
9001         * config/i386/i386.c (scalar_to_vector_candidate_p): Support
9002         andnot instruction.
9003         (scalar_chain::convert_op): Likewise.
9004         * config/i386/i386.md (*andndi3_doubleword): New.
9005
9006 2016-01-18  Richard Biener  <rguenther@suse.de>
9007
9008         PR tree-optimization/69170
9009         * tree-vect-slp.c (vect_build_slp_tree): Verify we are not
9010         building a vector from scalar results of a pattern stmt.
9011
9012 2016-01-18  Jakub Jelinek  <jakub@redhat.com>
9013
9014         * haifa-sched.c (autopref_multipass_init): Work around
9015         -Wmaybe-uninitialized warning.
9016
9017 2016-01-18  Thomas Preud'homme  <thomas.preudhomme@arm.com>
9018
9019         * config/arm/arm.c (thumb1_reorg): Check that the comparison is
9020         against the constant 0.
9021
9022 2016-01-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
9023
9024         PR tree-optimization/68799
9025         * gimple-ssa-strength-reduction.c (create_phi_basis): Directly
9026         look up phi candidates in the statement-candidate map.
9027         (phi_add_costs): Likewise.
9028         (record_phi_increments): Likewise.
9029         (phi_incr_cost): Likewise.
9030         (ncd_with_phi): Likewise.
9031         (all_phi_incrs_profitable): Likewise.
9032
9033 2016-01-17  Jakub Jelinek  <jakub@redhat.com>
9034
9035         * omp-low.c (mark_loops_in_oacc_kernels_region): Work around
9036         -Wmaybe-uninitialized warning.
9037
9038 2016-01-16  Sandra Loosemore  <sandra@codesourcery.com>
9039
9040         * doc/invoke.texi (Invoking GCC): Add new section to menu.
9041         (Option Summary): Update to reflect new section and moved options.
9042         (C++ Dialect Options): Move -fvtable-verify and related options.
9043         (Debugging Options): Move Sanitizer, Pointer Bounds Checker,
9044         and profiling-related options.
9045         (Optimization Options): Move profile generation options and
9046         -fstack-protector and related options.
9047         (Instrumentation Options): New section incorporating moved options.
9048         (Code Generation Options): Move -finstrument-functions and
9049         related options, -fstack-check, -fstack-limit*, and -fbounds-check.
9050
9051 2016-01-16  Tom de Vries  <tom@codesourcery.com>
9052
9053         * passes.def: Move pass_expand_omp_ssa out of pass_parallelize_loops.
9054
9055 2016-01-16  Tom de Vries  <tom@codesourcery.com>
9056
9057         * omp-low.c (expand_omp_atomic_fetch_op):  Release defs of update stmt.
9058
9059 2016-01-16  Richard Sandiford  <richard.sandiford@arm.com>
9060
9061         * hash-table.h (hash_table::empty): Turn into an inline wrapper
9062         that checks whether the table is already empty.  Rename the
9063         original implementation to...
9064         (hash_table::empty_slot): ...this new private function.
9065
9066 2016-01-15  David Malcolm  <dmalcolm@redhat.com>
9067
9068         PR diagnostic/68899
9069         * diagnostic-show-locus.c (layout::print_source_line): Move x
9070         offset of line until after call to
9071         get_line_width_without_trailing_whitespace.
9072
9073 2016-01-15  Jeff Law  <law@redhat.com>
9074
9075         PR tree-optimization/69270
9076         * tree-ssanames.c (ssa_name_has_boolean_range): Moved here from
9077         tree-ssa-dom.c.  Improve test for [0..1] ranve from VRP.
9078         * tree-ssa-dom.c (ssa_name_has_boolean_range): Remove.
9079         * tree-ssanames.h (ssa_name_has_boolean_range): Prototype.
9080         * tree-ssa-uncprop.c (associate_equivalences_with_edges): Use
9081         ssa_name_has_boolean_range and constant_boolean_node.
9082
9083 2016-01-15  Vladimir Makarov  <vmakarov@redhat.com>
9084
9085         PR rtl-optimization/69030
9086         * lra-spills.c (remove_pseudos): Check nrefs and make the function
9087         returning bool.
9088         (spill_pseudos): Delete debug insn for dead pseudo.
9089         (lra_spill): Initiate spill_hard_reg and slots memory separately.
9090
9091 2016-01-15  Jiong Wang  <jiong.wang@arm.com>
9092
9093         * config/aarch64/aarch64-builtins.c (aarch64_types_unopus_qualifiers):
9094         New.
9095         (TYPES_UNOPUS): Likewise.
9096         * config/aarch64/aarch64-simd-builtins.def (lbtruncuv2sf): Correct
9097         builtin type, from UNOP to UNOPUS.
9098         (lbtruncuv4sf): Likewise.
9099         (lbtruncuv2df): Likewise.
9100         (lrounduv2sf): Likewise.
9101         (lrounduv4sf): Likewise.
9102         (lrounduv2df): Likewise.
9103         (lroundusf): Likewise.
9104         (lroundusf): Likewise.
9105         (lceiluv2sf): Likewise.
9106         (lceiluv4sf): Likewise.
9107         (lceiluv2df): Likewise.
9108         (lceilusf): Likewise.
9109         (lceiludf): Likewise.
9110         (lflooruv2sf): Likewise.
9111         (lflooruv4sf): Likewise.
9112         (lflooruv2df): Likewise.
9113         (lfloorusf): Likewise.
9114         (lfloorudf): Likewise.
9115         (lfrintnuv2sf): Likewise.
9116         (lfrintnuv4sf): Likewise.
9117         (lfrintnuv2df): Likewise.
9118         (lfrintnusf): Likewise.
9119         (lfrintnudf): Likewise.
9120         * config/aarch64/arm_neon.h (vcvt_u32_f32): Remove unncessary type
9121         conversion.
9122         (vcvtq_u32_f32): Likewise.
9123         (vcvtq_u64_f64): Likewise.
9124         (vcvta_u32_f32): Likewise.
9125         (vcvtaq_u32_f32): Likewise.
9126         (vcvtaq_u64_f64): Likewise.
9127         (vcvtm_u32_f32): Likewise.
9128         (vcvtmq_u32_f32): Likewise.
9129         (vcvtmq_u64_f64): Likewise.
9130         (vcvtn_u32_f32): Likwise.
9131         (vcvtnq_u32_f32): Likewise.
9132         (vcvtnq_u64_f64): Likewise.
9133         (vcvtp_u32_f32): Likewise.
9134         (vcvtpq_u32_f32): Likewise.
9135         (vcvtpq_u64_f64): Likewise.
9136         (vcvtmd_u64_f64): Likewise.
9137         (vcvtms_u32_f32): Likewise.
9138         (vcvtad_u64_f64): Likewise.
9139         (vcvtas_u32_f32): Likewise.
9140         (vcvtnd_u64_f64): Likewise.
9141         (vcvtns_u32_f32): Likewise.
9142         (vcvtpd_u64_f64): Likewise.
9143         (vcvtps_u32_f32): Likewise.
9144
9145 2016-01-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9146
9147         * config/aarch64/aarch64.c (aarch64_if_then_else_costs): Handle
9148         CSEL of zero_extended registers.
9149
9150 2016-01-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9151
9152         * config/aarch64/aarch64.c (aarch64_rtx_costs, COMPARE case):
9153         Handle COMPARE of ZERO_EXTRACT against zero form of TST-immediate.
9154
9155 2016-01-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9156
9157         * config/aarch64/aarch64.c (aarch64_process_one_target_attr): Return
9158         false when argument string is not found in the attributes table
9159         at all.
9160
9161 2016-01-15  David Edelsohn  <dje.gcc@gmail.com>
9162
9163         PR target/68609
9164         * config/rs6000/rs6000.c (rs6000_emit_msub): Delete.
9165         (rs6000_emit_swsqrt): Convert to Goldschmidt's Algorithm
9166         * config/rs6000/rs6000.md (sqrt<mode>2): Limit swsqrt to high
9167         precision estimate.
9168
9169 2016-01-15  Richard Biener  <rguenther@suse.de>
9170
9171         PR tree-optimization/66856
9172         * tree-vect-loop.c (vect_transform_loop): Free SLP instances here.
9173         * tree-vect-slp.c (vect_free_slp_tree): Decrement stmt reference count.
9174         (vect_create_new_slp_node): Increment stmt reference count.
9175         (vect_get_and_check_slp_defs): Make sure stmts are nor already in
9176         an SLP tree before swapping operands.
9177         (vect_build_slp_tree): Likewise.
9178         (destroy_bb_vec_info): Free stmt info after SLP instances.
9179         * tree-vect-stmts.c (new_stmt_vec_info): Initialize reference count.
9180         * tree-vectorizer.h (struct _stmt_vec_info): Add num_slp_uses field.
9181         (STMT_VINFO_NUM_SLP_USES): New macro.
9182
9183 2016-01-15  Richard Biener  <rguenther@suse.de>
9184
9185         PR debug/69137
9186         * dwarf2out.c (add_linkage_name_raw): New function split out from ...
9187         (add_linkage_name): ... here.
9188         (gen_typedef_die): Use add_linkage_name_raw instead of
9189         add_linkage_attr to delay DECL_ASSEMBLER_NAME computation
9190         if necessary.
9191
9192 2016-01-15  Cesar Philippidis  <cesar@codesourcery.com>
9193
9194         * gimplify.c (oacc_default_clause): Decode reference and pointer
9195         types for both kernels and parallel regions.
9196
9197 2016-01-15  Richard Sandiford  <richard.sandiford@arm.com>
9198
9199         PR middle-end/69246
9200         * calls.c (emit_call_1): Force n_popped to zero for sibcalls.
9201
9202 2016-01-15  Ilya Enkovich  <enkovich.gnu@gmail.com>
9203
9204         * config/i386/i386.c (scalar_chain::compute_convert_gain): Fix typo.
9205         (convert_scalars_to_vector): Likewise.
9206
9207 2016-01-15  Jonathan Wakely  <jwakely@redhat.com>
9208
9209         * doc/extend.texi (Type Traits): Fix grammar.
9210
9211 2016-01-15  Martin Jambor  <mjambor@suse.cz>
9212
9213         * tree-inline.c (remap_decl): Use existing dclarations if
9214         remapping a type and prevent_decl_creation_for_types.
9215         (replace_locals_stmt): Do an initial remapping of non-VLA typed
9216         decls first.  Do real remapping with
9217         prevent_decl_creation_for_types set.
9218         * tree-inline.h (copy_body_data): New field
9219         prevent_decl_creation_for_types, moved remap_var_for_cilk to avoid
9220         padding.
9221
9222 2016-01-15  Dominik Vogt  <vogt@linux.vnet.ibm.com>
9223
9224         * config/s390/s390.opt (mmvcle): More verbose help text.
9225
9226 2016-01-15  Dominik Vogt  <vogt@linux.vnet.ibm.com>
9227
9228         * config/s390/s390.opt: Add period to -mzvector option text.
9229
9230 2016-01-15  Richard Biener  <rguenther@suse.de>
9231
9232         PR tree-optimization/68961
9233         * tree-vect-slp.c (vect_analyze_slp_cost_1): Consider cost
9234         of invariants in stores again.
9235
9236 2016-01-15  Sebastian Huber  <sebastian.huber@embedded-brains.de>
9237
9238         * config/arm/t-rtems: Add cortex-m7/fpv5-d16 multilib.
9239
9240 2016-01-15  Ilya Enkovich  <enkovich.gnu@gmail.com>
9241
9242         * config/i386/i386.c (ix86_expand_branch): Don't split
9243         DI mode xor instruction to SI mode.
9244
9245 2016-01-15  Jan Hubicka  <hubicka@ucw.cz>
9246
9247         PR ipa/68148
9248         * ipa-icf.c (sem_function::merge): Virtual functions may become
9249         reachable even if they address is not taken and there are no
9250         idrect calls.
9251
9252 2016-01-15  Jan Hubicka  <hubicka@ucw.cz>
9253
9254         * lto-streamer-out.c (subtract_estimated_size): New function.
9255         (get_symbol_initial_value): Use it.
9256
9257 2016-01-15  Christian Bruel  <christian.bruel@st.com>
9258
9259         PR target/65837
9260         * config/arm/arm-builtins.c (ARM_BUILTIN_CRYPTO_BASE): New enum tag.
9261         (arm_init_neon_builtins_internal): Rename arm_init_neon_builtins,
9262         (arm_init_crypto_builtins_internal): Rename arm_init_crypto_builtins.
9263         use add_builtin_function_ext_scope instead of add_builtin_function.
9264         (neon_set_p, neon_crypto_set_p): Remove.
9265         (arm_init_builtins): Always call arm_init_neon_builtins and
9266         arm_init_crypto_builtins.
9267         (arm_expand_builtin): Check that builtins are allowed for the arch.
9268         * config/arm/arm-protos.h (arm_init_neon_builtins): Remove prototype.
9269         * config/arm/arm.c (arm_valid_target_attribute_tree): Remove
9270         arm_init_neon_builtins call.
9271
9272 2016-01-15  Richard Biener  <rguenther@suse.de>
9273
9274         PR tree-optimization/69117
9275         * tree-ssa-sccvn.h (struct vn_ssa_aux): Add info member.
9276         * tree-ssa-sccvn.c (set_ssa_val_to): Save and adjust SSA name info
9277         of the leader conservatively.
9278         (free_scc_vn): Restore original SSA name infos.
9279
9280 2016-01-14  Jeff Law  <law@redhat.com>
9281
9282         PR tree-optimization/69270
9283         * tree-ssa-dom.c (ssa_name_has_boolean_range): If the type has a
9284         single bit of precision, verify it's also unsigned.
9285         (record_edge_info): Use constant_boolean_node rather than fold_convert
9286         to convert boolean_true/boolean_false to the right type.
9287
9288 2016-01-14  Richard Henderson  <rth@redhat.com>
9289
9290         PR rtl-opt/69014
9291         * loop-doloop.c (record_reg_sets): New.
9292         (doloop_optimize): Reject the transform if the sequence
9293         clobbers registers live at the end of the loop block.
9294         (doloop_optimize_loops): Enable df_live if needed.
9295
9296 2016-01-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
9297
9298         * config/rs6000/rs6000-builtin.def: Revert 2016-01-13 change.
9299         * gcc/config/rs6000/rs6000.c: Likewise.
9300         * gcc/config/rs6000/rs6000.h: Likewise.
9301         * gcc/config/rs6000/rs6000.md: Likewise.
9302         * gcc/doc/extend.texi: Likewsie.
9303
9304 2016-01-14  Jeff Law  <law@redhat.com>
9305
9306         * tree-ssa-dom.c (ssa_name_has_boolean_range): Fix comment
9307         typo.
9308
9309 2016-01-14  Richard Henderson  <rth@redhat.com>
9310
9311         PR c/69272
9312         PR tree-opt/68964
9313         * trans-mem.c (tm_log_emit_stmt): Fix unit size to bit size.
9314         * tree.c (build_tm_vector_builtins): Use builtin_decl_explicit_p
9315         instead of builtin_decl_declared_p to test for declaration.
9316
9317 2016-01-14  Nicklas Bo Jensen  <nbjensen@gmail.com>
9318
9319         * doc/loop.texi (Loop Analysis and Representation): Document
9320         loop_depth function.
9321
9322 2016-01-14  Tom de Vries  <tom@codesourcery.com>
9323
9324         PR tree-optimization/68773
9325         * omp-low.c (expand_omp_target): Don't set force_output.
9326         * varpool.c (varpool_node::get_create): Same.
9327         * lto-cgraph.c (input_offload_tables): Mark entries in offload_vars and
9328         offload_funcs with force_output.
9329
9330 2016-01-14  Jakub Jelinek  <jakub@redhat.com>
9331
9332         PR debug/69244
9333         * lra-eliminations.c (move_plus_up): Don't change anything if either
9334         the outer or inner subreg mode is not MODE_INT.
9335         * dwarf2out.c (mem_loc_descriptor): For SUBREG, if outer mode is
9336         integral <= DWARF2_ADDR_SIZE, convert to untyped afterwards.
9337
9338 2016-01-14  Alan Lawrence  <alan.lawrence@arm.com>
9339
9340         * doc/md.texi (reduc_smin_@var{m}, reduc_smax_@var{m},
9341         reduc_umin_@var{m}, reduc_umax_@var{m}, reduc_splus_@var{m},
9342         reduc_uplus_@var{m}): Remove.
9343         * expr.c (expand_expr_real_2): Remove expansion path for
9344         reduc_[us](min|max|plus) optabs.
9345         * optabs-tree.c (scalar_reduc_to_vector): Remove.
9346         * optabs-tree.h (scalar_reduc_to_vector): Remove.
9347         * optabs.def (reduc_smax_optab, reduc_smin_optab, reduc_splus_optab,
9348         reduc_umax_optab, reduc_umin_optab, reduc_uplus_optab): Remove.
9349         * tree-vect-loop.c (vectorizable_reduction): Remove test for
9350         reduc_[us](min|max|plus) optabs.
9351
9352 2016-01-14  Alan Lawrence  <alan.lawrence@arm.com>
9353
9354         * config/mips/mips-ps-3d.md (reduc_splus_v2sf): Remove.
9355         (reduc_plus_scal_v2sf): New.
9356         (reduc_smax_v2sf): Rename to...
9357         (reduc_smax_scal_v2sf): ...here, make result SFmode, add vec_extract.
9358         (reduc_smin_v2sf): Rename to...
9359         (reduc_smin_scal_v2sf): ...here, make result SFmode, add vec_extract.
9360
9361 2016-01-14  Jan Hubicka  <hubicka@ucw.cz>
9362
9363         * alias.c (compare_base_symbol_refs): New function.
9364         (rtx_equal_for_memref_p, base_alias_check, memrefs_conflict_p): Use
9365         it.
9366
9367 2016-01-14  Jakub Jelinek  <jakub@redhat.com>
9368
9369         PR middle-end/68146
9370         PR tree-optimization/69155
9371         * tree-complex.c: Include cfganal.h.
9372         (phis_to_revisit): New variable.
9373         (extract_component): Add phiarg_p argument.  Assert that returned
9374         SSA_NAME has non-NULL SSA_NAME_DEF_STMT unless phiarg_p is true.
9375         (update_phi_components): Partly rewrite to use loop over real/imag
9376         components instead of code duplication.  If extract_component returns
9377         SSA_NAME with NULL SSA_NAME_DEF_STMT, store SSA_NAME_VAR or
9378         create_tmp_reg into the PHI node instead, and mention the phi triplet
9379         in phis_to_revisit.
9380         (tree_lower_complex): Walk bbs in rpo order.  Adjust phis recorded
9381         in phis_to_revisit at the end.
9382
9383 2016-01-14  Richard Biener  <rguenther@suse.de>
9384
9385         PR tree-optimization/68060
9386         * tree-vect-loop.c (vect_is_simple_reduction): Check the
9387         outer loop reduction is only used in the inner loop before
9388         detecting a double reduction.
9389
9390 2016-01-14  Jakub Jelinek  <jakub@redhat.com>
9391
9392         PR target/68269
9393         * combine.c (expand_field_assignment): Punt if compute_mode is
9394         unsupported scalar mode.
9395
9396 2016-01-14  Richard Biener  <rguenther@suse.de>
9397
9398         PR tree-optimization/66856
9399         * tree-vect-slp.c (vect_build_slp_tree): Refactor to build
9400         SLP node only if it built successfully.
9401         (vect_analyze_slp_instance): Adjust.
9402
9403 2016-01-14  Jeff Law  <law@redhat.com>
9404
9405         PR tree-optimization/69270
9406         * tree-ssa-dom.c (ssa_name_has_boolean_range): New function.
9407         (record_edge_info): Use it.  Convert boolean_{true,false}_node
9408         to the type of op0.
9409
9410 2016-01-13  Jan Hubicka  <hubicka@ucw.cz>
9411
9412         PR ipa/66487
9413         * ipa-polymorphic-call.c (inlined_polymorphic_ctor_dtor_block_p):
9414         use block_ultimate_origin
9415         (noncall-stmt_may_be_vtbl_ptr_store): Likewise.
9416
9417 2016-01-13  Sandra Loosemore  <sandra@codesourcery.com>
9418
9419         * doc/invoke.texi (Submodel Options): Rename section to
9420         "Machine-Dependent Options" to better reflect its content.
9421         Rewrite introductory text to remove archaic CPU names.
9422         Update references.
9423
9424 2016-01-13  Sandra Loosemore  <sandra@codesourcery.com>
9425
9426         * doc/invoke.texi (Code Gen Options): Move section up in file,
9427         before target-specific options.  Update menu and option summary
9428         to reflect the new section ordering.
9429
9430 2016-01-13  Jonathan Wakely  <jwakely@redhat.com>
9431
9432         * doc/invoke.texi (C Dialect Options): Adjust -std default for C++.
9433         (C++ Dialect Options): Add cross-reference to -std option.
9434         * doc/standards.texi (C++ Language): Document C++14 support.
9435
9436 2016-01-13  Michael Meissner  <meissner@linux.vnet.ibm.com>
9437
9438         * config/rs6000/rs6000-builtin.def (BU_FLOAT128_2): Add support
9439         for pack/unpack functions for __ibm128.
9440         (PACK_IF): Likewise.
9441         (UNPACK_IF): Likewise.
9442
9443         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
9444         support for __ibm128 pack/unpack functions.
9445         (rs6000_invalid_builtin): Likewise.
9446         (rs6000_init_builtins): Likewise.
9447         (rs6000_opt_masks): Likewise.
9448
9449         * config/rs6000/rs6000.h (MASK_FLOAT128): Add short name.
9450         (RS6000_BTM_FLOAT128): Add support for __ibm128 pack/unpack
9451         functions
9452         (RS6000_BTM_COMMON): Likewise.
9453
9454         * config/rs6000/rs6000.md (f128_vsx): New mode attribute.
9455         (unpack<mode>): Use FMOVE128_FPR iterator instead of FMOVE128, to
9456         disallow __builtin_{pack,unpack}_longdouble if long double is IEEE
9457         128-bit floating point.  Add support for the double values to be
9458         in Altivec registers for TF/IF packing and unpacking, but restrict
9459         TD packing sub-fields to be FPR registers.  Don't allow overlapped
9460         register support for packing.  Allow pack inputs to be memory
9461         locations.  Don't build generator functions for unpack<mode>_dm
9462         and unpack<mode>_nodm.
9463         (unpack<mode>_dm): Likewise.
9464         (unpack<mode>_nodm): Likewise.
9465         (pack<mode>): Likewise.
9466
9467         * config/rs6000/rs6000-builtin.def (__builtin_pack_ibm128): Add
9468         built-in functions to pack/unpack explicit __ibm128 values.
9469         (__builtin_unpack_ibm128): Likewise.
9470
9471         * doc/extend.texi (PowerPC Built-in Functions): Document
9472         __builtin_pack_ibm128 and __builtin_unpack_ibm128.
9473
9474 2016-01-13  Bernd Schmidt  <bschmidt@redhat.com>
9475
9476         PR c/66208
9477         * c-common.c (check_function_nonnull): Remove unnecessary declaration.
9478         Add new arg loc and pass it down as context.
9479         (check_nonnull_arg): Don't mark ctx arg as unused. Use it as a pointer
9480         to the location to use for the warning.
9481         (check_function_arguments): New arg loc.  All callers changed.  Pass
9482         it to check_function_nonnull.
9483         * c-common.h (check_function_arguments): Adjust declaration.
9484
9485 2016-01-13  Jakub Jelinek  <jakub@redhat.com>
9486
9487         PR tree-optimization/69156
9488         * gimple.c (validate_type): Removed.
9489         (gimple_builtin_call_types_compatible_p): Use
9490         useless_type_conversion_p instead of validate_type.
9491         * value-prof.c (gimple_stringop_fixed_value): Fold
9492         icall_size to correct type.
9493
9494 2016-01-13  Jonathan Wakely  <jwakely@redhat.com>
9495
9496         * doc/extend.texi (__atomic Builtins): Clarify compare_exchange
9497         effects.
9498
9499 2016-01-13  Richard Henderson  <rth@redhat.com>
9500
9501         PR tree-opt/68964
9502         * target.def (builtin_tm_load, builtin_tm_store): Remove.
9503         * config/i386/i386.c (ix86_builtin_tm_load): Remove.
9504         (ix86_builtin_tm_store): Remove.
9505         (TARGET_VECTORIZE_BUILTIN_TM_LOAD): Remove.
9506         (TARGET_VECTORIZE_BUILTIN_TM_STORE): Remove.
9507         * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_TM_LOAD): Remove.
9508         (TARGET_VECTORIZE_BUILTIN_TM_STORE): Remove.
9509         * doc/tm.texi: Rebuild.
9510
9511         * gtm-builtins.def (BUILT_IN_TM_MEMCPY_RNWT): New.
9512         (BUILT_IN_TM_MEMCPY_RTWN): New.
9513         * trans-mem.c (tm_log_emit_stmt): Rearrange code for better
9514         fallback from vector to integer helpers.
9515         (build_tm_load): Handle vector types directly, instead of
9516         via target hook.
9517         (build_tm_store): Likewise.
9518         (expand_assign_tm): Prepare for register types not handled by
9519         the above.  Copy them to memory and use memcpy.
9520         * tree.c (tm_define_builtin): New.
9521         (find_tm_vector_type): New.
9522         (build_tm_vector_builtins): New.
9523         (build_common_builtin_nodes): Call it.
9524
9525 2016-01-13  Uros Bizjak  <ubizjak@gmail.com>
9526
9527         * config/i386/i386.h (TARGET_FLT_EVAL_METHOD): Return -1 for
9528         TARGET_SSE_MATH without TARGET_SSE2.  Rewrite.
9529
9530 2016-01-13  Tom de Vries  <tom@codesourcery.com>
9531
9532         PR tree-optimization/69169
9533         * tree-ssa-structalias.c (create_variable_info_for_1): Add and handle
9534         handled_struct_type param.
9535         (create_variable_info_for, intra_create_variable_infos): Call
9536         create_variable_info_for_1 with extra arg.
9537
9538 2016-01-13  Yvan Roux  <yvan.roux@linaro.org>
9539
9540         * config/arm/arm-arches.def: Remove spurious whitespace in "armv8.1-a"
9541         and "armv8.1-a+crc" entries.
9542
9543 2016-01-13  Alexander Fomin  <alexander.fomin@intel.com>
9544
9545         PR target/69228
9546         * config/i386/sse.md (define_expand "avx512pf_gatherpf<mode>sf"):
9547         Change first operand predicate from register_or_constm1_operand
9548         to register_operand.
9549         (define_expand "avx512pf_gatherpf<mode>df"): Likewise.
9550         (define_expand "avx512pf_scatterpf<mode>sf"): Likewise.
9551         (define_expand "avx512pf_scatterpf<mode>df"): Likewise.
9552         (define_insn "*avx512pf_gatherpf<mode>sf"): Remove.
9553         (define_insn "*avx512pf_gatherpf<mode>df"): Likewise.
9554         (define_insn "*avx512pf_scatterpf<mode>sf"): Likewise.
9555         (define_insn "*avx512pf_scatterpf<mode>df"): Likewise.
9556         * config/i386/i386.c (ix86_expand_builtin): Remove first operand
9557         comparison with constm1_rtx from vec_prefetch_gen part.
9558
9559 2016-01-13  Richard Biener  <rguenther@suse.de>
9560
9561         PR tree-optimization/69013
9562         * tree-ssa-uninit.c (prune_uninit_phi_opnds_in_unrealizable_paths):
9563         Exchange assert for a test.
9564
9565 2016-01-13  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
9566
9567         PR target/69247
9568         * config/s390/s390.md (bswaphi splitter): Use simplify_gen_subreg.
9569
9570 2016-01-13  Richard Biener  <rguenther@suse.de>
9571
9572         PR tree-optimization/69242
9573         * tree-ssa-sccvn.c (visit_reference_op_load): Replace bogus
9574         assert with a check.
9575
9576 2016-01-13  Richard Biener  <rguenther@suse.de>
9577
9578         PR tree-optimization/69186
9579         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
9580         Properly guard vect_update_misalignment_for_peel call.
9581
9582 2016-01-12  Jeff Law  <law@redhat.com>
9583
9584         PR tree-optimization/pr67755
9585         * tree-ssa-threadupdate.c (struct ssa_local_info_t): Add new field
9586         "need_profile_correction".
9587         (thread_block_1): Initialize new field to false by default.  If we
9588         have multiple thread paths through a common joiner to different
9589         final targets, then set new field to true.
9590         (compute_path_counts): Only do count adjustment when it's really
9591         needed.
9592
9593 2016-01-12  Sandra Loosemore  <sandra@codesourcery.com>
9594
9595         * doc/invoke.texi (Spec Files): Move section down in file, past
9596         all command-line option descriptions.
9597
9598 2016-01-12  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
9599
9600         PR middle-end/54809
9601         * doc/gty.texi: Remove documentation of mark_hook.
9602         * gengtype.c (struct write_types_data): Remove code to support
9603         mark_hook attribute.
9604         (walk_type): Likewise.
9605         (write_func_for_structure): Likewise.
9606
9607 2016-01-12  Sandra Loosemore  <sandra@codesourcery.com>
9608
9609         * doc/invoke.texi (Option Summary) Move -no-canonical-prefixes to
9610         Directory Options, and -specs= to Overall Options.
9611         (Overall Options): Adjust similarly.  Reorder to group related
9612         options together.  Make -specs= cross-reference the spec file details.
9613         (Directory Options): Adjust similarly.
9614
9615 2016-01-12  Jeff Law  <law@redhat.com>
9616
9617         * tree-ssa-threadupdate.c: Various whitespace and typo fixes.
9618
9619 2016-01-12  Olivier Hainque  <hainque@adacore.com>
9620
9621         * gcc.c (spec_undefvar_allowed): New global.
9622         (process_command): Set to true when running for --version or --help,
9623         alone or together.
9624         (getenv_spec_function): When the variable is not defined, use the
9625         variable name as the variable value if we're allowed not to issue
9626         a fatal error.
9627
9628 2016-01-12  Bin Cheng  <bin.cheng@arm.com>
9629
9630         PR tree-optimization/68911
9631         * tree-vrp.c (adjust_range_with_scev): Check overflow in range
9632         information computed for expression "init + nit * step".
9633
9634 2016-01-12  Sandra Loosemore  <sandra@codesourcery.com>
9635
9636         * doc/invoke.texi (Invoking GCC): Copy-edit.  Incorporate information
9637         about name of GCC executable.  Remove deleted node from menu.
9638         (Directory Options) <-B>: Remove cross-reference to deleted node.
9639         (Target Options): Delete section.
9640
9641 2016-01-12  Christian Bruel  <christian.bruel@st.com>
9642
9643         PR target/69180
9644         * config/arm/arm-c.c (arm_pragma_target_parse): Set NODE_CONDITIONAL
9645         for __ARM_NEON_FP, __ARM_FP, _ARM_FEATURE_LDREX.
9646
9647 2016-01-12  Jakub Jelinek  <jakub@redhat.com>
9648
9649         PR target/69198
9650         * config/i386/i386.c (ix86_expand_special_args_builtin): Ensure
9651         aligned_mem is properly set for AVX512-VL floating point masked
9652         stores.
9653
9654         PR target/69175
9655         * ifcvt.c (cond_exec_process_if_block): When removing the last
9656         insn from then_bb, remove also any possible barriers that follow it.
9657
9658 2016-01-12  H.J. Lu  <hongjiu.lu@intel.com>
9659
9660         PR target/68456
9661         PR target/69226
9662         * config/i386/iamcu.h (SIZE_TYPE): New macro.
9663         (PTRDIFF_TYPE): Likewise.
9664         (WCHAR_TYPE): Likewise.
9665         (WCHAR_TYPE_SIZE): Likewise.
9666         (STDINT_LONG32): Likewise.
9667
9668 2016-01-12  Richard Biener  <rguenther@suse.de>
9669
9670         PR tree-optimization/69053
9671         * tree-vect-loop.c (get_initial_def_for_reduction): Properly
9672         convert initial value for cond reductions.
9673
9674 2016-01-12  Richard Biener  <rguenther@suse.de>
9675
9676         PR tree-optimization/69007
9677         * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Move
9678         widen_sum after dot_prod and sad.
9679
9680 2016-01-12  Richard Biener  <rguenther@suse.de>
9681
9682         PR tree-optimization/69168
9683         * tree-vect-loop.c (vect_analyze_loop_2): Reset both main and
9684         pattern stmt SLP type.
9685         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Patterns may
9686         end up unused so cope with that case.
9687
9688 2016-01-12  Richard Biener  <rguenther@suse.de>
9689
9690         PR tree-optimization/69157
9691         * tree-vect-stmts.c (vectorizable_mask_load_store): Check
9692         stmts def type only during analyze phase.
9693         (vectorizable_call): Likewise.
9694         (vectorizable_simd_clone_call): Likewise.
9695         (vectorizable_conversion): Likewise.
9696         (vectorizable_assignment): Likewise.
9697         (vectorizable_shift): Likewise.
9698         (vectorizable_operation): Likewise.
9699         (vectorizable_store): Likewise.
9700         (vectorizable_load): Likewise.
9701
9702 2016-01-12  Richard Biener  <rguenther@suse.de>
9703
9704         PR tree-optimization/69174
9705         * tree-vect-stmts.c (vect_mark_relevant): Remove excessive vertical
9706         space.
9707         (vectorizable_load): Properly compute the number of loads needed
9708         for permuted strided SLP loads and do not spuriously assign
9709         to SLP_TREE_VEC_STMTS.
9710
9711 2016-01-12  Andris Pavenis  <andris.pavenis@iki.fi>
9712
9713         * config/i386/djgpp.h (PREFERRED_DEBUGGING_TYPE): Define to DWARF2
9714         (TARGET_ASM_OUTPUT_IDENT): Define to default_asm_output_ident_directive
9715         (MD_EXEC_PREFIX): Remove.
9716         (MD_STARTFILE_PREFIX) Removee.
9717         (FILE_NAME_ABSOLUTE_P): Remove.
9718         (CPP_SPEC): Do not read macros from sys/version.h.
9719         (LINK_COMMAND_SPEC): Remove.
9720         (LOCAL_INCLUDE_DIR): Remove.
9721         (TARGET_ASM_NAMED_SECTION): Define to i386_djgpp_asm_named_section
9722         (TARGET_OS_CPP_BUILTINS): Add DJGPP (non ISO only), __DJGPP, __DJGPP__, unix.
9723         (POST_LINK_SPEC): Define to invoke stubify after linker
9724         (LIBSTDCXX): Remove define
9725         (DBX_REGISTER_NUMBER): Define to svr4_dbx_register_map.
9726         (DEFAULT_PCC_STRUCT_RETURN): Define to 1.
9727         (SUBTARGET_OVERRIDE_OPTIONS): Remove warning about -mbnu2210.
9728         (SUBTARGET_OVERRIDE_OPTIONS): Ignore -fPIC and generate message.
9729         (SUBTARGET_OVERRIDE_OPTIONS): Default to DWARF2 debugging info.
9730         (IX86_MAYBE_NO_LIBGCC_TFMODE): Remove.
9731         (i386_djgpp_asm_named_section): Add propotype of new procedure
9732
9733         * config/i386/xm-djgpp.h (NATIVE_SYSTEM_HEADER_DIR): Define.
9734         (MD_EXEC_PREFIX): Define (moved from config/i386/djgpp.h).
9735         (STANDARD_STARTFILE_PREFIX_1): Define (moved from MD_STARTFILE_PREFIX
9736         in config/i386/djgpp.h).
9737         (STANDARD_STARTFILE_PREFIX_2): Define identical to
9738         STANDARD_STARTFILE_PREFIX_1.
9739         (LOCAL_INCLUDE_DIR): Define (moved from config/i386/djgpp.h).
9740         (GCC_DRIVER_HOST_INITIALIZATION): Fix reporting fatal
9741         installation errors.
9742         (MAX_OFILE_ALIGNMENT): Define to 128.
9743         (HAVE_FTW_H): Undefine as DJGPP do not have nftw, but have ftw.h.
9744
9745         * config/i386/djgpp.c: New file. Add implementation of
9746         i386_djgpp_asm_named_section.
9747
9748         * config/i386/djgpp.opt: Remove obsolete option -mbnu210.
9749
9750         * config/i386/t-djgpp: New file. Add djgpp.o to EXTRA_OBJS.
9751         Add rule for building djgpp.o.
9752
9753 2016-01-11  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
9754
9755         * config/rs6000/rs6000.c (v2df_reduction_p): New function.
9756         (rtx_is_swappable_p): Reductions are swappable.
9757         (insn_is_swappable_p): V2DF reductions are swappable.
9758
9759 2016-01-11  John David Anglin  <danglin@gcc.gnu.org>
9760
9761         * config/pa/pa.c (pa_emit_move_sequence): Handle floating point
9762         reloads for other unsupported memory operands.
9763
9764 2016-01-12  Kugan Vivekanandarajah  <kuganv@linaro.org>
9765             Jim Wilson  <jim.wilson@linaro.org>
9766
9767         PR target/69194
9768         * config/arm/arm-builtins.c (arm_expand_neon_args): Call
9769         copy_to_mode_reg instead of force_reg.
9770
9771 2016-01-11  H.J. Lu  <hongjiu.lu@intel.com>
9772
9773         PR target/69225
9774         * config/i386/i386.h (TARGET_FLT_EVAL_METHOD): Set to 2 only if
9775         TARGET_80387 is true.
9776
9777 2016-01-11  Jakub Jelinek  <jakub@redhat.com>
9778
9779         PR target/69071
9780         * lra-eliminations.c (move_plus_up): Only move plus up
9781         if subreg of the constant can be simplified into constant
9782         and use the simplified subreg of the constant instead of
9783         the original constant.
9784
9785         * fold-const.c (fold_convertible_p): Don't return true
9786         for conversion of VECTOR_TYPE to same sized integral type.
9787         (fold_convert_loc): Fix up formatting.  Fold conversion of
9788         VECTOR_TYPE to same sized integral type using VIEW_CONVERT_EXPR
9789         instead of NOP_EXPR.
9790
9791         PR tree-optimization/69214
9792         * tree-vrp.c (simplify_cond_using_ranges): Don't propagate
9793         innerop into a comparison if SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
9794         Formatting fix.
9795
9796         PR tree-optimization/69207
9797         * tree-vect-slp.c (vect_get_constant_vectors): For
9798         VECTOR_BOOLEAN_TYPE_P, assert op has integral type instead of
9799         fold_convertible_p to vector_type's element type, and always
9800         use VCE for non-VECTOR_BOOLEAN_TYPE_P.
9801
9802 2016-01-11  Richard Biener  <rguenther@suse.de>
9803
9804         PR tree-optimization/69173
9805         * tree-vect-loop.c (vect_fixup_scalar_cycles_with_patterns): Only
9806         fixup the cycle if all stmts are in a pattern.
9807
9808 2016-01-11  Uros Bizjak  <ubizjak@gmail.com>
9809
9810         PR middle-end/68999
9811         * alias.c (base_alias_check): Move check for addresses with
9812         alignment ANDs before the call for compare_base_decls.
9813         (memrefs_conflict_p): Return -1 for different decls
9814         that went through alignment adjustments.
9815
9816 2016-01-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9817
9818         PR rtl-optimization/68796
9819         * config/aarch64/aarch64.md (*and<mode>_compare0): New pattern.
9820         * config/aarch64/aarch64.c (aarch64_select_cc_mode): Handle HImode
9821         and QImode comparisons against zero with CC_NZmode.
9822         * config/aarch64/iterators.md (short_mask): New mode_attr.
9823
9824 2016-01-11  H.J. Lu  <hongjiu.lu@intel.com>
9825
9826         * config/i386/sse.md (<avx512>_load<mode>_mask): Remove snprintf.
9827         (<avx512>_store<mode>_mask): Likewise.
9828
9829 2016-01-11  Bernd Schmidt  <bschmidt@redhat.com>
9830             Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9831
9832         PR rtl-optimization/68841
9833         * ifcvt.c (struct noce_if_info): Add orig_x field.
9834         (bbs_ok_for_cmove_arith): Add to_rename parameter.
9835         Don't record conflicts on to_rename if it's present.
9836         Allow memory destinations in sets.
9837         (noce_try_cmove_arith): Call bbs_ok_for_cmove_arith even on simple
9838         blocks, passing orig_x to the checks.
9839         (noce_process_if_block): Set if_info->orig_x appropriately.
9840
9841 2016-01-11  Tom de Vries  <tom@codesourcery.com>
9842
9843         PR tree-optimization/69069
9844         * tree-parloops.c (create_parallel_loop): Add missing phi args.
9845
9846 2016-01-11  Yuri Rumyantsev  <ysrumyan@gmail.com>
9847
9848         PR rtl-optimization/68920
9849         * config/i386/i386.c (ix86_option_override_internal): Restrict number
9850         of conditional moves for  RTL if-conversion to 1 for
9851         TARGET_ONE_IF_CONV_INSN.
9852         * config/i386/i386.h (TARGET_ONE_IF_CONV_INSN): New macros.
9853         * config/i386/x86-tune.def (X86_TUNE_ONE_IF_CONV_INSN): New macros.
9854         * params.def (PARAM_MAX_RTL_IF_CONVERSION_INSNS) : Introduce new
9855         parameter to restirct number of conditional moves for
9856         RTL if-conversion.
9857         * doc/invoke.texi (max-rtl-if-conversion-insns): Document it.
9858         * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Limit number of
9859         conditionl moves.
9860
9861 2016-01-11  Alexandre Oliva  <aoliva@redhat.com>
9862
9863         PR bootstrap/69123
9864         * var-tracking.c (drop_overlapping_mem_locs): Operate on all
9865         onepart vars.  Fix typo in comment.  Fix reversed condition in
9866         unshare test.
9867         (dataflow_set_remove_mem_locs): Operate on all onepart vars.
9868
9869         PR bootstrap/69123
9870         * var-tracking.c (dump_onepart_variable_differences): New.
9871         (dataflow_set_different): If a detailed dump is requested,
9872         delay early returns and dump differences between onepart
9873         variables present before and after, and added variables.
9874
9875 2016-01-11  Ilya Enkovich  <enkovich.gnu@gmail.com>
9876
9877         PR target/69010
9878         * expr.c (expand_expr_real_1): For boolean vector constants
9879         with a scalar mode use const_scalar_mask_from_tree.
9880         (const_scalar_mask_from_tree): New.
9881         * optabs.c (expand_vec_cond_mask_expr): Use mask mode
9882         assigned to a mask type to handle constants.
9883
9884 2016-01-11  Martin Jambor  <mjambor@suse.cz>
9885
9886         PR ipa/69044
9887         * ipa-cp.c (estimate_local_effects): Do not clone for removal of
9888         useless parameters if we cannot change function signature.
9889
9890 2016-01-11  Martin Jambor  <mjambor@suse.cz>
9891
9892         PR ipa/66616
9893         * cgraphclones.c (duplicate_thunk_for_node): Copy can_change_signature
9894         flag.
9895
9896 2016-01-11  Tom de Vries  <tom@codesourcery.com>
9897
9898         PR tree-optimization/69109
9899         * tree-parloops.c (try_transform_to_exit_first_loop_alt): Don't allow
9900         latch with phi.
9901
9902 2016-01-11  Tom de Vries  <tom@codesourcery.com>
9903
9904         PR tree-optimization/69108
9905         * tree-parloops.c (gather_scalar_reductions): Handle case that outer phi
9906         res is not used in a phi.
9907
9908 2016-01-11  Yury Gribov  <y.gribov@samsung.com>
9909
9910         PR 67425
9911         * common.opt (frandom-seed): Fix parameter name.
9912         * doc/invoke.texi (frandom-seed): Ditto and describe parameter.
9913
9914 2016-01-11  Tom de Vries  <tom@codesourcery.com>
9915
9916         PR tree-optimization/69058
9917         * tree-parloops.c (pass_parallelize_loops::execute): Return 0 if libgomp
9918         not supported.
9919
9920 2016-01-11  Andrew Burgess  <andrew.burgess@embecosm.com>
9921
9922         * config/arc/arc.opt (mdiv-rem): Add period to the end.
9923         (mcode-density): Likewise.
9924
9925 2016-01-10  Tom de Vries  <tom@codesourcery.com>
9926
9927         PR tree-optimization/69062
9928         * tree-parloops.c (loop_has_phi_with_address_arg): New function.
9929         (parallelize_loops): Don't paralelize loop that has phi with address
9930         arg.
9931
9932 2016-01-10  Tom de Vries  <tom@codesourcery.com>
9933
9934         PR tree-optimization/69039
9935         * tree-parloops.c (try_create_reduction_list): Only allow single exit
9936         phi for reduction.
9937
9938 2016-01-09  John David Anglin  <danglin@gcc.gnu.org>
9939
9940         PR middle-end/68743
9941         * match.pd: Require target has function_c99_misc before doing
9942         truncl(extend(x)) and trunc(extend(x)) -> extend(truncf(x)), etc.
9943
9944 2016-01-09  Gerald Pfeifer  <gerald@pfeifer.com>
9945
9946         * configure.ac (isl_options_set_schedule_serialize_sccs): Also
9947         use GMPINC.
9948         * configure: Regenerate.
9949
9950 2016-01-09  Jakub Jelinek  <jakub@redhat.com>
9951
9952         PR middle-end/50865
9953         PR tree-optimization/69097
9954         * fold-const.h (expr_not_equal_to): New prototype.
9955         * fold-const.c: Include stringpool.h and tree-ssanames.h.
9956         (expr_not_equal_to): New function.
9957         * match.pd (X % -Y is the same as X % Y): Don't optimize
9958         unless X is known not to be equal to minimum or Y is known
9959         not to be equal to -1.
9960         * tree-vrp.c (simplify_div_or_mod_using_ranges): Add GSI argument.
9961         fold TRUNC_MOD_EXPR if the second argument is not a power of two.
9962         (simplify_stmt_using_ranges): Adjust caller.
9963         (vrp_finalize): Call set_value_range on SSA_NAMEs before calling
9964         substitute_and_fold.
9965
9966 2016-01-09  Jan Hubicka  <hubicka@ucw.cz>
9967
9968         * ipa-icf.c (sem_item_optimizer::merge_classes): Do not ICE on VAR_DECL
9969         w/o DECL_NAME.
9970
9971 2016-01-08  Jakub Jelinek  <jakub@redhat.com>
9972
9973         PR tree-optimization/69167
9974         * gimple-fold.c (replace_stmt_with_simplification): Also punt if
9975         new SSA_NAME_OCCURS_IN_ABNORMAL_PHI SSA_NAMEs appear in operands of
9976         ops[0] comparison.
9977         * gimple-match-head.c (maybe_push_res_to_seq): Likewise.
9978
9979 2016-01-08  Alan Lawrence  <alan.lawrence@arm.com>
9980             Richard Biener  <rguenther@suse.de>
9981
9982         PR tree-optimization/68707
9983         * tree-vect-slp.c (vect_analyze_slp_instance): Cancel permuted SLP
9984         instances that can be handled via vect_load_lanes.
9985
9986 2016-01-08  Uros Bizjak  <ubizjak@gmail.com>
9987
9988         * symtab.c (symtab_node::equal_address_to): Return -1 instead of 2
9989         if we can't determine address equivalence.
9990         * alias.c (compare_base_decl): Update for changed return value of
9991         symtab_node::equal_address_to.
9992
9993 2016-01-08  Jason Merrill  <jason@redhat.com>
9994
9995         PR c++/68983
9996         PR c++/67557
9997         * function.c (assign_temp): Guard against TREE_ADDRESSABLE types here.
9998         * expr.c (store_field): Not here.
9999         * tree-cfgcleanup.c (fixup_noreturn_call): Don't clear LHS of a
10000         call with TREE_ADDRESSABLE type.
10001         * tree-cfg.c (verify_gimple_call): Adjust.
10002
10003 2016-01-08  Olivier Hainque  <hainque@adacore.com>
10004
10005         * config/vxworks.h (VXWORKS_LIBGCC_SPEC): Don't link shared RTPs with
10006         libc_internal.
10007
10008 2016-01-08  Alan Lawrence  <alan.lawrence@arm.com>
10009
10010         * gcc.target/rs6000/paired.md (reduc_smax_v2sf): Rename to...
10011         (reduc_smax_scal_v2sf): ...here, make result SFmode, extract element.
10012         (reduc_smin_v2sf): Rename to...
10013         (reduc_smin_scal_v2sf): ...here, make result SFmode, extract element.
10014         (reduc_splus_v2sf): Rename to...
10015         (reduc_plus_scal_v2sf): ...here, make result SFmode, extract element.
10016
10017 2016-01-08  Jakub Jelinek  <jakub@redhat.com>
10018
10019         PR tree-optimization/69162
10020         * gimplify.c (gimplify_va_arg_expr): Encode original type of
10021         valist argument in another argument.
10022         (gimplify_modify_expr): Adjust for the above change.  Cleanup.
10023         * tree-stdarg.c (expand_ifn_va_arg_1): Use new 3rd argument
10024         to determine the va_list type, build a MEM_REF instead of
10025         build_fold_indirect_ref.
10026
10027         PR tree-optimization/69172
10028         * gimple-fold.c (gimple_fold_builtin_memory_chk): Pass type to
10029         gimple_build.
10030
10031 2016-01-08  Thomas Preud'homme  <thomas.preudhomme@arm.com>
10032
10033         PR tree-optimization/67781
10034         * tree-ssa-math-opts.c (find_bswap_or_nop): Zero out bytes in cmpxchg
10035         and cmpnop in two steps: first the ones not accessed in original
10036         gimple expression in a endian independent way and then the ones not
10037         accessed in the final result in an endian-specific way.
10038
10039 2016-01-08  Jakub Jelinek  <jakub@redhat.com>
10040
10041         PR tree-optimization/69083
10042         * tree-vect-slp.c (vect_get_constant_vectors): For
10043         VECTOR_BOOLEAN_TYPE_P assert op is fold_convertible_p to vector_type's
10044         element type.  If op is fold_convertible_p to vector_type's element
10045         type, use NOP_EXPR instead of VCE.
10046
10047 2016-01-08  Segher Boessenkool  <segher@kernel.crashing.org>
10048
10049         PR rtl-optimization/67778
10050         PR rtl-optimization/68634
10051         PR rtl-optimization/68909
10052         * shrink-wrap.c (try_shrink_wrapping): Add comment.  Don't pop
10053         block from the stack until done with it.  Remove a superfluous
10054         bitmap set.  Remove a superfluous bitmap test.
10055
10056 2016-01-07  Martin Sebor  <msebor@redhat.com>
10057
10058         PR c/68966
10059         * doc/extend.texi (__atomic Builtins, __sync Builtins): Document
10060         constraint on the type of arguments.
10061
10062 2016-01-07  Andreas Tobler  <andreast@gcc.gnu.org>
10063
10064         * config/arm/freebsd.h: Rename SUBTARGET_OVERRIDE_OPTIONS to
10065         SUBTARGET_OVERRIDE_INTERNAL_OPTIONS. Adjust to check
10066         unaligned_access on the gcc_options set.
10067         * config/arm/arm.c (arm_option_override_internal): Use
10068         SUBTARGET_OVERRIDE_INTERNAL_OPTIONS.
10069
10070 2016-01-07  Uros Bizjak  <ubizjak@gmail.com>
10071
10072         PR target/69140
10073         * config/i386/i386.c (ix86_frame_pointer_required): Enable
10074         frame pointer for TARGET_64BIT_MS_ABI when stack is misaligned.
10075
10076 2016-01-07  Uros Bizjak  <ubizjak@gmail.com>
10077
10078         Revert
10079         2016-01-06  Uros Bizjak  <ubizjak@gmail.com>
10080
10081         PR target/69140
10082         * config/i386/i386.c (ix86_expand_prologue): Declare fs.sp_valid
10083         depending on frame_pointer_needed before remaining integer and SSE
10084         registers are saved.
10085
10086 2016-01-07  Sandra Loosemore  <sandra@codesourcery.com>
10087
10088         PR 1078
10089         * doc/extend.texi (Nvidia PDX Function Attributes): New section.
10090
10091 2016-01-07  H.J. Lu  <hongjiu.lu@intel.com>
10092
10093         PR target/69171
10094         * config/i386/sse.md (<sse>_sqrt<mode>2<mask_name><round_name>):
10095         Use the "xBm" constraint.
10096         (float<sseintvecmodelower><mode>2<mask_name><round_name):
10097         Likewise.
10098         (sse_cvtsi2ss<round_name>): Use round_nimm_scalar_predicate.
10099         (sse_cvtsi2ssq<round_name>): Likewise.
10100         (sse_cvtss2si<round_name>): Likewise.
10101         (sse_cvtss2siq<round_name>): Likewise.
10102         (sse2_cvtsi2sdq<round_name>): Likewise.
10103         (sse2_cvtsd2si<round_name>): Likewise.
10104         (sse2_cvtsd2siq<round_name>): Likewise.
10105         * config/i386/subst.md (round_nimm_scalar_predicate): New
10106         predicate.
10107
10108 2015-12-15  Bernd Schmidt  <bschmidt@redhat.com>
10109
10110         PR middle-end/67639
10111         * varasm.c (make_decl_rtl): Mark invalid register vars as
10112         DECL_EXTERNAL.
10113
10114         PR rtl-optimization/66206
10115         * bt-load.c (find_btr_use): Change first arg to be a pointer to an rtx.
10116         All callers changed.
10117
10118 2016-01-07  Jakub Jelinek  <jakub@redhat.com>
10119
10120         PR tree-optimization/69141
10121         * tree-ssa-pre.c: Include langhooks.h.
10122         (eliminate_dom_walker::before_dom_children): Use
10123         lang_hooks.decl_printable_name instead of
10124         cgraph_node::get ()->name ().
10125
10126         PR middle-end/68960
10127         * gimple-expr.c (copy_var_decl): If var has DECL_USER_ALIGN set, copy
10128         it and DECL_ALIGN too.
10129
10130 2016-01-06  Robert Suchanek  <robert.suchanek@imgtec.com>
10131
10132         * config/mips/mips-ftypes.def: Sort to lexicographical order.
10133
10134 2016-01-06  Uros Bizjak  <ubizjak@gmail.com>
10135
10136         PR target/69140
10137         * config/i386/i386.c (ix86_expand_prologue): Declare fs.sp_valid
10138         depending on frame_pointer_needed before remaining integer and SSE
10139         registers are saved.
10140
10141 2015-01-06  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
10142
10143         * config/rs6000/vsx.md (*p9_vecload_<mode>): Replace VSX_M
10144         mode iterator with VSX_M2.
10145         (*p9_vecstore_<mode>): Likewise.
10146         (*vsx_le_permute_<mode>): Restrict to !TARGET_P9_VECTOR.
10147         (*vsx_le_perm_load_<mode> for VSX_LE_128): Likewise.
10148         (*vsx_le_perm_store_<mode> for VSX_LE_128): Likewise.
10149         (define_split for VSX_LE128 stores): Likewise.
10150         (define_peephole2 for TImode LE swaps): Likewise.
10151         (define_split for VSX_LE128 post-reload stores): Likewise.
10152
10153 2016-01-06  Marek Polacek  <polacek@redhat.com>
10154
10155         PR sanitizer/69099
10156         * convert.c (convert_to_integer_1): Adjust call to
10157         ubsan_instrument_float_cast.  Use NULL_TREE instead of NULL.
10158         * ubsan.c (ubsan_instrument_float_cast): Drop the ARG parameter.  Use
10159         EXPR instead of ARG.
10160         * ubsan.h (ubsan_instrument_float_cast): Adjust declaration.
10161
10162 2016-01-05  Sandra Loosemore  <sandra@codesourcery.com>
10163
10164         PR 1078
10165         * doc/extend.texi (RL78 Variable Attributes): New section.
10166
10167 2016-01-05  Marek Polacek  <polacek@redhat.com>
10168
10169         PR c/69104
10170         * builtins.c (get_memmodel): Use expansion point location rather than
10171         the input location.  Call warning_at rather than warning.
10172         (expand_builtin_atomic_compare_exchange): Likewise.
10173         (expand_builtin_atomic_load): Likewise.
10174         (expand_builtin_atomic_store): Likewise.
10175         (expand_builtin_atomic_clear): Likewise.
10176
10177 2016-01-05  H.J. Lu  <hongjiu.lu@intel.com>
10178
10179         PR target/68991
10180         * config/i386/i386.c (ix86_expand_vector_logical_operator):
10181         Replace nonimmediate_operand with vector_operand.
10182         * config/i386/predicates.md (vector_operand): New predicate.
10183         (general_vector_operand): Replace nonimmediate_operand with
10184         vector_operand.
10185         * config/i386/sse.md: Replace nonimmediate_operand with
10186         vector_operand and m constraint with Bm constraint on SSE
10187         patterns with 16-byte memory operand.
10188         * config/i386/subst.md (round_nimm_predicate): Replace
10189         nonimmediate_operand with vector_operand.
10190         (round_saeonly_nimm_predicate): Likewise.
10191         (round_saeonly_nimm_scalar_predicate): New.
10192
10193 2016-01-05  H.J. Lu  <hongjiu.lu@intel.com>
10194
10195         PR target/68991
10196         * config/i386/constraints.md (Bm): New constraint.
10197         * config/i386/predicates.md (vector_memory_operand): New
10198         predicate.
10199         * config/i386/sse.md: Replace xm with xBm in plusminus and
10200         any_logic patterns.
10201
10202 2016-01-05  Sandra Loosemore  <sandra@codesourcery.com>
10203
10204         PR 1078
10205         * doc/extend.texi (V850 Function Attributes): New section.
10206         (V850 Variable Attributes): New section.
10207
10208 2016-01-05  Sandra Loosemore  <sandra@codesourcery.com>
10209
10210         PR 1078
10211         * doc/extend.texi (MicroBlaze Function Attributes): Document
10212         interrupt_handler and fast_interrupt attributes.
10213
10214 2016-01-05  Sergei Trofimovich  <siarheit@google.com>
10215
10216         PR other/60465
10217         * config/ia64/ia64.c (ia64_expand_load_address): Use gprel64
10218         for local symbolic operands.
10219         * config/ia64/predicates.md (local_symbolic_operand64): New
10220         predicate.
10221
10222 2016-01-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10223
10224         PR rtl-optimization/68651
10225         * combine.c (combine_simplify_rtx): Canonicalize x + x into
10226         x << 1.
10227
10228 2016-01-05  Nathan Sidwell  <nathan@acm.org>
10229
10230         * alias.c (compare_base_decls): Use symtab_node::get.
10231
10232 2016-01-05  Nick Clifton  <nickc@redhat.com>
10233
10234         PR target/68770
10235         * ira-costs.c (copy_cost): Initialise the t_icode field of the
10236         secondary_reload_info structure.
10237
10238         PR target/66655
10239         * config/i386/cygming.h (MAKE_DECL_ONE_ONLY): Define to use weak
10240         decls if weak support is available.
10241
10242 2016-01-04  Martin Sebor  <msebor@redhat.com>
10243
10244         * doc/invoke.texi (Warning Options): Document -Winvalid-memory-model.
10245
10246 2016-01-04  Michael Meissner  <meissner@linux.vnet.ibm.com>
10247
10248         * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Add
10249         OPTION_MASK_P9_DFORM.
10250
10251         * config/rs6000/constraints.md (wo constraint): New constraint for
10252         ISA 3.0 (power9).
10253
10254         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Add support
10255         for wo constraint.
10256         (rs6000_init_hard_regno_mode_ok): Likewise.
10257
10258         * config/rs6000/rs6000.h (r6000_reg_class_enum): Add support for
10259         wo constraint.
10260
10261         * config/rs6000/altivec.md (altivec_vperm_<mode>): Clean up vperm
10262         expanders not to have constraints.  Add support for ISA 3.0 xxperm
10263         instruction.  Add support for fusing xxlor with xxperm.
10264         (altivec_vperm_<mode>_internal): Likewise.
10265         (altivec_vperm_v8hiv16qi): Likewise.
10266         (altivec_vperm_<mode>v16q): Likewise.
10267         (altivec_vperm_<mode>_uns): Likewise.
10268         (vperm_v8hiv4si): Likewise.
10269         (vperm_v16qiv8hi): Likewise.
10270
10271         * doc/md.texi (RS/6000 constraints): Document wo constraint.
10272
10273 2016-01-04  Jakub Jelinek  <jakub@redhat.com>
10274
10275         Update copyright years.
10276
10277         * gcc.c (process_command): Update copyright notice dates.
10278         * gcov-dump.c (print_version): Ditto.
10279         * gcov.c (print_version): Ditto.
10280         * gcov-tool.c (print_version): Ditto.
10281         * gengtype.c (create_file): Ditto.
10282         * doc/cpp.texi: Bump @copying's copyright year.
10283         * doc/cppinternals.texi: Ditto.
10284         * doc/gcc.texi: Ditto.
10285         * doc/gccint.texi: Ditto.
10286         * doc/gcov.texi: Ditto.
10287         * doc/install.texi: Ditto.
10288         * doc/invoke.texi: Ditto.
10289
10290 2016-01-04  Eric Botcazou  <ebotcazou@adacore.com>
10291
10292         * config/arm/arm.c (aapcs_vfp_allocate_return_reg): Treat all integer
10293         modes larger than TImode as TImode if NEON is not enabled.
10294
10295 2016-01-04  Eric Botcazou  <ebotcazou@adacore.com>
10296
10297         PR target/69100
10298         * config/sparc/sparc.h (FUNCTION_ARG_REGNO_P): Return true in 64-bit
10299         mode for %f0-%f31 only if TARGET_FPU.
10300
10301 2016-01-04  Eric Botcazou  <ebotcazou@adacore.com>
10302
10303         PR target/69072
10304         * config/sparc/sparc.c (scan_record_type): Take into account subfields
10305         to compute the PACKED_P predicate.
10306         (function_arg_record_value): Minor tweaks.
10307
10308 2016-01-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>
10309
10310         * doc/install.texi (--with-multilib-list): Describe the meaning of the
10311         option for arm*-*-* targets.
10312
10313 2016-01-03  Sandra Loosemore  <sandra@codesourcery.com>
10314
10315         * doc/extend.texi (Common Function Attributes): Move docs for
10316         MSP430-specific attributes to....
10317         (MSP430 Function Attributes): ...here.  Delete the redundant
10318         entries and copy-edit the remaining text.
10319         (MSP430 Variable Attributes): Use uniform format for index
10320         entries and add a cross-reference to the corresponding function
10321         attribute docs.
10322
10323 2016-01-03  Vladimír Čunát  <vcunat@gmail.com>
10324
10325         * doc/invoke.texi (RS/6000 and PowerPC Options): Fix
10326         -finite-math typo.
10327         (x86 Options): Likewise.
10328
10329 2016-01-01  Sandra Loosemore  <sandra@codesourcery.com>
10330
10331         PR 1078
10332
10333         * extend.texi (Common Function Attributes) <no_stack_limit>: New.
10334         * invoke.texi (Code Gen Options) <-fno-stack-limit>: Add pointer
10335         to corresponding attribute.
10336
10337 2016-01-01  Sandra Loosemore  <sandra@codesourcery.com>
10338
10339         * doc/extend.texi (Common Function Attributes) <noplt>: Move
10340         to correct alphabetization of table.  Copy-edit and correct
10341         markup.
10342         <stack_protect>: Likewise.
10343         <target_clones>: Likewise.
10344         <simd>: Likewise.
10345         * doc/invoke.texi (Optimize Options) <-fstack-protector-explicit>:
10346         Correct punctuation.
10347         (Code Gen Options) <-fno-plt>: Copy-edit.
10348
10349 2016-01-01  Bernd Edlinger  <bernd.edlinger@hotmail.de>
10350
10351         PR target/68917
10352         * config/tilegx/tilegx.md (clzsi2): Don't create DI subregs of
10353         SI values.  Explicitly convert SI to DI and vice-versa.
10354
10355 2016-01-01  Jakub Jelinek  <jakub@redhat.com>
10356
10357         PR tree-optimization/69070
10358         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Only test
10359         REAL_VALUE_ISSIGNALING_NAN on arg0 if arg0 is a REAL_CST.
10360
10361         PR sanitizer/69055
10362         * ubsan.c (ubsan_instrument_float_cast): Call
10363         initialize_sanitizer_builtins.
10364
10365         PR target/69015
10366         * ifcvt.c (find_cond_trap): Give up if returnjump_p (jump).
10367 \f
10368 Copyright (C) 2016 Free Software Foundation, Inc.
10369
10370 Copying and distribution of this file, with or without modification,
10371 are permitted in any medium without royalty provided the copyright
10372 notice and this notice are preserved.