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