[AArch64] Use new target pass registration framework for FMA steering pass
[official-gcc.git] / gcc / ChangeLog
blob92d06ce27664b3a12ca304d4e8b24ef9fde224a2
1 2016-10-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3         * config/aarch64/aarch64.c: Delete inclusion of
4         cortex-a57-fma-steering.h.
5         (aarch64_override_options): Delete call
6         to aarch64_register_fma_steering.
7         * config/aarch64/aarch64-protos.h (make_pass_fma_steering): Declare.
8         * config/aarch64/cortex-a57-fma-steering.h: Delete.
9         * config/aarch64/aarch64-passes.def: New file.
10         * config/aarch64/cortex-a57-fma-steering.c
11         (aarch64_register_fma_steering): Delete definition.
12         (make_pass_fma_steering): Remove static qualifier.
13         * config/aarch64/t-aarch64 (PASSES_EXTRA): New directive.
14         (cortex-a57-fma-steering.o): Remove dependency on
15         cortex-a57-fma-steering.h.
17 2016-10-17  Eric Botcazou  <ebotcazou@adacore.com>
19         * explow.c (validize_mem): Do not modify the argument in-place.
21 2016-10-17  Thomas Schwinge  <thomas@codesourcery.com>
23         * tree-streamer.c (record_common_node): Explicitly list expected
24         tree codes.
26 2016-10-17  Richard Biener  <rguenther@suse.de>
28         PR tree-optimization/77988
29         * tree-vrp.c (remove_range_assertions): Use replace_uses_by.
31 2016-10-17  Marek Polacek  <polacek@redhat.com>
33         * Makefile.in (C_COMMON_OBJS): Add c-family/c-attribs.o.
35 2016-10-17  Richard Biener  <rguenther@suse.de>
37         * bb-reorder.c (reorder_basic_blocks_simple): Clear BB_VISITED
38         before using it.
40 2016-10-17  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
42         PR tree-optimization/71636
43         * match.pd (x & ((1 << b) - 1) -> x & ~(~0 << b)): New pattern.
45 2016-10-17  Richard Biener  <rguenther@suse.de>
47         * gimplify.c (gimplify_function_tree): Do not move the outer
48         binds block.
50 2016-10-17  Jakub Jelinek  <jakub@redhat.com>
52         * langhooks.h (struct lang_hooks_for_decls): Remove
53         function_decl_explicit_p, function_decl_deleted_p and
54         function_decl_defaulted hooks.  Add decl_dwarf_attribute hook.
55         * langhooks-def.h (lhd_decl_dwarf_attribute): Declare.
56         (LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P,
57         LANG_HOOKS_FUNCTION_DECL_DELETED_P,
58         LANG_HOOKS_FUNCTION_DECL_DEFAULTED): Remove.
59         (LANG_HOOKS_DECL_DWARF_ATTRIBUTE): Define.
60         (LANG_HOOKS_DECLS): Remove LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P,
61         LANG_HOOKS_FUNCTION_DECL_DELETED_P and
62         LANG_HOOKS_FUNCTION_DECL_DEFAULTED.  Add
63         LANG_HOOKS_DECL_DWARF_ATTRIBUTE.
64         * langhooks.c (lhd_decl_dwarf_attribute): New function.
65         * dwarf2out.c (gen_subprogram_die): Use
66         lang_hooks.decls.decl_dwarf_attribute instead of
67         lang_hooks.decls.function_decl_*.
69 2016-10-16  Eric Botcazou  <ebotcazou@adacore.com>
71         PR ada/37139
72         PR ada/67205
73         * common.opt (-ftrampolines): New option.
74         * doc/invoke.texi (Code Gen Options): Document it.
75         * doc/tm.texi.in (Trampolines): Add TARGET_CUSTOM_FUNCTION_DESCRIPTORS.
76         * doc/tm.texi: Regenerate.
77         * builtins.def: Add init_descriptor and adjust_descriptor.
78         * builtins.c (expand_builtin_init_trampoline): Do not issue a warning
79         on platforms with descriptors.
80         (expand_builtin_init_descriptor): New function.
81         (expand_builtin_adjust_descriptor): Likewise.
82         (expand_builtin) <BUILT_IN_INIT_DESCRIPTOR>: New case.
83         <BUILT_IN_ADJUST_DESCRIPTOR>: Likewise.
84         * calls.c (prepare_call_address): Remove SIBCALLP parameter and add
85         FLAGS parameter.  Deal with indirect calls by descriptor and adjust.
86         Set STATIC_CHAIN_REG_P on the static chain register, if any.
87         (call_expr_flags): Set ECF_BY_DESCRIPTOR for calls by descriptor.
88         (expand_call): Likewise.  Move around call to prepare_call_address
89         and pass all flags to it.
90         * cfgexpand.c (expand_call_stmt): Reinstate CALL_EXPR_BY_DESCRIPTOR.
91         * gimple.h (enum gf_mask): New GF_CALL_BY_DESCRIPTOR value.
92         (gimple_call_set_by_descriptor): New setter.
93         (gimple_call_by_descriptor_p): New getter.
94         * gimple.c (gimple_build_call_from_tree): SetCALL_EXPR_BY_DESCRIPTOR.
95         (gimple_call_flags): Deal with GF_CALL_BY_DESCRIPTOR.
96         * langhooks.h (struct lang_hooks): Add custom_function_descriptors.
97         * langhooks-def.h (LANG_HOOKS_CUSTOM_FUNCTION_DESCRIPTORS): Define.
98         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_CUSTOM_FUNCTION_DESCRIPTORS.
99         * rtl.h (STATIC_CHAIN_REG_P): New macro.
100         * rtlanal.c (find_first_parameter_load): Skip static chain registers.
101         * target.def (custom_function_descriptors): New POD hook.
102         * tree.h (FUNC_ADDR_BY_DESCRIPTOR): New flag on ADDR_EXPR.
103         (CALL_EXPR_BY_DESCRIPTOR): New flag on CALL_EXPR.
104         * tree-core.h (ECF_BY_DESCRIPTOR): New mask.
105         Document FUNC_ADDR_BY_DESCRIPTOR and CALL_EXPR_BY_DESCRIPTOR.
106         * tree.c (make_node_stat) <tcc_declaration>: Use FUNCTION_ALIGNMENT.
107         (build_common_builtin_nodes): Initialize init_descriptor and
108         adjust_descriptor.
109         * tree-nested.c: Include target.h.
110         (struct nesting_info): Add 'any_descr_created' field.
111         (get_descriptor_type): New function.
112         (lookup_element_for_decl): New function extracted from...
113         (create_field_for_decl): Likewise.
114         (lookup_tramp_for_decl): ...here.  Adjust.
115         (lookup_descr_for_decl): New function.
116         (convert_tramp_reference_op): Deal with descriptors.
117         (build_init_call_stmt): New function extracted from...
118         (finalize_nesting_tree_1): ...here.  Adjust and deal with descriptors.
119         * defaults.h (FUNCTION_ALIGNMENT): Define.
120         (TRAMPOLINE_ALIGNMENT): Set to above instead of FUNCTION_BOUNDARY.
121         * config/i386/i386.h (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Define.
122         * config/ia64/ia64.h (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Likewise.
123         * config/rs6000/rs6000.h (TARGET_CUSTOM_FUNCTION_DESCRIPTORS):Likewise.
124         * config/sparc/sparc.h (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Likewise.
126 2016-10-16  Eric Botcazou  <ebotcazou@adacore.com>
128         * config/sparc/sparc.c (sparc_expand_vector_init): Only accept literal
129         constants in CONST_VECTORs.
131 2016-10-15  Eric Botcazou  <ebotcazou@adacore.com>
133         * config/sparc/sparc.c (sparc_expand_vec_perm_bmask): Use a scratch
134         register as destination of bmask.
135         (vector_init_bshuffle): Likewise.
136         * config/sparc/sparc.md (vec_perm_constv8qi): Likewise.
137         (bmaskdi_vis): Enable only in 64-bit mode.
139 2016-10-15  Segher Boessenkool  <segher@kernel.crashing.org>
141         * config/rs6000/rs6000.c (rs6000_get_separate_components): Do not
142         make LR a separately shrink-wrapped component unless savres_strategy
143         contains all of {SAVE,REST}_INLINE_{GPRS,FPRS,VRS}.  Do not wrap
144         GPRs unless both {SAVE,REST}_INLINE_GPRS.  Do not disallow all
145         wrapping when not both {SAVE,REST}_INLINE_GPRS.
147 2016-10-15  Eric Botcazou  <ebotcazou@adacore.com>
149         * optabs.c (expand_parity): Fix mode mismatch, add final conversion
150         and keep looping on failure.
152 2016-10-14  David Malcolm  <dmalcolm@redhat.com>
154         * print-rtl-function.c (print_edge): Omit "(flags)" when none are
155         set.
156         (print_rtx_function): Update example in comment for...
157         * print-rtl.c (print_rtx_operand_code_r): In compact mode, print
158         non-virtual pseudos with a '%' sigil followed by the regno, offset
159         by (LAST_VIRTUAL_REGISTER + 1), so that the first non-virtual
160         pseudo is dumped as "%0".
162 2016-10-14  Jakub Jelinek  <jakub@redhat.com>
164         PR middle-end/77959
165         * expr.c (expand_expr_real_1) <case CONST_DECL>: For EXPAND_WRITE
166         return a MEM.
168 2016-10-14  Eric Botcazou  <ebotcazou@adacore.com>
170         * config/sparc/sparc-passes.def: New file.
171         * config/sparc/t-sparc (PASSES_EXTRA): Add sparc-passes.def.
172         * config/sparc/sparc-protos.h (make_pass_work_around_errata): New.
173         * config/sparc/sparc.c (sparc_option_override): Don't register passes.
175 2016-10-14  Pat Haugen  <pthaugen@us.ibm.com>
177         * loop-unroll.c (unroll_loop_runtime_iterations): Condition initial
178         loop peel to loops with exit test at the beginning.
180 2016-10-14  Pat Haugen  <pthaugen@us.ibm.com>
182         PR rtl-optimization/68212
183         * cfgloopmanip.c (duplicate_loop_to_header_edge): Use preheader edge
184         frequency when computing scale factor for peeled copies.
185         * loop-unroll.c (unroll_loop_runtime_iterations): Fix freq/count
186         values for switch/peel blocks/edges.
188 2016-10-14  Pedro Alves  <palves@redhat.com>
190         * coretypes.h (OVERRIDE, FINAL): Delete, moved to include/ansidecl.h.
192 2016-10-14  Catherine Moore  <clm@codesourcery.com>
194         * gcc/config/mips/mips.c (mips_prepare_pch_save): Initialize
195         micromips_globals to zero.
197 2016-10-14  Richard Biener  <rguenther@suse.de>
199         PR tree-optimization/77979
200         * tree-vrp.c (compare_name_with_value): Handle released SSA names
201         in the equivalency sets.
202         (compare_names): Likewise.
204 2016-10-14  Martin Liska  <mliska@suse.cz>
206         * builtins.h(target_char_cst_p): Declare the function.
207         * builtins.c (fold_builtin_memchr): Remove.
208         (target_char_cst_p): Move the function from gimple-fold.c.
209         (fold_builtin_3): Do not call the function.
210         * gimple-fold.c (gimple_fold_builtin_memchr): New function.
211         (gimple_fold_builtin): Call the function.
212         * fold-const-call.c (fold_const_call_1): Handle CFN_BUILT_IN_MEMCHR.
214 2016-10-14  Martin Liska  <mliska@suse.cz>
216         * builtins.c (fold_builtin_strcmp): Remove function.
217         (fold_builtin_strncmp): Likewise.
218         (fold_builtin_2): Remove call of the function.
219         (fold_builtin_3): Likewise.
220         * fold-const-call.c (fold_const_call): Add constant folding
221         for CFN_BUILT_IN_STRCASECMP and CFN_BUILT_IN_STRNCASECMP.
222         * fold-const-call.h (build_cmp_result): Declare the function.
223         * gimple-fold.c (gimple_load_first_char): New function.
224         (gimple_fold_builtin_string_compare): Likewise.
225         (gimple_fold_builtin): Call the function.
227 2016-10-14  Nathan Sidwell  <nathan@acm.org>
229         * gcov-io.c (gcov_open): Deconstify 'mode'.
231 2016-10-14  Martin Liska  <mliska@suse.cz>
233         * fold-const.c (c_getstr): Support of properly \0-terminated
234         string constants.  New argument is added.
235         * fold-const.h: New argument is added.
237 2016-10-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
239         * config/aarch64/aarch64.c (aarch64_print_hint_for_core_or_arch):
240         New function.
241         (aarch64_print_hint_for_core): Likewise.
242         (aarch64_print_hint_for_arch): Likewise.
243         (aarch64_validate_march): Use it.  Fix indentation in type signature.
244         (aarch64_validate_mcpu): Use aarch64_print_hint_for_core_or_arch.
245         (aarch64_validate_mtune): Likewise.
246         (aarch64_handle_attr_arch): Likewise.
247         (aarch64_handle_attr_cpu): Likewise.
248         (aarch64_handle_attr_tune): Likewise.
250 2016-10-14  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
252         * optabs.def: Remove optab function gen_int_libfunc for sdivmod_optab
253         and udivmod_optab.
255 2016-10-13  Andreas Schwab  <schwab@linux-m68k.org>
257         * config/m68k/m68k.c (m68k_option_override): Check
258         opt_fstack_limit_symbol_arg and opt_fstack_limit_register_no
259         instead of stack_limit_rtx.
261 2016-10-13  Jakub Jelinek  <jakub@redhat.com>
263         * dwarf2out.c (gen_member_die): Handle inline static data member
264         definitions.
266 2016-10-13  Nathan Sidwell  <nathan@acm.org>
268         * gcov-io.c (gcov_open): Fix documentation.  Simplify setting
269         gcov_var.mode.  Remove unnecessary fstat.
271 2016-10-13  Segher Boessenkool  <segher@kernel.crashing.org>
273         PR bootstrap/77962
274         * function.c (thread_prologue_and_epilogue_insns): Call all
275         make_*logue_seq in the same order as traditional.  Call them
276         all a second time if shrink_wrapped_separate.
278 2016-10-13  Marek Polacek  <polacek@redhat.com>
280         * Makefile.in (insn-attrtab.o-warn, insn-dfatab.o-warn,
281         insn-latencytab.o-warn, insn-output.o-warn, insn-emit.o-warn): Don't
282         use -Wno-error.
284 2016-10-13  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
286         PR tree-optimization/77937
287         * gimple-ssa-strength-reduction.c (analyze_increments): Set cost
288         to infinite when we have a pointer with an increment of -1.
290 2016-10-13  Thomas Preud'homme  <thomas.preudhomme@arm.com>
292         * coretypes.h: Move MEMMODEL_* macros and enum memmodel definition
293         into ...
294         * memmodel.h: This file.
295         * alias.c, asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c,
296           caller-save.c, calls.c, ccmp.c, cfgbuild.c, cfgcleanup.c,
297           cfgexpand.c, cfgloopanal.c, cfgrtl.c, cilk-common.c, combine.c,
298           combine-stack-adj.c, common/config/aarch64/aarch64-common.c,
299           common/config/arm/arm-common.c, common/config/bfin/bfin-common.c,
300           common/config/c6x/c6x-common.c, common/config/i386/i386-common.c,
301           common/config/ia64/ia64-common.c, common/config/nvptx/nvptx-common.c,
302           compare-elim.c, config/aarch64/aarch64-builtins.c,
303           config/aarch64/aarch64-c.c, config/aarch64/cortex-a57-fma-steering.c,
304           config/arc/arc.c, config/arc/arc-c.c, config/arm/arm-builtins.c,
305           config/arm/arm-c.c, config/avr/avr.c, config/avr/avr-c.c,
306           config/avr/avr-log.c, config/bfin/bfin.c, config/c6x/c6x.c,
307           config/cr16/cr16.c, config/cris/cris.c, config/darwin-c.c,
308           config/darwin.c, config/epiphany/epiphany.c,
309           config/epiphany/mode-switch-use.c,
310           config/epiphany/resolve-sw-modes.c, config/fr30/fr30.c,
311           config/frv/frv.c, config/ft32/ft32.c, config/h8300/h8300.c,
312           config/i386/i386-c.c, config/i386/winnt.c, config/iq2000/iq2000.c,
313           config/lm32/lm32.c, config/m32c/m32c.c, config/m32r/m32r.c,
314           config/m68k/m68k.c, config/mcore/mcore.c,
315           config/microblaze/microblaze.c, config/mmix/mmix.c,
316           config/mn10300/mn10300.c, config/moxie/moxie.c,
317           config/msp430/msp430.c, config/nds32/nds32-cost.c,
318           config/nds32/nds32-intrinsic.c, config/nds32/nds32-md-auxiliary.c,
319           config/nds32/nds32-memory-manipulation.c,
320           config/nds32/nds32-predicates.c, config/nds32/nds32.c,
321           config/nios2/nios2.c, config/nvptx/nvptx.c, config/pa/pa.c,
322           config/pdp11/pdp11.c, config/rl78/rl78.c, config/rs6000/rs6000-c.c,
323           config/rx/rx.c, config/s390/s390-c.c, config/s390/s390.c,
324           config/sh/sh.c, config/sh/sh-c.c, config/sh/sh-mem.cc,
325           config/sh/sh_treg_combine.cc, config/sol2.c, config/spu/spu.c,
326           config/stormy16/stormy16.c, config/tilegx/tilegx.c,
327           config/tilepro/tilepro.c, config/v850/v850.c, config/vax/vax.c,
328           config/visium/visium.c, config/vms/vms-c.c, config/xtensa/xtensa.c,
329           coverage.c, cppbuiltin.c, cprop.c, cse.c, cselib.c, dbxout.c, dce.c,
330           df-core.c, df-problems.c, df-scan.c, dojump.c, dse.c, dwarf2asm.c,
331           dwarf2cfi.c, dwarf2out.c, emit-rtl.c, except.c, explow.c, expmed.c,
332           expr.c, final.c, fold-const.c, function.c, fwprop.c, gcse.c,
333           ggc-page.c, haifa-sched.c, hsa-brig.c, hsa-gen.c, hw-doloop.c,
334           ifcvt.c, init-regs.c, internal-fn.c, ira-build.c, ira-color.c,
335           ira-conflicts.c, ira-costs.c, ira-emit.c, ira-lives.c, ira.c, jump.c,
336           loop-doloop.c, loop-invariant.c, loop-iv.c, loop-unroll.c,
337           lower-subreg.c, lra.c, lra-assigns.c, lra-coalesce.c,
338           lra-constraints.c, lra-eliminations.c, lra-lives.c, lra-remat.c,
339           lra-spills.c, mode-switching.c, modulo-sched.c, omp-low.c, passes.c,
340           postreload-gcse.c, postreload.c, predict.c, print-rtl-function.c,
341           recog.c, ree.c, reg-stack.c, regcprop.c, reginfo.c, regrename.c,
342           reload.c, reload1.c, reorg.c, resource.c, rtl-chkp.c, rtl-tests.c,
343           rtlanal.c, rtlhooks.c, sched-deps.c, sched-rgn.c, sdbout.c,
344           sel-sched-ir.c, sel-sched.c, shrink-wrap.c, simplify-rtx.c,
345           stack-ptr-mod.c, stmt.c, stor-layout.c, target-globals.c,
346           targhooks.c, toplev.c, tree-nested.c, tree-outof-ssa.c,
347           tree-profile.c, tree-ssa-coalesce.c, tree-ssa-ifcombine.c,
348           tree-ssa-loop-ivopts.c, tree-ssa-loop.c, tree-ssa-reassoc.c,
349           tree-ssa-sccvn.c, tree-vect-data-refs.c, ubsan.c, valtrack.c,
350           var-tracking.c, varasm.c: Include memmodel.h.
351         * genattrtab.c (write_header): Include memmodel.h in generated file.
352         * genautomata.c (main): Likewise.
353         * gengtype.c (open_base_files): Likewise.
354         * genopinit.c (main): Likewise.
355         * genconditions.c (write_header): Include memmodel.h earlier in
356         generated file.
357         * genemit.c (main): Likewise.
358         * genoutput.c (output_prologue): Likewise.
359         * genpeep.c (main): Likewise.
360         * genpreds.c (write_insn_preds_c): Likewise.
361         * genrecog.c (write_header): Likewise.
362         * Makefile.in (PLUGIN_HEADERS): Include memmodel.h
364 2016-10-13  David Malcolm  <dmalcolm@redhat.com>
366         * function-tests.c (selftest::test_expansion_to_rtl): Add "true"
367         for new "compact" param of print_rtx_function.  Check for "cinsn"
368         rather than "insn".
369         * print-rtl-function.c (flag_compact): New decl.
370         (print_rtx_function): Add param "compact" and use it to set
371         flag_compact, adding a description of the effect to the leading
372         comment, and updating the example output.
373         * print-rtl.c (flag_compact): New variable.
374         (print_rtx_operand_code_0): Omit the JUMP_LABEL reference in compact
375         mode.
376         (print_rtx_operand_code_i): When printing source locations, wrap
377         xloc.file in quotes.  Don't print INSN_CODEs in compact mode.
378         (print_rtx_operand_code_r): Don't print regnos for hard regs and
379         virtuals in compact mode.
380         (print_rtx_operand_code_u): Don't print insn UIDs in compact mode,
381         apart from in LABEL_REFs.
382         (print_rtx_operand): In case 'w', don't print in hex in compact mode.
383         Don't print basic block ids in compact mode.
384         (print_rtx):  In compact mode, prefix the code of insns with "c",
385         only print the INSN_UID of CODE_LABELs, and omit their LABEL_NUSES.
386         * print-rtl.h (print_rtx_function): Add "compact" param.
388 2016-10-13  Richard Earnshaw  <rearnsha@arm.com>
390         * arm.h (TARGET_VFP): Delete.
391         (TARGET_VFPD32): Remove references to TARGET_VFP.
392         (TARGET_VFP3, TARGET_VFP5): Likewise.
393         (TARGET_VFP_SINGLE, TARGET_VFP_DOUBLE): Likewise.
394         (TARGET_NEON_FP16): Likewise.
395         (TARGET_FMA): Likewise.
396         (TARGET_CRYPTO): Likewise.
397         (TARGET_NEON): Likewise.
398         (SECONDARY_OUTPUT_RELOAD_CLASS): Likewise.
399         (FUNCTION_ARG_REGNO_P): Likewise.
400         * arm.c (arm_option_check_internal): Likewise.
401         (arm_option_override): Likewise.
402         (use_return_insn): Likewise.
403         (arm_function_value_regno_p): Likewise.
404         (arm_apply_result_size): Likewise.
405         (use_vfp_abi): Likewise.
406         (arm_legitimate_address_outer_p): Likewise.
407         (thumb2_legitimate_address_p): Likewise.
408         (arm_legitimate_index_p): Likewise.
409         (thumb2_legitimate_index_p): Likewise.
410         (arm_legitimate_address): Likewise.
411         (arm_get_vfp_saved_size): Likewise.
412         (arm_emit_vfp_multi_reg_pop): Likewise.
413         (arm_get_frame_offsets): Likewise.
414         (arm_save_coproc_regs): Likewise.
415         (arm_hard_regno_mode_ok): Likewise.
416         (arm_expand_epilogue_apcs_frame): Likewise.
417         (arm_expand_epilogue): Likewise.
418         (arm_file_start): Likewise.
419         (arm_conditional_register_usage): Likewise.
420         (arm_validize_comparison): Use vfp_compare_operand directly.
421         * arm-builtins.c (arm_init_builtins): Remove references to TARGET_VFP.
422         (arm_expand_vfp_builtin): Use TARGET_HARD_FLOAT for detecting
423         unsupported usage.
424         (arm_atomic_assign_expand_fenv): Likewise.
425         * arm.md (divsf3): Likewise.
426         (arm_negsi2): Likewise.
427         (absdf2): Likewise.
428         (arm_movdi): Likewise.
429         (arm_movt): Likewise.
430         (cbranchsf4): Change predicate to vfp_compare_operand.
431         (cbranchdf4): Change predicate to vfp_compare_operand.
432         (cstorehf4): Change predicate to vfp_compare_operand.
433         (cstoresf4): Change predicate to vfp_compare_operand.
434         (cstoredf4): Change predicate to vfp_compare_operand.
435         (vfp_pop_multiple_with_writeback): Remove references to TARGET_VFP.
436         (movhi_insn_arch4, movhi_bytes): Likewise.
437         * constraints.md (Dt): Likewise.
438         (Dp): Likewise.
439         * iterators.md (SDF): Likewise.
440         * predicates.md (arm_float_compare_operand): Delete.
441         (const_double_vcvt_power_of_two_reciprocal): Remove references to
442         TARGET_VFP.
443         (const_double_vcvt_power_of_two): Likewise.
444         * thumb2.md thumb2_movsi_insn): Likewise.
445         * vfp.md (arm_movhi_vfp, thumb2_movhi_vfp): Likewise.
446         (movhf_vfp): Likewise.
447         (arm_movsi_vfp, thumb2_movsi_vfp): Likewise.
448         (movdi_vfp, movdi_vfp_cortexa8): Likewise.
449         (movsf_vfp, thumb2_movsf_vfp): Likewise.
450         (movdf_vfp, thumb2_movdf_vfp): Likewise.
451         (movsfcc_vfp, abssf2_vfp, negsf2_vfp, addsf3_vfp): Likewise.
452         (subsf3_vfp, divsf3_vfp): Likewise.
453         (mulsf3_vfp, mulsf3negsf_vfp, negmulsf3_vfp): Likewise.
454         (mulsf3addsf_vfp, (mulsf3subsf_vfp, mulsf3negsfaddsf_vfp): Likewise.
455         (mulsf3negsfsubsf_vfp): Likewise.
456         (truncsisf2_vfp, fixuns_truncsfsi2, floatsisf2_vfp): Likewise.
457         (floatunssisf2, sqrtsf2_vfp): Likewise.
458         (movcc_vfp): Likewise.
459         (cmpsf_split_vfp, cmpsf_trap_split_vfp): Likewise.
460         (cmpsf_vfp, cmpsf_trap_vfp): Likewise.
461         (push_multi_vfp): Likewise.
462         (set_fpscr, get_fpscr): Likewise.
463         * arm-c.c (arm_cpu_builtins): Unconditionally define __VFP_FP__.
465 2016-10-13  Richard Earnshaw  <rearnsha@arm.com>
467         * arm.h (TARGET_VFP): Unconditionally define to 1.
468         (arm_fpu_desc): Remove 'model' field.
469         (TARGET_FPU_MODEL): Delete.
470         * arm.c (all_fpus): Don't initialize the model field.
471         (arm_can_inline_p): Don't check the FPU model.
472         * arm-fpus.def: Remove redundant model field from all FPU
473         descriptions.
475 2016-10-13  Richard Biener  <rguenther@suse.de>
477         PR middle-end/77826
478         * genmatch.c (struct capture): Add value_match member.
479         (commutate): Preserve value_match.
480         (lower_opt_convert): Likewise.
481         (lower_cond): Likewise.
482         (replace_id): Likewise.
483         (struct dt_operand): Add value_match member.
484         (decision_tree::cmp_node): Compare it.
485         (decision_tree::insert_operand): Honor it when finding and
486         when appending a DT_MATCH.
487         (dt_operand::gen_match_op): Generate a type check after
488         operand_equal_p if ! value_match for both GENERIC and GIMPLE.
489         (parser::get_internal_capture_id): New helper.
490         (parser::finish_match_operand): New function lowering @@<id>.
491         (parser::parse_capture): Parse @@<id> as value-match.
492         (parser::parse_expr): Use get_internal_capture_id.
493         (parser::parse_simplify): Call finish_match_operand.
494         (walk_captures): New helper.
495         * match.pd (X - (X / Y) * Y -> X % Y): Use value-matching instead
496         of operand_equal_p.
497         ((X /[ex] A) * A -> X): Likewise.
498         ((X | Y) ^ X -> Y & ~ X): Handle constants properly by using
499         convert[12] and value-matching.
500         ((A | B) & (A | C) ->  A | (B & C)): Likewise.
501         ((X | Y) | Y -> X | Y): Likewise.
502         ((X ^ Y) ^ Y -> X): Likewise.
503         (A - (A & B) -> ~B & A): Likewise.
504         ((T)(P + A) - (T)P -> (T) A): Likewise.
505         ((T)P - (T)(P + A) -> -(T) A): Likewise.
506         ((T)(P + A) - (T)(P + B) -> (T)A - (T)B): Likewise.
507         * doc/match-and-simplify.texi: Amend capture section.
509 2016-10-13  Claudiu Zissulescu  <claziss@synopsys.com>
511         * config/arc/arc.md (umul_600): Remove predicated variant.
512         (umul64_600): Likewise.
514 2016-10-13  Claudiu Zissulescu  <claziss@synopsys.com>
516         * config/arc/arc.h (INSN_LENGTH_ALIGNMENT): Change.
518 2016-10-13  Bin Cheng  <bin.cheng@arm.com>
520         * tree-vect-loop.c (loop_niters_no_overflow): New func.
521         (vect_transform_loop): Call loop_niters_no_overflow.  Pass the
522         no-overflow information to vect_do_peeling_for_loop_bound and
523         vect_gen_vector_loop_niters.
525 2016-10-13  Bin Cheng  <bin.cheng@arm.com>
527         * tree-predcom.c (tree_predictive_commoning_loop): Skip loop that only
528         iterates 1 time.
530 2016-10-13  Bin Cheng  <bin.cheng@arm.com>
532         * tree-vect-loop-manip.c (adjust_vec_debug_stmts): Don't release
533         adjust_vec automatically.
534         (slpeel_add_loop_guard): Remove param cond_expr_stmt_list.  Rename
535         param exit_bb to guard_to.
536         (slpeel_checking_verify_cfg_after_peeling):
537         (set_prologue_iterations):
538         (create_lcssa_for_virtual_phi): New func which is factored out from
539         slpeel_tree_peel_loop_to_edge.
540         (slpeel_tree_peel_loop_to_edge):
541         (iv_phi_p): New func.
542         (vect_can_advance_ivs_p): Call iv_phi_p.
543         (vect_update_ivs_after_vectorizer): Call iv_phi_p.  Directly insert
544         new gimple stmts in basic block.
545         (vect_do_peeling_for_loop_bound):
546         (vect_do_peeling_for_alignment):
547         (vect_gen_niters_for_prolog_loop): Rename to...
548         (vect_gen_prolog_loop_niters): ...Rename from.  Change parameters and
549         adjust implementation.
550         (vect_update_inits_of_drs): Fix code style issue.  Convert niters to
551         sizetype if necessary.
552         (vect_build_loop_niters): Move to here from tree-vect-loop.c.  Change
553         it to external function.
554         (vect_gen_scalar_loop_niters, vect_gen_vector_loop_niters): New.
555         (vect_gen_vector_loop_niters_mult_vf): New.
556         (slpeel_update_phi_nodes_for_loops): New.
557         (slpeel_update_phi_nodes_for_guard1): Reimplement.
558         (find_guard_arg, slpeel_update_phi_nodes_for_guard2): Reimplement.
559         (slpeel_update_phi_nodes_for_lcssa, vect_do_peeling): New.
560         * tree-vect-loop.c (vect_build_loop_niters): Move to file
561         tree-vect-loop-manip.c
562         (vect_generate_tmps_on_preheader): Delete.
563         (vect_transform_loop): Rename vectorization_factor to vf.  Call
564         vect_do_peeling instead of vect_do_peeling-* functions.
565         * tree-vectorizer.h (vect_do_peeling): New decl.
566         (vect_build_loop_niters, vect_gen_vector_loop_niters): New decls.
567         (vect_do_peeling_for_loop_bound): Delete.
568         (vect_do_peeling_for_alignment): Delete.
570 2016-10-13  Bin Cheng  <bin.cheng@arm.com>
572         * tree-vect-loop-manip.c (slpeel_tree_duplicate_loop_to_edge_cfg): Put
573         duplicated loop after its preheader and after the original loop.
575 2016-10-13  Bin Cheng  <bin.cheng@arm.com>
577         * tree-vect-loop.c (vect_analyze_loop_2): Check and skip loop if it
578         has no enough iterations for LOOP_VINFO_PEELING_FOR_GAPS.
580 2016-10-13  Bin Cheng  <bin.cheng@arm.com>
582         * tree-vect-loop.c (vectorizable_live_operation): Support handling
583         for live variable outside loop but not in lcssa form.
585 2016-10-13  Bin Cheng  <bin.cheng@arm.com>
587         * cfg.c (reset_original_copy_tables): New func.
588         * cfg.h (reset_original_copy_tables): New decl.
590 2016-10-13  Jakub Jelinek  <jakub@redhat.com>
592         PR c/77946
593         * tree.h (FALLTHROUGH_LABEL_P): Use private_flag instead of
594         public_flag.
595         * varasm.c (default_binds_local_p_3): Formatting fix.
597 2016-10-13  Bin Cheng  <bin.cheng@arm.com>
599         * tree-vect-loop-manip.c (slpeel_can_duplicate_loop_p): Fix code
600         style issue.
601         (vect_do_peeling_for_loop_bound, vect_do_peeling_for_alignment):
602         Remove useless code.
604 2016-10-13  Martin Liska  <mliska@suse.cz>
606         PR tree-optimization/77943
607         * tree-ssa-tail-merge.c (merge_stmts_p): Do not merge BBs with
608         a different EH landing pads.
610 2016-10-13  Jakub Jelinek  <jakub@redhat.com>
612         PR target/77957
613         * hooks.h (hook_tree_void_null): Declare.
614         * hooks.c (hook_tree_void_null): New function.
615         * langhooks.c (lhd_return_null_tree_v): Remove.
616         * langhooks-def.h (lhd_return_null_tree_v): Remove.
617         * cfgexpand.c (stack_protect_prologue): If guard_decl is NULL,
618         set y to const0_rtx.
619         * function.c (stack_protect_epilogue): Likewise.
620         * config/tilepro/tilepro.c (TARGET_STACK_PROTECT_GUARD): Redefine
621         if TARGET_THREAD_SSP_OFFSET is defined.
622         * config/s390/s390.c (TARGET_STACK_PROTECT_GUARD): Likewise.
623         * config/sparc/sparc.c (TARGET_STACK_PROTECT_GUARD): Likewise.
624         * config/tilegx/tilegx.c (TARGET_STACK_PROTECT_GUARD): Likewise.
625         * config/rs6000/rs6000.c (TARGET_STACK_PROTECT_GUARD): Likewise.
626         * config/i386/i386.c (TARGET_STACK_PROTECT_GUARD): Likewise.
627         (ix86_stack_protect_guard): New function.
629 2016-10-13  Richard Biener  <rguenther@suse.de>
631         * dwarf2out.c (tree_add_const_value_attribute): Do not try
632         rtl_for_decl_init during early phase.
633         (gen_variable_die): Do not create locations during early phase.
634         (gen_label_die): Likewise.
635         (decls_for_scope): Do not waste time handling BLOCK_NONLOCALIZED_VARs
636         twice.
638 2016-10-12  Richard Biener  <rguenther@suse.de>
640         * tree-vrp.c (evrp_dom_walker::try_find_new_range): Renamed from
641         try_add_new_range and made to eturn new range.
642         (evrp_dom_walker::before_dom_children): Push op1 value range before
643         pushing op0 value range.
645 2016-10-12  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
647         PR tree-optimization/77937
648         * gimple-ssa-strength-reduction.c (analyze_increments): Use
649         POINTER_TYPE_P on the candidate type to determine whether
650         candidates in this chain require pointer arithmetic.
652 2016-10-12  Eric Botcazou  <ebotcazou@adacore.com>
654         * config/visium/visium.c (visium_gimplify_va_arg): Emit a big-endian
655         correction if the type is smaller than a word.
656         (visium_select_cc_mode): Add ... fall through ... comment.
658 2016-10-12  Segher Boessenkool  <segher@kernel.crashing.org>
660         * config/rs6000/rs6000.c (machine_function): Add new fields
661         gpr_is_wrapped_separately and lr_is_wrapped_separately.
662         (TARGET_SHRINK_WRAP_GET_SEPARATE_COMPONENTS,
663         TARGET_SHRINK_WRAP_COMPONENTS_FOR_BB,
664         TARGET_SHRINK_WRAP_DISQUALIFY_COMPONENTS,
665         TARGET_SHRINK_WRAP_EMIT_PROLOGUE_COMPONENTS,
666         TARGET_SHRINK_WRAP_EMIT_EPILOGUE_COMPONENTS,
667         TARGET_SHRINK_WRAP_SET_HANDLED_COMPONENTS): Define.
668         (rs6000_get_separate_components): New function.
669         (rs6000_components_for_bb): New function.
670         (rs6000_disqualify_components): New function.
671         (rs6000_emit_prologue_components): New function.
672         (rs6000_emit_epilogue_components): New function.
673         (rs6000_set_handled_components): New function.
674         (rs6000_emit_prologue): Don't emit LR save if lr_is_wrapped_separately.
675         Don't emit GPR saves if gpr_is_wrapped_separately for that register.
676         (restore_saved_lr): Don't restore LR if lr_is_wrapped_separately.
677         (rs6000_emit_epilogue): Don't emit GPR restores if
678         gpr_is_wrapped_separately for that register.  Don't make a
679         REG_CFA_RESTORE note for registers we did not restore, either.
681 2016-10-12  Segher Boessenkool  <segher@kernel.crashing.org>
683         * function.c (thread_prologue_and_epilogue_insns): Call
684         try_shrink_wrapping_separate.  Compute the prologue_seq afterwards,
685         if it has possibly changed.  Compute the split_prologue_seq and
686         epilogue_seq later, too.
687         * shrink-wrap.c: #include cfgbuild.h and insn-config.h.
688         (dump_components): New function.
689         (struct sw): New struct.
690         (SW): New function.
691         (init_separate_shrink_wrap): New function.
692         (fini_separate_shrink_wrap): New function.
693         (place_prologue_for_one_component): New function.
694         (spread_components): New function.
695         (disqualify_problematic_components): New function.
696         (emit_common_heads_for_components): New function.
697         (emit_common_tails_for_components): New function.
698         (insert_prologue_epilogue_for_components): New function.
699         (try_shrink_wrapping_separate): New function.
700         * shrink-wrap.h: Declare try_shrink_wrapping_separate.
702 2016-10-12  Segher Boessenkool  <segher@kernel.crashing.org>
704         * regrename.c (build_def_use): Invalidate chains that have a
705         REG_CFA_RESTORE on some instruction.
707 2016-10-12  Segher Boessenkool  <segher@kernel.crashing.org>
709         * dce.c (delete_unmarked_insns): Don't delete instructions with
710         a REG_CFA_RESTORE note.
712 2016-10-12  Segher Boessenkool  <segher@kernel.crashing.org>
714         * common.opt (-fshrink-wrap-separate): New flag.
715         * doc/invoke.texi: Document it.
716         * doc/tm.texi.in (Shrink-wrapping separate components): New subsection.
717         * doc/tm.texi: Regenerate.
718         * emit-rtl.h (struct rtl_data): New field shrink_wrapped_separate.
719         * target.def (shrink_wrap): New hook vector.
720         (get_separate_components, components_for_bb, disqualify_components,
721         emit_prologue_components, emit_epilogue_components,
722         set_handled_components): New hooks.
724 2016-10-12  Segher Boessenkool  <segher@kernel.crashing.org>
726         * config/rs6000/rs6000.c (rs6000_return_in_memory): Warn for
727         vector return by reference only if -Wpsabi.
728         (rs6000_pass_by_reference): Similarly, for argument passing.
730 2016-10-12  David Malcolm  <dmalcolm@redhat.com>
732         * function-tests.c: Include "print-rtl.h".
733         (selftest::test_expansion_to_rtl): Call print_rtx_function on the
734         function, and verify what is dumped.
735         * print-rtl-function.c (print_edge): New function.
736         (begin_any_block): New function.
737         (end_any_block): New function.
738         (can_have_basic_block_p): New function.
739         (print_rtx_function): Track the basic blocks of insns in the
740         chain, wrapping those that are within blocks within "(block)"
741         directives.  Remove the "(cfg)" directive.
743 2016-10-12  David Malcolm  <dmalcolm@redhat.com>
745         * selftest.c (selftest::read_file): New function.
746         (selftest::test_read_file): New function.
747         (selftest::selftest_c_tests): Call test_read_file.
748         * selftest.h (selftest::read_file): New decl.
750 2016-10-12  Richard Biener  <rguenther@suse.de>
752         PR debug/77947
753         * cgraphunit.c (analyze_functions): Preserve cgraph nodes
754         function context.
756 2016-10-12  Thomas Schwinge  <thomas@codesourcery.com>
758         * lto-streamer.c: Fix LTO_STREAMER_DEBUG build.
760         * dwarf2out.c (dwarf2_lineno_debug_hooks): Use
761         dwarf2out_assembly_start.
763         * Makefile.in (SELFTEST_FLAGS): Add -nostdinc.
765         * Makefile.in (SELFTEST_FLAGS): New variable.
766         (s-selftest, selftest-gdb, selftest-valgrind): Use it.
768         * vmsdbgout.c (vmsdbg_debug_hooks): Add filename parameter to
769         early_finish hook.
771 2016-10-12  Georg-Johann Lay  <avr@gjlay.de>
773         * rtl.h (struct rtx_def): Comment how RTX_FLAGS will be
774         dumped in RTL dumps.
776 2016-10-12  Martin Liska  <mliska@suse.cz>
778         * gimple-fold.c (create_tmp_reg_or_ssa_name): New function.
779         (gimple_fold_builtin_memory_op): Use the function.
780         (gimple_fold_builtin_strchr): Likewise.
781         (gimple_fold_builtin_strcat): Likewise.
782         (gimple_build): Likewise.
784 2016-10-12  Nathan Sidwell  <nathan@acm.org>
786         * diagnostic.c (diagnostc_report_diagnostic): Fix formatting.
788 2016-10-12  Pierre-Marie de Rodat  <derodat@adacore.com>
790         * dwarf2out.c (int_loc_descriptor): Generate opcodes for another
791         equivalent 32-bit constant (modulo 2**32) when that yields
792         smaller instructions.
793         (size_of_int_loc_descriptor): Update accordingly.
795 2016-10-12  Pierre-Marie de Rodat  <derodat@adacore.com>
797         * dwarf2out.c (dwarf2out_early_global_decl): For nested
798         functions, call dwarf2out_decl on the parent function first.
800 2016-10-12  Richard Biener  <rguenther@suse.de>
802         * match.pd ((X /[ex] A) * A -> X): Remove unnecessary constraint
803         on the conversion.
805 2016-10-12  Richard Biener  <rguenther@suse.de>
807         * tree-ssa-propagate.c
808         (substitute_and_fold_dom_walker::before_dom_children): Do not
809         ignore ASSERT_EXPRs but only preserve them.
810         * tree-vrp.c (remove_range_assertions): Deal with ASSERT_EXPRs
811         that have been propagated into.
812         (vrp_finalize): Enable DCE for substitute_and_fold.
814 2016-10-12  Richard Biener  <rguenther@suse.de>
816         PR tree-optimization/77920
817         * tree-vrp.c (simplify_div_or_mod_using_ranges): Simplify.
818         (simplify_min_or_max_using_ranges): Pass in gsi and use it.
819         (simplify_abs_using_ranges): Likewise.
820         (simplify_conversion_using_ranges): Likewise.
821         (simplify_stmt_using_ranges): Adjust.
823 2016-10-12  Jakub Jelinek  <jakub@redhat.com>
825         PR tree-optimization/77929
826         * tree-ssa-reassoc.c (optimize_range_tests_var_bound): Handle
827         (*ops)[ranges[i].idx]->op != ranges[i].exp case.
829 2016-10-12  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
831         PR target/77934
832         * config/rs6000/vmx.md (vsx_concat_<mode>): The mtvsrdd instruction
833         needs a base register for arg 1.
835 2016-10-12  Jakub Jelinek  <jakub@redhat.com>
837         * common.opt (Wimplicit-fallthrough) Turn into alias to
838         -Wimplicit-fallthrough=3.  Remove EnabledBy.
839         (Wimplicit-fallthrough=): New option.
840         * gimplify.c (warn_implicit_fallthrough_r): Use
841         OPT_Wimplicit_fallthrough_ instead of OPT_Wimplicit_fallthrough.
842         * doc/invoke.texi (-Wimplicit-fallthrough): Document as alias
843         to -Wimplicit-fallthrough=3.
844         (-Wimplicit-fallthrough=): Document.
846 2016-10-11  Eric Botcazou  <ebotcazou@adacore.com>
848         * config/sparc/sparc.c (emit_scc_insn): Remove direct support for EQ
849         and GEU in DImode if TARGET_SUBXC.
850         * config/sparc/sparc.md (seqdi<W:mode>_zero): Remove TARGET_SUBXC.
851         (seqdi<W:mode>_zero_subxc): Delete.
852         (neg_seqdi<W:mode>_zero): Remove TARGET_VIS3.
853         (neg_seqdi<W:mode>_zero_vis3): Delete.
854         (plus_seqdi<W:mode>_zero): Likewise.
855         (minus_seqdi<W:mode>_zero): Likewise.
856         (plus_plus_sltu<W:mode>): Accept only register.
857         (addx<W:mode>): Likewise.
858         (plus_sltu<W:mode>_vis3): Likewise.
859         (plus_plus_sltu<W:mode>_vis3): Likewise.
860         (neg_sgeu<W:mode>_vis3): Delete.
861         (minus_sgeu<W:mode>_vis3): Likewise.
862         (addxc<W:mode>): Accept only registers.
863         (neg_sltu<W:mode>_subxc): Write %%g0 instead of 0.
864         (minus_neg_sltu<W:mode>_subxc): Accept only register.
865         (neg_plus_sltu<W:mode>_subxc): Likewise.
866         (minus_sltu<W:mode>_subxc): Write %%g0 instead of 0.
867         (minus_minus_sltu<W:mode>_subxc): Accept only register.
868         (sgeu<W:mode>_insn_subxc): Delete.
869         (plus_sgeu<W:mode>_subxc): Likewise.
870         (subxc<W:mode>): Accept only register.
871         (scc splitter): Split always GEU again.
873 2016-10-11  Jeff Law  <law@redhat.com>
875         PR tree-optimization/77424
876         * tree-ssa-threadupdate.c (thread_through_all_blocks): Remove
877         dead conditionals.  Assert that all e->aux fields are NULL.
879 2016-10-11  David Malcolm  <dmalcolm@redhat.com>
881         * print-rtl.c (print_rtx): Rename "i" to "idx".  Split out the
882         operand-printing "switch" statement into...
883         (print_rtx_operand_code_0): ...this new function, ...
884         (print_rtx_operand_code_e): ...this new function, ...
885         (print_rtx_operand_codes_E_and_V): ...this new function, ...
886         (print_rtx_operand_code_i): ...this new function, ...
887         (print_rtx_operand_code_r): ...this new function, ...
888         (print_rtx_operand_code_u): ...this new function, ...
889         (print_rtx_operand): ...and this new function.
891 2016-10-11  Uros Bizjak  <ubizjak@gmail.com>
893         * config/alpha/alpha-passes.def: New file.
894         * config/alpha/t-alpha: New file.
895         * config/alpha/alpha-protos.h (gcc::context, rtl_opt_pass): Declare.
896         (make_pass_handle_trap_shadows): New prototype.
897         (make_pass_align_insns): Ditto.
898         * config/alpha/alpha.c (alpha_option_override): Don't register
899         passes here.
900         * config.gcc (alpha*-*-*) Add alpha/t-alpha to tmake_file.
902 2016-10-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
904         PR target/77924
905         * config/rs6000/rs6000.c (rs6000_init_builtins): Only create the
906         distinct __ibm128 IBM extended double type if long doubles are
907         128-bits and the default format for long double is IEEE 128-bit.
909 2016-10-11  Richard Biener  <rguenther@suse.de>
911         * dwarf2out.c (DEBUG_STR_OFFSETS_SECTION): Remove conditional.
912         (init_sections_and_labels): Use DEBUG_DWO_STR_OFFSETS_SECTION.
913         (verify_die): New function.
914         (dwarf2out_finish): Call it.
915         (output_line_info): Handle case of -gsplit-dwarf without
916         DWARF2_ASM_LINE_DEBUG_INFO.
918 2016-10-11  Richard Biener  <rguenther@suse.de>
920         PR debug/77931
921         * gimple-low.c (lower_gimple_bind): Handle arbitrary common
922         sub-chains of BLOCK_VARS and gimple_bind_vars.
924 2016-10-11  Venkataramanan Kumar  <Venkataramanan.kumar@amd.com>
926         * config/i386/znver1.md : Fix imov/imovx load type reservations.
928 2016-10-11  Eric Botcazou  <ebotcazou@adacore.com>
930         * config/sparc/sparc.opt (msubxc): New option.
931         * doc/invoke.texi (SPARC options): Document it and tidy up.
932         * doc/tm.texi.in (Condition Codes): Adjust SPARC example.
933         * doc/tm.texi: Regenerate.
934         * config/sparc/sparc-modes.def (CC_NOOV): Rename into...
935         (CCNZ): ...this.
936         (CCX_NOOV): Rename into...
937         (CCXNZ): ...this.
938         (CCC): New.
939         (CCXC): Likewise.
940         * config/sparc/predicates.m (fcc_register_operand): Simplify.
941         (fcc0_register_operand): Likewise.
942         (icc_register_operand): New.
943         (icc_or_fcc_register_operand): Simplify.
944         (nz_comparison_operator): New.
945         (c_comparison_operator): Likewise.
946         (noov_compare_operator): Rename into...
947         (icc_comparison_operator): ...this.  Use above predicates.
948         (noov_compare64_operator): Rename into...
949         (v9_comparison_operator): ...this and tidy up.
950         (fcc_comparison_operator): New.
951         (icc_or_fcc_comparison_operator): Likewise.
952         (v9_register_compare_operator): Rename info...
953         (v9_register_comparison_operator): ...this.
954         * config/sparc/sparc.c (TARGET_FIXED_CONDITION_CODE_REGS): Define.
955         (sparc_option_override): Remove redundant VIS masks and add MASK_SUBXC
956         for Niagara-7.
957         (sparc_fixed_condition_code_regs): New function.
958         (select_cc_mode): Remove ATTRIBUTE_UNUSED.  Adjust for CCNZ/CCXNZ
959         renaming and add support for CCC/CCXC.
960         (output_cbranch): Likewise.
961         (sparc_print_operand): Likewise.
962         (gen_v9_scc): Remove obsolete assertion.
963         (emit_scc_insn): Emit RTL directly for EQ and NE.  Add direct support
964         for EQ in DImode if TARGET_SUBXC.  Remove test on TARGET_VIS3 for GEU.
965         (output_cbcond): Remove bogus handling of CC modes.
966         (sparc_register_move_cost): Return 100 for NO_REGS.
967         * config/sparc/sparc.md (W): New mode iterator.
968         (length): Adjust for noov_compare64_operator renaming.
969         (cmpsi_sne): New instruction.
970         (cmpdi_sne): Likewise.
971         (seqdi_special): Delete.
972         (seqdi_special): Likewise.
973         (snesi<P:mode>_special): Likewise.
974         (snedi_special): Likewise.
975         (snedi_special_vis3): Likewise.
976         (snesi patterns): Use W iterator.
977         (snedi patterns): Likewise.  Add TARGET_SUBXC patterns.
978         (sltu patterns): Likewise.
979         (sgeu patterns): Likewise.
980         (scc splitter): Do not split GEU in DImode if TARGET_SUBXC.
981         (normal_branch): Use icc_comparison_operator predicate.
982         (inverted_branch): Likewise.
983         (cbcond_sp32): Use comparison_operator predicate.
984         (cbcond_sp64): Likewise.
985         (normal_int_branch_sp64): Adjust for renaming
986         (inverted_int_branch_sp64): Likewise.
987         (mov<I:mode>_cc_reg_sp64): Likewise.
988         (movsf_cc_reg_sp6): Likewise.
989         (movdf_cc_reg_sp64): Likewise.
990         (movtf_cc_reg_hq_sp64): Likewise.
991         (movtf_cc_reg_sp64): Likewise.
992         (mov<I:mode>_cc_v9): Use icc_or_fcc_comparison_operator predicate.
993         (movsf_cc_v9): Likewise.
994         (movdf_cc_v9): Likewise.
995         (movtf_cc_hq_v9): Likewise.
996         (movtf_cc_v9): Likewise.
997         (adddi3): Call gen_adddi3_sp32.
998         (adddi3_insn_sp32): Rename to...
999         (adddi3_sp32): ...this.  Accept only register_operand as operand #1
1000         and use CCCmode for the carry.
1001         (addx_extend_sp32): Use CCCmode for the carry.
1002         (addx_extend_sp64): Delete.
1003         (adddi3_extend_sp32): Use CCCmode for the carry.
1004         (cmp_plus patterns): Use CCNZ/CCXNZ mode and add C variants.
1005         (subdi3): Call gen_subdi3_sp32.
1006         (subdi3_insn_sp32): Rename to...
1007         (subdi3_sp32): ...this and use CCmode for the carry.
1008         (subx_extend_sp32): Use CCCmode for the carry.
1009         (subx_extend_sp64): Delete.
1010         (subdi3_extend_sp32): Use CCmode for the carry.
1011         (cmp_minus patterns): Use CCNZ/CCXNZ mode and add C variants.
1012         (negdi3): Call gen_negdi3_sp32.
1013         (negdi3_sp32): Use CCCmode for the carry.
1014         (cmp_neg patterns): Use CCNZ/CCXNZ mode and add C variants.
1015         (cmp_nz_ashift_1): Use CCNZ mode.
1016         (cmp_nz_set_ashift_1): Likewise.
1017         (ctrapsi4): Use comparison_operator predicate.
1018         (ctrapdi4): Likewise.
1019         (trapsi_insn): Use icc_comparison_operator predicate.
1020         (trapdi_insn): Likewise.
1021         (edge8 patterns): Use CCNZmode.
1022         (edge16 patterns): Likewise.
1023         (edge32 patterns): Likewise.
1025 2016-10-11  Eric Botcazou  <ebotcazou@adacore.com>
1027         * config/visium/visium-modes.def (CC_NOOV): Rename into...
1028         (CCNZ): ...this.
1029         (CC_BTST): Rename into...
1030         (CCC): ...this.
1031         * config/visium/predicates.md (real_add_operand): New.
1032         (visium_btst_operator): Rename into...
1033         (visium_equality_comparison_operator): ...this.
1034         (visium_noov_operator): Rename into...
1035         (visium_nz_comparison_operator): ...this.
1036         (visium_c_comparison_operator): New.
1037         (visium_branch_operator): Adjust and deal with all CC modes.
1038         * config/visium/visium.c (visium_adjust_cost): Adjust.
1039         (visium_split_double_add): Use the *_set_carry patterns.
1040         (visium_select_cc_mode): Add support for CCC mode and adjust.
1041         (output_cbranch): Adjust and use the carry-based operators for
1042         floating-point comparisons.
1043         * config/visium/visium.md (flags_subst_arith): Adjust.
1044         (addsi3_insn_set_carry): New instruction.
1045         (subsi3_insn_set_carry): Likewise.
1046         (negsi2_insn_set_carry): Likewise.
1047         (btst): Adjust.
1048         (cmp<mode>_sne): Likewise.
1049         (cbranch<mode>4): Use ordered_comparison_operator.
1050         (cbranch<mode>4_insn): Likewise.
1051         (cbranchsi4_btst_insn): Adjust.
1053 2016-10-11  Tom de Vries  <tom@codesourcery.com>
1055         PR middle-end/77558
1056         * builtins.c (std_canonical_va_list_type): Remove RECORD_TYPE
1057         special-casing.
1059 2016-10-11  Eric Botcazou  <ebotcazou@adacore.com>
1061         * tree.h (build_complex_type): Add second parameter with default.
1062         * tree.c (build_complex_type): Add NAMED second parameter and adjust
1063         recursive call.  Create a TYPE_DECL only if NAMED is true.
1064         (build_common_tree_nodes): Pass true in calls to build_complex_type.
1066 2016-10-11  Georg-Johann Lay  <avr@gjlay.de>
1068         New avr-passes.def to register AVR specific passes.
1070         * config/avr/avr-passes.def: New file.
1071         * config/avr/t-avr (PASSES_EXTRA): Add avr-passes.def.
1072         * config/avr/avr-protos.h (gcc::context, rtl_opt_pass): Declare.
1073         (make_avr_pass_recompute_note): New proto.
1074         * config/avr/avr.c (make_avr_pass_recompute_notes): New function.
1075         (avr_pass_recompute_notes): Use anonymous namespace.
1076         (avr_register_passes): Remove function...
1077         (avr_option_override): ...and its call.
1079 2016-10-11  Robert Suchanek  <robert.suchanek@imgtec.com>
1081         * config/mips/mips-cpus.def: Replace PTF_AVOID_BRANCHLIKELY with
1082         PTF_AVOID_BRANCHLIKELY_ALWAYS for generic architecture and with
1083         PTF_AVOID_BRANCHLIKELY_SPEED for others.
1084         (mips2, mips3, mips4): Add PTF_AVOID_BRANCHLIKELY_SIZE to tune
1085         flags.
1086         * config/mips/mips.c (mips_option_override): Enable the branch
1087         likely depending on the tune flags and optimization level.
1088         * config/mips/mips.h (PTF_AVOID_BRANCHLIKELY): Remove.
1089         (PTF_AVOID_BRANCHLIKELY_SPEED): Define.
1090         (PTF_AVOID_BRANCHLIKELY_SIZE): Likewise.
1091         (PTF_AVOID_BRANCHLIKELY_ALWAYS): Likewise.
1093 2016-10-11  Richard Biener  <rguenther@suse.de>
1095         * lto-streamer-out.c (collect_block_tree_leafs): New helper.
1096         (output_function): Properly stream the whole block tree.
1097         * lto-streamer-in.c (input_function): Likewise.
1099 2016-10-11  Marek Polacek  <polacek@redhat.com>
1101         * Makefile.in (C_COMMON_OBJS): Add c-family/c-warn.o.
1103 2016-10-11  Kugan Vivekanandarajah  <kuganv@linaro.org>
1105         * tree-vrp.c (evrp_dom_walker::try_add_new_range): New.
1106         (evrp_dom_walker::before_dom_children): Infer and push new value
1107         ranges for x in y < x.
1109 2016-10-10  Joseph Myers  <joseph@codesourcery.com>
1111         PR target/77586
1112         * config/ia64/ia64.c (ia64_libgcc_floating_mode_supported_p)
1113         (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P): Remove.
1114         * config/ia64/elf.h (IA64_NO_LIBGCC_TFMODE): Likewise.
1115         * config/ia64/freebsd.h (IA64_NO_LIBGCC_TFMODE): Likewise.
1116         * config/ia64/vms.h (IA64_NO_LIBGCC_XFMODE)
1117         (IA64_NO_LIBGCC_TFMODE): Likewise.
1119 2016-10-11  Kugan Vivekanandarajah  <kuganv@linaro.org>
1121         * tree-vrp.c (vrp_intersect_ranges_1): Allocate bitmap before
1122           copying.
1124 2016-10-10  Andreas Tobler  <andreast@gcc.gnu.org>
1126         * config.gcc: Add aarch64-*-freebsd* support.
1127         * config.host: Likewise.
1128         * config/aarch64/aarch64-freebsd.h: New file.
1129         * config/aarch64/t-aarch64-freebsd: Ditto.
1131 2016-10-10  Jeff Law  <law@redhat.com>
1133         PR tree-optimization/71947
1134         * tree-ssa-dom.c (cprop_into_stmt): Avoid replacing A with B, then
1135         B with A within a single statement.
1137 2016-10-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1139         PR tree-optimization/77824
1140         * gimple-ssa-strength-reduction.c (stmt_cost): Explicitly return
1141         zero cost for copies.
1142         (find_candidates_dom_walker::before_dom_children): Replace
1143         MODIFY_EXPR with SSA_NAME.
1144         (replace_mult_candidate): Likewise.
1145         (replace_profitable_candidates): Likewise.
1147 2016-10-10  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
1149         * config/s390/s390.h: Wrap more macros args in brackets and fix
1151 2016-10-10  Georg-Johann Lay  <avr@gjlay.de>
1153         * config/avr/gen-avr-mmcu-texi.c (string.h): Include.
1155 2016-10-10  Andreas Schwab  <schwab@suse.de>
1157         PR target/77738
1158         * config/ia64/ia64.md ("doloop_end"): Reject if mode of loop
1159         pseudo is not DImode.
1161 2016-10-10  Claudiu Zissulescu  <claziss@synopsys.com>
1163         * common/config/arc/arc-common.c (arc_option_optimization_table):
1164         Remove compact casesi option.
1165         * config/arc/arc.c (arc_override_options): Use compact casesi
1166         option only for pre-ARCv2 cores.
1167         * doc/invoke.texi (mcompact-casesi): Update text.
1169 2016-10-09  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
1171         * config/rs6000/rs6000.h (TARGET_EFFICIENT_OVERLAPPING_UNALIGNED):
1172         Add macro to say we can efficiently handle overlapping unaligned
1173         loads.
1174         * config/rs6000/rs6000.c (expand_block_compare): Avoid generating
1175         poor code for processors older than p8.
1177 2016-10-09  Eric Botcazou  <ebotcazou@adacore.com>
1179         * gen-pass-instances.awk: Remove GNUism.
1181 2016-10-09  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
1183         * ipa-prop.c (ipcp_transform_function): Set fields m_vr and bits to
1184         NULL of (*ipcp_transformations)][node->uid].
1186 2016-10-09  John David Anglin  <danglin@gcc.gnu.org>
1188         * config/pa/pa.h (BIGGEST_ALIGNMENT): Adjust comment.
1189         (MALLOC_ABI_ALIGNMENT): Define.
1191 2016-10-09  Jakub Jelinek  <jakub@redhat.com>
1193         * tree-ssa.c (target_for_debug_bind, verify_phi_args,
1194         ssa_undefined_value_p, maybe_optimize_var): Use VAR_P and/or
1195         VAR_OR_FUNCTION_DECL_P macros.
1196         * tree-chkp.c (chkp_register_var_initializer, chkp_make_static_bounds,
1197         chkp_get_bounds_for_decl_addr, chkp_parse_array_and_component_ref,
1198         chkp_find_bounds_1): Likewise.
1199         * ipa-polymorphic-call.c (decl_maybe_in_construction_p): Likewise.
1200         * hsa-gen.c (get_symbol_for_decl): Likewise.
1201         * cgraphunit.c (check_global_declaration, analyze_functions,
1202         handle_alias_pairs, thunk_adjust, cgraph_node::expand_thunk):
1203         Likewise.
1204         * gimple-fold.c (can_refer_decl_in_current_unit_p,
1205         canonicalize_constructor_val, gimple_get_virt_method_for_vtable):
1206         Likewise.
1207         * tree.c (set_decl_section_name, copy_node_stat,
1208         need_assembler_name_p, free_lang_data_in_decl, find_decls_types_r,
1209         merge_dllimport_decl_attributes, handle_dll_attribute,
1210         decl_init_priority_insert, auto_var_in_fn_p, array_at_struct_end_p,
1211         verify_type): Likewise.
1212         * gimple-ssa-isolate-paths.c (find_implicit_erroneous_behavior,
1213         find_explicit_erroneous_behavior): Likewise.
1214         * sdbout.c (sdbout_toplevel_data, sdbout_late_global_decl): Likewise.
1215         * ipa.c (process_references): Likewise.
1216         * tree-chkp-opt.c (chkp_get_check_result): Likewise.
1217         * varasm.c (get_block_for_decl, use_blocks_for_decl_p, make_decl_rtl,
1218         notice_global_symbol, assemble_variable, mark_decl_referenced,
1219         build_constant_desc, output_constant_def_contents, do_assemble_alias,
1220         make_decl_one_only, default_section_type_flags,
1221         categorize_decl_for_section, default_encode_section_info): Likewise.
1222         * trans-mem.c (requires_barrier): Likewise.
1223         * gimple-expr.c (mark_addressable): Likewise.
1224         * cfgexpand.c (add_scope_conflicts_1, expand_one_var,
1225         expand_used_vars_for_block, clear_tree_used, stack_protect_decl_p,
1226         expand_debug_expr): Likewise.
1227         * tree-dump.c (dequeue_and_dump): Likewise.
1228         * ubsan.c (instrument_bool_enum_load): Likewise.
1229         * tree-pretty-print.c (print_declaration): Likewise.
1230         * simplify-rtx.c (delegitimize_mem_from_attrs): Likewise.
1231         * tree-ssa-uninit.c (warn_uninitialized_vars): Likewise.
1232         * asan.c (asan_protect_global, instrument_derefs): Likewise.
1233         * tree-into-ssa.c (rewrite_stmt, maybe_register_def,
1234         pass_build_ssa::execute): Likewise.
1235         * var-tracking.c (var_debug_decl, track_expr_p): Likewise.
1236         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost, split_address_cost):
1237         Likewise.
1238         * ipa-split.c (test_nonssa_use, consider_split, mark_nonssa_use):
1239         Likewise.
1240         * tree-inline.c (insert_debug_decl_map, remap_ssa_name,
1241         can_be_nonlocal, remap_decls, copy_debug_stmt,
1242         initialize_inlined_parameters, add_local_variables,
1243         reset_debug_binding, replace_locals_op): Likewise.
1244         * dse.c (can_escape): Likewise.
1245         * ipa-devirt.c (compare_virtual_tables, referenced_from_vtable_p):
1246         Likewise.
1247         * tree-diagnostic.c (default_tree_printer): Likewise.
1248         * tree-streamer-in.c (unpack_ts_decl_common_value_fields,
1249         unpack_ts_decl_with_vis_value_fields,
1250         lto_input_ts_decl_common_tree_pointers): Likewise.
1251         * builtins.c (builtin_save_expr, fold_builtin_expect,
1252         readonly_data_expr): Likewise.
1253         * tree-ssa-structalias.c (new_var_info, get_constraint_for_ssa_var,
1254         create_variable_info_for, set_uids_in_ptset, visit_loadstore):
1255         Likewise.
1256         * gimple-streamer-out.c (output_gimple_stmt): Likewise.
1257         * gimplify.c (force_constant_size, gimplify_bind_expr,
1258         gimplify_decl_expr, gimplify_var_or_parm_decl,
1259         gimplify_compound_lval, gimplify_init_constructor,
1260         gimplify_modify_expr, gimplify_asm_expr, gimplify_oacc_declare,
1261         gimplify_type_sizes): Likewise.
1262         * cgraphbuild.c (record_reference, record_type_list, mark_address,
1263         mark_load, mark_store, pass_build_cgraph_edges::execute): Likewise.
1264         * tree-ssa-live.c (mark_all_vars_used_1, remove_unused_scope_block_p,
1265         remove_unused_locals): Likewise.
1266         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p, ptrs_compare_unequal,
1267         ref_maybe_used_by_call_p_1, call_may_clobber_ref_p_1): Likewise.
1268         * function.c (instantiate_expr, instantiate_decls_1,
1269         setjmp_vars_warning, add_local_decl): Likewise.
1270         * alias.c (ao_ref_from_mem, get_alias_set, compare_base_symbol_refs):
1271         Likewise.
1272         * tree-stdarg.c (find_va_list_reference, va_list_counter_struct_op,
1273         va_list_ptr_read, va_list_ptr_write, check_all_va_list_escapes,
1274         optimize_va_list_gpr_fpr_size): Likewise.
1275         * tree-nrv.c (pass_nrv::execute): Likewise.
1276         * tsan.c (instrument_expr): Likewise.
1277         * tree-ssa-dce.c (remove_dead_stmt): Likewise.
1278         * vtable-verify.c (verify_bb_vtables): Likewise.
1279         * tree-dfa.c (ssa_default_def, set_ssa_default_def,
1280         get_ref_base_and_extent): Likewise.
1281         * toplev.c (wrapup_global_declaration_1, wrapup_global_declaration_2):
1282         Likewise.
1283         * tree-sra.c (static bool constant_decl_p, find_var_candidates,
1284         analyze_all_variable_accesses): Likewise.
1285         * tree-nested.c (get_nonlocal_debug_decl,
1286         convert_nonlocal_omp_clauses, note_nonlocal_vla_type,
1287         note_nonlocal_block_vlas, convert_nonlocal_reference_stmt,
1288         get_local_debug_decl, convert_local_omp_clauses,
1289         convert_local_reference_stmt, nesting_copy_decl, remap_vla_decls):
1290         Likewise.
1291         * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Likewise.
1292         * stmt.c (decl_overlaps_hard_reg_set_p): Likewise.
1293         * dbxout.c (dbxout_late_global_decl, dbxout_type_fields,
1294         dbxout_symbol, dbxout_common_check): Likewise.
1295         * expr.c (expand_assignment, expand_expr_real_2, expand_expr_real_1,
1296         string_constant): Likewise.
1297         * hsa.c (hsa_get_declaration_name): Likewise.
1298         * passes.c (rest_of_decl_compilation): Likewise.
1299         * tree-ssanames.c (make_ssa_name_fn): Likewise.
1300         * tree-streamer-out.c (pack_ts_decl_common_value_fields,
1301         pack_ts_decl_with_vis_value_fields,
1302         write_ts_decl_common_tree_pointers): Likewise.
1303         * stor-layout.c (place_field): Likewise.
1304         * symtab.c (symtab_node::maybe_create_reference,
1305         symtab_node::verify_base, symtab_node::make_decl_local,
1306         symtab_node::copy_visibility_from,
1307         symtab_node::can_increase_alignment_p): Likewise.
1308         * dwarf2out.c (add_var_loc_to_decl, tls_mem_loc_descriptor,
1309         decl_by_reference_p, reference_to_unused, rtl_for_decl_location,
1310         fortran_common, add_location_or_const_value_attribute,
1311         add_scalar_info, add_linkage_name, set_block_abstract_flags,
1312         local_function_static, gen_variable_die, dwarf2out_late_global_decl,
1313         optimize_one_addr_into_implicit_ptr,
1314         optimize_location_into_implicit_ptr): Likewise.
1315         * gimple-low.c (record_vars_into): Likewise.
1316         * ipa-visibility.c (update_vtable_references): Likewise.
1317         * tree-ssa-address.c (fixed_address_object_p, copy_ref_info):
1318         Likewise.
1319         * lto-streamer-out.c (tree_is_indexable, get_symbol_initial_value,
1320         DFS::DFS_write_tree_body, write_symbol): Likewise.
1321         * langhooks.c (lhd_warn_unused_global_decl,
1322         lhd_set_decl_assembler_name): Likewise.
1323         * attribs.c (decl_attributes): Likewise.
1324         * except.c (output_ttype): Likewise.
1325         * varpool.c (varpool_node::get_create, ctor_for_folding,
1326         varpool_node::assemble_decl, varpool_node::create_alias): Likewise.
1327         * fold-const.c (fold_unary_loc): Likewise.
1328         * ipa-prop.c (ipa_compute_jump_functions_for_edge,
1329         ipa_find_agg_cst_from_init): Likewise.
1330         * omp-low.c (expand_omp_regimplify_p, expand_omp_taskreg,
1331         expand_omp_target, lower_omp_regimplify_p,
1332         grid_reg_assignment_to_local_var_p, grid_remap_prebody_decls,
1333         find_link_var_op): Likewise.
1334         * tree-chrec.c (chrec_contains_symbols): Likewise.
1335         * tree-cfg.c (verify_address, verify_expr, verify_expr_location_1,
1336         gimple_duplicate_bb, move_stmt_op, replace_block_vars_by_duplicates,
1337         execute_fixup_cfg): Likewise.
1339         PR tree-optimization/77901
1340         * tree-ssa-reassoc.c (optimize_range_tests_var_bound): Only optimize
1341         if ranges[i].exp is SSA_NAME when looking for >= and only when
1342         ranges[i].exp is NULL or SSA_NAME when looking for the other
1343         comparison.
1345 2016-10-09  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
1347         * ipa-cp.c (ipcp_alignment_lattice): Remove.
1348         (ipcp_param_lattices): Remove field alignment.
1349         (print_all_lattices): Remove call to ipcp_alignment_lattice::print.
1350         (set_all_contains_variable): Remove call to
1351         ipcp_alignment_lattice::set_to_bottom.
1352         (initialize_node_lattices): Likewise.
1353         (propagate_alignment_accross_jump_function): Remove.
1354         (propagate_constants_accross_call): Remove call to
1355         propagate_alignment_accross_jump_function.
1356         (ipcp_store_alignment_results): Remove.
1357         (ipcp_driver): Remove call to ipcp_store_alignment_results.
1358         (propagate_bits_accross_jump_function): Handle ancestor jump function.
1359         * ipa-prop.c (ipa_print_node_jump_functions_for_edge): Remove
1360         pretty-printing of alignment jump function.
1361         (ipa_set_jf_unknown): Remove assignment to jfunc->alignment.known.
1362         (ipa_compute_jump_functions_for_edge): Adjust ipa_bits jump function for
1363         alignments and remove computing ipa_alignment jump function.
1364         (ipa_node_params_t::duplicate): Remove copying of src_trans->alignments.
1365         (ipa_write_jump_functions): Remove streaming for ipa_alignment.
1366         (ipa_read_jump_function): Remove reading of ipa_alignment.
1367         (write_ipcp_transformation_info): Remove streaming for alignment
1368         propagation summary.
1369         (read_ipcp_transformation_info): Remove reading of alignment
1370         propagation summary.
1371         (ipcp_update_alignments): Remove.
1372         (ipcp_update_bits): Adjust to set alignment for parameters of pointer
1373         type.
1374         (ipcp_transform_function): Remove call to ipcp_update_alignments()
1375         and remove assignment to (*ipcp_transformations)[node->uid].alignments.
1376         * ipa-prop.h (ipa_alignment): Remove.
1377         (ipa_jump_func): Remove field alignment.
1378         (ipcp_transformation_summary): Remove field alignments.
1379         * doc/invoke.texi: Mark fipa-cp-alignment as obsolete.
1380         * opts.c (default_options_table): Remove entry for fipa-cp-alignment.
1381         (enable_fdo_optimizations): Remove checking for fipa-cp-alignment.
1383 2016-10-08  Eric Botcazou  <ebotcazou@adacore.com>
1385         * config/sparc/sparc.h (FIXED_REGISTERS): Add %icc.
1387         * config/visium/visium.c (visium_expand_int_cstore): Revert latest
1388         change.
1389         (visium_expand_fp_cstore): Likewise.
1391 2016-10-08  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
1393         * diagnostic-core.h (warning_at_rich_loc_n): Declare.
1394         * diagnostic.c (warning_at_rich_loc_n): New function.
1395         (diagnostic_n_impl_richloc): Likewise.
1396         (diagnostic_n_impl): Move most of the function to
1397         diagnostic_n_impl_richloc and call it.
1399 2016-10-08  Jakub Jelinek  <jakub@redhat.com>
1401         * gen-pass-instances.awk: Rewritten.
1402         * Makefile.in (pass-instances.def): Depend on $(PASSES_EXTRA), pass
1403         $(PASSES_EXTRA) after passes.def to the script.
1404         * config/i386/t-i386 (PASSES_EXTRA): Add i386-passes.def.
1405         * config/i386/i386-passes.def: New file.
1406         * config/i386/i386-protos.h (make_pass_insert_vzeroupper,
1407         make_pass_stv): Declare.
1408         * config/i386/i386.c (pass_stv::pass_stv): Initialize timode_p to
1409         false.
1410         (pass_stv::gate): Depending on timode_p member require TARGET_64BIT
1411         or !TARGET_64BIT.
1412         (pass_stv::clone, pass_stv::set_pass_param): New methods.
1413         (pass_stv::timode_p): New non-static data member.
1414         (ix86_option_override): Don't register passes here.
1416         * doc/invoke.texi: Document accepting Else, fallthrough.
1418         * doc/invoke.texi (-Wimplicit-fallthrough): Document FALLTHRU comment
1419         style changes.
1421         * doc/invoke.texi (-Wimplicit-fallthrough): Document the accepted
1422         FALLTHRU comment styles.
1424 2016-10-07  Andrew Pinski  <apinski@cavium.com>
1426         * config/aarch64/aarch64-arches.def (AARCH64_ARCH): #undef at the end.
1427         * config/aarch64/aarch64-cores.def (AARCH64_CORE): Likewise.
1428         * config/aarch64/aarch64-fusion-pairs.def (AARCH64_FUSION_PAIR):
1429         Likewise.
1430         * config/aarch64/aarch64-option-extensions.def (AARCH64_OPT_EXTENSION):
1431         Likewise.
1432         * config/aarch64/aarch64-tuning-flags.def (AARCH64_EXTRA_TUNING_OPTION):
1433         Likewise.
1434         * config/aarch64/aarch64-opts.h (AARCH64_CORE): Don't #undef here.
1435         (AARCH64_ARCH): Likewise.
1436         * common/config/aarch64/aarch64-common.c (AARCH64_OPT_EXTENSION):
1437         Likewise.
1438         (AARCH64_CORE): Likewise.
1439         (AARCH64_ARCH): Likewise.
1440         * config/aarch64/aarch64-protos.h (AARCH64_FUSION_PAIR): Likewise.
1441         (AARCH64_EXTRA_TUNING_OPTION): Likewise.
1442         * config/aarch64/aarch64.c (AARCH64_FUION_PAIR): Likewise.
1443         (AARCH64_EXTRA_TUNING_OPTION): Likewise.
1444         (AARCH64_ARCH): Likewise.
1445         (AARCH64_CORE): Likewise.
1446         * config/aarch64/aarch64.h (AARCH64_CORE): Likewise.
1447         * config/aarch64/driver-aarch64.c (AARCH64_OPT_EXTENSION): Likewise.
1448         (AARCH64_CORE): Likewise.
1449         (AARCH64_ARCH): Likewise.
1451 2016-10-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
1453         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Split
1454         -mfloat128 into -mfloat128-type that enables the IEEE 128-bit
1455         floating point type infrastructre, and -mfloat128 that enables the
1456         keyword.  Define __FLOAT128__ if -mfloat128, and __FLOAT128_TYPE__
1457         if -mfloat128-type.  Define __ibm128 to be long double by default.
1458         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print whether
1459         the IEEE 128-bit floating point type infrastructure should
1460         automatically be enabled.
1461         (rs6000_init_hard_regno_mode_ok): Switch to use -mfloat128-type
1462         instead of -mfloat128 to enable KFmode.
1463         (rs6000_option_override_internal): Split the option -mfloat128
1464         into -mfloat128-type and -mfloat128.  On Linux PowerPC 64-bit
1465         systems, automatically set -mfloat128-type, but don't enable it on
1466         other operating systems.  Move setting the long double size and
1467         IEEE quad support before the IEEE 128-bit floating point changes.
1468         (rs6000_init_builtins): Do not create a unique type for __ibm128
1469         if long double is IBM extended double, instead rely on __ibm128
1470         being defined as 'long double'.  If -mfloat128-type and not
1471         -mfloat128, create the KFmode type with an undocumented __ieee128
1472         keyword.
1473         (rs6000_init_libfuncs): Use -mfloat128-type instead of
1474         -mfloat128 for tests about the types, but keep tests for
1475         -mfloat128 to enable the keyword support.
1476         (rs6000_complex_function_value): Likewise.
1477         (rs6000_scalar_mode_supported_p): Likewise.
1478         (rs6000_floatn_mode): Likewise.
1479         (rs6000_c_mode_for_suffix): Likewise.
1480         (rs6000_opt_masks): Add -mfloat128-type.
1481         * config/rs6000/rs6000-cpus.def (POWERPC_MASKS): Add support for
1482         -mfloat128-type being split from -mfloat128.  Add
1483         -mfloat128-hardware, which was missing.
1484         * config/rs6000/rs6000.opt (-mfloat128): Split -mfloat128 into
1485         -mfloat128 and -mfloat128-type:
1486         (-mfloat128-type): Likewise.
1487         * config/rs6000/linux64.h (TARGET_FLOAT128_ENABLE_TYPE): Define so
1488         that 64-bit Linux systems with enable -mfloat128-type by default
1489         on VSX systems.
1490         * config/rs6000/rs6000.h (TARGET_FLOAT128_ENABLE_TYPE): Likewise.
1491         (FLOAT128_VECTOR_P): Switch IEEE 128-bit floating points to use
1492         -mfloat128-type instead of -mfloat128.
1493         (FLOAT128_2REG_P): Likewise.
1494         (MASK_FLOAT128_TYPE): Likewise.
1495         (ALTIVEC_ARG_MAX_RETURN): Likewise.
1496         (RS6000_BTM_FLOAT128): Likewise.
1497         (TARGET_FLOAT128): Poison old identifiers.
1498         (OPTION_MASK_FLOAT128): Likewise.
1499         (MASK_FLOAT128): Likewise.
1500         * config/rs6000/rs6000.md (FP): Likewise.
1501         (FLOAT128): Likewise.
1502         (fix_trunc<mode>di2): Likewise.
1503         (fixuns_trunc<IEEE128:mode><SDI:mode>2): Likewise.
1504         (floatdi<mode>2): Likewise.
1505         (floatuns<SDI:mode><IEEE128:mode>2): Likewise.
1506         (neg<mode>2, FLOAT128 iterator): Likewise.
1507         (abs<mode>2, FLOAT128 iterator): Likewise.
1508         (ieee_128bit_negative_zero): Likewise.
1509         (ieee_128bit_vsx_neg<mode>2): Likewise.
1510         (ieee_128bit_vsx_neg<mode>2_internal): Likewise.
1511         (ieee_128bit_vsx_abs<mode>2): Likewise.
1512         (ieee_128bit_vsx_abs<mode>2_internal): Likewise.
1513         (ieee_128bit_vsx_nabs<mode>2): Likewise.
1514         (ieee_128bit_vsx_nabs<mode>2_internal): Likewise.
1515         (extendiftf2): Likewise.
1516         (extendifkf2): Likewise.
1517         (extendtfkf2): Likewise.
1518         (trunciftf2): Likewise.
1519         (truncifkf2): Likewise.
1520         (trunckftf2): Likewise.
1521         (trunctfif2): Likewise.
1522         (extendkftf2): Likewise.
1523         (trunctfkf2): Likewise.
1525 2016-10-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1527         * simplify-rtx.c (simplify_immed_subreg): Zero-initialize tmp array
1528         before merging in bytes to pass down to real_from_target.
1530 2016-10-07  Richard Biener  <rguenther@suse.de>
1532         * tree-ssa-propagate.c (replace_phi_args_in): Remove no longer
1533         required hack.
1534         (substitute_and_fold_dom_walker::before_dom_children):
1535         Substitute and fold before pass specific folding to avoid
1536         feeding that with SSA names that will be later released.
1537         * tree-ssa-ccp.c (get_value_for_expr): Guard for new SSA names
1538         introduced by folding and visited by evaluate_stmt called during
1539         ccp_fold_stmt.
1540         (likely_value): Likewise.
1541         (evaluate_stmt): Likewise.
1542         * tree-vrp.c (simplify_truth_ops_using_ranges): Fold modified stmt.
1543         (simplify_div_or_mod_using_ranges): Likewise.
1544         (simplify_min_or_max_using_ranges): Likewise.
1545         (simplify_abs_using_ranges): Likewise.
1546         (simplify_conversion_using_ranges): Likewise.
1547         (simplify_float_conversion_using_ranges): Likewise.
1548         (simplify_stmt_using_ranges): Likewise.
1550 2016-10-07  Marek Polacek  <polacek@redhat.com>
1552         * gimplify.c (should_warn_for_implicit_fallthrough): Check for
1553         FALLTHROUGH_LABEL_P here...
1554         (warn_implicit_fallthrough_r): ...not here.
1556 2016-10-07  Bernd Schmidt  <bschmidt@redhat.com>
1558         PR tree-optimization/77880
1559         * expr.c (by_pieces_ninsns): Use unsigned HOST_WIDE_INT where
1560         necessary.
1562 2016-10-07  Marek Polacek  <polacek@redhat.com>
1564         PR c++/77803
1565         * gimplify.c (last_stmt_in_scope): Add check for FALLTHROUGH ().
1567 2016-10-07  Richard Biener  <rguenther@suse.de>
1569         * bitmap.h: Document constraints on bitmap modification while
1570         iterating over it.
1572 2016-10-07  Richard Biener  <rguenther@suse.de>
1574         * bitmap.c (bitmap_elem_to_freelist): Set indx to -1.
1575         * bitmap.h (bmp_iter_set): When advancing to the next element
1576         check that we didn't remove the current one.
1577         (bmp_iter_and): Likewise.
1578         (bmp_iter_and_compl): Likewise.
1579         * tree-ssa.c (release_defs_bitset): Do not remove worklist bit
1580         we currently iterate on but keep a one-level queue.
1581         * sched-deps.c (remove_from_deps): Do not clear current bit
1582         but keep a one-level queue.
1584 2016-10-07  Jakub Jelinek  <jakub@redhat.com>
1586         PR tree-optimization/77664
1587         * tree-ssa-reassoc.c (update_range_test): Also clear low and high
1588         for the other ranges.
1589         (optimize_range_tests_diff): Fix up formatting.
1590         (optimize_range_tests_var_bound): New function.
1591         (optimize_range_tests): Use it.
1593 2016-10-07  Martin Liska  <mliska@suse.cz>
1595         * coverage.c (build_gcov_exit_decl): Fix priority what
1596         should be really 99.
1598 2016-10-07  Richard Biener  <rguenther@suse.de>
1600         * gimple-low.c (lower_gimple_bind): Clear DECL_CHAIN of
1601         vars in gimple_bind_vars but not in BLOCK_VARS.
1603 2016-10-07  Richard Biener  <rguenther@suse.de>
1605         PR tree-optimization/77879
1606         * tree-ssa-structalias.c (handle_const_call): Properly handle
1607         NRV return slots.
1608         (handle_pure_call): Likewise.
1610 2016-10-06  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
1612         * config/rs6000/rs6000.c (rs6000_elf_asm_out_constructor)
1613         (rs6000_elf_asm_out_destructor): increase size of buf to avoid
1614         possible overflow.
1616 2016-10-06  Andrew Pinski  <apinski@cavium.com>
1618         * config/aarch64/aarch64-cores.def: Add a comment before each
1619         set of cores.
1621 2016-10-06  Kugan Vivekanandarajah  <kuganv@linaro.org>
1623         PR tree-optimization/77862
1624         * tree-vrp.c (add_equivalence): Use get_value_range so that
1625         num_vr_values is checked before accessing vr_values.
1627 2016-10-06  Kugan Vivekanandarajah  <kuganv@linaro.org>
1629         * tree-vrp.c (evrp_dom_walker::before_dom_children): Handle
1630           POINTER_TYPE_P.
1632 2016-10-05  Jeff Law  <law@redhat.com>
1634         PR tree-optimization/71661
1635         * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Handle case when
1636         removal of a forwarder exposes a new natural loop.
1638 2016-10-06  Uros Bizjak  <ubizjak@gmail.com>
1640         * config/i386/sse.md (andnot<mode>3): Add FALLTHRU comments.
1641         Introduce ssesuffix variable.
1642         (<mask_codefor><code><mode>3<mask_name>): Ditto.
1643         (*<code><mode>3): Ditto.
1645 2016-10-06  Jan Hubicka  <hubicka@ucw.cz>
1647         * postreload.c (reload_cse_simplify): Skip also USE when detecting
1648         noop move.
1650 2016-10-06  Richard Biener  <rguenther@suse.de>
1652         PR tree-optimization/77855
1653         * tree-ssa-pre.c (prune_clobbered_mems): Queue exprs to remove
1654         instead of removing the current item while iterating over the set
1655         which is not safe.
1657 2016-10-06  James Clarke  <jrtc27@jrtc27.com>
1658             Eric Botcazou  <ebotcazou@adacore.com>
1660         PR target/77759
1661         * config/sparc/sparc.c (classify_data_t): Remove int_regs field.
1662         (classify_registers): Don't set it
1663         (function_arg_slotno): Don't initialize and test it.  Tidy up.
1665 2016-10-06  Richard Biener  <rguenther@suse.de>
1667         PR tree-optimization/77839
1668         * tree-ssa-sccvn.c (set_ssa_val_to): Forbid value -> constant value
1669         lattice transition.
1671 2016-10-06  Martin Liska  <mliska@suse.cz>
1673         * gcc.c: Set -fprofile-update=atomic when profiling is
1674         enabled and -pthread is set.  Warn when one combines
1675         -pthread and -fprofile-update=single for an app using
1676         profiling code.
1678 2016-10-06  Martin Liska  <mliska@suse.cz>
1680         PR bootstrap/77788
1681         * expmed.h (mul_highpart_cost_ptr): Add an gcc_assert.
1682         * gimple-ssa-strength-reduction.c (slsr_process_cast):
1683         Initialize a pointer to NULL.
1684         (slsr_process_copy): Likewise.
1685         * input.c (location_get_source_line): Likewise.
1686         * tree-ssa-ccp.c (optimize_atomic_bit_test_and): Likewise.
1688 2016-10-05  Andrew Senkevich  <andrew.senkevich@intel.com>
1690         * common/config/i386/i386-common.c (OPTION_MASK_ISA_PCOMMIT_UNSET,
1691         OPTION_MASK_ISA_PCOMMIT_SET): Deleted definitions.
1692         (ix86_handle_option): Deleted handle of OPT_mpcommit.
1693         * config.gcc: Deleted pcommitintrin.h
1694         * config/i386/pcommitintrin.h: Deleted file.
1695         * config/i386/cpuid.h (bit_PCOMMIT): Deleted.
1696         * config/i386/driver-i386.c (host_detect_local_cpu): Deleted pcommit
1697         detection.
1698         * config/i386/i386-c.c (ix86_target_macros_internal): Deleted define
1699         __PCOMMIT__.
1700         * config/i386/i386.c (ix86_target_string): Deleted -mpcommit.
1701         (PTA_PCOMMIT): Deleted define.
1702         (ix86_option_override_internal): Deleted handle of option.
1703         (ix86_valid_target_attribute_inner_p): Deleted pcommit.
1704         * config/i386/i386-builtin.def (IX86_BUILTIN_PCOMMIT,
1705         __builtin_ia32_pcommit): Deleted.
1706         * config/i386/i386.h (TARGET_PCOMMIT, TARGET_PCOMMIT_P): Deleted.
1707         * config/i386/i386.md (unspecv): Deleted UNSPECV_PCOMMIT.
1708         (pcommit): Deleted instruction.
1709         * config/i386/i386.opt: Mention -mpcommit deprecation.
1710         * config/i386/x86intrin.h: Deleted inclusion of pcommitintrin.h.
1712 2016-10-05  Uros Bizjak  <ubizjak@gmail.com>
1714         PR target/77874
1715         * config/i386/sse.md (<mask_codefor><code><mode>3<mask_name>):
1716         Remove wrong assert.
1717         (<floatsuffix>float<sseintvecmodelower><mode>2<mask_name><round_name>:
1718         Use <round_constraint> as operand 1 constraint.
1720 2016-10-05  Jakub Jelinek  <jakub@redhat.com>
1722         PR sanitizer/66343
1723         * ubsan.c (ubsan_create_data): Call initialize_sanitizer_builtins here.
1724         (ubsan_instrument_float_cast): And not here.
1726         PR sanitizer/66343
1727         * ubsan.c (ubsan_ids): New GTY(()) array.
1728         (ubsan_type_descriptor, ubsan_create_data): Use ubsan_ids
1729         instead of static local counters.
1731 2016-10-05  Martin Sebor  <msebor@redhat.com>
1733         PR bootstrap/77819
1734         * config/linux.h (TARGET_PRINTF_POINTER_FORMAT): Define macro.
1735         * config/linux.c (gnu_libc_printf_pointer_format): Remove.
1736         * targhooks.c [DEFAULT_LIBC == LIBC_UCLIBC) && SINGLE_LIBC]
1737         (default_printf_pointer_format): Define function.
1738         * targhooks.c (linux_printf_pointer_format): Define new function.
1739         * targhooks.h (linux_printf_pointer_format): Declare.
1740         (gnu_libc_printf_pointer_format): Remove declaration.
1742 2016-10-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1744         * fold-const.c (native_encode_real): Fix logic for selecting offset
1745         to write to when BYTES_BIG_ENDIAN.
1747 2016-10-05  Wilco Dijkstra  <wdijkstr@arm.com>
1749         * builtins.c (fold_builtin_strchr): Remove function.
1750         (fold_builtin_strrchr): Likewise.
1751         (fold_builtin2): Remove strchr, index, strrchr, rindex cases.
1752         * gimple-fold.c (target_char_cst_p): New function.
1753         (gimple_fold_builtin_strchr) Add more foldings.
1754         (gimple_fold_builtin): Add index, strrchr, rindex cases.
1756 2016-10-05  Richard Biener  <rguenther@suse.de>
1758         PR middle-end/77863
1759         * genmatch.c (capture_info::walk_c_expr): Diagnose unknown
1760         capture ids in c-exprs.
1762 2016-10-05  Richard Biener  <rguenther@suse.de>
1764         PR middle-end/77826
1765         * genmatch.c (dt_operand::gen_match_op): Amend operand_equal_p
1766         with types_match for GIMPLE code gen to handle type mismatched
1767         constants properly.
1768         (dt_operand::gen): Adjust.
1769         * match.pd ((X /[ex] A) * A -> X): Properly handle converted
1770         and constant A.
1772 2016-10-05  Richard Biener  <rguenther@suse.de>
1774         * match.pd (copysign(x, CST) -> [-]abs (x)): New pattern.
1776 2016-10-05  Richard Biener  <rguenther@suse.de>
1778         PR middle-end/77842
1779         * genmatch.c (parser::parse_c_expr): Handle premature EOF.
1781 2016-10-05  Pierre-Marie de Rodat  <derodat@adacore.com>
1783         * dwarf2out.c (dwarf2out_imported_module_or_decl): Move DWARF
1784         version check to protect only DW_TAG_imported_module generation.
1786 2016-10-05  Richard Biener  <rguenther@suse.de>
1788         PR middle-end/55152
1789         * match.pd (min(a,-a) -> -abs(a)): New pattern.
1791 2016-10-04  Ian Lance Taylor  <iant@golang.org>
1793         * explow.c (allocate_dynamic_stack_space): Call
1794         do_pending_stack_adjust before handling flag_split_stack.
1796 2016-10-04  David Malcolm  <dmalcolm@redhat.com>
1798         * genattrtab.c (make_internal_attr): Supply dummy column number to
1799         file_location ctor.
1800         (main): Likewise.
1801         * genoutput.c (init_insn_for_nothing): Likewise.
1802         * gensupport.c (add_define_attr): Likewise.
1803         * read-md.c (message_at_1): Print column number.
1804         (fatal_with_file_and_line): Likewise.
1805         (rtx_reader::read_char): Track column numbers.
1806         (rtx_reader::unread_char): Likewise.
1807         (rtx_reader::rtx_reader): Initialize m_read_md_colno.
1808         (rtx_reader::handle_include): Stash and restore m_read_md_colno.
1809         (rtx_reader::handle_file): Initialize m_read_md_colno.
1810         (rtx_reader::get_current_location): Supply column number to
1811         file_location ctor.
1812         * read-md.h (struct file_location): Add field "colno".
1813         (file_location::file_location): Likewise.
1814         (rtx_reader::get_colno): New accessor.
1815         (rtx_reader::m_read_md_colno): New field.
1816         (rtx_reader::m_last_line_colno): New field.
1818 2016-10-04  Jakub Jelinek  <jakub@redhat.com>
1820         * doc/extend.texi (Java Exceptions): Remove.
1821         (java_interface): Remove.
1823 2016-10-04  Doug Gilmore  <doug.gilmore@imgtec.com>
1825         PR tree-optimization/77808
1826         * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Check base_addr
1827         and addr are different before copying points-to information.
1829 2016-10-04  Uros Bizjak  <ubizjak@gmail.com>
1831         * config/i386/x86-tune.def (X86_TUNE_VECTORIZE_DOUBLE): Remove.
1832         * config/i386/i386.h (TARGET_VECTORIZE_DOUBLE): Remove.
1833         * config/i386/i386.c (ix86_add_stmt_cost): Use TARGET_BONNEL instead
1834         of !TARGET_VECTORIZE_DOUBLE when penalizing DFmode vector ops.
1836 2016-10-04  Richard Biener  <rguenther@suse.de>
1838         PR tree-optimization/77399
1839         * tree-ssa-forwprop.c (simplify_vector_constructor): Properly
1840         verify the target can convert.
1842 2016-10-04  Richard Biener  <rguenther@suse.de>
1844         PR middle-end/77833
1845         * explow.c (plus_constant): Verify the mode of the constant
1846         pool offset before calling plus_constant.
1848 2016-10-04  Richard Biener  <rguenther@suse.de>
1850         PR middle-end/77407
1851         * match.pd (X / abs (X) -> X < 0 ? -1 : 1): Drop vector
1852         type support, mark with :C.
1853         (X / -X -> -1): Mark with :C.
1855 2016-10-04  Jakub Jelinek  <jakub@redhat.com>
1857         * defaults.h (JCR_SECTION_NAME, TARGET_USE_JCR_SECTION): Remove.
1858         * system.h (JCR_SECTION_NAME, TARGET_USE_JCR_SECTION): Poison.
1859         * doc/tm.texi.in (TARGET_USE_JCR_SECTION): Remove.
1860         * doc/tm.texi: Regenerated.
1861         * config/i386/mingw32.h (TARGET_USE_JCR_SECTION): Remove.
1862         * config/i386/cygming.h (TARGET_USE_JCR_SECTION): Remove.
1863         * config/darwin.h (JCR_SECTION_NAME): Remove.
1864         * config/pa/pa64-hpux.h (JCR_SECTION_NAME): Remove.
1865         * config/rs6000/aix71.h (TARGET_USE_JCR_SECTION): Remove.
1866         * config/rs6000/aix51.h (TARGET_USE_JCR_SECTION): Remove.
1867         * config/rs6000/aix52.h (TARGET_USE_JCR_SECTION): Remove.
1868         * config/rs6000/aix53.h (TARGET_USE_JCR_SECTION): Remove.
1869         * config/rs6000/aix61.h (TARGET_USE_JCR_SECTION): Remove.
1871 2016-10-03  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
1873         * ipa-cp.c (propagate_bits_accross_jump_function): Introduce space
1874         between "because" and "param" in dump message in call to fprintf.
1876 2016-10-03  Jeff Law  <law@redhat.com>
1878         PR tree-optimization/71550
1879         PR tree-optimization/71403
1880         * tree-ssa-threadbackward.c: Include tree-vectorizer.h
1881         (profitable_jump_thread_path): Also return boolean indicating if
1882         the realized path will create an irreducible loop.
1883         Remove loop depth tests from 71403.
1884         (fsm_find_control_statement_thread_paths): Remove loop depth tests
1885         from 71403.  If threading will create an irreducible loop, then
1886         throw away loop iteration and related information.
1888 2016-10-03  Uros Bizjak  <ubizjak@gmail.com>
1890         * configure.ac (strict_warn): Merge -Wmissing-format-attribute and
1891         -Woverloaded-virtual checks for warning options.
1892         * configure: Regenerate.
1894 2016-10-03  Bernd Edlinger  <bernd.edlinger@hotmail.de>
1896         PR preprocessor/77699
1897         * input.c (maybe_grow): Don't allocate one byte extra headroom.
1898         (get_next_line): Return false on error.
1899         (read_next_line): Removed, use get_next_line instead.
1900         (read_line_num): Don't copy the line.
1901         (location_get_source_line): Don't use static data.
1902         (selftest::test_reading_source_line): Add more test cases.
1904 2016-10-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1906         Revert
1907         2016-09-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1909         * ifcvt.c (noce_try_avoid_const_materialization): New function.
1910         (noce_process_if_block): Use it.
1912 2016-10-03  Bernd Edlinger  <bernd.edlinger@hotmail.de>
1914         * doc/invoke.texi: Update -Wint-in-bool-context.
1916 2016-10-02  Jakub Jelinek  <jakub@redhat.com>
1918         * dwarf2out.c (output_fde, output_call_frame_info,
1919         dwarf2out_do_cfi_startproc, set_indirect_string,
1920         gen_internal_sym, output_die, output_line_info): Use
1921         MAX_ARTIFICIAL_LABEL_BYTES as char array sizes for
1922         ASM_GENERATE_INTERNAL_LABEL output.
1924 2016-10-01  Richard Biener  <rguenther@suse.de>
1926         PR middle-end/77798
1927         * genmatch.c (get_operand_type): Add operand position arg
1928         and handle COND_EXPR comparison operand with fixed boolean_type_node.
1929         (expr::gen_transform): Adjust.
1930         (dt_simplify::gen_1): Likewise.
1932 2016-10-01  Jakub Jelinek  <jakub@redhat.com>
1934         * config/i386/sse.md (<mask_codefor><code><mode>): Add FALLTHRU
1935         comments.  Simplify asserts, remove unnecessary conditions.
1936         Formatting fixes.
1937         (*<code><mode>3): Likewise.
1939 2016-09-30  Jakub Jelinek  <jakub@redhat.com>
1941         * doc/invoke.texi (-Wregister): Document.
1943 2016-09-30  Bernd Edlinger  <bernd.edlinger@hotmail.de>
1945         * configure.ac: Split CHECKING_P into CHECKING_P and
1946         ENABLE_EXTRA_CHECKING.
1947         * configure: Regenerated.
1948         * config.in: Adjust commment of CHECKING_P.  Add ENABLE_EXTRA_CHECKING.
1949         * common.opt (flag_checking): Use CHECKING_P and ENABLE_EXTRA_CHECKING.
1951 2016-09-30  Prasad Ghangal  <prasad.ghangal@gmail.com>
1953         PR other/31566
1954         * gcc.c (process_command): For @filename handling, output
1955         the correct name if the file does not exist.
1957 2016-09-30  Marek Polacek  <polacek@redhat.com>
1959         * config/aarch64/aarch64-simd.md: Adjust fall through comments.
1960         * config/alpha/predicates.md: Likewise.
1962 2016-09-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1964         * ifcvt.c (noce_try_avoid_const_materialization): New function.
1965         (noce_process_if_block): Use it.
1967 2016-09-30  Martin Liska  <mliska@suse.cz>
1969         * doc/invoke.texi: Document asan-use-after-return that
1970         it's disabled by default in runtime.
1972 2016-09-30  Richard Biener  <rguenther@suse.de>
1974         * tree-vrp.c (intersect_ranges): If we failed to handle
1975         the intersection choose a constant singleton range if available.
1977 2016-09-30  Richard Biener  <rguenther@suse.de>
1979         PR tree-optimization/77399
1980         * tree-ssa-forwprop.c (simplify_vector_constructor): Handle
1981         float <-> int conversions.
1983 2016-09-30  Alan Modra  <amodra@gmail.com>
1985         * config/rs6000/rs6000.c (rs6000_opt_vars): Revert last change.
1987 2016-09-29  Uros Bizjak  <ubizjak@gmail.com>
1989         * config/i386/driver-i386.c (host_detect_local_cpu): Check maximum
1990         ext_level before calling CPUID with 0x80000008.
1991         Simplify xgetbv checks.
1993 2016-09-29  David Malcolm  <dmalcolm@redhat.com>
1995         * Makefile.in (OBJS): Add print-rtl-function.o.
1996         * print-rtl-function.c: New file.
1997         * print-rtl.h (print_rtx_function): New decl.
1999 2016-09-29  Uros Bizjak  <ubizjak@gmail.com>
2001         PR target/77756
2002         * config/i386/cpuid.h (__get_cpuid_count): New.
2003         (__get_cpuid): Rename __level to __leaf.
2005 2016-09-29  Marek Polacek  <polacek@redhat.com>
2007         * genattrtab.c (write_attr_case): Also emit FALLTHRU marker.
2009 2016-09-29  Bernd Schmidt  <bschmidt@redhat.com>
2011         * builtins.c (expand_builtin_memcmp): don't swap args unless
2012         result is only being compared with zero.
2014 2016-09-29  Marek Polacek  <polacek@redhat.com>
2016         * dwarf2out.c (loc_descriptor): Add fall through comment.
2017         (add_const_value_attribute): Likewise.
2019 2016-09-29  Matthew Wahab  <matthew.wahab@arm.com>
2021         * config/arm/arm.md (*arm_movsi_insn): Replace "t2" arch attribute
2022         with "v6t2".  Move "arch" attribute above "pool_range".
2023         * config/arm/vfp.md (*arm_movhi_vfp): Replace "t2" arch attribute
2024         with "v6t2".
2025         (*thumb2_movhi_vfp): Likewise.
2026         (*arm_movhi_fp16): Likewise.
2027         (*thumb2_movhi_fp16): Likewise.
2028         (*arm_movsi_vfp): Remove "arch" attribute.
2029         (*thumb2_movsi_vfp): Likewise.
2031 2016-09-29  Martin Liska  <mliska@suse.cz>
2033         * doc/extend.texi: Remove limitation of Objective C for
2034         __attribute__((constructor)) and __attribute__((destructor)).
2036 2016-09-29  Richard Biener  <rguenther@suse.de>
2038         PR tree-optimization/77768
2039         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
2040         Handle stores to readonly memory when removing redundant stores.
2042 2016-09-29  Richard Biener  <rguenther@suse.de>
2044         PR middle-end/77407
2045         * match.pd: Add X / abs (X) -> X < 0 ? -1 : 1 and
2046         X / -X -> -1 simplifications.
2048 2016-09-29  Richard Biener  <rguenther@suse.de>
2050         PR middle-end/55152
2051         * match.pd: Add max(a,-a) -> abs(a) pattern.
2052         * tree-ssa-phiopt.c (minmax_replacement): Disable for
2053         HONOR_SIGNED_ZEROS types.
2055 2016-09-29  James Greenhalgh  <james.greenhalgh@arm.com>
2057         * defaults.h (TARGET_FLT_EVAL_METHOD_NON_DEFAULT): Remove.
2058         * system.h (TARGET_FLT_EVAL_METHOD_NON_DEFAULT): Poison.
2060 2016-09-29  Richard Biener  <rguenther@suse.de>
2062         * tree-vrp.c (set_defs_to_varying): New helper avoiding
2063         writing to vr_const_varying.
2064         (vrp_initialize): Call it.
2065         (vrp_visit_stmt): Likewise.
2066         (evrp_dom_walker::before_dom_children): Likewise.
2068 2016-09-29  Richard Biener  <rguenther@suse.de>
2070         * tree-vect-stmts.c (vectorizable_load): Avoid emitting vector
2071         constructors with vector elements.
2073 2016-09-29  Richard Biener  <rguenther@suse.de>
2075         PR tree-optimization/77768
2076         * tree-ssa-sccvn.c (visit_reference_op_store): Properly deal
2077         with stores to a place we know has a constant value.
2079 2016-09-29  Alan Modra  <amodra@gmail.com>
2081         * config/rs6000/sysv4.opt (mgnu-attribute): New option.
2082         * doc/invoke.texi: Document it.
2083         * config/rs6000/rs6000.c (HAVE_LD_PPC_GNU_ATTR_LONG_DOUBLE): Define.
2084         (rs6000_passes_float): Comment.
2085         (rs6000_passes_long_double): New static var.
2086         (call_ABI_of_interest): Return false unless rs6000_gnu_attr is set.
2087         (init_cumulative_args): Set up to emit fp .gnu_attribute for
2088         ELF 64-bit ABIs as well as 32-bit ELF.  Correct rs6000_passes_float
2089         to include fp values returned in vectors.
2090         Set rs6000_passes_long_double.
2091         (rs6000_function_arg_advance_1): Likewise for function args.
2092         (rs6000_elf_file_end): Emit fp .gnu_attribute for ELF 64-bit ABIs,
2093         and SPE.  Emit long double tag value too.
2094         (rs6000_opt_vars): Add gnu-attr.
2095         * configure.ac (HAVE_LD_PPC_GNU_ATTR_LONG_DOUBLE): New ppc32 test.
2096         * configure: Regenerate.
2097         * config.in: Regenerate.
2099 2016-09-28  Jakub Jelinek  <jakub@redhat.com>
2101         * gimple-ssa-sprintf.c (pass_sprintf_length::gate): Use x > 0 instead
2102         of 0 < x.
2103         (format_floating, format_string, format_directive,
2104         get_destination_size, pass_sprintf_length::handle_gimple_call):
2105         Likewise.
2107 2016-09-28  Jakub Jelinek  <jakub@redhat.com>
2109         * gimple-ssa-sprintf.c: Fix comment formatting.
2110         (format_integer): Use is_gimple_assign.
2111         (pass_sprintf_length::handle_gimple_call): Use gimple_call_builtin_p
2112         and gimple_call_fndecl.  Reorder case BUILT_IN_SPRINTF_CHK.  Fix up
2113         BUILT_IN_SNPRINTF_CHK comment.  Replace "to to" with "to" in comment.
2114         (pass_sprintf_length::execute): Use is_gimple_call.
2116 2016-09-28  Wilco Dijkstra  <wdijkstr@arm.com>
2118         * gimple-fold.c (gimple_fold_builtin): After failing to fold
2119         strchr, also try the generic folding.
2121 2016-09-28  Martin Sebor  <msebor@redhat.com>
2123         PR c/77762
2124         * gimple-ssa-sprintf.c (pass_sprintf_length::handle_gimple_call):
2125         Fix typos.
2127 2016-09-28  Martin Sebor  <msebor@redhat.com>
2129         PR middle-end/77683
2130         * gimple-ssa-sprintf.c (format_integer): Fail gracefully when
2131         length modifier is not expected.
2132         (format_floating): Ignore l length modifier and fail gracefuly
2133         when it isn't one of the other expected ones.
2135 2016-09-28  Martin Sebor  <msebor@redhat.com>
2137         PR bootstrap/77753
2138         * varasm.c (assemble_addr_to_section): Increase local buffer size.
2140 2016-09-27  Richard Biener  <rguenther@suse.de>
2142         * dwarf2out.c (cu_die_list): New global.
2143         (dwarf2out_finish): Walk cu_die_list instead of limbo DIEs.  Add
2144         main_comp_unit_die to cu_die_list if we created it.
2145         Move break_out_includes ...
2146         (dwarf2out_early_finish): ... here.  Push created CU DIEs onto
2147         the cu_die_list.
2149 2016-09-28  Richard Biener  <rguenther@suse.de>
2151         * dwarf2out.c (struct die_struct): Add removed flag.
2152         (lookup_type_die): If the DIE is marked as removed, clear
2153         TYPE_SYMTAB_DIE and return NULL.
2154         (lookup_decl_die): If the DIE is marked as removed, remove it
2155         from the hash and return NULL.
2156         (mark_removed): New helper.
2157         (prune_unused_types_prune): Call it for removed DIEs.
2158         (gen_subprogram_die): Move the premark_used_types call to after
2159         DIEs for the functions scopes are generated.
2160         (process_scope_var): Do not re-create pruned types or type decls.
2161         Make sure to also re-parent type decls.
2162         (dwarf2out_finish): Move unused type pruning and debug_types
2163         handling ...
2164         (dwarf2out_early_finish): ... here.
2166 2016-09-29  Claudiu Zissulescu  <claziss@synopsys.com>
2168         * config/arc/arc-c.c: New file.
2169         * config/arc/arc-c.def: Likewise.
2170         * config/arc/t-arc: Likewise.
2171         * config.gcc: Include arc-c.o as c and cpp object.
2172         * config/arc/arc-protos.h (arc_cpu_cpp_builtins): Add prototype.
2173         * config/arc/arc.h (TARGET_CPU_CPP_BUILTINS): Use
2174         arc_cpu_cpp_builtins.
2176 2016-09-29  Claudiu Zissulescu  <claziss@synopsys.com>
2178         * config/arc/arc.md (*rotrsi3_cnt1): New pattern.
2179         (*ashlsi2_cnt1, *lshrsi3_cnt1, *ashrsi3_cnt1): Likewise.
2181 2016-09-28  Nathan Sidwell  <nathan@acm.org>
2183         * gimple-pretty-print.c (dump_gimple_call_args): Simplify "' "
2184         printing.
2186 2016-09-28  Wilco Dijkstra  <wdijkstr@arm.com>
2188         PR tree-optimization/61056
2189         * gimple-fold.c (gimple_fold_builtin_strchr):
2190         New function to optimize strchr (s, 0) to strlen.
2191         (gimple_fold_builtin): Add BUILT_IN_STRCHR case.
2193 2016-09-27  Robin Dapp  <rdapp@linux.vnet.ibm.com>
2195         PR tree-optimization/77724
2196         * tree-vect-loop-manip.c (create_intersect_range_checks_index):
2197         Add tree_fits_shwi_p check.
2199 2016-09-27  Jakub Jelinek  <jakub@redhat.com>
2201         * auto-inc-dec.c (try_merge): Remove break after return.
2202         * cselib.c (autoinc_split): Likewise.
2203         * explow.c (promote_mode): Likewise.
2204         * fixed-value.c (fixed_arithmetic): Likewise.
2205         * hsa.c (hsa_internal_fn::get_arity): Likewise.
2206         * rtlanal.c (modified_between_p, modified_in_p): Likewise.
2207         * trans-mem.c (get_attrs_for): Likewise.
2208         * tree-if-conv.c (if_convertible_stmt_p): Likewise.
2209         * tree-vrp.c (simplify_stmt_using_ranges): Likewise.
2210         * config/aarch64/aarch64-builtins.c (aarch64_fold_builtin): Likewise.
2211         * config/aarch64/aarch64.c (aarch64_get_condition_code_1): Likewise.
2212         * config/c6x/c6x.c (c6x_get_unit_specifier): Likewise.
2213         * config/cr16/cr16.c (legitimate_pic_operand_p): Likewise.
2214         * config/cris/cris.c (cris_op_str): Likewise.
2215         * config/mn10300/mn10300.c (cc_flags_for_code): Likewise.
2216         * config/tilepro/tilepro.c (tilepro_emit_setcc_internal_di): Likewise.
2218 2016-09-27  Nathan Sidwell  <nathan@codesourcery.com>
2220         * internal-fn.h (IFN_UNIQUE_CODES, IFN_GOACC_LOOP_CODES,
2221         IFN_GOACC_REDUCTION_CODES): New.
2222         (enum ifn_unique_kind, enum ifn_goacc_loop_kind, enum
2223         ifn_goacc_reduction_kind): Use them.
2224         * gimple-pretty-print.c (dump_gimple_call_args): Decode first arg
2225         of internal functions, when applicable.
2227 2016-09-27  Maciej W. Rozycki  <macro@imgtec.com>
2229         * config/mips/constraints.md (d): Fix documentation.
2230         * doc/md.texi (Machine Constraints): Update accordingly.
2232 2016-09-27  Richard Biener  <rguenther@suse.de>
2234         * dwarf2out.c (dwarf2out_init): Move text_section_line_info,
2235         cur_line_info_table initialization ...
2236         (dwarf2out_assembly_start): ... here.
2238 2016-09-27  Matthew Wahab  <matthew.wahab@arm.com>
2240         * config/arm/arm.md (*arm_movsi_insn): Add "arch" attribute.
2241         * config/arm/vfp.md (*arm_movhi_vfp): Likewise.
2242         (*thumb2_movhi_vfp): Likewise.
2243         (*arm_movhi_fp16): Remove predication operand from VMOV.F16
2244         template.  Expand predicable attribute to mark VMOV.F16 as not
2245         predicable.  Add "arch" attribute.
2246         (*thumb2_movhi_fp16): Likewise.
2247         (*arm_movsi_vfp): Break a long line.  Add "arch" attribute.
2248         (*thumb2_movsi_vfp): Add "arch" attribute.
2250 2016-09-27  David Edelsohn  <dje.gcc@gmail.com>
2252         * config/rs6000/rs6000.c (rs6000_output_symbol): Don't modify
2253         VAR_DECL string.
2255 2016-09-27  Marek Polacek  <polacek@redhat.com>
2257         * config/ia64/ia64.c (ia64_print_operand): Adjust fall through
2258         comment.
2260         * config/c6x/c6x.h: Adjust fall through comment.
2261         * config/sh/sh.c (final_prescan_insn): Likewise.
2262         * config/visium/visium.c (visium_expand_int_cstore): Likewise.
2263         (visium_expand_fp_cstore): Likewise.
2265 2016-09-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2267         * config/arm/arm.c (const_ok_for_op): Use "Fall through" comment form
2268         expected by -Wimplicit-fallthrough.
2269         (thumb1_size_rtx_costs): Likewise.
2270         (thumb2_reorg): Likewise.
2271         (tls_mentioned_p): Add "Fall through" comment.
2272         (thumb2_reorg): Likewise.
2273         * config/arm/arm-builtins.c (arm_expand_neon_args): Use "Fall through"
2274         comment form expected by -Wimplicit-fallthrough.
2276 2016-09-27  Martin Liska  <mliska@suse.cz>
2278         PR gcov-profile/46266
2279         * input.h (RESERVED_LOCATION_P): New macro.
2280         * profile.c (branch_prob): Use RESERVED_LOCATION_P and
2281         instread of comparison with UNKNOWN_LOCATION.
2283 2016-09-27  Richard Biener  <rguenther@suse.de>
2285         PR tree-optimization/77745
2286         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
2287         When removing redundant stores make sure to check compatibility
2288         of the TBAA state for downstream accesses.
2289         * tree-ssa-sccvn.c (visit_reference_op_store): Likewise for when
2290         value-numbering virtual operands for store matches.
2292 2016-09-27  Oleg Endo  <olegendo@gcc.gnu.org>
2294         PR target/51244
2295         * config/sh/sh.c (sh_rtx_costs): Fix return value of SET of movt and
2296         movrt patterns.  Match them before anything else in the SET case.
2298 2016-09-27  Martin Liska  <mliska@suse.cz>
2300         PR gcov-profile/7970
2301         PR gcov-profile/16855
2302         PR gcov-profile/44779
2303         * coverage.c (build_gcov_exit_decl): New function.
2304         (coverage_obj_init): Call the function and generate __gcov_exit
2305         destructor.
2306         * doc/gcov.texi: Document when __gcov_exit function is called.
2308 2016-09-27  Marek Polacek  <polacek@redhat.com>
2310         PR bootstrap/77751
2311         * Makefile.in (insn-attrtab.o-warn, insn-dfatab.o-warn,
2312         insn-latencytab.o-warn, insn-output.o-warn, insn-emit.o-warn): Use
2313         -Wno-error instead of -Wno-implicit-fallthrough.
2315 2016-09-27  Martin Liska  <mliska@suse.cz>
2317         PR bootstrap/77749
2318         * gcov-counter.def: Remove GCOV_COUNTER_V_DELTA.
2320 2016-09-27  Jakub Jelinek  <jakub@redhat.com>
2322         * combine.c (simplify_comparison): Add canonical FALLTHROUGH comments.
2323         * config/i386/i386.c (ix86_dep_by_shift_count_body): Add FALLTHROUGH
2324         comments.  Remove break after return.
2325         (ix86_fp_compare_code_to_integer, has_dispatch,
2326         ix86_simd_clone_usable): Remove break after return.
2328 2016-09-27  Bernd Edlinger  <bernd.edlinger@hotmail.de>
2330         PR rlt-optimization/77714
2331         * lra-eliminations.c (eliminate_regs_in_insn): Avoid alias on
2332         REG_EQUAL note.
2334 2016-09-27  Kugan Vivekanandarajah  <kuganv@linaro.org>
2336         PR ipa/77677
2337         * ipa-prop.c (ipa_compute_jump_functions_for_edge): Use
2338         extract_range_from_unary_expr to convert value_range.
2339         * tree-vrp.c (extract_range_from_unary_expr_1): Rename to.
2340         (extract_range_from_unary_expr): This.
2341         * tree-vrp.h (extract_range_from_unary_expr): Declare.
2343 2016-09-27  Segher Boessenkool  <segher@kernel.crashing.org>
2345         * config/rs6000/rs6000.md (movcc_internal1): Disparage using CTR or LR.
2347 2016-09-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2349         * config/i386/i386.c (ix86_print_operand)
2350         [HAVE_AS_IX86_CMOV_SUN_SYNTAX]: Add gcc_fallthrough.
2351         * config/sparc/sparc.c (check_pic): Add fallthrough comment.
2352         (epilogue_renumber): Likewise.
2354 2016-09-26  Kugan Vivekanandarajah  <kuganv@linaro.org>
2356         PR middle-end/77719
2357         * tree-ssa-reassoc.c (make_new_ssa_for_def): Use gimple_get_lhs
2358         to get lhs instead of gimple_assign_lhs as stmt can be builtins too.
2360 2016-09-26  Thomas Preud'homme  <thomas.preudhomme@arm.com>
2362         * tree.h (memmodel_from_int, memmodel_base, is_mm_relaxed,
2363         is_mm_consume, is_mm_acquire, is_mm_release, is_mm_acq_rel,
2364         is_mm_seq_cst, is_mm_sync): Move to ...
2365         * memmodel.h: This.  New file.
2366         * builtins.c: Include memmodel.h.
2367         * optabs.c: Likewise.
2368         * tsan.c: Likewise.
2369         * config/aarch64/aarch64.c: Likewise.
2370         * config/alpha/alpha.c: Likewise.
2371         * config/arm/arm.c: Likewise.
2372         * config/i386/i386.c: Likewise.
2373         * config/ia64/ia64.c: Likewise.
2374         * config/mips/mips.c: Likewise.
2375         * config/rs6000/rs6000.c: Likewise.
2376         * config/sparc/sparc.c: Likewise.
2377         * genconditions.c: Include memmodel.h in generated file.
2378         * genemit.c: Likewise.
2379         * genoutput.c: Likewise.
2380         * genpeep.c: Likewise.
2381         * genpreds.c: Likewise.
2382         * genrecog.c: Likewise.
2384 2016-09-26  David Malcolm  <dmalcolm@redhat.com>
2386         * read-rtl.c (read_rtx_code): Rename local "i" to "idx", and use
2387         "c" instead when parsing characters.  Move operand parsing into...
2388         (read_rtx_operand): ...this new function, renaming "i" to "idx",
2389         and tightening the scope of various locals.
2391 2016-09-26  Liu Hao  <lh_mouse@126.com>
2393         * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Fix typo.
2395 2016-09-26  Marek Polacek  <polacek@redhat.com>
2397         * system.h: Use __has_attribute to check whether the fallthrough
2398         attribute is supported.
2400 2016-09-26  Marek Polacek  <polacek@redhat.com>
2402         * ipa-inline-analysis.c (find_foldable_builtin_expect): Use
2403         gimple_call_internal_p.
2404         * ipa-split.c (find_return_bb): Likewise.
2405         (execute_split_functions): Likewise.
2406         * omp-low.c (dump_oacc_loop_part): Likewise.
2407         (oacc_loop_xform_head_tail): Likewise.
2408         * predict.c (predict_loops): Likewise.
2409         * sanopt.c (pass_sanopt::execute): Likewise.
2410         * tree-cfg.c (get_abnormal_succ_dispatcher): Likewise.
2411         * tree-parloops.c (oacc_entry_exit_ok_1): Likewise.
2412         * tree-stdarg.c (gimple_call_ifn_va_arg_p): Remove function.
2413         (expand_ifn_va_arg_1): Use gimple_call_internal_p.
2414         (expand_ifn_va_arg): Likewise.
2415         * tree-vect-loop.c (vect_determine_vectorization_factor): Likewise.
2416         (optimize_mask_stores): Likewise.
2417         * tree-vect-stmts.c (vect_simd_lane_linear): Likewise.
2418         (vect_transform_stmt): Likewise.
2419         * tree-vectorizer.c (vect_loop_vectorized_call): Likewise.
2420         * tsan.c (instrument_memory_accesses): Likewise.
2422 2016-09-26  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2423             Alexander Monakov  <amonakov@ispras.ru>
2425         * regrename.c (rename_chains): Check
2426         HARD_FRAME_POINTER_IS_FRAME_POINTER rather than
2427         HARD_FRAME_POINTER_REGNUM when picking unavailable registers.
2428         * sel-sched.c (mark_unavailable_hard_regs): Likewise.
2430 2016-09-26  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
2432         * config/s390/s390.c (s390_rtx_costs): Add /* fallthrough */.
2433         (s390_sched_score): Likewise.
2435 2016-09-26  Martin Liska  <mliska@suse.cz>
2437         * doc/gcov.texi: Update program output of gcov tool.
2439 2016-09-26  Martin Liska  <mliska@suse.cz>
2441         PR gcov-profile/23332
2442         * profile.c (instrument_values): Do not handle HIST_TYPE_CONST_DELTA.
2443         * tree-profile.c (gimple_gen_const_delta_profiler): Remove.
2444         * value-prof.c (dump_histogram_value): Do not handle
2445         HIST_TYPE_CONST_DELTA.
2446         (stream_in_histogram_value): Likewise.
2447         (gimple_find_values_to_profile): Likewise.
2448         * value-prof.h (enum hist_type): Likewise.
2450 2016-09-26  Martin Liska  <mliska@suse.cz>
2452         * common.opt: Exclude SANITIZE_UNREACHABLE and SANITIZE_RETURN
2453         from default sanitize recover values.
2454         * doc/invoke.texi: Fix documentation related to -fsanitize=leak,
2455         -fsanitize=address, -fsanitize=thread and -fsanitize-recover.
2456         * flag-types.h: Replace couple of 1 << x to 1UL << x, make it
2457         consistent.
2458         * opts.c (finish_options): Do a generic loop over options
2459         that can be recovered.
2460         (parse_sanitizer_options): Exclude SANITIZE_UNREACHABLE and
2461         SANITIZE_RETURN.
2462         (common_handle_option): Likewise.
2463         * opts.h: Declare can_recover to sanitizer_opts_s.
2465 2016-09-26  Andre Vieira  <andre.simoesdiasvieira@arm.com>
2467         * target.def(elf_flags_numeric): Change documentation to present tense.
2468         * doc/tm.texi: Regenerate.
2470 2016-09-26  Marek Polacek  <polacek@redhat.com>
2472         PR c/7652
2473         * Makefile.in (insn-attrtab.o-warn, insn-dfatab.o-warn,
2474         insn-latencytab.o-warn, insn-output.o-warn, insn-emit.o-warn): Add
2475         -Wno-switch-fallthrough.
2476         * builtins.c (expand_builtin_int_roundingfn_2): Add gcc_fallthrough.
2477         (expand_builtin): Likewise.
2478         * config/rs6000/rs6000.c (rs6000_builtin_vectorized_libmass): Likewise.
2479         * convert.c (convert_to_real_1): Likewise.
2480         (convert_to_integer_1): Likewise.
2481         * final.c (output_alternate_entry_point): Likewise.
2482         * genattrtab.c (make_canonical): Likewise.
2483         (write_test_expr): Likewise.
2484         * genpreds.c (validate_exp): Likewise.
2485         * gimple-ssa-strength-reduction.c
2486         (find_candidates_dom_walker::before_dom_children): Likewise.
2487         * godump.c (go_format_type): Likewise.
2488         * reload1.c (elimination_effects): Likewise.
2489         * resource.c (mark_referenced_resources): Likewise.
2490         (mark_set_resources): Likewise.
2491         * tree-ssa-loop-ivopts.c (find_deriving_biv_for_expr): Likewise.
2492         * varasm.c (output_addressed_constants): Likewise.
2494 2016-09-26  Marek Polacek  <polacek@redhat.com>
2496         PR c/7652
2497         * common.opt (Wimplicit-fallthrough): New option.
2498         * doc/extend.texi: Document statement attributes and the fallthrough
2499         attribute.
2500         * doc/invoke.texi: Document -Wimplicit-fallthrough.
2501         * gimple.h (gimple_call_internal_p): New function.
2502         * gimplify.c (struct gimplify_ctx): Add in_switch_expr.
2503         (struct label_entry): New struct.
2504         (find_label_entry): New function.
2505         (case_label_p): New function.
2506         (collect_fallthrough_labels): New function.
2507         (last_stmt_in_scope): New function.
2508         (should_warn_for_implicit_fallthrough): New function.
2509         (warn_implicit_fallthrough_r): New function.
2510         (maybe_warn_implicit_fallthrough): New function.
2511         (expand_FALLTHROUGH_r): New function.
2512         (expand_FALLTHROUGH): New function.
2513         (gimplify_switch_expr): Call maybe_warn_implicit_fallthrough and
2514         expand_FALLTHROUGH for the innermost GIMPLE_SWITCH.
2515         (gimplify_label_expr): New function.
2516         (gimplify_case_label_expr): Set location.
2517         (gimplify_expr): Call gimplify_label_expr.
2518         * internal-fn.c (expand_FALLTHROUGH): New function.
2519         * internal-fn.def (FALLTHROUGH): New internal function.
2520         * langhooks.c (lang_GNU_OBJC): New function.
2521         * langhooks.h (lang_GNU_OBJC): Declare.
2522         * system.h (gcc_fallthrough): Define.
2523         * tree-core.h: Add FALLTHROUGH_LABEL_P comment.
2524         * tree.h (FALLTHROUGH_LABEL_P): Define.
2526 2016-09-26  Richard Biener  <rguenther@suse.de>
2528         * dwarf2out.c (stripattributes): Remove unused function.
2529         (DEBUG_NORM_MACINFO_SECTION): Rename to DEBUG_MACINFO_SECTION.
2530         Push dwarf_split_debug_info handling into init_sections_and_labels.
2531         (DEBUG_NORM_MACRO_SECTION): Likewise to DEBUG_MACRO_SECTION.
2532         (DEBUG_MACRO_SECTION_FLAGS): Remove.
2533         (debug_macinfo_section_name): New global.
2534         (output_macinfo): Use debug_macinfo_section_name.
2535         (init_sections_and_labels): Split out section and label generation
2536         from dwarf2out_init.  Set debug_macinfo_section_name.
2537         (dwarf2out_init): Move text section label generation and emission
2538         to ...
2539         (dwarf2out_assembly_start): ... here.
2540         (dwarf2out_finish): Call init_sections_and_labels before DWARF
2541         output starts.
2543 2016-09-26  Richard Biener  <rguenther@suse.de>
2545         PR debug/77692
2546         * cgraphunit.c (analyze_functions): Before early removing
2547         global vars calls the late_global_decl debug handler mark
2548         the variable as readonly.
2550 2016-09-25  Oleg Endo  <olegendo@gcc.gnu.org>
2552         PR target/51244
2553         * config/sh/sh.c (sh_movt_set_dest, sh_movrt_set_dest): Add overloads.
2554         (sh_rtx_costs): Handle SET of movt and movrt patterns.
2555         * cnofig/sh/sh-protos.h (sh_movt_set_dest, sh_movrt_set_dest): Forward
2556         declare new overloads.
2557         * config/sh/sh.md (*cset_zero): Add variant that takes a treg_set_expr
2558         operand.
2560 2016-09-24  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
2562         * config/rs6000/rs6000.c (expand_block_compare, do_load_for_compare):
2563         Change TARGET_LITTLE_ENDIAN to !BYTES_BIG_ENDIAN.
2565 2016-09-24  David Edelsohn  <dje.gcc@gmail.com>
2567         * configure.ac (gcc_cv_as_aix_dwloc): Fix typo in assembly fragment.
2568         * configure: Regenerate.
2570 2016-09-24  Marek Polacek  <polacek@redhat.com>
2572         PR c/77490
2573         * doc/invoke.texi: Document -Wbool-operation.
2575 2016-09-23  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
2577         * config/rs6000/rs6000.md (cmpmemsi): New define_expand.
2578         * config/rs6000/rs6000.c (expand_block_compare): New function used by
2579         cmpmemsi pattern to do builtin expansion of memcmp ().
2580         (compute_current_alignment): Add helper function for
2581         expand_block_compare used to compute alignment as the compare proceeds.
2582         (select_block_compare_mode): Used by expand_block_compare to select
2583         the mode used for reading the next chunk of bytes in the compare.
2584         (do_load_for_compare): Used by expand_block_compare to emit the load
2585         insns for the compare.
2586         (rs6000_emit_dot_insn): Moved this function to avoid a forward
2587         reference from expand_block_compare ().
2588         * config/rs6000/rs6000-protos.h (expand_block_compare): Add a
2589         prototype for this function.
2590         * config/rs6000/rs6000.opt (mblock-compare-inline-limit): Add a new
2591         target option for controlling how much code inline expansion of
2592         memcmp() will be allowed to generate.
2594 2016-09-23  Jakub Jelinek  <jakub@redhat.com>
2596         * hooks.c (hook_bool_bool_false, hook_bool_bool_gcc_optionsp_false,
2597         hook_bool_mode_false, hook_bool_mode_true,
2598         hook_bool_mode_const_rtx_false, hook_bool_mode_const_rtx_true,
2599         hook_bool_mode_rtx_false, hook_bool_mode_rtx_true,
2600         hook_bool_const_rtx_insn_const_rtx_insn_true,
2601         hook_bool_mode_uhwi_false, hook_void_FILEptr_constcharptr,
2602         hook_bool_FILEptr_rtx_false, hook_bool_gsiptr_false,
2603         hook_bool_const_tree_hwi_hwi_const_tree_false,
2604         hook_bool_const_tree_hwi_hwi_const_tree_true,
2605         default_can_output_mi_thunk_no_vcall, hook_int_uint_mode_1,
2606         hook_int_const_tree_0, hook_int_const_tree_const_tree_1,
2607         hook_int_rtx_0, hook_int_rtx_bool_0, hook_void_tree,
2608         hook_void_constcharptr, hook_void_tree_treeptr, hook_void_int_int,
2609         hook_bool_tree_false, hook_bool_const_tree_false, hook_bool_tree_true,
2610         hook_bool_const_tree_true, hook_bool_tree_tree_false,
2611         hook_bool_tree_tree_true, hook_bool_tree_bool_false,
2612         hook_bool_rtx_insn_true, hook_bool_rtx_false,
2613         hook_bool_uintp_uintp_false,
2614         hook_bool_rtx_mode_int_int_intp_bool_false, hook_rtx_rtx_null,
2615         hook_rtx_tree_int_null, hook_uint_mode_0,
2616         hook_constcharptr_const_tree_null, hook_tree_tree_int_treep_bool_null,
2617         hook_tree_tree_tree_null, hook_tree_tree_tree_tree_null,
2618         hook_constcharptr_const_rtx_insn_null,
2619         hook_constcharptr_const_tree_const_tree_null,
2620         hook_constcharptr_int_const_tree_null,
2621         hook_constcharptr_int_const_tree_const_tree_null,
2622         hook_tree_const_tree_null, hook_bool_rtx_insn_int_false,
2623         hook_void_rtx_insn_int, hook_void_gcc_optionsp): For arguments with
2624         ATTRIBUTE_UNUSED, remove parameter name as well as ATTRIBUTE_UNUSED.
2626         * vec.h (vNULL): Extend comment to say = vNULL initialization
2627         isn't needed for static vars.
2629         * sel-sched-ir.c (sel_global_bb_info, sel_region_bb_info,
2630         loop_nests, s_i_d, last_added_blocks): Remove unnecessary
2631         = vNULL initialization of file scope vec.
2632         * passes.c (pass_tab, enabled_pass_uid_range_tab,
2633         disabled_pass_uid_range_tab): Likewise.
2634         * haifa-sched.c (sched_luids, h_i_d): Likewise.
2635         * tree-chkp-opt.c (check_infos): Likewise.
2636         * sel-sched.c (vec_av_set, vec_temp_moveop_nops): Likewise.
2638         * vec.h (vnull::operator vec): Add constexpr keyword for
2639         C++11 and later.
2641 2016-09-23  Doug Gilmore  <doug.gilmore@imgtec.com>
2643         PR tree-optimization/77654
2644         * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Add call
2645         to duplicate_ssa_name_ptr_info.
2647 2016-09-23  David Malcolm  <dmalcolm@redhat.com>
2649         PR preprocessor/77672
2650         * input.c (selftest::test_lexer_string_locations_simple): Update
2651         test to expect location information of the terminator character
2652         at the location of the final closing quote.
2653         (selftest::test_lexer_string_locations_hex): Likewise.
2654         (selftest::test_lexer_string_locations_oct): Likewise.
2655         (selftest::test_lexer_string_locations_letter_escape_1): Likewise.
2656         (selftest::test_lexer_string_locations_letter_escape_2): Likewise.
2657         (selftest::test_lexer_string_locations_ucn4): Likewise.
2658         (selftest::test_lexer_string_locations_ucn8): Likewise.
2659         (selftest::test_lexer_string_locations_u8): Likewise.
2660         (selftest::test_lexer_string_locations_utf8_source): Likewise.
2661         (selftest::test_lexer_string_locations_concatenation_1): Likewise.
2662         (selftest::test_lexer_string_locations_concatenation_2): Likewise.
2663         (selftest::test_lexer_string_locations_concatenation_3): Likewise.
2664         (selftest::test_lexer_string_locations_macro): Likewise.
2665         (selftest::test_lexer_string_locations_long_line): Likewise.
2667 2016-09-23  Richard Biener  <rguenther@suse.de>
2669         * tree-ssa-sccvn.c (visit_reference_op_call): Value number
2670         virtual definition to virtual use if the call devirtualizes
2671         to a const or pure function.
2672         (visit_use): Also visit calls we can devirtualize to a
2673         const or pure function.
2675 2016-09-23  Richard Biener  <rguenther@suse.de>
2677         PR tree-optimization/77697
2678         * tree-ssa-forwprop.c (defcodefor_name): Remove bogus code,
2679         signal error if we have sth ternary or unhandled.
2681 2016-09-23  Matthew Wahab  <matthew.wahab@arm.com>
2683         * config/arm/arm_neon.h (vabd_f16): New.
2684         (vabdq_f16): New.
2685         (vabs_f16): New.
2686         (vabsq_f16): New.
2687         (vadd_f16): New.
2688         (vaddq_f16): New.
2689         (vcage_f16): New.
2690         (vcageq_f16): New.
2691         (vcagt_f16): New.
2692         (vcagtq_f16): New.
2693         (vcale_f16): New.
2694         (vcaleq_f16): New.
2695         (vcalt_f16): New.
2696         (vcaltq_f16): New.
2697         (vceq_f16): New.
2698         (vceqq_f16): New.
2699         (vceqz_f16): New.
2700         (vceqzq_f16): New.
2701         (vcge_f16): New.
2702         (vcgeq_f16): New.
2703         (vcgez_f16): New.
2704         (vcgezq_f16): New.
2705         (vcgt_f16): New.
2706         (vcgtq_f16): New.
2707         (vcgtz_f16): New.
2708         (vcgtzq_f16): New.
2709         (vcle_f16): New.
2710         (vcleq_f16): New.
2711         (vclez_f16): New.
2712         (vclezq_f16): New.
2713         (vclt_f16): New.
2714         (vcltq_f16): New.
2715         (vcltz_f16): New.
2716         (vcltzq_f16): New.
2717         (vcvt_f16_s16): New.
2718         (vcvt_f16_u16): New.
2719         (vcvt_s16_f16): New.
2720         (vcvt_u16_f16): New.
2721         (vcvtq_f16_s16): New.
2722         (vcvtq_f16_u16): New.
2723         (vcvtq_s16_f16): New.
2724         (vcvtq_u16_f16): New.
2725         (vcvta_s16_f16): New.
2726         (vcvta_u16_f16): New.
2727         (vcvtaq_s16_f16): New.
2728         (vcvtaq_u16_f16): New.
2729         (vcvtm_s16_f16): New.
2730         (vcvtm_u16_f16): New.
2731         (vcvtmq_s16_f16): New.
2732         (vcvtmq_u16_f16): New.
2733         (vcvtn_s16_f16): New.
2734         (vcvtn_u16_f16): New.
2735         (vcvtnq_s16_f16): New.
2736         (vcvtnq_u16_f16): New.
2737         (vcvtp_s16_f16): New.
2738         (vcvtp_u16_f16): New.
2739         (vcvtpq_s16_f16): New.
2740         (vcvtpq_u16_f16): New.
2741         (vcvt_n_f16_s16): New.
2742         (vcvt_n_f16_u16): New.
2743         (vcvtq_n_f16_s16): New.
2744         (vcvtq_n_f16_u16): New.
2745         (vcvt_n_s16_f16): New.
2746         (vcvt_n_u16_f16): New.
2747         (vcvtq_n_s16_f16): New.
2748         (vcvtq_n_u16_f16): New.
2749         (vfma_f16): New.
2750         (vfmaq_f16): New.
2751         (vfms_f16): New.
2752         (vfmsq_f16): New.
2753         (vmax_f16): New.
2754         (vmaxq_f16): New.
2755         (vmaxnm_f16): New.
2756         (vmaxnmq_f16): New.
2757         (vmin_f16): New.
2758         (vminq_f16): New.
2759         (vminnm_f16): New.
2760         (vminnmq_f16): New.
2761         (vmul_f16): New.
2762         (vmul_lane_f16): New.
2763         (vmul_n_f16): New.
2764         (vmulq_f16): New.
2765         (vmulq_lane_f16): New.
2766         (vmulq_n_f16): New.
2767         (vneg_f16): New.
2768         (vnegq_f16): New.
2769         (vpadd_f16): New.
2770         (vpmax_f16): New.
2771         (vpmin_f16): New.
2772         (vrecpe_f16): New.
2773         (vrecpeq_f16): New.
2774         (vrnd_f16): New.
2775         (vrndq_f16): New.
2776         (vrnda_f16): New.
2777         (vrndaq_f16): New.
2778         (vrndm_f16): New.
2779         (vrndmq_f16): New.
2780         (vrndn_f16): New.
2781         (vrndnq_f16): New.
2782         (vrndp_f16): New.
2783         (vrndpq_f16): New.
2784         (vrndx_f16): New.
2785         (vrndxq_f16): New.
2786         (vrsqrte_f16): New.
2787         (vrsqrteq_f16): New.
2788         (vrecps_f16): New.
2789         (vrecpsq_f16): New.
2790         (vrsqrts_f16): New.
2791         (vrsqrtsq_f16): New.
2792         (vsub_f16): New.
2793         (vsubq_f16): New.
2795 2016-09-23  Matthew Wahab  <matthew.wahab@arm.com>
2797         * config.gcc (extra_headers): Add arm_fp16.h
2798         * config/arm/arm_fp16.h: New.
2799         * config/arm/arm_neon.h: Include "arm_fp16.h".
2801 2016-09-23  Matthew Wahab  <matthew.wahab@arm.com>
2803         * config/arm/arm_neon_builtins.def (vadd): New (v8hf, v4hf
2804         variants).
2805         (vmulf): New (v8hf, v4hf variants).
2806         (vfma): New (v8hf, v4hf variants).
2807         (vfms): New (v8hf, v4hf variants).
2808         (vsub): New (v8hf, v4hf variants).
2809         (vcage): New (v8hf, v4hf variants).
2810         (vcagt): New (v8hf, v4hf variants).
2811         (vcale): New (v8hf, v4hf variants).
2812         (vcalt): New (v8hf, v4hf variants).
2813         (vceq): New (v8hf, v4hf variants).
2814         (vcgt): New (v8hf, v4hf variants).
2815         (vcge): New (v8hf, v4hf variants).
2816         (vcle): New (v8hf, v4hf variants).
2817         (vclt): New (v8hf, v4hf variants).
2818         (vceqz): New (v8hf, v4hf variants).
2819         (vcgez): New (v8hf, v4hf variants).
2820         (vcgtz): New (v8hf, v4hf variants).
2821         (vcltz): New (v8hf, v4hf variants).
2822         (vclez): New (v8hf, v4hf variants).
2823         (vabd): New (v8hf, v4hf variants).
2824         (vmaxf): New (v8hf, v4hf variants).
2825         (vmaxnm): New (v8hf, v4hf variants).
2826         (vminf): New (v8hf, v4hf variants).
2827         (vminnm): New (v8hf, v4hf variants).
2828         (vpmaxf): New (v4hf variant).
2829         (vpminf): New (v4hf variant).
2830         (vpadd): New (v4hf variant).
2831         (vrecps): New (v8hf, v4hf variants).
2832         (vrsqrts): New (v8hf, v4hf variants).
2833         (vabs): New (v8hf, v4hf variants).
2834         (vneg): New (v8hf, v4hf variants).
2835         (vrecpe): New (v8hf, v4hf variants).
2836         (vrnd): New (v8hf, v4hf variants).
2837         (vrnda): New (v8hf, v4hf variants).
2838         (vrndm): New (v8hf, v4hf variants).
2839         (vrndn): New (v8hf, v4hf variants).
2840         (vrndp): New (v8hf, v4hf variants).
2841         (vrndx): New (v8hf, v4hf variants).
2842         (vrsqrte): New (v8hf, v4hf variants).
2843         (vmul_lane): Add v4hf and v8hf variants.
2844         (vmul_n): Add v4hf and v8hf variants.
2845         (vext): New (v8hf, v4hf variants).
2846         (vcvts): New (v8hi, v4hi variants).
2847         (vcvts): New (v8hf, v4hf variants).
2848         (vcvtu): New (v8hi, v4hi variants).
2849         (vcvtu): New (v8hf, v4hf variants).
2850         (vcvts_n): New (v8hf, v4hf variants).
2851         (vcvtu_n): New (v8hi, v4hi variants).
2852         (vcvts_n): New (v8hi, v4hi variants).
2853         (vcvtu_n): New (v8hf, v4hf variants).
2854         (vbsl): New (v8hf, v4hf variants).
2855         (vcvtas): New (v8hf, v4hf variants).
2856         (vcvtau): New (v8hf, v4hf variants).
2857         (vcvtms): New (v8hf, v4hf variants).
2858         (vcvtmu): New (v8hf, v4hf variants).
2859         (vcvtns): New (v8hf, v4hf variants).
2860         (vcvtnu): New (v8hf, v4hf variants).
2861         (vcvtps): New (v8hf, v4hf variants).
2862         (vcvtpu): New (v8hf, v4hf variants).
2864 2016-09-23  Matthew Wahab  <matthew.wahab@arm.com>
2866         * config/arm/arm-builtins.c (hf_UP): New.
2867         (si_UP): New.
2868         (vfp_builtin_data): New.  Update comment.
2869         (enum arm_builtins): Include "arm_vfp_builtins.def".
2870         (ARM_BUILTIN_VFP_PATTERN_START): New.
2871         (arm_init_vfp_builtins): New.
2872         (arm_init_builtins): Add arm_init_vfp_builtins.
2873         (arm_expand_vfp_builtin): New.
2874         (arm_expand_builtins): Update for arm_expand_vfp_builtin.  Fix
2875         long line.
2876         * config/arm/arm_vfp_builtins.def: New file.
2877         * config/arm/t-arm (arm.o): Add arm_vfp_builtins.def.
2878         (arm-builtins.o): Likewise.
2880 2016-09-23  Kugan Vivekanandarajah  <kuganv@linaro.org>
2882         PR ipa/77677
2883         * ipa-cp.c (propagate_vr_accross_jump_function): Drop TREE_OVERFLOW
2884         from constant while creating value range.
2886 2016-09-23  Renlin Li  <renlin.li@arm.com>
2888         * ira.c (ira): Move ira_use_lra_p initialization code to ...
2889         (ira_init_once): Here.
2891 2016-09-23  Uros Bizjak  <ubizjak@gmail.com>
2892             Jakub Jelinek  <jakub@redhat.com>
2894         * hooks.h (hook_uint_uintp_false): Rename to...
2895         (hook_bool_uint_uintp_false): ... this.
2896         * hooks.c (hook_uint_uintp_false): Rename to...
2897         (hook_bool_uint_uintp_false): ... this.
2898         * target.def (elf_flags_numeric): Use hook_bool_uint_uintp_false
2899         instead of hook_uint_uintp_false.
2901 2016-09-23  Matthew Wahab  <matthew.wahab@arm.com>
2903         * config/arm/arm-builtins.c (arm_init_neon_builtin): New.
2904         (arm_init_builtins): Move body of a loop to the standalone
2905         function arm_init_neon_builtin.
2906         (arm_expand_neon_builtin_1): New.  Update comment.  Function body
2907         moved from arm_neon_builtin with some white-space fixes.
2908         (arm_expand_neon_builtin): Move code into the standalone function
2909         arm_expand_neon_builtin_1.
2911 2016-09-23  Matthew Wahab  <matthew.wahab@arm.com>
2913         * config/arm/iterators.md (VCVTHI): New.
2914         (NEON_VCMP): Add UNSPEC_VCLT and UNSPEC_VCLE.  Fix a long line.
2915         (NEON_VAGLTE): New.
2916         (VFM_LANE_AS): New.
2917         (VH_CVTTO): New.
2918         (V_reg): Add HF, V4HF and V8HF.  Fix white-space.
2919         (V_HALF): Add V4HF.  Fix white-space.
2920         (V_if_elem): Add HF, V4HF and V8HF.  Fix white-space.
2921         (V_s_elem): Likewise.
2922         (V_sz_elem): Fix white-space.
2923         (V_elem_ch): Likewise.
2924         (VH_elem_ch): New.
2925         (scalar_mul_constraint): Add V8HF and V4HF.
2926         (Is_float_mode): Fix white-space.
2927         (Is_d_reg): Add V4HF and V8HF.  Fix white-space.
2928         (q): Add HF.  Fix white-space.
2929         (float_sup): New.
2930         (float_SUP): New.
2931         (cmp_op_unsp): Add UNSPEC_VCALE and UNSPEC_VCALT.
2932         (neon_vfm_lane_as): New.
2933         * config/arm/neon.md (add<mode>3_fp16): New.
2934         (sub<mode>3_fp16): New.
2935         (mul<mode>3add<mode>_neon): New.
2936         (fma<VH:mode>4_intrinsic): New.
2937         (fmsub<VCVTF:mode>4_intrinsic): Fix white-space.
2938         (fmsub<VH:mode>4_intrinsic): New.
2939         (<absneg_str><mode>2): New.
2940         (neon_v<absneg_str><mode>): New.
2941         (neon_v<fp16_rnd_str><mode>): New.
2942         (neon_vrsqrte<mode>): New.
2943         (neon_vpaddv4hf): New.
2944         (neon_vadd<mode>): New.
2945         (neon_vsub<mode>): New.
2946         (neon_vmulf<mode>): New.
2947         (neon_vfma<VH:mode>): New.
2948         (neon_vfms<VH:mode>): New.
2949         (neon_vc<cmp_op><mode>): New.
2950         (neon_vc<cmp_op><mode>_fp16insn): New
2951         (neon_vc<cmp_op_unsp><mode>_fp16insn_unspec): New.
2952         (neon_vca<cmp_op><mode>): New.
2953         (neon_vca<cmp_op><mode>_fp16insn): New.
2954         (neon_vca<cmp_op_unsp><mode>_fp16insn_unspec): New.
2955         (neon_vc<cmp_op>z<mode>): New.
2956         (neon_vabd<mode>): New.
2957         (neon_v<maxmin>f<mode>): New.
2958         (neon_vp<maxmin>fv4hf: New.
2959         (neon_<fmaxmin_op><mode>): New.
2960         (neon_vrecps<mode>): New.
2961         (neon_vrsqrts<mode>): New.
2962         (neon_vrecpe<mode>): New (VH variant).
2963         (neon_vdup_lane<mode>_internal): New.
2964         (neon_vdup_lane<mode>): New.
2965         (neon_vcvt<sup><mode>): New (VCVTHI variant).
2966         (neon_vcvt<sup><mode>): New (VH variant).
2967         (neon_vcvt<sup>_n<mode>): New (VH variant).
2968         (neon_vcvt<sup>_n<mode>): New (VCVTHI variant).
2969         (neon_vcvt<vcvth_op><sup><mode>): New.
2970         (neon_vmul_lane<mode>): New.
2971         (neon_vmul_n<mode>): New.
2972         * config/arm/unspecs.md (UNSPEC_VCALE): New
2973         (UNSPEC_VCALT): New.
2974         (UNSPEC_VFMA_LANE): New.
2975         (UNSPECS_VFMS_LANE): New.
2977 2016-09-23  Dominik Vogt  <vogt@linux.vnet.ibm.com>
2979         * config/s390/s390.md ("*extzv<mode>_zEC12", "*extzv<mode>_z10")
2980         ("*extzv<mode><clobbercc_or_nocc>"):
2981         Correct a typo in a comment.
2982         Merged patterns.
2983         ("*insv<mode>_zEC12", "*insv<mode>_z10")
2984         ("*insv<mode><clobbercc_or_nocc>"): Ditto.
2985         ("*insv<mode>_zEC12_appendbitsleft")
2986         ("*insv<mode><clobbercc_or_nocc>_appendbitsleft")
2987         ("*insv<mode>_z10_appendbitsleft"): Ditto.
2988         ("*insv<mode>_zEC12_noshift", "*insv<mode>_z10_noshift")
2989         ("*insv<mode><clobbercc_or_nocc>_noshift"): Ditto.
2990         Provide pattern with operands switched.
2991         ("*pre_z10_extv<mode>"):
2992         Use new subst patterns.
2993         ("*extzvdi<clobbercc_or_nocc>_lshiftrt", "*<risbg_n>_ior_and_sr_ze")
2994         ("*extvsidi<clobbercc_or_nocc>", "*<risbg_n>_and_subregdi_rotr")
2995         ("*<risbg_n>_and_subregdi_rotl", "*<risbg_n>_di_and_rot")
2996         ("*insv_z10_noshift_cc", "*insv_z10_noshift_cconly")
2997         ("*<risbg_n>_<mode>_ior_and_lshiftrt")
2998         ("*<risbg_n>_sidi_ior_and_lshiftrt")
2999         ("*trunc_sidi_and_subreg_lshrt<clobbercc_or_nocc>"):
3000         New patterns.
3001         ("*extzv_<mode>_sll", "*extzv_<mode>_srl")
3002         ("*extzv_<mode>_srl<clobbercc_or_nocc>")
3003         ("*extzv_<mode>_sll<clobbercc_or_nocc>"): Renamed patterns, use risbgn
3004         on zEC12.
3005         ("SINT"): New mode_iterator with SI, HI, QI.
3006         * config/s390/subst.md ("clobbercc_or_nocc_subst", "z10_or_zEC12_cond")
3007         ("clobbercc_or_nocc", "risbg_n"): New constructs for risbg pattern
3008         duplication.
3010 2016-09-23  Dominik Vogt  <vogt@linux.vnet.ibm.com>
3012         * config/s390/predicates.md ("contiguous_bitmask_operand"): Adapt to
3013         new interface of s390_contiguous_bitmask_p.
3014         ("contiguous_bitmask_nowrap_operand"): New predicate.
3015         ("*anddi3_cc", "*anddi3_cconly", "*anddi3"): Replace NxxDq with NxxDw.
3016         * config/s390/constraints.md ("NxxDw", "NxxSq"): Adapt to new interface
3017         of s390_contiguous_bitmask_p.
3018         ("NxxDw"): Rename NxxDq constraint to NxxDw.
3019         ("NxxSw"): New constraint.
3020         * config/s390/s390.md ("*andsi3_zarch"): Enable bitmask wraparound.
3021         * config/s390/s390-protos.h (s390_contiguous_bitmask_p): Updated
3022         interface.
3023         (s390_contiguous_bitmask_nowrap_p): Export.
3024         * config/s390/s390.c (s390_contiguous_bitmask_nowrap_p): New name of
3025         former s390_contiguous_bitmask_p.
3026         (s390_contiguous_bitmask_p): Use s390_contiguous_bitmask_nowrap_p to
3027         detect contiguous bit ranges with wraparound.  Change signature to
3028         return START and END position instead of POS and LENGTH.
3029         (s390_contiguous_bitmask_vector_p): Remove extra code for continous bit
3030         ranges with wraparound.
3031         (s390_extzv_shift_ok): Use s390_contiguous_bitmask_nowrap_p.
3032         (s390_contiguous_bitmask_vector_p,s390_extzv_shift_ok,print_operand):
3033         Adapt to new signature of s390_contiguous_bitmask_p.
3035 2016-09-23  Bin Cheng  <bin.cheng@arm.com>
3037         * tree-vect-loop-manip.c (create_intersect_range_checks_index): New.
3038         (create_intersect_range_checks): New.
3039         (vect_create_cond_for_alias_checks): Call above function.
3041 2016-09-23  Matthew Wahab  <matthew.wahab@arm.com>
3043         * config/arm/iterators.md (Code iterators): Fix some white-space
3044         in the comments.
3045         (GLTE): New.
3046         (ABSNEG): New
3047         (FCVT): Moved from vfp.md.
3048         (VCVT_HF_US_N): New.
3049         (VCVT_SI_US_N): New.
3050         (VCVT_HF_US): New.
3051         (VCVTH_US): New.
3052         (FP16_RND): New.
3053         (absneg_str): New.
3054         (FCVTI32typename): Moved from vfp.md.
3055         (sup): Add UNSPEC_VCVTA_S, UNSPEC_VCVTA_U, UNSPEC_VCVTM_S,
3056         UNSPEC_VCVTM_U, UNSPEC_VCVTN_S, UNSPEC_VCVTN_U, UNSPEC_VCVTP_S,
3057         UNSPEC_VCVTP_U, UNSPEC_VCVT_HF_S_N, UNSPEC_VCVT_HF_U_N,
3058         UNSPEC_VCVT_SI_S_N, UNSPEC_VCVT_SI_U_N,  UNSPEC_VCVTH_S_N,
3059         UNSPEC_VCVTH_U_N, UNSPEC_VCVTH_S and UNSPEC_VCVTH_U.
3060         (vcvth_op): New.
3061         (fp16_rnd_str): New.
3062         (fp16_rnd_insn): New.
3063         * config/arm/unspecs.md (UNSPEC_VCVT_HF_S_N): New.
3064         (UNSPEC_VCVT_HF_U_N): New.
3065         (UNSPEC_VCVT_SI_S_N): New.
3066         (UNSPEC_VCVT_SI_U_N): New.
3067         (UNSPEC_VCVTH_S): New.
3068         (UNSPEC_VCVTH_U): New.
3069         (UNSPEC_VCVTA_S): New.
3070         (UNSPEC_VCVTA_U): New.
3071         (UNSPEC_VCVTM_S): New.
3072         (UNSPEC_VCVTM_U): New.
3073         (UNSPEC_VCVTN_S): New.
3074         (UNSPEC_VCVTN_U): New.
3075         (UNSPEC_VCVTP_S): New.
3076         (UNSPEC_VCVTP_U): New.
3077         (UNSPEC_VCVTP_S): New.
3078         (UNSPEC_VCVTP_U): New.
3079         (UNSPEC_VRND): New.
3080         (UNSPEC_VRNDA): New.
3081         (UNSPEC_VRNDI): New.
3082         (UNSPEC_VRNDM): New.
3083         (UNSPEC_VRNDN): New.
3084         (UNSPEC_VRNDP): New.
3085         (UNSPEC_VRNDX): New.
3086         * config/arm/vfp.md (<absneg_str>hf2): New.
3087         (neon_vabshf): New.
3088         (neon_v<fp16_rnd_str>hf): New.
3089         (neon_vrndihf): New.
3090         (addhf3): New.
3091         (subhf3): New.
3092         (divhf3): New.
3093         (mulhf3): New.
3094         (*mulsf3neghf_vfp): New.
3095         (*negmulhf3_vfp): New.
3096         (*mulsf3addhf_vfp): New.
3097         (*mulhf3subhf_vfp): New.
3098         (*mulhf3neghfaddhf_vfp): New.
3099         (*mulhf3neghfsubhf_vfp): New.
3100         (fmahf4): New.
3101         (neon_vfmahf): New.
3102         (fmsubhf4_fp16): New.
3103         (neon_vfmshf): New.
3104         (*fnmsubhf4): New.
3105         (*fnmaddhf4): New.
3106         (neon_vsqrthf): New.
3107         (neon_vrsqrtshf): New.
3108         (FCVT): Move to iterators.md.
3109         (FCVTI32typename): Likewise.
3110         (neon_vcvth<sup>hf): New.
3111         (neon_vcvth<sup>si): New.
3112         (neon_vcvth<sup>_nhf_unspec): New.
3113         (neon_vcvth<sup>_nhf): New.
3114         (neon_vcvth<sup>_nsi_unspec): New.
3115         (neon_vcvth<sup>_nsi): New.
3116         (neon_vcvt<vcvth_op>h<sup>si): New.
3117         (neon_<fmaxmin_op>hf): New.
3119 2016-09-23  Dominik Vogt  <vogt@linux.vnet.ibm.com>
3121         * config/s390/s390.md (bitoff, bitoff_plus): Neq mode attributes.
3122         ("*extzv<mode>_zEC12", "*insv<mode>_zEC12", "*insv<mode>_z10")
3123         ("*insv<mode>_zEC12_appendbitsleft")
3124         ("*insv<mode>_z10_appendbitsleft", "*r<noxa>sbg_<mode>_sll")
3125         ("*r<noxa>sbg_<mode>_srl"): Use new attributes.
3127 2016-09-23  Jakub Jelinek  <jakub@redhat.com>
3129         * ipa-cp.c (ipcp_store_vr_results): Avoid static local var zero.
3130         * sreal.h (sreal::min, sreal::max): Avoid static local vars,
3131         construct values without normalization.
3132         * tree-ssa-sccvn.c (vn_reference_lookup_3): Don't initialize
3133         static local lhs_ops to vNULL.
3135 2016-09-23  Matthew Wahab  <matthew.wahab@arm.com>
3136             Jiong Wang <jiong.wang@arm.com>
3138         * config/arm/arm.c (coproc_secondary_reload_class): Make HFmode
3139         available when FP16 instructions are available.
3140         (output_move_vfp): Add support for 16-bit data moves.
3141         (arm_validize_comparison): Fix some white-space.  Support HFmode
3142         by conversion to SFmode.
3143         * config/arm/arm.md (truncdfhf2): Fix a comment.
3144         (extendhfdf2): Likewise.
3145         (cstorehf4): New.
3146         (movsicc): Fix some white-space.
3147         (movhfcc): New.
3148         (movsfcc): Fix some white-space.
3149         (*cmovhf): New.
3150         * config/arm/vfp.md (*arm_movhi_vfp): Disable when VFP FP16
3151         instructions are available.
3152         (*thumb2_movhi_vfp): Likewise.
3153         (*arm_movhi_fp16): New.
3154         (*thumb2_movhi_fp16): New.
3155         (*movhf_vfp_fp16): New.
3156         (*movhf_vfp_neon): Disable when VFP FP16 instructions are available.
3157         (*movhf_vfp): Likewise.
3158         (extendhfsf2): Enable when VFP FP16 instructions are available.
3159         (truncsfhf2):  Enable when VFP FP16 instructions are available.
3161 2016-09-23  Martin Liska  <mliska@suse.cz>
3163         * config/s390/vx-builtins.md: Replace 'adress' with 'address'.
3165 2016-09-23  Matthew Wahab  <matthew.wahab@arm.com>
3167         * config/arm/arm.c (arm_evpc_neon_vuzp): Add support for V8HF and
3168         V4HF modes.
3169         (arm_evpc_neon_vtrn): Likewise.
3170         (arm_evpc_neon_vrev): Likewise.
3171         (arm_evpc_neon_vext): Likewise.
3172         * config/arm/arm_neon.h (vbsl_f16): New.
3173         (vbslq_f16): New.
3174         (vdup_n_f16): New.
3175         (vdupq_n_f16): New.
3176         (vdup_lane_f16): New.
3177         (vdupq_lane_f16): New.
3178         (vext_f16): New.
3179         (vextq_f16): New.
3180         (vmov_n_f16): New.
3181         (vmovq_n_f16): New.
3182         (vrev64_f16): New.
3183         (vrev64q_f16): New.
3184         (vtrn_f16): New.
3185         (vtrnq_f16): New.
3186         (vuzp_f16): New.
3187         (vuzpq_f16): New.
3188         (vzip_f16): New.
3189         (vzipq_f16): New.
3190         * config/arm/arm_neon_buillins.def (vdup_n): New (v8hf, v4hf variants).
3191         (vdup_lane): New (v8hf, v4hf variants).
3192         (vext): New (v8hf, v4hf variants).
3193         (vbsl): New (v8hf, v4hf variants).
3194         * config/arm/iterators.md (VDQWH): New.
3195         (VH): New.
3196         (V_double_vector_mode): Add V8HF and V4HF.  Fix white-space.
3197         (Scalar_mul_8_16): Fix white-space.
3198         (Is_d_reg): Add V4HF and V8HF.
3199         * config/arm/neon.md (neon_vdup_lane<mode>_internal): New.
3200         (neon_vdup_lane<mode>): New.
3201         (neon_vtrn<mode>_internal): Replace VDQW with VDQWH.
3202         (*neon_vtrn<mode>_insn): Likewise.
3203         (neon_vzip<mode>_internal): Likewise. Also fix white-space.
3204         (*neon_vzip<mode>_insn): Likewise
3205         (neon_vuzp<mode>_internal): Likewise.
3206         (*neon_vuzp<mode>_insn): Likewise
3207         * config/arm/vec-common.md (vec_perm_const<mode>): New.
3209 2016-09-23  Jiong Wang  <jiong.wang@arm.com>
3210             Matthew Wahab  <matthew.wahab@arm.com>
3212         * config/arm/arm.c (output_move_vfp): Weaken assert to allow HImode.
3213         (arm_hard_regno_mode_ok): Allow HImode values in VFP registers.
3214         * config/arm/arm.md (*movhi_bytes): Disable when VFP registers are
3215         available.  Also fix some white-space.
3216         * config/arm/vfp.md (*arm_movhi_vfp): New.
3217         (*thumb2_movhi_vfp): New.
3219 2016-09-23  Matthew Wahab  <matthew.wahab@arm.com>
3221         * config/arm/arm-c.c (arm_cpu_builtins): Define
3222         "__ARM_FEATURE_FP16_SCALAR_ARITHMETIC" and
3223         "__ARM_FEATURE_FP16_VECTOR_ARITHMETIC".
3225 2016-09-23  Matthew Wahab  <matthew.wahab@arm.com>
3227         * doc/sourcebuild.texi (ARM-specific attributes): Add anchor for
3228         arm_v8_1a_neon_ok.  Add entries for arm_v8_2a_fp16_scalar_ok,
3229         arm_v8_2a_fp16_scalar_hw, arm_v8_2a_fp16_neon_ok and
3230         arm_v8_2a_fp16_neon_hw.
3231         (Add options): Add entries for arm_v8_1a_neon, arm_v8_2a_scalar,
3232         arm_v8_2a_neon.
3234 2016-09-23  Matthew Wahab  <matthew.wahab@arm.com>
3236         * doc/sourcebuild.texi (ARM-specific attributes): Add entries for
3237         arm_fp16_alternative_ok and arm_fp16_none_ok.
3239 2016-09-23  Martin Liska  <mliska@suse.cz>
3241         * ipa-icf.c (sem_variable::merge): Replace adress with address.
3243 2016-09-23  Matthew Wahab  <matthew.wahab@arm.com>
3245         * config/arm/arm-arches.def ("armv8.1-a"): Add FL_CRC32.
3246         ("armv8.2-a"): New.
3247         ("armv8.2-a+fp16"): New.
3248         * config/arm/arm-protos.h (FL2_ARCH8_2): New.
3249         (FL2_FP16INST): New.
3250         (FL2_FOR_ARCH8_2A): New.
3251         * config/arm/arm-tables.opt: Regenerate.
3252         * config/arm/arm.c (arm_arch8_2): New.
3253         (arm_fp16_inst): New.
3254         (arm_option_override): Set arm_arch8_2 and arm_fp16_inst.  Check
3255         for incompatible fp16-format settings.
3256         * config/arm/arm.h (TARGET_VFP_FP16INST): New.
3257         (TARGET_NEON_FP16INST): New.
3258         (arm_arch8_2): Declare.
3259         (arm_fp16_inst): Declare.
3260         * config/arm/bpabi.h (BE8_LINK_SPEC): Add entries for
3261         march=armv8.2-a and march=armv8.2-a+fp16.
3262         * config/arm/t-aprofile (Arch Matches): Add entries for armv8.2-a
3263         and armv8.2-a+fp16.
3264         * doc/invoke.texi (ARM Options): Add "-march=armv8.1-a",
3265         "-march=armv8.2-a" and "-march=armv8.2-a+fp16".
3267 2016-09-23  Martin Liska  <mliska@suse.cz>
3269         * doc/extend.texi: Remove fused-madd from i386 target options.
3271 2016-09-23  Martin Liska  <mliska@suse.cz>
3273         * config/i386/i386.c (ix86_valid_target_attribute_inner_p):
3274         Handle movbe.
3276 2016-09-23  Martin Liska  <mliska@suse.cz>
3278         * config/i386/i386.c (ix86_valid_target_attribute_inner_p):
3279         Handle crc32.
3281 2016-09-23  Martin Liska  <mliska@suse.cz>
3283         PR target/71652
3284         * config/i386/i386.c (ix86_option_override_internal): Change
3285         signature and return false when there's an error related to
3286         arch string.
3287         (release_options_strings): New function.
3288         (ix86_valid_target_attribute_tree): Call the function.
3290 2016-09-23  Jakub Jelinek  <jakub@redhat.com>
3292         * hsa-gen.c (hsa_op_immed::hsa_op_immed Use CONSTRUCTOR_NELTS (...)
3293         instead of vec_safe_length (CONSTRUCTOR_ELTS (...)).
3294         (gen_hsa_ctor_assignment): Likewise.
3295         * print-tree.c (print_node): Likewise.
3296         * tree-dump.c (dequeue_and_dump): Likewise.
3297         * tree-sra.c (sra_modify_constructor_assign): Likewise.
3298         * expr.c (store_constructor): Likewise.
3299         * fold-const.c (operand_equal_p): Likewise.
3300         * tree-pretty-print.c (dump_generic_node): Likewise.
3301         * hsa-brig.c (hsa_op_immed::emit_to_buffer): Likewise.
3302         * ipa-icf-gimple.c (func_checker::compare_operand): Likewise.
3304 2016-09-23  Richard Biener  <rguenther@suse.de>
3306         * hooks.h (hook_uint_uintp_false): Declare.
3308 2016-09-22  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
3310         * config/avr/avr.c (avr_rtx_costs_1): Handle DImode MULT.
3311         (avr_address_cost): Replace 61 with MAX_LD_OFFSET(mode).
3313 2016-09-22  Martin Sebor  <msebor@redhat.com>
3315         PR target/77676
3316         * gimple-ssa-sprintf.c (target_int_min, target_int_max): Use
3317         HOST_BITS_PER_WIDE_INT, make a static local variable auto.
3318         (target_int_min): Correct computation.
3319         (format_integer): Use long long as the argument for the ll length
3320         modifier.
3321         (format_floating): Use target_int_max().
3322         (get_string_length): Same.
3323         (format_string): Avoid setting the bounded flag for strings
3324         of unknown length.
3325         (try_substitute_return_value): Avoid setting range info when
3326         the result isn't bounded.
3327         * varasm.c (assemble_name): Increase buffer size.
3329 2016-09-22  Andre Vieira  <andre.simoesdiasvieira@arm.com>
3330             Terry Guo  <terry.guo@arm.com>
3332         * target.def (elf_flags_numeric): New target hook.
3333         * targhooks.h (default_asm_elf_flags_numeric): New.
3334         * varasm.c (default_asm_elf_flags_numeric): New.
3335         (default_elf_asm_named_section): Use new target hook.
3336         * config/arm/arm.opt (mpure-code): New.
3337         * config/arm/arm.h (SECTION_ARM_PURECODE): New.
3338         * config/arm/arm.c (arm_asm_init_sections): Add section
3339         attribute to default text section if -mpure-code.
3340         (arm_option_check_internal): Diagnose use of option with
3341         non supported targets and/or options.
3342         (arm_asm_elf_flags_numeric): New.
3343         (arm_function_section): New.
3344         (arm_elf_section_type_flags): New.
3345         * config/arm/elf.h (JUMP_TABLES_IN_TEXT_SECTION): Disable
3346         for -mpure-code.
3347         * gcc/doc/texi (TARGET_ASM_ELF_FLAGS_NUMERIC): New.
3348         * gcc/doc/texi.in (TARGET_ASM_ELF_FLAGS_NUMERIC): Likewise.
3350 2016-09-22  Jan Hubicka  <hubicka@ucw.cz>
3352         * regcprop.c (copyprop_hardreg_forward_1): Remove noop moves.
3354 2016-09-22  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
3356         * emit-rtl.c (next_cc0_user): Make argument type rtx_insn *.
3357         * rtl.h: Adjust prototype.
3359 2016-09-22  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
3361         * emit-rtl.c (next_active_insn): Change argument type to rtx_insn *.
3362         (prev_active_insn): Likewise.
3363         (active_insn_p): Likewise.
3364         * rtl.h: Adjust prototypes.
3365         * cfgcleanup.c (merge_blocks_move_successor_nojumps): Adjust.
3366         * config/arc/arc.md: Likewise.
3367         * config/pa/pa.c (branch_to_delay_slot_p): Likewise.
3368         (branch_needs_nop_p): Likewise.
3369         (use_skip_p): Likewise.
3370         * config/sh/sh.c (gen_block_redirect): Likewise.
3371         (split_branches): Likewise.
3372         * reorg.c (optimize_skip): Likewise.
3373         (fill_simple_delay_slots): Likewise.
3374         (fill_slots_from_thread): Likewise.
3375         (relax_delay_slots): Likewise.
3376         * resource.c (mark_target_live_regs): Likewise.
3378 2016-09-22  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
3380         * config/cris/cris.c (cris_asm_output_case_end): Change argument
3381         type to rtx_insn *.
3382         * emit-rtl.c (next_nonnote_nondebug_insn): Likewise.
3383         (prev_nonnote_nondebug_insn): Likewise.
3384         * config/cris/cris-protos.h: Adjust prototype.
3385         * rtl.h: Likewise.
3386         * jump.c (rtx_renumbered_equal_p): Adjust.
3388 2016-09-22  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
3390         * emit-rtl.c (prev_real_insn): Change argument type to rtx_insn *.
3391         * rtl.h: Adjust prototype.
3392         * config/sh/sh.md: Adjust.
3393         * dwarf2out.c (add_var_loc_to_decl): Likewise.
3395 2016-09-22  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
3397         * emit-rtl.c (next_nondebug_insn): Change argument type to rtx_insn *.
3398         (prev_nondebug_insn): Likewise.
3399         * loop-doloop.c (doloop_condition_get): Likewise.
3400         * rtl.h: Adjust prototype.
3401         * cfgloop.h: Likewise.
3403 2016-09-22  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
3405         * emit-rtl.c (next_nonnote_insn): Change argument type to rtx_insn *.
3406         (prev_nonnote_insn): Likewise.
3407         * jump.c (reversed_comparison_code_parts): Likewise.
3408         (reversed_comparison): Likewise.
3409         * rtl.h: Adjust prototypes.
3410         * config/arc/arc.md: Adjust.
3411         * cse.c (find_comparison_args): Likewise.
3412         * reorg.c (redundant_insn): Change return type to rtx_insn *.
3413         (fix_reg_dead_note): Change argument type to rtx_insn *.
3414         (delete_prior_computation): Likewise.
3415         (delete_computation): Likewise.
3416         (fill_slots_from_thread): Adjust.
3417         (relax_delay_slots): Likewise.
3418         * simplify-rtx.c (simplify_unary_operation_1): Likewise.
3419         (simplify_relational_operation_1): Likewise.
3420         (simplify_ternary_operation): Likewise.
3422 2016-09-22  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
3424         * config/arc/arc-protos.h (arc_label_align): Change type of
3425         variables from rtx to rtx_insn *.
3426         * config/arc/arc.c (arc_label_align): Likewise.
3427         * config/arm/arm.c (any_sibcall_could_use_r3): Likewise.
3428         * config/bfin/bfin.c (workaround_speculation): Likewise.
3429         * config/c6x/c6x.c (find_next_cycle_insn): Likewise.
3430         (find_last_same_clock): Likewise.
3431         (reorg_split_calls): Likewise.
3432         * config/cris/cris-protos.h (cris_cc0_user_requires_cmp): Likewise.
3433         * config/cris/cris.c (cris_cc0_user_requires_cmp): Likewise.
3434         * config/h8300/h8300-protos.h (same_cmp_preceding_p): Likewise.
3435         (same_cmp_following_p): Likewise.
3436         * config/h8300/h8300.c (same_cmp_preceding_p): Likewise.
3437         (same_cmp_following_p): Likwise.
3438         * config/m32r/m32r.c (m32r_expand_epilogue): Likewise.
3439         * config/nds32/nds32-protos.h (nds32_target_alignment): Likewise.
3440         * config/nds32/nds32.c (nds32_target_alignment): Likewise.
3441         * config/rl78/rl78.c (rl78_alloc_physical_registers_op2): Likewise.
3442         (rl78_alloc_physical_registers_cmp): Likewise.
3443         (rl78_alloc_physical_registers_umul): Likewise.
3444         (rl78_calculate_death_notes): Likewise.
3445         * config/s390/s390-protos.h (s390_label_align): Likewise.
3446         * config/s390/s390.c (s390_label_align): Likewise.
3447         * config/sh/sh.c (barrier_align): Likewise.
3448         * config/sparc/sparc-protos.h (emit_cbcond_nop): Likewise.
3449         * config/sparc/sparc.c (sparc_asm_function_epilogue): Likewise.
3450         (emit_cbcond_nop): Likewise.
3452 2016-09-22  Martin Liska  <mliska@suse.cz>
3454         PR ipa/77653
3455         * ipa-icf.c (sem_variable::merge): Yield merge operation if
3456         alias address matters, not necessarily address of original.
3458 2016-09-22  Richard Biener  <rguenther@suse.de>
3460         PR middle-end/77697
3461         * gimple-fold.c (fold_array_ctor_reference): Turn asserts into
3462         fold fails.
3464 2016-09-22  Richard Biener  <rguenther@suse.de>
3466         PR middle-end/77677
3467         * gimple-match-head.c (gimple_resimplify1): Drop TREE_OVERFLOW
3468         from constant folding results.
3469         (gimple_resimplify2): Likewise.
3470         (gimple_resimplify3): Likewise.
3472 2016-09-22  Richard Biener  <rguenther@suse.de>
3474         PR middle-end/77678
3475         * expr.c (expand_expr_real_1): Guard array access against negative
3476         offset.
3478 2016-09-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3480         * gimple-ssa-sprintf.c (format_floating_max): Use GMP_RNDN instead
3481         of MPFR_RNDN.
3482         (format_floating): Likewise.
3484 2016-09-22  Jakub Jelinek  <jakub@redhat.com>
3486         PR fortran/77665
3487         * tree-inline.c (remap_gimple_stmt): Set has_simduid_loops
3488         for all IFN_GOMP_SIMD_* internal fns, not just for
3489         IFN_GOMP_SIMD_ORDERED_*.
3491 2016-09-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
3493         PR target/77670
3494         * config/rs6000/predicates.md (invert_fpmask_comparison_operator):
3495         New predicate that matches the ISA 3.0 XSCMP{EQ,GT,GE}DP
3496         instructions when you want to invert the test.
3497         * config/rs6000/rs6000.md (fpmask<mode>): Use the arguments in the
3498         correct order for XXSEL.
3499         (mov<SFDF:mode><SFDF2:mode>cc_invert_p9): Define the inverted test
3500         for using XSCMP{EQ,GT,GE}DP.
3502 2016-09-21  David Malcolm  <dmalcolm@redhat.com>
3504         * genconstants.c (main): Introduce noop_reader and convert call
3505         to read_md_files to a method call.
3506         * genenums.c (main): Likewise.
3507         * genmddeps.c (main): Likewise.
3508         * genpreds.c (write_tm_constrs_h): Replace use of "in_fname" with
3509         rtx_reader_ptr->get_top_level_filename ().
3510         (write_tm_preds_h): Likewise.
3511         (write_insn_preds_c): Likewise.
3512         * gensupport.c (class gen_reader): New subclass of rtx_reader.
3513         (rtx_handle_directive): Convert to...
3514         (gen_reader::handle_unknown_directive): ...this.
3515         (init_rtx_reader_args_cb): Convert return type from bool to
3516         rtx_reader *.  Create a gen_reader instance, using it for the
3517         call to read_md_files.  Return it if no errors occur.
3518         (init_rtx_reader_args): Convert return type from bool to
3519         rtx_reader *.
3520         * gensupport.h (init_rtx_reader_args_cb): Likewise.
3521         (init_rtx_reader_args_cb): Likewise.
3522         * read-md.c (struct file_name_list): Move to class rtx_reader.
3523         (read_md_file): Delete in favor of rtx_reader::m_read_md_file.
3524         (read_md_filename): Delete in favor of
3525         rtx_reader::m_read_md_filename.
3526         (read_md_lineno): Delete in favor of rtx_reader::m_read_md_lineno.
3527         (in_fname): Delete in favor of rtx_reader::m_toplevel_fname.
3528         (base_dir): Delete in favor of rtx_reader::m_base_dir.
3529         (first_dir_md_include): Delete in favor of
3530         rtx_reader::m_first_dir_md_include.
3531         (last_dir_md_include_ptr): Delete in favor of
3532         rtx_reader::m_last_dir_md_include_ptr.
3533         (max_include_len): Delete.
3534         (rtx_reader_ptr): New.
3535         (fatal_with_file_and_line): Use get_filename and get_lineno
3536         accessors of rtx_reader_ptr.
3537         (require_char_ws): Likewise.
3538         (rtx_reader::read_char): New method, based on ::read_char.
3539         (rtx_reader::unread_char): New method, based on ::unread_char.
3540         (read_escape): Use get_filename and get_lineno accessors of
3541         rtx_reader_ptr.
3542         (read_braced_string): Use get_lineno accessor of rtx_reader_ptr.
3543         (read_string): Use get_filename and get_lineno accessors of
3544         rtx_reader_ptr.
3545         (rtx_reader::rtx_reader): New ctor.
3546         (rtx_reader::~rtx_reader): New dtor.
3547         (handle_include): Convert from a function to...
3548         (rtx_reader::handle_include): ...this method, converting
3549         handle_directive from a callback to a virtual function.
3550         (handle_file): Likewise, converting to...
3551         (rtx_reader::handle_file): ...this method.
3552         (handle_toplevel_file): Likewise, converting to...
3553         (rtx_reader::handle_toplevel_file): ...this method.
3554         (rtx_reader::get_current_location): New method.
3555         (parse_include): Convert from a function to...
3556         (rtx_reader::add_include_path): ...this method, dropping redundant
3557         update to unused max_include_len.
3558         (read_md_files): Convert from a function to...
3559         (rtx_reader::read_md_files): ...this method, converting
3560         handle_directive from a callback to a virtual function.
3561         (noop_reader::handle_unknown_directive): New method.
3562         * read-md.h (directive_handler_t): Delete this typedef.
3563         (in_fname): Delete.
3564         (read_md_file): Delete.
3565         (read_md_lineno): Delete.
3566         (read_md_filename): Delete.
3567         (class rtx_reader): New class.
3568         (rtx_reader_ptr): New decl.
3569         (class noop_reader): New subclass of rtx_reader.
3570         (read_char): Reimplement in terms of rtx_reader::read_char.
3571         (unread_char): Reimplement in terms of rtx_reader::unread_char.
3572         (read_md_files): Delete.
3573         * read-rtl.c (read_rtx_code): Update for deletion of globals
3574         read_md_filename and read_md_lineno.
3576 2016-09-21  Jason Merrill  <jason@redhat.com>
3578         * input.h (from_macro_definition_at): New.
3580 2016-09-21  Segher Boessenkool  <segher@kernel.crashing.org>
3582         * doc/rtl.texi (JUMP_LABEL): Document RETURN and SIMPLE_RETURN values.
3584 2016-09-21  Bernd Edlinger  <bernd.edlinger@hotmail.de>
3586         PR tree-optimization/77550
3587         * tree-vect-stmts.c (create_array_ref): Change parameters.
3588         (get_group_alias_ptr_type): New function.
3589         (vectorizable_store, vectorizable_load): Use get_group_alias_ptr_type.
3591 2016-09-21  Marek Polacek  <polacek@redhat.com>
3593         * gimple-ssa-sprintf.c (pass_sprintf_length::compute_format_length):
3594         Add falls through comment.
3596 2016-09-21  Richard Biener  <rguenther@suse.de>
3598         * dwarf2out.c (remove_child_with_prev): Clear child->die_sib.
3599         (replace_child): Likewise.
3600         (remove_child_TAG): Adjust.
3601         (move_marked_base_types): Likewise.
3602         (prune_unused_types_prune): Clear die_sib of removed children.
3604 2016-09-21  Georg-Johann Lay  <avr@gjlay.de>
3606         PR target/77326
3607         * config/avr/avr.c (avr_notice_update_cc) [CC_NONE]: If insn
3608         touches some regs mentioned in cc_status, do CC_STATUS_INIT.
3610 2016-09-21  Richard Biener  <rguenther@suse.de>
3612         PR tree-optimization/77648
3613         * tree-ssa-structalias.c (process_constraint): Handle all DEREF
3614         with complex RHS.
3615         (make_transitive_closure_constraints): Adjust comment.
3616         (make_any_offset_constraints): New function.
3617         (handle_rhs_call): Make sure to first expand a pointer to all
3618         subfields before transitively closing it.
3619         (handle_const_call): Likewise.  Properly expand returned
3620         pointers as well.
3621         (handle_pure_call): Likewise.
3623 2016-09-21  Richard Biener  <rguenther@suse.de>
3624             Jakub Jelinek  <jakub@redhat.com>
3626         PR tree-optimization/77621
3627         * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Split
3628         group at non-vectorizable stmts.
3630 2016-09-21  Kugan Vivekanandarajah  <kuganv@linaro.org>
3632         PR tree-optimization/72835
3633         * tree-ssa-reassoc.c (make_new_ssa_for_def): New.
3634         (make_new_ssa_for_all_defs): Likewise.
3635         (zero_one_operation): Replace all SSA_NAMEs defined in the chain.
3637 2016-09-20  Martin Sebor  <msebor@redhat.com>
3639         PR middle-end/49905
3640         * Makefile.in (OBJS): Add gimple-ssa-sprintf.o.
3641         * config/linux.h (TARGET_PRINTF_POINTER_FORMAT): Redefine.
3642         * config/linux.c (gnu_libc_printf_pointer_format): New function.
3643         * config/sol2.h (TARGET_PRINTF_POINTER_FORMAT): Same.
3644         * config/sol2.c (solaris_printf_pointer_format): New function.
3645         * doc/invoke.texi (-Wformat-length, -fprintf-return-value): New
3646         options.
3647         * doc/tm.texi.in (TARGET_PRINTF_POINTER_FORMAT): Document.
3648         * doc/tm.texi: Regenerate.
3649         * gimple-fold.h (get_range_strlen): New function.
3650         (get_maxval_strlen): Declare existing function.
3651         * gimple-fold.c (get_range_strlen): Add arguments and compute both
3652         maximum and minimum.
3653          (get_range_strlen): Define overload.
3654         (get_maxval_strlen): Adjust.
3655         * gimple-ssa-sprintf.c: New file and pass.
3656         * passes.def (pass_sprintf_length): Add new pass.
3657         * targhooks.h (default_printf_pointer_format): Declare new function.
3658         (gnu_libc_printf_pointer_format): Same.
3659         (solaris_libc_printf_pointer_format): Same.
3660         * targhooks.c (default_printf_pointer_format): Define new function.
3661         * tree-pass.h (make_pass_sprintf_length): Declare new function.
3662         * print-tree.c: Increase buffer size.
3664 2016-09-21  Kugan Vivekanandarajah  <kuganv@linaro.org>
3666         * tree-vrp.c (get_value_range): Teach PARM_DECL to use ipa-vrp results.
3668 2016-09-21  Kugan Vivekanandarajah  <kuganv@linaro.org>
3670         * common.opt: New option -fipa-vrp.
3671         * ipa-cp.c (ipa_get_vr_lat): New.
3672         (ipcp_vr_lattice::print): Likewise.
3673         (print_all_lattices): Call ipcp_vr_lattice::print.
3674         (ipcp_vr_lattice::meet_with): New.
3675         (ipcp_vr_lattice::meet_with_1): Likewise.
3676         (ipcp_vr_lattice::top_p): Likewise.
3677         (ipcp_vr_lattice::bottom_p): Likewsie.
3678         (ipcp_vr_lattice::set_to_bottom): Likewise.
3679         (set_all_contains_variable): Call VR set_to_bottom.
3680         (initialize_node_lattices): Init VR lattices.
3681         (propagate_vr_accross_jump_function): New.
3682         (propagate_constants_accross_call): Call
3683         propagate_vr_accross_jump_function.
3684         (ipcp_store_vr_results): New.
3685         (ipcp_driver): Handle VR.
3686         * ipa-prop.c (ipa_print_node_jump_functions_for_edge): Handle VR.
3687         (ipa_set_jf_unknown): Likewise.
3688         (ipa_compute_jump_functions_for_edge): Likewise.
3689         (ipa_node_params_t::duplicate): Likewise.
3690         (ipa_write_jump_function): Likewise.
3691         (ipa_read_jump_function): Likewise.
3692         (write_ipcp_transformation_info): Likewise.
3693         (read_ipcp_transformation_info): Likewise.
3694         (ipcp_update_vr): New.
3695         (ipcp_transform_function): Handle VR.
3696         * ipa-prop.h (struct ipa_vr): New.
3697         * cgraph.c: Include tree-vrp.h.
3698         * cgraphunit.c: Likewise.
3699         * ipa-utils.c: Likewise.
3700         * ipa.c: Likewise.
3701         * opts.c: Likewise.
3702         * toplev.c: Likewise.
3703         * ipa-devirt.c: Likewise.
3704         * ipa-inline-transform.c: Likewise.
3705         * ipa-inline.c: Likewise.
3706         * ipa-profile.c: Likewise.
3708 2016-09-21  Kugan Vivekanandarajah  <kuganv@linaro.org>
3710         * doc/invoke.texi: Document -fdump-tree-evrp.
3711         * passes.def: Define new pass_early_vrp.
3712         * timevar.def: Define new TV_TREE_EARLY_VRP.
3713         * tree-pass.h (make_pass_early_vrp): New.
3714         * tree-ssa-propagate.c: Make replace_uses_in non static.
3715         * tree-ssa-propagate.h: Export replace_uses_in.
3716         * tree-vrp.c (extract_range_for_var_from_comparison_expr): New.
3717         (extract_range_from_assert): Factor out
3718         extract_range_for_var_from_comparison_expr.
3719         (vrp_initialize_lattice): New.
3720         (vrp_initialize): Factor out vrp_initialize_lattice.
3721         (vrp_valueize): Fix it to reject complex value ranges.
3722         (vrp_free_lattice): New.
3723         (evrp_dom_walker::before_dom_children): Likewise.
3724         (evrp_dom_walker::after_dom_children): Likewise.
3725         (evrp_dom_walker::push_value_range): Likewise.
3726         (evrp_dom_walker::pop_value_range): Likewise.
3727         (execute_early_vrp): Likewise.
3728         (execute_vrp): Call vrp_initialize_lattice and vrp_free_lattice.
3729         (make_pass_early_vrp): New.
3731 2016-09-20  Uros Bizjak  <ubizjak@gmail.com>
3733         * config/i386/i386.md (mult->ashift peephole2s): Use pow2p_hwi
3734         instead of exact_log2.
3736 2016-09-20  Uros Bizjak  <ubizjak@gmail.com>
3738         PR target/77621
3739         * config/i386/i386.c (ix86_preferred_simd_mode) <case DFmode>:
3740         Don't return word_mode for !TARGET_VECTORIZE_DOUBLE.
3741         (ix86_add_stmt_cost): Penalize DFmode vector operations
3742         for !TARGET_VECTORIZE_DOUBLE.
3744 2016-09-20  Gerald Pfeifer  <gerald@pfeifer.com>
3746         * doc/invoke.texi (Warning Options): Simplify language.
3747         (Optimize Options): Complete sentence.
3749 2016-09-20  David Edelsohn  <dje.gcc@gmail.com>
3751         * dbxout.c (xcoff_debug_hooks):  Add filename parameter to
3752         early_finish hook.
3754 2016-09-20  Michael Meissner  <meissner@linux.vnet.ibm.com>
3756         PR target/71395
3757         * config/rs6000/rs6000.c (rs6000_expand_vector_init): For V4SF
3758         inits on power8 and above, use the VMRGEW instruction instead of a
3759         permute.
3761         * config/rs6000/altivec.md (UNSPEC_VMRGEW_DIRECT): New unspec.
3762         (p8_vmrgew_v4sf_direct): New VMRGEW insn for V4SF floating
3763         initialization.
3765 2016-09-20  Tamar Christina  <tamar.christina@arm.com>
3767         * config/aarch64/arm_neon.h
3768         (vst2_s64, vst2_u64, vst2_f64, vst2_s8): Add missing attributes.
3769         (vst3_s64, vst3_u64, vst3_f64, vst3_s8): Likewise.
3770         (vst4_s64, vst4_u64, vst4_f64, vst4_s8): Likewise.
3772 2016-09-20  Bernd Edlinger  <bernd.edlinger@hotmail.de>
3774         * config/var/vax.h (ELIMINABLE_REGS): Define.
3775         (INITIAL_ELIMINATION_OFFSET): Define.
3777 2016-09-20  Jakub Jelinek  <jakub@redhat.com>
3779         PR middle-end/77624
3780         * builtins.c (fold_builtin_atomic_always_lock_free): Only look through
3781         cast to void * if the cast is from some other pointer type.
3783 2016-09-20  Richard Biener  <rguenther@suse.de>
3785         PR tree-optimization/77646
3786         * tree-ssa-sccvn.c (visit_reference_op_call): Always value-number
3787         a VDEF.
3789 2016-09-20  Tamar Christina  <tamar.christina@arm.com>
3791         * config/aarch64/arm_neon.h: Add gnu_inline and artificial
3792         attributes to all inlined functions and make them extern.
3794 2016-09-20  Richard Biener  <rguenther@suse.de>
3796         * debug.h (gcc_debug_hooks): Add filename parameter to early_finish
3797         hook.
3798         * debug.c (do_nothing_debug_hooks): Adjust.
3799         * dbxout.c (dbx_debug_hooks): Likewise.
3800         * sdbout.c (sdb_debug_hooks): Likewise.
3801         * dwarf2out.c (dwarf2_lineno_debug_hooks): Likewise.
3802         (dwarf2out_finish): Move producer, filename and
3803         path annotation ...
3804         (dwarf2out_early_finish): ... here.  Remove in_lto_p special-casing.
3805         * cgraphunit.c (symbol_table::finalize_compilation_unit): Adjust.
3807 2016-09-19  Bernd Edlinger  <bernd.edlinger@hotmail.de>
3809         PR c++/77434
3810         * doc/invoke.texi: Document -Wint-in-bool-context.
3812         PR middle-end/77421
3813         * dwarf2out.c (output_loc_operands): Fix an assertion.
3815 2016-09-19  Joseph Myers  <joseph@codesourcery.com>
3817         * ginclude/float.h [__STDC_WANT_IEC_60559_BFP_EXT__]
3818         (CR_DECIMAL_DIG): New macro.
3820 2016-09-19  Joseph Myers  <joseph@codesourcery.com>
3822         * ginclude/stddef.h (max_align_t) [__i386__]: Add __float128
3823         element.
3825 2016-09-19  Vladimir Makarov  <vmakarov@redhat.com>
3827         PR rtl-optimization/77416
3828         * lra-remat.c (operand_to_remat): Process hard coded insn
3829         registers.
3831 2016-09-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3833         * simplify-rtx.c (simplify_relational_operation_1): Add transformation
3834         (GTU (PLUS a C) (C - 1)) --> (LTU a -C).
3836 2016-09-19  Segher Boessenkool  <segher@kernel.crashing.org>
3838         * target.def (lra_p): Wordsmithing.
3839         * doc/tm.texi: Regenerate.
3841 2016-09-19  Jakub Jelinek  <jakub@redhat.com>
3842             Jan Hubicka  <jh@suse.cz>
3844         PR target/77587
3845         * cgraph.c (cgraph_node::rtl_info): Pass &avail to
3846         ultimate_alias_target call, return NULL if avail < AVAIL_AVAILABLE.
3847         Call ultimate_alias_target just once, not up to 4 times.
3849 2016-09-19  Richard Biener  <rguenther@suse.de>
3851         * dwarf2out.c (early_dwarf_finished): New global.
3852         (set_early_dwarf::set_early_dwarf): Assert early_dwarf_finished
3853         is false.
3854         (dwarf2out_early_finish): Set early_dwarf_finished at the end,
3855         if called from LTO exit early.
3856         (dwarf2out_late_global_decl): When being during the early
3857         debug phase do not add locations but only const value attributes.
3858         Adjust the way we generate early DIEs for LTO.
3860 2016-09-19  Richard Biener  <rguenther@suse.de>
3862         PR middle-end/77605
3863         * tree-data-ref.c (analyze_subscript_affine_affine): Use the
3864         proper niter to bound the loops.
3866 2016-09-19  Richard Biener  <rguenther@suse.de>
3868         PR tree-optimization/77514
3869         * tree-ssa-pre.c (create_expression_by_pieces): Optimize
3870         search for folded stmt.
3872 2016-09-17  Jan Hubicka  <hubicka@ucw.cz>
3874         * passes.def (pass_early_thread_jumps): Schedule after forwprop.
3875         * tree-pass.h (make_pass_early_thread_jumps): Declare.
3876         * tree-ssa-threadbackward.c (fsm_find_thread_path,
3877         fsm_find_thread_path, profitable_jump_thread_path,
3878         fsm_find_control_statement_thread_paths,
3879         find_jump_threads_backwards): Add speed_p parameter.
3880         (pass_data_early_thread_jumps): New pass.
3881         (make_pass_early_thread_jumps): New function.
3883 2016-09-17  Andreas Schwab  <schwab@suse.de>
3885         * config/ia64/ia64.h (ASM_OUTPUT_DWARF_OFFSET): Add cast.
3886         * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Likewise.
3888 2016-09-16  Eric Botcazou  <ebotcazou@adacore.com>
3890         * recog.c (rest_of_handle_split_after_reload): Delete.
3891         (pass_split_after_reload::gate): New method.
3892         (pass_split_after_reload::execute): Call split_all_insns directly.
3894 2016-09-16  Jonathan Wakely  <jwakely@redhat.com>
3896         * doc/extend.texi (Integer Overflow Builtins): Fix type of out
3897         parameters for functions taking long long arguments.
3899 2016-09-16  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
3901         PR target/77613
3902         * config/rs6000/rs6000.c (rtx_is_swappable_p): Add support for
3903         splat with truncate.
3905 2016-09-16  Jason Merrill  <jason@redhat.com>
3907         * hwint.h (least_bit_hwi, pow2_or_zerop, pow2p_hwi, ctz_or_zero):
3908         New.
3909         * hwint.c (exact_log2): Use pow2p_hwi.
3910         (ctz_hwi, ffs_hwi): Use least_bit_hwi.
3911         * alias.c (memrefs_conflict_p): Use pow2_or_zerop.
3912         * builtins.c (get_object_alignment_2, get_object_alignment)
3913         (get_pointer_alignment, fold_builtin_atomic_always_lock_free): Use
3914         least_bit_hwi.
3915         * calls.c (compute_argument_addresses, store_one_arg): Use
3916         least_bit_hwi.
3917         * cfgexpand.c (expand_one_stack_var_at): Use least_bit_hwi.
3918         * combine.c (force_to_mode): Use least_bit_hwi.
3919         (contains_muldiv, find_split_point, combine_simplify_rtx)
3920         (simplify_if_then_else, simplify_set, force_to_mode)
3921         (if_then_else_cond, simplify_and_const_int_1)
3922         (simplify_compare_const): Use pow2p_hwi.
3923         * cse.c (fold_rtx): Use pow2p_hwi.
3924         * emit-rtl.c (set_mem_attributes_minus_bitpos, adjust_address_1):
3925         Use least_bit_hwi.
3926         * expmed.c (synth_mult, expand_divmod): Use ctz_or_zero, ctz_hwi.
3927         (init_expmed_one_conv): Use pow2p_hwi.
3928         * expr.c (is_aligning_offset): Use pow2p_hwi.
3929         * fold-const.c (round_up_loc, round_down_loc): Use pow2_or_zerop.
3930         (fold_binary_loc): Use pow2p_hwi.
3931         * function.c (assign_parm_find_stack_rtl): Use least_bit_hwi.
3932         * gimple-fold.c (gimple_fold_builtin_memory_op): Use pow2p_hwi.
3933         * gimple-ssa-strength-reduction.c (replace_ref): Use least_bit_hwi.
3934         * hsa-gen.c (gen_hsa_addr_with_align, hsa_bitmemref_alignment):
3935         Use least_bit_hwi.
3936         * ifcvt.c (noce_try_store_flag_constants): Use pow2p_hwi.
3937         * ipa-cp.c (ipcp_alignment_lattice::meet_with_1): Use least_bit_hwi.
3938         * ipa-prop.c (ipa_modify_call_arguments): Use least_bit_hwi.
3939         * omp-low.c (oacc_loop_fixed_partitions)
3940         (oacc_loop_auto_partitions): Use least_bit_hwi.
3941         * rtlanal.c (nonzero_bits1): Use ctz_or_zero.
3942         * stor-layout.c (place_field): Use least_bit_hwi.
3943         * tree-pretty-print.c (dump_generic_node): Use pow2p_hwi.
3944         * tree-sra.c (build_ref_for_offset): Use least_bit_hwi.
3945         * tree-ssa-ccp.c (ccp_finalize): Use least_bit_hwi.
3946         * tree-ssa-math-opts.c (bswap_replace): Use least_bit_hwi.
3947         * tree-ssa-strlen.c (handle_builtin_memcmp): Use pow2p_hwi.
3948         * tree-vect-data-refs.c (vect_analyze_group_access_1)
3949         (vect_grouped_store_supported, vect_grouped_load_supported)
3950         (vect_permute_load_chain, vect_shift_permute_load_chain)
3951         (vect_transform_grouped_load): Use pow2p_hwi.
3952         * tree-vect-generic.c (expand_vector_divmod): Use ctz_or_zero.
3953         * tree-vect-patterns.c (vect_recog_divmod_pattern): Use ctz_or_zero.
3954         * tree-vect-stmts.c (vectorizable_mask_load_store): Use
3955         least_bit_hwi.
3956         * tsan.c (instrument_expr): Use least_bit_hwi.
3957         * var-tracking.c (negative_power_of_two_p): Use pow2_or_zerop.
3959 2016-09-16  Andreas Schwab  <schwab@suse.de>
3961         * config/ia64/ia64.h (ASM_OUTPUT_DWARF_OFFSET): Use parameter
3962         OFFSET, not offset.
3963         * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Likewise.
3965 2016-09-16  Jakub Jelinek  <jakub@redhat.com>
3967         PR target/77526
3968         * combine.c (rest_of_handle_combine): If any edges have been purged,
3969         free dominators if available.
3971 2016-09-16  Jakub Jelinek  <jakub@redhat.com>
3972             Eric Botcazou  <ebotcazou@adacore.com>
3974         PR middle-end/77594
3975         * internal-fn.c (expand_arith_overflow) <case MINUS_EXPR>: Don't fall
3976         through into expand_addsub_overflow after expand_neg_overflow.
3978 2016-09-15  David Malcolm  <dmalcolm@redhat.com>
3980         * diagnostic-show-locus.c
3981         (selftest::test_fixit_insert_containing_newline): New function.
3982         (selftest::test_fixit_replace_containing_newline): New function.
3983         (selftest::diagnostic_show_locus_c_tests): Call the above.
3985 2016-09-15  Bin Cheng  <bin.cheng@arm.com>
3987         PR tree-optimization/77503
3988         * tree-vect-loop.c (vectorizable_reduction): Record reduction
3989         code for CONST_COND_REDUCTION at analysis stage and use it at
3990         transform stage.
3991         * tree-vectorizer.h (struct _stmt_vec_info): New field.
3992         (STMT_VINFO_VEC_CONST_COND_REDUC_CODE): New macro.
3993         * tree-vect-stmts.c (new_stmt_vec_info): Initialize above new
3994         field.
3996 2016-09-15  Richard Biener  <rguenther@suse.de>
3998         PR middle-end/77544
3999         * fold-const.c (split_tree): Do not split constant ~X.
4001 2016-09-15  Jakub Jelinek  <jakub@redhat.com>
4003         PR rtl-optimization/77425
4004         * sched-int.h (sd_iterator_cond): Don't update it_ptr->linkp if list
4005         is NULL.
4007         PR middle-end/77475
4008         * config/i386/i386.c (ix86_parse_stringop_strategy_string): Simplify,
4009         use %qs instead of %s where desirable, use argument instead of arg in
4010         the diagnostic wording, add list of supported strategies and
4011         spellcheck hint.
4012         (ix86_option_override_internal): Emit target("m...") instead of
4013         option("m...") in the diagnostic.  Use %qs instead of %s in invalid
4014         -march/-mtune option diagnostic.  Add list of supported arches/tunings
4015         and spellcheck hint.  Remove prefix, suffix and sw variables, use
4016         main_args_p ? "..." : "..." in diagnostics to make translation
4017         possible.
4019 2016-09-15  Richard Biener  <rguenther@suse.de>
4021         * dwarf2asm.h (dw2_asm_output_offset): Add overload with
4022         extra offset argument.
4023         * dwarf2asm.c (dw2_asm_output_offset): Implement that.
4024         * doc/tm.texi.in (ASM_OUTPUT_DWARF_OFFSET): Adjust documentation
4025         to reflect new offset parameter.
4026         * doc/tm.texi: Regenerate.
4027         * config/darwin.h (ASM_OUTPUT_DWARF_OFFSET): Adjust.
4028         * config/darwin-protos.h (darwin_asm_output_dwarf_delta): Add
4029         offset argument.
4030         (darwin_asm_output_dwarf_offset): Likewise.
4031         * config/darwin.c (darwin_asm_output_dwarf_delta): Add offset
4032         argument.
4033         (darwin_asm_output_dwarf_offset): Pass offset argument through.
4034         * config/ia64/ia64.h (ASM_OUTPUT_DWARF_OFFSET): Adjust.
4035         * config/i386/cygmin.h (ASM_OUTPUT_DWARF_OFFSET): Likewise.
4037 2016-09-15  Chung-Lin Tang  <cltang@codesourcery.com>
4039         PR fortran/72743
4040         * ipa-icf.c (set_alias_uids): New function.
4041         (sem_variable::merge): Use set_alias_uids to set DECL_PT_UID of
4042         all the merged variable's referring aliases.
4044 2016-09-15  Richard Biener  <rguenther@suse.de>
4046         PR tree-optimization/77514
4047         * tree-ssa-pre.c (create_expression_by_pieces): Handle garbage
4048         only forced_stmts sequence.
4050 2016-09-15  Kugan Vivekanandarajah  <kuganv@linaro.org>
4052         * tree-ssanames.h (FOR_EACH_SSA_NAME): New.
4053         * cfgexpand.c (update_alias_info_with_stack_vars): Use
4054         FOR_EACH_SSA_NAME to iterate over SSA variables.
4055         (pass_expand::execute): Likewise.
4056         * omp-simd-clone.c (ipa_simd_modify_function_body): Likewise.
4057         * tree-cfg.c (dump_function_to_file): Likewise.
4058         * tree-into-ssa.c (pass_build_ssa::execute): Likewise.
4059         (update_ssa): Likewise.
4060         * tree-ssa-alias.c (dump_alias_info): Likewise.
4061         * tree-ssa-ccp.c (ccp_finalize): Likewise.
4062         * tree-ssa-coalesce.c (build_ssa_conflict_graph): Likewise.
4063         (create_outofssa_var_map): Likewise.
4064         (coalesce_ssa_name): Likewise.
4065         * tree-ssa-operands.c (dump_immediate_uses): Likewise.
4066         * tree-ssa-pre.c (compute_avail): Likewise.
4067         * tree-ssa-sccvn.c (init_scc_vn): Likewise.
4068         (scc_vn_restore_ssa_info): Likewise.
4069         (free_scc_vn): Likwise.
4070         (run_scc_vn): Likewise.
4071         * tree-ssa-structalias.c (compute_points_to_sets): Likewise.
4072         * tree-ssa-ter.c (new_temp_expr_table): Likewise.
4073         * tree-ssa-copy.c (fini_copy_prop): Likewise.
4074         * tree-ssa.c (verify_ssa): Likewise.
4076 2016-09-14  Matthew Fortune  <matthew.fortune@imgtec.com>
4078         * config.gcc (mips*-mti-elf*, mips*-mti-linux*): Set mips32r2
4079         and mips64r2 as default 32-bit and 64-bit architectures.
4080         (mips*-img-elf*, mips*-img-linux*): Set mips32r6 and mips64r6
4081         as default 32-bit and 64-bit architectures.
4083 2016-09-14  Pat Haugen  <pthaugen@us.ibm.com>
4085         * loop-unroll.c (unroll_loop_runtime_iterations): Set probability
4086         of succ edge.
4088 2016-09-14  Segher Boessenkool  <segher@kernel.crashing.org>
4090         * target.def (lra_p): Change commentary (for the manual) for the
4091         new default.
4092         * doc/tm.texi: Regenerate.
4094 2016-09-14  Segher Boessenkool  <segher@kernel.crashing.org>
4096         * config/aarch64/aarch64.c (TARGET_LRA_P): Delete macro.
4097         * config/arm/arm.c (TARGET_LRA_P): Delete macro.
4098         * config/i386/i386.c (TARGET_LRA_P): Delete macro.
4099         * config/nds32/nds32.c (TARGET_LRA_P): Delete macro.
4101 2016-09-14  Segher Boessenkool  <segher@kernel.crashing.org>
4103         * targhooks.c (default_lra_p): Return true instead of false.
4105 2016-09-14  Segher Boessenkool  <segher@kernel.crashing.org>
4107         * config/alpha/alpha.c (TARGET_LRA_P): New macro, defined to
4108         hook_bool_void_false.
4109         * config/avr/avr.c: Ditto.
4110         * config/bfin/bfin.c: Ditto.
4111         * config/c6x/c6x.c: Ditto.
4112         * config/cr16/cr16.c: Ditto.
4113         * config/cris/cris.c: Ditto.
4114         * config/epiphany/epiphany.c: Ditto.
4115         * config/fr30/fr30.c: Ditto.
4116         * config/frv/frv.c: Ditto.
4117         * config/h8300/h8300.c: Ditto.
4118         * config/ia64/ia64.c: Ditto.
4119         * config/iq2000/iq2000.c: Ditto.
4120         * config/lm32/lm32.c: Ditto.
4121         * config/m32c/m32c.c: Ditto.
4122         * config/m32r/m32r.c: Ditto.
4123         * config/m68k/m68k.c: Ditto.
4124         * config/mcore/mcore.c: Ditto.
4125         * config/microblaze/microblaze.c: Ditto.
4126         * config/mmix/mmix.c: Ditto.
4127         * config/mn10300/mn10300.c: Ditto.
4128         * config/moxie/moxie.c: Ditto.
4129         * config/msp430/msp430.c: Ditto.
4130         * config/nios2/nios2.c: Ditto.
4131         * config/nvptx/nvptx.c: Ditto.
4132         * config/pa/pa.c: Ditto.
4133         * config/pdp11/pdp11.c: Ditto.
4134         * config/rl78/rl78.c: Ditto.
4135         * config/sparc/sparc.c: Ditto.
4136         * config/spu/spu.c: Ditto.
4137         * config/stormy16/stormy16.c: Ditto.
4138         * config/tilegx/tilegx.c: Ditto.
4139         * config/tilepro/tilepro.c: Ditto.
4140         * config/v850/v850.c: Ditto.
4141         * config/vax/vax.c: Ditto.
4142         * config/visium/visium.c: Ditto.
4143         * config/xtensa/xtensa.c: Ditto.
4145 2016-09-14  Jakub Jelinek  <jakub@redhat.com>
4147         PR sanitizer/68260
4148         * tsan.c: Include target.h.
4149         (enum tsan_atomic_action): Add bool_clear and bool_test_and_set.
4150         (BOOL_CLEAR, BOOL_TEST_AND_SET): Define.
4151         (tsan_atomic_table): Add BUILT_IN_ATOMIC_CLEAR and
4152         BUILT_IN_ATOMIC_TEST_AND_SET entries.
4153         (instrument_builtin_call): Handle bool_clear and bool_test_and_set.
4155 2016-09-14  Bernd Edlinger  <bernd.edlinger@hotmail.de>
4156             Martin Liska  <mliska@suse.cz>
4158         PR middle-end/77574
4159         * predict.c (force_edge_cold): Add braces to a condition.
4161 2016-09-13  Bernd Edlinger  <bernd.edlinger@hotmail.de>
4163         PR rtl-optimization/77289
4164         * lra-constraints.c (get_final_hard_regno): Removed.
4165         (get_hard_regno): Add new parameter final_p.
4166         (get_reg_class): Directly call lra_get_elimination_hard_regno.
4167         (operands_match_p): Adjust call to get_hard_regno.
4168         (uses_hard_regs_p): Likewise.
4169         (process_alt_operands): Likewise.
4171 2016-09-13  Joe Seymour  <joe.s@somniumtech.com>
4173         PR target/70713
4174         * config/msp430/msp430.c (msp430_start_function): Emit an error
4175         if a function is both weak and specifies an interrupt number.
4177 2016-09-13  Jakub Jelinek  <jakub@redhat.com>
4179         PR tree-optimization/77454
4180         * tree-ssa-dom.c (optimize_stmt): Set modified flag on stmt after
4181         changing GIMPLE_COND.  Move update_stmt_if_modified call after this.
4182         Formatting fix.
4184 2016-09-13  Tamar Christina  <tamar.christina@arm.com>
4186         * config/aarch64/aarch64-builtins.c
4187         (aarch64_init_simd_builtins): Fix builtin type signature printing.
4189 2016-09-13  Uros Bizjak  <ubizjak@gmail.com>
4191         * config/alpha/alpha.c (alpha_pass_by_reference): Pass un-named
4192         SFmode and SCmode arguments by reference.
4194 2016-09-13  David Malcolm  <dmalcolm@redhat.com>
4196         * diagnostic-show-locus.c (selftest::test_one_liner_fixit_insert):
4197         Rename to...
4198         (selftest::test_one_liner_fixit_insert_before): ...this, and update
4199         for renaming of add_fixit_insert to add_fixit_insert_before.
4200         (selftest::test_one_liner_fixit_insert_after): New function.
4201         (selftest::test_one_liner_fixit_validation_adhoc_locations):
4202         Update for renaming of add_fixit_insert to add_fixit_insert_before.
4203         (selftest::test_one_liner_many_fixits): Likewise.
4204         (selftest::test_diagnostic_show_locus_one_liner): Update for
4205         renaming, call new test function.
4206         (selftest::test_diagnostic_show_locus_fixit_lines): Update for
4207         renaming of add_fixit_insert to add_fixit_insert_before.
4208         (selftest::test_fixit_consolidation): Likewise.
4209         * diagnostic.c (selftest::test_print_parseable_fixits_insert):
4210         Likewise.
4211         * edit-context.c (selftest::test_applying_fixits_insert): Rename to...
4212         (selftest::test_applying_fixits_insert_before): ...this.
4213         (selftest::test_applying_fixits_insert): Update for renaming of
4214         add_fixit_insert to add_fixit_insert_before.
4215         (selftest::test_applying_fixits_insert_after): New function.
4216         (selftest::test_applying_fixits_insert_after_at_line_end): New
4217         function.
4218         (selftest::test_applying_fixits_insert_after_failure): New function.
4219         (selftest::test_applying_fixits_multiple): Update for renaming of
4220         add_fixit_insert to add_fixit_insert_before.
4221         (selftest::change_line): Likewise.
4222         (selftest::test_applying_fixits_unreadable_file): Likewise.
4223         (selftest::test_applying_fixits_line_out_of_range): Likewise.
4224         (selftest::test_applying_fixits_column_validation): Likewise.
4225         (selftest::test_applying_fixits_column_validation): Likewise.
4226         (selftest::edit_context_c_tests): Update for renamed test function;
4227         call new test functions.
4229 2016-09-13  Pat Haugen  <pthaugen@us.ibm.com>
4231         PR tree-optimization/77536
4232         PR rtl-optimization/68212
4233         * config/rs6000/rs6000.md (div->recip splitter): Remove
4234         optimize_insn_for_speed_p condition.
4236 2016-09-13  Maciej W. Rozycki  <macro@imgtec.com>
4238         * optabs.c (prepare_cmp_insn): Update documentation comment.
4240 2016-09-13  Jakub Jelinek  <jakub@redhat.com>
4241             Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
4243         PR middle-end/77475
4244         * opts.h (candidates_list_and_hint): Declare.
4245         * opts-common.c (candidates_list_and_hint): New function.
4246         (cmdline_handle_error): Use it.
4248 2016-09-12  David Malcolm  <dmalcolm@redhat.com>
4250         * edit-context.c (edited_line::get_len): New accessor.
4251         (edited_file::print_diff): Split out hunk-printing into...
4252         (edited_file::print_diff_hunk): New method.
4253         (edited_file::print_diff_line): New method.
4255 2016-09-12  Andrew Pinski  <apinski@cavium.com>
4257         * config/aarch64/aarch64-tuning-flags.def (SLOW_UNALIGNED_LDPW):
4258         New tuning option.
4259         * config/aarch64/aarch64.c (thunderx_tunings): Enable
4260         AARCH64_EXTRA_TUNE_SLOW_UNALIGNED_LDPW.
4261         (aarch64_operands_ok_for_ldpstp): Return false if
4262         AARCH64_EXTRA_TUNE_SLOW_UNALIGNED_LDPW and the mode
4263         was SImode and the alignment is less than 8 byte.
4264         (aarch64_operands_adjust_ok_for_ldpstp): Likewise.
4266 2016-09-12  Orlando Arias  <oarias@knights.ucf.edu>
4268         PR target/77570
4269         * config/msp430/msp430.md (delay_cycles_32x): Fix pushm/popm.
4271 2016-09-12  Marek Polacek  <polacek@redhat.com>
4273         * doc/extend.texi: Use lowercase "boolean".
4274         * doc/invoke.texi: Likewise.
4275         * doc/md.texi: Likewise.
4276         * target.def: Likewise.
4277         * doc/tm.texi: Regenerated.
4279 2016-09-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4281         PR middle-end/77426
4282         * expmed.c (synth_mult): Delete duplicate mode check.
4284 2016-09-10  Tom de Vries  <tom@codesourcery.com>
4286         PR C/71602
4287         * builtins.c (std_canonical_va_list_type): Strictly return non-null for
4288         va_list type only.
4289         * config/i386/i386.c (ix86_canonical_va_list_type): Same.
4290         * gimplify.c (gimplify_va_arg_expr): Handle &va_list.
4292 2016-09-09  Peter Bergner  <bergner@vnet.ibm.com>
4294         PR rtl-optimization/77289
4295         * lra-constraints.c (get_final_hard_regno): Add support for non hard
4296         register numbers.  Remove support for subregs.
4297         (get_hard_regno): Use SUBREG_P.  Don't call get_final_hard_regno().
4298         (get_reg_class): Delete removed get_final_hard_regno() argument.
4299         (uses_hard_regs_p): Call get_final_hard_regno().
4301 2016-09-09  Martin Sebor  <msebor@redhat.com>
4303         PR c/77520
4304         PR c/77521
4305         * pretty-print.c (pp_quoted_string): New function.
4306         (pp_format): Call it for %c and %s directives.
4308 2016-09-10  Bernd Edlinger  <bernd.edlinger@hotmail.de>
4310         * doc/tm.texi.in (INITIAL_FRAME_POINTER_OFFSET): Remove.
4311         (ELIMINABLE_REGS, TARGET_CAN_ELIMINATE,
4312         INITIAL_ELIMINATION_OFFSET) : Update documentation.
4313         * target.def (frame_pointer_required, can_eliminate): Likewise.
4314         * doc/tm.texi: Regenerated.
4315         * builtins.c (expand_builtin_setjmp_receiver): Remove #ifdef
4316         ELIMINABLE_REGS.
4317         * df-scan.c (df_hard_reg_init): Likewise.
4318         * ira.c (ira_setup_eliminable_regset): Likewise.
4319         * lra-eliminations.c (reg_eliminate_1, (update_reg_eliminate,
4320         init_elim_table): Likewise.
4321         * reload1.c (reg_eliminate_1, verify_initial_elim_offsets,
4322         set_initial_elim_offsets, update_eliminables,
4323         init_elim_table): Likewise.
4324         * rtlanal.c (get_initial_register_offset): Likewise.
4325         * config/ft32/ft32.h (INITIAL_FRAME_POINTER_OFFSET): Remove.
4326         * config/m32r/m32r.h (INITIAL_FRAME_POINTER_OFFSET): Likewise.
4327         * config/moxie/moxie.h (INITIAL_FRAME_POINTER_OFFSET): Likewise.
4328         * config/vax/vax.h (INITIAL_FRAME_POINTER_OFFSET): Likewise.
4329         * config/fr30/fr30.h: Fix comment.
4330         * config/frv/frv.c: Likewise.
4331         * config/frv/frv.h: Likewise.
4332         * config/ft32/ft32.h: Likewise.
4333         * config/visium/visium.h: Likewise.
4334         * config/pa/pa64-linux.h: Likewise.
4335         * config/v850/v850.h: Likewise.
4336         * config/cris/cris.c: Likewise.
4337         * config/ia64/ia64.h: Likewise.
4338         * config/moxie/moxie.h: Likewise.
4339         * config/m32r/m32r.h: Likewise.
4341 2016-09-10  Alexander Ivchenko  <alexander.ivchenko@intel.com>
4343         PR target/77267
4344         * config.in: Regenerate.
4345         * config/i386/linux-common.h (MPX_LD_AS_NEEDED_GUARD_PUSH):
4346         New macro.
4347         (MPX_LD_AS_NEEDED_GUARD_PUSH): Ditto.
4348         (LIBMPXWRAPPERS_SPEC): Remove "--no-whole-archive" from
4349         static-libmpxwrappers case.
4350         (LIBMPX_SPEC): Add guards with MPX_LD_AS_NEEDED_GUARD_PUSH and
4351         MPX_LD_AS_NEEDED_GUARD_POP.
4352         * configure: Regenerate.
4353         * configure.ac (HAVE_LD_PUSHPOPSTATE_SUPPORT): New variable.
4354         defined if linker support "--push-state"/"--pop-state".
4356 2016-09-09  Bernd Edlinger  <bernd.edlinger@hotmail.de>
4358         * doc/cpp.texi (__*_WIDTH__): Small wording fixes.
4360 2016-09-09  Joseph Myers  <joseph@codesourcery.com>
4362         * doc/cpp.texi (__SCHAR_WIDTH__, __SHRT_WIDTH__, __INT_WIDTH__)
4363         (__LONG_WIDTH__, __LONG_LONG_WIDTH__, __PTRDIFF_WIDTH__)
4364         (__SIG_ATOMIC_WIDTH__, __SIZE_WIDTH__, __WCHAR_WIDTH__)
4365         (__WINT_WIDTH__, __INT_LEAST8_WIDTH__, __INT_LEAST16_WIDTH__)
4366         (__INT_LEAST32_WIDTH__, __INT_LEAST64_WIDTH__)
4367         (__INT_FAST8_WIDTH__, __INT_FAST16_WIDTH__, __INT_FAST32_WIDTH__)
4368         (__INT_FAST64_WIDTH__, __INTPTR_WIDTH__, __INTMAX_WIDTH__):
4369         Document.
4370         * ginclude/stdint-gcc.h [__STDC_WANT_IEC_60559_BFP_EXT__]: Define
4371         width macros from TS 18661-1.
4372         * glimits.h [__STDC_WANT_IEC_60559_BFP_EXT__]: Likewise.
4374 2016-09-08  Jakub Jelinek  <jakub@redhat.com>
4376         PR fortran/77516
4377         * omp-low.c (lower_rec_simd_input_clauses): Use max_vf for non-positive
4378         OMP_CLAUSE_SAFELEN_EXPR.
4380 2016-09-07  David Malcolm  <dmalcolm@redhat.com>
4382         * Makefile.in (OBJS): Add substring-locations.o.
4383         * langhooks-def.h (class substring_loc): New forward decl.
4384         (lhd_get_substring_location): New decl.
4385         (LANG_HOOKS_GET_SUBSTRING_LOCATION): New macro.
4386         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_GET_SUBSTRING_LOCATION.
4387         * langhooks.c (lhd_get_substring_location): New function.
4388         * langhooks.h (class substring_loc): New forward decl.
4389         (struct lang_hooks): Add field get_substring_location.
4390         * substring-locations.c: New file, taking definition of
4391         format_warning_va and format_warning_at_substring from
4392         c-family/c-format.c, making them non-static.
4393         * substring-locations.h (class substring_loc): Move class here
4394         from c-family/c-common.h.  Add and rewrite comments.
4395         (format_warning_va): New decl.
4396         (format_warning_at_substring): New decl.
4397         (get_source_location_for_substring): Add comment.
4399 2016-09-07  Eric Gallager  <egall@gwmail.gwu.edu>
4401         * config/i386/i386.c: Add 'U' suffix to processor feature bits
4402         to avoid -Wnarrowing warning.
4403         * config/i386/x86-tune.def: Likewise for DEF_TUNE selector bitmasks.
4404         * opts.c: Likewise for SANITIZER_OPT bitmasks.
4406 2016-09-07  Wilco Dijkstra  <wdijkstr@arm.com>
4408         * config/aarch64/aarch64.c (aarch64_legitimize_address):
4409         Avoid use of base_offset if offset already in range.
4411 2016-09-07  Kaz Kojima  <kkojima@gcc.gnu.org>
4413         * config/sh/sh-protos.h (struct sh_atomic_model,
4414         selected_atomic_model, TARGET_ATOMIC_ANY, TARGET_ATOMIC_STRICT,
4415         TARGET_ATOMIC_SOFT_GUSA, TARGET_ATOMIC_HARD_LLCS,
4416         TARGET_ATOMIC_SOFT_TCB, TARGET_ATOMIC_SOFT_IMASK): Move to...
4417         * config/sh/sh.h (struct sh_atomic_model,
4418         selected_atomic_model, TARGET_ATOMIC_ANY, TARGET_ATOMIC_STRICT,
4419         TARGET_ATOMIC_SOFT_GUSA, TARGET_ATOMIC_HARD_LLCS,
4420         TARGET_ATOMIC_SOFT_TCB, TARGET_ATOMIC_SOFT_IMASK): ...here.
4421         Guard with __cplusplus.
4423 2016-09-06  Jakub Jelinek  <jakub@redhat.com>
4425         PR target/69255
4426         * config/i386/i386.c (ix86_expand_builtin): For builtin with
4427         unsupported or unknown ISA, use expand_call.
4429 2016-09-06  Martin Liska  <mliska@suse.cz>
4431         PR gcov-profile/77378
4432         PR gcov-profile/77466
4433         * tree-profile.c (tree_profiling): Detect whether target can use
4434         -fprofile-update=atomic.
4436 2016-09-06  Richard Biener  <rguenther@suse.de>
4438         PR tree-optimization/77479
4439         * tree-vrp.c (update_value_range): Extend overflow handling to
4440         VARYING.
4442 2016-09-05  Jakub Jelinek  <jakub@redhat.com>
4444         PR target/77476
4445         * config/i386/i386.md (isa): Add x64_avx512bw.
4446         (*zero_extendsidi2): For alternative 11 use x64_avx512bw isa.
4447         (kmov_isa): New mode attr.
4448         (zero_extend<mode>di2): Use <kmov_isa> isa for the last alternative.
4449         (*zero_extend<mode>si2): Likewise.
4450         (*zero_extendqihi2): Use avx512dq isa for the last alternative.
4452 2016-09-05  Gerald Pfeifer  <gerald@pfeifer.com>
4454         * doc/invoke.texi (SPU Options): nops -> NOPs.
4455         (x86 Options): Ditto.
4457 2016-09-05  Jakub Jelinek  <jakub@redhat.com>
4459         PR middle-end/77475
4460         * toplev.c (process_options): Temporarily set input_location
4461         to UNKNOWN_LOCATION around targetm.target_option.override () call.
4463 2016-09-05  Uros Bizjak  <ubizjak@gmail.com>
4465         PR rtl-optimization/77452
4466         * explow.c (plus_constant) <case MEM>: Extract scalar constant from
4467         inner-mode reference to a CONST_VECTOR constant in the constant pool.
4469 2016-09-05  Marek Polacek  <polacek@redhat.com>
4471         PR c/77423
4472         * doc/invoke.texi: Update -Wlogical-not-parentheses documentation.
4474 2016-09-05  Jakub Jelinek  <jakub@redhat.com>
4476         PR other/77421
4477         * gensupport.c (alter_output_for_subst_insn): Remove redundant
4478         *insn_out == '*' test.  Don't copy unnecessary to yet another
4479         memory buffer, and don't leak it.
4481         PR rtl-optimization/77425
4482         * ipa-devirt.c (get_odr_type): Set val->id unconditionally.
4484 2016-09-03  Kirill Yukhin  <kirill.yukhin@intel.com>
4486         * ubsan.c (ubsan_use_new_style_p): Fix check for empty string.
4488 2016-09-02  David Malcolm  <dmalcolm@redhat.com>
4490         * common.opt (fdiagnostics-generate-patch): New option.
4491         * diagnostic.c: Include "edit-context.h".
4492         (diagnostic_initialize): Initialize context->edit_context_ptr.
4493         (diagnostic_finish): Delete context->edit_context_ptr.
4494         (diagnostic_report_diagnostic): Add fix-it hints from the
4495         diagnostic to context->edit_context_ptr, if any.
4496         * diagnostic.h (class edit_context): Add forward decl.
4497         (struct diagnostic_context): Add field "edit_context_ptr".
4498         * doc/invoke.texi (Diagnostic Message Formatting Options): Add
4499         -fdiagnostics-generate-patch.
4500         (-fdiagnostics-generate-patch): New item.
4501         * toplev.c: Include "edit-context.h".
4502         (process_options): Set global_dc->edit_context_ptr to a new
4503         edit_context if the options need one.
4504         (toplev::main): Handle -fdiagnostics-generate-patch by using
4505         global_dc->edit_context_ptr.
4507 2016-09-02  Jakub Jelinek  <jakub@redhat.com>
4509         PR c/65467
4510         * gimplify.c (gimplify_adjust_omp_clauses_1): Diagnose implicit
4511         map and firstprivate clauses on target construct for _Atomic
4512         qualified decls.
4513         (gimplify_adjust_omp_clauses): Diagnose explicit firstprivate clauses
4514         on target construct for _Atomic qualified decls.
4515         * omp-low.c (use_pointer_for_field): Return true for _Atomic qualified
4516         decls.
4517         * omp-simd-clone.c (simd_clone_clauses_extract): Warn and give up for
4518         _Atomic qualified arguments not mentioned in uniform clause.
4520 2016-09-02  David Malcolm  <dmalcolm@redhat.com>
4522         * Makefile.in (OBJS-libcommon): Add edit-context.o.
4523         * diagnostic-color.c (color_dict): Add "diff-filename",
4524         "diff-hunk", "diff-delete", and "diff-insert".
4525         (parse_gcc_colors): Update default value of GCC_COLORS in comment
4526         to reflect above changes.
4527         * doc/invoke.texi (-fdiagnostics-color): Update description of
4528         default GCC_COLORS, and of the supported capabilities.
4529         * edit-context.c: New file.
4530         * edit-context.h: New file.
4531         * input.c (struct fcache): Add field "missing_trailing_newline".
4532         (diagnostics_file_cache_forcibly_evict_file): Initialize it to
4533         true.
4534         (add_file_to_cache_tab): Likewise.
4535         (fcache::fcache): Likewise.
4536         (get_next_line): Update c->missing_trailing_newline.
4537         (location_missing_trailing_newline): New function.
4538         * input.h (location_missing_trailing_newline): New decl.
4539         * selftest-run-tests.c (selftest::run_tests): Call
4540         edit_context_c_tests.
4541         * selftest.h (edit_context_c_tests): New decl.
4543 2016-09-02  Jakub Jelinek  <jakub@redhat.com>
4544             Richard Biener  <rguenth@suse.de>
4546         PR tree-optimization/77444
4547         * tree-ssa-loop-ivopts.c (cand_value_at): For pointers use sizetype
4548         as steptype, remove redundant initialization.
4550 2016-09-02  Jakub Jelinek  <jakub@redhat.com>
4552         PR sanitizer/77396
4553         * sanopt.c: Include gimple-ssa.h, tree-phinodes.h and ssa-iterators.h.
4554         (sanopt_optimize_walker): Optimize away
4555         __asan_before_dynamic_init (...) followed by
4556         __asan_after_dynamic_init () without intervening memory loads/stores.
4557         * ipa-pure-const.c (special_builtin_state): Handle
4558         BUILT_IN_ASAN_BEFORE_DYNAMIC_INIT and
4559         BUILT_IN_ASAN_AFTER_DYNAMIC_INIT.
4561 2016-09-02  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
4563         * cfg.c (free_original_copy_tables): Replace second assignment of
4564         bb_copy = NULL by bb_original = NULL.
4566 2016-09-02  Jakub Jelinek  <jakub@redhat.com>
4568         PR other/77421
4569         * config/i386/i386.c (ix86_expanded_args_builtin): Remove redundant
4570         assignment added in r216794.
4572 2016-09-02  David Malcolm  <dmalcolm@redhat.com>
4574         * Makefile.in (OBJS): Add typed-splay-tree.o.
4575         * selftest-run-tests.c (selftest::run_tests): Call
4576         typed_splay_tree_c_tests.
4577         * selftest.h (typed_splay_tree_c_tests): New decl.
4578         * typed-splay-tree.c: New file.
4579         * typed-splay-tree.h (typed_splay_tree::foreach_fn): New typedef.
4580         (typed_splay_tree::max): New method.
4581         (typed_splay_tree::min): New method.
4582         (typed_splay_tree::foreach): New method.
4583         (typed_splay_tree::closure): New struct.
4584         (typed_splay_tree::inner_foreach_fn): New function.
4586 2016-09-02  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
4588         * ipa-cp.c (ipcp_store_bits_results): Change option name from
4589         -fipa-cp-bit to -fipa-bit-cp.
4591 2016-09-01  Martin Sebor  <msebor@redhat.com>
4593         PR tree-optimization/71831
4594         * tree-object-size.h: Return bool instead of the size and add
4595         argument for the size.
4596         * tree-object-size.c (compute_object_offset): Update signature.
4597         (addr_object_size): Same.
4598         (compute_builtin_object_size): Return bool instead of the size
4599         and add argument for the size.  Handle POINTER_PLUS_EXPR when
4600         optimization is disabled.
4601         (expr_object_size): Adjust.
4602         (plus_stmt_object_size): Adjust.
4603         (pass_object_sizes::execute): Adjust.
4604         * builtins.c (fold_builtin_object_size): Adjust.
4605         * doc/extend.texi (Object Size Checking): Update.
4606         * ubsan.c (instrument_object_size): Adjust.
4608 2016-09-01  Martin Sebor  <msebor@redhat.com>
4610         * genmatch.c (parser::parse_expr): Increase buffer size to guarantee
4611         it fits the output of the formatted function regardless of its
4612         arguments.
4613         * gcc/genmodes.c (parser::parse_expr): Same.
4614         * gimplify.c (gimplify_asm_expr): Same.
4615         * passes.c (pass_manager::register_one_dump_file): Same.
4616         * print-tree.c (print_node): Same.
4618 2016-09-01  Segher Boessenkool  <segher@kernel.crashing.org>
4620         * config/rs6000/altivec.md: Use VSCR_REGNO instead of 110 throughout.
4622 2016-09-01  Segher Boessenkool  <segher@kernel.crashing.org>
4624         * config/rs6000/altivec.md: Use VRSAVE_REGNO instead of 109 throughout.
4626 2016-09-01  Segher Boessenkool  <segher@kernel.crashing.org>
4628         * config/rs6000/altivec.md: Use CR6_REGNO instead of 74 throughout.
4629         * config/rs6000/vector.md: Ditto.
4630         * config/rs6000/vsx.md: Ditto.
4632 2016-09-01  Eric Botcazou  <ebotcazou@adacore.com>
4634         * ipa-inline-analysis.c (param_change_prob): Get to the base object
4635         first in all cases.
4637 2016-09-01  Segher Boessenkool  <segher@kernel.crashing.org>
4639         * config/rs6000/rs6000.md (*restore_gpregs_<mode>_r11,
4640         *restore_gpregs_<mode>_r12, *restore_gpregs_<mode>_r1,
4641         *return_and_restore_gpregs_<mode>_r11,
4642         *return_and_restore_gpregs_<mode>_r12,
4643         *return_and_restore_gpregs_<mode>_r1,
4644         *return_and_restore_fpregs_<mode>_r11,
4645         *return_and_restore_fpregs_<mode>_r12,
4646         *return_and_restore_fpregs_<mode>_r1): Use the hard register LR_REGNO
4647         directly instead of via the "l" constraint.  Renumber operands.
4648         Fix whitespace.
4650 2016-09-01  Segher Boessenkool  <segher@kernel.crashing.org>
4652         * config/rs6000/altivec.md (*save_world, *save_vregs_<mode>_r11,
4653         save_vregs_<mode>_r12, *restore_vregs_<mode>_r11,
4654         *restore_vregs_<mode>_r12): Use LR_REGNO instead of 65.
4655         * config/rs6000/darwin.md (load_macho_picbase, load_macho_picbase_si,
4656         load_macho_picbase_di, *call_indirect_nonlocal_darwin64,
4657         *call_nonlocal_darwin64, *call_value_indirect_nonlocal_darwin64,
4658         *call_value_nonlocal_darwin64, reload_macho_picbase,
4659         reload_macho_picbase_si, reload_macho_picbase_di): Ditto.
4660         * config/rs6000/rs6000.h (RETURN_ADDR_IN_PREVIOUS_FRAME): Ditto.
4661         * config/rs6000/rs6000.md (*save_gpregs_<mode>_r11,
4662         *save_gpregs_<mode>_r12, *save_gpregs_<mode>_r1,
4663         *save_fpregs_<mode>_r11, *save_fpregs_<mode>_r12,
4664         *save_fpregs_<mode>_r1): Ditto.
4665         * config/rs6000/spe.md (*save_gpregs_spe, *restore_gpregs_spe,
4666         *return_and_restore_gpregs_spe): Ditto.
4668 2016-09-01  Segher Boessenkool  <segher@kernel.crashing.org>
4670         * config/rs6000/rs6000.md
4671         (define_insn "*return_and_restore_fpregs_aix_<mode>_r11"): Delete
4672         the use of the link register.
4673         (define_insn "*return_and_restore_fpregs_aix_<mode>_r1"): Ditto.
4675 2016-09-01  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
4676             Michael Meissner  <meissner@linux.vnet.ibm.com>
4678         PR target/72827
4679         * config/rs6000/rs6000.c (rs6000_legitimize_address): Avoid
4680         reg+reg addressing for TImode.
4681         (rs6000_legitimate_address_p): Only allow register indirect
4682         addressing for TImode, even without TARGET_QUAD_MEMORY.
4684 2016-09-01  Richard Biener  <rguenther@suse.de>
4686         PR middle-end/77436
4687         * tree-chrec.c (tree_fold_binomial): Use widest_int, properly
4688         check whether the result fits the desired result type.
4690 2016-09-01  Nathan Sidwell  <nathan@acm.org>
4692         * config/nvptx/nvptx.md (cbranch<mode>4): Op 2 can be const.
4694 2016-09-01  Wilco Dijkstra  <wdijkstr@arm.com>
4696         * config/aarch64/aarch64.c (aarch64_legitimize_address_displacement):
4697         New function.
4698         (TARGET_LEGITIMIZE_ADDRESS_DISPLACEMENT): Define.
4700 2016-09-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4702         * config/aarch64/aarch64.md (*ands<mode>_compare0): New pattern.
4703         * config/aarch64/aarch64.c (aarch64_select_cc_mode): Return CC_NZmode
4704         for comparisons of integer ZERO_EXTEND against zero.
4706 2016-09-01  Eric Botcazou  <ebotcazou@adacore.com>
4708         * config/i386/i386.c (ix86_option_override_internal): Also disable the
4709         STV pass if -mstackrealign is enabled.
4711 2016-08-31  Ilya Verbin  <iverbin@gmail.com>
4713         * config/i386/driver-i386.c (host_detect_local_cpu): Fix detection of
4714         AVX512IFMA.
4716 2016-08-31  David Malcolm  <dmalcolm@redhat.com>
4718         * diagnostic-show-locus.c (class layout): Add field m_fixit_hints.
4719         (layout_range::intersects_line_p): New method.
4720         (test_range_contains_point_for_single_point): Rename to...
4721         (test_layout_range_for_single_point): ...this, and add testing
4722         for layout_range::intersects_line_p.
4723         (test_range_contains_point_for_single_line): Rename to...
4724         (test_layout_range_for_single_line): ...this,  and add testing
4725         for layout_range::intersects_line_p.
4726         (test_range_contains_point_for_multiple_lines): Rename to...
4727         (test_layout_range_for_multiple_lines): ...this,  and add testing
4728         for layout_range::intersects_line_p.
4729         (layout::layout): Populate m_fixit_hints.
4730         (layout::get_expanded_location): Handle the case of a line-span
4731         for a fix-it hint.
4732         (layout::validate_fixit_hint_p): New method.
4733         (get_line_span_for_fixit_hint): New function.
4734         (layout::calculate_line_spans): Add spans for fixit-hints.
4735         (layout::should_print_annotation_line_p): New method.
4736         (layout::print_any_fixits): Drop param "richloc", instead using
4737         validated fixits in m_fixit_hints.  Add "const" to hint pointers.
4738         (diagnostic_show_locus): Avoid printing blank annotation lines.
4739         (selftest::test_diagnostic_context::test_diagnostic_context):
4740         Initialize show_column and start_span.
4741         (selftest::test_diagnostic_context::start_span_cb): New static
4742         function.
4743         (selftest::test_diagnostic_show_locus_fixit_lines): New function.
4744         (selftest::diagnostic_show_locus_c_tests): Update for function
4745         renamings.  Call test_diagnostic_show_locus_fixit_lines.
4747 2016-08-31  Marc Glisse  <marc.glisse@inria.fr>
4749         PR tree-optimization/73714
4750         * match.pd (a * (1 << b)): Revert change from 2016-05-23.
4752 2016-08-31  David Malcolm  <dmalcolm@redhat.com>
4754         * selftest.c: Move "namespace selftest {" to top of file,
4755         removing explicit "selftest::" qualifiers throughout.
4757 2016-08-31  Marc Glisse  <marc.glisse@inria.fr>
4759         * config/i386/avx512fintrin.h (__m512_u, __m512i_u, __m512d_u):
4760         New types.
4761         (_mm512_loadu_pd, _mm512_storeu_pd, _mm512_loadu_ps,
4762         _mm512_storeu_ps, _mm512_loadu_si512, _mm512_storeu_si512):
4763         Replace builtin with vector extension.
4764         * config/i386/avxintrin.h (__m256_u, __m256i_u, __m256d_u):
4765         New types.
4766         (_mm256_loadu_pd, _mm256_storeu_pd, _mm256_loadu_ps,
4767         _mm256_storeu_ps, _mm256_loadu_si256, _mm256_storeu_si256):
4768         Replace builtin with vector extension.
4769         * config/i386/emmintrin.h (__m128i_u, __m128d_u): New types.
4770         (_mm_loadu_pd, _mm_storeu_pd, _mm_loadu_si128, _mm_storeu_si128):
4771         Replace builtin with vector extension.
4772         * config/i386/xmmintrin.h (__m128_u): New type.
4773         (_mm_loadu_ps, _mm_storeu_ps): Replace builtin with vector extension.
4774         (_mm_load_ps, _mm_store_ps): Simplify.
4776 2016-08-31  Eric Botcazou  <ebotcazou@adacore.com>
4778         * config/arm/arm.c (thumb1_size_rtx_costs) <SET>: Add missing guard.
4780 2016-08-30  David Malcolm  <dmalcolm@redhat.com>
4782         * diagnostic-show-locus.c (colorizer::begin_state): Support more
4783         than 3 ranges per diagnostic by alternating between color 1 and
4784         color 2.
4785         (layout::layout): Replace use of rich_location::MAX_RANGES
4786         with richloc->get_num_locations ().
4787         (layout::calculate_line_spans): Replace use of
4788         rich_location::MAX_RANGES with m_layout_ranges.length ().
4789         (layout::print_annotation_line): Handle arbitrary numbers of
4790         ranges in caret-printing by defaulting to '^'.
4791         (selftest::test_one_liner_many_fixits): New function.
4792         (test_diagnostic_show_locus_one_liner): Call it.
4793         * diagnostic.c (diagnostic_initialize): Update for renaming
4794         of rich_location::MAX_RANGES to
4795         rich_location::STATICALLY_ALLOCATED_RANGES.
4796         * diagnostic.h (struct diagnostic_context): Likewise.
4798 2016-08-30  David Malcolm  <dmalcolm@redhat.com>
4800         * selftest.c (selftest::named_temp_file::named_temp_file): New
4801         ctor.
4802         (selftest::temp_source_file::~temp_source_file): Move to...
4803         (selftest::named_temp_file::~named_temp_file): ...here.
4804         (selftest::test_named_temp_file): New function.
4805         (selftest::selftest_c_tests): Call test_named_temp_file.
4806         * selftest.h (class named_temp_file): New class.
4807         (class temp_source_file): Convert to a subclass of named_temp_file.
4809 2016-08-30  Segher Boessenkool  <segher@kernel.crashing.org>
4811         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Do not emit
4812         USEs of LR_REGNO in returns and sibcalls.
4813         (rs6000_output_mi_thunk): Similar.
4814         (rs6000_sibcall_aix): Similar.
4815         * config/rs6000/rs6000.md (sibcall, sibcall_value, sibcall_local32,
4816         sibcall_local64, sibcall_value_local32, sibcall_value_local64,
4817         sibcall_nonlocal_sysv<mode>, sibcall_value_nonlocal_sysv<mode>):
4818         Remove the USE of LR_REGNO from the patterns as well.  Delete an
4819         obsolete comment.
4820         (return_internal_<mode>): Delete.
4822 2016-08-30  Tamar Christina  <tamar.christina@arm.com>
4824         * gcc/config/aarch64/aarch64-simd.md
4825         (aarch64_ld2<mode>_dreg_le): New.
4826         (aarch64_ld2<mode>_dreg_be): New.
4827         (aarch64_ld2<mode>_dreg): Removed.
4828         (aarch64_ld3<mode>_dreg_le): New.
4829         (aarch64_ld3<mode>_dreg_be): New.
4830         (aarch64_ld3<mode>_dreg): Removed.
4831         (aarch64_ld4<mode>_dreg_le): New.
4832         (aarch64_ld4<mode>_dreg_be): New.
4833         (aarch64_ld4<mode>_dreg): Removed.
4834         (aarch64_ld<VSTRUCT:nregs><VDC:mode>): Wrapper around _le, _be.
4836 2016-08-30  David Malcolm  <dmalcolm@redhat.com>
4838         * diagnostic-show-locus.c (test_one_liner_fixit_insert): Remove
4839         redundant location param.
4840         (test_one_liner_fixit_remove): Likewise.
4841         (test_one_liner_fixit_replace): Likewise.
4842         (test_one_liner_fixit_replace_equal_secondary_range): Likewise.
4843         * gcc-rich-location.c
4844         (gcc_rich_location::add_fixit_misspelled_id): Eliminate call to
4845         get_range_from_loc.  Drop overload taking a const char *.
4846         * gcc-rich-location.h
4847         (gcc_rich_location::add_fixit_misspelled_id): Drop overload taking
4848         a const char *.
4850 2016-08-30  Szabolcs Nagy  <szabolcs.nagy@arm.com>
4852         * config/linux.c (linux_libc_has_function): Return true on musl.
4854 2016-08-30  Szabolcs Nagy  <szabolcs.nagy@arm.com>
4856         * config.gcc (*-*-*musl*): Disable gnu-indirect-function.
4858 2016-08-30  Eric Botcazou  <ebotcazou@adacore.com>
4860         * postreload-gcse.c (bb_has_well_behaved_predecessors): Tweak criterion
4861         used for abnormal egdes.
4863 2016-08-30  Jakub Jelinek  <jakub@redhat.com>
4865         PR tree-optimization/72866
4866         * tree-vect-patterns.c (search_type_for_mask): Turn into
4867         a small wrapper, move all code to ...
4868         (search_type_for_mask_1): ... this new function.  Add caching
4869         and adjust recursive calls.
4871         PR debug/77363
4872         * dwarf2out.c (modified_type_die): Use lookup_type_die (type)
4873         instead of lookup_type_die (type_main_variant (type)) even for array
4874         types.
4876         PR middle-end/77377
4877         * simplify-rtx.c (avoid_constant_pool_reference): For out of bounds
4878         constant pool reference return x instead of c.
4880 2016-08-29  Segher Boessenkool  <segher@kernel.crashing.org>
4882         * config/rs6000/rs6000.h (CALL_REALLY_USED_REGISTERS): Do not
4883         include MQ.
4885 2016-08-29  David Malcolm  <dmalcolm@redhat.com>
4887         * input.c
4888         (selftest::test_make_location_nonpure_range_endpoints): Fix
4889         header comment.
4891 2016-08-29  David Malcolm  <dmalcolm@redhat.com>
4893         * diagnostic-show-locus.c
4894         (selftest::test_one_liner_fixit_validation_adhoc_locations): New
4895         function.
4896         (selftest::test_diagnostic_show_locus_one_liner): Call it.
4897         * input.c (get_pure_location): Move to libcpp/line-map.c.
4898         * input.h (get_pure_location): Convert decl to an inline function
4899         calling implementation in libcpp.
4901 2016-08-29  Uros Bizjak  <ubizjak@gmail.com>
4903         PR target/77403
4904         * config/i386/sse.md (vec_set_lo_<mode><mask_name>): Fix assembler
4905         template for intel asm dialect.
4906         (vec_set_hi_<mode><mask_name>): Ditto.
4908 2016-08-29  David Malcolm  <dmalcolm@redhat.com>
4910         * selftest.h (selftest::fail): Add ATTRIBUTE_NORETURN.
4911         (selftest::fail_formatted): Likewise.
4913 2016-08-29  David Malcolm  <dmalcolm@redhat.com>
4915         * input.c (make_location): Call get_start and get_finish
4916         on the endpoints to avoid storing packed ranges or ad-hoc
4917         ranges in them.
4918         (selftest::test_make_location_nonpure_range_endpoints): New function.
4919         (selftest::input_c_tests): Call it.
4920         * input.h (get_start): New inline function.
4922 2016-08-29  Tom de Vries  <tom@codesourcery.com>
4924         PR c/77398
4925         * gimplify.c (gimplify_va_arg_expr): Replace first argument type error
4926         with assert.
4928 2016-08-29  Eric Botcazou  <ebotcazou@adacore.com>
4930         * Makefile.in (gcov-iov.h): Add dummy recipe.
4932 2016-08-29  Nathan Sidwell  <nathan@acm.org>
4934         * config/nvptx/nvptx.c: #include tree-vrp.h.
4936 2016-08-28  Eric Botcazou  <ebotcazou@adacore.com>
4938         PR target/77324
4939         * config/sparc/sparc.c (sparc_legitimate_address_p): Accept special
4940         HIGH+LO construct during reload.
4942 2016-08-28  Tom de Vries  <tom@codesourcery.com>
4944         PR lto/70955
4945         * config/i386/i386.c (ix86_build_builtin_va_list_64): Tag type with
4946         'sysv_abi va_list' attribute.
4947         (ix86_build_builtin_va_list): Tag type with 'ms_abi va_list' attribute.
4948         (ix86_canonical_va_list_type): Handle 'sysv_abi/ms_abi va_list'
4949         attributes.
4951 2016-08-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
4953         * emit-rtl.h (struct rtl_data): Make stack_slot_list a vector.
4954         * emit-rtl.c (unshare_all_rtl_1): Adjust.
4955         (unshare_all_rtl_again): Likewise.
4956         * function.c (assign_stack_local_1): Likewise.
4957         (assign_stack_temp_for_type): Likewise.
4959 2016-08-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
4961         * cfgbuild.c (make_edges): Adjust.
4962         * cfgrtl.c (can_delete_label_p): Likewise.
4963         * dwarf2cfi.c (create_trace_edges): Likewise.
4964         * except.c (sjlj_emit_dispatch_table): Likewise.
4965         * function.h (struct expr_status): make x_forced_labels a vector.
4966         * jump.c (rebuild_jump_labels_1): Adjust.
4967         * reload1.c (set_initial_label_offsets): Likewise.
4968         * stmt.c (force_label_rtx): Likewise.
4969         (expand_label): Likewise.
4971 2016-08-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
4973         * haifa-sched.c (fix_recovery_deps): Make ready_list a vector.
4975 2016-08-27  Patrick Palka  <ppalka@gcc.gnu.org>
4977         PR tree-optimization/71077
4978         PR tree-optimization/68542
4979         * fold-const.c (fold_relational_const): Fix folding of
4980         VECTOR_CST comparisons that have a scalar boolean result type.
4981         (selftest::test_vector_folding): New static function.
4982         (selftest::fold_const_c_tests): Call it.
4984 2016-08-27  Gerald Pfeifer  <gerald@pfeifer.com>
4986         * doc/extend.texi (SPU Built-in Functions): Remove stale
4987         references to material formerly at IBM and Sony.
4989 2016-08-26  David Edelsohn  <dje.gcc@gmail.com>
4991         PR target/77349
4992         * config/rs6000/xcoff.h (DWARF_OFFSET_SIZE): Define as PTR_SIZE.
4994 2016-08-26  David Malcolm  <dmalcolm@redhat.com>
4996         * diagnostic-show-locus.c
4997         (selftest::test_fixit_consolidation): New function.
4998         (selftest::diagnostic_show_locus_c_tests): Call it.
4999         * gcc-rich-location.h (gcc_rich_location): Eliminate unused
5000         constructor based on source_range.
5002 2016-08-26  David Malcolm  <dmalcolm@redhat.com>
5004         * diagnostic-color.c (color_dict): Add "fixit-insert" and
5005         "fixit-delete".
5006         (parse_gcc_colors): Update description of default GCC_COLORS.
5007         * diagnostic-show-locus.c (colorizer::set_fixit_hint): Delete.
5008         (colorizer::set_fixit_insert): New method.
5009         (colorizer::set_fixit_delete): New method.
5010         (colorizer::get_color_by_name): New method.
5011         (colorizer::STATE_FIXIT_INSERT): New constant.
5012         (colorizer::STATE_FIXIT_DELETE): New constant.
5013         (class colorizer): Drop "_cs" suffix from fields.  Delete "_ce"
5014         fields in favor of new field "m_stop_color".  Add fields
5015         "m_fixit_insert" and "m_fixit_delete".
5016         (colorizer::colorizer): Update for above changes.  Replace
5017         colorize_start calls with calls to get_color_by_name.
5018         (colorizer::begin_state): Handle STATE_FIXIT_INSERT and
5019         STATE_FIXIT_DELETE.  Update for field renamings.
5020         (colorizer::finish_state): Simplify by using m_stop_color,
5021         rather than multiple identical "*_ce" fields.
5022         (colorizer::get_color_by_name): New method.
5023         (layout::print_any_fixits): Print insertions and replacements
5024         using the "fixit-insert" color, and deletions using the
5025         "fixit-delete" color.
5026         * doc/invoke.texi (-fdiagnostics-color): Update description of
5027         default GCC_COLORS, and of the supported capabilities.
5029 2016-08-26  Max Filippov  <jcmvbkbc@gmail.com>
5031         * config/xtensa/xtensa.c (xtensa_expand_prologue): Update
5032         current_function_static_stack_size variable with the static
5033         stack frame size of the current function when
5034         flag_stack_usage_info is enabled.
5036 2016-08-26  Nathan Sidwell  <nathan@acm.org>
5038         * ipa-inline-analysis.c (inline_write_summary): Remove unnecessary
5039         assignment inside if condition.
5041 2016-08-26  Richard Biener  <rguenther@suse.de>
5043         PR tree-optimization/69047
5044         * tree-ssa.c (maybe_rewrite_mem_ref_base): Handle general bitfield
5045         extracts similar to what FRE does.
5046         (non_rewritable_mem_ref_base): Likewise.
5048 2016-08-26  Joseph Myers  <joseph@codesourcery.com>
5050         * config/i386/i386.c (ix86_libgcc_floating_mode_supported_p)
5051         (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P): Remove.
5052         * config/i386/i386elf.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Likewise.
5053         * config/i386/lynx.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Likewise.
5054         * config/i386/netbsd-elf.h (IX86_MAYBE_NO_LIBGCC_TFMODE):
5055         Likewise.
5056         * config/i386/netbsd64.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Likewise.
5057         * config/i386/nto.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Likewise.
5058         * config/i386/openbsd.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Likewise.
5059         * config/i386/rtemself.h (IX86_NO_LIBGCC_TFMODE): Likewise.
5060         * config/i386/vxworks.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Likewise.
5062 2016-08-26  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5064         PR target/70473
5065         * config/arm/cortex-a8-neon.md (cortex_a8_vfp_muld): Reduce
5066         reservation duration to 15 cycles.
5067         (cortex_a8_vfp_macs): Likewise.
5068         (cortex_a8_vfp_macd): Likewise.
5069         (cortex_a8_vfp_divs): Likewise.
5070         (cortex_a8_vfp_divd): Likewise.
5072 2016-08-26  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5074         * config/arm/arm.c (arm_sets_movw_movt_fusible_p): New function.
5075         (aarch_macro_fusion_pair_p): Use above to avoid early return.
5077 2016-08-26  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
5078             Martin Jambhor  <mjambor@suse.cz>
5080         * common.opt: New option -fipa-bit-cp.
5081         * doc/invoke.texi: Document -fipa-bit-cp.
5082         * opts.c (default_options_table): Add entry for -fipa-bit-cp.
5083         (enable_fdo_optimizations): Check for flag_ipa_bit_cp.
5084         * tree-ssa-ccp.h: New header file.
5085         * tree-ssa-ccp.c: Include tree-ssa-ccp.h
5086         (bit_value_binop_1): Change to bit_value_binop_1 and export it.
5087         Replace all occurences of tree parameter by two new params: signop, int.
5088         (bit_value_unop_1): Change to bit_value_unop and export it.
5089         Replace all occurences of tree parameter by two new params: signop,
5090         int.
5091         (bit_value_binop): Change call from bit_value_binop_1 to
5092         bit_value_binop.
5093         (bit_value_assume_aligned): Likewise.
5094         (bit_value_unop): Change call from bit_value_unop_1 to bit_value_unop.
5095         (do_ssa_ccp): Pass nonzero_p || flag_ipa_cp_bit instead of nonzero_p
5096         to ccp_finalize.
5097         (ccp_finalize): Skip processing if val->mask == 0.
5098         * ipa-cp.c: Include tree-ssa-ccp.h
5099         (ipcp_bits_lattice): New class.
5100         (ipcp_param_lattice (bits_lattice): New member.
5101         (print_all_lattices): Call ipcp_bits_lattice::print.
5102         (set_all_contains_variable): Call ipcp_bits_lattice::set_to_bottom.
5103         (initialize_node_lattices): Likewise.
5104         (propagate_bits_accross_jump_function): New function.
5105         (propagate_constants_accross_call): Call
5106         propagate_bits_accross_jump_function.
5107         (ipcp_propagate_stage): Store parameter types when in_lto_p is true.
5108         (ipcp_store_bits_results): New function.
5109         (ipcp_driver): Call ipcp_store_bits_results.
5110         * ipa-prop.h (ipa_bits): New struct.
5111         (ipa_jump_func): Add new member bits of type ipa_bits.
5112         (ipa_param_descriptor): Change decl to decl_or_type.
5113         (ipa_get_param): Change decl to decl_or_type and assert on
5114         PARM_DECL.
5115         (ipa_get_type): New function.
5116         (ipcp_transformation_summary): New member bits.
5117         * ipa-prop.c (ipa_get_param_decl_index_1): s/decl/decl_or_type.
5118         (ipa_populate_param_decls): Likewise.
5119         (ipa_dump_param): Likewise.
5120         (ipa_print_node_jump_functions_for_edge): Pretty-print ipa_bits jump
5121         function.
5122         (ipa_set_jf_unknown): Set ipa_bits::known to false.
5123         (ipa_compute_jump_functions_for_edge): Compute jump function for bits
5124         propagation.
5125         (ipa_node_params_t::duplicate): Copy src->bits into dst->bits.
5126         (ipa_write_jump_function): Add streaming for ipa_bits.
5127         (ipa_read_jump_function): Add support for reading streamed ipa_bits.
5128         (write_ipcp_transformation_info): Add streaming for ipa_bits
5129         summary for ltrans.
5130         (read_ipcp_transfomration_info): Add support for reading streamed
5131         ipa_bits.
5132         (ipcp_update_bits): New function.
5133         (ipcp_transform_function): Call ipcp_update_bits.
5135 2016-08-25  Szabolcs Nagy  <szabolcs.nagy@arm.com>
5137         * config/mips/linux.h (MUSL_DYNAMIC_LINKER32): Update.
5138         (MUSL_DYNAMIC_LINKER64, MUSL_DYNAMIC_LINKERN32): Update.
5140 2016-08-25  David Edelsohn  <dje.gcc@gmail.com>
5142         * multiple_target.c (pass_data_dispatcher_calls): Fix typo.
5144 2016-08-25  Richard Biener  <rguenther@suse.de>
5146         * dwarf2out.c (gen_remaining_tmpl_value_param_die_attributes):
5147         Only add locations in late dwarf.
5148         (gen_scheduled_generic_parms_dies): Do not set early dwarf here.
5149         (dwarf2out_early_finish): But do it here.
5151 2016-08-24  Michael Collison  <michael.collison@linaro.org>
5152             Michael Collison  <michael.collison@arm.com>
5154         * config/arm/arm-modes.def: Add new condition code mode CC_V
5155         to represent the overflow bit.
5156         * config/arm/arm.c (maybe_get_arm_condition_code):
5157         Add support for CC_Vmode.
5158         (arm_gen_unlikely_cbranch): New function to generate common
5159         rtl conditional branches for overflow patterns.
5160         * config/arm/arm-protos.h: Add prototype for
5161         arm_gen_unlikely_cbranch.
5162         * config/arm/arm.md (addv<mode>4, add<mode>3_compareV,
5163         addsi3_compareV_upper): New patterns to support signed
5164         builtin overflow add operations.
5165         (uaddv<mode>4, add<mode>3_compareC, addsi3_compareV_upper):
5166         New patterns to support unsigned builtin add overflow operations.
5167         (subv<mode>4, sub<mode>3_compare1): New patterns to support signed
5168         builtin overflow subtract operations,
5169         (usubv<mode>4): New patterns to support unsigned builtin subtract
5170         overflow operations.
5171         (negvsi3, negvdi3, negdi2_compare, negsi2_carryin_compare): New patterns
5172         to support builtin overflow negate operations.
5174 2016-08-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
5176         Revert
5177         2016-08-23  Dominik Vogt  <vogt@linux.vnet.ibm.com>
5179         * explow.c (get_dynamic_stack_size): Take known alignment of stack
5180         pointer + STACK_DYNAMIC_OFFSET into account when calculating the size
5181         needed.
5183 2016-08-24  Thomas Preud'homme  <thomas.preudhomme@arm.com>
5185         * doc/fragments.texi (MULTILIB_REUSE): Mention that only options in
5186         MULTILIB_OPTIONS should be used.  Small wording fixes.
5187         * genmultilib: Memorize set of all option combinations in
5188         combination_space.  Detect if RHS of MULTILIB_REUSE uses an option not
5189         found in MULTILIB_OPTIONS by checking if option set is listed in
5190         combination_space.  Output new and existing error message to stderr.
5192 2016-08-24  Thomas Preud'homme  <thomas.preudhomme@arm.com>
5194         * config/arm/t-aprofile (MULTILIB_MATCHES): Add mapping for
5195         -mcpu=cortex-a7, -mfpu=neon-fp16, -mfpu=fpv5-d16 and -mfpu=fp-armv8.
5196         Fix typo in -mfpu=vfpv3-d16-fp16 mapping.
5197         (MULTILIB_REUSE): Remove reuse rules for option set including
5198         -mfpu=fp-armv8 and -mfpu=vfpv4
5200 2016-08-24  Sebastian Huber  <sebastian.huber@embedded-brains.de>
5202         * config/arm/t-rtems: Add vfp multilib.
5204 2016-08-23  Ian Lance Taylor  <iant@golang.org>
5206         * config/s390/s390.c (s390_asm_file_start): Call
5207         default_file_start.
5209 2016-08-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
5211         * config/rs6000/rs6000.c (rs6000_expand_vector_init): Set
5212         initialization of all 0's to the 0 constant, instead of directly
5213         generating XOR.  Add support for V4SImode vector initialization on
5214         64-bit systems with direct move, and rework the ISA 3.0 V4SImode
5215         initialization.  Change variables used in V4SFmode vector
5216         intialization.  For V4SFmode vector splat on ISA 3.0, make sure
5217         any memory addresses are in index form.  Add support for using
5218         VSPLTH/VSPLTB to initialize vector short and vector char vectors
5219         with all of the same element.
5220         (regno_or_subregno): New helper function to return a register
5221         number for either REG or SUBREG.
5222         (rs6000_adjust_vec_address): Do not generate ADDI <reg>,R0,<num>.
5223         Use regno_or_subregno where possible.
5224         (rs6000_split_v4si_init_di_reg): New helper function to build up a
5225         DImode value from two SImode values in order to generate V4SImode
5226         vector initialization on 64-bit systems with direct move.
5227         (rs6000_split_v4si_init): Split up the insns for a V4SImode vector
5228         initialization.
5229         (rtx_is_swappable_p): V4SImode vector initialization insn is not
5230         swappable.
5231         * config/rs6000/rs6000-protos.h (rs6000_split_v4si_init): Add
5232         declaration.
5233         * config/rs6000/vsx.md (VSX_SPLAT_I): New mode iterators and
5234         attributes to initialize V8HImode and V16QImode vectors with the
5235         same element.
5236         (VSX_SPLAT_COUNT): Likewise.
5237         (VSX_SPLAT_SUFFIX): Likewise.
5238         (UNSPEC_VSX_VEC_INIT): New unspec.
5239         (vsx_concat_v2sf): Eliminate using 'preferred' register classes.
5240         Allow SFmode values to come from Altivec registers.
5241         (vsx_init_v4si): New insn/split for V4SImode vector initialization
5242         on 64-bit systems with direct move.
5243         (vsx_splat_<mode>, VSX_W iterator): Rework V4SImode and V4SFmode
5244         vector initializations, to allow V4SImode vector initializations
5245         on 64-bit systems with direct move.
5246         (vsx_splat_v4si): Likewise.
5247         (vsx_splat_v4si_di): Likewise.
5248         (vsx_splat_v4sf): Likewise.
5249         (vsx_splat_v4sf_internal): Likewise.
5250         (vsx_xxspltw_<mode>, VSX_W iterator): Eliminate using 'preferred'
5251         register classes.
5252         (vsx_xxspltw_<mode>_direct, VSX_W iterator): Likewise.
5253         (vsx_vsplt<VSX_SPLAT_SUFFIX>_di): New insns to support
5254         initializing V8HImode and V16QImode vectors with the same
5255         element.
5256         * config/rs6000/rs6000.h (TARGET_DIRECT_MOVE_64BIT): Disallow
5257         optimization if -maltivec=be.
5259 2016-08-23  Christophe Lyon  <christophe.lyon@linaro.org>
5261         * config/arm/arm.md (arm_movqi_insn): Swap predicable_short_it
5262         attribute for alternatives 3 and 4.
5264 2016-08-23  David Malcolm  <dmalcolm@redhat.com>
5266         * selftest.c (selftest::assert_str_contains): New function.
5267         (selftest::test_assertions): Verify ASSERT_STR_CONTAINS.
5268         * selftest.h (selftest::assert_str_contains): New decl.
5269         (ASSERT_STR_CONTAINS): New macro.
5271 2016-08-23  Richard Biener  <rguenther@suse.de>
5273         PR tree-optimization/77286
5274         * tree-vect-loop.c (vect_analyze_loop_form_1): Do not modify
5275         the CFG here.
5276         (vect_transform_loop): Split exit edges of loop and scalar
5277         loop if required and at the appropriate time.
5279 2016-08-23  Dominik Vogt  <vogt@linux.vnet.ibm.com>
5281         * explow.c (get_dynamic_stack_size): Take known alignment of stack
5282         pointer + STACK_DYNAMIC_OFFSET into account when calculating the size
5283         needed.
5284         Correct a typo in a comment.
5286 2016-08-23  Dominik Vogt  <vogt@linux.vnet.ibm.com>
5288         * config/s390/s390.md ("*andc_split"): New splitter for and with
5289         complement.
5291 2016-08-23  Richard Biener  <rguenther@suse.de>
5293         PR tree-optimization/27336
5294         * tree-vrp.c (infer_value_range): Handle stmts that can throw
5295         by looking for a non-EH edge.
5296         (process_assert_insertions_for): Likewise.
5298 2016-08-23  Richard Biener  <rguenther@suse.de>
5300         PR middle-end/77305
5301         * statistics.c (statistics_counter_event): Robustify against
5302         NULL current_pass.
5304 2016-08-23  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
5306         * config/i386/i386.c (processor_alias_table): Enable PTA_PRFCHW
5307         for targets amdfam10 and barcelona.
5309 2016-08-22  Uros Bizjak  <ubizjak@gmail.com>
5311         * config/i386/i386.md (*zero_extendsidi2): Add (*r,*k) alternative.
5312         (zero_extend<mode>di2): Ditto.
5313         (*zero_extend<mode>si2): Ditto.
5314         (*zero_extendqihi2): Ditto.
5316 2016-08-22  Joseph Myers  <joseph@codesourcery.com>
5318         PR middle-end/77269
5319         * builtins.c (fold_builtin_classify): Use builtin_decl_explicit
5320         (BUILT_IN_SIGNBIT) to expand __builtin_isinf_sign.
5322 2016-08-22  Patrick Palka  <ppalka@gcc.gnu.org>
5324         * print-tree.c (print_node) [VECTOR_CST]: Coalesce the output of
5325         identical consecutive elements.
5326         [SSA_NAME]: Print the name's def stmt on its own line.  When printing
5327         the node's def stmt, avoid printing an unwanted trailing newline by
5328         replacing the call to print_gimple_stmt() with its inlined body and
5329         adjusting it to not set pp_needs_newline and to call pp_flush()
5330         instead of pp_newline_and_flush().
5332 2016-08-22  Joseph Myers  <joseph@codesourcery.com>
5334         * tree.h (CASE_FLT_FN_FLOATN_NX, float16_type_node)
5335         (float32_type_node, float64_type_node, float32x_type_node)
5336         (float128x_type_node): New macros.
5337         * builtin-types.def (BT_FLOAT16, BT_FLOAT32, BT_FLOAT64)
5338         (BT_FLOAT128, BT_FLOAT32X, BT_FLOAT64X, BT_FLOAT128X)
5339         (BT_FN_FLOAT16, BT_FN_FLOAT32, BT_FN_FLOAT64, BT_FN_FLOAT128)
5340         (BT_FN_FLOAT32X, BT_FN_FLOAT64X, BT_FN_FLOAT128X)
5341         (BT_FN_FLOAT16_FLOAT16, BT_FN_FLOAT32_FLOAT32)
5342         (BT_FN_FLOAT64_FLOAT64, BT_FN_FLOAT128_FLOAT128)
5343         (BT_FN_FLOAT32X_FLOAT32X, BT_FN_FLOAT64X_FLOAT64X)
5344         (BT_FN_FLOAT128X_FLOAT128X, BT_FN_FLOAT16_CONST_STRING)
5345         (BT_FN_FLOAT32_CONST_STRING, BT_FN_FLOAT64_CONST_STRING)
5346         (BT_FN_FLOAT128_CONST_STRING, BT_FN_FLOAT32X_CONST_STRING)
5347         (BT_FN_FLOAT64X_CONST_STRING, BT_FN_FLOAT128X_CONST_STRING)
5348         (BT_FN_FLOAT16_FLOAT16_FLOAT16, BT_FN_FLOAT32_FLOAT32_FLOAT32)
5349         (BT_FN_FLOAT64_FLOAT64_FLOAT64, BT_FN_FLOAT128_FLOAT128_FLOAT128)
5350         (BT_FN_FLOAT32X_FLOAT32X_FLOAT32X)
5351         (BT_FN_FLOAT64X_FLOAT64X_FLOAT64X)
5352         (BT_FN_FLOAT128X_FLOAT128X_FLOAT128X): New type definitions.
5353         * builtins.def (DEF_GCC_FLOATN_NX_BUILTINS): New macro.
5354         (copysign, fabs, huge_val, inf, nan, nans): Use it.
5355         * builtins.c (expand_builtin): Use CASE_FLT_FN_FLOATN_NX for fabs
5356         and copysign.
5357         (fold_builtin_0): Use CASE_FLT_FN_FLOATN_NX for inf and huge_val.
5358         (fold_builtin_1): Use CASE_FLT_FN_FLOATN_NX for fabs.
5359         * doc/extend.texi (Other Builtins): Document these built-in
5360         functions.
5361         * fold-const-call.c (fold_const_call): Use CASE_FLT_FN_FLOATN_NX
5362         for nan and nans.
5364 2016-08-22  Gerald Pfeifer  <gerald@pfeifer.com>
5366         * doc/install.texi (Binaries): www.opencsw.org now uses https.
5368 2016-08-22  Richard Biener  <rguenther@suse.de>
5370         * tree-ssa-forwprop.c (pass_forwprop::execute): Use RPO order.
5372 2016-08-21  Uros Bizjak  <ubizjak@gmail.com>
5374         PR target/77270
5375         * config/i386/i386.md (prefetch): When TARGET_PRFCHW or
5376         TARGET_PREFETCHWT1 are disabled, emit 3dNOW! write prefetches for
5377         non-SSE2 athlons only, otherwise prefer SSE prefetches.
5379 2016-08-20  Kugan Vivekanandarajah  <kuganv@linaro.org>
5381         * tree-vrp.c (vrp_visit_assignment_or_call): Changed to Return VR.
5382         (vrp_visit_cond_stmt): Just sets TAKEN_EDGE_P.
5383         (vrp_visit_switch_stmt): Likewise.
5384         (extract_range_from_stmt): Factored out from vrp_visit_stmt.
5385         (extract_range_from_phi_node): Factored out from vrp_visit_phi_stmt.
5386         (vrp_visit_stmt): Use extract_range_from_stmt.
5387         (vrp_visit_phi_node): Use extract_range_from_phi_node.
5389 2016-08-20  Kugan Vivekanandarajah  <kuganv@linaro.org>
5391         * Makefile.in: Add tree-vrp.h to GTFILES.
5392         * gengtype.c (open_base_files): Add tree-vrp.h.
5393         * asan.c: Add tree-vrp.h which now has the definition value_range_type.
5394         * builtins.c: Likewise.
5395         * fold-const.c: Likewise.
5396         * gimple-builder.c: Likewise.
5397         * gimple-laddress.c: Likewise.
5398         * hsa-gen.c: Likewise.
5399         * internal-fn.c: Likewise.
5400         * ssa.h: Likewise.
5401         * targhooks.c: Liewise,
5402         * tree-ssa-address.c: Likewise.
5403         * tree-ssanames.h (value_range_type: Move to tree-vrp.h.
5404         * tree-vrp.c (struct value_range): Move to tree-vrp.h
5405         * tree-vrp.h: New file.
5407 2016-08-20  Kugan Vivekanandarajah  <kuganv@linaro.org>
5409         PR tree-optimization/61839
5410         * tree-vrp.c (two_valued_val_range_p): New.
5411         (simplify_stmt_using_ranges): Convert CST BINOP VAR where VAR is
5412         two-valued to VAR == VAL1 ? (CST BINOP VAL1) : (CST BINOP VAL2).
5413         Also Convert VAR BINOP CST where VAR is two-valued to
5414         VAR == VAL1 ? (VAL1 BINOP CST) : (VAL2 BINOP CST).
5416 2016-08-19  David Malcolm  <dmalcolm@redhat.com>
5418         * diagnostic-show-locus.c
5419         (layout::annotation_line_showed_range_p): New method.
5420         (layout::print_any_fixits): Remove case fixit_hint::REMOVE.
5421         Reimplement case fixit_hint::REPLACE to cover removals, and
5422         replacements where the range of the replacement isn't one
5423         of the ranges in the rich_location.
5424         (test_one_liner_fixit_replace): Likewise.
5425         (selftest::test_one_liner_fixit_replace_non_equal_range): New
5426         function.
5427         (selftest::test_one_liner_fixit_replace_equal_secondary_range):
5428         New function.
5429         (selftest::test_diagnostic_show_locus_one_liner): Call the new
5430         functions.
5431         * diagnostic.c (print_parseable_fixits): Remove case
5432         fixit_hint::REMOVE.
5434 2016-08-19  Uros Bizjak  <ubizjak@gmail.com>
5436         PR target/77270
5437         * config/i386/i386.c (ix86_option_override_internal): Remove
5438         PTA_PRFCHW from entries that also have PTA_3DNOW flag.
5439         Enable SSE prefetch also for TARGET_PREFETCHWT1.
5440         Do not try to enable TARGET_PRFCHW ISA flag here.
5441         * config/i386/i386.md (prefetch): Enable also for TARGET_3DNOW.
5442         Rewrite expander function body.
5443         (*prefetch_3dnow): Enable for TARGET_3DNOW and TARGET_PREFETCHWT1.
5445 2016-08-19  Joseph Myers  <joseph@codesourcery.com>
5447         PR c/32187
5448         * tree-core.h (TI_COMPLEX_FLOAT16_TYPE)
5449         (TI_COMPLEX_FLOATN_NX_TYPE_FIRST, TI_COMPLEX_FLOAT32_TYPE)
5450         (TI_COMPLEX_FLOAT64_TYPE, TI_COMPLEX_FLOAT128_TYPE)
5451         (TI_COMPLEX_FLOAT32X_TYPE, TI_COMPLEX_FLOAT64X_TYPE)
5452         (TI_COMPLEX_FLOAT128X_TYPE, TI_FLOAT16_TYPE, TI_FLOATN_TYPE_FIRST)
5453         (TI_FLOATN_NX_TYPE_FIRST, TI_FLOAT32_TYPE, TI_FLOAT64_TYPE)
5454         (TI_FLOAT128_TYPE, TI_FLOATN_TYPE_LAST, TI_FLOAT32X_TYPE)
5455         (TI_FLOATNX_TYPE_FIRST, TI_FLOAT64X_TYPE, TI_FLOAT128X_TYPE)
5456         (TI_FLOATNX_TYPE_LAST, TI_FLOATN_NX_TYPE_LAST): New enum
5457         tree_index values.
5458         (NUM_FLOATN_TYPES, NUM_FLOATNX_TYPES, NUM_FLOATN_NX_TYPES): New
5459         macros.
5460         (struct floatn_type_info): New structure type.
5461         (floatn_nx_types): New variable declaration.
5462         * tree.h (FLOATN_TYPE_NODE, FLOATN_NX_TYPE_NODE)
5463         (FLOATNX_TYPE_NODE, float128_type_node, float64x_type_node)
5464         (COMPLEX_FLOATN_NX_TYPE_NODE): New macros.
5465         * tree.c (floatn_nx_types): New variable.
5466         (build_common_tree_nodes): Initialize _FloatN, _FloatNx and
5467         corresponding complex types.
5468         * target.def (floatn_mode): New hook.
5469         * targhooks.c: Include "real.h".
5470         (default_floatn_mode): New function.
5471         * targhooks.h (default_floatn_mode): New prototype.
5472         * doc/extend.texi (Floating Types): Document _FloatN and _FloatNx
5473         types.
5474         * doc/sourcebuild.texi (float@var{n}, float@var{n}x): Document new
5475         effective-target and dg-add-options keywords.
5476         (float@var{n}_runtime, float@var{n}x_runtime, floatn_nx_runtime):
5477         Document new effective-target keywords.
5478         * doc/tm.texi.in (TARGET_FLOATN_MODE): New @hook.
5479         * doc/tm.texi: Regenerate.
5480         * ginclude/float.h (LDBL_DECIMAL_DIG): Define to
5481         __LDBL_DECIMAL_DIG__, not __DECIMAL_DIG__.
5482         [__STDC_WANT_IEC_60559_TYPES_EXT__]: Define macros from TS
5483         18661-3.
5484         * real.h (struct real_format): Add field ieee_bits.
5485         * real.c (ieee_single_format, mips_single_format)
5486         (motorola_single_format, spu_single_format, ieee_double_format)
5487         (mips_double_format, motorola_double_format)
5488         (ieee_extended_motorola_format, ieee_extended_intel_96_format)
5489         (ieee_extended_intel_128_format)
5490         (ieee_extended_intel_96_round_53_format, ibm_extended_format)
5491         (mips_extended_format, ieee_quad_format, mips_quad_format)
5492         (vax_f_format, vax_d_format, vax_g_format, decimal_single_format)
5493         (decimal_double_format, decimal_quad_format, ieee_half_format)
5494         (arm_half_format, real_internal_format: Initialize ieee_bits
5495         field.
5496         * config/i386/i386.c (ix86_init_builtin_types): Do not initialize
5497         float128_type_node.  Set float80_type_node to float64x_type_node
5498         if appropriate and long_double_type_node not appropriate.
5499         * config/ia64/ia64.c (ia64_init_builtins): Likewise.
5500         * config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format):
5501         Initialize ieee_bits field.
5502         * config/rs6000/rs6000.c (TARGET_FLOATN_MODE): New macro.
5503         (rs6000_init_builtins): Set ieee128_float_type_node to
5504         float128_type_node.
5505         (rs6000_floatn_mode): New function.
5507 2016-08-19  Jakub Jelinek  <jakub@redhat.com>
5509         * config/i386/rdseedintrin.h (_rdseed16_step, _rdseed32_step,
5510         _rdseed64_step): Uglify argument names and/or local variable names
5511         in inline functions.
5512         * config/i386/rtmintrin.h (_xabort): Likewise.
5513         * config/i386/avx512vlintrin.h (_mm256_ternarylogic_epi64,
5514         _mm256_mask_ternarylogic_epi64, _mm256_maskz_ternarylogic_epi64,
5515         _mm256_ternarylogic_epi32, _mm256_mask_ternarylogic_epi32,
5516         _mm256_maskz_ternarylogic_epi32, _mm_ternarylogic_epi64,
5517         _mm_mask_ternarylogic_epi64, _mm_maskz_ternarylogic_epi64,
5518         _mm_ternarylogic_epi32, _mm_mask_ternarylogic_epi32,
5519         _mm_maskz_ternarylogic_epi32): Likewise.
5520         * config/i386/lwpintrin.h (__llwpcb, __lwpval32, __lwpval64,
5521         __lwpins32, __lwpins64): Likewise.
5522         * config/i386/avx2intrin.h (_mm_i32gather_pd, _mm_mask_i32gather_pd,
5523         _mm256_i32gather_pd, _mm256_mask_i32gather_pd, _mm_i64gather_pd,
5524         _mm_mask_i64gather_pd, _mm256_i64gather_pd, _mm256_mask_i64gather_pd,
5525         _mm_i32gather_ps, _mm_mask_i32gather_ps, _mm256_i32gather_ps,
5526         _mm256_mask_i32gather_ps, _mm_i64gather_ps, _mm_mask_i64gather_ps,
5527         _mm256_i64gather_ps, _mm256_mask_i64gather_ps, _mm_i32gather_epi64,
5528         _mm_mask_i32gather_epi64, _mm256_i32gather_epi64,
5529         _mm256_mask_i32gather_epi64, _mm_i64gather_epi64,
5530         _mm_mask_i64gather_epi64, _mm256_i64gather_epi64,
5531         _mm256_mask_i64gather_epi64, _mm_i32gather_epi32,
5532         _mm_mask_i32gather_epi32, _mm256_i32gather_epi32,
5533         _mm256_mask_i32gather_epi32, _mm_i64gather_epi32,
5534         _mm_mask_i64gather_epi32, _mm256_i64gather_epi32,
5535         _mm256_mask_i64gather_epi32): Likewise.
5536         * config/i386/pmm_malloc.h (_mm_malloc, _mm_free): Likewise.
5537         * config/i386/ia32intrin.h (__writeeflags): Likewise.
5538         * config/i386/pkuintrin.h (_wrpkru): Likewise.
5539         * config/i386/avx512pfintrin.h (_mm512_mask_prefetch_i32gather_pd,
5540         _mm512_mask_prefetch_i32gather_ps, _mm512_mask_prefetch_i64gather_pd,
5541         _mm512_mask_prefetch_i64gather_ps, _mm512_prefetch_i32scatter_pd,
5542         _mm512_prefetch_i32scatter_ps, _mm512_mask_prefetch_i32scatter_pd,
5543         _mm512_mask_prefetch_i32scatter_ps, _mm512_prefetch_i64scatter_pd,
5544         _mm512_prefetch_i64scatter_ps, _mm512_mask_prefetch_i64scatter_pd,
5545         _mm512_mask_prefetch_i64scatter_ps): Likewise.
5546         * config/i386/gmm_malloc.h (_mm_malloc, _mm_free): Likewise.
5547         * config/i386/avx512fintrin.h (_mm512_ternarylogic_epi64,
5548         _mm512_mask_ternarylogic_epi64, _mm512_maskz_ternarylogic_epi64,
5549         _mm512_ternarylogic_epi32, _mm512_mask_ternarylogic_epi32,
5550         _mm512_maskz_ternarylogic_epi32, _mm512_i32gather_ps,
5551         _mm512_mask_i32gather_ps, _mm512_i32gather_pd, _mm512_i64gather_ps,
5552         _mm512_i64gather_pd, _mm512_i32gather_epi32, _mm512_i32gather_epi64,
5553         _mm512_i64gather_epi32, _mm512_i64gather_epi64): Likewise.
5555         * config/i386/fxsrintrin.h (_fxsave): Remove return keyword in inlines
5556         returning void.
5557         (_fxrstor, _fxsave64, _fxrstor64): Likewise.
5558         * config/i386/xsaveintrin.h (_xsave, _xrstor, _xsave64, _xrstor64):
5559         Likewise.
5560         * config/i386/xsaveoptintrin.h (_xsaveopt, _xsaveopt64): Likewise.
5561         * config/i386/pkuintrin.h (_wrpkru): Likewise.  Add space after
5562         function name.
5563         (_rdpkru_u32): Add space after function name.
5565         * config/i386/t-i386 (i386-c.o): Don't depend on
5566         i386-builtin-types.inc.
5567         (i386.o): Depend on i386-builtin-types.inc.
5569 2016-08-19  Matthew Wahab  <matthew.wahab@arm.com>
5571         PR target/77281
5572         * config/arm/arm.c (neon_valid_immediate): Delete declaration.
5573         Use const_vec_duplicate to check for duplicated elements.
5575 2016-08-19  Richard Biener  <rguenther@suse.de>
5577         PR tree-optimization/77290
5578         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
5579         Fix flag_tree_parallelize_loops check.
5581 2016-08-19  Richard Biener  <rguenther@suse.de>
5583         * match.pd (x | 0 -> x): Add.
5585 2016-08-19  Richard Biener  <rguenther@suse.de>
5587         PR tree-optimization/77286
5588         * tree-vect-loop-manip.c (slpeel_duplicate_current_defs_from_edges):
5589         Deal with virtual PHIs being out-of-order.
5591 2016-08-18  David Malcolm  <dmalcolm@redhat.com>
5593         * doc/invoke.texi (fverbose-asm): Note that source code lines
5594         are emitted, and provide an example.
5595         * final.c (asm_show_source): New function.
5596         (final_scan_insn): Call asm_show_source.
5598 2016-08-18  David Malcolm  <dmalcolm@redhat.com>
5600         * diagnostic-show-locus.c (colorizer::colorizer): Replace diagnostic
5601         param with diagnostic_kind.
5602         (class colorizer): Similarly replace field m_diagnostic with
5603         m_diagnostic_kind.
5604         (colorizer::colorizer): Replace diagnostic
5605         param with diagnostic_kind.
5606         (colorizer::begin_state): Update for above field change.
5607         (layout::layout): Replace diagnostic param with rich_location *
5608         and diagnostic_kind.
5609         (diagnostic_show_locus): Replace diagnostic param with richloc
5610         and diagnostic_kind.
5611         (class selftest::test_diagnostic_context): New class.
5612         (selftest::test_diagnostic_show_locus_unknown_location): New
5613         function.
5614         (selftest::test_one_liner_simple_caret): New function.
5615         (selftest::test_one_liner_caret_and_range): New function.
5616         (selftest::test_one_liner_multiple_carets_and_ranges): New
5617         function.
5618         (selftest::test_one_liner_fixit_remove): New function.
5619         (selftest::test_one_liner_fixit_replace): New function.
5620         (selftest::test_diagnostic_show_locus_one_liner): New function.
5621         (selftest::diagnostic_show_locus_c_tests): Call the new test
5622         functions.
5623         * diagnostic.c (diagnostic_initialize): Initialize
5624         colorize_source_p, show_ruler_p and parseable_fixits_p.
5625         (default_diagnostic_finalizer): Update for change to
5626         diagnostic_show_locus.
5627         (diagnostic_append_note): Likewise.
5628         * diagnostic.h (diagnostic_show_locus): Replace
5629         const diagnostic_info * param with location * and diagnostic_t.
5631 2016-08-18  David Malcolm  <dmalcolm@redhat.com>
5633         * input.c (saved_line_table): New global.
5634         (class selftest::temp_line_table): Rename to line_table_test and
5635         move declaration to selftest.h, and drop field m_old_line_table.
5636         (selftest::temp_line_table::temp_line_table): Rename ctor to...
5637         (selftest::line_table_test::line_table_test): ...this.  Add a
5638         default ctor.  Store current value of line_table within
5639         saved_line_table.
5640         (selftest::temp_line_table::~temp_line_table): Rename dtor to...
5641         (selftest::line_table_test::~line_table_test): ...this, and
5642         restore line_table from the saved_line_table, rather than
5643         m_old_line_table.
5644         (selftest::test_accessing_ordinary_linemaps): Update for above
5645         renaming.
5646         (selftest::test_lexer): Likewise.
5647         (struct selftest::lexer_test): Likewise.
5648         (selftest::lexer_test::lexer_test): Likewise.
5649         (selftest::input_c_tests): Move the looping over test cases from
5650         here into...
5651         (selftest::for_each_line_table_case): New function.
5652         * input.h (saved_line_table): New decl.
5653         * selftest.h (struct selftest::line_table_case): New forward decl.
5654         (class selftest::line_table_test): New class, moved here from
5655         selftest::temp_line_table in input.c, and renamed.
5656         (selftest::for_each_line_table_case): New decl.
5658 2015-08-18  H.J. Lu  <hongjiu.lu@intel.com>
5660         PR target/72839
5661         * config/i386/i386.c (lakemont_cost): Set MOVE_RATIO to 17.
5663 2016-08-18  Chung-Lin Tang  <cltang@codesourcery.com>
5665         PR middle-end/70895
5666         * gimplify.c (omp_add_variable): Adjust/add variable mapping on
5667         enclosing parallel construct for reduction variables on OpenACC loop
5668         directives.
5670 2016-08-18  Pierre-Marie de Rodat  <derodat@adacore.com>
5672         * dwarf2out.c (copy_dwarf_procedure): Remove obsolete comment.
5673         (new_dwarf_proc_die): Emit DW_TAG_dwarf_procedure DIEs even for
5674         -gdwarf-3.
5675         (function_to_dwarf_procedure): Update comment.
5677 2016-08-18  David Malcolm  <dmalcolm@redhat.com>
5679         * input.c (diagnostics_file_cache_forcibly_evict_file): New
5680         function.
5681         * input.h (diagnostics_file_cache_forcibly_evict_file): New
5682         declaration.
5683         * selftest.c (selftest::temp_source_file::~temp_source_file):
5684         Evict m_filename from the diagnostic file cache.
5686 2016-08-18  Richard Biener  <rguenther@suse.de>
5688         * tree-pass.h (make_pass_materialize_all_clones): Declare.
5689         * ipa.c (pass_data_materialize_all_clones, pass_materialize_all_clones,
5690         make_pass_materialize_all_clones): New simple IPA pass encapsulating
5691         clone materialization.
5692         * passes.def (all_late_ipa_passes): Start with
5693         pass_materialize_all_clones.
5694         * cgraphunit.c (symbol_table::compile): Remove call to
5695         materialize_all_clones.
5696         * tree-into-ssa.c: Include statistics.h.
5697         (update_ssa): Count number of times we do incremental/rewrite
5698         SSA update.
5700 2016-08-18  Richard Biener  <rguenther@suse.de>
5702         PR tree-optimization/77282
5703         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
5704         When doing auto-parallelizing also prevent use of PHIs that
5705         carry dependences across loop backedges.
5707 2016-08-18  Tamar Christina  <tamar.christina@arm.com>
5708             Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
5710         * varasm.c (default_use_anchors_for_symbol_p): Reject too large decls.
5712 2016-08-18  Richard Biener  <rguenther@suse.de>
5714         * ssa-iterators.h (ssa_vuse_operand): New inline.
5715         * tree-if-conv.c (ifc_temp_var): Update virtual operand.
5716         (predicate_all_scalar_phis): Use remove_phi_node to remove
5717         phi nodes predicated.  Delay removing virtual PHIs.
5718         (predicate_mem_writes): Update virtual operands.
5719         (combine_blocks): Likewise.  Propagate out remaining virtual PHIs.
5720         (tree_if_conversion): Do not rewrite virtual SSA form.
5721         * tree-phinodes.c (release_phi_node): Make static.
5722         * tree-phinodes.h (release_phi_node): Remove.
5724 2016-08-18  Jakub Jelinek  <jakub@redhat.com>
5726         * config/i386/i386.c (enum ix86_builtins): Remove IX86_BUILTIN_*
5727         codes that appear in bdesc_* arrays, instead include i386-builtin.def
5728         twice to define those.
5729         (bdesc_comi, bdesc_pcmpestr, bdesc_pcmpistr, bdesc_special_args,
5730         bdesc_args, bdesc_round_args, bdesc_mpx, bdesc_mpx_const,
5731         bdesc_multi_arg): Define by including i386-builtin.def the third time.
5732         * config/i386/i386-builtin.def: New file.
5734 2016-08-17  David Malcolm  <dmalcolm@redhat.com>
5736         * input.c (get_source_range_for_char): Rename to...
5737         (selftest::get_source_range_for_char): ...this, and move within
5738         the #if CHECKING_P guard.
5739         (get_num_source_ranges_for_substring): Rename to...
5740         (selftest::get_num_source_ranges_for_substring): ...this, move
5741         within the #if CHECKING_P guard, and make static.
5742         (selftest::assert_num_substring_ranges): Initialize
5743         actual_num_ranges.
5745 2016-08-18  Alan Modra  <amodra@gmail.com>
5747         PR rtl-optimization/72771
5748         * reload.c (find_reloads): Don't assume that a subreg mem is OK
5749         when find_reloads_toplev returns address_reloaded==-1.
5750         (alternative_allows_const_pool_ref): Update comment.
5752 2015-08-17  Alan Hayward  <alan.hayward@arm.com>
5754         PR tree-optimization/71752
5755         * tree-vect-loop.c (vectorizable_reduction): Keep SLP operand ordering.
5756         * tree-vect-slp.c (vect_get_slp_defs): Handle null operands.
5758 2016-08-17  Jakub Jelinek  <jakub@redhat.com>
5760         * gimple-fold.c (gimple_fold_call): Use gimple_call_noreturn_p
5761         instead of testing ECF_NORETURN bit in gimple_call_flags.
5762         * tree-cfg.c (make_edges_bb, execute_fixup_cfg): Likewise.
5763         * predict.c (tree_bb_level_predictions): Likewise.
5764         * gimple-low.c (gimple_stmt_may_fallthru): Likewise.
5766         PR middle-end/77259
5767         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): If
5768         turning a call into __builtin_unreachable-like noreturn call, adjust
5769         gimple_call_set_fntype.
5770         * tree-cfgcleanup.c (fixup_noreturn_call): Remove lhs also if
5771         gimple_call_fntype has void return type.
5773 2016-08-17  Chung-Lin Tang  <cltang@codesourcery.com>
5775         * omp-low.c (lower_oacc_reductions): Adjust variable lookup to use
5776         maybe_lookup_decl, to handle nested acc loop directives.
5778 2016-08-17  Richard Biener  <rguenther@suse.de>
5780         PR tree-optimization/76490
5781         * tree-vrp.c (update_value_range): Preserve overflow infinities
5782         when intersecting with ranges from get_range_info.
5783         (operand_less_p): Handle overflow infinities correctly.
5784         (value_range_constant_singleton): Use vrp_operand_equal_p
5785         to handle overflow max/min correctly.
5786         (vrp_valueize): Likewise.
5787         (union_ranges): Likewise.
5788         (intersect_ranges): Likewise.
5789         (vrp_visit_phi_node): Improve iteration limitation to only
5790         apply when we'll possibly re-visit the PHI via a changed argument
5791         on the backedge.
5793 2016-08-17  Thomas Preud'homme  <thomas.preudhomme@arm.com>
5795         * config/arm/t-aprofile (MULTILIB_EXCEPTIONS): Rewrite into ...
5796         (MULTILIB_REQUIRED): This by specifying multilib needing to be built
5797         rather than those that should not be built.
5799 2016-08-17  Stanislaw Halik  <sthalik@misaki.pl>
5801         PR target/66488
5802         * config/i386/xm-mingw32.h (HOST_BITS_PER_PTR): Define if __x86_64__.
5804 2016-08-17  Richard Biener  <rguenther@suse.de>
5806         * tree-ssa.c: Include tree-cfg.h and tree-dfa.h.
5807         (verify_vssa): New function verifying virtual SSA form.
5808         (verify_ssa): Call it.
5809         * tree-ssa-loop-manip.c (slpeel_update_phi_nodes_for_guard2):
5810         Do not apply loop-closed SSA handling to virtuals.
5811         * ssa-iterators.h (op_iter_init): Handle GIMPLE_TRANSACTION.
5812         * tree-into-ssa.c (prepare_use_sites_for): Skip virtual SSA names
5813         when rewriting their symbol.
5814         (prepare_def_site_for): Likewise.
5815         * tree-chkp-opt.c (chkp_reduce_bounds_lifetime): Clear virtual
5816         operands of moved stmts.
5818 2016-08-17  Richard Biener  <rguenther@suse.de>
5820         PR tree-optimization/23855
5821         * tree-ssa-loop-unswitch.c: Include tree-ssa-loop-manip.h.
5822         (tree_unswitch_outer_loop): Iterate find_loop_guard as long as we
5823         find guards to hoist.  Do not update SSA form but rewrite virtuals
5824         into loop closed SSA.
5825         (find_loop_guard): Adjust to skip already hoisted guards.  Do
5826         not mark virtuals for renaming or update SSA form.
5828 2016-08-17  Martin Liska  <mliska@suse.cz>
5830         * coverage.c (get_gcov_type): Replace GCOV_TYPE_SIZE with
5831         a LONG_LONG_TYPE_SIZE comparison.
5832         * gcov-io.h: Remove macro definitions.
5833         * tree-profile.c (gimple_gen_edge_profiler): Replace usage
5834         of GCOV_TYPE_ATOMIC_FETCH_ADD with a LONG_LONG_TYPE_SIZE
5835         comparison.
5837 2016-08-16  Jakub Jelinek  <jakub@redhat.com>
5839         * config/i386/i386.c (enum ix86_builtins): Reorder enumerators, so
5840         that builtins not mentioned in bdesc_* arrays come first, then
5841         the ones mentioned in bdesc_* arrays in the order they appear in
5842         the arrays in between IX86_BUILTIN__BDESC_*_FIRST and
5843         IX86_BUILTIN__BDESC_*_LAST enumerator.
5844         (bdesc_mpx): Fix up a comment typo.
5845         (bdesc_multi_arg): Remove __builtin_ia32_vpcomne[bwdq] and
5846         __builtin_ia32_vpcomneu[bwdq] builtins.
5847         (BDESC_VERIFY, BDESC_VERIFYS): Define.
5848         (ix86_init_mmx_sse_builtins, ix86_init_mpx_builtins): Verify
5849         enum ix86_builtins ordering.
5850         (ix86_expand_builtin): Use enum ix86_builtins ordering assumption
5851         for direct bdesc_* array member access instead of searching all the
5852         arrays until an fcode match is found.
5854 2016-08-16  Uros Bizjak  <ubizjak@gmail.com>
5856         * config/i386/i386.md (*ashl<mode>3_mask): Rewrite define_insn
5857         pattern as define_insn_and_split.  Split insn before reload to
5858         ashl<mode>3_1.
5859         (*<shift_insn><mode>3_mask): Ditto.  Split insn before reload to
5860         <shift_insn><mode>3_1.
5861         (*<rotate_insn><mode>3_mask): Ditto.  Split insn before reload to
5862         <rotate_insn><mode>3_1.
5864 2016-08-16  David Malcolm  <dmalcolm@redhat.com>
5866         PR c/72857
5867         * input.c (get_source_range_for_substring): Rename to...
5868         (get_source_location_for_substring): ...this, adding param
5869         "caret_idx", and converting output param from source_range * to
5870         location_t *.
5871         (get_source_range_for_char): New function.
5872         (get_num_source_ranges_for_substring): Update comment to reflect
5873         above renaming.
5874         (assert_char_at_range): Update to use get_source_range_for_char
5875         rather than get_source_range_for_substring.
5876         (test_lexer_string_locations_concatenation_2): Likewise.
5877         * substring-locations.h (get_source_range_for_substring): Rename
5878         to...
5879         (get_source_location_for_substring): ...this, and adding param
5880         "caret_idx", and converting output param from source_range * to
5881         location_t *.
5883 2016-08-16  David Malcolm  <dmalcolm@redhat.com>
5885         * input.c (class selftest::temp_source_file): Move to
5886         selftest.h.
5887         (selftest::temp_source_file::temp_source_file): Move to
5888         selftest.c.
5889         (selftest::temp_source_file::~temp_source_file): Likewise.
5890         * selftest.c (selftest::temp_source_file::temp_source_file): Move
5891         here from input.c.
5892         (selftest::temp_source_file::~temp_source_file): Likewise.
5893         * selftest.h (class selftest::temp_source_file): Move here from
5894         input.c
5896 2016-08-16  Jakub Jelinek  <jakub@redhat.com>
5898         PR target/71910
5899         * tree-cfg.c (execute_fixup_cfg): Add node variable, use it.  Before
5900         inlining, add cgraph edge for the added __builtin_unreachable call.
5902         PR middle-end/67485
5903         * expmed.c (expand_mult_const): Change val_so_far's type to UHWI,
5904         only cast it to SHWI for the final comparison.
5906 2016-08-16  Martin Liska  <mliska@suse.cz>
5908         PR gcov-profile/36412
5909         * doc/gcov.texi: Document --hash-filenames(-x).
5910         * gcov.c (print_usage): Add the option.
5911         (process_args): Process the option, sort options alphabetically.
5912         (md5sum_to_hex): New function.
5913         (make_gcov_file_name): Do the md5sum and append it to a
5914         filename.
5916 2016-08-16  Bin Cheng  <bin.cheng@arm.com>
5918         PR tree-optimization/69848
5919         * config/aarch64/aarch64-simd.md (vcond<mode><mode>): Invert NE
5920         and swtich operands to avoid additional NOT instruction.
5921         (vcond<v_cmp_mixed><mode>): Ditto.
5922         (vcondu<mode><mode>, vcondu<mode><v_cmp_mixed>): Ditto.
5924 2016-08-16  Eric Botcazou  <ebotcazou@adacore.com>
5926         * doc/install.texi (*-*-solaris2*): Adjust latest change.
5928 2016-08-16  Richard Biener  <rguenther@suse.de>
5930         PR tree-optimization/76783
5931         * tree-ssa-propagate.c (ssa_prop_init): Use RPO order.  Clear
5932         BB visited flags at start.
5934 2016-08-16  Bin Cheng  <bin.cheng@arm.com>
5936         PR tree-optimization/72817
5937         PR tree-optimization/73450
5938         * tree-ssa-loop-niter.c (number_of_iterations_ne): Check
5939         multiple_of_p for adjusted IV.base.
5941 2016-08-15  Uros Bizjak  <ubizjak@gmail.com>
5943         PR target/72867
5944         * config/i386/sse.md (<code><mode>3<mask_name><round_saeonly_name>):
5945         Emit ieee_<ieee_maxmin><mode>3<mask_name><round_saeonly_name>
5946         for !flag_finite_math_only or flag_signed_zeros.
5947         (*<code><mode>3<mask_name><round_saeonly_name>): Rename from
5948         *<code><mode>3_finite<mask_name><round_saeonly_name>.  Do not
5949         depend on flag_finite_math_only.
5950         (ieee_<ieee_maxmin><mode>3<mask_name><round_saeonly_name>):
5951         New insn pattern.
5952         (*<code><mode>3<mask_name><round_saeonly_name>): Remove.
5953         (*ieee_smin<mode>3): Ditto.
5954         (*ieee_smax<mode>3): Ditto.
5955         * config/i386/mmx.md (mmx_<code>v2sf3): Emit
5956         mmx_ieee_<ieee_maxmin>v2sf3 for !flag_finite_math_only or
5957         flag_signed_zeros.
5958         (*mmx_<code>v2sf3): Rename from *mmx_<code>v2sf3_finite.  Do not
5959         depend on flag_finite_math_only.
5960         (mmx_ieee_<ieee_maxmin>v2sf3): New insn pattern.
5961         (*mmx_<code>v2sf3): Remove.
5962         * config/i386/subst.md (round_saeonly_mask_arg3): New subst attribute.
5963         * config/i386/i386.c (ix86_expand_sse_fp_mimnax): Check
5964         flag_signed_zeros instead of !flag_unsafe_math_optimizations.
5966 2016-08-15  Segher Boessenkool  <segher@kernel.crashing.org>
5968         PR rtl-optimization/73650
5969         * lra-constraints.c (simple_move_p): If the insn is multiple_sets
5970         it is not a simple move.
5972 2016-08-15  Martin Liska  <mliska@suse.cz>
5974         PR driver/72765
5975         * gcc.c (do_spec_1): Call save_string with the right size.
5976         (save_string): Do an assert about string we copy.
5978 2016-08-15  Richard Biener  <rguenther@suse.de>
5980         * ree.c (rest_of_handle_ree): Remove redundant timevar push/pop.
5981         * config/i386/i386.c (pass_data_insert_vzeroupper): Account to
5982         TV_MACH_DEP.
5983         (pass_data_stv): Likewise.
5985 2016-08-15  Richard Biener  <rguenther@suse.de>
5987         PR tree-optimization/73434
5988         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Preserve
5989         TBAA info on the base when forwarding a non-invariant address.
5991 2016-08-15  Jakub Jelinek  <jakub@redhat.com>
5993         * dwarf2out.c (struct checksum_attributes): Add
5994         at_string_length_bit_size and at_string_length_byte_size fields.
5995         (collect_checksum_attributes): Handle DW_AT_string_length_bit_size
5996         and DW_AT_string_length_byte_size.
5997         (die_checksum_ordered): Handle at_string_length_bit_size and
5998         at_string_length_byte_size.
5999         (gen_array_type_die): For dwarf_version >= 5 emit
6000         DW_AT_string_length_byte_size instead of DW_AT_byte_size.
6001         (adjust_string_types): For dwarf_version >= 5 remove
6002         DW_AT_string_length_byte_size instead of DW_AT_byte_size.
6003         (resolve_addr): Likewise.
6005         PR debug/71906
6006         * dwarf2out.c (string_types): New variable.
6007         (gen_array_type_die): Change early_dwarf handling of
6008         DW_AT_string_length, create DW_OP_call4 referencing the
6009         length var temporarily.  Handle parameters that are pointers
6010         to string length.
6011         (adjust_string_types): New function.
6012         (gen_subprogram_die): Temporarily set string_types to local var,
6013         call adjust_string_types if needed.
6014         (non_dwarf_expression, copy_deref_exprloc, optimize_string_length):
6015         New functions.
6016         (resolve_addr): Adjust DW_AT_string_length if it is DW_OP_call4.
6018 2016-08-15  Eric Botcazou  <ebotcazou@adacore.com>
6020         * doc/install.texi (*-*-solaris2*): Fix version number and document
6021         requirement on GNU make for building libjava with the Solaris linker.
6023 2016-08-15  Martin Liska  <mliska@suse.cz>
6024             Jakub Jelinek  <jakub@redhat.com>
6026         PR tree-optimization/72824
6027         * tree-loop-distribution.c (const_with_all_bytes_same)
6028         <case VECTOR_CST>: Fix a typo.
6030 2016-08-14  Uros Bizjak  <ubizjak@gmail.com>
6032         PR target/76342
6033         * config/i386/avx512fintrin.h (_mm512_undefined_epi32):
6034         Renamed from _mm512_undefined_si512.
6035         (_mm_undefined_si512): New definition.
6037 2016-08-13  Richard Biener  <rguenther@suse.de>
6039         * tree-ssa-forwprop.c (pass_forwprop::execute): Propagate
6040         into PHIs and update the lattice for its def.
6042 2016-08-12  Jakub Jelinek  <jakub@redhat.com>
6044         PR c/71512
6045         * ubsan.c (instrument_si_overflow): Pass true instead of false
6046         to gsi_replace.
6047         (pass_ubsan::execute): Call gimple_purge_dead_eh_edges at the end
6048         of bbs.  Return TODO_cleanup_cfg if any returned true.
6050 2016-08-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
6052         * config/rs6000/vsx.md (vsx_concat_<mode>): Add support for the
6053         ISA 3.0 MTVSRDD instruction.
6054         (vsx_splat_<mode>): Change cpu type of MTVSRDD instruction to
6055         vecperm.
6057 2016-08-12  Bernd Edlinger  <bernd.edlinger@hotmail.de>
6059         PR tree-optimization/71083
6060         * tree-predcom.c (ref_at_iteration): Use a COMPONENT_REF for the
6061         bitfield access when possible.
6063 2016-08-12  Patrick Palka  <ppalka@gcc.gnu.org>
6065         PR middle-end/71654
6066         * match.pd ((T)A CMP (T)B -> A CMP B): Allow (T)A to be a
6067         sign-changing cast from a shorter unsigned type to a wider
6068         signed type.
6070 2016-08-12  Jakub Jelinek  <jakub@redhat.com>
6072         * config/i386/sse.md (avx512dq_vextract<shuffletype>64x2_1_maskm,
6073         vec_extract_hi_<mode>_mask, vec_extract_lo_<mode>_mask,
6074         vec_extract_hi_<mode>_mask): Use Yk constraint instead of k.
6076 2016-08-12  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
6078         * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost):
6079         Correct costs for vec_construct.
6081 2016-08-12  Bin Cheng  <bin.cheng@arm.com>
6083         PR tree-optimization/69848
6084         * tree-vectorizer.h (enum vect_def_type): New condition reduction
6085         type CONST_COND_REDUCTION.
6086         * tree-vect-loop.c (vectorizable_reduction): Support new condition
6087         reudction type CONST_COND_REDUCTION.
6089 2016-08-12  Richard Biener  <rguenther@suse.de>
6091         PR tree-optimization/57326
6092         * tree-ssa-pre.c (fully_constant_expression): Handle simplification
6093         returning an SSA name.
6094         (phi_translate_1): When fully_constant_expression returns a NAME
6095         make sure we have a leader for it.
6097 2016-08-12  Martin Liska  <mliska@suse.cz>
6098             Adam Fineman  <afineman@afineman.com>
6100         * gcov.c (process_file): Create .gcov file when .gcda
6101         file is missing.
6103 2016-08-12  Marek Polacek  <polacek@redhat.com>
6105         PR c/7652
6106         * alias.c (find_base_value): Adjust fall through comment.
6107         * cfgexpand.c (expand_debug_expr): Likewise.
6108         * combine.c (find_split_point): Likewise.
6109         (expand_compound_operation): Likewise.  Add FALLTHRU.
6110         (make_compound_operation): Adjust fall through comment.
6111         (canon_reg_for_combine): Add FALLTHRU.
6112         (force_to_mode): Adjust fall through comment.
6113         (simplify_shift_const_1): Likewise.
6114         (simplify_comparison): Likewise.
6115         * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args): Add
6116         FALLTHRU.
6117         * config/aarch64/predicates.md: Likewise.
6118         * config/i386/i386.c (function_arg_advance_32): Likewise.
6119         (ix86_gimplify_va_arg): Likewise.
6120         (print_reg): Likewise.
6121         (ix86_print_operand): Likewise.
6122         (ix86_build_const_vector): Likewise.
6123         (ix86_expand_branch): Likewise.
6124         (ix86_sched_init_global): Adjust fall through comment.
6125         (ix86_expand_args_builtin): Add FALLTHRU.
6126         (ix86_expand_builtin): Likewise.
6127         (ix86_expand_vector_init_one_var): Likewise.
6128         * config/rs6000/rs6000.c (rs6000_emit_vector_compare_inner): Likewise.
6129         (rs6000_adjust_cost): Likewise.
6130         (insn_must_be_first_in_group): Likewise.
6131         * config/rs6000/rs6000.md: Likewise.  Adjust fall through comment.
6132         * dbxout.c (dbxout_symbol): Adjust fall through comment.
6133         * df-scan.c (df_uses_record): Likewise.
6134         * dojump.c (do_jump): Add FALLTHRU.
6135         * dwarf2out.c (mem_loc_descriptor): Likewise.  Adjust fall through
6136         comment.
6137         (resolve_args_picking_1): Adjust fall through comment.
6138         (loc_list_from_tree_1): Likewise.
6139         * expmed.c (make_tree): Likewise.
6140         * expr.c (expand_expr_real_2): Add FALLTHRU.
6141         (expand_expr_real_1): Likewise.  Adjust fall through comment.
6142         * fold-const.c (const_binop): Adjust fall through comment.
6143         (fold_truth_not_expr): Likewise.
6144         (fold_cond_expr_with_comparison): Add FALLTHRU.
6145         (fold_binary_loc): Likewise.
6146         (contains_label_1): Adjust fall through comment.
6147         (multiple_of_p): Likewise.
6148         * gcov-tool.c (process_args): Add FALLTHRU.
6149         * genattrtab.c (check_attr_test): Likewise.
6150         (write_test_expr): Likewise.
6151         * genconfig.c (walk_insn_part): Likewise.
6152         * genpreds.c (validate_exp): Adjust fall through comment.
6153         (needs_variable): Likewise.
6154         * gensupport.c (get_alternatives_number): Add FALLTHRU.
6155         (subst_dup): Likewise.
6156         * gimple-pretty-print.c (dump_gimple_assign): Likewise.
6157         * gimplify.c (gimplify_addr_expr): Adjust fall through comment.
6158         (gimplify_scan_omp_clauses): Add FALLTHRU.
6159         (goa_stabilize_expr): Likewise.
6160         * graphite-isl-ast-to-gimple.c (substitute_ssa_name): Adjust fall
6161         through comment.
6162         * hsa-gen.c (get_address_from_value): Likewise.
6163         * ipa-icf.c (sem_function::hash_stmt): Likewise.
6164         * ira.c (ira_setup_alts): Add FALLTHRU.
6165         * lra-eliminations.c (lra_eliminate_regs_1): Adjust fall through
6166         comment.
6167         * lto-streamer-out.c (lto_output_tree_ref): Add FALLTHRU.
6168         * opts.c (common_handle_option): Likewise.
6169         * read-rtl.c (read_rtx_code): Likewise.
6170         * real.c (round_for_format): Likewise.
6171         * recog.c (asm_operand_ok): Likewise.
6172         * reginfo.c (reg_scan_mark_refs): Adjust fall through comment.
6173         * reload1.c (set_label_offsets): Likewise.
6174         (eliminate_regs_1): Likewise.
6175         (reload_reg_reaches_end_p): Likewise.
6176         * rtlanal.c (commutative_operand_precedence): Add FALLTHRU.
6177         (rtx_cost): Likewise.
6178         * sched-rgn.c (is_exception_free): Likewise.
6179         * simplify-rtx.c (simplify_rtx): Adjust fall through comment.
6180         * stor-layout.c (int_mode_for_mode): Likewise.
6181         * toplev.c (print_to_asm_out_file): Likewise.
6182         (print_to_stderr): Likewise.
6183         * tree-cfg.c (gimple_verify_flow_info): Likewise.
6184         * tree-chrec.c (chrec_fold_plus_1): Add FALLTHRU.
6185         (chrec_fold_multiply): Likewise.
6186         (evolution_function_is_invariant_rec_p): Likewise.
6187         (for_each_scev_op): Likewise.
6188         * tree-data-ref.c (siv_subscript_p): Likewise.
6189         (get_references_in_stmt): Likewise.
6190         * tree.c (find_placeholder_in_expr): Adjust fall through comment.
6191         (substitute_in_expr): Likewise.
6192         (type_cache_hasher::equal): Likewise.
6193         (walk_type_fields): Likewise.
6194         * var-tracking.c (adjust_mems): Add FALLTHRU.
6195         (set_dv_changed): Adjust fall through comment.
6196         * varasm.c (default_function_section): Add FALLTHRU.
6198 2016-08-12  Marek Polacek  <polacek@redhat.com>
6200         PR c/7652
6201         * tree-complex.c (expand_complex_division): Add missing break.
6203 2016-08-12  Richard Biener  <rguenther@suse.de>
6205         * passes.c (execute_todo): Do not push/pop TV_TODO.
6206         (execute_one_ipa_transform_pass): Move timevar push/pop TODO execution.
6207         (execute_one_pass): Likewise.
6208         * common.opt (ftime-report-details): New switch.
6209         * doc/invoke.texi (ftime-report-details): Document.
6210         * timevar.h (timer::print_row): Adjust signature.
6211         (timer::all_zero): New static helper.
6212         (timer::child_map_t): New typedef.
6213         (timer::time_var_def): Add children field.
6214         * timevar.c (timer::named_items::print): Adjust.
6215         (timer::~timer): Free timevar recorded children.
6216         (timer::pop_internal): When -ftime-report-details record
6217         time spent in sub-timevars.
6218         (timer::print_row): Adjust.
6219         (timer::print): Print sub-timevar stats, use all_zero.
6220         * timevar.def (TV_TODO): Remove.
6222 2016-08-12  Richard Biener  <rguenther@suse.de>
6224         PR tree-optimization/72851
6225         * tree-ssa-propagate.c: Include cfganal.h.  Rewrite block and stmt
6226         worklists to use bitmaps indexed in execution order.
6227         (executable_blocks, cfg_blocks_num, cfg_blocks_tail, cfg_blocks_head,
6228         bb_in_list, interesting_ssa_edges, varying_ssa_edges): Remove.
6229         (cfg_blocks): Make a bitmap.
6230         (bb_to_cfg_order, cfg_order_to_bb, ssa_edge_worklist, uid_to_stmt):
6231         New globals.
6232         (cfg_blocks_empty_p): Adjust.
6233         (cfg_blocks_add): Likewise.
6234         (cfg_blocks_get): Likewise.
6235         (add_ssa_edge): Likewise.
6236         (add_control_edge): Likewise.
6237         (simulate_stmt): Likewise.
6238         (process_ssa_edge_worklist): Likewise.
6239         (simulate_block): Likewise.
6240         (ssa_prop_init): Compute PRE order and stmt UIDs.
6241         (ssa_prop_fini): Adjust.
6242         (ssa_propagate): Adjust.
6244 2016-08-12  Richard Biener  <rguenther@suse.de>
6246         * tree-vrp.c (vrp_visit_phi_node): Allow a last iteration if
6247         the currently executable edges have fixed ranges.  Always
6248         go through update_value_range.
6250 2016-08-12  Alexandre Oliva  <aoliva@redhat.com>
6252         PR debug/63240
6253         * langhooks-def.h
6254         (LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P): Const_tree-ify.
6255         (LANG_HOOKS_FUNCTION_DECL_DELETED_P): Likewise.
6256         (LANG_HOOKS_FUNCTION_DECL_DEFAULTED): Set default.
6257         (LANG_HOOKS_DECLS): Add it.
6258         * langhooks.h (struct lang_hooks_for_decls): Add
6259         function_decl_defaulted.  Const_tree-ify
6260         function_decl_explicit_p and function_decl_deleted_p.
6261         * dwarf2out.c (gen_subprogram_die): Add DW_AT_defaulted
6262         attribute.  Add DW_AT_deleted instead of DW_AT_GNU_deleted,
6263         also at strict DWARF v5.
6265         PR debug/55641
6266         * dwarf2out.c (decl_quals): Don't map TREE_READONLY to
6267         TYPE_QUAL_CONST in reference-typed decls.
6269         PR debug/49366
6270         * dwarf2out.c (loc_list_from_tree_1): Expand some CONSTRUCTORs
6271         in DW_OP_pieces, just enough to handle pointers to member
6272         functions.
6273         (gen_remaining_tmpl_value_param_die_attribute): Use a location
6274         expression on DWARFv5 if a constant value doesn't work.
6276 2016-08-11  David Malcolm  <dmalcolm@redhat.com>
6278         * selftest-run-tests.c (selftest::run_tests): Call selftest_c_tests.
6279         * selftest.c (selftest::test_assertions): New function.
6280         (selftest::selftest_c_tests): New function.
6281         * selftest.h (selftest::selftest_c_tests): New declaration.
6283 2016-08-11  Richard Biener  <rguenther@suse.de>
6284             Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
6286         PR rtl-optimization/72855
6287         * df-core.c (df_verify): Turn off DF_VERIFY_SCHEDULED at end.
6289 2016-08-11  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
6291         PR target/72863
6292         * vsx.md (vsx_load_<mode>): For P8LE, emit swaps at expand time.
6293         (vsx_store_<mode>): Likewise.
6295 2015-08-11  H.J. Lu  <hongjiu.lu@intel.com>
6297         * config/i386/i386.c (timode_scalar_to_vector_candidate_p): Allow
6298         TImode CONST_WIDE_INT store.
6299         (timode_scalar_chain::convert_insn): Handle CONST_WIDE_INT store.
6301 2015-08-11  H.J. Lu  <hongjiu.lu@intel.com>
6303         * config/i386/i386.h (MOVE_MAX_PIECES): Use TImode in 64-bit
6304         mode if unaligned SSE load and store are optimal.
6306 2016-08-11  Bernd Edlinger  <bernd.edlinger@hotmail.de>
6308         PR tree-optimization/71083
6309         * tree-predcom.c (ref_at_iteration): Correctly align the
6310         reference type.
6312 2016-08-11  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6314         * config/s390/s390-builtin-types.def: Add INT128 types.
6315         * config/s390/s390-builtins.def: Add INT128 variants for the add
6316         sub low-level builtins dealing with TImode.
6317         * config/s390/s390.c (s390_expand_builtin): Allow mode conversions
6318         via subreg when expanding a builtin.
6319         * config/s390/s390.md: Remove UNSPEC_VEC_ADDC_U128,
6320         UNSPEC_VEC_SUB_U128, and UNSPEC_VEC_SUBC_U128 constants.
6321         Fix comment.
6322         * config/s390/vecintrin.h: Adjust builtin names accordingly.
6323         * config/s390/vx-builtins.md ("vec_add_u128"): Remove expander.
6324         ("vec_addc<mode>", "vec_addc_u128"): Merge to
6325         "vacc<bhfgq>_<mode>".
6326         ("vec_adde_u128"): Rename to "vacq". Change mode to TImode.
6327         ("vec_addec_u128"): Rename to "vacccq". Change mode to TImode.
6328         ("vec_subc<mode>", "vec_subc_u128"): Merge to
6329         "vscbi<bhfgq>_<mode>".
6330         ("vec_sube_u128"): Rename to "vsbiq". Change mode to TImode.
6331         ("vec_subec_u128"): Rename to "vsbcbiq". Change mode to TImode.
6333 2016-08-11  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6335         * config/s390/s390-builtins.def: Mark last operand of s390_vlvg*
6337 2016-08-11  Bin Cheng  <bin.cheng@arm.com>
6339         * config/aarch64/aarch64-simd.md (vcond<mode><mode>): Delete
6340         unused declaration.
6341         (vcond<v_cmp_mixed><mode>): Ditto.
6342         (vcondu<mode><mode>, vcondu<mode><v_cmp_mixed>): Ditto.
6344 2016-08-11  Bin Cheng  <bin.cheng@arm.com>
6346         * config/aarch64/aarch64-simd.md (vec_cmp<mode><v_cmp_result>): Init
6347         variable explicitly, also assert on it before use.
6349 2016-08-11  Richard Biener  <rguenther@suse.de>
6351         PR tree-optimization/72772
6352         * cfgloopmanip.c (create_preheader): Use split_edge if there
6353         is a single loop entry, avoiding degenerate PHIs.
6355 2016-08-11  Richard Biener  <rguenther@suse.de>
6357         * tree-ssa-threadbackward.c (pass_data_thread_jumps): Remove
6358         unconditional TODO_cleanup_cfg.
6359         (pass_thread_jumps::execute): Initialize loops, perform a CFG
6360         cleanup only if we threaded a jump.
6362 2016-08-11  Alan Modra  <amodra@gmail.com>
6364         PR target/71680
6365         * lra-constraints.c (simplify_operand_subreg): Allow subreg
6366         mode for mem when SLOW_UNALIGNED_ACCESS if inner mode is also
6367         slow.  Emit two reloads for slow mem case, first loading in
6368         fast innermode, then converting to required mode.
6370 2016-08-10  Kelvin Nilsen  <kelvin@gcc.gnu.org>
6372         * config/rs6000/altivec.h (vec_extract_exp): New macro.
6373         (vec_extract_sig): New macro.
6374         (vec_insert_exp): New macro.
6375         (vec_test_data_class): New macro.
6376         (scalar_extract_exp): New macro.
6377         (scalar_extract_sig): New macro.
6378         (scalar_insert_exp): New macro.
6379         (scalar_test_data_class): New macro.
6380         (scalar_test_neg): New macro.
6381         (scalar_cmp_exp_gt): New macro.
6382         (scalar_cmp_exp_lt): New macro.
6383         (scalar_cmp_exp_eq): New macro.
6384         (scalar_cmp_exp_unordered): New macro.
6385         * config/rs6000/predicates.md (u7bit_cint_operand): New predicate
6386         to enforce constraint that operand is a 7-bit unsigned literal.
6387         * config/rs6000/rs6000-builtin.def (BU_P9V_64BIT_VSX_1): New macro
6388         for power9 built-ins.
6389         (BU_P9V_VSX_2): Likewise.
6390         (BU_P9V_64BIT_VSX_2): Likewise.
6391         (VSEEDP): Add scalar extract exponent support.
6392         (VSEESP): Add scalar extract signature support.
6393         (VSTDCNDP): Add scalar test negative support.
6394         (VSTDCNSP): Likewise.
6395         (VSIEDP): Add scalar insert exponent support.
6396         (VSCEDPGT): Add scalar compare exponent greater than support.
6397         (VSCEDPLT): Add scalar compare exponent less than support.
6398         (VSCEDPEQ): Add scalar compare exponent test-for-equality support.
6399         (VSCEDPUO): Add scalar compare exponent test-for-unordered support.
6400         (VSTDCDP): Add scalar test data class support.
6401         (VSTDCSP): Likewise.
6402         (VSEEDP): Add overload support for scalar extract exponent
6403         operation.
6404         (VSESDP): Add overload support for scalar extract signature
6405         operation.
6406         (VSTDCN): Add overload support for scalar test negative
6407         operation.
6408         (VSTDCNDP): Add overload support for scalar test negative
6409         operation.
6410         (VSTDCNSP): Add overload support for scalar test negative
6411         operation.
6412         (VSIEDP): Add overload support for scalar insert exponent
6413         operation.
6414         (VSTDC): Add overload support for scalar test data class
6415         operation.
6416         (VSTDCDP): Add overload support for scalar test data class
6417         operation.
6418         (VSTDCSP): Add overload support for scalar test data class
6419         opreation.
6420         (VSCEDPGT): Add overload support for scalar compare exponent
6421         greater than operation.
6422         (VSCEDPLT): Add overload support for scalar compare exponent
6423         less than operation.
6424         (VSCEDPEQ): Add overload support for scalar compare exponent
6425         test-for-equality operation.
6426         (VSCEDPUO): Add overload support for scalar compare exponent
6427         test-for-unordered operation.
6428         (VEEDP): Add vector extract exponent support.
6429         (VEESP): Likewise.
6430         (VESDP): Add vector extract significand support.
6431         (VESSP): Likewise.
6432         (VIEDP): Add vector insert exponent support.
6433         (VIESP): Likewise.
6434         (VTDCDP): Add vector test data class support.
6435         (VTDCSP): Likewise.
6436         (VES): Add overload support for vector extract significand operation.
6437         (VESDP): Likewise.
6438         (VESSP): Likewise
6439         (VEE): Add overload support for vector extract exponent operation.
6440         (VEEDP): Likewise.
6441         (VEESP): Likewise.
6442         (VTDC): Add overload support for vector test data class operation.
6443         (VTDCDP): Likewise.
6444         (VTDCSP): Likewise.
6445         (VIE): Add overload support for vector insert exponent operation.
6446         (VIEDP): Likewise.
6447         (VIESP): Likewise.
6448         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
6449         overloaded binary floating point functions.
6450         (altivec_resolve_overloaded_builtin): Improve error messages to
6451         distinguish between functions not supported in the current
6452         compiler configuration and functions that were invoked with an
6453         invalid parameter combination, and include the built-in function
6454         name in both error messages.
6455         * config/rs6000/rs6000-protos.h (rs6000_overloaded_builtin_name):
6456         New prototype.
6457         * config/rs6000/rs6000.c (rs6000_overloaded_builtin_name): New
6458         function.
6459         (rs6000_expand_binop_builtin): Add check to enforce that argument
6460         2 of the test data class operations is a 7-bit unsigned literal.
6461         (rs6000_invalid_builtin): Add code to issue an error message if a
6462         built-in function that requires the power9_vector and -m32
6463         command-line options is compiled without these options.
6464         * config/rs6000/vsx.md (UNSPEC_VSX_SXEXPDP): New value.
6465         (UNSPEC_VSX_SXSIGDP): New value.
6466         (UNSPEC_VSX_SXSIGPDP): New value.
6467         (UNSPEC_VSX_SIEXPDP): New value.
6468         (UNSPEC_VSX_SCMPEXPDP): New value.
6469         (UNSPEC_VSX_STSTDC): New value.
6470         (UNSPEC_VSX_VXEXP): New value.
6471         (UNSPEC_VSX_VXSIG): New value.
6472         (UNSPEC_VSX_VIEXP): New value.
6473         (UNSPEC_VSX_VTSTDC): New value.
6474         (xsxexpdp): New insn for scalar extract exponent.
6475         (xsxsigdp): New insn for scalar extract significand.
6476         (xsiexpdp): New insn for scalar insert exponent.
6477         (xscmpexpdp_<code>): New expansion for scalar compare exponents.
6478         (*xscmpexpdp): New insn for scalar compare exponents.
6479         (xststdc<Fvsx): New expansion for both single- and
6480         double-precision scalar test data class operations.
6481         (xststdcneg<Fvsx>): New expansion for both single- and
6482         double-precision scalar test for negative value operations.
6483         (*xststdc<Fvsx>): New insn for scalar test data class
6484         operation.
6485         (xvxexp<VSs>): New insn for single- and double-precision
6486         vector extract exponent operation.
6487         (xvxsig<VSs>): New insn for single- and double-precision
6488         vector extract significand operation.
6489         (xviexp<VSs>): New insn for single- and double-precision
6490         vector insert exponent operation.
6491         (xvtstdc<VSs>): New insn for single- and double-precision
6492         vector test data class operation.
6493         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
6494         built-in functions to represent the Power9 binary floating-point
6495         support instructions.
6497 2016-08-10  bin cheng  <bin.cheng@arm.com>
6499         * doc/sourcebuild.texi (@item vect_cond_mixed): New item.
6501 2016-08-10  Alan Lawrence  <alan.lawrence@arm.com>
6502             Renlin Li  <renlin.li@arm.com>
6503             Bin Cheng  <bin.cheng@arm.com>
6505         * config/aarch64/iterators.md (V_cmp_mixed, v_cmp_mixed): New.
6506         * config/aarch64/aarch64-simd.md (<su><maxmin>v2di3): Call
6507         gen_vcondv2div2di instead of gen_aarch64_vcond_internalv2div2di.
6508         (aarch64_vcond_internal<mode><mode>): Delete pattern.
6509         (aarch64_vcond_internal<VDQF_COND:mode><VDQF:mode>): Ditto.
6510         (vcond<v_cmp_result><mode>): Ditto.
6511         (vcond<mode><mode>): Re-implement using vec_cmp and vcond_mask.
6512         (vcondu<mode><mode>): Ditto.
6513         (vcond<v_cmp_mixed><mode>): New pattern.
6514         (vcondu<mode><v_cmp_mixed>): New pattern.
6515         (aarch64_cmtst<mode>): Revise comment using aarch64_vcond instead
6516         of aarch64_vcond_internal.
6518 2016-08-10  Alan Lawrence  <alan.lawrence@arm.com>
6519             Renlin Li  <renlin.li@arm.com>
6520             Bin Cheng  <bin.cheng@arm.com>
6522         * config/aarch64/aarch64-simd.md (vec_cmp<mode><mode>): New pattern.
6523         (vec_cmp<mode><v_cmp_result>): New pattern.
6524         (vec_cmpu<mode><mode>): New pattern.
6525         (vcond_mask_<mode><v_cmp_result>): New pattern.
6527 2016-08-10  Yuri Rumyantsev  <ysrumyan@gmail.com>
6529         PR tree-optimization/71734
6530         * tree-ssa-loop-im.c (ref_indep_loop_p): Add new argument
6531         REF_LOOP, invoke ref_indep_loop_p_1.
6532         (outermost_indep_loop): Pass LOOP argumnet where REF was defined
6533         to ref_indep_loop_p.
6534         (ref_indep_loop_p_1): Fix commentary, add argument REF_LOOP,
6535         combine it with ref_indep_lopp_p_2, update SAFELEN if only REF
6536         is inside LOOP, do not cache dpendence value for loops with
6537         non-zero SAFELEN.
6538         (ref_indep_loop_p_2): Delete function.
6539         (can_sm_ref_p): Pass LOOP as additional argument to
6540         ref_indep_loop_p.
6542 2016-08-10  Michael Meissner  <meissner@linux.vnet.ibm.com>
6544         PR target/72853
6545         * config/rs6000/rs6000.c (mem_operand_ds_form): Add check for op
6546         being an offsettable address.
6548 2016-08-10  Martin Liska  <mliska@suse.cz>
6550         PR gcov-profile/58306
6551         * tree-profile.c (gimple_init_edge_profiler): Create conditionally
6552         atomic variants of profile update functions.
6554 2016-08-10  Martin Liska  <mliska@suse.cz>
6556         Cherry picked (and modified) from google-4_7 branch
6557         2012-12-26  Rong Xu  <xur@google.com>
6558         * common.opt (fprofile-update): Add new flag.
6559         * coretypes.h: Define enum profile_update.
6560         * doc/invoke.texi: Document -fprofile-update.
6561         * gcov-io.h: Declare GCOV_TYPE_ATOMIC_FETCH_ADD and
6562         GCOV_TYPE_ATOMIC_FETCH_ADD_FN.
6563         * tree-profile.c (gimple_init_edge_profiler): Generate
6564         also atomic profiler update.
6565         (gimple_gen_edge_profiler): Likewise.
6567 2016-08-10  David Malcolm  <dmalcolm@redhat.com>
6569         * toplev.c (finalize): Set aux_info_file, asm_out_file, and
6570         stack_usage_file to NULL after fclose calls.
6572 2016-08-10  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
6574         PR target/71873
6575         * reload.c (push_reload): Compute subreg_in_class for
6576         subregs of constants and plus expressions. Remove special
6577         handling of SYMBOL_REFs.
6579 2016-08-10  Alan Modra  <amodra@gmail.com>
6581         PR target/71680
6582         * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Return
6583         SImode for TARGET_E500_DOUBLE when given SImode.
6585 2016-08-09  David Wohlferd  <dw@LimeGreenSocks.com>
6587         * config/i3836/avx512fintrin.h (_mm512_cvtsepi64_epi32): Remove
6588         unused variable __O.
6590 2016-08-09  Martin Liska  <mliska@suse.cz>
6592         * doc/gcov.texi: Change _gcov_dump to __gcov_dump and
6593         _gcov_reset to __gcov_reset.
6594         * doc/gcov-tool.texi: Fix typo.
6596 2016-08-09  Martin Liska  <mliska@suse.cz>
6598         * value-prof.c (gimple_divmod_values_to_profile): Do not
6599         instrument MOD histogram if a value is not a SSA name.
6601 2016-08-09  Martin Liska  <mliska@suse.cz>
6603         * value-prof.c (dump_histogram_value): Swap pow2 and non-pow2
6604         values.
6606 2016-08-09  Renlin Li  <renlin.li@arm.com>
6608         PR middle-end/64971
6609         * calls.c (prepare_call_address): Convert funexp to Pmode when
6610         necessary.
6611         * config/aarch64/aarch64.md (sibcall): Remove fix for PR 64971.
6612         (sibcall_value): Likewise.
6614 2016-08-09  Marek Polacek  <polacek@redhat.com>
6616         PR c/7652
6617         * cselib.c (cselib_expand_value_rtx_1): Add return.
6618         * gengtype.c (dbgprint_count_type_at): Likewise.
6619         * hsa-gen.c (gen_hsa_insn_for_internal_fn_call): Likewise.
6620         * reg-stack.c (get_true_reg): Restructure to avoid fallthrough warning.
6622 2016-08-09  Martin Jambor  <mjambor@suse.cz>
6624         PR ipa/71981
6625         * ipa-polymorphic-call.c (get_dynamic_type): Bail out gracefully
6626         if instance is a MEM_REF.
6628 2016-08-09  Uros Bizjak  <ubizjak@gmail.com>
6630         PR target/72843
6631         * config/i386/i386.md (*movtf_internal): Use
6632         lra_in_progress || reload_completed instead of !can_create_pseudo_p
6633         in the insn constraint.
6634         (*movxf_internal): Ditto.
6635         (*movdf_internal): Ditto.
6636         (*movsf_internal): Ditto.
6638 2016-08-09  Bin Cheng  <bin.cheng@arm.com>
6640         PR tree-optimization/72772
6641         * tree-ssa-loop-niter.c (loop_exits_before_overflow): Check equality
6642         for expanded base.
6644 2016-08-09  Bin Cheng  <bin.cheng@arm.com>
6646         PR tree-optimization/72772
6647         * tree-ssa-loop-niter.h (simplify_using_initial_conditions): Delete
6648         parameter STOP.
6649         * tree-ssa-loop-niter.c (tree_simplify_using_condition_1): Delete
6650         parameter STOP and update calls.  Move expand_simple_operations
6651         function call from here...
6652         (simplify_using_initial_conditions): ...to here.  Delete parameter
6653         STOP.
6654         (tree_simplify_using_condition): Delete parameter STOP.
6655         * tree-scalar-evolution.c (simple_iv_with_niters): Update call to
6656         simplify_using_initial_conditions.
6658 2016-08-09  Matthew Fortune  <matthew.fortune@imgtec.com>
6660         PR c/65345
6661         * config/mips/mips.c (mips_atomic_assign_expand_fenv):
6662         Use create_tmp_var_raw instead of create_tmp_var.
6664 2016-08-09  Richard Biener  <rguenther@suse.de>
6666         * tree-ssa-threadbackward.c (profitable_jump_thread_path):
6667         Treat same SSA names related.
6669 2016-08-09  Jakub Jelinek  <jakub@redhat.com>
6671         PR tree-optimization/72824
6672         * tree-loop-distribution.c (const_with_all_bytes_same): Verify
6673         real_zerop is not negative.
6675 2016-08-09  Richard Biener  <rguenther@suse.de>
6677         PR tree-optimization/71802
6678         * tree-cfgcleanup.c (cleanup_tree_cfg_bb): Make sure to catch
6679         all merge opportunities with the predecessor.
6681 2016-08-09  Richard Biener  <rguenther@suse.de>
6683         PR ipa/68273
6684         * ipa-prop.c (ipa_modify_formal_parameters): Build
6685         parameter types with natural alignment also for the
6686         over-aligned case.
6688 2016-08-08  Andi Kleen  <ak@linux.intel.com>
6690         * tree-vrp.c (get_single_symbol): Always initialize inv and neg.
6692 2016-08-08  David Malcolm  <dmalcolm@redhat.com>
6694         PR c/64955
6695         * langhooks-def.h (LANG_HOOKS_RUN_LANG_SELFTESTS): New default
6696         do-nothing langhook.
6697         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_RUN_LANG_SELFTESTS.
6698         * langhooks.h (struct lang_hooks): Add run_lang_selftests.
6699         * selftest-run-tests.c: Include "tree.h" and "langhooks.h".
6700         (selftest::run_tests): Call lang_hooks.run_lang_selftests.
6702 2016-08-08  David Malcolm  <dmalcolm@redhat.com>
6704         PR bootstrap/72844
6705         * input.c: Ensure that HAVE_ICONV is defined.
6707 2016-08-08  Jakub Jelinek  <jakub@redhat.com>
6709         PR middle-end/72781
6710         * omp-low.c (lower_lastprivate_clauses): Set TREE_NO_WARNING on the
6711         private vars for lastprivate and for linear iterator.
6713         PR middle-end/68762
6714         * omp-simd-clone.c: Include varasm.h.
6715         (simd_clone_create): Copy over DECL_COMDAT, DECL_WEAK, DECL_EXTERNAL,
6716         DECL_VISIBILITY, DECL_VISIBILITY_SPECIFIED, DECL_DLLIMPORT_P and for
6717         DECL_ONE_ONLY call make_decl_one_only.  Fix up spelling in comment and
6718         update function name.
6720 2016-07-29  Pitchumani Sivanupandi  <pitchumani.s@atmel.com>
6722         * config/avr/driver-avr.c (specfiles_doc_url): Remove.
6723         (avr_diagnose_devicespecs_error): Remove.
6724         (avr_devicespecs_file): Remove composing absolute path for specfile
6725         and its verbose info. Remove conditions to check specs-file,
6727 2016-08-08  Jakub Jelinek  <jakub@redhat.com>
6729         PR rtl-optimization/72821
6730         * lra-spills.c (regno_in_use_p): Don't use BLOCK_FOR_INSN on barriers,
6731         just return false for them.
6733 2016-08-08  Alan Modra  <amodra@gmail.com>
6735         PR target/72771
6736         * config/rs6000/rs6000.c (toc_relative_expr_p): Allow (lo_sum (high))
6737         toc refs created during reload.  Update function comment.
6739 2016-08-08  Alan Modra  <amodra@gmail.com>
6741         PR target/72802
6742         * config/rs6000/rs6000.md (mov<mode>_hardfloat): Sort
6743         alternatives.  Put loads first, then stores, and reg/reg moves
6744         within same class later.  Delete attr length.
6746 2016-08-08  Alan Modra  <amodra@gmail.com>
6748         PR target/72802
6749         * config/rs6000/rs6000.c (mem_operand_gpr): Remove vsx dform test.
6750         (mem_operand_ds_form): New predicate.
6751         * config/rs6000/rs6000-protos.h (mem_operand_ds_form): Declare.
6752         * config/rs6000/constraints.md (wY): Use mem_operand_df_form.
6753         * config/rs6000/predicates.md (offsettable_mem_14bit_operand): Delete.
6754         * config/rs6000/rs6000.md (f32_lm2, f32_sm2): Use wY for SF.
6755         (extendsfdf2_fpr): Replace o constraint with wY.
6757 2016-08-07  Jan Hubicka  <hubicka@ucw.cz>
6759         * tree-ssa-threadbackward.c: Include tree-inline.h
6760         (profitable_jump_thread_path): Use estimate_num_insns to estimate
6761         size of copied block; for cold paths reduce duplication.
6762         (find_jump_threads_backwards): Remove redundant tests.
6763         (pass_thread_jumps::gate): Enable for -Os.
6765 2016-08-07  Jakub Jelinek  <jakub@redhat.com>
6767         PR c/72816
6768         * stor-layout.c (layout_decl): Fix up formatting.
6769         (relayout_decl): Allow DECL to be FIELD_DECL.
6771 2016-08-07  Alan Modra  <amodra@gmail.com>
6773         * config/rs6000/rs6000.md (fix_trunc<mode>si2): Fix mode of reg.
6775 2016-08-07  Kugan Vivekanandarajah  <kuganv@linaro.org>
6777         * data-streamer-in.c (streamer_read_wide_int): New.
6778         (streamer_read_widest_int): Renamed function.
6779         * data-streamer-out.c (streamer_write_wide_int): New
6780         (streamer_write_widest_int): Renamed function.
6781         * lto-streamer-in.c (streamer_read_wi): Renamed and moved to
6782         data-stream-in.c.
6783         (input_cfg): Call renamed function.
6784         * lto-streamer-out.c (streamer_write_wi): Renamed and moved to
6785         data-stream-out.c.
6786         (output_cfg): Call renamed function.
6787         * data-streamer.h: Add declarations.
6789 2016-08-08  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
6791         * tree-ssa-ccp.c (extend_mask): New param sgn.
6792         Remove ORing with wi::mask.
6793         (get_default_value): Adjust call to extend_mask to pass sign.
6794         (evaluate_stmt): Likewise.
6796 2016-08-06  Jakub Jelinek  <jakub@redhat.com>
6798         * gcov.c (handle_cycle): Use INTTYPE_MAXIMUM (int64_t) instead of
6799         INT64_MAX.
6801 2016-08-06  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
6803         * match.pd ((intptr_t) x eq/ne CST to x eq/ne (typeof x) cst): Disable
6804         transform if operand's type is pointer to function or method.
6806 2016-08-05  Patrick Palka  <ppalka@gcc.gnu.org>
6808         PR tree-optimization/18046
6809         * tree-ssa-threadedge.c: Include cfganal.h.
6810         (simplify_control_statement_condition): If simplifying a
6811         GIMPLE_SWITCH, replace the index operand of the GIMPLE_SWITCH
6812         with the dominating ASSERT_EXPR before handing it off to VRP.
6813         Mention that a CASE_LABEL_EXPR may be returned.
6814         (thread_around_empty_blocks): Adjust to handle
6815         simplify_control_statement_condition() returning a
6816         CASE_LABEL_EXPR.
6817         (thread_through_normal_block): Likewise.
6818         * tree-vrp.c (simplify_stmt_for_jump_threading): Simplify
6819         a switch statement by trying to determine which case label
6820         will be taken.
6822 2016-08-05  Vladimir Makarov  <vmakarov@redhat.com>
6824         PR rtl-optimization/69847
6825         * lra-constraints.c (process_invariant_for_inheritance): Save
6826         pattern instead of src.
6827         (remove_inheritance_pseudos): Use the pattern.  Add assert.
6829 2016-08-05  David Malcolm  <dmalcolm@redhat.com>
6831         * input.c (string_concat::string_concat): New constructor.
6832         (string_concat_db::string_concat_db): New constructor.
6833         (string_concat_db::record_string_concatenation): New method.
6834         (string_concat_db::get_string_concatenation): New method.
6835         (string_concat_db::get_key_loc): New method.
6836         (class auto_cpp_string_vec): New class.
6837         (get_substring_ranges_for_loc): New function.
6838         (get_source_range_for_substring): New function.
6839         (get_num_source_ranges_for_substring): New function.
6840         (class selftest::lexer_test_options): New class.
6841         (struct selftest::lexer_test): New struct.
6842         (class selftest::ebcdic_execution_charset): New class.
6843         (selftest::ebcdic_execution_charset::s_singleton): New variable.
6844         (selftest::lexer_test::lexer_test): New constructor.
6845         (selftest::lexer_test::~lexer_test): New destructor.
6846         (selftest::lexer_test::get_token): New method.
6847         (selftest::assert_char_at_range): New function.
6848         (ASSERT_CHAR_AT_RANGE): New macro.
6849         (selftest::assert_num_substring_ranges): New function.
6850         (ASSERT_NUM_SUBSTRING_RANGES): New macro.
6851         (selftest::assert_has_no_substring_ranges): New function.
6852         (ASSERT_HAS_NO_SUBSTRING_RANGES): New macro.
6853         (selftest::test_lexer_string_locations_simple): New function.
6854         (selftest::test_lexer_string_locations_ebcdic): New function.
6855         (selftest::test_lexer_string_locations_hex): New function.
6856         (selftest::test_lexer_string_locations_oct): New function.
6857         (selftest::test_lexer_string_locations_letter_escape_1): New function.
6858         (selftest::test_lexer_string_locations_letter_escape_2): New function.
6859         (selftest::test_lexer_string_locations_ucn4): New function.
6860         (selftest::test_lexer_string_locations_ucn8): New function.
6861         (selftest::uint32_from_big_endian): New function.
6862         (selftest::test_lexer_string_locations_wide_string): New function.
6863         (selftest::uint16_from_big_endian): New function.
6864         (selftest::test_lexer_string_locations_string16): New function.
6865         (selftest::test_lexer_string_locations_string32): New function.
6866         (selftest::test_lexer_string_locations_u8): New function.
6867         (selftest::test_lexer_string_locations_utf8_source): New function.
6868         (selftest::test_lexer_string_locations_concatenation_1): New
6869         function.
6870         (selftest::test_lexer_string_locations_concatenation_2): New
6871         function.
6872         (selftest::test_lexer_string_locations_concatenation_3): New
6873         function.
6874         (selftest::test_lexer_string_locations_macro): New function.
6875         (selftest::test_lexer_string_locations_stringified_macro_argument):
6876         New function.
6877         (selftest::test_lexer_string_locations_non_string): New function.
6878         (selftest::test_lexer_string_locations_long_line): New function.
6879         (selftest::test_lexer_char_constants): New function.
6880         (selftest::input_c_tests): Call the new test functions once per
6881         case within the line_table test matrix.
6882         * input.h (struct string_concat): New struct.
6883         (struct location_hash): New struct.
6884         (class string_concat_db): New class.
6885         * substring-locations.h: New header.
6887 2016-08-05  Patrick Palka  <ppalka@gcc.gnu.org>
6889         PR tree-optimization/72810
6890         * tree-vrp.c (simplify_switch_using_ranges): Avoid changing
6891         the type of the case labels when truncating.
6893 2016-08-05  James Greenhalgh  <james.greenhalgh@arm.com>
6895         PR Target/72819
6896         * config/aarch64/aarch64.h (aarch64_fp16_type_node): Declare.
6897         (aarch64_fp16_ptr_type_node): Likewise.
6898         * config/aarch64/aarch64-simd-builtins.c
6899         (aarch64_fp16_ptr_type_node): Define.
6900         (aarch64_init_fp16_types): New, refactored out of...
6901         (aarch64_init_builtins): ...here, update to call
6902         aarch64_init_fp16_types.
6903         * config/aarch64/aarch64.c (aarch64_gimplify_va_arg_expr): Handle
6904         HFmode.
6905         (aapcs_vfp_sub_candidate): Likewise.
6907 2016-08-05  Martin Liska  <mliska@suse.cz>
6908             Joshua Cranmer  <Pidgeot18@gmail.com>
6910         * gcov.c (line_t::has_block): New function.
6911         (enum loop_type): New enum.
6912         (handle_cycle): New function.
6913         (unblock): Likewise.
6914         (circuit): Likewise.
6915         (get_cycles_count): Likewise.
6916         (accumulate_line_counts): Use new loop detection algorithm.
6918 2016-08-05  Martin Liska  <mliska@suse.cz>
6920         * gcov.c (output_intermediate_file): Rename
6921         function_info::line_next to next_file_fn.
6922         (process_file): Likewise.
6923         (read_graph_file): Likewise.
6924         (accumulate_line_counts): Likewise.
6925         (output_lines): Likewise.
6927 2016-08-05  Richard Biener  <rguenther@suse.de>
6929         * tree-ssa-threadupdate.c (thread_block_1): Remove unnecessary
6930         restriction on threading to a loop header.
6932 2016-08-05  Richard Biener  <rguenther@suse.de>
6934         * tree-cfgcleanup.c (tree_forwarder_block_p): Use bb_loop_header_p.
6935         * cfghooks.c (force_nonfallthru): If we ended up splitting a latch
6936         adjust loop info accordingly.
6938 2016-08-05  Kugan Vivekanandarajah  <kuganv@linaro.org>
6940         * tree-vrp.c (extract_range_basic): Check cfun->after_inlining
6941         before folding call to __builtin_constant_p with parameters to false.
6943 2016-08-05  Alan Modra  <amodra@gmail.com>
6945         * config/rs6000/rs6000.c (rs6000_preferred_reload_class): Delete
6946         code accidentally committed 2016-05-02 providing class when given
6947         NO_REGS.
6949 2016-08-04  Patrick Palka  <ppalka@gcc.gnu.org>
6951         * tree-vrp.c (simplify_switch_using_ranges): Try to truncate
6952         the case label ranges that partially overlap with OP's value
6953         range.
6955 2016-08-04  Uros Bizjak  <ubizjak@gmail.com>
6957         PR target/72805
6958         * config/i386/avx512fintrin.h (_mm512_cmp_epi32_mask) [!__OPTIMIZE__]:
6959         Cast builtin function result to __mmask16 instead of __mmask8.
6960         (_mm512_cmp_epu32_mask) [!__OPTIMIZE__]: Ditto.
6961         (_mm512_mask_cmp_epi32_mask) [!__OPTIMIZE__]: Ditto.
6962         (_mm512_mask_cmp_epu32_mask) [!__OPTIMIZE__]: Ditto.
6964 2016-08-04  David Malcolm  <dmalcolm@redhat.com>
6966         * selftest.h (ASSERT_TRUE): Reimplement in terms of...
6967         (ASSERT_TRUE_AT): New macro.
6968         (ASSERT_FALSE): Reimplement in terms of...
6969         (ASSERT_FALSE_AT): New macro.
6970         (ASSERT_STREQ_AT): Fix typo in comment.
6972 2016-08-04  Patrick Palka  <ppalka@gcc.gnu.org>
6974         * gimple.c (preprocess_case_label_vec_for_gimple): When the case
6975         labels are exhaustive, designate the label with the widest
6976         range to be the default label.
6978 2016-08-04  Andrew Pinski  <apinski@cavium.com>
6980         * config/aarch64/aarch64.c (thunderx_vector_cost): New variable.
6981         (thunderx_tunings): Use thunderx_vector_cost instead of
6982         generic_vector_cost.
6984 2016-08-04  Martin Liska  <mliska@suse.cz>
6986         * gcov.c (main): Fix GNU coding style.
6987         (output_intermediate_file): Likewise.
6988         (process_file): Likewise.
6989         (generate_results): Likewise.
6990         (release_structures): Likewise.
6991         (create_file_names): Likewise.
6992         (find_source): Likewise.
6993         (read_graph_file): Likewise.
6994         (find_exception_blocks): Likewise.
6995         (canonicalize_name): Likewise.
6996         (make_gcov_file_name): Likewise.
6997         (mangle_name): Likewise.
6998         (accumulate_line_counts): Likewise.
6999         (output_branch_count): Likewise.
7000         (read_line): Likewise.
7002 2016-08-04  Bernd Edlinger  <bernd.edlinger@hotmail.de>
7004         PR rtl-optimization/71779
7005         * emit-rtl.c (set_reg_attrs_from_value): Only propagate REG_POINTER,
7006         if the value was sign-extended according to POINTERS_EXTEND_UNSIGNED
7007         or if it was truncated.
7009         PR rtl-optimization/70903
7010         * cse.c (cse_insn): If DEST is a paradoxical SUBREG, don't record DEST.
7012 2016-08-04  Kugan Vivekanandarajah  <kuganv@linaro.org>
7014         * tree-inline.c (remap_ssa_name): Check for POINTER_TYPE_P before
7015         accessing SSA_NAME_PTR_INFO.
7017 2016-08-04  Georg-Johann Lay  <avr@gjlay.de>
7019         PR 70677
7020         * common/config/avr/avr-common.c (avr_option_optimization_table)
7021         [OPT_LEVELS_ALL]: Turn off -fcaller-saves.
7023 2016-08-04  Georg-Johann Lay  <avr@gjlay.de>
7025         PR 55181
7026         * config/avr/avr.md: New pattern to work around do_store_flag
7027         generating shift instructions for bit extractions.
7029 2016-08-04  Kugan Vivekanandarajah  <kuganv@linaro.org>
7031         * tree-vrp.c (set_value_range): Use vrp_equiv_obstack with
7032         BITMAP_ALLOC.
7033         (add_equivalence): Likewise.
7034         (get_value_range): Allocate value range with vrp_value_range_pool.
7035         (vrp_initialize): Initialize vrp_equiv_obstack for equiv allocation.
7036         (vrp_finalize): Relase vrp_equiv_obstack and vrp_value_range_pool.
7038 2016-08-03  Peter Bergner  <bergner@vnet.ibm.com>
7040         * config/rs6000/rs6000.c (rs6000_option_override_internal): Make LRA
7041         the default for the rs6000 port.
7043 2016-08-03  Bernd Edlinger  <bernd.edlinger@hotmail.de>
7045         PR middle-end/71876
7046         * calls.c (special_function_p): Remove special handling of
7047         "setjmp_syscall", "qsetjmp", "longjmp", "siglongjmp" and the
7048         prefix "__x".  Recognize "savectx", "vfork" and "getcontext" only
7049         without prefix.  Remove potentially unsafe ECF_LEAF and ECF_NORETURN.
7051 2016-08-03  Vladimir Makarov  <vmakarov@redhat.com>
7053         PR middle-end/72778
7054         * lra-spills.c (regno_in_use_p): Check bb and regno modification.
7055         Don't stop on regular insns.
7057 2016-08-03  Nathan Sidwell  <nathan@codesourcery.com>
7059         * config/nvptx/nvptx.c (nvptx_declare_function_name): Round frame
7060         size to DImode boundary.
7061         (nvptx_propagate): Likewise.
7063 2016-08-03  Alan Modra  <amodra@gmail.com>
7065         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Make scalar
7066         float access depend on TARGET_EFFICIENT_UNALIGNED_VSX.
7067         * config/rs6000/rs6000.opt (-mefficient-unaligned-vsx): Renamed
7068         from -mefficient-unaligned-vector.  Note that this affects fp too.
7070 2016-08-03  Alan Modra  <amodra@gmail.com>
7072         * config/rs6000/rs6000.c (rs6000_rtx_costs): Make unaligned mem
7073         cost more.
7075 2016-08-03  Alan Modra  <amodra@gmail.com>
7077         * config/rs6000/rs6000.md (fix_trunc<mode>si2): Force source operand
7078         to a reg.  Localize vars.
7080 2016-08-03  Alan Modra  <amodra@gmail.com>
7082         * config/rs6000/rs6000.opt: Remove negatives from help strings
7083         and comments.
7085 2016-08-03  Alan Modra  <amodra@gmail.com>
7087         * config/rs6000/rs6000.c (rs6000_secondary_reload_direct_move):
7088         Delete duplicated code.
7090 2016-08-02  Vladimir Makarov  <vmakarov@redhat.com>
7092         PR middle-end/72778
7093         * lra-spills.c (regno_in_use_p): New.
7094         (lra_final_code_change): Use it.
7096 2016-08-02  Vladimir Makarov  <vmakarov@redhat.com>
7098         PR rtl-optimization/69847
7099         * lra-int.h (struct lra-reg): Use restore_rtx instead of
7100         restore_regno.
7101         (lra_rtx_hash): New.
7102         * lra.c (initialize_lra_reg_info_element): Use restore_rtx instead
7103         of restore_regno.
7104         (lra_rtx_hash): Rename and move lra-remat.c::rtx_hash.
7105         * lra-remat.c (rtx_hash): Rename and Move to lra.c.
7106         * lra-spills.c (lra_final_code_change): Don't delete insn when the
7107         next insn is USE with the same reg as the current insn source.
7108         * lra-constraints.c (curr_insn_transform): Use restore_rtx instead
7109         of restore_regno.
7110         (lra_constraints_init): Call initiate_invariants.
7111         (lra_constraints_finish): Call finish_invariants.
7112         (struct invariant, invariant_t, invariant_ptr_t): New.
7113         (const_invariant_ptr_t, invariants, invariants_pool): New.
7114         (invariant_table, invariant_hash, invariant_eq_p): New.
7115         (insert_invariant, initiate_invariants, finish_invariants): New.
7116         (clear_invariants, invalid_invariant_regs): New.
7117         (inherit_reload_reg, split_reg, fix_bb_live_info): Use restore_rtx
7118         instead of restore_regno.
7119         (invariant_p, process_invariant_for_inheritance): New.
7120         (inherit_in_ebb): Implement invariant inheritance.
7121         (lra_inheritance): Initialize and finalize invalid_invariant_regs.
7122         (remove_inheritance_pseudos): Implement undoing invariant
7123         inheritance.
7124         (undo_optional_reloads, lra_undo_inheritance): Use restore_rtx
7125         instead of restore_regno.
7126         * lra-assigns.c (regno_live_length): New.
7127         (reload_pseudo_compare_func): Use regno_live_length.
7128         (assign_by_spills): Use restore_rtx instead of restore_regno.
7129         (lra_assign): Ditto.  Initiate regno_live_length.
7131 2016-02-08  James Greenhalgh  <james.greenhalgh@arm.com>
7133         * config/aarch64/arm_neon.h (vminnm_f64): Add back missing 'f' from
7134         __builtin_aarch64_fmindf.
7136 2016-08-02  Bin Cheng  <bin.cheng@arm.com>
7138         PR tree-optimization/34114
7139         * tree-ssa-loop-niter.c (number_of_iterations_ne): Prove no-overflow
7140         information for more control IVs.
7142 2016-08-02  Bin Cheng  <bin.cheng@arm.com>
7144         PR tree-optimization/34114
7145         * fold-const.c (multiple_of_p): Improve MULT_EXPR, PLUS_EXPR,
7146         PLUS_EXPR case.  Handle SSA_NAME case.
7148 2016-08-02  Tamar Christina  <tamar.christina@arm.com>
7150         * config/aarch64/aarch64-simd-builtins.def
7151         (__builtin_aarch64_fmindf): Change BUILTIN_VDQF to BUILTIN_VDQF_DF.
7152         (__builtin_aarch64_fmaxdf): Likewise.
7153         (__builtin_aarch64_smin_nandf): Likewise.
7154         (__builtin_aarch64_smax_nandf): Likewise.
7155         * config/aarch64/aarch64-simd.md (<fmaxmin><mode>3): Remove.
7156         * config/aarch64/aarch64.md (<fmaxmin><mode>3): Rename to...
7157         (<fmaxmin><mode>3): ...this.
7158         * config/aarch64/arm_neon.h (vmaxnm_f64): New.
7159         (vminnm_f64): Likewise.
7160         (vmin_f64): Likewise.
7161         (vmax_f64): Likewise.
7162         * config/aarch64/iterators.md (FMAXMIN): Merge with...
7163         (FMAXMIN_UNS): ...this.
7164         (fmaxmin): Merged with
7165         (fmaxmin_op): ...this...
7166         (maxmin_uns_op): ...in to this.
7168 2016-08-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
7170         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
7171         Add support for vec_extract on vector float, vector int, vector
7172         short, and vector char vector types.
7173         * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
7174         vector float, vector int, vector short, and vector char
7175         optimizations on 64-bit ISA 2.07 systems for both constant and
7176         variable element numbers.
7177         (rs6000_split_vec_extract_var): Likewise.
7178         * config/rs6000/vsx.md (vsx_xscvspdp_scalar2): Allow SFmode to be
7179         Altivec registers on ISA 2.07 and above.
7180         (vsx_extract_v4sf): Delete alternative that hard coded element 0,
7181         which never was matched due to the split occuring before register
7182         allocation (and the code would not have worked on little endian
7183         systems if it did match).  Allow extracts to go to the Altivec
7184         registers if ISA 2.07 (power8).  Change from using "" around the
7185         C++ code to using {}'s.
7186         (vsx_extract_v4sf_<mode>_load): New insn to optimize vector float
7187         vec_extracts when the vector is in memory.
7188         (vsx_extract_v4sf_var): New insn to optimize vector float
7189         vec_extracts when the element number is variable on 64-bit ISA
7190         2.07 systems.
7191         (vsx_extract_<mode>, VSX_EXTRACT_I iterator): Add optimizations
7192         for 64-bit ISA 2.07 as well as ISA 3.0.
7193         (vsx_extract_<mode>_p9, VSX_EXTRACT_I iterator): Likewise.
7194         (vsx_extract_<mode>_p8, VSX_EXTRACT_I iterator): Likewise.
7195         (vsx_extract_<mode>_load, VSX_EXTRACT_I iterator): New insn to
7196         optimize vector int, vector short, and vector char vec_extracts
7197         when the vector is in memory.
7198         (vsx_extract_<mode>_var, VSX_EXTRACT_I iterator): New insn to
7199         optimize vector int, vector short, and vector char vec_extracts
7200         when the element number is variable.
7202 2016-08-01  Georg-Johann Lay  <avr@gjlay.de>
7204         PR target/71948
7205         * config/avr/avr.c (AVR_SYMBOL_FLAG_TINY_PM): Use a value that
7206         does not overlap with other symbol flags.
7208 2016-08-01  Wilco Dijkstra  <wdijkstr@arm.com>
7210         * config/aarch64/aarch64.h (aarch64_frame):
7211         Remove padding0 and hardfp_offset.  Add locals_offset,
7212         initial_adjust, callee_adjust, callee_offset and final_adjust.
7213         * config/aarch64/aarch64.c (aarch64_layout_frame):
7214         Remove unused padding0 and hardfp_offset initializations.
7215         Choose frame layout and set frame variables accordingly.
7216         Use INVALID_REGNUM instead of FIRST_PSEUDO_REGISTER.
7217         (aarch64_push_regs): Use INVALID_REGNUM, not FIRST_PSEUDO_REGISTER.
7218         (aarch64_pop_regs): Likewise.
7219         (aarch64_expand_prologue): Remove all decision code, just emit
7220         prolog according to frame variables.
7221         (aarch64_expand_epilogue): Remove all decision code, just emit
7222         epilog according to frame variables.
7223         (aarch64_initial_elimination_offset): Use offset to local/arg area.
7225 2015-08-01  H.J. Lu  <hongjiu.lu@intel.com>
7227         PR target/72748
7228         * config/i386/i386.c (timode_scalar_chain::convert_insn): Call
7229         fix_debug_reg_uses after changing source register mode to
7230         V1TImode if source register is undefined.
7232 2015-08-01  Alan Hayward  <alan.hayward@arm.com>
7234         PR tree-optimization/71818
7235         * tree-vect-loop-manip.c (vect_can_advance_ivs_p): Don't advance IVs
7236         with non invariant evolutions
7238 2016-08-01  Georg-Johann Lay  <avr@gjlay.de>
7240         PR target/72767
7241         * config/avr/avr.md (length) [branch]: Correct insn length
7242         attribute for forward branches.
7244 2016-08-01  Georg-Johann Lay  <avr@gjlay.de>
7246         * doc/extend.texi (AVR Built-in Functions): Document
7247         __builtin_avr_nops.
7248         * config/avr/builtins.def (NOPS): New.
7249         * config/avr/avr.c (avr_expand_nops): New static function.
7250         (avr_expand_builtin): Use it to handle AVR_BUILTIN_NOPS.
7252 2016-08-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7254         * config/aarch64/aarch64.c (aarch64_classify_address): Use DImode when
7255         performing aarch64_offset_7bit_signed_scaled_p check for TImode LDP/STP
7256         addresses.
7258 2016-08-01  Virendra Pathak  <virendra.pathak@broadcom.com>
7260         * config/aarch64/aarch64.c (vulcan_tunings): Update
7261         vulcan L1 cache_line_size.
7263 2016-07-30  Michael Meissner  <meissner@linux.vnet.ibm.com>
7265         * config/rs6000/rs6000-protos.h (rs6000_adjust_vec_address): New
7266         function that takes a vector memory address, a hard register, an
7267         element number and a temporary base register, and recreates an
7268         address that points to the appropriate element within the vector.
7269         * config/rs6000/rs6000.c (rs6000_adjust_vec_address): Likewise.
7270         (rs6000_split_vec_extract_var): Add support for the target of a
7271         vec_extract with variable element number being a scalar memory
7272         location.
7273         (rtx_is_swappable_p): VLSO insns (UNSPEC_VSX_VSLOW) are not
7274         swappable.
7275         * config/rs6000/vsx.md (vsx_extract_<mode>_load): Replace
7276         vsx_extract_<mode>_load insn with a new insn that optimizes
7277         storing either element to a memory location, using scratch
7278         registers to pick apart the vector and reconstruct the address.
7279         (vsx_extract_<P:mode>_<VSX_D:mode>_load): Likewise.
7280         (vsx_extract_<mode>_store): Rework alternatives to more correctly
7281         support Altivec registers.  Add support for ISA 3.0 Altivec d-form
7282         store instruction.
7283         (vsx_extract_<mode>_var): Add support for extracting a variable
7284         element number from memory.
7286 2016-07-29  Georg-Johann Lay  <avr@gjlay.de>
7288         * config/avr/avr.c (avr_out_compare): Use const0_rtx instead of 0
7289         when testing for compares against constants of the form 0xabab.
7291 2016-07-29  Bin Cheng  <bin.cheng@arm.com>
7293         PR tree-optimization/57558
7294         * tree-vect-loop-manip.c (vect_create_cond_for_niters_checks): New
7295         function.
7296         (vect_loop_versioning): Support versioning with niter assumptions.
7297         * tree-vect-loop.c (tree-ssa-loop.h): Include header file.
7298         (vect_get_loop_niters): New parameter.  Reimplement to support
7299         assumptions in loop niter info.
7300         (vect_analyze_loop_form_1, vect_analyze_loop_form): Ditto.
7301         (new_loop_vec_info): Init LOOP_VINFO_NITERS_ASSUMPTIONS.
7302         (vect_estimate_min_profitable_iters): Use LOOP_REQUIRES_VERSIONING.
7303         Support loop versioning for niters.
7304         * tree-vectorizer.c (tree-ssa-loop-niter.h): Include header file.
7305         (vect_free_loop_info_assumptions): New function.
7306         (vectorize_loops): Free loop niter info for loops with flag
7307         LOOP_F_ASSUMPTIONS set if vectorization failed.
7308         * tree-vectorizer.h (struct _loop_vec_info): New field
7309         num_iters_assumptions.
7310         (LOOP_VINFO_NITERS_ASSUMPTIONS): New macro.
7311         (LOOP_REQUIRES_VERSIONING_FOR_NITERS): New macro.
7312         (LOOP_REQUIRES_VERSIONING): New macro.
7313         (vect_free_loop_info_assumptions): New decl.
7315 2016-07-29  Bin Cheng  <bin.cheng@arm.com>
7317         * cfgloop.h (struct loop): New field constraints.
7318         (LOOP_C_INFINITE, LOOP_C_FINITE): New macros.
7319         (loop_constraint_set, loop_constraint_clr, loop_constraint_set_p): New
7320         functions.
7321         * cfgloop.c (alloc_loop): Initialize new field.
7322         * cfgloopmanip.c (copy_loop_info): Copy constraints.
7323         * tree-ssa-loop-niter.c (number_of_iterations_exit_assumptions):
7324         Adjust niter analysis wrto loop constraints.
7325         * doc/loop.texi (@node Number of iterations): Add description for loop
7326         constraints.
7328 2016-07-29  Marek Polacek  <polacek@redhat.com>
7330         PR c/7652
7331         * config/i386/i386.c (ix86_expand_args_builtin): Add break.
7332         (ix86_expand_round_builtin): Likewise.
7334 2016-07-29  Segher Boessenkool  <segher@kernel.crashing.org>
7335             Georg-Johann Lay  <avr@gjlay.de>
7337         PR rtl-optimization/71976
7338         * combine.c (get_last_value): Return 0 if the argument for which
7339         the function is called has a wider mode than the recorded value.
7341 2016-07-29  Marek Polacek  <polacek@redhat.com>
7343         PR c/7652
7344         * config/rs6000/rs6000.c (altivec_expand_ld_builtin): Add break.
7345         (altivec_expand_st_builtin): Likewise.
7347 2016-07-29  Georg-Johann Lay  <avr@gjlay.de>
7349         * config/avr/avr.md (addqi3) [cc]: Revert glitch in insn attribute
7350         introduced in r238381.
7352 2016-07-29  Kugan Vivekanandarajah  <kuganv@linaro.org>
7354         PR middle-end/68217
7355         * tree-vrp.c (extract_range_from_binary_expr_1): In case of signed
7356         & sign-bit-CST, generate [-INF, 0] instead of [-INF, INF].
7358 2016-07-28  Michael Meissner  <meissner@linux.vnet.ibm.com>
7360         * config/rs6000/rs6000-protos.h (rs6000_split_vec_extract_var):
7361         New declaration.
7362         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
7363         Add support for vec_extract of vector double or vector long having
7364         a variable element number on 64-bit ISA 2.07 systems or newer.
7365         * config/rs6000/rs6000.c (rs6000_expand_vector_extract):
7366         Likewise.
7367         (rs6000_split_vec_extract_var): New function to split a
7368         vec_extract built-in function with variable element number.
7369         (rtx_is_swappable_p): Variable vec_extracts and shifts are not
7370         swappable.
7371         * config/rs6000/vsx.md (UNSPEC_VSX_VSLO): New unspec.
7372         (UNSPEC_VSX_EXTRACT): Likewise.
7373         (vsx_extract_<mode>, VSX_D iterator): Fix constraints to allow
7374         direct move instructions to be generated on 64-bit ISA 2.07
7375         systems and newer, and to take advantage of the ISA 3.0 MFVSRLD
7376         instruction.
7377         (vsx_vslo_<mode>): New insn to do VSLO on V2DFmode and V2DImode
7378         arguments for vec_extract variable element.
7379         (vsx_extract_<mode>_var, VSX_D iterator): New insn to support
7380         vec_extract with variable element on V2DFmode and V2DImode
7381         vectors.
7382         * config/rs6000/rs6000.h (TARGET_VEXTRACTUB): Remove
7383         -mupper-regs-df requirement, since it isn't needed.
7384         (TARGET_DIRECT_MOVE_64BIT): New macro to say whether we can
7385         do direct moves on 64-bit systems, which allows optimization of
7386         vec_extract on 64-bit ISA 2.07 systems and newer.
7388 2016-07-28  Kristina Martsenko  <kristina.martsenko@arm.com>
7389 2016-07-28  Wilco Dijkstra  <wdijkstr@arm.com>
7391          * config/aarch64/aarch64.md
7392         (zero_extend<SHORT:mode><GPI:mode>2_aarch64): Change output
7393         statement and type.
7394         (<optab>qihi2_aarch64): Likewise, and split into two.
7395         (extendqihi2_aarch64): New.
7396         (zero_extendqihi2_aarch64): New.
7397         * config/aarch64/iterators.md (ldrxt): Remove.
7398         * config/aarch64/aarch64.c (aarch64_rtx_costs): Change cost of
7399         uxtb/uxth.
7401 2016-07-28  Kristina Martsenko  <kristina.martsenko@arm.com>
7403         * config/aarch64/aarch64.c (aarch64_rtx_costs): Fix cost of zero extend.
7405 2016-07-28  Wilco Dijkstra  <wdijkstr@arm.com>
7407         * config/aarch64/aarch64.c (aarch64_pushwb_pair_reg): Rename.
7408         (aarch64_push_reg): New function to push 1 or 2 registers.
7409         (aarch64_pop_reg): New function to pop 1 or 2 registers.
7410         (aarch64_expand_prologue): Use aarch64_push_regs.
7411         (aarch64_expand_epilogue): Use aarch64_pop_regs.
7413 2016-07-28  Yuri Rumyantsev  <ysrumyan@gmail.com>
7415         PR tree-optimization/71734
7416         * tree-ssa-loop-im.c (ref_indep_loop_p_1): Pass value of safelen
7417         attribute instead of REF_LOOP and use it.
7418         (ref_indep_loop_p_2): Use SAFELEN argument instead of REF_LOOP and
7419         set it for Loops having non-zero safelen attribute.
7420         (ref_indep_loop_p): Pass zero as initial value for safelen.
7422 2016-07-28  Ilya Enkovich  <ilya.enkovich@intel.com>
7424         PR middle-end/72657
7425         PR target/72683
7426         * tree-chkp.c (chkp_retbnd_call_by_val): Check for instrumentation
7427         call using chkp_gimple_call_builtin_p.
7428         (chkp_copy_bounds_for_assign): Likewise.
7430 2016-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
7432         * config/alpha/alpha.c (alpha_adjust_cost): Adjust.
7433         * config/arm/arm-protos.h (struct tune_params): Likewise.
7434         * config/arm/arm.c (xscale_sched_adjust_cost): Likewise.
7435         (cortex_a9_sched_adjust_cost): Likewise.
7436         (fa726te_sched_adjust_cost): Likewise.
7437         (arm_adjust_cost): Likewise.
7438         * config/bfin/bfin.c (bfin_adjust_cost): Likewise.
7439         * config/c6x/c6x.c (c6x_adjust_cost): Likewise.
7440         * config/epiphany/epiphany.c (epiphany_adjust_cost): Likewise.
7441         * config/i386/i386.c (ix86_adjust_cost): Likewise.
7442         * config/ia64/ia64.c: Likewise.
7443         * config/m68k/m68k.c: Likewise.
7444         * config/mep/mep.c (mep_adjust_cost): Likewise.
7445         * config/microblaze/microblaze.c (microblaze_adjust_cost):
7446         * Likewise.
7447         * config/mips/mips.c (mips_adjust_cost): Likewise.
7448         * config/mn10300/mn10300.c (mn10300_adjust_sched_cost):
7449         * Likewise.
7450         * config/pa/pa.c (pa_adjust_cost): Likewise.
7451         * config/rs6000/rs6000.c (rs6000_adjust_cost): Likewise.
7452         (rs6000_debug_adjust_cost): Likewise.
7453         * config/sh/sh.c (sh_adjust_cost): Likewise.
7454         * config/sparc/sparc.c (supersparc_adjust_cost): Likewise.
7455         (hypersparc_adjust_cost): Likewise.
7456         (sparc_adjust_cost): Likewise.
7457         * config/spu/spu.c (spu_sched_adjust_cost): Likewise.
7458         * config/tilegx/tilegx.c (tilegx_sched_adjust_cost): Likewise.
7459         * config/tilepro/tilepro.c (tilepro_sched_adjust_cost):
7460         * Likewise.
7461         * config/visium/visium.c (visium_adjust_cost): Likewise.
7462         * doc/tm.texi: Regenerate.
7463         * haifa-sched.c (dep_cost_1): Adjust.
7464         * target.def: Merge adjust_cost and adjust_cost_2.
7466 2016-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
7468         * haifa-sched.c (add_to_speculative_block): Make twins a vector.
7470 2016-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
7472         * store-motion.c (struct st_expr): Make pattern_regs a vector.
7473         (extract_mentioned_regs): Append to a vector instead of
7474         returning a rtx_expr_list.
7475         (st_expr_entry): Adjust.
7476         (free_st_expr_entry): Likewise.
7477         (store_ops_ok): Likewise.
7478         (store_killed_in_insn): Likewise.
7479         (find_moveable_store): Likewise.
7481 2016-07-28  Martin Liska  <mliska@suse.cz>
7483         PR gcov-profile/68025
7484         * tree-profile.c (tree_profiling): Respect
7485         no_profile_instrument_function attribute.
7486         * doc/extend.texi: Document no_profile_instrument_function
7487         attribute.
7489 2016-07-28  Martin Liska  <mliska@suse.cz>
7491         PR rtl-optimization/70944
7492         * combine.c (make_compound_operation):
7493         Do not allow make_compound_operation for vector mode
7495 2016-07-28  Kugan Vivekanandarajah  <kuganv@linaro.org>
7497         PR middle-end/71994
7498         * tree-ssa-reassoc.c (maybe_optimize_range_tests): Check tcc_comparison
7499          before calling get_ops.
7501 2016-07-27  Bernd Edlinger  <bernd.edlinger@hotmail.de>
7503         * defaults.h (LOG2_BITS_PER_UNIT): Move from here...
7504         * tree.h (LOG2_BITS_PER_UNIT): ...to here.
7505         (BITS_PER_UNIT_LOG): Remove.
7506         (int_bit_position): Use LOG2_BITS_PER_UNIT instead of BITS_PER_UNIT_LOG.
7507         * expr.c (expand_assignment): Likewise.
7508         * stor-layout.c (initialize_sizetypes): Likewise.
7510 2016-07-27  Michael Meissner  <meissner@linux.vnet.ibm.com>
7512         * config/rs6000/vector.md (vec_extract<mode>): Change the calling
7513         signature of rs6000_expand_vector_extract so that the element
7514         number is a RTX instead of a constant integer.
7515         * config/rs6000/rs6000-protos.h (rs6000_expand_vector_extract):
7516         Likewise.
7517         * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Likewise.
7518         (altivec_expand_vec_ext_builtin): Likewise.
7519         * config/rs6000/altivec.md (reduc_plus_scal_<mode>): Likewise.
7520         * config/rs6000/vsx.md (vsx_extract_<mode>): Fix spelling of the
7521         MFVSRLD instruction.
7523 2016-07-27  David Malcolm  <dmalcolm@redhat.com>
7525         * input.c (get_pure_location): Move here from tree.c.
7526         (make_location): Likewise.  Add header comment.
7527         (selftest::test_accessing_ordinary_linemaps): Verify
7528         pure_location_p, make_location, get_location_from_adhoc_loc and
7529         get_range_from_loc.
7530         * input.h (get_pure_location): Move declaration here from tree.h.
7531         (get_finish): Likewise for inline function.
7532         (make_location): Likewise for declaration.
7533         * tree.c (get_pure_location): Move to input.c.
7534         (make_location): Likewise.
7535         * tree.h (get_pure_location): Move declaration to tree.h.
7536         (get_finish): Likewise for inline function.
7537         (make_location): Likewise for declaration.
7539 2016-07-27  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
7541         PR middle-end/71078
7542         * match.pd (x / abs(x) -> copysign(1.0, x)): New pattern.
7544 2016-07-27  David Malcolm  <dmalcolm@redhat.com>
7546         * system.h (STATIC_ASSERT): Use static_assert if building
7547         with C++11 onwards.
7549 2016-07-27  Richard Biener  <rguenther@suse.de>
7551         PR tree-optimization/72517
7552         * tree-vect-data-refs.c (vect_analyze_data_ref_dependences):
7553         Revert change to not compute read-read dependences.
7555 2016-07-27  Richard Biener  <rguenther@suse.de>
7557         * predict.c (set_even_probabilities): Make nedges unsigned.
7559 2016-07-27  Martin Liska  <mliska@suse.cz>
7561         * predict.c (set_even_probabilities): Handle unlikely edges.
7562         (combine_predictions_for_bb): Likewise.
7564 2016-07-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
7566         PR target/71869
7567         * config/rs6000/rs6000.c (rs6000_generate_compare): Rework
7568         __float128 support when we don't have hardware support, so that
7569         the IEEE built-in functions like isgreater, first call __unordkf3
7570         to make sure neither operand is a NaN, and if both operands are
7571         ordered, do the normal comparison.
7573 2016-07-26  Patrick Palka  <ppalka@gcc.gnu.org>
7575         * tree-vrp.c (dump_asserts_for): Print loc->expr instead of
7576         name.
7577         (extract_code_and_val_from_cond_with_ops): Verify that name is
7578         either cond_op0 or cond_op1.
7580 2016-07-26  Patrick Palka  <ppalka@gcc.gnu.org>
7582         PR tree-optimization/18046
7583         * genmodes.c (emit_mode_size_inline): Emit an assert that
7584         verifies that mode is a valid array index.
7585         (emit_mode_nuinits_inline): Likewise.
7586         (emit_mode_inner_inline): Likewise.
7587         (emit_mode_unit_size_inline): Likewise.
7588         (emit_mode_unit_precision_inline): Likewise.
7589         * tree-vrp.c: Include params.h.
7590         (find_switch_asserts): Register edge assertions for the default
7591         label which correspond to the anti-ranges of each case label.
7592         * params.def (PARAM_MAX_VRP_SWITCH_ASSERTIONS): New.
7593         * doc/invoke.texi: Document it.
7595 2016-07-26  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
7597         * gimple-ssa-strength-reduction.c (slsr_process_phi): Remove dead
7598         and unnecessary call to gimple_bb.
7600 2016-07-26  Richard Biener  <rguenther@suse.de>
7602         PR rtl-optimization/71984
7603         * simplify-rtx.c (simplify_subreg): Use GET_MODE_SIZE and prepare
7604         for VOIDmode.
7606 2016-07-26  Richard Biener  <rguenther@suse.de>
7608         PR middle-end/72517
7609         * expmed.c (extract_bit_field_1): Constrain the vector mode
7610         with element size matching the extraction mode size when
7611         choosing a better vector mode to do the extraction from.
7613 2016-07-26  Richard Biener  <rguenther@suse.de>
7614             Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
7616         PR middle-end/70920
7617         * match.pd ((intptr)x eq/ne CST to x eq/ne (typeof x) CST): New
7618         pattern.
7620 2016-07-26  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
7622         * tree-ssa-structalias.c (struct scc_info): Change types of
7623         members to auto_sbitmap and auto_vec.
7624         (scc_info::scc_info): New constructor.
7625         (scc_info::~scc_info): New destructor.
7626         (init_scc_info): Remove.
7627         (free_scc_info): Remove.
7628         (find_indirect_cycles): Adjust.
7629         (perform_var_substitution): Likewise.
7630         (free_var_substitution_info): Likewise.
7632 2016-07-26  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
7634         * tree-outof-ssa.c (struct elim_graph): Change type of members
7635         to auto_vec and auto_sbitmap.
7636         (elim_graph::elim_graph): New constructor.
7637         (delete_elim_graph): Remove.
7638         (expand_phi_nodes): Adjust.
7640 2016-07-26  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
7642         * tree-outof-ssa.c (struct elim_graph): Remove typedef.
7643         (new_elim_graph): Adjust.
7644         (clear_elim_graph): Likewise.
7645         (delete_elim_graph): Likewise.
7646         (elim_graph_size): Likewise.
7647         (elim_graph_add_node): Likewise.
7648         (elim_graph_add_edge): Likewise.
7649         (elim_graph_remove_succ_edge): Likewise.
7650         (eliminate_name): Likewise.
7651         (eliminate_build): Likewise.
7652         (elim_forward): Likewise.
7653         (elim_unvisited_predecessor): Likewise.
7654         (elim_backward): Likewise.
7655         (elim_create): Likewise.
7656         (eliminate_phi): Likewise.
7657         (expand_phi_nodes): Likewise.
7659 2016-07-26  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
7661         * bt-load.c (compute_out): Use auto_sbitmap class.
7662         (link_btr_uses): Likewise.
7663         * cfganal.c (mark_dfs_back_edges): Likewise.
7664         (post_order_compute): Likewise.
7665         (inverted_post_order_compute): Likewise.
7666         (pre_and_rev_post_order_compute_fn): Likewise.
7667         (single_pred_before_succ_order): Likewise.
7668         * cfgexpand.c (pass_expand::execute): Likewise.
7669         * cfgloop.c (verify_loop_structure): Likewise.
7670         * cfgloopmanip.c (fix_bb_placements): Likewise.
7671         (remove_path): Likewise.
7672         (update_dominators_in_loop): Likewise.
7673         * cfgrtl.c (break_superblocks): Likewise.
7674         * ddg.c (check_sccs): Likewise.
7675         (create_ddg_all_sccs): Likewise.
7676         * df-core.c (df_worklist_dataflow): Likewise.
7677         * dse.c (dse_step3): Likewise.
7678         * except.c (eh_region_outermost): Likewise.
7679         * function.c (thread_prologue_and_epilogue_insns): Likewise.
7680         * gcse.c (prune_expressions): Likewise.
7681         (prune_insertions_deletions): Likewise.
7682         * gimple-ssa-backprop.c (backprop::~backprop): Likewise.
7683         * graph.c (draw_cfg_nodes_no_loops): Likewise.
7684         * ira-lives.c (remove_some_program_points_and_update_live_ranges): Likewise.
7685         * lcm.c (compute_earliest): Likewise.
7686         (compute_farthest): Likewise.
7687         * loop-unroll.c (unroll_loop_constant_iterations): Likewise.
7688         (unroll_loop_runtime_iterations): Likewise.
7689         (unroll_loop_stupid): Likewise.
7690         * lower-subreg.c (decompose_multiword_subregs): Likewise.
7691         * lra-lives.c: Likewise.
7692         * lra.c (lra): Likewise.
7693         * modulo-sched.c (schedule_reg_moves): Likewise.
7694         (optimize_sc): Likewise.
7695         (get_sched_window): Likewise.
7696         (sms_schedule_by_order): Likewise.
7697         (check_nodes_order): Likewise.
7698         (order_nodes_of_sccs): Likewise.
7699         (order_nodes_in_scc): Likewise.
7700         * recog.c (split_all_insns): Likewise.
7701         * regcprop.c (pass_cprop_hardreg::execute): Likewise.
7702         * reload1.c (reload): Likewise.
7703         * sched-rgn.c (haifa_find_rgns): Likewise.
7704         (split_edges): Likewise.
7705         (compute_trg_info): Likewise.
7706         * sel-sched.c (init_seqno): Likewise.
7707         * store-motion.c (remove_reachable_equiv_notes): Likewise.
7708         * tree-into-ssa.c (update_ssa): Likewise.
7709         * tree-ssa-live.c (live_worklist): Likewise.
7710         * tree-ssa-loop-im.c (fill_always_executed_in): Likewise.
7711         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely):
7712         * Likewise.
7713         (try_peel_loop): Likewise.
7714         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop):
7715         * Likewise.
7716         * tree-ssa-pre.c (compute_antic): Likewise.
7717         * tree-ssa-reassoc.c (undistribute_ops_list): Likewise.
7718         * tree-stdarg.c (reachable_at_most_once): Likewise.
7719         * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Likewise.
7720         * var-tracking.c (vt_find_locations): Likewise.
7722 2016-07-26  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
7724         * sbitmap.h (auto_sbitmap): New class.
7726 2016-07-26  Alan Modra  <amodra@gmail.com>
7728         PR target/72103
7729         * config/rs6000/rs6000.c (rs6000_secondary_reload): Initialize
7730         sri->t_icode.
7732 2016-07-25  David Malcolm  <dmalcolm@redhat.com>
7734         * input.c (selftest::temp_source_file::temp_source_file): Fix
7735         missing "%s" in fprintf.
7737 2016-07-25  John David Anglin  <danglin@gcc.gnu.org>
7739         PR middle-end/71732
7740         * cselib.c (cselib_process_insn): Invalidate argument slots for
7741         const/pure calls.
7743 2016-07-25  Jiong Wang  <jiong.wang@arm.com>
7745         * config/aarch64/arm_neon.h (vfmah_lane_f16, vfmah_laneq_f16,
7746         vfmsh_lane_f16, vfmsh_laneq_f16, vmulh_lane_f16, vmulh_laneq_f16,
7747         vmulxh_lane_f16, vmulxh_laneq_f16): New.
7749 2016-07-25  Jiong Wang  <jiong.wang@arm.com>
7751         * config/aarch64/aarch64-simd-builtins.def: Register new builtins.
7752         * config/aarch64/aarch64.md (fma, fnma): Support HF.
7753         * config/aarch64/arm_fp16.h (vfmah_f16, vfmsh_f16): New.
7755 2016-07-25  Jiong Wang  <jiong.wang@arm.com>
7757         * config/aarch64/aarch64-simd-builtins.def: Register new builtins.
7758         * config/aarch64/aarch64.md (<FCVT_F2FIXED:fcvt_fixed_insn>hf<mode>3):
7759         New.
7760         (<FCVT_FIXED2F:fcvt_fixed_insn><mode>hf3): Likewise.
7761         (add<mode>3): Likewise.
7762         (sub<mode>3): Likewise.
7763         (mul<mode>3): Likewise.
7764         (div<mode>3): Likewise.
7765         (*div<mode>3): Likewise.
7766         (<fmaxmin><mode>3): Extend to HF.
7767         * config/aarch64/aarch64-simd.md (aarch64_rsqrts<mode>): Likewise.
7768         (fabd<mode>3): Likewise.
7769         (<FCVT_F2FIXED:fcvt_fixed_insn><VHSDF_HSDF:mode>3): Likewise.
7770         (<FCVT_FIXED2F:fcvt_fixed_insn><VHSDI_HSDI:mode>3): Likewise.
7771         (aarch64_fmulx<mode>): Likewise.
7772         (aarch64_fac<optab><mode>): Likewise.
7773         (aarch64_frecps<mode>): Likewise.
7774         (<FCVT_F2FIXED:fcvt_fixed_insn>hfhi3): New.
7775         (<FCVT_FIXED2F:fcvt_fixed_insn>hihf3): Likewise.
7776         * config/aarch64/iterators.md (VHSDF_SDF): Delete.
7777         (VSDQ_HSDI): Support HI.
7778         (fcvt_target, FCVT_TARGET): Likewise.
7779         * config/aarch64/arm_fp16.h (vaddh_f16, vsubh_f16, vabdh_f16,
7780         vcageh_f16, vcagth_f16, vcaleh_f16, vcalth_f16, vceqh_f16, vcgeh_f16,
7781         vcgth_f16, vcleh_f16, vclth_f16, vcvth_n_f16_s16, vcvth_n_f16_s32,
7782         vcvth_n_f16_s64, vcvth_n_f16_u16, vcvth_n_f16_u32, vcvth_n_f16_u64,
7783         vcvth_n_s16_f16, vcvth_n_s32_f16, vcvth_n_s64_f16, vcvth_n_u16_f16,
7784         vcvth_n_u32_f16, vcvth_n_u64_f16, vdivh_f16, vmaxh_f16, vmaxnmh_f16,
7785         vminh_f16, vminnmh_f16, vmulh_f16, vmulxh_f16, vrecpsh_f16,
7786         vrsqrtsh_f16): New.
7788 2016-07-25  Jiong Wang  <jiong.wang@arm.com>
7790         * config.gcc (aarch64*-*-*): Install arm_fp16.h.
7791         * config/aarch64/aarch64-builtins.c (hi_UP): New.
7792         * config/aarch64/aarch64-simd-builtins.def: Register new builtins.
7793         * config/aarch64/aarch64-simd.md (aarch64_frsqrte<mode>): Extend to HF
7794         mode.
7795         (aarch64_frecp<FRECP:frecp_suffix><mode>): Likewise.
7796         (aarch64_cm<optab><mode>): Likewise.
7797         * config/aarch64/aarch64.md (<frint_pattern><mode>2): Likewise.
7798         (l<fcvt_pattern><su_optab><GPF:mode><GPI:mode>2): Likewise.
7799         (fix_trunc<GPF:mode><GPI:mode>2): Likewise.
7800         (sqrt<mode>2): Likewise.
7801         (*sqrt<mode>2): Likewise.
7802         (abs<mode>2): Likewise.
7803         (<optab><mode>hf2): New pattern for HF mode.
7804         (<optab>hihf2): Likewise.
7805         * config/aarch64/arm_neon.h: Include arm_fp16.h.
7806         * config/aarch64/iterators.md (GPF_F16, GPI_F16, VHSDF_HSDF): New.
7807         (w1, w2, v, s, q, Vmtype, V_cmp_result, fcvt_iesize, FCVT_IESIZE):
7808         Support HF mode.
7809         * config/aarch64/arm_fp16.h: New file.
7810         (vabsh_f16, vceqzh_f16, vcgezh_f16, vcgtzh_f16, vclezh_f16, vcltzh_f16,
7811         vcvth_f16_s16, vcvth_f16_s32, vcvth_f16_s64, vcvth_f16_u16,
7812         vcvth_f16_u32, vcvth_f16_u64, vcvth_s16_f16, vcvth_s32_f16,
7813         vcvth_s64_f16, vcvth_u16_f16, vcvth_u32_f16, vcvth_u64_f16,
7814         vcvtah_s16_f16, vcvtah_s32_f16, vcvtah_s64_f16, vcvtah_u16_f16,
7815         vcvtah_u32_f16, vcvtah_u64_f16, vcvtmh_s16_f16, vcvtmh_s32_f16,
7816         vcvtmh_s64_f16, vcvtmh_u16_f16, vcvtmh_u32_f16, vcvtmh_u64_f16,
7817         vcvtnh_s16_f16, vcvtnh_s32_f16, vcvtnh_s64_f16, vcvtnh_u16_f16,
7818         vcvtnh_u32_f16, vcvtnh_u64_f16, vcvtph_s16_f16, vcvtph_s32_f16,
7819         vcvtph_s64_f16, vcvtph_u16_f16, vcvtph_u32_f16, vcvtph_u64_f16,
7820         vnegh_f16, vrecpeh_f16, vrecpxh_f16, vrndh_f16, vrndah_f16, vrndih_f16,
7821         vrndmh_f16, vrndnh_f16, vrndph_f16, vrndxh_f16, vrsqrteh_f16,
7822         vsqrth_f16): New.
7824 2016-07-25  Jiong Wang  <jiong.wang@arm.com>
7826         * config/aarch64/aarch64-simd-builtins.def (reduc_smax_scal_,
7827         reduc_smin_scal_): Use VDQIF_F16.
7828         (reduc_smax_nan_scal_, reduc_smin_nan_scal_): Use VHSDF.
7829         * config/aarch64/aarch64-simd.md (reduc_<maxmin_uns>_scal_<mode>):
7830         Use VHSDF.
7831         (aarch64_reduc_<maxmin_uns>_internal<mode>): Likewise.
7832         * config/aarch64/iterators.md (VDQIF_F16): New.
7833         (vp): Support HF modes.
7834         * config/aarch64/arm_neon.h (vmaxv_f16, vmaxvq_f16, vminv_f16,
7835         vminvq_f16, vmaxnmv_f16, vmaxnmvq_f16, vminnmv_f16, vminnmvq_f16): New.
7837 2016-07-25  Jiong Wang  <jiong.wang@arm.com>
7839         * config/aarch64/aarch64-simd.md (*aarch64_mulx_elt_to_64v2df): Rename to
7840         "*aarch64_mulx_elt_from_dup<mode>".
7841         (*aarch64_mul3_elt<mode>): Update schedule type.
7842         (*aarch64_mul3_elt_from_dup<mode>): Likewise.
7843         (*aarch64_fma4_elt_from_dup<mode>): Likewise.
7844         (*aarch64_fnma4_elt_from_dup<mode>): Likewise.
7845         * config/aarch64/iterators.md (VMUL): Supprt half precision float modes.
7846         (f, fp): Support HF modes.
7847         * config/aarch64/arm_neon.h (vfma_lane_f16, vfmaq_lane_f16,
7848         vfma_laneq_f16, vfmaq_laneq_f16, vfma_n_f16, vfmaq_n_f16, vfms_lane_f16,
7849         vfmsq_lane_f16, vfms_laneq_f16, vfmsq_laneq_f16, vfms_n_f16,
7850         vfmsq_n_f16, vmul_lane_f16, vmulq_lane_f16, vmul_laneq_f16,
7851         vmulq_laneq_f16, vmul_n_f16, vmulq_n_f16, vmulx_lane_f16,
7852         vmulxq_lane_f16, vmulx_laneq_f16, vmulxq_laneq_f16): New.
7854 2016-07-25  Jiong Wang  <jiong.wang@arm.com>
7856         * config/aarch64/aarch64-simd-builtins.def: Register new builtins.
7857         * config/aarch64/aarch64-simd.md (fma<mode>4, fnma<mode>4): Extend to HF
7858         modes.
7859         * config/aarch64/arm_neon.h (vfma_f16, vfmaq_f16, vfms_f16,
7860         vfmsq_f16): New.
7862 2016-07-25  Jiong Wang  <jiong.wang@arm.com>
7864         * config/aarch64/aarch64-simd-builtins.def: Register new builtins.
7865         * config/aarch64/aarch64-simd.md
7866         (aarch64_rsqrts<mode>): Extend to HF modes.
7867         (fabd<mode>3): Likewise.
7868         (<FCVT_F2FIXED:fcvt_fixed_insn><VHSDF_SDF:mode>3): Likewise.
7869         (<FCVT_FIXED2F:fcvt_fixed_insn><VHSDI_SDI:mode>3): Likewise.
7870         (aarch64_<maxmin_uns>p<mode>): Likewise.
7871         (<su><maxmin><mode>3): Likewise.
7872         (<maxmin_uns><mode>3): Likewise.
7873         (<fmaxmin><mode>3): Likewise.
7874         (aarch64_faddp<mode>): Likewise.
7875         (aarch64_fmulx<mode>): Likewise.
7876         (aarch64_frecps<mode>): Likewise.
7877         (*aarch64_fac<optab><mode>): Rename to aarch64_fac<optab><mode>.
7878         (add<mode>3): Extend to HF modes.
7879         (sub<mode>3): Likewise.
7880         (mul<mode>3): Likewise.
7881         (div<mode>3): Likewise.
7882         (*div<mode>3): Likewise.
7883         * config/aarch64/aarch64.c (aarch64_emit_approx_div): Return false for
7884         HF, V4HF and V8HF.
7885         * config/aarch64/iterators.md (VDQ_HSDI, VSDQ_HSDI): New mode iterator.
7886         * config/aarch64/arm_neon.h (vadd_f16, vaddq_f16, vabd_f16, vabdq_f16,
7887         vcage_f16, vcageq_f16, vcagt_f16, vcagtq_f16, vcale_f16, vcaleq_f16,
7888         vcalt_f16, vcaltq_f16, vceq_f16, vceqq_f16, vcge_f16, vcgeq_f16,
7889         vcgt_f16, vcgtq_f16, vcle_f16, vcleq_f16, vclt_f16, vcltq_f16,
7890         vcvt_n_f16_s16, vcvtq_n_f16_s16, vcvt_n_f16_u16, vcvtq_n_f16_u16,
7891         vcvt_n_s16_f16, vcvtq_n_s16_f16, vcvt_n_u16_f16, vcvtq_n_u16_f16,
7892         vdiv_f16, vdivq_f16, vdup_lane_f16, vdup_laneq_f16, vdupq_lane_f16,
7893         vdupq_laneq_f16, vdups_lane_f16, vdups_laneq_f16, vmax_f16, vmaxq_f16,
7894         vmaxnm_f16, vmaxnmq_f16, vmin_f16, vminq_f16, vminnm_f16, vminnmq_f16,
7895         vmul_f16, vmulq_f16, vmulx_f16, vmulxq_f16, vpadd_f16, vpaddq_f16,
7896         vpmax_f16, vpmaxq_f16, vpmaxnm_f16, vpmaxnmq_f16, vpmin_f16, vpminq_f16,
7897         vpminnm_f16, vpminnmq_f16, vrecps_f16, vrecpsq_f16, vrsqrts_f16,
7898         vrsqrtsq_f16, vsub_f16, vsubq_f16): New.
7900 2016-07-25  Jiong Wang  <jiong.wang@arm.com>
7902         * config/aarch64/aarch64-builtins.c (TYPES_BINOP_USS): New.
7903         * config/aarch64/aarch64-simd-builtins.def: Register new builtins.
7904         * config/aarch64/aarch64-simd.md (aarch64_rsqrte<mode>): Extend to HF modes.
7905         (neg<mode>2): Likewise.
7906         (abs<mode>2): Likewise.
7907         (<frint_pattern><mode>2): Likewise.
7908         (l<fcvt_pattern><su_optab><VDQF:mode><fcvt_target>2): Likewise.
7909         (<optab><VDQF:mode><fcvt_target>2): Likewise.
7910         (<fix_trunc_optab><VDQF:mode><fcvt_target>2): Likewise.
7911         (ftrunc<VDQF:mode>2): Likewise.
7912         (<optab><fcvt_target><VDQF:mode>2): Likewise.
7913         (sqrt<mode>2): Likewise.
7914         (*sqrt<mode>2): Likewise.
7915         (aarch64_frecpe<mode>): Likewise.
7916         (aarch64_cm<optab><mode>): Likewise.
7917         * config/aarch64/aarch64.c (aarch64_emit_approx_sqrt): Return false for
7918         HF, V4HF and V8HF.
7919         * config/aarch64/iterators.md (VHSDF, VHSDF_DF, VHSDF_SDF): New.
7920         (VDQF_COND, fcvt_target, FCVT_TARGET, hcon): Extend mode attribute to HF modes.
7921         (stype): New.
7922         * config/aarch64/arm_neon.h (vdup_n_f16): New.
7923         (vdupq_n_f16): Likewise.
7924         (vld1_dup_f16): Use vdup_n_f16.
7925         (vld1q_dup_f16): Use vdupq_n_f16.
7926         (vabs_f16, vabsq_f16, vceqz_f16, vceqzq_f16, vcgez_f16, vcgezq_f16,
7927         vcgtz_f16, vcgtzq_f16, vclez_f16, vclezq_f16, vcltz_f16, vcltzq_f16,
7928         vcvt_f16_s16, vcvtq_f16_s16, vcvt_f16_u16, vcvtq_f16_u16, vcvt_s16_f16,
7929         vcvtq_s16_f16, vcvt_u16_f16, vcvtq_u16_f16, vcvta_s16_f16,
7930         vcvtaq_s16_f16, vcvta_u16_f16, vcvtaq_u16_f16, vcvtm_s16_f16,
7931         vcvtmq_s16_f16, vcvtm_u16_f16, vcvtmq_u16_f16, vcvtn_s16_f16,
7932         vcvtnq_s16_f16, vcvtn_u16_f16, vcvtnq_u16_f16, vcvtp_s16_f16,
7933         vcvtpq_s16_f16, vcvtp_u16_f16, vcvtpq_u16_f16, vneg_f16, vnegq_f16,
7934         vrecpe_f16, vrecpeq_f16, vrnd_f16, vrndq_f16, vrnda_f16, vrndaq_f16,
7935         vrndi_f16, vrndiq_f16, vrndm_f16, vrndmq_f16, vrndn_f16, vrndnq_f16,
7936         vrndp_f16, vrndpq_f16, vrndx_f16, vrndxq_f16, vrsqrte_f16, vrsqrteq_f16,
7937         vsqrt_f16, vsqrtq_f16): New.
7939 2016-07-25  Jiong Wang  <jiong.wang@arm.com>
7941         * config/aarch64/aarch64-simd.md
7942         (aarch64_<PERMUTE:perm_insn><PERMUTE:perm_hilo><mode>): Use VALL_F16.
7943         (aarch64_ext<mode>): Likewise.
7944         (aarch64_rev<REVERSE:rev_op><mode>): Likewise.
7945         * config/aarch64/aarch64.c (aarch64_evpc_trn, aarch64_evpc_uzp,
7946         aarch64_evpc_zip, aarch64_evpc_ext, aarch64_evpc_rev): Support V4HFmode
7947         and V8HFmode.
7948         * config/aarch64/arm_neon.h (__INTERLEAVE_LIST): Support float16x4_t,
7949         float16x8_t.
7950         (__aarch64_vdup_lane_f16, __aarch64_vdup_laneq_f16,
7951         __aarch64_vdupq_lane_f16, __aarch64_vdupq_laneq_f16, vbsl_f16,
7952         vbslq_f16, vdup_n_f16, vdupq_n_f16, vdup_lane_f16, vdup_laneq_f16,
7953         vdupq_lane_f16, vdupq_laneq_f16, vduph_lane_f16, vduph_laneq_f16,
7954         vext_f16, vextq_f16, vmov_n_f16, vmovq_n_f16, vrev64_f16, vrev64q_f16,
7955         vtrn1_f16, vtrn1q_f16, vtrn2_f16, vtrn2q_f16, vtrn_f16, vtrnq_f16,
7956         vuzp1_f16, vuzp1q_f16, vuzp2_f16, vuzp2q_f16, vzip1_f16, vzip2q_f16):
7957         New.
7958         (vmov_n_f16): Reimplement using vdup_n_f16.
7959         (vmovq_n_f16): Reimplement using vdupq_n_f16..
7961 2016-07-25  Jiong Wang  <jiong.wang@arm.com>
7963         * config/aarch64/aarch64.c (aarch64_add_constant): New parameter
7964         "frame_related_p".  Generate CFA annotation when it's necessary.
7965         (aarch64_expand_prologue): Use aarch64_add_constant.
7966         (aarch64_expand_epilogue): Likewise.
7967         (aarch64_output_mi_thunk): Pass "false" when calling
7968         aarch64_add_constant.
7970 2016-07-25  Jiong Wang  <jiong.wang@arm.com>
7972         * config/aarch64/aarch64.c (aarch64_add_constant): Optimize instruction
7973         sequences.
7975 2016-07-25  Jiong Wang  <jiong.wang@arm.com>
7977         * config/aarch64/aarch64.c (aarch64_add_constant): New parameter "mode".
7978         Use aarch64_internal_mov_immediate instead of aarch64_build_constant.
7979         (aarch64_output_mi_thunk): Pass Pmode when calling aarch64_add_constant.
7980         (aarch64_build_constant): Delete.
7982 2016-07-25  Alexander Monakov  <amonakov@ispras.ru>
7984         Revert
7985         2016-07-20  Alexander Monakov  <amonakov@ispras.ru>
7987         * config/nvptx/nvptx.c (nvptx_option_override): Do not set
7988         flag_toplevel_reorder.
7990 2016-07-25  Richard Biener  <rguenther@suse.de>
7992         * cgraph.c (cgraph_node::verify_node): Compare against builtin
7993         by using DECL_BUILT_IN_CLASS and DECL_FUNCTION_CODE.
7994         * tree-chkp.c (chkp_gimple_call_builtin_p): Likewise.
7995         * tree-streamer.h (streamer_handle_as_builtin_p): Remove.
7996         (streamer_get_builtin_tree): Likewise.
7997         (streamer_write_builtin): Likewise.
7998         * lto-streamer.h (LTO_builtin_decl): Remove.
7999         * lto-streamer-in.c (lto_read_tree_1): Remove assert.
8000         (lto_input_scc): Remove LTO_builtin_decl handling.
8001         (lto_input_tree_1): Liekwise.
8002         * lto-streamer-out.c (lto_output_tree_1): Remove special
8003         handling of builtins.
8004         (DFS::DFS): Likewise.
8005         * tree-streamer-in.c (streamer_get_builtin_tree): Remove.
8006         * tree-streamer-out.c (pack_ts_function_decl_value_fields): Remove
8007         assert.
8008         (streamer_write_builtin): Remove.
8010 2016-07-25  Martin Liska  <mliska@suse.cz>
8012         * lto-cgraph.c (input_symtab): Don't call get_working_sets
8013         if flag_auto_profile is set to true.
8015 2016-07-25  Martin Liska  <mliska@suse.cz>
8017         PR gcov-profile/71868
8018         * cfgloopanal.c (expected_loop_iterations_unbounded): When we
8019         have a function with multiple latches, count them all.
8021 2016-07-25  Martin Liska  <mliska@suse.cz>
8023         * tree-ssa-loop-niter.c (loop_only_exit_p): Release body array.
8025 2016-07-25  Martin Liska  <mliska@suse.cz>
8027         PR tree-optimization/71987
8028         * tree-ssa-reassoc.c (maybe_optimize_range_tests): Call get_ops
8029         just for SSA_NAMEs. Fix GNU coding style.
8031 2016-07-25  Martin Liska  <mliska@suse.cz>
8033         PR gcov-profile/64874
8034         * gcov-io.h: Update command about file format.
8035         * gcov-iov.c (main): Adapt the numbering scheme.
8037 2016-07-24  Kugan Vivekanandarajah  <kuganv@linaro.org>
8039         PR middle-end/66726
8040         * tree-ssa-reassoc.c (optimize_vec_cond_expr): Handle tcc_compare stmt
8041         whose result is used in PHI.
8042         (final_range_test_p): Likewise.
8043         (maybe_optimize_range_tests): Likewise.
8045 2016-07-22  Michael Meissner  <meissner@linux.vnet.ibm.com>
8047         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
8048         Reformat two multi-line strings.
8050 2016-07-22  Martin Sebor  <msebor@redhat.com>
8052         * doc/extend.texi (Compound Literals): Add '@' missed in last commit.
8054 2016-07-22  Martin Sebor  <msebor@redhat.com>
8056         PR c/71560
8057         * doc/extend.texi (Compound Literals): Correct and clarify.
8058         (Cast to Union): Same.
8060 2016-07-22  Kelvin Nilsen  <kelvin@gcc.gnu.org>
8062         * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
8063         comments to explain why certain error messages make mention of
8064         undocumented options.
8065         (rs6000_invalid_builtin): Change error messages to replace mention
8066         of undocumented options with mention of the -mcpu=power9 option
8067         that enables those undocumented options.
8068         * config/rs6000/rs6000.h (MASK_FLOAT128): New macro.
8069         (RS6000_BTM_FLOAT128): Use the new MASK_FLOAT128 macro in the
8070         definition of this macro to correct an existing error.
8071         * config/rs6000/rs6000.opt: Add the Undocumented qualifier to the
8072         mpower9-fusion, mpower9-vector, mpower9-dform, and mmodulo entries.
8073         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Modify
8074         descriptions of built-in functions so that they depend on
8075         -mcpu=power9 instead of on the corresponding undocumented flags.
8076         * doc/invoke.texi (Option Summary):  Remove all mention of newly
8077         undocumented flags.
8078         (IBM RS/6000 and PowerPC Options): Likewise.
8079         * doc/md.texi (Constraints for Particuliar Machines): Remove all
8080         mention of newly undocumented flags.
8082 2016-07-22  Evgeny Stupachenko  <evstupac@gmail.com>
8084         * ipa-cp.c (determine_versionability): Do not create constprop clones,
8085         when target_clones attribute is set.
8087 2016-07-22  Bin Cheng  <bin.cheng@arm.com>
8089         * common.opt (funsafe-loop-optimizations): Mark ignore.
8090         * doc/invoke.texi (funsafe-loop-optimizations): Remove.
8091         * loop-iv.c (get_simple_loop_desc): Remove unsafe-loop-optimizations
8092         related code.
8093         * tree-ssa-loop-niter.c (finite_loop_p): Ditto.
8094         * config/bfin/bfin.c (bfin_can_use_doloop_p): Ditto.
8096 2016-07-22  Bin Cheng  <bin.cheng@arm.com>
8098         * tree-ssa-loop-niter.h (number_of_iterations_exit_assumptions): New
8099         Parameter.
8100         * tree-ssa-loop-niter.c (number_of_iterations_exit_assumptions): New
8101         Parameter.
8102         (number_of_iterations_exit): Warn missed loop optimization for
8103         possible infinite loops.
8105 2016-07-22  Segher Boessenkool  <segher@kernel.crashing.org>
8107         PR target/71216
8108         * config/rs6000/rs6000.c (rs6000_file_start): Fix condition for
8109         when to emit a ".machine" pseudo-op.
8111 2016-07-22  Martin Liska  <mliska@suse.cz>
8113         PR gcov-profile/69028
8114         PR gcov-profile/62047
8115         * coverage.c (coverage_compute_lineno_checksum): Do not
8116         calculate checksum for fns w/o xloc.file.
8117         (coverage_compute_profile_id): Likewise.
8119 2016-07-22  Georg-Johann Lay  <avr@gjlay.de>
8121         * config/avr/avr.c (TARGET_SECONDARY_RELOAD): Remove hook define...
8122         (avr_secondary_reload): ...and implementation.
8123         (avr_adjust_insn_length) [ADJUST_LEN_LPM]: Remove handling.
8124         * config/avr/avr.md (reload_in<mode>): Remove insns.
8125         (adjust_len) [lpm]: Remove insn attribute value.
8126         * config/avr/predicates.md (flash_operand): Remove insn predicate.
8128 2016-07-21  Bernd Edlinger  <bernd.edlinger@hotmail.de>
8130         PR middle-end/71876
8131         * builtin-attrs.def (ATTR_RT_NOTHROW_LEAF_LIST): New return twice
8132         attribute.
8133         * builtins.def (BUILT_IN_SETJMP): Use ATTR_RT_NOTHROW_LEAF_LIST here.
8134         * calls.c (special_function_p): Remove the special handling of the
8135         "__builtin_" prefix.
8137 2016-07-21  Bernd Edlinger  <bernd.edlinger@hotmail.de>
8139         PR middle-end/71876
8140         * calls.c (gimple_maybe_alloca_call_p): New function.  Return true
8141         if STMT may be an alloca call.
8142         (gimple_alloca_call_p, alloca_call_p): Return only true for the
8143         builtin alloca call.
8144         * calls.h (gimple_maybe_alloca_call_p): New function.
8145         * tree-inline.c (inline_forbidden_p_stmt): Use
8146         gimple_maybe_alloca_call_p here.
8148 2016-07-21  David Malcolm  <dmalcolm@redhat.com>
8150         * spellcheck-tree.c (best_macro_match::best_macro_match):
8151         Explictly specify the template arguments when invoking the base
8152         class constructor, to help older C++ compilers.
8154 2016-07-21  Jakub Jelinek  <jakub@redhat.com>
8156         PR sanitizer/71953
8157         * asan.c (asan_dynamic_init_call): Call asan_init_shadow_ptr_types
8158         before builtin_decl_implicit.
8160 2016-07-21  James Greenhalgh  <james.greenhalgh@arm.com>
8162         * optabs.c (emit_condiitonal_move): Short circuit for identical
8163         sources.
8165 2016-07-21  James Greenhalgh  <james.greenhalgh@arm.com>
8167         * ifcvt.c (noce_if_info): New fields: speed_p, original_cost,
8168         max_seq_cost.  Removed fields: then_cost, else_cost, branch_cost.
8169         (noce_conversion_profitable_p): New.
8170         (noce_try_store_flag_constants): Use it.
8171         (noce_try_addcc): Likewise.
8172         (noce_try_store_flag_mask): Likewise.
8173         (noce_try_cmove): Likewise.
8174         (noce_try_cmove_arith): Likewise.
8175         (bb_valid_for_noce_process_p): Add to the cost parameter rather than
8176         overwriting it.
8177         (noce_convert_multiple_sets): Move cost model to here, from...
8178         (bb_ok_for_noce_convert_multiple_sets) ...here.
8179         (noce_process_if_block): Update calls for above changes.
8180         (noce_find_if_block): Record new noce_if_info parameters.
8182 2016-07-21  James Greenhalgh  <james.greenhalgh@arm.com>
8184         * target.def (max_noce_ifcvt_seq_cost): New.
8185         * doc/tm.texi.in (TARGET_MAX_NOCE_IFCVT_SEQ_COST): Document it.
8186         * doc/tm.texi: Regenerate.
8187         * targhooks.h (default_max_noce_ifcvt_seq_cost): New.
8188         * targhooks.c (default_max_noce_ifcvt_seq_cost): New.
8189         * params.def (PARAM_MAX_RTL_IF_CONVERSION_PREDICTABLE_COST): New.
8190         (PARAM_MAX_RTL_IF_CONVERSION_UNPREDICTABLE_COST): Likewise.
8191         * doc/invoke.texi: Document new params.
8193 2016-07-21  Richard Biener  <rguenther@suse.de>
8195         PR tree-optimization/71947
8196         * tree-vrp.c (extract_range_from_assert): Singleton symbolic
8197         ranges have useful limit_vr information.
8199 2016-07-21  Richard Biener  <rguenther@suse.de>
8201         * function-tests.c (build_trivial_generic_function): Set
8202         BLOCK_SUPERCONTEXT of DECL_INITIAL.
8203         * omp-low.c (create_omp_child_function): Likewise.
8204         (grid_expand_target_grid_body): Likewise.
8205         * cgraphunit.c (init_lowered_empty_function): Likewise.
8206         (cgraph_node::expand_thunk): Likewise.
8207         * tree-parloops.c (create_loop_fn): Likewise.
8208         * ipa.c (cgraph_build_static_cdtor_1): Likewise.
8210 2016-07-21  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
8212         * tree-ssa-strlen.c (strlen_dom_walker::before_dom_children): Fix typo
8213         in comment.
8215 2016-07-21  Georg-Johann Lay  <avr@gjlay.de>
8217         * config/avr/avr.md (any_extract, any_shiftrt): New code iterators.
8218         (*insv.extract, *insv.shiftrt, *insv.not-bit.0, *insv.not-bit.7)
8219         (*insv.xor-extract, *insv.xor1-bit.0): New insns.
8220         (adjust_len) [insv_notbit, insv_notbit_0, insv_notbit_7]: New
8221         values for insn attribute.
8222         * config/avr/avr.c (avr_out_insert_notbit): New function.
8223         (avr_adjust_insn_length): Handle ADJUST_LEN_INSV_NOTBIT,
8224         ADJUST_LEN_INSV_NOTBIT_0/_7.
8225         * config/avr/avr-protos.h (avr_out_insert_notbit): New proto.
8227 2016-07-21  Bin Cheng  <bin.cheng@arm.com>
8229         * tree-chrec.c (convert_affine_scev): New parameter.  Pass new arg.
8230         (chrec_convert_1, chrec_convert): Ditto.
8231         * tree-chrec.h (chrec_convert, convert_affine_scev): New parameter.
8232         * tree-scalar-evolution.c (interpret_rhs_expr): Pass new arg.
8233         * tree-vrp.c (adjust_range_with_scev): Ditto.
8234         * tree-ssa-loop-niter.c (idx_infer_loop_bounds): Ditto.
8235         (scev_var_range_cant_overflow): New function.
8236         (scev_probably_wraps_p): New parameter.  Call above function.
8237         * tree-ssa-loop-niter.h (scev_probably_wraps_p): New parameter.
8239 2016-07-21  Bin Cheng  <bin.cheng@arm.com>
8241         * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Clean up
8242         by removing computation of may_be_zero.
8244 2016-07-21  Jakub Jelinek  <jakub@redhat.com>
8246         * tree-object-size.c (unknown): Use HOST_WIDE_INT_M1U instead of -1.
8248 2016-07-21  Andrew Sutton  <andrew.n.sutton@gmail.com>
8250         Improving concepts performance and diagnostics.
8251         * timevar.def (TV_CONSTRAINT_SAT, TV_CONSTRAINT_SUB): New time vars
8252         for constraint satisfaction and subsumption.
8253         * timevar.h (auto_timevar): New constructor that matches the push/pop
8254         pattern of usage in pt.c.
8256 2016-07-20  Uros Bizjak  <ubizjak@gmail.com>
8258         * hwint.h (HOST_WIDE_INT_0): New define.
8259         (HOST_WIDE_INT_0U): Ditto.
8260         * double-int.c: Use HOST_WIDE_INT_0 instead of (HOST_WIDE_INT) 0.
8261         * dse.c: Use HOST_WIDE_INT_0U instead of (unsigned HOST_WIDE_INT) 0.
8262         * simplify-rtx.c: Ditto.
8263         * tree-object-size.c: Ditto.
8265 2016-07-20  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
8267         * config/s390/s390.c (s390_encode_section_info): Remove mode size
8268         check.
8270 2016-07-20  Uros Bizjak  <ubizjak@gmail.com>
8272         * cse.c: Use HOST_WIDE_INT_M1 instead of ~(HOST_WIDE_INT) 0.
8273         * combine.c: Use HOST_WIDE_INT_M1U instead of
8274         ~(unsigned HOST_WIDE_INT) 0.
8275         * double-int.h: Ditto.
8276         * dse.c: Ditto.
8277         * dwarf2asm.c:Ditto.
8278         * expmed.c: Ditto.
8279         * genmodes.c: Ditto.
8280         * match.pd: Ditto.
8281         * read-rtl.c: Ditto.
8282         * tree-ssa-loop-ivopts.c: Ditto.
8283         * tree-ssa-loop-prefetch.c: Ditto.
8284         * tree-vect-generic.c: Ditto.
8285         * tree-vect-patterns.c: Ditto.
8286         * tree.c: Ditto.
8288 2016-07-20  Georg-Johann Lay  <avr@gjlay.de>
8290         * gcc/config/avr.c (avr_legitimize_address) [AVR_TINY]: Force
8291         constant addresses outside [0,0xc0] into a register.
8292         (avr_out_movhi_r_mr_reg_no_disp_tiny): Pass insn.  And handle
8293         cases where the base address register is unused after.
8294         (avr_out_movhi_r_mr_reg_disp_tiny): Same.
8295         (avr_out_movhi_mr_r_reg_disp_tiny): Same.
8296         (avr_out_store_psi_reg_disp_tiny): Same.
8298 2016-07-20  Georg-Johann Lay  <avr@gjlay.de>
8300         Implement attribute progmem on reduced Tiny cores by adding
8301         flash offset 0x4000 to respective symbols.
8303         PR target/71948
8304         * doc/extend.texi (AVR Variable Attributes) [progmem]: Add
8305         documentation how it works on reduced Tiny cores.
8306         (AVR Named Address Spaces): No support for reduced Tiny.
8307         * config/avr/avr.c (AVR_SYMBOL_FLAG_TINY_PM): New macro.
8308         (avr_address_tiny_pm_p): New static function.
8309         (avr_print_operand_address) [AVR_TINY]: Add AVR_TINY_PM_OFFSET
8310         if the address is in progmem.
8311         (avr_assemble_integer): Same.
8312         (avr_encode_section_info) [AVR_TINY]: Set AVR_SYMBOL_FLAG_TINY_PM
8313         for symbol_ref in progmem.
8314         * config/avr/avr.h (AVR_TINY_PM_OFFSET): New macro.
8315         * config/avr/avr-c.c (avr_cpu_cpp_builtins): Use it instead of
8316         magic 0x4000 when built-in def'ing __AVR_TINY_PM_BASE_ADDRESS__.
8318 2016-07-20  Patrick Palka  <ppalka@gcc.gnu.org>
8320         * configure.ac (thin_archive_support): New variable.  AC_SUBST it.
8321         * configure: Regenerate.
8322         * Makefile.in (THIN_ARCHIVE_SUPPORT): New variable.
8323         (USE_THIN_ARCHIVES): New variable.
8324         (libbackend.a): If USE_THIN_ARCHIVES then pass T to ar to build
8325         this archive as a thin archive.
8327 2016-07-20  David Malcolm  <dmalcolm@redhat.com>
8329         * diagnostic-show-locus.c (diagnostic_show_locus): If this is the
8330         same location as last time, don't skip if we have fix-it hints.
8331         Clarify the skipping logic by converting it from one "if" clause
8332         to repeated "if" clauses.
8333         * spellcheck-tree.c: Include "cpplib.h".
8334         (find_closest_macro_cpp_cb): Move here from c/c-decl.c.
8335         (best_macro_match::best_macro_match): New constructor.
8336         * spellcheck-tree.h (struct edit_distance_traits<cpp_hashnode *>):
8337         Move here from c/c-decl.c.
8338         (class best_macro_match): Move here from c/c-decl.c, converting
8339         from a typedef to a subclass, gaining a ctor.
8341 2016-07-20  Georg-Johann Lay  <avr@gjlay.de>
8343         * config/avr/avr-protos.h (avr_addr_space_supported_p): New prototype.
8344         * config/avr/avr.c (TARGET_ADDR_SPACE_DIAGNOSE_USAGE): New hook
8345         define...
8346         (avr_addr_space_diagnose_usage): ...and implementation.
8347         (avr_addr_space_supported_p): New function.
8348         (avr_nonconst_pointer_addrspace, avr_pgm_check_var_decl): Only
8349         report bad address space usage if that space is supported.
8350         (avr_insert_attributes): Same.  No more complain about unsupported
8351         address spaces.
8352         * config/avr/avr-c.c (tm_p.h): Include it.
8353         (avr_cpu_cpp_builtins): Only define addr-space related built-in
8354         macro if avr_addr_space_supported_p.
8356 2016-07-20  Alexander Monakov  <amonakov@ispras.ru>
8358         * config/nvptx/nvptx.c (nvptx_option_override): Do not set
8359         flag_toplevel_reorder.
8361 2016-07-20  David Malcolm  <dmalcolm@redhat.com>
8363         * gcc-rich-location.c
8364         (gcc_rich_location::add_fixit_misspelled_id): New overload, taking
8365         a const char *.
8366         * gcc-rich-location.h
8367         (gcc_rich_location::add_fixit_misspelled_id): Likewise.
8369 2016-07-20  Georg-Johann Lay  <avr@gjlay.de>
8371         * target.def (addr_space): Add new diagnose_usage to hook vector.
8372         * targhooks.c (default_addr_space_diagnose_usage): Add default
8373         implementation and...
8374         * targhooks.h (default_addr_space_diagnose_usage): ... its prototype.
8375         * c/c-parser.c (c_lex_one_token) [CPP_NAME]: If the token
8376         is some address space, call targetm.addr_space.diagnose_usage.
8377         * doc/tm.texi.in (Named Address Spaces): Add anchor for
8378         TARGET_ADDR_SPACE_DIAGNOSE_USAGE documentation.
8379         * doc/tm.texi: Regenerate.
8381 2016-07-20  Martin Liska  <mliska@suse.cz>
8383         PR middle-end/71898
8384         * graphite-isl-ast-to-gimple.c (later_of_the_two):
8385         Properly handly PHI stmts.
8387 2016-07-20  Bin Cheng  <bin.cheng@arm.com>
8389         PR tree-optimization/71503
8390         PR tree-optimization/71683
8391         * tree-if-conv.c (gen_phi_arg_condition): Record true predicate
8392         and break.
8394 2016-07-20  Martin Liska  <mliska@suse.cz>
8396         * doc/invoke.texi (-fipa-ra): Document when the option is
8397         disabled. Fix a typo.
8399 2016-07-20  Martin Liska  <mliska@suse.cz>
8401         * Makefile.in: Include fibonacci_heap.c
8402         * fibonacci_heap.c: New file.
8403         * fibonacci_heap.h (fibonacci_heap::insert): Use insert_node.
8404         (fibonacci_heap::union_with): Fix deletion of the second heap.
8405         * selftest-run-tests.c (selftest::run_tests): Incorporate
8406         fibonacci heap tests.
8407         * selftest.h: Declare fibonacci_heap_c_tests.
8409 2016-07-20  Martin Liska  <mliska@suse.cz>
8411         * selftest-run-tests.c (selftest::run_tests): New function.
8412         * selftest.h (sreal_c_tests): Declare.
8413         * sreal.c (sreal_verify_basics): New function.
8414         (verify_aritmetics): Likewise.
8415         (sreal_verify_arithmetics): Likewise.
8416         (verify_shifting): Likewise.
8417         (sreal_verify_shifting): Likewise.
8418         (void sreal_c_tests): Likewise.
8420 2016-07-19  Jakub Jelinek  <jakub@redhat.com>
8422         PR rtl-optimization/71916
8423         * cfgrtl.c (contains_no_active_insn_p): Return false also for
8424         bb which have a single succ fake edge.
8426 2016-07-19  Aldy Hernandez  <aldyh@redhat.com>
8428         PR debug/71855
8429         * dwarf2out.c (gen_subprogram_die): Only call
8430         gen_unspecified_parameters_die while dumping early dwarf.
8432 2016-07-19  Jakub Jelinek  <jakub@redhat.com>
8434         PR middle-end/71874
8435         * gimple-fold.c (fold_builtin_memory_op): Use
8436         get_addr_base_and_unit_offset instead of get_ref_base_and_extent.
8438 2016-07-19  Uros Bizjak  <ubizjak@gmail.com>
8440         * builtins.c: Use HOST_WIDE_INT_1 instead of (HOST_WIDE_INT) 1,
8441         HOST_WIDE_INT_1U instead of (unsigned HOST_WIDE_INT) 1,
8442         HOST_WIDE_INT_M1 instead of (HOST_WIDE_INT) -1 and
8443         HOST_WIDE_INT_M1U instead of (unsigned HOST_WIDE_INT) -1.
8444         * combine.c: Ditto.
8445         * cse.c: Ditto.
8446         * dojump.c: Ditto.
8447         * double-int.c: Ditto.
8448         * dse.c: Ditto.
8449         * dwarf2out.c: Ditto.
8450         * expmed.c: Ditto.
8451         * expr.c: Ditto.
8452         * fold-const.c: Ditto.
8453         * function.c: Ditto.
8454         * fwprop.c: Ditto.
8455         * genmodes.c: Ditto.
8456         * hwint.c: Ditto.
8457         * hwint.h: Ditto.
8458         * ifcvt.c: Ditto.
8459         * loop-doloop.c: Ditto.
8460         * loop-invariant.c: Ditto.
8461         * loop-iv.c: Ditto.
8462         * match.pd: Ditto.
8463         * optabs.c: Ditto.
8464         * real.c: Ditto.
8465         * reload.c: Ditto.
8466         * rtlanal.c: Ditto.
8467         * simplify-rtx.c: Ditto.
8468         * stor-layout.c: Ditto.
8469         * toplev.c: Ditto.
8470         * tree-ssa-loop-ivopts.c: Ditto.
8471         * tree-vect-generic.c: Ditto.
8472         * tree-vect-patterns.c: Ditto.
8473         * tree.c: Ditto.
8474         * tree.h: Ditto.
8475         * ubsan.c: Ditto.
8476         * varasm.c: Ditto.
8477         * wide-int-print.cc: Ditto.
8478         * wide-int.cc: Ditto.
8479         * wide-int.h: Ditto.
8481 2016-07-19  David Malcolm  <dmalcolm@redhat.com>
8483         * selftest.c (selftest::assert_streq): Handle NULL values of
8484         val_actual and val_expected.
8486 2016-07-19  Martin Jambor  <mjambor@suse.cz>
8488         PR fortran/71688
8489         * trans-decl.c (gfc_generate_function_code): Use cgraph_get_create_node
8490         rather than cgraph_create_node to get a call graph node.
8492 2016-07-19  Richard Biener  <rguenther@suse.de>
8494         * gimple-fold.c (get_base_constructor): Add VIEW_CONVERT case,
8495         handle all tcc_constant bases and valueize SSA names.
8496         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): Handle
8497         tcc_constant bases.
8499 2016-07-19  David Malcolm  <dmalcolm@redhat.com>
8501         * function-tests.c (selftest::verify_three_block_rtl_cfg): Verify
8502         the flags of the exit block and bb2, not just the entry block.
8504 2016-07-19  Richard Biener  <rguenther@suse.de>
8506         PR tree-optimization/71901
8507         * tree-ssa-sccvn.h (struct vn_reference_op_struct): Add
8508         align member, group stuff with the bitfield.
8509         (vn_ref_op_align_unit): New inline.
8510         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): For ARRAY_REFs
8511         record element alignment and operand 3 unchanged.
8512         (ao_ref_init_from_vn_reference): Adjust.
8513         (valueize_refs_1): Likewise.
8514         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
8516 2016-07-19  Richard Biener  <rguenther@suse.de>
8518         PR tree-optimization/71908
8519         * tree-ssa-structalias.c (get_constraint_for_component_ref): Handle
8520         symbolic constants in a more reliable way.
8522 2016-07-19  Ilya Enkovich  <ilya.enkovich@intel.com>
8524         * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Update
8525         comment.
8526         (vect_update_inits_of_drs): Likewise.
8527         (vect_create_cond_for_alias_checks): Likewise.
8528         * tree-vect-loop.c (vect_get_known_peeling_cost): Likewise.
8530 2016-07-19  Richard Biener  <rguenther@suse.de>
8532         PR lto/71907
8533         * lto-streamer-out.c (DFS::DFS_write_tree_body): For blocks
8534         with an abstract origin that is not an inlined function outer
8535         scope add a self-reference as abstract origin.
8536         * tree-streamer-out.c (write_ts_block_tree_pointers): Likewise.
8538 2016-07-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
8540         PR target/71493
8541         * config/rs6000/rs6000.c (rs6000_function_value): Fix
8542         unintentional System V.4 structure return breakage for structures
8543         with a single floating point element.
8545 2016-07-18  Yuri Rumyantsev  <ysrumyan@gmail.com>
8547         PR tree-optimization/71734
8548         * tree-ssa-loop-im.c (ref_indep_loop_p_1): Add REF_LOOP argument which
8549         contains REF, use it to check safelen, assume that safelen value
8550         must be greater 1, fix style.
8551         (ref_indep_loop_p_2): Add REF_LOOP argument.
8552         (ref_indep_loop_p): Pass LOOP as additional argument to
8553         ref_indep_loop_p_2.
8555 2016-07-18  Dominik Vogt  <vogt@linux.vnet.ibm.com>
8557         * cfgexpand.c (expand_stack_vars): Implement synamic stack space
8558         allocation in the prologue.
8559         * explow.c (get_dynamic_stack_base): New function to return an address
8560         expression for the dynamic stack base.
8561         (get_dynamic_stack_size): New function to do the required dynamic stack
8562         space size calculations.
8563         (allocate_dynamic_stack_space): Use new functions.
8564         (align_dynamic_address): Move some code from
8565         allocate_dynamic_stack_space to new function.
8566         * explow.h (get_dynamic_stack_base, get_dynamic_stack_size): Export.
8568 2016-07-18  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
8570         * config/s390/s390.c (s390_encode_section_info): Always set
8571         notaligned marker if mode size is 0 or no MEM_ALIGN info could be
8572         found.
8574 2016-07-18  Richard Biener  <rguenther@suse.de>
8576         PR tree-optimization/71893
8577         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Compensate
8578         for sizetype cast added by array_ref_element_size.
8579         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
8581 2016-07-16  John David Anglin  <danglin@gcc.gnu.org>
8583         * config/pa/pa.c (hppa_profile_hook): Allocate stack space for
8584         register parameters.  Remove code to initialize argument pointer
8585         on TARGET_64BIT.  Optimize call to _mcount when it can be reached
8586         using a pc-relative branch.  Cleanup conditional code.
8587         * config/pa/pa.md (call_mcount): New expander.
8588         (call_mcount_nonpic): New insn.
8589         (call_mcount_pic): New insn and split.
8590         (call_mcount_pic_post_reload): New insn.
8591         (call_mcount_64bit): New insn and split.
8592         (call_mcount_64bit_post_reload): New insn.
8594 2016-07-15  Georg-Johann Lay  <avr@gjlay.de>
8596         * config/avr/predicates.md (const_m255_to_m1_operand): New.
8597         * config/avr/constraints.md (Cn8, Ca1, Co1, Yx2): New constraints.
8598         * config/avr/avr.md (add<mode>3) <ALL1>: Fix set_vzn for +/-2.
8599         (*cmphi.zero-extend.0, *cmphi.zero-extend.1)
8600         (*usum_widenqihi3, *udiff_widenqihi3)
8601         (*addhi3_zero_extend.const): New combiner insns.
8602         (andqi3, iorqi3): Provide "l" (NO_LD_REGS) alternative if
8603         just 1 bit is affected.
8604         * config/avr/avr.c (avr_out_bitop) <QImode>: Don't access xop[3].
8605         (avr_out_compare) [EQ,NE]: Tweak comparing d-regs against -1.
8607 2016-07-15  Cesar Philippidis  <cesar@codesourcery.com>
8609         * omp-low.c (lower_omp_target): Mark data clauses with
8610         GOMP_MAP_FORCE_{PRESENT,TO,FROM,TOFROM} as potentially having
8611         zero-length subarrays.
8613 2016-07-15  Richard Biener  <rguenther@suse.de>
8615         PR tree-optimization/71881
8616         * tree-loop-distribution.c (destroy_loop): Remove blocks in
8617         reverse DOM order to make debug temp generation happy.
8619 2016-07-15  Richard Biener  <rguenther@suse.de>
8621         PR tree-optimization/71887
8622         * tree-ssa-phiopt.c (absorbing_element_p): Add rhs arg and
8623         verify it is not zero for division / modulo handling.
8624         (value_replacement): Adjust.
8626 2016-07-15  Virendra Pathak  <virendra.pathak@broadcom.com>
8627             Julian Brown  <julian@codesourcery.com>
8629         * config/aarch64/aarch64-cores.def: Update vulcan COSTS.
8630         * config/aarch64/aarch64-cost-tables.h
8631         (vulcan_extra_costs): New variable.
8632         * config/aarch64/aarch64.c
8633         (vulcan_addrcost_table): Likewise.
8634         (vulcan_regmove_cost): Likewise.
8635         (vulcan_vector_cost): Likewise.
8636         (vulcan_branch_cost): Likewise.
8637         (vulcan_tunings): Likewise.
8639 2016-07-15  Alexander Monakov  <amonakov@ispras.ru>
8641         * cgraphunit.c (cgraph_order_sort_kind): New entry ORDER_VAR_UNDEF.
8642         (output_in_order): Loop over undefined variables too.  Output them
8643         via assemble_undefined_decl.  Skip variables that correspond to hard
8644         registers or have value-exprs.
8645         * varpool.c (symbol_table::output_variables): Handle undefined
8646         variables together with defined ones.
8648 2016-07-15  Richard Biener  <rguenther@suse.de>
8650         * tree-ssa-pre.c (get_representative_for): Make sure to return
8651         the value number of SSA names.
8652         (phi_translate_1): get_representative_for cannot return NULL.
8653         (do_pre_regular_insertion): Remove redundant call to
8654         fully_constant_expression.
8655         (do_pre_partial_partial_insertion): Likewise.
8657 2016-07-15  Bin Cheng  <bin.cheng@arm.com>
8659         * tree-scalar-evolution.c (simple_iv_with_niters): New funcion.
8660         (derive_simple_iv_with_niters): New function.
8661         (simple_iv): Rewrite using simple_iv_with_niters.
8662         * tree-scalar-evolution.h (simple_iv_with_niters): New decl.
8663         * tree-ssa-loop-niter.c (number_of_iterations_exit_assumptions): New
8664         function.
8665         (number_of_iterations_exit): Rewrite using above function.
8666         * tree-ssa-loop-niter.h (number_of_iterations_exit_assumptions): New
8667         Decl.
8669 2016-07-15  Richard Biener  <rguenther@suse.de>
8671         * config/i386/i386.c (ix86_builtin_vectorization_cost): Adjust
8672         vec_construct cost.
8674 2016-07-14  Jakub Jelinek  <jakub@redhat.com>
8676         PR tree-optimization/71872
8677         * tree-data-ref.c (get_references_in_stmt): Ignore references
8678         with is_gimple_constant get_base_address.
8680 2016-07-14  Thomas Preud'homme  <thomas.preudhomme@arm.com>
8682         * config/arm/arm.h (TARGET_HAVE_LDACQ): Enable for ARMv8-M Mainline.
8683         (TARGET_HAVE_LDACQD): New macro.
8684         * config/arm/sync.md (atomic_loaddi): Use TARGET_HAVE_LDACQD rather
8685         than TARGET_HAVE_LDACQ.
8686         (arm_load_acquire_exclusivedi): Likewise.
8687         (arm_store_release_exclusivedi): Likewise.
8689 2016-07-14  Thomas Preud'homme  <thomas.preudhomme@arm.com>
8691         PR rtl-optimization/71878
8692         * lra-constraints.c (match_reload): Pass information about other
8693         output operands.  Create new unique register value if matching input
8694         operand shares same register value as output operand being considered.
8695         (curr_insn_transform): Record output operands already processed.
8697 2016-07-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8699         PR target/65951
8700         PR tree-optimization/70923
8701         * tree-vect-patterns.c: Include mult-synthesis.h.
8702         (target_supports_mult_synth_alg): New function.
8703         (synth_lshift_by_additions): Likewise.
8704         (apply_binop_and_append_stmt): Likewise.
8705         (vect_synth_mult_by_constant): Likewise.
8706         (target_has_vecop_for_code): Likewise.
8707         (vect_recog_mult_pattern): Use above functions to synthesize vector
8708         multiplication by integer constants.
8710 2016-07-14  Alan Modra  <amodra@gmail.com>
8712         * gcc/config/rs6000/altivec.md (altivec_mov<mode>): Disparage
8713         gpr alternatives.  Correct '*' placement on Y,r alternative.
8714         Add '*' on operand 1 of r,r alternative.
8716 2016-07-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8718         * expmed.c (mult_variant, choose_mult_variant): Move declaration to...
8719         * expmed.h: ... Here.
8721 2016-07-14  Jan Hubicka  <hubicka@ucw.cz>
8723         * gimple.h (stmt_can_terminate_bb_p): New function.
8724         * tree-cfg.c (need_fake_edge_p): Rename to ...
8725         (stmt_can_terminate_bb_p): ... this; return true if stmt can
8726         throw external; handle const and pure calls.
8727         * tree-ssa-loop-niter.c (loop_only_exit_p): Use it.
8729 2016-07-14  Richard Biener  <rguenther@suse.de>
8731         PR tree-optimization/71866
8732         * tree-ssa-pre.c (get_constant_for_value_id): Remove.
8733         (do_hoist_insertion): Avoid endless recursion when we
8734         didn't insert anything because we managed to simplify
8735         things down to a constant or SSA name.
8736         (fully_constant_expression): Re-write in terms of ...
8737         * tree-ssa-sccvn.h (vn_nary_simplify): ... this.  Declare.
8738         * tree-ssa-sccvn.c (vn_nary_simplify): New wrapper around
8739         vn_nary_build_or_lookup_1.
8740         (vn_nary_build_or_lookup_1): Added flag and renamed from ...
8741         (vn_nary_build_or_lookup): ... this which now wraps it.
8743 2016-07-14  Alan Modra  <amodra@gmail.com>
8745         PR target/71733
8746         * config/rs6000/rs6000.c (rs6000_option_override_internal): Deal
8747         with p9_vector override before power9-dform override.
8749 2016-07-13  Andi Kleen  <ak@linux.intel.com>
8751         * value-prof.c (gimple_value_profile_transformations): Don't run
8752         when auto_profile is on.
8754 2016-07-13  Andi Kleen  <ak@linux.intel.com>
8756         * auto-profile.c (update_inlined_ind_target,
8757         afdo_indirect_call): Print information to dump file.
8759 2016-07-13  Andrew Burgess  <andrew.burgess@embecosm.com>
8761         * genrecog.c (special_predicate_operand_p): New function.
8762         (predicate_name): Move function.
8763         (validate_pattern): Don't warn about missing mode for all
8764         define_special_predicate predicates.
8766 2016-07-13  Bin Cheng  <bin.cheng@arm.com>
8768         * tree-vect-data-refs.c (vect_no_alias_p): New function.
8769         (vect_prune_runtime_alias_test_list): Call vect_no_alias_p to
8770         resolve alias checks which are known at compilation time.
8771         Truncate vector LOOP_VINFO_MAY_ALIAS_DDRS(loop_vinfo) if all
8772         alias checks are resolved.  Move dump info for too many runtime
8773         alias checks to here...
8774         * tree-vect-loop.c (vect_analyze_loop_2): ...From here.
8776 2016-07-13  Richard Biener  <rguenther@suse.de>
8778         PR tree-optimization/24574
8779         * tree-ssa-phiopt.c (absorbing_element_p): Pass in argument
8780         position and add shift, rotate, divison and modulo support
8781         for left zero.
8782         (value_replacement): Pass in argument position to absorbing_element_p.
8784 2016-07-13  Ilya Enkovich  <ilya.enkovich@intel.com>
8786         PR ipa/71633
8787         * ipa-inline-transform.c (inline_call): Support
8788         instrumented thunks.
8790 2016-07-13  Thomas Preud'homme  <thomas.preudhomme@arm.com>
8792         * config/arm/arm.h (TARGET_HAVE_CBZ): Define.
8793         (TARGET_IDIV): Set for all Thumb targets provided they have hardware
8794         divide feature.
8795         * config/arm/arm.md (divsi3): New unpredicable alternative for ARMv8-M
8796         Baseline.  Make initial alternative TARGET_32BIT only.
8797         (udivsi3): Likewise.
8798         * config/arm/thumb1.md (thumb1_cbz): New define_insn.
8799         * doc/sourcebuild.texi (arm_thumb1_cbz_ok): Document new effective
8800         target.
8802 2016-07-13  Thomas Preud'homme  <thomas.preudhomme@arm.com>
8804         * config/arm/arm.h (TARGET_HAVE_MOVT): Include ARMv8-M as having MOVT.
8805         * config/arm/arm.c (arm_arch_name): (const_ok_for_op): Check MOVT/MOVW
8806         availability with TARGET_HAVE_MOVT.
8807         (thumb_legitimate_constant_p): Strip the high part of a label_ref.
8808         (thumb1_rtx_costs): Also return 0 if setting a half word constant and
8809         MOVW is available and replace (unsigned HOST_WIDE_INT) INTVAL by
8810         UINTVAL.
8811         (thumb1_size_rtx_costs): Make set of half word constant also cost 1
8812         extra instruction if MOVW is available.  Use a cost variable
8813         incremented by COSTS_N_INSNS (1) when the condition match rather than
8814         returning an arithmetic expression based on COSTS_N_INSNS.  Make
8815         constant with bottom half word zero cost 2 instruction if MOVW is
8816         available.
8817         * config/arm/arm.md (define_attr "arch"): Add v8mb.
8818         (define_attr "arch_enabled"): Set to yes if arch value is v8mb and
8819         target is ARMv8-M Baseline.
8820         (arm_movt): New unpredicable alternative for ARMv8-M Baseline.
8821         (arm_movtas_ze): Likewise.
8822         * config/arm/thumb1.md (thumb1_movdi_insn): Add ARMv8-M Baseline only
8823         alternative for constants satisfying j constraint.
8824         (thumb1_movsi_insn): Likewise.
8825         (movsi splitter for K alternative): Tighten condition to not trigger
8826         if movt is available and j constraint is satisfied.
8827         (Pe immediate splitter): Likewise.
8828         (thumb1_movhi_insn): Add ARMv8-M Baseline only alternative for
8829         constant fitting in an halfword to use MOVW.
8830         * doc/sourcebuild.texi (arm_thumb1_movt_ok): Document new ARM
8831         effective target.
8833 2016-07-13  Richard Biener  <rguenther@suse.de>
8835         PR middle-end/71104
8836         * gimplify.c (gimplify_modify_expr): Gimplify the RHS before
8837         gimplifying the LHS.  Make sure to gimplify a returning twice
8838         call LHS without using SSA names.
8840 2016-07-12  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
8842         * tree-data-ref.c (find_data_references_in_stmt): Remove
8843         unnecessary call to vec::release.
8844         (graphite_find_data_references_in_stmt): Likewise.
8845         * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p): Likewise.
8846         * tree-vect-stmts.c (vectorizable_condition): Likewise.
8848 2016-07-12  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
8850         * cfgexpand.c (expand_used_vars): Make the type of a local
8851         variable auto_vec.
8852         * genmatch.c (lower_for): Likewise.
8853         * haifa-sched.c (haifa_sched_init): Likewise.
8854         (add_to_speculative_block): Likewise.
8855         (create_check_block_twin): Likewise.
8856         * predict.c (handle_missing_profiles): Likewise.
8857         * tree-data-ref.c (loop_nest_has_data_refs): Likewise.
8858         * tree-diagnostic.c (maybe_unwind_expanded_macro_loc): Likewise.
8859         * tree-ssa-loop-niter.c (discover_iteration_bound_by_body_walk):
8860         Likewise.
8861         (maybe_lower_iteration_bound): Likewise.
8862         * tree-ssa-sccvn.c (DFS): Likewise.
8863         * tree-stdarg.c (reachable_at_most_once): Likewise.
8864         * tree-vect-stmts.c (vectorizable_conversion): Likewise.
8865         (vectorizable_store): Likewise.
8867 2016-07-12  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
8869         * tree-ssa-sccvn.c (sccvn_dom_walker::~sccvn_dom_walker): remove.
8870         (sccvn_dom_walker): make cond_stack an auto_vec.
8872 2016-07-12  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
8874         * ree.c (struct ext_state): Make type of members auto_vec.
8875         (find_and_remove_re): Adjust.
8877 2016-07-12  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
8879         * cfgexpand.c (struct stack_vars_data): Make type of fields
8880         auto_vec.
8881         (expand_used_vars): Adjust.
8883 2016-07-12  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
8885         * ipa.c (record_cdtor_fn): Adjust.
8886         (build_cdtor_fns): Likewise.
8887         (ipa_cdtor_merge): Make static_ctors and static_dtors local
8888         variables.
8890 2016-07-12  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
8892         * genextract.c (struct accum_extract): Add constructor and make
8893         members auto_vec.
8894         (gen_insn): Adjust.
8896 2016-07-12  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
8898         * tree.c (struct free_lang_data_d): Add constructor and change
8899         types of members to ones that automatically manage resources.
8900         (fld_worklist_push): Adjust.
8901         (find_decls_types): Likewise.
8902         (find_decls_types_in_eh_region): Likewise.
8903         (free_lang_data_in_cgraph): Stop manually creating and
8904         destroying members of free_lang_data_d.
8906 2016-07-13  Uros Bizjak  <ubizjak@gmail.com>
8908         PR rtl-optimization/68961
8909         * config/i386/sse.md (movsd/movhpd to movupd peephole2s): Add new
8910         peephole variant.  Use sse_reg_operand predicates.
8912 2016-07-12  Uros Bizjak  <ubizjak@gmail.com>
8914         * config/i386/predicates.md (x86_64_immediate_operand)
8915         <case CONST_INT>: Remove unneeded truncation to DImode.
8916         <case CONST>: Ditto.
8917         (x86_64_zext_immediate_operand) <case CONST>: Ditto.
8919 2016-07-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
8921         PR target/71805
8922         * config/rs6000/altivec.md (altivec_vperm_<mode>_internal):
8923         The xxperm and xxpermr instructions require that the 2nd input
8924         operand overlap with the output operand, and not the 1st.
8925         (altivec_vperm_v8hiv16qi): Likewise.
8926         (altivec_vperm_<mode>_uns_internal): Likewise.
8927         (altivec_vpermr_<mode>_internal): Likewise.
8928         (vperm_v8hiv4si): Likewise.
8929         (vperm_v16qiv8hi): Likewise.
8931 2016-07-12  Nathan Sidwell  <nathan@acm.org>
8933         * config/arm/arm.c (arm_option_override): Set MASK_SINGLE_PIC_BASE
8934         when -mno-pic-data-is-text-relative is in effect, by default.
8935         * doc/invoke.texi (mpic-data-is-text-relative): Document new
8936         behavior and clarify.
8938 2016-07-12  Martin Liska  <mliska@suse.cz>
8940         * params.def: Add avg-loop niter.
8941         * tree-ssa-loop-ivopts.c (avg_loop_niter): Use the param.
8942         * cfgloopanal.c (expected_loop_iterations_unbounded): Likewise.
8943         * doc/invoke.texi: Document the new parameter.
8945 2016-07-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8947         PR middle-end/71700
8948         * expr.c (store_constructor): Mask sign-extended bits when widening
8949         sub-word constructor element at the start of a word.
8951 2016-07-12  Martin Liska  <mliska@suse.cz>
8953         * Makefile.in: Append rule for params-options.h.
8954         * params-options.h: New file.
8956 2016-07-12  Martin Liska  <mliska@suse.cz>
8958         * ira-build.c (mark_loops_for_removal): Properly iterate
8959         loops.
8961 2016-07-12  Steven Bosscher  <steven@gcc.gnu.org>
8962             Richard Biener  <rguenther@suse.de>
8964         PR tree-optimization/23286
8965         PR tree-optimization/70159
8966         * doc/invoke.texi: Document -fcode-hoisting.
8967         * common.opt (fcode-hoisting): New flag.
8968         * opts.c (default_options_table): Enable -fcode-hoisting at -O2+.
8969         * tree-ssa-pre.c (pre_stats): Add hoist_insert.
8970         (do_regular_insertion): Rename to ...
8971         (do_pre_regular_insertion): ... this and amend general comments
8972         on insertion strathegy.
8973         (do_partial_partial_insertion): Rename to ...
8974         (do_pre_partial_partial_insertion): ... this.
8975         (do_hoist_insertion): New function.
8976         (insert_aux): Take flags on whether to do PRE and/or hoist insertion
8977         and call do_hoist_insertion properly.
8978         (insert): Adjust.
8979         (pass_pre::gate): Enable also if -fcode-hoisting is enabled.
8980         (pass_pre::execute): Register hoist_insert stats.
8982 2016-07-12  Jakub Jelinek  <jakub@redhat.com>
8984         PR middle-end/71716
8985         * gimple-fold.c (optimize_atomic_compare_exchange_p): Return false
8986         for SCALAR_FLOAT_TYPE_P type of expected var, or if TYPE_PRECISION
8987         is different from mode's bitsize.  Small cleanup.
8989 2016-07-12  Richard Biener  <rguenther@suse.de>
8991         PR rtl-optimization/68961
8992         * fwprop.c (propagate_rtx): Allow SUBREGs of VEC_CONCAT and CONCAT
8993         to simplify to a non-constant.
8995 2016-07-11  Jakub Jelinek  <jakub@redhat.com>
8997         PR middle-end/71758
8998         * omp-low.c (expand_omp_target): Gimplify device.
9000         PR tree-optimization/71823
9001         * tree-vect-stmts.c (vectorizable_operation): Use vect_get_vec_defs
9002         to get vec_oprnds2 from op2.
9004 2016-07-11  Uros Bizjak  <ubizjak@gmail.com>
9006         * config/i386/predicates.md (x86_64_immediate_operand) <case CONST>:
9007         Hoist common subexpressions.
9008         (x86_64_zext_immediate_operand) <case CONST>: Ditto.
9010 2016-07-11  Pat Haugen  <pthaugen@us.ibm.com>
9012         PR target/71800
9013         * config/rs6000/rs6000.md (stfiwx): Change constraint to 'wu' to
9014         prevent generation of 'stxsiwx' on pre Power8 hardware.
9016 2016-07-11  David Malcolm  <dmalcolm@redhat.com>
9018         * input.c: Include cpplib.h.
9019         (selftest::temp_source_file): New class.
9020         (selftest::temp_source_file::temp_source_file): New ctor.
9021         (selftest::temp_source_file::~temp_source_file): New dtor.
9022         (selftest::should_have_column_data_p): New function.
9023         (selftest::test_should_have_column_data_p): New function.
9024         (selftest::temp_line_table): New class.
9025         (selftest::temp_line_table::temp_line_table): New ctor.
9026         (selftest::temp_line_table::~temp_line_table): New dtor.
9027         (selftest::test_accessing_ordinary_linemaps): Add case_ param; use
9028         it to create a temp_line_table.
9029         (selftest::assert_loceq): Only verify LOCATION_COLUMN for
9030         locations that are known to have column data.
9031         (selftest::line_table_case): New struct.
9032         (selftest::test_reading_source_line): Move tempfile handling
9033         to class temp_source_file.
9034         (ASSERT_TOKEN_AS_TEXT_EQ): New macro.
9035         (selftest::assert_token_loc_eq): New function.
9036         (ASSERT_TOKEN_LOC_EQ): New macro.
9037         (selftest::test_lexer): New function.
9038         (selftest::boundary_locations): New array.
9039         (selftest::input_c_tests): Call test_should_have_column_data_p.
9040         Loop over a test matrix of interesting values of location and
9041         default_range_bits, calling test_lexer on each case in the matrix.
9042         Move call to test_accessing_ordinary_linemaps into the matrix.
9043         * selftest.h (ASSERT_EQ): Reimplement in terms of...
9044         (ASSERT_EQ_AT): New macro.
9046 2016-07-11  H.J. Lu  <hongjiu.lu@intel.com>
9048         PR target/71801
9049         * config/i386/i386.c (timode_scalar_chain::fix_debug_reg_uses):
9050         Don't convert TImode in debug insn.
9052 2016-07-11  Bernd Edlinger  <bernd.edlinger@hotmail.de>
9054         Convert TYPE_ALIGN_OK to a TYPE_LANG_FLAG.
9055         * tree-core.h (tree_base::nothrow_flag): Adjust comment.
9056         (tree_type_common::lang_flag_7): New.
9057         (tree_type_common::spare): Reduce size.
9058         * tree.h (TYPE_ALIGN_OK): Remove.
9059         (TYPE_LANG_FLAG_7): New.
9060         (get_inner_reference): Adjust header.
9061         * print-tree.c (print_node): Adjust.
9062         * expr.c (get_inner_reference): Remove parameter keep_aligning.
9063         (get_bit_range, expand_assignment, expand_expr_addr_expr_1): Adjust
9064         calls to get_inner_reference.
9065         (expand_expr_real_1): Adjust call to get_inner_reference.  Remove
9066         handling of TYPE_ALIGN_OK.
9067         * builtins.c (get_object_alignment_2): Adjust call to
9068         get_inner_reference.  Remove handling of VIEW_CONVERT_EXPR.
9069         * emit-rtl.c (set_mem_attributes_minus_bitpos): Remove handling of
9070         TYPE_ALIGN_OK.
9071         * asan.c (instrument_derefs): Adjust calls to get_inner_reference.
9072         * cfgexpand.c (expand_debug_expr): Likewise.
9073         * dbxout.c (dbxout_expand_expr): Likewise.
9074         * dwarf2out.c (loc_list_for_address_of_addr_expr_of_indirect_ref,
9075         loc_list_from_tree, fortran_common): Likewise.
9076         * fold-const.c (optimize_bit_field_compare,
9077         decode_field_reference, fold_unary_loc, fold_comparison,
9078         split_address_to_core_and_offset): Likewise.
9079         * gimple-laddress.c (execute): Likewise.
9080         * gimple-ssa-strength-reduction.c (slsr_process_ref): Likewise.
9081         * gimplify.c (gimplify_scan_omp_clauses): Likewise.
9082         * hsa-gen.c (gen_hsa_addr): Likewise.
9083         * simplifx-rtx.c (delegitimize_mem_from_attrs): Likewise.
9084         * tsan.c (instrument_expr): Likewise.
9085         * ubsan.c (instrument_bool_enum_load, instrument_object_size): Likewise.
9086         * tree.c (verify_type_variant): Remove handling of TYPE_ALIGN_OK.
9087         * tree-affine.c (tree_to_aff_combination,
9088         get_inner_reference_aff): Adjust calls to get_inner_reference.
9089         * tree-data-ref.c (split_constant_offset_1,
9090         dr_analyze_innermost): Likewise.
9091         * tree-scalar-evolution.c (interpret_rhs_expr): Likewise.
9092         * tree-sra.c (ipa_sra_check_caller): Likewise.
9093         * tree-ssa-loop-ivopts.c (split_address_cost): Likewise.
9094         * tree-ssa-math-opts.c (find_bswap_or_nop_load,
9095         bswap_replace): Likewise.
9096         * tree-vect-data-refs.c (vect_check_gather,
9097         vect_analyze_data_refs): Likewise.
9098         * config/mips/mips.c (r10k_safe_mem_expr_p): Likewise.
9099         * config/pa/pa.c (pa_emit_move_sequence): Remove handling of
9100         TYPE_ALIGN_OK.
9102 2016-07-11  David Malcolm  <dmalcolm@redhat.com>
9104         * Makefile.in (selftest-valgrind): New phony target.
9105         * function-tests.c (selftest::build_cfg): Delete pass instances
9106         created by the test.
9107         (selftest::convert_to_ssa): Likewise.
9108         (selftest::test_expansion_to_rtl): Likewise.
9109         * tree-cfg.c (selftest::test_linear_chain): Release dominator
9110         vectors.
9111         (selftest::test_diamond): Likewise.
9113 2016-07-11  Richard Biener  <rguenther@suse.de>
9115         PR tree-optimization/71816
9116         * tree-ssa-pre.c (compute_avail): Adjust alignment of ref rather
9117         than replacing all of its operands.
9119 2016-07-11  Alan Modra  <amodra@gmail.com>
9121         * config/rs6000/rs6000.md (UNSPEC_DOLOOP): New unspec.
9122         (ctr<mode>): Add unspec.
9123         (ctr<mode>_internal*): Likewise.
9125 2016-07-08  James Bowman  <james.bowman@ftdichip.com>
9127         * config/ft32/ft32.c (ft32_elf_encode_section_info): New function.
9128         * config/ft32/ft32.h (ASM_OUTPUT_SYMBOL_REF): New function.
9130 2016-07-08  Vladimir Makarov  <vmakarov@redhat.com>
9132         PR rtl-optimization/71621
9133         * lra-constraints.c (process_alt_operands): Check combination of
9134         reg class and mode.
9136 2016-07-08  Jason Merrill  <jason@redhat.com>
9137             Richard Biener  <rguenther@suse.de>
9139         P0145: Refining Expression Order for C++.
9140         * gimplify.c (initial_rhs_predicate_for): New.
9141         (gimplfy_modify_expr): Gimplify RHS before LHS.
9143 2016-07-08  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
9145         PR target/71297
9146         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
9147         Allow standard error handling to take over when a wrong number
9148         of arguments is presented to __builtin_vec_ld () or
9149         __builtin_vec_st ().
9151 2016-07-08  Jiong Wang  <jiong.wang@arm.com>
9153         * config/aarch64/aarch64-simd-builtins.def (smax): Remove float
9154         variants.
9155         (smin): Likewise.
9156         (fmax): New entry.
9157         (fmin): Likewise.
9158         * config/aarch64/arm_neon.h (vmaxnm_f32): Use
9159         __builtin_aarch64_fmaxv2sf.
9160         (vmaxnmq_f32): Likewise.
9161         (vmaxnmq_f64): Likewise.
9162         (vminnm_f32): Likewise.
9163         (vminnmq_f32): Likewise.
9164         (vminnmq_f64): Likewise.
9166 2016-07-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
9168         PR target/71806
9169         * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Do not
9170         enable -mfloat128-hardware by default.
9171         (ISA_3_0_MASKS_IEEE): New macro to give all of the VSX options
9172         that IEEE 128-bit hardware support needs.
9173         * config/rs6000/rs6000.c (rs6000_option_override_internal): If
9174         -mcpu=power9 -mfloat128, enable -mfloat128-hardware by default.
9175         Use ISA_3_0_MASKS_IEEE as the set of options that IEEE 128-bit
9176         floating point requires.
9177         * doc/invoke.texi (RS/6000 and PowerPC Options): Document
9178         -mfloat128 and -mfloat128-hardware changes.
9180 2016-07-08  Alan Hayward  <alan.hayward@arm.com>
9182         PR tree-optimization/71667
9183         * tree-vect-loop.c (vectorizable_live_operation): ignore DEBUG stmts
9185 2016-07-08  Martin Liska  <mliska@suse.cz>
9187         PR middle-end/71606
9188         * fold-const.c (fold_convertible_p): As COMPLEX_TYPE
9189         folding produces SAVE_EXPRs, thus return false for the type.
9191 2016-07-07  Martin Liska  <mliska@suse.cz>
9193         * file-find.c (remove_prefix): New function.
9194         * file-find.h (remove_prefix): Declare the function.
9195         * gcc-ar.c (main): Skip a folder of the wrapper if
9196         a wrapped binary would point to the same file.
9198 2016-07-07  Jan Hubicka  <jh@suse.cz>
9200         * tree-scalar-evolution.c (iv_can_overflow_p): export.
9201         * tree-scalar-evolution.h (iv_can_overflow_p): Declare.
9202         * tree-ssa-loop-ivopts.c (alloc_iv): Use it.
9204 2016-07-07  Ilya Enkovich  <ilya.enkovich@intel.com>
9206         PR ipa/71624
9207         * ipa-inline-analysis.c (compute_inline_parameters): Set
9208         local.can_change_signature to false for intrumentation
9209         thunk callees.
9211 2016-07-07  Thomas Preud'homme  <thomas.preudhomme@arm.com>
9213         * config/arm/arm.h (TARGET_USE_MOVT): Check MOVT/MOVW availability
9214         with TARGET_HAVE_MOVT.
9215         (TARGET_HAVE_MOVT): Define.
9216         * config/arm/arm.c (const_ok_for_op): Check MOVT/MOVW
9217         availability with TARGET_HAVE_MOVT.
9218         * config/arm/arm.md (arm_movt): Use TARGET_HAVE_MOVT to check MOVT
9219         availability.
9220         (addsi splitter): Use TARGET_THUMB && TARGET_HAVE_MOVT rather than
9221         TARGET_THUMB2.
9222         (symbol_refs movsi splitter): Remove TARGET_32BIT check.
9223         (arm_movtas_ze): Use TARGET_HAVE_MOVT to check MOVT availability.
9224         * config/arm/constraints.md (define_constraint "j"): Use
9225         TARGET_HAVE_MOVT to check MOVT availability.
9227 2016-07-07  Thomas Preud'homme  <thomas.preudhomme@arm.com>
9229         * config/arm/arm-protos.h: Reindent FL_FOR_* macro definitions.
9231 2016-07-07  Thomas Preud'homme  <thomas.preudhomme@arm.com>
9233         * config/arm/arm-arches.def (armv8-m.base): Define new architecture.
9234         (armv8-m.main): Likewise.
9235         (armv8-m.main+dsp): Likewise.
9236         * config/arm/arm-protos.h (FL_FOR_ARCH8M_BASE): Define.
9237         (FL_FOR_ARCH8M_MAIN): Likewise.
9238         * config/arm/arm-tables.opt: Regenerate.
9239         * config/arm/bpabi.h: Add armv8-m.base, armv8-m.main and
9240         armv8-m.main+dsp to BE8_LINK_SPEC.
9241         * config/arm/arm.h (TARGET_HAVE_LDACQ): Exclude ARMv8-M.
9242         (enum base_architecture): Add BASE_ARCH_8M_BASE and BASE_ARCH_8M_MAIN.
9243         * config/arm/arm.c (arm_arch_name): Increase size to work with ARMv8-M
9244         Baseline and Mainline.
9245         (arm_option_override_internal): Also disable arm_restrict_it when
9246         !arm_arch_notm.  Update comment for -munaligned-access to also cover
9247         ARMv8-M Baseline.
9248         (arm_file_start): Increase buffer size for printing architecture name.
9249         * doc/invoke.texi: Document architectures armv8-m.base, armv8-m.main
9250         and armv8-m.main+dsp.
9251         (mno-unaligned-access): Clarify that this is disabled by default for
9252         ARMv8-M Baseline architectures as well.
9254 2016-07-07  Thomas Preud'homme  <thomas.preudhomme@arm.com>
9256         * config/arm/elf.h: Use __ARM_ARCH_ISA_THUMB and __ARM_ARCH_ISA_ARM to
9257         decide whether to prevent some libgcc routines being included for some
9258         multilibs rather than __ARM_ARCH_6M__ and add comment to indicate the
9259         link between this condition and the one in
9260         libgcc/config/arm/lib1func.S.
9262 2016-07-07  Richard Biener  <rguenther@suse.de>
9264         * tree-ssa-pre.c: Include alias.h.
9265         (compute_avail): If we have multiple VN_REFERENCEs with the
9266         same hashtable entry adjust that to make it a valid replacement
9267         for all of them with respect to alignment and aliasing
9268         when doing insertion.
9269         * tree-ssa-sccvn.h (vn_reference_operands_for_lookup): Declare.
9270         * tree-ssa-sccvn.c (vn_reference_operands_for_lookup): New function.
9272 2016-07-06  Segher Boessenkool  <segher@kernel.crashing.org>
9274         PR target/70098
9275         PR target/71763
9276         * config/rs6000/rs6000.md (*ctr<mode>_internal1, *ctr<mode>_internal2,
9277         *ctr<mode>_internal5, *ctr<mode>_internal6): Add *wi to the output
9278         constraint.
9280 2016-07-06  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
9282         * var-tracking.c (struct adjust_mem_data): Make side_effects a vector.
9283         (adjust_mems): Adjust.
9284         (adjust_insn): Likewise.
9285         (prepare_call_arguments): Likewise.
9287 2016-07-06  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
9289         * gcse.c (struct ls_expr): Make stores field a vector.
9290         (ldst_entry): Adjust.
9291         (free_ldst_entry): Likewise.
9292         (print_ldst_list): Likewise.
9293         (compute_ld_motion_mems): Likewise.
9294         (update_ld_motion_stores): Likewise.
9296 2016-07-06  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
9298         * gcse.c (struct ls_expr): Remove loads field.
9299         (ldst_entry): Adjust.
9300         (free_ldst_entry): Likewise.
9301         (print_ldst_list): Likewise.
9302         (compute_ld_motion_mems): Likewise.
9304 2016-07-06  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
9306         * store-motion.c (struct st_expr): Make antic_stores a vector.
9307         (st_expr_entry): Adjust.
9308         (free_st_expr_entry): Likewise.
9309         (print_store_motion_mems): Likewise.
9310         (find_moveable_store): Likewise.
9311         (compute_store_table): Likewise.
9312         (remove_reachable_equiv_notes): Likewise.
9313         (replace_store_insn): Likewise.
9314         (build_store_vectors): Likewise.
9316 2016-07-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9318         * config/arm/driver-arm.c (arm_cpu_table): Add entries for cortex-a32,
9319         cortex-a35, cortex-a53, cortex-a57, cortex-a72, cortex-a73.
9321 2016-07-06  Yuri Rumyantsev  <ysrumyan@gmail.com>
9323         PR tree-optimization/71518
9324         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Adjust
9325         misalign also for outer loops with negative step.
9327 2016-07-06  Wilco Dijkstra  <wdijkstr@arm.com>
9329         * config/arm/cortex-a53.md: Use final_presence_set for in-order.
9330         (cortex_a53_shift): Add mov_shift.
9331         (cortex_a53_shift_reg): Add new reservation for register shifts.
9332         (cortex_a53_alu): Remove bfm.
9333         (cortex_a53_alu_shift): Add bfm, remove mov_shift.
9334         (cortex_a53_alu_extr): Add new reservation for EXTR.
9335         (bypasses): Improve bypass modelling.
9337 2016-07-06  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
9339         PR target/50739
9340         * config/avr/avr.c (avr_asm_select_section): Strip off
9341         SECTION_DECLARED from flags when calling get_section.
9343 2016-07-06  Richard Sandiford  <richard.sandiford@arm.com>
9345         * tree-vectorizer.h (vect_memory_access_type): Add
9346         VMAT_INVARIANT, VMAT_CONTIGUOUS_DOWN and VMAT_CONTIGUOUS_REVERSED.
9347         * tree-vect-stmts.c (compare_step_with_zero): New function.
9348         (perm_mask_for_reverse): Move further up file.
9349         (get_group_load_store_type): Stick to VMAT_ELEMENTWISE if the
9350         step is negative.
9351         (get_negative_load_store_type): New function.
9352         (get_load_store_type): Call it.  Add an ncopies argument.
9353         (vectorizable_mask_load_store): Update call accordingly and
9354         remove tests for negative steps.
9355         (vectorizable_store, vectorizable_load): Likewise.  Handle new
9356         memory_access_types.
9358 2016-07-06  Richard Sandiford  <richard.sandiford@arm.com>
9360         * tree-vectorizer.h (vect_memory_access_type): New enum.
9361         (_stmt_vec_info): Add a memory_access_type field.
9362         (STMT_VINFO_MEMORY_ACCESS_TYPE): New macro.
9363         (vect_model_store_cost): Take an access type instead of a boolean.
9364         (vect_model_load_cost): Likewise.
9365         * tree-vect-slp.c (vect_analyze_slp_cost_1): Update calls to
9366         vect_model_store_cost and vect_model_load_cost.
9367         * tree-vect-stmts.c (vec_load_store_type): New enum.
9368         (vect_model_store_cost): Take an access type instead of a
9369         store_lanes_p boolean.  Simplify tests.
9370         (vect_model_load_cost): Likewise, but for load_lanes_p.
9371         (get_group_load_store_type, get_load_store_type): New functions.
9372         (vectorizable_store): Use get_load_store_type.  Record the access
9373         type in STMT_VINFO_MEMORY_ACCESS_TYPE.
9374         (vectorizable_load): Likewise.
9375         (vectorizable_mask_load_store): Likewise.  Replace is_store
9376         variable with vls_type.
9378 2016-07-06  Richard Sandiford  <richard.sandiford@arm.com>
9380         * tree-vectorizer.h (vect_grouped_load_supported): Add a
9381         single_element_p parameter.
9382         * tree-vect-data-refs.c (vect_grouped_load_supported): Likewise.
9383         Check the PR65518 case here rather than in vectorizable_load.
9384         * tree-vect-loop.c (vect_analyze_loop_2): Update call accordignly.
9385         * tree-vect-stmts.c (vectorizable_load): Likewise.
9387 2016-07-06  Richard Sandiford  <richard.sandiford@arm.com>
9389         * tree-vectorizer.h (gather_scatter_info): New structure.
9390         (vect_check_gather_scatter): Return a bool rather than a decl.
9391         Replace return-by-pointer arguments with a single
9392         gather_scatter_info *.
9393         * tree-vect-data-refs.c (vect_check_gather_scatter): Likewise.
9394         (vect_analyze_data_refs): Update call accordingly.
9395         * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Likewise.
9396         (vectorizable_mask_load_store): Likewise.  Also record the
9397         offset dt and vectype in the gather_scatter_info.
9398         (vectorizable_store): Likewise.
9399         (vectorizable_load): Likewise.
9401 2016-07-06  Richard Sandiford  <richard.sandiford@arm.com>
9403         * tree-vect-stmts.c (vect_model_store_cost): For non-SLP
9404         strided groups, use the cost of N scalar accesses instead
9405         of ncopies vector accesses.
9406         (vect_model_load_cost): Likewise.
9408 2016-07-06  Richard Sandiford  <richard.sandiford@arm.com>
9410         * tree-vect-stmts.c (vect_cost_group_size): Delete.
9411         (vect_model_store_cost): Avoid calling it.  Use first_stmt_p
9412         variable to indicate when once-per-group costs are being used.
9413         (vect_model_load_cost): Likewise.  Fix comment and misindented code.
9415 2016-07-06  Richard Sandiford  <richard.sandiford@arm.com>
9417         * tree-vect-stmts.c (vectorizable_load): Remove unnecessary
9418         peeling-for-gaps condition.
9420 2016-07-06  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
9422         * config/s390/s390.c (s390_expand_vec_init): Force initializer
9423         element to register if it doesn't match general_operand.
9425 2016-07-05  Michael Meissner  <meissner@linux.vnet.ibm.com>
9426             Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
9428         * config/rs6000/rs6000-protos.h (rs6000_split_signbit): New
9429         prototype.
9430         * config/rs6000/rs6000.c (rs6000_split_signbit): New function.
9431         * config/rs6000/rs6000.md (UNSPEC_SIGNBIT): New constant.
9432         (SIGNBIT): New mode iterator.
9433         (Fsignbit): New mode attribute.
9434         (signbit<mode>2): Change operand1 to match FLOAT128 instead of
9435         IBM128; dispatch to gen_signbit{kf,tf}2_dm for __float128
9436         when direct moves are available.
9437         (signbit<mode>2_dm): New define_insn_and_split).
9438         (signbit<mode>2_dm2): New define_insn.
9440 2016-07-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9442         PR rtl-optimization/71594
9443         * ifcvt.c (noce_convert_multiple_sets): Wrap new_val or old_val
9444         into subregs of appropriate mode before trying to emit a conditional
9445         move.
9447 2016-07-05  Jan Hubicka  <jh@suse.cz>
9449         * tree-scalar-evolution.c (iv_can_overflow_p): New function.
9450         (simple_iv): Use it.
9452 2016-07-05  Jan Hubicka  <jh@suse.cz>
9454         * tree-ssa-loop-niter.c (nowrap_type_p): Use ANY_INTEGRAL_TYPE_P.
9456 2016-07-05  Jiong Wang  <jiong.wang@arm.com>
9458         * lra-constraints.c (process_alt_operands): Don't add spilling cost for
9459         "offmemok".
9461 2016-07-05  Jan Hubicka  <jh@suse.cz>
9463         * tree-scalar-evoluiton.c (simple_iv): Use nowrap_type to check if
9464         IV can overflow.
9466 2016-07-05  Richard Biener  <rguenther@suse.de>
9468         * gimple-ssa-split-paths.c (find_block_to_duplicate_for_splitting_pa):
9469         Handle empty else block.
9470         (is_feasible_trace): Likewise.
9471         (split_paths): Likewise.
9473 2016-07-05  Richard Biener  <rguenther@suse.de>
9475         * tree-loop-distribution.c (distribute_loop): Fix issue with
9476         the cost model loop.
9478 2016-07-05  Christophe Lyon  <christophe.lyon@linaro.org>
9480         * config/arm/neon-testgen.ml: Delete.
9481         * config/arm/neon.ml: Delete.
9483 2016-07-04  Jakub Jelinek  <jakub@redhat.com>
9485         PR c++/71739
9486         * tree.c (attribute_value_equal): Use get_attribute_name instead of
9487         directly using TREE_PURPOSE.
9489 2016-07-04  Jiong Wang  <jiong.wang@arm.com>
9491         * config/aarch64/aarch64.h: Rename "ARMv8.1" to "ARMv8.1-A".
9492         * config/aarch64/aarch64_neon.h: Likewise.
9493         * config/aarch64/arm_neon.h: Likewise.
9494         * config/aarch64/atomics.md: Likewise.
9495         * config/aarch64/aarch64-simd-builtins.def: Likewise.
9496         * doc/invoke.texi: Likewise.
9498 2016-07-04  Dominik Vogt  <vogt@linux.vnet.ibm.com>
9500         * config/s390/s390.md: Add "z13" cpu_facility.
9501         ("*mov<mode>cc"): Add support for z13 instructions lochi and locghi.
9502         * config/s390/predicates.md ("loc_operand"): New predicate for "load on
9503         condition" type instructions.
9505 2016-07-04  Dominik Vogt  <vogt@linux.vnet.ibm.com>
9506             Jeff Law  <law@redhat.com>
9508         * explow.c (allocate_dynamic_stack_space): Simplify knowing that
9509         MUST_ALIGN was always true and extra_align ist always BITS_PER_UNIT.
9511 2016-07-04  Yuri Rumyantsev  <ysrumyan@gmail.com>
9513         * config/i386/i386.c (ix86_expand_vec_perm): Add handle one-operand
9514         permutation for TARGET_AVX512F.
9515         (ix86_expand_vec_one_operand_perm_avx512): New function.
9516         (expand_vec_perm_1): Invoke introduced function.
9517         * tree-vect-loop.c (vect_transform_loop): Clear-up safelen value since
9518         it may be not valid after vectorization.
9520 2016-07-04  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
9522         PR target/63874
9523         * config/aarch64/aarch64.c (aarch64_classify_symbol): Fix
9524         typo in comment.  Only force to memory if it is a weak
9525         external reference.
9527 2016-07-04  Matthew Wahab  <matthew.wahab@arm.com>
9528             Jiong Wang  <jiong.wang@arm.com>
9530         * config/aarch64/aarch64-arches.def: Add "armv8.2-a".
9531         * config/aarch64/aarch64.h (AARCH64_FL_V8_2): New.
9532         (AARCH64_FL_F16): New.
9533         (AARCH64_FL_FOR_ARCH8_2): New.
9534         (AARCH64_ISA_8_2): New.
9535         (AARCH64_ISA_F16): New.
9536         (TARGET_FP_F16INST): New.
9537         (TARGET_SIMD_F16INST): New.
9538         * config/aarch64/aarch64-option-extensions.def ("fp16"): New entry.
9539         ("fp"): Disabling "fp" also disables "fp16".
9540         * config/aarch64/aarch64-c.c (arch64_update_cpp_builtins):
9541         Conditionally define __ARM_FEATURE_FP16_SCALAR_ARITHMETIC
9542         and __ARM_FEATURE_FP16_VECTOR_ARITHMETIC.
9543         * doc/invoke.texi (AArch64 Options): Document "armv8.2-a" and "fp16".
9545 2016-07-04  Jan Beulich  <jbeulich@suse.com>
9547         * gcc.c (default_compilers["@c-header"]): Conditionalize "-o".
9549 2016-07-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
9551         PR target/71720
9552         * config/rs6000/vsx.md (vsx_splat_v4sf_internal): When splitting
9553         the insns, use an insn form that does not adjust the offset on
9554         little endian systems.
9556 2016-07-01  Jan Beulich  <jbeulich@suse.com>
9558         * varasm.c (get_variable_section): Validate initializer in
9559         named .bss-like sections.
9561 2016-07-01  Kelvin Nilsen  <kelvin@gcc.gnu.org>
9563         * config/rs6000/altivec.md (*altivec_vpermr_<mode>_internal):
9564         Exchange the order of the second and third operands in the vpermr
9565         instruction tmeplate.
9567 2016-07-01  Peter Bergner  <bergner@vnet.ibm.com>
9569         PR target/71698
9570         * config/rs6000/rs6000.c (rs6000_secondary_reload_simple_move):
9571         Disallow TDmode values.
9573 2016-07-01  Alan Modra  <amodra@gmail.com>
9575         PR rtl-optimization/71709
9576         * ira-lives.c (find_call_crossed_cheap_reg): Exit loop on arg reg
9577         being set, not referenced.
9579 2016-07-01  Yuri Rumyantsev  <ysrumyan@gmail.com>
9581         PR tree-optimization/70729
9582         * tree-vectorizer.c (adjust_simduid_builtins): Nullify safelen field
9583         of loop since it can be not valid after transformation.
9585 2016-07-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9587         * config/arm/arm.c (thumb_reload_in_hi): Delete.
9588         * config/arm/arm-protos.h (thumb_reload_in_hi): Delete prototype.
9590 2016-07-01  Eric Botcazou  <ebotcazou@adacore.com>
9592         * config/arm/arm.c (arm_function_ok_for_sibcall): Add another check
9593         for NULL decl.
9595 2016-06-30  Michael Meissner  <meissner@linux.vnet.ibm.com>
9597         PR target/71677
9598         * config/rs6000/constraints.md (wY constraint): New constraint to
9599         match the requirements for the LXSD and STXSD instructions.
9600         * config/rs6000/predicates.md (offsettable_mem_14bit_operand): New
9601         predicate to match the requirements for the LXSD and STXSD
9602         instructions.
9603         * config/rs6000/rs6000.md (mov<mode>_hardfloat32, FMOVE64 case):
9604         Use constaint wY for LXSD/STXSD instructions instead of 'o' or 'Y'
9605         to make sure that the bottom 2 bits of offset are 0, the address
9606         form is offsettable, and no updating is done in the address mode.
9607         (mov<mode>_hardfloat64, FMOVE64 case): Likewise.
9608         (movdi_internal32): Likewise
9609         (movdi_internal64): Likewise.
9611 2016-06-30  Jakub Jelinek  <jakub@redhat.com>
9613         PR tree-optimization/71707
9614         * tree-ssa-strlen.c (get_stridx_plus_constant): Handle already present
9615         strinfo even for ADDR_EXPR ptr.
9617 2016-06-30  Kelvin Nilsen  <kelvin@gcc.gnu.org>
9619         * config/rs6000/altivec.md (darn_32): Change the condition to
9620         TARGET_P9_MISC instead of TARGET_MODULO.
9621         (darn_raw): Replace TARGET_MODULO with TARGET_P9_MISC in the
9622         condition expression.
9623         (darn): Replace TARGET_MODULO with TARGET_P9_MISC in the
9624         condition expression.
9625         * config/rs6000/dfp.md (UNSPEC_DTSTSFI): New unspec constant.
9626         (DFP_TEST): New code iterator.
9627         (dfptstsfi_<code>_mode>): New define_expand.
9628         (*dfp_sgnfcnc_<mode>): New define_insn.
9629         * config/rs6000/rs6000-builtin.def (BU_P9_MISC_0): Move this macro
9630         definition next to BU_P9_MISC_1 definition and change the MASK
9631         value to RS6000_BTM_P9_MISC.
9632         (BU_P9_MISC_1): Change the MASK value to RS6000_BTM_P9_MISC.
9633         (BU_P9_64BIT_MISC_0): Likewise.
9634         (BU_P9_DFP_MISC_0): New macro definition.
9635         (BU_P9_DFP_MISC_1): New macro definition.
9636         (BU_P9_DFP_MISC_2): New macro definition.
9637         (BU_P9_DFP_OVERLOAD_1): New macro definition.
9638         (BU_P9_DFP_OVERLOAD_2): New macro definition.
9639         (BU_P9_DFP_OVERLOAD_3): New macro definition.
9640         (TSTSFI_LT_DD): New BU_P9_DFP_MISC_2.
9641         (TSTSFI_LT_TD): Likewise.
9642         (TSTSFI_EQ_DD): Likewise.
9643         (TSTSFI_EQ_TD): Likewise.
9644         (TSTSFI_GT_DD): Likewise.
9645         (TSTSFI_GT_TD): Likewise.
9646         (TSTSFI_OV_DD): Likewise.
9647         (TSTSFI_OV_TD): Likewise.
9648         (TSTSFI_LT): New BU_P9_DFP_OVERLOAD_2.
9649         (TSTSFI_LT_DD): Likewise.
9650         (TSTSFI_LT_TD): Likewise.
9651         (TSTSFI_EQ): Likewise.
9652         (TSTSFI_EQ_DD): Likewise.
9653         (TSTSFI_EQ_TD): Likewise.
9654         (TSTSFI_GT): Likewise.
9655         (TSTSFI_GT_DD): Likewise.
9656         (TSTSFI_GT_TD): Likewise.
9657         (TSTSFI_OV): Likewise.
9658         (TSTSFI_OV_DD): Likewise.
9659         (TSTSFI_OV_TD): Likewise.
9660         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
9661         overloaded test significance functions.
9662         * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Add
9663         OPTION_MASK_P9_MISC into the representation of this mask.
9664         (POWERPC_MASKS): Add OPTION_MASK_P9_MISC into the representation
9665         of this mask.
9666         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Set the
9667         RS6000_BTM_P9_MISC flag in the return value if TARGET_P9_MISC is
9668         non-zero.
9669         (rs6000_expand_binop_builtin): Enforce that argument 0 of the exp
9670         argument is a 6-bit unsigned literal value if the icode argument
9671         represents a DFP test significance built-in call.
9672         (rs6000_invalid_builtin): Add support for the RS6000_BTM_P9_MISC
9673         flag used independently and in combination with the
9674         RS6000_BTM_64BIT flag.
9675         (rs6000_opt_masks): Add entry for power9-misc command-line option.
9676         (rs6000_builtin_mask_names): Add entry for power9-misc
9677         command-line option.
9678         * config/rs6000/rs6000.h: Redefine TARGET_P9_MISC as 0 if
9679         HAVE_AS_POWER9 is not a defined macro.  Define MASK_P9_MISC and
9680         RS6000_BTM_P9_MISC macros.
9681         * config/rs6000/rs6000.opt: Add support for the -mpower9-misc
9682         option and change the description of the -mpower9-vector option to
9683         enable only vector instructions, removing its erroneously claimed
9684         support for scalar instructions.
9685         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
9686         the ISA 3.0 digital floating point test significance built-in
9687         functions.
9689 2016-06-30  Wilco Dijkstra  <wdijkstr@arm.com>
9691         * config/aarch64/aarch64.c (cortexa35_tunings):
9692         Enable AES fusion.  Use cortexa57_branch_cost.
9693         (cortexa53_tunings): Use cortexa57_branch_cost.
9694         (cortexa72_tunings): Use cortexa57_branch_cost.
9695         Use AUTOPREFETCHER_WEAK.
9696         (cortexa73_tunings): Use cortexa57_branch_cost.
9698 2016-06-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9699             James Greenhalgh  <james.greenhalgh@arm.com>
9701         * config/aarch64/arm_neon.h (vcopyq_lane_f32, vcopyq_lane_f64,
9702         vcopyq_lane_p8, vcopyq_lane_p16, vcopyq_lane_s8, vcopyq_lane_s16,
9703         vcopyq_lane_s32, vcopyq_lane_s64, vcopyq_lane_u8, vcopyq_lane_u16,
9704         vcopyq_lane_u32, vcopyq_lane_u64): Reimplement in C.
9705         (vcopy_lane_f32, vcopy_lane_f64, vcopy_lane_p8, vcopy_lane_p16,
9706         vcopy_lane_s8, vcopy_lane_s16, vcopy_lane_s32, vcopy_lane_s64,
9707         vcopy_lane_u8, vcopy_lane_u16, vcopy_lane_u32, vcopy_lane_u64,
9708         vcopy_laneq_f32, vcopy_laneq_f64, vcopy_laneq_p8, vcopy_laneq_p16,
9709         vcopy_laneq_s8, vcopy_laneq_s16, vcopy_laneq_s32, vcopy_laneq_s64,
9710         vcopy_laneq_u8, vcopy_laneq_u16, vcopy_laneq_u32, vcopy_laneq_u64,
9711         vcopyq_laneq_f32, vcopyq_laneq_f64, vcopyq_laneq_p8, vcopyq_laneq_p16,
9712         vcopyq_laneq_s8, vcopyq_laneq_s16, vcopyq_laneq_s32, vcopyq_laneq_s64,
9713         vcopyq_laneq_u8, vcopyq_laneq_u16, vcopyq_laneq_u32, vcopyq_laneq_u64):
9714         New intrinsics.
9716 2016-06-30  James Greenhalgh  <james.greenhalgh@arm.com>
9717             Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9719         * config/aarch64/aarch64-simd.md (*aarch64_simd_vec_copy_lane<mode>):
9720         New define_insn.
9721         (*aarch64_simd_vec_copy_lane_<vswap_width_name><mode>): Likewise.
9723 2016-06-30  David Malcolm  <dmalcolm@redhat.com>
9725         PR driver/71651
9726         * gcc.c (driver::build_option_suggestions): Pass "option" to
9727         add_misspelling_candidates.
9728         * opts-common.c (add_misspelling_candidates): Add "option" param;
9729         use it to avoid adding negated forms for options marked with
9730         RejectNegative.
9731         * opts.h (add_misspelling_candidates): Add "option" param.
9733 2016-06-30  Jakub Jelinek  <jakub@redhat.com>
9735         PR middle-end/71693
9736         * fold-const.c (fold_binary_loc) <case RROTATE_EXPR>: Cast
9737         TREE_OPERAND (arg0, 0) and TREE_OPERAND (arg0, 1) to type
9738         first when permuting bitwise operation with rotate.  Cast
9739         TREE_OPERAND (arg0, 0) to type when cancelling two rotations.
9741 2016-06-29  David Malcolm  <dmalcolm@redhat.com>
9743         * opts.c (handle_param): Use find_param_fuzzy to offer suggestions
9744         for misspelled param names.
9745         * params.c: Include spellcheck.h.
9746         (find_param_fuzzy): New function.
9747         * params.h (find_param_fuzzy): New prototype.
9748         * spellcheck.c (struct edit_distance_traits<const char *>): Move to...
9749         * spellcheck.h (struct edit_distance_traits<const char *>):
9750         ...here.
9752 2016-06-29  Michael Meissner  <meissner@linux.vnet.ibm.com>
9754         * config/rs6000/predicates.md (const_0_to_7_operand): New
9755         predicate, recognize 0..7.
9756         * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
9757         support for doing extracts from V16QImode, V8HImode, V4SImode
9758         under ISA 3.0.
9759         * config/rs6000/vsx.md (VSX_EXTRACT_I): Mode iterator for ISA 3.0
9760         vector extract support.
9761         (VSX_EXTRACT_PREDICATE): Mode attribute to validate element number
9762         for ISA 3.0 vector extract.
9763         (VSX_EX): Constraints to use for ISA 3.0 vector extract.
9764         (vsx_extract_<mode>, VSX_EXTRACT_I): Add support for doing
9765         extracts of a constant element number from small integer vectors
9766         on 64-bit ISA 3.0 systems.
9767         (vsx_extract_<mode>_di): Likewise.
9768         * config/rs6000/rs6000.h (TARGET_VEXTRACTUB): New target macro to
9769         say when we can do ISA 3.0 vector extracts.
9770         * config/rs6000/rs6000.md (stfiwx): Allow DImode in Altivec
9771         registers, using the stxsiwx instruction.
9773 2016-06-29  Jim Wilson  <jim.wilson@linaro.org>
9775         * config/aarch64/aarch64-cores.def (qdf24xx): Use qdf24xx tuning.
9776         * config/aarch64/aarch64.c (qdf24xx_addrcost_table,
9777         qdf24xx_regmove_cost, qdf24xx_tunings): New.
9778         * config/arm/aarch64-cost-tables.h (qdf24xx_extra_costs): New.
9779         * config/arm/arm-cores.def (qdf24xx): Use qdf24xx tuning.
9780         * config/arm/arm.c (arm_qdf24xx_tune): New.
9782 2016-06-29  Wilco Dijkstra  <wdijkstr@arm.com>
9784         * config/aarch64/aarch64.c (cortexa53_tunings):
9785         Increase loop alignment to 8.  Set function alignment to 16.
9786         (cortexa35_tunings): Likewise.
9787         (cortexa57_tunings): Increase loop alignment to 8.
9788         (cortexa72_tunings): Likewise.
9789         (cortexa73_tunings): Likewise.
9791 2016-06-29  Matthew Wahab  <matthew.wahab@arm.com>
9793         * doc/sourcebuild.texi (Effective-Target keywords): Add entries
9794         for arm_fp16_ok and arm_fp16_hw.
9795         (Add Options): Add entries for arm_fp16, arm_fp16_ieee and
9796         arm_fp16_alternative.
9798 2016-06-29  Ilya Enkovich  <ilya.enkovich@intel.com>
9800         PR tree-optimization/71655
9801         * tree-vect-stmts.c (vectorizable_comparison): Swap definition
9802         types when swapping operands.
9804 2016-06-29  Martin Liska  <mliska@suse.cz>
9806         PR middle-end/71585
9807         * common.opt (flag_stack_protect): Mark the flag as optimization flag.
9808         * ipa-inline-transform.c (inline_call): Remove unnecessary call
9809         of build_optimization_node.
9811 2016-06-29  Yuri Rumyantsev  <ysrumyan@gmail.com>
9813         PR tree-optimization/70729
9814         * tree-ssa-loop-im.c (ref_indep_loop_p_1): Consider memory reference as
9815         independent in loops having positive safelen value.
9816         * tree-vect-loop.c (vect_transform_loop): Clear-up safelen value since
9817         it may be not valid after vectorization.
9819 2016-06-29  Jakub Jelinek  <jakub@redhat.com>
9821         PR tree-optimization/71625
9822         * tree-ssa-strlen.c (get_addr_stridx): Add PTR argument.  Assume list
9823         is sorted by ascending list->offset.  If PTR is non-NULL and there is
9824         previous strinfo, call get_stridx_plus_constant.
9825         (get_stridx): Pass exp as second argument to get_addr_stridx.
9826         (addr_stridxptr): Add missing list = list->next, so that there can be
9827         more than one entries in the list.  Bump limit from 16 to 32.  Ensure
9828         the list is sorted by ascending list->offset.
9829         (get_stridx_plus_constant): Adjust so that it can be also called with
9830         ADDR_EXPR instead of SSA_NAME as PTR.
9831         (handle_char_store): Pass NULL_TREE as second argument to
9832         get_addr_stridx.
9834 2016-06-29  Richard Biener  <rguenther@suse.de>
9836         PR rtl-optimization/68961
9837         * simplify-rtx.c (simplify_subreg): Handle VEC_CONCAT like CONCAT.
9839 2016-06-29  Richard Biener  <rguenther@suse.de>
9841         PR middle-end/71002
9842         * alias.c (component_uses_parent_alias_set_from): Handle
9843         type punning through union accesses by using the union alias set.
9844         * gimple.c (gimple_get_alias_set): Remove union type punning case.
9846 2016-07-29  Richard Biener  <rguenther@suse.de>
9848         * match.pd ((T)(T2)x -> (T)x): Remove restriction on final
9849         precision not matching mode precision.
9851 2016-06-28  John David Anglin  <danglin@gcc.gnu.org>
9853         * config/pa/pa.md (call_symref_64bit_post_reload): Don't call
9854         pa_output_arg_descriptor.
9855         (call_val_symref_64bit_post_reload): Likewise.
9856         (call_val_powf_64bit_post_reload): Likewise.
9857         (sibcall_internal_symref_64bit): Likewise.
9858         (sibcall_value_internal_symref_64bit): Likewise.
9860 2016-06-28  Jakub Jelinek  <jakub@redhat.com>
9862         PR middle-end/71626
9863         * config/i386/i386.c (ix86_expand_vector_move): For SUBREG of
9864         a constant, force its SUBREG_REG into memory or register instead
9865         of whole op1.
9867 2016-06-28  Pitchumani Sivanupandi  <pitchumani.s@atmel.com>
9869         PR target/58655
9870         * config/avr/avr.opt (-mfract-convert-truncate): Update description.
9871         * doc/invoke.texi (AVR Options): Document it.
9873 2016-06-28  Walter Lee  <walt@tilera.com>
9875         * config/tilegx/linux.h: Do not include arch/icache.h
9876         (CLEAR_INSN_CACHE): Provide inlined definition directly.
9877         * config/tilepro/linux.h: Do not include arch/icache.h
9878         (CLEAR_INSN_CACHE): Provide inlined definition directly.
9880 2016-06-28  Wilco Dijkstra  <wdijkstr@arm.com>
9882         * tree-ssa-math-opts.c (find_bswap_or_nop_1): Adjust bitnumbering
9883         for big-endian BIT_FIELD_REF.
9885 2016-06-28  Pat Haugen  <pthaugen@us.ibm.com>
9887         * config/rs6000/rs6000.md ('type' attribute): Add htmsimple/dfp types.
9888         ('size' attribute): Add '128'.
9889         Include power9.md.
9890         (*mov<mode>_hardfloat32, *mov<mode>_hardfloat64, *movdi_internal32,
9891         *movdi_internal64, *movdf_update1): Set size attribute to '64'.
9892         (add<mode>3, sub<mode>3, mul<mode>3, div<mode>3, sqrt<mode>2,
9893         copysign<mode>3, neg<mode>2_hw, abs<mode>2_hw, *nabs<mode>2_hw,
9894         *fma<mode>4_hw, *fms<mode>4_hw, *nfma<mode>4_hw, *nfms<mode>4_hw,
9895         extend<SFDF:mode><IEEE128:mode>2_hw, trunc<mode>df2_hw,
9896         *xscvqp<su>wz_<mode>, *xscvqp<su>dz_<mode>, *xscv<su>dqp_<mode>,
9897         *trunc<mode>df2_odd): Set size attribute to '128'.
9898         (*cmp<mode>_hw): Change type to veccmp and set size attribute to '128'.
9899         * config/rs6000/power6.md (power6-fp): Include dfp type.
9900         * config/rs6000/power7.md (power7-fp): Likewise.
9901         * config/rs6000/power8.md (power8-fp): Likewise.
9902         * config/rs6000/power9.md: New file.
9903         * config/rs6000/t-rs6000 (MD_INCLUDES): Add power9.md.
9904         * config/rs6000/htm.md (*tabort, *tabort<wd>c, *tabort<wd>ci,
9905         *trechkpt, *treclaim, *tsr, *ttest): Change type attribute to
9906         htmsimple.
9907         * config/rs6000/dfp.md (extendsddd2, truncddsd2, extendddtd2,
9908         trunctddd2, adddd3, addtd3, subdd3, subtd3, muldd3, multd3, divdd3,
9909         divtd3, *cmpdd_internal1, *cmptd_internal1, floatdidd2, floatditd2,
9910         ftruncdd2, fixdddi2, ftrunctd2, fixtddi2, dfp_ddedpd_<mode>,
9911         dfp_denbcd_<mode>, dfp_dxex_<mode>, dfp_diex_<mode>, dfp_dscli_<mode>,
9912         dfp_dscri_<mode>): Change type attribute to dfp.
9913         * config/rs6000/crypto.md (crypto_vshasigma<CR_char>): Change type
9914         attribute to vecsimple.
9915         * config/rs6000/rs6000.c (power9_cost): Update costs, cache size
9916         and prefetch streams.
9917         (rs6000_option_override_internal): Remove temporary code setting
9918         tuning to power8.  Don't set rs6000_sched_groups for power9.
9919         (last_scheduled_insn): Change to rtx_insn *.
9920         (divide_cnt, vec_load_pendulum): New variables.
9921         (rs6000_adjust_cost): Add Power9 to test for store->load separation.
9922         (rs6000_issue_rate): Set issue rate for Power9.
9923         (is_power9_pairable_vec_type): New.
9924         (power9_sched_reorder2): New.
9925         (rs6000_sched_reorder2): Call new function for Power9 specific
9926         reordering.
9927         (insn_must_be_first_in_group): Remove Power9.
9928         (insn_must_be_last_in_group): Likewise.
9929         (force_new_group): Likewise.
9930         (rs6000_sched_init): Fix initialization of last_scheduled_insn.
9931         Initialize divide_cnt/vec_load_pendulum.
9932         (_rs6000_sched_context, rs6000_init_sched_context,
9933         rs6000_set_sched_context): Handle context save/restore of new
9934         variables.
9936 2016-06-28  Richard Biener  <rguenther@suse.de>
9938         * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p):
9939         Properly handle DECL_BIT_FIELD_REPRESENTATIVE occuring as
9940         COMPONENT_REF operand.
9941         (nonoverlapping_component_refs_p): Likewise.
9942         * stor-layout.c (start_bitfield_representative): Mark
9943         DECL_BIT_FIELD_REPRESENTATIVE as DECL_NONADDRESSABLE_P.
9945 2016-06-28  Jakub Jelinek  <jakub@redhat.com>
9947         * Makefile.in: Don't cat ../stage_current if it does not exist.
9949         * doc/extend.texi (__builtin_add_overflow_p): Clarify behavior when
9950         last argument is a bit-field.
9952         PR rtl-optimization/71673
9953         * internal-fn.c (expand_arith_overflow_result_store): Use
9954         OPTAB_LIB_WIDEN instead of OPTAB_DIRECT as last argument to
9955         expand_simple_binop.
9957         PR middle-end/66867
9958         * builtins.c (expand_ifn_atomic_compare_exchange_into_call,
9959         expand_ifn_atomic_compare_exchange): New functions.
9960         * internal-fn.c (expand_ATOMIC_COMPARE_EXCHANGE): New function.
9961         * tree.h (build_call_expr_internal_loc): Rename to ...
9962         (build_call_expr_internal_loc_array): ... this.  Fix up type of
9963         last argument.
9964         * internal-fn.def (ATOMIC_COMPARE_EXCHANGE): New internal fn.
9965         * predict.c (expr_expected_value_1): Handle IMAGPART_EXPR of
9966         ATOMIC_COMPARE_EXCHANGE result.
9967         * builtins.h (expand_ifn_atomic_compare_exchange): New prototype.
9968         * gimple-fold.h (optimize_atomic_compare_exchange_p,
9969         fold_builtin_atomic_compare_exchange): New prototypes.
9970         * gimple-fold.c (optimize_atomic_compare_exchange_p,
9971         fold_builtin_atomic_compare_exchange): New functions..
9972         * tree-ssa.c (execute_update_addresses_taken): If
9973         optimize_atomic_compare_exchange_p, ignore &var in 2nd argument
9974         of call when finding addressable vars, and if such var becomes
9975         non-addressable, call fold_builtin_atomic_compare_exchange.
9977 2016-06-27  Segher Boessenkool  <segher@kernel.crashing.org>
9979         PR target/71670
9980         * config/rs6000/rs6000.md (ashdi3_extswsli_dot): Use
9981         gen_ashdi3_extswsli_dot2 instead of gen_ashdi3_extswsli_dot.
9983 2016-06-27  Pat Haugen  <pthaugen@us.ibm.com>
9985         * config/rs6000/rs6000.md ('type' attribute): Add
9986         veclogical,veccmpfx,vecexts,vecmove insn types.
9987         (*abs<mode>2_fpr, *nabs<mode>2_fpr, *neg<mode>2_fpr, *extendsfdf2_fpr,
9988         copysign<mode>3_fcpsgn, trunc<mode>df2_internal1, neg<mode>2_internal,
9989         p8_fmrgow_<mode>, pack<mode>): Change type to fpsimple.
9990         (*xxsel<mode>, copysign<mode>3_hard, neg<mode>2_hw, abs<mode>2_hw,
9991         *nabs<mode>2_hw): Change type to vecmove.
9992         (*and<mode>3_internal, *bool<mode>3_internal, *boolc<mode>3_internal,
9993         *boolcc<mode>3_internal, *eqv<mode>3_internal,
9994         *one_cmpl<mode>3_internal, *ieee_128bit_vsx_neg<mode>2_internal,
9995         *ieee_128bit_vsx_abs<mode>2_internal,
9996         *ieee_128bit_vsx_nabs<mode>2_internal, extendkftf2, trunctfkf2,
9997         *ieee128_mfvsrd_64bit, *ieee128_mfvsrd_32bit, *ieee128_mtvsrd_64bit,
9998         *ieee128_mtvsrd_32bit): Change type to veclogical.
9999         (mov<mode>_hardfloat, *mov<mode>_hardfloat32, *mov<mode>_hardfloat64,
10000         *movdi_internal32, *movdi_internal64): Update insn types.
10001         * config/rs6000/vsx.md (*vsx_le_undo_permute_<mode>,
10002         vsx_extract_<mode>): Change type to veclogical.
10003         (*vsx_xxsel<mode>, *vsx_xxsel<mode>_uns): Change type to vecmove.
10004         (vsx_sign_extend_qi_<mode>, *vsx_sign_extend_hi_<mode>,
10005         *vsx_sign_extend_si_v2di): Change type to vecexts.
10006         * config/rs6000/altivec.md (*altivec_mov<mode>, *altivec_movti): Change
10007         type to veclogical.
10008         (*altivec_eq<mode>, *altivec_gt<mode>, *altivec_gtu<mode>,
10009         *altivec_vcmpequ<VI_char>_p, *altivec_vcmpgts<VI_char>_p,
10010         *altivec_vcmpgtu<VI_char>_p): Change type to veccmpfx.
10011         (*altivec_vsel<mode>, *altivec_vsel<mode>_uns): Change type to vecmove.
10012         * config/rs6000/dfp.md (*negdd2_fpr, *absdd2_fpr, *nabsdd2_fpr,
10013         negtd2, *abstd2_fpr, *nabstd2_fpr): Change type to fpsimple.
10014         * config/rs6000/40x.md (ppc405-float): Add fpsimple.
10015         * config/rs6000/440.md (ppc440-fp): Add fpsimple.
10016         * config/rs6000/476.md (ppc476-fp): Add fpsimple.
10017         * config/rs6000/601.md (ppc601-fp): Add fpsimple.
10018         * config/rs6000/603.md (ppc603-fp): Add fpsimple.
10019         * config/rs6000/6xx.md (ppc604-fp): Add fpsimple.
10020         * config/rs6000/7xx.md (ppc750-fp): Add fpsimple.
10021         (ppc7400-vecsimple): Add veclogical, vecmove, veccmpfx.
10022         * config/rs6000/7450.md (ppc7450-fp): Add fpsimple.
10023         (ppc7450-vecsimple): Add veclogical, vecmove.
10024         (ppc7450-veccmp): Add veccmpfx.
10025         * config/rs6000/8540.md (ppc8540_simple_vector): Add veclogical,
10026         vecmove.
10027         (ppc8540_vector_compare): Add veccmpfx.
10028         * config/rs6000/a2.md (ppca2-fp): Add fpsimple.
10029         * config/rs6000/cell.md (cell-fp): Add fpsimple.
10030         (cell-vecsimple): Add veclogical, vecmove.
10031         (cell-veccmp): Add veccmpfx.
10032         * config/rs6000/e300c2c3.md (ppce300c3_fp): Add fpsimple.
10033         * config/rs6000/e6500.md (e6500_vecsimple): Add veclogical, vecmove,
10034         veccmpfx.
10035         * config/rs6000/mpc.md (mpccore-fp): Add fpsimple.
10036         * config/rs6000/power4.md (power4-fp): Add fpsimple.
10037         (power4-vecsimple): Add veclogical, vecmove.
10038         (power4-veccmp): Add veccmpfx.
10039         * config/rs6000/power5.md (power5-fp): Add fpsimple.
10040         * config/rs6000/power6.md (power6-fp): Add fpsimple.
10041         (power6-vecsimple): Add veclogical, vecmove.
10042         (power6-veccmp): Add veccmpfx.
10043         * config/rs6000/power7.md (power7-fp): Add fpsimple.
10044         (power7-vecsimple): Add veclogical, vecmove, veccmpfx.
10045         * config/rs6000/power8.md (power8-fp): Add fpsimple.
10046         (power8-vecsimple): Add veclogical, vecmove, veccmpfx.
10047         * config/rs6000/rs64.md (rs64a-fp): Add fpsimple.
10048         * config/rs6000/titan.md (titan_fp): Add fpsimple.
10049         * config/rs6000/xfpu.md (fp-default, fp-addsub-s, fp-addsub-d): Add
10050         fpsimple.
10051         * config/rs6000/rs6000.c (rs6000_adjust_cost): Add TYPE_FPSIMPLE.
10053 2016-06-27  Peter Bergner  <bergner@vnet.ibm.com>
10055         PR target/71656
10056         * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Add
10057         OPTION_MASK_P9_DFORM_VECTOR.
10058         * config/rs6000/rs6000.c (rs6000_option_override_internal): Do not
10059         disable -mpower9-dform-vector when using reload.
10060         (quad_address_p): Remove 'gpr_p' argument and all associated code.
10061         New 'strict' argument.  Update all callers.  Add strict addressing
10062         support.
10063         (rs6000_legitimate_offset_address_p): Remove call to
10064         virtual_stack_registers_memory_p.
10065         (rs6000_legitimize_reload_address): Add quad address support.
10066         (rs6000_legitimate_address_p): Move call to quad_address_p above
10067         call to virtual_stack_registers_memory_p.  Adjust quad_address_p args
10068         to account for new strict usage.
10069         (rs6000_output_move_128bit): Adjust quad_address_p args to account
10070         for new strict usage.
10071         * config/rs6000/predicates.md (quad_memory_operand): Likewise.
10073 2016-06-26  Uros Bizjak  <ubizjak@gmail.com>
10075         PR target/70902
10076         PR target/71453
10077         PR target/71555
10078         PR target/71596
10079         PR target/71657
10080         * config/i386/i386.c (ix86_spill_class): Disable condition to
10081         always return NO_REGS.
10083 2016-06-26  Jan Hubicka  <hubicka@ucw.cz>
10085         * predict.c: Include gimple-pretty-print.h
10086         (predicted_by_loop_heuristics_p): Check also
10087         PRED_LOOP_EXIT_WITH_RECURSION
10088         (predict_loops): Find self recursive calls and use special purpose
10089         predictors for them; dump log about decisions.
10090         (pass_profile::execute): Dump info about #of iterations.
10091         * predict.def (PRED_LOOP_EXIT_WITH_RECURSION,
10092         (PRED_LOOP_GUARD_WITH_RECURSION): New predictors.
10094 2016-06-26  John David Anglin  <danglin@gcc.gnu.org>
10096         * config/pa/pa.c (pa_output_indirect_call): Rework to combine
10097         output_asm_insn calls and shorten long lines.  Output .CALL
10098         argument descriptor using pa_output_arg_descriptor.  Add various
10099         inline $$dyncall and other optimizations.
10100         (pa_attr_length_indirect_call): Adjust ordering and lengths.
10102 2016-06-25  Jakub Jelinek  <jakub@redhat.com>
10104         PR tree-optimization/71643
10105         * tree-ssa-tail-merge.c (find_clusters_1): Ignore basic blocks with
10106         EH preds.
10108         * tree-ssa-tail-merge.c (deps_ok_for_redirect_from_bb_to_bb): Don't
10109         leak a bitmap if dep_bb is NULL.
10111         PR tree-optimization/71631
10112         * tree-ssa-reassoc.c (reassociate_bb): Pass true as last argument
10113         to rewrite_expr_tree even if negate_result, move new_lhs var
10114         declaration and initialization earlier, for powi_result set afterwards
10115         new_lhs to lhs.  For negate_result, use new_lhs instead of tmp
10116         if new_lhs != lhs, and don't shadow gsi var.
10118 2016-06-24  Jan Hubicka  <hubicka@ucw.cz>
10120         * predict.c (predict_paths_leading_to, predict_paths_leading_to_edge):
10121         Add in_loop parameter.
10122         (predict_loops): Add loop guard heuristics.
10123         * predict.def (PRED_LOOP_GUARD): New heuristics.
10125 2016-06-24  Jan Hubicka  <hubicka@ucw.cz>
10127         * predict.c: Include ipa-utils.h
10128         (tree_bb_level_prediction): Predict recursive calls.
10129         (tree_estimate_probability_bb): Skip inexpensive calls for call
10130         predictor.
10131         * predict.def (PRED_RECURSIVE_CALL): New.
10133 2016-06-24  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
10135         * config/rs6000/rs6000-builtin.def (BU_FLOAT128_2): New #define.
10136         (BU_FLOAT128_1): Likewise.
10137         (FABSQ): Likewise.
10138         (COPYSIGNQ): Likewise.
10139         (RS6000_BUILTIN_NANQ): Likewise.
10140         (RS6000_BUILTIN_NANSQ): Likewise.
10141         (RS6000_BUILTIN_INFQ): Likewise.
10142         (RS6000_BUILTIN_HUGE_VALQ): Likewise.
10143         * config/rs6000/rs6000.c (rs6000_fold_builtin): New prototype.
10144         (TARGET_FOLD_BUILTIN): New #define.
10145         (rs6000_builtin_mask_calculate): Add TARGET_FLOAT128 entry.
10146         (rs6000_invalid_builtin): Add handling for RS6000_BTM_FLOAT128.
10147         (rs6000_fold_builtin): New target hook implementation, handling
10148         folding of 128-bit NaNs and infinities.
10149         (rs6000_init_builtins): Initialize const_str_type_node; ensure all
10150         entries are filled in to avoid problems during bootstrap
10151         self-test; define builtins for 128-bit NaNs and infinities.
10152         (rs6000_opt_mask): Add entry for float128.
10153         * config/rs6000/rs6000.h (RS6000_BTM_FLOAT128): New #define.
10154         (RS6000_BTM_COMMON): Include RS6000_BTM_FLOAT128.
10155         (rs6000_builtin_type_index): Add RS6000_BTI_const_str.
10156         (const_str_type_node): New #define.
10157         * config/rs6000/rs6000.md (copysign<mode>3 for IEEE128): Convert
10158         to a define_expand that dispatches to either copysign<mode>3_soft
10159         or copysign<mode>3_hard.
10160         (copysign<mode>3_hard): Rename from copysign<mode>3.
10161         (copysign<mode>3_soft): New define_insn.
10162         * doc/extend.texi: Document new builtins.
10164 2016-06-24  Jakub Jelinek  <jakub@redhat.com>
10166         * cfgloop.c (flow_loop_dump): Cast nit to uint64_t and print it using
10167         PRIu64 instead of lu.
10169 2016-06-24  Eric Botcazou  <ebotcazou@adacore.com>
10171         PR debug/71642
10172         * tree-inline.c (remap_decl): When fixing up DECL_ORIGINAL_TYPE, just
10173         copy the type name.
10175 2016-06-24  Jakub Jelinek  <jakub@redhat.com>
10177         PR tree-optimization/71647
10178         * omp-low.c (lower_rec_input_clauses): Convert
10179         omp_clause_aligned_alignment (c) to size_type_node for the
10180         last argument of __builtin_assume_aligned.
10182 2016-06-24  H.J. Lu  <hongjiu.lu@intel.com>
10184         * configure.ac (calling ___tls_get_addr via GOT): New
10185         assembler/linker check.
10186         (HAVE_AS_IX86_TLS_GET_ADDR_GOT): New.  Defined to 1 if 32-bit
10187         assembler and linker supports calling ___tls_get_addr via GOT.
10188         Otherise, defined to 0.
10189         * config.in: Regenerated.
10190         * configure: Likewise.
10191         * config/i386/constraints.md (Yb): New constraint.
10192         * config/i386/i386.h (reg_class): Add TLS_GOTBASE_REGS.
10193         (REG_CLASS_NAMES): Likewise.
10194         (REG_CLASS_CONTENTS): Likewise.
10195         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Replace
10196         the b constraint with the Yb constraint.  Call ___tls_get_addr
10197         via GOT for GNU TLS with -fno-plt if HAVE_AS_IX86_TLS_GET_ADDR_GOT
10198         is 1.
10199         (*tls_local_dynamic_base_32_gnu): Likewise.
10200         (*tls_global_dynamic_64_<mode>): Call _tls_get_addr via GOT for
10201         GNU TLS with -fno-plt if HAVE_AS_IX86_TLS_GET_ADDR_GOT is 1.
10202         (*tls_local_dynamic_base_64_<mode>): Likewise.
10204 2016-06-24  Martin Liska  <mliska@suse.cz>
10206         * cfgloop.c (flow_loop_dump): Dump average number of loop iterations.
10207         * cfgloop.h: Change 'struct loop' to 'const struct loop' for a
10208         few functions.
10209         * cfgloopanal.c (expected_loop_iterations_unbounded): Set a new
10210         argument to true if the expected number of iterations is
10211         loop-based.
10213 2016-06-24  Uros Bizjak  <ubizjak@gmail.com>
10215         * configure.ac (HAVE_AS_GOTOF_IN_DATA): Use $as_ix86_gas_32_opt to
10216         assemble for 32bit target.
10217         (HAVE_AS_IX86_TLSGDPLT): Use $as_ix86_gas_32_opt to assemble
10218         and $ld_ix86_gld_32_opt to link for 32bit target.
10219         (HAVE_AS_IX86_TLSLDMPLT): Ditto.
10220         * configure: Regenerate.
10222 2016-06-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10224         * config/arm/arm.c (int_log2): Delete definition and prototype.
10225         (shift_op): Use exact_log2 instead of int_log2.
10226         (vfp3_const_double_for_fract_bits): Likewise.
10228 2016-06-24  Jakub Jelinek  <jakub@redhat.com>
10230         * internal-fn.c (expand_arith_set_overflow): New function.
10231         (expand_addsub_overflow, expand_neg_overflow, expand_mul_overflow):
10232         Use it.
10233         (expand_arith_overflow_result_store): Likewise.  Handle precision
10234         smaller than mode precision.
10235         * tree-vrp.c (extract_range_basic): For imag part, handle
10236         properly signed 1-bit precision result.
10237         * doc/extend.texi (__builtin_add_overflow): Document that last
10238         argument can't be pointer to enumerated or boolean type.
10239         (__builtin_add_overflow_p): Document that last argument can't
10240         have enumerated or boolean type.
10242 2016-06-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
10243             Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
10245         * config/rs6000/predicates.md (splat_input_operand): Rework.
10246         Don't allow constants, since the insns that use this predicate
10247         don't support constants.  Constants are handled by other insns
10248         that are created via combine.  During and after register
10249         allocation, only allow indexed or indirect addresses, and not
10250         general addresses.  Only allow modes supported by the hardware.
10251         * config/rs6000/rs6000.c (xxsplitb_constant_p): Update usage
10252         comment.  Move check for using VSPLTIS<x> to a common location,
10253         instead of doing it in two different places.
10255 2016-06-23  Jocelyn Mayer  <l_indien@magic.fr>
10257         * config/i386/driver-i386.c (host_detect_local_cpu): Set
10258         PROCESSOR_PENTIUMPRO for signature_CENTAUR_ebx family >= 9.
10259         <case PROCESSOR_PENTIMUMPRO>: Pass c7 or nehemiah for
10260         signature_CENTAUR_ebx.
10262 2016-06-23  H.J. Lu  <hongjiu.lu@intel.com>
10264         PR target/66232
10265         PR target/67400
10266         * configure.ac (as_ix86_tls_ldm_opt): Renamed to ...
10267         (as_ix86_gas_32_opt): This.
10268         (ld_ix86_tls_ldm_opt): Renamed to ...
10269         (ld_ix86_gld_32_opt): This.
10270         (R_386_TLS_LDM reloc): Updated.
10271         (R_386_GOT32X reloc): New assembler/linker check.
10272         (HAVE_AS_IX86_GOT32X): New.  Defined to 1 if 32-bit assembler and
10273         linker support "jmp *_start@GOT" and "cmpl $0, bar@GOT".  Otherise,
10274         defined to 0.
10275         * config.in: Regenerated.
10276         * configure: Likewise.
10277         * config/i386/i386.c (ix86_force_load_from_GOT_p): Return
10278         true if HAVE_AS_IX86_GOT32X is 1 in 32-bit mode.
10279         (ix86_legitimate_address_p): Allow UNSPEC_GOT for -fno-plt
10280         if ix86_force_load_from_GOT_p returns true.
10281         (ix86_print_operand_address_as): Also support UNSPEC_GOT if
10282         ix86_force_load_from_GOT_p returns true.
10283         (ix86_expand_move): Generate UNSPEC_GOT in 32-bit mode to load
10284         the external function address via the GOT slot.
10285         (ix86_nopic_noplt_attribute_p): Check both TARGET_64BIT and
10286         HAVE_AS_IX86_GOT32X before returning false.
10287         (ix86_output_call_insn): Generate "%!jmp/call\t*%p0@GOT" in
10288         32-bit mode if ix86_nopic_noplt_attribute_p returns true.
10290 2016-06-23  Eric Botcazou  <ebotcazou@adacore.com>
10292         * tree-inline.c (remap_decl): Preserve DECL_ORIGINAL_TYPE invariant.
10294 2016-06-23  Andi Kleen  <ak@linux.intel.com>
10296         * Makefile.in: Regenerate.
10297         * doc/install.texi: Document autoprofiledbootstrap.
10299 2016-06-23  Andi Kleen  <ak@linux.intel.com>
10301         * config/i386/gcc-auto-profile: New file.
10303 2016-06-23  Martin Liska  <mliska@suse.cz>
10305         PR middle-end/71619
10306         * predict.c (predict_loops): Revert the hunk that was removed
10307         in r237103.
10309 2016-06-23  Jakub Sejdak  <jakub.sejdak@phoesys.com>
10311         * config.gcc: Add support for arm*-*-phoenix* targets.
10312         * config/arm/t-phoenix: New.
10313         * config/phoenix.h: New.
10315 2016-06-23  Uros Bizjak  <ubizjak@gmail.com>
10316             H.J. Lu  <hongjiu.lu@intel.com>
10318         PR target/67400
10319         * config/i386/i386-protos.h (ix86_force_load_from_GOT_p): New.
10320         * config/i386/i386.c (ix86_force_load_from_GOT_p): New function.
10321         (ix86_legitimate_constant_p): Do not allow UNSPEC_GOTPCREL if
10322         ix86_force_load_from_GOT_p returns true.
10323         (ix86_legitimate_address_p): Allow UNSPEC_GOTPCREL if
10324         ix86_force_load_from_GOT_p returns true.
10325         (ix86_print_operand_address_as): Support UNSPEC_GOTPCREL if
10326         ix86_force_load_from_GOT_p returns true.
10327         (ix86_expand_move): Load the external function address via the
10328         GOT slot if ix86_force_load_from_GOT_p returns true.
10329         * config/i386/predicates.md (x86_64_immediate_operand): Return
10330         false for SYMBOL_REFs where ix86_force_load_from_GOT_p returns true.
10331         (x86_64_zext_immediate_operand): Ditto.
10333 2016-06-22  Uros Bizjak  <ubizjak@gmail.com>
10335         * config/i386/i386.c (ix86_expand_move): Simplify SYMBOL_REF handling.
10337 2016-06-22  David Malcolm  <dmalcolm@redhat.com>
10339         PR c/70339
10340         * diagnostic-core.h (pedwarn_at_rich_loc): New prototype.
10341         * diagnostic.c (pedwarn_at_rich_loc): New function.
10342         * spellcheck.h (best_match::best_match): Add a
10343         "best_distance_so_far" optional parameter.
10344         (best_match::set_best_so_far): New method.
10345         (best_match::get_best_distance): New accessor.
10346         (best_match::get_best_candidate_length): New accessor.
10348 2016-06-22  Nick Clifton  <nickc@redhat.com>
10350         * dwarf2out.c (scompare_loc_descriptor): Use SCALAR_INT_MODE_P() in
10351         place of GET_MODE_CLASS() == MODE_INT, so that partial integer
10352         modes are accepted as well.
10353         (ucompare_loc_descriptor): Likewise.
10354         (minmax_loc_descriptor): Likewise.
10355         (clz_loc_descriptor): Likewise.
10356         (popcount_loc_descriptor): Likewise.
10357         (bswap_loc_descriptor): Likewise.
10358         (rotate_loc_descriptor): Likewise.
10359         (mem_loc_descriptor): Likewise.
10360         (loc_descriptor): Likewise.
10362 2016-06-22  David Malcolm  <dmalcolm@redhat.com>
10364         * common.opt (fdiagnostics-parseable-fixits): New option.
10365         * diagnostic.c: Include "selftest.h".
10366         (print_escaped_string): New function.
10367         (print_parseable_fixits): New function.
10368         (diagnostic_report_diagnostic): Call print_parseable_fixits.
10369         (selftest::assert_print_escaped_string): New function.
10370         (ASSERT_PRINT_ESCAPED_STRING_STREQ): New macro.
10371         (selftest::test_print_escaped_string): New function.
10372         (selftest::test_print_parseable_fixits_none): New function.
10373         (selftest::test_print_parseable_fixits_insert): New function.
10374         (selftest::test_print_parseable_fixits_remove): New function.
10375         (selftest::test_print_parseable_fixits_replace): New function.
10376         (selftest::diagnostic_c_tests): New function.
10377         * diagnostic.h (struct diagnostic_context): Add field
10378         "parseable_fixits_p".
10379         * doc/invoke.texi (Diagnostic Message Formatting Options): Add
10380         -fdiagnostics-parseable-fixits.
10381         (-fdiagnostics-parseable-fixits): New option.
10382         * opts.c (common_handle_option): Handle
10383         -fdiagnostics-parseable-fixits.
10384         * selftest-run-tests.c (selftest::run_tests): Call
10385         selftest::diagnostic_c_tests.
10386         * selftest.h (selftest::diagnostic_c_tests): New prototype.
10388 2016-06-22  Ilya Enkovich  <ilya.enkovich@intel.com>
10390         PR tree-optimization/71488
10391         * tree-vect-patterns.c (vect_recog_mask_conversion_pattern): Support
10392         comparison of boolean vectors.
10393         * tree-vect-stmts.c (vectorizable_comparison): Vectorize comparison
10394         of boolean vectors using bitwise operations.
10396 2016-06-22  Andreas Schwab  <schwab@suse.de>
10398         * config/aarch64/aarch64-protos.h (aarch64_elf_asm_named_section):
10399         Remove declaration.
10401 2016-06-22  Eric Botcazou  <ebotcazou@adacore.com>
10403         * function.c (assign_parm_setup_reg): Prevent sharing in another case.
10405 2016-06-22  Bernd Edlinger  <bernd.edlinger@hotmail.de>
10407         * config/i386/i386.c (print_reg): Emit an error message on attempt to
10408         print FLAGS_REG.
10410 2016-06-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10412         * config/arm/arm.c (arm_cortex_a73_tune): New struct.
10413         * config/arm/arm-cores.def (cortex-a73): New entry.
10414         (cortex-a73.cortex-a35): Likewise.
10415         (cortex-a73.cortex-a53): Likewise.
10416         * config/arm/arm-tables.opt: Regenerate.
10417         * config/arm/arm-tune.md: Likewise.
10418         * config/arm/bpabi.h (BE8_LINK_SPEC): Handle mcpu=cortex-a73,
10419         mcpu=cortex-a73.cortex-a35 and mcpu=cortex-a73.cortex-a53.
10420         * config/arm/t-aprofile: Handle mcpu=cortex-a73,
10421         mcpu=cortex-a73.cortex-a35 and mcpu=cortex-a73.cortex-a53.
10422         * doc/invoke.texi (ARM Options): Document cortex-a73,
10423         cortex-a73.cortex-a35 and cortex-a73.cortex-a53.
10425 2016-06-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10427         * config/aarch64/aarch64.c (cortexa73_tunings): New struct.
10428         * config/aarch64/aarch64-cores.def (cortex-a73): New entry.
10429         (cortex-a73.cortex-a35): Likewise.
10430         (cortex-a73.cortex-a53): Likewise.
10431         * config/aarch64/aarch64-tune.md: Regenerate.
10432         * doc/invoke.texi (AArch64 Options): Document cortex-a73,
10433         cortex-a73.cortex-a35 and cortex-a73.cortex-a53 arguments to
10434         -mcpu and -mtune.
10436 2016-06-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10438         * configure.ac (gcc_cv_as_compress_debug): Remove
10439         --compress-debug-sections as extra as switch.
10440         Handle gas --compress-debug-sections=type.
10441         (gcc_cv_ld_compess_debug): Remove bogus ld_date check.
10442         Handle gld --compress-debug-sections=type.
10443         * configure: Regenerate.
10445 2016-06-21  Andrew Burgess  <andrew.burgess@embecosm.com>
10447         * bb-reorder.c (pass_partition_blocks::gate): Update comment.
10449 2016-06-21  John David Anglin  <danglin@gcc.gnu.org>
10451         * gcov-tool.c (profile_rewrite): Use int64_t instead of long long.
10452         (do_rewrite): likewise.
10454 2016-06-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
10456         * common/config/mep/mep-common.c: Remove.
10457         * config.gcc: Remove mep-* support.
10458         * config/mep/constraints.md: Remove.
10459         * config/mep/default.h: Remove.
10460         * config/mep/intrinsics.h: Remove.
10461         * config/mep/intrinsics.md: Remove.
10462         * config/mep/ivc2-template.h: Remove.
10463         * config/mep/mep-c5.cpu: Remove.
10464         * config/mep/mep-core.cpu: Remove.
10465         * config/mep/mep-default.cpu: Remove.
10466         * config/mep/mep-ext-cop.cpu: Remove.
10467         * config/mep/mep-intrin.h: Remove.
10468         * config/mep/mep-ivc2.cpu: Remove.
10469         * config/mep/mep-pragma.c: Remove.
10470         * config/mep/mep-protos.h: Remove.
10471         * config/mep/mep.c: Remove.
10472         * config/mep/mep.cpu: Remove.
10473         * config/mep/mep.h: Remove.
10474         * config/mep/mep.md: Remove.
10475         * config/mep/mep.opt: Remove.
10476         * config/mep/predicates.md: Remove.
10477         * config/mep/t-mep: Remove.
10478         * doc/install.texi: Remove mep-* documentation.
10479         * doc/md.texi: Likewise.
10481 2016-06-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
10483         * config.gcc: Remove support for avr-rtems.
10484         * config/avr/gen-avr-mmcu-specs.c: Likewise.
10485         * config/avr/rtems.h: Remove.
10486         * config/avr/t-rtems: Remove.
10488 2016-06-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
10490         * config.gcc: Remove m32r-rtems support.
10491         * config/m32r/rtems.h: Remove.
10493 2016-06-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
10495         * config.gcc: Remove h8300-rtems support.
10496         * config/h8300/rtems.h: Remove.
10497         * config/h8300/t-rtems: Remove.
10499 2016-06-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
10501         * config.gcc: Remove support for knetbsd.
10502         * configure.ac: Likewise.
10503         * config/i386/knetbsd-gnu.h: Remove.  * config/i386/knetbsd-gnu64.h: Remove.
10504         * config/knetbsd-gnu.h: Remove.
10505         * configure: Regenerate.
10507 2016-06-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
10509         * config.gcc: Remove support for openbsd 2 and 3.
10510         * config/openbsd-oldgas.h: Remove.
10512 2016-06-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
10514         * config.gcc: Remove interix support.
10515         * config/i386/i386-interix.h: Remove.
10516         * config/i386/interix.opt: Remove.
10517         * config/i386/t-interix: Remove.
10518         * configure: Regenerate.
10519         * configure.ac: Remove interix support.
10520         * doc/install.texi: Remove interix documentation.
10522 2016-06-21  Kelvin Nilsen  <kelvin@gcc.gnu.org>
10524         * config/rs6000/rs6000.h: Add conditional preprocessing directives
10525         to disable Power9-specific compiler features if HAVE_AS_POWER9 is
10526         not defined.
10528 2016-06-21  Eric Botcazou  <ebotcazou@adacore.com>
10530         * tree.c (verify_type_variant): Skip TYPE_SIZE and TYPE_SIZE_UNIT if
10531         they are both PLACEHOLDER_EXPRs.
10533 2016-06-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
10535         * stor-layout.c (layout_type): Move setting complex MODE to
10536         layout_type, instead of setting it ahead of time by the caller.
10537         * tree.c (build_complex_type): Likewise.
10539 2016-06-21  Martin Liska  <mliska@suse.cz>
10541         * predict.c (force_edge_cold): Replace imposisble with
10542         impossible.
10544 2016-06-21  Ilya Verbin  <ilya.verbin@intel.com>
10546         * config/i386/i386.c (ix86_emit_swsqrtsf): Emit vrsqrt28ps.
10547         * config/i386/sse.md (define_expand "rsqrtv16sf2"): New.
10549 2016-06-21  Ilya Verbin  <ilya.verbin@intel.com>
10551         * config/i386/i386.c (ix86_emit_swdivsf): Emit vrcp28ps.
10553 2016-06-21  H.J. Lu  <hongjiu.lu@intel.com>
10554             Ilya Enkovich  <ilya.enkovich@intel.com>
10556         PR target/71549
10557         * config/i386/i386.c (timode_scalar_chain::fix_debug_reg_uses):
10558         New member function to convert V1TImode register to SUBREG
10559         TImode in debug insn.
10560         (timode_scalar_chain::convert_insn): Call fix_debug_reg_uses
10561         after changing register mode to V1TImode.
10563 2016-06-21  Virendra Pathak  <virendra.pathak@broadcom.com>
10565         * config/aarch64/aarch64-cores.def (vulcan): New core.
10566         * config/aarch64/aarch64-tune.md: Regenerate.
10567         * doc/invoke.texi: Document vulcan as an available option.
10569 2016-06-21  Eric Botcazou  <ebotcazou@adacore.com>
10571         * cse.c (canon_asm_operands): New function extracted from...
10572         (canonicalize_insn): ...here.  Call it to canonicalize an ASM_OPERANDS
10573         either standalone or member of a PARALLEL.
10575 2016-06-21  Georg-Johann Lay  <avr@gjlay.de>
10577         PR target/30417
10578         * config/avr/gen-avr-mmcu-specs.c (print_mcu):
10579         [*link_data_start]: Wrap -Tdata into %{!Tdata:...}.
10580         [*link_text_start]: Wrap -Ttext into %{!Ttext:...}.
10582 2016-06-21  Georg-Johann Lay  <avr@gjlay.de>
10584         PR target/71103
10585         * config/avr/avr.md (movqi): Only handle loading subreg:qi of
10586         constant addresses if can_create_pseudo_p.
10588 2016-06-21  Jakub Jelinek  <jakub@redhat.com>
10590         PR tree-optimization/71588
10591         * tree-ssa-strlen.c (valid_builtin_call): New function.
10592         (adjust_last_stmt, handle_builtin_memset, strlen_optimize_stmt): Use
10593         it.
10595 2016-06-20  Jakub Jelinek  <jakub@redhat.com>
10597         PR middle-end/71581
10598         * tree-ssa-uninit.c (warn_uninit): If EXPR and VAR are NULL,
10599         see if T isn't anonymous SSA_NAME with COMPLEX_EXPR created
10600         for conversion of scalar user var to complex type and use the
10601         underlying SSA_NAME_VAR in that case.  If EXPR is still NULL,
10602         punt.
10604         PR rtl-optimization/71591
10605         * toplev.c (toplev::run_self_tests): If no_backend, complain and
10606         don't run any tests.
10608 2016-06-20  Hans-Peter Nilsson  <hp@axis.com>
10610         PR target/71571
10611         * config/cris/cris.c (cris_asm_output_mi_thunk): Add missing "ba"
10612         delay-slot "nop" for PIC with CRIS v32.  Also add missing leading
10613         space for PIC with non-v32 and the common non-PIC "jump".
10615 2016-06-20  Jakub Jelinek  <jakub@redhat.com>
10617         PR target/71559
10618         * config/i386/i386.c (ix86_fp_cmp_code_to_pcmp_immediate): Fix up
10619         returned values and add UN*/LTGT/*ORDERED cases with values matching
10620         D operand modifier on vcmp for AVX.
10622 2016-06-20  Wilco Dijkstra  <wdijkstr@arm.com>
10624         * config/aarch64/aarch64.opt
10625         (mpc-relative-literal-loads): Rename internal option name.
10626         * config/aarch64/aarch64.c
10627         (aarch64_nopcrelative_literal_loads): Rename to
10628         aarch64_pcrelative_literal_loads.
10629         (aarch64_expand_mov_immediate): Likewise.
10630         (aarch64_secondary_reload): Likewise.
10631         (aarch64_can_use_per_function_literal_pools_p): Likewise.
10632         (aarch64_override_options_after_change_1): Rename and simplify logic.
10633         (aarch64_classify_symbol): Merge large model checks into switch,
10634         remove pc-relative load check.
10636 2016-06-20  James Greenhalgh  <james.greenhalgh@arm.com>
10638         * config/arm/aarch-cost-tables.h (cortexa53_extra_costs): Make FP
10639         costs relative to the cost of a register move.
10641 2016-06-20  James Greenhalgh  <james.greenhalgh@arm.com>
10643         * config/aarch64/arm_neon.h (vcvt_n_f64_s64): New.
10644         (vcvt_n_f64_u64): Likewise.
10645         (vcvt_n_s64_f64): Likewise.
10646         (vcvt_n_u64_f64): Likewise.
10647         (vcvt_f64_s64): Likewise.
10648         (vrecpe_f64): Likewise.
10649         (vcvt_f64_u64): Likewise.
10650         (vrecps_f64): Likewise.
10652 2016-06-20  James Greenhalgh  <james.greenhalgh@arm.com>
10654         * config/aarch64/aarch64.md
10655         (<FCVT_F2FIXED:fcvt_fixed_insn><GPF:mode>3): Add attributes to
10656         iterators.
10657         (<FCVT_FIXED2F:fcvt_fixed_insn><GPI:mode>3): Likewise.  Correct
10658         attributes.
10659         * config/aarch64/aarch64-builtins.c
10660         (aarch64_types_binop_uss_qualifiers): Delete.
10661         (TYPES_BINOP_USS): Likewise.
10662         (aarch64_types_binop_sus_qualifiers): Likewise.
10663         (TYPES_BINOP_SUS): Likewise.
10664         (aarch64_types_fcvt_from_unsigned_qualifiers): New.
10665         (TYPES_FCVTIMM_SUS): Likewise.
10666         * config/aarch64/aarch64-simd-builtins.def (scvtf): Use SHIFTIMM
10667         rather than BINOP.
10668         (ucvtf): Use FCVTIMM_SUS rather than BINOP_SUS.
10669         (fcvtzs): Use SHIFTIMM rather than BINOP.
10670         (fcvtzu): Use SHIFTIMM_USS rather than BINOP_USS.
10672 2016-06-20  James Greenhalgh  <james.greenhalgh@arm.com>
10674         * config/arm/aarch-cost-tables.h (cortexa57_extra_costs): Make FP
10675         costs relative to the cost of a register move.
10677 2016-06-20  Wilco Dijkstra  <wdijkstr@arm.com>
10679         * config/aarch64/aarch64.c (aarch64_modes_tieable_p):
10680         Allow scalar/single vector modes to be tieable.
10682 2016-06-20  Wilco Dijkstra  <wdijkstr@arm.com>
10684         * config/arm/cortex-a57.md (cortex_a57_fp_cpys): Add fcsel.
10686 2016-06-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10688         * params.def (PARAM_ALIGN_LOOP_ITERATIONS): Use "alignment" instead of
10689         "alignement".
10690         * tree.h (TYPE_ALIGN): Likewise.
10692 2016-06-20  Georg-Johann Lay  <avr@gjlay.de>
10694         PR target/71103
10695         * config/avr/avr.md (movqi): Handle loading subreg:qi (const).
10697 2016-06-20  Georg-Johann Lay  <avr@gjlay.de>
10699         * config/avr/avr.c (avr_print_operand): Fix "format not a string
10700         literal" build warnings.
10701         (avr_print_operand_address): Dito.
10703 2016-06-19  David Edelsohn  <dje.gcc@gmail.com>
10705         PR target/71375
10706         * config/rs6000/aix51.h (TARGET_EXTRA_BUILTINS): Define as 0.
10707         * config/rs6000/aix43.h (TARGET_EXTRA_BUILTINS): Same.
10709 2016-06-18  John David Anglin  <danglin@gcc.gnu.org>
10711         * config/pa/pa.h (TARGET_LONG_PIC_PCREL_CALL): Remove.
10713 2016-06-18  Eric Botcazou  <ebotcazou@adacore.com>
10715         PR bootstrap/71435
10716         * reload1.c (reload): Pass 0 to finish_spills when called because
10717         update_eliminables_and_spill returns true and remove did_spill.
10718         (finish_spills): Adjust comment and document GLOBAL parameter.
10720 2016-06-17  DJ Delorie  <dj@redhat.com>
10722         PR target/71338
10723         * config/rl78/rl78-expand.c (umulqihi3): Enable for G10.
10724         * config/rl78/rl78-virtual.c (umulhi3_shift_virt): Likewise.
10725         (umulqihi3_virt): Likewise.
10726         * config/rl78/rl78-real.c (umulhi3_shift_real): Likewise.
10727         (umulqihi3_real): Likewise.
10729 2016-06-17  Martin Liska  <mliska@suse.cz>
10731         * tree-ssa-reassoc.c (transform_add_to_multiply): Use auto_vec.
10733 2016-06-17  Martin Liska  <mliska@suse.cz>
10735         * predict.def: PRED_LOOP_EXIT from 92 to 85.
10737 2016-06-17  James Greenhalgh  <james.greenhalgh@arm.com>
10739         * config/arm/arm_neon.h (vadd_f32): replace __FAST_MATH with
10740         __FAST_MATH__.
10741         (vaddq_f32): Likewise.
10742         (vmul_f32): Likewise.
10743         (vmulq_f32): Likewise.
10744         (vsub_f32): Likewise.
10745         (vsubq_f32): Likewise.
10747 2016-06-17  Bin Cheng  <bin.cheng@arm.com>
10749         PR tree-optimization/71347
10750         * tree-ssa-loop-ivopts.c (determine_group_iv_cost_address): Compute
10751         cost for all uses in group.
10753 2016-06-17  Bin Cheng  <bin.cheng@arm.com>
10755         * tree-vect-loop.c (vect_create_epilog_for_reduction): Only
10756         insert gimple seq if it's not empty.
10758 2016-06-17  Bin Cheng  <bin.cheng@arm.com>
10760         * tree-vectorizer.h (struct dr_with_seg_len): Remove class
10761         member OFFSET.
10762         * tree-vect-data-refs.c (operator ==): Handle DR_OFFSET directly,
10763         rather than OFFSET.
10764         (comp_dr_with_seg_len_pair): Ditto.
10765         (vect_prune_runtime_alias_test_list): Ditto.  Also Canonicalize
10766         struct dr_with_seg_len_pair against DR_OFFSET.
10767         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Handle
10768         DR_OFFSET directly.
10770 2016-06-17  Szabolcs Nagy  <szabolcs.nagy@arm.com>
10772         * config/aarch64/geniterators.sh: Handle parenthesised conditions.
10774 2016-06-16  John David Anglin  <danglin@gcc.gnu.org>
10776         * config/pa/pa.c (pa_output_pic_pcrel_sequence): New.
10777         (pa_output_lbranch): Use pa_output_pic_pcrel_sequence.
10778         (pa_output_millicode_call): Likewise.
10779         (pa_output_call): Likewise.
10780         (pa_output_indirect_call): Likewise.
10781         (pa_asm_output_mi_thunk): Likewise.
10783 2016-06-16  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
10785         * doc/invoke.texi (x86 Options): Fix -mno-fp-ret-in-387 typo.
10787 2016-06-16  Martin Liska  <mliska@suse.cz>
10789         * predict.c (combine_predictions_for_insn): When we find a first
10790         match predictor, we should consider just predictors with
10791         PRED_FLAG_FIRST_MATCH.  Print either first match (if any) or
10792         DS theory predictor.
10793         (combine_predictions_for_bb): Likewise.
10795 2016-06-16  Jakub Jelinek  <jakub@redhat.com>
10797         * gimplify.c (gimplify_scan_omp_clauses): Handle COMPONENT_REFs
10798         with base of reference to struct.
10800 2016-06-16  Uros Bizjak  <ubizjak@gmail.com>
10802         * doc/invoke.texi (x86 Options): Document -m80387 and -mhard-float.
10804 2016-06-16  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
10806         PR target/71151
10807         * config/avr/avr.c (avr_asm_init_sections): Remove setup of
10808         progmem_swtable_section.
10809         (progmem_swtable_section): Remove.
10810         (avr_asm_function_rodata_section): Remove.
10811         (TARGET_ASM_FUNCTION_RODATA_SECTION): Remove.
10812         * config/avr/avr.h (JUMP_TABLES_IN_TEXT_SECTION: Define to 1.
10814 2016-06-16  Jocelyn Mayer  <l_indien@magic.fr>
10816         * config/i386/driver-i386.c (host_detect_local_cpu): Set
10817         PROCESSOR_K8 for signature_CENTAUR_ebx with has_longmode.
10818         <case PROCESSOR_K8>: Pass nano-3000, nano, eden-x2 or k8 for
10819         signature_CENTAUR_ebx.
10820         * config/i386/i386.c (ix86_option_override_internal): Add
10821         definitions for VIA c7, samuel-2, nehemiah, esther, eden-x2, eden-x4,
10822         nano, nano-1000, nano-2000, nano-3000, nano-x2 and nano-x4.
10823         * doc/invoke.texi (x86 Options): Document new VIA -march entries.
10825 2016-06-16  Martin Liska  <mliska@suse.cz>
10827         * predict.def: Add fortran loop preheader predictor.
10828         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Properly
10829         fold IFN_BUILTIN_EXPECT with a known constant argument.
10831 2016-06-16  Martin Liska  <mliska@suse.cz>
10833         * predict.def: Add 'Fortran' to display text of all
10834         PRED_FORTRAN_* predictors.
10836 2016-06-16  Uros Bizjak  <ubizjak@gmail.com>
10838         PR target/71242
10839         * config/ia64/ia64.c (enum ia64_builtins) [IA64_BUILTIN_NANQ]: New.
10840         [IA64_BUILTIN_NANSQ]: Ditto.
10841         (ia64_fold_builtin): New function.
10842         (TARGET_FOLD_BUILTIN): New define.
10843         (ia64_init_builtins) Declare const_string_type node.
10844         Add __builtin_nanq and __builtin_nansq builtin functions.
10845         (ia64_expand_builtin): Handle IA64_BUILTIN_NANQ and IA64_BUILTIN_NANSQ.
10847 2016-06-16  Nick Clifton  <nickc@redhat.com>
10849         * config/msp430/msp430-opts.h (msp430_hwmult_types): Add
10850         MSP430_HWMULT_ prefix to enum values.
10851         (msp430_regions): Add MSP430_REGION_ prefix to enum values.
10852         * config/msp430/msp430.c: Update use of enum values.
10853         * config/msp430/msp430.md: Likewise.
10854         * config/msp430/msp430.opt: Likewise.
10856 2016-06-16  Jan Hubicka  <hubicka@ucw.cz>
10858         * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Fix estimation
10859         of comparsions in the last iteration.
10861 2016-06-16  Claudiu Zissulescu  <claziss@synopsys.com>
10862             Joern Rennecke  <joern.rennecke@embecosm.com>
10864         * config/arc/arc.c (arc_print_operand_address): Handle pc-relative
10865         addresses.
10866         (arc_needs_pcl_p): Add GOTOFFPC.
10867         (arc_legitimate_pic_addr_p): Likewise.
10868         (arc_output_pic_addr_const): Likewise.
10869         (arc_legitimize_pic_address): Generate a pc-relative address using
10870         GOTOFFPC.
10871         (arc_output_libcall): Use @pcl syntax.
10872         (arc_delegitimize_address_0): Delegitimize ARC_UNSPEC_GOTOFFPC.
10873         * config/arc/arc.md ("unspec"): Add ARC_UNSPEC_GOTOFFPC.
10874         (*movsi_insn): Use @pcl syntax.
10875         (doloop_begin_i): Likewise.
10877 2016-06-16  Martin Liska  <mliska@suse.cz>
10879         * predict.def: Define a new predictor.
10881 2016-06-16  Claudiu Zissulescu  <claziss@synopsys.com>
10883         * config/arc/arc.opt (mtp-regno): Update text.
10885 2016-06-16  Renlin Li  <renlin.li@arm.com>
10887         * config/aarch64/aarch64.c (aarch64_legitimize_address): Fix a typo.
10889 2016-06-16  Jakub Jelinek  <jakub@redhat.com>
10891         PR target/71554
10892         * config/i386/i386.md (setcc + movzbl peephole2): Use reg_set_p.
10893         (setcc + and peephole2): Likewise.
10895         PR rtl-optimization/71532
10896         * cse.c (cse_insn): For const/pure calls, invalidate argument passing
10897         memory slots.
10899 2016-06-15  Michael Meissner  <meissner@linux.vnet.ibm.com>
10901         * config/rs6000/vsx.md (VSINT_84): Add DImode to enable loading
10902         DImode constants with XXSPLTIB in vector registers.
10903         (vsx_extract_<mode>, V2DImode/V2DFmode): Combine both
10904         vsx_extract_<mode>_internal{1,2} into a single insn that handles
10905         direct move (both ISA 2.07 and ISA 3.0 versions), and optimizes
10906         extraction of the element at the top of the register as a scalar
10907         value.
10908         (vsx_extract_<mode>_internal1): Likewise.
10909         (vsx_extract_<mode>_internal2): Likewise.
10910         * config/rs6000/constraints.md (wi constraint): Remove a comment
10911         about DImode not being allowed in Altivec registers.
10912         (wB constraint): New constraint for constants that can be
10913         generated in Altivec registers with VSPLTISW/VUPKHSW.
10914         * config/rs6000/predicates.md (xxspltib_constant_split): Update
10915         comments.
10916         (xxspltib_constant_nosplit): Likewise.
10917         * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Add
10918         support for -mupper-regs-di to enable DImode to go into Altivec
10919         registers.
10920         (POWERPC_MASKS): Likewise.
10921         (power7 cpu): Likewise.
10922         * config/rs6000/rs6000.opt (-mupper-regs-di): Likewise.
10923         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Add support
10924         for DImode being allowed in Altivec registers.  Update wi/wj
10925         constraints.  Set scalar_in_vmx_p flag.
10926         (rs6000_option_override_internal): Add checks for -mupper-regs-di.
10927         (xxspltib_constant_p): Allow CONST_INT's with VOIDmode.  Don't
10928         return true if we could use VSPLTISW/VUPKHSW instead of XXSPLTIB.
10929         (rs6000_opt_masks): Add -mupper-regs-di.
10930         * config/rs6000/rs6000.md (lfiwax): Update clobbers that don't use
10931         direct move to use wi and not wj.
10932         (lfiwzx): Likewise.
10933         (floatsi<mode>2_lfiwax_mem): Combine alternatives into a single
10934         alternative.
10935         (floatunssi<mode>2_lfiwzx_mem): Likewise.
10936         (fix_trunc<mode>di2_fctidz): Change second alternative to allow
10937         any VSX register, instead of just Altivec registers, to allow
10938         either operand to be an Altivec register or both.
10939         (fixuns_trunc<mode>di2_fctiduz): Likewise.
10940         (movdi_internal32): Add support for -mupper-regs-di.  Add support
10941         to load constants via XXSPLTIB or VSPLTISW.  Add spacing to allow
10942         the alternatives and attributes to be lined up to be easier to
10943         read.
10944         (movdi_internal64): Likewise.
10945         (64-bit DImode splitters): Change predicates to only split loading
10946         up GPR registers.  Add splits for using XXSPLTIB or VSPLTISW to
10947         load constants in ISA 3.0 or ISA 2.07 respectively.
10948         * doc/invoke.texi (RS/6000 and PowerPC Options): Document
10949         -mupper-regs-di.  Update -mupper-regs-df and -mupper-regs-sf to
10950         mention -mcpu=power9 sets these options.
10951         * doc/md.texi (PowerPC and IBM RS6000 constraints): Document the
10952         wB constraint.
10954 2016-06-15  Pitchumani Sivanupandi  <pitchumani.s@atmel.com>
10956         PR target/67353
10957         * config/avr/avr.c (avr_set_current_function): Warn misspelled
10958         interrupt/ signal handler if -Wmisspelled-isr flag is enabled.
10959         * config/avr/avr.opt (Wmisspelled-isr): New warning flag. Enabled
10960         by default to warn misspelled interrupt/ signal handler.
10961         * doc/invoke.texi (AVR Options): Document it. Update description
10962         for -nodevicelib option.
10964 2016-06-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10966         * config/aarch64/aarch64-simd.md (aarch64_<sur>shll_n<mode>): Clean
10967         up parentheses.  Use GET_MODE_UNIT_BITSIZE.
10968         (aarch64_<sur>shll2_n<mode>): Likewise.
10970 2016-06-15  Ilya Enkovich  <ilya.enkovich@intel.com>
10972         PR middle-end/71529
10973         * ipa-chkp.c (chkp_build_instrumented_fndecl): Fix
10974         DECL_CONTEXT for copied arguments.
10976 2016-06-15  Alan Hayward  <alan.hayward@arm.com>
10978         PR tree-optimization/71483
10979         * tree-vect-loop.c (vectorizable_live_operation): Pick correct index
10980         for slp
10982 2016-06-15  Martin Liska  <mliska@suse.cz>
10984         * predict.c (tree_predict_by_opcode): Call predict_edge_def
10985         instead of predict_edge w/o a probability.
10987 2016-06-15  Alan Hayward  <alan.hayward@arm.com>
10989         PR tree-optimization/71439
10990         * tree-vect-loop.c (vect_analyze_loop_operations): Additional check for
10991         live PHIs.
10993 2016-06-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10995         * ifcvt.c (bb_ok_for_noce_multiple_sets): Allow simple lowpart
10996         register subregs in SET_SRC.
10998 2016-06-15  Richard Biener  <rguenther@suse.de>
11000         * tree-vect-stmts.c (vectorizable_store): Remove strided grouped
11001         store restrictions.
11003 2016-06-15  Richard Biener  <rguenther@suse.de>
11005         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Do
11006         not consider dependences between accesses that belong to the
11007         same group.
11008         (vect_analyze_data_ref_dependences): Do not analyze read-read
11009         or self-dependences.
11011 2016-06-14  David Malcolm  <dmalcolm@redhat.com>
11013         * spellcheck-tree.c: Include spellcheck-tree.h rather than
11014         spellcheck.h.
11015         (find_closest_identifier): Reimplement in terms of
11016         best_match<tree,tree>.
11017         * spellcheck-tree.h: New file.
11018         * spellcheck.c (struct edit_distance_traits<const char *>): New
11019         struct.
11020         (find_closest_string): Reimplement in terms of
11021         best_match<const char *, const char *>.
11022         * spellcheck.h (levenshtein_distance): Move prototype of tree-based
11023         overload to spellcheck-tree.h.
11024         (find_closest_identifier): Likewise.
11025         (struct edit_distance_traits<T>): New template.
11026         (class best_match): New class.
11028 2016-06-14  David Malcolm  <dmalcolm@redhat.com>
11030         * selftest-run-tests.c (selftest::run_tests): Call
11031         selftest::spellcheck_tree_c_tests.
11032         * selftest.h (selftest::spellcheck_tree_c_tests): New decl.
11033         * spellcheck-tree.c: Include selftest.h and stringpool.h.
11034         (selftest::test_find_closest_identifier): New function.
11035         (selftest::spellcheck_tree_c_tests): New function.
11036         * spellcheck.c (selftest::test_find_closest_string): Verify that
11037         the order of the vec does not affect the results for this case.
11038         (selftest::test_data): New array.
11039         (selftest::test_metric_conditions): New function.
11040         (selftest::spellcheck_c_tests): Add a test of case-comparison.
11041         Call selftest::test_metric_conditions.
11043 2016-06-14  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
11045         * config/rs6000/rs6000-builtin.def (commentary): Typo.
11046         (BU_P9_MISC_1): Likewise.
11047         (BU_P9_64BIT_MISC_0): Likewise.
11048         (BU_P9_MISC_0): Likewise.
11050 2016-06-14  David Malcolm  <dmalcolm@redhat.com>
11052         * gcc-rich-location.c
11053         (gcc_rich_location::add_fixit_misspelled_id): New method.
11054         * gcc-rich-location.h
11055         (gcc_rich_location::add_fixit_misspelled_id): Add decl.
11057 2016-06-14  Andreas Tobler  <andreast@gcc.gnu.org>
11059         * config/arm/freebsd.h: Only enable unaligned access for armv6 on
11060         FreeBSD 11 and above.
11062 2016-06-14  Uros Bizjak  <ubizjak@gmail.com>
11064         * config/i386/i386.md (signbittf2): Emit sse_movmskps for TARGET_SSE.
11066 2016-06-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11068         * expmed.h: Close parenthesis in "at your option" in copyright
11069         boilerplate.
11070         * lower-subreg.h: Likewise.
11072 2016-06-14  Richard Biener  <rguenther@suse.de>
11074         PR middle-end/71526
11075         * genmatch.c (expr::gen_transform): Use in_type for comparisons
11076         if available.
11078 2015-06-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11080         * config/aarch64/aarch64.c (aarch64_mask_and_shift_for_ubfiz_p):
11081         New function.
11082         (aarch64_rtx_costs): Use it.  Rewrite CONST_INT_P (op1) case to handle
11083         mask+shift version.
11084         * config/aarch64/aarch64-protos.h (aarch64_mask_and_shift_for_ubfiz_p):
11085         New prototype.
11086         * config/aarch64/aarch64.md (*andim_ashift<mode>_bfiz): Replace
11087         matching condition with aarch64_mask_and_shift_for_ubfiz_p.
11089 2016-06-14  Richard Biener  <rguenther@suse.de>
11091         PR tree-optimization/71522
11092         * tree-ssa.c (non_rewritable_lvalue_p): Do not rewrite non-float
11093         copying into float copying.
11095 2016-06-14  Jakub Jelinek  <jakub@redhat.com>
11097         PR tree-optimization/71520
11098         * tree-ssa-tail-merge.c (find_duplicate): Handle labels.
11099         (replace_block_by): Move user labels from bb1 to bb2.
11101 2016-06-14  Richard Biener  <rguenther@suse.de>
11103         PR middle-end/71310
11104         PR bootstrap/71510
11105         * expr.h (get_bit_range): Declare.
11106         * expr.c (get_bit_range): Export.
11107         * fold-const.c (optimize_bit_field_compare): Use get_bit_range and
11108         word_mode again to constrain the bitfield access.
11110 2016-06-14  Richard Biener  <rguenther@suse.de>
11112         PR tree-optimization/71521
11113         * tree-vrp.c (extract_range_from_binary_expr_1): Guard
11114         division int_const_binop against zero divisor.
11116 2016-06-13  Uros Bizjak  <ubizjak@gmail.com>
11118         * config/i386/i386.md (signbittf2): New expander.
11119         * config/i386/sse.md (ptesttf2): New insn pattern.
11121 2016-06-13  David Malcolm  <dmalcolm@redhat.com>
11123         PR bootstrap/71481
11124         * input.c (selftest::test_reading_source_line): Avoid reading from
11125         __FILE__ by creating a tempfile with known content and reading
11126         from that instead.
11128 2016-06-13  David Malcolm  <dmalcolm@redhat.com>
11130         * pretty-print.c (assert_pp_format_colored): Skip the test if
11131         GCC_COLORS is set.
11132         (test_pp_format): Remove comment about GCC_COLORS.
11134 2016-06-13  David Malcolm  <dmalcolm@redhat.com>
11136         * input.c (test_reading_source_line): Use SELFTEST_LOCATION.
11137         * pretty-print.c (assert_pp_format_va): Add location param and use
11138         it with ASSERT_STREQ_AT.
11139         (assert_pp_format): Add location param and pass it to
11140         assert_pp_format_va.
11141         (assert_pp_format_colored): Likewise.
11142         (ASSERT_PP_FORMAT_1): New.
11143         (ASSERT_PP_FORMAT_2): New.
11144         (ASSERT_PP_FORMAT_3): New.
11145         (test_pp_format): Provide SELFTEST_LOCATION throughout, either
11146         explicitly, or implicitly via the above macros.
11147         * selftest.c (selftest::pass): Use a selftest::location rather
11148         than file and line.
11149         (selftest::fail): Likewise.  Print the function name.
11150         (selftest::fail_formatted): Likewise.
11151         (selftest::assert_streq): Use a selftest::location rather than
11152         file and line.
11153         * selftest.h (selftest::location): New struct.
11154         (SELFTEST_LOCATION): New macro.
11155         (selftest::pass): Accept a const location & rather than file
11156         and line.
11157         (selftest::fail): Likewise.
11158         (selftest::fail_formatted): Likewise.
11159         (selftest::assert_streq): Likewise.
11160         (ASSERT_TRUE): Update for above changes, using SELFTEST_LOCATION.
11161         (ASSERT_FALSE): Likewise.
11162         (ASSERT_EQ): Likewise.
11163         (ASSERT_NE): Likewise.
11164         (ASSERT_STREQ): Likewise.
11165         (ASSERT_PRED1): Likewise.
11166         (ASSERT_STREQ_AT): New macro.
11168 2016-06-13  David Malcolm  <dmalcolm@redhat.com>
11170         * selftest.c (selftest::fail_formatted): New function.
11171         (selftest::assert_streq): New function.
11172         * selftest.h (selftests::fail_formatted): New decl.
11173         (selftest::assert_streq): New decl.
11174         (ASSERT_STREQ): Reimplement in terms of selftest::assert_streq.
11176 2016-06-13  Jeff Law  <law@redhat.com>
11178         PR tree-optimization/71403
11179         * tree-ssa-threadbackward.c
11180         (convert_and_register_jump_thread_path): No longer accept reference
11181         to path.  Do not pop items off the path anymore.
11182         (fsm_find_control_statement_thread_paths): Do not allow threading
11183         to a deeper loop nest.  Pop the last item off the path here rather
11184         than in convert_and_register_jump_thread_path.
11186 2016-06-13  Evandro Menezes  <e.menezes@samsung.com>
11187             Wilco Dijkstra  <Wilco.Dijkstra@arm.com>
11189         [AArch64] Emit division using the Newton series
11191         * config/aarch64/aarch64-protos.h
11192         (cpu_approx_modes): Add new member "division".
11193         (aarch64_emit_approx_div): Declare new function.
11194         * config/aarch64/aarch64.c
11195         (generic_approx_modes): New member "division".
11196         (exynosm1_approx_modes): Likewise.
11197         (xgene1_approx_modes): Likewise.
11198         (aarch64_emit_approx_div): Define new function.
11199         * config/aarch64/aarch64.md ("div<mode>3"): New expansion.
11200         * config/aarch64/aarch64-simd.md ("div<mode>3"): Likewise.
11201         * config/aarch64/aarch64.opt (-mlow-precision-div): Add new option.
11202         * doc/invoke.texi (-mlow-precision-div): Describe new option.
11204 2016-06-13  Evandro Menezes  <e.menezes@samsung.com>
11205             Wilco Dijkstra  <wilco.dijkstra@arm.com>
11207         [AArch64] Emit square root using the Newton series
11209         * config/aarch64/aarch64-protos.h
11210         (aarch64_emit_approx_rsqrt): Replace with new function
11211         "aarch64_emit_approx_sqrt".
11212         (cpu_approx_modes): New member "sqrt".
11213         * config/aarch64/aarch64.c
11214         (generic_approx_modes): New member "sqrt".
11215         (exynosm1_approx_modes): Likewise.
11216         (xgene1_approx_modes): Likewise.
11217         (aarch64_emit_approx_rsqrt): Replace with new function
11218         "aarch64_emit_approx_sqrt".
11219         (aarch64_override_options_after_change_1): Handle new option.
11220         * config/aarch64/aarch64-simd.md
11221         (rsqrt<mode>2): Use new function instead.
11222         (sqrt<mode>2): New expansion and insn definitions.
11223         * config/aarch64/aarch64.md: Likewise.
11224         * config/aarch64/aarch64.opt
11225         (mlow-precision-sqrt): Add new option description.
11226         * doc/invoke.texi (mlow-precision-sqrt): Likewise.
11228 2016-06-13  Evandro Menezes  <e.menezes@samsung.com>
11230         [AArch64] Add more choices for the reciprocal square root approximation
11232         Allow a target to prefer such operation depending on the operation mode.
11234         * config/aarch64/aarch64-protos.h
11235         (AARCH64_APPROX_MODE): New macro.
11236         (AARCH64_APPROX_{NONE,ALL}): Likewise.
11237         (cpu_approx_modes): New structure.
11238         (tune_params): New member "approx_modes".
11239         * config/aarch64/aarch64-tuning-flags.def
11240         (AARCH64_EXTRA_TUNE_APPROX_RSQRT): Remove macro.
11241         * config/aarch64/aarch64.c
11242         (generic_approx_modes): New core "cpu_approx_modes" structure.
11243         (exynosm1_approx_modes): Likewise.
11244         (xgene1_approx_modes): Likewise.
11245         (generic_tunings): New member "approx_modes".
11246         (cortexa35_tunings): Likewise.
11247         (cortexa53_tunings): Likewise.
11248         (cortexa57_tunings): Likewise.
11249         (cortexa72_tunings): Likewise.
11250         (exynosm1_tunings): Likewise.
11251         (thunderx_tunings): Likewise.
11252         (xgene1_tunings): Likewise.
11253         (use_rsqrt_p): New argument for the mode and use new member from
11254         "tune_params".
11255         (aarch64_builtin_reciprocal): Devise mode from builtin.
11256         (aarch64_optab_supported_p): New argument for the mode.
11257         * doc/invoke.texi (-mlow-precision-recip-sqrt): Reword description.
11259 2016-06-13  Kelvin Nilsen  <kelvin@gcc.gnu.org>
11261         * config/rs6000/rs6000.h (RS6000_BTM_COMMON): Add the
11262         RS6000_BTM_MODULO flag into the set of flags that are considered
11263         to be part of the common configuration.
11265 2016-06-13  Kelvin Nilsen  <kelvin@gcc.gnu.org>
11267         * config/rs6000/altivec.h (vec_absd): New macro for vector absolute
11268         difference unsigned.
11269         (vec_absdb): New macro for vector absolute difference unsigned
11270         byte.
11271         (vec_absdh): New macro for vector absolute difference unsigned
11272         half-word.
11273         (vec_absdw): New macro for vector absolute difference unsigned word.
11274         * config/rs6000/altivec.md (UNSPEC_VADU): New value.
11275         (vadu<mode>3): New insn.
11276         (*p9_vadu<mode>3): New insn.
11277         * config/rs6000/rs6000-builtin.def (vadub): New built-in
11278         definition.
11279         (vaduh): New built-in definition.
11280         (vaduw): New built-in definition.
11281         (vadu): New overloaded built-in definition.
11282         (vadub): New overloaded built-in definition.
11283         (vaduh): New overloaded built-in definition.
11284         (vaduw): New overloaded built-in definition.
11285         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
11286         overloaded vector absolute difference unsigned functions.
11287         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
11288         the ISA 3.0 vector absolute difference unsigned built-in functions.
11290 2016-06-13  Eric Botcazou  <ebotcazou@adacore.com>
11292         * tree-ssa-sccvn.c (vn_reference_lookup_3): Use a uniform test and
11293         update shared_lookup_references only once after changing operands.
11295 2016-06-13  Thomas Schwinge  <thomas@codesourcery.com>
11297         PR middle-end/71373
11298         * tree-nested.c (convert_nonlocal_omp_clauses)
11299         (convert_local_omp_clauses): Document missing OMP_CLAUSE_*.
11301         * tree-cfg.c (edge_to_cases_cleanup): Fix CASE_CHAIN typo.
11302         * tree.def (CASE_LABEL_EXPR): Likewise.
11304 2016-06-13  Bernd Edlinger  <bernd.edlinger@hotmail.de>
11306         PR bootstrap/71481
11307         * input.c (test_builtins): Fix an assertion.
11309 2016-06-13  Uros Bizjak  <ubizjak@gmail.com>
11311         * config/i386/i386.md (paritydi2): Use ix86_expand_setcc.
11312         (paritysi2): Ditto.
11313         (isinfxf2): Ditto.
11314         (isinf<mode>2): Ditto.
11316 2016-06-13  Uros Bizjak  <ubizjak@gmail.com>
11318         * ggc-tests.c (test_finalization): Only test need_finalization_p
11319         for GCC_VERSION >= 4003.
11321 2016-06-13  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
11323         * config/s390/vecintrin.h: Fix file description in comment.
11325 2016-06-13  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
11327         * config/s390/s390-builtin-types.def: Change builtin type naming
11328         scheme to match builtin-types.def.
11330 2016-06-13  Marc Glisse  <marc.glisse@inria.fr>
11332         * fold-const.c (optimize_minmax_comparison): Remove.
11333         (fold_comparison): Remove call to the above.
11334         * match.pd (MIN (X, Y) == X, MIN (X, 5) == 0, MIN (X, C1) < C2):
11335         New transformations.
11337 2016-06-13  Alan Hayward  <alan.hayward@arm.com>
11339         PR tree-optimization/71416
11340         * tree-vect-loop.c (vectorizable_live_operation): Let worklist have
11341         multiple entries
11343 2016-06-13  Martin Liska  <mliska@suse.cz>
11345         * predict.c (enum predictor_reason): Prefix enum with REASON_.
11346         (combine_predictions_for_insn): Likewise.
11347         (prune_predictions_for_bb): Likewise.
11348         (combine_predictions_for_bb): Likewise.
11350 2016-06-13  Richard Biener  <rguenther@suse.de>
11352         PR tree-optimization/71505
11353         * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Make
11354         assert match comment.
11356 2016-06-13  Marek Polacek  <polacek@redhat.com>
11358         PR middle-end/71476
11359         * gimplify.c (maybe_warn_switch_unreachable): Factored out of
11360         gimplify_switch_expr.
11361         (warn_switch_unreachable_r): New function.
11363 2016-06-13  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
11365         PR target/71379
11366         * config/s390/s390.c (s390_expand_builtin): Increase MAX_ARGS by
11367         one.
11369 2016-06-13  Richard Biener  <rguenther@suse.de>
11371         PR middle-end/64516
11372         * fold-const.c (fold_unary_loc): Preserve alignment when
11373         folding a VIEW_CONVERT_EXPR into a MEM_REF.
11375 2016-06-13  Martin Liska  <mliska@suse.cz>
11377         PR sanitizer/71458
11378         * toplev.c (process_options): Do not enable -fcheck-pointer-bounds
11379         w/ -fsanitize=bounds.
11381 2016-06-12  Uros Bizjak  <ubizjak@gmail.com>
11383         * config/i386/i386.c (ix86_init_builtins): Calculate
11384         FLOAT128_FTYPE_CONST_STRING function type only once.
11385         * doc/extend.texi (x86 Built-in Functions): Update text, __float128
11386         built-in functions are available for x86-32 and x86-64 targets.
11388 2016-06-12  Uros Bizjak  <ubizjak@gmail.com>
11390         PR target/71241
11391         * config/i386/i386.i386-builtin-types.def (CONST_STRING):
11392         New primitive type.
11393         (FLOAT128_FTYPE_CONST_STRING): New function type.
11394         * config/i386/i386.c (enum ix86_builtins) [IX86_BUILTIN_NANQ]: New.
11395         [IX86_BUILTIN_NANSQ]: Ditto.
11396         (ix86_fold_builtin): Handle IX86_BUILTIN_NANQ and IX86_BUILTIN_NANSQ.
11397         (ix86_init_builtin_types): Declare const_string_type_node.
11398         (ix86_init_builtins): Add __builtin_nanq and __builtin_nansq
11399         builtin functions.
11400         (ix86_expand_builtin): Handle IX86_BUILTIN_NANQ and IX86_BUILTIN_NANSQ.
11401         * doc/extend.texi (x86 Built-in Functions): Document
11402         __builtin_nanq and __builtin_nansq.
11404 2016-06-11  Jiong Wang  <jiong.wang@arm.com>
11406         PR target/71061
11407         * config/arm/arm-protos.h (arm_attr_length_pop_multi): New declaration.
11408         * config/arm/arm.c (arm_attr_length_pop_multi): New function to return
11409         length for pop patterns.
11410         (arm_attr_length_push_multi): Update comments.
11411         * config/arm/arm.md (*load_multiple_with_writeback): Set "length"
11412         attribute.
11413         (*pop_multiple_with_writeback_and_return): Likewise.
11414         (*pop_multiple_with_return): Likewise.
11416 2016-06-11  Segher Boessenkool  <segher@kernel.crashing.org>
11418         PR middle-end/71310
11419         * fold-const.c (optimize_bit_field_compare): Don't try to use
11420         word_mode unconditionally for reading the bit field, look at
11421         DECL_BIT_FIELD_REPRESENTATIVE instead.
11423 2016-06-11  Kugan Vivekanandarajah  <kuganv@linaro.org>
11425         PR middle-end/71478
11426         * tree-ssa-reassoc.c (reassociate_bb): Remove (-1) from ops list for
11427         vector integer type.
11429 2016-06-10  Jakub Jelinek  <jakub@redhat.com>
11431         PR middle-end/71494
11432         * tree-nested.c (convert_nonlocal_reference_stmt): For GIMPLE_GOTO
11433         without LABEL_DECL, set *handled_ops_p to false instead of true.
11435 2016-06-10  Martin Sebor  <msebor@redhat.com>
11437         PR c/71392
11438         * builtin-attrs.def (ATTR_NOTHROW_NONNULL_LEAF_LIST): New macro.
11439         (ATTR_NOTHROW_NONNULL_TYPEGENERIC_LEAF): Same.
11440         * builtins.def (BUILT_IN_SADD_OVERFLOW, BUILT_IN_SADDL_OVERFLOW): Use
11441         them.
11442         (BUILT_IN_SADDLL_OVERFLOW, BUILT_IN_SSUB_OVERFLOW): Same.
11443         (BUILT_IN_SSUBL_OVERFLOW, BUILT_IN_SSUBLL_OVERFLOW): Same.
11444         (BUILT_IN_SMUL_OVERFLOW, BUILT_IN_SMULL_OVERFLOW): Same.
11445         (BUILT_IN_SMULLL_OVERFLOW, BUILT_IN_UADD_OVERFLOW): Same.
11446         (BUILT_IN_UADDL_OVERFLOW, BUILT_IN_UADDLL_OVERFLOW): Same.
11447         (BUILT_IN_USUB_OVERFLOW, BUILT_IN_USUBL_OVERFLOW): Same.
11448         (BUILT_IN_USUBLL_OVERFLOW, BUILT_IN_UMUL_OVERFLOW): Same.
11449         (BUILT_IN_UMULL_OVERFLOW, BUILT_IN_UMULLL_OVERFLOW): Same.
11451 2016-06-10  Bernd Edlinger  <bernd.edlinger@hotmail.de>
11453         * config/arm/arm.h (pool_vector_label,
11454         return_used_this_function): Remove.
11456 2016-06-10  Jeff Law  <law@redhat.com>
11458         PR tree-optimization/71335
11459         * tree-ssa-threadbackward.c (profitable_jump_thread_path): Filter out
11460         zero length paths here.
11461         (convert_and_register_jump_thread_path): Remove hacks related to
11462         duplicated blocks in the jump thread path.
11463         (fsm_find_control_statement_thread_paths): Avoid putting the same
11464         block on the thread path twice, but ensure the thread path is
11465         unchanged from the caller's point of view.
11467 2016-06-10  Jan Hubicka  <hubicka@ucw.cz>
11469         * predict.c (predict_loops): Remove PRED_LOOP_BRANCH.
11470         * predict.def (PRED_LOOP_BRANCH): Remove.
11472 2016-06-10  David Malcolm  <dmalcolm@redhat.com>
11474         * Makefile.in (OBJS): Add ggc-tests.o.
11475         (GTFILES): Add ggc-tests.c.
11476         * ggc-tests.c: New file.
11477         * selftest-run-tests.c (selftest::run_tests): Call
11478         selftest::ggc_tests_c_tests.
11479         * selftest.h (selftest::ggc_tests_c_tests): New prototype.
11481 2016-06-10  Alexander Monakov  <amonakov@ispras.ru>
11483         * match.pd (-1 / B < A): Use :c to avoid pattern duplication.
11485 2016-06-10  Maxim Ostapenko  <m.ostapenko@samsung.com>
11487         PR sanitizer/71480
11488         * varasm.c (place_block_symbol): Adjust alignment for asan protected
11489         STRING_CSTs even if TREE_CONSTANT_POOL_ADDRESS_P.
11491 2016-06-10  Jan Hubicka  <hubicka@ucw.cz>
11493         * profile.c: Include cfgloop.h.
11494         (branch_prob): Compute estimated number of iterations.
11495         * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop): Do not
11496         recompute estimate number of iterations from profile.
11498 2016-06-10  Bernd Edlinger  <bernd.edlinger@hotmail.de>
11500         PR inline-asm/68843
11501         * reg-stack.c (check_asm_stack_operands): Explicit input arguments
11502         must be grouped on top of stack.  Don't force early clobber
11503         on ordinary reg outputs.
11505 2016-06-10  Richard Biener  <rguenther@suse.de>
11507         * targhooks.c (default_builtin_vectorization_cost): Adjust
11508         vec_construct cost.
11510 2016-06-10  Richard Biener  <rguenther@suse.de>
11512         * gimple-fold.c (gimple_fold_builtin_memory_op): Make sure
11513         to fold the RHS to a constant if possible.
11515 2016-06-10  Thomas Schwinge  <thomas@codesourcery.com>
11517         PR middle-end/71373
11518         * tree-nested.c (convert_nonlocal_omp_clauses)
11519         (convert_local_omp_clauses): Handle OMP_CLAUSE_ASYNC,
11520         OMP_CLAUSE_WAIT, OMP_CLAUSE_INDEPENDENT, OMP_CLAUSE_AUTO,
11521         OMP_CLAUSE__CACHE_, OMP_CLAUSE_TILE.
11523         * gimplify.c (gimplify_adjust_omp_clauses): Discard
11524         OMP_CLAUSE_TILE.
11525         * omp-low.c (scan_sharing_clauses): Don't expect OMP_CLAUSE_TILE.
11527         * omp-low.c (scan_sharing_clauses): Don't expect
11528         OMP_CLAUSE__CACHE_.
11530 2016-06-10  Alan Hayward  <alan.hayward@arm.com>
11532         PR tree-optimization/71407
11533         PR tree-optimization/71416
11534         * tree-vect-loop.c (vectorizable_live_operation): Use vectype for
11535         BIT_FIELD_REF type.
11537 2016-06-10  Richard Biener  <rguenther@suse.de>
11539         PR middle-end/71477
11540         * cfgloop.c (alloc_loop): Initialize nb_iterations_likely_upper_bound.
11542 2016-06-09  Eric Botcazou  <ebotcazou@adacore.com>
11544         * df-problems.c (df_note_bb_compute): Guard use of DF_INSN_INFO_GET.
11546 2016-06-09  Vladimir Makarov  <vmakarov@redhat.com>
11547             Jiong Wang  <jiong.wang@arm.com>
11549         PR rtl-optimization/70751
11550         * lra-constraints.c (process_alt_operands): Recognize Non-pseudo
11551         spilled into memory.
11553 2016-06-09  Jonathan Yong  <10walls@gmail.com>
11555         Revert:
11556         2015-09-21  Jonathan Yong  <10walls@gmail.com>
11558         * config/i386/cygwin.h (STARTFILE_SPEC): Explicitly search
11559         sysroot/usr/lib/32api for additional win32 libraries,
11560         fixes failing Cygwin bootstrapping.
11562 2016-06-09  Marcin Baczyński  <marbacz@gmail.com>
11564         * diagnostic.h (diagnostic_line_cutoff, diagnostic_flush_buffer):
11565         Delete.
11567 2016-06-09  David Malcolm  <dmalcolm@redhat.com>
11569         PR bootstrap/71471
11570         * pretty-print.c (pp_indent): Specify that %p is printed in a
11571         host-dependent manner.
11572         (test_pp_format): Remove the test for %p.
11574 2016-06-09  Maciej W. Rozycki  <macro@imgtec.com>
11576         * config/mips/mips.c (mips_output_jump): Fix formatting.
11578 2016-06-09  Richard Biener  <rguenther@suse.de>
11580         PR tree-optimization/71462
11581         * tree-ssa-loop-manip.c (find_uses_to_rename): Guard against
11582         removed blocks.
11584 2016-06-09  Martin Liska  <mliska@suse.cz>
11586         * predict.c (dump_prediction): Add new argument.
11587         (enum predictor_reason): New enum.
11588         (struct predictor_hash): New struct.
11589         (predictor_hash::hash): New function.
11590         (predictor_hash::equal): Likewise.
11591         (not_removed_prediction_p): New function.
11592         (prune_predictions_for_bb): Likewise.
11593         (combine_predictions_for_bb): Prune predictions.
11595 2016-06-09  Martin Liska  <mliska@suse.cz>
11597         * predict.c (filter_predictions): New function.
11598         (remove_predictions_associated_with_edge): Use the filter
11599         function.
11600         (equal_edge_p): New function.
11602 2016-06-09  Stefan Bruens  <stefan.bruens@rwth-aachen.de>
11604         * doc/invoke.texi (ARM Options): Use lexicographical ordering.
11605         Correct usage of @samp vs @option, add @samp where appropriate.
11606         Add -march={armv6k,armv6z,arm6zk}, remove -march=ep9312.
11607         Add armv6s-m and document it, as it is no official ARM name.
11609 2016-06-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11611         * ifcvt.c (struct noce_if_info): Add transform_name field.
11612         (noce_try_move): Set if_info->transform_name to the function name.
11613         (noce_try_ifelse_collapse): Likewise.
11614         (noce_try_store_flag): Likewise.
11615         (noce_try_inverse_constants): Likewise.
11616         (noce_try_store_flag_constants): Likewise.
11617         (noce_try_addcc): Likewise.
11618         (noce_try_store_flag_mask): Likewise.
11619         (noce_try_cmove): Likewise.
11620         (noce_try_cmove_arith): Likewise.
11621         (noce_try_minmax): Likewise.
11622         (noce_try_abs): Likewise.
11623         (noce_try_sign_mask): Likewise.
11624         (noce_try_bitop): Likewise.
11625         (noce_convert_multiple_sets): Likewise.
11626         (noce_process_if_block): Print if_info->transform_name to
11627         dump_file if transformation succeeded.
11629 2016-06-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11631         * config/arm/cortex-a57.md (cortex_a57_alu):
11632         Handle csel type.
11634 2016-06-08  Martin Sebor  <msebor@redhat.com>
11635             Jakub Jelinek  <jakub@redhat.com>
11637         PR c++/70507
11638         PR c/68120
11639         * builtins.def (BUILT_IN_ADD_OVERFLOW_P, BUILT_IN_SUB_OVERFLOW_P,
11640         BUILT_IN_MUL_OVERFLOW_P): New builtins.
11641         * builtins.c: Include gimple-fold.h.
11642         (fold_builtin_arith_overflow): Handle
11643         BUILT_IN_{ADD,SUB,MUL}_OVERFLOW_P.
11644         (fold_builtin_3): Likewise.
11645         * doc/extend.texi (Integer Overflow Builtins): Document
11646         __builtin_{add,sub,mul}_overflow_p.
11648 2016-06-08  Jose E. Marchesi  <jose.marchesi@oracle.com>
11650         * config/sparc/driver-sparc.c (cpu_names): Fix the entry for the
11651         SPARC-M7 and add an entry for SPARC-S7 cpus (Sonoma).
11653 2016-06-08  Alan Lawrence  <alan.lawrence@arm.com>
11655         * config/aarch64/aarch64.c (aarch64_function_arg_alignment):
11656         Rewrite, looking one level down for records and arrays.
11658 2016-06-08  David Malcolm  <dmalcolm@redhat.com>
11660         * pretty-print.c: Include "selftest.h".
11661         (pp_format): Fix comment.
11662         (identifier_to_locale): Likewise.
11663         (selftest::test_basic_printing): New function.
11664         (selftest::assert_pp_format): New function.
11665         (selftest::test_pp_format): New function.
11666         (selftest::pretty_print_c_tests): New function.
11667         * selftest-run-tests.c (selftest::run_tests): Call
11668         selftest::pretty_print_c_tests.
11669         * selftest.h (pretty_print_c_tests): New declaration.
11671 2016-06-07  Jan Hubicka  <hubicka@ucw.cz>
11673         * invoke.texi (max-loop-headers-insns): Document.
11674         * params.def (PARAM_MAX_LOOP_HEADER_INSNS): New.
11675         * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Update comment.
11676         (ch_base::copy_headers): Use PARAM_MAX_LOOP_HEADER_INSNS.
11678 2016-06-08  Richard Biener  <rguenther@suse.de>
11680         * tree-vect-stmts.c (vectorizable_load): Remove restrictions
11681         on strided SLP loads and fall back to scalar loads in case
11682         we can't chunk them.
11684 2016-06-08  Richard Biener  <rguenther@suse.de>
11686         PR tree-optimization/71452
11687         * tree-ssa.c (non_rewritable_lvalue_p): Make sure that the
11688         type used for the SSA rewrite has enough precision to cover
11689         the dynamic type of the location.
11691 2016-06-08  Jakub Jelinek  <jakub@redhat.com>
11692             Richard Biener  <rguenther@suse.de>
11694         PR c++/71448
11695         * fold-const.c (fold_comparison): Handle CONSTANT_CLASS_P (base0)
11696         the same as DECL_P (base0) for indirect_base0.  Use equality_code
11697         in one further place.
11699 2016-06-08  Richard Sandiford  <richard.sandiford@arm.com>
11701         * expmed.c (store_bit_field_1): Do not restrict a multiword op0
11702         to one word if the field is known to overlap other words.
11703         (extract_bit_field_1): Likewise.
11704         (store_split_bit_field): Remove compensating code.
11705         (extract_split_bit_field): Likewise.
11707 2016-06-08  Bernd Schmidt  <bschmidt@redhat.com>
11709         PR debug/71432
11710         PR ada/71413
11711         * tree-ssa-strlen.c (handle_builtin_memcmp): Ignore debug insns.
11713 2016-06-08  Jiong Wang  <jiong.wang@arm.com>
11715         * config/aarch64/aarch64-builtins.def (faddp): New builtins for modes in
11716         VDQF.
11717         * config/aarch64/aarch64-simd.md (aarch64_faddp<mode>): New.
11718         (arch64_addpv4sf): Delete.
11719         (reduc_plus_scal_v4sf): Use "gen_aarch64_faddpv4sf" instead of
11720         "gen_aarch64_addpv4sf".
11721         * config/aarch64/arm_neon.h (vpadd_f32): Remove inline assembly.  Use
11722         builtin.
11723         (vpadds_f32): Likewise.
11724         (vpaddq_f32): Likewise.
11725         (vpaddq_f64): Likewise.
11727 2016-06-08  Jiong Wang  <jiong.wang@arm.com>
11729         * config/aarch64/aarch64-builtins.def (fabd): New builtins for modes
11730         VALLF.
11731         * config/aarch64/aarch64-simd.md (fabd<mode>_3): Extend modes from VDQF
11732         to VALLF.  Rename to "fabd<mode>3".
11733         "*fabd_scalar<mode>3): Delete.
11734         * config/aarch64/arm_neon.h (vabds_f32): Remove inline assembly.
11735         Use builtin.
11736         (vabdd_f64): Likewise.
11737         (vabd_f32): Likewise.
11738         (vabd_f64): Likewise.
11739         (vabdq_f32): Likewise.
11740         (vabdq_f64): Likewise.
11742 2016-06-08  Jiong Wang  <jiong.wang@arm.com>
11744         * config/aarch64/aarch64-builtins.def (rsqrts): New builtins for modes
11745         VALLF.
11746         * config/aarch64/aarch64-simd.md (aarch64_rsqrts_<mode>3): Rename to
11747         "aarch64_rsqrts<mode>".
11748         * config/aarch64/aarch64.c (get_rsqrts_type): Update gen* name.
11749         * config/aarch64/arm_neon.h (vrsqrtss_f32): Remove inline assembly.  Use
11750         builtin.
11751         (vrsqrtsd_f64): Likewise.
11752         (vrsqrts_f32): Likewise.
11753         (vrsqrts_f64): Likewise.
11754         (vrsqrtsq_f32): Likewise.
11755         (vrsqrtsq_f64): Likewise.
11757 2016-06-08  Jiong Wang  <jiong.wang@arm.com>
11759         * config/aarch64/aarch64-builtins.def (rsqrte): New builtins for modes
11760         VALLF.
11761         * config/aarch64/aarch64-simd.md (aarch64_rsqrte_<mode>2): Rename to
11762         "aarch64_rsqrte<mode>".
11763         * config/aarch64/aarch64.c (get_rsqrte_type): Update gen* name.
11764         * config/aarch64/arm_neon.h (vrsqrts_f32): Remove inline assembly.  Use
11765         builtin.
11766         (vrsqrted_f64): Likewise.
11767         (vrsqrte_f32): Likewise.
11768         (vrsqrte_f64): Likewise.
11769         (vrsqrteq_f32): Likewise.
11770         (vrsqrteq_f64): Likewise.
11772 2016-06-08  Jiong Wang  <jiong.wang@arm.com>
11774         * config/aarch64/aarch64-builtins.def (scvtf): Register vector modes.
11775         (ucvtf): Likewise.
11776         (fcvtzs): Likewise.
11777         (fcvtzu): Likewise.
11778         * config/aarch64/aarch64-simd.md
11779         (<FCVT_F2FIXED:fcvt_fixed_insn><VDQF:mode>3): New.
11780         (<FCVT_FIXED2F:fcvt_fixed_insn><VDQ_SDI:mode>3): Likewise.
11781         * config/aarch64/arm_neon.h (vcvt_n_f32_s32): Remove inline assembly.
11782         Use builtin.
11783         (vcvt_n_f32_u32): Likewise.
11784         (vcvt_n_s32_f32): Likewise.
11785         (vcvt_n_u32_f32): Likewise.
11786         (vcvtq_n_f32_s32): Likewise.
11787         (vcvtq_n_f32_u32): Likewise.
11788         (vcvtq_n_f64_s64): Likewise.
11789         (vcvtq_n_f64_u64): Likewise.
11790         (vcvtq_n_s32_f32): Likewise.
11791         (vcvtq_n_s64_f64): Likewise.
11792         (vcvtq_n_u32_f32): Likewise.
11793         (vcvtq_n_u64_f64): Likewise.
11794         * config/aarch64/iterators.md (VDQ_SDI): New mode iterator.
11795         (VSDQ_SDI): Likewise.
11796         (fcvt_target): Support V4DI, V4SI and V2SI.
11797         (FCVT_TARGET): Likewise.
11799 2016-06-08  Jiong Wang  <jiong.wang@arm.com>
11801         * config/aarch64/aarch64-builtins.c (TYPES_BINOP_USS): New
11802         (TYPES_BINOP_SUS): Likewise.
11803         (aarch64_simd_builtin_data): Update include file name.
11804         (aarch64_builtins): Likewise.
11805         * config/aarch64/aarch64-simd-builtins.def (scvtf): New entries
11806         for conversion between scalar float-point and fixed-point.
11807         (ucvtf): Likewise.
11808         (fcvtzs): Likewise.
11809         (fcvtzu): Likewise.
11810         * config/aarch64/aarch64.md
11811         (<FCVT_F2FIXED:fcvt_fixed_insn><GPF:mode>3: New
11812         pattern for conversion between scalar float to fixed-pointer.
11813         (<FCVT_FIXED2F:fcvt_fixed_insn><GPI:mode>: Likewise.
11814         (UNSPEC_FCVTZS): New UNSPEC enumeration.
11815         (UNSPEC_FCVTZU): Likewise.
11816         (UNSPEC_SCVTF): Likewise.
11817         (UNSPEC_UCVTF): Likewise.
11818         * config/aarch64/arm_neon.h (vcvtd_n_f64_s64): Remove inline assembly.
11819         Use builtin.
11820         (vcvtd_n_f64_u64): Likewise.
11821         (vcvtd_n_s64_f64): Likewise.
11822         (vcvtd_n_u64_f64): Likewise.
11823         (vcvtd_n_f32_s32): Likewise.
11824         (vcvts_n_f32_u32): Likewise.
11825         (vcvtd_n_s32_f32): Likewise.
11826         (vcvts_n_u32_f32): Likewise.
11827         * config/aarch64/iterators.md (fcvt_target): Support integer to float
11828         mapping.
11829         (FCVT_TARGET): Likewise.
11830         (FCVT_FIXED2F): New iterator.
11831         (FCVT_F2FIXED): Likewise.
11832         (fcvt_fixed_insn): New define_int_attr.
11834 2016-06-07  Jan Hubicka  <hubicka@ucw.cz>
11836         * predict.c (pass_strip_predict_hints::execute): Cleanup CFG if
11837         some statements was removed.
11839 2016-06-08  Alan Hayward  <alan.hayward@arm.com>
11841         * tree-vect-data-refs.c (vect_analyze_data_refs): Remove debug newline.
11842         * tree-vect-loop-manip.c (slpeel_make_loop_iterate_ntimes): likewise.
11843         (vect_can_advance_ivs_p): likewise.
11844         (vect_update_ivs_after_vectorizer): likewise.
11845         * tree-vect-loop.c (vect_determine_vectorization_factor): likewise.
11846         (vect_analyze_scalar_cycles_1): likewise.
11847         (vect_analyze_loop_operations): likewise.
11848         (report_vect_op): likewise.
11849         (vect_is_slp_reduction): likewise.
11850         (vect_is_simple_reduction): likewise.
11851         (get_initial_def_for_induction): likewise.
11852         (vect_transform_loop): likewise.
11853         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): likewise.
11854         (vect_recog_sad_pattern): likewise.
11855         (vect_recog_widen_sum_pattern): likewise.
11856         (vect_recog_widening_pattern): likewise.
11857         (vect_recog_divmod_pattern): likewise.
11858         * tree-vect-slp.c (vect-build-slp_tree_1): likewise.
11859         (vect_analyze_slp_instance): likewise.
11860         (vect_transform_slp_perm_load): likewise.
11861         (vect_schedule_slp_instance): likewise.
11863 2016-06-07  Jan Hubicka  <hubicka@ucw.cz>
11865         * predict.c (predict_iv_comparison): Mention that heuristics is broken.
11866         (return_prediction): PRED_CONST_RETURN predict return as not taken.
11867         * predict.def (PRED_CONTINUE): Change hitrate 50->67
11868         (PRED_LOOP_BRANCH): Document predictor as broken.
11869         (PRED_LOOP_EXIT): Change hitrate 91->92.
11870         (PRED_LOOP_EXTRA_EXIT): Change hitrate 91->83.
11871         (PRED_POINTER, PRED_TREE_POINTER): Change hitrate 85->70.
11872         (PRED_OPCODE_POSITIVE): Change hitrate 79->64.
11873         (PRED_OPCODE_NONEQUAL): Change hitrate 91->66.
11874         (PRED_TREE_OPCODE_POSITIVE): Change hitrate 73->64
11875         (PRED_TREE_OPCODE_NONEQUAL): Chnage hitrate 72->66
11876         (PRED_CALL): Chane hitrate 71->67.
11877         (PRED_TREE_EARLY_RETURN): Document issues, change hitrate 61->54.
11878         (PRED_GOTO): Document as unused right now.
11879         (PRED_CONST_RETURN): Change hitrate 67->69
11880         (PRED_NEGATIVE_RETURN): Change hitrate 96->98
11881         (PRED_NULL_RETURN): Change hitrate 91->90.
11882         (PRED_LOOP_IV_COMPARE_GUESS): Change hitrate to 98.
11883         (PRED_FORTRAN_FAIL_ALLOC): Change hitrate to 62; document issues.
11884         (PRED_FORTRAN_SIZE_ZERO): Change hitrate to 99.
11886 2016-06-07  Bill Seurer  <seurer@linux.vnet.ibm.com>
11888         * config/rs6000/altivec.h: Add __builtin_vec_mul.
11889         * config/rs6000/rs6000-builtin.def (vec_mul): Change vec_mul to a
11890         special case Altivec builtin.
11891         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove
11892         VSX_BUILTIN_VEC_MUL (replaced with special case code).
11893         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
11894         code for ALTIVEC_BUILTIN_VEC_MUL.
11895         * config/rs6000/rs6000.c (altivec_init_builtins): Add definition
11896         for __builtin_vec_mul.
11898 2016-06-07  Peter Bergner  <bergner@vnet.ibm.com>
11900         * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mhtm and
11901         -mno-htm.
11903 2016-06-07  David Malcolm  <dmalcolm@redhat.com>
11905         * spellcheck.c (selftest::test_find_closest_string): New function.
11906         (spellcheck_c_tests): Call the above.
11908 2016-06-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11910         * simplify-rtx.c (simplify_cond_clz_ctz): Delete 'mode' local variable.
11912 2016-06-07  Jakub Jelinek  <jakub@redhat.com>
11914         * config/i386/sse.md (avx_vec_concat<mode>): Add v=v,vm and
11915         Yv=Yv,C alternatives.
11917 2016-06-07  Richard Biener  <rguenther@suse.de>
11919         PR c/61564
11920         * common.opt (ffast-math): Make Optimization.
11922 2016-06-07  Simon Dardis  <simon.dardis@imgtec.com>
11923             Prachi Godbole  <prachi.godbole@imgtec.com>
11925         * config/mips/p5600.md (p5600_fpu_fadd): Remove checking for
11926         `fabs' and `fneg' type attributes.
11927         (p5600_fpu_fabs): Add `fmove' to the comment.
11929 2016-06-07  Jan Hubicka  <hubicka@ucw.cz>
11931         * gimple.c: Include builtins.h
11932         (gimple_inexpensive_call_p): New function.
11933         * gimple.h (gimple_inexpensive_call_p): Declare.
11934         * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Use it.
11935         * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Likewise;
11936         fix formatting.
11938 2016-06-07  Paolo Carlini  <paolo.carlini@oracle.com>
11940         * diagnostic.c (diagnostic_impl, diagnostic_n_impl): New.
11941         (inform, inform_at_rich_loc, inform_n, warning, warning_at,
11942         warning_at_rich_loc, warning_n, pedwarn, permerror,
11943         permerror_at_rich_loc, error, error_n, error_at, error_at_rich_loc,
11944         sorry, fatal_error, internal_error, internal_error_no_backtrace):
11945         Use the above.
11947 2016-06-07  Richard Biener  <rguenther@suse.de>
11949         PR tree-optimization/71428
11950         * tree-ssa-math-opts.c (perform_symbolic_merge): Properly distinguish
11951         BIT_FIELD_REF op vs. load.
11953 2016-06-07  Richard Biener  <rguenther@suse.de>
11955         PR middle-end/71423
11956         * match.pd ((X | ~Y) -> Y <= X): Properly invert the comparison
11957         for signed ops.
11959 2016-06-06  John David Anglin  <danglin@gcc.gnu.org>
11961         * config/pa/pa.md (call): Generate indirect long calls to non-local
11962         functions on TARGET_64BIT.
11963         (call_value): Likewise.
11965 2016-06-06  John David Anglin  <danglin@gcc.gnu.org>
11967         * config/pa/pa.md (call_val_reg_64bit): Remove "reg: DI " clobber from
11968         pattern and subsequent splitters.
11969         (call_val_reg_64bit_post_reload): Likewise.
11971 2016-06-07  Kugan Vivekanandarajah  <kuganv@linaro.org>
11973         PR middle-end/71408
11974         * tree-ssa-reassoc.c (zero_one_operation): Fix NEGATE_EXPR operand for
11975         propagate_op_to_single_use.
11977 2016-06-07  Kugan Vivekanandarajah  <kuganv@linaro.org>
11979         PR middle-end/71281
11980         * tree-ssa-reassoc.c (reassociate_bb): Set uid for negate stmt.
11982 2016-06-07  Uros Bizjak  <ubizjak@gmail.com>
11984         * config/i386/i386.h (enum ix86_enitity): Add X86_DIRFLAG.
11985         (enum x86_dirflag_state): New enum.
11986         (NUM_MODES_FOR_MODE_SWITCHING): Add X86_DIRFLAG_ANY.
11987         (machine_function): Remove needs_cld.
11988         (ix86_current_function_needs_cld): Remove.
11989         * config/i386/i386.c (ix86_set_func_type): Set
11990         ix86_optimize_mode_switching[X86_DIRFLAG] to 1.
11991         (ix86_expand_prologue): Do not emit CLD here.
11992         (ix86_dirflag_mode_needed): New function.
11993         (ix86_dirflag_mode_entry): Ditto.
11994         (ix86_mode_needed): Handle X86_DIRFLAG entity.
11995         (ix86_mode_after): Ditto.
11996         (ix86_mode_entry): Ditto.
11997         (ix86_mode_exit): Ditto.
11998         (ix86_emit_mode_set): Ditto.
11999         * config/i386/i386.md (strmov_singleop): Set
12000         ix86_optimize_mode_switching[X86_DIRFLAG] to 1 for TARGET_CLD.
12001         Do not set ix86_current_function_needs_cld.
12002         (rep_mov): Ditto.
12003         (strset_singleop): Ditto.
12004         (rep_stos): Ditto.
12005         (cmpstrnqi_nz_1): Ditto.
12006         (cmpstrnqi_1): Ditto.
12007         (strlenqi_1): Ditto.
12009 2016-06-06  Jakub Jelinek  <jakub@redhat.com>
12011         PR tree-optimization/71259
12012         * tree-vect-slp.c (vect_get_constant_vectors): For
12013         VECTOR_BOOLEAN_TYPE_P, return all ones constant instead of
12014         one for constant op, and use COND_EXPR for non-constant.
12016 2016-06-06  David Malcolm  <dmalcolm@redhat.com>
12018         * Makefile.in (OBJS): Add function-tests.o,
12019         hash-map-tests.o, hash-set-tests.o, rtl-tests.o,
12020         selftest-run-tests.o.
12021         (OBJS-libcommon): Add selftest.o.
12022         (OBJS-libcommon-target): Add selftest.o.
12023         (all.internal): Add "selftest".
12024         (all.cross): Likewise.
12025         (selftest): New phony target.
12026         (s-selftest): New target.
12027         (selftest-gdb): New phony target.
12028         (COLLECT2_OBJS): Add selftest.o.
12029         * bitmap.c: Include "selftest.h".
12030         (selftest::test_gc_alloc): New function.
12031         (selftest::test_set_range): New function.
12032         (selftest::test_clear_bit_in_middle): New function.
12033         (selftest::test_copying): New function.
12034         (selftest::test_bitmap_single_bit_set_p): New function.
12035         (selftest::bitmap_c_tests): New function.
12036         * common.opt (fself-test): New.
12037         * diagnostic-show-locus.c: Include "selftest.h".
12038         (make_range): New function.
12039         (test_range_contains_point_for_single_point): New function.
12040         (test_range_contains_point_for_single_line): New function.
12041         (test_range_contains_point_for_multiple_lines): New function.
12042         (assert_eq): New function.
12043         (test_get_line_width_without_trailing_whitespace): New function.
12044         (selftest::diagnostic_show_locus_c_tests): New function.
12045         * et-forest.c: Include "selftest.h".
12046         (selftest::test_single_node): New function.
12047         (selftest::test_simple_tree): New function.
12048         (selftest::test_disconnected_nodes): New function.
12049         (selftest::et_forest_c_tests): New function.
12050         * fold-const.c: Include "selftest.h".
12051         (selftest::assert_binop_folds_to_const): New function.
12052         (selftest::assert_binop_folds_to_nonlvalue): New function.
12053         (selftest::test_arithmetic_folding): New function.
12054         (selftest::fold_const_c_tests): New function.
12055         * function-tests.c: New file.
12056         * gimple.c: Include "selftest.h".
12057         Include "gimple-pretty-print.h".
12058         (selftest::verify_gimple_pp): New function.
12059         (selftest::test_assign_single): New function.
12060         (selftest::test_assign_binop): New function.
12061         (selftest::test_nop_stmt): New function.
12062         (selftest::test_return_stmt): New function.
12063         (selftest::test_return_without_value): New function.
12064         (selftest::gimple_c_tests): New function.
12065         * hash-map-tests.c: New file.
12066         * hash-set-tests.c: New file.
12067         * input.c: Include "selftest.h".
12068         (selftest::assert_loceq): New function.
12069         (selftest::test_accessing_ordinary_linemaps): New function.
12070         (selftest::test_unknown_location): New function.
12071         (selftest::test_builtins): New function.
12072         (selftest::test_reading_source_line): New function.
12073         (selftest::input_c_tests): New function.
12074         * rtl-tests.c: New file.
12075         * selftest-run-tests.c: New file.
12076         * selftest.c: New file.
12077         * selftest.h: New file.
12078         * spellcheck.c: Include "selftest.h".
12079         (selftest::levenshtein_distance_unit_test_oneway): New function,
12080         adapted from testsuite/gcc.dg/plugin/levenshtein_plugin.c.
12081         (selftest::levenshtein_distance_unit_test): Likewise.
12082         (selftest::spellcheck_c_tests): Likewise.
12083         * toplev.c: Include selftest.h.
12084         (toplev::run_self_tests): New.
12085         (toplev::main): Handle -fself-test.
12086         * toplev.h (toplev::run_self_tests): New.
12087         * tree.c: Include "selftest.h".
12088         (selftest::test_integer_constants): New function.
12089         (selftest::test_identifiers): New function.
12090         (selftest::test_labels): New function.
12091         (selftest::tree_c_tests): New function.
12092         * tree-cfg.c: Include "selftest.h".
12093         (selftest::push_fndecl): New function.
12094         (selftest::test_linear_chain): New function.
12095         (selftest::test_diamond): New function.
12096         (selftest::test_fully_connected): New function.
12097         (selftest::tree_cfg_c_tests): New function.
12098         * vec.c: Include "selftest.h".
12099         (selftest::safe_push_range): New function.
12100         (selftest::test_quick_push): New function.
12101         (selftest::test_safe_push): New function.
12102         (selftest::test_truncate): New function.
12103         (selftest::test_safe_grow_cleared): New function.
12104         (selftest::test_pop): New function.
12105         (selftest::test_safe_insert): New function.
12106         (selftest::test_ordered_remove): New function.
12107         (selftest::test_unordered_remove): New function.
12108         (selftest::test_block_remove): New function.
12109         (selftest::reverse_cmp): New function.
12110         (selftest::test_qsort): New function.
12111         (selftest::vec_c_tests): New function.c.
12112         * wide-int.cc: Include selftest.h and wide-int-print.h.
12113         (selftest::from_int <wide_int>): New function.
12114         (selftest::from_int <offset_int>): New function.
12115         (selftest::from_int <widest_int>): New function.
12116         (selftest::assert_deceq): New function.
12117         (selftest::assert_hexeq): New function.
12118         (selftest::test_printing <VALUE_TYPE>): New function template.
12119         (selftest::test_ops <VALUE_TYPE>): New function template.
12120         (selftest::test_comparisons <VALUE_TYPE>): New function template.
12121         (selftest::run_all_wide_int_tests <VALUE_TYPE>): New function
12122         template.
12123         (selftest::wide_int_cc_tests): New function.
12125 2016-06-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12127         PR middle-end/37780
12128         * ifcvt.c (noce_try_ifelse_collapse): New function.
12129         Declare prototype.
12130         (noce_process_if_block): Call noce_try_ifelse_collapse.
12131         * simplify-rtx.c (simplify_cond_clz_ctz): New function.
12132         (simplify_ternary_operation): Use the above to simplify
12133         conditional CLZ/CTZ expressions.
12135 2016-06-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12137         PR middle-end/37780
12138         * config/aarch64/aarch64.md (ctz<mode>2): Convert to
12139         define_insn_and_split.
12141 2016-06-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12143         PR middle-end/37780
12144         * config/arm/arm.md (ctzsi2): Convert to define_insn_and_split.
12146 2016-06-06  Bernd Edlinger  <bernd.edlinger@hotmail.de>
12148         PR c/24414
12149         * cfgexpand.c (expand_asm_loc): Remove handling for ADDR_EXPR.
12150         Implicitly clobber memory for basic asm with non-empty assembler
12151         string.  Use targetm.md_asm_adjust also here.
12152         * compare-elim.c (arithmetic_flags_clobber_p): Use asm_noperands here.
12153         * final.c (final_scan_insn): Handle basic asm in PARALLEL block.
12154         * gimple.c (gimple_asm_clobbers_memory_p): Handle basic asm with
12155         non-empty assembler string.
12156         * ira.c (compute_regs_asm_clobbered): Use asm_noperands here.
12157         * recog.c (asm_noperands): Handle basic asm in PARALLEL block.
12158         (decode_asm_operands): Handle basic asm in PARALLEL block.
12159         (extract_insn): Handle basic asm in PARALLEL block.
12160         * doc/extend.texi: Mention new behavior of basic asm.
12161         * config/ia64/ia64 (rtx_needs_barrier): Handle ASM_INPUT here.
12162         * config/pa/pa.c (branch_to_delay_slot_p, branch_needs_nop_p,
12163         branch_needs_nop_p): Use asm_noperands.
12165 2016-06-06  Jose E. Marchesi  <jose.marchesi@oracle.com>
12167         * config/sparc/sparc.md (cpu): Add niagara7 cpu type.
12168         Include the M7 SPARC DFA scheduler.
12169         New attribute v3pipe.
12170         Annotate insns with v3pipe where appropriate.
12171         Define cpu_feature vis4.
12172         Add lzd instruction type and set it on clzdi_sp64 and clzsi_sp64.
12173         Add (V8QI "8") to vbits.
12174         Add insns {add,sub}v8qi3
12175         Add insns ss{add,sub}v8qi3
12176         Add insns us{add,sub}{v8qi,v4hi}3
12177         Add insns {min,max}{v8qi,v4hi,v2si}3
12178         Add insns {minu,maxu}{v8qi,v4hi,v2si}3
12179         Add insns fpcmp{le,gt,ule,ug,ule,ugt}{8,16,32}_vis.
12180         * config/sparc/niagara4.md: Add a comment explaining the
12181         discrepancy between the documented latenty numbers and the
12182         implemented ones.
12183         * config/sparc/niagara7.md: New file.
12184         * configure.ac (HAVE_AS_SPARC5_VIS4): Define if the assembler
12185         supports SPARC5 and VIS 4.0 instructions.
12186         * configure: Regenerate.
12187         * config.in: Likewise.
12188         * config.gcc: niagara7 is a supported cpu in sparc*-*-* targets.
12189         * config/sparc/sol2.h (ASM_CPU32_DEFAUILT_SPEC): Set for
12190         TARGET_CPU_niagara7.
12191         (ASM_CPU64_DEFAULT_SPEC): Likewise.
12192         (CPP_CPU_SPEC): Handle niagara7.
12193         (ASM_CPU_SPEC): Likewise.
12194         * config/sparc/sparc-opts.h (processor_type): Add
12195         PROCESSOR_NIAGARA7.
12196         (mvis4): New option.
12197         * config/sparc/sparc.h (TARGET_CPU_niagara7): Define.
12198         (AS_NIAGARA7_FLAG): Define.
12199         (ASM_CPU64_DEFAULT_SPEC): Set for niagara7.
12200         (CPP_CPU64_DEFAULT_SPEC): Likewise.
12201         (CPP_CPU_SPEC): Handle niagara7.
12202         (ASM_CPU_SPEC): Likewise.
12203         * config/sparc/sparc.c (niagara7_costs): Define.
12204         (sparc_option_override): Handle niagara7 and adjust cache-related
12205         parameters with better values for niagara cpus.  Also support VIS4.
12206         (sparc32_initialize_trampoline): Likewise.
12207         (sparc_use_sched_lookahead): Likewise.
12208         (sparc_issue_rate): Likewise.
12209         (sparc_register_move_cost): Likewise.
12210         (dump_target_flag_bits): Support VIS4.
12211         (sparc_vis_init_builtins): Likewise.
12212         (sparc_builtins): Likewise.
12213         * config/sparc/sparc-c.c (sparc_target_macros): Define __VIS__ for
12214         VIS4 4.0.
12215         * config/sparc/driver-sparc.c (cpu_names): Add SPARC-M7 and
12216         UltraSparc M7.
12217         * config/sparc/sparc.opt (sparc_processor_type): New value
12218         niagara7.
12219         * config/sparc/visintrin.h (__attribute__): Prototypes for the
12220         VIS4 builtins.
12221         * doc/invoke.texi (SPARC Options): Document -mcpu=niagara7 and
12222         -mvis4.
12223         * doc/extend.texi (SPARC VIS Built-in Functions): Document the
12224         VIS4 builtins.
12226 2016-06-06  Jonathan Wakely  <jwakely@redhat.com>
12228         * doc/sourcebuild.texi (Directives): Remove extra closing braces.
12230 2016-06-06  Richard Biener  <rguenther@suse.de>
12232         PR tree-optimization/71398
12233         * tree-ssa-loop-ivcanon.c (unloop_loops): First unloop, then
12234         remove edges.
12236 2016-06-05  James Bowman  <james.bowman@ftdichip.com>
12238         * config/ft32/ft32.c (ft32_setup_incoming_varargs,
12239         ft32_expand_prolog, ft32_expand_epilogue):
12240         Handle pretend_args.
12241         * config/ft32/ft32.h: Remove OUTGOING_REG_PARM_STACK_SPACE.
12242         * config/ft32/ft32.md: Add pretend_returner.
12244 2016-06-06  Uros Bizjak  <ubizjak@gmail.com>
12246         PR target/71389
12247         * config/i386/i386.c (ix86_avx256_split_vector_move_misalign):
12248         Copy op1 RTX to avoid invalid sharing.
12249         (ix86_expand_vector_move_misalign): Ditto.
12251 2016-06-05  John David Anglin  <danglin@gcc.gnu.org>
12253         * expr.c (move_by_pieces_d::generate): Mark mode parameter with
12254         ATTRIBUTE_UNUSED.
12256 2016-06-05  Jan Hubicka  <hubicka@ucw.cz>
12258         * predict.c (predicted_by_loop_heuristics_p): New function.
12259         (predict_iv_comparison): Use it.
12260         (predict_loops): Walk from innermost loops; do not predict edges
12261         leaving multiple loops multiple times; implement
12262         PRED_LOOP_ITERATIONS_MAX heuristics.
12263         * predict.def (PRED_LOOP_ITERATIONS_MAX): New predictor.
12265 2016-06-05  Jan Hubicka  <hubicka@ucw.cz>
12267         * cfg.c (check_bb_profile): Do not report mismatched profiles when
12268         only edges out of BB are EH edges.
12270 2016-06-04  Martin Sebor  <msebor@redhat.com>
12271             Marcin Baczyński  <marbacz@gmail.com>
12273         PR c/48116
12274         * doc/invoke.texi (-Wreturn-type): Mention not warning on return with
12275         a void expression in a void function.
12277 2016-06-03  Jan Hubicka  <hubicka@ucw.cz>
12279         * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Do not check
12280         aux; dump reasons of decisions.
12281         (should_duplicate_loop_header_p): Likewise.
12282         (do_while_loop_p): Likewise.
12283         (ch_base::copy_headers): Dump asi num insns duplicated.
12285 2016-06-04  Jakub Jelinek  <jakub@redhat.com>
12287         PR tree-optimization/71405
12288         * tree-ssa.c (execute_update_addresses_taken): For clobber with
12289         incompatible type, build a new clobber with the right type instead
12290         of building a VIEW_CONVERT_EXPR around it.
12292 2016-06-04  Oleg Endo  <olegendo@gcc.gnu.org>
12294         PR tree-optimization/52171
12295         * config/sh/sh.c (sh_use_by_pieces_infrastructure_p): Use
12296         by_pieces_ninsns instead of move_by_pieces_ninsns.
12298 2016-06-04  Oleg Endo  <olegendo@gcc.gnu.org>
12300         * config/sh/sh.c (sh_print_operand_address): Don't use hardcoded 'r0'
12301         for reg+reg addressing mode.
12303 2016-06-03  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
12305         * rs6000-c.c (c/c-tree.h): Add #include.
12306         (altivec_resolve_overloaded_builtin): Handle ARRAY_TYPE arguments
12307         in C++ when found in the base position of vec_ld or vec_st.
12309 2016-06-03  Jan Hubicka  <hubicka@ucw.cz>
12311         * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop): Avoid
12312         use of profile unless profile status is PROFILE_READ.
12313         * profile.c (compute_branch_probabilities): Set profile status
12314         only after reporting predictor hitrates.
12316 2016-06-03  Joseph Myers  <joseph@codesourcery.com>
12318         PR target/71276
12319         PR target/71277
12320         * common.opt (ffp-int-builtin-inexact): New option.
12321         * doc/invoke.texi (-fno-fp-int-builtin-inexact): Document.
12322         * doc/md.texi (floor@var{m}2, btrunc@var{m}2, round@var{m}2)
12323         (ceil@var{m}2): Document dependence on this option.
12324         * ipa-inline-transform.c (inline_call): Handle
12325         flag_fp_int_builtin_inexact.
12326         * ipa-inline.c (can_inline_edge_p): Likewise.
12327         * config/i386/i386.md (rintxf2): Do not test
12328         flag_unsafe_math_optimizations.
12329         (rint<mode>2_frndint): New define_insn.
12330         (rint<mode>2): Do not test flag_unsafe_math_optimizations for 387
12331         or !flag_trapping_math for SSE.  Just use gen_rint<mode>2_frndint
12332         for 387 instead of extending and truncating.
12333         (frndintxf2_<rounding>): Test flag_fp_int_builtin_inexact ||
12334         !flag_trapping_math instead of flag_unsafe_math_optimizations.
12335         Change to frndint<mode>2_<rounding>.
12336         (frndintxf2_<rounding>_i387): Likewise.  Change to
12337         frndint<mode>2_<rounding>_i387.
12338         (<rounding_insn>xf2): Likewise.
12339         (<rounding_insn><mode>2): Test flag_fp_int_builtin_inexact ||
12340         !flag_trapping_math instead of flag_unsafe_math_optimizations for
12341         x87.  Test TARGET_ROUND || !flag_trapping_math ||
12342         flag_fp_int_builtin_inexact instead of !flag_trapping_math for
12343         SSE.  Use ROUND_NO_EXC in constant operand of
12344         gen_sse4_1_round<mode>2.  Just use gen_frndint<mode>2_<rounding>
12345         for 387 instead of extending and truncating.
12347 2016-06-03  H.J. Lu  <hongjiu.lu@intel.com>
12348             Julia Koval  <julia.koval@intel.com>
12350         PR target/66960
12351         PR target/67630
12352         PR target/67634
12353         PR target/67841
12354         PR target/68037
12355         PR target/68618
12356         PR target/68661
12357         PR target/69575
12358         PR target/69596
12359         PR target/69734
12360         * config/i386/i386-protos.h (ix86_epilogue_uses): New prototype.
12361         * config/i386/i386.c (ix86_conditional_register_usage): Preserve
12362         all registers, except for function return registers if there are
12363         no caller-saved registers.
12364         (ix86_set_func_type): New function.
12365         (ix86_set_current_function): Call ix86_set_func_type to set
12366         no_caller_saved_registers and func_type.  Call reinit_regs if
12367         caller-saved registers are changed.  Don't allow MPX, SSE, MMX
12368         nor x87 instructions in interrupt handler nor function with
12369         no_caller_saved_registers attribute.
12370         (ix86_function_ok_for_sibcall): Return false if there are no
12371         caller-saved registers.
12372         (type_natural_mode): Don't warn ABI change for MMX in interrupt
12373         handler.
12374         (ix86_function_arg_advance): Skip for callee in interrupt handler.
12375         (ix86_function_arg): Return special arguments in interrupt handler.
12376         (ix86_promote_function_mode): Promote pointer to word_mode only
12377         for normal functions.
12378         (ix86_can_use_return_insn_p): Don't use `ret' instruction in
12379         interrupt handler.
12380         (ix86_epilogue_uses): New function.
12381         (ix86_hard_regno_scratch_ok): Likewise.
12382         (ix86_save_reg): Preserve all registers in interrupt handler
12383         after reload.  Preserve all registers, except for function return
12384         registers, if there are no caller-saved registers after reload.
12385         (find_drap_reg): Always use callee-saved register if there are
12386         no caller-saved registers.
12387         (ix86_minimum_incoming_stack_boundary): Return MIN_STACK_BOUNDARY
12388         for interrupt handler.
12389         (ix86_expand_prologue): Don't allow DRAP in interrupt handler.
12390         Emit cld instruction if stringops are used in interrupt handler
12391         or interrupt handler isn't a leaf function.
12392         (ix86_expand_epilogue): Generate interrupt return for interrupt
12393         handler and pop the 'ERROR_CODE' off the stack before interrupt
12394         return in exception handler.
12395         (ix86_expand_call): Disallow calling interrupt handler directly.
12396         If there are no caller-saved registers, mark all registers that
12397         are clobbered by the call which returns as clobbered.
12398         (ix86_handle_no_caller_saved_registers_attribute): New function.
12399         (ix86_handle_interrupt_attribute): Likewise.
12400         (ix86_attribute_table): Add interrupt and no_caller_saved_registers
12401         attributes.
12402         (TARGET_HARD_REGNO_SCRATCH_OK): Likewise.
12403         * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Use argument
12404         accumulation in interrupt function if stack may be realigned to
12405         avoid DRAP.
12406         (EPILOGUE_USES): New.
12407         (function_type): New enum.
12408         (machine_function): Add func_type and no_caller_saved_registers.
12409         * config/i386/i386.md (UNSPEC_INTERRUPT_RETURN): New.
12410         (interrupt_return): New pattern.
12411         * doc/extend.texi: Document x86 interrupt and
12412         no_caller_saved_registers attributes.
12414 2016-06-03  Bernd Schmidt  <bschmidt@redhat.com>
12416         PR tree-optimization/52171
12417         * builtins.c (expand_cmpstrn_or_cmpmem): Delete, moved elsewhere.
12418         (expand_builtin_memcmp): New arg RESULT_EQ.  All callers changed.
12419         Look for constant strings.  Move some code to emit_block_cmp_hints
12420         and use it.
12421         * builtins.def (BUILT_IN_MEMCMP_EQ): New.
12422         * defaults.h (COMPARE_MAX_PIECES): New macro.
12423         * expr.c (move_by_pieces_d, store_by_pieces_d): Remove old structs.
12424         (move_by_pieces_1, store_by_pieces_1, store_by_pieces_2): Remvoe.
12425         (clear_by_pieces_1): Don't declare.  Move definition before use.
12426         (can_do_by_pieces): New static function.
12427         (can_move_by_pieces): Use it.  Return bool.
12428         (by_pieces_ninsns): Renamed from move_by_pieces_ninsns.  New arg
12429         OP.  All callers changed.  Handle COMPARE_BY_PIECES.
12430         (class pieces_addr); New.
12431         (pieces_addr::pieces_addr, pieces_addr::decide_autoinc,
12432         pieces_addr::adjust, pieces_addr::increment_address,
12433         pieces_addr::maybe_predec, pieces_addr::maybe_postinc): New member
12434         functions for it.
12435         (class op_by_pieces_d): New.
12436         (op_by_pieces_d::op_by_pieces_d, op_by_pieces_d::run): New member
12437         functions for it.
12438         (class move_by_pieces_d, class compare_by_pieces_d,
12439         class store_by_pieces_d): New subclasses of op_by_pieces_d.
12440         (move_by_pieces_d::prepare_mode, move_by_pieces_d::generate,
12441         move_by_pieces_d::finish_endp, store_by_pieces_d::prepare_mode,
12442         store_by_pieces_d::generate, store_by_pieces_d::finish_endp,
12443         compare_by_pieces_d::generate, compare_by_pieces_d::prepare_mode,
12444         compare_by_pieces_d::finish_mode): New member functions.
12445         (compare_by_pieces, emit_block_cmp_via_cmpmem): New static
12446         functions.
12447         (expand_cmpstrn_or_cmpmem): Moved here from builtins.c.
12448         (emit_block_cmp_hints): New function.
12449         (move_by_pieces, store_by_pieces, clear_by_pieces): Rewrite to just
12450         use the newly defined classes.
12451         * expr.h (by_pieces_constfn): New typedef.
12452         (can_store_by_pieces, store_by_pieces): Use it in arg declarations.
12453         (emit_block_cmp_hints, expand_cmpstrn_or_cmpmem): Declare.
12454         (move_by_pieces_ninsns): Don't declare.
12455         (can_move_by_pieces): Change return value to bool.
12456         * target.def (TARGET_USE_BY_PIECES_INFRASTRUCTURE_P): Update docs.
12457         (compare_by_pieces_branch_ratio): New hook.
12458         * target.h (enum by_pieces_operation): Add COMPARE_BY_PIECES.
12459         (by_pieces_ninsns): Declare.
12460         * targethooks.c (default_use_by_pieces_infrastructure_p): Handle
12461         COMPARE_BY_PIECES.
12462         (default_compare_by_pieces_branch_ratio): New function.
12463         * targhooks.h (default_compare_by_pieces_branch_ratio): Declare.
12464         * doc/tm.texi.in (STORE_MAX_PIECES, COMPARE_MAX_PIECES): Document.
12465         * doc/tm.texi: Regenerate.
12466         * tree-ssa-strlen.c: Include "builtins.h".
12467         (handle_builtin_memcmp): New static function.
12468         (strlen_optimize_stmt): Call it for BUILT_IN_MEMCMP.
12469         * tree.c (build_common_builtin_nodes): Create __builtin_memcmp_eq.
12471 2016-06-03  Alan Hayward  <alan.hayward@arm.com>
12473         * tree-vect-stmts.c (vect_stmt_relevant_p): Do not vectorize non live
12474         relevant stmts which are simple and invariant.
12475         * tree-vect-loop.c (vectorizable_live_operation): Check relevance
12476         instead of simple and invariant
12478 2016-06-03  Alan Hayward  <alan.hayward@arm.com>
12480         * tree-vect-loop.c (vect_analyze_loop_operations): Allow live stmts.
12481         (vectorizable_reduction): Check for new relevant state.
12482         (vectorizable_live_operation): vectorize live stmts using
12483         BIT_FIELD_REF.  Remove special case for gimple assigns stmts.
12484         * tree-vect-stmts.c (is_simple_and_all_uses_invariant): New function.
12485         (vect_stmt_relevant_p): Check for stmts which are only used live.
12486         (process_use): Use of a stmt does not inherit it's live value.
12487         (vect_mark_stmts_to_be_vectorized): Simplify relevance inheritance.
12488         (vect_analyze_stmt): Check for new relevant state.
12489         * tree-vectorizer.h (vect_relevant): New entry for a stmt which is used
12490         outside the loop, but not inside it.
12492 2016-06-03  Alan Hayward  <alan.hayward@arm.com>
12494         * tree-vectorizer.h (vect_get_vec_def_for_operand_1): New.
12495         * tree-vect-stmts.c (vect_get_vec_def_for_operand_1): New.
12496         (vect_get_vec_def_for_operand): Split out code.
12498 2016-06-03  Segher Boessenkool  <segher@kernel.crashing.org>
12500         * config/rs6000/rs6000.md (define_peepholes for two mfcr's): Delete.
12502 2016-06-03  Alan Hayward  <alan.hayward@arm.com>
12504         * tree-vect-stmts.c (vectorizable_call) Remove GOMP_SIMD_LANE code.
12506 2016-06-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12508         * config/arm/thumb1.md (*thumb1_mulsi3): Fix typos in comment.
12510 2016-06-03  Jakub Jelinek  <jakub@redhat.com>
12512         PR middle-end/71387
12513         * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): If redirecting
12514         to noreturn e->callee->decl that has void return type and void
12515         arguments, adjust gimple_call_fntype and remove lhs even if it had
12516         previously addressable type.
12518 2016-06-02  Jeff Law  <law@redhat.com>
12520         PR tree-optimization/71328
12521         * tree-ssa-threadupdate.c (duplicate_thread_path): Fix off-by-one
12522         error when checking for a jump back onto the copied path.
12524 2016-06-02  David Malcolm  <dmalcolm@redhat.com>
12526         * config/microblaze/microblaze.c (get_branch_target): Add return
12527         NULL_RTX for the non-CALL_P case.
12528         (insert_wic_for_ilb_runout): Remove unused local "wic_addr1".
12529         (insert_wic): Remove unused local "j".
12531 2016-06-02  Martin Liska  <mliska@suse.cz>
12533         * predict.def: Fix typo in PRED_FORTRAN_FAIL_IO display name.
12535 2016-06-02  H.J. Lu  <hongjiu.lu@intel.com>
12536             Julia Koval  <julia.koval@intel.com>
12538         * function.c (assign_parm_setup_stack): Force source into a
12539         register if needed.
12540         * target.def (function_incoming_arg): Update documentation to
12541         allow arbitrary address computation based on hard register.
12542         * doc/tm.texi: Regenerated.
12544 2016-06-02  Martin Liska  <mliska@suse.cz>
12546         * predict.c (combine_predictions_for_bb): Fix first match in
12547         cases where a first predictor contains more than one occurence
12548         in list of predictors.  Take the best value in such case.
12550 2016-06-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12552         PR rtl-optimization/71295
12553         * rtlanal.c (subreg_get_info): If taking a subreg at the requested
12554         offset would go over the size of the inner mode reject it.
12556 2016-06-02  Jakub Jelinek  <jakub@redhat.com>
12558         * config/i386/sse.md (*vec_concatv4si): Use v=v,v instead of
12559         x=x,x and v=v,m instead of x=x,m.
12561         * config/i386/sse.md (*vec_concatv2si_sse4_1): Add avx512dq v=Yv,rm
12562         alternative.  Change x=x,x alternative to v=Yv,Yv and x=rm,C
12563         alternative to v=rm,C.
12565         * config/i386/sse.md (*vec_concatv2di): Add x86_avx512dq v=Yv,rm
12566         alternative.  Change x=xm,C alternative to v=vm,C, x=x,x alternative
12567         to v=Yv,Yv and x=x,m to v=v,m.  Use maybe_evex prefix attribute
12568         instead of vex for the last two above mentioned alternatives.
12570 2016-06-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12572         PR target/70830
12573         * config/arm/arm.c (arm_output_multireg_pop): Guard "pop" on update.
12575 2016-06-02  Segher Boessenkool  <segher@kernel.crashing.org>
12577         * config/rs6000/dfp.md (trunctddd2): Correct the "length" attribute.
12579 2016-06-01  David Malcolm  <dmalcolm@redhat.com>
12581         * config/rl78/rl78.c (rl78_expand_prologue): Convert local
12582         from int to unsigned.
12584 2016-05-31  Michael Meissner  <meissner@linux.vnet.ibm.com>
12586         * config/rs6000/vsx.md (vsx_splat_<mode>, V2DI/V2DF): Simplify
12587         alternatives, eliminating preferred register class.  Add support
12588         for the MTVSRDD instruction in ISA 3.0.
12589         (vsx_splat_v4si_internal): Use splat_input_operand instead of
12590         reg_or_indexed_operand.
12591         (vsx_splat_v4sf_internal): Likewise.
12593 2016-05-31  Michael Meissner  <meissner@linux.vnet.ibm.com>
12595         PR target/71186
12596         * config/rs6000/vsx.md (xxspltib_<mode>_nosplit): Add alternatives
12597         for loading up all 0's or all 1's.
12599 2016-06-01  Thomas Preud'homme  <thomas.preudhomme@arm.com>
12601         * doc/sourcebuild.texi (arm_acq_rel): Document new effective target.
12603 2016-06-01  Eduard Sanou  <dhole@openmailbox.org>
12605         * doc/cppenv.texi: Note that the `%s` in `date` is a non-standard
12606         extension.
12607         * gcc.c (driver_handle_option): Call set_source_date_epoch_envvar.
12608         * gcc.c (set_source_date_epoch_envvar): New function, sets
12609         the SOURCE_DATE_EPOCH environment variable to the current time.
12611 2016-06-01  Eric Botcazou  <ebotcazou@adacore.com>
12613         * tree-vect-loop.c (vect_determine_vectorization_factor): Also compute
12614         the factor for live Phi nodes.
12616 2016-06-01  Jan Hubicka  <hubicka@ucw.cz>
12618         * loop-dolop.c (doloop_optimize): Us likely max iteration bound.
12619         * tree-parloops.c (parallelize_loops): likewise.
12620         * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop,
12621         tree_unswitch_outer_loop): likewise.
12623 2016-06-01  Jakub Jelinek  <jakub@redhat.com>
12625         PR middle-end/71371
12626         * gimplify.c (gimplify_omp_for): Temporarily clear gimplify_omp_ctxp
12627         around creation of the temporary.
12629 2016-06-01  Richard Biener  <rguenther@suse.de>
12631         PR tree-optimization/71366
12632         * tree-ssa-loop-ivcanon.c (edges_to_remove): New global.
12633         (unloop_loops): Move removing edges here ...
12634         (try_unroll_loop_completely): ... from here.
12635         (try_peel_loop): ... and here.
12636         (tree_unroll_loops_completely_1): Track parent loops via
12637         bitmap of header BBs.
12638         (tree_unroll_loops_completely): Adjust for that.
12640 2016-06-01  Kelvin Nilsen  <kelvin@gcc.gnu.org>
12642         * config/rs6000/altivec.h (vec_slv): New macro.
12643         (vec_srv): New macro.
12644         * config/rs6000/altivec.md (UNSPEC_VSLV): New value.
12645         (UNSPEC_VSRV): New value.
12646         (vslv): New insn.
12647         (vsrv): New insn.
12648         * config/rs6000/rs6000-builtin.def (vslv): New builtin definition.
12649         (vsrv): New builtin definition.
12650         * config/rs6000/rs6000-c.c (P9V_BUILTIN_VSLV): Macro expansion to
12651         define argument types for new builtin.
12652         (P9V_BUILTIN_VSRV): Macro expansion to define argument types for
12653         new builtin.
12654         * doc/extend.texi: Document the new vec_vslv and vec_srv built-in
12655         functions.
12657 2016-06-01  Uros Bizjak  <ubizjak@gmail.com>
12658             Jocelyn Mayer  <l_indien@magic.fr>
12660         PR target/67310
12661         * config/i386/driver-i386.c (host_detect_local_cpu): Correctly
12662         detect processor family for signature_CENTAUR_ebx.
12663         <case PROCESSOR_I486>: Pass c3, winchip2 or winchip-c6 for
12664         signature_CENTAUR_ebx.
12665         <case PROCESSOR _PENTIUMPRO>: Pass c3-2 for signature_CENTAUR_ebx.
12666         <default>: Pass x86-64 for has_longmode.
12668 2016-06-01  Nathan Sidwell  <nathan@acm.org>
12670         * config/nvptx/nvptx.c (nvptx_assemble_undefined_decl): Reject
12671         undefined weak.
12673 2016-06-01  Richard Biener  <rguenther@suse.de>
12675         PR tree-optimization/71261
12676         * tree-vect-patterns.c (check_bool_pattern): Gather a hash-set
12677         of stmts successfully put in the bool pattern.  Remove
12678         single-use restriction.
12679         (adjust_bool_pattern_cast): Add cast at the use site via the
12680         pattern def sequence.
12681         (adjust_bool_pattern): Remove recursion, maintain a hash-map
12682         of patterned defs.  Use the pattern def seqence instead of
12683         multiple independent patterns.
12684         (sort_after_uid): New qsort compare function.
12685         (adjust_bool_stmts): New function to process stmts in the bool
12686         pattern in IL order.
12687         (vect_recog_bool_pattern): Adjust.
12688         * tree-if-conv.c (ifcvt_split_def_stmt): Remove.
12689         (ifcvt_walk_pattern_tree): Likewise.
12690         (stmt_is_root_of_bool_pattern): Likewise.
12691         (ifcvt_repair_bool_pattern): Likewise.
12692         (tree_if_conversion): Do not call ifcvt_repair_bool_pattern.
12694 2016-06-01  Jan Hubicka  <hubicka@ucw.cz>
12696         * loop-unroll.c (decide_unroll_constant_iterations,
12697         decide_unroll_runtime_iterations, decide_unroll_stupid): Use
12698         likely upper bounds.
12699         * loop-iv.c (find_simple_exit): Dump likely upper bounds.
12701 2016-06-01  Thomas Schwinge  <thomas@codesourcery.com>
12703         * tree-core.h (enum omp_clause_code): Remove
12704         OMP_CLAUSE_DEVICE_RESIDENT.  Adjust all users.
12706 2016-06-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12708         * config/arm/sync.md (arm_store_exclusive<mode>):
12709         Use 'H' output modifier on operands[2] rather than creating a new
12710         entry in out-of-bounds memory of the operands array.
12711         (arm_store_release_exclusivedi): Likewise.
12713 2016-06-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12715         * config/arm/arm.c (arm_fusion_enabled_p): New function.
12716         * config/arm/arm-protos.h (arm_fusion_enabled_p): Declare prototype.
12717         * config/arm/crypto.md (crypto_<crypto_pattern>, CRYPTO_UNARY):
12718         Add "=w,0" alternative.  Enable it when AES/AESMC fusion is enabled.
12720 2016-06-01  Eric Botcazou  <ebotcazou@adacore.com>
12722         * tree-vect-loop.c (vect_determine_vectorization_factor): Also take
12723         into account live statements for mask producers.
12725 2016-06-01  Richard Biener  <rguenther@suse.de>
12727         PR tree-optimization/71311
12728         * match.pd (@0 < @1 && @0 < @2 -> @0 < min(@1,@2)): Add :c and
12729         restrict to non-INTEGER_CST @0.
12731 2016-06-01  Richard Biener  <rguenther@suse.de>
12733         * match.pd ((A & B) - (A & ~B) -> B - (A ^ B)): Add missing :c.
12734         (relational patterns): Use :c to avoid pattern duplications.
12736 2016-06-01  Richard Biener  <rguenther@suse.de>
12738         * genmatch.c (comparison_code_p): New predicate.
12739         (swap_tree_comparison): New function.
12740         (commutate): Add for_vec parameter to append new for entries.
12741         Support commutating relational operators by swapping it alongside
12742         operands.
12743         (lower_commutative): Adjust.
12744         (dt_simplify::gen): Do not pass artificial operators to gen
12745         functions.
12746         (decision_tree::gen): Do not add artificial operators as parameters.
12747         (parser::parse_expr): Verify operator commutativity when :c is
12748         applied.  Allow :C to override this.
12749         * match.pd: Adjust patterns to use :C instead of :c where required.
12751 2016-06-01  Patrick Palka  <ppalka@gcc.gnu.org>
12753         PR tree-optimization/71077
12754         * tree-ssa-threadedge.c (simplify_control_stmt_condition_1): In
12755         the combining step, use boolean_false_node and boolean_true_node
12756         as the designated false/true return values.
12758 2016-05-31  Jan Hubicka  <hubicka@ucw.cz>
12760         * predict.def (PRED_LOOP_EXTRA_EXIT): Define.
12761         * predict.c (predict_iv_comparison): Also check PRED_LOOP_EXTRA_EXIT.
12762         (predict_extra_loop_exits): Use PRED_LOOP_EXTRA_EXIT instead of
12763         PRED_LOOP_EXIT.
12765 2016-05-31  Jan Hubicka  <hubicka@ucw.cz>
12767         * doc/invoke.texi (-frename-registers): Drop -fpeel-loops from list
12768         of flags impliying the register renaming.
12769         * toplev.c (process_options): Do not imply flag_rename_registers with
12770         loop peeling.
12772 2016-05-31  Oleg Endo  <olegendo@gcc.gnu.org>
12774         * config/sh/sh.h (ASM_OUTPUT_SYMBOL_REF): Remove macro and use the
12775         default implementation.
12777 2016-05-31  Nathan Sidwell  <nathan@acm.org>
12779         * dwarf2out.c (cur_line_info_table): Add GTY marker.
12781 2016-05-31  Oleg Endo  <olegendo@gcc.gnu.org>
12783         * config/sh/constraints.md (b): Remove constraint.
12784         * config/sh/predicates.md (arith_reg_operand): Remove
12785         TARGET_REGISTER_P.
12786         * config/sh/sh-modes.def (PDI): Remove.
12787         * config/sh/sh.c (sh_target_reg_class,
12788         sh_optimize_target_register_callee_saved): Remove functions.
12789         (sh_option_override): Don't set MASK_SAVE_ALL_TARGET_REGS.
12790         (sh_expand_epilogue): Update comment.
12791         (sh_hard_regno_mode_ok, sh_register_move_cost, calc_live_regs,
12792         sh_secondary_reload): Remove TARGET_REGS related code.
12793         * config/sh/sh.h (FIRST_TARGET_REG, LAST_TARGET_REG,
12794         TARGET_REGISTER_P): Remove macros.
12795         (SH_DBX_REGISTER_NUMBER, REG_ALLOC_ORDER): Remove target regs.
12796         * config/sh/sh.md (PR_MEDIA_REG, T_MEDIA_REG, FR23_REG, TR0_REG,
12797         TR1_REG, TR2_REG): Remove constants.
12798         * config/sh/sh.opt (SAVE_ALL_TARGET_REGS): Remove.
12800 2016-05-31  Oleg Endo  <olegendo@gcc.gnu.org>
12802         * config/sh/sh.md (adddi3, subdi3, negdi2, abs<mode>2): Remove
12803         define_expand patterns.
12804         (adddi3_compact): Rename to adddi3.
12805         (subdi3_compact): Rename to subdi3.
12806         (*negdi2): Rename to negdi2.
12807         (*abs<mode>2): Rename to abs<mode>2.
12809 2016-05-31  Oleg Endo  <olegendo@gcc.gnu.org>
12811         * config/rx/rx.md (FETCHOP_NO_MINUS): New code iterator.
12812         (atomic_<fetchop_name>_fetchsi): Extract minus operator into ...
12813         (atomic_sub_fetchsi): ... this new pattern.
12814         (mvtc): Add CC_REG clobber.
12816 2016-05-31  Marek Polacek  <polacek@redhat.com>
12818         * gimplify.c (gimplify_switch_expr): Also handle GIMPLE_TRY.
12820 2016-05-31  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12822         * config/aarch64/aarch64.c (aarch_macro_fusion_pair_p): Use
12823         aarch64_fusion_enabled_p to check for fusion capabilities.
12825 2016-05-31  Richard Biener  <rguenther@suse.de>
12827         PR tree-optimization/71352
12828         * tree-ssa-reassoc.c (zero_one_operation): Handle op equal to
12829         minus one and a negate.
12831 2016-05-31  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12833         * config/aarch64/aarch64.c (aarch64_simd_attr_length_move): Delete.
12834         * config/aarch64/aarch64-protos.h (aarch64_simd_attr_length_move):
12835         Delete prototype.
12836         * config/aarch64/iterators.md (insn_count): Add descriptive comment.
12837         * config/aarch64/aarch64-simd.md (*aarch64_mov<mode>, VSTRUCT modes):
12838         Remove use of aarch64_simd_attr_length_move, set length attribute
12839         directly.
12840         (*aarch64_be_movoi): Likewise.
12841         (*aarch64_be_movci): Likewise.
12842         (*aarch64_be_movxi): Likewise.
12844 2016-05-31  Jan Hubicka  <hubicka@ucw.cz>
12846         * loop-init.c (gate): Do not enale RTL loop unroller with -fpeel-loops.
12847         It no longer does that.
12848         * toplev.c (process_options): Do not enable flag_web with -fpeel-loops.
12850 2016-05-31  Wladimir J. van der Laan  <laanwj@gmail.com>
12852         * config/aarch64/arm_neon.h (vdupb_laneq_s8): Remove spurious
12853         attribute __unused__.
12855 2016-05-31  Thomas Preud'homme  <thomas.preudhomme@arm.com>
12857         * config/arm/arm-protos.h (arm_arch_thumb1): Declare.
12858         * config/arm/arm.c (arm_arch_thumb1): Define.
12859         (arm_option_override): Initialize arm_arch_thumb1.
12860         * config/arm/arm.h (arm_arch_thumb1): Declare.
12861         (TARGET_ARM_ARCH_ISA_THUMB): Use arm_arch_thumb to determine if target
12862         support Thumb-1 ISA.
12864 2016-05-31  Kirill Yukhin  <kirill.yukhin@intel.com>
12866         PR target/71346
12867         * config/i386/sse.md (define_insn_and_split "*vec_extractv4sf_0"): Use
12868         `Yv' for scalar operand.
12870 2016-05-31  Tom de Vries  <tom@codesourcery.com>
12872         PR tree-optimization/69068
12873         * graphite-isl-ast-to-gimple.c (copy_bb_and_scalar_dependences): Handle
12874         phis with more than two args.
12876 2016-05-30  Andreas Tobler  <andreast@gcc.gnu.org>
12878         * config.gcc: Move hard float support for arm*hf*-*-freebsd* into
12879         armv6*-*-freebsd* for FreeBSD 11. Eliminate the arm*hf*-*-freebsd*
12880         target.
12882 2016-05-30  Jose E. Marchesi  <jose.marchesi@oracle.com>
12884         * config.gcc (sparc*-*-*): Support cpu_32, cpu_64, tune_32 and
12885         tune_64.
12886         * doc/install.texi (--with-cpu-32, --with-cpu-64): Document
12887         support on SPARC.
12888         * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): Add entries for
12889         cpu_32, cpu_64, tune_32 and tune_64.
12890         * config/sparc/sol2.h (OPTION_DEFAULT_SPECS): Likewise.
12892 2016-05-30  Uros Bizjak  <ubizjak@gmail.com>
12894         * config/i386/sync.md (mfence_nosse): Use "lock orl $0, -4(%esp)".
12896 2016-05-30  Andi Kleen  <ak@linux.intel.com>
12898         * auto-profile.c (read_profile): Replace asserts with errors
12899         when file does not exist.
12900         * gcov-io.c (gcov_read_words): Dito.
12902 2016-05-30  Jan Hubicka  <hubicka@ucw.cz>
12904         * tree-cfg.c (print_loop): Print likely upper bounds.
12906 2016-05-30  Jan Hubicka  <hubicka@ucw.cz>
12908         * doc/invoke.texi (-fpeel-loops,-O3): Update documentation.
12909         * opts.c (default_options): Enable peel loops at -O3.
12910         * tree-ssa-loop-ivcanon.c (peeled_loops): New static var.
12911         (try_peel_loop): Do not re-peel already peeled loops;
12912         use likely upper bounds; fix profile updating.
12913         (pass_complete_unroll::execute): Initialize peeled_loops.
12915 2016-05-30  Martin Liska  <mliska@suse.cz>
12917         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Scale
12918         computed costs by frequency of BB they belong to.
12919         (get_scaled_computation_cost_at): New function.
12921 2016-05-30  Alexander Monakov  <amonakov@ispras.ru>
12922             Marc Glisse  <marc.glisse@inria.fr>
12924         PR tree-optimization/71289
12925         * match.pd (-1 / B < A, A > -1 / B): New transformations.
12927 2016-05-30  Jan Hubicka  <hubicka@ucw.cz>
12929         * tree-vect-loop.c (vect_transform_loop): Update likely bounds.
12931 2016-05-30  Jan Hubicka  <hubicka@ucw.cz>
12933         * tree-ssa-loop-ivcanon.c (try_peel_loop): Correctly set wont_exit
12934         for peeled copies; avoid underflow when updating estimates; correctly
12935         scale loop profile.
12937 2016-05-30  Kugan Vivekanandarajah  <kuganv@linaro.org>
12939         * tree-ssa-reassoc.ci (swap_ops_for_binary_stmt): Fix typo from commit
12940         r236875. Corrected oe3 to oe2 as obvious.
12942 2016-05-30  Kugan Vivekanandarajah  <kuganv@linaro.org>
12944         PR middle-end/71269
12945         PR middle-end/71252
12946         * tree-ssa-reassoc.c (insert_stmt_before_use): Use find_insert_point so
12947         that inserted stmt will not dominate stmts that defines its operand.
12948         (rewrite_expr_tree): Add stmt_to_insert before adding the use stmt.
12949         (rewrite_expr_tree_parallel): Likewise.
12951 2016-05-30  Kugan Vivekanandarajah  <kuganv@linaro.org>
12953         PR middle-end/71252
12954         * tree-ssa-reassoc.c (swap_ops_for_binary_stmt): Fix swap such that
12955         all fields including stmt_to_insert are swapped.
12957 2016-05-30  Jan Hubicka  <hubicka@ucw.cz>
12959         * predict.h (force_edge_cold): Declare.
12960         * predict.c (force_edge_cold): New function.
12961         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Fix profile
12962         updating.
12963         (canonicalize_loop_induction_variables): Fix formating.
12965 2016-05-30  Eric Botcazou  <ebotcazou@adacore.com>
12967         * config/visium/visium.c (visium_split_double_add): Minor tweaks.
12968         (visium_expand_copysign): Use gen_int_mode directly.
12969         (visium_compute_frame_size): Minor tweaks.
12971 2016-05-30  Jan Hubicka  <hubicka@ucw.cz>
12973         * tree-vect-loop.c (vect_analyze_loop_2): Use
12974         likely_max_stmt_executions_int.
12976 2016-05-30  Tom de Vries  <tom@codesourcery.com>
12978         PR tree-optimization/69067
12979         * graphite-isl-ast-to-gimple.c (get_def_bb_for_const): Remove assert.
12981 2016-05-29  Uros Bizjak  <ubizjak@gmail.com>
12983         PR target/71245
12984         * config/i386/sync.md (define_peephole2 atomic_storedi_fpu):
12985         New peepholes to remove unneeded fild/fistp pairs.
12986         (define_peephole2 atomic_loaddi_fpu): Ditto.
12988 2016-05-27  Jan Hubicka  <hubicka@ucw.cz>
12990         * predict.c (maybe_hot_frequency_p): Avoid division.
12992 2016-05-28  Gerald Pfeifer  <gerald@pfeifer.com>
12994         * doc/install.texi: Use https for shop.fsf.org.
12996 2016-05-27  Jan Hubicka  <hubicka@ucw.cz>
12998         * tree-ssa-loop-ivopts.c (estimated_stmt_executions_int): Use
12999         likely_max_stmt_executions_int.
13001 2016-05-27  Jan Hubicka  <hubicka@ucw.cz>
13003         * tree-ssa-loop-prefetch.c (loop_prefetch_arrays): Use
13004         likely_max_stmt_executions_int.
13006 2016-05-27  Jan Hubicka  <hubicka@ucw.cz>
13008         * profile.c (compute_branch_probabilities): Do not report hitrates
13009         here.
13010         (branch_prob): Report hitrates here.
13011         * predict.c (gimple_predict_edge): Do not assert profile status;
13012         fix formatting issues.
13014 2016-05-27  Jan Hubicka  <hubicka@ucw.cz>
13016         * predict.c (edge_predicted_by_p): New function.
13017         (predict_paths_for_bb): Do not put multiple predictions of the same type
13018         on one edge.
13020 2016-05-27  Jan Hubicka  <hubicka@ucw.cz>
13022         * tree-ssa-loop-niter.c (number_of_iterations_exit): Revert accidental
13023         commit.
13025 2016-05-28  Alan Modra  <amodra@gmail.com>
13027         * dominance.c (verify_dominators): Don't segfault on NULL imm_bb.
13029 2016-05-28  Alan Modra  <amodra@gmail.com>
13031         PR rtl-optimization/71275
13032         * ira.c (ira): Free dominance info.
13034 2016-05-27  Gerald Pfeifer  <gerald@pfeifer.com>
13036         * doc/sourcebuild.texi: New address for upstream Go repository.
13038 2016-05-27  Thomas Preud'homme  <thomas.preudhomme@arm.com>
13040         * config/arm/arm.h (TARGET_ARM_V6M): Remove.
13041         (TARGET_ARM_V7M): Likewise.
13043 2016-05-26  Jeff Law  <law@redhat.com>
13045         * tree-ssa-threadedge.c: Remove include of tree-ssa-threadbackward.h.
13046         (thread_across_edge): Remove calls to find_jump_threads_backwards.
13047         * passes.def: Add jump threading passes before DOM/VRP.
13048         * tree-ssa-threadbackward.c (find_jump_threads_backwards): Change
13049         argument to a basic block from an edge.  Remove tests which are
13050         handled elsewhere.
13051         (pass_data_thread_jumps, class pass_thread_jumps): New.
13052         (pass_thread_jumps::gate, pass_thread_jumps::execute): New.
13053         (make_pass_thread_jumps): Likewise.
13054         * tree-pass.h (make_pass_thread_jumps): Declare.
13056 2016-05-27  Eric Botcazou  <ebotcazou@adacore.com>
13058         * config/visium/visium-protos.h (split_double_move): Rename into...
13059         (visium_split_double_move): ...this.
13060         (visium_split_double_add): Declare.
13061         * config/visium/visium.c (split_double_move): Rename into...
13062         (visium_split_double_move): ...this.
13063         (visium_split_double_add): New function.
13064         (visium_expand_copysign): Renumber operands for consistency.
13065         * config/visium/visium.md (DImode move splitter): Adjust to renaming.
13066         (DFmode move splitter): Likewise.
13067         (*addi3_insn): Split by means of visium_split_double_add.
13068         (*adddi3_insn_flags): Delete.
13069         (*plus_plus_sltu<subst_arith>): New insn.
13070         (*subdi3_insn): Split by means of visium_split_double_add.
13071         (subdi3_insn_flags): Delete.
13072         (*minus_minus_sltu<subst_arith>): New insn.
13073         (*negdi2_insn): Split by means of visium_split_double_add.
13074         (*negdi2_insn_flags): Delete.
13076 2016-05-27  Ulrich Weigand  <uweigand@de.ibm.com>
13078         * configure.ac: Treat a --with-headers option without argument
13079         the same as the default (i.e. consult sys-include directory).
13080         * configure: Regenerate.
13082 2016-05-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13084         * config/aarch64/aarch64.c (aarch64_fusion_enabled_p): New function.
13085         * config/aarch64/aarch64-protos.h (aarch64_fusion_enabled_p): Declare
13086         prototype.
13087         * config/aarch64/aarch64-simd.md (aarch64_crypto_aes<aesmc_op>v16qi):
13088         Add "=w,0" alternative.  Enable it when AES/AESMC fusion is enabled.
13090 2016-05-27  Jiong Wang  <jiong.wang@arm.com>
13092         PR target/63596
13093         * config/aarch64/aarch64.c (aarch64_expand_builtin_va_start): Honor
13094         tree-stdarg analysis results.
13095         (aarch64_setup_incoming_varargs): Likewise.
13097 2016-05-27  Jiong Wang  <jiong.wang@arm.com>
13099         * config/aarch64/aarch64.c (aarch64_build_builtin_va_list): Initialize
13100         va_list_gpr_counter_field and va_list_fpr_counter_field.
13102 2016-05-27  Wilco Dijkstra  <wdijkstr@arm.com>
13104         PR67609
13105         * config/aarch64/aarch64.h (CANNOT_CHANGE_MODE_CLASS): Remove.
13106         * config/aarch64/aarch64.c
13107         (aarch64_cannot_change_mode_class): Remove function.
13108         * config/aarch64/aarch64-protos.h
13109         (aarch64_cannot_change_mode_class): Remove.
13111 2016-05-27  Jan Hubicka  <hubicka@ucw.cz>
13113         * cfgloop.c (record_niter_bound): Record likely upper bounds.
13114         (likely_max_stmt_executions_int, get_likely_max_loop_iterations,
13115         get_likely_max_loop_iterations_int): New.
13116         * cfgloop.h (struct loop): Add nb_iterations_likely_upper_bound,
13117         any_likely_upper_bound.
13118         (get_likely_max_loop_iterations_int, get_likely_max_loop_iterations):
13119         Declare.
13120         * cfgloopmanip.c (copy_loop_info): Copy likely upper bounds.
13121         * loop-unroll.c (unroll_loop_constant_iterations): Update likely
13122         upper bound.
13123         (unroll_loop_constant_iterations): Likewise.
13124         (unroll_loop_runtime_iterations): Likewise.
13125         * lto-streamer-in.c (input_cfg): Stream likely upper bounds.
13126         * lto-streamer-out.c (output_cfg): Likewise.
13127         * tree-ssa-loop-ivcanon.c (try_peel_loop): Update likely upper
13128         bounds.
13129         (canonicalize_loop_induction_variables): Dump likely upper bounds.
13130         * tree-ssa-loop-niter.c (record_estimate): Record likely upper bounds.
13131         (likely_max_loop_iterations): New.
13132         (likely_max_loop_iterations_int): New.
13133         (likely_max_stmt_executions): New.
13134         * tree-ssa-loop-niter.h (likely_max_loop_iterations,
13135         likely_max_loop_iterations_int, likely_max_stmt_executions_int,
13136         likely_max_stmt_executions): Declare.
13138 2016-05-27  Marek Polacek  <polacek@redhat.com>
13140         PR middle-end/71308
13141         * gimple-fold.c (gimple_fold_call): Check that LHS is not null.
13143 2016-05-27  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
13145         * config/s390/s390.md (2x risbg splitters): Use
13146         reg_overlap_mentioned_p instead of rtx_equal_p.
13148 2016-05-27  Dominik Vogt  <vogt@linux.vnet.ibm.com>
13150         * combine.c (make_compound_operation): Take known zero bits into
13151         account when checking for possible zero_extend.
13153 2016-05-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13155         * config/aarch64/aarch64.md (ashl<mode>3, SHORT modes):
13156         Use const_int_operand for operand 2 predicate.  Simplify expand code
13157         as a result.
13159 2016-05-27  Ilya Enkovich  <ilya.enkovich@intel.com>
13161         PR middle-end/71279
13162         * fold-const.c (fold_ternary_loc): Don't fold VEC_COND_EXPR
13163         into comparison.
13165 2016-05-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13167         * config/aarch64/aarch64-modes.def (CC_ZESWP, CC_SESWP): Delete.
13168         * config/aarch64/aarch64.c (aarch64_select_cc_mode): Remove condition
13169         that returns CC_SESWPmode and CC_ZESWPmode.
13170         (aarch64_get_condition_code_1): Remove handling of CC_SESWPmode
13171         and CC_SESWPmode.
13172         (aarch64_rtx_costs): Likewise.
13174 2016-05-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
13176         * config/rs6000/rs6000.c (rs6000_emit_p9_fp_minmax): New function
13177         for ISA 3.0 min/max support.
13178         (rs6000_emit_p9_fp_cmove): New function for ISA 3.0 floating point
13179         conditional move support.
13180         (rs6000_emit_cmove): Call rs6000_emit_p9_fp_minmax and
13181         rs6000_emit_p9_fp_cmove if the ISA 3.0 instructions are
13182         available.
13183         * config/rs6000/rs6000.md (SFDF2): New iterator to allow doing
13184         conditional moves where the comparison type is different from move
13185         type.
13186         (fp_minmax): New code iterator for smin/smax.
13187         (minmax): New code attributes for min/max.
13188         (SMINMAX): Likewise.
13189         (smax<mode>3): Combine min, max insns into one insn using the
13190         fp_minmax code iterator.  Add support for ISA 3.0 min/max
13191         instructions that don't need -ffast-math.
13192         (s<minmax><mode>3): Likewise.
13193         (smax<mode>3_vsx): Likewise.
13194         (smin<mode>3): Likewise.
13195         (s<minmax><mode>3_vsx): Likewise.
13196         (smin<mode>3_vsx): Likewise.
13197         (pre-VSX min/max splitters): Likewise.
13198         (s<minmax><mode>3_fpr): Likewise.
13199         (movsfcc): Rewrite floating point conditional moves to combine
13200         SFmode/DFmode into a single insn.
13201         (mov<mode>cc): Likewise.
13202         (movdfcc): Likewise.
13203         (fselsfsf4): Combine FSEL cases into a single insn, using SFDF and
13204         SFDF2 iterators to handle all combinations.
13205         (fseldfsf4): Likewise.
13206         (fsel<SFDF:mode><SFDF2:mode>4): Likewise.
13207         (fseldfdf4): Likewise.
13208         (fselsfdf4): Likewise.
13209         (mov<SFDF:mode><SFDF2:mode>cc_p9): Add support for the ISA 3.0
13210         comparison instructions that set a 0/-1 mask, and use it for
13211         floating point conditional move via XXSEL.
13212         (fpmask<mode>): Likewise.
13213         (xxsel<mode>): Likewise.
13214         * config/rs6000/predicates.md (min_max_operator): Delete, no
13215         longer used.
13216         (fpmask_comparison_operaton): New insn for ISA 3.0 comparison
13217         instructions that generate a 0/-1 mask for use with XXSEL.
13218         * config/rs6000/rs6000.h (TARGET_MINMAX_SF): New helper macros to
13219         say whether floating point min/max is available, either through
13220         FSEL, ISA 2.06 min/max, and ISA 3.0 min/max instrucitons.
13221         (TARGET_MINMAX_DF): Likewise.
13223 2016-05-27  Alan Modra  <amodra@gmail.com>
13225         PR rtl-optimization/71275
13226         * ira.c (ira): Call loop_optimizer_init to set up bb_loop_depth
13227         for update_equiv_regs and combine_and_move_insns.
13229 2016-05-26  Uros Bizjak  <ubizjak@gmail.com>
13231         * config/i386/i386.md (*movqi_internal) <attr "isa">: Use
13232         if_then_else or cond RTXes to calculate attribute value.
13233         * config/i386/mmx.md (*vec_extractv2sf_1) <attr "prefix_rep">: Ditto.
13234         <attr "length_immediate>: Ditto.
13235         (*vec_extractv2sf_1) <attr "length_immediate">: Ditto.
13236         * config/i386/sse.md (sse_loadlps) <attr "length_immediate">: Ditto.
13237         (*vec_concatv2sf_sse4_1) <attr "isa">: Ditto.
13238         <attr "type">: Ditto.
13239         <attr "prefix_data16">: Ditto.
13240         <attr "prefix_extra">: Ditto.
13241         <attr "length_immediate">: Ditto.
13242         <attr "prefix">: Ditto.
13243         (vec_set<mode>_0) <attr "isa">: Ditto.
13244         <attr "prefix_extra">: Ditto.
13245         <attr "length_immediate">: Ditto.
13246         <attr "prefix">: Ditto.
13247         (*vec_interleave_highv2df) <attr "prefix_data16">: Ditto.
13248         (*vec_interleave_lowv2df) <attr "prefix_data16">: Ditto.
13249         (sse2_storelpd) <attr "prefix_data16">: Ditto.
13250         (sse2_loadhpd) <attr "prefix_data16">: Ditto.
13251         (sse2_loadlpd) <attr "prefix_data16">: Ditto.
13252         <attr "length_immediate">: Ditto.
13253         <attr "prefix">: Ditto.
13254         (sse2_movsd) <attr "length_immediate">: Ditto.
13255         <attr "prefix">: Ditto.
13256         (vec_concatv2df)  <attr "isa">: Ditto.
13257         <attr "prefix">: Ditto.
13258         (*vec_extractv4si) <attr "prefix_extra">: Ditto.
13259         (*vec_extractv2di_1) <attr "isa">: Ditto.
13260         <attr "type">: Ditto.
13261         <attr "length_immediate">: Ditto.
13262         <attr "prefix_rex">: Ditto.
13263         <attr "prefix_extra">: Ditto.
13264         (*vec_concatv2si_sse4_1) <attr "type">: Ditto.
13265         <attr "prefix_extra">: Ditto.
13266         <attr "length_immediate">: Ditto.
13267         (vec_concatv2di) <attr "isa">: Ditto.
13268         <attr "prefix_extra">: Ditto.
13269         <attr "length_immediate">: Ditto.
13270         <attr "prefix">: Ditto.
13272 2016-05-26  Martin Liska  <mliska@suse.cz>
13274         * tree-ssa-loop-ivopts.c (comp_cost::infinite_cost_p): New
13275         function.
13276         (operator+): Likewise.
13277         (operator-): Likewise.
13278         (comp_cost::operator+=): Likewise.
13279         (comp_cost::operator-=): Likewise.
13280         (comp_cost::operator/=): Likewise.
13281         (comp_cost::operator*=): Likewise.
13282         (operator<): Likewise.
13283         (operator==): Likewise.
13284         (operator<=): Likewise.
13285         (new_cost): Remove.
13286         (infinite_cost_p): Likewise.
13287         (add_costs): Likewise.
13288         (sub_costs): Likewise.
13289         (compare_costs): Likewise.
13290         (set_group_iv_cost): Use the newly introduced functions.
13291         (get_address_cost): Likewise.
13292         (get_shiftadd_cost): Likewise.
13293         (force_expr_to_var_cost): Likewise.
13294         (split_address_cost): Likewise.
13295         (ptr_difference_cost): Likewise.
13296         (difference_cost): Likewise.
13297         (get_computation_cost_at): Likewise.
13298         (determine_group_iv_cost_generic): Likewise.
13299         (determine_group_iv_cost_address): Likewise.
13300         (determine_group_iv_cost_cond): Likewise.
13301         (autoinc_possible_for_pair): Likewise.
13302         (determine_group_iv_costs): Likewise.
13303         (cheaper_cost_pair): Likewise.
13304         (iv_ca_recount_cost): Likewise.
13305         (iv_ca_set_no_cp): Likewise.
13306         (iv_ca_set_cp): Likewise.
13307         (iv_ca_cost): Likewise.
13308         (iv_ca_new): Likewise.
13309         (iv_ca_dump): Likewise.
13310         (iv_ca_narrow): Likewise.
13311         (iv_ca_prune): Likewise.
13312         (iv_ca_replace): Likewise.
13313         (try_add_cand_for): Likewise.
13314         (try_improve_iv_set): Likewise.
13315         (find_optimal_iv_set): Likewise.
13317 2016-05-26  Richard Sandiford  <richard.sandiford@arm.com>
13319         * tree-ssa-loop-ivopts.c (loop_body_includes_call): Don't assume
13320         that internal functions will clobber all caller-saved registers.
13322 2016-05-26  Wilco Dijkstra  <wdijkstr@arm.com>
13324         * config/aarch64/aarch64.c (aarch64_case_values_threshold):
13325         Return a better case_values_threshold when optimizing.
13327 2016-05-26  Wilco Dijkstra  <wdijkstr@arm.com>
13329         * config/aarch64/aarch64-simd.md (aarch64_combinez):
13330         Add ? to integer variant.
13331         (aarch64_combinez_be): Likewise.
13333 2016-05-26  Jakub Jelinek  <jakub@redhat.com>
13335         * config/i386/sse.md (*vcvtps2ph_store<mask_name>): Use v constraint
13336         instead of x constraint.
13337         (vcvtps2ph256<mask_name>): Likewise.
13339         * config/i386/sse.md (*ssse3_palignr<mode>_perm): Add avx512bw
13340         alternative.  Formatting fix.
13342         * config/i386/sse.md
13343         (<mask_codefor>avx512vl_shuf_<shuffletype>32x4_1<mask_name>): Rename
13344         to ...
13345         (avx512vl_shuf_<shuffletype>32x4_1<mask_name>): ... this.
13346         (*avx_vperm_broadcast_v4sf): Use v constraint instead of x.  Use
13347         maybe_evex prefix instead of vex.
13348         (*avx_vperm_broadcast_<mode>): Use v constraint instead of x.  Handle
13349         EXT_REX_SSE_REG_P (op0) case in the splitter.
13351 2016-05-25  Jeff Law  <law@redhat.com>
13353         PR tree-optimization/71272
13354         * tree-ssa-threadbackward.c (convert_and_register_jump_thread_path):
13355         Update comments.  Add test for empty path.
13357 2016-05-25  Bill Seurer  <seurer@linux.vnet.ibm.com>
13359         * config/rs6000/altivec.h (vec_cmpne): Add #define for vec_cmpne.
13360         * config/rs6000/rs6000-builtin.def (vec_cmpne): Add vec_cmpne as a
13361         special case builtin.
13362         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
13363         code for ALTIVEC_BUILTIN_VEC_CMPNE.
13364         * config/rs6000/rs6000.c (altivec_init_builtins): Add definition
13365         for __builtin_vec_cmpne.
13367 2016-05-25  Eric Botcazou  <ebotcazou@adacore.com>
13369         * tree-ssa-phiopt.c (factor_out_conditional_conversion): Remove
13370         redundant test and bail out if the type of the new operand is not
13371         a GIMPLE register type after stripping a VIEW_CONVERT_EXPR.
13373 2016-05-25  Uros Bizjak  <ubizjak@gmail.com>
13375         * config/i386/i386.opt (ix86_target_flags_explicit): Remove.
13376         (x_ix86_target_flags_explicit): Remove.
13377         * config/i386/i386.c (ix86_function_specific_save): Do not copy
13378         x_ix86_target_flags_explicit.
13379         (ix86_function_specific_restore): Ditto.
13381 2016-05-25  Uros Bizjak  <ubizjak@gmail.com>
13382             H.J. Lu  <hongjiu.lu@intel.com>
13384         PR target/70738
13385         * common/config/i386/i386-common.c
13386         (OPTION_MASK_ISA_GENERAL_REGS_ONLY_UNSET): New.
13387         (ix86_handle_option) <case OPT_mgeneral_regs_only>: Disable
13388         MPX, MMX, SSE and x87 instructions for -mgeneral-regs-only.
13389         * config/i386/i386.opt (ix86_target_flags): Add new Variable.
13390         (-mgeneral-regs-only): Add new option.
13391         * config/i386/i386.c (ix86_option_override_internal): Don't enable
13392         x87 instructions if only general registers are allowed.
13393         (ix86_target_string): Add ix86_flags argument. Handle additional
13394         flags options through ix86_flags argument.  Update all callers.
13395         * doc/invoke.texi (x86 Options): Document -mgeneral-regs-only.
13397 2016-05-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13399         PR rtl-optimization/66940
13400         * ifcvt.c (noce_get_alt_condition): Check that incrementing or
13401         decrementing desired_val will not overflow before performing these
13402         operations.
13404 2016-05-25  Ilya Verbin  <ilya.verbin@intel.com>
13406         * config/i386/i386-builtin-types.def: Add V16SI_FTYPE_V16SF,
13407         V8DF_FTYPE_V8DF_ROUND, V16SF_FTYPE_V16SF_ROUND, V16SI_FTYPE_V16SF_ROUND.
13408         * config/i386/i386.c (enum ix86_builtins): Add
13409         IX86_BUILTIN_CVTPS2DQ512_MASK, IX86_BUILTIN_FLOORPS512,
13410         IX86_BUILTIN_FLOORPD512, IX86_BUILTIN_CEILPS512, IX86_BUILTIN_CEILPD512,
13411         IX86_BUILTIN_TRUNCPS512, IX86_BUILTIN_TRUNCPD512,
13412         IX86_BUILTIN_CVTPS2DQ512, IX86_BUILTIN_VEC_PACK_SFIX512,
13413         IX86_BUILTIN_FLOORPS_SFIX512, IX86_BUILTIN_CEILPS_SFIX512,
13414         IX86_BUILTIN_ROUNDPS_AZ_SFIX512.
13415         (builtin_description bdesc_args): Add __builtin_ia32_floorps512,
13416         __builtin_ia32_ceilps512, __builtin_ia32_truncps512,
13417         __builtin_ia32_floorpd512, __builtin_ia32_ceilpd512,
13418         __builtin_ia32_truncpd512, __builtin_ia32_cvtps2dq512,
13419         __builtin_ia32_vec_pack_sfix512, __builtin_ia32_roundps_az_sfix512,
13420         __builtin_ia32_floorps_sfix512, __builtin_ia32_ceilps_sfix512.
13421         Change IX86_BUILTIN_CVTPS2DQ512 to IX86_BUILTIN_CVTPS2DQ512_MASK for
13422         __builtin_ia32_cvtps2dq512_mask.
13423         (ix86_expand_args_builtin): Handle V8DF_FTYPE_V8DF_ROUND,
13424         V16SF_FTYPE_V16SF_ROUND, V16SI_FTYPE_V16SF_ROUND, V16SI_FTYPE_V16SF.
13425         (ix86_builtin_vectorized_function): Handle builtins mentioned above.
13426         * config/i386/sse.md
13427         (<mask_codefor>avx512f_fix_notruncv16sfv16si<mask_name><round_name>):
13428         Rename to ...
13429         (avx512f_fix_notruncv16sfv16si<mask_name><round_name>): ... this.
13430         (<mask_codefor>avx512f_cvtpd2dq512<mask_name><round_name>): Rename
13431         to ...
13432         (avx512f_cvtpd2dq512<mask_name><round_name>): ... this.
13433         (avx512f_vec_pack_sfix_v8df): New define_expand.
13434         (avx512f_roundpd512): Rename to ...
13435         (avx512f_round<castmode>512): ... this.  Change iterator.
13436         (avx512f_roundps512_sfix): New define_expand.
13437         (round<mode>2_sfix): Change iterator.
13439 2016-05-25  Nick Clifton  <nickc@redhat.com>
13441         * config/msp430/msp430.c (msp430_attr): Produce an error if a
13442         static interrupt handler is detected.
13443         * config/msp430/msp430.h (LIB_SPEC): Do not use msp430.ld as the
13444         default linker script.
13445         * config/msp430/msp430.md (movpsihi2_lo): New pattern for loading
13446         the low part of a symbolic pointer.
13448 2016-05-25  Richard Biener  <rguenther@suse.de>
13450         PR tree-optimization/71261
13451         * tree-if-conv.c (ifcvt_split_def_stmt): Walk uses on the
13452         interesting stmt instead of immediate uses when looking
13453         for the use operand to replace.
13455 2016-05-25  Martin Liska  <mliska@suse.cz>
13457         * ipa-inline.c (edge_badness): Use 'w/' instead of 'w'.
13459 2016-05-25  Richard Biener  <rguenther@suse.de>
13461         PR tree-optimization/71264
13462         * tree-vect-stmts.c (vect_init_vector): Properly deal with
13463         vector type val.
13465 2016-05-25  Martin Liska  <mliska@suse.cz>
13467         PR tree-optimization/71239
13468         * tree.c (array_at_struct_end_p): Do not call operand_equal_p
13469         if DECL_SIZE is NULL.
13471 2016-05-25  Richard Biener  <rguenther@suse.de>
13473         * timevar.def (TV_TREE_LOOP_IFCVT): Add.
13474         * tree-if-conv.c (pass_data_if_conversion): Use it.
13476 2016-05-25  Bernd Edlinger  <bernd.edlinger@hotmail.de>
13478         * cgraph.c (cgraph_node::get_availability): Fix typo in comment.
13479         * symtab.c (symtab_node::binds_to_current_def_p): Likewise.
13480         * varpool.c (varpool_node::get_availability): Likewise.
13482 2016-05-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
13484         * config/rs6000/altivec.md (VNEG iterator): New iterator for
13485         VNEGW/VNEGD instructions.
13486         (p9_neg<mode>2): New insns for ISA 3.0 VNEGW/VNEGD.
13487         (neg<mode>2): Add expander for V2DImode added in ISA 2.07, and
13488         support for ISA 3.0 VNEGW/VNEGD instructions.
13490 2016-05-24  Cesar Philippidis  <cesar@codesourcery.com>
13492         * gimplify.c (omp_notice_variable): Use zero-length arrays for data
13493         pointers inside OACC_DATA regions.
13494         (gimplify_scan_omp_clauses): Prune firstprivate clause associated
13495         with OACC_DATA, OACC_ENTER_DATA and OACC_EXIT data regions.
13496         (gimplify_adjust_omp_clauses): Fix typo in comment.
13498 2016-05-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
13500         * config/rs6000/altivec.md (VParity): New mode iterator for vector
13501         parity built-in functions.
13502         (p9v_ctz<mode>2): Add support for ISA 3.0 vector count trailing
13503         zeros.
13504         (p9v_parity<mode>2): Likewise.
13505         * config/rs6000/vector.md (VEC_IP): New mode iterator for vector
13506         parity.
13507         (ctz<mode>2): ISA 3.0 expander for vector count trailing zeros.
13508         (parity<mode>2): ISA 3.0 expander for vector parity.
13509         * config/rs6000/rs6000-builtin.def (BU_P9_MISC_1): New macros for
13510         power9 built-ins.
13511         (BU_P9_64BIT_MISC_0): Likewise.
13512         (BU_P9_MISC_0): Likewise.
13513         (BU_P9V_AV_1): Likewise.
13514         (BU_P9V_AV_2): Likewise.
13515         (BU_P9V_AV_3): Likewise.
13516         (BU_P9V_AV_P): Likewise.
13517         (BU_P9V_VSX_1): Likewise.
13518         (BU_P9V_OVERLOAD_1): Likewise.
13519         (BU_P9V_OVERLOAD_2): Likewise.
13520         (BU_P9V_OVERLOAD_3): Likewise.
13521         (VCTZB): Add vector count trailing zeros support.
13522         (VCTZH): Likewise.
13523         (VCTZW): Likewise.
13524         (VCTZD): Likewise.
13525         (VPRTYBD): Add vector parity support.
13526         (VPRTYBQ): Likewise.
13527         (VPRTYBW): Likewise.
13528         (VCTZ): Add overloaded vector count trailing zeros support.
13529         (VPRTYB): Add overloaded vector parity support.
13530         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
13531         overloaded vector count trailing zeros and parity instructions.
13532         * config/rs6000/rs6000.md (wd mode attribute): Add V1TI and TI for
13533         vector parity support.
13534         * config/rs6000/altivec.h (vec_vctz): Add ISA 3.0 vector count
13535         trailing zeros support.
13536         (vec_cntlz): Likewise.
13537         (vec_vctzb): Likewise.
13538         (vec_vctzd): Likewise.
13539         (vec_vctzh): Likewise.
13540         (vec_vctzw): Likewise.
13541         (vec_vprtyb): Add ISA 3.0 vector parity support.
13542         (vec_vprtybd): Likewise.
13543         (vec_vprtybw): Likewise.
13544         (vec_vprtybq): Likewise.
13545         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
13546         the ISA 3.0 vector count trailing zeros and vector parity built-in
13547         functions.
13549 2016-05-24  Kugan Vivekanandarajah  <kuganv@linaro.org>
13551         * tree-ssa-reassoc.c (sort_by_operand_rank): Skip checking gimple_bb
13552         when there is stmt_to_insert.
13554 2016-05-24  Martin Sebor  <msebor@redhat.com>
13556         PR c++/71147
13557         * tree.h (complete_or_array_type_p): New inline function.
13559 2016-05-24  Jakub Jelinek  <jakub@redhat.com>
13561         * config/i386/i386.h (TARGET_AVOID_4BYTE_PREFIXES): Define.
13562         * config/i386/constraints.md (Yr): Test TARGET_AVOID_4BYTE_PREFIXES
13563         rather than X86_TUNE_AVOID_4BYTE_PREFIXES.
13565         * config/i386/sse.md (<sse4_1>_round<ssemodesuffix><avxsizesuffix>):
13566         Limit 1st alternative to noavx isa, split 2nd alternative into one
13567         noavx and one avx alternative, use *x and Bm in the former and
13568         x and m in the latter.
13570         * config/i386/sse.md (vec_set<mode>_0): Use sse4_noavx isa instead
13571         of sse4 for the first alternative, drop %v from the template
13572         and d operand modifier.  Split second alternative into one sse4_noavx
13573         and one avx alternative, use *x instead of *v in the former and v
13574         instead of *v in the latter.
13575         (*sse4_1_extractps): Use noavx isa instead of * for the first
13576         alternative, drop %v from the template.  Split second alternative into
13577         one noavx and one avx alternative, use *x instead of *v in the
13578         former and v instead of *v in the latter.
13579         (<vi8_sse4_1_avx2_avx512>_movntdqa): Guard the first 2 alternatives
13580         with noavx and the last one with avx.
13581         (sse4_1_phminposuw): Guard first alternative with noavx isa,
13582         split the second one into one noavx and one avx alternative,
13583         use *x and Bm in the former and x and m in the latter one.
13584         (<sse4_1>_ptest<mode>): Use noavx instead of * for the first two
13585         alternatives.
13587         * config/i386/sse.md (sse4_1_<code>v8qiv8hi2<mask_name>): Limit
13588         first two alternatives to noavx, use *x instead of *v in the second
13589         one, add avx alternative without *.
13590         (sse4_1_<code>v4qiv4si2<mask_name>, sse4_1_<code>v4hiv4si2<mask_name>,
13591         sse4_1_<code>v2qiv2di2<mask_name>, sse4_1_<code>v2hiv2di2<mask_name>,
13592         sse4_1_<code>v2siv2di2<mask_name>): Likewise.
13594 2016-05-24  Jeff Law  <law@redhat.com>
13596         * tree-ssa-threadbackwards.c (convert_and_register_jump_thread_path):
13597         New function, extracted from...
13598         (fsm_find_control_statement_thread_paths): Here.  Use the new function.
13599         Allow simple copies and constant initializations in the SSA chain.
13601 2016-05-24  Marek Polacek  <polacek@redhat.com>
13603         PR c/71249
13604         * gimplify.c (gimplify_switch_expr): Look into the innermost lexical
13605         scope.
13607 2016-05-24  Jakub Jelinek  <jakub@redhat.com>
13609         PR c++/71257
13610         * tree-vect-stmts.c (vectorizable_simd_clone_call): Handle
13611         SIMD_CLONE_ARG_TYPE_LINEAR_REF_CONSTANT_STEP like
13612         SIMD_CLONE_ARG_TYPE_LINEAR_CONSTANT_STEP.  Add
13613         SIMD_CLONE_ARG_TYPE_LINEAR_VAL_CONSTANT_STEP and
13614         SIMD_CLONE_ARG_TYPE_LINEAR_UVAL_CONSTANT_STEP cases explicitly.
13616 2016-05-24  Richard Biener  <rguenther@suse.de>
13618         PR tree-optimization/71240
13619         * tree-ssa-math-opts.c (init_symbolic_number): Verify the source
13620         has integral type.
13622 2016-05-24  Richard Biener  <rguenther@suse.de>
13624         PR tree-optimization/71230
13625         * tree-ssa-reassoc.c (zero_one_operation): Handle negate special ops.
13627 2016-05-24  Richard Sandiford  <richard.sandiford@arm.com>
13629         * tree-vectorizer.h (vectorizable_comparison): Delete.
13630         * tree-vect-loop.c (vectorizable_reduction): Remove redundant
13631         PURE_SLP_STMT check.
13632         * tree-vect-stmts.c (vectorizable_call): Likewise.
13633         (vectorizable_simd_clone_call): Likewise.
13634         (vectorizable_conversion): Likewise.
13635         (vectorizable_assignment): Likewise.
13636         (vectorizable_shift): Likewise.
13637         (vectorizable_operation): Likewise.
13638         (vectorizable_load): Likewise.
13639         (vectorizable_condition): Likewise.
13640         (vectorizable_store): Likewise.  Assert that we don't have
13641         hybrid SLP.
13642         (vectorizable_comparison): Make static.  Remove redundant
13643         PURE_SLP_STMT check.
13644         (vect_transform_stmt): Assert that we always have an slp_node
13645         if PURE_SLP_STMT.
13647 2016-05-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13649         * config/arm/neon.md (ashldi3_neon):  Replace comparison of INTVAL of
13650         operands[2] against 1 with comparison against CONST1_RTX.
13651         (<shift>di3_neon): Likewise.
13652         * config/arm/predicates.md (const0_operand): Replace with comparison
13653         against CONST0_RTX.
13655 2016-05-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13657         * config/arm/arm.md (ashldi3): Replace comparison of INTVAL of
13658         operands[2] against 1 with comparison against CONST1_RTX.
13659         (ashrdi3): Likewise.
13660         (lshrdi3): Likewise.
13661         (ashlsi3): Replace cast of INTVAL to unsigned HOST_WIDE_INT with
13662         UINTVAL.
13663         (ashrsi3): Likewise.
13664         (lshrsi3): Likewise.
13665         (rotrsi3): Likewise.
13666         (define_split above *compareqi_eq0): Likewise.
13667         (define_split above "prologue"): Likewise.
13668         * config/arm/arm.c (thumb1_size_rtx_costs): Likewise.
13669         * config/arm/predicates.md (shift_operator): Likewise.
13670         (shift_nomul_operator): Likewise.
13671         (sat_shift_operator): Likewise.
13672         (thumb1_cmp_operand): Likewise.
13673         (const_neon_scalar_shift_amount_operand): Replace manual range
13674         check with IN_RANGE.
13675         * config/arm/thumb1.md (define_peephole2 above *thumb_subdi3):
13676         Replace cast of INTVAL to unsigned HOST_WIDE_INT with UINTVAL.
13678 2016-05-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13680         * config/arm/arm.md (andsi3): Replace cast of 1 to HOST_WIDE_INT
13681         with HOST_WIDE_INT_1.
13682         (insv): Likewise.
13683         * config/arm/arm.c (optimal_immediate_sequence): Replace cast of
13684         1 to unsigned HOST_WIDE_INT with HOST_WIDE_INT_1U.
13685         (arm_canonicalize_comparison): Likewise.
13686         (thumb1_rtx_costs): Replace cast of 1 to HOST_WIDE_INT with
13687         HOST_WIDE_INT_1.
13688         (thumb1_size_rtx_costs): Likewise.
13689         (vfp_const_double_index): Replace cast of 1 to unsigned
13690         HOST_WIDE_INT with HOST_WIDE_INT_1U.
13691         (get_jump_table_size): Replace cast of 1 to HOST_WIDE_INT with
13692         HOST_WIDE_INT_1.
13693         (arm_asan_shadow_offset): Replace cast of 1 to unsigned
13694         HOST_WIDE_INT with HOST_WIDE_INT_1U.
13695         * config/arm/neon.md (vec_set<mode>): Replace cast of 1 to
13696         HOST_WIDE_INT with HOST_WIDE_INT_1.
13698 2016-05-24  Marek Polacek  <polacek@redhat.com>
13700         * tree-cfg.h (should_remove_lhs_p): New predicate.
13701         * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Use it.
13702         * gimplify.c (gimplify_modify_expr): Likewise.
13703         * tree-cfg.c (verify_gimple_call): Likewise.
13704         * tree-cfgcleanup.c (fixup_noreturn_call): Likewise.
13705         * gimple-fold.c: Include "tree-cfg.h".
13706         (gimple_fold_call): Use should_remove_lhs_p.
13708 2016-05-24  Richard Biener  <rguenther@suse.de>
13710         PR tree-optimization/71253
13711         * cfganal.h (control_dependences): Make robust against edge
13712         and BB removal.
13713         (control_dependences::control_dependences): Remove edge_list argument.
13714         (control_dependences::get_edge): Remove.
13715         (control_dependences::get_edge_src): Add.
13716         (control_dependences::get_edge_dest): Likewise.
13717         (control_dependences::m_el): Make a vector of edge src/dest index.
13718         * cfganal.c (control_dependences::find_control_dependence): Adjust.
13719         (control_dependences::control_dependences): Likewise.
13720         (control_dependences::~control_dependence): Likewise.
13721         (control_dependences::get_edge): Remove.
13722         (control_dependences::get_edge_src): Add.
13723         (control_dependences::get_edge_dest): Likewise.
13724         * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Use
13725         get_edge_src.
13726         (perform_tree_ssa_dce): Adjust.
13727         * tree-loop-distribution.c (create_edge_for_control_dependence): Use
13728         get_edge_src.
13729         (pass_loop_distribution::execute): Adjust.  Do loop destroying
13730         conditional on changed.
13732 2016-05-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13734         PR target/69857
13735         * config/arm/arm.c (gen_operands_ldrd_strd): Remove bogus early
13736         return.  Reindent transformation comment and mention the ARM state
13737         behavior.
13739 2016-05-24  Kugan Vivekanandarajah  <kuganv@linaro.org>
13741         PR middle-end/71252
13742         * tree-ssa-reassoc.c (rewrite_expr_tree_parallel): Add stmt_to_insert
13743         after build_and_add_sum creates new use stmt.
13745 2016-05-24  Richard Sandiford  <richard.sandiford@arm.com>
13747         * tree-vect-stmts.c (vectorizable_load): Reorder checks so that
13748         load_lanes/grouped_load classification comes first.  Don't check
13749         whether the vectorization factor is a multiple of the group size
13750         for load_lanes.
13752 2016-05-24  Richard Sandiford  <richard.sandiford@arm.com>
13754         * tree-vect-data-refs.c (vect_analyze_group_access_1): Set
13755         GROUP_GAP for single-element interleaving.
13756         * tree-vect-stmts.c (vectorizable_load): Remove force_peeling
13757         variable.
13759 2016-05-24  Richard Biener  <rguenther@suse.de>
13761         PR middle-end/70434
13762         PR c/69504
13763         * tree-ssa.c (non_rewritable_mem_ref_base): Make sure to mark
13764         bases which are accessed with non-invariant indices.
13765         * gimple-fold.c (maybe_canonicalize_mem_ref_addr): Re-write
13766         constant index ARRAY_REFs of vectors into BIT_FIELD_REFs.
13768 2016-05-24  Kugan Vivekanandarajah  <kuganv@linaro.org>
13770         PR middle-end/71170
13771         * tree-ssa-reassoc.c (struct operand_entry): Add field stmt_to_insert.
13772         (add_to_ops_vec): Add stmt_to_insert.
13773         (add_repeat_to_ops_vec): Init stmt_to_insert.
13774         (insert_stmt_before_use): New.
13775         (transform_add_to_multiply): Remove mult_stmt insertion and add it
13776         to ops vector.
13777         (get_ops): Init stmt_to_insert.
13778         (maybe_optimize_range_tests): Likewise.
13779         (rewrite_expr_tree): Insert stmt_to_insert before use stmt.
13780         (rewrite_expr_tree_parallel): Likewise.
13781         (reassociate_bb): Likewise.
13783 2016-05-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
13785         PR target/71201
13786         * config/rs6000/altivec.md (altivec_vperm_<mode>_internal): Drop
13787         ISA 3.0 xxperm fusion alternative.
13788         (altivec_vperm_v8hiv16qi): Likewise.
13789         (altivec_vperm_<mode>_uns_internal): Likewise.
13790         (vperm_v8hiv4si): Likewise.
13791         (vperm_v16qiv8hi): Likewise.
13793 2016-05-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
13794             Kelvin Nilsen  <kelvin@gcc.gnu.org>
13796         * config/rs6000/rs6000.c (rs6000_expand_vector_set): Generate
13797         vpermr/xxpermr on ISA 3.0.
13798         (altivec_expand_vec_perm_le): Likewise.
13799         * config/rs6000/altivec.md (UNSPEC_VPERMR): New unspec.
13800         (altivec_vpermr_<mode>_internal): Add VPERMR/XXPERMR support for
13801         ISA 3.0.
13803 2016-05-23  Uros Bizjak  <ubizjak@gmail.com>
13805         * config/i386/i386.h (IS_STACK_MODE): Enable for
13806         TARGET_MIX_SSE_I387.  Rewrite using X87_FLOAT_MODE_P and
13807         SSE_FLOAT_MODE_P macros.
13808         * config/i386/i386.c (ix86_preferred_reload_class): Use
13809         IS_STACK_MODE, INTEGER_CLASS_P, FLOAT_CLASS_P and Q_CLASS_P macros.
13810         Cleanup regclass processing for CONST_DOUBLE_P.
13811         (ix86_preferred_output_reload_class): Use IS_STACK_MODE macro.
13812         (ix86_rtx_costs): Remove redundant TARGET_80387 check
13813         with IS_STACK_MODE macro.
13814         * config/i386/i386.md: Replace SSE_FLOAT_MODE_P (DFmode)
13815         with TARGET_SSE2.
13816         (*movdf_internal): Use IS_STACK_MODE macro.
13817         (*movsf_internal): Ditto.
13819 2016-05-23  Marc Glisse  <marc.glisse@inria.fr>
13821         * match.pd (a * (1 << b), ~x & ~y, ~X ^ ~Y, (X ^ Y) ^ Y, ~ (-A),
13822         ~ (A - 1), ~(~X >> Y), ~(~X >>r Y)): Relax constraints.
13824 2016-05-23  Jeff Law  <law@redhat.com>
13826         * tree-ssa-threadbackward.c (profitable_jump_thread_path): New function
13827         extracted from ...
13828         (fsm_find_control_statement_thread_paths): Call it.
13830 2016-05-23  Martin Jambor  <mjambor@suse.cz>
13832         PR ipa/71234
13833         * ipa-cp.c (ipa_get_indirect_edge_target_1): Only check value of
13834         from_global_constant if t is not NULL.
13836 2016-05-23  Marek Polacek  <polacek@redhat.com>
13838         PR c/49859
13839         * common.opt (Wswitch-unreachable): New option.
13840         * doc/invoke.texi: Document -Wswitch-unreachable.
13841         * gimplify.c (gimplify_switch_expr): Implement the -Wswitch-unreachable
13842         warning.
13844 2016-05-23  Bin Cheng  <bin.cheng@arm.com>
13846         * tree-ssa-address.c (copy_ref_info): Check NULL TMR_STEP when
13847         TMR_INDEX is non-NULL.
13849 2016-05-23  Richard Biener  <rguenther@suse.de>
13851         PR tree-optimization/71230
13852         * tree-ssa-reassoc.c (acceptable_pow_call): Move initial condition...
13853         (try_special_add_to_ops): ... here.  Always test for single-use.
13855 2016-05-23  Martin Jambor  <mjambor@suse.cz>
13857         * hsa-gen.c (gen_hsa_insns_for_switch_stmt): Create an empty
13858         default block if a PHI node in the original one would be resized.
13860 2016-05-23  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
13862         PR tree-optimization/58135
13863         * tree-vect-slp.c: When group size is not multiple
13864         of vector size, allow splitting of store group at
13865         vector boundary.
13867 2016-05-23  Christophe Lyon  <christophe.lyon@linaro.org>
13869         * config/arm/arm_neon.h (vtst_p16, vtstq_p16): New.
13871 2016-05-22  Jakub Jelinek  <jakub@redhat.com>
13873         * config/i386/sse.md (vec_set_lo_<mode><mask_name>,
13874         vec_set_hi_<mode><mask_name>): Add && <mask_avx512dq_condition>
13875         condition.  For !TARGET_AVX512DQ, emit 32x4 instruction instead
13876         of 64x2.
13878         * config/i386/sse.md (vec_set_lo_v16hi, vec_set_hi_v16hi,
13879         vec_set_lo_v32qi, vec_set_hi_v32qi): Add alternative with
13880         v constraint instead of x and vinserti32x4 insn.
13882         * config/i386/sse.md (i128vldq): New mode iterator.
13883         (avx2_vbroadcasti128_<mode>, avx_vbroadcastf128_<mode>): Add
13884         avx512dq and avx512vl alternatives.
13886         * config/i386/sse.md (avx2_vec_dupv4df): Use v instead of x
13887         constraint, use maybe_evex prefix instead of vex.
13888         (vec_dupv4sf): Use v constraint instead of x for output
13889         operand except for noavx alternative, use Yv constraint
13890         instead of x for input.  Use maybe_evex prefix instead of vex.
13891         (*vec_dupv4si): Likewise.
13892         (*vec_dupv2di): Likewise.
13894 2016-05-22  Kugan Vivekanandarajah  <kuganv@linaro.org>
13896         PR middle-end/40921
13897         * tree-ssa-reassoc.c (try_special_add_to_ops): New.
13898         (linearize_expr_tree): Call try_special_add_to_ops.
13899         (reassociate_bb): Convert MULT_EXPR by (-1) to NEGATE_EXPR.
13901 2016-05-21  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
13903         * config/avr/avr.c (avr_expand_prologue): Add INCOMING_FRAME_SP_OFFSET
13904         to computed stack_usage.
13906 2016-05-21  Pitchumani Sivanupandi  <pitchumani.s@atmel.com>
13908         PR target/71103
13909         * config/avr/avr.md (define_expand "mov<mode>"): If the source
13910         operand is subreg (symbol_ref) then move the symbol ref to register.
13912 2016-05-21  Jan Hubicka  <hubicka@ucw.cz>
13914         * tree.c (array_at_struct_end_p): Look through MEM_REF.
13916 2016-05-21  Kugan Vivekanandarajah  <kuganv@linaro.org>
13918         PR middle-end/71179
13919         * tree-ssa-reassoc.c (transform_add_to_multiply): Disallow float
13920         VECTOR type.
13922 2016-05-20  Eric Botcazou  <ebotcazou@adacore.com>
13924         * tree-vrp.c (compare_values_warnv): Simplify handling of symbolic
13925         ranges by calling get_single_symbol and tidy up.  Look more closely
13926         into NAME + CST1 vs CST2 comparisons if type overflow is undefined.
13928 2016-05-20  Jeff Law  <law@redhat.com>
13930         * bitmap.c (bitmap_find_bit): Remove useless test.
13932 2016-05-20  Segher Boessenkool  <segher@kernel.crashing.org>
13934         * function.c (thread_prologue_and_epilogue_insns): Commit the
13935         insertion of the epilogue.
13937 2016-05-20  Martin Jambor  <mjambor@suse.cz>
13939         PR tree-optimization/70884
13940         * tree-sra.c (initialize_constant_pool_replacements): Do not check
13941         should_scalarize_away_bitmap and cannot_scalarize_away_bitmap bits.
13942         (sort_and_splice_var_accesses): Do not consider multiple scalar reads
13943         of constant pool data as a reason for scalarization.
13945 2016-05-20  Eric Botcazou  <ebotcazou@adacore.com>
13947         * config/arm/arm.c (arm_expand_prologue): Set the stack usage to 0
13948         for naked functions.
13949         (thumb1_expand_prologue): Likewise.
13951 2016-05-20  Nathan Sidwell  <nathan@acm.org>
13953         * config/nvptx/nptx.c (nvptx_option_override): Only set
13954         flag_toplevel_reorder, if not explicitly specified.  Set
13955         flag_no_common, unless explicitly specified.
13957 2016-05-20  David Malcolm  <dmalcolm@redhat.com>
13959         * calls.c (can_implement_as_sibling_call_p): Mark param
13960         reg_parm_stack_space with ATTRIBUTE_UNUSED.
13962 2016-05-20  Uros Bizjak  <ubizjak@gmail.com>
13964         * config/i386/i386.c (ix86_rtx_costs) <case CONST_DOUBLE>:
13965         Use IS_STACK_MODE when calculating cost of standard 80387 constants.
13966         Fallthru to CONST_VECTOR case to calculate cost of standard SSE
13967         constants.
13968         <case CONST_WIDE_INT>: Calculate cost of (MEM (SYMBOL_REF)).
13969         (ix86_legitimate_constant_p): Use CASE_CONST_SCALAR_INT
13970         and CASE_CONST_ANY.
13972 2016-05-20  Cesar Philippidis  <cesar@codesourcery.com>
13974         * config/nvptx/nvptx.md (sincossf3): New pattern.
13976 2016-05-20  David Malcolm  <dmalcolm@redhat.com>
13978         * calls.c (maybe_complain_about_tail_call): New function.
13979         (initialize_argument_information): Call
13980         maybe_complain_about_tail_call when clearing *may_tailcall.
13981         (can_implement_as_sibling_call_p): Call
13982         maybe_complain_about_tail_call when returning false.
13983         (expand_call): Read CALL_EXPR_MUST_TAIL_CALL and, if set,
13984         ensure try_tail_call is set.  Call maybe_complain_about_tail_call
13985         if tail-call optimization fails.
13986         * cfgexpand.c (expand_call_stmt): Initialize
13987         CALL_EXPR_MUST_TAIL_CALL from gimple_call_must_tail_p.
13988         * gimple-pretty-print.c (dump_gimple_call): Dump
13989         gimple_call_must_tail_p.
13990         * gimple.c (gimple_build_call_from_tree): Call
13991         gimple_call_set_must_tail with the value of
13992         CALL_EXPR_MUST_TAIL_CALL.
13993         * gimple.h (enum gf_mask): Add GF_CALL_MUST_TAIL_CALL.
13994         (gimple_call_set_must_tail): New function.
13995         (gimple_call_must_tail_p): New function.
13996         * print-tree.c (print_node): Update printing of TREE_STATIC
13997         to reflect its use for CALL_EXPR_MUST_TAIL_CALL.
13998         * tree-core.h (struct tree_base): Add MUST_TAIL_CALL to the
13999         trailing comment listing applicable flags.
14000         * tree.h (CALL_EXPR_MUST_TAIL_CALL): New macro.
14002 2016-05-20  David Malcolm  <dmalcolm@redhat.com>
14004         * calls.c (expand_call): Move "Rest of purposes for tail call
14005         optimizations to fail" to...
14006         (can_implement_as_sibling_call_p): ...this new function, and
14007         split into multiple "if" statements.
14009 2016-05-20  Jan Hubicka  <hubicka@ucw.cz>
14011         * cfgloop.h (expected_loop_iterations_unbounded,
14012         expected_loop_iterations): Unconstify.
14013         * cfgloopanal.c (expected_loop_iterations_unbounded): Sanity check the
14014         profile with known upper bound; return 3 when profile is absent.
14015         (expected_loop_iterations): Update.
14017 2016-05-20  Jan Hubicka  <hubicka@ucw.cz>
14019         * loop-doloop.c (doloop_optimize): Use get_estimated_loop_iterations_int
14020         and get_max_loop_iterations_int.
14022 2016-05-20  Jan Hubicka  <hubicka@ucw.cz>
14024         * tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can not produce
14025         realistic upper bounds here.
14027 2016-05-20  Jakub Jelinek  <jakub@redhat.com>
14029         PR c++/71210
14030         * gimple-fold.c (gimple_fold_call): Do not remove lhs of noreturn
14031         calls if the LHS is variable length or has addressable type.
14032         If targets[0]->decl is a noreturn call with void return type and
14033         zero arguments, adjust fntype and remove lhs in that case.
14035 2016-05-20  Marc Glisse  <marc.glisse@inria.fr>
14037         PR tree-optimization/71079
14038         PR tree-optimization/71206
14039         * match.pd ((X ^ Y) ^ (X ^ Z)): Convert the arguments.
14041 2016-05-20  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
14043         * tree-vectorizer.c (get_vec_alignment_for_decl): New static function.
14044         (get_vec_alignment_for_array_decl): Likewise.
14045         (get_vec_alignment_for_record_decl): Likewise.
14046         (increase_alignment::execute): Move code to find alignment to
14047         get_vec_alignment_for_array_decl and call get_vec_alignment_for_decl.
14048         (type_align_map): New hash_map.
14050 2016-05-20  Richard Guenther  <rguenther@suse.de>
14052         PR tree-optimization/29756
14053         * tree.def (BIT_INSERT_EXPR): New tcc_expression tree code.
14054         * expr.c (expand_expr_real_2): Handle BIT_INSERT_EXPR.
14055         * fold-const.c (operand_equal_p): Likewise.
14056         (fold_ternary_loc): Add constant folding of BIT_INSERT_EXPR.
14057         * gimplify.c (gimplify_expr): Handle BIT_INSERT_EXPR.
14058         * tree-inline.c (estimate_operator_cost): Likewise.
14059         * tree-pretty-print.c (dump_generic_node): Likewise.
14060         * tree-ssa-operands.c (get_expr_operands): Likewise.
14061         * cfgexpand.c (expand_debug_expr): Likewise.
14062         * gimple-pretty-print.c (dump_ternary_rhs): Likewise.
14063         * gimple.c (get_gimple_rhs_num_ops): Handle BIT_INSERT_EXPR.
14064         * tree-cfg.c (verify_gimple_assign_ternary): Verify BIT_INSERT_EXPR.
14065         * tree-ssa.c (non_rewritable_lvalue_p): We can rewrite
14066         vector inserts using BIT_FIELD_REF or MEM_REF on the lhs.
14067         (execute_update_addresses_taken): Do it.
14069 2016-05-20  Richard Biener  <rguenther@suse.de>
14071         PR tree-optimization/71185
14072         * tree-ssa-loop-prefetch.c (gather_memory_references): Drop
14073         register operations.
14075 2016-05-20  Richard Biener  <rguenther@suse.de>
14077         * tree-if-conv.c (add_bb_predicate_gimplified_stmts): Use
14078         gimple_seq_add_seq_without_update.
14079         (release_bb_predicate): Assert we have no operands to free.
14080         (if_convertible_loop_p_1): Calculate post dominators later.
14081         Do not free BB predicates here.
14082         (combine_blocks): Do not recompute BB predicates.
14083         (version_loop_for_if_conversion): Save BB predicates around
14084         loop versioning.
14086 2016-05-19  Segher Boessenkool  <segher@kernel.crashing.org>
14088         * function.c (make_epilogue_seq): Remove epilogue_end parameter.
14089         (thread_prologue_and_epilogue_insns): Remove bb_flags.  Restructure
14090         code.  Ignore sibcalls on EDGE_IGNORE edges.
14091         * shrink-wrap.c (handle_simple_exit): New function.  Set EDGE_IGNORE
14092         on edges for sibcalls that run without prologue.  The rest of the
14093         function is combined from...
14094         (fix_fake_fallthrough_edge): ... this, and ...
14095         (try_shrink_wrapping): ... a part of this.  Remove the bb_with
14096         function argument, make it a local variable.
14098 2016-05-19  Sandra Loosemore  <sandra@codesourcery.com>
14100         * config/i386/cygming.h (DWARF2_UNWIND_INFO): Allow
14101         --disable-sjlj-exceptions for TARGET_BI_ARCH to select DWARF-2 EH
14102         for 32-bit mode and SEH for 64-bit.
14103         * config/i386/mingw32.h (SHARED_LIBGCC_UNDEFS_SPEC): Handle
14104         TARGET_64BIT_DEFAULT.
14106 2016-05-19  Ryan Burn  <contact@rnburn.com>
14108         * Makefile.in (GTFILES): Add cilk.h and cilk-common.c.
14109         * gengtype.c (open_base_files): Add cilk.h to ifiles.
14111 2016-05-19  Uros Bizjak  <ubizjak@gmail.com>
14113         * sched-deps.c (sched_analyze_2) <case TRAP_IF>: Also
14114         force pending loads from memory.
14116 2016-05-19  Kelvin Nilsen  <kelvin@gcc.gnu.org>
14118         * config/rs6000/altivec.md (UNSPEC_DARN): New unspec constant.
14119         (UNSPEC_DARN_32): New unspec constant.
14120         (UNSPEC_DARN_RAW): New unspec constant.
14121         (darn_32): New instruction.
14122         (darn_raw): New instruction.
14123         (darn): New instruction.
14124         * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_0): Add
14125         support and documentation for this macro.
14126         (BU_P9_MISC_1): New macro definition.
14127         (BU_P9_64BIT_MISC_0): New macro definition.
14128         (BU_P9_MISC_0): New macro definition.
14129         (darn_32): New builtin definition.
14130         (darn_raw): New builtin definition.
14131         (darn): New builtin definition.
14132         * config/rs6000/rs6000.c: Add #define RS6000_BUILTIN_0 and #undef
14133         RS6000_BUILTIN_0 directives to surround each occurrence of
14134         #include "rs6000-builtin.def".
14135         (rs6000_builtin_mask_calculate): Add in the RS6000_BTM_MODULO and
14136         RS6000_BTM_64BIT flags to the returned mask, depending on
14137         configuration.
14138         (def_builtin): Correct an error in the assignments made to the
14139         debugging variable attr_string.
14140         (rs6000_expand_builtin): Add support for no-operand built-in
14141         functions.
14142         (builtin_function_type): Remove fatal_error assertion that is no
14143         longer valid.
14144         (rs6000_common_init_builtins): Add support for no-operand built-in
14145         functions.
14146         * config/rs6000/rs6000.h (RS6000_BTM_MODULO): New macro
14147         definition.
14148         (RS6000_BTM_PURE): Enhance comment to clarify intent of this flag
14149         definition.
14150         (RS6000_BTM_64BIT): New macro definition.
14151         * doc/extend.texi: Document __builtin_darn (void),
14152         __builtin_darn_raw (void), and __builtin_darn_32 (void) built-in
14153         functions.
14155 2016-05-19  Jan Hubicka  <hubicka@ucw.cz>
14157         * tree-vect-loop.c (vect_analyze_loop_2): Use also
14158         max_loop_iterations_int.
14160 2016-05-19  Marek Polacek  <polacek@redhat.com>
14162         PR tree-optimization/71031
14163         * tree-vrp.c (extract_range_from_binary_expr_1): Turn assert into a
14164         condition and adjust the code a bit.
14166 2016-05-19  Martin Liska  <mliska@suse.cz>
14168         * tree-vect-stmts.c (vectorizable_simd_clone_call): Utilize
14169         auto_vec instead of vec.
14171 2016-05-19  Martin Liska  <mliska@suse.cz>
14173         * tree-parloops.c (oacc_entry_exit_ok): Release a vector.
14175 2016-05-19  Martin Liska  <mliska@suse.cz>
14177         * tree-if-conv.c (ifcvt_repair_bool_pattern): Utilize auto_vecs.
14179 2016-05-19  Martin Liska  <mliska@suse.cz>
14181         * ipa-pure-const.c (set_function_state): Remove an existing
14182         funct_state.
14183         (remove_node_data): Do not free it as it's released
14184         in set_function_state.
14186 2016-05-19  Martin Liska  <mliska@suse.cz>
14188         * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Release
14189         bitmap.
14191 2016-05-19  Martin Liska  <mliska@suse.cz>
14193         * omp-simd-clone.c (simd_clone_adjust): Release vector.
14195 2016-05-19  Martin Liska  <mliska@suse.cz>
14197         * tree-ssa-reassoc.c (eliminate_duplicate_pair): Truncate
14198         an auto_vec instead of re-creating it.
14200 2016-05-19  Martin Liska  <mliska@suse.cz>
14202         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Use
14203         auto_vec instead of vec.
14205 2016-05-19  Martin Liska  <mliska@suse.cz>
14207         * lto-section-in.c (lto_get_section_data): Call
14208         lto_check_version with additional argument.
14209         * lto-streamer.c (lto_check_version): Add new argument.
14210         * lto-streamer.h (lto_check_version): Likewise.
14212 2016-05-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14214         * config/arm/arm.c (arm_new_rtx_costs, SIGN_EXTEND case):
14215         Don't add cost of inner memory when handling sign-extended loads.
14217 2016-05-19  Ilya Enkovich  <ilya.enkovich@intel.com>
14219         PR rtl-optimization/71148
14220         * cse.c (cse_main): Free dominance info.
14221         (rest_of_handle_cse): Don't free dominance info.
14222         (rest_of_handle_cse2): Likewise.
14223         (rest_of_handle_cse_after_global_opts): Likewise.
14225 2016-05-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14227         PR target/71056
14228         * config/arm/arm-builtins.c (arm_builtin_vectorized_function): Return
14229         NULL_TREE early if NEON is not available.  Remove now redundant check
14230         in ARM_CHECK_BUILTIN_MODE.
14232 2016-05-19  Maxim Ostapenko  <m.ostapenko@samsung.com>
14234         PR sanitizer/64354
14235         * cppbuiltin.c (define_builtin_macros_for_compilation_flags): Add new
14236         builtin __SANITIZE_THREAD__ macros for fsanitize=thread switch.
14237         * doc/cpp.texi: Document new macros.
14239 2016-05-19  Bin Cheng  <bin.cheng@arm.com>
14241         PR tree-optimization/69848
14242         * tree-vect-loop.c (vectorizable_reduction): Don't factor
14243         comparison expr out of VEC_COND_EXPR for COND_REDUCTION.
14245 2016-05-19  Segher Boessenkool  <segher@kernel.crashing.org>
14247         * function.c (thread_prologue_and_epilogue_insn): Move the
14248         "goto epilogue_done" one block later.
14250 2016-05-19  Richard Biener  <rguenther@suse.de>
14252         PR tree-optimization/70729
14253         * passes.def: Move LIM pass before PRE.  Remove no longer
14254         required copyprop and move first DCE out of the loop pipeline.
14256 2016-05-18  David Malcolm  <dmalcolm@redhat.com>
14258         PR driver/69265
14259         * Makefile.in (GCC_OBJS): Move spellcheck.o to...
14260         (OBJS-libcommon-target): ...here.
14261         * opts-common.c: Include spellcheck.h.
14262         (cmdline_handle_error): Build a vec of valid options and use it
14263         to suggest provide hints for misspelled arguments.
14265 2016-05-18  Jakub Jelinek  <jakub@redhat.com>
14267         PR c++/71100
14268         * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Don't drop
14269         lhs if it has TREE_ADDRESSABLE type.
14271 2016-05-18  Uros Bizjak  <ubizjak@gmail.com>
14273         PR target/71145
14274         * config/alpha/alpha.md (trap): Add (use (reg:DI 29)).
14275         (*exception_receiver_1): Return "#" for TARGET_EXPLICIT_RELOCS.
14277 2016-05-18  Martin Jambor  <mjambor@suse.cz>
14279         PR ipa/69708
14280         * ipa-cp.c (ipa_get_jf_pass_through_result): Allow non-ip constant
14281         input for NOP_EXPR pass-through functions.
14282         * ipa-prop.c (ipa_compute_jump_functions_for_edge): Allow
14283         aggregate global constant VAR_DECLs in constant jump functions.
14285 2016-05-18  Martin Jambor  <mjambor@suse.cz>
14287         PR ipa/69708
14288         * ipa-prop.c (parm_preserved_before_stmt_p): Return true for loads
14289         from TREE_READONLY parameters.
14291 2016-05-18  Martin Jambor  <mjambor@suse.cz>
14293         PR ipa/69708
14294         * cgraph.h (cgraph_indirect_call_info): New field
14295         guaranteed_unmodified.
14296         * ipa-cp.c (ipa_get_indirect_edge_target_1): Also pass parameter value
14297         to ipa_find_agg_cst_for_param, check guaranteed_unmodified when
14298         appropriate.
14299         * ipa-inline-analysis.c (evaluate_conditions_for_known_args): Also
14300         pass the parameter value to ipa_find_agg_cst_for_param.
14301         * ipa-prop.c (ipa_load_from_parm_agg): New parameter
14302         guaranteed_unmodified, store AA results there instead of bailing out
14303         if present.
14304         (ipa_note_param_call): Also initialize guaranteed_unmodified flag.
14305         (ipa_analyze_indirect_call_uses): Also set guaranteed_unmodified flag.
14306         (find_constructor_constant_at_offset): New function.
14307         (ipa_find_agg_cst_from_init): Likewise.
14308         (ipa_find_agg_cst_for_param): Also seearch for aggregate values in
14309         static initializers of contants, report back through a new paameter
14310         from_global_constant if that was the case.
14311         (try_make_edge_direct_simple_call): Also pass parameter value to
14312         ipa_find_agg_cst_for_param, check guaranteed_unmodified when
14313         appropriate.
14314         (ipa_write_indirect_edge_info): Stream new flag guaranteed_unmodified.
14315         (ipa_read_indirect_edge_info): Likewise.
14316         * ipa-prop.h (ipa_find_agg_cst_for_param): Update declaration.
14317         (ipa_load_from_parm_agg): Likewise.
14319 2016-05-18  Jiong Wang  <jiong.wang@arm.com>
14321         PR rtl-optimization/71150
14322         * lra-constraint (process_addr_reg): Guard "in_class_p" with REG_P
14323         check.
14325 2016-05-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
14327         PR target/70915
14328         * config/rs6000/constraints.md (wE constraint): New constraint
14329         for a vector constant that can be loaded with XXSPLTIB.
14330         (wM constraint): New constraint for a vector constant of a 1's.
14331         (wS constraint): New constraint for a vector constant that can be
14332         loaded with XXSPLTIB and a vector sign extend instruction.
14333         * config/rs6000/predicates.md (xxspltib_constant_split): New
14334         predicates for wE/wS constraints.
14335         (xxspltib_constant_nosplit): Likewise.
14336         (easy_vector_constant): Add support for constants that can be
14337         loaded via XXSPLTIB.
14338         (all_ones_constant): New predicate for vector constant with all
14339         1's set.
14340         (splat_input_operand): Add support for ISA 3.0 word splat operations.
14341         * config/rs6000/rs6000.c (xxspltib_constant_p): New function to
14342         return if a constant can be loaded with the ISA 3.0 XXSPLTIB
14343         instruction and possibly with a sign extension.
14344         (output_vec_const_move): Add support for XXSPLTIB. If we are
14345         loading up 0/-1 into Altivec registers, prefer using VSPLTISW
14346         instead of XXLXOR/XXLORC.
14347         (rs6000_expand_vector_init): Add support for ISA 3.0 word splat
14348         operations.
14349         (rs6000_legitimize_reload_address): Likewise.
14350         (rs6000_output_move_128bit): Use output_vec_const_move to emit
14351         constants.
14352         * config/rs6000/vsx.md (VSX_M): Add TImode (if -mvsx-timode) and
14353         combine VSX_M and VSX_M2 into one iterator.
14354         (VSX_M2): Likewise.
14355         (VSINT_84): New iterators for loading constants with XXSPLTIB.
14356         (VSINT_842): Likewise.
14357         (UNSPEC_VSX_SIGN_EXTEND): New UNSPEC.
14358         (xxspltib_v16qi): New insns to load up constants with the ISA 3.0
14359         XXSPLTIB instruction.
14360         (xxspltib_<mode>_nosplit): Likewise.
14361         (xxspltib_<mode>_split): New insn to load up constants with
14362         XXSPLTIB and a sign extend instruction.
14363         (vsx_mov<mode>): Replace single move that handled all vector types
14364         with separate 32-bit and 64-bit moves.  Combine the movti_<bit>
14365         moves (when -mvsx-timode is in effect) into the main vector
14366         moves.  Eliminate separate moves for <VSr> <VSa>, where the
14367         preferred register class (<VSr>) is listed first, and the
14368         secondary register class (<VSa>) is listed second with a '?' to
14369         discourage use.  Prefer loading 0/-1 in any VSX register for ISA
14370         3.0, and Altivec registers for ISA 2.06/2.07 (PR target/70915) so
14371         that if the register was involved in a slow operation, the
14372         clear/set operation does not wait for the slow operation to
14373         finish.  Adjust the length attributes for 32-bit mode.  Use
14374         rs6000_output_move_128bit and drop the use of the string
14375         instructions for 32-bit movti when -mvsx-timode is in effect.  Use
14376         spacing so that the alternatives and attributes don't generate
14377         long lines, and put things in columns, so that it is easier to
14378         match up the operands and attributes with the insn alternatives.
14379         (vsx_mov<mode>_64bit): Likewise.
14380         (vsx_mov<mode>_32bit): Likewise.
14381         (vsx_movti_64bit): Fold movti into normal vector moves.
14382         (vsx_movti_32bit): Likewise.
14383         (vsx_splat_<mode>, V4SI/V4SF modes): Add support for ISA 3.0 word
14384         splat instructions.
14385         (vsx_splat_v4si_internal): Likewise.
14386         (vsx_splat_v4sf_internal): Likewise.
14387         (vector fusion peepholes): Use VSX_M instead of VSX_M2.
14388         (vsx_sign_extend_qi_<mode>): New ISA 3.0 instructions to sign
14389         extend vector elements.
14390         (vsx_sign_extend_hi_<mode>): Likewise.
14391         (vsx_sign_extend_si_v2di): Likewise.
14392         * config/rs6000/rs6000-protos.h (xxspltib_constant_p): Add
14393         declaration.
14394         * doc/md.texi (PowerPC constraints): Document the wE, wM, and wS
14395         constraints.  Add trailing period to wL documentation.
14397 2016-05-18  Richard Sandiford  <richard.sandiford@arm.com>
14399         PR middle-end/71020
14400         * tree-dfa.h (replace_abnormal_ssa_names): Declare.
14401         * tree-dfa.c (replace_abnormal_ssa_names): New function.
14402         * tree-call-cdce.c: Include tree-dfa.h.
14403         (can_guard_call_p): New function, extracted from...
14404         (can_use_internal_fn): ...here.
14405         (shrink_wrap_one_built_in_call_with_conds): Remove failure path
14406         and return void.
14407         (shrink_wrap_one_built_in_call): Likewise.
14408         (use_internal_fn): Likewise.
14409         (shrink_wrap_conditional_dead_built_in_calls): Update accordingly
14410         and return void.  Call replace_abnormal_ssa_names.
14411         (pass_call_cdce::execute): Check can_guard_call_p during the
14412         initial walk.  Assume shrink_wrap_conditional_dead_built_in_calls
14413         will always change something.
14415 2016-05-18  Martin Jambor  <mjambor@suse.cz>
14417         PR ipa/70646
14418         * ipa-prop.c (determine_locally_known_aggregate_parts): Bail out early
14419         if parameter PARAM_IPA_MAX_AGG_ITEMS is zero.
14421 2016-05-18  Martin Jambor  <mjambor@suse.cz>
14423         PR ipa/70646
14424         * ipa-inline.h (condition): New field size.
14425         * ipa-inline-analysis.c (add_condition): New parameter SIZE, use it
14426         for comaprison and store it into the new condition.
14427         (evaluate_conditions_for_known_args): Use condition size to check
14428         access sizes for all but CHANGED conditions.
14429         (unmodified_parm_1): New parameter size_p, store access size into it.
14430         (unmodified_parm): Likewise.
14431         (unmodified_parm_or_parm_agg_item): Likewise.
14432         (eliminated_by_inlining_prob): Pass NULL to unmodified_parm as size_p.
14433         (set_cond_stmt_execution_predicate): Extract access sizes and store
14434         them to conditions.
14435         (set_switch_stmt_execution_predicate): Likewise.
14436         (will_be_nonconstant_expr_predicate): Likewise.
14437         (will_be_nonconstant_predicate): Likewise.
14438         (inline_read_section): Stream condition size.
14439         (inline_write_summary): Likewise.
14441 2016-05-18  Richard Biener  <rguenther@suse.de>
14443         * tree-ssa-loop-im.c (determine_max_movement): Properly add
14444         condition cost to PHI cost instead of total_cost.
14446 2016-05-18  Martin Liska  <mliska@suse.cz>
14448         PR fortran/70856
14449         * ipa-icf.c (sem_variable::merge): Set DECL_PT_UID for
14450         merged variables.
14452 2016-05-18  Richard Biener  <rguenther@suse.de>
14454         * lto-streamer.h (LTO_major_version): Bump to 6.
14456 2016-05-18  Segher Boessenkool  <segher@kernel.crashing.org>
14458         * function.c (make_split_prologue_seq, make_prologue_seq,
14459         make_epilogue_seq): New functions, factored out from...
14460         (thread_prologue_and_epilogue_insns): Here.
14462 2016-05-18  Segher Boessenkool  <segher@kernel.crashing.org>
14464         * function.c (rest_of_handle_thread_prologue_and_epilogue): Call
14465         cleanup_cfg with CLEANUP_EXPENSIVE after shrink-wrapping instead
14466         of before.  Add a comment.
14468 2016-05-18  Bin Cheng  <bin.cheng@arm.com>
14470         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Check invariant
14471         expression pointer, not pointer to the pointer.
14473 2016-05-18  Jakub Jelinek  <jakub@redhat.com>
14475         * config/i386/sse.md (pbroadcast_evex_isa): New mode attr.
14476         (avx2_pbroadcast<mode>): Add another alternative with v instead
14477         of x constraints in it, using <pbroadcast_evex_isa> isa.
14478         (avx2_pbroadcast<mode>_1): Similarly, add two such alternatives.
14480         * config/i386/sse.md (<ssse3_avx2>_palignr<mode>): Use
14481         constraint x instead of v in second alternative, add avx512bw
14482         alternative.
14484         * config/i386/sse.md (<ssse3_avx2>_pshufb<mode>3<mask_name>): Use
14485         constraint x instead of v in second alternative, add avx512bw
14486         alternative.
14488         * config/i386/sse.md (*<ssse3_avx2>_pmulhrsw<mode>3<mask_name>): Use
14489         constraint x instead of v in second alternative, add avx512bw
14490         alternative.
14492         * config/i386/sse.md (avx2_pmaddubsw256, ssse3_pmaddubsw128): Add
14493         avx512bw alternative.
14495 2016-05-18  Kirill Yukhin  <kirill.yukhin@intel.com>
14497         * config/i386/sse.md (define_insn "*andnot<mode>3"): Extend static
14498         array to 128 chars.
14499         (define_insn "*andnottf3"): Ditto.
14500         (define_insn "*<code><mode>3"/any_logic): Ditto.
14501         (define_insn "*<code>tf3"/any_logic): Ditto.
14502         (define_insn "sse2_storehpd"): Use Yv constraint for scalar
14503         operand to block AVX-512VL insn variant emit when it is not enabled.
14505 2016-05-18  Kirill Yukhin  <kirill.yukhin@intel.com>
14507         * config/i386/sse.md (define_insn "*vec_concatv2sf_sse4_1"): Use 'Yv'
14508         constraint fot SF mode.
14510 2016-05-18  Petr Murzin  <petr.murzin@intel.com>
14511             Kirill Yukhin  <kirill.yukhin@intel.com>
14513         * config/i386/sse.md (define_insn "srcp14<mode>"): Use proper operand
14514         modifiers.
14515         (define_insn "rsqrt14<mode>"): Ditto.
14516         (define_insn "<mask_codefor>avx512dq_cvtps2qqv2di<mask_name>"): Ditto.
14517         (define_insn "<fixsuffix>fix_truncv2sfv2di2<mask_name>"): Ditto.
14518         (define_insn "avx512f_<code>v8div16qi2_mask_store"): Ditto.
14519         (define_insn "vec_set_hi_<mode><mask_name>"): Ditto.
14520         (define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>"):
14521         Ditto.
14522         (define_insn "*avx512f_gatherdi<mode>"): Ditto.
14523         (define_insn "*avx512f_scatterdi<mode>"): Ditto.
14524         * config/i386/i386.c (ix86_print_operand): Expand check for size
14525         override codes for Intel syntax.
14527 2016-05-18  Richard Biener  <rguenther@suse.de>
14529         PR tree-optimization/71168
14530         * tree-loop-distribution.c (distribute_loop): Move *destroy_p
14531         initialization earlier.
14533 2016-05-18  James Greenhalgh  <james.greenhalgh@arm.com>
14535         * config/aarch64/aarch64-simd.md
14536         (aarch64_reduc_plus_internal<mode>): Rename to...
14537         (reduc_plus_scal): ...This, and remove previous implementation.
14539 2016-05-18  Richard Biener  <rguenther@suse.de>
14541         * passes.def: Put late dse and cd_dce in canonical order.
14543 2016-05-17  Jan Hubicka  <hubicka@ucw.cz>
14545         * ipa-inline-transform.c (preserve_function_body_p): Look for
14546         first non-thunk clone.
14547         (save_function_body): Save into first non-thunk.
14548         * lto-cgraph.c (lto_output_edge): When streaming thunk do not look
14549         up call stmt id.
14550         (lto_output_node): Inline thunks don't need body in every
14551         partition.
14552         * lto-streamer-in.c: Do not fixup thunk clones.
14553         * cgraphclones.c (cgraph_node::create_edge_including_clone): Skip
14554         thunks.
14555         * tree-inline.c (copy_bb): Be prepared for target node to be new after
14556         folding suceeds.
14558 2016-05-17  Kugan Vivekanandarajah  <kuganv@linaro.org>
14560         PR middle-end/63586
14561         * tree-ssa-reassoc.c (transform_add_to_multiply): New.
14562         (reassociate_bb): Call transform_add_to_multiply.
14564 2016-05-17  Kugan Vivekanandarajah  <kuganv@linaro.org>
14566         * config/aarch64/aarch64.c (all_extensions): Removed unused
14567         static variable.
14569 2016-05-17  Nathan Sidwell  <nathan@acm.org>
14571         * config/nvptx/nvptx.c (nvptx_function_arg_boundary): New.
14572         (TARGET_FUNCTION_ARG_BOUNDARY): Override.
14574 2016-05-17  Mikhail Maltsev  <maltsevm@gmail.com>
14576         PR tree-optimization/54579
14577         PR middle-end/55299
14578         * match.pd (~(~X >> Y), ~(~X >>r Y), ~(~X <<r Y)): New patterns.
14580 2016-05-17  Marek Polacek  <polacek@redhat.com>
14582         PR ipa/71146
14583         * tree-inline.c (expand_call_inline): Call
14584         maybe_remove_unused_call_args.
14586 2016-05-17  Jim Wilson  <jim.wilson@linaro.org>
14588         * doc/cpp.texi (__GNUC__): Major version changes are no longer rare.
14589         * doc/invoke.texi (-mnan=2008): Change signalling to signaling.
14590         * doc/md.texi (fmin@var{m}3): Likewise.
14592 2016-05-17  Marc Glisse  <marc.glisse@inria.fr>
14594         * match.pd (X & C): New transformation.
14596 2016-05-17  Marc Glisse  <marc.glisse@inria.fr>
14598         * match.pd (~X & Y): New transformation.
14600 2016-05-17  Marc Glisse  <marc.glisse@inria.fr>
14602         * tree-vrp.c (simplify_truth_ops_using_ranges): Set range
14603         information for new SSA_NAME.
14604         (simplify_conversion_using_ranges): Get range through get_range_info
14605         instead of get_value_range.
14607 2016-05-17  Jiong Wang  <jiong.wang@arm.com>
14609         * config/aarch64/arm_neon.h (vmvn_s8): Reimplement using C operator.
14610         Remove inline assembly.
14611         (vmvn_s16): Likewise.
14612         (vmvn_s32): Likewise.
14613         (vmvn_u8): Likewise.
14614         (vmvn_u16): Likewise.
14615         (vmvn_u32): Likewise.
14616         (vmvnq_s8): Likewise.
14617         (vmvnq_s16): Likewise.
14618         (vmvnq_s32): Likewise.
14619         (vmvnq_u8): Likewise.
14620         (vmvnq_u16): Likewise.
14621         (vmvnq_u32): Likewise.
14622         (vmvn_p8): Likewise.
14623         (vmvnq_p16): Likewise.
14625 2016-05-17  Jiong Wang  <jiong.wang@arm.com>
14627         * config/aarch64/aarch64-simd.md (vmul_n_f32): Remove inline assembly.
14628         Use builtin.
14629         (vmul_n_s16): Likewise.
14630         (vmul_n_s32): Likewise.
14631         (vmul_n_u16): Likewise.
14632         (vmul_n_u32): Likewise.
14633         (vmulq_n_f32): Likewise.
14634         (vmulq_n_f64): Likewise.
14635         (vmulq_n_s16): Likewise.
14636         (vmulq_n_s32): Likewise.
14637         (vmulq_n_u16): Likewise.
14638         (vmulq_n_u32): Likewise.
14640 2016-05-17  Jiong Wang  <jiong.wang@arm.com>
14642         * config/aarch64/aarch64-simd.md (*aarch64_mul3_elt_to_128df): Extend
14643         to all supported modes.  Rename to "*aarch64_mul3_elt_from_dup".
14645 2016-05-17  Jiong Wang  <jiong.wang@arm.com>
14647         * config/aarch64/aarch64-simd.md (*aarch64_fma4_elt_to_128df): Rename
14648         to *aarch64_fma4_elt_from_dup<mode>.
14649         (*aarch64_fnma4_elt_to_128df): Rename to
14650         *aarch64_fnma4_elt_from_dup<mode>.
14651         * config/aarch64/arm_neon.h (vfma_n_f64): New.
14652         (vfms_n_f32): Likewise.
14653         (vfms_n_f64): Likewise.
14654         (vfmsq_n_f32): Likewise.
14655         (vfmsq_n_f64): Likewise.
14657 2016-05-17  Gerald Pfeifer  <gerald@pfeifer.com>
14659         * wide-int.h: Change fixed_wide_int_storage from class to struct.
14661 2016-05-17  Richard Biener  <rguenther@suse.de>
14663         PR tree-optimization/71132
14664         * tree-loop-distribution.c (create_rdg_cd_edges): Pass in loop.
14665         Only add control dependences for blocks in the loop.
14666         (build_rdg): Adjust.
14667         (generate_code_for_partition): Return whether loop should
14668         be destroyed and delay that.
14669         (distribute_loop): Likewise.
14670         (pass_loop_distribution::execute): Record loops to be destroyed
14671         and perform delayed destroying of loops.
14673 2016-05-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14675         PR target/70809
14676         * config/aarch64/aarch64-simd.md (aarch64_vmls<mode>): Delete.
14678 2016-05-17  James Greenhalgh  <james.greenhalgh@arm.com>
14680         * config/aarch64/aarch64-elf.h (ASM_OUTPUT_DEF): Delete.
14682 2016-05-17  Ilya Enkovich  <ilya.enkovich@intel.com>
14684         PR target/71114
14685         * config/i386/i386.c (dimode_scalar_chain::convert_op): Fix
14686         insertion point for instructions generated by validize_mem.
14688 2016-05-17  James Greenhalgh  <james.greenhalgh@arm.com>
14690         * config/aarch64/aarch64.c (SHIFT_COUNT_TRUNCATED): Wrap definition
14691         in brackets.
14693 2016-05-17  James Greenhalgh  <james.greenhalgh@arm.com>
14695         * config/aarch64/aarch64.c
14696         (aarch64_output_simd_mov_immediate): Make "buf_size" a variable
14697         rather than a macro.
14699 2016-05-16  Wilco Dijkstra  <wdijkstr@arm.com>
14701         * doc/invoke.texi (AArch64 Options): Various updates.
14703 2016-05-16  Jan Hubicka  <hubicka@ucw.cz>
14705         * ipa-inline-analysis.c (compute_inline_parameters): Disable inlinig
14706         into instrumentation thunks.
14707         * cif-code.def (CIF_CHKP): New.
14709 2016-05-16  Uros Bizjak  <ubizjak@gmail.com>
14711         * config/i386/xopintrin.h: Correct "unsinged" typo in the comments.
14713 2016-05-16  Martin Jambor  <mjambor@suse.cz>
14715         * hsa-gen.c (fillup_for_decl): Increase alignment to natural one.
14716         (get_symbol_for_decl): Sorry if a global symbol in under-aligned.
14718 2016-05-16  Marek Polacek  <polacek@redhat.com>
14720         * gimple.c (maybe_remove_unused_call_args): Fix typos in the
14721         commentary.
14723 2016-05-16  Martin Jambor  <mjambor@suse.cz>
14725         PR hsa/70857
14726         * omp-low.c (grid_expand_target_grid_body): Copy RESULT_DECL of
14727         the outlined kernel function.
14729 2016-05-16  Robert Suchanek  <robert.suchanek@imgtec.com>
14731         * config/mips/mips.h (ISA_HAS_LSA): Enable for -mmsa.
14732         (ISA_HAS_DLSA): Ditto.
14734 2016-05-16  Matthew Fortune  <matthew.fortune@imgtec.com>
14736         * config/mips/m5100.md (m51_int_load): Update the latency to 2.
14738 2016-05-16  Nathan Sidwell  <nathan@acm.org>
14740         * config/nvptx/nvptx.c (nvptx_mangle_decl_assembler_name): Revert.
14741         (nvptx_name_replacement): Restore.  Add comment.
14742         (write_fn_proto, write_fn_proto_from_insn,
14743         nvptx_output_call_insn): Restore
14744         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Delete.
14746 2016-05-16  Wilco Dijkstra  <wdijkstr@arm.com>
14748         * config/aarch64/aarch64.md
14749         (add<mode>3_compareC_cconly_imm): Remove use of %w.
14750         (add<mode>3_compareC_imm): Likewise.
14751         (<optab>si3_uxtw): Split into register and immediate variants.
14752         (andsi3_compare0_uxtw): Likewise.
14753         (and<mode>3_compare0): Likewise.
14754         (and<mode>3nr_compare0): Likewise.
14755         (stack_protect_test_<mode>): Don't use %x for memory operands.
14757 2016-05-16  Matthew Fortune  <matthew.fortune@imgtec.com>
14759         * config/mips/mips-cpus.def (p5600): Add multi-line brackets.
14761 2016-05-16  Wilco Dijkstra  <wdijkstr@arm.com>
14763         * config/aarch64/aarch64.md (aarch64_ashl_sisd_or_int_<mode>3):
14764         Split integer shifts into shift_reg and bfm.
14765         (aarch64_lshr_sisd_or_int_<mode>3): Likewise.
14766         (aarch64_ashr_sisd_or_int_<mode>3): Likewise.
14767         (ror<mode>3_insn): Likewise.
14768         (<optab>si3_insn_uxtw): Likewise.
14769         (<optab><mode>3_insn): Change to rotate_imm.
14770         (extr<mode>5_insn_alt): Likewise.
14771         (extrsi5_insn_uxtw): Likewise.
14772         (extrsi5_insn_uxtw_alt): Likewise.
14774 2016-05-16  Matthew Wahab  <matthew.wahab@arm.com>
14776         * doc/tm.texi: Regenerate.
14777         * doc/tm.texi.in (TARGET_INVALID_PARAMETER_TYPE): Remove.
14778         (TARGET_INVALID_RETURN_TYPE): Remove.
14779         * system.h: Poison TARGET_INVALID_PARAMETER_TYPE and
14780         TARGET_INVALID_RETURN_TYPE.
14781         * target.def (invalid_parameter_type): Remove.
14782         (invalid_return_type): Remove.
14784 2016-05-16  Jan Hubicka  <hubicka@ucw.cz>
14786         * ipa-inline-analysis.c (compute_inline_parameters): Be more reailistic
14787         on estimating thunk bodies; do not set inline_failed to CIF_THUNK for
14788         calls from thunk.
14789         * ipa-inline-transform.c (inline_call): When inlining into thunk produce
14790         gimple body.
14791         (preserve_function_body_p): No need to preserve function body
14792         * cif-codes.def (CIF_THUNK): Remove.
14793         * cgraphclones.c (duplicate_thunk_for_node): Thunks calls are inlinable.
14795 2016-05-16  Jan Hubicka  <hubicka@ucw.cz>
14797         * tree-inline.c (expand_call_inline): recurse after inlining thunk.
14799 2016-05-16  Jan Hubicka  <hubicka@ucw.cz>
14801         * tree.c (free_lang_data_in_decl): Also set target/optimization flags
14802         for thunks.
14804 2016-05-16  Jan Hubicka  <hubicka@ucw.cz>
14806         * ipa-inline.c (report_inline_failed_reason): Look into thunks, too
14807         (inline_small_functions): Do not look for function symbol when
14808         resetting caches.
14810 2016-05-16  Jan Hubicka  <hubicka@ucw.cz>
14812         * lto-cgraph.c (compute_ltrans_boundary, output_symtab): Fix handling
14813         of inline thunks
14815 2016-05-16  Matthew Wahab  <matthew.wahab@arm.com>
14816             Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
14817             Jiong Wang  <jiong.wang@arm.com>
14819         * config/arm/arm-c.c (arm_cpu_builtins): Use def_or_undef_macro
14820         for __ARM_FP16_FORMAT_IEEE and __ARM_FP16_FORMAT_ALTERNATIVE.
14821         Define __ARM_FP16_ARGS when appropriate.
14822         * config/arm/arm.c (arm_invalid_parameter_type): Remove
14823         declaration.
14824         (arm_invalid_return_type): Likewise.
14825         (TARGET_INVALID_PARAMETER_TYPE): Remove.
14826         (TARGET_INVALID_RETURN_TYPE): Remove.
14827         (aapcs_vfp_sub_candidate): Allow HFmode.
14828         (aapcs_vfp_allocate): Add comment.  Support HFmode.
14829         (aapcs_vfp_allocate_return_reg): Likewise.
14830         (struct aapcs_cp_arg_layout): Slightly reword comments for
14831         is_return_candidate and allocate_return_reg.
14832         (output_mov_vfp): Update assert.
14833         (arm_hard_regno_mode_ok): Remove comment, update HF-mode
14834         condition.
14835         (arm_invalid_parameter_type): Remove.
14836         (amr_invalid_return_type): Remove.
14837         * config/arm/arm.h (TARGET_NEON_FP16): Fix definition.
14838         * config/arm/arm.md (*arm32_movhf): Disable for TARGET_VFP.
14839         * config/arm/vfp.md (*movhf_vfp): Enable for TARGET_VFP.
14841 2016-05-16  Matthew Wahab  <matthew.wahab@arm.com>
14843         * config/aarch64/aarch64.h (LEGITIMIZE_RELOAD_ADDRESS): Remove.
14844         * config/aarch64/arch64-protos.h
14845         (aarch64_legitimize_reload_address): Remove.
14846         * config/aarch64/aarch64.c (aarch64_legitimize_reload_address):
14847         Remove.
14849 2016-05-16  Eric Botcazou  <ebotcazou@adacore.com>
14851         * configure.ac: Add ACX_NONCANONICAL_HOST.
14852         * configure: Regenerate.
14853         * Makefile.in: Set host_noncanonical.
14855 2016-05-14  Uros Bizjak  <ubizjak@gmail.com>
14857         PR target/71097
14858         * config/i386/i386.md (*movtf_internal): Before register allocation,
14859         do not allow FP constants for CM_MEDIUM memory model, allow only
14860         standard FP constants for CM_LARGE and CM_LARGE_PIC models.
14861         (*movxf_internal): Ditto.
14862         (*movdf_internal): Ditto.
14863         (*movsf_internal): Ditto.
14865 2016-05-13  Segher Boessenkool  <segher@kernel.crashing.org>
14867         PR rtl-optimization/67483
14868         * combine.c (make_compound_operation): Don't call extract_left_shift
14869         with negative shift amounts.
14871 2016-05-13  Jakub Jelinek  <jakub@redhat.com>
14873         PR bootstrap/71071
14874         * fold-const.c (fold_checksum_tree): Allow modification
14875         of TYPE_ALIAS_SET during folding.
14877         * config/i386/i386.c (ix86_compute_frame_layout, ix86_expand_prologue,
14878         ix86_expand_split_stack_prologue): Use HOST_WIDE_INT_C macro.
14879         (ix86_split_to_parts): Likewise.  Fix up formatting.
14881 2016-05-13  H.J. Lu  <hongjiu.lu@intel.com>
14883         * tree-ssa-loop-ivopts.c (create_new_ivs): Cast to
14884         unsigned HOST_WIDE_INT with HOST_WIDE_INT_PRINT_UNSIGNED in
14885         printf format.
14887 2016-05-13  Nathan Sidwell  <nathan@acm.org>
14889         * config/nvptx/nvptx.c (nvptx_mangle_decl_assembler_name): New.
14890         (nvptx_name_replacement): Delete.
14891         (write_fn_proto, write_fn_proto_from_insn,
14892         nvptx_output_call_insn): Remove nvptx_name_replacement call.
14893         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Override.
14894         * langhooks.c (add_builtin_funcction_common): Call
14895         targetm.mangle_decl_assembler_name.
14897         * config/nvptx/nvptx.c (write_fn_proto): Handle
14898         BUILT_IN_ATOMIC_COMPARE_EXCHANGE_n oddity.
14900 2016-05-13  Martin Liska  <mliska@suse.cz>
14902         * tree-ssa-loop-ivopts.c (create_new_ivs): Use HOST_WIDE_INT_PRINT_DEC
14903         and PRIu64 in printf format.
14905 2016-05-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14907         * tree-ssa-loop-ivanon.c (try_unroll_loop_completely): Typo fix in
14908         comment.
14910 2016-05-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14912         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely):
14913         Change --param max-completely-peeled-times to
14914         --param max-completely-peel-times in dump file printing.
14916 2016-05-13  Richard Biener  <rguenther@suse.de>
14918         PR tree-optimization/42587
14919         * tree-ssa-math-opts.c (perform_symbolic_merge): Handle BIT_FIELD_REF.
14920         (find_bswap_or_nop_1): Likewise.
14921         (bswap_replace): Likewise.
14923 2016-05-13  Martin Liska  <mliska@suse.cz>
14925         * tree-vect-patterns.c (vect_recog_mask_conversion_pattern):
14926         Initialize a variable with default value.
14928 2016-05-13  Martin Liska  <mliska@suse.cz>
14930         * doc/invoke.texi: Enhance explanation of error recovery
14931         of sanitizers.
14933 2016-05-13  Martin Liska  <mliska@suse.cz>
14935         * tree-ssa-loop-ivopts.c (avg_loop_niter): Fix coding style.
14936         (struct cost_pair): Change inv_expr_id (int) to inv_expr
14937         (iv_inv_expr_ent *).
14938         (struct iv_inv_expr_ent): Comment struct fields.
14939         (sort_iv_inv_expr_ent): New function.
14940         (struct ivopts_data): Rename inv_expr_id to max_inv_expr_id.
14941         (struct iv_ca): Replace used_inv_expr and num_used_inv_expr with
14942         a hash_map between iv_inv_expr_ent and number of usages.
14943         (niter_for_exit): Fix coding style.
14944         (tree_ssa_iv_optimize_init): Use renamed variable.
14945         (determine_base_object): Fix coding style.
14946         (alloc_iv): Likewise.
14947         (find_interesting_uses_outside): Likewise.
14948         (add_candidate_1): Likewise.
14949         (add_standard_iv_candidates): Likewise.
14950         (set_group_iv_cost): Replace inv_expr_id with inv_expr.
14951         (prepare_decl_rtl): Fix coding style.
14952         (get_address_cost): Likewise.
14953         (get_shiftadd_cost): Likewise.
14954         (force_expr_to_var_cost): Likewise.
14955         (compare_aff_trees): Likewise.
14956         (get_expr_id): Restructure the function.
14957         (get_loop_invariant_expr_id): Renamed to
14958         get_loop_invariant_expr.
14959         (get_computation_cost_at): Replace usage of inv_expr_id with
14960         inv_expr.
14961         (get_computation_cost): Likewise.
14962         (determine_group_iv_cost_generic): Likewise.
14963         (determine_group_iv_cost_address): Likewise.
14964         (iv_period): Fix coding style.
14965         (iv_elimination_compare_lt): Likewise.
14966         (may_eliminate_iv): Likewise.
14967         (determine_group_iv_cost_cond):  Replace usage of inv_expr_id with
14968         inv_expr.
14969         (determine_group_iv_costs): Dump invariant expressions.
14970         (iv_ca_recount_cost): Use the newly added hash_map.
14971         (iv_ca_set_remove_invariants): Fix coding style.
14972         (iv_ca_set_add_invariants): Fix coding style.
14973         (iv_ca_set_no_cp): Utilize the newly added hash_map for used
14974         invariants.
14975         (iv_ca_set_cp): Likewise.
14976         (iv_ca_new): Initialize the newly added hash_map and remove
14977         initialization of fields.
14978         (iv_ca_free): Delete the hash_map.
14979         (iv_ca_dump): Dump invariant expressions.
14980         (iv_ca_extend): Fix coding style.
14981         (try_add_cand_for): Likewise.
14982         (create_new_ivs): Dump information about # of avg iterations and
14983         # of used invariant expressions.
14984         (rewrite_use_compare): Fix coding style.
14985         (free_loop_data): Set default value for max_inv_expr_id.
14987 2016-05-13  Ilya Enkovich  <ilya.enkovich@intel.com>
14989         * cse.c (rest_of_handle_cse): Use cleanup_cfg
14990         returned value cse_cfg_altered computation.
14991         (rest_of_handle_cse2): Likewise.
14992         (rest_of_handle_cse_after_global_opts): Likewise.
14994 2016-05-13  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
14996         PR target/53440
14997         * config/arm/arm.c (arm32_output_mi_thunk): New.
14998         (arm_output_mi_thunk): Rename to arm_thumb1_mi_thunk. Rework
14999         to split Thumb1 vs TARGET_32BIT functionality.
15000         (arm_thumb1_mi_thunk): New.
15002 2016-05-13  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
15004         * config/aarch64/aarch64.c (TARGET_OMIT_STRUCT_RETURN_REG): Set
15005         to true.
15007 2016-05-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15009         PR target/71080
15010         * config/i386/i386.c (ix86_in_large_data_p): Guard against NULL exp.
15012 2016-05-13  Eric Botcazou  <ebotcazou@adacore.com>
15014         * builtins.c (expand_builtin_memcmp): Do not emit the call here.
15015         (expand_builtin_trap): Emit a regular call.
15016         (set_builtin_user_assembler_name): Remove obsolete cases.
15017         * dse.c (scan_insn): Adjust.
15018         * except.c: Include calls.h.
15019         (sjlj_emit_function_enter): If DONT_USE_BUILTIN_SETJMP is defined,
15020         emit a regular call to setjmp.
15021         * expr.c (emit_block_move_hints): Call emit_block_copy_via_libcall.
15022         (block_move_libcall_safe_for_call_parm): Use memcpy builtin.
15023         (emit_block_move_via_libcall): Delete.
15024         (block_move_fn): Delete.
15025         (init_block_move_fn): Likewise.
15026         (emit_block_move_libcall_fn): Likewise.
15027         (emit_block_op_via_libcall): New function.
15028         (set_storage_via_libcall): Tidy up and use memset builtin.
15029         (block_clear_fn): Delete.
15030         (init_block_clear_fn): Likewise.
15031         (clear_storage_libcall_fn): Likewise.
15032         (expand_assignment): Call emit_block_move_via_libcall.
15033         Do not include gt-expr.h.
15034         * expr.h (emit_block_op_via_libcall): Declare.
15035         (emit_block_copy_via_libcall): New inline function.
15036         (emit_block_move_via_libcall): Likewise.
15037         (emit_block_comp_via_libcall): Likewise.
15038         (block_clear_fn): Delete.
15039         (init_block_move_fn): Likewise.
15040         (init_block_clear_fn): Likewise.
15041         (emit_block_move_via_libcall): Likewise.
15042         (set_storage_via_libcall): Add default parameter value.
15043         * libfuncs.h (enum libfunc_index): Remove obsolete values.
15044         (abort_libfunc): Delete.
15045         (memcpy_libfunc): Likewise.
15046         (memmove_libfunc): Likewise.
15047         (memcmp_libfunc): Likewise.
15048         (memset_libfunc): Likewise.
15049         (setbits_libfunc): Likewise.
15050         (setjmp_libfunc): Likewise.
15051         (longjmp_libfunc): Likewise.
15052         (profile_function_entry_libfunc): Likewise.
15053         (profile_function_exit_libfunc): Likewise.
15054         (gcov_flush_libfunc): Likewise.
15055         * optabs-libfuncs.c (build_libfunc_function): Set DECL_ARTIFICIAL
15056         and DECL_VISIBILITY on the declaration.
15057         (init_optabs): Do not initialize obsolete libfuncs.
15058         * optabs.c (prepare_cmp_insn): Call emit_block_comp_via_libcall.
15059         * tree-core.h (ECF_RET1): Define.
15060         (ECF_TM_PURE): Adjust.
15061         (ECF_TM_BUILTIN): Likewise.
15062         * tree.c (set_call_expr_flags): Deal with ECF_RET1.
15063         (build_common_builtin_nodes): Initialize abort builtin.
15064         Add ECF_RET1 on memcpy, memmove and memset builtins.
15065         Pass final flags for alloca and alloca_with_align builtins.
15066         * config/alpha/alpha.c (alpha_init_libfuncs): Do not initialize
15067         obsolete builtins.
15068         * config/ia64/ia64.c (ia64_vms_init_libfuncs): Likewise.
15069         * config/i386/i386.c (ix86_expand_set_or_movmem): Adjust call to
15070         set_storage_via_libcall and call emit_block_copy_via_libcall.
15072 2016-05-12  Uros Bizjak  <ubizjak@gmail.com>
15074         * config/i386/i386.md (*call_got_x32): Change operand 0 to
15075         DImode before it is passed to ix86_output_call_operand.
15076         (*call_value_got_x32): Ditto for operand 1.
15078 2016-05-12  Jiong Wang  <jiong.wang@arm.com>
15080         PR rtl-optimization/70904
15081         * lra-constraint.c (process_addr_reg): Relax the restriction on subreg
15082         reload for wide mode.
15084 2016-05-12  Marek Polacek  <polacek@redhat.com>
15086         PR c/70756
15087         * langhooks-def.h (lhd_incomplete_type_error): Adjust declaration.
15088         * langhooks.c (lhd_incomplete_type_error): Add location parameter.
15089         * langhooks.h (incomplete_type_error): Likewise.
15090         * tree.c (size_in_bytes_loc): Renamed from size_in_bytes.  Add location
15091         parameter, pass it down to incomplete_type_error.
15092         * tree.h (size_in_bytes): New inline overload.
15093         (size_in_bytes_loc): Renamed from size_in_bytes.
15095 2016-05-12  Richard Biener  <rguenther@suse.de>
15097         PR tree-optimization/71059
15098         * tree-ssa-pre.c (phi_translate_1): Fully fold translated
15099         nary before looking up or entering the expression into the VN
15100         hashes.
15101         * tree-ssa-sccvn.c (vn_nary_build_or_lookup): Fix comment typo.
15102         Make sure to re-use NARYs without result as inserted by
15103         phi-translation.
15105 2016-05-12  Richard Biener  <rguenther@suse.de>
15107         PR tree-optimization/71062
15108         * tree-ssa-alias.h (struct pt_solution): Add vars_contains_restrict
15109         field.
15110         * tree-ssa-structalias.c (set_uids_in_ptset): Set
15111         vars_contains_restrict if the var is a restrict tag.
15112         * tree-ssa-alias.c (ptrs_compare_unequal): If vars_contains_restrict
15113         do not disambiguate pointers against it.
15114         (dump_points_to_solution): Re-structure and adjust for new
15115         vars_contains_restrict flag.
15116         * gimple-pretty-print.c (pp_points_to_solution): Likewise.
15118 2016-05-12  Martin Liska  <mliska@suse.cz>
15120         * doc/invoke.texi: Explain connection between
15121         -fsanitize-recover=address and ASAN_OPTIONS="halt_on_error=1".
15123 2016-05-12  Ilya Enkovich  <ilya.enkovich@intel.com>
15125         PR tree-optimization/71006
15126         * tree-vect-loop.c (vect_determine_vectorization_factor): Don't
15127         consider COND_EXPR as a mask producer.
15129 2016-05-12  Marek Polacek  <polacek@redhat.com>
15131         PR driver/71063
15132         * opts.c (common_handle_option): Detect missing argument for --help^.
15134 2016-05-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15136         PR target/70830
15137         * config/arm/arm.c (arm_output_multireg_pop): Avoid POP instruction
15138         when popping the PC and within an interrupt handler routine.
15139         Add missing tab to output of "ldmfd".
15140         (output_return_instruction): Output LDMFD with SP update rather
15141         than POP when returning from interrupt handler.
15143 2016-05-12  Jakub Jelinek  <jakub@redhat.com>
15145         * config/i386/i386.md (isa): Add x64_avx512dq, enable if
15146         TARGET_64BIT && TARGET_AVX512DQ.
15147         * config/i386/sse.md (*vec_extract<mode>): Add avx512bw alternatives.
15148         (*vec_extract<PEXTR_MODE12:mode>_zext): Add avx512bw alternative.
15149         (*vec_extract<ssevecmodelower>_0, *vec_extractv4si_0_zext,
15150         *vec_extractv2di_0_sse): Use v constraint instead of x constraint.
15151         (*vec_extractv4si): Add avx512dq and avx512bw alternatives.
15152         (*vec_extractv4si_zext): Add avx512dq alternative.
15153         (*vec_extractv2di_1): Add x64_avx512dq and avx512bw alternatives,
15154         use v instead of x constraint in other alternatives where possible.
15156         * config/i386/sse.md (sse2_loadld): Use v instead of x
15157         constraint in alternatives 0,1,4.
15159         * config/i386/sse.md (pinsr_evex_isa): New mode attr.
15160         (<sse2p4_1>_pinsr<ssemodesuffix>): Add 2 alternatives with
15161         v constraints instead of x and <pinsr_evex_isa> isa attribute.
15163         PR target/71019
15164         * config/i386/sse.md (<sse2_avx2>_packssdw<mask_name>,
15165         <sse4_1_avx2>_packusdw<mask_name>): Make sure EVEX encoded insn
15166         is not emitted unless TARGET_AVX512BW.
15167         (<sse2_avx2>_packuswb<mask_name>, <sse2_avx2>_packsswb<mask_name>):
15168         Likewise.  For TARGET_AVX512BW, use "=v" constraint instead of "=x"
15169         for the result operand.
15171         * config/i386/sse.md (*vec_setv4sf_sse4_1, sse4_1_insertps): Use v
15172         constraint instead of x in avx alternatives.  Use maybe_evex instead
15173         of vex prefix.
15175         * config/i386/constraints.md (Yv): New constraint.
15176         * config/i386/i386.h (VALID_AVX512VL_128_REG_MODE): Allow
15177         TFmode and V1TImode in xmm16+ registers for TARGET_AVX512VL.
15178         * config/i386/i386.md (avx512fvecmode): New mode attr.
15179         (*pushtf): Use v constraint instead of x.
15180         (*movtf_internal): Likewise.  For TARGET_AVX512VL and
15181         xmm16+ registers, use vmovdqu64 or vmovdqa64 instructions.
15182         (*absneg<mode>2): Use Yv constraint instead of x constraint.
15183         (*absnegtf2_sse): Likewise.
15184         (copysign<mode>3_const, copysign<mode>3_var): Likewise.
15185         * config/i386/sse.md (*andnot<mode>3): Add avx512vl and
15186         avx512f alternatives.
15187         (*andnottf3, *<code><mode>3, *<code>tf3): Likewise.
15189 2016-05-12  Richard Biener  <rguenther@suse.de>
15191         PR tree-optimization/71060
15192         * tree-data-ref.c (initialize_data_dependence_relation): Do not
15193         require exact match of DR_BASE_OBJECT but only matching address and
15194         type.
15196 2016-05-12  Richard Biener  <rguenther@suse.de>
15198         PR tree-optimization/70986
15199         * cfganal.c: Include cfgloop.h.
15200         (dfs_find_deadend): Prefer to take edges exiting loops.
15202 2016-05-11  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
15204         * gcc.target/powerpc/pr70963.c: Require at least power8 at both
15205         compile and run time.
15207 2016-05-11  Mikhail Maltsev  <maltsevm@gmail.com>
15209         PR c/43651
15210         * doc/invoke.texi (Wduplicate-decl-specifier): Document new option.
15212 2016-05-11  Uros Bizjak  <ubizjak@gmail.com>
15214         * config/i386/i386.c (legitimize_pic_address): Use
15215         copy_to_suggested_reg instead of gen_movsi.
15217 2016-05-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
15219         * config/rs6000/predicates.md (quad_memory_operand): Move most of
15220         the code into quad_address_p and call it to share code with
15221         vsx_quad_dform_memory_operand.
15222         (vsx_quad_dform_memory_operand): New predicate for ISA 3.0 vector
15223         d-form support.
15224         * config/rs6000/rs6000.opt (-mlra): Switch to being an option mask
15225         bit instead of being a separate word.  Split -mpower9-dform into
15226         two switches, -mpower9-dform-scalar and -mpower9-dform-vector.
15227         * config/rs6000/rs6000.c (RELOAD_REG_QUAD_OFFSET): New addr_mask
15228         for the register class supporting 128-bit quad word memory offsets.
15229         (mode_supports_vsx_dform_quad): Helper function to return if the
15230         register class uses quad word memory offsets.
15231         (rs6000_debug_addr_mask): Add support for quad word memory offsets.
15232         (rs6000_debug_reg_global): Always print if we are using LRA or not.
15233         (rs6000_setup_reg_addr_masks): If ISA 3.0 vector d-form
15234         instructions are enabled, set up the appropriate addr_masks for
15235         128-bit types.
15236         (rs6000_init_hard_regno_mode_ok): wb constraint is now based on
15237         -mpower9-dform-scalar, instead of -mpower9-dform.
15238         (rs6000_option_override_internal): Split -mpower9-dform into two
15239         switches, -mpower9-dform-scalar and -mpower9-dform-vector.  The
15240         -mpower9-dform switch sets or clears both.  If we are not using
15241         the LRA register allocator, do not enable -mpower9-dform-vector by
15242         default.  If we are using LRA, enable -mpower9-dform-vector and
15243         -mvsx-timode if it is appropriate.  Issue a warning if either
15244         -mpower9-dform-vector or -mvsx-timode are explicitly used without
15245         enabling LRA.
15246         (quad_address_offset_p): New helper function to return if the
15247         offset is legal for quad word memory instructions.
15248         (quad_address_p): New function to determin if GPR or vector
15249         register quad word memory addresses are legal.
15250         (mem_operand_gpr): Validate quad word address offsets.
15251         (reg_offset_addressing_ok_p): Add support for ISA 3.0 vector
15252         d-form (register + offset) instructions.
15253         (offsettable_ok_by_alignment): Likewise.
15254         (rs6000_legitimate_offset_address_p): Likewise.
15255         (legitimate_lo_sum_address_p): Likewise.
15256         (rs6000_legitimize_address): Likewise.
15257         (rs6000_legitimize_reload_address): Add more debug statements for
15258         -mdebug=addr.
15259         (rs6000_legitimate_address_p): Add support for ISA 3.0 vector
15260         d-form instructions.
15261         (rs6000_secondary_reload_memory): Add support for ISA 3.0 vector
15262         d-form instructions.  Distinguish different cases in debug
15263         output. (rs6000_secondary_reload_inner): Add support for ISA 3.0 vector
15264         d-form instructions.
15265         (rs6000_preferred_reload_class): Likewise.
15266         (rs6000_output_move_128bit): Add support for ISA 3.0 d-form
15267         instructions.  If ISA 3.0 is available, generate lxvx/stxvx instead
15268         of the ISA 2.06 indexed memory instructions.
15269         (rs6000_emit_prologue): If we have ISA 3.0 d-form instructions,
15270         use them to save/restore the saved vector registers instead of
15271         using Altivec instructions.
15272         (rs6000_emit_epilogue): Likewise.
15273         (rs6000_lra_p): Use TARGET_LRA instead of the old option word.
15274         (rs6000_opt_masks): Split -mpower9-dform into
15275         -mpower9-dform-scalar and -mpower9-dform-vector.
15276         (rs6000_print_options_internal): Print -mno-<switch> if <switch>
15277         was not selected.
15278         * config/rs6000/vsx.md (p9_vecload_<mode>): Delete hack to emit
15279         ISA 3.0 vector indexed memory instructions, and fold the code into
15280         the normal mov<mode> patterns.
15281         (p9_vecstore_<mode>): Likewise.
15282         (vsx_mov<mode>): Add support for ISA 3.0 vector d-form
15283         instructions.
15284         (vsx_movti_64bit): Likewise.
15285         (vsx_movti_32bit): Likewise.
15286         * config/rs6000/constraints.md (wO constraint): New constraint for
15287         ISA 3.0 vector d-form support.
15288         * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Use
15289         -mpower9-dform-scalar instead of -mpower9-dform.  Add note not to
15290         include -mpower9-dform-vector until we switch over to LRA.
15291         (POWERPC_MASKS): Add -mlra. Split -mpower9-dform into two.
15292         switches, -mpower9-dform-scalar and -mpower9-dform-vector.
15293         * config/rs6000/rs6000-protos.h (quad_address_p): Add declaration.
15294         * doc/invoke.texi (RS/6000 and PowerPC Options): Add documentation
15295         for -mpower9-dform and -mlra.
15296         * doc/md.texi (wO constraint): Document wO constraint.
15298 2016-05-11  Alexander Monakov  <amonakov@ispras.ru>
15300         * genattr.c (main): Change 'rtx' to 'rtx_insn *' in prototypes of
15301         'insn_latency', 'maximal_insn_latency', 'min_insn_conflict_delay'.
15302         * genautomata.c (output_internal_insn_code_evaluation): Simplify.
15303         Move handling of non-insn arguments inline into the sole user:
15304         (output_trans_func): ...here.
15305         (output_min_insn_conflict_delay_func): Change 'rtx' to 'rtx_insn *'
15306         in emitted function prototype.
15307         (output_internal_insn_latency_func): Ditto.  Simplify.
15308         (output_internal_maximal_insn_latency_func): Ditto.  Delete
15309         always-unused argument.
15310         (output_insn_latency_func): Ditto.
15311         (output_maximal_insn_latency_func): Ditto.
15313 2016-05-11  Richard Biener  <rguenther@suse.de>
15315         PR tree-optimization/71055
15316         * tree-ssa-sccvn.c (vn_reference_lookup_3): When native-interpreting
15317         sth with precision not equal to access size verify we don't chop
15318         off bits.
15320 2016-05-11  Richard Biener  <rguenther@suse.de>
15322         PR debug/71057
15323         * dwarf2out.c (retry_incomplete_types): Set early_dwarf.
15324         (dwarf2out_finish): Move retry_incomplete_types call ...
15325         (dwarf2out_early_finish): ... here.
15327 2016-05-11  Richard Biener  <rguenther@suse.de>
15329         PR middle-end/71002
15330         * alias.c (reference_alias_ptr_type): Preserve alias-set zero
15331         if the langhook insists on it.
15332         * fold-const.c (make_bit_field_ref): Add arg for the original
15333         reference and preserve its alias-set.
15334         (decode_field_reference): Take exp by reference and adjust it
15335         to the original memory reference.
15336         (optimize_bit_field_compare): Adjust callers.
15337         (fold_truth_andor_1): Likewise.
15338         * gimplify.c (gimplify_expr): Adjust in-SSA form test.
15340 2016-05-11  Ilya Enkovich  <ilya.enkovich@intel.com>
15342         PR middle-end/70807
15343         * cfgrtl.h (delete_insn_and_edges): Now return bool.
15344         * cfgrtl.c (delete_insn_and_edges): Likewise.
15345         * config/i386/i386.c (convert_scalars_to_vector): Remove
15346         redundant code.
15347         * cse.c (cse_insn): Compute cse_cfg_altered.
15348         (delete_trivially_dead_insns): Likewise.
15349         (cse_cc_succs): Likewise.
15350         (rest_of_handle_cse): Free dominance info if required.
15351         (rest_of_handle_cse2): Likewise.
15352         (rest_of_handle_cse_after_global_opts): Likewise.
15354 2016-05-11  Alan Modra  <amodra@gmail.com>
15356         * config/rs6000/rs6000.c (is_complex_IBM_long_double,
15357         abi_v4_pass_in_fpr): New functions.
15358         (rs6000_function_arg_boundary): Exclude complex IBM long double
15359         from 64-bit alignment when ABI_V4.
15360         (rs6000_function_arg, rs6000_function_arg_advance_1,
15361         rs6000_gimplify_va_arg): Use abi_v4_pass_in_fpr.
15363 2016-05-10  Segher Boessenkool  <segher@kernel.crashing.org>
15365         PR rtl-optimization/71028
15366         * cfgcleanup.c (try_optimize_cfg): Do not flip a conditional
15367         jump with just a return in the fallthrough block if the branch
15368         block contains just a return as well.
15370 2016-05-10  Marc Glisse  <marc.glisse@inria.fr>
15372         * fold-const.c (fold_binary_loc) [(X ^ Y) & Y]: Remove and merge with...
15373         * match.pd ((X & Y) ^ Y): ... this.
15374         ((X & Y) & Y, (X | Y) | Y, (X ^ Y) ^ Y, (X & Y) & (X & Z), (X | Y)
15375         | (X | Z), (X ^ Y) ^ (X ^ Z)): New transformations.
15377 2016-05-10  David Malcolm  <dmalcolm@redhat.com>
15379         * read-md.c (require_char_ws): New function.
15380         (read_string): Simplify using require_char_ws.
15381         (handle_constants): Likewise.
15382         (handle_enum): Likewise.
15383         (handle_file): Likewise.
15384         * read-md.h (require_char_ws): New declaration.
15385         * read-rtl.c (read_conditions): Simplify using require_char_ws.
15386         (read_mapping): Likewise.
15387         (read_rtx_code): Likewise.
15388         (read_nested_rtx): Likewise.
15390 2016-05-10  James Norris  <jnorris@codesourcery.com>
15392         * config/rs6000/sysv4.h (CRTOFFLOADBEGIN): Define. Add crtoffloadbegin.o
15393         if offloading is enabled and -fopenacc or -fopenmp is specified.
15394         (CRTOFFLOADEND): Likewise.
15395         (STARTFILE_LINUX_SPEC): Add CRTOFFLOADBEGIN.
15396         (ENDFILE_LINUX_SPEC): Add CRTOFFLOADEND.
15398 2016-05-10  Uros Bizjak  <ubizjak@gmail.com>
15400         * config/i386/i386.c (legitimize_pic_address): Merge 64-bit and 32-bit
15401         gotoff_operand code paths.  Use copy_to_suggested_regs and
15402         expand_simple_binop where appropriate.  Cleanup.
15404 2016-05-10  Ilya Enkovich  <ilya.enkovich@intel.com>
15406         PR target/70799
15407         * config/i386/i386.c (dimode_scalar_to_vector_candidate_p): Allow
15408         integer constants.
15409         (dimode_scalar_chain::vector_const_cost): New.
15410         (dimode_scalar_chain::compute_convert_gain): Handle constants.
15411         (dimode_scalar_chain::convert_op): Likewise.
15412         (dimode_scalar_chain::convert_insn): Likewise.
15414 2016-05-10  Pierre-Marie de Rodat  <derodat@adacore.com>
15416         * dwarf2out.c (resolve_args_picking_1): Consider DW_OP_neg as an
15417         unary operation, not a binary one.
15419 2016-05-10  Ilya Enkovich  <ilya.enkovich@intel.com>
15421         PR middle-end/70877
15422         * tree-chkp.c (chkp_add_bounds_to_call_stmt): Handle
15423         calls with type casted fndecl.
15425 2016-05-10  Ilya Enkovich  <ilya.enkovich@intel.com>
15427         PR tree-optimization/70786
15428         * tree-chkp.c (chkp_find_bounds_1): Support WITH_SIZE_EXPR.
15429         * calls.c (initialize_argument_information): Bind bounds
15430         with corresponding args passed by reference.
15432 2016-05-10  Jakub Jelinek  <jakub@redhat.com>
15434         PR target/70927
15435         * config/i386/sse.md (<sse>_andnot<mode>3<mask_name>),
15436         *<code><mode>3<mask_name>): For !TARGET_AVX512DQ and EVEX encoding,
15437         use vp*[dq] instead of v*p[sd] instructions and adjust mode attribute
15438         accordingly.
15440 2016-05-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
15442         PR target/70963
15443         * config/rs6000/vsx.md (vsx_xvcvdpsxds_scale): Generate correct
15444         code for a zero scale factor.
15445         (vsx_xvcvdpuxds_scale): Likewise.
15447 2016-05-10  David Malcolm  <dmalcolm@redhat.com>
15449         * diagnostic-show-locus.c (layout::layout): Call show_ruler
15450         if show_ruler_p was set on the context.
15451         (layout::show_ruler): New method.
15452         * diagnostic.h (struct diagnostic_context): Add field
15453         "show_ruler_p".
15455 2016-05-10  Richard Biener  <rguenther@suse.de>
15457         PR tree-optimization/71039
15458         * tree-ssa-phiprop.c: Include tree-ssa-loop.h.
15459         (chk_uses): New function.
15460         (propagate_with_phi): Verify we can safely replicate the lhs of an
15461         aggregate assignment on all incoming edges.
15463 2016-05-10  Oleg Endo  <olegendo@gcc.gnu.org>
15465         * config/rx/rx-protos.h (is_interrupt_func, is_fast_interrupt_func):
15466         Forward declare.
15467         (rx_atomic_sequence): New class.
15468         * config/rx/rx.c (rx_print_operand): Use symbolic names for PSW bits.
15469         (is_interrupt_func, is_fast_interrupt_func): Make non-static and
15470         non-inline.
15471         (rx_atomic_sequence::rx_atomic_sequence,
15472         rx_atomic_sequence::~rx_atomic_sequence): New functions.
15473         * config/rx/rx.md (CTRLREG_PSW, CTRLREG_USP, CTRLREG_FPSW, CTRLREG_CPEN,
15474         CTRLREG_BPSW, CTRLREG_BPC, CTRLREG_ISP, CTRLREG_FINTV,
15475         CTRLREG_INTB): New constants.
15476         (FETCHOP): New code iterator.
15477         (fethcop_name, fetchop_name2): New iterator code attributes.
15478         (QIHI): New mode iterator.
15479         (atomic_exchange<mode>, atomic_exchangesi, xchg_mem<mode>,
15480         atomic_fetch_<fetchop_name>si, atomic_fetch_nandsi,
15481         atomic_<fetchop_name>_fetchsi, atomic_nand_fetchsi): New patterns.
15483 2016-05-10  Martin Liska  <mliska@suse.cz>
15485         * tree-inline.c (remap_dependence_clique): Do not remap
15486         debugging statements.
15488 2016-05-10  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
15490         * config/s390/s390.md ("*vec_cmp<insn_cmp>df_cconly")
15491         ("*fixuns_truncdfdi2_z13")
15492         ("*fixuns_trunc<FP:mode><GPR:mode>2_z196")
15493         ("*fix_truncdfdi2_bfp_z13", "*floatunsdidf2_z13")
15494         ("*extendsfdf2_z13"): Replace TARGET_Z13 with TARGET_VX.
15496 2016-05-10  Richard Biener  <rguenther@suse.de>
15498         PR tree-optimization/70497
15499         PR tree-optimization/28367
15500         * tree-ssa-sccvn.c (vn_nary_build_or_lookup): New function
15501         split out from ...
15502         (visit_reference_op_load): ... here.
15503         (vn_reference_lookup_3): Use it to handle subreg-like accesses
15504         with simplified BIT_FIELD_REFs.
15505         * tree-ssa-pre.c (eliminate_insert): Handle inserting BIT_FIELD_REFs.
15506         * tree-complex.c (extract_component): Handle BIT_FIELD_REFs
15507         correctly.
15509 2016-05-10  Pierre-Marie de Rodat  <derodat@adacore.com>
15511         * dwarf2out.c (add_abstract_origin_attribute): Adjust
15512         documentation comment.  For BLOCK nodes, add a
15513         DW_AT_abstract_origin attribute that points to the DIE generated
15514         for the origin BLOCK.
15515         (gen_lexical_block_die): Call add_abstract_origin_attribute for
15516         blocks from inlined functions.
15518 2016-05-10  Alan Modra  <amodra@gmail.com>
15520         PR target/70947
15521         * config/rs6000/rs6000.c (rs6000_expand_split_stack_prologue): Stop
15522         regrename modifying insns saving lr before __morestack call.
15523         * config/rs6000/rs6000.md (split_stack_return): Similarly for
15524         insns restoring lr after __morestack call.
15526 2016-05-09  Jakub Jelinek  <jakub@redhat.com>
15528         * config/i386/i386.md (set_got, set_got_labelled, lwp_llwpcb,
15529         lwp_lwpval<mode>3, lwp_lwpins<mode>3): Remove constraints from
15530         expanders.
15531         * config/i386/sse.md (vec_interleave_high<mode>,
15532         vec_interleave_low<mode>, <avx512>_vpermi2var<mode>3_maskz,
15533         <avx512>_vpermt2var<mode>3_maskz): Likewise.
15535 2016-05-04  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
15537         * config/rs6000/rs6000.c (rs6000_reassociation_width): Add
15538         function for TARGET_SCHED_REASSOCIATION_WIDTH to enable
15539         parallel reassociation for power8 and forward.
15541 2016-05-09  Uros Bizjak  <ubizjak@gmail.com>
15543         * config/i386/i386.md (absneg splitters with general regs): Use
15544         general_reg_operand predicate.
15545         (btsq peephole2): Use x86_64_immediate_operand to check if new
15546         value is suitable for immediate operand.  Generate emitted insn
15547         using RTL expressions.
15548         (btcq peephole2): Ditto.
15549         (btrq peephole2): Ditto.  Generate correct immediate operand
15550         for AND masking.
15552 2016-05-09  Richard Sandiford  <richard.sandiford@arm.com>
15554         * cfgexpand.c (expand_debug_expr): Fix address offset for negative
15555         bitpos.
15557 2016-05-09  Richard Sandiford  <richard.sandiford@arm.com>
15559         * tree-affine.c (wide_int_constant_multiple_p): Add missing
15560         pointer dereference.
15562 2016-05-09  Richard Biener  <rguenther@suse.de>
15564         PR tree-optimization/70985
15565         * match.pd (BIT_FIELD_REF -> (type)): Disable on GIMPLE when
15566         op0 isn't a gimple register.
15568 2016-05-09  Prachi Godbole  <prachi.godbole@imgtec.com>
15570         * config/mips/i6400.md (i6400_fpu_intadd, i6400_fpu_logic)
15571         (i6400_fpu_div, i6400_fpu_cmp, i6400_fpu_float, i6400_fpu_store)
15572         (i6400_fpu_long_pipe, i6400_fpu_logic_l, i6400_fpu_float_l)
15573         (i6400_fpu_mult): New cpu units.
15574         (i6400_msa_add_d, i6400_msa_int_add, i6400_msa_short_logic3)
15575         (i6400_msa_short_logic2, i6400_msa_short_logic, i6400_msa_move)
15576         (i6400_msa_cmp, i6400_msa_short_float2, i6400_msa_div_d)
15577         (i6400_msa_div_w, i6400_msa_div_h, i6400_msa_div_b)
15578         (i6400_msa_copy, i6400_msa_branch, i6400_fpu_msa_store)
15579         (i6400_fpu_msa_load, i6400_fpu_msa_move, i6400_msa_long_logic1)
15580         (i6400_msa_long_logic2, i6400_msa_mult, i6400_msa_long_float2)
15581         (i6400_msa_long_float4, i6400_msa_long_float5)
15582         (i6400_msa_long_float8, i6400_msa_fdiv_df)
15583         (i6400_msa_fdiv_sf): New reservations.
15584         * config/mips/p5600.md (p5600_fpu_intadd, p5600_fpu_cmp)
15585         (p5600_fpu_float, p5600_fpu_logic_a, p5600_fpu_logic_b)
15586         (p5600_fpu_div, p5600_fpu_logic, p5600_fpu_float_a)
15587         (p5600_fpu_float_b, p5600_fpu_float_c, p5600_fpu_float_d)
15588         (p5600_fpu_mult, p5600_fpu_fdiv, p5600_fpu_load): New cpu units.
15589         (msa_short_int_add, msa_short_logic, msa_short_logic_move_v)
15590         (msa_short_cmp, msa_short_float2, msa_short_logic3)
15591         (msa_short_store4, msa_long_load, msa_short_store)
15592         (msa_long_logic, msa_long_float2, msa_long_float4)
15593         (msa_long_float5, msa_long_float8, msa_long_mult)
15594         (msa_long_fdiv, msa_long_div): New reservations.
15596 2016-05-09  Robert Suchanek  <robert.suchanek@imgtec.com>
15597             Sameera Deshpande  <sameera.deshpande@imgtec.com>
15598             Matthew Fortune  <matthew.fortune@imgtec.com>
15599             Graham Stott  <graham.stott@imgtec.com>
15600             Chao-ying Fu  <chao-ying.fu@imgtec.com>
15602         * config.gcc: Add MSA header file for mips*-*-* target.
15603         * config/mips/constraints.md (YI, YC, YZ, Unv5, Uuv5, Usv5, Uuv6)
15604         (Ubv8i, Urv8):  New constraints.
15605         * config/mips/mips-ftypes.def: Add function types for MSA
15606         builtins.
15607         * config/mips/mips-modes.def (V16QI, V8HI, V4SI, V2DI, V4SF)
15608         (V2DF, V32QI, V16HI, V8SI, V4DI, V8SF, V4DF): New modes.
15609         * config/mips/mips-msa.md: New file.
15610         * config/mips/mips-protos.h
15611         (mips_split_128bit_const_insns): New prototype.
15612         (mips_msa_idiv_insns): Likewise.
15613         (mips_split_128bit_move): Likewise.
15614         (mips_split_128bit_move_p): Likewise.
15615         (mips_split_msa_copy_d): Likewise.
15616         (mips_split_msa_insert_d): Likewise.
15617         (mips_split_msa_fill_d): Likewise.
15618         (mips_expand_msa_branch): Likewise.
15619         (mips_const_vector_same_val_p): Likewise.
15620         (mips_const_vector_same_bytes_p): Likewise.
15621         (mips_const_vector_same_int_p): Likewise.
15622         (mips_const_vector_shuffle_set_p): Likewise.
15623         (mips_const_vector_bitimm_set_p): Likewise.
15624         (mips_const_vector_bitimm_clr_p): Likewise.
15625         (mips_msa_vec_parallel_const_half): Likewise.
15626         (mips_msa_output_division): Likewise.
15627         (mips_ldst_scaled_shift): Likewise.
15628         (mips_expand_vec_cond_expr): Likewise.
15629         * config/mips/mips.c (enum mips_builtin_type): Add
15630         MIPS_BUILTIN_MSA_TEST_BRANCH.
15631         (mips_gen_const_int_vector_shuffle): New prototype.
15632         (mips_const_vector_bitimm_set_p): New function.
15633         (mips_const_vector_bitimm_clr_p): Likewise.
15634         (mips_const_vector_same_val_p): Likewise.
15635         (mips_const_vector_same_bytes_p): Likewise.
15636         (mips_const_vector_same_int_p): Likewise.
15637         (mips_const_vector_shuffle_set_p): Likewise.
15638         (mips_symbol_insns): Forbid loading symbols via immediate for
15639         MSA.
15640         (mips_valid_offset_p): Limit offset to 10-bit for MSA loads and
15641         stores.
15642         (mips_valid_lo_sum_p): Forbid loadings symbols via %lo(base) for
15643         MSA.
15644         (mips_lx_address_p): Add support load indexed address for MSA.
15645         (mips_address_insns): Add calculation of instructions needed for
15646         stores and loads for MSA.
15647         (mips_const_insns): Move CONST_DOUBLE below CONST_VECTOR.  Handle
15648         CONST_VECTOR for MSA and let it fall through.
15649         (mips_ldst_scaled_shift): New function.
15650         (mips_subword_at_byte): Likewise.
15651         (mips_msa_idiv_insns): Likewise.
15652         (mips_legitimize_move): Validate MSA moves.
15653         (mips_rtx_costs): Add UNGE, UNGT, UNLE, UNLT cases.  Add
15654         calculation of costs for MSA division.
15655         (mips_split_move_p): Check if MSA moves need splitting.
15656         (mips_split_move): Split MSA moves if necessary.
15657         (mips_split_128bit_move_p): New function.
15658         (mips_split_128bit_move): Likewise.
15659         (mips_split_msa_copy_d): Likewise.
15660         (mips_split_msa_insert_d): Likewise.
15661         (mips_split_msa_fill_d): Likewise.
15662         (mips_output_move): Handle MSA moves.
15663         (mips_expand_msa_branch): New function.
15664         (mips_print_operand): Add 'E', 'B', 'w', 'v' and 'V' modifiers.
15665         Reinstate 'y' modifier.
15666         (mips_file_start): Add MSA .gnu_attribute.
15667         (mips_hard_regno_mode_ok_p): Allow TImode and 128-bit vectors in
15668         FPRs.
15669         (mips_hard_regno_nregs): Always return 1 for MSA supported mode.
15670         (mips_class_max_nregs): Add register size for MSA supported mode.
15671         (mips_cannot_change_mode_class): Allow conversion between MSA
15672         vector modes and TImode.
15673         (mips_mode_ok_for_mov_fmt_p): Allow MSA to use move.v
15674         instruction.
15675         (mips_secondary_reload_class): Force MSA loads/stores via memory.
15676         (mips_preferred_simd_mode): Add preffered modes for MSA.
15677         (mips_vector_mode_supported_p): Add MSA supported modes.
15678         (mips_autovectorize_vector_sizes): New function.
15679         (mips_msa_output_division): Likewise.
15680         (MSA_BUILTIN, MIPS_BUILTIN_DIRECT_NO_TARGET)
15681         (MSA_NO_TARGET_BUILTIN, MSA_BUILTIN_TEST_BRANCH): New macros.
15682         (CODE_FOR_msa_adds_s_b, CODE_FOR_msa_adds_s_h)
15683         (CODE_FOR_msa_adds_s_w, CODE_FOR_msa_adds_s_d)
15684         (CODE_FOR_msa_adds_u_b, CODE_FOR_msa_adds_u_h)
15685         (CODE_FOR_msa_adds_u_w, CODE_FOR_msa_adds_u_du
15686         (CODE_FOR_msa_addv_b, CODE_FOR_msa_addv_h, CODE_FOR_msa_addv_w)
15687         (CODE_FOR_msa_addv_d, CODE_FOR_msa_and_v, CODE_FOR_msa_bmnz_v)
15688         (CODE_FOR_msa_bmnzi_b, CODE_FOR_msa_bmz_v, CODE_FOR_msa_bmzi_b)
15689         (CODE_FOR_msa_bnz_v, CODE_FOR_msa_bz_v, CODE_FOR_msa_bsel_v)
15690         (CODE_FOR_msa_bseli_b, CODE_FOR_msa_ceqi_h, CODE_FOR_msa_ceqi_w)
15691         (CODE_FOR_msa_ceqi_d, CODE_FOR_msa_clti_s_b)
15692         (CODE_FOR_msa_clti_s_h, CODE_FOR_msa_clti_s_w)
15693         (CODE_FOR_msa_clti_s_d, CODE_FOR_msa_clti_u_b)
15694         (CODE_FOR_msa_clti_u_h, CODE_FOR_msa_clti_u_w)
15695         (CODE_FOR_msa_clti_u_d, CODE_FOR_msa_clei_s_b)
15696         (CODE_FOR_msa_clei_s_h, CODE_FOR_msa_clei_s_w)
15697         (CODE_FOR_msa_clei_s_d, CODE_FOR_msa_clei_u_b)
15698         (CODE_FOR_msa_clei_u_h, CODE_FOR_msa_clei_u_w)
15699         (CODE_FOR_msa_clei_u_d, CODE_FOR_msa_div_s_b)
15700         (CODE_FOR_msa_div_s_h, CODE_FOR_msa_div_s_w)
15701         (CODE_FOR_msa_div_s_d, CODE_FOR_msa_div_u_b)
15702         (CODE_FOR_msa_div_u_h, CODE_FOR_msa_div_u_w)
15703         (CODE_FOR_msa_div_u_d, CODE_FOR_msa_fadd_w, CODE_FOR_msa_fadd_d)
15704         (CODE_FOR_msa_fexdo_w, CODE_FOR_msa_ftrunc_s_w)
15705         (CODE_FOR_msa_ftrunc_s_d, CODE_FOR_msa_ftrunc_u_w)
15706         (CODE_FOR_msa_ftrunc_u_d, CODE_FOR_msa_ffint_s_w)
15707         (CODE_FOR_msa_ffint_s_d, CODE_FOR_msa_ffint_u_w)
15708         (CODE_FOR_msa_ffint_u_d, CODE_FOR_msa_fsub_w)
15709         (CODE_FOR_msa_fsub_d, CODE_FOR_msa_fmsub_d, CODE_FOR_msa_fmadd_w)
15710         (CODE_FOR_msa_fmadd_d, CODE_FOR_msa_fmsub_w, CODE_FOR_msa_fmul_w)
15711         (CODE_FOR_msa_fmul_d, CODE_FOR_msa_fdiv_w, CODE_FOR_msa_fdiv_d)
15712         (CODE_FOR_msa_fmax_w, CODE_FOR_msa_fmax_d, CODE_FOR_msa_fmax_a_w)
15713         (CODE_FOR_msa_fmax_a_d, CODE_FOR_msa_fmin_w, CODE_FOR_msa_fmin_d)
15714         (CODE_FOR_msa_fmin_a_w, CODE_FOR_msa_fmin_a_d)
15715         (CODE_FOR_msa_fsqrt_w, CODE_FOR_msa_fsqrt_d)
15716         (CODE_FOR_msa_max_s_b, CODE_FOR_msa_max_s_h)
15717         (CODE_FOR_msa_max_s_w, CODE_FOR_msa_max_s_d)
15718         (CODE_FOR_msa_max_u_b, CODE_FOR_msa_max_u_h)
15719         (CODE_FOR_msa_max_u_w, CODE_FOR_msa_max_u_d)
15720         (CODE_FOR_msa_min_s_b, CODE_FOR_msa_min_s_h)
15721         (CODE_FOR_msa_min_s_w, CODE_FOR_msa_min_s_d)
15722         (CODE_FOR_msa_min_u_b, CODE_FOR_msa_min_u_h)
15723         (CODE_FOR_msa_min_u_w, CODE_FOR_msa_min_u_d)
15724         (CODE_FOR_msa_mod_s_b, CODE_FOR_msa_mod_s_h)
15725         (CODE_FOR_msa_mod_s_w, CODE_FOR_msa_mod_s_d)
15726         (CODE_FOR_msa_mod_u_b, CODE_FOR_msa_mod_u_h)
15727         (CODE_FOR_msa_mod_u_w, CODE_FOR_msa_mod_u_d)
15728         (CODE_FOR_msa_mod_s_b, CODE_FOR_msa_mod_s_h)
15729         (CODE_FOR_msa_mod_s_w, CODE_FOR_msa_mod_s_d)
15730         (CODE_FOR_msa_mod_u_b, CODE_FOR_msa_mod_u_h)
15731         (CODE_FOR_msa_mod_u_w, CODE_FOR_msa_mod_u_d)
15732         (CODE_FOR_msa_mulv_b, CODE_FOR_msa_mulv_h, CODE_FOR_msa_mulv_w)
15733         (CODE_FOR_msa_mulv_d, CODE_FOR_msa_nlzc_b, CODE_FOR_msa_nlzc_h)
15734         (CODE_FOR_msa_nlzc_w, CODE_FOR_msa_nlzc_d, CODE_FOR_msa_nor_v)
15735         (CODE_FOR_msa_or_v, CODE_FOR_msa_ori_b, CODE_FOR_msa_nori_b)
15736         (CODE_FOR_msa_pcnt_b, CODE_FOR_msa_pcnt_h, CODE_FOR_msa_pcnt_w)
15737         (CODE_FOR_msa_pcnt_d, CODE_FOR_msa_xor_v, CODE_FOR_msa_xori_b)
15738         (CODE_FOR_msa_sll_b, CODE_FOR_msa_sll_h, CODE_FOR_msa_sll_w)
15739         (CODE_FOR_msa_sll_d, CODE_FOR_msa_slli_b, CODE_FOR_msa_slli_h)
15740         (CODE_FOR_msa_slli_w, CODE_FOR_msa_slli_d, CODE_FOR_msa_sra_b)
15741         (CODE_FOR_msa_sra_h, CODE_FOR_msa_sra_w, CODE_FOR_msa_sra_d)
15742         (CODE_FOR_msa_srai_b, CODE_FOR_msa_srai_h, CODE_FOR_msa_srai_w)
15743         (CODE_FOR_msa_srai_d, CODE_FOR_msa_srl_b, CODE_FOR_msa_srl_h)
15744         (CODE_FOR_msa_srl_w, CODE_FOR_msa_srl_d, CODE_FOR_msa_srli_b)
15745         (CODE_FOR_msa_srli_h, CODE_FOR_msa_srli_w, CODE_FOR_msa_srli_d)
15746         (CODE_FOR_msa_subv_b, CODE_FOR_msa_subv_h, CODE_FOR_msa_subv_w)
15747         (CODE_FOR_msa_subv_d, CODE_FOR_msa_subvi_b, CODE_FOR_msa_subvi_h)
15748         (CODE_FOR_msa_subvi_w, CODE_FOR_msa_subvi_d, CODE_FOR_msa_move_v)
15749         (CODE_FOR_msa_vshf_b, CODE_FOR_msa_vshf_h, CODE_FOR_msa_vshf_w)
15750         (CODE_FOR_msa_vshf_d, CODE_FOR_msa_ilvod_d, CODE_FOR_msa_ilvev_d)
15751         (CODE_FOR_msa_pckod_d, CODE_FOR_msa_pckdev_d, CODE_FOR_msa_ldi_b)
15752         (CODE_FOR_msa_ldi_hi, CODE_FOR_msa_ldi_w)
15753         (CODE_FOR_msa_ldi_d): New code_aliasing macros.
15754         (mips_builtins): Add MSA sll_b, sll_h, sll_w, sll_d, slli_b,
15755         slli_h, slli_w, slli_d, sra_b, sra_h, sra_w, sra_d, srai_b,
15756         srai_h, srai_w, srai_d, srar_b, srar_h, srar_w, srar_d, srari_b,
15757         srari_h, srari_w, srari_d, srl_b, srl_h, srl_w, srl_d, srli_b,
15758         srli_h, srli_w, srli_d, srlr_b, srlr_h, srlr_w, srlr_d, srlri_b,
15759         srlri_h, srlri_w, srlri_d, bclr_b, bclr_h, bclr_w, bclr_d,
15760         bclri_b, bclri_h, bclri_w, bclri_d, bset_b, bset_h, bset_w,
15761         bset_d, bseti_b, bseti_h, bseti_w, bseti_d, bneg_b, bneg_h,
15762         bneg_w, bneg_d, bnegi_b, bnegi_h, bnegi_w, bnegi_d, binsl_b,
15763         binsl_h, binsl_w, binsl_d, binsli_b, binsli_h, binsli_w,
15764         binsli_d, binsr_b, binsr_h, binsr_w, binsr_d, binsri_b, binsri_h,
15765         binsri_w, binsri_d, addv_b, addv_h, addv_w, addv_d, addvi_b,
15766         addvi_h, addvi_w, addvi_d, subv_b, subv_h, subv_w, subv_d,
15767         subvi_b, subvi_h, subvi_w, subvi_d, max_s_b, max_s_h, max_s_w,
15768         max_s_d, maxi_s_b, maxi_s_h, maxi_s_w, maxi_s_d, max_u_b,
15769         max_u_h, max_u_w, max_u_d, maxi_u_b, maxi_u_h, maxi_u_w,
15770         maxi_u_d, min_s_b, min_s_h, min_s_w, min_s_d, mini_s_b, mini_s_h,
15771         mini_s_w, mini_s_d, min_u_b, min_u_h, min_u_w, min_u_d, mini_u_b,
15772         mini_u_h, mini_u_w, mini_u_d, max_a_b, max_a_h, max_a_w, max_a_d,
15773         min_a_b, min_a_h, min_a_w, min_a_d, ceq_b, ceq_h, ceq_w, ceq_d,
15774         ceqi_b, ceqi_h, ceqi_w, ceqi_d, clt_s_b, clt_s_h, clt_s_w,
15775         clt_s_d, clti_s_b, clti_s_h, clti_s_w, clti_s_d, clt_u_b,
15776         clt_u_h, clt_u_w, clt_u_d, clti_u_b, clti_u_h, clti_u_w,
15777         clti_u_d, cle_s_b, cle_s_h, cle_s_w, cle_s_d, clei_s_b, clei_s_h,
15778         clei_s_w, clei_s_d, cle_u_b, cle_u_h, cle_u_w, cle_u_d, clei_u_b,
15779         clei_u_h, clei_u_w, clei_u_d, ld_b, ld_h, ld_w, ld_d, st_b, st_h,
15780         st_w, st_d, sat_s_b, sat_s_h, sat_s_w, sat_s_d, sat_u_b, sat_u_h,
15781         sat_u_w, sat_u_d, add_a_b, add_a_h, add_a_w, add_a_d, adds_a_b,
15782         adds_a_h, adds_a_w, adds_a_d, adds_s_b, adds_s_h, adds_s_w,
15783         adds_s_d, adds_u_b, adds_u_h, adds_u_w, adds_u_d, ave_s_b,
15784         ave_s_h, ave_s_w, ave_s_d, ave_u_b, ave_u_h, ave_u_w, ave_u_d,
15785         aver_s_b, aver_s_h, aver_s_w, aver_s_d, aver_u_b, aver_u_h,
15786         aver_u_w, aver_u_d, subs_s_b, subs_s_h, subs_s_w, subs_s_d,
15787         subs_u_b, subs_u_h, subs_u_w, subs_u_d, subsuu_s_b, subsuu_s_h,
15788         subsuu_s_w, subsuu_s_d, subsus_u_b, subsus_u_h, subsus_u_w,
15789         subsus_u_d, asub_s_b, asub_s_h, asub_s_w, asub_s_d, asub_u_b,
15790         asub_u_h, asub_u_w, asub_u_d, mulv_b, mulv_h, mulv_w, mulv_d,
15791         maddv_b, maddv_h, maddv_w, maddv_d, msubv_b, msubv_h, msubv_w,
15792         msubv_d, div_s_b, div_s_h, div_s_w, div_s_d, div_u_b, div_u_h,
15793         div_u_w, div_u_d, hadd_s_h, hadd_s_w, hadd_s_d, hadd_u_h,
15794         hadd_u_w, hadd_u_d, hsub_s_h, hsub_s_w, hsub_s_d, hsub_u_h,
15795         hsub_u_w, hsub_u_d, mod_s_b, mod_s_h, mod_s_w, mod_s_d, mod_u_b,
15796         mod_u_h, mod_u_w, mod_u_d, dotp_s_h, dotp_s_w, dotp_s_d,
15797         dotp_u_h, dotp_u_w, dotp_u_d, dpadd_s_h, dpadd_s_w, dpadd_s_d,
15798         dpadd_u_h, dpadd_u_w, dpadd_u_d, dpsub_s_h, dpsub_s_w, dpsub_s_d,
15799         dpsub_u_h, dpsub_u_w, dpsub_u_d, sld_b, sld_h, sld_w, sld_d,
15800         sldi_b, sldi_h, sldi_w, sldi_d, splat_b, splat_h, splat_w,
15801         splat_d, splati_b, splati_h, splati_w, splati_d, pckev_b,
15802         pckev_h, pckev_w, pckev_d, pckod_b, pckod_h, pckod_w, pckod_d,
15803         ilvl_b, ilvl_h, ilvl_w, ilvl_d, ilvr_b, ilvr_h, ilvr_w, ilvr_d,
15804         ilvev_b, ilvev_h, ilvev_w, ilvev_d, ilvod_b, ilvod_h, ilvod_w,
15805         ilvod_d, vshf_b, vshf_h, vshf_w, vshf_d, and_v, andi_b, or_v,
15806         ori_b, nor_v, nori_b, xor_v, xori_b, bmnz_v, bmnzi_b, bmz_v,
15807         bmzi_b, bsel_v, bseli_b, shf_b, shf_h, shf_w, bnz_v, bz_v,
15808         fill_b, fill_h, fill_w, fill_d, pcnt_b, pcnt_h, pcnt_w,
15809         pcnt_d, nloc_b, nloc_h, nloc_w, nloc_d, nlzc_b, nlzc_h, nlzc_w,
15810         nlzc_d, copy_s_b, copy_s_h, copy_s_w, copy_s_d, copy_u_b,
15811         copy_u_h, copy_u_w, copy_u_d, insert_b, insert_h, insert_w,
15812         insert_d, insve_b, insve_h, insve_w, insve_d, bnz_b, bnz_h,
15813         bnz_w, bnz_d, bz_b, bz_h, bz_w, bz_d, ldi_b, ldi_h, ldi_w, ldi_d,
15814         fcaf_w, fcaf_d, fcor_w, fcor_d, fcun_w, fcun_d, fcune_w, fcune_d,
15815         fcueq_w, fcueq_d, fceq_w, fceq_d, fcne_w, fcne_d, fclt_w, fclt_d,
15816         fcult_w, fcult_d, fcle_w, fcle_d, fcule_w, fcule_d, fsaf_w,
15817         fsaf_d, fsor_w, fsor_d, fsun_w, fsun_d, fsune_w, fsune_d,
15818         fsueq_w, fsueq_d, fseq_w, fseq_d, fsne_w, fsne_d, fslt_w,
15819         fslt_d, fsult_w, fsult_d, fsle_w, fsle_d, fsule_w, fsule_d,
15820         fadd_w, fadd_d, fsub_w, fsub_d, fmul_w, fmul_d, fdiv_w, fdiv_d,
15821         fmadd_w, fmadd_d, fmsub_w, fmsub_d, fexp2_w, fexp2_d, fexdo_h,
15822         fexdo_w, ftq_h, ftq_w, fmin_w, fmin_d, fmin_a_w, fmin_a_d,
15823         fmax_w, fmax_d, fmax_a_w, fmax_a_d, mul_q_h, mul_q_w, mulr_q_h,
15824         mulr_q_w, madd_q_h, madd_q_w, maddr_q_h, maddr_q_w, msub_q_h,
15825         msub_q_w, msubr_q_h, msubr_q_w, fclass_w, fclass_d, fsqrt_w,
15826         fsqrt_d, frcp_w, frcp_d, frint_w, frint_d, frsqrt_w, frsqrt_d,
15827         flog2_w, flog2_d, fexupl_w, fexupl_d, fexupr_w, fexupr_d, ffql_w,
15828         ffql_d, ffqr_w, ffqr_d, ftint_s_w, ftint_s_d, ftint_u_w,
15829         ftint_u_d, ftrunc_s_w, ftrunc_s_d, ftrunc_u_w, ftrunc_u_d,
15830         ffint_s_w, ffint_s_d, ffint_u_w, ffint_u_d, ctcmsa, cfcmsa,
15831         move_v builtins.
15832         (mips_get_builtin_decl_index): New array.
15833         (MIPS_ATYPE_QI, MIPS_ATYPE_HI, MIPS_ATYPE_V2DI, MIPS_ATYPE_V4SI)
15834         (MIPS_ATYPE_V8HI, MIPS_ATYPE_V16QI, MIPS_ATYPE_V2DF)
15835         (MIPS_ATYPE_V4SF, MIPS_ATYPE_UV2DI, MIPS_ATYPE_UV4SI)
15836         (MIPS_ATYPE_UV8HI, MIPS_ATYPE_UV16QI): New.
15837         (mips_init_builtins): Initialize mips_get_builtin_decl_index
15838         array.
15839         (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Define target
15840         hook.
15841         (mips_expand_builtin_insn): Prepare operands for
15842         CODE_FOR_msa_addvi_b, CODE_FOR_msa_addvi_h, CODE_FOR_msa_addvi_w,
15843         CODE_FOR_msa_addvi_d, CODE_FOR_msa_clti_u_b,
15844         CODE_FOR_msa_clti_u_h, CODE_FOR_msa_clti_u_w,
15845         CODE_FOR_msa_clti_u_d, CODE_FOR_msa_clei_u_b,
15846         CODE_FOR_msa_clei_u_h, CODE_FOR_msa_clei_u_w,
15847         CODE_FOR_msa_clei_u_d, CODE_FOR_msa_maxi_u_b,
15848         CODE_FOR_msa_maxi_u_h, CODE_FOR_msa_maxi_u_w,
15849         CODE_FOR_msa_maxi_u_d, CODE_FOR_msa_mini_u_b,
15850         CODE_FOR_msa_mini_u_h, CODE_FOR_msa_mini_u_w,
15851         CODE_FOR_msa_mini_u_d, CODE_FOR_msa_subvi_b,
15852         CODE_FOR_msa_subvi_h, CODE_FOR_msa_subvi_w, CODE_FOR_msa_subvi_d,
15853         CODE_FOR_msa_ceqi_b, CODE_FOR_msa_ceqi_h, CODE_FOR_msa_ceqi_w,
15854         CODE_FOR_msa_ceqi_d, CODE_FOR_msa_clti_s_b,
15855         CODE_FOR_msa_clti_s_h, CODE_FOR_msa_clti_s_w,
15856         CODE_FOR_msa_clti_s_d, CODE_FOR_msa_clei_s_b,
15857         CODE_FOR_msa_clei_s_h, CODE_FOR_msa_clei_s_w,
15858         CODE_FOR_msa_clei_s_d, CODE_FOR_msa_maxi_s_b,
15859         CODE_FOR_msa_maxi_s_h, CODE_FOR_msa_maxi_s_w,
15860         CODE_FOR_msa_maxi_s_d, CODE_FOR_msa_mini_s_b,
15861         CODE_FOR_msa_mini_s_h, CODE_FOR_msa_mini_s_w,
15862         CODE_FOR_msa_mini_s_d, CODE_FOR_msa_andi_b, CODE_FOR_msa_ori_b,
15863         CODE_FOR_msa_nori_b, CODE_FOR_msa_xori_b, CODE_FOR_msa_bmzi_b,
15864         CODE_FOR_msa_bmnzi_b, CODE_FOR_msa_bseli_b, CODE_FOR_msa_fill_b,
15865         CODE_FOR_msa_fill_h, CODE_FOR_msa_fill_w, CODE_FOR_msa_fill_d,
15866         CODE_FOR_msa_ilvl_b, CODE_FOR_msa_ilvl_h, CODE_FOR_msa_ilvl_w,
15867         CODE_FOR_msa_ilvl_d, CODE_FOR_msa_ilvr_b, CODE_FOR_msa_ilvr_h,
15868         CODE_FOR_msa_ilvr_w, CODE_FOR_msa_ilvr_d, CODE_FOR_msa_ilvev_b,
15869         CODE_FOR_msa_ilvev_h, CODE_FOR_msa_ilvev_w, CODE_FOR_msa_ilvod_b,
15870         CODE_FOR_msa_ilvod_h, CODE_FOR_msa_ilvod_w, CODE_FOR_msa_pckev_b,
15871         CODE_FOR_msa_pckev_h, CODE_FOR_msa_pckev_w, CODE_FOR_msa_pckod_b,
15872         CODE_FOR_msa_pckod_h, CODE_FOR_msa_pckod_w, CODE_FOR_msa_slli_b,
15873         CODE_FOR_msa_slli_h, CODE_FOR_msa_slli_w, CODE_FOR_msa_slli_d,
15874         CODE_FOR_msa_srai_b, CODE_FOR_msa_srai_h, CODE_FOR_msa_srai_w,
15875         CODE_FOR_msa_srai_d, CODE_FOR_msa_srli_b, CODE_FOR_msa_srli_h,
15876         CODE_FOR_msa_srli_w, CODE_FOR_msa_srli_d, CODE_FOR_msa_insert_b,
15877         CODE_FOR_msa_insert_h, CODE_FOR_msa_insert_w,
15878         CODE_FOR_msa_insert_d, CODE_FOR_msa_insve_b,
15879         CODE_FOR_msa_insve_h, CODE_FOR_msa_insve_w, CODE_FOR_msa_insve_d,
15880         CODE_FOR_msa_shf_b, CODE_FOR_msa_shf_h, CODE_FOR_msa_shf_w,
15881         CODE_FOR_msa_shf_w_f, CODE_FOR_msa_vshf_b, CODE_FOR_msa_vshf_h,
15882         CODE_FOR_msa_vshf_w, CODE_FOR_msa_vshf_d.
15883         (mips_expand_builtin): Add case for MIPS_BULTIN_MSA_TEST_BRANCH.
15884         (mips_set_compression_mode): Disallow MSA with MIPS16 code.
15885         (mips_option_override): -mmsa requires -mfp64 and -mhard-float.
15886         These are set implicitly and an error is reported if overridden.
15887         (mips_expand_builtin_msa_test_branch): New function.
15888         (mips_expand_msa_shuffle): Likewise.
15889         (MAX_VECT_LEN): Increase maximum length of a vector to 16 bytes.
15890         (TARGET_SCHED_REASSOCIATION_WIDTH): Define target hook.
15891         (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Likewise.
15892         (mips_expand_vec_unpack): Add support for MSA.
15893         (mips_expand_vector_init): Likewise.
15894         (mips_expand_vi_constant): Use CONST0_RTX (element_mode)
15895         instead of const0_rtx.
15896         (mips_msa_vec_parallel_const_half): New function.
15897         (mips_gen_const_int_vector): Likewise.
15898         (mips_gen_const_int_vector_shuffle): Likewise.
15899         (mips_expand_msa_cmp): Likewise.
15900         (mips_expand_vec_cond_expr): Likewise.
15901         * config/mips/mips.h
15902         (TARGET_CPU_CPP_BUILTINS): Add __mips_msa and __mips_msa_width.
15903         (OPTION_DEFAULT_SPECS): Ignore --with-fp-32 if -mmsa is
15904         specified.
15905         (ASM_SPEC): Pass mmsa and mno-msa to the assembler.
15906         (ISA_HAS_MSA): New macro.
15907         (UNITS_PER_MSA_REG): Likewise.
15908         (BITS_PER_MSA_REG): Likewise.
15909         (BIGGEST_ALIGNMENT): Redefine using ISA_HAS_MSA.
15910         (MSA_REG_FIRST): New macro.
15911         (MSA_REG_LAST): Likewise.
15912         (MSA_REG_NUM): Likewise.
15913         (MSA_REG_P): Likewise.
15914         (MSA_REG_RTX_P): Likewise.
15915         (MSA_SUPPORTED_MODE_P): Likewise.
15916         (HARD_REGNO_CALL_PART_CLOBBERED): Redefine using TARGET_MSA.
15917         (ADDITIONAL_REGISTER_NAMES): Add named registers $w0-$w31.
15918         * config/mips/mips.md: Include mips-msa.md.
15919         (alu_type): Add simd_add.
15920         (mode): Add V2DI, V4SI, V8HI, V16QI, V2DF, V4SF.
15921         (type): Add simd_div, simd_fclass, simd_flog2, simd_fadd,
15922         simd_fcvt, simd_fmul, simd_fmadd, simd_fdiv, simd_bitins,
15923         simd_bitmov, simd_insert, simd_sld, simd_mul, simd_fcmp,
15924         simd_fexp2, simd_int_arith, simd_bit, simd_shift, simd_splat,
15925         simd_fill, simd_permute, simd_shf, simd_sat, simd_pcnt,
15926         simd_copy, simd_branch, simd_cmsa, simd_fminmax, simd_logic,
15927         simd_move, simd_load, simd_store.  Choose "multi" for moves
15928         for "qword_mode".
15929         (qword_mode): New attribute.
15930         (insn_count): Add instruction count for quad moves.
15931         Increase the count for MIPS SIMD division.
15932         (UNITMODE): Add UNITMODEs for vector types.
15933         (addsub): New code iterator.
15934         * config/mips/mips.opt (mmsa): New option.
15935         * config/mips/msa.h: New file.
15936         * config/mips/mti-elf.h: Don't infer -mfpxx if -mmsa is
15937         specified.
15938         * config/mips/mti-linux.h: Likewise.
15939         * config/mips/predicates.md
15940         (const_msa_branch_operand): New constraint.
15941         (const_uimm3_operand): Likewise.
15942         (const_uimm4_operand): Likewise.
15943         (const_uimm5_operand): Likewise.
15944         (const_uimm8_operand): Likewise.
15945         (const_imm5_operand): Likewise.
15946         (aq10b_operand): Likewise.
15947         (aq10h_operand): Likewise.
15948         (aq10w_operand): Likewise.
15949         (aq10d_operand): Likewise.
15950         (const_m1_operand): Likewise.
15951         (reg_or_m1_operand): Likewise.
15952         (const_exp_2_operand): Likewise.
15953         (const_exp_4_operand): Likewise.
15954         (const_exp_8_operand): Likewise.
15955         (const_exp_16_operand): Likewise.
15956         (const_vector_same_val_operand): Likewise.
15957         (const_vector_same_simm5_operand): Likewise.
15958         (const_vector_same_uimm5_operand): Likewise.
15959         (const_vector_same_uimm6_operand): Likewise.
15960         (const_vector_same_uimm8_operand): Likewise.
15961         (par_const_vector_shf_set_operand): Likewise.
15962         (reg_or_vector_same_val_operand): Likewise.
15963         (reg_or_vector_same_simm5_operand): Likewise.
15964         (reg_or_vector_same_uimm6_operand): Likewise.
15965         * doc/extend.texi (MIPS SIMD Architecture Functions): New
15966         section.
15967         * doc/invoke.texi (-mmsa): Document new option.
15969 2016-05-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15971         * configure.ac (enable_vtable_verify): Handle --enable-vtable-verify.
15972         * configure: Regenerate.
15973         * config.in: Regenerate.
15974         * gcc.c (VTABLE_VERIFICATION_SPEC) [!ENABLE_VTABLE_VERIFY]: Error
15975         on -fvtable-verify.
15976         * config/sol2.h [!ENABLE_VTABLE_VERIFY] (STARTFILE_VTV_SPEC): Define.
15977         (ENDFILE_VTV_SPEC): Define.
15979 2016-05-09  Kaushik Phatak  <kaushik.phatak@kpit.com>
15981         * config/rl78/rl78.c (rl78_expand_prologue): Save the MDUC related
15982         registers in all interrupt handlers if necessary.
15983         (rl78_option_override): Add warning.
15984         (MUST_SAVE_MDUC_REGISTERS): New macro.
15985         (rl78_expand_epilogue): Restore the MDUC registers if necessary.
15986         * config/rl78/rl78.c (check_mduc_usage): New function.
15987         (mduc_regs): New structure to hold MDUC register data.
15988         * config/rl78/rl78.md (is_g13_muldiv_insn): New attribute.
15989         (mulsi3_g13): Add is_g13_muldiv_insn attribute.
15990         (udivmodsi4_g13): Add is_g13_muldiv_insn attribute.
15991         (mulhi3_g13): Add is_g13_muldiv_insn attribute.
15992         * config/rl78/rl78.opt (msave-mduc-in-interrupts): New option.
15993         * doc/invoke.texi (RL78 Options): Add -msave-mduc-in-interrupts.
15995 2016-05-09  Bin Cheng  <bin.cheng@arm.com>
15997         * tree-if-conv.c (tree-ssa-loop.h): Include header file.
15998         (tree-ssa-loop-niter.h): Ditto.
15999         (idx_within_array_bound, ref_within_array_bound): New functions.
16000         (ifcvt_memrefs_wont_trap): Check if array ref is within bound.
16001         Factor out check on writable base object to ...
16002         (base_object_writable): ... here.
16004 2016-05-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16006         * config/arm/arm.md (probe_stack): Add modes to set source
16007         and destination.
16009 2016-05-09  Bernd Schmidt  <bschmidt@redhat.com>
16011         * regrename.c (base_reg_class_for_rename): New static function.
16012         (scan_rtx_address, scan_rtx): Use it instead of base_reg_class.
16014 2016-05-08  Jan Hubicka  <hubicka@ucw.cz>
16016         * cgraph.c (thunk_adjust): Export.
16017         * cgraphclones.c (cgraph_node::create_clone): Clone thunk info.
16018         * cgraphunit.c (thunk_adjust): Export.
16019         (cgraph_node::assemble_thunks_and_aliases): Do not assemble inlined
16020         thunks.
16021         * ipa-inline-analyssi.c (compute_inline_parameters): Thunks are
16022         inlinable.
16023         * tree-inline.c (expand_call_inline): Expand thunks inline.
16025 2016-05-08  Uros Bizjak  <ubizjak@gmail.com>
16027         PR target/70998
16028         * config/i386/sse.md (*sse2_vd_cvtsd2ss): New insn pattern.
16029         (*sse2_vd_cvtss2sd): Ditto.
16030         * config/i386/i386.md
16031         (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_truncate df->sf splitter):
16032         Generate *sse2_vd_cvtsd2ss pattern.
16033         (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_extend sf->df splitter):
16034         Generate *sse2_vd_cvtss2sd pattern.
16036 2016-05-08  Oleg Endo  <olegendo@gcc.gnu.org>
16038         * config/sh/sh.h (GET_SH_ARG_CLASS): Convert macro into ...
16039         * config/sh/sh.c (get_sh_arg_class): ... this new function.  Update its
16040         users.
16042 2016-05-08  Oleg Endo  <olegendo@gcc.gnu.org>
16044         * config/sh/sh-protos.h (sh_media_register_for_return): Remove.
16045         * config/sh/sh.c: Define and declare variables on first use throughout
16046         the file.
16047         (current_function_interrupt): Change to bool type.
16048         (frame_insn): Rename to emit_frame_insn and update users.
16049         (push_regs): Use bool for 'interrupt_handler' argument.
16050         (save_schedule_s): Remove.
16051         (TARGET_ASM_UNALIGNED_DI_OP, TARGET_ASM_ALIGNED_DI_OP): Remove.
16052         (sh_option_override): Don't nullify targetm.asm_out.aligned_op.di and
16053         targetm.asm_out.unaligned_op.di.
16054         (gen_far_branch): Remove redundant forward declaration.
16055         (sh_media_register_for_return, MAX_SAVED_REGS, save_entry_s, save_entry,
16056         MAX_TEMPS, save_schedule_ssave_schedule): Remove.
16057         (sh_set_return_address, sh_function_ok_for_sibcall,
16058         scavenge_reg): Update comments.
16059         (sh_builtin_saveregs): Use TRAGET_FPU_ANY condition.
16060         (sh2a_get_function_vector_number, sh2a_function_vector_p): Use for loop.
16061         (sh_attr_renesas_p): Remove unnecessary parentheses.
16062         (branch_dest): Simplify.
16063         * config/sh/sh.h (sh_args): Remove byref, byref_regs, stack_regs fields.
16064         Change force_mem, prototype_p, outgoing, renesas_abi fields to bool.
16065         (CUMULATIVE_ARGS): Change macro to typedef.
16066         (current_function_interrupt): Change to bool type.
16067         (sh_arg_class, sh_args, CUMULATIVE_ARGS, current_function_interrupt):
16068         Surround with __cplusplus ifdef.
16069         (sh_compare_op0, sh_compare_op1): Remove.
16070         (EPILOGUE_USES): Use TARGET_FPU_ANY condition.
16072 2016-05-07  Jim Wilson  <jim.wilson@linaro.org>
16074         * config/arm/arm.md: (arch): Add neon.
16075         (arch_enabled): Return yes for arch neon when TARGET_NEON.
16076         * config/arm/vfp.md (movdf_vfp): Add w/G as alternative 3.  Add
16077         neon_move as type for alt 3.  Add arch attr enabling alt 3 for neon.
16078         Emit vmov.i64 for alt 3.  Renumber alternatives 3 to 8.  Adjust
16079         attributes for alt renumbering.  Mark alt 3 as non-predicable.
16080         (thumb2_movdf_vfp): Likewise.
16082 2016-05-07  Uros Bizjak  <ubizjak@gmail.com>
16084         * config/i386/i386.md (*addqi_1): Add preferred_for_speed attribute
16085         to disparage alternatives 3 and 4 for TARGET_PARTIAL_REG_STALL targets.
16086         (*andqi_1): Add preferred_for_speed attribute to disparage
16087         alternative 2 for TARGET_PARTIAL_REG_STALL targets.
16088         (*<code>qi_1): Ditto.
16089         (*one_cmplqi2_1): Add preferred_for_speed attribute to disparage
16090         alternative 1 for TARGET_PARTIAL_REG_STALL targets.
16091         (*ashlqi3_1): Ditto.
16092         (*swap<mode>): Merge from *swap<mode>_1 and *swap<mode>_2 patterns.
16093         Add preferred_for_size attribute to disparage alternative 0 and
16094         preferred_for_speed attribute to disparage alternative 1 for
16095         TARGET_PARTIAL_REG_STALL targets.
16097 2016-05-07  Tom de Vries  <tom@codesourcery.com>
16099         PR tree-optimization/70956
16100         * graphite-scop-detection.c (build_cross_bb_scalars_def): Handle NULL
16101         def.
16103 2016-05-07  Oleg Endo  <olegendo@gcc.gnu.org>
16105         * config/sh/sh-protos.h (sh_cbranch_distance): Declare new function.
16106         * config/sh/sh.c (sh_cbranch_distance): Implement it.
16107         * config/sh/sh.md (branch_zero): Remove define_attr.
16108         (define_delay): Disable delay slot if branch distance is one insn.
16110 2016-05-06  Uros Bizjak  <ubizjak@gmail.com>
16112         * config/i386/i386.md (LEAMODE): New mode attribute.
16113         (plus to LEA splitter): Rewrite splitter using LEAMODE mode attribute.
16114         (ashift to LEA splitter): Rewrte splitter using SWI mode iterator
16115         and LEAMODE mode attribute.  Use VOIDmode const_0_to_3_operand as
16116         operand 2 predicate.
16117         (*lea<mode>_general_2): Use VOIDmode for const248_operand.
16118         (*lea<mode>_general_3): Ditto.
16119         (*lea<mode>_general_4): Use VOIDmode for const_0_to_3_operand.
16121 2016-05-06  Jakub Jelinek  <jakub@redhat.com>
16123         * genmddump.c (main): Convert argv from char ** to const char **.
16125 2016-05-06  David Malcolm  <dmalcolm@redhat.com>
16127         * coretypes.h (OVERRIDE): New macro.
16128         (FINAL): New macro.
16130 2016-05-06  Eric Botcazou  <ebotcazou@adacore.com>
16132         * tree-ssa-coalesce.c (gimple_can_coalesce_p): In the optimized case,
16133         allow coalescing if the types are compatible.
16135 2016-05-06  David Malcolm  <dmalcolm@redhat.com>
16137         * pass_manager.h (pass_manager::register_pass_name): New method.
16138         (pass_manager::get_pass_by_name): New method.
16139         (pass_manager::create_pass_tab): New method.
16140         (pass_manager::m_name_to_pass_map): New field.
16141         * passes.c (name_to_pass_map): Delete global in favor of field
16142         "m_name_to_pass_map" of pass_manager.
16143         (register_pass_name): Rename from a function to...
16144         (pass_manager::register_pass_name): ...this method, updating
16145         for renaming of global "name_to_pass_map" to field
16146         "m_name_to_pass_map".
16147         (create_pass_tab): Rename from a function to...
16148         (pass_manager::create_pass_tab): ...this method, updating
16149         for renaming of global "name_to_pass_map" to field.
16150         (get_pass_by_name): Rename from a function to...
16151         (pass_manager::get_pass_by_name): ...this method.
16152         (enable_disable_pass): Convert use of get_pass_by_name to
16153         a method call, locating the pass_manager singleton.
16155 2016-05-06  David Malcolm  <dmalcolm@redhat.com>
16157         * genattr-common.c (main): Convert argv from char ** to const char **.
16158         * genattr.c (main): Likewise.
16159         * genattrtab.c (main): Likewise.
16160         * genautomata.c (initiate_automaton_gen): Likewise.
16161         (main): Likewise.
16162         * gencodes.c (main): Likewise.
16163         * genconditions.c (main): Likewise.
16164         * genconfig.c (main): Likewise.
16165         * genconstants.c (main): Likewise.
16166         * genemit.c (main): Likewise.
16167         * genenums.c (main): Likewise.
16168         * genextract.c (main): Likewise.
16169         * genflags.c (main): Likewise.
16170         * genmddeps.c (main): Likewise.
16171         * genopinit.c (main): Likewise.
16172         * genoutput.c (main): Likewise.
16173         * genpeep.c (main): Likewise.
16174         * genpreds.c (main): Likewise.
16175         * genrecog.c (main): Likewise.
16176         * gensupport.c (init_rtx_reader_args_cb): Likewise.
16177         (init_rtx_reader_args): Likewise.
16178         * gensupport.h (init_rtx_reader_args_cb): Likewise.
16179         (init_rtx_reader_args): Likewise.
16180         * gentarget-def.c (main): Likewise.
16181         * read-md.c (read_md_files): Likewise.
16182         * read-md.h (read_md_files): Likewise.
16184 2016-05-06  Uros Bizjak  <ubizjak@gmail.com>
16186         * config/i386/i386.md (int cmove peephole2s): Use general_reg_operand
16187         instead of register_and_not_any_fp_reg_operand as operand 0 predicate.
16188         * config/i386/predicates.md (register_and_not_any_fp_reg_operand):
16189         Remove unused predicate.
16190         (register_and_not_fp_reg_operand): Ditto.
16192 2016-05-06  Martin Liska  <mliska@suse.cz>
16194         * tree-if-conv.c (ifcvt_split_critical_edges): Use auto_vec
16195         instead of vec as the vector is local to the function.
16197 2016-05-06  Jakub Jelinek  <jakub@redhat.com>
16199         * config/i386/sse.md (*<code>v8hi3, *<code>v16qi3): Add
16200         avx512bw alternative.
16202         * config/i386/sse.md (<mask_codefor>ashr<mode>3<mask_name>): Move
16203         before the ashr<mode>3 pattern.
16205         * config/i386/sse.md (*avx2_pmaddwd, *sse2_pmaddwd): Use
16206         v instead of x in vex or maybe_vex alternatives, use
16207         maybe_evex instead of vex in prefix.
16209         * config/i386/sse.md (*vec_extractv4sf_0, *sse4_1_extractps,
16210         *vec_extractv4sf_mem, vec_extract_lo_v16hi, vec_extract_hi_v16hi,
16211         vec_extract_lo_v32qi, vec_extract_hi_v32qi): Use v instead of x
16212         in vex or maybe_vex alternatives, use maybe_evex instead of vex
16213         in prefix.
16215         * config/i386/sse.md (*vec_concatv2sf_sse4_1, *vec_concatv4sf): Use
16216         v instead of x in vex or maybe_vex alternatives, use
16217         maybe_evex instead of vex in prefix.
16219         * config/i386/sse.md (sse_shufps_<mode>, sse_storehps, sse_loadhps,
16220         sse_storelps, sse_movss, avx2_vec_dup<mode>, avx2_vec_dupv8sf_1,
16221         sse2_shufpd_<mode>, sse2_storehpd, sse2_storelpd, sse2_loadhpd,
16222         sse2_loadlpd, sse2_movsd): Use v instead of x in vex or maybe_vex
16223         alternatives, use maybe_evex instead of vex in prefix.
16225         * config/i386/sse.md (vec_interleave_lowv4sf,
16226         *vec_interleave_highv2df, *vec_interleave_lowv2df): Use
16227         v instead of x in vex or maybe_vex alternatives, use
16228         maybe_evex instead of vex in prefix.
16230         * config/i386/sse.md (sse_movhlps, sse_movlhps): Use
16231         v instead of x in vex or maybe_vex alternatives, use
16232         maybe_evex instead of vex in prefix.
16234         * config/i386/sse.md (*avx_cvtpd2dq256_2, *avx_cvtps2pd256_2): Use
16235         v constraint instead of x.
16237 2016-05-06  Nathan Sidwell  <nathan@codesourcery.com>
16239         * gimple.c (gimple_call_same_target_p): Unique functions are eq.
16240         * tree-ssa-tail-merge.c (same_succ::equal): Check pointer eq
16241         equality first.
16243 2016-05-06  Richard Biener  <rguenther@suse.de>
16245         PR tree-optimization/70948
16246         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
16247         Properly clobber all fields of va_list for __builtin_va_start.
16249 2016-05-06  Yuri Rumyantsev  <ysrumyan@gmail.com>
16251         PR debug/70935
16252         * tree-ssa-loop-unswitch.c (find_loop_guard): Reject guard edge with
16253         loop latch destination.
16255 2016-05-06  Martin Liska  <mliska@suse.cz>
16257         * tree-ssa-uninit.c: Apply manual changes
16258         to the GNU coding style.
16259         (prune_uninit_phi_opnds): Rename from
16260         prune_uninit_phi_opnds_in_unrealizable_paths.
16262 2016-05-06  Oleg Endo  <olegendo@gcc.gnu.org>
16264         * config/sh/sh.opt (madjust-unroll, minvalid-symbols, msoft-atomic,
16265         mspace): Remove deprecated options.
16266         * doc/invoke.texi (SH options): Remove -mspace.
16268 2016-05-06  Oleg Endo  <olegendo@gcc.gnu.org>
16270         * config/sh/sh.md (ic_invalidate_line_sh4a): Fix insn length.
16272 2016-05-06  Oleg Endo  <olegendo@gcc.gnu.org>
16274         * config/sh/sh.md (*cmpeqsi_t): Remove combine insn pattern and similar
16275         corresponding combine split pattern.
16277 2016-05-06  Oleg Endo  <olegendo@gcc.gnu.org>
16279         PR target/58219
16280         * config/sh/predicates.md (long_displacement_mem_operand): New.
16281         * config/sh/sh.md (movsi_i): Allow for SH2A, disallow for any FPU.
16282         Add movi20, movi20s alternatives.  Adjust length attribute for
16283         alternatives.
16284         (movsi_ie): Allow for any FPU.  Adjust length attribute for
16285         alternatives.
16286         (movsi_i_lowpart): Add movi20, movi20s alternatives.  Adjust length
16287         attribute for alternatives.
16288         (*mov<mode>): Use long_displacement_mem_operand for length attribute.
16289         (*movdi_i, movdf_k, movdf_i4, movsf_i, movsf_ie, movsf_ie_ra): Adjust
16290         length attribute for alternatives.
16292 2016-05-06  Richard Biener  <rguenther@suse.de>
16294         PR tree-optimization/70960
16295         * tree-if-conv.c (ifcvt_walk_pattern_tree): Handle non-SSA ops.
16297 2016-05-06  Oleg Endo  <olegendo@gcc.gnu.org>
16299         PR target/52933
16300         * config/sh/sh.md (*cmp_div0s_7, *cmp_div0s_8): Add div0s variants.
16301         * config/sh/sh.c (sh_rtx_costs): Add another div0s case.
16303 2016-05-06  Marek Polacek  <polacek@redhat.com>
16305         PR sanitizer/70875
16306         * ubsan.c (get_ubsan_type_info_for_type): Remove assert.
16308 2016-05-06  Oleg Endo  <olegendo@gcc.gnu.org>
16310         PR target/54089
16311         * config/sh/sh.md (*rotcr): Add another variant.
16313 2016-05-06  Richard Biener  <rguenther@suse.de>
16315         PR middle-end/70931
16316         * dwarf2out.c (native_encode_initializer): Skip zero-sized fields.
16318 2016-05-06  Richard Biener  <rguenther@suse.de>
16320         PR middle-end/70941
16321         * fold-const.c (split_tree): Always convert to the original type
16322         before negating.
16324 2016-05-06  Richard Biener  <rguenther@suse.de>
16326         * fwprop.c (fwprop): Remove duplicate cleanup_cfg call.
16327         (fwprop_addr): Likewise.
16329 2016-05-06  Uros Bizjak  <ubizjak@gmail.com>
16331         PR target/70873
16332         * config/i386/i386-protos.h (ix86_standard_x87sse_constant_load_p):
16333         New prototype.
16334         * config/i386/i386.c (ix86_standard_x87sse_constant_load_p): New.
16335         * config/i386/i386.md (push mem splitter): Use find_constant_src in
16336         the splitter condition.
16337         (FP load splitter): Use ix86_standard_x87sse_constant_load_p in
16338         the splitter condition.
16339         (FP float_extend load splitter): Ditto.
16341 2016-05-05  Uros Bizjak  <ubizjak@gmail.com>
16343         * config/i386/i386.md (peehole2 patterns): Change true_regnum
16344         to REGNO in all peephole2 patterns.
16345         (post-reload splitters): Change true_regnum to REGNO in
16346         post-reload splitters.
16347         (zero_extend splitters): Use general_reg_operand and
16348         nonimmediate_gr_operand predicates.
16350 2016-05-05  Jakub Jelinek  <jakub@redhat.com>
16352         * config/i386/sse.md (<avx512>_fmadd_<mode>_mask3<round_name>): Use
16353         v constraint instead of x.
16355 2016-05-05  Alan Modra  <amodra@gmail.com>
16357         PR target/68662
16358         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Don't
16359         set OPTION_MASK_RELOCATABLE when flag_pic == 2.  Set
16360         TARGET_NO_FP_IN_TOC for -mrelocatable.
16361         (MINIMAL_TOC_SECTION_ASM_OP): Remove redundant
16362         TARGET_RELOCATABLE test.
16363         (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
16364         (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
16365         * config/rs6000/linux64.h (MINIMAL_TOC_SECTION_ASM_OP): Likewise.
16366         (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
16367         (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
16368         * config/rs6000/freebsd64.h (MINIMAL_TOC_SECTION_ASM_OP): Likewise.
16369         (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
16370         (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
16371         * config/rs6000/predicates.md (easy_fp_constant): Likewise.
16372         * config/rs6000/rs6000.c (rs6000_elf_output_toc_section_asm_op):
16373         Likewise.
16374         (rs6000_assemble_integer): Update TARGET_RELOCATABLE test.
16375         (rs6000_stack_info): Likewise.
16376         (rs6000_elf_asm_out_constructor): Likewise.
16377         (rs6000_elf_asm_out_destructor): Likewise.
16378         (rs6000_elf_declare_function_name): Likewise.
16379         * config/rs6000/rs6000.md (load_toc_aix_di): Likewise.
16380         * config/rs6000/rs6000.h (MASK_RELOCATABLE, MASK_MINIMAL_TOC):
16381         Don't define.
16383 2016-05-05  Alan Modra  <amodra@gmail.com>
16385         * config/rs6000/rs6000.c (rs6000_frame_related): Rewrite.
16387 2016-05-05  Alan Modra  <amodra@gmail.com>
16389         * config/rs6000/rs6000.c (rs6000_savres_strategy): Don't use
16390         out-of-line gpr restore for one or two regs if that would add
16391         a save of lr.
16393 2016-05-04  Uros Bizjak  <ubizjak@gmail.com>
16395         PR target/70873
16396         * config/i386/i386.md
16397         (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_extend sf->df peephole2):
16398         Change to post-epilogue_completed late splitter.  Use sse_reg_operand
16399         as operand 0 predicate.
16400         (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_truncate df->sf peephole2):
16401         Ditto.
16402         (TARGET_SSE_PARTIAL_REG_DEPENDENCY float {si,di}->{sf,df} peephole2):
16403         Ditto.  Emit the pattern using RTX.
16405         (TARGET_USE_VECTOR_FP_CONVERTS float_extend sf->df splitter):
16406         Use sse_reg_opreand as operand 0 predicate.  Do not use true_regnum in
16407         the post-reload splitter.  Use lowpart_subreg instead of gen_rtx_REG.
16408         (TARGET_USE_VECTOR_FP_CONVERTS float_truncate df->sf splitter):
16409         Ditto.
16410         (TARGET_USE_VECTOR_CONVERTS float si->{sf,df} splitter): Use
16411         sse_reg_operand as operand 0 predicate.
16413         (TARGET_SPLIT_MEM_OPND_FOR_FP_CONVERTS float_extend sf->df peephole2):
16414         Use sse_reg_opreand as operand 0 predicate.  Use lowpart_subreg
16415         instead of gen_rtx_REG.
16416         (TARGET_SPLIT_MEM_OPND_FOR_FP_CONVERTS float_truncate sf->df peephole2):
16417         Ditto.
16419 2016-05-04  Segher Boessenkool  <segher@kernel.crashing.org>
16421         * function.c (emit_use_return_register_into_block): Delete.
16422         (gen_return_pattern): Delete.
16423         (emit_return_into_block): Delete.
16424         (active_insn_between): Delete.
16425         (convert_jumps_to_returns): Delete.
16426         (emit_return_for_exit): Delete.
16427         (thread_prologue_and_epilogue_insns): Delete all code dealing with
16428         simple_return for shrink-wrapped blocks.
16429         * shrink-wrap.c (try_shrink_wrapping): Insert simple_return at the
16430         end of blocks that need one.
16431         (get_unconverted_simple_return): Delete.
16432         (convert_to_simple_return): Delete.
16433         * shrink-wrap.c (get_unconverted_simple_return): Delete declaration.
16434         (convert_to_simple_return): Ditto.
16436 2016-05-04  Segher Boessenkool  <segher@kernel.crashing.org>
16438         * cfgcleanup.c (bb_is_just_return): New function.
16439         (try_optimize_cfg): Simplify jumps to return, branches to return,
16440         and branches around return.
16442 2016-05-04  Segher Boessenkool  <segher@kernel.crashing.org>
16444         * cfgcleanup.c (try_simplify_condjump): Don't try to simplify a
16445         branch to a return.
16447 2016-05-04  Jakub Jelinek  <jakub@redhat.com>
16449         PR c++/70906
16450         PR c++/70933
16451         * tree-core.h (enum operand_equal_flag): Add OEP_HASH_CHECK.
16452         * tree.c (inchash::add_expr): If !IS_EXPR_CODE_CLASS (tclass),
16453         assert flags & OEP_HASH_CHECK, instead of asserting it
16454         never happens.  Handle TARGET_EXPR.
16455         * fold-const.c (operand_equal_p): For hash verification,
16456         or in OEP_HASH_CHECK into flags.
16458 2016-05-04  Eric Botcazou  <ebotcazou@adacore.com>
16460         * tree-ssa-coalesce.c (gimple_can_coalesce_p): Fix reference in head
16461         comment.
16462         (compute_samebase_partition_bases): Fix typo.
16464 2016-05-04  Jakub Jelinek  <jakub@redhat.com>
16466         * config/i386/sse.md (vec_interleave_highv8sf,
16467         vec_interleave_lowv8sf, vec_interleave_highv4df,
16468         vec_interleave_lowv4df): Remove constraints from expanders.
16470         * config/i386/sse.md (sse2_movq128): Use v constraint instead of x.
16472 2016-05-04  Jan Hubicka  <hubicka@ucw.cz>
16474         * tree-inline.c (expand_call_inline): Fix path dealing with
16475         making lhs of call statement undefined.
16477 2016-05-04  Jan Hubicka  <hubicka@ucw.cz>
16479         * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases):
16480         Check availability on NODE, too.
16481         * cgraph.h (symtab_node::call_for_symbol_and_aliases): Likewise.
16482         (cgraph_node::call_for_symbol_and_aliases): Likewise.
16483         (varpool_node::call_for_symbol_and_aliase): Likewise.
16484         * ipa-pure-const.c (add_new_function): Analyze all bodies.
16485         (propagate_pure_const): Propagate across interposable functions, too.
16486         (skip_function_for_local_pure_const): Do not skip interposable bodies
16487         with aliases.
16488         (pass_local_pure_const::execute): Update.
16490 2016-05-04  Marek Polacek  <polacek@redhat.com>
16492         * doc/invoke.texi: Document -Wdangling-else.
16494 2016-05-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>
16496         * config.gcc: Error out when conflicting multilib is detected.  Do not
16497         loop over multilibs since no combination is legal.
16499 2016-05-04  Alan Modra  <amodra@gmail.com>
16501         * config/rs6000/rs6000.h (PIC_OFFSET_TABLE_REGNUM): Correct.
16502         * config/rs6000/sysv4.h (TARGET_TOC): Simplify.
16503         * config/rs6000/rs6000.c (rs6000_elf_output_toc_section_asm_op):
16504         Align .toc.
16506 2016-05-04  Matthew Fortune  <matthew.fortune@imgtec.com>
16508         * config/mips/mips-cpus.def (p5600): Avoid IMADD by default.
16509         Clean up p5600 comments.
16511 2016-05-04  Richard Biener  <rguenther@suse.de>
16513         * match.pd: Add BIT_FIELD_REF canonicalizations and vector
16514         constructor simplifications.
16515         * fold-const.c (fold_ternary_loc): Remove duplicate functionality here.
16517 2016-05-04  Oleg Endo  <olegendo@gcc.gnu.org>
16519         * config/sh/predicates (post_inc_mem, pre_dec_mem): New predicates.
16520         * config/sh/sh-protos.h (sh_find_set_of_reg): Return null result if
16521         result.set_rtx is null instead of aborting.
16522         * config/sh/sh.h (USE_LOAD_POST_INCREMENT, USE_STORE_PRE_DECREMENT):
16523         Always enable.
16524         (USE_LOAD_PRE_DECREMENT, USE_STORE_POST_INCREMENT): Enable for SH2A.
16525         * config/sh/sh.md (*extend<mode>si2_predec, *mov<mode>_load_predec,
16526         *mov<mode>_store_postinc): New patterns.
16528 2016-05-04  Marc Glisse  <marc.glisse@inria.fr>
16530         * match.pd ((A | B) & (A | C)): Generalize to BIT_XOR_EXPR.  Mark
16531         as commutative.  Check both conversions are NOP.
16532         ((A & B) OP (C & B)): Remove.
16534 2016-05-04  Alan Modra  <amodra@gmail.com>
16536         * combine.c (simplify_set): Correct WORD_REGISTER_OPERATIONS test.
16538 2016-05-04  Alan Modra  <amodra@gmail.com>
16540         PR target/70866
16541         * config/rs6000/rs6000.c (rs6000_stack_info): Don't set cr_save_p
16542         when cr2,3,4 are all fixed regs.
16544 2016-05-04  Bernd Schmidt  <bschmidt@redhat.com>
16546         PR rtl-optimization/57193
16547         * opts.c (default_options_table): Revert OPT_frename_registers change.
16548         * doc/invoke.texi (-frename-registers, -O2): Likewise.
16550 2016-05-03  Martin Sebor  <msebor@redhat.com>
16552         PR c++/66561
16553         * builtins.c (fold_builtin_FILE): New function.
16554         (fold_builtin_FUNCTION, fold_builtin_LINE): New functions.
16555         (fold_builtin_0): Call them.
16556         * gimplify.c (gimplify_call_expr): Remove the handling of
16557         BUILT_IN_FILE, BUILT_IN_FUNCTION, and BUILT_IN_LINE.
16559         PR c++/66561
16560         * doc/extend.texi (Other Builtins): Update __builtin_FILE,
16561         __builtin_FUNCTION, and __builtin_LINE to reflect they yield
16562         constants.
16564         PR c++/66639
16565         * doc/extend.texi (Function Names as Strings): Update __func__,
16566         __FUNCTION__, __PRETTY_FUNCTION__ to reflect they evaluate to
16567         constants.
16569 2016-05-03  Jakub Jelinek  <jakub@redhat.com>
16570             Richard Biener  <rguenther@suse.de>
16572         PR tree-optimization/70916
16573         * tree-if-conv.c: Include cfganal.h.
16574         (pass_if_conversion::execute): Call connect_infinite_loops_to_exit
16575         and remove_fake_exit_edges around the optimization pass.
16577 2016-05-03  Jan Hubicka  <hubicka@ucw.cz>
16579         * cgraph.c (symbol_table::create_edge): Set inline_failed.
16580         (cgraph_edge::make_direct): Likewise.
16581         (cgraph_edge::dump_edge_flags): Dump call_stmt_cannot_inline_p.
16582         * cgraphclones.c (duplicate_thunk_for_node): Set inline_failed.
16583         * cif-code.def (CIF_LTO_MISMATCHED_DECLARATIONS): New code
16584         (CIF_THUNK): New code.
16585         * ipa-inline-analysis.c (initialize_inline_failed): Preserve
16586         CIF_FINAL_ERROR codes; do not deal with call_stmt_cannot_inline_p.
16587         (compute_inline_parameters): Set inline_failed for thunks.
16588         (inline_analyze_function): Cleanup.
16589         * ipa-inline.c (can_inline_edge_p): Do not deal with
16590         call_stmt_cannot_inline_p.
16591         (can_early_inline_edge_p): Likewise.
16592         (early_inliner): Initialize inline_failed.
16593         * lto-cgraph.c (lto_output_edge): Sanity check inline_failed.
16595 2016-05-03  Uros Bizjak  <ubizjak@gmail.com>
16597         * config/i386/predicates.md (x87nonimm_ssenomem_operand): Rename
16598         from nonimm_ssenomem_operand.
16599         (nonimm_ssenomem_operand): New predicate.
16600         * config/i386/i386.md (extendsfdf2): Use nonimm_ssenomem_operand
16601         as operand 0 predicate.
16602         (*extendsfdf2): Merge from *extendsfdf2_mixed and *extendsfdf2_i387.
16603         Disable unsupported alternatives using "enabled" attribute.
16604         Use register_ssemem_operand as operand 0 predicate.
16605         (*fop_<mode>_1): Use x87nonimm_ssenomem_operand as operand 1 predicate.
16607 2016-05-03  Marek Polacek  <polacek@redhat.com>
16609         PR c/70859
16610         * input.c (expansion_point_location): New function.
16611         * input.h (expansion_point_location): Declare.
16613 2016-05-03  Pierre-Marie de Rodat  <derodat@adacore.com>
16615         * dwarf2out.c (resolve_args_picking_1): Replace the frame_offset
16616         occurence with frame_offset_ ones.
16618 2016-05-03  Alan Modra  <amodra@gmail.com>
16620         PR rtl-optimization/70890
16621         * ira.c (combine_and_move_insns): When moving def_insn, remove
16622         equivs on use_insn.
16624 2016-05-03  Dominik Vogt  <vogt@linux.vnet.ibm.com>
16626         * config/s390/s390.md ("*r<noxa>sbg_<mode>_sll")
16627         ("*r<noxa>sbg_<mode>_srl"): New define_insns.
16628         ("*r<noxa>sbg_<mode>_srl_bitmask"): Rename by adding "_bitmask".
16629         ("*r<noxa>sbg_<mode>_sll_bitmask"): Likewise.
16631 2016-05-03  Alan Modra  <amodra@gmail.com>
16633         * config/rs6000/rs6000.c (rs6000_savres_strategy): Correct condition
16634         for SAVE_MULTIPLE/STORE_MULTIPLE.
16636 2016-05-03  Jakub Jelinek  <jakub@redhat.com>
16638         * config/i386/i386.md (*truncdfsf_mixed, *truncdfsf_i387,
16639         *truncxfsf2_mixed, *truncxfdf2_mixed): Use v constraint instead of x.
16641 2016-05-03  Richard Biener  <rguenther@suse.de>
16643         * gimplify.h (get_initialized_tmp_var): Add allow_ssa parameter
16644         default true.
16645         (gimplify_arg): Likewise.
16646         * gimplify.c (gimplify_expr): Add overload with allow_ssa parameter,
16647         re-writing the result to a decl if required.
16648         (internal_get_tmp_var): Add allow_ssa parameter
16649         and override into_ssa with it.
16650         (get_formal_tmp_var): Adjust.
16651         (get_initialized_tmp_var): Add allow_ssa parameter.
16652         (gimplify_arg): Add allow_ssa parameter and avoid generating
16653         SSA names for the result false.
16654         (gimplify_call_expr): If the call may return twice do not
16655         gimplify parameters into SSA.
16656         (prepare_gimple_addressable): Do not allow an SSA name as temporary.
16657         (gimplify_modify_expr): Adjust assert.  For noreturn calls
16658         with a SSA name LHS adjust its def.
16659         (gimplify_save_expr): Do not allow an SSA name as save-expr result.
16660         (gimplify_one_sizepos): Do not allow an SSA name as a sizepos.
16661         (gimplify_body): Init GIMPLE SSA data structures and gimplify into-SSA.
16662         (gimplify_scan_omp_clauses): Make sure OMP_CLAUSE_SIZE is not
16663         an SSA name.  Likewise for OMP_CLAUSE_REDUCTION operands.
16664         (gimplify_omp_for): Likewise for OMP_CLAUSE_DECL.  Likewise
16665         for OMP_FOR_COND,  OMP_FOR_INCR and OMP_CLAUSE_LINEAR_STEP.
16666         (optimize_target_teams): Do not allow SSA names for clause operands.
16667         (gimplify_expr): Likewise for where we mark the result addressable.
16668         * passes.def (pass_init_datastructures): Remove.
16669         * tree-into-ssa.c (mark_def_sites): Ignore existing SSA names.
16670         (rewrite_stmt): Likewise.
16671         * tree-inline.c (initialize_cfun): Properly transfer SSA state.
16672         (replace_locals_op): Replace SSA names.
16673         (copy_gimple_seq_and_replace_locals): Init src_cfun.
16674         * gimple-low.c (lower_builtin_setjmp): Deal with SSA.
16675         * cgraph.c (release_function_body): Free CFG annotations only
16676         when we have a CFG.  Simplify.
16677         * gimple-fold.c (gimplify_and_update_call_from_tree): Use
16678         force_gimple_operand instead of get_initialized_tmp_var.
16679         * tree-pass.h (make_pass_init_datastructures): Remove.
16680         * tree-ssa.c (execute_init_datastructures): Remove.
16681         (pass_data_init_datastructures): Likewise.
16682         (class pass_init_datastructures): Likewise.
16683         (make_pass_init_datastructures): Likewise.
16684         * omp-low.c (create_omp_child_function): Init SSA data structures.
16685         (grid_expand_target_grid_body): Likewise.
16686         * tree-cfg.c (move_block_to_fn): Double-check the DEF is an SSA
16687         name before adding it to names_to_release.
16688         (remove_bb): Always release SSA defs.
16689         * tree-ssa-ccp.c (get_default_value): Check SSA_NAME_VAR
16690         before dereferencing it.
16691         * cgraphunit.c (init_lowered_empty_function): Always
16692         int SSA data structures.
16693         * tree-ssanames.c (release_defs): Remove assert that we are in
16694         SSA form.
16695         * trans-mem.c (diagnose_tm_1): Handle SSA name function.
16697 2016-05-03  Jakub Jelinek  <jakub@redhat.com>
16698             Uros Bizjak  <ubizjak@gmail.com>
16700         PR rtl-optimization/70467
16701         * config/i386/predicates.md (x86_64_hilo_int_operand,
16702         x86_64_hilo_general_operand): New predicates.
16703         * config/i386/constraints.md (Wd): New constraint.
16704         * config/i386/i386.md (mode attr di): Use Wd instead of e.
16705         (general_hilo_operand): New mode attr.
16706         (add<mode>3, sub<mode>3): Use <general_hilo_operand>
16707         instead of <general_operand>.
16708         (*add<dwi>3_doubleword, *sub<dwi>3_doubleword): Use
16709         x86_64_hilo_general_operand instead of <general_operand>.
16711 2016-05-03  Jakub Jelinek  <jakub@redhat.com>
16713         PR tree-optimization/70916
16714         * tree-if-conv.c (constant_or_ssa_name): Removed.
16715         (fold_build_cond_expr): Use is_gimple_val instead of
16716         constant_or_ssa_name.
16718         PR tree-optimization/70916
16719         * tree-vect-patterns.c (vect_recog_mask_conversion_pattern): Give up
16720         if COND_EXPR rhs1 is neither SSA_NAME nor COMPARISON_CLASS_P.
16722         PR target/49244
16723         * tree-ssa-ccp.c: Include stor-layout.h and optabs-query.h.
16724         (optimize_atomic_bit_test_and): New function.
16725         (pass_fold_builtins::execute): Use it.
16726         * optabs.def (atomic_bit_test_and_set_optab,
16727         atomic_bit_test_and_complement_optab,
16728         atomic_bit_test_and_reset_optab): New optabs.
16729         * internal-fn.def (ATOMIC_BIT_TEST_AND_SET,
16730         ATOMIC_BIT_TEST_AND_COMPLEMENT, ATOMIC_BIT_TEST_AND_RESET): New ifns.
16731         * builtins.h (expand_ifn_atomic_bit_test_and): New prototype.
16732         * builtins.c (expand_ifn_atomic_bit_test_and): New function.
16733         * internal-fn.c (expand_ATOMIC_BIT_TEST_AND_SET,
16734         expand_ATOMIC_BIT_TEST_AND_COMPLEMENT,
16735         expand_ATOMIC_BIT_TEST_AND_RESET): New functions.
16736         * doc/md.texi (atomic_bit_test_and_set@var{mode},
16737         atomic_bit_test_and_complement@var{mode},
16738         atomic_bit_test_and_reset@var{mode}): Document.
16739         * config/i386/sync.md (atomic_bit_test_and_set<mode>,
16740         atomic_bit_test_and_complement<mode>,
16741         atomic_bit_test_and_reset<mode>): New expanders.
16742         (atomic_bit_test_and_set<mode>_1,
16743         atomic_bit_test_and_complement<mode>_1,
16744         atomic_bit_test_and_reset<mode>_1): New insns.
16746 2016-05-03  Richard Sandiford  <richard.sandiford@arm.com>
16748         PR rtl-optimization/70687
16749         * combine.c (change_zero_ext): Check for scalar modes.  Use wide_int
16750         instead of unsigned HOST_WIDE_INT.
16752 2016-05-03  Bernd Schmidt  <bschmidt@redhat.com>
16754         PR rtl-optimization/44281
16755         * hard-reg-set.h (struct target_hard_regs): New field
16756         x_fixed_nonglobal_reg_set.
16757         (fixed_nonglobal_reg_set): New macro.
16758         * reginfo.c (init_reg_sets_1): Initialize it.
16759         * ira.c (setup_alloc_regs): Use fixed_nonglobal_reg_set instead
16760         of fixed_reg_set.
16761         * df-scan.c (df_insn_refs_collect): Asms may reference global regs.
16763 2016-05-03  Bin Cheng  <bin.cheng@arm.com>
16765         PR tree-optimization/56541
16766         * doc/invoke.texi (@item max-tree-if-conversion-phi-args): New item.
16767         * params.def (PARAM_MAX_TREE_IF_CONVERSION_PHI_ARGS): new param.
16768         * tree-if-conv.c (MAX_PHI_ARG_NUM): new macro.
16769         (any_complicated_phi): new static variable.
16770         (aggressive_if_conv): delete.
16771         (if_convertible_phi_p): support phis with more than two arguments.
16772         (if_convertible_bb_p): remvoe check on aggressive_if_conv and
16773         critical pred edges.
16774         (ifcvt_split_critical_edges): support phis with more than two
16775         arguments by checking new parameter.  only split critical edges
16776         if needed.
16777         (tree_if_conversion): handle simd pragma marked loop using new
16778         local variable aggressive_if_conv.  check any_complicated_phi.
16780 2016-05-03  Bin Cheng  <bin.cheng@arm.com>
16782         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Check depends_on
16783         before using it.
16785 2016-05-03  Bin Cheng  <bin.cheng@arm.com>
16787         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Don't clobber
16788         cbase.
16790 2016-05-03  Oleg Endo  <olegendo@gcc.gnu.org>
16792         * config/sh/sh.md (udivsi3, divsi3, mulsi3): Simplify.
16793         (mulhisi3, umulhisi3, (smulsi3_highpart, umulsi3_highpart): Convert to
16794         define_insn_and_split.
16795         (mulsi3_i): New define_insn_and_split.
16796         (mulsi3_call): Convert to define_insn.
16797         (mulsidi3, mulsidi3_compact, umulsidi3, umulsidi3_compact):
16798         Remove constraints.
16800 2016-05-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
16802         * machmode.h (mode_complex): Add support to give the complex mode
16803         for a given mode.
16804         (GET_MODE_COMPLEX_MODE): Likewise.
16805         * stor-layout.c (layout_type): For COMPLEX_TYPE, use the mode
16806         stored by build_complex_type and gfc_build_complex_type instead of
16807         trying to figure out the appropriate mode based on the size. Raise
16808         an assertion error, if the type was not set.
16809         * genmodes.c (struct mode_data): Add field for the complex type of
16810         the given type.
16811         (blank_mode): Likewise.
16812         (make_complex_modes): Remember the complex mode created in the
16813         base type.
16814         (emit_mode_complex): Write out the mode_complex array to map a
16815         type mode to the complex version.
16816         (emit_insn_modes_c): Likewise.
16817         * tree.c (build_complex_type): Set the complex type to use before
16818         calling layout_type.
16819         * config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Add
16820         support for __float128 complex datatypes.
16821         (rs6000_hard_regno_mode_ok): Likewise.
16822         (rs6000_setup_reg_addr_masks): Likewise.
16823         (rs6000_complex_function_value): Likewise.
16824         * config/rs6000/rs6000.h (FLOAT128_IEEE_P): Likewise.
16825         __float128 and __ibm128 complex.
16826         (FLOAT128_IBM_P): Likewise.
16827         (ALTIVEC_ARG_MAX_RETURN): Likewise.
16828         * doc/extend.texi (Additional Floating Types): Document that
16829         -mfloat128 must be used to enable __float128.  Document complex
16830         __float128 and __ibm128 support.
16832 2016-05-02  Jakub Jelinek  <jakub@redhat.com>
16834         PR target/49244
16835         * gimple.c (gimple_builtin_call_types_compatible_p): Allow
16836         char/short arguments promoted to int because of promote_prototypes.
16838 2016-05-02  Uros Bizjak  <ubizjak@gmail.com>
16840         * config/i386/predicates.md (register_ssemem_operand): New predicate.
16841         * config/i386/i386.md (*cmpi<FPCMP:unord><MODEF:mode>): Merge from
16842         *cmpi<FPCMP:unord><MODEF:mode>_mixed and
16843         *cmpi<FPCMP:unord><X87MODEF:mode>_i387.  Disable unsupported
16844         alternatives using "enabled" attribute.  Use register_ssemem_operand
16845         as operand 1 predicate.
16846         (*cmpi<unord>xf_i387): Split XFmode pattern from
16847         *cmpi<FPCMP:unord><X87MODEF:mode>_i387.
16848         (*absneg<mode>2): Merge from *absneg<mode>2_mixed and
16849         *absneg<mode>2_i387.  Disable unsupported alternatives using
16850         "enabled" attribute.
16851         (*absnegxf2_i387): Split XFmode pattern from *absneg<mode>2_i387.
16853 2016-05-02  Nathan Sidwell  <nathan@codesourcery.com>
16855         * omp-low.c (lower_oacc_head_tail): Assert there is at least one
16856         marker.
16857         (oacc_loop_process): Check mask for loop termination.
16859 2016-05-02  Jan Hubicka  <hubicka@ucw.cz>
16861         * cif-code.def (CIF_THUNK): Add.
16862         * ipa-inline-analsysis.c (evaluate_conditions_for_known_args): Revert
16863         accidental change.
16865 2016-05-02  Jan Hubicka  <hubicka@ucw.cz>
16867         * ipa-inline-analysis.c (reset_inline_summary): Clear fp_expressions
16868         (dump_inline_summary): Dump it.
16869         (fp_expression_p): New predicate.
16870         (estimate_function_body_sizes): Use it.
16871         (inline_merge_summary): Merge fp_expressions.
16872         (inline_read_section): Read fp_expressions.
16873         (inline_write_summary): Write fp_expressions.
16874         * ipa-inline.c (can_inline_edge_p): Permit inlining across fp math
16875         codegen boundary if either caller or callee is !fp_expressions.
16876         * ipa-inline.h (inline_summary): Add fp_expressions.
16877         * ipa-inline-transform.c (inline_call): When inlining !fp_expressions
16878         to fp_expressions be sure the fp generation flags are updated.
16880 2016-05-02  Jakub Jelinek  <jakub@redhat.com>
16882         PR rtl-optimization/70467
16883         * cse.c (cse_insn): Handle no-op MEM moves after folding.
16885         PR rtl-optimization/70467
16886         * ipa-pure-const.c (check_call): Handle internal calls even in
16887         ipa mode like in local mode.
16889 2016-05-02  Bernd Edlinger  <bernd.edlinger@hotmail.de>
16891         * doc/install.texi: Document supported in-tree gmp/mpfr/mpc versions.
16893 2016-05-02  Marc Glisse  <marc.glisse@inria.fr>
16895         * match.pd (X u< X, X u> X): New transformations.
16897 2016-05-02  Marc Glisse  <marc.glisse@inria.fr>
16899         * flag-types.h (enum warn_strict_overflow_code): Move ...
16900         * coretypes.h: ... here.
16901         * fold-const.h (fold_overflow_warning): Declare.
16902         * fold-const.c (fold_overflow_warning): Make non-static.
16903         (fold_comparison): Move the transformation of X +- C1 CMP C2
16904         into X CMP C2 -+ C1 ...
16905         * match.pd: ... here.
16906         * gimple-fold.c (fold_stmt_1): Protect with
16907         fold_defer_overflow_warnings.
16909 2016-05-02  Nathan Sidwell  <nathan@codesourcery.com>
16911         * omp-low.c (struct oacc_loop): Add 'inner' field.
16912         (new_oacc_loop_raw): Initialize it to zero.
16913         (oacc_loop_fixed_partitions): Initialize it.
16914         (oacc_loop_auto_partitions): Partition outermost loop to outermost
16915         available partitioning.
16917 2016-05-02  Claudiu Zissulescu  <claziss@synopsys.com>
16919         * config/arc/arc.md (mulsidi3): Change operand 0 predicate to
16920         register_operand.
16921         (umulsidi3): Likewise.
16922         (indirect_jump): Fix jump instruction assembly patterns.
16924 2016-05-02  Thomas Schwinge  <thomas@codesourcery.com>
16926         PR target/70860
16927         * config/nvptx/nvptx.c (nvptx_libcall_value): Handle NULL cfun.
16928         (nvptx_function_value): Assert non-NULL cfun.
16930 2016-05-02  Eric Botcazou  <ebotcazou@adacore.com>
16932         PR rtl-optimization/70886
16933         * sched-deps.c (estimate_dep_weak): Canonicalize cselib values.
16935         * cselib.h (rtx_equal_for_cselib_1): Declare.
16936         (rtx_equal_for_cselib_p: New inline function.
16937         * cselib.c (rtx_equal_for_cselib_p): Delete.
16938         (rtx_equal_for_cselib_1): Make public.
16940 2016-05-02  Uros Bizjak  <ubizjak@gmail.com>
16942         * config/i386/predicates.md (nonimm_ssenomem_operand): New predicate.
16943         (register_mixssei387nonimm_operand): Remove predicate.
16944         * config/i386/i386.md (*fop_<mode>_comm): Merge from
16945         *fop_<mode>_comm_mixed and *fop_<mode>_comm_i387.  Disable unsupported
16946         alternatives using "enabled" attribute.  Also check X87_ENABLE_ARITH
16947         for TARGET_MIX_SSE_I387 alternatives.
16948         (*fop_<mode>_1): Merge from *fop_<mode>_1_mixed and *fop_<mode>_1_i387.
16949         Disable unsupported alternatives using "enabled" attribute.  Use
16950         nonimm_ssenomem_operand as operand 1 predicate.  Also check
16951         X87_ENABLE_ARITH for TARGET_MIX_SSE_I387 alternatives.
16953 2016-05-02  Richard Sandiford  <richard.sandiford@arm.com>
16955         * tree.c (cst_and_fits_in_hwi): Simplify.
16957 2016-05-02  Richard Sandiford  <richard.sandiford@arm.com>
16959         * tree.h (wi::to_wide): New function.
16960         * expr.c (expand_expr_real_1): Use wi::to_wide.
16961         * fold-const.c (int_const_binop_1): Likewise.
16962         (extract_muldiv_1): Likewise.
16964 2016-05-02  Richard Sandiford  <richard.sandiford@arm.com>
16966         * wide-int.h: Update offset_int and widest_int documentation.
16967         (WI_SIGNED_SHIFT_RESULT): New macro.
16968         (wi::binary_shift): Define signed_shift_result_type for
16969         shifts on offset_int- and widest_int-like types.
16970         (generic_wide_int): Support <<= and >>= if << and >> are supported.
16971         * tree.h (int_bit_position): Use shift operators instead of wi::
16972          shifts.
16973         * alias.c (adjust_offset_for_component_ref): Likewise.
16974         * expr.c (get_inner_reference): Likewise.
16975         * fold-const.c (fold_comparison): Likewise.
16976         * gimple-fold.c (fold_nonarray_ctor_reference): Likewise.
16977         * gimple-ssa-strength-reduction.c (restructure_reference): Likewise.
16978         * tree-dfa.c (get_ref_base_and_extent): Likewise.
16979         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Likewise.
16980         (stmt_kills_ref_p): Likewise.
16981         * tree-ssa-ccp.c (bit_value_binop_1): Likewise.
16982         * tree-ssa-math-opts.c (find_bswap_or_nop_load): Likewise.
16983         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
16984         (ao_ref_init_from_vn_reference): Likewise.
16986 2016-05-02  Richard Sandiford  <richard.sandiford@arm.com>
16988         * wide-int.h: Update offset_int and widest_int documentation.
16989         (WI_SIGNED_BINARY_PREDICATE_RESULT): New macro.
16990         (wi::binary_traits): Allow ordered comparisons between offset_int and
16991         offset_int, between widest_int and widest_int, and between either
16992         of these types and basic C types.
16993         (operator <, <=, >, >=): Define for the same combinations.
16994         * tree.h (tree_int_cst_lt): Use comparison operators instead
16995         of wi:: comparisons.
16996         (tree_int_cst_le): Likewise.
16997         * gimple-fold.c (fold_array_ctor_reference): Likewise.
16998         (fold_nonarray_ctor_reference): Likewise.
16999         * gimple-ssa-strength-reduction.c (record_increment): Likewise.
17000         * tree-affine.c (aff_comb_cannot_overlap_p): Likewise.
17001         * tree-parloops.c (try_transform_to_exit_first_loop_alt): Likewise.
17002         * tree-sra.c (completely_scalarize): Likewise.
17003         * tree-ssa-alias.c (stmt_kills_ref_p): Likewise.
17004         * tree-ssa-reassoc.c (extract_bit_test_mask): Likewise.
17005         * tree-vrp.c (extract_range_from_binary_expr_1): Likewise.
17006         (check_for_binary_op_overflow): Likewise.
17007         (search_for_addr_array): Likewise.
17008         * ubsan.c (ubsan_expand_objsize_ifn): Likewise.
17010 2016-05-02  Claudiu Zissulescu  <claziss@synopsys.com>
17012         * config/arc/arc.c (arc_preferred_simd_mode): Remove enum keyword.
17013         (arc_save_restore): Likewise.
17014         (arc_dwarf_register_span): Likewise.
17015         (arc_output_pic_addr_const): Initialize suffix variable.
17017 2016-05-02  Martin Liska  <mliska@suse.cz>
17019         * symbol-summary.h (function_summary::function_summary):
17020         Remove checking assert for all cgraph nodes.
17021         (function_summary::get): Check summary_uid.
17022         (symtab_insertion): Check summary_uid.
17024 2016-05-02  Claudiu Zissulescu  <claziss@synopsys.com>
17026         * config/arc/arc-protos.h (compact_memory_operand_p): Declare.
17027         * config/arc/arc.c (arc_output_commutative_cond_exec): Consider
17028         bmaskn instruction.
17029         (arc_dwarf_register_span): Remove enum keyword.
17030         (compact_memory_operand_p): New function.
17031         * config/arc/arc.h (reg_class): Add code density register classes.
17032         (REG_CLASS_NAMES): Likewise.
17033         (REG_CLASS_CONTENTS): Likewise.
17034         * config/arc/arc.md (*movqi_insn): Add code density instructions.
17035         (*movhi_insn, *movsi_insn, *movsf_insn): Likewise.
17036         (*extendhisi2_i, andsi3_i, cmpsi_cc_insn_mixed): Likewise.
17037         (*cmpsi_cc_c_insn, *movsi_ne): Likewise.
17038         * config/arc/constraints.md (C2p, Uts, Cm1, Cm3, Ucd): New
17039         constraints.
17040         (h, Rcd, Rsd, Rzd): New register constraints.
17041         (T): Use compact_memory_operand_p function.
17042         * config/arc/predicates.md (compact_load_memory_operand): Remove.
17044 2016-05-02  Oleg Endo  <olegendo@gcc.gnu.org>
17046         * config/sh/sh.md (*negnegt, *movtt): Remove.
17048 2016-05-02  Marek Polacek  <polacek@redhat.com>
17049             Tom de Vries  <tom@codesourcery.com>
17051         PR tree-optimization/70700
17052         * tree-ssa-structalias.c (dump_pred_graph): Fix getting varinfo for ids
17053         bigger than FIRST_REF_NODE.
17055 2016-05-02  Oleg Endo  <olegendo@gcc.gnu.org>
17057         PR target/52898
17058         * config/sh/sh.c (sh_option_override): Remove TARGET_CBRANCHDI4,
17059         TARGET_CMPEQDI_T.
17060         (prepare_cbranch_operands): Don't use scratch register.  Assume that
17061         function is used when pseudos can be created.
17062         (expand_cbranchdi4): Likewise.  Remove unused TARGET_CMPEQDI_T paths.
17063         * config/sh/sh.md (cbranchsi4): Allow only when pseudos can be created.
17064         (cbranchdi4, cbranchdi4_i): Simplify to single cbranchdi4
17065         define_expand.  Allow it only when pseudos can be created.
17066         * config/sh/sh.opt (mcbranchdi, mcmpeqdi): Delete.
17068 2016-05-01  Uros Bizjak  <ubizjak@gmail.com>
17070         * config/i386/constraints.md (BC): Only allow -1 operands.
17071         * config/i386/sse.md (mov<mode>_internal): Add (v,C) alternative.
17072         Add "enabled" attribute.  Update XI mode attribute calculation.
17073         * config/i386/i386.md (*movxi_internal_avx512f): Add (v,C) alternative.
17074         (*movoi_internal_avx): Update XI mode attribute calculation.
17075         (*movti_internal): Ditto.
17077 2016-05-01  Oleg Endo  <olegendo@gcc.gnu.org>
17079         * config/sh/sh.md (push, pop, ic_invalidate_line, cstoresi4, cstoredi4,
17080         cstoresf4, cstoredf4, fix_truncsfsi2): Remove constraints.
17082 2016-05-01  Eric Botcazou  <ebotcazou@adacore.com>
17084         * config/rs6000/rs6000.c (altivec_expand_lv_builtin): Do not use switch
17085         statement on instruction code.  Remove trailing spaces.
17086         (altivec_expand_stv_builtin): Likewise.
17088 2016-05-01  Oleg Endo  <olegendo@gcc.gnu.org>
17090         * config/sh/sh.h (TARGET_SH4): Remove and use default implementation.
17091         (TARGET_FPU_DOUBLE): Simplify.
17092         (BASE_ARG_REG, DOUBLE_TYPE_SIZE, OPTIMIZE_MODE_SWITCHING): Replace
17093         'TARGET_SH4 || TARGET_SH2A_DOUBLE' conditions with 'TARGET_FPU_DOUBLE'.
17094         * config/sh/sh.c: Replace 'TARGET_SH4 || TARGET_SH2A_DOUBLE' conditions
17095         with 'TARGET_FPU_DOUBLE'.
17096         * config/sh/sh.md: Likewise.
17098 2016-05-01  Yoshinori Sato  <ysato@users.sourceforge.jp>
17100         * config/sh/linux.h (SH_DIV_STRATEGY_DEFAULT,
17101         SH_DIV_STR_FOR_SIZE): Remove.
17102         * config/sh/netbsd-elf.h (SH_DIV_STRATEGY_DEFAULT,
17103         SH_DIV_STR_FOR_SIZE): Remove.
17105 2016-05-01  Oleg Endo  <olegendo@gcc.gnu.org>
17107         * config/sh/predicates.md (any_register_operand, zero_extend_operand,
17108         logical_reg_operand): Delete.
17109         (arith_operand, arith_reg_dest, arith_or_int_operand, cmpsi_operand,
17110         arith_reg_or_0_operand, arith_reg_or_0_or_1_operand, logical_operand,
17111         logical_and_operand, movsrc_no_disp_mem_operand): Rewrite using
17112         match_operand and match_test.
17113         (sh_const_vec, sh_1el_vec): Remove redundant checks.  Declare local
17114         variables on their first use.  Return bool values.
17115         * config/sh/sh.h (LOAD_EXTEND_OP): Update comment.
17116         * config/sh/sh.md (andsi3, iorsi3): Use arith_reg_dest for result and
17117         arith_reg_operand for input operand.  Remove empty constraints.
17118         (xorsi3): Delete.
17119         (*xorsi3_compact): Rename to xorsi3.
17120         (zero_extend<mode>si2): Use arith_reg_operand for input operand.
17121         (*zero_extend<mode>si2_disp_mem): Update comment.
17122         (mov_nop): Delete.
17124 2016-04-30  Oleg Endo  <olegendo@gcc.gnu.org>
17126         * config/sh/t-sh: Remove SH5 support.
17127         * config.gcc: Likewise.
17128         * configure: Likewise.
17130 2016-04-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17132         * config/darwin.h (LINK_COMMAND_SPEC_A): Handle -fcilkplus.
17134 2016-04-30  Oleg Endo  <olegendo@gcc.gnu.org>
17136         * config/sh/sh.c (register_sh_passes, sh_option_override,
17137         sh_print_operand, prepare_move_operands,
17138         sh_can_follow_jump): Remove TARGET_SH1 checks.
17139         * config/sh/sh.h (TARGET_VARARGS_PRETEND_ARGS, VALID_REGISTER_P,
17140         PROMOTE_MODE): Likewise.
17141         * config/sh/sh.md (adddi3, addsi3, subdi3, subsi3, andsi3,
17142         movdi): Likewise.
17144 2016-04-30  Alan Modra  <amodra@gmail.com>
17146         * config/rs6000/rs6000.c (rs6000_savres_strategy): Force inline
17147         restoring when fixed_reg_p, but allow out-of-line or stmw save.
17148         Check for user regs later to avoid unnecessary looping over regs.
17149         Merge user reg check with non-saved reg check.  Don't force
17150         inline VR restore when static chain used.
17151         (rs6000_frame_related): Omit eh_frame info for user regs when
17152         saving.
17153         (fixed_regs_p): Delete.
17155 2016-04-30  Alan Modra  <amodra@gmail.com>
17157         * config/rs6000/rs6000.c (SAVRES_MULTIPLE): Replace with..
17158         (SAVE_STRATEGY, REST_STRATEGY): ..this.  Renumber and sort enum.
17159         Update all uses.
17161 2016-04-30  Alan Modra  <amodra@gmail.com>
17163         PR target/69645
17164         * config/rs6000/rs6000.c (fixed_reg_p): New function.
17165         (fixed_regs_p): Rename from global_regs_p.  Call fixed_reg_p.
17166         Update all uses.
17168 2016-04-30  Alan Modra  <amodra@gmail.com>
17170         * config/rs6000/rs6000.c (rs6000_conditional_register_usage):
17171         Remove redundant PIC_OFFSET_TABLE_REGNUM test.  Replace with
17172         flag_pic test for Darwin.
17174 2016-04-30  Alan Modra  <amodra@gmail.com>
17176         * regs.h (struct reg_info_t): Delete freq_calls_crossed and
17177         throw_calls_crossed.
17178         (REG_FREQ_CALLS_CROSSED): Delete.
17179         (REG_N_THROWING_CALLS_CROSSED): Delete.
17180         * regstat.c (regstat_bb_compute_ri): Don't calculate
17181         REG_FREQ_CALLS_CROSSED and REG_N_THROWING_CALLS_CROSSED.
17182         (dump_reg_info): Don't print call cross frequency.
17183         * ira.c (combine_and_move_insns): Don't set REG_FREQ_CALLS_CROSSED
17184         and REG_N_THROWING_CALLS_CROSSED.
17186 2016-04-30  Alan Modra  <amodra@gmail.com>
17188         * regs.h (struct reg_info_t): Delete live_length.
17189         (REG_LIVE_LENGTH): Delete macro.
17190         * regstat.c (regstat_bb_compute_ri): Delete artificial_uses,
17191         local_live, local_processed and local_live_last_luid params.
17192         Replace bb_index param with bb.  Don't set REG_LIVE_LENGTH.
17193         Formatting fixes.
17194         (regstat_compute_ri): Adjust for above.  Don't set
17195         REG_LIVE_LENGTH.
17196         (dump_reg_info): Don't print live length.
17197         * ira.c (update_equiv_regs): Replace test of REG_LIVE_LENGTH
17198         with test of setjmp_crosses.  Don't set REG_LIVE_LENGTH.
17199         Localize loop_depth var.
17201 2016-04-30  Alan Modra  <amodra@gmail.com>
17203         * ira.c (enum valid_equiv): New.
17204         (validate_equiv_mem): Return enum.
17205         (update_equiv_mem): Create replacement in more cases.
17206         (add_store_equivs): Update validate_equiv_mem call.
17208 2016-04-30  Alan Modra  <amodra@gmail.com>
17210         * ira.c (combine_and_move_insns): Rather than scanning insns,
17211         use DF infrastucture to find use and def insns.
17213 2016-04-30  Alan Modra  <amodra@gmail.com>
17215         ira.c (combine_and_move_insns): Move invariant conditions..
17216         (ira.c): ..to here.  Call combine_and_move_insns before
17217         add_store_equivs.  Call grow_reg_equivs later.  Allocate
17218         req_equiv later using max_reg_num() rather than global max_regno.
17219         (contains_replace_regs): Delete.
17220         (add_store_equivs): Remove contains_replace_regs test.
17222 2016-04-30  Alan Modra  <amodra@gmail.com>
17224         * ira.c (struct equiv_mem_data): New.
17225         (equiv_mem, equiv_mem_modified): Delete static vars.
17226         (validate_equiv_mem_from_store): Use "data" param to communicate..
17227         (validate_equiv_mem): ..from here.
17229 2016-04-30  Alan Modra  <amodra@gmail.com>
17231         * ira.c (add_store_equivs, combine_and_move_insns): New functions,
17232         split out from..
17233         (update_reg_equivs): ..here.  Move allocation and freeing of
17234         reg_equiv, and calls to grow_reg_equivs, init_alias_analysis,
17235         end_alias_analysis to..
17236         (ira): ..here.
17238 2016-04-30  Alan Modra  <amodra@gmail.com>
17240         * ira.c (pdx_subregs): Delete.
17241         (struct equivalence): Add pdx_subregs field.
17242         (set_paradoxical_subreg): Remove pdx_subregs param.  Update
17243         pdx_subregs access.
17244         (update_equiv_regs): Don't create or free pdx_subregs.  Update
17245         pdx_subregs access.
17247 2016-04-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
17249         * config/rs6000/altivec.h: Change definitions of vec_xl and
17250         vec_xst.
17251         * config/rs6000/rs6000-builtin.def (LD_ELEMREV_V2DF): New.
17252         (LD_ELEMREV_V2DI): New.
17253         (LD_ELEMREV_V4SF): New.
17254         (LD_ELEMREV_V4SI): New.
17255         (LD_ELEMREV_V8HI): New.
17256         (LD_ELEMREV_V16QI): New.
17257         (ST_ELEMREV_V2DF): New.
17258         (ST_ELEMREV_V2DI): New.
17259         (ST_ELEMREV_V4SF): New.
17260         (ST_ELEMREV_V4SI): New.
17261         (ST_ELEMREV_V8HI): New.
17262         (ST_ELEMREV_V16QI): New.
17263         (XL): New.
17264         (XST): New.
17265         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
17266         descriptions for VSX_BUILTIN_VEC_XL and VSX_BUILTIN_VEC_XST.
17267         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Map from
17268         TARGET_P9_VECTOR to RS6000_BTM_P9_VECTOR.
17269         (altivec_expand_builtin): Add handling for
17270         VSX_BUILTIN_ST_ELEMREV_<MODE> and VSX_BUILTIN_LD_ELEMREV_<MODE>.
17271         (rs6000_invalid_builtin): Add error-checking for
17272         RS6000_BTM_P9_VECTOR.
17273         (altivec_init_builtins): Define builtins used to implement vec_xl
17274         and vec_xst.
17275         (rs6000_builtin_mask_names): Define power9-vector.
17276         * config/rs6000/rs6000.h (MASK_P9_VECTOR): Define.
17277         (RS6000_BTM_P9_VECTOR): Define.
17278         (RS6000_BTM_COMMON): Include RS6000_BTM_P9_VECTOR.
17279         * config/rs6000/vsx.md (vsx_ld_elemrev_v2di): New define_insn.
17280         (vsx_ld_elemrev_v2df): Likewise.
17281         (vsx_ld_elemrev_v4sf): Likewise.
17282         (vsx_ld_elemrev_v4si): Likewise.
17283         (vsx_ld_elemrev_v8hi): Likewise.
17284         (vsx_ld_elemrev_v16qi): Likewise.
17285         (vsx_st_elemrev_v2df): Likewise.
17286         (vsx_st_elemrev_v2di): Likewise.
17287         (vsx_st_elemrev_v4sf): Likewise.
17288         (vsx_st_elemrev_v4si): Likewise.
17289         (vsx_st_elemrev_v8hi): Likewise.
17290         (vsx_st_elemrev_v16qi): Likewise.
17291         * doc/extend.texi: Add prototypes for vec_xl and vec_xst.  Correct
17292         grammar.
17294 2016-04-29  Patrick Palka  <ppalka@gcc.gnu.org>
17296         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Split
17297         out into ...
17298         (simplify_control_stmt_condition_1): ... here.  Recurse into
17299         BIT_AND_EXPRs and BIT_IOR_EXPRs.
17301 2016-04-29  David Edelsohn  <dje.gcc@gmail.com>
17303         PR target/69810
17304         * config/rs6000/rs6000.md (EXTQI): Don't allow extension to HImode.
17305         (zero_extendqi<mode>2_dot): Revert earlier conversion from
17306         define_insn_and_split to define_insn.
17307         (zero_extendqi<mode>2_dot2): Same.
17308         (extendqi<mode>2_dot): Same.
17309         (extendqi<mode>2_dot2): Same.
17311 2016-04-29  Uros Bizjak  <ubizjak@gmail.com>
17313         * config/i386/i386.md (unspec): Add UNSPEC_PROBE_STACK.
17314         (probe_stack): New expander.
17315         (probe_stack_<mode>): New insn pattern.
17317 2016-04-29  Uros Bizjak  <ubizjak@gmail.com>
17319         * config/i386/i386.md
17320         (operations with memory inputs setting flags peephole2):
17321         Remove uneeded REG_P checks.  Cleanup pattern generation.
17323 2016-04-29  Ilya Enkovich  <ilya.enkovich@intel.com>
17325         * tree-vect-loop.c (vect_transform_loop): Fix
17326         nb_iterations_upper_bound computation for vectorized loop.
17328 2016-04-29  Marek Polacek  <polacek@redhat.com>
17329             Jakub Jelinek  <jakub@redhat.com>
17331         PR sanitizer/70342
17332         * fold-const.c (tree_single_nonzero_warnv_p): For TARGET_EXPR, use
17333         TARGET_EXPR_SLOT as a base.
17335 2016-04-29  Andrew Burgess  <andrew.burgess@embecosm.com>
17337         * config/arc/arc.md (*loadqi_update): Replace use of 'rI' constraint
17338         with 'rCm2' constraints to limit possible immediate size.
17339         (*load_zeroextendqisi_update): Likewise.
17340         (*load_signextendqisi_update): Likewise.
17341         (*loadhi_update): Likewise.
17342         (*load_zeroextendhisi_update): Likewise.
17343         (*load_signextendhisi_update): Likewise.
17344         (*loadsi_update): Likewise.
17345         (*loadsf_update): Likewise.
17347 2016-04-29  Uros Bizjak  <ubizjak@gmail.com>
17349         * config/i386/predicates.md (constm1_operand): Fix comparison.
17351 2016-04-29  Claudiu Zissulescu  <claziss@synopsys.com>
17353         * testsuite/gcc.target/arc/ieee_eq.c: New test.
17355 2016-04-29  Oleg Endo  <olegendo@gcc.gnu.org>
17357         * common/config/sh/sh-common.c (sh_option_optimization_table): Remove
17358         remaining SH5 related settings.
17359         * config/sh/sh-protos.h (shmedia_cleanup_truncate,
17360         shmedia_prepare_call_address): Delete.
17361         * config/sh/sh.c (sh_print_operand, output_stack_adjust,
17362         DWARF_CIE_DATA_ALIGNMENT, LOCAL_ALIGNMENT): Update comments.
17363         * config/sh/sh.h (SUBTARGET_ASM_RELAX_SPEC,
17364         UNSUPPORTED_SH2A): Remove m5 checks.
17365         (sh_divide_strategy_e): Remove SH5 division strategies.
17366         (TARGET_PTRMEMFUNC_VBIT_LOCATION): Remove and use default.
17367         * config/sh/sh.md (divsf3): Reinstate define_expand pattern.
17369 2016-04-29  Dominik Vogt  <vogt@linux.vnet.ibm.com>
17371         * config/s390/s390.c (s390_rtx_costs): Update documentation.
17373 2016-04-29  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
17375         * config/s390/2964.md ("z13_unit_fxu", "z13_0"): Remove lder.
17376         * config/s390/s390.md ("movsi_larl", "*movsi_esa", "mov<mode>"):
17377         Change lder to ldr.
17378         * config/s390/vector.md ("mov<mode>"): Likewise.
17380 2016-04-29  Ulrich Weigand  <uweigand@de.ibm.com>
17382         * config/s390/constraints.md ("U", "W"): Invoke
17383         s390_mem_constraint with "ZR" and "ZT".
17384         * config/s390/s390.c (s390_check_qrst_address): Reject invalid
17385         addresses when using LRA.  Accept also short displacements for S
17386         and T constraints.  Do not check for long displacement target for
17387         S and T constraints.
17388         (s390_mem_constraint): Remove handling of U and W constraints.
17389         * config/s390/s390.md (various patterns): Remove the short
17390         displacement constraints (Q and R) if a long displacement
17391         constraint is present.  Add longdisp as required CPU capability.
17392         * config/s390/vector.md: Likewise.
17393         * config/s390/vx-builtins.md: Likewise.
17395 2016-04-29  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
17397         PR target/60040
17398         * reload1.c (reload): Call finish_spills before
17399         restarting reload loop. Skip select_reload_regs
17400         if update_eliminables_and_spill returns true.
17402 2016-04-29  Claudiu Zissulescu  <claziss@synopsys.com>
17404         * config/arc/arc.h (UNSIGNED_INT12, UNSIGNED_INT16): Define.
17405         * config/arc/arc.md (umulhisi3): Use arc_short_operand predicate.
17406         (umulhisi3_imm): Update predicates and constraint letters.
17407         (umulhisi3_reg): Declare instruction as commutative.
17408         * config/arc/constraints.md (J12, J16): New constraints.
17409         * config/arc/predicates.md (short_unsigned_const_operand): New
17410         predicate.
17411         (arc_short_operand): Likewise.
17412         * testsuite/gcc.target/arc/umulsihi3_z.c: New file.
17414 2016-04-29  Richard Biener  <rguenther@suse.de>
17416         PR tree-optimization/13962
17417         PR tree-optimization/65686
17418         * tree-ssa-alias.h (ptrs_compare_unequal): Declare.
17419         * tree-ssa-alias.c (ptrs_compare_unequal): New function
17420         using PTA to compare pointers.
17421         * match.pd: Add pattern for pointer equality compare simplification
17422         using ptrs_compare_unequal.
17424 2016-04-29  Richard Biener  <rguenther@suse.de>
17426         * stor-layout.c (layout_type): Do not build a pointer-to-element
17427         type for arrays.
17429 2016-04-29  Uros Bizjak  <ubizjak@gmail.com>
17431         * config/i386/i386.md (Load+RegOp to Mov+MemOp peephole2):
17432         Use SWI mode iterator.  Use general_reg_operand predicate.
17433         (Load+RegOp to Mov+MemOp peephole2 with vector regs): Split
17434         peephole to MMX and SSE part.  Use mmx_reg_operand and sse_reg_operand
17435         predicates.
17437 2016-04-29  Jakub Jelinek  <jakub@redhat.com>
17439         PR middle-end/70843
17440         * fold-const.c (operand_equal_p): Don't verify hash value equality
17441         if arg0 == arg1.
17442         * tree.c (inchash::add_expr): Handle STATEMENT_LIST.  Ignore BLOCK
17443         and OMP_CLAUSE.
17445 2016-04-28  Jakub Jelinek  <jakub@redhat.com>
17447         PR target/70858
17448         * config/i386/i386.c (bdesc_special_args): Add | OPTION_MASK_ISA_64BIT
17449         to __builtin_ia32_lwpval64 and __builtin_ia32_lwpins64.
17450         (bdesc_args): Add | OPTION_MASK_ISA_64BIT to __builtin_ia32_bextr_u64,
17451         __builtin_ia32_bextri_u64, __builtin_ia32_bzhi_di,
17452         __builtin_ia32_pdep_di and __builtin_ia32_pext_di.
17454 2016-04-28  Segher Boessenkool  <segher@kernel.crashing.org>
17456         * config/rs6000/rs6000.c (compute_save_world_info): Rename info_ptr
17457         to info.  Don't initialize separate fields to 0.  Clean up
17458         formatting a bit.
17460 2016-04-28  Uros Bizjak  <ubizjak@gmail.com>
17462         * config/i386/i386.md (peephole2s for operations with memory inputs):
17463         Use SWI mode iterator.
17464         (peephole2s for operations with memory outputs): Ditto.
17465         Do not check for stack checking probe.
17467         (probe_stack): Remove expander.
17469 2016-04-28  Joern Rennecke  <joern.rennecke@embecosm.com>
17470             Andrew Burgess  <andrew.burgess@embecosm.com>
17472         * config/arc/arc.c (arc_print_operand): Print integer 'H' / 'L'
17473         operands as 32-bits.
17475 2016-04-28  Jason Merrill  <jason@redhat.com>
17477         * gdbinit.in: Skip line-map.h.
17479 2016-04-28  Joern Rennecke  <joern.rennecke@embecosm.com>
17480             Andrew Burgess  <andrew.burgess@embecosm.com>
17482         * config/arc/arc.c (arc_conditional_register_usage): Take
17483         TARGET_RRQ_CLASS into account.
17484         (arc_print_operand): Support printing 'p' and 's' operands.
17485         * config/arc/arc.h (TARGET_NPS_BITOPS_DEFAULT): Provide default
17486         as 0.
17487         (TARGET_RRQ_CLASS): Define.
17488         (IS_POWEROF2_OR_0_P): Define.
17489         * config/arc/arc.md (*movsi_insn): Add w/Clo, w/Chi, and w/Cbi
17490         alternatives.
17491         (*tst_movb): New define_insn.
17492         (*tst): Avoid recognition if it could prevent '*tst_movb'
17493         combination; replace c/CnL with c/Chs alternative.
17494         (*tst_bitfield_tst): New define_insn.
17495         (*tst_bitfield_asr): New define_insn.
17496         (*tst_bitfield): New define_insn.
17497         (andsi3_i): Add Rrq variant.
17498         (extzv): New define_expand.
17499         (insv): New define_expand.
17500         (*insv_i): New define_insn.
17501         (*movb): New define_insn.
17502         (*movb_signed): New define_insn.
17503         (*movb_high): New define_insn.
17504         (*movb_high_signed): New define_insn.
17505         (*movb_high_signed + 1): New define_split pattern.
17506         (*mrgb): New define_insn.
17507         (*mrgb + 1): New define_peephole2 pattern.
17508         (*mrgb + 2): New define_peephole2 pattern.
17509         * config/arc/arc.opt (mbitops): New option for nps400, uses
17510         TARGET_NPS_BITOPS_DEFAULT.
17511         * config/arc/constraints.md (q): Make register class conditional.
17512         (Rrq): New register constraint.
17513         (Chs): New constraint.
17514         (Clo): New constraint.
17515         (Chi): New constraint.
17516         (Cbf): New constraint.
17517         (Cbn): New constraint.
17518         (C18): New constraint.
17519         (Cbi): New constraint.
17521 2016-04-28  Segher Boessenkool  <segher@kernel.crashing.org>
17523         * cfganal.c (bitmap_intersection_of_succs): Delete assert checking
17524         dst->popcount.
17525         (bitmap_intersection_of_preds): Ditto.
17526         (bitmap_union_of_succs): Ditto.
17527         (bitmap_union_of_preds): Ditto.
17528         * sbitmap.c (do_popcount): Delete.
17529         (BITMAP_DEBUGGING): Delete.
17530         (sbitmap_verify_popcount): Delete.
17531         (sbitmap_alloc): Don't initialize the popcount field.
17532         (sbitmap_alloc_with_popcount): Delete.
17533         (sbitmap_resize): Don't resize the popcount array.
17534         (sbitmap_vector_alloc): Don't initialize the popcount field.
17535         (bitmap_copy): Don't copy the popcount array.
17536         (bitmap_clear): Don't clear the popcount array.
17537         (bitmap_clear): Delete the popcount array handling.
17538         (bitmap_ior_and_compl): Delete the popcount assert.
17539         (bitmap_not): Ditto.
17540         (bitmap_and_compl): Ditto.
17541         (bitmap_and): Delete the popcount array handling.
17542         (bitmap_xor): Ditto.
17543         (bitmap_ior): Ditto.
17544         (bitmap_or_and): Delete the popcount assert.
17545         (bitmap_and_or): Ditto.
17546         (popcount_table): Delete.
17547         (sbitmap_elt_popcount): Delete.
17548         * sbitmap.h (simple_bitmap_def): Delete the popcount field.
17549         (bitmap_set_bit): Delete the popcount assert.
17550         (bitmap_clear_bit): Ditto.
17551         (sbitmap_free): Don't free the popcount array.
17552         (sbitmap_alloc_with_popcount): Delete declaration.
17553         (sbitmap_popcount): Ditto.
17555 2016-04-28  Joern Rennecke  <joern.rennecke@embecosm.com>
17556             Andrew Burgess  <andrew.burgess@embecosm.com>
17558         * config/arc/arc.h (SYMBOL_FLAG_CMEM): Define.
17559         (TARGET_NPS_CMEM_DEFAULT): Provide default definition.
17560         * config/arc/arc.c (arc_address_cost): Return 0 for cmem_address.
17561         (arc_encode_section_info): Set SYMBOL_FLAG_CMEM where indicated.
17562         * config/arc/arc.opt (mcmem): New option.
17563         * config/arc/arc.md (*extendqihi2_i): Add r/Uex alternative,
17564         supply length for r/m alternative.
17565         (*extendqisi2_ac): Likewise.
17566         (*extendhisi2_i): Add r/Uex alternative, supply length for r/m and
17567         r/Uex alternative.
17568         (movqi_insn): Add r/Ucm and Ucm/?Rac alternatives.
17569         (movhi_insn): Likewise.
17570         (movsi_insn): Add r/Ucm,Ucm/w alternatives.
17571         (*zero_extendqihi2_i): Add r/Ucm alternative.
17572         (*zero_extendqisi2_ac): Likewise.
17573         (*zero_extendhisi2_i): Likewise.
17574         * config/arc/constraints.md (Uex): New memory constraint.
17575         (Ucm): New define_constraint.
17576         * config/arc/predicates.md (long_immediate_loadstore_operand):
17577         Return 0 for MEM with cmem_address address.
17578         (cmem_address_0): New predicates.
17579         (cmem_address_1): Likewise.
17580         (cmem_address_2): Likewise.
17581         (cmem_address): Likewise.
17583 2016-04-28  Segher Boessenkool  <segher@kernel.crashing.org>
17585         * config/rs6000/rs6000.c (machine_function): Rename
17586         insn_chain_scanned_p to spe_insn_chain_scanned_p.
17587         (rs6000_stack_info): Adjust.
17589 2016-04-28  Joern Rennecke  <joern.rennecke@embecosm.com>
17590             Andrew Burgess  <andrew.burgess@embecosm.com>
17592         * config/arc/constraints.md (Usd): Convert to define_constraint.
17593         (Us<): Likewise.
17594         (Us>): Likewise.
17596 2016-04-28  Jakub Jelinek  <jakub@redhat.com>
17598         PR target/70821
17599         * config/i386/sync.md (define_peephole2 *atomic_fetch_add_cmp<mode>):
17600         Add new peephole2 where the first insn is *mov<mode>_or instead of
17601         *mov<mode>_internal.
17603 2016-04-28  Segher Boesssenkool  <segher@kernel.crashing.org>
17605         * tracer.c (bb_seen): Make static.
17607 2016-04-28  Andrew Burgess  <andrew.burgess@embecosm.com>
17609         * common/config/arc/arc-common.c (arc_handle_option): Add NPS400
17610         support, setup defaults.
17611         * config/arc/arc-opts.h (enum processor_type): Add NPS400.
17612         * config/arc/arc.c (arc_init): Add NPS400 support.
17613         * config/arc/arc.h (CPP_SPEC): Add NPS400 defines.
17614         (TARGET_ARC700): NPS400 is also an ARC700.
17615         * config/arc/arc.opt: Add NPS400 options to -mcpu=.
17617 2016-04-28  Segher Boessenkool  <segher@kernel.crashing.org>
17619         PR target/70668
17620         * config/nds32/nds32.md (casesi): Don't access the operands array
17621         out of bounds.
17623 2016-04-28  Uros Bizjak  <ubizjak@gmail.com>
17625         * config/i386/i386.md (zeroing peephole2): Use general_reg_operand.
17626         (or $-1,reg peephole2): Ditto.
17627         (strict_low_part zeroing peephole2): Use SWI12 mode iterator.
17629 2016-04-28  Markus Trippelsdorf  <markus@trippelsdorf.de>
17631         * doc/extend.texi (Common Function Attributes) [optimize]:
17632         Discourage use of the optimize attribute.
17634 2016-04-28  Bill Seurer  <seurer@linux.vnet.ibm.com>
17636         * config/rs6000/rs6000-builtin.def (vec_adde): Change vec_adde to a
17637         special case builtin.
17638         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove
17639         ALTIVEC_BUILTIN_VEC_ADDE.
17640         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
17641         support for ALTIVEC_BUILTIN_VEC_ADDE.
17642         * config/rs6000/rs6000.c (altivec_init_builtins): Add definition
17643         for __builtin_vec_adde.
17645 2016-04-28  Jakub Jelinek  <jakub@redhat.com>
17647         * config/i386/i386.md (sse4_1_round<mode>2): Add avx512f alternative.
17648         * config/i386/sse.md (sse4_1_round<ssescalarmodesuffix>): Likewise.
17650 2016-04-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17652         PR testsuite/70595
17653         * doc/sourcebuild.texi (Effective-Target Keywords, Other
17654         attributes): Document cilkplus_runtime.
17656 2016-04-28  Martin Jambor  <mjambor@suse.cz>
17658         * tree-cfg.c (verify_expr): Verify that local declarations belong to
17659         this function.  Call verify_expr on MEM_REFs and bases of other
17660         handled_components.
17662 2016-04-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17664         * internal-fn.c (expand_arith_overflow): Convert preprocessor check
17665         for WORD_REGISTER_OPERATIONS to runtime check.
17667 2016-04-28  Claudiu Zissulescu  <claziss@synopsys.com>
17669         * config/arc/arc.h (ASM_SPEC): Pass mfpuda to assembler.
17671 2016-04-28  Claudiu Zissulescu  <claziss@synopsys.com>
17673         * config/arc/arc.c (arc_process_double_reg_moves): Fix for
17674         big-endian compilation.
17675         * config/arc/arc.md (addf3): Likewise.
17676         (subdf3): Likewise.
17677         (muldf3): Likewise.
17679 2016-04-28  Richard Biener  <rguenther@suse.de>
17681         PR tree-optimization/70840
17682         * match.pd: powi(-x, y) and powi(|x|,y) -> powi(x,y) if y is even;
17683         Fix pow(copysign(x, y), z) -> pow(x, z) and add powi variant;
17684         Mark x * pow(x,c) -> pow(x,c+1) commutative.
17685         Add powi(x,y) * powi(z,y) -> powi(x*z,y).
17687 2015-04-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17689         * config/aarch64/aarch64.h (WORD_REGISTER_OPERATIONS): Define to 0
17690         and explain why in a comment.
17692 2016-04-28  Claudiu Zissulescu  <claziss@synopsys.com>
17694         * config/arc/arc.md (cpu_facility): Add fpx variant.
17695         (subdf3): Prohibit use reverse sub when assist operations option
17696         is enabled.
17697         * config/arc/fpx.md (subdf3_insn, *dsubh_peep2_insn): Allow drsub
17698         instructions only when FPX is enabled.
17699         * testsuite/gcc.target/arc/trsub.c: New test.
17701 2016-04-28  Uros Bizjak  <ubizjak@gmail.com>
17703         * config/i386/i386.md (*fop_<mode>_1_mixed): Do not check for
17704         mult_operator when calculating "type" attribute.
17705         (*fop_<mode>_1_i387): Ditto.
17706         (*fop_xf_1_i387): Ditto.
17707         (x87 stack loads peephole2): Add "reg = op (mem, reg)" peephole2.
17708         Use std::swap to swap operands.  Use RTL expressions to generate
17709         converted pattern.
17711 2016-04-28  Claudiu Zissulescu  <claziss@synopsys.com>
17712             Joern Rennecke  <joern.rennecke@embecosm.com>
17714         * config/arc/arc-protos.h (arc_legitimize_pic_address): Remove
17715         declaration.
17716         (emit_pic_move): Remove.
17717         (arc_eh_uses, insn_is_tls_gd_dispatch): Declare.
17718         * config/arc/arc.c (emit_pic_move): Removed.
17719         (TARGET_HAVE_TLS): Define.
17720         (arc_conditional_register_usage): Test for arc_tp_regno.
17721         (arc_print_operand, arc_print_operand_address): Handle TLS
17722         unspecs.
17723         (arc_needs_pcl_p): New function.
17724         (arc_legitimate_pc_offset_p): Use arc_needs_pcl_p.
17725         (arc_legitimate_pic_addr_p): Handle TLS unspecs.
17726         (arc_raw_symbolic_reference_mentioned_p): Likewise.
17727         (arc_get_tp, arc_emit_call_tls_get_addr): New function.
17728         (arc_legitimize_tls_address): Likewise.
17729         (DTPOFF_ZERO_SYM): Define.
17730         (arc_legitimize_pic_address): Make it static, handle TLS cases.
17731         (arc_output_pic_addr_const): Print TLS unspecs.
17732         (prepare_pic_move): New function, replaces emit_pic_move.
17733         (arc_legitimate_constant_p): Handle TLS unspecs.
17734         (arc_legitimate_address_p): Likewise.
17735         (arc_rewrite_small_data_p): Use assert for TLS constants.
17736         (prepare_move_operands): Use prepare_pic_move.
17737         (arc_legitimize_address): Legitimize tls addresses.
17738         (arc_epilogue_uses): Check for arc_tp_regno.
17739         (arc_eh_uses, insn_is_tls_gd_dispatch): New function.
17740         * config/arc/arc.h [DEFAULT_LIBC != LIBC_UCLIBC] (EXTRA_SPECS):
17741         Define.
17742         [DEFAULT_LIBC != LIBC_UCLIBC] (ARC_TLS_EXTRA_START_SPEC):
17743         Likewise.
17744         [DEFAULT_LIBC != LIBC_UCLIBC] (STARTFILE_SPEC): Add
17745         %(arc_tls_extra_start_spec).
17746         (TARGET_CPU_CPP_BUILTINS): Define __ARC_TLS_REGNO__.
17747         (REGNO_OK_FOR_BASE_P): Check for arc_tp_regno.
17748         (EH_USES): Define.
17749         (INSN_REFERENCES_ARE_DELAYED): Use insn_is_tls_gd_dispatch.
17750         * config/arc/arc.md (UNSPEC_TLS_GD, UNSPEC_TLS_LD, UNSPEC_TLS_IE)
17751         (UNSPEC_TLS_OFF): Add.
17752         (R10_REG): Define.
17753         (tls_load_tp_soft, tls_gd_load, tls_gd_get_addr, tls_gd_dispatch)
17754         (get_thread_pointersi): New patterns.
17755         * config/arc/arc.opt (mtp-regno): New option.
17756         * config/arc/predicates.md (move_src_operand): Handle TLS symbols.
17757         (move_dest_operand): Likewise.
17758         * configure: Regenerate.
17759         * configure.ac: Add arc*-*-* case to test for tls.
17760         * doc/invoke.texi (ARC options): Document mtp-regno.
17762 2016-04-28  Claudiu Zissulescu  <claziss@synopsys.com>
17764         * config/arc/arc.c (arc_vector_mode_supported_p): Add support for
17765         the new ARC HS SIMD instructions.
17766         (arc_preferred_simd_mode): New function.
17767         (arc_autovectorize_vector_sizes): Likewise.
17768         (TARGET_VECTORIZE_PREFERRED_SIMD_MODE)
17769         (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
17770         (arc_init_reg_tables): Accept new ARC HS SIMD modes.
17771         (arc_init_builtins): Add new SIMD builtin types.
17772         (arc_split_move): Handle 64 bit vector moves.
17773         * config/arc/arc.h (TARGET_PLUS_DMPY, TARGET_PLUS_MACD)
17774         (TARGET_PLUS_QMACW): Define.
17775         * config/arc/builtins.def (QMACH, QMACHU, QMPYH, QMPYHU, DMACH)
17776         (DMACHU, DMPYH, DMPYHU, DMACWH, DMACWHU, VMAC2H, VMAC2HU, VMPY2H)
17777         (VMPY2HU, VADDSUB2H, VSUBADD2H, VADDSUB, VSUBADD, VADDSUB4H)
17778         (VSUBADD4H): New builtins.
17779         * config/arc/simdext.md: Add new ARC HS SIMD instructions.
17780         * testsuite/gcc.target/arc/builtin_simdarc.c: New file.
17782 2016-04-28  Eduard Sanou  <dhole@openmailbox.org>
17783             Matthias Klose  <doko@debian.org>
17785         * doc/cppenv.texi: Document SOURCE_DATE_EPOCH environment variable.
17787 2016-04-28  Richard Biener  <rguenther@suse.de>
17789         PR middle-end/70777
17790         * fold-const.c (fold_binary_loc): Remove x*x to pow(x,2.0)
17791         canonicalization.
17793 2016-04-28  Oleg Endo  <olegendo@gcc.gnu.org>
17795         * common/config/sh/sh-common.c: Remove SH5 support.
17796         * config/sh/constraints.md: Likewise.
17797         * config/sh/config/sh/elf.h: Likewise.
17798         * config/sh/linux.h: Likewise.
17799         * config/sh/netbsd-elf.h: Likewise.
17800         * config/sh/predicates.md: Likewise.
17801         * config/sh/sh-c.c: Likewise.
17802         * config/sh/sh-protos.h: Likewise.
17803         * config/sh/sh.c: Likewise.
17804         * config/sh/sh.h: Likewise.
17805         * config/sh/sh.md: Likewise.
17806         * config/sh/sh.opt: Likewise.
17807         * config/sh/sync.md: Likewise.
17808         * config/sh/sh64.h: Delete.
17809         * config/sh/shmedia.h: Likewise.
17810         * config/sh/shmedia.md: Likewise.
17811         * config/sh/sshmedia.h: Likewise.
17812         * config/sh/t-netbsd-sh5-64: Likewise.
17813         * config/sh/t-sh64: Likewise.
17814         * config/sh/ushmedia.h: Likewise.
17816 2016-04-28  Uros Bizjak  <ubizjak@gmail.com>
17818         * config/i386/i386.md (sign_extend to memory peephole2s): Use
17819         general_reg_operand instead of register_operand predicate.
17821 2016-04-27  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
17823         * params.def (MIN_PARTITION_SIZE): Set default value to 10000.
17825 2016-04-27  Marc Glisse  <marc.glisse@inria.fr>
17827         * match.pd (A - B > A, A + B < A): New transformations.
17829 2016-04-27  Patrick Palka  <ppalka@gcc.gnu.org>
17831         * genattrtab.c (write_test_expr): New parameter EMIT_PARENS
17832         which defaults to true.  Emit an outer pair of parentheses only if
17833         EMIT_PARENS.  When continuing a chain of && or || (or & or |),
17834         don't emit parentheses for the right-hand operand.
17836 2016-04-27  Jeff Law  <law@redhat.com>
17838         * tree-ssa-dom.c (record_temporary_equivalences): Fix typo in comment.
17840 2016-04-27  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
17842         * config/rs6000/altivec.md (altivec_lvx_<mode>): Remove.
17843         (altivec_lvx_<mode>_internal): Document.
17844         (altivec_lvx_<mode>_2op): New define_insn.
17845         (altivec_lvx_<mode>_1op): Likewise.
17846         (altivec_lvx_<mode>_2op_si): Likewise.
17847         (altivec_lvx_<mode>_1op_si): Likewise.
17848         (altivec_stvx_<mode>): Remove.
17849         (altivec_stvx_<mode>_internal): Document.
17850         (altivec_stvx_<mode>_2op): New define_insn.
17851         (altivec_stvx_<mode>_1op): Likewise.
17852         (altivec_stvx_<mode>_2op_si): Likewise.
17853         (altivec_stvx_<mode>_1op_si): Likewise.
17854         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
17855         Expand vec_ld and vec_st during parsing.
17856         * config/rs6000/rs6000.c (altivec_expand_lvx_be): Commentary
17857         changes.
17858         (altivec_expand_stvx_be): Likewise.
17859         (altivec_expand_lv_builtin): Expand lvx built-ins to expose the
17860         address-masking behavior in RTL.
17861         (altivec_expand_stv_builtin): Expand stvx built-ins to expose the
17862         address-masking behavior in RTL.
17863         (altivec_expand_builtin): Change builtin code arguments for calls
17864         to altivec_expand_stv_builtin and altivec_expand_lv_builtin.
17865         (insn_is_swappable_p): Avoid incorrect swap optimization in the
17866         presence of lvx/stvx patterns.
17867         (alignment_with_canonical_addr): New function.
17868         (alignment_mask): Likewise.
17869         (find_alignment_op): Likewise.
17870         (recombine_lvx_pattern): Likewise.
17871         (recombine_stvx_pattern): Likewise.
17872         (recombine_lvx_stvx_patterns): Likewise.
17873         (rs6000_analyze_swaps): Perform a pre-pass to recognize lvx and
17874         stvx patterns from expand.
17875         * config/rs6000/vector.md (vector_altivec_load_<mode>): Use new
17876         expansions.
17877         (vector_altivec_store_<mode>): Likewise.
17879 2016-04-26  Evandro Menezes  <e.menezes@samsung.com>
17881         * config/aarch64/aarch64.md
17882         (*movhf_aarch64): Add "movi %0, #0" to zero up register and
17883         remove the "fp" attributes.
17884         (*movsf_aarch64): Add "movi %0, #0" to zero up register and
17885         add the "simd" attributes.
17886         (*movdf_aarch64): Likewise.
17887         (*movtf_aarch64): Remove the "fp" attributes.
17888         * testsuite/gcc.target/aarch64/fmovf-zero-reg.c: Update accordingly.
17889         * testsuite/gcc.target/aarch64/fmovd-zero-reg.c: Likewise.
17891 2016-04-27  David Malcolm  <dmalcolm@redhat.com>
17893         * emit-rtl.c (maybe_set_first_label_num): Strengthen param from
17894         rtx to rtx_code_label *.
17895         * rtl.h (maybe_set_first_label_num): Likewise.
17897 2016-04-27  David Malcolm  <dmalcolm@redhat.com>
17899         * df-core.c (df_add_problem): Make the problem param be const.
17900         (df_remove_problem): Make local "problem" be const.
17901         * df-problems.c (problem_RD): Make const.
17902         (problem_LR): Likewise.
17903         (problem_LIVE): Likewise.
17904         (problem_MIR): Likewise.
17905         (problem_CHAIN): Likewise.
17906         (problem_WORD_LR): Likewise.
17907         (problem_NOTE): Likewise.
17908         (problem_MD): Likewise.
17909         * df-scan.c (problem_SCAN): Likewise.
17910         * df.h (struct df_problem): Make field "dependent_problem" be
17911         const.
17912         (struct dataflow): Likewise for field "problem".
17913         (df_add_problem): Make param const.
17915 2016-04-27  Uros Bizjak  <ubizjak@gmail.com>
17917         * config/i386/i386.c (ix86_spill_class): Enable for TARGET_SSE2 when
17918         inter-unit moves to/from vector registers are enabled.  Do not disable
17919         for TARGET_MMX.
17921 2016-04-27  David Malcolm  <dmalcolm@redhat.com>
17923         * df.h (DF_SCAN, DF_LR, DF_LIVE, DF_RD, DF_CHAIN, DF_WORD_LR,
17924         DF_NOTE, DF_MD, DF_MIR, DF_LAST_PROBLEM_PLUS1): Convert from
17925         #define to...
17926         (enum df_problem_id): ...this new enum.
17927         (struct df_problem): Convert field "id" from "int" to
17928         enum df_problem_id.
17930 2016-04-27  David Malcolm  <dmalcolm@redhat.com>
17932         * rtl.def: Update comment for "things in the instruction chain" to
17933         reflect the removal of the leading "i" field for INSN_UID in
17934         r210360.  Fix bogus apostrophe.
17936 2016-04-27  Uros Bizjak  <ubizjak@gmail.com>
17938         * config/i386/i386.md
17939         (lea arith with mem operand + setcc peephole2): Set operator mode.
17941 2016-04-27  H.J. Lu  <hongjiu.lu@intel.com>
17943         PR target/70155
17944         * config/i386/i386.c (scalar_to_vector_candidate_p): Renamed to ...
17945         (dimode_scalar_to_vector_candidate_p): This.
17946         (timode_scalar_to_vector_candidate_p): New function.
17947         (scalar_to_vector_candidate_p): Likewise.
17948         (timode_check_non_convertible_regs): Likewise.
17949         (timode_remove_non_convertible_regs): Likewise.
17950         (remove_non_convertible_regs): Likewise.
17951         (remove_non_convertible_regs): Renamed to ...
17952         (dimode_remove_non_convertible_regs): This.
17953         (scalar_chain::~scalar_chain): Make it virtual.
17954         (scalar_chain::compute_convert_gain): Make it pure virtual.
17955         (scalar_chain::mark_dual_mode_def): Likewise.
17956         (scalar_chain::convert_insn): Likewise.
17957         (scalar_chain::convert_registers): Likewise.
17958         (scalar_chain::add_to_queue): Make it protected.
17959         (scalar_chain::emit_conversion_insns): Likewise.
17960         (scalar_chain::replace_with_subreg): Likewise.
17961         (scalar_chain::replace_with_subreg_in_insn): Likewise.
17962         (scalar_chain::convert_op): Likewise.
17963         (scalar_chain::convert_reg): Likewise.
17964         (scalar_chain::make_vector_copies): Likewise.
17965         (scalar_chain::convert_registers): New pure virtual function.
17966         (class dimode_scalar_chain): New class.
17967         (class timode_scalar_chain): Likewise.
17968         (scalar_chain::mark_dual_mode_def): Renamed to ...
17969         (dimode_scalar_chain::mark_dual_mode_def): This.
17970         (timode_scalar_chain::mark_dual_mode_def): New function.
17971         (timode_scalar_chain::convert_insn): Likewise.
17972         (dimode_scalar_chain::convert_registers): Likewise.
17973         (scalar_chain::compute_convert_gain): Renamed to ...
17974         (dimode_scalar_chain::compute_convert_gain): This.
17975         (scalar_chain::replace_with_subreg): Renamed to ...
17976         (dimode_scalar_chain::replace_with_subreg): This.
17977         (scalar_chain::replace_with_subreg_in_insn): Renamed to ...
17978         (dimode_scalar_chain::replace_with_subreg_in_insn): This.
17979         (scalar_chain::make_vector_copies): Renamed to ...
17980         (dimode_scalar_chain::make_vector_copies): This.
17981         (scalar_chain::convert_reg): Renamed to ...
17982         (dimode_scalar_chain::convert_reg ): This.
17983         (scalar_chain::convert_op): Renamed to ...
17984         (dimode_scalar_chain::convert_op): This.
17985         (scalar_chain::convert_insn): Renamed to ...
17986         (dimode_scalar_chain::convert_insn): This.
17987         (scalar_chain::convert): Call convert_registers.
17988         (convert_scalars_to_vector): Change to scalar_chain pointer to
17989         use timode_scalar_chain in 64-bit mode and dimode_scalar_chain
17990         in 32-bit mode.  Delete scalar_chain pointer.  Call
17991         free_dominance_info in 64-bit mode.
17992         (pass_stv::gate): Remove TARGET_64BIT check.
17993         (ix86_option_override): Put the 64-bit STV pass before the CSE
17994         pass.
17996 2016-04-27  Pierre-Marie de Rodat  <derodat@adacore.com>
17998         * dwarf2out.h (struct dw_loc_descr_node): Remove the
17999         dw_loc_frame_offset field.
18000         * dwarf2out.c (new_loc_descr): Likewise.
18001         (resolve_args_picking_1): Turn the VISITED hash set into a
18002         FRAME_OFFSET hash map. Use it to associate a frame offset to
18003         visited nodes. Remove uses of the CHECKING_P macro.
18004         (resolve_args_picking): Update call to resolve_args_picking_1.
18006 2016-04-27  Martin Liska  <mliska@suse.cz>
18008         * tree-ssa-loop-ivopts.c (iv_ca_dump): Fix level of indentation.
18009         (free_loop_data): Release vuses of groups.
18011 2016-04-27  Bin Cheng  <bin.cheng@arm.com>
18013         * tree-ssa-loop-ivopts.c (struct iv): Use pointer to struct iv_use
18014         instead of redundant use_id and boolean have_use_for.
18015         (struct iv_use): Change sub_id into group_id.  Remove field next.
18016         Move fields: related_cands, n_map_members, cost_map and selected
18017         to ...
18018         (struct iv_group): ... here.  New structure.
18019         (struct iv_common_cand): Use structure declaration directly.
18020         (struct ivopts_data, iv_ca, iv_ca_delta): Rename fields.
18021         (MAX_CONSIDERED_USES): Rename macro to ...
18022         (MAX_CONSIDERED_GROUPS): ... here.
18023         (n_iv_uses, iv_use, n_iv_cands, iv_cand): Delete.
18024         (dump_iv, dump_use, dump_cand): Refactor format of dump information.
18025         (dump_uses): Rename to ...
18026         (dump_groups): ... here.  Update all uses.
18027         (tree_ssa_iv_optimize_init, alloc_iv): Update all uses.
18028         (find_induction_variables): Refactor format of dump information.
18029         (record_sub_use): Delete.
18030         (record_use): Update all uses.
18031         (record_group): New function.
18032         (record_group_use, find_interesting_uses_op): Call above functions.
18033         Update all uses.
18034         (find_interesting_uses_cond): Ditto.
18035         (group_compare_offset): New function.
18036         (split_all_small_groups): Rename to ...
18037         (split_small_address_groups_p): ... here.  Update all uses.
18038         (split_address_groups):  Update all uses.
18039         (find_interesting_uses): Refactor format of dump information.
18040         (add_candidate_1): Update all uses.  Remove redundant check on iv,
18041         base and step.
18042         (add_candidate, record_common_cand): Remove redundant assert.
18043         (add_iv_candidate_for_biv): Update use.
18044         (add_iv_candidate_derived_from_uses): Update all uses.
18045         (add_iv_candidate_for_groups, record_important_candidates): Ditto.
18046         (alloc_use_cost_map): Ditto.
18047         (set_use_iv_cost, get_use_iv_cost): Rename to ...
18048         (set_group_iv_cost, get_group_iv_cost): ... here.  Update all uses.
18049         (determine_use_iv_cost_generic): Ditto.
18050         (determine_group_iv_cost_generic): Ditto.
18051         (determine_use_iv_cost_address): Ditto.
18052         (determine_group_iv_cost_address): Ditto.
18053         (determine_use_iv_cost_condition): Ditto.
18054         (determine_group_iv_cost_cond): Ditto.
18055         (determine_use_iv_cost): Ditto.
18056         (determine_group_iv_cost): Ditto.
18057         (set_autoinc_for_original_candidates): Update all uses.
18058         (find_iv_candidates): Update all uses.  Refactor dump information.
18059         (determine_use_iv_costs): Ditto.
18060         (determine_iv_costs): Ditto.
18061         (iv_ca_cand_for_use): Rename to ...
18062         (iv_ca_cand_for_group): ... here.  Update all uses.
18063         (iv_ca_add_use, iv_ca_add_group): Ditto.
18064         (iv_ca_set_cp, iv_ca_cost, iv_ca_delta_add): Update all uses.
18065         (iv_ca_delta_join, iv_ca_delta_reverse, iv_ca_delta_free): Ditto.
18066         (iv_ca_new, iv_ca_dump, iv_ca_extend, iv_ca_narrow): Ditto.
18067         (iv_ca_prune, cheaper_cost_with_cand, iv_ca_replace): Ditto.
18068         (try_add_cand_for, try_improve_iv_set, find_optimal_iv_set): Ditto.
18069         (create_new_iv, adjust_iv_update_pos): Ditto.
18070         (rewrite_use_address): Delete.
18071         (rewrite_use_address_1): Rename to ...
18072         (rewrite_use_address): ... here.
18073         (rewrite_use_compare): Update all uses.
18074         (rewrite_use): Delete.
18075         (rewrite_uses): Rename to ...
18076         (rewrite_groups): ... here.  Update all uses.
18077         (remove_unused_ivs, free_loop_data): Update all uses.
18078         (tree_ssa_iv_optimize_finalize, tree_ssa_iv_optimize_loop): Ditto.
18080 2016-04-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18082         * rtlanal.c (nonzero_bits1): Convert preprocessor check
18083         for WORD_REGISTER_OPERATIONS to runtime check.
18085 2016-04-27  Richard Biener  <rguenther@suse.de>
18087         PR ipa/70760
18088         * tree-ssa-structalias.c (find_func_aliases_for_call): Use
18089         aggregate_value_p to determine if a function result is
18090         returned by reference.
18091         (ipa_pta_execute): Functions having their address taken are
18092         not automatically nonlocal.
18094 2016-04-27  Jakub Jelinek  <jakub@redhat.com>
18096         PR sanitizer/70683
18097         * tree-core.h (enum operand_equal_flag): Add OEP_NO_HASH_CHECK.
18098         * fold-const.c (operand_equal_p): If flag_checking and
18099         OEP_NO_HASH_CHECK is not set in flag, recurse with OEP_NO_HASH_CHECK
18100         and if it returns non-zero, assert iterative_hash_expr on both
18101         args is the same.
18103 2016-04-27  Bernd Schmidt  <bschmidt@redhat.com>
18105         * doc/invoke.texi (-frename-registers): Also enabled at -Os.
18107 2016-04-27  Nick Clifton  <nickc@redhat.com>
18109         PR middle-end/49889
18110         * varasm.c (merge_weak): Generate an error if an attempt is made
18111         to convert a non-weak static function into a weak, public function.
18113 2016-04-27  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
18115         * params.def (MAX_PARTITION_SIZE): New param.
18116         * doc/invoke.texi: Document lto-max-partition.
18118 2016-04-27  Richard Biener  <rguenther@suse.de>
18120         PR ipa/70785
18121         * tree-ssa-structalias.c (refered_from_nonlocal_fn): New
18122         function cummulating used_from_other_partition, externally_visible
18123         and force_output from aliases.
18124         (refered_from_nonlocal_var): Likewise.
18125         (ipa_pta_execute): Use call_for_symbol_and_aliases to cummulate
18126         node flags properly.
18128 2016-04-27  Bernd Schmidt  <bschmidt@redhat.com>
18130         * doc/invoke.texi (Warning Options): Add -Wmemset-elt-size.
18131         (-Wmemset-elt-size): New item.
18133 2016-04-27  Eric Botcazou  <ebotcazou@adacore.com>
18135         PR ada/70759
18136         * stor-layout.h (internal_reference_types): Delete.
18137         * stor-layout.c (reference_types_internal): Likewise.
18138         (internal_reference_types): Likewise.
18139         (layout_type) <REFERENCE_TYPE>: Adjust.
18141 2016-04-27  Jakub Jelinek  <jakub@redhat.com>
18143         PR sanitizer/70683
18144         * tree.h (inchash::add_expr): Add FLAGS argument.
18145         * tree.c (inchash::add_expr): Likewise.  If not OEP_ADDRESS_OF,
18146         use STRIP_NOPS first.  For INTEGER_CST assert not OEP_ADDRESS_OF.
18147         For REAL_CST and !HONOR_SIGNED_ZEROS (t) hash +/- 0 the same.
18148         Formatting fix.  Adjust recursive calls.  For tcc_comparison,
18149         if swap_tree_comparison (code) is smaller than code, hash that
18150         and arguments in the other order.  Hash CONVERT_EXPR the same
18151         as NOP_EXPR.  For OEP_ADDRESS_OF hash MEM_REF with 0 offset
18152         of ADDR_EXPR of decl as the decl itself.  Add or remove
18153         OEP_ADDRESS_OF from recursive flags as needed.  For
18154         FMA_EXPR, WIDEN_MULT_{PLUS,MINUS}_EXPR hash the first two
18155         operands commutatively and only the third one normally.
18156         For internal CALL_EXPR hash in CALL_EXPR_IFN.
18158 2016-04-27  Sebastian Huber  <sebastian.huber@embedded-brains.de>
18160         * config/rtems.h (LIB_SPEC): Add -latomic.
18162 2016-04-27  Joel Sherrill  <joel@rtems.org>
18164         * config/microblaze/rtems.h: Redefine LINK_SPEC to avoid
18165         xilink.ld and flags not relevant to RTEMS.
18167 2016-04-26  Zhouyi Zhou  <yizhouzhou@ict.ac.cn>
18169         * toplev.c (backend_init_target): Avoid calling init_reload when using
18170         LRA.
18172 2016-04-26  Jakub Jelinek  <jakub@redhat.com>
18174         * reorg.c (try_merge_delay_insns): Declare i and j inside the
18175         for loops rather than one for the whole function.
18177 2016-04-26  Marc Glisse  <marc.glisse@inria.fr>
18179         * match.pd (X + CST CMP X): New transformation.
18181 2016-04-26  Marc Glisse  <marc.glisse@inria.fr>
18183         * genmatch.c (write_predicate): Add ATTRIBUTE_UNUSED.
18184         * fold-const.c (fold_binary_loc): Remove 2 transformations
18185         superseded by match.pd.
18186         * match.pd (x+x -> x*2): Generalize to integers.
18188 2016-04-26  Bernd Schmidt  <bschmidt@redhat.com>
18190         * config/i386/i386.md (operation on memory peephole): Duplicate an
18191         existing peephole and adapt it to match lea rather than an operation
18192         that clobbers CC.
18194         PR rtl-optimization/57193
18195         * opts.c (default_options_table): Add OPT_frename_registers at -O2
18196         and above.
18197         * doc/invoke.texi (-frename-registers, -O2): Update documentation.
18199 2016-04-26  Bin Cheng  <bin.cheng@arm.com>
18201         * tree-if-conv.c (any_pred_load_store): New static variable.
18202         (if_convertible_gimple_assign_stmt_p): Remove parameter.  Use
18203         any_pred_load_store instead of and_mask_load_store.
18204         (if_convertible_stmt_p, if_convertible_loop_p_1): Ditto.
18205         (if_convertible_loop_p, insert_gimplified_predicates): Ditto.
18206         (combine_blocks, tree_if_conversion): Ditto.
18208 2016-04-26  Bin Cheng  <bin.cheng@arm.com>
18210         PR tree-optimization/70771
18211         PR tree-optimization/70775
18212         * tree-if-conv.c (if_convertible_phi_p): Remove check on special
18213         virtual PHI nodes.  Delete parameter.
18214         (if_convertible_loop_p_1): Delete argument to above function.
18215         (predicate_all_scalar_phis): Delete code handling single-argument
18216         PHIs.
18217         (tree_if_conversion): Mark and update virtual SSA.
18219 2016-04-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18221         PR target/61821
18222         * config/i386/i386.c (LARGECOMM_SECTION_ASM_OP): Define default.
18223         (x86_elf_aligned_common): Rename to ...
18224         (x86_elf_aligned_decl_common): ... this.
18225         Add decl arg.  Switch to .lbss for largecomm object.  Use
18226         LARGECOMM_SECTION_ASM_OP.
18227         * config/i386/i386-protos.h (x86_elf_aligned_common): Reflect
18228         renaming.
18229         * config/i386/x86-64.h (ASM_OUTPUT_ALIGNED_COMMON): Rename to ...
18230         (ASM_OUTPUT_ALIGNED_DECL_COMMON): ... this.
18231         Pass new decl arg.
18232         * config/i386/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
18233         [!USE_GAS] (LARGECOMM_SECTION_ASM_OP): Define.
18235 2016-04-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18237         PR target/59407
18238         * config/i386/i386.c (SECTION_LARGE): Define.
18239         (x86_64_elf_select_section): Set it for large data/bss sections.
18240         Only clear SECTION_WRITE for .lrodata.
18241         (x86_64_elf_section_type_flags): Set SECTION_LARGE for large
18242         data/bss sections.
18243         * config/i386/sol2.h (MACH_DEP_SECTION_ASM_FLAG): Define.
18244         * varasm.c (default_elf_asm_named_section): Grow flagchars.
18245         [MACH_DEP_SECTION_ASM_FLAG] Emit MACH_DEP_SECTION_ASM_FLAG for
18246         SECTION_MACH_DEP.
18247         * doc/tm.texi.in (Sections, MACH_DEP_SECTION_ASM_FLAG): Describe.
18248         * doc/tm.texi: Regenerate.
18250 2016-04-26  Jakub Jelinek  <jakub@redhat.com>
18252         PR bootstrap/70704
18253         * configure.ac (--enable-checking): Document extra flag, for
18254         non-release builds default to --enable-checking=yes,extra.
18255         If misc checking and extra checking, define CHECKING_P to 2 instead
18256         of 1.
18257         * common.opt (fchecking=): Add.
18258         * doc/invoke.texi (-fchecking=): Document.
18259         * doc/install.texi: Document --enable-checking changes.
18260         * configure: Regenerated.
18261         * config.in: Regenerated.
18263 2016-04-25  Uros Bizjak  <ubizjak@gmail.com>
18265         * config/i386/i386.md (*movxi_internal_avx512f): Use insn type
18266         attribute instead of which_alternative.
18267         * config/i386/sse.md (*mov<mode>_internal): Ditto.
18268         Use EXT_REX_SSE_REG_P where appropriate.
18270 2016-04-25  Uros Bizjak  <ubizjak@gmail.com>
18272         * config/i386/predicates.md (const0_operand): Do not match
18273         const_wide_int code.
18274         (const1_operand): Ditto.
18276 2016-04-25  Uros Bizjak  <ubizjak@gmail.com>
18278         * config/i386/i386.md (*movoi_internal_avx): Set mode attribute to XI
18279         for SSE constm1 operands and TARGET_AVX512VL.
18280         (*movti_internal): Ditto.
18281         (*mov<mode>_or): Use constm1_operand predicate.
18282         * config/i386/sse.md (*mov<mode>_internal): Set mode attribute to XI
18283         for SSE vector_all_ones operands and TARGET_AVX512VL.
18284         * config/i386/predicates.md (constm1_operand): New predicate.
18285         * config/i386/i386.c (standard_sse_constant_opcode): Simplify
18286         emission of constant -1 load.
18288 2016-04-25  Jason Merrill  <jason@redhat.com>
18290         * gdbinit.in: Skip is-a.h.
18292         * attribs.c (register_scoped_attributes): Fix logic.
18293         * attribs.h: Declare register_scoped_attributes.
18295 2016-04-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
18297         * config/rs6000/rs6000-builtin.def: Correct pasto error for
18298         stxvd2x and stxvw4x built-in functions.
18300 2016-04-25  DJ Delorie  <dj@redhat.com>
18302         * config/msp430/msp430.md (ashlhi3): Optimize one bit shifts.
18303         (ashrhi3): Likewise.
18304         (lshrhi3): Likewise.
18306 2016-04-25  Richard Biener  <rguenther@suse.de>
18308         PR tree-optimization/70780
18309         * tree-ssa-pre.c (compute_antic_aux): Also return true if the block
18310         wasn't visited yet.
18311         (compute_antic): Mark blocks with abnormal preds as visited as
18312         they have a final empty antic-in solution already.
18314 2016-04-25  Michael Collison  <michael.collison@linaro.org>
18316         * ChangeLog(2016-04-25): Fix ChangeLog formatting.
18318 2016-04-25  Michael Collison  <michael.collison@linaro.org>
18320         * config/arm/neon.md (widen_<us>sum<mode>): New patterns where
18321         mode is VQI to improve mixed mode vectorization.
18322         * config/arm/neon.md (vec_sel_widen_ssum_lo<VQI:mode><VW:mode>3): New
18323         define_insn to match low half of signed vaddw.
18324         * config/arm/neon.md (vec_sel_widen_ssum_hi<VQI:mode><VW:mode>3): New
18325         define_insn to match high half of signed vaddw.
18326         * config/arm/neon.md (vec_sel_widen_usum_lo<VQI:mode><VW:mode>3): New
18327         define_insn to match low half of unsigned vaddw.
18328         * config/arm/neon.md (vec_sel_widen_usum_hi<VQI:mode><VW:mode>3): New
18329         define_insn to match high half of unsigned vaddw.
18330         * config/arm/arm.c (arm_simd_vect_par_cnst_half): New function.
18331         (arm_simd_check_vect_par_cnst_half_p): Likewise.
18332         * config/arm/arm-protos.h (arm_simd_vect_par_cnst_half): Prototype
18333         for new function.
18334         (arm_simd_check_vect_par_cnst_half_p): Likewise.
18335         * config/arm/predicates.md (vect_par_constant_high): Support
18336         big endian and simplify by calling
18337         arm_simd_check_vect_par_cnst_half
18338         (vect_par_constant_low): Likewise.
18340 2016-04-25  Uros Bizjak  <ubizjak@gmail.com>
18342         * config/i386/i386.md (*lea<mode>_general_4): Use const_0_to_3_operand
18343         predicate for operand 2.
18345 2016-04-24  Uros Bizjak  <ubizjak@gmail.com>
18346             H.J. Lu  <hongjiu.lu@intel.com>
18348         * config/i386/i386-protos.h (standard_sse_constant_p): Add
18349         machine_mode argument.
18350         * config/i386/i386.c (standard_sse_constant_p): Return 2 for
18351         constm1_rtx operands.  For VOIDmode constants, get mode from
18352         pred_mode.  Check mode size if the mode is supported by ABI.
18353         (standard_sse_constant_opcode): Do not use standard_constant_p.
18354         Strictly check ABI support for all-ones operands.
18355         (ix86_legitimate_constant_p): Handle TImode, OImode and XImode
18356         immediates. Update calls to standard_sse_constant_p.
18357         (ix86_expand_vector_move): Update calls to standard_sse_constant_p.
18358         (ix86_rtx_costs): Ditto.
18359         * config/i386/i386.md (*movxi_internal_avx512f): Use
18360         nonimmediate_or_sse_const_operand instead of vector_move_operand.
18361         Use (v,BC) alternative instead of (v,C). Use register_operand
18362         checks instead of MEM_P.
18363         (*movoi_internal_avx): Use nonimmediate_or_sse_const_operand instead
18364         of vector_move_operand.  Add (v,BC) alternative and corresponding avx2
18365         isa attribute.  Use register_operand checks instead of MEM_P.
18366         (*movti_internal): Use nonimmediate_or_sse_const_operand for
18367         TARGET_SSE.  Improve TARGET_SSE insn constraint.  Add (v,BC)
18368         alternative and corresponding sse2 isa attribute.
18369         (*movtf_internal, *movdf_internal, *movsf_interal): Update calls
18370         to standard_sse_constant_p.
18371         (FP constant splitters): Ditto.
18372         * config/i386/constraints.md (BC): Do not use standard_sse_constant_p.
18373         (C): Ditto.
18374         * config/i386/predicates.md (constm1_operand): Remove.
18375         (nonimmediate_or_sse_const_operand): Rewrite using RTX.
18376         * config/i386/sse.md (*<avx512>_cvtmask2<ssemodesuffix><mode>): Use
18377         vector_all_ones_operand instead of constm1_operand.
18379 2016-04-24  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
18381         * print-rtl.c (print_rtx_insn_vec): New function.
18382         * print-rtl.h: New prototype.
18383         * store-motion.c (struct st_expr): Make avail_stores a vector.
18384         (st_expr_entry): Adjust.
18385         (free_st_expr_entry): Likewise.
18386         (print_store_motion_mems): Likewise.
18387         (find_moveable_store): Likewise.
18388         (compute_store_table): Likewise.
18389         (delete_store): Likewise.
18390         (build_store_vectors): Likewise.
18392 2016-04-24  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
18394         * reorg.c (try_merge_delay_insns): Make merged_insns a vector.
18396 2016-04-24  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
18398         * vec.h (vec_safe_contains): New function.
18399         (vec::contains): Likewise.
18400         (vec::begin): Likewise.
18401         (vec::end): Likewise.
18403 2016-04-23  Jakub Jelinek  <jakub@redhat.com>
18405         PR sanitizer/70712
18406         * cfgexpand.c (expand_stack_vars): Fix typo.
18408 2016-04-22  Szabolcs Nagy  <szabolcs.nagy@arm.com>
18410         * system.h (list, map, set, vector): Include conditionally.
18411         * auto-profile.c (INCLUDE_MAP, INCLUDE_SET): Define.
18412         * graphite-isl-ast-to-gimple.c (INCLUDE_MAP): Define.
18413         * ipa-icf.c (INCLUDE_LIST): Define.
18414         * config/aarch64/cortex-a57-fma-steering.c (INCLUDE_LIST): Define.
18415         * config/sh/sh.c (INCLUDE_VECTOR): Define.
18416         * config/sh/sh_treg_combine.cc (INCLUDE_ALGORITHM): Define.
18417         (INCLUDE_LIST, INCLUDE_VECTOR): Define.
18418         * cp/logic.cc (INCLUDE_LIST): Define.
18419         * fortran/trans-common.c (INCLUDE_MAP): Define.
18421 2016-04-22  Szabolcs Nagy  <szabolcs.nagy@arm.com>
18423         * auto-profile.c: Remove <string.h> include.
18424         * ipa-icf-gimple.c: Remove <list> include.
18425         * diagnostic.c: Remove <new> include.
18426         * genmatch.c: Likewise.
18427         * pretty-print.c: Likewise.
18428         * toplev.c: Likewise
18429         * c/c-objc-common.c: Likewise.
18430         * cp/error.c: Likewise.
18431         * fortran/error.c: Likewise.
18433 2016-04-22  Richard Biener  <rguenther@suse.de>
18435         * lto-streamer-in.c (input_ssa_names): Do not allocate
18436         GIMPLE_NOP for all SSA names.
18437         * lto-streamer-out.c (output_ssa_names): Do not output
18438         SSA names that should have been released.
18440 2016-04-22  Richard Biener  <rguenther@suse.de>
18442         PR tree-optimization/70740
18443         * tree-ssa-phiprop.c (propagate_with_phi): Handle inserted
18444         VDEF.
18446 2016-04-21  H.J. Lu  <hongjiu.lu@intel.com>
18448         PR target/70750
18449         * config/i386/predicates.md (call_insn_operand): Replace
18450         sibcall_memory_operand with memory_operand.
18452 2016-04-21  Patrick Palka  <ppalka@gcc.gnu.org>
18454         * tree-vrp.c (register_edge_assert_for_2): Remove redundant
18455         has_single_use() tests.
18456         (register_edge_assert_for_1): Likewise.
18457         (find_assert_locations_1): Check the liveness bitmap instead of
18458         checking has_single_use().
18460 2016-04-21  Kirill Yukhin  <kirill.yukhin@intel.com>
18462         PR target/70728
18463         * config/i386/sse.md (define_insn "<shift_insn><mode>3<mask_name>"):
18464         Extract AVX-512BW constraint from AVX.
18466 2016-04-21  Richard Biener  <rguenther@suse.de>
18468         PR tree-optimization/70725
18469         * tree-if-conv.c (if_convertible_phi_p): Adjust guard
18470         for phi_convertible_by_degenerating_args.
18471         (predicate_all_scalar_phis): Handle single-argument PHIs.
18473 2016-04-21  Richard Biener  <rguenther@suse.de>
18475         PR middle-end/70747
18476         * fold-const.c (fold_comparison): Return properly typed
18477         constant boolean.
18479 2016-04-21  Bin Cheng  <bin.cheng@arm.com>
18481         PR tree-optimization/70715
18482         * tree-ssa-loop-niter.c (loop_exits_before_overflow): Check equality
18483         after expanding BASE using expand_simple_operations.
18485 2016-04-21  Marc Glisse  <marc.glisse@inria.fr>
18487         * match.pd (min(-x, -y), max(-x, -y), min(~x, ~y), max(~x, ~y)):
18488         New transformations.
18490 2016-04-21  Marc Glisse  <marc.glisse@inria.fr>
18492         * match.pd (min(int_max, x), max(int_min, x)): New transformations.
18494 2016-04-20  Jan Hubicka  <jh@suse.cz>
18496         * ipa-inline.c (can_inline_edge_p): Pass caller info to
18497         ultiimate_alias_target.
18498         (update_callee_keys): Likewise.
18499         (lookup_recursive_calls): Likewise.
18500         (speculation_useful_p): Likewise.
18502 2016-04-20  Jan Hubicka  <jh@suse.cz>
18504         PR ipa/70018
18505         * cgraph.c (cgraph_set_nothrow_flag_1): Rename to ...
18506         (set_nothrow_flag_1): ... this; handle interposition correctly;
18507         recurse on aliases and thunks.
18508         (cgraph_node::set_nothrow_flag): New.
18509         * ipa-pure-const.c (ignore_edge_for_nothrow): Ignore calls to
18510         functions compiled with non-call exceptions that binds to current
18511         def.
18512         (propagate_nothrow): Be safe WRT interposition.
18513         * cgraph.h (set_nothrow_flag): Update prototype.
18515 2016-04-18  Jan Hubicka  <jh@suse.cz>
18517         * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also
18518         max_loop_iterations_int.
18519         (tree_unswitch_outer_loop): Likewise.
18521 2016-04-20  Bin Cheng  <bin.cheng@arm.com>
18523         PR tree-optimization/69489
18524         * tree-if-conv.c (phi_convertible_by_degenerating_args): New.
18525         (if_convertible_phi_p): Call phi_convertible_by_degenerating_args.
18526         Revise dump message.
18527         (if_convertible_bb_p): Remove check on edge count of basic block's
18528         predecessors.
18530 2016-04-20  Bin Cheng  <bin.cheng@arm.com>
18532         PR tree-optimization/56625
18533         PR tree-optimization/69489
18534         * tree-data-ref.h (DR_INNERMOST): New macro.
18535         * tree-if-conv.c (innermost_loop_behavior_hash): New class for
18536         hashing struct innermost_loop_behavior.
18537         (ref_DR_map): Remove.
18538         (innermost_DR_map): New map.
18539         (baseref_DR_map): Revise comment.
18540         (hash_memrefs_baserefs_and_store_DRs_read_written_info): Store DR
18541         to innermost_DR_map accroding to its innermost loop behavior.
18542         (ifcvt_memrefs_wont_trap): Get DR from innermost_DR_map according
18543         to its innermost loop behavior.
18544         (if_convertible_loop_p_1): Remove intialization for ref_DR_map.
18545         Add initialization for innermost_DR_map.  Record memory reference
18546         in DR_BASE_ADDRESS if the reference is compound one or it doesn't
18547         have innermost loop behavior.
18548         (if_convertible_loop_p): Remove release for ref_DR_map.  Release
18549         innermost_DR_map.
18551 2016-04-20  Uros Bizjak  <ubizjak@gmail.com>
18553         * config/i386/i386.md (*lea<mode>_general_1): Rename from
18554         *lea_general_1.  Use explicit SWI12 mode interator.
18555         (*lea<mode>_general_2): Rename from *lea_general_2.
18556         Use explicit SWI12 mode interator.
18557         (*lea<mode>_general_3): Rename from *lea_general_3.
18558         Use explicit SWI12 mode interator.
18559         (*lea<SWI12:mode>_general_4): Split from *lea_general_4.
18560         Use explicit SWI12 mode interator.
18561         (*lea<SWI48:mode>_general_4): Split from *lea_general_4.
18562         Use explicit SWI48 mode interator.
18564 2016-04-20  H.J. Lu  <hongjiu.lu@intel.com>
18566         * config/i386/i386.c (ix86_avx256_split_vector_move_misalign):
18567         Short-cut unaligned load and store cases.  Handle all integer
18568         vector modes.
18569         (ix86_expand_vector_move_misalign): Short-cut unaligned load
18570         and store cases.  Call ix86_avx256_split_vector_move_misalign
18571         directly without checking mode class.
18573 2016-04-20  Andrew Pinski  <apinski@cavium.com>
18574             Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18576         PR target/64971
18577         * config/aarch64/aarch64.md (sibcall): Force call
18578         address to be DImode for ILP32.
18579         (sibcall_value): Likewise.
18581 2016-04-20  H.J. Lu  <hongjiu.lu@intel.com>
18583         * doc/invoke.texi: Replace -skip-rax-setup with -mskip-rax-setup.
18585 2016-04-20  Richard Biener  <rguenther@suse.de>
18587         * gimple-match.h (maybe_build_generic_op): Adjust prototype.
18588         * gimple-match-head.c (maybe_build_generic_op): Pass all ops
18589         by reference, clear op1 and op2 when GENERICizing BIT_FIELD_REF.
18590         (maybe_push_res_to_seq): Adjust.
18591         * gimple-fold.c (maybe_build_generic_op): Likewise.
18593 2016-04-20  Marek Polacek  <polacek@redhat.com>
18595         * tree-if-conv.c (is_false_predicate): For NULL_TREE return false
18596         rather than true.
18598 2016-04-20  Ilya Enkovich  <ilya.enkovich@intel.com>
18600         * config/i386/sse.md (vec_unpacks_lo_hi): Always
18601         use kmovw to support AVX512F target.
18603 2016-04-20  Bin Cheng  <bin.cheng@arm.com>
18605         * tree-scalar-evolution.c (interpret_rhs_expr): Handle BIT_AND_EXPR.
18607 2016-04-20  Marek Polacek  <polacek@redhat.com>
18609         PR tree-optimization/70725
18610         * tree-if-conv.c (is_false_predicate): New function.
18611         (predicate_mem_writes): Use it.
18613 2016-04-20  Richard Biener  <rguenther@suse.de>
18615         PR tree-optimization/70726
18616         * tree-vect-stmts.c (vectorizable_shift): Do not use scalar
18617         shift amounts from a pattern stmt operand.
18619 2016-04-20  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
18621         PR target/70674
18622         * config/s390/s390.c (s390_restore_gprs_from_fprs): Pick the new
18623         stack_restore_from_fpr pattern when restoring r15.
18624         (s390_optimize_prologue): Strip away the memory barrier in the
18625         parallel when trying to get rid of restore insns.
18626         * config/s390/s390.md ("stack_restore_from_fpr"): New insn
18627         definition for loading the stack pointer from an FPR.  Compared to
18628         the normal move insn this pattern includes a full memory barrier.
18630 2016-04-19  Jakub Jelinek  <jakub@redhat.com>
18632         PR middle-end/70680
18633         * gimplify.c (gimplify_omp_for): Call omp_notice_variable for
18634         implicitly linear or lastprivate iterator on the outer context.
18636 2016-04-19  H.J. Lu  <hongjiu.lu@intel.com>
18638         * config/i386/i386.c (ix86_legitimate_combined_insn): Remove
18639         alignment check.
18640         * config/i386/i386.md (ssememalign): Removed.
18641         * config/i386/sse.md: Remove ssememalign attribute from patterns.
18643 2016-04-19  H.J. Lu  <hongjiu.lu@intel.com>
18645         PR target/69201
18646         * config/i386/avx512bwintrin.h (_mm512_mask_loadu_epi16): Pass
18647         const short * to __builtin_ia32_loaddquhi512_mask.
18648         (_mm512_maskz_loadu_epi16): Likewise.
18649         (_mm512_mask_storeu_epi16): Pass short * to
18650         __builtin_ia32_storedquhi512_mask.
18651         (_mm512_mask_loadu_epi8): Pass const char * to
18652         __builtin_ia32_loaddquqi512_mask.
18653         (_mm512_maskz_loadu_epi8): Likewise.
18654         (_mm512_mask_storeu_epi8): Pass char * to
18655         __builtin_ia32_storedquqi512_mask.
18656         * config/i386/avx512fintrin.h (_mm512_loadu_pd): Pass
18657         const double * to __builtin_ia32_loadupd512_mask.
18658         (_mm512_mask_loadu_pd): Likewise.
18659         (_mm512_maskz_loadu_pd): Likewise.
18660         (_mm512_storeu_pd): Pass double * to
18661         __builtin_ia32_storeupd512_mask.
18662         (_mm512_mask_storeu_pd): Likewise.
18663         (_mm512_loadu_ps): Pass const float * to
18664         __builtin_ia32_loadups512_mask.
18665         (_mm512_mask_loadu_ps): Likewise.
18666         (_mm512_maskz_loadu_ps): Likewise.
18667         (_mm512_storeu_ps): Pass float * to
18668         __builtin_ia32_storeups512_mask.
18669         (_mm512_mask_storeu_ps): Likewise.
18670         (_mm512_mask_loadu_epi64): Pass const long long * to
18671         __builtin_ia32_loaddqudi512_mask.
18672         (_mm512_maskz_loadu_epi64): Likewise.
18673         (_mm512_mask_storeu_epi64): Pass long long *
18674         to __builtin_ia32_storedqudi512_mask.
18675         (_mm512_loadu_si512): Pass const int * to
18676         __builtin_ia32_loaddqusi512_mask.
18677         (_mm512_mask_loadu_epi32): Likewise.
18678         (_mm512_maskz_loadu_epi32): Likewise.
18679         (_mm512_storeu_si512): Pass int * to
18680         __builtin_ia32_storedqusi512_mask.
18681         (_mm512_mask_storeu_epi32): Likewise.
18682         * config/i386/avx512vlbwintrin.h (_mm256_mask_storeu_epi8): Pass
18683         char * to __builtin_ia32_storedquqi256_mask.
18684         (_mm_mask_storeu_epi8): Likewise.
18685         (_mm256_mask_loadu_epi16): Pass const short * to
18686         __builtin_ia32_loaddquhi256_mask.
18687         (_mm256_maskz_loadu_epi16): Likewise.
18688         (_mm_mask_loadu_epi16): Pass const short * to
18689         __builtin_ia32_loaddquhi128_mask.
18690         (_mm_maskz_loadu_epi16): Likewise.
18691         (_mm256_mask_loadu_epi8): Pass const char * to
18692         __builtin_ia32_loaddquqi256_mask.
18693         (_mm256_maskz_loadu_epi8): Likewise.
18694         (_mm_mask_loadu_epi8): Pass const char * to
18695         __builtin_ia32_loaddquqi128_mask.
18696         (_mm_maskz_loadu_epi8): Likewise.
18697         (_mm256_mask_storeu_epi16): Pass short * to.
18698         __builtin_ia32_storedquhi256_mask.
18699         (_mm_mask_storeu_epi16): Pass short * to.
18700         __builtin_ia32_storedquhi128_mask.
18701         * config/i386/avx512vlintrin.h (_mm256_mask_loadu_pd): Pass
18702         const double * to __builtin_ia32_loadupd256_mask.
18703         (_mm256_maskz_loadu_pd): Likewise.
18704         (_mm_mask_loadu_pd): Pass onst double * to
18705         __builtin_ia32_loadupd128_mask.
18706         (_mm_maskz_loadu_pd): Likewise.
18707         (_mm256_mask_storeu_pd): Pass double * to
18708         __builtin_ia32_storeupd256_mask.
18709         (_mm_mask_storeu_pd): Pass double * to
18710         __builtin_ia32_storeupd128_mask.
18711         (_mm256_mask_loadu_ps): Pass const float * to
18712         __builtin_ia32_loadups256_mask.
18713         (_mm256_maskz_loadu_ps): Likewise.
18714         (_mm_mask_loadu_ps): Pass const float * to
18715         __builtin_ia32_loadups128_mask.
18716         (_mm_maskz_loadu_ps): Likewise.
18717         (_mm256_mask_storeu_ps): Pass float * to
18718         __builtin_ia32_storeups256_mask.
18719         (_mm_mask_storeu_ps): ass float * to
18720         __builtin_ia32_storeups128_mask.
18721         (_mm256_mask_loadu_epi64): Pass const long long * to
18722         __builtin_ia32_loaddqudi256_mask.
18723         (_mm256_maskz_loadu_epi64): Likewise.
18724         (_mm_mask_loadu_epi64): Pass const long long * to
18725         __builtin_ia32_loaddqudi128_mask.
18726         (_mm_maskz_loadu_epi64): Likewise.
18727         (_mm256_mask_storeu_epi64): Pass long long * to
18728         __builtin_ia32_storedqudi256_mask.
18729         (_mm_mask_storeu_epi64): Pass long long * to
18730         __builtin_ia32_storedqudi128_mask.
18731         (_mm256_mask_loadu_epi32): Pass const int * to
18732         __builtin_ia32_loaddqusi256_mask.
18733         (_mm256_maskz_loadu_epi32): Likewise.
18734         (_mm_mask_loadu_epi32): Pass const int * to
18735         __builtin_ia32_loaddqusi128_mask.
18736         (_mm_maskz_loadu_epi32): Likewise.
18737         (_mm256_mask_storeu_epi32): Pass int * to
18738         __builtin_ia32_storedqusi256_mask.
18739         (_mm_mask_storeu_epi32): Pass int * to
18740         __builtin_ia32_storedqusi128_mask.
18741         * config/i386/i386-builtin-types.def (PCSHORT): New.
18742         (PINT64): Likewise.
18743         (V64QI_FTYPE_PCCHAR_V64QI_UDI): Likewise.
18744         (V32HI_FTYPE_PCSHORT_V32HI_USI): Likewise.
18745         (V32QI_FTYPE_PCCHAR_V32QI_USI): Likewise.
18746         (V16SF_FTYPE_PCFLOAT_V16SF_UHI): Likewise.
18747         (V8DF_FTYPE_PCDOUBLE_V8DF_UQI): Likewise.
18748         (V16SI_FTYPE_PCINT_V16SI_UHI): Likewise.
18749         (V16HI_FTYPE_PCSHORT_V16HI_UHI): Likewise.
18750         (V16QI_FTYPE_PCCHAR_V16QI_UHI): Likewise.
18751         (V8SF_FTYPE_PCFLOAT_V8SF_UQI): Likewise.
18752         (V8DI_FTYPE_PCINT64_V8DI_UQI): Likewise.
18753         (V8SI_FTYPE_PCINT_V8SI_UQI): Likewise.
18754         (V8HI_FTYPE_PCSHORT_V8HI_UQI): Likewise.
18755         (V4DF_FTYPE_PCDOUBLE_V4DF_UQI): Likewise.
18756         (V4SF_FTYPE_PCFLOAT_V4SF_UQI): Likewise.
18757         (V4DI_FTYPE_PCINT64_V4DI_UQI): Likewise.
18758         (V4SI_FTYPE_PCINT_V4SI_UQI): Likewise.
18759         (V2DF_FTYPE_PCDOUBLE_V2DF_UQI): Likewise.
18760         (V2DI_FTYPE_PCINT64_V2DI_UQI): Likewise.
18761         (VOID_FTYPE_PDOUBLE_V8DF_UQI): Likewise.
18762         (VOID_FTYPE_PDOUBLE_V4DF_UQI): Likewise.
18763         (VOID_FTYPE_PDOUBLE_V2DF_UQI): Likewise.
18764         (VOID_FTYPE_PFLOAT_V16SF_UHI): Likewise.
18765         (VOID_FTYPE_PFLOAT_V8SF_UQI): Likewise.
18766         (VOID_FTYPE_PFLOAT_V4SF_UQI): Likewise.
18767         (VOID_FTYPE_PINT64_V8DI_UQI): Likewise.
18768         (VOID_FTYPE_PINT64_V4DI_UQI): Likewise.
18769         (VOID_FTYPE_PINT64_V2DI_UQI): Likewise.
18770         (VOID_FTYPE_PINT_V16SI_UHI): Likewise.
18771         (VOID_FTYPE_PINT_V8SI_UHI): Likewise.
18772         (VOID_FTYPE_PINT_V4SI_UHI): Likewise.
18773         (VOID_FTYPE_PSHORT_V32HI_USI): Likewise.
18774         (VOID_FTYPE_PSHORT_V16HI_UHI): Likewise.
18775         (VOID_FTYPE_PSHORT_V8HI_UQI): Likewise.
18776         (VOID_FTYPE_PCHAR_V64QI_UDI): Likewise.
18777         (VOID_FTYPE_PCHAR_V32QI_USI): Likewise.
18778         (VOID_FTYPE_PCHAR_V16QI_UHI): Likewise.
18779         (V64QI_FTYPE_PCV64QI_V64QI_UDI): Removed.
18780         (V32HI_FTYPE_PCV32HI_V32HI_USI): Likewise.
18781         (V32QI_FTYPE_PCV32QI_V32QI_USI): Likewise.
18782         (V16HI_FTYPE_PCV16HI_V16HI_UHI): Likewise.
18783         (V16QI_FTYPE_PCV16QI_V16QI_UHI): Likewise.
18784         (V8HI_FTYPE_PCV8HI_V8HI_UQI): Likewise.
18785         (VOID_FTYPE_PV32HI_V32HI_USI): Likewise.
18786         (VOID_FTYPE_PV16HI_V16HI_UHI): Likewise.
18787         (VOID_FTYPE_PV8HI_V8HI_UQI): Likewise.
18788         (VOID_FTYPE_PV64QI_V64QI_UDI): Likewise.
18789         (VOID_FTYPE_PV32QI_V32QI_USI): Likewise.
18790         (VOID_FTYPE_PV16QI_V16QI_UHI): Likewise.
18791         * config/i386/i386.c (ix86_emit_save_reg_using_mov): Don't
18792         use UNSPEC_STOREU.
18793         (ix86_emit_restore_sse_regs_using_mov): Don't use UNSPEC_LOADU.
18794         (ix86_avx256_split_vector_move_misalign): Don't use unaligned
18795         load nor store.
18796         (ix86_expand_vector_move_misalign): Likewise.
18797         (bdesc_special_args): Use CODE_FOR_movvNXY_internal and pointer
18798         to scalar function prototype for unaligned load/store builtins.
18799         (ix86_expand_special_args_builtin): Updated.
18800         * config/i386/sse.md (UNSPEC_LOADU): Removed.
18801         (UNSPEC_STOREU): Likewise.
18802         (VI_ULOADSTORE_BW_AVX512VL): Likewise.
18803         (VI_ULOADSTORE_F_AVX512VL): Likewise.
18804         (ssescalarsize): Handle V4TI, V2TI and V1TI.
18805         (<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>): Likewise.
18806         (*<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>): Likewise.
18807         (<sse>_storeu<ssemodesuffix><avxsizesuffix>): Likewise.
18808         (<avx512>_storeu<ssemodesuffix><avxsizesuffix>_mask): Likewise.
18809         (<sse2_avx_avx512f>_loaddqu<mode><mask_name>): Likewise.
18810         (*<sse2_avx_avx512f>_loaddqu<mode><mask_name>"): Likewise.
18811         (sse2_avx_avx512f>_storedqu<mode>): Likewise.
18812         (<avx512>_storedqu<mode>_mask): Likewise.
18813         (*sse4_2_pcmpestr_unaligned): Likewise.
18814         (*sse4_2_pcmpistr_unaligned): Likewise.
18815         (*mov<mode>_internal): Renamed to ...
18816         (mov<mode>_internal): This.  Remove check of AVX and IAMCU on
18817         misaligned operand.  Replace vmovdqu64 with vmovdqu<ssescalarsize>.
18818         (movsd/movhpd to movupd peephole): Don't use UNSPEC_LOADU.
18819         (movlpd/movhpd to movupd peephole): Don't use UNSPEC_STOREU.
18821 2016-04-19  Richard Biener  <rguenther@suse.de>
18823         PR tree-optimization/70171
18824         * tree-ssa-phiprop.c: Include stor-layout.h.
18825         (phiprop_insert_phi): Handle the aggregate copy case.
18826         (propagate_with_phi): Likewise.
18828 2016-04-19  Uros Bizjak  <ubizjak@gmail.com>
18830         * config/i386/i386.c (ix86_decompose_address): Use lowpart_subreg
18831         instead of simplify_gen_subreg (... , 0).
18832         (ix86_delegitimize_address): Ditto.
18833         (ix86_split_divmod): Ditto.
18834         (ix86_split_copysign_const): Ditto.
18835         (ix86_split_copysign_var): Ditto.
18836         (ix86_expand_args_builtin): Ditto.
18837         (ix86_expand_round_builtin): Ditto.
18838         (ix86_expand_special_args_builtin): Ditto.
18839         * config/i386/i386.md (TARGET_USE_VECTOR_FP_CONVERTS splitters): Ditto.
18840         (TARGET_SSE_PARTIAL_REG_DEPENDENCY splitters and peephole2s): Ditto.
18841         (udivmodqi4): Ditto.
18842         (absneg splitters): Ditto.
18843         (*jcc_bt<mode>_1): Ditto.
18845 2016-04-19  Richard Biener  <rguenther@suse.de>
18847         PR tree-optimization/70724
18848         * tree-ssa-sccvn.c (scc_vn_restore_ssa_info): Split SSA info
18849         restoring out from ...
18850         (free_scc_vn): ... here.
18851         * tree-ssa-sccvn.h (scc_vn_restore_ssa_info): Declare.
18852         * tres-ssa-pre.c (pass_pre::execute): Restore SSA info before
18853         tail merging.
18854         (pass_fre::execute): Restore SSA info.
18856 2016-04-19  Richard Biener  <rguenther@suse.de>
18858         * gimple-walk.h (struct walk_stmt_info): Add stmt member.
18859         * gimple-walk.c (walk_gimple_op): Initialize it.
18860         (walk_gimple_asm): Set wi->is_lhs before each callback invocation.
18861         * tree-inline.c (remap_gimple_op_r): Set SSA_NAME_DEF_STMT when
18862         remapping SSA names of defs.
18863         (copy_bb): Remove walk over all SSA defs and SSA_NAME_DEF_STMT
18864         adjustment.
18866 2016-04-18  Vladimir Makarov  <vmakarov@redhat.com>
18868         PR middle-end/70689
18869         * lra-constraints.c (equiv_substition_p): New.
18870         (process_alt_operands): Use it.
18871         (swap_operands): Swap it.
18872         (curr_insn_transform): Update it.
18874 2016-04-18  Michael Matz  <matz@suse.de>
18876         * tree.h (TYPE_ALIGN, DECL_ALIGN): Return shifted amount.
18877         (SET_TYPE_ALIGN, SET_DECL_ALIGN): New.
18878         * tree-core.h (tree_type_common.align): Use bit-field.
18879         (tree_type_common.spare): New.
18880         (tree_decl_common.off_align): Make smaller.
18881         (tree_decl_common.align): Use bit-field.
18883         * expr.c (expand_expr_addr_expr_1): Use SET_TYPE_ALIGN.
18884         * omp-low.c (install_var_field): Use SET_DECL_ALIGN.
18885         (scan_sharing_clauses): Ditto.
18886         (finish_taskreg_scan): Use SET_DECL_ALIGN and SET_TYPE_ALIGN.
18887         (omp_finish_file): Ditto.
18888         * stor-layout.c (do_type_align): Use SET_DECL_ALIGN.
18889         (layout_decl): Ditto.
18890         (relayout_decl): Ditto.
18891         (finalize_record_size): Use SET_TYPE_ALIGN.
18892         (finalize_type_size): Ditto.
18893         (finish_builtin_struct): Ditto.
18894         (layout_type): Ditto.
18895         (initialize_sizetypes): Ditto.
18896         * targhooks.c (std_gimplify_va_arg_expr): Use SET_TYPE_ALIGN.
18897         * tree-nested.c (insert_field_into_struct): Use SET_TYPE_ALIGN.
18898         (lookup_field_for_decl): Use SET_DECL_ALIGN.
18899         (get_chain_field): Ditto.
18900         (get_trampoline_type): Ditto.
18901         (get_nl_goto_field): Ditto.
18902         * tree-streamer-in.c (unpack_ts_decl_common_value_fields): Use
18903         SET_DECL_ALIGN.
18904         (unpack_ts_type_common_value_fields): Use SET_TYPE_ALIGN.
18905         * gimple-expr.c (copy_var_decl): Use SET_DECL_ALIGN.
18906         * tree.c (make_node_stat): Use SET_DECL_ALIGN and SET_TYPE_ALIGN.
18907         (build_qualified_type): Use SET_TYPE_ALIGN.
18908         (build_aligned_type, build_range_type_1): Ditto.
18909         (build_atomic_base): Ditto.
18910         (build_common_tree_nodes): Ditto.
18911         * cfgexpand.c (align_local_variable): Use SET_DECL_ALIGN.
18912         (expand_one_stack_var_at): Ditto.
18913         * coverage.c (build_var): Use SET_DECL_ALIGN.
18914         * except.c (init_eh): Ditto.
18915         * function.c (assign_parm_setup_block): Ditto.
18916         * symtab.c (increase_alignment_1): Ditto.
18917         * tree-ssa-ccp.c (fold_builtin_alloca_with_align): Ditto.
18918         * tree-vect-stmts.c (ensure_base_align): Ditto.
18919         * varasm.c (align_variable): Ditto.
18920         (assemble_variable): Ditto.
18921         (build_constant_desc): Ditto.
18922         (output_constant_def_contents): Ditto.
18924         * config/arm/arm.c (arm_relayout_function): Use SET_DECL_ALIGN.
18925         * config/avr/avr.c (avr_adjust_type_node): Use SET_TYPE_ALIGN.
18926         * config/mips/mips.c (mips_std_gimplify_va_arg_expr): Ditto.
18927         * config/msp430/msp430.c (msp430_gimplify_va_arg_expr): Ditto.
18928         * config/spu/spu.c (spu_build_builtin_va_list): Use SET_DECL_ALIGN.
18930 2016-04-18  H.J. Lu  <hongjiu.lu@intel.com>
18932         PR target/70708
18933         * config/i386/sse.md (sse2_loadlpd): Accept load from "xm" and
18934         replace %vmovsd with "%vmovq".
18935         (vec_concatv2df): Likewise.
18937 2016-04-18  Uros Bizjak  <ubizjak@gmail.com>
18939         * config/i386/mmx.md (*vec_extractv2sf_0): Use gen_lowpart.
18940         (*vec_extractv2si_0): Ditto.
18941         * config/i386/sse.md (*vec_extractv4sf_0): Ditto.
18942         (zero_extended_scalar_load_operand splitters): Ditto.
18943         (vec_extract splitters): Ditto.
18944         (*vec_extractv4si_0_zext): Ditto.
18945         (avx_<castmode><avxsizesuffix>_<castmode>): Use gen_lowpart
18946         and lowpart_subreg.
18947         (avx512f_<castmode><avxsizesuffix>_<castmode>): Ditto.
18948         (avx512f_<castmode><avxsizesuffix>_256<castmode>): Ditto.
18949         (*sse4_1_extractps): Use lowpart_subreg.
18950         * config/i386/i386.md (x87 floatsplitter): Use gen_lowpart.
18952 2016-04-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18954         * doc/install.texi (Specific, i?86-*-solaris2.10): Update gas and
18955         gld requirements.
18956         (Specific, *-*-solaris2*): Update Solaris 11 bundled gcc versions.
18957         Mention Solaris 11 packaging changes.
18958         Update gas and gld requirements.
18959         Remove reference to pre-Solaris 10 bug.
18960         (Specific, sparc-sun-solaris2*): Remove reference to pre-Solaris 10
18961         systems and bugs.
18962         (Specific, sparc64-*-solaris2*): Remove reference to bootstrap
18963         with cc.
18965 2016-04-17  Jan Hubicka  <jh@suse.cz>
18967         * tree-ssa-loop-ivopts.c (avg_loop_niter): Use also
18968         max_loop_iterations_int.
18970 2016-04-18  Richard Biener  <rguenther@suse.de>
18972         PR tree-optimization/43434
18973         * tree-ssa-structalias.c (struct vls_data): New.
18974         (visit_loadstore): Handle all pointer-based accesses.
18975         (compute_dependence_clique): Compute a bitmap of restrict tags
18976         assigned bases and pass it to visit_loadstore.
18978 2016-04-18  Matthew Wahab  <matthew.wahab@arm.com>
18980         PR target/70711
18981         * config/arm/bpabi.h (BE8_LINK_SPEC): Add entries for armv8+crc,
18982         armv8.1-a and armv8.1-a+crc.
18984 2016-04-18  Richard Biener  <rguenther@suse.de>
18986         PR tree-optimization/70701
18987         * tree-ssa-sccvn.c (vn_reference_lookup_3): Resolve fully constant
18988         references after translating through a memcpy.
18990 2016-04-18  Richard Biener  <rguenther@suse.de>
18992         * tree-ssa-pre.c (postorder, postorder_num): Make locals ...
18993         (compute_antic): ... here.  For partial antic use regular
18994         postorder and scrap iteration.
18995         (compute_partial_antic_aux): Remove unused return value.
18996         (init_pre): Do not allocate postorder.
18997         (fini_pre): Do not free postorder.
18999 2016-04-18  Richard Biener  <rguenther@suse.de>
19001         PR middle-end/37870
19002         * expmed.c (extract_bit_field_1): Remove broken case
19003         using a wider MODE_INT mode.
19005 2016-04-18  Segher Boessenkool  <segher@kernel.crashing.org>
19007         * has-brig.c (lendian16): Don't try to use __builtin_bswap16
19008         unless compiling with at least GCC-4.8.
19010 2016-04-17  Jan Hubicka  <jh@suse.cz>
19012         PR bootstrap/70706
19013         * graphite.c (graphite_finalize): Update call to
19014         tree_estimate_probability.
19015         * predict.h (tree_estimate_probability): Update prototype.
19017 2016-04-17  Jan Hubicka  <jh@suse.cz>
19019         * predict.c (combine_predictions_for_bb): Add dry_run parmaeter.
19020         (tree_estimate_probability): Likewise.
19021         (pass_profile::execute): Update.
19022         (report_predictor_hitrates): New function.
19023         * profile.c (compute_branch_probabilities): Use it.
19024         * predict.h (report_predictor_hitrates): Declare.
19026 2016-04-17  Jan Hubicka  <jh@suse.cz>
19028         PR ipa/70018
19029         * cgraph.h (cgraph_node::set_const_flag,
19030         cgraph_node::set_pure_flag): Update prototype to return bool;
19031         update comment.
19032         * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases): Thunks
19033         of interposable symbol are interposable, too.
19034         (cgraph_set_const_flag_1): Rename to ...
19035         (set_const_flag_1): ... this one; change to self recursive function
19036         instead of call_for_symbol_thunks_and_aliases. Handle correctly
19037         clearnig the flag in all variants and also virtual thunks of const
19038         functions are pure; track if any change was done.
19039         (cgraph_node::set_const_flag): Update.
19040         (struct set_pure_flag_info): New struct.
19041         (cgraph_set_pure_flag_1): Rename to ...
19042         (set_pure_flag_1): ... this one; take set_pure_flag_info parameter
19043         rather than pointer encoded flags; track if any changes was done;
19044         handle correctly clearning flag and setting flag of aliases already
19045         declared const.
19046         (cgraph_node::set_pure_flag): Update.
19047         (cgraph_node::set_nothrow_flag): Handle correctly clearning the flag.
19049 2016-04-17  Tom de Vries  <tom@codesourcery.com>
19051         PR other/70433
19052         * pretty-print.c (pp_write_text_as_dot_label_to_stream): Escape
19053         backslash in label.
19055 2016-04-17  Tom de Vries  <tom@codesourcery.com>
19057         * pretty-print.c (pp_write_text_as_dot_label_to_stream): Classify chars
19058         '{}<> ' as escape-for-record.
19060 2016-04-17  Tom de Vries  <tom@codesourcery.com>
19062         * pretty-print.c (pp_write_text_as_dot_label_to_stream): Simplify loop
19063         structure.
19065 2016-04-17  Tom de Vries  <tom@codesourcery.com>
19067         PR other/70185
19068         * tree-pass.h (class opt_pass): Remove graph_dump_initialized member.
19069         * dumpfile.h (struct dump_file_info): Add graph_dump_initialized field.
19070         * dumpfile.c (dump_files): Initialize graph_dump_initialized field.
19071         * passes.c (finish_optimization_passes): Only call
19072         finish_graph_dump_file if dfi->graph_dump_initialized.
19073         (execute_function_dump, pass_init_dump_file): Use
19074         dfi->graph_dump_initialized instead of pass->graph_dump_initialized.
19076 2016-04-17  Tom de Vries  <tom@codesourcery.com>
19078         PR tree-optimization/70256
19079         * tree-ssa-structalias.c (dump_varinfo, debug_varinfo, dump_varmap)
19080         (debug_varmap): New function.
19082 2016-04-17  Tom de Vries  <tom@codesourcery.com>
19084         PR other/70183
19085         * passes.c (pass_manager::register_pass): Propagate pflags.
19087 2016-04-17  Tom de Vries  <tom@codesourcery.com>
19089         PR other/68875
19090         * pass_manager.h (TERMINATE_PASS_LIST): Add pass argument.
19091         * passes.c (pass_manager::pass_manager): Declare and init p_start in
19092         INSERT_PASSES_AFTER.  Add pass parameter to TERMINATE_PASS_LIST, and
19093         check if it's equal to p_start.
19094         * passes.def: Add arguments to TERMINATE_PASS_LISTs.
19096 2016-04-15  Jan Hubicka  <jh@suse.cz>
19098         PR ipa/70018
19099         * cgraph.c (cgraph_set_const_flag_1): Only set as pure if
19100         function does not bind to current def.
19101         * ipa-pure-const.c (worse_state): Add FROM and TO parameters;
19102         handle conservatively calls to functions that does not need to bind
19103         to current def.
19104         (check_call): Update call of worse_state.
19105         (ignore_edge_for_nothrow): Update.
19106         (ignore_edge_for_pure_const): Likewise.
19107         (propagate_pure_const): Update calls to worse_state.
19108         (skip_function_for_local_pure_const): Reformat comments.
19110 2016-04-15  Jan Hubicka  <jh@suse.cz>
19112         PR ipa/70018
19113         * cgraph.c (cgraph_node::get_availability): Add REF parameter.
19114         (cgraph_node::function_symbol): Likewise.
19115         (cgraph_node::function_or_virtual_thunk_symbol): Likewise.
19116         * cgraph.h (symtab_node::get_availabbility): Add REF parameter.
19117         (symtab_node::ultimate_alias_target): Add REF parameter.
19118         (symtab_node::binds_to_current_def_p): Declare.
19119         (symtab_node;:ultimate_alias_target_1): Add REF parameter.
19120         (cgraph_node::function_symbol): Likewise.
19121         (cgraph_node::function_or_virtual_thunk_symbol): Likewise.
19122         (cgraph_node::get_availability): Likewise.
19123         (cgraph_edge::binds_to_current_def_p): New inline function.
19124         (varpool_node::get_availability): Add REF parameter.
19125         (varpool_node::ultimate_alias_target): Likewise.
19126         * symtab.c (symtab_node::ultimate_alias_target_1): Likewise.
19127         (symtab_node::binds_to_current_def_p): Likewise.
19128         * varpool.c (varpool_node::get_availability): Likewise.
19130 2016-04-15  Kirill Yukhin  <kirill.yukhin@intel.com>
19132         PR target/70662
19133         * config/i386/sse.md(define_insn "<avx512>_vec_dup<mode><mask_name>"):
19134         Fix mode size check.
19136 2016-04-15  Jakub Jelinek  <jakub@redhat.com>
19138         * BASE-VER: Set to 7.0.0.
19140 2016-04-15  Alexander Monakov  <amonakov@ispras.ru>
19142         * config/nvptx/nvptx.opt (moptimize): Add a period at end of help text.
19144 2016-04-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
19146         * doc/invoke.texi (ARM Options): Add note on deprecation of pre-ARMv4T
19147         architecture revisions.
19149 2016-04-15  Bernd Schmidt  <bschmidt@redhat.com>
19151         * config/i386/i386-protos.h (ix86_using_red_zone): Declare.
19152         * config/i386/i386.c (ix86_using_red_zone): No longer static.
19153         * config/i386/i386.md (stack decrement to push peepholes): Guard
19154         with !x86_using_red_zone ().
19156 2016-04-15  Jakub Jelinek  <jakub@redhat.com>
19158         PR c++/70675
19159         * tree-pretty-print.c (do_niy): Add FLAGS argument, pass it down
19160         to dump_generic_node.
19161         (NIY): Pass also flags to do_niy.
19163 2016-04-15  Thomas Schwinge  <thomas@codesourcery.com>
19165         * omp-low.c (simd_clone_struct_alloc, simd_clone_struct_copy)
19166         (simd_clone_vector_of_formal_parm_types)
19167         (simd_clone_clauses_extract, simd_clone_compute_base_data_type)
19168         (simd_clone_mangle, simd_clone_create)
19169         (simd_clone_adjust_return_type, create_tmp_simd_array)
19170         (simd_clone_adjust_argument_types, simd_clone_init_simd_arrays)
19171         (struct modify_stmt_info, ipa_simd_modify_stmt_ops)
19172         (ipa_simd_modify_function_body, simd_clone_linear_addend)
19173         (simd_clone_adjust, expand_simd_clones, ipa_omp_simd_clone)
19174         (pass_data_omp_simd_clone, class pass_omp_simd_clone)
19175         (pass_omp_simd_clone::gate, make_pass_omp_simd_clone): Move into...
19176         * omp-simd-clone.c: ... this new file.
19177         (simd_clone_vector_of_formal_parm_types): Make it static.
19178         * Makefile.in (OBJS): Add omp-simd-clone.o.
19180 2016-04-15  Kirill Yukhin  <kirill.yukhin@intel.com>
19182         PR target/70662
19183         * config/i386/sse.md: Use proper memory operand modifiers.
19186 2016-04-15  Richard Biener  <rguenther@suse.de>
19187         Alan Modra  <amodra@gmail.com>
19189         PR tree-optimization/70130
19190         * tree-vect-data-refs.c (vect_supportable_dr_alignment): Detect
19191         when alignment stays not the same and no not use the realign
19192         scheme then.
19194 2016-04-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
19196         PR target/70669
19197         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
19198         direct move handlers for KFmode. Change TFmode handlers test from
19199         FLOAT128_IEEE_P to FLOAT128_VECTOR_P.
19201 2016-04-14  Jakub Jelinek  <jakub@redhat.com>
19203         PR c++/70594
19204         * ipa-utils.h (polymorphic_ctor_dtor_p): New prototype.
19205         * ipa-polymorphic-call.c (polymorphic_ctor_dtor_p): New function.
19206         (inlined_polymorphic_ctor_dtor_block_p): Use it.
19207         * tree-ssa-live.c (remove_unused_scope_block_p): When
19208         in_ctor_dtor_block, avoid discarding not just BLOCKs with
19209         BLOCK_ABSTRACT_ORIGIN being FUNCTION_DECL, but even when
19210         block_ultimate_origin is FUNCTION_DECL.
19211         (remove_unused_locals): If current_function_decl is
19212         polymorphic_ctor_dtor_p, pass initial true to
19213         remove_unused_scope_block_p' is_ctor_dtor_block.
19215 2016-04-14  Martin Sebor  <msebor@redhat.com>
19217         PR c++/69517
19218         PR c++/70019
19219         PR c++/70588
19220         * doc/extend.texi (Variable Length): Revert.
19222 2016-04-14  Marek Polacek  <polacek@redhat.com>
19223             Jan Hubicka  <hubicka@ucw.cz>
19225         PR c++/70029
19226         * tree.c (verify_type): Disable the canonical type of main variant
19227         check.
19229 2016-04-14  Jason Merrill  <jason@redhat.com>
19231         * cfgexpand.c, expr.c: Revert previous change.
19233 2016-04-14  Cesar Philippidis  <cesar@codesourcery.com>
19235         PR middle-end/70643
19236         * omp-low.c (lower_oacc_reductions): Check for TREE_CONSTANT
19237         when building a mem ref for the incoming reduction variable.
19239 2016-04-14  Richard Biener  <rguenther@suse.de>
19241         PR tree-optimization/70614
19242         * tree-scalar-evolution.c (analyze_evolution_in_loop): Terminate
19243         loop if the evolution dropped to chrec_dont_know.
19244         (interpret_condition_phi): Likewise.
19246 2016-04-14  Richard Biener  <rguenther@suse.de>
19248         PR tree-optimization/70623
19249         * tree-ssa-pre.c (changed_blocks): Make global ...
19250         (compute_antic): ... local here.  Move and fix worklist
19251         handling here.  Do not clear EDGE_DFS_BACK or call mark_dfs_back_edges.
19252         (compute_antic_aux): Add dumping for MAX assumed succs.  Remove
19253         worklist handling, dump when ANTIC_IN changed.
19254         (compute_partial_antic_aux): Remove worklist handling.
19255         (init_pre): Do not compute post dominators.  Add a comment about
19256         the CFG order chosen.
19257         (fini_pre): Do not free post dominators.
19259 2016-04-13  Martin Sebor  <msebor@redhat.com>
19261         PR c++/69517
19262         PR c++/70019
19263         PR c++/70588
19264         * doc/extend.texi (Variable Length): Document C++ specifics.
19266 2016-04-13  Jakub Jelinek  <jakub@redhat.com>
19268         PR c++/70641
19269         * ipa-pure-const.c (pass_nothrow::execute): Call maybe_clean_eh_stmt
19270         on all recursive call stmts.  Return TODO_cleanup_cfg if any dead
19271         eh edges have been purged.
19273         PR c++/70594
19274         * tree-sra.c (create_access_replacement,
19275         get_replaced_param_substitute): Set DECL_NAMELESS on repl if it
19276         gets fancy name.
19277         * tree-pretty-print.c (dump_fancy_name): New function.
19278         (dump_decl_name, dump_generic_node): Use it.
19280 2016-04-13  Jason Merrill  <jason@redhat.com>
19282         * cfgexpand.c (pass_expand::execute): Handle attribute "abi warning".
19283         * expr.c (expand_expr_real_1): Likewise.
19285 2016-04-13  Ilya Enkovich  <ilya.enkovich@intel.com>
19287         * config/i386/i386.md (kunpckhi): Swap operands.
19288         (kunpcksi): Likewise.
19289         (kunpckdi): Likewise.
19290         * config/i386/sse.md (vec_pack_trunc_qi): Likewise.
19291         (vec_pack_trunc_<mode>): Likewise.
19293 2016-04-13  Jakub Jelinek  <jakub@redhat.com>
19295         PR debug/70628
19296         * explow.c (convert_memory_address_addr_space_1): Formatting fix.
19298         PR middle-end/70633
19299         * gimplify.c (gimplify_init_constructor): Clear TREE_STATIC if
19300         gimplification turns some element into non-constant.
19302         PR debug/70628
19303         * rtl.h (convert_memory_address_addr_space_1): New prototype.
19304         * explow.c (convert_memory_address_addr_space_1): No longer static,
19305         add NO_EMIT argument and don't call convert_modes if true, pass
19306         it down recursively, remove break after return.
19307         (convert_memory_address_addr_space): Adjust caller.
19308         * simplify-rtx.c (simplify_unary_operation_1): Call
19309         convert_memory_address_addr_space_1 instead of convert_memory_address,
19310         if it returns NULL, don't simplify.
19312 2016-04-12  Eric Botcazou  <ebotcazou@adacore.com>
19314         PR target/70630
19315         * config/sparc/sparc.c (sparc_compute_frame_size): Add parentheses.
19317 2016-04-12  Jakub Jelinek  <jakub@redhat.com>
19319         * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
19320         Bump the upper SIMDLEN limits, so that if the return type or
19321         characteristic type if the return type is void can be passed in
19322         all available SSE2/AVX/AVX2/AVX512-F registers, the SIMDLEN is
19323         allowed.
19325 2016-04-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
19327         PR target/70640
19328         * config/rs6000/rs6000.md (ieee_128bit_vsx_neg<mode>2_internal):
19329         Do not use "=" constraint on an input constraint.
19330         (ieee_128bit_vsx_abs<mode>2_internal): Likewise.
19331         (ieee_128bit_vsx_nabs<mode>2_internal): Likewise.
19332         (ieee_128bit_vsx_nabs<mode>2): Correct splitter so that it
19333         generates (neg (abs ...)) instead of (abs ...).
19335 2016-04-12  Jakub Jelinek  <jakub@redhat.com>
19337         PR rtl-optimization/70596
19338         * lra-spills.c (spill_pseudos): Don't delete debug insns, instead
19339         just invalidate LRA data and reset them.  Adjust dump wording.
19341 2016-04-12  Martin Liska  <mliska@suse.cz>
19343         Revert
19344         2016-03-30  Jan Hubicka  <hubicka@ucw.cz>
19346         * tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can't get realistic
19347         estimates here.
19348         * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also
19349         max_loop_iterations_int.
19350         (tree_unswitch_outer_loop): Likewise.
19351         * tree-ssa-loop-ivopts.c (avg_loop_niter): Likewise.
19352         * tree-vect-loop.c (vect_analyze_loop_2): Likewise.
19354 2016-04-12  Tom de Vries  <tom@codesourcery.com>
19356         PR tree-optimization/68756
19357         * graphite-isl-ast-to-gimple.c (copy_cond_phi_args): Use new_expr
19358         instead of new_name.
19360 2016-04-12  Jakub Jelinek  <jakub@redhat.com>
19362         PR tree-optimization/70602
19363         * tree-sra.c (generate_subtree_copies): Don't write anything into
19364         constant pool decls.
19366         * omp-low.c (lower_omp_target): Use GOMP_MAP_FIRSTPRIVATE_INT
19367         regardless whether there are depend clauses or not.
19369 2016-04-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
19371         PR target/70381
19372         * config/rs6000/rs6000.c (rs6000_opt_masks): Disable using the
19373         target attribute and pragma from changing the -mfloat128
19374         and -mfloat128-hardware options.
19376         * doc/extend.texi (Additional Floating Types): Document PowerPC
19377         __float128 restrictions.
19379 2016-04-11  James Greenhalgh  <james.greenhalgh@arm.com>
19381         PR target/70133
19382         * config/aarch64/driver-aarch64.c
19383         (aarch64_get_extension_string_for_isa_flags): New.
19384         (arch_extension): Rename to...
19385         (aarch64_arch_extension): ...This.
19386         (ext_to_feat_string): Rename to...
19387         (aarch64_extensions): ...This.
19388         (aarch64_core_data): Keep track of architecture extension flags.
19389         (cpu_data): Rename to...
19390         (aarch64_cpu_data): ...This.
19391         (aarch64_arch_driver_info): Keep track of architecture extension
19392         flags.
19393         (get_arch_name_from_id): Rename to...
19394         (get_arch_from_id): ...This, change return type.
19395         (host_detect_local_cpu): Update and reformat for renames, handle
19396         extensions through common infrastructure.
19398 2016-04-11  James Greenhalgh  <james.greenhalgh@arm.com>
19400         PR target/70133
19401         * config/aarch64/aarch64-common.c (aarch64_option_extension): Keep
19402         track of a canonical flag name.
19403         (all_extensions): Likewise.
19404         (arch_to_arch_name): Also track extension flags enabled by the arch.
19405         (all_architectures): Likewise.
19406         (aarch64_parse_extension): Move to here.
19407         (aarch64_get_extension_string_for_isa_flags): Take a new argument,
19408         rework.
19409         (aarch64_rewrite_selected_cpu): Update for above change.
19410         * config/aarch64/aarch64-option-extensions.def: Rework the way flags
19411         are handled, such that the single explicit value enabled by an
19412         extension is kept seperate from the implicit values it also enables.
19413         * config/aarch64/aarch64-protos.h (aarch64_parse_opt_result): Move
19414         to here.
19415         (aarch64_parse_extension): New.
19416         * config/aarch64/aarch64.c (aarch64_parse_opt_result): Move from
19417         here to config/aarch64/aarch64-protos.h.
19418         (aarch64_parse_extension): Move from here to
19419         common/config/aarch64/aarch64-common.c.
19420         (aarch64_option_print): Update.
19421         (aarch64_declare_function_name): Likewise.
19422         (aarch64_start_file): Likewise.
19423         * config/aarch64/driver-aarch64.c (arch_extension): Keep track of
19424         the canonical flag for extensions.
19425         * config.gcc (aarch64*-*-*): Extend regex for capturing extension
19426         flags.
19428 2016-04-11  James Greenhalgh  <james.greenhalgh@arm.com>
19430         * config/aarch64/aarch64.h (AARCH64_FL_FOR_ARCH8_1): Also add
19431         AARCH64_FL_CRC.
19433 2016-04-09  Tom de Vries  <tom@codesourcery.com>
19435         PR tree-optimization/68953
19436         * graphite-sese-to-poly.c (pdr_add_memory_accesses): Order accesses from
19437         first to last subscript.
19439 2016-04-09  Jakub Jelinek  <jakub@redhat.com>
19441         PR tree-optimization/70586
19442         * tree-ssa-ifcombine.c (bb_no_side_effects_p): Return false
19443         for any calls.
19445 2016-04-08  Cesar Philippidis  <cesar@codesourcery.com>
19447         PR lto/70289
19448         PR ipa/70348
19449         PR tree-optimization/70373
19450         PR middle-end/70533
19451         PR middle-end/70534
19452         PR middle-end/70535
19453         * gimplify.c (gimplify_adjust_omp_clauses): Add or adjust data
19454         clauses for acc parallel reductions as necessary.  Error on those
19455         that are private.
19456         * omp-low.c (scan_sharing_clauses): Don't install variables which
19457         are used in acc parallel reductions.
19458         (lower_rec_input_clauses): Remove dead code.
19459         (lower_oacc_reductions): Add support for reference reductions.
19460         (lower_reduction_clauses): Remove dead code.
19461         (lower_omp_target): Don't remap variables appearing in acc parallel
19462         reductions.
19463         * tree.h (OMP_CLAUSE_MAP_IN_REDUCTION): New macro.
19465 2016-04-08  Jakub Jelinek  <jakub@redhat.com>
19467         PR middle-end/70593
19468         * tree-ssa-coalesce.c (build_ssa_conflict_graph): For stmt
19469         with multiple SSA_NAME defs, force the outputs other than first
19470         to be live before calling live_track_process_def on each output.
19472         PR rtl-optimization/70574
19473         * fwprop.c (forward_propagate_and_simplify): Don't add
19474         REG_EQUAL note if DF_REF_REG (use) is a paradoxical subreg.
19475         (try_fwprop_subst): Don't add REG_EQUAL note if there are any
19476         paradoxical subregs within *loc.
19478 2016-04-08  Thomas Schwinge  <thomas@codesourcery.com>
19480         * config/arc/arc.h (LINK_COMMAND_SPEC): Use gt to ignore
19481         -ftree-parallelize-loops={0,1}.
19482         * config/darwin.h (LINK_COMMAND_SPEC_A): Likewise.
19483         * config/i386/mingw32.h (GOMP_SELF_SPECS): Likewise.
19484         * config/ia64/hpux.h (LIB_SPEC): Likewise.
19485         * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
19486         * config/pa/pa64-hpux.h (LIB_SPEC): Likewise.
19488 2016-04-08  Maxim Ostapenko  <m.ostapenko@samsung.com>
19490         PR sanitizer/70541
19491         * asan.c (instrument_derefs): If we get unknown location, extract it
19492         with EXPR_LOCATION.
19493         (maybe_instrument_call): Instrument gimple_call's arguments if needed.
19495 2016-04-08  Tom de Vries  <tom@codesourcery.com>
19497         * omp-low.c (lower_omp_target): Set TREE_NO_WARNING for oacc
19498         implicit firstprivate clause.
19500 2016-04-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
19502         PR target/70566
19503         * config/arm/thumb2.md (tst + branch-> lsls + branch
19504         peephole below *orsi_not_shiftsi_si): Require that condition
19505         register is dead after the peephole.
19506         (second peephole after the above): Likewise.
19508 2016-04-08  Alan Modra  <amodra@gmail.com>
19510         PR target/70117
19511         * builtins.c (fold_builtin_classify): For IBM extended precision,
19512         look at just the high-order double to test for NaN.
19513         (fold_builtin_interclass_mathfn): Similarly for Inf.  For isnormal
19514         test just the high double for Inf but both doubles for subnormal
19515         limit.
19517 2016-04-07  Jakub Jelinek  <jakub@redhat.com>
19519         * cgraph.h (struct cgraph_simd_clone): Add mask_mode field.
19520         * omp-low.c (simd_clone_init_simd_arrays, simd_clone_adjust): Handle
19521         node->simdclone->mask_mode != VOIDmode masks.
19522         (simd_clone_adjust_argument_types): Likewise.  Move sc var definition
19523         earlier, use it instead of node->simdclone.
19524         * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
19525         Set clonei->mask_mode.
19527 2016-04-06  Patrick Palka  <ppalka@gcc.gnu.org>
19529         PR c/70436
19530         * parser.c (cp_parser_iteration_statement): New parameter IF_P.
19531         Pass it through to cp_parser_already_scoped_statement.
19532         (cp_parser_already_scoped_statement): New parameter IF_P.  Pass
19533         it through to cp_parser_statement.
19534         (cp_parser_statement): Pass IF_P through to
19535         cp_parser_iteration_statement.
19536         (cp_parser_pragma): Adjust call to
19537         cp_parser_iteration_statement.
19539 2016-04-06  Patrick Palka  <ppalka@gcc.gnu.org>
19541         PR c/70436
19542         * gimplify.c (gimplify_omp_ordered): Add explicit braces to
19543         resolve a future -Wparentheses warning.
19544         * omp-low.c (scan_sharing_clauses): Likewise.
19545         * tree-parloops.c (eliminate_local_variables): Likewise.
19547 2016-04-06  Vladimir Makarov  <vmakarov@redhat.com>
19549         PR rtl-optimization/70398
19550         * lra-constraints.c (process_address_1): Check zero scale and code
19551         for reloading with zero scale.
19553 2016-04-06  Uros Bizjak  <ubizjak@gmail.com>
19555         * config/i386/sse.md (shuffletype): Add V32HI and V4TI modes.
19556         (ssescalarsize): Add V8SF, V4SF, V4DF and V2DF modes.
19558 2016-04-06  Jakub Jelinek  <jakub@redhat.com>
19560         * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
19561         Add support for AVX512F clones, include them by default for
19562         exported OpenMP declare simd functions.  For AVX2 allow simdlen 32
19563         and use it if charasteric type is 8-bit, for AVX512F allow simdlen
19564         up to 128.
19566         PR middle-end/70550
19567         * tree.h (OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT): Define.
19568         * gimplify.c (gimplify_adjust_omp_clauses_1): Set it for implicit
19569         firstprivate clauses.
19570         * omp-low.c (lower_send_clauses): Set TREE_NO_WARNING for
19571         OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT !by_ref vars in task contexts.
19572         (lower_omp_target): Set TREE_NO_WARNING for
19573         non-addressable possibly uninitialized vars which are copied into
19574         addressable temporaries or copied for GOMP_MAP_FIRSTPRIVATE_INT.
19576 2016-04-05  John David Anglin  <danglin@gcc.gnu.org>
19578         * config/pa/predicates.md (integer_store_memory_operand): Accept
19579         REG+D operands with a large offset when reload_in_progress is true.
19580         (floating_point_store_memory_operand): Likewise.
19582 2016-04-05  Jakub Jelinek  <jakub@redhat.com>
19584         PR c++/70336
19585         * match.pd (nested int casts): Limit to GIMPLE.
19587 2016-04-05  Jan Hubicka  <hubicka@ucw.cz>
19589         PR ipa/66223
19590         * ipa-devirt.c (maybe_record_node): Fix comment; use
19591         SANITIZE_UNREACHABLE instead of SANITIZE_UNDEFINED.
19593 2016-04-05  Jakub Jelinek  <jakub@redhat.com>
19595         PR rtl-optimization/70542
19596         * ree.c (add_removable_extension): For VECTOR_MODE_P punt
19597         if there are any uses other than insn or debug insns.
19599 2016-04-05  Marc Glisse  <marc.glisse@inria.fr>
19600             Jakub Jelinek  <jakub@redhat.com>
19602         PR tree-optimization/70509
19603         * simplify-rtx.c (simplify_binary_operation_1) <case VEC_SELECT>:
19604         Shift HOST_WIDE_INT_1U instead of 1.
19606 2016-04-05  Zdenek Sojka  <zsojka@seznam.cz>
19608         PR tree-optimization/70509
19609         * tree-ssa-forwprop.c (simplify_bitfield_ref): Use bitsize_int instead
19610         of the vector base type for index.
19612 2016-04-05  Uros Bizjak  <ubizjak@gmail.com>
19614         PR target/70510
19615         * config/i386/sse.md (iptr): Add V64QI, V32HI, V16SI and V8DI modes.
19617 2016-04-05  Richard Biener  <rguenther@suse.de>
19619         PR tree-optimization/70526
19620         * tree-sra.c (build_ref_for_offset): Use prev_base to
19621         extract the alias pointer type.
19623 2016-04-05  Richard Biener  <rguenther@suse.de>
19625         * dse.c (struct store_info): Remove alias_set member.
19626         (struct read_info_type): Likewise.
19627         (clear_alias_group, clear_alias_mode_table, clear_alias_mode_holder,
19628         spill_deleted, clear_alias_set_lookup): Remove.
19629         (get_group_info): Remove dead base == NULL_RTX case.
19630         (dse_step0): Remove initialization of removed variables.
19631         (delete_dead_store_insn): Reomve alias set dumping.
19632         (free_read_records): Remove alias_set handling.
19633         (canon_address): Remove alias_set_out parameter.
19634         (record_store): Remove spill_alias_set, it's always zero.
19635         (check_mem_read_rtx): Likewise.
19636         (dse_step2): Rename from ...
19637         (dse_step2_nospill): ... this.  Adjust.
19638         (scan_stores): Rename from ...
19639         (scan_stores_nospill): ... this.
19640         (scan_reads): Rename from ...
19641         (scan_reads_nospill): ... this.
19642         (scan_stores_spill, scan_reads_spill): Remove.
19643         (dse_step3_scan): Remove for_spills argument which is always false.
19644         (dse_step3): Likewise.
19645         (dse_step5): Rename from ...
19646         (dse_step5_nospill): ... this.  Remove alias_set handling.
19647         (rest_of_handle_dse): Adjust.
19649 2016-04-05  Jakub Jelinek  <jakub@redhat.com>
19651         PR target/70525
19652         * config/i386/sse.md (*andnot<mode>3): Simplify assertions.
19653         Use vpandn<ssemodesuffix> for V16SI/V8DImode, vpandnq for
19654         V32HI/V64QImode, don't use <mask_operand3_1>, fix up formatting.
19655         (*andnot<mode>3_mask): Remove insn with VI12_AVX512VL iterator.
19657 2016-04-05  Richard Biener  <rguenther@suse.de>
19659         PR middle-end/70499
19660         * gimplify-me.c (gimple_regimplify_operands): Do not rewrite
19661         non-register type temporaries into SSA.
19663 2016-04-04  Jan Hubicka  <hubicka@ucw.cz>
19665         PR ipa/66223
19666         * ipa-devirt.c (maybe_record_node): Do not optimize cxa_pure_virtual
19667         calls when sanitizing.
19668         (possible_polymorphic_call_target_p): Fix formatting.
19670 2016-04-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
19671             Jakub Jelinek  <jakub@redhat.com>
19673         PR middle-end/70457
19674         * tree-inline.c (estimate_num_insn): Use gimple_call_builtin_p
19675         to ensure a call statement is compatible with a built-in's
19676         prototype.
19677         * tree-ssa-math-opts.c (pass_optimize_windening_mul::execute):
19678         Likewise.
19680 2016-04-04  Richard Biener  <rguenther@suse.de>
19682         PR rtl-optimization/70484
19683         * rtl.h (canon_output_dependence): Declare.
19684         * alias.c (canon_output_dependence): New function.
19685         * dse.c (record_store): Use canon_output_dependence rather
19686         than canon_true_dependence.
19688 2016-03-30  Jan Hubicka  <hubicka@ucw.cz>
19690         PR ipa/68881
19691         * cgraph.h (symtab_node::copy_visibility_from): New function.
19692         * symtab.c (symtab_node::copy_visibility_from): New function.
19693         * ipa-visibility.c (optimize_weakref): New function.
19694         (function_and_variable_visibility): Use it.
19696 2016-04-04  Martin Liska  <mliska@suse.cz>
19698         PR hsa/70402
19699         * hsa-gen.c (gen_hsa_insns_for_switch_stmt): Guard index
19700         value that is really in range handled by SBR instruction.
19701         * hsa-brig.c (emit_switch_insn): Do not emit unconditional jump.
19702         * hsa-dump.c (dump_hsa_insn_1): Do not dump default BB.
19703         * hsa.h (hsa_insn_sbr::m_default_bb): Remove field.
19705 2016-04-03  Oleg Endo  <olegendo@gcc.gnu.org>
19707         PR target/70416
19708         PR target/67391
19709         * config/sh/sh.md (*addsi3): Allow pattern when reload_in_progress is
19710         set, but not for SP_REG operands.
19712 2016-04-02  Martin Sebor  <msebor@redhat.com>
19714         PR c++/67376
19715         * fold-const.c (maybe_nonzero_address): New function.
19716         (fold_comparison): Call it.  Fold equality and relational
19717         expressions involving null pointers.
19718         (tree_single_nonzero_warnv_p): Call maybe_nonzero_address.
19720 2016-03-31  Evandro Menezes  <e.menezes@samsung.com>
19722         Fix the predicate "aarch64_simd_reg_or_zero" to correctly validate
19723         the "Y" constraint (scalar FP 0.0 immediate).
19725         * config/aarch64/predicates.md (aarch64_simd_reg_or_zero):
19726         Add the "const_double" to the list of operand constraints.
19728 2016-04-01  Jakub Jelinek  <jakub@redhat.com>
19730         PR rtl-optimization/70467
19731         * config/i386/i386.md (*add<dwi>3_doubleword, *sub<dwi>3_doubleword):
19732         If low word of the last operand is 0, just emit addition/subtraction
19733         for the high word.
19735 2016-04-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
19737         PR target/70404
19738         * config/s390/s390.c (s390_expand_insv): Check for everything
19739         constant instead of just VOIDmode stuff.
19741 2016-04-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
19743         PR target/70496
19744         * config/arm/arm.h (ASM_APP_OFF): Handle TARGET_ARM and TARGET_THUMB.
19746 2016-04-01  Nathan Sidwell  <nathan@acm.org>
19748         * tree.def (TRY_CATCH_EXPR): Correct documentation.
19750 2016-03-31  Vladimir Makarov  <vmakarov@redhat.com>
19752         PR rtl-optimization/70461
19753         * ira-color.c (allocno_copy_cost_saving): Use allocno class if it
19754         is necessary.
19756 2016-03-31  Martin Liska  <mliska@suse.cz>
19758         PR hsa/70399
19759         * hsa-brig.c (hsa_op_immed::emit_to_buffer): Emit either
19760         a tree value or an immediate integer value to a buffer
19761         that is eventually copied to a BRIG section.
19762         (emit_immediate_operand): Call the function here.
19763         * hsa-dump.c (dump_hsa_immed): Remove checking assert.
19764         * hsa-gen.c (hsa_op_immed::hsa_op_immed): Remove initialization
19765         of class' fields that are removed.
19766         (hsa_op_immed::~hsa_op_immed): Remove deinitialization.
19767         * hsa.h (class hsa_op_immed): Remove m_brig_repr and
19768         m_brig_repr_size fields.
19770 2016-03-31  Martin Liska  <mliska@suse.cz>
19772         PR hsa/70391
19773         * hsa-gen.c (hsa_function_representation::update_dominance): New
19774         function.
19775         (convert_addr_to_flat_segment): Likewise.
19776         (gen_hsa_memory_set): New alignment argument.
19777         (gen_hsa_ctor_assignment): Likewise.
19778         (gen_hsa_insns_for_single_assignment): Provide alignment
19779         to gen_hsa_ctor_assignment.
19780         (gen_hsa_insns_for_direct_call): Add new argument.
19781         (expand_lhs_of_string_op): New function.
19782         (expand_string_operation_builtin): Likewise.
19783         (expand_memory_copy): New function.
19784         (expand_memory_set): New function.
19785         (gen_hsa_insns_for_call): Use HOST_WIDE_INT.
19786         (convert_switch_statements): Change signature.
19787         (generate_hsa): Use a return value of the function.
19788         (pass_gen_hsail::execute): Do not call
19789         convert_switch_statements here.
19790         * hsa-regalloc.c (hsa_regalloc): Call update_dominance.
19791         * hsa.h (hsa_function_representation::m_modified_cfg): New flag.
19792         (hsa_function_representation::update_dominance): New function.
19794 2016-03-31  Martin Liska  <mliska@suse.cz>
19796         PR hsa/70391
19797         * hsa-brig.c (emit_directive_variable): Emit alignment
19798         according to hsa_symbol::m_align.
19799         * hsa-dump.c (hsa_byte_alignment): Move the function to another file.
19800         (dump_hsa_symbol): Dump alignment of HSA symbols.
19801         * hsa-gen.c (get_symbol_for_decl): Set-up alignment of a symbol.
19802         (gen_hsa_addr_with_align): New function.
19803         (hsa_bitmemref_alignment): Use newly added function.
19804         (gen_hsa_insns_for_load): Likewise.
19805         (gen_hsa_insns_for_store): Likewise.
19806         (gen_hsa_memory_copy): New argument added.
19807         (gen_hsa_insns_for_single_assignment): Respect
19808         alignment for assignments processed via gen_hsa_memory_copy.
19809         (gen_hsa_insns_for_direct_call): Likewise.
19810         (gen_hsa_insns_for_return): Likewise.
19811         (gen_function_def_parameters): Set default alignment.
19812         * hsa.c (hsa_object_alignment): New function.
19813         (hsa_byte_alignment): Pasted function.
19814         * hsa.h (hsa_symbol::m_align): New field.
19816 2016-03-31  Bin Cheng  <bin.cheng@arm.com>
19818         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Initialize
19819         scratch field for goto case.
19821 2016-03-31  James Greenhalgh  <james.greenhalgh@arm.com>
19823         * config/arm/linux-elf.h (ASM_OUTPUT_DEF): Delete.
19825 2016-03-31  Ilya Enkovich  <enkovich.gnu@gmail.com>
19827         PR target/70442
19828         * config/i386/i386.c (scalar_chain::convert_op): Fix description.
19829         (scalar_chain::convert_insn): Call convert_op for reg
19830         moves to handle undefined registers.
19832 2016-03-31  Nathan Sidwell  <nathan@acm.org>
19834         PR c++/70393
19835         * varasm.c (output_constructor_regular_field): Flush bitfield earlier.
19836         Assert we don't want to move backwards.
19838 2016-03-31  Kirill Yukhin  <kirill.yukhin@intel.com>
19840         PR target/70453
19841         * config/i386/sse.md (define_mode_attr shuffletype): Fix typo.
19843 2016-03-31  Jakub Jelinek  <jakub@redhat.com>
19845         PR rtl-optimization/70460
19846         * ira.c (indirect_jump_optimize): Don't substitute LABEL_REF
19847         with operand from REG_LABEL_OPERAND, instead substitute
19848         SET_SRC or REG_EQUAL note content if it is a LABEL_REF.
19849         Don't do anything for REG_NON_LOCAL_GOTO jumps.
19851 2016-03-31  Martin Liska  <mliska@suse.cz>
19853         * passes.c (execute_one_pass): Do not call
19854         todo_after for a discarded function.
19856 2016-03-31  Bin Cheng  <bin.cheng@arm.com>
19858         * tree-ssa-loop-ivopts.c (struct comp_cost): New scrach field.
19859         (no_cost, infinite_cost): Initialize the new field.
19860         (get_computation_cost_at): Record setup cost.
19861         (determine_use_iv_cost_address): Skip cost computation for sub
19862         uses if we can estimate it without losing accuracy.
19864 2016-03-30  Jan Hubicka  <hubicka@ucw.cz>
19866         * tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can't get realistic
19867         estimates here.
19868         * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also
19869         max_loop_iterations_int.
19870         (tree_unswitch_outer_loop): Likewise.
19871         * tree-ssa-loop-ivopts.c (avg_loop_niter): Likewise.
19872         * tree-vect-loop.c (vect_analyze_loop_2): Likewise.
19874 2016-03-30  Richard Biener  <rguenther@suse.de>
19876         PR middle-end/70450
19877         * fold-const.c (extract_muldiv_1): Fix thinko in wide_int::from usage.
19879 2016-03-30  Jakub Jelinek  <jakub@redhat.com>
19881         PR target/70421
19882         * config/i386/i386.c (ix86_expand_vector_set): Fix up argument order
19883         in gen_blendm expander.
19885 2016-03-30  Nick Clifton  <nickc@redhat.com>
19887         PR target/62254
19888         * config/arm/arm.c (arm_reload_out_hi): Add code to handle the
19889         case where we are already provided with an SImode SUBREG.
19891 2016-03-30  H.J. Lu  <hongjiu.lu@intel.com>
19893         PR target/70439
19894         * config/i386/i386.c (ix86_expand_epilogue): Properly check
19895         conflict between DRAP register and __builtin_eh_return.
19897 2016-03-30  Michael Matz  <matz@suse.de>
19898             Richard Biener  <rguenther@suse.de>
19900         PR ipa/12392
19901         * ipa-polymorphic-call.c (struct type_change_info): Change
19902         speculative to an unsigned allowing to limit the work we do.
19903         (csftc_abort_walking_p): New inline function..
19904         (check_stmt_for_type_change): Limit the number of may-defs
19905         skipped for speculative devirtualization to
19906         max-speculative-devirt-maydefs.
19907         * params.def (max-speculative-devirt-maydefs): New param.
19908         * doc/invoke.texi (--param max-speculative-devirt-maydefs): Document.
19910 2016-03-30  Mike Stump  <mrs@gcc.gnu.org>
19912         PR target/63890
19913         * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Use when profiling
19914         and TARGET_MACHO.
19916 2016-03-30  Patrick Palka  <ppalka@gcc.gnu.org>
19918         PR tree-optimization/59124
19919         * tree-vrp.c (register_edge_assert_for_2): For NAME != CST1
19920         where NAME = A +- CST2 add the assertion A != (CST1 -+ CST2).
19922 2016-03-29  Jeff Law  <law@redhat.com>
19924         * tree-ssa-coalesce.c (struct ssa_conflicts): Fix typo in comment.
19926 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
19928         * tree-ssa-loop-ivcanon.c (try_peel_loop): Change type of peel
19929         to HOST_WIDE_INT.
19931 2016-03-29  Thomas Schwinge  <thomas@codesourcery.com>
19933         * config/gnu.h (CPP_SPEC, LIB_SPEC): Don't override.
19934         * config/i386/gnu.h (STARTFILE_SPEC): Use gcrt1.o instead of
19935         gcrt0.o if linking dynamically.
19937 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
19939         PR ipa/70283
19940         * ipa-devirt.c (methods_equal_p): New function.
19941         (compare_virtual_tables): Use it.
19942         * cgraph.h (symbol_table::symbol_suffix_separator): Declare.
19943         * cgraphclones.c (clone_function_name_1): Use
19944         symbol_table::symbol_suffix_separator.
19945         * coverage.c (build_var): Likewise.
19946         * symtab.c (symbol_table::symbol_suffix_separator): New.
19948 2016-03-29  Jakub Jelinek  <jakub@redhat.com>
19950         PR rtl-optimization/70429
19951         * combine.c (simplify_shift_const_1): For ASHIFTRT don't optimize
19952         (cst1 >> count) >> cst2 into (cst1 >> cst2) >> count if
19953         mode != result_mode.
19955         PR c++/70353
19956         * tree-inline.c (remap_decls): Don't add_local_decl if cfun is null.
19958         PR tree-optimization/70405
19959         * ssa-iterators.h (num_imm_uses): Add missing braces.
19961 2016-03-29  Vladimir Makarov  <vmakarov@redhat.com>
19963         PR rtl-optimization/68695
19964         * ira-color.c (allocno_copy_cost_saving): New.
19965         (improve_allocation): Use it.
19967 2016-03-29  Richard Henderson  <rth@redhat.com>
19969         PR middle-end/70355
19970         * lower-subreg.c (simplify_subreg_concatn): Reject paradoxical subregs.
19972 2016-03-29  Richard Biener  <rguenther@suse.de>
19974         PR middle-end/70424
19975         * ipa-prop.c (ipa_compute_jump_functions_for_edge): Always
19976         use alignment returned by get_pointer_alignment_1 if it is
19977         bigger than BITS_PER_UNIT.
19978         * builtins.c (get_pointer_alignment_1): Do not return true
19979         for alignment extracted from SSA info.
19981 2016-03-28  James Bowman  <james.bowman@ftdichip.com>
19983         * config/ft32/ft32.opt (mnodiv): New.
19984         * config/ft32/ft32.md (*divsi3, *modsi3): Qualify with TARGET_NODIV.
19985         * doc/invoke.texi (FT32 Options -mnodiv): New.
19987 2016-03-28  Kirill Yukhin  <kirill.yukhin@intel.com>
19989         PR target/70406
19990         * config/i386/i386.md (define_split, andn): Fix modes.
19992 2016-03-26  Richard Biener  <rguenther@suse.de>
19993             Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
19995         PR ipa/70366
19996         * ipa-inline-transform.c (inline_call): Pass opts_for_fn (to->decl)
19997         instead of
19998         TREE_OPTIMIZATION (DECL_FUNCTION_SPECIFIC_OPTIMIZATION (to->decl))
19999         as 2nd argument to cl_optimization_restore().
20001 2016-03-25  Richard Henderson  <rth@redhat.com>
20003         PR target/70120
20004         * config/aarch64/aarch64.c (aarch64_asm_output_pool_epilogue): New.
20005         * config/aarch64/aarch64-protos.h: Declare it.
20006         * config/aarch64/aarch64.h (ASM_OUTPUT_POOL_EPILOGUE): New.
20008 2016-03-25  Alan Modra  <amodra@gmail.com>
20010         PR target/70052
20011         * config/rs6000/constraints.md (j): Simplify.
20012         * config/rs6000/predicates.md (easy_fp_constant): Exclude
20013         decimal float 0.D.
20014         * config/rs6000/rs6000.md (zero_fp): New mode_attr.
20015         (mov<mode>_hardfloat, mov<mode>_hardfloat32, mov<mode>_hardfloat64,
20016          mov<mode>_64bit_dm, mov<mode>_32bit): Use zero_fp in place of j
20017         in all constraint alternatives.
20018         (movtd_64bit_nodm): Delete "j" constraint alternative.
20020 2016-03-24  Aldy Hernandez  <aldyh@redhat.com>
20022         * tree-ssa-propagate.c: Enhance docs for
20023         SSA_PROP_NOT_INTERESTING.
20025 2016-03-24  Aldy Hernandez  <aldyh@redhat.com>
20027         * doc/extend.texi: Fix typo in documentation to pure attribute.
20029 2016-03-24  John David Anglin  <danglin@gcc.gnu.org>
20031         PR target/70319
20032         * config/pa/pa.md (bswapdi2): Use a scratch register.
20034 2016-03-24  Richard Henderson  <rth@redhat.com>
20036         PR middle-end/69845
20037         * fold-const.c (extract_muldiv_1): Correct test for multiplication
20038         overflow.
20040 2016-03-24  Uros Bizjak  <ubizjak@gmail.com>
20042         * config/i386/i386.md (*anddi3_doubleword): Generate AND insn
20043         using ix86_expand_binary_operator instead of gen_andsi3.
20045 2016-03-24  Richard Biener  <rguenther@suse.de>
20047         PR tree-optimization/70396
20048         * tree-vect-stmts.c (vectorizable_comparison): Use
20049         get_vectype_for_scalar_type.
20051 2016-03-24  Richard Biener  <rguenther@suse.de>
20053         PR middle-end/70370
20054         * gimplify.c (gimplify_asm_expr): Handle !allows_mem outputs
20055         with register bases.
20057 2016-03-24  Richard Biener  <rguenther@suse.de>
20059         PR tree-optimization/70372
20060         * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Use
20061         build_all_ones_cst to also handle vector types correctly.
20063 2016-03-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
20065         PR target/70381
20066         * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Do not set
20067         -mfloat128 here.
20069 2016-03-23  Marek Polacek  <polacek@redhat.com>
20071         PR c++/69884
20072         * doc/invoke.texi: Document -Wignored-attributes.
20074 2016-03-23  Bin Cheng  <bin.cheng@arm.com>
20076         PR tree-optimization/69042
20077         * params.def (PARAM_IV_CONSIDER_ALL_CANDIDATES_BOUND): Increase the
20078         parameter from 30 to 40.
20080 2016-03-23  Bin Cheng  <bin.cheng@arm.com>
20082         PR tree-optimization/69042
20083         * tree-ssa-loop-ivopts.c (add_iv_candidate_for_use): Add IV cand
20084         for use with constant offset stripped in base.
20086 2016-03-23  Richard Biener  <rguenther@suse.de>
20088         PR middle-end/70251
20089         * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Adjust
20090         mode compatibility check.
20091         (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise.
20093 2016-03-23  Jeff Law  <law@redhat.com>
20095         PR tree-optimization/64058
20096         * tree-ssa-coalesce.c (struct coalesce_pair): Add new field
20097         CONFLICT_COUNT.
20098         (struct ssa_conflicts): Move up earlier in the file.
20099         (conflicts_, var_map_): New static variables.
20100         (initialize_conflict_count): New function to initialize the
20101         CONFLICT_COUNT field for each conflict pair.
20102         (compare_pairs): Lazily initialize the conflict count and use it
20103         as the first tie-breaker.
20104         (sort_coalesce_list): Add new arguments conflicts, map.  Initialize
20105         and wipe conflicts_ and map_ around the call to qsort.  Remove
20106         special case for 2 coalesce pairs.
20107         * bitmap.c (bitmap_count_unique_bits): New function.
20108         (bitmap_count_bits_in_word): New function, extracted from
20109         bitmap_count_bits.
20110         (bitmap_count_bits): Use bitmap_count_bits_in_word.
20111         * bitmap.h (bitmap_count_unique_bits): Declare it.
20113 2016-03-23  Ilya Enkovich  <enkovich.gnu@gmail.com>
20115         PR target/69917
20116         * config/i386/sol2.h (ASM_OUTPUT_DEF_FROM_DECLS): Follow
20117         transparent alias chain for decl assembler name.
20118         * config/sol2.c (solaris_assemble_visibility): Likewise.
20120 2016-03-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
20122         * config/arm/arm1020e.md (1020call_op): Reduce reservation
20123         duration.
20124         (v10_fdivs): Likewise.
20125         (v10_fdivd): Likewise.
20127 2016-03-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
20129         PR driver/70132
20130         * config/arm/driver-arm.c (host_detect_local_cpu): Reorder exit logic
20131         to not call fclose twice on file.
20133 2016-03-23  Jakub Jelinek  <jakub@redhat.com>
20135         PR tree-optimization/70354
20136         * tree-vect-patterns.c (vect_recog_vector_vector_shift_pattern): If
20137         oprnd0 is wider than oprnd1 and there is a cast from the wider
20138         type to oprnd1, mask it with the mask of the narrower type.
20140         PR target/70321
20141         * config/i386/i386.md (*anddi3_doubleword, *<code>di3_doubleword):
20142         Optimize TARGET_STV splitters, if high or low word of last argument
20143         is 0 or -1.
20145 2016-03-22  Jeff Law  <law@redhat.com>
20147         PR target/70232
20148         tree-ssa-threadbackward.c
20149         (fsm_find_control_statement_thread_paths): Correctly distinguish
20150         between old style jump threads vs FSM jump threads.
20152 2016-03-22  Ilya Enkovich  <enkovich.gnu@gmail.com>
20154         PR target/70302
20155         * config/i386/i386.c (scalar_chain::convert_op): Support
20156         uninitialized register usage case.
20158 2016-03-22  Richard Biener  <rguenther@suse.de>
20160         PR middle-end/70251
20161         * genmatch.c (gen_transform): Adjust last parameter to a three-state
20162         int...
20163         (capture::gen_transform): ... to change behavior when substituting
20164         a condition into cond or not-cond expr context.
20165         (dt_simplify::gen_1): Adjust.
20166         * gimple-match-head.c: Include gimplify.h for unshare_expr.
20167         * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Revert
20168         last change and instead change to
20169         A + (B vcmp C ? 1 : 0) -> A - (B vcmp C ? -1 : 0).
20170         (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise.
20172 2016-03-22  Anthony Green  <green@moxielogic.com>
20174         * config/moxie/moxiebox.h (CC1_SPEC): Define.  Fix endianness
20175         issue for moxiebox targets.
20176         (CC1PLUS_SPEC): Ditto.
20178 2016-03-22  Richard Biener  <rguenther@suse.de>
20180         PR middle-end/70333
20181         * fold-const.c (extract_muldiv_1): Properly perform multiplication
20182         in the wide type.
20184 2016-03-22  Kirill Yukhin  <kirill.yukhin@intel.com>
20186         * config/i386/i386.c (def_builtin): Remove duplicated functionality.
20188 2016-03-22  Kirill Yukhin  <kirill.yukhin@intel.com>
20190         PR target/70325
20191         * config/i386/i386.c (def_builtin): Handle
20192         OPTION_MASK_ISA_AVX512VL to be and-ed with other
20193         bits.
20194         (const struct builtin_description bdesc_special_args[]):
20195         Remove duplicate ISA bits.
20197 2016-03-22  Jakub Jelinek  <jakub@redhat.com>
20199         PR target/70329
20200         * config/i386/i386.c (ix86_expand_vecop_qihi): Don't bother computing
20201         d.perm[i] for i >= d.nelt.  If not full_interleave, compute d.perm[i]
20202         in a way that works also for AVX512BW.
20204         PR target/70300
20205         * config/i386/i386.md (cvtsd2ss splitter): Unpack in destination
20206         instead of source if operands[1] is xmm16 and above and
20207         !TARGET_AVX512VL.  Use avx512f_vec_dupv16sf_1 instead of
20208         vec_interleave_lowv4sf if we need to unpack xmm16 and above.
20210         PR c++/70295
20211         * gimplify.c (gimplify_modify_expr): Call gimple_set_no_warning
20212         on assign if (*from_p) is a comparison, set it to
20213         TREE_NO_WARNING (*from_p).
20215 2016-03-21  Jakub Jelinek  <jakub@redhat.com>
20217         PR middle-end/70326
20218         * lra.c (restore_scratches): Ignore deleted insns.
20220 2016-03-21  Marc Glisse  <marc.glisse@inria.fr>
20221             Jakub Jelinek  <jakub@redhat.com>
20223         PR tree-optimization/70317
20224         * match.pd (cmp @0 @0): Pass @0 instead of TYPE_MODE (TREE_TYPE (@0))
20225         to HONOR_NANS.
20227 2016-03-21  Uros Bizjak  <ubizjak@gmail.com>
20229         PR target/70327
20230         * config/i386/i386.md (movxi): Use ix86_expand_vector_move instead
20231         of ix86_expand_move.
20232         (movoi): Ditto.
20233         (movti): Use general_operand for operand 1 predicate.
20235 2016-03-21  Martin Liska  <mliska@suse.cz>
20237         * hsa-dump.c (dump_hsa_insn_1): dump default branch of SBR
20238         insns.
20239         (dump_hsa_symbol): Dump BRIG offset of hsa_symbols.
20241 2016-03-21  Martin Liska  <mliska@suse.cz>
20243         PR ipa/70306
20244         * ipa-icf.c (sem_function::parse): Skip static
20245         constructors and destructors.
20247 2016-03-21  Jakub Jelinek  <jakub@redhat.com>
20249         PR target/70296
20250         * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If IDENT is
20251         function-like macro, peek following token(s) if it is followed
20252         by CPP_OPEN_PAREN token with optional padding in between, and
20253         if not, don't treat it like a macro.
20255 2016-03-21  Thomas Schwinge  <thomas@codesourcery.com>
20256             Alexander Monakov  <amonakov@ispras.ru>
20258         * config/nvptx/nvptx.c (nvptx_option_override): Don't emit sorry
20259         for the stabs debug format.
20261 2016-03-21  Richard Biener  <rguenther@suse.de>
20263         PR tree-optimization/70310
20264         * tree-vect-generic.c (expand_vector_condition): Fold the built
20265         condition.
20267 2016-03-21  Kirill Yukhin  <kirill.yukhin@intel.com>
20269         PR target/70293
20270         * config/i386/sse.md: (define_insn "*vec_dup<mode>"/AVX2):
20271         Block third alternative for AVX-512VL target,
20273 2016-03-21  Martin Liska  <mliska@suse.cz>
20275         PR hsa/70234
20276         * hsa-brig.c (emit_function_directives): Mark unemitted
20277         global variables for emission.
20278         * hsa-gen.c (hsa_symbol::hsa_symbol): Initialize a new flag.
20279         (get_symbol_for_decl): Likewise.
20280         * hsa.h (struct hsa_symbol): New flag.
20282 2016-03-21  Richard Biener  <rguenther@suse.de>
20284         PR tree-optimization/70288
20285         * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Make sure
20286         we do not estimate unsimplified all-constant conditionals or
20287         switches as optimized away.
20289 2016-03-21  Andrey Belevantsev  <abel@ispras.ru>
20291         PR rtl-optimization/69102
20292         * sched-deps.c (sched_analyze_insn): Do not set last_args_size field
20293         when we have a readonly dependency context.
20295 2016-03-18  Jeff Law  <law@redhat.com>
20297         PR rtl-optimization/70263
20298         * ira.c (memref_used_between_p): Assert we found END in the insn chain.
20299         (update_equiv_regs): When trying to move a store to after the insn
20300         that sets the source of the store, make sure the store occurs after
20301         the insn that sets the source of the store.  When successful note
20302         the REG_EQUIV note created in the dump file.
20304 2016-03-16  David Wohlferd  <dw@LimeGreenSocks.com>
20305             Bernd Schmidt  <bschmidt@redhat.com>
20307         * doc/extend.texi: Document more potential problems with basic asms.
20309 2016-03-18  Bernd Schmidt  <bschmidt@redhat.com>
20311         PR rtl-optimization/70278
20312         * lra-constraints.c (split_reg): Handle the case where biggest_mode is
20313         VOIDmode.
20315 2016-03-18  Jason Merrill  <jason@redhat.com>
20317         * calls.c (load_register_parameters): Fix zero size sibcall logic.
20319 2016-03-18  Kirill Yukhin  <kirill.yukhin@intel.com>
20321         * config/i386/sse.md: Use vpbroadcastq for broadcasting DF
20322         values to 128b regs.
20324 2016-03-18  Ilya Enkovich  <enkovich.gnu@gmail.com>
20326         PR tree-optimization/70252
20327         * tree-vect-stmts.c (supportable_widening_operation): Check resulting
20328         boolean vector has a proper number of elements.
20329         (supportable_narrowing_operation): Likewise.
20331 2016-03-18  Tom de Vries  <tom@codesourcery.com>
20333         PR ipa/70269
20334         * cgraph.c (cgraph_node::get_body): Set dump_file to NULL after save.
20336 2016-03-18  Jakub Jelinek  <jakub@redhat.com>
20338         * reload1.c (emit_input_reload_insns): Use simplify_replace_rtx
20339         instead of replace_rtx for DEBUG_INSNs.
20341 2016-03-18  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
20343         * config/i386/znver1.md : Fix latencies of FP/SSE/AVX
20344         load type reservations.
20346 2016-03-17  John David Anglin  <danglin@gcc.gnu.org>
20348         PR target/70188
20349         * config/pa/constraints.md: Revert 2015-02-13 change.  Use
20350         define_constraint for "Q" and "T" constraints.
20352 2016-03-17  Evandro Menezes  <e.menezes@samsung.com>
20354         Tweak the pipeline model for Exynos M1
20356         * config/aarch64/aarch64.c (exynosm1_tunings):  Enable weak prefetching
20357         model.
20359 2016-03-17  David Malcolm  <dmalcolm@redhat.com>
20361         PR c/70264
20362         * diagnostic-show-locus.c (compatible_locations_p): Handle the case
20363         where one or both locations aren't within a line_map.
20365 2016-03-17  H.J. Lu  <hongjiu.lu@intel.com>
20367         PR driver/70192
20368         * opts.c (finish_options): Don't set flag_pie to the default if
20369         -fpic, -fPIC, -fno-pic or -fno-PIC is used.  Set flag_pic to 0
20370         if it is -1.
20372 2016-03-17  Joern Rennecke  <joern.rennecke@embecosm.com>
20374         * config/i386/i386.md (*movv4qicc_insn+1..36): Pass
20375         true as ALL_REGS argument to replace_rtx.
20377 2016-03-17  Richard Biener  <rguenther@suse.de>
20379         PR debug/70271
20380         * dwarf2out.c (dwarf2out_early_finish): Process deferred_asm_name
20381         last.
20383 2016-03-17  Jakub Jelinek  <jakub@redhat.com>
20385         PR target/70245
20386         * rtl.h (replace_rtx): Add ALL_REGS argument.
20387         * rtlanal.c (replace_rtx): Likewise.  If true, use REGNO
20388         equality and assert mode is the same, instead of just rtx pointer
20389         equality.
20390         * config/i386/i386.md (mov + arithmetics with load peephole): Pass
20391         true as ALL_REGS argument to replace_rtx.
20393 2016-03-17  Ilya Enkovich  <enkovich.gnu@gmail.com>
20395         * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Apply
20396         for boolean vector with vector mode only.
20397         (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise.
20399 2016-03-17  Nick Clifton  <nickc@redhat.com>
20401         PR target/70162
20402         * config/rx/rx.c (rx_print_integer): Print negative constants in
20403         decimal.
20405 2016-03-17  Jakub Jelinek  <jakub@redhat.com>
20407         PR target/70261
20408         * rtlanal.c (replace_rtx): Revert 2016-03-16 change.
20410 2016-03-16  Richard Henderson  <rth@redhat.com>
20411             Richard Biener  <rguenth@suse.de>
20413         PR middle-end/70240
20414         PR middle-end/68215
20415         PR tree-opt/68714
20416         * gimplify.c (gimplify_expr) [VEC_COND_EXPR]: Gimplify the
20417         first operand as is_gimple_condexpr.
20419         PR middle-end/70240
20420         PR middle-end/68215
20421         Revert r231575
20422         2015-12-11  Eric Botcazou  <ebotcazou@adacore.com>
20423         * tree-vect-generic.c (tree_vec_extract): Remove GSI parameter.
20424         Do not gimplify the result.
20425         (do_unop): Adjust call to tree_vec_extract.
20426         (do_binop): Likewise.
20427         (do_compare): Likewise.
20428         (do_plus_minus): Likewise.
20429         (do_negate): Likewise.
20430         (expand_vector_condition): Likewise.
20431         (do_cond): Likewise.
20433 2016-03-16  Richard Henderson  <rth@redhat.com>
20435         PR target/70048
20436         * config/aarch64/aarch64.c (virt_or_elim_regno_p): New.
20437         (aarch64_classify_address): Use it.
20438         (aarch64_legitimize_address): Force all subexpressions of PLUS
20439         into registers.  Simplify as (sfp+const)+reg or (reg+reg)+const.
20441 2016-03-16  Jakub Jelinek  <jakub@redhat.com>
20442             Richard Biener  <rguenth@suse.de>
20444         PR target/70245
20445         * rtlanal.c (replace_rtx): For REG, if from is a REG,
20446         return to even if only REGNO is equal, and assert
20447         mode is the same.
20449 2016-03-11  Jeff Law  <law@redhat.com>
20451         PR rtl-optimization/70224
20452         * reorg.c (relax_delay_slots): Pass right argument to CROSSING_JUMP_P.
20454 2016-03-16  Richard Henderson  <rth@redhat.com>
20456         PR middle-end/70199
20457         * function.h (struct function): Add has_forced_label_in_static.
20458         * gimplify.c (force_labels_r): Set it.
20459         * lto-streamer-in.c (input_struct_function_base): Read it.
20460         * lto-streamer-out.c (output_struct_function_base): Write it.
20461         * tree-inline.c (has_label_address_in_static_1): Remove.
20462         (copy_forbidden): Remove fndecl parameter; test
20463         has_forced_label_in_static.
20464         (inline_forbidden_p): Update call to copy_forbidden.
20465         (tree_versionable_function_p): Likewise.
20466         * ipa-chkp.c (chkp_instrumentable_p): Likewise.
20467         (chkp_versioning): Likewise.
20468         * tree-inline.h (copy_forbidden): Update decl.
20470 2016-03-16  Marek Polacek  <polacek@redhat.com>
20472         PR c/70093
20473         * cgraphunit.c (cgraph_node::expand_thunk): Also build call to the
20474         function being thunked if the result type doesn't have fixed size.
20475         * gimplify.c (gimplify_modify_expr): Also set LHS if the result type
20476         doesn't have fixed size.
20478 2016-03-16  Bin Cheng  <bin.cheng@arm.com>
20480         * tree-vect-loop.c (vect_analyze_loop_2): Fix wrong dump info by
20481         reporting malformed loop nest.
20483 2016-03-16  Tom de Vries  <tom@codesourcery.com>
20485         PR lto/70187
20486         * ipa-devirt.c (possible_polymorphic_call_targets): Move
20487         nodes.length () == 1 test to before first nodes[0] access.
20489 2016-03-16  Tom de Vries  <tom@codesourcery.com>
20491         PR tree-optimization/68715
20492         * graphite-scop-detection.c (scop_detection::merge_sese): Add missing
20493         single_pred_p test.
20495 2016-03-16  Tom de Vries  <tom@codesourcery.com>
20497         PR tree-optimization/68809
20498         * graphite-scop-detection.c (same_close_phi_node): Test if result types
20499         are the same.
20501 2016-03-16  Carlos O'Donell  <carlos@redhat.com>
20502             Sandra Loosemore  <sandra@codesourcery.com>
20504         * doc/extend.texi (Common Function Attributes): Describe ifunc impact
20505         on leaf attribute. Mention ELF interposition problems.
20507 2016-03-16  Alan Modra  <amodra@gmail.com>
20509         PR rtl-optimization/69195
20510         PR rtl-optimization/47992
20511         * ira.c (indirect_jump_optimize): Ignore artificial defs.
20512         Add comments.
20514 2016-03-15  Eric Botcazou  <ebotcazou@adacore.com>
20516         PR bootstrap/69513
20517         * dwarf2out.c (flush_limbo_die_list): Really flush the limbo list.
20519 2016-03-15  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
20521         * config/avr/avr.md (rotl<mode>3): Set mode for operand 2.
20523 2016-03-15  Jakub Jelinek  <jakub@redhat.com>
20525         PR rtl-optimization/70222
20526         * combine.c (simplify_shift_const_1): For A >> B >> C LSHIFTRT
20527         optimization if mode is different from result_mode, queue up masking
20528         of the result in outer_op.  Formatting fix.
20530         PR middle-end/70239
20531         * tree-ssa-sccvn.c (VN_INFO_GET): Use safe_grow_cleared instead
20532         of safe_grow.
20534 2016-03-15  Andrey Belevantsev  <abel@ispras.ru>
20536         PR rtl-optimization/69032
20537         * sel-sched-ir.c (get_seqno_by_preds): Include both insn and head when
20538         looping backwards over basic block insns.
20540 2016-03-15  Andrey Belevantsev  <abel@ispras.ru>
20542         PR target/66660
20543         * sel-sched-ir.c (merge_expr): Avoid changing the speculative pattern
20544         to non-speculative when propagating trap bits.
20546 2016-03-15  Andrey Belevantsev  <abel@ispras.ru>
20548         PR rtl-optimization/63384
20549         * sel-sched.c (invoke_aftermath_hooks): Do not decrease issue_more on
20550         DEBUG_INSN_P insns.
20552 2016-03-15  Andrey Belevantsev  <abel@ispras.ru>
20554         PR target/64411
20555         * sched-deps.c (get_implicit_reg_pending_clobbers): New function,
20556         factored out from ...
20557         (sched_analyze_insn): ... here.
20558         * sched-int.h (get_implicit_reg_pending_clobbers): Declare it.
20559         * sel-sched-ir.c (setup_id_implicit_regs): New function, use
20560         get_implicit_reg_pending_clobbers in it.
20561         (setup_id_reg_sets): Use setup_id_implicit_regs.
20562         (deps_init_id): Ditto.
20564 2016-03-15  Tom de Vries  <tom@codesourcery.com>
20566         PR ipa/70161
20567         * cgraph.c (cgraph_node::get_body): Save, reset and restore
20568         dump_file_name.
20569         * passes.c (execute_one_ipa_transform_pass): Add missing argument to
20570         execute_function_dump.
20571         (execute_one_pass): Don't dump function if it will be dumped after ipa
20572         transform.
20574 2016-03-15  Segher Boessenkool  <segher@kernel.crashing.org>
20576         * genrecog.c (match_pattern_2): If pred is NULL don't call
20577         safe_predicate_mode on it.
20579 2016-03-14  Jakub Jelinek  <jakub@redhat.com>
20581         PR middle-end/70219
20582         * lra-constraints.c (delete_move_and_clobber): Change assertion
20583         to also allow dregno == 0.
20585 2016-03-14  Richard Henderson  <rth@redhat.com>
20587         PR tree-opt/68714
20588         * tree-ssa-reassoc.c (ovce_extract_ops, optimize_vec_cond_expr): New.
20589         (can_reassociate_p): Allow ANY_INTEGRAL_TYPE_P.
20590         (reassociate_bb): Use optimize_vec_cond_expr; avoid
20591         optimize_range_tests, attempt_builtin_copysign and attempt_builtin_powi
20592         on vectors.
20594 2016-03-14  Bernd Schmidt  <bschmidt@redhat.com>
20596         PR target/70083
20597         * lra-lives.c (process_bb_lives): Also update biggest mode for hard
20598         regs.
20599         (lra_create_live_ranges_1): initialize hard register biggest_mode to
20600         VOIDmode.
20601         * lra-constraints.c (split_reg): For hard regs, try to find the
20602         biggest single-register mode used in the function.
20604 2016-03-14  Richard Biener  <rguenther@suse.de>
20606         PR tree-optimization/56365
20607         * tree-ssa-phiopt.c (minmax_replacement): Handle alternate
20608         constants to compare against.
20610 2016-03-14  Segher Boessenkool  <segher@kernel.crashing.org>
20612         PR target/70098
20613         * config/rs6000/rs6000.md (*ctr<mode>_internal1, *ctr<mode>_internal2,
20614         *ctr<mode>_internal5, *ctr<mode>_internal6): Also allow "d" as output.
20615         (define_split for the GPR case): Use int_reg_operand instead of
20616         gpc_reg_operand for the output.
20618 2016-03-14  Tom de Vries  <tom@codesourcery.com>
20620         PR tree-optimization/70045
20621         * graphite-isl-ast-to-gimple.c (graphite_create_new_loop_guard): Unshare
20622         create_empty_if_region_on_edge argument.
20624 2016-03-13  Eric Botcazou  <ebotcazou@adacore.com>
20626         * config/arm/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Define.
20627         (STACK_CHECK_PROTECT): Likewise.
20628         * config/i386/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise
20629         (STACK_CHECK_PROTECT): Likewise.
20630         * config/rs6000/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise
20631         (STACK_CHECK_PROTECT): Likewise.
20632         * config/rs6000/vxworksae.h (STACK_CHECK_PROTECT): Likewise.
20633         * config/sparc/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
20634         (STACK_CHECK_PROTECT): Likewise.
20636 2016-03-12  Andrey Belevantsev  <abel@ispras.ru>
20638         PR rtl-optimization/69307
20639         * sel-sched.c (choose_best_pseudo_reg): Properly check for hard
20640         registers in modes that span more than one register.
20642 2016-03-12  Vladimir Makarov  <vmakarov@redhat.com>
20644         PR target/69614
20645         * lra-constraints.c (delete_move_and_clobber): New.
20646         (remove_inheritance_pseudos): Use it.
20648 2016-03-12  Eric Botcazou  <ebotcazou@adacore.com>
20650         PR ada/70017
20651         * calls.c (emit_library_call_value_1): Clear the ECF_NOTHROW flag if
20652         the libcall is LCT_THROW.
20653         * explow.c (probe_stack_range): Pass LCT_THROW to emit_library_call
20654         for the checking routine.
20656 2016-03-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
20658         PR target/70131
20659         * config/rs6000/rs6000.md (round32<mode>2_fprs): Do not do the
20660         optimization if we have direct move.
20661         (roundu32<mode>2_fprs): Likewise.
20663 2016-03-11  Bernd Schmidt  <bschmidt@redhat.com>
20665         PR target/70123
20666         * lra-remat.c (operand_to_remat): Disallow hard regs in the value t
20667         be rematerialized.
20668         (reg_overlap_for_remat_p): Renamed from input_regno_present_p.
20669         Arguments swapped.  All callers changed.  Take reg_renumber into
20670         account, and Calculate and compare register ranges for hard regs.
20672 2016-03-11  Jeff Law  <law@redhat.com>
20674         PR tree-optimization/70190
20675         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
20676         Handle cases where we can not extract the taken edge, even though we
20677         found a constant value.
20679         PR tree-optimization/64058
20680         * tree-ssa-coalesce.c (struct coalesce_pair): Add new field INDEX.
20681         (num_coalesce_pairs): Move up earlier in file.
20682         (find_coalesce_pair): Initialize the INDEX field for each pair
20683         discovered.
20684         (compare_pairs): No longer sort on the elements in each pair.
20685         Instead break ties with the index of the coalesce pair.
20687 2016-03-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
20689         PR target/70002
20690         * config/aarch64/aarch64-protos.h
20691         (aarch64_save_restore_target_globals): New prototype.
20692         * config/aarch64/aarch64-c.c (aarch64_pragma_target_parse):
20693         Call the above when popping pragma.
20694         * config/aarch64/aarch64.c (aarch64_save_restore_target_globals):
20695         New function.
20696         (aarch64_set_current_function): Rewrite using the above.
20698 2016-03-11  Jakub Jelinek  <jakub@redhat.com>
20700         PR tree-optimization/70177
20701         * gimple-expr.h (extract_ops_from_tree_1): Renamed to ...
20702         (extract_ops_from_tree): ... this.  In the 2 argument
20703         overload remove _1 suffix.
20704         * gimple-expr.c (extract_ops_from_tree_1): Renamed to ...
20705         (extract_ops_from_tree): ... this.
20706         * gimple.c (gimple_build_assign, gimple_assign_set_rhs_from_tree):
20707         Adjust callers.
20708         * tree-ssa-loop-niter.c (derive_constant_upper_bound): Likewise.
20709         * tree-ssa-forwprop.c (defcodefor_name): Call 3 operand
20710         extract_ops_from_tree instead of 2 operand one.
20712 2016-03-11  Alan Lawrence  <alan.lawrence@arm.com>
20714         PR tree-optimization/70013
20715         * tree-sra.c (analyze_access_subtree): Also set grp_unscalarized_data
20716         for constant-pool entries.
20718 2016-03-11  Jakub Jelinek  <jakub@redhat.com>
20720         PR rtl-optimization/70174
20721         * expmed.c (store_bit_field_using_insv): Use gen_lowpart_if_possible
20722         followed by gen_lowpart on force_reg instead of just gen_lowpart.
20724         PR tree-optimization/70169
20725         * tree-ssa-loop.c (gen_lsm_tmp_name): Handle FUNCTION_DECL and
20726         LABEL_DECL like VAR_DECL.  Emit nothing instead of gcc_unreachable
20727         for unknown codes.
20729 2016-03-11  Ilya Enkovich  <enkovich.gnu@gmail.com>
20730             Jakub Jelinek  <jakub@redhat.com>
20732         PR target/70160
20733         * config/i386/i386.c (scalar_chain::convert_reg): Skip uses
20734         of uninitialized values.
20736 2016-03-11  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
20738         * config/s390/s390.md ("trunctddd2"): Turn former define_insn into
20739         define_expand.
20740         ("*trunctddd2"): New pattern definition.
20741         ("trunctdsd2"): Set prep_for_short_prec rounding mode for the
20742         TD->DD truncation.
20744 2016-03-11  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
20746         * config/s390/s390.md (BFP_RND_*, DFP_RND_*): Add new constant
20747         definitions for BFP and DFP rounding modes.
20748         ("fixuns_truncdddi2", "fixuns_trunctddi2")
20749         ("fixuns_trunc<BFP:mode><GPR:mode>2", "fixuns_trunc<mode>si2")
20750         ("fix_trunc<DSF:mode><GPR:mode>2", "fix_trunc<mode>di2")
20751         ("fix_trunctf<mode>2"): Use the new constants instead of magic
20752         numbers.
20754 2016-03-11  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
20756         * config/s390/constraints.md: Adjust comment.
20757         ("Y"): Adjust comment.  Rename s390_decompose_shift_count to
20758         s390_decompose_addrstyle_without_index.
20759         * config/s390/predicates.md (shift_count_or_setmem_operand):
20760         Rename to setmem_operand.
20761         * config/s390/s390-protos.h
20762         (s390_decompose_shift_count): Rename to
20763         s390_decompose_addrstyle_without_index.
20764         * config/s390/s390.c (s390_decompose_shift_count)
20765         (s390_mem_constraint, print_shift_count_operand)
20766         (print_operand_address, print_operand): Rename
20767         s390_decompose_shift_count to
20768         s390_decompose_addrstyle_without_index and rename
20769         print_shift_count_operand to print_addrstyle_operand troughout the
20770         file.
20771         * config/s390/s390.md ("setmem_long_<P:mode>", "*setmem_long")
20772         ("*setmem_long_and", "*setmem_long_31z", "*setmem_long_and_31z"):
20773         Rename shift_count_or_setmem_operand to setmem_operand.
20774         * config/s390/vx-builtins.md ("vec_insert<mode>")
20775         ("vec_promote<mode>"): Replace shift_count_or_setmem_operand with
20776         nonmemory_operand.
20778 2016-03-10  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
20780         PR target/70168
20781         * config/rs6000/rs6000.c (rs6000_expand_atomic_compare_and_swap):
20782         Handle overlapping retval and newval.
20784 2016-03-10  Nick Clifton  <nickc@redhat.com>
20786         PR target/7044
20787         * config/aarch64/aarch64.c
20788         (aarch64_override_options_after_change_1): When forcing
20789         flag_omit_frame_pointer to be true, use a special value that can
20790         be detected if this function is called again, thus preventing
20791         flag_omit_leaf_frame_pointer from being forced to be false.
20793 2016-03-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
20795         * common/config/aarch64/aarch64-common.c (aarch64_handle_option):
20796         Set x_flag_omit_leaf_frame_pointer when handling
20797         -momit-leaf-frame-pointer.
20799 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
20801         PR lto/69589
20802         * cgraph.c (cgraph_node::dump): Dump split_part and
20803         indirect_call_target.
20804         * cgraph.h (cgraph_node): Add indirect_call_target flag.
20805         * ipa.c (has_addr_references_p): Cleanup.
20806         (is_indirect_call_target_p): New.
20807         (walk_polymorphic_call_targets): Do not mark virtuals that may be
20808         called indirectly as local.
20809         (symbol_table::remove_unreachable_nodes): Compute indirect_call_target.
20811 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
20813         PR ipa/69630
20814         * ipa-devirt.c (possible_polymorphic_call_targets): Do not ICE
20815         on cxa_pure_virtual.
20817 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
20819         PR lto/69589
20820         * tree.c (free_lang_data_in_decl): Clear visibility of TYPE_DECL.
20822 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
20824         PR lto/69589
20825         * tree.c (need_assembler_name_p): Only record main variant type names.
20827 2016-03-10  Christophe Lyon  <christophe.lyon@linaro.org>
20829         PR target/70113.
20830         * config/aarch64/aarch64.h (TARGET_FIX_ERR_A53_843419_DEFAULT):
20831         Always define to 0 or 1.
20832         (TARGET_FIX_ERR_A53_843419): New macro.
20833         * config/aarch64/aarch64-elf-raw.h
20834         (TARGET_FIX_ERR_A53_843419_DEFAULT): Update for above changes.
20835         * config/aarch64/aarch64-linux.h: Likewise.
20836         * config/aarch64/aarch64.c
20837         (aarch64_override_options_after_change_1): Do not default
20838         aarch64_nopcrelative_literal_loads to true if Cortex-A53 erratum
20839         843419 is on.
20840         (aarch64_attributes): Handle fix-cortex-a53-843419.
20841         (aarch64_can_inline_p): Likewise.
20842         * config/aarch64/aarch64.opt (aarch64_fix_a53_err843419): Save.
20844 2016-03-10  Alan Lawrence  <alan.lawrence@arm.com>
20845             Jakub Jelinek  <jakub@redhat.com>
20847         * common.opt (funconstrained-commons, flag_unconstrained_commons): New.
20848         * tree.c (array_at_struct_end_p): Do not limit to size of decl for
20849         DECL_COMMONS if flag_unconstrained_commons is set.
20850         * tree-dfa.c (get_ref_base_and_extent): Likewise.
20851         * doc/invoke.texi (Optimize Options): Add -funconstrained-commons.
20852         (funconstrained-commons): Document.
20854 2016-03-10  Christophe Lyon  <christophe.lyon@linaro.org>
20856         * config/aarch64/t-aarch64 (OPTIONS_H_EXTRA): Add
20857         aarch64-fusion-pairs.def and aarch64-tuning-flags.def
20859 2016-03-10  Ilya Enkovich  <enkovich.gnu@gmail.com>
20861         * tree-vect-stmts.c (vectorizable_mask_load_store): Check mask
20862         has a proper number of elements.
20864 2016-03-10  Alan Modra  <amodra@gmail.com>
20866         PR rtl-optimization/69195
20867         PR rtl-optimization/47992
20868         * ira.c (recorded_label_ref): Delete.
20869         (update_equiv_regs): Return void.
20870         (indirect_jump_optimize): New function.
20871         (ira): Call indirect_jump_optimize and delete_trivially_dead_insns
20872         before regstat_compute_ri.  Don't rebuild_jump_labels here.
20873         Delete update_regstat.
20875 2016-03-10  Richard Biener  <rguenther@suse.de>
20877         PR tree-optimization/70128
20878         * tree-ssa-structalias.c (set_uids_in_ptset): Set
20879         vars_contains_nonlocal for any FUNCTION_DECL or LABEL_DECL.
20881 2016-03-09  Jakub Jelinek  <jakub@redhat.com>
20883         PR tree-optimization/70152
20884         * tree-sra.c (replace_removed_params_ssa_names): Copy over
20885         SSA_NAME_OCCURS_IN_ABNORMAL_PHI from old_name to new_name.
20887         PR target/70086
20888         * config/i386/i386.md (truncdfsf2 splitter): Use gen_vec_concatv2df
20889         instead of gen_sse2_loadlpd.
20890         * config/i386/sse.md (*vec_concatv2df): Rename to...
20891         (vec_concatv2df): ... this.
20893         PR tree-optimization/70127
20894         * fold-const.c (operand_equal_p): Revert the 2015-10-28 change.
20896 2016-03-09  David Malcolm  <dmalcolm@redhat.com>
20898         PR c/68473
20899         PR c++/70105
20900         * diagnostic-show-locus.c (compatible_locations_p): New function.
20901         (layout::layout): Sanitize ranges using compatible_locations_p.
20903 2016-03-09  David Malcolm  <dmalcolm@redhat.com>
20905         PR c/68473
20906         PR c++/70105
20907         * diagnostic-show-locus.c (layout_range::layout_range): Replace
20908         location_range param with three const expanded_locations * and a
20909         bool.
20910         (layout::layout): Replace call to
20911         rich_location::lazily_expand_location with get_expanded_location.
20912         Extract the range and perform location expansion here, passing
20913         the results to the layout_range ctor.
20914         * diagnostic.c (source_range::debug): Delete.
20915         * diagnostic.h (diagnostic_expand_location): Reimplement in terms
20916         of rich_location::get_expanded_location.
20917         * gcc-rich-location.c (get_range_for_expr): Delete.
20918         (gcc_rich_location::add_expr): Reimplement to avoid the
20919         rich_location::add_range overload that took a location_range,
20920         passing a location_t instead.
20922 2016-03-09  Richard Biener  <rguenther@suse.de>
20923         Jakub Jelinek  <jakub@redhat.com>
20925         PR tree-optimization/70138
20926         * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
20927         Also skip vect_double_reduction_def.
20929 2016-03-09  Jakub Jelinek  <jakub@redhat.com>
20931         PR target/70049
20932         * config/i386/sse.md (*vec_extract<mode>): Use %0 instead of %k0
20933         if the operand is "m".
20935 2016-03-09  Nathan Sidwell  <nathan@acm.org>
20937         * config/nvptx/nvptx.c (nvptx_option_override): Don't kill debug level.
20939 2016-03-09  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
20941         * config/i386/i386.c (processor_target_table): Fix cost table
20942         intialization order for znver1.
20944 2016-03-08  Jakub Jelinek  <jakub@redhat.com>
20946         * ipa-polymorphic-call.c (walk_ssa_copies): Fix spelling
20947         - becuase -> because.
20948         * ipa-reference.c (ignore_module_statics): Likewise.
20949         * cgraph.c (cgraph_node::get_body): Likewise.
20950         * ipa-inline.c (early_inliner): Likewise.
20951         * ipa-devirt.c (types_same_for_odr): Likewise.
20952         * tree-streamer-out.c (pack_ts_type_common_value_fields): Likewise.
20953         * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Likewise.
20955 2016-03-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
20957         * tree-ssa-math-opts.c: Fix typo in comment.
20959 2016-03-08  Jakub Jelinek  <jakub@redhat.com>
20961         PR target/70110
20962         * config/i386/i386.c (scalar_chain::make_vector_copies,
20963         scalar_chain::convert_reg): Call end_sequence in between
20964         get_insns and emit_conversion_insns rather than after both
20965         calls.
20967 2016-03-07  Uros Bizjak  <ubizjak@gmail.com>
20969         PR target/70064
20970         * config/i386/i386.h (machine_function): Add
20971         pc_thunk_call_expanded flag.
20972         (ix86_pc_thunk_call_expanded): New define.
20973         * config/i386/i386.md (set_got, set_got_labelled): New expanders.
20974         (*set_got): Rename insn pattern from set_got.
20975         (*set_got_labelled): Rename inst pattern from set_got_labelled.
20976         * config/i386/i386.c (ix86_compute_frame_layout): Use
20977         ix86_pc_thunk_call_expanded to prevent red-zone.
20979 2016-03-07  Martin Jambor  <mjambor@suse.cz>
20981         * hsa.h (hsa_get_ctor_statements): Declare.
20982         (hsa_get_dtor_statements): Likewise.
20983         (hsa_get_kernel_dispatch_type): Likewise.
20984         * hsa.c (hsa_get_ctor_statements): New function.
20985         (hsa_get_dtor_statements): Likewise.
20986         (hsa_get_kernel_dispatch_type): Likewise.
20987         * hsa-brig.c (hsa_cdtor_statements): Removed.
20988         (hsa_output_libgomp_mapping): Use hsa_get_ctor_statements and
20989         hsa_get_dtor_statements.
20990         * hsa-gen.c (hsa_kernel_dispatch_type): Removed.
20991         (get_hsa_kernel_dispatch_offset): Use hsa_get_kernel_dispatch_type.
20993 2016-03-07  Andre Vieira  <andre.simoesdiasvieira@arm.com>
20995         * config/arm/arm-cores.def (cortex-r8): New.
20996         * config/arm/arm-tables.opt (cortex-r8): Regenerate.
20997         * config/arm/arm-tune.md: Likewise.
20998         * doc/invoke.texi: Add cortex-r8 to list of cpu values.
21000 2016-03-07  Martin Sebor  <msebor@redhat.com>
21002         PR rtl-optimization/19705
21003         * doc/invoke.texi (Options That Control Optimization): Clarify
21004         -fno-branch-count-reg.
21006 2016-02-26  Richard Biener  <rguenther@suse.de>
21007             Jeff Law  <law@redhat.com>
21009         PR tree-optimization/69740
21010         * cfghooks.c (remove_edge): Request loop fixups if we delete
21011         an edge that might turn an irreducible loop into a natural
21012         loop.
21013         * cfgloop.h (check_verify_loop_structure): Clear LOOPS_NEED_FIXUP.
21014         Move after definition of loops_state_clear.
21016 2016-03-07  Bin Cheng  <bin.cheng@arm.com>
21018         PR rtl-optimization/69052
21019         * rtlanal.c (commutative_operand_precedence): Set higher precedence
21020         to CONST_WIDE_INT.
21022 2016-03-07  Tom de Vries  <tom@codesourcery.com>
21024         PR tree-optimization/70116
21025         * tree-ssa-tail-merge.c (merge_stmts_p): New function, handling
21026         is_tm_ending stmts and ubsan/asan internal functions.
21027         (find_duplicate): Use it.  Don't test is_tm_ending here.
21029 2016-03-07  Richard Biener  <rguenther@suse.de>
21031         PR tree-optimization/70115
21032         * tree-ssa-loop-ivcanon.c (propagate_into_all_uses): Remove.
21033         (propagate_constants_for_unrolling): Use replace_uses_by.
21035 2016-03-07  Nathan Sidwell  <nathan@codesourcery.com>
21037         PR middle-end/69916
21038         * omp-low.c (struct oacc_loop): Add ifns.
21039         (new_oacc_loop_raw): Initialize it.
21040         (finish_oacc_loop): Clear mask & flags if no ifns.
21041         (oacc_loop_discover_walk): Count IFN_GOACC_LOOP calls.
21042         (oacc_loop_xform_loop): Add ifns arg & adjust.
21043         (oacc_loop_process): Adjust oacc_loop_xform_loop call.
21045 2016-03-07  Richard Henderson  <rth@redhat.com>
21047         PR rtl-opt/70061
21048         * tree-outofssa.c (emit_partition_copy): Flush pending stack adjust.
21049         (insert_value_copy_on_edge): Likewise.
21051 2016-03-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
21053         * config/arm/arm_neon.h: Show error if using with soft-float ABI.
21055 2016-03-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21057         PR target/62281
21058         * config/i386/sol2.h (STACK_REALIGN_DEFAULT): Define.
21060 2016-03-05  Venkataramanan Kumar  <Venkataramanan.kumar@amd.com>
21062         * config/i386/i386.c (znver1_cost): Fix Multiply cost.
21064 2016-03-05  Venkataramanan Kumar  <Venkataramanan.kumar@amd.com>
21066         Fix sseimul type attribute.
21067         * config/i386/znver1.md
21068         (znver1_sseimul, znver1_sseimul_avx256, znver1_sseimul_load,
21069         znver1_sseimul_avx256_load) : Fix the type attribute.
21070         (znver1_sseimul_di, znver1_sseimul_load_di): Fix type attribute,
21071         pipe usage and latency.
21073 2016-03-05  Jakub Jelinek  <jakub@redhat.com>
21075         PR c++/70084
21076         * tree-inline.c (copy_tree_body_r): When cancelling ADDR_EXPR
21077         of INDIRECT_REF and ADDR_EXPR changed type, fold_convert it
21078         to the right type.
21080 2016-03-04  Bernd Schmidt  <bschmidt@redhat.com>
21082         PR c/69973
21083         * targhooks.c (default_vector_alignment): Limit to MAX_OFILE_ALIGNMENT.
21085         PR rtl-optimization/69941
21086         * postreload.c (reload_combine_recognize_pattern): Ensure all uses of
21087         the reg share its mode.
21089 2016-03-04  Jeff Law  <law@redhat.com>
21091         PR tree-optimization/69196
21092         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
21093         If the both SSA_NAMEs are anonymous, then consider them unassociated
21094         and include the PHI in the statement count.
21096 2016-03-05  Tom de Vries  <tom@codesourcery.com>
21098         * omp-low.c (check_omp_nesting_restrictions): Check for non-oacc
21099         construct in oacc routine.  Check for oacc region in oacc routine.
21101 2016-03-04  Jakub Jelinek  <jakub@redhat.com>
21103         PR target/70062
21104         * config/i386/i386.c (decide_alg): Add RECUR argument.  Revert
21105         2016-02-22 changes, instead don't recurse if RECUR is already true.
21106         Don't change *dynamic_check if RECUR.  Adjust recursive caller
21107         to pass true to the new argument.
21108         (ix86_expand_set_or_movmem): Adjust decide_alg caller.
21110         PR target/70059
21111         * config/i386/sse.md (vec_set_lo_<mode><mask_name>,
21112         <extract_type_2>_vinsert<shuffletype><extract_suf_2>_mask): Formatting
21113         fixes.
21114         (vec_set_hi_<mode><mask_name>): Likewise.  Swap VEC_CONCAT operands.
21116 2016-03-04  Bernd Schmidt  <bschmidt@redhat.com>
21118         PR rtl-optimization/57676
21119         * lra-assigns.c (lra_assign): Guard test for maximum iterations
21120         with flag_checking.
21122 2016-03-04  Ilya Enkovich  <enkovich.gnu@gmail.com>
21124         * tree-vect-patterns.c (search_type_for_mask): Handle
21125         comparison of booleans.
21127 2016-03-04  Jakub Jelinek  <jakub@redhat.com>
21129         * doc/extend.texi (__builtin_alloca, __builtin_alloca_with_align):
21130         Fix @xref usage.
21132         PR debug/69947
21133         * dwarf2out.c (prune_unused_types_walk_loc_descr): Handle
21134         all other ops that have dw_val_class_die_ref operands,
21135         and DW_OP_GNU_entry_value.
21137 2016-03-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
21139         PR rtl-optimization/69904
21140         * config/arm/arm.c (arm_cannot_copy_insn_p):
21141         Return true for load-exclusive instructions.
21143 2016-03-03  Jakub Jelinek  <jakub@redhat.com>
21145         PR target/70021
21146         * tree-vect-stmts.c (vect_mark_relevant): Remove USED_IN_PATTERN
21147         argument, if STMT_VINFO_IN_PATTERN_P (stmt_info), always mark
21148         the pattern no matter if it is used just by non-pattern, pattern
21149         or mix thereof.
21150         (process_use, vect_mark_stmts_to_be_vectorized): Adjust callers.
21151         * tree-vect-patterns.c (vect_recog_vector_vector_shift_pattern): If
21152         oprnd1 def_stmt is in pattern, don't look through it.
21154 2016-03-03  Marek Polacek  <polacek@redhat.com>
21156         PR middle-end/70050
21157         * match.pd (X % -Y): Add INTEGRAL_TYPE_P check.
21159 2016-03-03  Martin Liska  <mliska@suse.cz>
21161         PR tree-optimization/70043
21162         * tree-vect-loop.c (optimize_mask_stores): Move iterator to
21163         previous statement if we see a debug statement.
21165 2016-03-03  Richard Biener  <rguenther@suse.de>
21167         PR tree-optimization/55936
21168         * tree-vrp.c (compare_name_with_value): Add use_equiv_p
21169         parameter and guard unsafe equivalence use.
21170         (vrp_evaluate_conditional_warnv_with_ops): Always use
21171         safe equivalences but not via the quadratic compare_names
21172         helper.
21174 2016-03-03  Michael Collison  <michael.collison@linaro.org>
21176         PR target/70014
21177         * config/arm/arm.md (*subsi3_carryin_const): Change predicate
21178         for operand 1 to s_register_operand. Change predicate for operand
21179         2 to arm_not_immediate_operand.
21181 2016-03-02  H.J. Lu  <hongjiu.lu@intel.com>
21183         * doc/tm.texi: Regenerated.
21185 2016-03-02  Richard Henderson  <rth@redhat.com>
21187         PR rtl-opt/67145
21188         * simplify-rtx.c (simplify_plus_minus): Allow reassoc without
21189         simplification when all args are positive non-fixed registers.
21191 2016-03-02  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
21193         * target.def (lra_p): Specify that new ports should use LRA.
21195 2016-03-02  Jakub Jelinek  <jakub@redhat.com>
21197         PR libgomp/69555
21198         * gimplify.c (gimplify_decl_expr): For decls with REFERENCE_TYPE, also
21199         gimplify_type_sizes the type they refer to.
21200         (omp_notice_variable): Handle reference vars to VLAs.
21201         * omp-low.c (lower_omp_target): Emit setup of OMP_CLAUSE_PRIVATE
21202         reference to VLA decls in the second pass instead of first pass.
21204 2016-03-02  Tom de Vries  <tom@codesourcery.com>
21206         PR tree-optimization/68659
21207         * graphite-isl-ast-to-gimple.c (collect_all_ssa_names): Handle
21208         new_expr == NULL_TREE.
21209         (get_new_name): Handle ADDR_EXPR.
21211 2016-03-02  Bin Cheng  <bin.cheng@arm.com>
21213         PR rtl-optimization/69052
21214         * loop-invariant.c (canonicalize_address): New function.
21215         (inv_can_prop_to_addr_use): Check validity of address expression
21216         which is canonicalized by above function.
21218 2016-03-02  Alan Modra  <amodra@gmail.com>
21220         PR ipa/69990
21221         * ipa-icf.c (sem_variable::merge): Do not merge an alias with
21222         larger alignment.
21224 2016-03-02  Jakub Jelinek  <jakub@redhat.com>
21226         PR target/70028
21227         * config/i386/i386.md (kmovw): Move m constraint to 2nd alternative.
21228         (*movhi_internal): Put mask moves from and to memory separately
21229         from moves from/to GPRs.
21231 2016-03-02  Richard Biener  <rguenther@suse.de>
21233         * genmatch.c (dt_node::gen_kids): Fix match code-gen for embedded
21234         GENERIC expressions in GIMPLE.
21236 2016-03-02  Richard Biener  <rguenther@suse.de>
21238         * config/i386/i386.c (type_natural_mode): Fix typo.
21240 2016-03-02  Nick Clifton  <nickc@redhat.com>
21242         * config.gcc (mep-*-elf): Add newlib-stdint.h to tm_file.
21244 2016-03-02  Richard Biener  <rguenther@suse.de>
21245             Uros Bizjak  <ubizjak@gmail.com>
21247         PR target/67278
21248         * config/i386/i386.c (type_natural_mode): Handle XFmode vectors.
21250 2016-03-02  Richard Biener  <rguenther@suse.de>
21252         PR middle-end/67278
21253         * tree-cfg.c (verify_expr): Adjust BIT_FIELD_REF case.
21255 2016-03-02  Marek Polacek  <polacek@redhat.com>
21257         PR c/67854
21258         * gimplify.c (gimplify_va_arg_expr): Use expanded location for the
21259         "is promoted to" warning.
21261 2016-03-01  DJ Delorie  <dj@redhat.com>
21263         * config.gcc: Deprecate mep-*.
21265 2016-03-01  Vladimir Makarov  <vmakarov@redhat.com>
21267         PR middle-end/70025
21268         * lra-constraints.c (regno_val_use_in): New.
21269         (match_reload): Use it instead of regno_use_in.
21271 2016-03-01  Eric Botcazou  <ebotcazou@adacore.com>
21273         PR rtl-optimization/70007
21274         * gcse.c (compute_ld_motion_mems): Tidy up and also invalidate memory
21275         references present in REG_EQUAL notes attached to non-SET patterns.
21277 2016-03-01  Jeff Law  <law@redhat.com>
21279         PR tree-optimization/69196
21280         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
21281         Appropriately clamp the number of statements to copy when the
21282         thread path does not traverse a loop backedge.
21284         PR tree-optimization/69196
21285         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
21286         Do count some PHIs in the thread path against the insn count.  Decrease
21287         final statement count by one as the control statement in the last
21288         block will get removed.  Remove special cased code for handling PHIs
21289         in the last block.
21291 2016-03-01  Uros Bizjak  <ubizjak@gmail.com>
21293         PR target/70027
21294         * config/i386/i386.c (ix86_output_call_insn): Add -masm=intel
21295         asm dialect alternatives to explicit GOTPCREL calls.
21297 2016-03-01  Eric Botcazou  <ebotcazou@adacore.com>
21299         PR ada/70017
21300         * ira.c (do_reload): Issue warning for generic stack checking here...
21301         * reload1.c (reload): ...instead of here and streamline it.
21303 2016-03-01  Nick Clifton  <nickc@redhat.com>
21305         * config.gcc (cr16-*-elf): Add newlib-stdint.h to tm_file.
21307 2016-03-01  Richard Biener  <rguenther@suse.de>
21309         PR tree-optimization/69983
21310         * tree-chrec.c (eq_evolutions_p): Handle conversions, compare
21311         types and fall back to operand_equal_p.
21313 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
21315         Revert
21316         2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
21318         * config/s390/constraints.md ("jm8"): New constraint.
21319         * config/s390/predicates.md ("const_int_8bitset_operand"): New
21320         predicate.
21321         * config/s390/s390.md ("*setmem_long", "*setmem_long_and"): Merge
21322         into ...
21323         ("*setmem_long<setmem_and>"): New pattern.
21324         ("*setmem_long_31z", "*setmem_long_and_31z"): Merge
21325         into ...
21326         ("*setmem_long_31z<setmem_and>"): New pattern.
21327         * config/s390/subst.md ("setmem_31z_subst", "setmem_and_subst"):
21328         New substitution rules with the required attributes.
21331 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
21333         Revert
21334         2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
21336         * gensupport.c (process_substs_on_one_elem): Split loop to
21337         complete mark_operands_used_in_match_dup on all expressions in the
21338         vector first.
21339         (adjust_operands_numbers): Inline into process_substs_on_one_elem
21340         and remove function.
21342 2016-03-01  Richard Biener  <rguenther@suse.de>
21344         PR middle-end/70022
21345         * fold-const.c (fold_indirect_ref_1): Fix range checking for
21346         vector BIT_FIELD_REF extract.
21348 2016-03-01  Richard Biener  <rguenther@suse.de>
21350         PR tree-optimization/69994
21351         * tree-ssa-reassoc.c (ops_equal_values_p): Handle missing case.
21353 2016-03-01  Ilya Enkovich  <enkovich.gnu@gmail.com>
21355         PR tree-optimization/69956
21356         * tree-vect-stmts.c (supportable_widening_operation): Support
21357         multi-step conversion of boolean vectors.
21358         (supportable_narrowing_operation): Likewise.
21360 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
21362         * config/s390/s390.c (s390_decompose_address): Don't accept SImode
21363         anymore.
21365 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
21367         * config/s390/subst.md (DSI_VI): New mode iterator.
21368         ("addr_style_op_subst"): Use DSI_VI instead of DSI.
21369         * config/s390/vector.md ("vec_set<mode>"): Move expander before
21370         the insn definition.
21371         ("*vec_set<mode>"): Change predicate and add alternative to
21372         support only either register or const_int operands as element
21373         selector.
21374         ("*vec_set<mode>_plus"): New pattern to support reg + const_int
21375         operands.
21376         ("vec_extract<mode>"): New expander.
21377         ("*vec_extract<mode>"): New insn definition supporting reg and
21378         const_int element selectors.
21379         ("*vec_extract<mode>_plus"): New insn definition supporting
21380         reg+const_int element selectors.
21381         ("rotl<mode>3", "ashl<mode>3", "ashr<mode>3"): Merge into the
21382         following expander+insn definition.
21383         ("<vec_shifts_name><mode>3"): New expander.
21384         ("*<vec_shifts_name><mode>3<addr_style_op>"): New insn definition.
21386 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
21388         * config/s390/s390.md ("*tabort_1"): Change predicate to
21389         nonmemory_operand.  Add a second alternative to cover
21390         register as well as const int operands.
21391         ("*tabort_1_plus"): New pattern definition.
21393 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
21395         * config/s390/s390.md ("*ashrdi3_cc_31")
21396         ("*ashrdi3_cconly_31""*ashrdi3_cc_31_and")
21397         ("*ashrdi3_cconly_31_and", "*ashrdi3_31_and", "*ashrdi3_31"):
21398         Merge insn definitions into ...
21399         ("*ashrdi3_31<addr_style_op_cc><masked_op_cc><setcc><cconly>"):
21400         New pattern definition.
21401         ("*ashr<mode>3_cc", "*ashr<mode>3_cconly", "ashr<mode>3", )
21402         ("*ashr<mode>3_cc_and", "*ashr<mode>3_cconly_and")
21403         ("*ashr<mode>3_and"): Merge insn definitions into ...
21404         ("*ashr<mode>3<addr_style_op_cc><masked_op_cc><setcc><cconly>"):
21405         New pattern definition.
21406         * config/s390/subst.md ("addr_style_op_cc_subst")
21407         ("masked_op_cc_subst", "setcc_subst", "cconly_subst"): New
21408         substitutions patterns plus attributes.
21409         Add ashiftrt to SUBST iterator.
21411 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
21413         * config/s390/s390.md ("<shift><mode>3"): Change predicate of
21414         op2 to nonmemory_operand.
21415         ("*<shift>di3_31", "*<shift>di3_31_and"):
21416         Merge into single pattern definition ...
21417         ("*<shift>di3_31<addr_style_op><masked_op>"): New pattern.
21418         ("*<shift><mode>3", "*<shift><mode>3_and"): Merge into single
21419         pattern definition ...
21420         ("*<shift><mode>3<addr_style_op><masked_op>"): New pattern.
21421         * config/s390/subst.md: Add ashift and lshiftrt to SUBST
21422         iterator.
21424 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
21426         * config/s390/predicates.md (const_int_6bitset_operand): New
21427         predicate.
21428         * config/s390/s390.md: Include subst.md.
21429         ("rotl<mode>3"): New expander.
21430         ("rotl<mode>3", "*rotl<mode>3_and"): Merge insn definitions into
21431         ...
21432         ("*rotl<mode>3<addr_style_op><masked_op>"): New insn definition.
21433         * config/s390/subst.md: New file.
21435 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
21437         * config/s390/s390.md ("op_type", "atype", "length" attributes):
21438         Remove RRR type.  It doesn't really exist.
21439         ("RRer", "f0", "v0", "vf", "vd", "op1", "Rf"): Remove mode
21440         attributes.
21441         ("BFP", "DFP", "nDSF", "nDFDI"): Add mode attributes.
21442         ("*cmp<mode>_ccs", "floatdi<mode>2", "add<mode>3")
21443         ("*add<mode>3_cc", "*add<mode>3_cconly", "sub<mode>3")
21444         ("*sub<mode>3_cc", "*sub<mode>3_cconly", "mul<mode>3")
21445         ("fma<mode>4", "fms<mode>4", "div<mode>3", "*neg<mode>2")
21446         ("*abs<mode>2", "*negabs<mode>2", "sqrt<mode>2"): Override
21447         `enabled' attribute.
21449 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
21451         * gensupport.c (process_substs_on_one_elem): Split loop to
21452         complete mark_operands_used_in_match_dup on all expressions in the
21453         vector first.
21454         (adjust_operands_numbers): Inline into process_substs_on_one_elem
21455         and remove function.
21457 2016-02-29  Eric Botcazou  <ebotcazou@adacore.com>
21459         PR target/69706
21460         * config/sparc/sparc.c (NWORDS_UP): Rename to...
21461         (CEIL_NWORDS): ...this.  Use CEIL macro.
21462         (compute_fp_layout): Adjust to above renaming.
21463         (function_arg_union_value): Likewise.
21464         (sparc_arg_partial_bytes): Likewise.
21465         (sparc_function_arg_advance): Likewise.
21467 2016-02-29  Jeff Law  <law@redhat.com>
21469         PR tree-optimization/70005
21470         * tree-ssa-uncprop.c (associate_equivalences_with_edges): Handle case
21471         where an object with a boolean range is compared against a value
21472         outside [0..1].
21474         PR tree-optimization/69999
21475         * gimple-ssa-split-paths.c (split_paths): When duplicating a block
21476         with an outgoing edge marked with EDGE_IRREDUCIBLE_LOOP, schedule
21477         loop cleanups.
21479 2016-02-29  Richard Biener  <rguenther@suse.de>
21481         PR tree-optimization/69994
21482         * tree-ssa-reassoc.c (gimple_nop_conversion_p): New function.
21483         (get_unary_op): Look through nop conversions.
21484         (ops_equal_values_p): New function, look for equality diregarding
21485         nop conversions.
21486         (eliminate_plus_minus_pair): Use ops_equal_values_p
21487         (repropagate_negates): Do not use get_unary_op here.
21489 2016-02-29  Martin Liska  <mliska@suse.cz>
21491         * system.h: Poison ENABLE_CHECKING macro.
21493 2016-02-29  Martin Liska  <mliska@suse.cz>
21495         * hsa-gen.c (gen_body_from_gimple): Dump only if TDF_DETAILS
21496         is presented in dump flags.
21497         * hsa-regalloc.c (linear_scan_regalloc): Likewise.
21498         (hsa_regalloc): Likewise.
21500 2016-02-19  Richard Biener  <rguenther@suse.de>
21502         PR tree-optimization/69980
21503         * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Update
21504         permutation of those we need to keep.
21506 2016-02-29  Eric Botcazou  <ebotcazou@adacore.com>
21508         PR target/69706
21509         * config/sparc/sparc.c (ROUND_ADVANCE): Rename to...
21510         (NWORDS_UP): ...this
21511         (init_cumulative_args): Minor tweaks.
21512         (sparc_promote_function_mode): Likewise.
21513         (scan_record_type): Delete.
21514         (traverse_record_type): New function template.
21515         (classify_data_t): New structure type.
21516         (classify_registers): New inline function.
21517         (function_arg_slotno): In 64-bit mode, bail out early if FP slots are
21518         exhausted.  Instantiate traverse_record_type on classify_registers and
21519         deal with the case of a structure passed in slot #15 with no FP field
21520         in the first word.
21521         (assign_data_t): New structure type.
21522         (compute_int_layout): New static function.
21523         (compute_fp_layout): Likewise.
21524         (count_registers): New inline function.
21525         (assign_int_registers): New static function.
21526         (assign_fp_registers): Likewise.
21527         (assign_registers): New inline function.
21528         (function_arg_record_value_1): Delete.
21529         (function_arg_record_value_2): Likewise.
21530         (function_arg_record_value_3): Likewise.
21531         (function_arg_record_value): Adjust to above changes.  Instantiate
21532         traverse_record_type on count_registers to first count the number of
21533         registers to be used and then on assign_registers to assign them.
21534         (function_arg_union_value): Adjust to above renaming.
21535         (sparc_function_arg_1); Minor tweaks.  Remove commented out code.
21536         (sparc_arg_partial_bytes): Adjust to above renaming.  Deal with the
21537         case of a structure passed in slot #15
21538         (sparc_function_arg_advance): Likewise.
21539         (function_arg_padding): Minor tweak.
21541 2016-02-29  Richard Biener  <rguenther@suse.de>
21543         PR tree-optimization/69720
21544         * tree-vect-loop.c (get_initial_def_for_reduction): Avoid
21545         the adjustment_def path for possibly vectorized defs.
21546         (vect_create_epilog_for_reduction): Handle vectorized initial
21547         defs properly.
21549 2016-02-28  Eric Botcazou  <ebotcazou@adacore.com>
21551         * config/i386/cygming.h (STACK_REALIGN_DEFAULT): Define.
21553 2016-02-27  Jeff Law  <law@redhat.com>
21555         Revert
21556         2016-02-26  Richard Biener  <rguenther@suse.de>
21557                     Jeff Law  <law@redhat.com>
21559         PR tree-optimization/69740
21560         * cfghooks.c (remove_edge): Request loop fixups if we delete
21561         an edge that might turn an irreducible loop into a natural
21562         loop.
21564 2016-02-27  Jakub Jelinek  <jakub@redhat.com>
21566         PR rtl-optimization/69896
21567         * tree-vect-generic.c (get_compute_type): Avoid single element
21568         vector types.
21570 2016-02-26  Evandro Menezes  <e.menezes@samsung.com>
21572         Rename the AArch64 tuning option and related functions to enable the
21573         Newton series for the reciprocal square root to reflect its
21574         approximative characteristic.
21576         * config/aarch64/aarch64-protos.h (aarch64_emit_swrsqrt): Rename
21577         function to "aarch64_emit_approx_rsqrt".
21578         * config/aarch64/aarch64-tuning-flags.def: Rename tuning flag to
21579         AARCH64_EXTRA_TUNE_APPROX_RSQRT.
21580         * config/aarch64/aarch64.c (exynosm1_tunigs): Use new flag name.
21581         (xgene1_tunings): Likewise.
21582         (use_rsqrt_p): Likewise.
21583         (aarch64_emit_swrsqrt): Use new function name.
21584         * config/aarch64/aarch64-simd.md (aarch64_rsqrts_*): Likewise.
21585         * config/aarch64/aarch64.opt (mlow-precision-recip-sqrt): Reword the
21586         text explaining this option.
21587         * doc/invoke.texi (-mlow-precision-recip-sqrt): Likewise.
21589 2016-02-26  Jakub Jelinek  <jakub@redhat.com>
21591         PR target/69969
21592         * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
21593         complain about -mallow-movmisalign without -mvsx if
21594         TARGET_ALLOW_MOVMISALIGN was not set explicitly.
21596 2016-02-26  Joel Sherrill  <joel@rtems.org>
21598         * config.gcc: Add x86_64-*-rtems*.
21599         * config/i386/rtems-64.h: New file.
21601 2016-02-26  Joel Sherrill  <joel@rtems.org>
21603         * config.gcc: Add aarch64-*-rtems*.
21604         * config/aarch64/rtems.h: New file.
21606 2016-02-26  Segher Boessenkool  <segher@kernel.crashing.org>
21608         PR target/69946
21609         * config/rs6000/rs6000.c (rs6000_insn_for_shift_mask): Print rlwinm
21610         shift amount using %h.  Add comment.
21612 2016-02-26  Richard Biener  <rguenther@suse.de>
21613             Jeff Law  <law@redhat.com>
21615         PR tree-optimization/69740
21616         * cfghooks.c (remove_edge): Request loop fixups if we delete
21617         an edge that might turn an irreducible loop into a natural
21618         loop.
21620 2016-02-26  Martin Jambor  <mjambor@suse.cz>
21622         PR middle-end/69920
21623         * tree-sra.c (sra_modify_assign): Do not remove loads of
21624         uninitialized aggregates to SSA_NAMEs.
21626 2016-02-26  Richard Henderson  <rth@redhat.com>
21628         PR target/69709
21629         * config/s390/s390.md (risbg and risbgn splitters): Allocate new
21630         pseudo in case the target rtx matches the source of the left
21631         shift.
21633 2016-02-26  Martin Jambor  <mjambor@suse.cz>
21635         PR hsa/69568
21636         * hsa.h (hsa_type_packed_p): Declare.
21637         * hsa.c (hsa_type_packed_p): New function.
21638         * hsa-gen.c (mem_type_for_type): Use unsigned type for packed
21639         loads.
21640         (gen_hsa_insns_for_store): Use hsa_type_packed_p.
21641         * hsa-brig.c (emit_basic_insn): Likewise.
21643 2016-02-26  Martin Jambor  <mjambor@suse.cz>
21645         pr hsa/69674
21646         * hsa-gen.c (gen_hsa_phi_from_gimple_phi): Use proper hsa type for
21647         pointers.
21648         (gen_hsa_addr): Allow integer constants in TMR_INDEX2.
21650 2016-02-26  Martin Jambor  <mjambor@suse.cz>
21652         * hsa.h (is_a_helper): New overload for hsa_op_immed for
21653         hsa_op_with_type operands.
21654         (hsa_unsigned_type_for_type): Declare.
21655         * hsa.c (hsa_unsigned_type_for_type): New function.
21656         * hsa-gen.c (gen_hsa_binary_operation): Use hsa_unsigned_type_for_type.
21657         (gen_hsa_insns_for_operation_assignment): Satisfy constrains of
21658         the finalizer.  Do not emit extra move.
21660 2016-02-26  Martin Jambor  <mjambor@suse.cz>
21662         * hsa-gen.c (gen_hsa_ternary_atomic_for_builtin): Fail in presence of
21663         atomic operations in private segment.
21665 2016-02-26  Martin Jambor  <mjambor@suse.cz>
21667         * omp-low.c (grid_find_ungridifiable_statement): Store problematic
21668         statements to wi->info.  Also disallow omp simd constructs.
21669         (grid_target_follows_gridifiable_pattern): Use wi.info to dump reason
21670         for not gridifying.  Dump special string for omp_for.
21672 2016-02-26  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
21674         PR target/69245
21675         * config/aarch64/aarch64.c (aarch64_set_current_function):
21676         Save/restore target globals when switching to
21677         target_option_default_node.
21679 2016-02-26  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
21681         PR target/69613
21682         * config/aarch64/aarch64.c (aarch64_shift_truncation_mask):
21683         Return 0 if !SHIFT_COUNT_TRUNCATED.
21685 2016-02-26  Jakub Jelinek  <jakub@redhat.com>
21686             Eric Botcazou  <ebotcazou@adacore.com>
21688         PR rtl-optimization/69891
21689         * dse.c (scan_insn): If we can't figure out memset arguments
21690         or they are non-constant, call clear_rhs_from_active_local_stores.
21692 2016-02-26  Martin Liska  <mliska@suse.cz>
21694         * doc/extend.texi: Mention clog10, clog10f an clog10l
21695         in Builtins section.
21697 2016-02-26  Martin Liska  <mliska@suse.cz>
21699         * dwarf2out.c (new_loc_descr): Replace ENABLE_CHECKING with
21700         CHECKING_P.
21701         (resolve_args_picking_1): Likewise.
21702         * dwarf2out.h (struct GTY): Likewise.
21704 2016-02-26  Martin Liska  <mliska@suse.cz>
21706         * hsa-gen.c (generate_hsa): Replace ENABLE_CHECKING macro
21707         with flag_checking.
21708         * hsa-regalloc.c (linear_scan_regalloc): Likewise.
21710 2016-02-26  Markus Trippelsdorf  <markus@trippelsdorf.de>
21711             Martin Liska  <mliska@suse.cz>
21713         * doc/install.texi: Mention --enable-valgrind-annotations.
21715 2016-02-26  Richard Biener  <rguenther@suse.de>
21717         PR tree-optimization/69551
21718         * tree-ssa-structalias.c (get_constraint_for_ssa_var): When
21719         looking through aliases adjust DECL_PT_UID to refer to the
21720         ultimate alias target.
21722 2016-02-25  Martin Liska  <mliska@suse.cz>
21724         PR middle-end/69919
21725         * alloc-pool.c (after_memory_report): New variable.
21726         * alloc-pool.h (base_pool_allocator ::release): Do not use
21727         the infrastructure if after_memory_report.
21728         * toplev.c (toplev::main): Mark after memory report.
21730 2016-02-25  Richard Biener  <rguenther@suse.de>
21732         PR tree-optimization/48795
21733         * tree-vrp.c (check_array_ref): Use array_at_struct_end_p.
21735 2016-02-25  Ilya Verbin  <ilya.verbin@intel.com>
21737         PR driver/68463
21738         * config/gnu-user.h (CRTOFFLOADBEGIN): Define.  Add crtoffloadbegin.o if
21739         offloading is enabled and -fopenacc or -fopenmp is specified.
21740         (CRTOFFLOADEND): Likewise.
21741         (GNU_USER_TARGET_STARTFILE_SPEC): Add CRTOFFLOADBEGIN.
21742         (GNU_USER_TARGET_ENDFILE_SPEC): Add CRTOFFLOADEND.
21743         * lto-wrapper.c (offloadbegin, offloadend): Remove static vars.
21744         (offload_objects_file_name): New static var.
21745         (tool_cleanup): Remove offload_objects_file_name file.
21746         (find_offloadbeginend): Replace with ...
21747         (find_crtoffloadtable): ... this.
21748         (run_gcc): Remove offload_argc and offload_argv.
21749         Get offload_objects_file_name from -foffload-objects=... option.
21750         Read names of object files with offload from this file, pass them to
21751         compile_images_for_offload_targets.  Don't call find_offloadbeginend and
21752         don't pass offloadbegin and offloadend to the linker.  Don't pass
21753         offload non-LTO files to the linker, because now they're not claimed.
21755 2016-02-25  Jan Hubicka  <hubicka@ucw.cz>
21757         PR ipa/69630
21758         * ipa-devirt.c (possible_polymorphic_call_targets): Do not ICE
21759         on builtin_unreachable.
21761 2016-02-25  Jakub Jelinek  <jakub@redhat.com>
21763         PR rtl-optimization/69896
21764         * regcprop.c: Include cfgrtl.h.
21765         (copyprop_hardreg_forward_1): If noop_p insn uses narrower
21766         than remembered mode, either delete it (if noop_move_p), or
21767         treat like copy_p but not noop_p instruction.
21769 2016-02-24  Jakub Jelinek  <jakub@redhat.com>
21771         PR debug/69705
21772         * dwarf2out.c (gen_variable_die): Work around buggy LTO
21773         - allow NULL decl for Fortran DW_TAG_common_block variables.
21775 2016-02-24  Jason Merrill  <jason@redhat.com>
21777         * common.opt (flifetime-dse): Add -flifetime-dse=1.
21779 2016-02-24  Richard Biener  <rguenther@suse.de>
21780             Jakub Jelinek  <jakub@redhat.com>
21782         PR middle-end/69760
21783         * tree-scalar-evolution.c (interpret_rhs_expr): Re-write
21784         conditionally executed ops to well-defined overflow behavior.
21786 2016-02-24  Jakub Jelinek  <jakub@redhat.com>
21788         PR middle-end/69915
21789         * tree.c (build_vector_from_ctor): Fix handling of VECTOR_CST
21790         elements.
21792 2016-02-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
21794         PR rtl-optimization/69886
21795         * gcse.c (can_assign_to_reg_without_clobbers_p): Accept mode
21796         argument.  Use it when checking validity of set instructions.
21797         (want_to_gcse_p): Pass mode to can_assign_to_reg_without_clobbers_p.
21798         (compute_ld_motion_mems): Update can_assign_to_reg_without_clobbers_p
21799         callsite.
21800         * rtl.h (can_assign_to_reg_without_clobbers_p): Update prototype.
21801         * store-motion.c (find_moveable_store): Update
21802         can_assign_to_reg_without_clobbers_p callsite.
21804 2016-02-24  Richard Biener  <rguenther@suse.de>
21806         PR middle-end/68963
21807         * tree-ssa-loop-niter.c (derive_constant_upper_bound_ops): Fix
21808         bogus check.
21809         (record_nonwrapping_iv): Do not fall back to the low/high bound
21810         for non-constant IV bases if the stmt is not always executed.
21812 2016-02-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
21814         * config/arm/arm-cores.def (cortex-a32): New entry.
21815         * config/arm/arm-tables.opt: Regenerate.
21816         * config/arm/arm-tune.md: Regenerate.
21817         * config/arm/bpabi.h (BE8_LINK_SPEC): Add mcpu=cortex-a32.
21818         * config/arm/t-aprofile: Handle mcpu=cortex-a32.
21819         * doc/invoke.texi (ARM Options): Document cortex-a32 as value
21820         for -mcpu and -mtune.
21822 2016-02-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
21824         PR target/69875
21825         * config/arm/arm.h (TARGET_HAVE_LPAE): Define.
21826         * config/arm/unspecs.md (VUNSPEC_LDRD_ATOMIC): New value.
21827         * config/arm/sync.md (arm_atomic_loaddi2_ldrd): New pattern.
21828         (atomic_loaddi_1): Delete.
21829         (atomic_loaddi): Rewrite expander using the above changes.
21831 2016-02-24  Jakub Jelinek  <jakub@redhat.com>
21833         PR c/69918
21834         * params.def (PARAM_MAX_SSA_NAME_QUERY_DEPTH): Bump default from
21835         2 to 3.
21837 2016-02-24  Jakub Jelinek  <jakub@redhat.com>
21838             Richard Biener  <rguenth@suse.de>
21840         PR middle-end/69909
21841         * expr.c (expand_expr_real_1) <normal_inner_ref>: Avoid
21842         set_mem_attributes if tem is SSA_NAME which got expanded
21843         as a MEM.
21845 2016-02-24  Richard Biener  <rguenther@suse.de>
21847         PR tree-optimization/69907
21848         * tree-vect-stmts.c (vectorizable_load): Check for gaps at the
21849         end of permutations for BB vectorization.
21851 2016-02-24  Christian Bruel  <christian.bruel@st.com>
21853         * config/arm/arm-c.c (arm_option_override): Initialize
21854         target_option_current_node.
21855         * config/arm/arm.c (arm_pragma_target_parse): Replace
21856         build_target_option_node call by target_option_current_node.
21857         Set target_option_current_node.
21858         Fix comments.
21860 2016-02-23  David Edelsohn  <dje.gcc@gmail.com>
21862         PR target/69810
21863         * config/rs6000/rs6000.md (zero_extendqi<mode>2_dot): Convert from
21864         define_insn_and_split to define_insn.
21865         (zero_extendqi<mode>2_dot2): Same.
21866         (extendqi<mode>2_dot): Same.
21867         (extendqi<mode>2_dot2): Same.
21869 2016-02-23  Evandro Menezes  <e.menezes@samsung.com>
21871         * config/arm/exynos-m1.md: Change cost of STP, fix bypass for stores
21872         and add bypass for AES{D,E} and AESMC pairs.
21873         * config/aarch64/aarch64.c (exynosm1_tunings): Enable fusion of AES{D,E}
21874         and AESMC pairs.
21876 2016-02-23  Evandro Menezes  <e.menezes@samsung.com>
21878         * config/aarch64/aarch64.c (exynosm1_tunings): Enable the Newton
21879         series for reciprocal square root in Exynos M1.
21881 2016-02-23  Martin Sebor  <msebor@redhat.com>
21883         PR c/69759
21884         * doc/extend.texi (Other Builtins): Document __builtin_alloca and
21885         __builtin_alloca_with_align.
21887 2016-02-23  Richard Henderson  <rth@redhat.com>
21889         * config/i386/i386-c.c (ix86_target_macros): Remove __SEG_TLS.
21890         (ix86_register_pragmas): Remove __seg_tls.
21891         * config/i386/i386-protos.h (ADDR_SPACE_SEG_TLS): Remove.
21892         * config/i386/i386.c (ix86_print_operand_address_as): Don't handle it.
21893         (ix86_addr_space_subset_p, TARGET_ADDR_SPACE_SUBSET_P): Remove.
21894         (ix86_addr_space_convert, TARGET_ADDR_SPACE_CONVERT): Remove.
21895         (ix86_addr_space_debug, TARGET_ADDR_SPACE_DEBUG): Remove.
21896         * doc/extend.texi (__seg_tls): Remove item.
21898 2016-02-23  Richard Biener  <rguenther@suse.de>
21900         * alloc-pool.h (struct allocation_object): Make id member
21901         conditional on CHECKING_P again.
21902         (get_instance): Adjust.
21903         (base_pool_allocator): Likewise.
21905 2016-02-23  Thomas Schwinge  <thomas@codesourcery.com>
21907         * tree-parloops.c (create_parallel_loop, gen_parallel_loop)
21908         (parallelize_loops): In OpenACC kernels mode, set n_threads to
21909         zero.
21910         (pass_parallelize_loops::gate): In OpenACC kernels mode, gate on
21911         flag_openacc.
21912         * tree-ssa-loop.c (gate_oacc_kernels): Likewise.
21914 2016-02-23  Richard Biener  <rguenther@suse.de>
21916         * mem-stats.h (struct mem_usage): Use PRIu64 for printing size_t.
21917         * bitmap.h (struct bitmap_usage): Likewise.
21918         (bitmap_move): Declare.
21919         * bitmap.c (register_overhead): Take size_t argument.
21920         (bitmap_move): New function.
21921         * df-problems.c (df_rd_transfer_function): Use bitmap_move
21922         to properly account overhead.
21923         * tree.c (free_node): Use tree_size.
21925 2016-02-23  Jakub Jelinek  <jakub@redhat.com>
21927         PR c++/69902
21928         * fold-const.c (fold_truth_not_expr): Propagate TREE_NO_WARNING
21929         when inverting comparison.
21931         PR c/69900
21932         * common.opt (Wunreachable-code): Add Warning flag.
21934 2016-02-23  Mark Wielaard  <mjw@redhat.com>
21935             Jakub Jelinek  <jakub@redhat.com>
21937         PR c/69911
21938         * cgraphunit.c (check_global_declaration): Check main_input_filename
21939         and DECL_SOURCE_FILE are not NULL.
21941 2016-02-23  Martin Jambor  <mjambor@suse.cz>
21943         PR tree-optimization/69666
21944         * tree-sra.c (sra_modify_assign): Do not attempt to create
21945         default_def replacements for unscalarizable regions.
21947 2016-02-20  Mark Wielaard  <mjw@redhat.com>
21949         PR c/28901
21950         * cgraphunit.c (check_global_declaration): Check level of
21951         warn_unused_const_variable and main_input_filename.
21952         * doc/invoke.texi (Warning Options): Add -Wunused-const-variable=.
21953         (-Wunused-variable): For C implies -Wunused-const-variable=1.
21954         (-Wunused-const-variable): Explain levels 1 and 2.
21956 2016-02-22  Jakub Jelinek  <jakub@redhat.com>
21958         PR target/69888
21959         * config/i386/i386.c (decide_alg): Ensure we don't recurse with
21960         identical arguments.  Formatting and spelling fixes.
21962         PR target/69885
21963         * doc/md.texi (ashl@var{m}3): Document that mode of operand 2 must
21964         be specified.
21966         PR target/69894
21967         PR target/69895
21968         * config/m68k/t-opts (OPTIONS_H_EXTRA): Add m68k-microarchs.def
21969         and m68k-devices.def.
21970         * config/c6x/t-c6x (OPTIONS_H_EXTRA): Add c6x-isas.def.
21971         * config/aarch64/t-aarch64 (OPTIONS_H_EXTRA): Add aarch64-arches.def.
21973 2016-02-22  Cesar Philippidis  <cesar@codesourcery.com>
21975         * config/nvptx/nvptx.c (nvptx_gen_shuffle): Add support for QImode
21976         and HImode registers.
21978 2016-02-22  Richard Biener  <rguenther@suse.de>
21980         PR tree-optimization/69882
21981         * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Properly
21982         preserve permutations present because of gaps.
21983         (vect_supported_load_permutation_p): Always continue checking
21984         permutations after vect_attempt_slp_rearrange_stmts.
21986 2016-02-22  Bin Cheng  <bin.cheng@arm.com>
21988         * tree-vect-loop.c (vect_estimate_min_profitable_iters): Dump
21989         min_profitable_estimate, rather than min_profitable_iters.
21991 2016-02-22  Jakub Jelinek  <jakub@redhat.com>
21993         PR target/69885
21994         * config/m68k/m68k.md (ashldi3, ashrdi3, lshrdi3): Use
21995         SImode for last match_operand.
21997 2016-02-22  Martin Liska  <mliska@suse.cz>
21999         * hsa-gen.c (gen_hsa_clrsb): In case of zero value,
22000         return bitsize - 1 as the return value.
22002 2016-02-22  Oleg Endo  <olegendo@gcc.gnu.org>
22004         PR target/69806
22005         PR target/54089
22006         * config/sh/sh.c (sh_lshrsi_clobbers_t_reg_p, sh_dynamicalize_shift_p):
22007         Handle negative shift counts.
22008         * config/sh/sh.md (ashlsi3, lshrsi3_n, lshrsi3_n_clobbers_t): Don't use
22009         force_reg on the shift constant.
22010         (lshrsi3): Likewise.  Expand into lshrsi3_n* instead of lshrsi3_d.
22011         (lshrsi3_d): Handle negative shift counts.
22013 2016-02-22  Richard Biener  <rguenther@suse.de>
22014             Tom de Vries  <tom@codesourcery.com>
22016         * graph.c: Include dumpfile.h.
22017         (print_graph_cfg): Split into three overloads.
22018         * gdbhooks.py (class DotFn): Add and instantiate, adding command dot-fn.
22020 2016-02-22  Tom de Vries  <tom@codesourcery.com>
22022         * gdbhooks.py (class DumpFn): Add and instantiate, adding command
22023         dump-fn.
22025 2016-02-22  Richard Biener  <rguenther@suse.de>
22027         PR ipa/37448
22028         * ipa-inline-transform.c (inline_call): When not updating
22029         overall summaries adjust self size by the growth estimate.
22030         * ipa-inline.c (inline_to_all_callers_1): Add to the callers
22031         hash-set, do not update overall summaries here.  Renamed from ...
22032         (inline_to_all_callers): ... this which is now wrapping the
22033         above and performing delayed overall summary update.
22034         (early_inline_small_functions): Delay updating of the overall
22035         summary.
22037 2016-02-21  Markus Trippelsdorf  <markus@trippelsdorf.de>
22039         * tree-chkp.c (chkp_mark_invalid_bounds_walker): Initialize
22040         variable.
22042 2016-02-19  Jakub Jelinek  <jakub@redhat.com>
22044         PR driver/69805
22045         * gcc.c (LINK_COMMAND_SPEC, GOMP_SELF_SPECS): Use
22046         :%* in %:gt() argument.
22047         (greater_than_spec_func): Adjust for expecting only numbers,
22048         if there are more than two numbers, compare the last two.
22050 2016-02-19  Jonathan Wakely  <jwakely@redhat.com>
22052         * doc/invoke.texi (C++ Dialect Options): Clarify interaction of
22053         -Wnarrowing with -std.
22055 2016-02-19  Jakub Jelinek  <jakub@redhat.com>
22057         PR c++/69851
22058         * expr.c (store_field): Don't use bit-field path if exp is
22059         COMPONENT_REF with TREE_ADDRESSABLE type, where TYPE_SIZE is
22060         different from bitsize, but DECL_SIZE of FIELD_DECL is bitsize
22061         and the assignment can be performed by bitwise copy.  Formatting
22062         fix.
22064         PR middle-end/69838
22065         * lra.c (lra_process_new_insns): If non-call exceptions are enabled,
22066         call copy_reg_eh_region_note_forward on before and/or after sequences
22067         and remove note from insn if it no longer can throw.
22069         PR target/69820
22070         * config/i386/sse.md (VI_512): Only include V64QImode and V32HImode
22071         if TARGET_AVX512BW.
22073 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
22075         * config/s390/vector.md: Add missing commutative operand markers
22076         to the patterns which qualify for one.
22077         * config/s390/vx-builtins.md: Likewise.
22079 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
22081         * config/s390/vector.md (VI, VI_QHS): Add single element vector
22082         types to mode iterators.
22083         (vec_double): ... and mode attribute.
22084         * config/s390/vx-builtins.md (non_vec_int): Likewise.
22086 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
22088         * config/s390/vector.md ("<ti*>add<mode>3", "<ti*>sub<mode>3"):
22089         Change the predicate of op2 from nonimmediate to general and let
22090         reload fix it if necessary.
22092 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
22094         * config/s390/vecintrin.h (vec_sub_u128): Define missing macro.
22096 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
22098         * config/s390/s390.c (s390_expand_vcond): Use the compare operand
22099         mode.
22101 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
22103         * config/s390/s390-protos.h: Add s390_expand_vec_movstr prototype.
22104         * config/s390/s390.c (s390_expand_vec_movstr): New function.
22105         * config/s390/s390.md ("movstr<P:mode>"): Call
22106         s390_expand_vec_movstr.
22108 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
22110         * config/s390/s390.md: Add missing output modifier for operand 1
22111         to print it as address properly.
22113 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
22115         * config/s390/2827.md: Rename ooo_* insn attributes to zEC12_*.
22116         * config/s390/2964.md: New file.
22117         * config/s390/s390.c (s390_get_sched_attrmask): Use the right set
22118         of insn grouping attributes depending on the CPU level.
22119         (s390_get_unit_mask): New function.
22120         (s390_sched_score): Remove the OOO from the scheduling macros.
22121         Add loop to calculate a score for the instruction mix.
22122         (s390_sched_reorder): Likewise plus improve debug output.
22123         (s390_sched_variable_issue): Rename macros as above.  Calculate
22124         the unit distances after actually scheduling an insn.  Improve
22125         debug output.
22126         (s390_sched_init): Clear last_scheduled_unit_distance array.
22127         * config/s390/s390.md: Include 2964.md.
22129 2016-02-18  Jakub Jelinek  <jakub@redhat.com>
22131         PR target/69671
22132         * config/i386/sse.md (*<floatsuffix>floatv2div2sf2_mask_1,
22133         *avx512vl_<code>v2div2qi2_mask_1, *avx512vl_<code><mode>v4qi2_mask_1,
22134         *avx512vl_<code><mode>v8qi2_mask_1, *avx512vl_<code><mode>v4hi2_mask_1,
22135         *avx512vl_<code>v2div2hi2_mask_1, *avx512vl_<code>v2div2si2_mask_1,
22136         *avx512f_<code>v8div16qi2_mask_1): New insns.
22138 2016-02-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
22140         PR target/68404
22141         * config/rs6000/predicates.md (fusion_gpr_addis): Revert
22142         2016-02-09 change.
22144         * config/rs6000/rs6000.md (fusion_gpr_load_<mode>): Remove
22145         earlyclobber from target.  Use wF constraint for fused memory
22146         address.
22147         (fusion_gpr_<P:mode>_<GPR_FUSION:mode>_load): Likewise.
22149 2016-02-18  Jakub Jelinek  <jakub@redhat.com>
22150             Martin Liska  <mliska@suse.cz>
22152         PR sanitizer/69863
22153         * cfgexpand.c (asan_sanitize_stack_p): New function.
22154         (partition_stack_vars): Use the function.
22155         (expand_stack_vars): Likewise.
22156         (defer_stack_allocation): Likewise.
22157         (expand_used_vars): Likewise.
22159 2016-02-18  Richard Biener  <rguenther@suse.de>
22161         PR middle-end/69553
22162         * fold-const.c (operand_equal_p): Properly compare offsets for
22163         IMAGPART_EXPR and ARRAY_REF.
22165 2016-02-18  Nick Clifton  <nickc@redhat.com>
22167         PR target/62254
22168         PR target/69610
22169         * config/arm/arm.c (arm_option_override_internal): Disable
22170         interworking if the target does not support thumb instructions.
22171         (arm_reload_in_hi): Handle the case where a register to register
22172         move needs reloading because there is no simple pattern to handle
22173         it.
22174         (arm_reload_out_hi): Likewise.
22176 2016-02-18  Richard Biener  <rguenther@suse.de>
22178         PR middle-end/69854
22179         * match.pd: Don't use fold_binary or fold_unary for folding
22180         constants.
22182 2016-02-17  Jakub Jelinek  <jakub@redhat.com>
22184         PR c++/69850
22185         * gimplify.c (gimplify_cond_expr): Call gimple_set_no_warning
22186         on the cond_stmt from TREE_NO_WARNING on COND_EXPR_COND.
22187         * gimple-ssa-nonnull-compare.c (do_warn_nonnull_compare): Don't
22188         warn on gimple_no_warning_p statements.
22190 2016-02-17  Jonathan Wakely  <jwakely@redhat.com>
22192         * doc/extend.texi (C++ Attributes): Correct description of
22193         warn_unused type attribute.
22195 2016-02-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
22197         * config/rs6000/altivec.md (*altivec_lvxl_<mode>_internal): Output
22198         correct instruction.
22200 2016-02-17  Richard Biener  <rguenther@suse.de>
22202         PR rtl-optimization/69609
22203         * bb-reorder.c (struct bbro_basic_block_data): Add priority member.
22204         (find_traces_1_round): When ending a trace update cached priority
22205         of successors.
22206         (bb_to_key): Use cached priority when available.
22207         (copy_bb): Initialize cached priority.
22208         (reorder_basic_blocks_software_trace_cache): Likewise.
22210 2016-02-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
22212         PR target/69161
22213         * config/aarch64/predicates.md (aarch64_comparison_operator_mode):
22214         New predicate.
22215         (aarch64_comparison_operator): Break overly long line into two.
22216         (aarch64_comparison_operation): Likewise.
22217         * config/aarch64/aarch64.md (cstorecc4): Use
22218         aarch64_comparison_operator_mode instead of
22219         aarch64_comparison_operator.
22220         (cstore<mode>4): Likewise.
22221         (aarch64_cstore<mode>): Likewise.
22222         (*cstoresi_insn_uxtw): Likewise.
22223         (cstore<mode>_neg): Likewise.
22224         (*cstoresi_neg_uxtw): Likewise.
22226 2016-02-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
22228         PR target/69161
22229         * config/arm/predicates.md (arm_comparison_operator_mode):
22230         New predicate.
22231         * config/arm/arm.md (*mov_scc): Use arm_comparison_operator_mode
22232         instead of arm_comparison_operator.
22233         (*mov_negscc): Likewise.
22234         (*mov_notscc): Likewise.
22235         * config/arm/thumb2.md (*thumb2_mov_scc): Likewise.
22236         (*thumb2_mov_negscc): Likewise.
22237         (*thumb2_mov_negscc_strict_it): Likewise.
22238         (*thumb2_mov_notscc): Likewise.
22239         (*thumb2_mov_notscc_strict_it): Likewise.
22241 2016-02-17  Wilco Dijkstra  <wdijkstr@arm.com>
22243         * config/aarch64/aarch64.c (aarch64_internal_mov_immediate):
22244         Add missing return.
22246 2016-02-17  Eric Botcazou  <ebotcazou@adacore.com>
22248         * config/visium/visium.c (machine_libfunc_index): New enum.
22249         (machine_libfuncs): New structure.
22250         (visium_libfuncs): New static variable.
22251         (TARGET_INIT_LIBFUNCS): Define to...
22252         (visium_init_libfuncs): ...this.  New function.
22253         (expand_block_move_4): Use the appropriate libfunc.
22254         (expand_block_move_2): Likewise.
22255         (expand_block_move_1): Likewise.
22256         (expand_block_set_4): Likewise.
22257         (expand_block_set_2): Likewise.
22258         (expand_block_set_1): Likewise.
22259         (visium_trampoline_init): Likewise.
22261 2016-02-17  Nick Clifton  <nickc@redhat.com>
22263         * config/msp430/msp430.c (msp430_mcu_data): Sync with data from
22264         TI's devices.csv file as of March 2016.
22266 2016-02-16  Kelvin Nilsen  <kelvin@gcc.gnu.org>
22268         PR Target/48344
22269         * opts-global.c (handle_common_deferred_options): Introduce and
22270         initialize two global variables to remember command-line options
22271         specifying a stack-limiting register.
22272         * opts.h: Add extern declarations of the two new global variables.
22273         * emit-rtl.c (init_emit_once): Initialize the stack_limit_rtx
22274         variable based on the values of the two new global variables.
22276 2016-02-16  Jakub Jelinek  <jakub@redhat.com>
22278         PR c/69835
22279         * common.opt (Wnonnull-compare): New warning.
22280         * doc/invoke.texi (-Wnonnull): Remove text about comparison
22281         of arguments against NULL.
22282         (-Wnonnull-compare): Document.
22283         * Makefile.in (OBJS): Add gimple-ssa-nonnull-compare.o.
22284         * tree-pass.h (make_pass_warn_nonnull_compare): Declare.
22285         * passes.def (pass_warn_nonnull_compare): Add.
22286         * gimple-ssa-nonnull-compare.c: New file.
22288 2016-02-16  James Greenhalgh  <james.greenhalgh@arm.com>
22290         * config/aarch64/aarch64.c (cortexa57_tunings): Remove
22291         AARCH64_EXTRA_TUNE_RECIP_SQRT.
22293 2016-02-16  James Greenhalgh  <james.greenhalgh@arm.com>
22295         * config/aarch64/aarch64.c (use_rsqrt_p): Always use software
22296         reciprocal sqrt for -mlow-precision-recip-sqrt.
22298 2016-02-16  James Greenhalgh  <james.greenhalgh@arm.com>
22299             Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
22301         * config/aarch64/aarch64.c (aarch64_expand_vector_init): Refactor,
22302         always use lane loads to construct non-constant vectors.
22304 2016-02-16  James Greenhalgh  <james.greenhalgh@arm.com>
22306         * config/aarch64/aarch64.md
22307         (arch64_sqrdml<SQRDMLH_AS:rdma_as>h_lane<mode>): Fix register
22308         constraints for operand 3.
22309         (aarch64_sqrdml<SQRDMLH_AS:rdma_as>h_laneq<mode>): Likewise.
22311 2016-02-16  Jakub Jelinek  <jakub@redhat.com>
22312             Richard Biener  <rguenther@suse.de>
22314         PR tree-optimization/69820
22315         * tree-vect-patterns.c (type_conversion_p): Return false if
22316         *orig_type is unsigned single precision or boolean.
22317         (vect_recog_dot_prod_pattern, vect_recog_widen_mult_pattern):
22318         Formatting fix.
22320 2016-02-16  Jakub Jelinek  <jakub@redhat.com>
22322         PR rtl-optimization/69764
22323         PR rtl-optimization/69771
22324         * optabs.c (expand_binop): Ensure for shift optabs invalid CONST_INT
22325         op1 is valid for GET_MODE_INNER (mode) and force it into a reg.
22327 2016-02-16  Richard Biener  <rguenther@suse.de>
22329         PR tree-optimization/69776
22330         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Get alias
22331         sets from caller.
22332         (indirect_refs_may_alias_p): Likewise.
22333         (refs_may_alias_p_1): Pass alias sets as from ao_ref.
22334         * tree-ssa-sccvn.c (vn_reference_lookup): Also adjust vr alias-set
22335         according to tbaa_p.
22336         * tree-ssa-dom.c (lookup_avail_expr): Add tbaa_p flag.
22337         (optimize_stmt): For redundant store discovery do not allow tbaa.
22339 2016-02-16  Bernd Schmidt  <bschmidt@redhat.com>
22341         PR tree-optimization/69714
22342         * tree-ssa-math-opts.c (find_bswap_or_nop): Revert previous change.
22343         Return NULL if we have irrelevant high bytes on BIG_ENDIAN.
22345 2016-02-16  Claudiu Zissulescu  <claziss@synopsys.com>
22347         * config/arc/arc-modes.def (CC_FPU, CC_FPU_UNEQ): New modes.
22348         * config/arc/arc-opts.h (FPU_SP, FPU_SF, FPU_SC, FPU_SD, FPU_DP)
22349         (FPU_DF, FPU_DC, FPU_DD, FXP_DP): Define.
22350         * config/arc/arc.c (arc_init): Check FPU options.
22351         (get_arc_condition_code): Handle new CC_FPU* modes.
22352         (arc_select_cc_mode): Likewise.
22353         (arc_conditional_register_usage): Allow 64 bit datum into even-odd
22354         register pair only. Allow access for ARCv2 accumulator.
22355         (gen_compare_reg): Whenever we have FPU support use FPU compare
22356         instructions.
22357         (arc_reorg): Don't generate brcc insns when FPU compare
22358         instructions are involved.
22359         * config/arc/arc.h (TARGET_DPFP): Add TARGET_FP_DPAX condition.
22360         (TARGET_OPTFPE): Add condition when ARC EM can use optimized
22361         floating point emulation.
22362         (ACC_REG_FIRST, ACC_REG_LAST, ACCL_REGNO, ACCH_REGNO): Define.
22363         (REVERSE_CONDITION): Add new CC_FPU* modes.
22364         (TARGET_FP_SP_BASE): Define.
22365         (TARGET_FP_DP_BASE): Likewise.
22366         (TARGET_FP_SP_FUSED): Likewise.
22367         (TARGET_FP_DP_FUSED): Likewise.
22368         (TARGET_FP_SP_CONV): Likewise.
22369         (TARGET_FP_DP_CONV): Likewise.
22370         (TARGET_FP_SP_SQRT): Likewise.
22371         (TARGET_FP_DP_SQRT): Likewise.
22372         (TARGET_FP_DP_AX): Likewise.
22373         * config/arc/arc.md (ARCV2_ACC): New constant.
22374         (type): New fpu type attribute.
22375         (SDF): Conditional iterator.
22376         (cstore<mode>, cbranch<mode>): Change expand condition.
22377         (addsf3, subsf3, mulsf3, adddf3, subdf3, muldf3): New expands,
22378         handles FPU/FPX cases as well.
22379         * config/arc/arc.opt (mfpu): New option.
22380         * config/arc/fpx.md (addsf3_fpx, subsf3_fpx, mulsf3_fpx):
22381         Renamed.
22382         (adddf3, muldf3, subdf3): Removed.
22383         * config/arc/predicates.md (proper_comparison_operator): Recognize
22384         CC_FPU* modes.
22385         * config/arc/fpu.md: New file.
22386         * doc/invoke.texi (ARC Options): Document mfpu option.
22388 2016-02-16  Richard Biener  <rguenther@suse.de>
22390         PR rtl-optimization/69291
22391         * ifcvt.c (noce_try_store_flag_constants): Re-instantiate
22392         noce_operand_ok check.
22394 2016-02-16  Tom de Vries  <tom@codesourcery.com>
22396         PR lto/67709
22397         * omp-low.c (simd_clone_create): Remove call to
22398         symtab->call_cgraph_insertion_hooks.
22400 2016-02-16  Jakub Jelinek  <jakub@redhat.com>
22402         PR tree-optimization/69802
22403         * tree-ssa-reassoc.c (update_range_test): If op is
22404         SSA_NAME_IS_DEFAULT_DEF, give up unless tem is a positive
22405         op == 1 test of precision 1 integral op, otherwise handle
22406         that case as op itself.  Fix up formatting.
22407         (optimize_range_tests_to_bit_test, optimize_range_tests): Fix
22408         up formatting.
22410 2016-02-16  Richard Biener  <rguenther@suse.de>
22412         PR tree-optimization/69586
22413         * tree-vrp.c (register_edge_assert_for_2): Handle all integral
22414         types for conversion sources.
22416 2016-02-16  Richard Biener  <rguenther@suse.de>
22418         PR middle-end/69801
22419         * fold-const.c (operand_equal_p): For COND_EXPR zero operand
22420         mask OEP_ADDRESS_OF.
22422 2016-02-16  Alan Modra  <amodra@gmail.com>
22424         PR target/68973
22425         * config/rs6000/rs6000.md (reload_vsx_from_gprsf): Rewrite splitter.
22426         (p8_mtvsrd_df, p8_mtvsrd_sf): New.
22427         (p8_mtvsrd_1, p8_mtvsrd_2): Delete.
22428         (p8_mtvsrwz): New.
22429         (p8_mtvsrwz_1, p8_mtvsrwz_2): Delete.
22430         (p8_xxpermdi_<mode>): Take two DF inputs rather than one TF.
22431         (p8_fmrgow_<mode>): Likewise.
22432         (reload_vsx_from_gpr<mode>): Make clobber IF.  Adjust for above
22433         changes.
22434         (reload_fpr_from_gpr<mode>): Similarly. Use "d" for op0 constraint.
22435         (reload_vsx_from_gprsf): Use p8_mtvsrd_sf rather than attempting
22436         to use movdi_internal64.  Remove op0_di.
22437         * config/rs6000/vsx.md (vsx_xscvspdpn_directmove): Make op1 SFmode.
22439 2016-02-15  Evandro Menezes  <e.menezes@samsung.com>
22441         Add support for the FCCMP insn types
22443         * config/aarch64/aarch64.md (fccmp): Change insn type.
22444         (fccmpe): Likewise.
22445         * config/aarch64/thunderx.md (thunderx_fcmp): Add "fccmp{s,d}" types.
22446         * config/arm/cortex-a53.md (cortex_a53_fpalu): Likewise.
22447         * config/arm/cortex-a57.md (cortex_a57_fp_cmp): Likewise.
22448         * config/arm/xgene1.md (xgene1_fcmp): Likewise.
22449         * config/arm/exynos-m1.md (exynos_m1_fp_ccmp): New insn reservation.
22450         * config/arm/types.md (fccmps): Add new insn type.
22451         (fccmpd): Likewise.
22453 2016-02-15  Bernd Edlinger  <bernd.edlinger@hotmail.de>
22455         * alias.c (get_alias_set): Fix a typo in comment.
22457 2016-02-15  Richard Biener  <rguenther@suse.de>
22459         PR tree-optimization/69595
22460         * match.pd: Complete range test simplification to true.
22462 2016-02-15  Bernd Schmidt  <bschmidt@redhat.com>
22464         PR rtl-optimization/69648
22465         * lra-constraints.c (update_ebb_live_info): Don't remove sets of
22466         pic_offset_table_rtx.
22468         PR rtl-optimization/69752
22469         * ira.c (update_equiv_regs): When looking for more than a single SET,
22470         also take other side effects into account.
22472 2016-02-15  Marcin Kościelnicki  <koriakin@0x04.net>
22474         * config/s390/s390.c (s390_function_profiler): Add a new sequence
22475         for z900+ CPUs in 31-bit mode.
22477 2016-02-15  Marcin Kościelnicki  <koriakin@0x04.net>
22479         * common/config/s390/s390-common.c (s390_supports_split_stack):
22480         New function.
22481         (TARGET_SUPPORTS_SPLIT_STACK): New macro.
22482         * config/s390/s390-protos.h: Add s390_expand_split_stack_prologue.
22483         * config/s390/s390.c (struct machine_function): New field
22484         split_stack_varargs_pointer.
22485         (s390_register_info): Mark r12 as clobbered if it'll be used as temp
22486         in s390_emit_prologue.
22487         (s390_emit_prologue): Use r12 as temp if r1 is taken by split-stack
22488         vararg pointer.
22489         (morestack_ref): New global.
22490         (SPLIT_STACK_AVAILABLE): New macro.
22491         (s390_expand_split_stack_prologue): New function.
22492         (s390_live_on_entry): New function.
22493         (s390_va_start): Use split-stack vararg pointer if appropriate.
22494         (s390_asm_file_end): Emit the split-stack note sections.
22495         (TARGET_EXTRA_LIVE_ON_ENTRY): New macro.
22496         * config/s390/s390.md (UNSPEC_STACK_CHECK): New unspec.
22497         (UNSPECV_SPLIT_STACK_CALL): New unspec.
22498         (UNSPECV_SPLIT_STACK_DATA): New unspec.
22499         (split_stack_prologue): New expand.
22500         (split_stack_space_check): New expand.
22501         (split_stack_data): New insn.
22502         (split_stack_call): New expand.
22503         (split_stack_call_*): New insn.
22504         (split_stack_cond_call): New expand.
22505         (split_stack_cond_call_*): New insn.
22507 2016-02-15  Richard Biener  <rguenther@suse.de>
22509         PR tree-optimization/69783
22510         * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
22511         Add trivially correct cases.
22513 2016-02-15  Tom de Vries  <tom@codesourcery.com>
22515         PR lto/69655
22516         * lto-cgraph.c (input_offload_tables): Add and handle bool parameter
22517         do_force_output.
22518         * lto-streamer.h (input_offload_tables): Add and handle bool parameter.
22520 2016-02-15  Richard Biener  <rguenther@suse.de>
22522         PR tree-optimization/69776
22523         * tree-ssa-sccvn.h (vn_reference_lookup): Adjust prototype.
22524         * tree-ssa-sccvn.c (vn_reference_lookup): Add parameter to
22525         indicate whether we can use TBAA to disambiguate against stores.
22526         Use alias-set zero if not.
22527         (visit_reference_op_store): Do not use TBAA when looking up
22528         redundant stores.
22529         * tree-ssa-pre.c (compute_avail): Use TBAA here.
22530         (eliminate_dom_walker::before_dom_children): But not when looking
22531         up redundant stores.
22533 2016-02-14  John David Anglin  <danglin@gcc.gnu.org>
22535         * config/pa/pa.md (absqi2, absghi2, bswaphi2, bswapsi2, bswapdi2): New.
22537 2016-02-14  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
22539         *  config/i386/znver1.md
22540         (znver1_pop, znver1_pop_mem,
22541         znver1_load_imov_double_store,
22542         znver1_load_imov_direct_store,
22543         znver1_load_imov_direct_load,
22544         znver1_load_imov_double_load): Add new.
22545         (znver1_insn, znver1_insn_load): Add icmov type.
22546         (znver1_sseavx_fma,
22547         znver1_sseavx_fma_load,
22548         znver1_avx256_fma,
22549         znver1_avx256_fma_load): Fix pipe usage.
22551 2016-02-14  Alan Modra  <amodra@gmail.com>
22553         PR target/68973
22554         * reload.c (find_reloads_address_1): For pre/post-inc/dec
22555         with an invalid hard reg, reload just the reg not the entire
22556         pre/post-inc/dec address expression.
22558 2016-02-13  Oleg Endo  <olegendo@gcc.gnu.org>
22560         PR target/67260
22561         * config/sh/sh.md (sibcall_value_pcrel): Replace =&k scratch reg with
22562         fixed R1_REG scratch reg.
22563         (sibcall_value_pcrel_fdpic): Likewise.
22565 2016-02-13  Oleg Endo  <olegendo@gcc.gnu.org>
22567         PR target/67636
22568         PR target/64345
22569         * config/sh/sh.md (*zero_extract_3): New insn_and_split pattern.
22571 2016-02-12  Walter Lee  <walt@tilera.com>
22573         * config/tilepro/t-tilepro: Replace CC_FOR_BUILD with CXX_FOR_BUILD.
22574         * config/tilegx/t-tilegx: Likewise.
22576 2016-02-12  David Malcolm  <dmalcolm@redhat.com>
22578         PR other/69554
22579         * diagnostic-show-locus.c (struct line_span): New struct.
22580         (layout::get_first_line): Delete.
22581         (layout::get_last_line): Delete.
22582         (layout::get_num_line_spans): New member function.
22583         (layout::get_line_span): Likewise.
22584         (layout::print_heading_for_line_span_index_p): Likewise.
22585         (layout::get_expanded_location): Likewise.
22586         (layout::calculate_line_spans): Likewise.
22587         (layout::m_first_line): Delete.
22588         (layout::m_last_line): Delete.
22589         (layout::m_line_spans): New field.
22590         (layout::layout): Update comment.  Replace m_first_line and
22591         m_last_line with m_line_spans, replacing their initialization
22592         with a call to calculate_line_spans.
22593         (diagnostic_show_locus): When printing source lines and
22594         annotations, rather than looping over a single span
22595         of lines, instead loop over each line_span within
22596         the layout, with an inner loop over the lines within them.
22597         Call the context's start_span callback when changing line spans.
22598         * diagnostic.c (diagnostic_initialize): Initialize start_span.
22599         (diagnostic_build_prefix): Break out the building of the location
22600         part of the string into...
22601         (diagnostic_get_location_text): ...this new function, rewriting
22602         it from nested ternary expressions to a sequence of "if"
22603         statements.
22604         (default_diagnostic_start_span_fn): New function.
22605         * diagnostic.h (diagnostic_start_span_fn): New typedef.
22606         (diagnostic_context::start_span): New field.
22607         (default_diagnostic_start_span_fn): New prototype.
22609 2016-02-12  David Malcolm  <dmalcolm@redhat.com>
22611         PR driver/69779
22612         * gcc.c (driver::finalize): Fix cleanup of "specs".
22614 2016-02-12  David Malcolm  <dmalcolm@redhat.com>
22616         PR driver/69265
22617         PR driver/69453
22618         * gcc.c (driver::driver): Initialize m_option_suggestions.
22619         (driver::~driver): Clean up m_option_suggestions.
22620         (suggest_option): Convert to...
22621         (driver::suggest_option): ...this, and split out into
22622         driver::build_option_suggestions and find_closest_string.
22623         (driver::build_option_suggestions): New function, from
22624         first half of suggest_option.  Special-case
22625         OPT_fsanitize_ and OPT_fsanitize_recover_, making use of
22626         the sanitizer_opts array.  For options of enum types, add the
22627         various enum values to the candidate strings.
22628         (driver::handle_unrecognized_options): Remove "const".
22629         * gcc.h (driver::handle_unrecognized_options): Likewise.
22630         (driver::build_option_suggestions): New decl.
22631         (driver::suggest_option): New decl.
22632         (driver::m_option_suggestions): New field.
22633         * opts-common.c (add_misspelling_candidates): New function.
22634         * opts.c (sanitizer_opts): Remove decl of struct sanitizer_opts_s
22635         and make non-static.
22636         * opts.h (sanitizer_opts): New array decl.
22637         (add_misspelling_candidates): New function decl.
22638         * spellcheck.c (find_closest_string): New function.
22639         * spellcheck.h (find_closest_string): New function decl.
22641 2016-02-12  Jakub Jelinek  <jakub@redhat.com>
22643         PR rtl-optimization/69764
22644         PR rtl-optimization/69771
22645         * optabs.c (expand_binop_directly): For shift_optab_p, force
22646         convert_modes with VOIDmode if xop1 has VOIDmode.
22648 2016-02-12  Ilya Enkovich  <enkovich.gnu@gmail.com>
22650         PR target/69729
22651         * lto-streamer-out.c (lto_output): Use thunk.add_pointer_bounds_args
22652         to correctly determine instrumentation thunks.
22654 2016-02-12  Jakub Jelinek  <jakub@redhat.com>
22656         PR ipa/69241
22657         * ipa-split.c (split_function): If split part returns TREE_ADDRESSABLE
22658         type by reference, force lhs on the call.
22660         PR ipa/68672
22661         * ipa-split.c (split_function): Don't compute/use main_part_return_p.
22662         Compute retval and retbnd early in all cases if split_part_return_p
22663         and return_bb is not EXIT.  Remove all clobber stmts and reset
22664         all debug stmts that refer to SSA_NAMEs defined in split part,
22665         except if it is retval, in that case replace the old retval with the
22666         lhs of the call to the split part.
22668 2016-02-12  Kugan Vivekanandarajah  <kuganv@linaro.org>
22670         revert:
22671         2016-02-12  Kugan Vivekanandarajah  <kuganv@linaro.org>
22673         PR middle-end/66726
22674         * tree-ssa-reassoc.c (optimize_range_tests): Handle tcc_compare stmt
22675         whose result is used in PHI.
22676         (maybe_optimize_range_tests): Likewise.
22677         (final_range_test_p): Likweise.
22679 2016-02-12  Kugan Vivekanandarajah  <kuganv@linaro.org>
22681         PR middle-end/66726
22682         * tree-ssa-reassoc.c (optimize_range_tests): Handle tcc_compare stmt
22683         whose result is used in PHI.
22684         (maybe_optimize_range_tests): Likewise.
22685         (final_range_test_p): Likweise.
22687 2016-02-12  Jakub Jelinek  <jakub@redhat.com>
22689         * cgraph.c: Spelling fixes - behaviour -> behavior and
22690         neighbour -> neighbor.
22691         * target.def: Likewise.
22692         * sel-sched.c: Likewise.
22693         * config/mips/mips.c: Likewise.
22694         * config/arc/arc.md: Likewise.
22695         * config/arm/cortex-a57.md: Likewise.
22696         * config/arm/arm.c: Likewise.
22697         * config/arm/neon.md: Likewise.
22698         * config/arm/arm-c.c: Likewise.
22699         * config/vms/vms-c.c: Likewise.
22700         * config/s390/s390.c: Likewise.
22701         * config/i386/znver1.md: Likewise.
22702         * config/i386/i386.c: Likewise.
22703         * config/ia64/hpux-unix2003.h: Likewise.
22704         * config/msp430/msp430.md: Likewise.
22705         * config/rx/rx.c: Likewise.
22706         * config/rx/rx.md: Likewise.
22707         * config/aarch64/aarch64-simd.md: Likewise.
22708         * config/aarch64/aarch64.c: Likewise.
22709         * config/nvptx/nvptx.c: Likewise.
22710         * config/bfin/bfin.c: Likewise.
22711         * config/cris/cris.opt: Likewise.
22712         * config/rs6000/rs6000.c: Likewise.
22713         * target.h: Likewise.
22714         * spellcheck.c: Likewise.
22715         * ira-build.c: Likewise.
22716         * tree-inline.c: Likewise.
22717         * builtins.c: Likewise.
22718         * lra-constraints.c: Likewise.
22719         * explow.c: Likewise.
22720         * hwint.h: Likewise.
22721         * targhooks.c: Likewise.
22722         * tree-vect-data-refs.c: Likewise.
22723         * expr.c: Likewise.
22724         * doc/tm.texi: Likewise.
22725         * doc/extend.texi: Likewise.
22726         * doc/install.texi: Likewise.
22727         * doc/md.texi: Likewise.
22728         * tree-ssa-tail-merge.c: Likewise.
22729         * sched-int.h: Likewise.
22730         * match.pd: Likewise.
22731         * sched-ebb.c: Likewise.
22732         * target.def (omit_struct_return_reg): Likewise.
22733         * gimple-ssa-isolate-paths.c: Likewise.
22734         (find_implicit_erroneous_behaviour): Renamed to...
22735         (find_implicit_erroneous_behavior): ... this.
22736         (find_explicit_erroneous_behaviour): Renamed to...
22737         (find_explicit_erroneous_behavior): ... this.
22738         (gimple_ssa_isolate_erroneous_paths): Adjust caller.
22740 2016-02-11  Segher Boessenkool  <segher@kernel.crashing.org>
22742         PR rtl-optimization/64682
22743         PR rtl-optimization/69567
22744         PR rtl-optimization/69737
22745         * combine.c (distribute_notes) <REG_DEAD>: If the register is set
22746         in I2 as well, just lose it.
22748 2016-02-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
22750         * config/aarch64/aarch64.c (aarch64_last_printed_arch_string):
22751         New variable.
22752         (aarch64_last_printed_tune_string): Likewise.
22753         (aarch64_declare_function_name): Only output .arch assembler
22754         directive if it will be different from the previously output
22755         directive.  Same for .tune comment but only if -dA is set.
22756         (aarch64_start_file): New function.
22757         (TARGET_ASM_FILE_START): Define.
22759 2016-02-11  David Malcolm  <dmalcolm@redhat.com>
22761         PR plugins/69758
22762         * Makefile.in (PLUGIN_HEADERS): Add params.list.
22764 2016-02-11  Jakub Jelinek  <jakub@redhat.com>
22766         PR target/65313
22767         * tree-vect-slp.c (vect_schedule_slp_instance): Avoid
22768         -Wmaybe-uninitialized warning.
22770 2016-02-11  Oleg Endo  <olegendo@gcc.gnu.org>
22772         PR target/69713
22773         * config/sh/sh.md (casesi_worker_0): Add T_REG use.
22775 2016-02-11  Richard Biener  <rguenther@suse.de>
22777         PR rtl-optimization/69291
22778         * ifcvt.c (noce_try_store_flag_constants): Do not allow
22779         subexpressions affected by changing the result.
22781 2016-02-10  Vladimir Makarov  <vmakarov@redhat.com>
22783         PR target/69148
22784         * lra-constraints.c (curr_insn_transform): Find in/out operands
22785         for secondary memory moves.  Update dups.
22787 2016-02-10  Yuri Rumyantsev  <ysrumyan@gmail.com>
22789         PR tree-optimization/69652
22790         * tree-vect-loop.c (optimize_mask_stores): Move declaration of STMT1
22791         to nested loop, did source re-formatting, skip debug statements,
22792         add check on statement with volatile operand, remove dead scalar
22793         statements.
22795 2016-02-10  Jakub Jelinek  <jakub@redhat.com>
22796             Patrick Palka  <ppalka@gcc.gnu.org>
22798         PR ipa/69241
22799         PR c++/69649
22800         * gimplify.c (gimplify_modify_expr): Set lhs even for noreturn
22801         calls if the return type is TREE_ADDRESSABLE.
22802         * cgraphunit.c (cgraph_node::expand_thunk): Likewise.
22803         * ipa-split.c (split_function): Fix doubled "we" in comment.
22804         Use void return type for the split part even if
22805         !split_point->split_part_set_retval.
22807 2016-02-10  Bin Cheng  <bin.cheng@arm.com>
22809         PR tree-optimization/68021
22810         * tree-ssa-loop-ivopts.c (get_computation_aff): Set ratio to 1 if
22811         when computing the value of biv cand by itself.
22813 2016-02-10  Wilco Dijkstra  <wdijkstr@arm.com>
22815         * config/aarch64/aarch64.c (cortexa53_tunings): Enable AES fusion.
22816         (cortexa57_tunings): Likewise.
22817         (cortexa72_tunings): Likewise.
22818         (arch_macro_fusion_pair_p): Add support for AES fusion.
22819         * config/aarch64/aarch64-fusion-pairs.def: Add AES_AESMC entry.
22820         * config/arm/aarch-common.c (aarch_crypto_can_dual_issue):
22821         Allow virtual registers before reload so early scheduling works.
22822         * config/arm/cortex-a57.md (cortex_a57_crypto_simple): Use
22823         correct latency and pipeline.
22824         (cortex_a57_crypto_complex): Likewise.
22825         (cortex_a57_crypto_xor): Likewise.
22826         (define_bypass): Add AES bypass.
22828 2016-02-10  Richard Biener  <rguenther@suse.de>
22830         PR tree-optimization/69726
22831         * passes.def: Add DCE pass before late uninit.
22832         * match.pd: Add A ? B : (!A ? C : X) -> A ? B : C patterns to
22833         really fixup if-conversions job.
22835 2016-02-10  Wilco Dijkstra  <wdijkstr@arm.com>
22837         * config/arm/arm.c (arm_cortex_a53_tune): Enable AES fusion.
22838         (arm_cortex_a57_tune): Likewise.
22839         (aarch_macro_fusion_pair_p): Add support for AES fusion.
22840         * config/arm/arm-protos.h (fuse_ops): Add FUSE_AES_AESMC.
22842 2016-02-10  Eric Botcazou  <ebotcazou@adacore.com>
22844         * timevar.def (TV_PHASE_DBGINFO): Delete.
22845         (TV_PHASE_CHECK_DBGINFO): Likewise.
22846         * varpool.c (varpool_node::assemble_decl): Do not change timevar.
22848 2016-02-10  Richard Biener  <rguenther@suse.de>
22850         PR tree-optimization/69719
22851         * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
22852         Adjust previous fix by ensuring that dr_a1 is left of dr_a2.
22854 2016-02-09  Andrew Pinski  <apinski@cavium.com>
22856         PR tree-opt/69282
22857         * optabs-tree.c (expand_vec_cond_expr_p): Don't early return if
22858         get_vcond_mask_icode returns false.
22860 2016-02-09  Michael Meissner  <meissner@linux.vnet.ibm.com>
22862         PR target/68404
22863         * config/rs6000/predicates.md (fusion_gpr_addis): Prevent fusing
22864         an ADDIS that adds a pointer to a large constant that sets the
22865         upper16 bits with a load operation.
22867 2016-02-09  Charles Baylis  <charles.baylis@linaro.org>
22869         PR target/68532
22870         * config/arm/arm.c (arm_evpc_neon_vzip): Allow for big endian lane
22871         order.
22872         * config/arm/arm_neon.h (vzipq_s8): Adjust shuffle patterns for big
22873         endian.
22874         (vzipq_s16): Likewise.
22875         (vzipq_s32): Likewise.
22876         (vzipq_f32): Likewise.
22877         (vzipq_u8): Likewise.
22878         (vzipq_u16): Likewise.
22879         (vzipq_u32): Likewise.
22880         (vzipq_p8): Likewise.
22881         (vzipq_p16): Likewise.
22883 2016-02-09  Charles Baylis  <charles.baylis@linaro.org>
22885         PR target/68532
22886         * config/arm/arm.c (neon_endian_lane_map): New function.
22887         (neon_vector_pair_endian_lane_map): New function.
22888         (arm_evpc_neon_vuzp): Allow for big endian lane order.
22889         * config/arm/arm_neon.h (vuzpq_s8): Adjust shuffle patterns for big
22890         endian.
22891         (vuzpq_s16): Likewise.
22892         (vuzpq_s32): Likewise.
22893         (vuzpq_f32): Likewise.
22894         (vuzpq_u8): Likewise.
22895         (vuzpq_u16): Likewise.
22896         (vuzpq_u32): Likewise.
22897         (vuzpq_p8): Likewise.
22898         (vuzpq_p16): Likewise.
22900 2016-02-11  Alexandre Oliva  <aoliva@redhat.com>
22902         PR target/69634
22903         * regstat.c (regstat_bb_compute_calls_crossed): Disregard
22904         debug insns.
22906 2016-02-09  Uros Bizjak  <ubizjak@gmail.com>
22908         * config/i386/i386.md (insv<mode>_1): Use gen_int_mode to
22909         truncate const_int operand 1 to QImode.
22911 2016-02-09  Eric Botcazou  <ebotcazou@adacore.com>
22913         * gimple-ssa-backprop.c (optimize_phi): Do not replace an argument
22914         corresponding to an abnormal edge.
22916 2016-02-09  Tom de Vries  <tom@codesourcery.com>
22918         PR tree-optimization/69599
22919         * tree-ssa-structalias.c (fndecl_maybe_in_other_partition): New
22920         function.
22921         (find_func_aliases_for_builtin_call, find_func_clobbers)
22922         (ipa_pta_execute):  Handle case that foo and foo._0 are not in same lto
22923         partition.
22925 2016-02-09  Richard Biener  <rguenther@suse.de>
22927         PR tree-optimization/69715
22928         * tree-ssa.c (execute_update_addresses_taken): Mark non-decl
22929         LHS on calls as non-rewritable.
22931 2016-02-09  Tom de Vries  <tom@codesourcery.com>
22933         PR lto/69707
22934         * lto-wrapper.c (append_diag_options): New function.
22935         (compile_offload_image): Call append_diag_options.
22937 2016-02-08  Sandra Loosemore  <sandra@codesourcery.com>
22939         PR other/69722
22940         * doc/extend.texi (Flag Output Operands): Correct sectioning.
22941         Minor copy-edit to fix verb tenses.
22943 2016-02-08  Jakub Jelinek  <jakub@redhat.com>
22945         PR tree-optimization/69209
22946         * ipa-split.c (split_function): If split part is not
22947         returning retval, retval has gimple type but is not
22948         gimple value, force it into a SSA_NAME first.
22950 2016-02-08  Nicklas Bo Jensen  <nbjensen@gmail.com>
22952         * doc/tree-ssa.texi (Preserving the virtual SSA form): Remove
22953         outdated section.
22955 2016-02-08  Jason Merrill  <jason@redhat.com>
22957         PR c++/69631
22958         * convert.c (convert_to_integer_1): Check dofold on truncation
22959         distribution.
22960         (convert_to_pointer_maybe_fold, convert_to_real_maybe_fold)
22961         (convert_to_integer_maybe_fold, convert_to_complex_maybe_fold):
22962         Rename from *_nofold.
22963         * convert.h (convert_to_pointer_nofold, convert_to_integer_nofold)
22964         (convert_to_real_nofold, convert_to_complex_nofold): New inlines.
22966 2016-02-08  Bernd Schmidt  <bschmidt@redhat.com>
22968         PR target/60410
22969         * tree.c (build_common_tree_nodes): Remove short_double argument.
22970         All callers changed.
22971         * tree.h (build_common_tree_nodes): Adjust declaration.
22972         * doc/invoke.texi (-fshort-double): Remove documentation.
22973         * config/mips/t-img-elf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
22974         MULTILIB_EXCEPTIONS): Remove -fshort-double variant.
22975         * lto-wrapper.c (merge_and_complain, append_compiler_options)
22976         (append_linker_options): Don't handle OPT_fshort_double.
22978         PR rtl-optimization/68730
22979         * lra-remat.c (insn_to_cand_activation): New static variable.
22980         (lra_remat): Allocate and free it.
22981         (create_cand): New arg activation. Initialize a field in
22982         insn_to_cand_activation if it is nonnull.
22983         (create_cands): Pass the activation insn to create_cand when making
22984         a candidate involving an output reload.  Reorganize code a little.
22985         (do_remat): Keep track of active status of candidates in a separate
22986         bitmap.
22988 2016-02-08  Richard Biener  <rguenther@suse.de>
22990         PR tree-optimization/69719
22991         * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
22992         Properly use absolute of the difference of the two offsets to
22993         compare or adjust the segment length.
22995 2016-02-08  Richard Biener  <rguenther@suse.de>
22996             Jeff Law  <law@redhat.com>
22998         PR target/68273
22999         * tree-ssanames.c (make_ssa_name_fn): Always use unqualified
23000         types for anonymous SSA names.
23002 2016-02-08   Richard Biener  <rguenther@suse.de>
23004         PR rtl-optimization/69274
23005         * ira.c (ira_setup_alts): Do not change recog_data.operand order.
23007 2016-02-08  Jeff Law  <law@redhat.com>
23009         PR tree-optimization/65917
23010         * tree-ssa-dom.c (record_temporary_equivalences): Record both
23011         equivalences from if (x == y) style conditionals.
23012         (loop_depth_of_name): Remove.
23013         (record_equality): Remove loop depth check.
23014         * tree-ssa-scopedtables.h (const_and_copies): Refine comments.
23015         (const_and_copies::record_const_or_copy_raw): New member function.
23016         * tree-ssa-scopedtables.c
23017         (const_and_copies::record_const_or_copy_raw): New, factored out of
23018         (const_and_copies::record_const_or_copy): Call new member function.
23020 2016-02-05  Jeff Law  <law@redhat.com>
23022         PR tree-optimization/68541
23023         * gimple-ssa-split-paths.c: Include tree-cfg.h and params.h.
23024         (count_stmts_in_block): New function.
23025         (poor_ifcvt_candidate_code): Likewise.
23026         (is_feasible_trace): Add some heuristics to determine when path
23027         splitting is profitable.
23028         (find_block_to_duplicate_for_splitting_paths): Make sure the graph
23029         is a diamond with a single exit.
23031 2016-02-05  Martin Sebor  <msebor@redhat.com>
23033         PR c++/69662
23034         * doc/invoke.texi: Update -Wplacement-new to take an optional
23035         argument.
23037 2016-02-06  Richard Henderson  <rth@redhat.com>
23039         PR c/69643
23040         * tree.c (tree_nop_conversion_p): Do not strip casts into or
23041         out of non-standard address spaces.
23043 2016-02-05  Jakub Jelinek  <jakub@redhat.com>
23045         PR rtl-optimization/69691
23046         * lra-eliminations.c (move_plus_up): Don't add the addend twice.
23048 2016-02-05  Pat Haugen  <pthaugen@us.ibm.com>
23050         * config/rs6000/crypto.md (crypto_vpermxor_<mode>): Correct insn type.
23051         * config/rs6000/rs6000.md (mov<mode>_hardfloat): Likewise.
23052         (*ieee128_mfvsrd_64bit): Likewise.
23053         (*ieee128_mfvsrd_32bit): Likewise.
23055 2016-02-05  Ilya Enkovich  <enkovich.gnu@gmail.com>
23057         PR target/69369
23058         Revert r232560:
23059         2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
23061         * cgraphunit.c (cgraph_node::reset): Clear thunk info and
23062         instrumented_version.
23064 2016-01-05  Jeremy Bennett  <jeremy.bennett@embecosm.com>
23066         * doc/invoke.texi (Optimize Options): In table of --param options
23067         rename second occurrence of tracer-min-branch-ratio to
23068         tracer-min-branch-probability, rename
23069         tracer-min-branch-ratio-feedback to
23070         tracer-min-branch-probability-feedback and clarify description,
23071         rename sched-spec-state-edge-prob-cutoff to
23072         sched-state-edge-prob-cutoff, rename selsched-max-insns-to-rename
23073         to selsched-insns-to-rename, rename lto-minpartition to
23074         lto-min-partition, delete reorder-blocks-duplicate and
23075         reorder-blocks-duplicate-feedback.
23077 2016-02-05  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
23079         * config/s390/s390.c (s390_register_info_set_ranges): Remove
23080         superfluous loops.
23082 2016-02-05  Dominik Vogt  <vogt@linux.vnet.ibm.com>
23084         * doc/extend.texi: S/390: Correct some typos.
23086 2016-02-05  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
23088         * config/s390/s390.c (s390_emit_call): Add missing 64 bit check.
23090 2016-02-05  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
23092         PR target/69625
23093         * config/s390/s390.c (SAVE_SLOT_NONE, SAVE_SLOT_STACK): New defines.
23094         (s390_register_info_gprtofpr): Use new macros above.
23095         (s390_register_info_stdarg_fpr): Adjust max_fpr to better match
23096         its name.
23097         (s390_register_info_stdarg_gpr): Adjust max_gpr to better match
23098         its name.  Adjust restore and save gpr ranges.
23099         (s390_register_info_set_ranges): New function.
23100         (s390_register_info): Use new macros above.  Call
23101         s390_register_info_set_ranges.
23102         (s390_optimize_register_info): Likewise.
23103         (s390_hard_regno_rename_ok): Use new macros.
23104         (s390_hard_regno_scratch_ok): Likewise.
23105         (s390_emit_epilogue): Likewise.
23106         (s390_can_use_return_insn): Likewise.
23107         (s390_optimize_prologue): Likewise.
23108         * config/s390/s390.md (GPR2_REGNUM, GPR6_REGNUM): New constants.
23110 2016-02-05  Jakub Jelinek  <jakub@redhat.com>
23112         PR bootstrap/69677
23113         * config/i386/i386.c (convert_scalars_to_vector): Readd stack
23114         alignment fixes.
23115         (ix86_option_override_internal): Disable TARGET_STV even for
23116         -m{incoming,preferred}-stack-boundary=3.
23118 2016-02-03  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
23120         * config.gcc: Mark deprecated rtems targets as obsolete.
23122 2016-02-04  Segher Boessenkool  <segher@kernel.crashing.org>
23124         PR rtl-optimization/64682
23125         PR rtl-optimization/69567
23126         * combine.c (distribute_notes) <REG_DEAD>: Place the death note
23127         before I2 only if the register is both used and set in I2.
23129 2016-02-04  DJ Delorie  <dj@redhat.com>
23131         * config/msp430/msp430.c (msp430_start_function): Add function type.
23133 2016-02-04  Jakub Jelinek  <jakub@redhat.com>
23135         PR fortran/69368
23136         * tree-dfa.c (get_ref_base_and_extent): Remove unreachable code.
23138 2016-02-04  Uros Bizjak  <ubizjak@gmail.com>
23140         PR rtl-optimization/69577
23141         Revert:
23142         2015-10-29  Richard Henderson  <rth@redhat.com>
23144         PR target/68124
23145         PR rtl-opt/67609
23146         * config/i386/i386.c (ix86_cannot_change_mode_class): Tighten
23147         sse check to the exact conditions of PR 67609.
23149 2016-02-04  Michael Meissner  <meissner@linux.vnet.ibm.com>
23151         PR target/69667
23152         * config/rs6000/rs6000.md (mov<mode>_64bit_dm): Use 'd' constraint
23153         instead of 'ws', and 'wh' instead of 'wm' since TFmode/IFmode are
23154         not allowed into the traditional Altivec registers.
23155         (movtd_64bit_nodm): Likewise.
23156         (mov<mode>_32bit, FMOVE128_FPR iterator): Likewise.
23158 2016-02-04  David Malcolm  <dmalcolm@redhat.com>
23160         * config/aarch64/cortex-a57-fma-steering.c
23161         (aarch64_register_fma_steering): Remove "static" from arguments
23162         to register_pass.
23164 2016-02-04  Wilco Dijkstra  <wdijkstr@arm.com>
23166         PR target/69619
23167         * ccmp.c (expand_ccmp_expr_1): Avoid evaluating gs0/gs1
23168         twice when complex.
23170 2016-02-04  Mike Frysinger  <vapier@gentoo.org>
23172         * doc/invoke.texi: Delete -mno-fma4.
23174 2016-02-04  Richard Sandiford  <richard.sandiford@arm.com>
23176         PR rtl-optimization/69577
23177         * reginfo.c (record_subregs_of_mode): Add a partial_def parameter.
23178         (find_subregs_of_mode): Update accordingly.  Iterate over partial
23179         definitions.
23181 2016-02-04  Alan Lawrence  <alan.lawrence@arm.com>
23183         * config/arm/arm-protos.h (neon_reinterpret): Remove.
23184         * config/arm/arm.c (neon_reinterpret): Remove.
23185         * config/arm/arm_neon_builtins.def (vreinterpretv8qi, vreinterpretv4hi,
23186         vreinterpretv2si, vreinterpretv2sf, vreinterpretdi, vreinterpretv16qi,
23187         vreinterpretv8hi, vreinterpretv4si, vreinterpretv4sf, vreinterpretv2di,
23188         vreinterpretti): Remove.
23189         * config/arm/neon.md (neon_vreinterpretv8qi<mode>,
23190         neon_vreinterpretv4hi<mode>, neon_vreinterpretv2si<mode>,
23191         neon_vreinterpretv2sf<mode>, neon_vreinterpretdi<mode>,
23192         neon_vreinterpretti<mode>, neon_vreinterpretv16qi<mode>,
23193         neon_vreinterpretv8hi<mode>, neon_vreinterpretv4si<mode>,
23194         neon_vreinterpretv4sf<mode>, neon_vreinterpretv2di<mode>): Remove.
23195         * config/arm/arm_neon.h (vreinterpret_p8_p16, vreinterpret_p8_f32,
23196         vreinterpret_p8_p64, vreinterpret_p8_s64, vreinterpret_p8_u64,
23197         vreinterpret_p8_s8, vreinterpret_p8_s16, vreinterpret_p8_s32,
23198         vreinterpret_p8_u8, vreinterpret_p8_u16, vreinterpret_p8_u32,
23199         vreinterpret_p16_p8, vreinterpret_p16_f32, vreinterpret_p16_p64,
23200         vreinterpret_p16_s64, vreinterpret_p16_u64, vreinterpret_p16_s8,
23201         vreinterpret_p16_s16, vreinterpret_p16_s32, vreinterpret_p16_u8,
23202         vreinterpret_p16_u16, vreinterpret_p16_u32, vreinterpret_f32_p8,
23203         vreinterpret_f32_p16, vreinterpret_f32_p64, vreinterpret_f32_s64,
23204         vreinterpret_f32_u64, vreinterpret_f32_s8, vreinterpret_f32_s16,
23205         vreinterpret_f32_s32, vreinterpret_f32_u8, vreinterpret_f32_u16,
23206         vreinterpret_f32_u32, vreinterpret_p64_p8, vreinterpret_p64_p16,
23207         vreinterpret_p64_f32, vreinterpret_p64_s64, vreinterpret_p64_u64,
23208         vreinterpret_p64_s8, vreinterpret_p64_s16, vreinterpret_p64_s32,
23209         vreinterpret_p64_u8, vreinterpret_p64_u16, vreinterpret_p64_u32,
23210         vreinterpret_s64_p8, vreinterpret_s64_p16, vreinterpret_s64_f32,
23211         vreinterpret_s64_p64, vreinterpret_s64_u64, vreinterpret_s64_s8,
23212         vreinterpret_s64_s16, vreinterpret_s64_s32, vreinterpret_s64_u8,
23213         vreinterpret_s64_u16, vreinterpret_s64_u32, vreinterpret_u64_p8,
23214         vreinterpret_u64_p16, vreinterpret_u64_f32, vreinterpret_u64_p64,
23215         vreinterpret_u64_s64, vreinterpret_u64_s8, vreinterpret_u64_s16,
23216         vreinterpret_u64_s32, vreinterpret_u64_u8, vreinterpret_u64_u16,
23217         vreinterpret_u64_u32, vreinterpret_s8_p8, vreinterpret_s8_p16,
23218         vreinterpret_s8_f32, vreinterpret_s8_p64, vreinterpret_s8_s64,
23219         vreinterpret_s8_u64, vreinterpret_s8_s16, vreinterpret_s8_s32,
23220         vreinterpret_s8_u8, vreinterpret_s8_u16, vreinterpret_s8_u32,
23221         vreinterpret_s16_p8, vreinterpret_s16_p16, vreinterpret_s16_f32,
23222         vreinterpret_s16_p64, vreinterpret_s16_s64, vreinterpret_s16_u64,
23223         vreinterpret_s16_s8, vreinterpret_s16_s32, vreinterpret_s16_u8,
23224         vreinterpret_s16_u16, vreinterpret_s16_u32, vreinterpret_s32_p8,
23225         vreinterpret_s32_p16, vreinterpret_s32_f32, vreinterpret_s32_p64,
23226         vreinterpret_s32_s64, vreinterpret_s32_u64, vreinterpret_s32_s8,
23227         vreinterpret_s32_s16, vreinterpret_s32_u8, vreinterpret_s32_u16,
23228         vreinterpret_s32_u32, vreinterpret_u8_p8, vreinterpret_u8_p16,
23229         vreinterpret_u8_f32, vreinterpret_u8_p64, vreinterpret_u8_s64,
23230         vreinterpret_u8_u64, vreinterpret_u8_s8, vreinterpret_u8_s16,
23231         vreinterpret_u8_s32, vreinterpret_u8_u16, vreinterpret_u8_u32,
23232         vreinterpret_u16_p8, vreinterpret_u16_p16, vreinterpret_u16_f32,
23233         vreinterpret_u16_p64, vreinterpret_u16_s64, vreinterpret_u16_u64,
23234         vreinterpret_u16_s8, vreinterpret_u16_s16, vreinterpret_u16_s32,
23235         vreinterpret_u16_u8, vreinterpret_u16_u32, vreinterpret_u32_p8,
23236         vreinterpret_u32_p16, vreinterpret_u32_f32, vreinterpret_u32_p64,
23237         vreinterpret_u32_s64, vreinterpret_u32_u64, vreinterpret_u32_s8,
23238         vreinterpret_u32_s16, vreinterpret_u32_s32, vreinterpret_u32_u8,
23239         vreinterpret_u32_u16, vreinterpretq_p8_p16, vreinterpretq_p8_f32,
23240         vreinterpretq_p8_p64, vreinterpretq_p8_p128, vreinterpretq_p8_s64,
23241         vreinterpretq_p8_u64, vreinterpretq_p8_s8, vreinterpretq_p8_s16,
23242         vreinterpretq_p8_s32, vreinterpretq_p8_u8, vreinterpretq_p8_u16,
23243         vreinterpretq_p8_u32, vreinterpretq_p16_p8, vreinterpretq_p16_f32,
23244         vreinterpretq_p16_p64, vreinterpretq_p16_p128, vreinterpretq_p16_s64,
23245         vreinterpretq_p16_u64, vreinterpretq_p16_s8, vreinterpretq_p16_s16,
23246         vreinterpretq_p16_s32, vreinterpretq_p16_u8, vreinterpretq_p16_u16,
23247         vreinterpretq_p16_u32, vreinterpretq_f32_p8, vreinterpretq_f32_p16,
23248         vreinterpretq_f32_p64, vreinterpretq_f32_p128, vreinterpretq_f32_s64,
23249         vreinterpretq_f32_u64, vreinterpretq_f32_s8, vreinterpretq_f32_s16,
23250         vreinterpretq_f32_s32, vreinterpretq_f32_u8, vreinterpretq_f32_u16,
23251         vreinterpretq_f32_u32, vreinterpretq_p64_p8, vreinterpretq_p64_p16,
23252         vreinterpretq_p64_f32, vreinterpretq_p64_p128, vreinterpretq_p64_s64,
23253         vreinterpretq_p64_u64, vreinterpretq_p64_s8, vreinterpretq_p64_s16,
23254         vreinterpretq_p64_s32, vreinterpretq_p64_u8, vreinterpretq_p64_u16,
23255         vreinterpretq_p64_u32, vreinterpretq_p128_p8, vreinterpretq_p128_p16,
23256         vreinterpretq_p128_f32, vreinterpretq_p128_p64, vreinterpretq_p128_s64,
23257         vreinterpretq_p128_u64, vreinterpretq_p128_s8, vreinterpretq_p128_s16,
23258         vreinterpretq_p128_s32, vreinterpretq_p128_u8, vreinterpretq_p128_u16,
23259         vreinterpretq_p128_u32, vreinterpretq_s64_p8, vreinterpretq_s64_p16,
23260         vreinterpretq_s64_f32, vreinterpretq_s64_p64, vreinterpretq_s64_p128,
23261         vreinterpretq_s64_u64, vreinterpretq_s64_s8, vreinterpretq_s64_s16,
23262         vreinterpretq_s64_s32, vreinterpretq_s64_u8, vreinterpretq_s64_u16,
23263         vreinterpretq_s64_u32, vreinterpretq_u64_p8, vreinterpretq_u64_p16,
23264         vreinterpretq_u64_f32, vreinterpretq_u64_p64, vreinterpretq_u64_p128,
23265         vreinterpretq_u64_s64, vreinterpretq_u64_s8, vreinterpretq_u64_s16,
23266         vreinterpretq_u64_s32, vreinterpretq_u64_u8, vreinterpretq_u64_u16,
23267         vreinterpretq_u64_u32, vreinterpretq_s8_p8, vreinterpretq_s8_p16,
23268         vreinterpretq_s8_f32, vreinterpretq_s8_p64, vreinterpretq_s8_p128,
23269         vreinterpretq_s8_s64, vreinterpretq_s8_u64, vreinterpretq_s8_s16,
23270         vreinterpretq_s8_s32, vreinterpretq_s8_u8, vreinterpretq_s8_u16,
23271         vreinterpretq_s8_u32, vreinterpretq_s16_p8, vreinterpretq_s16_p16,
23272         vreinterpretq_s16_f32, vreinterpretq_s16_p64, vreinterpretq_s16_p128,
23273         vreinterpretq_s16_s64, vreinterpretq_s16_u64, vreinterpretq_s16_s8,
23274         vreinterpretq_s16_s32, vreinterpretq_s16_u8, vreinterpretq_s16_u16,
23275         vreinterpretq_s16_u32, vreinterpretq_s32_p8, vreinterpretq_s32_p16,
23276         vreinterpretq_s32_f16, vreinterpretq_s32_f32, vreinterpretq_s32_p64,
23277         vreinterpretq_s32_p128, vreinterpretq_s32_s64, vreinterpretq_s32_u64,
23278         vreinterpretq_s32_s8, vreinterpretq_s32_s16, vreinterpretq_s32_u8,
23279         vreinterpretq_s32_u16, vreinterpretq_s32_u32, vreinterpretq_u8_p8,
23280         vreinterpretq_u8_p16, vreinterpretq_u8_f32, vreinterpretq_u8_p64,
23281         vreinterpretq_u8_p128, vreinterpretq_u8_s64, vreinterpretq_u8_u64,
23282         vreinterpretq_u8_s8, vreinterpretq_u8_s16, vreinterpretq_u8_s32,
23283         vreinterpretq_u8_u16, vreinterpretq_u8_u32, vreinterpretq_u16_p8,
23284         vreinterpretq_u16_p16, vreinterpretq_u16_f32, vreinterpretq_u16_p64,
23285         vreinterpretq_u16_p128, vreinterpretq_u16_s64, vreinterpretq_u16_u64,
23286         vreinterpretq_u16_s8, vreinterpretq_u16_s16, vreinterpretq_u16_s32,
23287         vreinterpretq_u16_u8, vreinterpretq_u16_u32, vreinterpretq_u32_p8,
23288         vreinterpretq_u32_p16, vreinterpretq_u32_f32, vreinterpretq_u32_p64,
23289         vreinterpretq_u32_p128, vreinterpretq_u32_s64, vreinterpretq_u32_u64,
23290         vreinterpretq_u32_s8, vreinterpretq_u32_s16, vreinterpretq_u32_s32,
23291         vreinterpretq_u32_u8, vreinterpretq_u32_u16): Rewrite using casts.
23293 2016-02-04  Martin Liska  <mliska@suse.cz>
23295         PR sanitizer/69276
23296         * asan.c (has_stmt_been_instrumented_p): Instrument gimple calls
23297         that are gimple_store_p.
23298         (maybe_instrument_call): Likewise.
23300 2016-02-04  Bin Cheng  <bin.cheng@arm.com>
23302         * config/aarch64/aarch64.c (aarch64_legitimize_address): Force
23303         register scaling out of memory reference and comment why.
23305 2016-02-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
23307         PR target/65932
23308         PR target/67714
23309         * cse.c (cse_insn): Pass NULL to fold_rtx when initially
23310         folding the source of a SET.
23312 2016-02-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
23314         PR target/65932
23315         PR target/67714
23316         * config/arm/arm.c (arm_new_rtx_costs, MULT case): Properly extract
23317         the operands of the SIGN_EXTENDs from a SMUL[TB][TB] rtx.
23319 2016-02-04  Jim Wilson  <jim.wilson@linaro.org>
23321         PR target/65932
23322         PR target/67714
23323         * config/arm/arm.h (PROMOTE_MODE): Don't set UNSIGNEDP for QImode and
23324         HImode.
23326 2016-02-04  Christian Bruel  <christian.bruel@st.com>
23328         * config/arm/arm-c.c (arm_reset_previous_fndecl): Style fix and typo.
23329         * config/arm/arm.c (arm_set_current_function): Likewise.
23331 2016-02-04  Jakub Jelinek  <jakub@redhat.com>
23332             Ilya Enkovich  <enkovich.gnu@gmail.com>
23333             H.J. Lu  <hongjiu.lu@intel.com>
23335         PR target/69454
23336         * config/i386/i386.c (convert_scalars_to_vector): Remove
23337         stack alignment fixes.
23338         (ix86_option_override_internal): Disable TARGET_STV if stack
23339         might not be aligned enough.
23340         (ix86_minimum_alignment): Assert that TARGET_STV is false.
23342 2016-02-04  Victoria Stepanyan  <victoria.stepanyan@amd.com>
23344         * config/i386/x86-tune.def: Disable default prefetching
23345         for -march=znver1.
23347 2016-02-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
23348             Vladimir Makarov  <vmakarov@redhat.com>
23350         PR target/69461
23351         * config/rs6000/rs6000.c (rs6000_legitimate_address_p): Fix thinko
23352         in validating fused toc addresses.
23354 2016-02-03  Jakub Jelinek  <jakub@redhat.com>
23356         PR c/69627
23357         * diagnostic-show-locus.c (layout::get_state_at_point): Don't read
23358         range->m_caret fields if range->m_show_caret_p is false.
23360         PR target/69644
23361         * config/rs6000/rs6000.c (rs6000_expand_atomic_compare_and_swap):
23362         Force oldval into register if it does not satisfy reg_or_short_operand
23363         predicate.  Fix up formatting.
23365 2016-02-03  Vladimir Makarov  <vmakarov@redhat.com>
23366             Alexandre Oliva  <aoliva@redhat.com>
23368         PR target/69461
23369         * lra-constraints.c (simplify_operand_subreg): Check additionally
23370         address validity after potential reloading.
23371         (process_address_1): Check insns validity.  In case of failure do
23372         nothing.
23374 2016-02-03  Kirill Yukhin  <kirill.yukhin@intel.com>
23376         PR target/69118
23377         * config/i386/sse.md (define_insn "avx512f_maskcmp<mode>3"):
23378         Fix target.
23380 2016-02-02  Jakub Jelinek  <jakub@redhat.com>
23382         * wide-int.cc (canonize_uhwi): New function.
23383         (wi::divmod_internal): Use it.
23385 2016-02-02  James Norris  <jnorris@codesourcery.com>
23387         * gimplify.c (omp_notice_variable): Add usage check.
23389 2016-02-02  Alexander Monakov  <amonakov@ispras.ru>
23391         * config/nvptx/nvptx.c (nvptx_print_operand): Treat LEU, GEU, LTU, GTU
23392         like LE, GE, LT, GT when emitting relational operator.
23394 2016-02-02  Wilco Dijkstra  <wdijkstr@arm.com>
23396         * ira-costs.c (find_costs_and_classes): Add extra argument.
23397         * target.def (ira_change_pseudo_allocno_class): Add parameter.
23398         * targhooks.h (ira_change_pseudo_allocno_class): Likewise.
23399         * targhooks.c (ira_change_pseudo_allocno_class): Likewise.
23400         * config/aarch64/aarch64.c (aarch64_ira_change_pseudo_allocno_class)
23401         Add best_class parameter, and return it if not ALL_REGS.
23402         * config/mips/mips.c (mips_ira_change_pseudo_allocno_class):
23403         Add parameter.
23404         * doc/tm.texi (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS):
23405         Update target hook.
23407 2016-02-02  Wilco Dijkstra  <wdijkstr@arm.com>
23409         * config/aarch64/aarch64.c
23410         (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS): New define.
23411         (aarch64_ira_change_pseudo_allocno_class): New function.
23413 2016-02-02  Uros Bizjak  <ubizjak@gmail.com>
23415         PR target/67032
23416         * config/i386/i386.c (geode_cost): Increase cost of MMX and SSE moves.
23418 2016-02-02  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
23420         * config/avr/avr.c (avr_option_override): Set
23421         PARAM_ALLOW_STORE_DATA_RACES to 1.
23423 2016-02-02  Richard Biener  <rguenther@suse.de>
23425         PR tree-optimization/69595
23426         * match.pd: Add range test simplifications to true/false.
23428 2016-02-02  Thomas Schwinge  <thomas@codesourcery.com>
23430         * omp-builtins.def (BUILT_IN_GOACC_HOST_DATA): Remove.
23431         * omp-low.c (expand_omp_target): Use BUILT_IN_GOACC_DATA_START
23432         instead.
23434 2016-02-02  Richard Biener  <rguenther@suse.de>
23436         PR tree-optimization/69606
23437         * tree-ssa-math-opts.c (bswap_replace): Clear flow sensitive
23438         info on the result before moving a stmt.
23440 2016-02-02  Yuri Rumyantsev  <ysrumyan@gmail.com>
23442         PR middle-end/68542
23443         * config/i386/i386.c (ix86_expand_branch): Add support for conditional
23444         branch with vector comparison.
23445         * config/i386/sse.md (VI48_AVX): New mode iterator.
23446         (define_expand "cbranch<mode>4): Add support for conditional branch
23447         with vector comparison.
23448         * tree-vect-loop.c (optimize_mask_stores): New function.
23449         * tree-vect-stmts.c (vectorizable_mask_load_store): Initialize
23450         has_mask_store field of vect_info.
23451         * tree-vectorizer.c (vectorize_loops): Invoke optimaze_mask_stores for
23452         vectorized loops having masked stores after vec_info destroy.
23453         * tree-vectorizer.h (loop_vec_info): Add new has_mask_store field and
23454         correspondent macros.
23455         (optimize_mask_stores): Add prototype.
23457 2016-02-02  Alan Modra  <amodra@gmail.com>
23459         PR target/69548
23460         * config/rs6000/predicates.md (quad_int_reg_operand): Don't
23461         allow subregs.
23463 2016-02-02  Alan Modra  <amodra@gmail.com>
23465         PR target/68662
23466         * config/rs6000/rs6000.c (need_toc_init): New var, set it
23467         whenever toc_label_name used.
23468         (rs6000_file_start): Don't set up toc section here,
23469         (rs6000_output_function_epilogue): do so here instead,
23470         (rs6000_xcoff_file_start): and here.
23471         * config/rs6000/rs6000.md (load_toc_aix_si): Set need_toc_init.
23472         (load_toc_aix_di): Likewise.
23474 2016-02-01  Jakub Jelinek  <jakub@redhat.com>
23476         PR rtl-optimization/69592
23477         * rtlanal.c (nonzero_bits_binary_arith_p): New inline function.
23478         (cached_nonzero_bits): Use it instead of ARITHMETIC_P.
23479         (num_sign_bit_copies_binary_arith_p): New inline function.
23480         (cached_num_sign_bit_copies): Use it instead of ARITHMETIC_P.
23482 2016-02-01  Jeff Law  <law@redhat.com>
23484         PR tree-optimization/69580
23485         * params.def (FSM_MAXIMUM_PHI_ARGUMENTS): New param.
23486         * tree-ssa-threadbackward.c
23487         (fsm_find_control_statement_thread_paths): Do not try to walk
23488         through large PHI nodes.
23490 2016-02-01  Jakub Jelinek  <jakub@redhat.com>
23492         * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Return false
23493         when count is incremented above limit, don't analyze further
23494         insns afterwards.
23496         * omp-low.c (oacc_parse_default_dims): Avoid
23497         -Wsign-compare warning, make sure value fits into int
23498         rather than just unsigned int.
23500 2016-02-01  Bin Cheng  <bin.cheng@arm.com>
23502         PR tree-optimization/67921
23503         * fold-const.c (split_tree): New parameters.  Convert pointer
23504         type variable part to proper type before negating.
23505         (fold_binary_loc): Pass new arguments to split_tree.
23507 2016-02-01  Nathan Sidwell  <nathan@codesourcery.com>
23509         * config/nvptx/nvptx.c (PTX_GANG_DEFAULT): New.
23510         (nvptx_goacc_validate_dims): Extend to handle global defaults.
23511         * target.def (OACC_VALIDATE_DIMS): Extend documentation.
23512         * doc/tm.texti: Rebuilt.
23513         * doc/invoke.texi (fopenacc-dim): Document.
23514         * lto-wrapper.c (merge_and_complain): Add OPT_fopenacc_dim_ case.
23515         (append_compiler_options): Likewise.
23516         * omp-low.c (oacc_default_dims, oacc_min_dims): New.
23517         (oacc_parse_default_dims): New.
23518         (oacc_validate_dims): Add USED arg.  Select non-unity default when
23519         possible.
23520         (oacc_loop_fixed_partitions): Return mask of used partitions.
23521         (oacc_loop_auto_partitions): Emit dump info.
23522         (oacc_loop_partition): Return mask of used partitions.
23523         (execute_oacc_device_lower): Parse default dimension arg.  Adjust
23524         loop partitioning and validation calls.
23526 2016-02-01  Richard Biener  <rguenther@suse.de>
23528         PR middle-end/69556
23529         * match.pd: Guard (C1/X)*C2 -> (C1*C2)/X with single_use.
23531 2016-02-01  Richard Biener  <rguenther@suse.de>
23533         PR tree-optimization/69574
23534         * tree-chrec.c (hide_evolution_in_other_loops_than_loop): Instead
23535         of asserting return chrec_dont_know.
23537 2016-02-01  Martin Liska  <mliska@suse.cz>
23539         * mem-stats-traits.h: Add copyright header.
23540         * mem-stats.h: Likewise.
23542 2016-02-01  Richard Biener  <rguenther@suse.de>
23544         PR tree-optimization/69579
23545         * tree-ssa-loop-ivcanon.c (propagate_constants_for_unrolling):
23546         Do not propagate through abnormal PHI results.
23548 2016-02-01  Eric Botcazou  <ebotcazou@adacore.com>
23550         * postreload.c (reload_cse_simplify): Remove dead code.
23552 2016-02-01  Jakub Jelinek  <jakub@redhat.com>
23554         PR rtl-optimization/69570
23555         * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Return true only
23556         if there is more than one set, not if there is a single set.
23558 2016-02-01  Richard Henderson  <rth@redhat.com>
23560         PR rtl-opt/69535
23561         * combine.c (make_compound_operation): When looking through a
23562         subreg, make sure to re-extend to the width of the outer mode.
23564 2016-01-30  Jakub Jelinek  <jakub@redhat.com>
23566         PR tree-optimization/69546
23567         * wide-int.cc (wi::divmod_internal): For unsigned division
23568         where both operands fit into uhwi, if o1 is 1 and o0 has
23569         msb set, if divident_prec is larger than bits per hwi,
23570         clear another quotient word and return 2 instead of 1.
23571         Similarly for remainder with msb in HWI set, if dividend_prec
23572         is larger than bits per hwi.
23574 2016-01-29  Martin Jambor  <mjambor@suse.cz>
23576         * hsa-gen.c (get_memory_order_name): Mask with MEMMODEL_BASE_MASK.
23577         Use short lowercase names.
23578         (get_memory_order): Mask with MEMMODEL_BASE_MASK.  Support
23579         MEMMODEL_CONSUME with acquire semantics and MEMMODEL_SEQ_CST with
23580         acq_rel one.  Protect warning agains segfaults if
23581         get_memory_order_name returns NULL.
23582         (gen_hsa_ternary_atomic_for_builtin): Support with MEMMODEL_SEQ_CST
23583         with release semantics.  Do not warn if get_memory_order already did.
23584         (gen_hsa_insns_for_call): Support with MEMMODEL_SEQ_CST with acquire
23585         semantics.  Fix check for relaxed or acquire semantics.  Do not warn
23586         if get_memory_order already did.
23588 2016-01-29  Sebastian Pop  <s.pop@samsung.com>
23590         * doc/install.texi: Document that isl-0.16 is supported.
23592 2016-01-29  Vladimir Makarov  <vmakarov@redhat.com>
23594         PR target/69299
23595         * config/i386/constraints.md (Bm): Describe as special memory
23596         constraint.
23597         * doc/md.texi (DEFINE_SPECIAL_MEMORY_CONSTRAINT): Describe it.
23598         * genoutput.c (main): Process DEFINE_SPECIAL_MEMORY_CONSTRAINT.
23599         * genpreds.c (struct constraint_data): Add is_special_memory.
23600         (have_special_memory_constraints, special_memory_start): New
23601         static vars.
23602         (special_memory_end): Ditto.
23603         (add_constraint): Add new arg is_special_memory.  Add code to
23604         process its true value.  Update have_special_memory_constraints.
23605         (process_define_constraint): Pass the new arg.
23606         (process_define_register_constraint): Ditto.
23607         (choose_enum_order): Process special memory.
23608         (write_tm_preds_h): Generate enum const CT_SPECIAL_MEMORY and
23609         function insn_extra_special_memory_constraint.
23610         (main): Process DEFINE_SPECIAL_MEMORY_CONSTRAINT.
23611         * gensupport.c (process_rtx): Process
23612         DEFINE_SPECIAL_MEMORY_CONSTRAINT.
23613         * ira-costs.c (record_reg_classes): Process CT_SPECIAL_MEMORY.
23614         * ira-lives.c (single_reg_class): Use
23615         insn_extra_special_memory_constraint.
23616         * ira.c (ira_setup_alts): Process CT_SPECIAL_MEMORY.
23617         * lra-constraints.c (process_alt_operands): Ditto.
23618         (curr_insn_transform): Use insn_extra_special_memory_constraint.
23619         * recog.c (asm_operand_ok, preprocess_constraints): Process
23620         CT_SPECIAL_MEMORY.
23621         * reload.c (find_reloads): Ditto.
23622         * rtl.def (DEFINE_SPECIFAL_MEMORY_CONSTRAINT): New.
23623         * stmt.c (parse_input_constraint): Use
23624         insn_extra_special_memory_constraint.
23626 2016-01-29  H.J. Lu  <hongjiu.lu@intel.com>
23628         PR target/69530
23629         * lra-splill.c (lra_final_code_change): Revert r229087 by
23630         removing all sub-registers.
23632 2016-01-29  Steve Ellcey  <sellcey@imgtec.com>
23634         PR target/65604
23635         * config/mips/mips.c (mips_output_division): Check flag_delayed_branch.
23637 2016-01-29  Jakub Jelinek  <jakub@redhat.com>
23639         PR target/69551
23640         * config/i386/i386.c (ix86_expand_vector_set) <case V4SImode>: For
23641         SSE1, copy target into the temporary reg first before recursing
23642         on it.
23644 2016-01-29  H.J. Lu  <hongjiu.lu@intel.com>
23646         * config/i386/sse.md (sse2_cvtps2pd<mask_name>): Replace vBm
23647         with vm.
23649 2016-01-29  Jonathan Wakely  <jwakely@redhat.com>
23651         * ginclude/stdarg.h: Test __cplusplus instead of
23652         __GXX_EXPERIMENTAL_CXX0X__.
23654 2016-01-29  Richard Biener  <rguenther@suse.de>
23656         PR tree-optimization/69547
23657         * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1):
23658         Do not mark clobbers necessary.
23659         (mark_all_reaching_defs_necessary_1): Likewise.
23661 2016-01-29  Dominik Vogt  <vogt@linux.vnet.ibm.com>
23663         * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Format
23664         declaration name with %qs and print it in both error messages.
23665         Also fix indentation.
23667 2016-01-29  Dominik Vogt  <vogt@linux.vnet.ibm.com>
23669         PR other/69006
23670         * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Remove
23671         trailing blank line from error message.
23673 2016-01-29  Jonathan Wakely  <jwakely@redhat.com>
23675         PR c++/69462
23676         * ginclude/float.h: Also provide FLT_EVAL_METHOD and DECIMAL_DIG
23677         for C++-11.
23679 2016-01-29  Richard Biener  <rguenther@suse.de>
23681         PR middle-end/69537
23682         * match.pd: Allow all integral types when simplifying a
23683         widening or sign-changing conversion.
23685 2016-01-28  Sebastian Pop  <s.pop@samsung.com>
23687         * graphite-isl-ast-to-gimple.c (get_rename_from_scev): Revert assert
23688         back to setting codegen_error to fail codegen.
23690 2016-01-28  Uros Bizjak  <ubizjak@gmail.com>
23692         PR target/69459
23693         * config/i386/constraints.md (C): Only accept constant zero operand.
23694         (BC): New constraint.
23695         * config/i386/sse.md (*mov<mode>_internal): Use BC constraint
23696         instead of C constraint.
23697         * doc/md.texi (Machine Constraints): Update description
23698         of C constraint.
23700 2016-01-28  Steve Ellcey  <sellcey@imgtec.com>
23702         PR target/68400
23703         * config/mips/mips.c (and_operands_ok): Add MIPS16 check.
23705 2016-01-28  Jakub Jelinek  <jakub@redhat.com>
23707         PR middle-end/69542
23708         * lra-remat.c (calculate_local_reg_remat_bb_data): Only consider
23709         non-debug insns.
23711 2016-01-28  Pat Haugen  <pthaugen@us.ibm.com>
23713         * config/rs6000/rs6000.c (output_cbranch): Don't statically predict
23714         branches if using guessed profile.
23716 2016-01-28  H.J. Lu  <hongjiu.lu@intel.com>
23718         * graphite-optimize-isl.c (optimize_isl): Fix dump.
23720 2016-01-28  Richard Henderson  <rth@redhat.com>
23722         PR target/69305
23723         * config/aarch64/aarch64-modes.def (CC_Cmode): New
23724         * config/aarch64/aarch64-protos.h: Update.
23725         * config/aarch64/aarch64.c (aarch64_zero_extend_const_eq): New.
23726         (aarch64_select_cc_mode): Add check for use of CC_Cmode.
23727         (aarch64_get_condition_code_1): Handle CC_Cmode.
23728         * config/aarch64/aarch64.md (addti3): Use adddi3_compareC.
23729         (*add<mode>3_compareC_cconly_imm): New.
23730         (*add<mode>3_compareC_cconly): New.
23731         (*add<mode>3_compareC_imm): New.
23732         (add<mode>3_compareC): New.
23733         (add<mode>3_carryin, *addsi3_carryin_uxtw): Sort compare operand
23734         to be first.  Use aarch64_carry_operation.
23735         (*add<mode>3_carryin_alt1, *addsi3_carryin_alt1_uxtw): Remove.
23736         (*add<mode>3_carryin_alt2, *addsi3_carryin_alt2_uxtw): Remove.
23737         (*add<mode>3_carryin_alt3, *addsi3_carryin_alt3_uxtw): Remove.
23738         (subti3): Use subdi3_compare1.
23739         (*sub<mode>3_compare0): Rename from sub<mode>3_compare0.
23740         (sub<mode>3_compare1): New.
23741         (*sub<mode>3_carryin0, *subsi3_carryin_uxtw): New.
23742         (*sub<mode>3_carryin): Use aarch64_borrow_operation.
23743         (*subsi3_carryin_uxtw): Likewise.
23744         (*ngc<mode>, *ngcsi_uxtw): Likewise.
23745         (*sub<mode>3_carryin_alt, *subsi3_carryin_alt_uxtw): New.
23746         * config/aarch64/iterators.md (DWI): New.
23747         * config/aarch64/predicates.md (aarch64_carry_operation): New.
23748         (aarch64_borrow_operation): New.
23750 2016-01-28  Abderrazek Zaafrani  <a.zaafrani@samsung.com>
23752         * graphite-optimize-isl.c (optimize_isl): Print a different debug
23753         message when isl does not return a valid schedule.
23755 2016-01-28  Sebastian Pop  <s.pop@samsung.com>
23757         * graphite-isl-ast-to-gimple.c (class translate_isl_ast_to_gimple):
23758         Remove comments from class declarations: they are already in the code
23759         close by the defs.
23761 2016-01-28  Sebastian Pop  <s.pop@samsung.com>
23763         * graphite-isl-ast-to-gimple.c (binary_op_to_tree): Call
23764         codegen_error_p.
23765         (ternary_op_to_tree): Same.
23766         (unary_op_to_tree): Same.
23767         (nary_op_to_tree): Same.
23768         (gcc_expression_from_isl_expr_op): Same.
23769         (gcc_expression_from_isl_expression): Same.
23770         (graphite_create_new_loop): Same.
23771         (graphite_create_new_loop_guard): Same.
23772         (build_iv_mapping): Same.
23773         (graphite_create_new_guard): Same.
23774         (translate_isl_ast_to_gimple::copy_loop_phi_nodes): Same.
23775         (translate_isl_ast_to_gimple::translate_pending_phi_nodes): Same.
23777 2016-01-28  Sebastian Pop  <s.pop@samsung.com>
23779         * graphite-isl-ast-to-gimple.c (get_rename_from_scev): Assert
23780         instead of setting codegen_error to fail codegen.
23782 2016-01-28  Jason Merrill  <jason@redhat.com>
23784         * tree.h (BINFO_FLAG_0): Rename from BINFO_MARKED.
23786 2016-01-28  Wilco Dijkstra  <wdijkstr@arm.com>
23788         * config/aarch64/aarch64.c (aarch64_if_then_else_costs):
23789         Remove CONST_INT_P check in CCMP cost calculation.
23791 2016-01-28  Wilco Dijkstra  <wdijkstr@arm.com>
23793         * config/aarch64/aarch64.c (generic_vector_cost):
23794         Set vec_permute_cost.
23795         (cortexa57_vector_cost): Likewise.
23796         (exynosm1_vector_cost): Likewise.
23797         (xgene1_vector_cost): Likewise.
23798         (aarch64_builtin_vectorization_cost): Use vec_permute_cost.
23799         * config/aarch64/aarch64-protos.h (cpu_vector_cost):
23800         Add vec_permute_cost entry.
23802 2016-01-28  Wilco Dijkstra  <wdijkstr@arm.com>
23804         * config/aarch64/aarch64.md (ccmp<mode>): Disassemble
23805         immediate as %1.
23806         (add<mode>3_compare0): Likewise.
23807         (addsi3_compare0_uxtw): Likewise.
23808         (add<mode>3nr_compare0): Likewise.
23809         (compare_neg<mode>): Likewise.
23810         (<optab><mode>3): Likewise.
23812 2016-01-28  Ilya Enkovich  <enkovich.gnu@gmail.com>
23814         * tree-vect-stmts.c (vectorizable_comparison): Add
23815         NULL check for vectype.
23817 2016-01-28  Richard Biener  <rguenther@suse.de>
23819         PR tree-optimization/69466
23820         * tree-vect-loop-manip.c (slpeel_duplicate_current_defs_from_edges):
23821         Account for PHIs we couldn't duplicate.
23823 2016-01-28  Martin Liska  <mliska@suse.cz>
23825         PR pch/68758
23826         * ggc-common.c (gt_pch_save): Use ENABLE_VALGRIND_ANNOTATIONS macro
23827         instead of ENABLE_VALGRIND_CHECKING.
23829 2016-01-27  Richard Henderson  <rth@redhat.com>
23831         PR rtl-opt/69447
23832         * lra-remat.c (subreg_regs): New.
23833         (dump_candidates_and_remat_bb_data): Dump it.
23834         (operand_to_remat): Reject if operand in subreg_regs.
23835         (set_bb_regs): Collect subreg_regs.
23836         (lra_remat): Init and free subreg_regs.  Compute
23837         calculate_local_reg_remat_bb_data before create_cands.
23839 2016-01-27  H.J. Lu  <hongjiu.lu@intel.com>
23841         PR target/68986
23842         * config/i386/i386.c (ix86_update_stack_boundary): Don't
23843         change stack_alignment_needed for __tls_get_addr call.
23845 2016-01-27  Segher Boessenkool  <segher@kernel.crashing.org>
23847         * config/rs6000/rs6000.c (print_operand): Rollback 's' removal.
23849 2016-01-27  Jeff Law  <law@redhat.com>
23851         PR tree-optimization/68398
23852         PR tree-optimization/69196
23853         * params.def (PARAM_FSM_SCALE_PATH_STMTS): New parameter.
23854         (PARAM_FSM_SCALE_PATH_BLOCKS): Likewise.
23855         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
23856         Only count PHIs in the last block in the path.  The others will
23857         const/copy propagate away.  Add heuristic to allow more irreducible
23858         subloops to be created when it is likely profitable to do so.
23860         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
23861         Fix typo in comment.  Use gsi_after_labels and remove the GIMPLE_LABEL
23862         check from within the loop.  Use gsi_next_nondebug rather than gsi_next.
23864 2016-01-27  Jakub Jelinek  <jakub@redhat.com>
23866         PR lto/69254
23867         * sanitizer.def: Add BEGIN_SANITIZER_BUILTINS and
23868         END_SANITIZER_BUILTINS markers using DEF_BUILTIN_STUB.
23869         * asan.c (DEF_BUILTIN_STUB): Temporarily define.
23870         * tree-streamer-in.c: Include asan.h.
23871         (streamer_get_builtin_tree): For builtins in sanitizer
23872         range call initialize_sanitizer_builtins and retry.
23874 2016-01-27  Ian Lance Taylor  <iant@google.com>
23876         * common.opt (fkeep-gc-roots-live): New undocumented option.
23877         * tree-ssa-loop-ivopts.c (add_candidate_1): If
23878         -fkeep-gc-roots-live, skip pointers.
23879         (add_iv_candidate_for_biv): Handle add_candidate_1 returning
23880         NULL.
23882 2016-01-27  Uros Bizjak  <ubizjak@gmail.com>
23884         PR target/69512
23885         * config/i386/i386.md (*zext<mode>_doubleword_and): New pattern.
23886         (*zext<mode>_doubleword): Disable for TARGET_ZERO_EXTEND_WITH_AND.
23888 2016-01-27  Thomas Klausner  <wiz@NetBSD.org>
23890         PR target/68380
23891         * configure.ac: NetBSD provides SSP in its C library.
23892         * configure: Updated.
23894 2016-01-27  Richard Biener  <rguenther@suse.de>
23896         PR tree-optimization/69166
23897         * tree-vect-loop.c (vect_is_simple_reduction): Always check
23898         reduction code for commutativity / associativity.
23900 2016-01-27  Martin Jambor  <mjambor@suse.cz>
23902         PR tree-optimization/69355
23903         * tree-sra.c (analyze_access_subtree): Correct hole detection when
23904         total_scalarization fails.
23906 2016-01-27  David Edelsohn  <dje.gcc@gmail.com>
23908         * config/rs6000/driver-rs6000.c (detect_processor_aix): Add
23909         power9.
23911 2016-01-27  Christian Bruel  <christian.bruel@st.com>
23913         PR target/69245
23914         * config/arm/arm-c.c (arm_pragma_target_parse): Add comments.
23915         Move arm_reset_previous_fndecl and set_target_option_current_node in
23916         the conditional part.  Call save_restore_target_globals.
23917         * config/arm/arm.c (arm_set_current_function):
23918         Refactor to better support #pragma target and attribute mix.
23919         Call save_restore_target_globals.
23920         * config/arm/arm-protos.h (save_restore_target_globals): New function.
23922 2016-01-27  Martin Liska  <mliska@suse.cz>
23924         * hsa.c (hsa_summary_t::link_functions): Create IPA_REF_ADDR
23925         reference for an HSA kernel and its host function.
23927 2016-01-27  Jakub Jelinek  <jakub@redhat.com>
23929         PR tree-optimization/69399
23930         * wide-int.h (wi::lrshift): For larger precisions, only
23931         use fast path if shift is known to be < HOST_BITS_PER_WIDE_INT.
23933 2016-01-27  Claudiu Zissulescu  <claziss@synopsys.com>
23935         * config/arc/predicates.md (proper_comparison_operator): Reject
23936         constant-constant comparison.
23938 2016-01-26  Tom de Vries  <tom@codesourcery.com>
23940         PR tree-optimization/69110
23941         * tree-data-ref.c (initialize_data_dependence_relation): Handle
23942         DR_NUM_DIMENSIONS == 0.
23944 2016-01-26  Abderrazek Zaafrani  <a.zaafrani@samsung.com>
23945             Sebastian Pop  <s.pop@samsung.com>
23947         * graphite-isl-ast-to-gimple.c (ternary_op_to_tree): Handle
23948         isl_ast_op_cond and isl_ast_op_select.
23949         (gcc_expression_from_isl_expr_op): Same.
23951 2016-01-26  Jason Merrill  <jason@redhat.com>
23953         PR c++/68782
23954         * tree.c (recompute_constructor_flags): Split out from
23955         build_constructor.
23956         (verify_constructor_flags): New.
23957         * tree.h: Declare them.
23959 2016-01-26  Iain Buclaw  <ibuclaw@gdcproject.org>
23961         PR rtl-optimization/69217
23962         * var-tracking.c (tracked_record_parameter_p): Don't segfault if there
23963         are no TYPE_FIELDS set for the record type.
23965 2016-01-26  Jakub Jelinek  <jakub@redhat.com>
23967         PR target/68662
23968         * config/rs6000/rs6000.c (rs6000_option_override_internal): Initialize
23969         toc_label_name unconditionally.
23970         (rs6000_emit_load_toc_table): Call ggc_strdup on toc_label_name for
23971         SYMBOL_REF string.  Use toc_label_name instead of constructing
23972         LCTOC1.
23973         (rs6000_elf_declare_function_name): Use toc_label_name instead of
23974         constructing LCTOC1.
23976 2016-01-26  Martin Sebor  <msebor@redhat.com>
23978         PR other/69477
23979         * doc/extend.texi (Common Type Attributes): Move text that talks about
23980         attribute packed from attribute aligned to the section discussing
23981         the former attribute for clarity.
23983 2016-01-26  Richard Henderson  <rth@redhat.com>
23985         PR middle-end/60908
23986         * trans-mem.c (tm_region_init): Mark entry block as visited.
23988 2016-01-26  David Malcolm  <dmalcolm@redhat.com>
23990         PR other/69006
23991         * diagnostic-show-locus.c (layout::print_source_line): Replace
23992         call to pp_newline with call to layout::print_newline.
23993         (layout::print_annotation_line): Likewise.
23994         (layout::move_to_column): Likewise.
23995         (layout::print_any_fixits): After printing any fixits, print a
23996         trailing newline, if necessary.
23997         (layout::print_newline): New method, resetting any colorization
23998         before a newline.
23999         (diagnostic_show_locus): Move the pp_newline to before the
24000         early bailout.  Remove dummy block enclosing the layout instance.
24001         * diagnostic.c (default_diagnostic_finalizer): Replace invocation
24002         of pp_newline_and_flush with pp_flush.
24003         (diagnostic_append_note): Delete use of pp_newline.
24004         (diagnostic_append_note_at_rich_loc): Delete.
24005         * diagnostic.h (diagnostic_append_note_at_rich_loc): Delete.
24006         * pretty-print.h (output_buffer_append_r): Reset buff->line_length
24007         when newline characters are added to the buffer.
24009 2016-01-26  Michael Matz  <matz@suse.de>
24011         * configure.ac (ac_cv_std_swap_in_utility): New test.
24012         * system.h (<algorithm>): Check HAVE_SWAP_IN_UTILITY as well.
24013         * configure: Regenerate.
24014         * config.in: Regenerate.
24016 2016-01-26  Claudiu Zissulescu  <claziss@synopsys.com>
24018         * config/arc/arc.md (cstoresi4): Force operand into register.
24019         (arcset<code>): Fix predicate.
24020         (arcsetltu): Likewise.
24021         (arcsetgeu): Likewise.
24022         (arcsethi): Likewise.
24023         (arcsetls): Likewise.
24025 2016-01-26  Jakub Jelinek  <jakub@redhat.com>
24027         PR tree-optimization/69483
24028         * gimple-fold.c (canonicalize_constructor_val): Return NULL
24029         if base has error_mark_node type.
24031 2016-01-26  Christophe Lyon  <christophe.lyon@linaro.org>
24033         PR target/68620
24034         * config/arm/arm.c (neon_valid_immediate): Handle FP16 vectors.
24035         * config/arm/arm_neon.h (__ARM_NUM_LANES, __arm_lane, arm_lanq):
24036         New helper macros.
24037         (vget_lane_f16): Handle big-endian.
24038         (vgetq_lane_f16): Likewise.
24039         (vset_lane_f16): Likewise.
24040         (vsetq_lane_f16): Likewise.
24041         * config/arm/iterators.md (VQXMOV): Add V8HF.
24042         (VDQ): Add V4HF and V8HF.
24043         (V_reg): Handle V4HF and V8HF.
24044         (Is_float_mode): Likewise.
24045         * config/arm/neon.md (movv4hf, movv8hf, neon_vdup_nv4hf,
24046         neon_vdup_nv8hf): New patterns.
24047         (vec_set<mode>_internal, vec_extract<mode>, neon_vld1_dup<mode>):
24048         Use VD_LANE iterator.
24049         (neon_vld1_dup<mode>): Use VQ2 iterator.
24051 2016-01-26  Nathan Sidwell  <nathan@acm.org>
24053         * omp-low.h (oacc_fn_attrib_kernels_p): Declare.
24054         (set_oacc_fn_attrib): Add IS_KERNEL arg.
24055         * omp-low.c (set_oacc_fn_attrib): Add IS_KERNEL arg.
24056         (oacc_fn_attrib_kernels_p, oacc_fn_attrib_level): New.
24057         (expand_omp_target): Pass is_kernel to set_oacc_fn_attrib.
24058         (oacc_validate_dims): Add LEVEL arg, don't return level.
24059         (new_oacc_loop_routine): Use oacc_fn_attrib_level, not
24060         oacc_validate_dims.
24061         (execute_oacc_device_lower): Adjust, add more dump output.
24062         * tree-ssa-loop.c (gate_oacc_kernels): Use
24063         oacc_fn_attrib_kernels_p.
24064         * tree-parloops.c (create_parallel_loop): Adjust
24065         set_oacc_fn_attrib call.
24067 2016-01-26  Jakub Jelinek  <jakub@redhat.com>
24069         PR lto/69254
24070         * lto-wrapper.c (merge_and_complain): Handle -fcilkplus.
24071         (append_compiler_options): Handle -fcilkplus.
24072         (append_linker_options): Ignore -fno-{openmp,openacc,cilkplus}.
24074 2016-01-26  Nick Clifton  <nickc@redhat.com>
24076         PR target/66655
24077         * config/i386/winnt.c (i386_pe_binds_local_p): If a function has
24078         been marked as DECL_ONE_ONLY but we do not the means to make it
24079         so, then do not allow it to bind locally.
24081 2016-01-26  Jakub Jelinek  <jakub@redhat.com>
24083         PR lto/69254
24084         * opts.h (parse_sanitizer_options): New prototype.
24085         * opts.c (sanitizer_opts): New array.
24086         (parse_sanitizer_options): New function.
24087         (common_handle_option): Use parse_sanitizer_options.
24089 2016-01-26  H.J. Lu  <hongjiu.lu@intel.com>
24091         PR target/68986
24092         * config/i386/i386.c (ix86_compute_frame_layout): Move stack
24093         alignment adjustment to ...
24094         (ix86_update_stack_boundary): Here.  Don't over-align stack for
24095         __tls_get_addr.
24096         (ix86_finalize_stack_realign_flags): Use stack_alignment_needed
24097         if __tls_get_addr is called.
24099 2016-01-26  Christian Bruel  <christian.bruel@st.com>
24101         * doc/sourcebuild.texi (arm_crypto_pragma_ok): Remove.
24103 2016-01-26  Eric Botcazou  <ebotcazou@adacore.com>
24105         * config/ia64/ia64.c (ia64_expand_vecint_compare): Use gen_int_mode.
24107 2016-01-26  Richard Biener  <rguenther@suse.de>
24109         PR middle-end/69467
24110         * match.pd: Guard X * CST CMP 0 pattern with single_use.
24112 2016-01-26  Richard Biener  <rguenther@suse.de>
24114         PR tree-optimization/69452
24115         * tree-ssa-loop-im.c (move_computations_dom_walker): Remove.
24116         (move_computations_dom_walker::before_dom_children): Rename
24117         to ...
24118         (move_computations_worker): This.
24119         (move_computations): Perform an RPO rather than a DOM walk.
24121 2016-01-26  Jakub Jelinek  <jakub@redhat.com>
24123         PR target/69442
24124         * combine.c (combine_instructions): For REG_EQUAL note with
24125         SET_DEST being ZERO_EXTRACT, also temporarily set SET_DEST
24126         to the underlying register.
24127         * doc/rtl.texi (REG_EQUAL): Document the behavior of
24128         REG_EQUAL/REG_EQUIV notes if SET_DEST is ZERO_EXTRACT.
24130 2016-01-26  Roger Ferrer Ibáñez  <rofirrim@gmail.com>
24132         PR target/67896
24133         * config/aarch64/aarch64-builtins.c
24134         (aarch64_init_simd_builtin_types): Do not set structural
24135         equality to __Poly{8,16,64,128}_t types.
24137 2016-01-26  Richard Sandiford  <richard.sandiford@arm.com>
24139         PR tree-optimization/69400
24140         * wide-int.cc (wi_pack): Take the precision as argument and
24141         perform canonicalization here rather than in the callers.
24142         Use the main loop to handle all full-width HWIs.  Add a
24143         zero HWI if in_len isn't a full result.
24144         (wi::divmod_internal): Update accordingly.
24145         (wi::mul_internal): Likewise.  Simplify.
24147 2016-01-25  Aditya Kumar  <aditya.k7@samsung.com>
24148             Sebastian Pop  <s.pop@samsung.com>
24150         * graphite-poly.c (apply_poly_transforms): Simplify.
24151         (print_isl_set): Use more readable format: ISL_YAML_STYLE_BLOCK.
24152         (print_isl_map): Same.
24153         (print_isl_union_map): Same.
24154         (print_isl_schedule): New.
24155         (debug_isl_schedule): New.
24156         * graphite-dependences.c (scop_get_reads): Do not call
24157         isl_union_map_add_map that is undocumented isl functionality.
24158         (scop_get_must_writes): Same.
24159         (scop_get_may_writes): Same.
24160         (scop_get_original_schedule): Remove.
24161         (scop_get_dependences): Do not call isl_union_map_compute_flow that
24162         is deprecated in isl 0.15.  Instead, use isl_union_access_* interface.
24163         (compute_deps): Remove.
24164         * graphite-isl-ast-to-gimple.c (print_schedule_ast): New.
24165         (debug_schedule_ast): New.
24166         (translate_isl_ast_to_gimple::scop_to_isl_ast): Call
24167         set_separate_option.
24168         (graphite_regenerate_ast_isl): Add dump.
24169         (translate_isl_ast_to_gimple::scop_to_isl_ast): Generate code
24170         from scop->transformed_schedule.
24171         (graphite_regenerate_ast_isl): Add more dump.
24172         * graphite-optimize-isl.c (optimize_isl): Set
24173         scop->transformed_schedule.  Check whether schedules are equal.
24174         (apply_poly_transforms): Move here.
24175         * graphite-poly.c (apply_poly_transforms): ... from here.
24176         (free_poly_bb): Static.
24177         (free_scop): Static.
24178         (pbb_number_of_iterations_at_time): Remove.
24179         (print_isl_ast): New.
24180         (debug_isl_ast): New.
24181         (debug_scop_pbb): New.
24182         * graphite-scop-detection.c (print_edge): Move.
24183         (print_sese): Move.
24184         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Remove.
24185         (build_scop_scattering): Remove.
24186         (create_pw_aff_from_tree): Assert instead of bailing out.
24187         (add_condition_to_pbb): Remove unused code, do not fail.
24188         (add_conditions_to_domain): Same.
24189         (add_conditions_to_constraints): Remove.
24190         (build_scop_context): New.
24191         (add_iter_domain_dimension): New.
24192         (build_iteration_domains): Initialize pbb->iterators.
24193         Call add_conditions_to_domain.
24194         (nested_in): New.
24195         (loop_at): New.
24196         (index_outermost_in_loop): New.
24197         (index_pbb_in_loop): New.
24198         (outermost_pbb_in): New.
24199         (add_in_sequence): New.
24200         (add_outer_projection): New.
24201         (outer_projection_mupa): New.
24202         (add_loop_schedule): New.
24203         (build_schedule_pbb): New.
24204         (build_schedule_loop): New.
24205         (embed_in_surrounding_loops): New.
24206         (build_schedule_loop_nest): New.
24207         (build_original_schedule): New.
24208         (build_poly_scop): Call build_original_schedule.
24209         * graphite.h: Declare print_isl_schedule and debug_isl_schedule.
24210         (free_poly_dr): Remove.
24211         (struct poly_bb): Add iterators.  Remove schedule, transformed, saved.
24212         (free_poly_bb): Remove.
24213         (debug_loop_vec): Remove.
24214         (print_isl_ast): Declare.
24215         (debug_isl_ast): Declare.
24216         (scop_do_interchange): Remove.
24217         (scop_do_strip_mine): Remove.
24218         (scop_do_block): Remove.
24219         (flatten_all_loops): Remove.
24220         (optimize_isl): Remove.
24221         (pbb_number_of_iterations_at_time): Remove.
24222         (debug_scop_pbb): Declare.
24223         (print_schedule_ast): Declare.
24224         (debug_schedule_ast): Declare.
24225         (struct scop): Remove schedule.  Add original_schedule,
24226         transformed_schedule.
24227         (free_gimple_poly_bb): Remove.
24228         (print_generated_program): Remove.
24229         (debug_generated_program): Remove.
24230         (unify_scattering_dimensions): Remove.
24231         * sese.c (print_edge): ... here.
24232         (print_sese): ... here.
24233         (debug_edge): ... here.
24234         (debug_sese): ... here.
24235         * sese.h (print_edge): Declare.
24236         (print_sese): Declare.
24237         (dump_edge): Declare.
24238         (dump_sese): Declare.
24240 2016-01-25  Aditya Kumar  <aditya.k7@samsung.com>
24241             Sebastian Pop  <s.pop@samsung.com>
24243         * Makefile.in: Set ISLVER in site.exp.
24245 2016-01-25  Jakub Jelinek  <jakub@redhat.com>
24247         * omp-low.c (lower_omp_target) <case USE_DEVICE_PTR>: Set
24248         DECL_VALUE_EXPR of new_var even for the non-array case.  Look
24249         through DECL_VALUE_EXPR for expansion.
24251 2016-01-25  Bernd Edlinger  <bernd.edlinger@hotmail.de>
24253         * config/mips/mips.c (mips_compute_frame_info): Skip re-computing
24254         the frame info after reload completed.
24256 2016-01-25  Jeff Law  <law@redhat.com>
24258         PR tree-optimization/69196
24259         PR tree-optimization/68398
24260         * tree-ssa-threadupdate.h (enum bb_dom_status): Moved here from
24261         tree-ssa-threadupdate.c.
24262         (determine_bb_domination_status): Prototype
24263         * tree-ssa-threadupdate.c (enum bb_dom_status): Remove
24264         (determine_bb_domination_status): No longer static.
24265         (valid_jump_thread_path): Remove code to detect characteristics
24266         of the jump thread path not associated with correctness.
24267         * tree-ssa-threadbackward.c (fsm_find_control_statment_thread_paths):
24268         Correct test for thread path length.  Count PHIs for real operands as
24269         statements that need to be copied.  Do not count ASSERT_EXPRs.
24270         Look at all the blocks in the thread path.  Compute and selectively
24271         filter thread paths based on threading through the latch, threading
24272         a multiway branch or crossing a multiway branch.
24274 2016-01-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
24276         * config/rs6000/rs6000.c (rs6000_keep_leaf_when_profiled):  Add
24277         decl with __attribute__ ((unused)) annotation.
24279 2016-01-25  Ilya Enkovich  <enkovich.gnu@gmail.com>
24281         PR target/69421
24282         * tree-vect-stmts.c (vectorizable_condition): Check vectype
24283         of operands is compatible with a statement vectype.
24285 2016-01-25  Eric Botcazou  <ebotcazou@adacore.com>
24287         * doc/extend.texi (scalar_storage_order type attribute): Fix typo and
24288         improve wording for mixed storage order support.
24290 2016-01-25  Bilyan Borisov  <bilyan.borisov@arm.com>
24292         * config/aarch64/arm_neon.h (vcvt_s64_f64): New intrinsic.
24293         (vcvt_u64_f64): Likewise.
24294         (vcvta_s64_f64): Likewise.
24295         (vcvta_u64_f64): Likewise.
24296         (vcvtm_s64_f64): Likewise.
24297         (vcvtm_u64_f64): Likewise.
24298         (vcvtn_s64_f64): Likewise.
24299         (vcvtn_u64_f64): Likewise.
24300         (vcvtp_s64_f64): Likewise.
24301         (vcvtp_u64_f64): Likewise.
24303 2016-01-25  Claudiu Zissulescu  <claziss@synopsys.com>
24305         * config/arc/arc.c (TARGET_DWARF_REGISTER_SPAN): Define.
24306         (arc_init): Check validity mll64 option.
24307         (arc_save_restore): Use double load/store instruction.
24308         (arc_expand_movmem): Likewise.
24309         (arc_split_move): Don't split if we have double load/store
24310         instructions. Returns a boolean.
24311         (arc_process_double_reg_moves): Change function to return boolean
24312         instead of a sequence of instructions.
24313         (arc_dwarf_register_span): New function.
24314         * config/arc/arc-protos.h (arc_split_move): Change prototype.
24315         * config/arc/arc.h (TARGET_CPU_CPP_BUILTINS): Define __ARC_LL64__.
24316         * config/arc/arc.md (*movdi_insn): Emit ldd/std instructions.
24317         (*movdf_insn): Likewise.
24318         * config/arc/arc.opt (mll64): New option.
24319         * config/arc/predicates.md (even_register_operand): New predicate.
24320         * doc/invoke.texi (ARC Options): Add mll64 documentation.
24322 2016-01-25  Richard Biener  <rguenther@suse.de>
24324         PR lto/69393
24325         * dwarf2out.c (is_naming_typedef_decl): Not when DECL_NAMELESS.
24326         * tree-streamer-out.c (pack_ts_base_value_fields): Stream
24327         DECL_NAMELESS.
24328         * tree-streamer-in.c (unpack_ts_base_value_fields): Likewise.
24330 2016-01-25  Richard Biener  <rguenther@suse.de>
24332         PR tree-optimization/69376
24333         * tree-ssa-sccvn.h (struct vn_ssa_aux): Add range_info_anti_range_p
24334         flag.
24335         (VN_INFO_ANTI_RANGE_P): New inline.
24336         (VN_INFO_RANGE_TYPE): Likewise.
24337         * tree-ssa-sccvn.c (set_ssa_val_to): Also record and copy
24338         SSA_NAME_ANTI_RANGE_P.
24339         (free_scc_vn): Restore SSA_NAME_ANTI_RANGE_P.
24340         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
24341         Properly query VN_INFO_RANGE_TYPE.
24343 2016-01-25  Nick Clifton  <nickc@redhat.com>
24345         PR target/66655
24346         * config/i386/cygming.h (MAKE_DECL_ONE_ONLY): Remove definition.
24348 2016-01-23  Tom de Vries  <tom@codesourcery.com>
24350         PR tree-optimization/69426
24351         * tree-parloops.c (eliminate_local_variables_stmt): Handle vdef of
24352         removed clobber.
24354 2016-01-23  Jakub Jelinek  <jakub@redhat.com>
24356         * tree-ssanames.c (release_free_names_and_compact_live_names): Replace
24357         "the the" with "the" in the comments.
24358         * ipa-devirt.c (build_type_inheritance_graph,
24359         update_type_inheritance_graph): Likewise.
24360         * tree.c (build_function_type_list_1): Likewise.
24361         * cfgloopmanip.c (scale_loop_profile): Likewise.
24362         * tree-ssa-loop-ivopts.c (get_shiftadd_cost): Likewise.
24363         * gimple-ssa-split-paths.c
24364         (find_block_to_duplicate_for_splitting_paths): Likewise.
24365         * tree-sra.c (init_subtree_with_zero, clobber_subtree): Likewise.
24366         * expr.c (convert_move): Likewise.
24367         * var-tracking.c (vt_stack_adjustments): Likewise.
24368         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise.
24369         * tree-vrp.c (test_for_singularity): Likewise.
24371         * tree-vect-stmts.c (vectorizable_condition): Build a VEC_COND_EXPR
24372         directly instead of building a temporary tree.
24374         PR bootstrap/69434
24375         * genrecog.c: Define INCLUDE_ALGORITHM before including system.h,
24376         remove <algorithm> include.
24378 2016-01-22  Jakub Jelinek  <jakub@redhat.com>
24380         PR target/69432
24381         * config/i386/i386.c: Include dojump.h.
24382         (expand_small_movmem_or_setmem,
24383         expand_set_or_movmem_prologue_epilogue_by_misaligned_moves): Spelling
24384         fixes.
24385         (ix86_expand_set_or_movmem): Call do_pending_stack_adjust () early
24386         if dynamic_check != -1.
24388 2016-01-21  Jeff Law  <law@redhat.com>
24390         PR middle-end/69347
24391         * tree-ssa-dom.c (back_propagate_equivalences): Factored out of
24392         record_temporary_equivalences.  Rewritten to avoid unnecessary calls
24393         into dominated_by_p.
24394         (cprop_into_successor_phis): Avoid unnecessary tests.
24396 2016-01-22  Richard Henderson  <rth@redhat.com>
24398         PR target/69416
24399         * config/aarch64/aarch64.md (UNSPEC_NZCV): New.
24400         (ccmp<mode>, fccmp<mode>, fccmpe<mode>): Use it.
24402 2016-01-22  Michael Matz  <matz@suse.de>
24404         * system.h (string, algorithm): Include only conditionally.
24405         (new): Include always under C++.
24406         * bb-reorder.c (toplevel): Define INCLUDE_ALGORITHM.
24407         * final.c (toplevel): Ditto.
24408         * ipa-chkp.c (toplevel): Define INCLUDE_STRING.
24409         * genconditions.c (write_header): Make gencondmd.c define
24410         INCLUDE_STRING.
24411         * mem-stats.h (mem_usage::print_dash_line): Don't use std::string.
24413         * config/aarch64/aarch64.c (toplevel): Define INCLUDE_STRING.
24414         * common/config/aarch64/aarch64-common.c (toplevel): Ditto.
24416 2016-01-22  Christian Bruel  <christian.bruel@st.com>
24418         PR target/68674
24419         * expr.c (expand_expr_real_1): Reset DECL_MODE if VECTOR_TYPE_P changed.
24421 2016-01-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
24423         PR target/69403
24424         * config/arm/thumb2.md (*thumb2_ior_scc_strict_it): Convert to
24425         define_insn_and_split.  Ensure operands[1] and operands[0] do not
24426         get assigned the same register.
24428 2016-01-22  Kugan Vivekanandarajah  <kuganv@linaro.org>
24430         * ipa-prop.c (ipa_set_jf_constant): Remove redundant unshare_expr.
24432 2016-01-22  Christian Bruel  <christian.bruel@st.com>
24434         * config/arm/arm-c.c (arm_pragma_target_parse):
24435         Remove warn_builtin_macro_redefined overwrite.
24437 2016-01-22  Eric Botcazou  <ebotcazou@adacore.com>
24439         * ipa-inline.c (can_inline_edge_p): Back out overzealous check on
24440         flag_non_call_exceptions compatibility.
24442 2016-01-22  Jakub Jelinek  <jakub@redhat.com>
24444         PR debug/66668
24445         * dwarf2out.c (add_child_die_after): New function.
24446         (dwarf_qual_info_t): New type.
24447         (dwarf_qual_info): New variable.
24448         (qualified_die_p): New function.
24449         (modified_type_die): For -fdebug-types-section, ensure
24450         canonical order of qualifiers.  Put qualified DIEs adjacent
24451         to the corresponding non-qualified type DIE and search there
24452         for existing qualified DIEs.
24454 2016-01-22  Eric Botcazou  <ebotcazou@adacore.com>
24456         * doc/extend.texi (scalar_storage_order type attribute): Document
24457         restriction on type punning and aliasing, and remove future tense.
24459 2016-01-21  Roman Zhuykov  <zhroma@ispras.ru>
24461         PR target/69252
24462         * modulo-sched.c (optimize_sc): Allow branch-scheduling to add a new
24463         first stage.
24465 2016-01-21  Jeff Law  <law@redhat.com>
24467         PR middle-end/69347
24468         * tree-ssa-dom.c (dom_opt_dom_walker::thread_across_edge): Avoid
24469         useless call to record_temporary_equivalences.
24470         * tree-ssa-threadbackward.c (find_jump_threads_backwards): Just
24471         allocate 10 slots in the bb_path vector and let it grow as needed.
24472         (fsm_find_control_statement_thread_paths): Similarly for the next_path
24473         vector.
24475 2016-01-21  David Edelsohn  <dje.gcc@gmail.com>
24477         * configure.ac (gcc_cv_as_powerpc_mfcrf, gcc_cv_as_machine_directive):
24478         Detangle.
24479         * configure: Regenerate.
24481 2016-01-21  Pat Haugen  <pthaugen@us.ibm.com>
24483         * config/rs6000/aix71.h (ASM_CPU_SPEC): Add entry for Power9.
24484         * config/rs6000/driver-rs6000.c (struct asm_names): Likewise.
24486 2016-01-21  Bernd Schmidt  <bschmidt@redhat.com>
24488         PR middle-end/66178
24489         * expr.c (expand_expr_real_2) [PLUS_EXPR, MINUS_EXPR]: Don't
24490         drop EXPAND_INITIALIZER.
24491         * rtl.h (contains_symbolic_reference_p): Declare.
24492         * rtlanal.c (contains_symbolic_reference_p): New function.
24493         * simplify-rtx.c (simplify_binary_operation_1): Don't turn
24494         a subtraction into a NOT if symbolic constants are involved.
24496 2016-01-21  Anton Blanchard  <anton@samba.org>
24497             Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
24499         PR target/63354
24500         * config/rs6000/linux64.h (TARGET_KEEP_LEAF_WHEN_PROFILED): New
24501         #define.
24502         * config/rs6000/rs6000.c (rs6000_keep_leaf_when_profiled): New
24503         function.
24505 2016-01-21  Ajit Agarwal  <ajitkum@xilinx.com>
24507         * config/microblaze/microblaze.c
24508         (get_branch_target): New.
24509         (insert_wic_for_ilb_runout): New.
24510         (insert_wic): New.
24511         (microblaze_machine_dependent_reorg): New.
24512         (TARGET_MACHINE_DEPENDENT_REORG): Define macro.
24513         * config/microblaze/microblaze.md
24514         (UNSPEC_IPREFETCH): Define.
24515         (iprefetch): New pattern
24516         * config/microblaze/microblaze.opt
24517         (mxl-prefetch): New flag.
24519 2016-01-21  Ajit Agarwal  <ajitkum@xilinx.com>
24521         * config/microblaze/microblaze.h
24522         (FIXED_REGISTERS): Update in macro.
24523         (CALL_USED_REGISTERS): Update in macro.
24525 2016-01-21  Yuri Rumyantsev  <ysrumyan@gmail.com>
24527         PR rtl-optimization/68920
24528         * ifcvt.c (cond_move_process_if_block): Limit number of conditional
24529         moves.
24531 2016-01-21  Vladimir Makarov  <vmakarov@redhat.com>
24533         PR rtl-optimization/68990
24534         * lra-coalesce.c (lra_coalesce): Invalidate value for the result
24535         pseudo instead of inheritance ones.
24537 2016-01-21  Bernd Edlinger  <bernd.edlinger@hotmail.de>
24538             Nick Clifton  <nickc@redhat.com>
24540         PR target/69129
24541         PR target/69012
24542         * config/mips/mips.c (mips_compute_frame_info): Initialise
24543         args_size and hard_frame_pointer_offset fields of the frame
24544         structure before calling mips_global_pointer.
24546 2016-01-21  David Edelsohn  <dje.gcc@gmail.com>
24548         * configure.ac (gcc_cv_as_dwloc): Test support for debug frame section
24549         label reference.
24550         * configure: Regenerate.
24552 2016-01-21  Richard Biener  <rguenther@suse.de>
24554         * graphite-optimize-isl.c (get_schedule_map): Fix typo.
24556 2016-01-21  Marcin Kościelnicki  <koriakin@0x04.net>
24558         * config/s390/s390.c (s390_asm_declare_function_size): Add code
24559         to actually emit the .size directive.
24561 2016-01-21   Stefan Sørensen  <stefan.sorensen@spectralink.com>
24562              Jakub Jelinek  <jakub@redhat.com>
24564         PR target/69187
24565         PR target/65624
24566         * config/arm/arm-builtins.c (arm_expand_neon_builtin): Increase
24567         args array size by one to avoid buffer overflow.
24569 2016-01-21  Marcin Kościelnicki  <koriakin@0x04.net>
24571         * config/s390/s390.md (pool_section_start): Use switch_to_section
24572         to select proper read-only data section instead of hardcoding
24573         .rodata.
24574         (pool_section_end): Use switch_to_section to match the above.
24576 2016-01-21  Richard Biener  <rguenther@suse.de>
24578         PR tree-optimization/69378
24579         * tree-ssa-sccvn.c (dominated_by_p_w_unex): New function.
24580         (set_ssa_val_to): Use it for dominance checks taking into
24581         account not executable edges.
24583 2016-01-21  Jakub Jelinek  <jakub@redhat.com>
24585         PR c++/69355
24586         * tree-dfa.c (get_ref_base_and_extent): Use GET_MODE_BITSIZE (mode)
24587         for bitsize instead of GET_MODE_PRECISION (mode).
24589 2016-01-20  Martin Sebor  <msebor@redhat.com>
24591         PR c/52291
24592         * extend.texi (__sync Builtins): Clarify the semantics of
24593         __sync_fetch_and_OP built-ins on pointers.
24594         (__atomic Builtins): Same.
24596 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
24597             Sebastian Pop  <s.pop@samsung.com>
24599         * graphite-isl-ast-to-gimple.c (enum phi_node_kind): New.
24600         (class translate_isl_ast_to_gimple): Use phi_node_kind instead of bool.
24601         (is_valid_rename): Same.
24602         (translate_isl_ast_to_gimple::get_rename): Same.
24603         (translate_isl_ast_to_gimple::rename_all_uses): Same.
24604         (translate_isl_ast_to_gimple::rename_uses): Same.
24605         (get_new_name): Check for close_phi nodes.
24606         (copy_loop_phi_args): Use phi_node_kind.
24607         (translate_isl_ast_to_gimple::copy_loop_close_phi_args): Same.
24608         (translate_isl_ast_to_gimple::copy_cond_phi_args): Same.
24610 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
24611             Sebastian Pop  <s.pop@samsung.com>
24613         Revert commit r229783.
24614         * graphite-isl-ast-to-gimple.c (gcc_expression_from_isl_ast_expr_id):
24615         Remove use of parameter_rename_map.
24616         (copy_def): Remove.
24617         (copy_internal_parameters): Remove.
24618         (graphite_regenerate_ast_isl): Remove call to copy_internal_parameters.
24619         * sese.c (new_sese_info): Do not initialize parameter_rename_map.
24620         (free_sese_info): Do not free parameter_rename_map.
24621         (set_rename): Do not use parameter_rename_map.
24622         (rename_uses): Update call to set_rename.
24623         (graphite_copy_stmts_from_block): Do not use parameter_rename_map.
24624         * sese.h (parameter_rename_map_t): Remove.
24625         (struct sese_info_t): Remove field parameter_rename_map.
24627 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
24628             Sebastian Pop  <s.pop@samsung.com>
24630         * graphite-isl-ast-to-gimple.c: Fix comment.
24631         * graphite-scop-detection.c (defined_in_loop_p): New.
24632         (canonicalize_loop_closed_ssa): Do not add close phi nodes for SSA
24633         names defined in loop.
24635 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
24636             Sebastian Pop  <s.pop@samsung.com>
24638         * graphite-scop-detection.c (scop_detection::harmful_loop_in_region):
24639         Discard unstructured if-then-else regions.
24641 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
24642             Sebastian Pop  <s.pop@samsung.com>
24644         * graphite-sese-to-poly.c (set_scop_parameter_dim): Remove.
24645         (cleanup_loop_iter_dom): Remove.
24646         (build_loop_iteration_domains): Remove.
24647         (build_scop_context): Remove.
24648         (build_scop_iteration_domain): Remove.
24649         (add_loop_constraints): New.
24650         (build_iteration_domains): New.
24651         (build_poly_scop): Call build_iteration_domains.
24653 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
24654             Sebastian Pop  <s.pop@samsung.com>
24656         * graphite-scop-detection.c
24657         (scop_detection::harmful_loop_in_region): Free dom and loops.
24658         (scop_detection::loop_body_is_valid_scop): Free bbs.
24660 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
24661             Sebastian Pop  <s.pop@samsung.com>
24663         * graphite-scop-detection.c (record_loop_in_sese): New.
24664         (gather_bbs::before_dom_children): Call record_loop_in_sese.
24665         (build_scops): Remove call to build_sese_loop_nests.
24666         * sese.c (sese_record_loop): Remove.
24667         (build_sese_loop_nests): Remove.
24668         (new_sese_info): Remove region->loops.
24669         (free_sese_info): Same.
24670         * sese.h (sese_contains_loop): Same.
24671         (build_sese_loop_nests): Remove.
24672         (sese_contains_loop): Remove.
24674 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
24675             Sebastian Pop  <s.pop@samsung.com>
24677         * graphite-scop-detection.c (loop_is_valid_scop): Renamed
24678         loop_is_valid_in_scop.
24679         (scop_detection::harmful_stmt_in_region): Renamed
24680         harmful_loop_in_region.
24681         Call loop_is_valid_in_scop.
24683 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
24684             Sebastian Pop  <s.pop@samsung.com>
24686         * graphite-isl-ast-to-gimple.c (translate_isl_ast): Also handle
24687         isl_ast_node_mark.
24689 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
24690             Sebastian Pop  <s.pop@samsung.com>
24692         * graphite-poly.c (new_poly_bb): Remove use of PBB_IS_REDUCTION.
24693         * graphite.h (struct poly_bb): Remove field is_reduction.
24694         (PBB_IS_REDUCTION): Remove.
24696 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
24697             Sebastian Pop  <s.pop@samsung.com>
24699         * graphite-dependences.c (constrain_domain): Add call to isl_*_coalesce.
24700         (add_pdr_constraints): Same.
24701         (scop_get_reads): Same.
24702         (scop_get_must_writes): Same.
24703         (scop_get_may_writes): Same.
24704         (scop_get_original_schedule): Same.
24705         (extend_schedule): Same.
24706         (apply_schedule_on_deps): Same.
24707         (carries_deps): Same.
24708         (compute_deps): Same.
24709         (scop_get_dependences): Same.
24710         * graphite-isl-ast-to-gimple.c
24711         (translate_isl_ast_to_gimple::generate_isl_schedule): Same.
24712         * graphite-optimize-isl.c (get_schedule_for_band): Same.
24713         (get_schedule_for_band_list): Same.
24714         (get_schedule_map): Same.
24715         (apply_schedule_map_to_scop): Same.
24716         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
24717         (build_loop_iteration_domains): Same.
24718         (add_condition_to_pbb): Same.
24719         (add_param_constraints): Same.
24720         (pdr_add_memory_accesses): Same.
24721         (pdr_add_data_dimensions): Same.
24723 2016-01-20  Sandra Loosemore  <sandra@codesourcery.com>
24725         * doc/invoke.texi (Instrumentation Options): Clarify -mmpx linking
24726         requirements.
24728 2016-01-20  Sandra Loosemore  <sandra@codesourcery.com>
24730         * common.opt (feliminate-dwarf2-dups): Replace references to
24731         "DWARF 2" with just "DWARF".
24732         * config/ia64/ia64.opt (mdwarf2-asm): Likewise.
24733         * doc/extend.texi: Likewise.
24734         * doc/cpp.texi: Likewise.
24735         * doc/invoke.texi: Likewise.
24736         (Option Summary): Add -gdwarf to list of Debugging Options.
24737         (Debugging Options): Document -gdwarf.
24738         * doc/contrib.texi: Spell "DWARF" like that.
24740 2016-01-21  Jakub Jelinek  <jakub@redhat.com>
24742         * omp-low.c (expand_omp_target): Avoid -Wmaybe-uninitialized
24743         warning.  Fix up formatting.
24745         PR middle-end/67653
24746         * gimplify.c (gimplify_asm_expr): Warn if it is too late to
24747         attempt to mark memory input operand addressable and
24748         call prepare_gimple_addressable in that case.  Don't adjust
24749         input_location for diagnostics, use error_at instead.
24751 2016-01-20  Peter Bergner  <bergner@vnet.ibm.com>
24753         * config/rs6000/ppc-auxv.h: New file.
24754         * config/rs6000/rs6000-builtin.def (cpu_init): Add new builtin.
24755         (cpu_is): Likewise.
24756         (cpu_supports): Likewise.
24757         * config/rs6000/rs6000.c: include "ppc-auxv.h".
24758         (cpu_is_info): New variable.
24759         (cpu_supports_info): Likewise.
24760         (tcb_verification_symbol): Likewise.
24761         (cpu_builtin_p): Likewise.
24762         (cpu_expand_builtin): New function.
24763         (rs6000_expand_ternop_builtin): Add support for CPU builtin functions.
24764         (rs6000_init_builtins): Likewise.
24765         (rs6000_elf_file_end): Emit HWCAP in TCB verification symbol.
24766         * config/rs6000/rs6000.h (TLS_REGNUM): New define.
24767         * configure.ac (gcc_cv_libc_provides_hwcap_in_tcb): New test.
24768         * configure: Regenerate.
24769         * config.in: Likewise.
24770         * doc/extend.texi (PowerPC Built-in Functions): Document
24771         __builtin_cpu_init, __builtin_cpu_is and __builtin_cpu_supports.
24773 2016-01-20  David Edelsohn  <dje.gcc@gmail.com>
24775         PR target/68609
24776         * config/rs6000/rs6000.c (rs6000_emit_swsqrt): Add vector sqrt
24777         domain check.
24778         * config/rs6000/vector.md (sqrt<mode>2): Call rs6000_emit_swsqrt
24779         for V4SFmode.
24781 2016-01-20  Richard Henderson  <rth@redhat.com>
24783         PR bootstrap/69343
24784         PR bootstrap/69339
24785         PR tree-opt/68964
24786         Revert:
24787         * tree.c (tm_define_builtin): New.
24788         (find_tm_vector_type): New.
24789         (build_tm_vector_builtins): New.
24790         (build_common_builtin_nodes): Call it.
24792 2016-01-20  Christophe Lyon  <christophe.lyon@linaro.org>
24794         * doc/sourcebuild.texi (arm_crypto_pragma_ok): Document new entry.
24795         (arm_fp_ok): Likewise.
24796         (arm_fp): Likewise.
24797         (arm_crypto): Likewise.
24799 2016-01-20  Ilya Enkovich  <enkovich.gnu@gmail.com>
24800             Richard Biener  <rguenther@suse.de>
24802         PR tree-optimization/69328
24803         * tree-vect-stmts.c (vect_is_simple_cond): Check compared
24804         vectors have same number of elements.
24805         (vectorizable_condition): Fix masked version recognition.
24807 2016-01-20  Richard Biener  <rguenther@suse.de>
24809         PR tree-optimization/69345
24810         * tree-ssa-sccvn.h (VN_INFO_RANGE_INFO): New inline function.
24811         (VN_INFO_PTR_INFO): Likewise.
24812         * tree-ssa-sccvn.c (set_ssa_val_to): Avoid clearing points-to
24813         info when it is equal between non-dominating SSA names.
24814         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
24815         Make sure to look at original SSA infos.
24817 2016-01-20  Jeff Law  <law@redhat.com>
24819         PR target/25114
24820         * config/m68k/predicates.md (pow2_m1_operand): New predicate
24821         extracted from ...
24822         (reg_or_pow2_m1_operand): Call pow2_m1_operand.
24823         (pc_or_label_operand): New predicate.
24824         * config/m68k/m68k.md: Add new peephole2 patterns for GTU/LEU
24825         tests for small integers that are 2^n - 1.
24827 2016-01-20  Jonathan Wakely  <jwakely@redhat.com>
24829         * doc/invoke.texi (Options Summary): Add '.' after @xref.
24831 2016-01-19  Jeff Law  <law@redhat.com>
24833         PR middle-end/69347
24834         * tree-ssa-threadbackwards.c
24835         (fsm_find_control_statement_thread_paths): Do not try to lookup
24836         FSM paths for SSA_NAMEs appearing in abnormal PHIs.
24838 2016-01-20  Kugan Vivekanandarajah  <kuganv@linaro.org>
24840         * doc/lto.texi: Remove text that says only Gold has linker plugin
24841         support.
24843 2016-01-19  Eric Botcazou  <ebotcazou@adacore.com>
24845         * dwarf2out.c (need_endianity_attribute_p): New inline predicate.
24846         (base_type_die): Add REVERSE parameter and attach DW_AT_endianity to
24847         the DIE accordingly.
24848         (modified_type_die): Add REVERSE parameter and pass it recursively,
24849         as well as to base_type_die.  Adjust presence check accordingly.
24850         (base_type_for_mode): Adjust call to modified_type_die.
24851         (add_type_attribute): Add REVERSE parameter and pass it to
24852         modified_type_die.
24853         (generic_parameter_die): Adjust call to add_type_attribute.
24854         (add_scalar_info): Likewise.
24855         (add_subscript_info): Likewise.
24856         (gen_array_type_die): Likewise.
24857         (gen_descr_array_type_die): Likewise.
24858         (gen_entry_point_die): Likewise.
24859         (gen_enumeration_type_die): Likewise.
24860         (gen_formal_parameter_die): Likewise.
24861         (gen_subprogram_die): Likewise.
24862         (gen_variable_die ): Likewise.
24863         (gen_const_die): Likewise.
24864         (gen_field_die): Likewise.
24865         (gen_pointer_type_die): Likewise.
24866         (gen_reference_type_die): Likewise.
24867         (gen_ptr_to_mbr_type_die): Likewise.
24868         (gen_inheritance_die): Likewise.
24869         (gen_subroutine_type_die): Likewise.
24870         (gen_typedef_die): Likewise.
24871         (force_type_die): Adjust call to modified_type_die.
24873 2016-01-19  Sandra Loosemore  <sandra@codesourcery.com>
24875         * doc/standards.texi: Copy-editing for grammar, markup, and sentence
24876         flow throughout the file.  Fix broken link to Objective-C 2.0
24877         documentation.
24878         * doc/invoke.texi: More copy-editing; fix numerous typos and spelling
24879         errors.
24881 2016-01-19  Wilco Dijkstra  <wdijkstr@arm.com>
24883         * ccmp.c (expand_ccmp_expr_1): Avoid spurious unused warnings.
24885 2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
24887         PR ipa/66223
24888         * ipa-devirt.c (is_cxa_pure_virtual_p): New function.
24889         (maybe_record_node): Record cxa_pure_virtual as the only possible
24890         target if there are not ohter candidates.
24891         (possible_polymorphic_call_target_p): Accept cxa_pure_virtual.
24893 2016-01-19  Richard Biener  <rguenther@suse.de>
24895         * hsa-gen.c (get_memory_order_name): Use MEMMODEL_ constants.
24896         (get_memory_order): Likewise.
24898 2016-01-19  Kirill Yukhin  <kirill.yukhin@intel.com>
24900         * tree-vect-stmts.c (vectorizable_store): Check
24901         rhs vectype.
24903 2016-01-19  David Malcolm  <dmalcolm@redhat.com>
24905         PR jit/68446
24906         * gcc.c (driver::decode_argv): Add call to
24907         init_opts_obstack before init_options_struct.
24908         * opts.c (init_opts_obstack): Remove idempotency.
24909         (init_options_struct): Replace call to init_opts_obstack
24910         with a gcc_assert to verify that it has already been called.
24911         * toplev.c (toplev::main): Add call to init_opts_obstack before
24912         calls to init_options_struct.
24913         (toplev::finalize): Move cleanup of opts_obstack next to
24914         cleanup of save_decoded_options, clearing the latter, and
24915         save_decoded_options_count.
24917 2016-01-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
24919         PR target/69135
24920         * config/arm/vfp.md (l<vrint_pattern><su_optab><mode>si2): Set "conds"
24921         attribute to unconditional.  Remove %? from output template.
24923 2015-01-19  Wilco Dijkstra  <wdijkstr@arm.com>
24924             Jiong Wang  <jiong.wang@arm.com>
24926         * ccmp.c (expand_ccmp_expr_1): Cost the instruction sequences
24927         generated from different expand order.
24929 2015-01-19  Wilco Dijkstra  <wdijkstr@arm.com>
24931         * /config/aarch64/aarch64.c (aarch64_if_then_else_costs):
24932         Add support for CCMP costing.
24934 2015-01-19  Wilco Dijkstra  <wdijkstr@arm.com>
24936         * ccmp.c (ccmp_candidate_p): Remove integer-only restriction.
24937         * config/aarch64/aarch64.md (fccmp<mode>): New pattern.
24938         (fccmpe<mode>): Likewise.
24939         (fcmp): Rename to fcmp and globalize pattern.
24940         (fcmpe): Likewise.
24941         * config/aarch64/aarch64.c (aarch64_gen_ccmp_first): Add FP support.
24942         (aarch64_gen_ccmp_next): Add FP support.
24944 2015-01-19  Wilco Dijkstra  <wdijkstr@arm.com>
24946         * target.def (gen_ccmp_first): Update documentation.
24947         (gen_ccmp_next): Likewise.
24948         * doc/tm.texi (gen_ccmp_first): Update documentation.
24949         (gen_ccmp_next): Likewise.
24950         * ccmp.c (expand_ccmp_expr): Extract cmp_code from return value of
24951         expand_ccmp_expr_1.  Improve comments.
24952         * config/aarch64/aarch64.md (ccmp_and): Use if_then_else for ccmp.
24953         (ccmp_ior<mode>): Remove pattern.
24954         (cmp<mode>): Remove expand.
24955         (cmp): Globalize pattern.
24956         (cstorecc4): Use cc_register.
24957         (mov<mode>cc): Remove ccmp_cc_register check.
24958         * config/aarch64/aarch64.c (aarch64_get_condition_code_1):
24959         Simplify after removal of CC_DNE/* modes.
24960         (aarch64_ccmp_mode_to_code): Remove.
24961         (aarch64_print_operand): Remove 'K' case.  Merge 'm' and 'M' cases.
24962         In 'k' case use integer as condition.
24963         (aarch64_nzcv_codes): Remove inverted cases.
24964         (aarch64_code_to_ccmode): Remove.
24965         (aarch64_gen_ccmp_first): Use cmp pattern directly.  Return the correct
24966         comparison with CC register to be used in folowing CCMP/branch/CSEL.
24967         (aarch64_gen_ccmp_next): Use previous comparison and mode in CCMP
24968         pattern.  Return the comparison with CC register.  Invert conditions
24969         when bitcode is OR.
24970         * config/aarch64/aarch64-modes.def: Remove CC_DNE/* modes.
24971         * config/aarch64/predicates.md (ccmp_cc_register): Remove.
24973 2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
24975         * cgraphunit.c (cgraph_node::reset): Clear thunk info and
24976         instrumented_version.
24978 2016-01-19  Richard Biener  <rguenther@suse.de>
24980         PR tree-optimization/69336
24981         * tree-ssa-scopedtables.c (avail_expr_hash): Handle all
24982         handled components with get_ref_base_and_extent.
24983         (equal_mem_array_ref_p): Adjust.
24985 2016-01-19  Jakub Jelinek  <jakub@redhat.com>
24987         PR debug/65779
24988         * shrink-wrap.c: Include valtrack.h.
24989         (move_insn_for_shrink_wrap): Add DEBUG argument.  If
24990         MAY_HAVE_DEBUG_INSNS, call dead_debug_add on DEBUG_INSNs
24991         in between insn and where it will be moved to.  Call
24992         dead_debug_insert_temp.
24993         (prepare_shrink_wrap): Adjust caller.  Call dead_debug_local_init
24994         first and dead_debug_local_finish at the end.
24995         For uses and defs bitmap, handle all regs in between REGNO and
24996         END_REGNO, not just the first one.
24998 2016-01-19  Richard Biener  <rguenther@suse.de>
25000         PR tree-optimization/69352
25001         * tree-ssa-scopedtables.c (avail_expr_hash): Check for size == -1.
25002         (equal_mem_array_ref_p): Constrain size and max size properly.
25003         Compare the reverse flag.
25005 2016-01-19  Bernd Schmidt  <bschmidt@redhat.com>
25007         * ira.c (ira): Update regstat data if we deleted insns.
25009 2016-01-19  Jakub Jelinek  <jakub@redhat.com>
25011         PR rtl-optimization/68955
25012         PR rtl-optimization/64557
25013         * dse.c (record_store, check_mem_read_rtx): Don't call get_addr
25014         here.  Fix up formatting.
25015         * alias.c (get_addr): Handle VALUE +/- CONST_SCALAR_INT_P.
25017 2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
25019         PR lto/69133
25020         * cgraphunit.c (cgraph_node::expand_thunk): When forcing gimple
25021         assume that the node has body.
25022         * cgraph.c (cgraph_node::get_untransformed_body): Use gimple_body_p
25023         check.
25025 2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
25027         * lto-streamer-out.c (lto_output): Do not stream instrumentation
25028         thunks.
25030 2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
25032         * symtab.c (symtab_node::asm_name): Do not call printable name directly.
25033         (symtab_node::name): Report name as unnamed if DECL_NAME is not set.
25035 2016-01-19  Martin Jambor  <mjambor@suse.cz>
25036             Martin Liska  <mliska@suse.cz>
25037             Michael Matz  <matz@suse.de>
25039         * Makefile.in (OBJS): Add new source files.
25040         (GTFILES): Add hsa.c.
25041         * common.opt (disable_hsa): New variable.
25042         (-Whsa): New warning.
25043         * config.in (ENABLE_HSA): New.
25044         * configure.ac: Treat hsa differently from other accelerators.
25045         (OFFLOAD_TARGETS): Define ENABLE_OFFLOADING according to
25046         $enable_offloading.
25047         (ENABLE_HSA): Define ENABLE_HSA according to $enable_hsa.
25048         * doc/install.texi (Configuration): Document --with-hsa-runtime,
25049         --with-hsa-runtime-include, --with-hsa-runtime-lib and
25050         --with-hsa-kmt-lib.
25051         * doc/invoke.texi (-Whsa): Document.
25052         (hsa-gen-debug-stores): Likewise.
25053         * lto-wrapper.c (compile_images_for_offload_targets): Do not attempt
25054         to invoke offload compiler for hsa acclerator.
25055         * opts.c (common_handle_option): Determine whether HSA offloading
25056         should be performed.
25057         * params.def (PARAM_HSA_GEN_DEBUG_STORES): New parameter.
25058         * builtin-types.def (BT_FN_VOID_UINT_PTR_INT_PTR): New.
25059         (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_INT_INT): Removed.
25060         (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_PTR): New.
25061         * gimple-low.c (lower_stmt): Also handle GIMPLE_OMP_GRID_BODY.
25062         * gimple-pretty-print.c (dump_gimple_omp_for): Also handle
25063         GF_OMP_FOR_KIND_GRID_LOOP.
25064         (dump_gimple_omp_block): Also handle GIMPLE_OMP_GRID_BODY.
25065         (pp_gimple_stmt_1): Likewise.
25066         * gimple-walk.c (walk_gimple_stmt): Likewise.
25067         * gimple.c (gimple_build_omp_grid_body): New function.
25068         (gimple_copy): Also handle GIMPLE_OMP_GRID_BODY.
25069         * gimple.def (GIMPLE_OMP_GRID_BODY): New.
25070         * gimple.h (enum gf_mask): Added GF_OMP_PARALLEL_GRID_PHONY,
25071         GF_OMP_FOR_KIND_GRID_LOOP, GF_OMP_FOR_GRID_PHONY and
25072         GF_OMP_TEAMS_GRID_PHONY.
25073         (gimple_statement_omp_single_layout): Updated comments.
25074         (gimple_build_omp_grid_body): New function.
25075         (gimple_has_substatements): Also handle GIMPLE_OMP_GRID_BODY.
25076         (gimple_omp_for_grid_phony): New function.
25077         (gimple_omp_for_set_grid_phony): Likewise.
25078         (gimple_omp_parallel_grid_phony): Likewise.
25079         (gimple_omp_parallel_set_grid_phony): Likewise.
25080         (gimple_omp_teams_grid_phony): Likewise.
25081         (gimple_omp_teams_set_grid_phony): Likewise.
25082         (gimple_return_set_retbnd): Also handle GIMPLE_OMP_GRID_BODY.
25083         * omp-builtins.def (BUILT_IN_GOMP_OFFLOAD_REGISTER): New.
25084         (BUILT_IN_GOMP_OFFLOAD_UNREGISTER): Likewise.
25085         (BUILT_IN_GOMP_TARGET): Updated type.
25086         * omp-low.c: Include symbol-summary.h, hsa.h and params.h.
25087         (adjust_for_condition): New function.
25088         (get_omp_for_step_from_incr): Likewise.
25089         (extract_omp_for_data): Moved parts to adjust_for_condition and
25090         get_omp_for_step_from_incr.
25091         (build_outer_var_ref): Handle GIMPLE_OMP_GRID_BODY.
25092         (fixup_child_record_type): Bail out if receiver_decl is NULL.
25093         (scan_sharing_clauses): Handle OMP_CLAUSE__GRIDDIM_.
25094         (scan_omp_parallel): Do not create child functions for phony
25095         constructs.
25096         (check_omp_nesting_restrictions): Handle GIMPLE_OMP_GRID_BODY.
25097         (scan_omp_1_op): Checking assert we are not remapping to
25098         ERROR_MARK.  Also also handle GIMPLE_OMP_GRID_BODY.
25099         (parallel_needs_hsa_kernel_p): New function.
25100         (expand_parallel_call): Register apprpriate parallel child
25101         functions as HSA kernels.
25102         (grid_launch_attributes_trees): New type.
25103         (grid_attr_trees): New variable.
25104         (grid_create_kernel_launch_attr_types): New function.
25105         (grid_insert_store_range_dim): Likewise.
25106         (grid_get_kernel_launch_attributes): Likewise.
25107         (get_target_argument_identifier_1): Likewise.
25108         (get_target_argument_identifier): Likewise.
25109         (get_target_argument_value): Likewise.
25110         (push_target_argument_according_to_value): Likewise.
25111         (get_target_arguments): Likewise.
25112         (expand_omp_target): Call get_target_arguments instead of looking
25113         up for teams and thread limit.
25114         (grid_expand_omp_for_loop): New function.
25115         (grid_arg_decl_map): New type.
25116         (grid_remap_kernel_arg_accesses): New function.
25117         (grid_expand_target_kernel_body): New function.
25118         (expand_omp): Call it.
25119         (lower_omp_for): Do not emit phony constructs.
25120         (lower_omp_taskreg): Do not emit phony constructs but create for them
25121         a temporary variable receiver_decl.
25122         (lower_omp_taskreg): Do not emit phony constructs.
25123         (lower_omp_teams): Likewise.
25124         (lower_omp_grid_body): New function.
25125         (lower_omp_1): Call it.
25126         (grid_reg_assignment_to_local_var_p): New function.
25127         (grid_seq_only_contains_local_assignments): Likewise.
25128         (grid_find_single_omp_among_assignments_1): Likewise.
25129         (grid_find_single_omp_among_assignments): Likewise.
25130         (grid_find_ungridifiable_statement): Likewise.
25131         (grid_target_follows_gridifiable_pattern): Likewise.
25132         (grid_remap_prebody_decls): Likewise.
25133         (grid_copy_leading_local_assignments): Likewise.
25134         (grid_process_kernel_body_copy): Likewise.
25135         (grid_attempt_target_gridification): Likewise.
25136         (grid_gridify_all_targets_stmt): Likewise.
25137         (grid_gridify_all_targets): Likewise.
25138         (execute_lower_omp): Call grid_gridify_all_targets.
25139         (make_gimple_omp_edges): Handle GIMPLE_OMP_GRID_BODY.
25140         * tree-core.h (omp_clause_code): Added OMP_CLAUSE__GRIDDIM_.
25141         (tree_omp_clause): Added union field dimension.
25142         * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE__GRIDDIM_.
25143         * tree.c (omp_clause_num_ops): Added number of arguments of
25144         OMP_CLAUSE__GRIDDIM_.
25145         (omp_clause_code_name): Added name of OMP_CLAUSE__GRIDDIM_.
25146         (walk_tree_1): Handle OMP_CLAUSE__GRIDDIM_.
25147         * tree.h (OMP_CLAUSE_GRIDDIM_DIMENSION): New.
25148         (OMP_CLAUSE_SET_GRIDDIM_DIMENSION): Likewise.
25149         (OMP_CLAUSE_GRIDDIM_SIZE): Likewise.
25150         (OMP_CLAUSE_GRIDDIM_GROUP): Likewise.
25151         * passes.def: Schedule pass_ipa_hsa and pass_gen_hsail.
25152         * tree-pass.h (make_pass_gen_hsail): Declare.
25153         (make_pass_ipa_hsa): Likewise.
25154         * ipa-hsa.c: New file.
25155         * lto-section-in.c (lto_section_name): Add hsa section name.
25156         * lto-streamer.h (lto_section_type): Add hsa section.
25157         * timevar.def (TV_IPA_HSA): New.
25158         * hsa-brig-format.h: New file.
25159         * hsa-brig.c: New file.
25160         * hsa-dump.c: Likewise.
25161         * hsa-gen.c: Likewise.
25162         * hsa.c: Likewise.
25163         * hsa.h: Likewise.
25164         * toplev.c (compile_file): Call hsa_output_brig.
25165         * hsa-regalloc.c: New file.
25167 2016-01-18  Jeff Law  <law@redhat.com>
25169         PR tree-optimization/69320
25170         * tree-ssa-dom.c (record_edge_info): For comparisons against a boolean
25171         ranged object, do nothing if the RHS constant is not [0..1].
25172         (optimize_stmt): Comparing a boolean ranged object against a
25173         constant outside [0..1] results in a compile-time constant.
25175         * tree-ssanames.c (ssa_name_has_boolean_range): Remove unnecessary
25176         test.
25178 2016-01-18  Sandra Loosemore  <sandra@codesourcery.com>
25180         * doc/invoke.texi (Invoking GCC): Add new section to menu.
25181         (Option Summary): Update to reflect new section and moved options.
25182         (C++ Dialect Options): Move -fstats to new section.
25183         (Debugging Options): Move all dump, statistics, and other GCC
25184         developer options to new section.  Rewrite section introduction
25185         and re-order remaining options to put the more basic ones first.
25186         (Optimization Options): Move -fira-verbose and -flto-report* to
25187         new section.
25188         (Developer Options): New section incorporating moved options.
25189         * doc/cppopts.texi (-dM): Update cross-reference.
25191 2016-01-18  Richard Henderson  <rth@redhat.com>
25193         PR target/69176
25194         * config/aarch64/aarch64.md (add<GPI>3): Move long immediate
25195         operands to pseudo only if CSE is expected.  Split long immediate
25196         operands only after reload, and for the stack pointer.
25197         (*add<GPI>3_pluslong): Remove.
25198         (*addsi3_aarch64, *adddi3_aarch64): Merge into...
25199         (*add<GPI>3_aarch64): ... here.  Add r/rk/Upl alternative.
25200         (*addsi3_aarch64_uxtw): Add r/rk/Upl alternative.
25201         (*add<GPI>3 peepholes): New.
25202         (*add<GPI>3 splitters): New.
25203         * config/aarch64/constraints.md (Upl): New.
25204         * config/aarch64/predicates.md (aarch64_pluslong_strict_immedate): New.
25206 2016-01-18  Richard Biener  <rguenther@suse.de>
25208         PR tree-optimization/69297
25209         * tree-vect-slp.c (vect_bb_slp_scalar_cost): Count each scalar
25210         stmt at most once.
25211         (vect_bb_vectorization_profitable_p): Clear visited flag again.
25213 2016-01-18  Yuri Rumyantsev  <ysrumyan@gmail.com>
25215         PR middle-end/68542
25216         * fold-const.c (fold_binary_op_with_conditional_arg): Bail out for case
25217         of mixind vector and scalar types.
25218         (fold_relational_const): Add handling of vector
25219         comparison with boolean result.
25220         * tree-cfg.c (verify_gimple_comparison): Add argument CODE, allow
25221         comparison of vector operands with boolean result for EQ/NE only.
25222         (verify_gimple_assign_binary): Adjust call for verify_gimple_comparison.
25223         (verify_gimple_cond): Likewise.
25224         * tree-vrp.c (extract_code_and_val_from_cond_with_ops): Modify check on
25225         valid type of VAL.
25227 2016-01-18  Joseph Myers  <joseph@codesourcery.com>
25229         * config/mips/mips.h (ISA_HAS_PAIRED_SINGLE): Require
25230         !TARGET_OCTEON.
25232 2016-01-18  Richard Biener  <rguenther@suse.de>
25234         PR middle-end/69308
25235         * gimple.c (gimple_could_trap_p_1): Handle GIMPLE_COND.
25237 2016-01-18  Tom de Vries  <tom@codesourcery.com>
25239         * passes.def: Add pass_parallelize_loops to pass_oacc_kernels.
25241 2016-01-18  Tom de Vries  <tom@codesourcery.com>
25243         * omp-low.c (set_oacc_fn_attrib): Make extern.
25244         * omp-low.h (set_oacc_fn_attrib): Declare.
25245         * tree-parloops.c (struct reduction_info): Add reduc_addr field.
25246         (create_call_for_reduction_1): Handle case that reduc_addr is non-NULL.
25247         (create_parallel_loop, gen_parallel_loop, try_create_reduction_list):
25248         Add and handle function parameter oacc_kernels_p.
25249         (find_reduc_addr, get_omp_data_i_param): New function.
25250         (ref_conflicts_with_region, oacc_entry_exit_ok_1)
25251         (oacc_entry_exit_single_gang, oacc_entry_exit_ok): New function.
25252         (parallelize_loops): Add and handle function parameter oacc_kernels_p.
25253         Calculate dominance info.  Skip loops that are not in a kernels region
25254         in oacc_kernels_p mode.  Skip inner loops of parallelized loops.
25255         (pass_parallelize_loops::execute): Call parallelize_loops with
25256         oacc_kernels_p argument.
25257         (pass_parallelize_loops::clone, pass_parallelize_loops::set_pass_param):
25258         New member function.
25259         (pass_parallelize_loops::bool oacc_kernels_p): New member var.
25260         * passes.def: Add argument to pass_parallelize_loops instantation.
25262 2016-01-18  Tom de Vries  <tom@codesourcery.com>
25264         * tree-parloops.c (pass_parallelize_loops::execute): Allow
25265         pass_parallelize_loops to be run outside the loop pipeline.
25267 2016-01-18  Alan Lawrence  <alan.lawrence@arm.com>
25269         * tree-scalar-evolution.c (follow_copies_to_constant): New.
25270         (analyze_initial_condition, analyze_scalar_evolution_1): Call previous.
25272 2016-01-18  Alan Lawrence  <alan.lawrence@arm.com>
25274         PR target/63679
25275         * tree-ssa-scopedtables.c (avail_expr_hash): Hash MEM_REF and ARRAY_REF
25276         using get_ref_base_and_extent.
25277         (equal_mem_array_ref_p): New.
25278         (hashable_expr_equal_p): Add call to previous.
25280 2016-01-18  Alan Lawrence  <alan.lawrence@arm.com>
25282         PR target/63679
25283         * tree-sra.c (disqualified_constants, constant_decl_p): New.
25284         (sra_initialize): Allocate disqualified_constants.
25285         (sra_deinitialize): Free disqualified_constants.
25286         (disqualify_candidate): Update disqualified_constants when appropriate.
25287         (create_access): Scan for constant-pool entries as we go along.
25288         (scalarizable_type_p): Add check against type_contains_placeholder_p.
25289         (maybe_add_sra_candidate): Allow constant-pool entries.
25290         (load_assign_lhs_subreplacements): Bind debug for constant pool vars.
25291         (initialize_constant_pool_replacements): New.
25292         (sra_modify_assign): Avoid mangling assignments created by previous,
25293         and don't generate writes into constant pool.
25294         (sra_modify_function_body): Call initialize_constant_pool_replacements.
25296 2016-01-18  Ilya Enkovich  <enkovich.gnu@gmail.com>
25298         * config/i386/i386.c (scalar_to_vector_candidate_p): Support
25299         andnot instruction.
25300         (scalar_chain::convert_op): Likewise.
25301         * config/i386/i386.md (*andndi3_doubleword): New.
25303 2016-01-18  Richard Biener  <rguenther@suse.de>
25305         PR tree-optimization/69170
25306         * tree-vect-slp.c (vect_build_slp_tree): Verify we are not
25307         building a vector from scalar results of a pattern stmt.
25309 2016-01-18  Jakub Jelinek  <jakub@redhat.com>
25311         * haifa-sched.c (autopref_multipass_init): Work around
25312         -Wmaybe-uninitialized warning.
25314 2016-01-18  Thomas Preud'homme  <thomas.preudhomme@arm.com>
25316         * config/arm/arm.c (thumb1_reorg): Check that the comparison is
25317         against the constant 0.
25319 2016-01-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
25321         PR tree-optimization/68799
25322         * gimple-ssa-strength-reduction.c (create_phi_basis): Directly
25323         look up phi candidates in the statement-candidate map.
25324         (phi_add_costs): Likewise.
25325         (record_phi_increments): Likewise.
25326         (phi_incr_cost): Likewise.
25327         (ncd_with_phi): Likewise.
25328         (all_phi_incrs_profitable): Likewise.
25330 2016-01-17  Jakub Jelinek  <jakub@redhat.com>
25332         * omp-low.c (mark_loops_in_oacc_kernels_region): Work around
25333         -Wmaybe-uninitialized warning.
25335 2016-01-16  Sandra Loosemore  <sandra@codesourcery.com>
25337         * doc/invoke.texi (Invoking GCC): Add new section to menu.
25338         (Option Summary): Update to reflect new section and moved options.
25339         (C++ Dialect Options): Move -fvtable-verify and related options.
25340         (Debugging Options): Move Sanitizer, Pointer Bounds Checker,
25341         and profiling-related options.
25342         (Optimization Options): Move profile generation options and
25343         -fstack-protector and related options.
25344         (Instrumentation Options): New section incorporating moved options.
25345         (Code Generation Options): Move -finstrument-functions and
25346         related options, -fstack-check, -fstack-limit*, and -fbounds-check.
25348 2016-01-16  Tom de Vries  <tom@codesourcery.com>
25350         * passes.def: Move pass_expand_omp_ssa out of pass_parallelize_loops.
25352 2016-01-16  Tom de Vries  <tom@codesourcery.com>
25354         * omp-low.c (expand_omp_atomic_fetch_op):  Release defs of update stmt.
25356 2016-01-16  Richard Sandiford  <richard.sandiford@arm.com>
25358         * hash-table.h (hash_table::empty): Turn into an inline wrapper
25359         that checks whether the table is already empty.  Rename the
25360         original implementation to...
25361         (hash_table::empty_slot): ...this new private function.
25363 2016-01-15  David Malcolm  <dmalcolm@redhat.com>
25365         PR diagnostic/68899
25366         * diagnostic-show-locus.c (layout::print_source_line): Move x
25367         offset of line until after call to
25368         get_line_width_without_trailing_whitespace.
25370 2016-01-15  Jeff Law  <law@redhat.com>
25372         PR tree-optimization/69270
25373         * tree-ssanames.c (ssa_name_has_boolean_range): Moved here from
25374         tree-ssa-dom.c.  Improve test for [0..1] ranve from VRP.
25375         * tree-ssa-dom.c (ssa_name_has_boolean_range): Remove.
25376         * tree-ssanames.h (ssa_name_has_boolean_range): Prototype.
25377         * tree-ssa-uncprop.c (associate_equivalences_with_edges): Use
25378         ssa_name_has_boolean_range and constant_boolean_node.
25380 2016-01-15  Vladimir Makarov  <vmakarov@redhat.com>
25382         PR rtl-optimization/69030
25383         * lra-spills.c (remove_pseudos): Check nrefs and make the function
25384         returning bool.
25385         (spill_pseudos): Delete debug insn for dead pseudo.
25386         (lra_spill): Initiate spill_hard_reg and slots memory separately.
25388 2016-01-15  Jiong Wang  <jiong.wang@arm.com>
25390         * config/aarch64/aarch64-builtins.c (aarch64_types_unopus_qualifiers):
25391         New.
25392         (TYPES_UNOPUS): Likewise.
25393         * config/aarch64/aarch64-simd-builtins.def (lbtruncuv2sf): Correct
25394         builtin type, from UNOP to UNOPUS.
25395         (lbtruncuv4sf): Likewise.
25396         (lbtruncuv2df): Likewise.
25397         (lrounduv2sf): Likewise.
25398         (lrounduv4sf): Likewise.
25399         (lrounduv2df): Likewise.
25400         (lroundusf): Likewise.
25401         (lroundusf): Likewise.
25402         (lceiluv2sf): Likewise.
25403         (lceiluv4sf): Likewise.
25404         (lceiluv2df): Likewise.
25405         (lceilusf): Likewise.
25406         (lceiludf): Likewise.
25407         (lflooruv2sf): Likewise.
25408         (lflooruv4sf): Likewise.
25409         (lflooruv2df): Likewise.
25410         (lfloorusf): Likewise.
25411         (lfloorudf): Likewise.
25412         (lfrintnuv2sf): Likewise.
25413         (lfrintnuv4sf): Likewise.
25414         (lfrintnuv2df): Likewise.
25415         (lfrintnusf): Likewise.
25416         (lfrintnudf): Likewise.
25417         * config/aarch64/arm_neon.h (vcvt_u32_f32): Remove unncessary type
25418         conversion.
25419         (vcvtq_u32_f32): Likewise.
25420         (vcvtq_u64_f64): Likewise.
25421         (vcvta_u32_f32): Likewise.
25422         (vcvtaq_u32_f32): Likewise.
25423         (vcvtaq_u64_f64): Likewise.
25424         (vcvtm_u32_f32): Likewise.
25425         (vcvtmq_u32_f32): Likewise.
25426         (vcvtmq_u64_f64): Likewise.
25427         (vcvtn_u32_f32): Likwise.
25428         (vcvtnq_u32_f32): Likewise.
25429         (vcvtnq_u64_f64): Likewise.
25430         (vcvtp_u32_f32): Likewise.
25431         (vcvtpq_u32_f32): Likewise.
25432         (vcvtpq_u64_f64): Likewise.
25433         (vcvtmd_u64_f64): Likewise.
25434         (vcvtms_u32_f32): Likewise.
25435         (vcvtad_u64_f64): Likewise.
25436         (vcvtas_u32_f32): Likewise.
25437         (vcvtnd_u64_f64): Likewise.
25438         (vcvtns_u32_f32): Likewise.
25439         (vcvtpd_u64_f64): Likewise.
25440         (vcvtps_u32_f32): Likewise.
25442 2016-01-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
25444         * config/aarch64/aarch64.c (aarch64_if_then_else_costs): Handle
25445         CSEL of zero_extended registers.
25447 2016-01-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
25449         * config/aarch64/aarch64.c (aarch64_rtx_costs, COMPARE case):
25450         Handle COMPARE of ZERO_EXTRACT against zero form of TST-immediate.
25452 2016-01-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
25454         * config/aarch64/aarch64.c (aarch64_process_one_target_attr): Return
25455         false when argument string is not found in the attributes table
25456         at all.
25458 2016-01-15  David Edelsohn  <dje.gcc@gmail.com>
25460         PR target/68609
25461         * config/rs6000/rs6000.c (rs6000_emit_msub): Delete.
25462         (rs6000_emit_swsqrt): Convert to Goldschmidt's Algorithm
25463         * config/rs6000/rs6000.md (sqrt<mode>2): Limit swsqrt to high
25464         precision estimate.
25466 2016-01-15  Richard Biener  <rguenther@suse.de>
25468         PR tree-optimization/66856
25469         * tree-vect-loop.c (vect_transform_loop): Free SLP instances here.
25470         * tree-vect-slp.c (vect_free_slp_tree): Decrement stmt reference count.
25471         (vect_create_new_slp_node): Increment stmt reference count.
25472         (vect_get_and_check_slp_defs): Make sure stmts are nor already in
25473         an SLP tree before swapping operands.
25474         (vect_build_slp_tree): Likewise.
25475         (destroy_bb_vec_info): Free stmt info after SLP instances.
25476         * tree-vect-stmts.c (new_stmt_vec_info): Initialize reference count.
25477         * tree-vectorizer.h (struct _stmt_vec_info): Add num_slp_uses field.
25478         (STMT_VINFO_NUM_SLP_USES): New macro.
25480 2016-01-15  Richard Biener  <rguenther@suse.de>
25482         PR debug/69137
25483         * dwarf2out.c (add_linkage_name_raw): New function split out from ...
25484         (add_linkage_name): ... here.
25485         (gen_typedef_die): Use add_linkage_name_raw instead of
25486         add_linkage_attr to delay DECL_ASSEMBLER_NAME computation
25487         if necessary.
25489 2016-01-15  Cesar Philippidis  <cesar@codesourcery.com>
25491         * gimplify.c (oacc_default_clause): Decode reference and pointer
25492         types for both kernels and parallel regions.
25494 2016-01-15  Richard Sandiford  <richard.sandiford@arm.com>
25496         PR middle-end/69246
25497         * calls.c (emit_call_1): Force n_popped to zero for sibcalls.
25499 2016-01-15  Ilya Enkovich  <enkovich.gnu@gmail.com>
25501         * config/i386/i386.c (scalar_chain::compute_convert_gain): Fix typo.
25502         (convert_scalars_to_vector): Likewise.
25504 2016-01-15  Jonathan Wakely  <jwakely@redhat.com>
25506         * doc/extend.texi (Type Traits): Fix grammar.
25508 2016-01-15  Martin Jambor  <mjambor@suse.cz>
25510         * tree-inline.c (remap_decl): Use existing dclarations if
25511         remapping a type and prevent_decl_creation_for_types.
25512         (replace_locals_stmt): Do an initial remapping of non-VLA typed
25513         decls first.  Do real remapping with
25514         prevent_decl_creation_for_types set.
25515         * tree-inline.h (copy_body_data): New field
25516         prevent_decl_creation_for_types, moved remap_var_for_cilk to avoid
25517         padding.
25519 2016-01-15  Dominik Vogt  <vogt@linux.vnet.ibm.com>
25521         * config/s390/s390.opt (mmvcle): More verbose help text.
25523 2016-01-15  Dominik Vogt  <vogt@linux.vnet.ibm.com>
25525         * config/s390/s390.opt: Add period to -mzvector option text.
25527 2016-01-15  Richard Biener  <rguenther@suse.de>
25529         PR tree-optimization/68961
25530         * tree-vect-slp.c (vect_analyze_slp_cost_1): Consider cost
25531         of invariants in stores again.
25533 2016-01-15  Sebastian Huber  <sebastian.huber@embedded-brains.de>
25535         * config/arm/t-rtems: Add cortex-m7/fpv5-d16 multilib.
25537 2016-01-15  Ilya Enkovich  <enkovich.gnu@gmail.com>
25539         * config/i386/i386.c (ix86_expand_branch): Don't split
25540         DI mode xor instruction to SI mode.
25542 2016-01-15  Jan Hubicka  <hubicka@ucw.cz>
25544         PR ipa/68148
25545         * ipa-icf.c (sem_function::merge): Virtual functions may become
25546         reachable even if they address is not taken and there are no
25547         idrect calls.
25549 2016-01-15  Jan Hubicka  <hubicka@ucw.cz>
25551         * lto-streamer-out.c (subtract_estimated_size): New function.
25552         (get_symbol_initial_value): Use it.
25554 2016-01-15  Christian Bruel  <christian.bruel@st.com>
25556         PR target/65837
25557         * config/arm/arm-builtins.c (ARM_BUILTIN_CRYPTO_BASE): New enum tag.
25558         (arm_init_neon_builtins_internal): Rename arm_init_neon_builtins,
25559         (arm_init_crypto_builtins_internal): Rename arm_init_crypto_builtins.
25560         use add_builtin_function_ext_scope instead of add_builtin_function.
25561         (neon_set_p, neon_crypto_set_p): Remove.
25562         (arm_init_builtins): Always call arm_init_neon_builtins and
25563         arm_init_crypto_builtins.
25564         (arm_expand_builtin): Check that builtins are allowed for the arch.
25565         * config/arm/arm-protos.h (arm_init_neon_builtins): Remove prototype.
25566         * config/arm/arm.c (arm_valid_target_attribute_tree): Remove
25567         arm_init_neon_builtins call.
25569 2016-01-15  Richard Biener  <rguenther@suse.de>
25571         PR tree-optimization/69117
25572         * tree-ssa-sccvn.h (struct vn_ssa_aux): Add info member.
25573         * tree-ssa-sccvn.c (set_ssa_val_to): Save and adjust SSA name info
25574         of the leader conservatively.
25575         (free_scc_vn): Restore original SSA name infos.
25577 2016-01-14  Jeff Law  <law@redhat.com>
25579         PR tree-optimization/69270
25580         * tree-ssa-dom.c (ssa_name_has_boolean_range): If the type has a
25581         single bit of precision, verify it's also unsigned.
25582         (record_edge_info): Use constant_boolean_node rather than fold_convert
25583         to convert boolean_true/boolean_false to the right type.
25585 2016-01-14  Richard Henderson  <rth@redhat.com>
25587         PR rtl-opt/69014
25588         * loop-doloop.c (record_reg_sets): New.
25589         (doloop_optimize): Reject the transform if the sequence
25590         clobbers registers live at the end of the loop block.
25591         (doloop_optimize_loops): Enable df_live if needed.
25593 2016-01-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
25595         * config/rs6000/rs6000-builtin.def: Revert 2016-01-13 change.
25596         * config/rs6000/rs6000.c: Likewise.
25597         * config/rs6000/rs6000.h: Likewise.
25598         * config/rs6000/rs6000.md: Likewise.
25599         * doc/extend.texi: Likewsie.
25601 2016-01-14  Jeff Law  <law@redhat.com>
25603         * tree-ssa-dom.c (ssa_name_has_boolean_range): Fix comment
25604         typo.
25606 2016-01-14  Richard Henderson  <rth@redhat.com>
25608         PR c/69272
25609         PR tree-opt/68964
25610         * trans-mem.c (tm_log_emit_stmt): Fix unit size to bit size.
25611         * tree.c (build_tm_vector_builtins): Use builtin_decl_explicit_p
25612         instead of builtin_decl_declared_p to test for declaration.
25614 2016-01-14  Nicklas Bo Jensen  <nbjensen@gmail.com>
25616         * doc/loop.texi (Loop Analysis and Representation): Document
25617         loop_depth function.
25619 2016-01-14  Tom de Vries  <tom@codesourcery.com>
25621         PR tree-optimization/68773
25622         * omp-low.c (expand_omp_target): Don't set force_output.
25623         * varpool.c (varpool_node::get_create): Same.
25624         * lto-cgraph.c (input_offload_tables): Mark entries in offload_vars and
25625         offload_funcs with force_output.
25627 2016-01-14  Jakub Jelinek  <jakub@redhat.com>
25629         PR debug/69244
25630         * lra-eliminations.c (move_plus_up): Don't change anything if either
25631         the outer or inner subreg mode is not MODE_INT.
25632         * dwarf2out.c (mem_loc_descriptor): For SUBREG, if outer mode is
25633         integral <= DWARF2_ADDR_SIZE, convert to untyped afterwards.
25635 2016-01-14  Alan Lawrence  <alan.lawrence@arm.com>
25637         * doc/md.texi (reduc_smin_@var{m}, reduc_smax_@var{m},
25638         reduc_umin_@var{m}, reduc_umax_@var{m}, reduc_splus_@var{m},
25639         reduc_uplus_@var{m}): Remove.
25640         * expr.c (expand_expr_real_2): Remove expansion path for
25641         reduc_[us](min|max|plus) optabs.
25642         * optabs-tree.c (scalar_reduc_to_vector): Remove.
25643         * optabs-tree.h (scalar_reduc_to_vector): Remove.
25644         * optabs.def (reduc_smax_optab, reduc_smin_optab, reduc_splus_optab,
25645         reduc_umax_optab, reduc_umin_optab, reduc_uplus_optab): Remove.
25646         * tree-vect-loop.c (vectorizable_reduction): Remove test for
25647         reduc_[us](min|max|plus) optabs.
25649 2016-01-14  Alan Lawrence  <alan.lawrence@arm.com>
25651         * config/mips/mips-ps-3d.md (reduc_splus_v2sf): Remove.
25652         (reduc_plus_scal_v2sf): New.
25653         (reduc_smax_v2sf): Rename to...
25654         (reduc_smax_scal_v2sf): ...here, make result SFmode, add vec_extract.
25655         (reduc_smin_v2sf): Rename to...
25656         (reduc_smin_scal_v2sf): ...here, make result SFmode, add vec_extract.
25658 2016-01-14  Jan Hubicka  <hubicka@ucw.cz>
25660         * alias.c (compare_base_symbol_refs): New function.
25661         (rtx_equal_for_memref_p, base_alias_check, memrefs_conflict_p): Use
25662         it.
25664 2016-01-14  Jakub Jelinek  <jakub@redhat.com>
25666         PR middle-end/68146
25667         PR tree-optimization/69155
25668         * tree-complex.c: Include cfganal.h.
25669         (phis_to_revisit): New variable.
25670         (extract_component): Add phiarg_p argument.  Assert that returned
25671         SSA_NAME has non-NULL SSA_NAME_DEF_STMT unless phiarg_p is true.
25672         (update_phi_components): Partly rewrite to use loop over real/imag
25673         components instead of code duplication.  If extract_component returns
25674         SSA_NAME with NULL SSA_NAME_DEF_STMT, store SSA_NAME_VAR or
25675         create_tmp_reg into the PHI node instead, and mention the phi triplet
25676         in phis_to_revisit.
25677         (tree_lower_complex): Walk bbs in rpo order.  Adjust phis recorded
25678         in phis_to_revisit at the end.
25680 2016-01-14  Richard Biener  <rguenther@suse.de>
25682         PR tree-optimization/68060
25683         * tree-vect-loop.c (vect_is_simple_reduction): Check the
25684         outer loop reduction is only used in the inner loop before
25685         detecting a double reduction.
25687 2016-01-14  Jakub Jelinek  <jakub@redhat.com>
25689         PR target/68269
25690         * combine.c (expand_field_assignment): Punt if compute_mode is
25691         unsupported scalar mode.
25693 2016-01-14  Richard Biener  <rguenther@suse.de>
25695         PR tree-optimization/66856
25696         * tree-vect-slp.c (vect_build_slp_tree): Refactor to build
25697         SLP node only if it built successfully.
25698         (vect_analyze_slp_instance): Adjust.
25700 2016-01-14  Jeff Law  <law@redhat.com>
25702         PR tree-optimization/69270
25703         * tree-ssa-dom.c (ssa_name_has_boolean_range): New function.
25704         (record_edge_info): Use it.  Convert boolean_{true,false}_node
25705         to the type of op0.
25707 2016-01-13  Jan Hubicka  <hubicka@ucw.cz>
25709         PR ipa/66487
25710         * ipa-polymorphic-call.c (inlined_polymorphic_ctor_dtor_block_p):
25711         use block_ultimate_origin
25712         (noncall-stmt_may_be_vtbl_ptr_store): Likewise.
25714 2016-01-13  Sandra Loosemore  <sandra@codesourcery.com>
25716         * doc/invoke.texi (Submodel Options): Rename section to
25717         "Machine-Dependent Options" to better reflect its content.
25718         Rewrite introductory text to remove archaic CPU names.
25719         Update references.
25721 2016-01-13  Sandra Loosemore  <sandra@codesourcery.com>
25723         * doc/invoke.texi (Code Gen Options): Move section up in file,
25724         before target-specific options.  Update menu and option summary
25725         to reflect the new section ordering.
25727 2016-01-13  Jonathan Wakely  <jwakely@redhat.com>
25729         * doc/invoke.texi (C Dialect Options): Adjust -std default for C++.
25730         (C++ Dialect Options): Add cross-reference to -std option.
25731         * doc/standards.texi (C++ Language): Document C++14 support.
25733 2016-01-13  Michael Meissner  <meissner@linux.vnet.ibm.com>
25735         * config/rs6000/rs6000-builtin.def (BU_FLOAT128_2): Add support
25736         for pack/unpack functions for __ibm128.
25737         (PACK_IF): Likewise.
25738         (UNPACK_IF): Likewise.
25740         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
25741         support for __ibm128 pack/unpack functions.
25742         (rs6000_invalid_builtin): Likewise.
25743         (rs6000_init_builtins): Likewise.
25744         (rs6000_opt_masks): Likewise.
25746         * config/rs6000/rs6000.h (MASK_FLOAT128): Add short name.
25747         (RS6000_BTM_FLOAT128): Add support for __ibm128 pack/unpack
25748         functions
25749         (RS6000_BTM_COMMON): Likewise.
25751         * config/rs6000/rs6000.md (f128_vsx): New mode attribute.
25752         (unpack<mode>): Use FMOVE128_FPR iterator instead of FMOVE128, to
25753         disallow __builtin_{pack,unpack}_longdouble if long double is IEEE
25754         128-bit floating point.  Add support for the double values to be
25755         in Altivec registers for TF/IF packing and unpacking, but restrict
25756         TD packing sub-fields to be FPR registers.  Don't allow overlapped
25757         register support for packing.  Allow pack inputs to be memory
25758         locations.  Don't build generator functions for unpack<mode>_dm
25759         and unpack<mode>_nodm.
25760         (unpack<mode>_dm): Likewise.
25761         (unpack<mode>_nodm): Likewise.
25762         (pack<mode>): Likewise.
25764         * config/rs6000/rs6000-builtin.def (__builtin_pack_ibm128): Add
25765         built-in functions to pack/unpack explicit __ibm128 values.
25766         (__builtin_unpack_ibm128): Likewise.
25768         * doc/extend.texi (PowerPC Built-in Functions): Document
25769         __builtin_pack_ibm128 and __builtin_unpack_ibm128.
25771 2016-01-13  Bernd Schmidt  <bschmidt@redhat.com>
25773         PR c/66208
25774         * c-common.c (check_function_nonnull): Remove unnecessary declaration.
25775         Add new arg loc and pass it down as context.
25776         (check_nonnull_arg): Don't mark ctx arg as unused. Use it as a pointer
25777         to the location to use for the warning.
25778         (check_function_arguments): New arg loc.  All callers changed.  Pass
25779         it to check_function_nonnull.
25780         * c-common.h (check_function_arguments): Adjust declaration.
25782 2016-01-13  Jakub Jelinek  <jakub@redhat.com>
25784         PR tree-optimization/69156
25785         * gimple.c (validate_type): Removed.
25786         (gimple_builtin_call_types_compatible_p): Use
25787         useless_type_conversion_p instead of validate_type.
25788         * value-prof.c (gimple_stringop_fixed_value): Fold
25789         icall_size to correct type.
25791 2016-01-13  Jonathan Wakely  <jwakely@redhat.com>
25793         * doc/extend.texi (__atomic Builtins): Clarify compare_exchange
25794         effects.
25796 2016-01-13  Richard Henderson  <rth@redhat.com>
25798         PR tree-opt/68964
25799         * target.def (builtin_tm_load, builtin_tm_store): Remove.
25800         * config/i386/i386.c (ix86_builtin_tm_load): Remove.
25801         (ix86_builtin_tm_store): Remove.
25802         (TARGET_VECTORIZE_BUILTIN_TM_LOAD): Remove.
25803         (TARGET_VECTORIZE_BUILTIN_TM_STORE): Remove.
25804         * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_TM_LOAD): Remove.
25805         (TARGET_VECTORIZE_BUILTIN_TM_STORE): Remove.
25806         * doc/tm.texi: Rebuild.
25808         * gtm-builtins.def (BUILT_IN_TM_MEMCPY_RNWT): New.
25809         (BUILT_IN_TM_MEMCPY_RTWN): New.
25810         * trans-mem.c (tm_log_emit_stmt): Rearrange code for better
25811         fallback from vector to integer helpers.
25812         (build_tm_load): Handle vector types directly, instead of
25813         via target hook.
25814         (build_tm_store): Likewise.
25815         (expand_assign_tm): Prepare for register types not handled by
25816         the above.  Copy them to memory and use memcpy.
25817         * tree.c (tm_define_builtin): New.
25818         (find_tm_vector_type): New.
25819         (build_tm_vector_builtins): New.
25820         (build_common_builtin_nodes): Call it.
25822 2016-01-13  Uros Bizjak  <ubizjak@gmail.com>
25824         * config/i386/i386.h (TARGET_FLT_EVAL_METHOD): Return -1 for
25825         TARGET_SSE_MATH without TARGET_SSE2.  Rewrite.
25827 2016-01-13  Tom de Vries  <tom@codesourcery.com>
25829         PR tree-optimization/69169
25830         * tree-ssa-structalias.c (create_variable_info_for_1): Add and handle
25831         handled_struct_type param.
25832         (create_variable_info_for, intra_create_variable_infos): Call
25833         create_variable_info_for_1 with extra arg.
25835 2016-01-13  Yvan Roux  <yvan.roux@linaro.org>
25837         * config/arm/arm-arches.def: Remove spurious whitespace in "armv8.1-a"
25838         and "armv8.1-a+crc" entries.
25840 2016-01-13  Alexander Fomin  <alexander.fomin@intel.com>
25842         PR target/69228
25843         * config/i386/sse.md (define_expand "avx512pf_gatherpf<mode>sf"):
25844         Change first operand predicate from register_or_constm1_operand
25845         to register_operand.
25846         (define_expand "avx512pf_gatherpf<mode>df"): Likewise.
25847         (define_expand "avx512pf_scatterpf<mode>sf"): Likewise.
25848         (define_expand "avx512pf_scatterpf<mode>df"): Likewise.
25849         (define_insn "*avx512pf_gatherpf<mode>sf"): Remove.
25850         (define_insn "*avx512pf_gatherpf<mode>df"): Likewise.
25851         (define_insn "*avx512pf_scatterpf<mode>sf"): Likewise.
25852         (define_insn "*avx512pf_scatterpf<mode>df"): Likewise.
25853         * config/i386/i386.c (ix86_expand_builtin): Remove first operand
25854         comparison with constm1_rtx from vec_prefetch_gen part.
25856 2016-01-13  Richard Biener  <rguenther@suse.de>
25858         PR tree-optimization/69013
25859         * tree-ssa-uninit.c (prune_uninit_phi_opnds_in_unrealizable_paths):
25860         Exchange assert for a test.
25862 2016-01-13  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
25864         PR target/69247
25865         * config/s390/s390.md (bswaphi splitter): Use simplify_gen_subreg.
25867 2016-01-13  Richard Biener  <rguenther@suse.de>
25869         PR tree-optimization/69242
25870         * tree-ssa-sccvn.c (visit_reference_op_load): Replace bogus
25871         assert with a check.
25873 2016-01-13  Richard Biener  <rguenther@suse.de>
25875         PR tree-optimization/69186
25876         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
25877         Properly guard vect_update_misalignment_for_peel call.
25879 2016-01-12  Jeff Law  <law@redhat.com>
25881         PR tree-optimization/pr67755
25882         * tree-ssa-threadupdate.c (struct ssa_local_info_t): Add new field
25883         "need_profile_correction".
25884         (thread_block_1): Initialize new field to false by default.  If we
25885         have multiple thread paths through a common joiner to different
25886         final targets, then set new field to true.
25887         (compute_path_counts): Only do count adjustment when it's really
25888         needed.
25890 2016-01-12  Sandra Loosemore  <sandra@codesourcery.com>
25892         * doc/invoke.texi (Spec Files): Move section down in file, past
25893         all command-line option descriptions.
25895 2016-01-12  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
25897         PR middle-end/54809
25898         * doc/gty.texi: Remove documentation of mark_hook.
25899         * gengtype.c (struct write_types_data): Remove code to support
25900         mark_hook attribute.
25901         (walk_type): Likewise.
25902         (write_func_for_structure): Likewise.
25904 2016-01-12  Sandra Loosemore  <sandra@codesourcery.com>
25906         * doc/invoke.texi (Option Summary) Move -no-canonical-prefixes to
25907         Directory Options, and -specs= to Overall Options.
25908         (Overall Options): Adjust similarly.  Reorder to group related
25909         options together.  Make -specs= cross-reference the spec file details.
25910         (Directory Options): Adjust similarly.
25912 2016-01-12  Jeff Law  <law@redhat.com>
25914         * tree-ssa-threadupdate.c: Various whitespace and typo fixes.
25916 2016-01-12  Olivier Hainque  <hainque@adacore.com>
25918         * gcc.c (spec_undefvar_allowed): New global.
25919         (process_command): Set to true when running for --version or --help,
25920         alone or together.
25921         (getenv_spec_function): When the variable is not defined, use the
25922         variable name as the variable value if we're allowed not to issue
25923         a fatal error.
25925 2016-01-12  Bin Cheng  <bin.cheng@arm.com>
25927         PR tree-optimization/68911
25928         * tree-vrp.c (adjust_range_with_scev): Check overflow in range
25929         information computed for expression "init + nit * step".
25931 2016-01-12  Sandra Loosemore  <sandra@codesourcery.com>
25933         * doc/invoke.texi (Invoking GCC): Copy-edit.  Incorporate information
25934         about name of GCC executable.  Remove deleted node from menu.
25935         (Directory Options) <-B>: Remove cross-reference to deleted node.
25936         (Target Options): Delete section.
25938 2016-01-12  Christian Bruel  <christian.bruel@st.com>
25940         PR target/69180
25941         * config/arm/arm-c.c (arm_pragma_target_parse): Set NODE_CONDITIONAL
25942         for __ARM_NEON_FP, __ARM_FP, _ARM_FEATURE_LDREX.
25944 2016-01-12  Jakub Jelinek  <jakub@redhat.com>
25946         PR target/69198
25947         * config/i386/i386.c (ix86_expand_special_args_builtin): Ensure
25948         aligned_mem is properly set for AVX512-VL floating point masked
25949         stores.
25951         PR target/69175
25952         * ifcvt.c (cond_exec_process_if_block): When removing the last
25953         insn from then_bb, remove also any possible barriers that follow it.
25955 2016-01-12  H.J. Lu  <hongjiu.lu@intel.com>
25957         PR target/68456
25958         PR target/69226
25959         * config/i386/iamcu.h (SIZE_TYPE): New macro.
25960         (PTRDIFF_TYPE): Likewise.
25961         (WCHAR_TYPE): Likewise.
25962         (WCHAR_TYPE_SIZE): Likewise.
25963         (STDINT_LONG32): Likewise.
25965 2016-01-12  Richard Biener  <rguenther@suse.de>
25967         PR tree-optimization/69053
25968         * tree-vect-loop.c (get_initial_def_for_reduction): Properly
25969         convert initial value for cond reductions.
25971 2016-01-12  Richard Biener  <rguenther@suse.de>
25973         PR tree-optimization/69007
25974         * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Move
25975         widen_sum after dot_prod and sad.
25977 2016-01-12  Richard Biener  <rguenther@suse.de>
25979         PR tree-optimization/69168
25980         * tree-vect-loop.c (vect_analyze_loop_2): Reset both main and
25981         pattern stmt SLP type.
25982         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Patterns may
25983         end up unused so cope with that case.
25985 2016-01-12  Richard Biener  <rguenther@suse.de>
25987         PR tree-optimization/69157
25988         * tree-vect-stmts.c (vectorizable_mask_load_store): Check
25989         stmts def type only during analyze phase.
25990         (vectorizable_call): Likewise.
25991         (vectorizable_simd_clone_call): Likewise.
25992         (vectorizable_conversion): Likewise.
25993         (vectorizable_assignment): Likewise.
25994         (vectorizable_shift): Likewise.
25995         (vectorizable_operation): Likewise.
25996         (vectorizable_store): Likewise.
25997         (vectorizable_load): Likewise.
25999 2016-01-12  Richard Biener  <rguenther@suse.de>
26001         PR tree-optimization/69174
26002         * tree-vect-stmts.c (vect_mark_relevant): Remove excessive vertical
26003         space.
26004         (vectorizable_load): Properly compute the number of loads needed
26005         for permuted strided SLP loads and do not spuriously assign
26006         to SLP_TREE_VEC_STMTS.
26008 2016-01-12  Andris Pavenis  <andris.pavenis@iki.fi>
26010         * config/i386/djgpp.h (PREFERRED_DEBUGGING_TYPE): Define to DWARF2
26011         (TARGET_ASM_OUTPUT_IDENT): Define to default_asm_output_ident_directive
26012         (MD_EXEC_PREFIX): Remove.
26013         (MD_STARTFILE_PREFIX) Removee.
26014         (FILE_NAME_ABSOLUTE_P): Remove.
26015         (CPP_SPEC): Do not read macros from sys/version.h.
26016         (LINK_COMMAND_SPEC): Remove.
26017         (LOCAL_INCLUDE_DIR): Remove.
26018         (TARGET_ASM_NAMED_SECTION): Define to i386_djgpp_asm_named_section
26019         (TARGET_OS_CPP_BUILTINS): Add DJGPP (non ISO only), __DJGPP, __DJGPP__, unix.
26020         (POST_LINK_SPEC): Define to invoke stubify after linker
26021         (LIBSTDCXX): Remove define
26022         (DBX_REGISTER_NUMBER): Define to svr4_dbx_register_map.
26023         (DEFAULT_PCC_STRUCT_RETURN): Define to 1.
26024         (SUBTARGET_OVERRIDE_OPTIONS): Remove warning about -mbnu2210.
26025         (SUBTARGET_OVERRIDE_OPTIONS): Ignore -fPIC and generate message.
26026         (SUBTARGET_OVERRIDE_OPTIONS): Default to DWARF2 debugging info.
26027         (IX86_MAYBE_NO_LIBGCC_TFMODE): Remove.
26028         (i386_djgpp_asm_named_section): Add propotype of new procedure
26030         * config/i386/xm-djgpp.h (NATIVE_SYSTEM_HEADER_DIR): Define.
26031         (MD_EXEC_PREFIX): Define (moved from config/i386/djgpp.h).
26032         (STANDARD_STARTFILE_PREFIX_1): Define (moved from MD_STARTFILE_PREFIX
26033         in config/i386/djgpp.h).
26034         (STANDARD_STARTFILE_PREFIX_2): Define identical to
26035         STANDARD_STARTFILE_PREFIX_1.
26036         (LOCAL_INCLUDE_DIR): Define (moved from config/i386/djgpp.h).
26037         (GCC_DRIVER_HOST_INITIALIZATION): Fix reporting fatal
26038         installation errors.
26039         (MAX_OFILE_ALIGNMENT): Define to 128.
26040         (HAVE_FTW_H): Undefine as DJGPP do not have nftw, but have ftw.h.
26042         * config/i386/djgpp.c: New file. Add implementation of
26043         i386_djgpp_asm_named_section.
26045         * config/i386/djgpp.opt: Remove obsolete option -mbnu210.
26047         * config/i386/t-djgpp: New file. Add djgpp.o to EXTRA_OBJS.
26048         Add rule for building djgpp.o.
26050 2016-01-11  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
26052         * config/rs6000/rs6000.c (v2df_reduction_p): New function.
26053         (rtx_is_swappable_p): Reductions are swappable.
26054         (insn_is_swappable_p): V2DF reductions are swappable.
26056 2016-01-11  John David Anglin  <danglin@gcc.gnu.org>
26058         * config/pa/pa.c (pa_emit_move_sequence): Handle floating point
26059         reloads for other unsupported memory operands.
26061 2016-01-12  Kugan Vivekanandarajah  <kuganv@linaro.org>
26062             Jim Wilson  <jim.wilson@linaro.org>
26064         PR target/69194
26065         * config/arm/arm-builtins.c (arm_expand_neon_args): Call
26066         copy_to_mode_reg instead of force_reg.
26068 2016-01-11  H.J. Lu  <hongjiu.lu@intel.com>
26070         PR target/69225
26071         * config/i386/i386.h (TARGET_FLT_EVAL_METHOD): Set to 2 only if
26072         TARGET_80387 is true.
26074 2016-01-11  Jakub Jelinek  <jakub@redhat.com>
26076         PR target/69071
26077         * lra-eliminations.c (move_plus_up): Only move plus up
26078         if subreg of the constant can be simplified into constant
26079         and use the simplified subreg of the constant instead of
26080         the original constant.
26082         * fold-const.c (fold_convertible_p): Don't return true
26083         for conversion of VECTOR_TYPE to same sized integral type.
26084         (fold_convert_loc): Fix up formatting.  Fold conversion of
26085         VECTOR_TYPE to same sized integral type using VIEW_CONVERT_EXPR
26086         instead of NOP_EXPR.
26088         PR tree-optimization/69214
26089         * tree-vrp.c (simplify_cond_using_ranges): Don't propagate
26090         innerop into a comparison if SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
26091         Formatting fix.
26093         PR tree-optimization/69207
26094         * tree-vect-slp.c (vect_get_constant_vectors): For
26095         VECTOR_BOOLEAN_TYPE_P, assert op has integral type instead of
26096         fold_convertible_p to vector_type's element type, and always
26097         use VCE for non-VECTOR_BOOLEAN_TYPE_P.
26099 2016-01-11  Richard Biener  <rguenther@suse.de>
26101         PR tree-optimization/69173
26102         * tree-vect-loop.c (vect_fixup_scalar_cycles_with_patterns): Only
26103         fixup the cycle if all stmts are in a pattern.
26105 2016-01-11  Uros Bizjak  <ubizjak@gmail.com>
26107         PR middle-end/68999
26108         * alias.c (base_alias_check): Move check for addresses with
26109         alignment ANDs before the call for compare_base_decls.
26110         (memrefs_conflict_p): Return -1 for different decls
26111         that went through alignment adjustments.
26113 2016-01-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
26115         PR rtl-optimization/68796
26116         * config/aarch64/aarch64.md (*and<mode>_compare0): New pattern.
26117         * config/aarch64/aarch64.c (aarch64_select_cc_mode): Handle HImode
26118         and QImode comparisons against zero with CC_NZmode.
26119         * config/aarch64/iterators.md (short_mask): New mode_attr.
26121 2016-01-11  H.J. Lu  <hongjiu.lu@intel.com>
26123         * config/i386/sse.md (<avx512>_load<mode>_mask): Remove snprintf.
26124         (<avx512>_store<mode>_mask): Likewise.
26126 2016-01-11  Bernd Schmidt  <bschmidt@redhat.com>
26127             Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
26129         PR rtl-optimization/68841
26130         * ifcvt.c (struct noce_if_info): Add orig_x field.
26131         (bbs_ok_for_cmove_arith): Add to_rename parameter.
26132         Don't record conflicts on to_rename if it's present.
26133         Allow memory destinations in sets.
26134         (noce_try_cmove_arith): Call bbs_ok_for_cmove_arith even on simple
26135         blocks, passing orig_x to the checks.
26136         (noce_process_if_block): Set if_info->orig_x appropriately.
26138 2016-01-11  Tom de Vries  <tom@codesourcery.com>
26140         PR tree-optimization/69069
26141         * tree-parloops.c (create_parallel_loop): Add missing phi args.
26143 2016-01-11  Yuri Rumyantsev  <ysrumyan@gmail.com>
26145         PR rtl-optimization/68920
26146         * config/i386/i386.c (ix86_option_override_internal): Restrict number
26147         of conditional moves for  RTL if-conversion to 1 for
26148         TARGET_ONE_IF_CONV_INSN.
26149         * config/i386/i386.h (TARGET_ONE_IF_CONV_INSN): New macros.
26150         * config/i386/x86-tune.def (X86_TUNE_ONE_IF_CONV_INSN): New macros.
26151         * params.def (PARAM_MAX_RTL_IF_CONVERSION_INSNS) : Introduce new
26152         parameter to restirct number of conditional moves for
26153         RTL if-conversion.
26154         * doc/invoke.texi (max-rtl-if-conversion-insns): Document it.
26155         * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Limit number of
26156         conditionl moves.
26158 2016-01-11  Alexandre Oliva  <aoliva@redhat.com>
26160         PR bootstrap/69123
26161         * var-tracking.c (drop_overlapping_mem_locs): Operate on all
26162         onepart vars.  Fix typo in comment.  Fix reversed condition in
26163         unshare test.
26164         (dataflow_set_remove_mem_locs): Operate on all onepart vars.
26166         PR bootstrap/69123
26167         * var-tracking.c (dump_onepart_variable_differences): New.
26168         (dataflow_set_different): If a detailed dump is requested,
26169         delay early returns and dump differences between onepart
26170         variables present before and after, and added variables.
26172 2016-01-11  Ilya Enkovich  <enkovich.gnu@gmail.com>
26174         PR target/69010
26175         * expr.c (expand_expr_real_1): For boolean vector constants
26176         with a scalar mode use const_scalar_mask_from_tree.
26177         (const_scalar_mask_from_tree): New.
26178         * optabs.c (expand_vec_cond_mask_expr): Use mask mode
26179         assigned to a mask type to handle constants.
26181 2016-01-11  Martin Jambor  <mjambor@suse.cz>
26183         PR ipa/69044
26184         * ipa-cp.c (estimate_local_effects): Do not clone for removal of
26185         useless parameters if we cannot change function signature.
26187 2016-01-11  Martin Jambor  <mjambor@suse.cz>
26189         PR ipa/66616
26190         * cgraphclones.c (duplicate_thunk_for_node): Copy can_change_signature
26191         flag.
26193 2016-01-11  Tom de Vries  <tom@codesourcery.com>
26195         PR tree-optimization/69109
26196         * tree-parloops.c (try_transform_to_exit_first_loop_alt): Don't allow
26197         latch with phi.
26199 2016-01-11  Tom de Vries  <tom@codesourcery.com>
26201         PR tree-optimization/69108
26202         * tree-parloops.c (gather_scalar_reductions): Handle case that outer phi
26203         res is not used in a phi.
26205 2016-01-11  Yury Gribov  <y.gribov@samsung.com>
26207         PR 67425
26208         * common.opt (frandom-seed): Fix parameter name.
26209         * doc/invoke.texi (frandom-seed): Ditto and describe parameter.
26211 2016-01-11  Tom de Vries  <tom@codesourcery.com>
26213         PR tree-optimization/69058
26214         * tree-parloops.c (pass_parallelize_loops::execute): Return 0 if libgomp
26215         not supported.
26217 2016-01-11  Andrew Burgess  <andrew.burgess@embecosm.com>
26219         * config/arc/arc.opt (mdiv-rem): Add period to the end.
26220         (mcode-density): Likewise.
26222 2016-01-10  Tom de Vries  <tom@codesourcery.com>
26224         PR tree-optimization/69062
26225         * tree-parloops.c (loop_has_phi_with_address_arg): New function.
26226         (parallelize_loops): Don't paralelize loop that has phi with address
26227         arg.
26229 2016-01-10  Tom de Vries  <tom@codesourcery.com>
26231         PR tree-optimization/69039
26232         * tree-parloops.c (try_create_reduction_list): Only allow single exit
26233         phi for reduction.
26235 2016-01-09  John David Anglin  <danglin@gcc.gnu.org>
26237         PR middle-end/68743
26238         * match.pd: Require target has function_c99_misc before doing
26239         truncl(extend(x)) and trunc(extend(x)) -> extend(truncf(x)), etc.
26241 2016-01-09  Gerald Pfeifer  <gerald@pfeifer.com>
26243         * configure.ac (isl_options_set_schedule_serialize_sccs): Also
26244         use GMPINC.
26245         * configure: Regenerate.
26247 2016-01-09  Jakub Jelinek  <jakub@redhat.com>
26249         PR middle-end/50865
26250         PR tree-optimization/69097
26251         * fold-const.h (expr_not_equal_to): New prototype.
26252         * fold-const.c: Include stringpool.h and tree-ssanames.h.
26253         (expr_not_equal_to): New function.
26254         * match.pd (X % -Y is the same as X % Y): Don't optimize
26255         unless X is known not to be equal to minimum or Y is known
26256         not to be equal to -1.
26257         * tree-vrp.c (simplify_div_or_mod_using_ranges): Add GSI argument.
26258         fold TRUNC_MOD_EXPR if the second argument is not a power of two.
26259         (simplify_stmt_using_ranges): Adjust caller.
26260         (vrp_finalize): Call set_value_range on SSA_NAMEs before calling
26261         substitute_and_fold.
26263 2016-01-09  Jan Hubicka  <hubicka@ucw.cz>
26265         * ipa-icf.c (sem_item_optimizer::merge_classes): Do not ICE on VAR_DECL
26266         w/o DECL_NAME.
26268 2016-01-08  Jakub Jelinek  <jakub@redhat.com>
26270         PR tree-optimization/69167
26271         * gimple-fold.c (replace_stmt_with_simplification): Also punt if
26272         new SSA_NAME_OCCURS_IN_ABNORMAL_PHI SSA_NAMEs appear in operands of
26273         ops[0] comparison.
26274         * gimple-match-head.c (maybe_push_res_to_seq): Likewise.
26276 2016-01-08  Alan Lawrence  <alan.lawrence@arm.com>
26277             Richard Biener  <rguenther@suse.de>
26279         PR tree-optimization/68707
26280         * tree-vect-slp.c (vect_analyze_slp_instance): Cancel permuted SLP
26281         instances that can be handled via vect_load_lanes.
26283 2016-01-08  Uros Bizjak  <ubizjak@gmail.com>
26285         * symtab.c (symtab_node::equal_address_to): Return -1 instead of 2
26286         if we can't determine address equivalence.
26287         * alias.c (compare_base_decl): Update for changed return value of
26288         symtab_node::equal_address_to.
26290 2016-01-08  Jason Merrill  <jason@redhat.com>
26292         PR c++/68983
26293         PR c++/67557
26294         * function.c (assign_temp): Guard against TREE_ADDRESSABLE types here.
26295         * expr.c (store_field): Not here.
26296         * tree-cfgcleanup.c (fixup_noreturn_call): Don't clear LHS of a
26297         call with TREE_ADDRESSABLE type.
26298         * tree-cfg.c (verify_gimple_call): Adjust.
26300 2016-01-08  Olivier Hainque  <hainque@adacore.com>
26302         * config/vxworks.h (VXWORKS_LIBGCC_SPEC): Don't link shared RTPs with
26303         libc_internal.
26305 2016-01-08  Alan Lawrence  <alan.lawrence@arm.com>
26307         * gcc.target/rs6000/paired.md (reduc_smax_v2sf): Rename to...
26308         (reduc_smax_scal_v2sf): ...here, make result SFmode, extract element.
26309         (reduc_smin_v2sf): Rename to...
26310         (reduc_smin_scal_v2sf): ...here, make result SFmode, extract element.
26311         (reduc_splus_v2sf): Rename to...
26312         (reduc_plus_scal_v2sf): ...here, make result SFmode, extract element.
26314 2016-01-08  Jakub Jelinek  <jakub@redhat.com>
26316         PR tree-optimization/69162
26317         * gimplify.c (gimplify_va_arg_expr): Encode original type of
26318         valist argument in another argument.
26319         (gimplify_modify_expr): Adjust for the above change.  Cleanup.
26320         * tree-stdarg.c (expand_ifn_va_arg_1): Use new 3rd argument
26321         to determine the va_list type, build a MEM_REF instead of
26322         build_fold_indirect_ref.
26324         PR tree-optimization/69172
26325         * gimple-fold.c (gimple_fold_builtin_memory_chk): Pass type to
26326         gimple_build.
26328 2016-01-08  Thomas Preud'homme  <thomas.preudhomme@arm.com>
26330         PR tree-optimization/67781
26331         * tree-ssa-math-opts.c (find_bswap_or_nop): Zero out bytes in cmpxchg
26332         and cmpnop in two steps: first the ones not accessed in original
26333         gimple expression in a endian independent way and then the ones not
26334         accessed in the final result in an endian-specific way.
26336 2016-01-08  Jakub Jelinek  <jakub@redhat.com>
26338         PR tree-optimization/69083
26339         * tree-vect-slp.c (vect_get_constant_vectors): For
26340         VECTOR_BOOLEAN_TYPE_P assert op is fold_convertible_p to vector_type's
26341         element type.  If op is fold_convertible_p to vector_type's element
26342         type, use NOP_EXPR instead of VCE.
26344 2016-01-08  Segher Boessenkool  <segher@kernel.crashing.org>
26346         PR rtl-optimization/67778
26347         PR rtl-optimization/68634
26348         PR rtl-optimization/68909
26349         * shrink-wrap.c (try_shrink_wrapping): Add comment.  Don't pop
26350         block from the stack until done with it.  Remove a superfluous
26351         bitmap set.  Remove a superfluous bitmap test.
26353 2016-01-07  Martin Sebor  <msebor@redhat.com>
26355         PR c/68966
26356         * doc/extend.texi (__atomic Builtins, __sync Builtins): Document
26357         constraint on the type of arguments.
26359 2016-01-07  Andreas Tobler  <andreast@gcc.gnu.org>
26361         * config/arm/freebsd.h: Rename SUBTARGET_OVERRIDE_OPTIONS to
26362         SUBTARGET_OVERRIDE_INTERNAL_OPTIONS. Adjust to check
26363         unaligned_access on the gcc_options set.
26364         * config/arm/arm.c (arm_option_override_internal): Use
26365         SUBTARGET_OVERRIDE_INTERNAL_OPTIONS.
26367 2016-01-07  Uros Bizjak  <ubizjak@gmail.com>
26369         PR target/69140
26370         * config/i386/i386.c (ix86_frame_pointer_required): Enable
26371         frame pointer for TARGET_64BIT_MS_ABI when stack is misaligned.
26373 2016-01-07  Uros Bizjak  <ubizjak@gmail.com>
26375         Revert
26376         2016-01-06  Uros Bizjak  <ubizjak@gmail.com>
26378         PR target/69140
26379         * config/i386/i386.c (ix86_expand_prologue): Declare fs.sp_valid
26380         depending on frame_pointer_needed before remaining integer and SSE
26381         registers are saved.
26383 2016-01-07  Sandra Loosemore  <sandra@codesourcery.com>
26385         PR 1078
26386         * doc/extend.texi (Nvidia PDX Function Attributes): New section.
26388 2016-01-07  H.J. Lu  <hongjiu.lu@intel.com>
26390         PR target/69171
26391         * config/i386/sse.md (<sse>_sqrt<mode>2<mask_name><round_name>):
26392         Use the "xBm" constraint.
26393         (float<sseintvecmodelower><mode>2<mask_name><round_name):
26394         Likewise.
26395         (sse_cvtsi2ss<round_name>): Use round_nimm_scalar_predicate.
26396         (sse_cvtsi2ssq<round_name>): Likewise.
26397         (sse_cvtss2si<round_name>): Likewise.
26398         (sse_cvtss2siq<round_name>): Likewise.
26399         (sse2_cvtsi2sdq<round_name>): Likewise.
26400         (sse2_cvtsd2si<round_name>): Likewise.
26401         (sse2_cvtsd2siq<round_name>): Likewise.
26402         * config/i386/subst.md (round_nimm_scalar_predicate): New
26403         predicate.
26405 2015-12-15  Bernd Schmidt  <bschmidt@redhat.com>
26407         PR middle-end/67639
26408         * varasm.c (make_decl_rtl): Mark invalid register vars as
26409         DECL_EXTERNAL.
26411         PR rtl-optimization/66206
26412         * bt-load.c (find_btr_use): Change first arg to be a pointer to an rtx.
26413         All callers changed.
26415 2016-01-07  Jakub Jelinek  <jakub@redhat.com>
26417         PR tree-optimization/69141
26418         * tree-ssa-pre.c: Include langhooks.h.
26419         (eliminate_dom_walker::before_dom_children): Use
26420         lang_hooks.decl_printable_name instead of
26421         cgraph_node::get ()->name ().
26423         PR middle-end/68960
26424         * gimple-expr.c (copy_var_decl): If var has DECL_USER_ALIGN set, copy
26425         it and DECL_ALIGN too.
26427 2016-01-06  Robert Suchanek  <robert.suchanek@imgtec.com>
26429         * config/mips/mips-ftypes.def: Sort to lexicographical order.
26431 2016-01-06  Uros Bizjak  <ubizjak@gmail.com>
26433         PR target/69140
26434         * config/i386/i386.c (ix86_expand_prologue): Declare fs.sp_valid
26435         depending on frame_pointer_needed before remaining integer and SSE
26436         registers are saved.
26438 2015-01-06  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
26440         * config/rs6000/vsx.md (*p9_vecload_<mode>): Replace VSX_M
26441         mode iterator with VSX_M2.
26442         (*p9_vecstore_<mode>): Likewise.
26443         (*vsx_le_permute_<mode>): Restrict to !TARGET_P9_VECTOR.
26444         (*vsx_le_perm_load_<mode> for VSX_LE_128): Likewise.
26445         (*vsx_le_perm_store_<mode> for VSX_LE_128): Likewise.
26446         (define_split for VSX_LE128 stores): Likewise.
26447         (define_peephole2 for TImode LE swaps): Likewise.
26448         (define_split for VSX_LE128 post-reload stores): Likewise.
26450 2016-01-06  Marek Polacek  <polacek@redhat.com>
26452         PR sanitizer/69099
26453         * convert.c (convert_to_integer_1): Adjust call to
26454         ubsan_instrument_float_cast.  Use NULL_TREE instead of NULL.
26455         * ubsan.c (ubsan_instrument_float_cast): Drop the ARG parameter.  Use
26456         EXPR instead of ARG.
26457         * ubsan.h (ubsan_instrument_float_cast): Adjust declaration.
26459 2016-01-05  Sandra Loosemore  <sandra@codesourcery.com>
26461         PR 1078
26462         * doc/extend.texi (RL78 Variable Attributes): New section.
26464 2016-01-05  Marek Polacek  <polacek@redhat.com>
26466         PR c/69104
26467         * builtins.c (get_memmodel): Use expansion point location rather than
26468         the input location.  Call warning_at rather than warning.
26469         (expand_builtin_atomic_compare_exchange): Likewise.
26470         (expand_builtin_atomic_load): Likewise.
26471         (expand_builtin_atomic_store): Likewise.
26472         (expand_builtin_atomic_clear): Likewise.
26474 2016-01-05  H.J. Lu  <hongjiu.lu@intel.com>
26476         PR target/68991
26477         * config/i386/i386.c (ix86_expand_vector_logical_operator):
26478         Replace nonimmediate_operand with vector_operand.
26479         * config/i386/predicates.md (vector_operand): New predicate.
26480         (general_vector_operand): Replace nonimmediate_operand with
26481         vector_operand.
26482         * config/i386/sse.md: Replace nonimmediate_operand with
26483         vector_operand and m constraint with Bm constraint on SSE
26484         patterns with 16-byte memory operand.
26485         * config/i386/subst.md (round_nimm_predicate): Replace
26486         nonimmediate_operand with vector_operand.
26487         (round_saeonly_nimm_predicate): Likewise.
26488         (round_saeonly_nimm_scalar_predicate): New.
26490 2016-01-05  H.J. Lu  <hongjiu.lu@intel.com>
26492         PR target/68991
26493         * config/i386/constraints.md (Bm): New constraint.
26494         * config/i386/predicates.md (vector_memory_operand): New
26495         predicate.
26496         * config/i386/sse.md: Replace xm with xBm in plusminus and
26497         any_logic patterns.
26499 2016-01-05  Sandra Loosemore  <sandra@codesourcery.com>
26501         PR 1078
26502         * doc/extend.texi (V850 Function Attributes): New section.
26503         (V850 Variable Attributes): New section.
26505 2016-01-05  Sandra Loosemore  <sandra@codesourcery.com>
26507         PR 1078
26508         * doc/extend.texi (MicroBlaze Function Attributes): Document
26509         interrupt_handler and fast_interrupt attributes.
26511 2016-01-05  Sergei Trofimovich  <siarheit@google.com>
26513         PR other/60465
26514         * config/ia64/ia64.c (ia64_expand_load_address): Use gprel64
26515         for local symbolic operands.
26516         * config/ia64/predicates.md (local_symbolic_operand64): New
26517         predicate.
26519 2016-01-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
26521         PR rtl-optimization/68651
26522         * combine.c (combine_simplify_rtx): Canonicalize x + x into
26523         x << 1.
26525 2016-01-05  Nathan Sidwell  <nathan@acm.org>
26527         * alias.c (compare_base_decls): Use symtab_node::get.
26529 2016-01-05  Nick Clifton  <nickc@redhat.com>
26531         PR target/68770
26532         * ira-costs.c (copy_cost): Initialise the t_icode field of the
26533         secondary_reload_info structure.
26535         PR target/66655
26536         * config/i386/cygming.h (MAKE_DECL_ONE_ONLY): Define to use weak
26537         decls if weak support is available.
26539 2016-01-04  Martin Sebor  <msebor@redhat.com>
26541         * doc/invoke.texi (Warning Options): Document -Winvalid-memory-model.
26543 2016-01-04  Michael Meissner  <meissner@linux.vnet.ibm.com>
26545         * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Add
26546         OPTION_MASK_P9_DFORM.
26548         * config/rs6000/constraints.md (wo constraint): New constraint for
26549         ISA 3.0 (power9).
26551         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Add support
26552         for wo constraint.
26553         (rs6000_init_hard_regno_mode_ok): Likewise.
26555         * config/rs6000/rs6000.h (r6000_reg_class_enum): Add support for
26556         wo constraint.
26558         * config/rs6000/altivec.md (altivec_vperm_<mode>): Clean up vperm
26559         expanders not to have constraints.  Add support for ISA 3.0 xxperm
26560         instruction.  Add support for fusing xxlor with xxperm.
26561         (altivec_vperm_<mode>_internal): Likewise.
26562         (altivec_vperm_v8hiv16qi): Likewise.
26563         (altivec_vperm_<mode>v16q): Likewise.
26564         (altivec_vperm_<mode>_uns): Likewise.
26565         (vperm_v8hiv4si): Likewise.
26566         (vperm_v16qiv8hi): Likewise.
26568         * doc/md.texi (RS/6000 constraints): Document wo constraint.
26570 2016-01-04  Jakub Jelinek  <jakub@redhat.com>
26572         Update copyright years.
26574         * gcc.c (process_command): Update copyright notice dates.
26575         * gcov-dump.c (print_version): Ditto.
26576         * gcov.c (print_version): Ditto.
26577         * gcov-tool.c (print_version): Ditto.
26578         * gengtype.c (create_file): Ditto.
26579         * doc/cpp.texi: Bump @copying's copyright year.
26580         * doc/cppinternals.texi: Ditto.
26581         * doc/gcc.texi: Ditto.
26582         * doc/gccint.texi: Ditto.
26583         * doc/gcov.texi: Ditto.
26584         * doc/install.texi: Ditto.
26585         * doc/invoke.texi: Ditto.
26587 2016-01-04  Eric Botcazou  <ebotcazou@adacore.com>
26589         * config/arm/arm.c (aapcs_vfp_allocate_return_reg): Treat all integer
26590         modes larger than TImode as TImode if NEON is not enabled.
26592 2016-01-04  Eric Botcazou  <ebotcazou@adacore.com>
26594         PR target/69100
26595         * config/sparc/sparc.h (FUNCTION_ARG_REGNO_P): Return true in 64-bit
26596         mode for %f0-%f31 only if TARGET_FPU.
26598 2016-01-04  Eric Botcazou  <ebotcazou@adacore.com>
26600         PR target/69072
26601         * config/sparc/sparc.c (scan_record_type): Take into account subfields
26602         to compute the PACKED_P predicate.
26603         (function_arg_record_value): Minor tweaks.
26605 2016-01-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>
26607         * doc/install.texi (--with-multilib-list): Describe the meaning of the
26608         option for arm*-*-* targets.
26610 2016-01-03  Sandra Loosemore  <sandra@codesourcery.com>
26612         * doc/extend.texi (Common Function Attributes): Move docs for
26613         MSP430-specific attributes to....
26614         (MSP430 Function Attributes): ...here.  Delete the redundant
26615         entries and copy-edit the remaining text.
26616         (MSP430 Variable Attributes): Use uniform format for index
26617         entries and add a cross-reference to the corresponding function
26618         attribute docs.
26620 2016-01-03  Vladimír Čunát  <vcunat@gmail.com>
26622         * doc/invoke.texi (RS/6000 and PowerPC Options): Fix
26623         -finite-math typo.
26624         (x86 Options): Likewise.
26626 2016-01-01  Sandra Loosemore  <sandra@codesourcery.com>
26628         PR 1078
26630         * extend.texi (Common Function Attributes) <no_stack_limit>: New.
26631         * invoke.texi (Code Gen Options) <-fno-stack-limit>: Add pointer
26632         to corresponding attribute.
26634 2016-01-01  Sandra Loosemore  <sandra@codesourcery.com>
26636         * doc/extend.texi (Common Function Attributes) <noplt>: Move
26637         to correct alphabetization of table.  Copy-edit and correct
26638         markup.
26639         <stack_protect>: Likewise.
26640         <target_clones>: Likewise.
26641         <simd>: Likewise.
26642         * doc/invoke.texi (Optimize Options) <-fstack-protector-explicit>:
26643         Correct punctuation.
26644         (Code Gen Options) <-fno-plt>: Copy-edit.
26646 2016-01-01  Bernd Edlinger  <bernd.edlinger@hotmail.de>
26648         PR target/68917
26649         * config/tilegx/tilegx.md (clzsi2): Don't create DI subregs of
26650         SI values.  Explicitly convert SI to DI and vice-versa.
26652 2016-01-01  Jakub Jelinek  <jakub@redhat.com>
26654         PR tree-optimization/69070
26655         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Only test
26656         REAL_VALUE_ISSIGNALING_NAN on arg0 if arg0 is a REAL_CST.
26658         PR sanitizer/69055
26659         * ubsan.c (ubsan_instrument_float_cast): Call
26660         initialize_sanitizer_builtins.
26662         PR target/69015
26663         * ifcvt.c (find_cond_trap): Give up if returnjump_p (jump).
26665 Copyright (C) 2016 Free Software Foundation, Inc.
26667 Copying and distribution of this file, with or without modification,
26668 are permitted in any medium without royalty provided the copyright
26669 notice and this notice are preserved.