x86: Properly check saved register CFA offset
[official-gcc.git] / gcc / ChangeLog
blob64407df46c81f36987e7fdd2289144e974bacb8e
1 2017-07-26  H.J. Lu  <hongjiu.lu@intel.com>
3         PR target/81563
4         * config/i386/i386.c (sp_valid_at): Properly check CFA offset.
5         (fp_valid_at): Likewise.
7 2017-07-26  James Greenhalgh  <james.greenhalgh@arm.com>
9         * config/aarch64/aarch64.c (cortexa57_addrcost_table): Remove.
10         (qdf24xx_addrcost_table): Likewise.
11         (cortexa57_tunings): Update to use generic_branch_cost.
12         (cortexa72_tunings): Likewise.
13         (cortexa73_tunings): Likewise.
14         (qdf24xx_tunings): Likewise.
16 2017-07-26  James Greenhalgh  <james.greenhalgh@arm.com>
18         * config/aarch64/aarch64.c (cortexa57_branch_cost): Remove.
19         (thunderx2t99_branch_cost): Likewise.
20         (cortexa35_tunings): Update to use generic_branch_cost.
21         (cortexa53_tunings): Likewise.
22         (cortexa57_tunings): Likewise.
23         (cortexa72_tunings): Likewise.
24         (cortexa73_tunings): Likewise.
25         (thunderx2t99_tunings): Likewise.
27 2017-07-26  Sebastian Huber  <sebastian.huber@embedded-brains.de>
29         * config/sparc/sparc.c (dump_target_flag_bits): Dump MASK_FSMULD.
30         (sparc_option_override): Honour MASK_FSMULD.
31         * config/sparc/sparc.h (MASK_FEATURES): Add MASK_FSMULD.
32         * config/sparc/sparc.md (muldf3_extend): Use TARGET_FSMULD.
33         * config/sparc/sparc.opt (mfsmuld): New option.
34         * doc/invoke.texi (mfsmuld): Document option.
36 2017-07-26  Marek Polacek  <polacek@redhat.com>
38         PR middle-end/70992
39         * tree.c (build2_stat): Don't set TREE_CONSTANT on divisions by zero.
41 2017-07-26  Richard Biener  <rguenther@suse.de>
43         * gimple-match-head.c (do_valueize): Return OP if valueize
44         returns NULL_TREE.
45         (get_def): New helper to get at the def stmt of a SSA name
46         if valueize allows.
47         * genmatch.c (dt_node::gen_kids_1): Use get_def instead of
48         do_valueize to get at the def stmt.
49         (dt_operand::gen_gimple_expr): Simplify do_valueize calls.
51 2017-07-26  Wilco Dijkstra  <wdijkstr@arm.com>
53         PR middle-end/46932
54         * auto-inc-dec.c (parse_add_or_inc): Block autoinc on sfp.
56 2017-07-26  Martin Liska  <mliska@suse.cz>
58         PR sanitize/81186
59         * function.c (expand_function_start): Make expansion of
60         nonlocal_goto_save_area after parm_birth_insn.
62 2017-07-26  Sebastian Huber  <sebastian.huber@embedded-brains.de>
64         * config/sparc/sparc.c (sparc_option_override): Remove MASK_FPU
65         from all CPU target flags enable members.
67 2017-07-26  Richard Biener  <rguenther@suse.de>
69         * genmatch.c (dt_simplify::gen): Make iterator vars const.
70         (decision_tree::gen): Make 'type' const.
71         (write_predicate): Likewise.
73 2017-07-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
75         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok):
76         Eliminate TARGET_UPPER_REGS_{DF,DI,SF} usage.
77         (rs6000_option_override_internal): Likewise.
78         (rs6000_expand_vector_set): Likewise.
79         * config/rs6000/rs6000.h (TARGET_UPPER_REGS_DF): Delete.
80         (TARGET_UPPER_REGS_SF): Likewise.
81         (TARGET_UPPER_REGS_DI): Likewise.
82         (TARGET_VEXTRACTUB): Eliminate TARGET_UPPER_REGS_{DF,DI,SF}.
83         (TARGET_DIRECT_MOVE_64BIT): Likewise.
84         * config/rs6000/rs6000.md (ALTIVEC_DFORM): Likewise.
85         (float<QHI:mode><FP_ISA3:mode>2_internal): Likewise.
86         (Splitters for DI constants in Altivec registers): Likewise.
87         * config/rs6000/vsx.md (vsx_set_<mode>_p9): Likewise.
88         (vsx_set_v4sf_p9): Likewise.
89         (vsx_set_v4sf_p9_zero): Likewise.
90         (vsx_insert_extract_v4sf_p9): Likewise.
91         (vsx_insert_extract_v4sf_p9_2): Likewise.
93 2017-07-25  Carl Love  <cel@us.ibm.com>
95         * doc/extend.texi: Update the built-in documentation file for the
96         existing built-in functions
97         vector signed char vec_cnttz (vector signed char);
98         vector unsigned char vec_cnttz (vector unsigned char);
99         vector signed short vec_cnttz (vector signed short);
100         vector unsigned short vec_cnttz (vector unsigned short);
101         vector signed int vec_cnttz (vector signed int);
102         vector unsigned int vec_cnttz (vector unsigned int);
103         vector signed long long vec_cnttz (vector signed long long);
104         vector unsigned long long vec_cnttz (vector unsigned long long);
106 2017-07-25  Andrew Pinski  <apinski@cavium.com>
108         * tree-ssa-uninit.c (warn_uninitialized_vars): Don't warn about memory
109         accesses where the use is for the first operand of a BIT_INSERT.
111 2017-07-25  Jim Wilson  <jim.wilson@linaro.org>
113         PR bootstrap/81521
114         * config/i386/winnt-cxx.c (i386_pe_adjust_class_at_definition): Look
115         for FUNCTION_DECLs in TYPE_FIELDS rather than TYPE_METHODS.
117 2017-07-25  Jim Wilson  <jim.wilson@linaro.org>
119         * config/i386/gstabs.h: Delete.
120         * config/i386/openbsd.h, config/i386/t-openbsd: Likewise.
122 2017-07-25  Uros Bizjak  <ubizjak@gmail.com>
124         * config/i386/i386.c (ix86_decompose_address): Do not check for
125         register RTX when looking at index_reg or base_reg.
126         * config/i386/i386.h (INCOMING_RETURN_ADDR_RTX): Use stack_pointer_rtx.
128 2017-07-25  Eric Botcazou  <ebotcazou@adacore.com>
130         * gimple.c (gimple_assign_set_rhs_with_ops): Do not ask gsi_replace
131         to update EH info here.
133 2017-07-25  Alexander Monakov  <amonakov@ispras.ru>
135         * match.pd ((X * CST1) * CST2): Simplify to X * (CST1 * CST2).
137 2017-07-25  Alexander Monakov  <amonakov@ispras.ru>
139         * match.pd ((X * CST) * Y): Reassociate to (X * Y) * CST.
141 2017-07-25  Torsten Duwe  <duwe@suse.de>
143         * common.opt: Introduce -fpatchable-function-entry
144         command line option, and its variables function_entry_patch_area_size
145         and function_entry_patch_area_start.
146         * opts.c (common_handle_option): Add -fpatchable_function_entry_ case,
147         including a two-value parser.
148         * target.def (print_patchable_function_entry): New target hook.
149         * targhooks.h (default_print_patchable_function_entry): New function.
150         * targhooks.c (default_print_patchable_function_entry): Likewise.
151         * toplev.c (process_options): Switch off IPA-RA if
152         patchable function entries are being generated.
153         * varasm.c (assemble_start_function): Look at the
154         patchable-function-entry command line switch and current
155         function attributes and maybe generate NOP instructions by
156         calling the print_patchable_function_entry hook.
157         * doc/extend.texi: Document patchable_function_entry attribute.
158         * doc/invoke.texi: Document -fpatchable_function_entry
159         command line option.
160         * doc/tm.texi.in (TARGET_ASM_PRINT_PATCHABLE_FUNCTION_ENTRY):
161         New target hook.
162         * doc/tm.texi: Re-generate.
164 2017-07-25  Jakub Jelinek  <jakub@redhat.com>
166         PR target/81532
167         * config/i386/constraints.md (Yd, Ye): Use ALL_SSE_REGS for
168         TARGET_AVX512DQ rather than TARGET_AVX512BW.
170 2017-07-25  Tamar Christina  <tamar.christina@arm.com>
172         * config/arm/parsecpu.awk (all_cores): Remove duplicates.
174 2017-07-25  Richard Biener  <rguenther@suse.de>
176         PR tree-optimization/81455
177         * tree-ssa-loop-unswitch.c (find_loop_guard): Make sure to
178         not walk in cycles when looking for guards.
180 2017-07-25  Richard Biener  <rguenther@suse.de>
182         PR tree-optimization/81529
183         * tree-vect-stmts.c (process_use): Disregard live induction PHIs
184         when optimizing backedge uses.
186 2017-07-25  David Edelsohn  <dje.gcc@gmail.com>
188         * dwarf2asm.c (dw2_asm_output_nstring): Encode double quote
189         character for AIX.
190         * dwarf2out.c (output_macinfo): Copy debug_line_section_label
191         to dl_section_ref.  On AIX, append an expression to subtract
192         the size of the section length to dl_section_ref.
194 2017-07-25  Segher Boessenkool  <segher@kernel.crashing.org>
196         * configure.ac: If any of the config.* scripts fail, exit 1.
197         * configure: Regenerate.
199 2017-07-25  Richard Biener  <rguenther@suse.de>
201         PR middle-end/81546
202         * tree-ssa-operands.c (verify_imm_links): Remove cap on number
203         of immediate uses, be more verbose on errors.
205 2017-07-25  Richard Biener  <rguenther@suse.de>
207         PR tree-optimization/81510
208         * tree-vect-loop.c (vect_is_simple_reduction): When the
209         reduction stmt is not inside the loop bail out.
211 2017-07-25  Richard Biener  <rguenther@suse.de>
213         PR tree-optimization/81303
214         * tree-vect-loop-manip.c (vect_loop_versioning): Build
215         profitability check against LOOP_VINFO_NITERSM1.
217 2017-07-25  Alexander Monakov  <amonakov@ispras.ru>
219         * domwalk.c (cmp_bb_postorder): Simplify.
220         (sort_bbs_postorder): New function.  Use it...
221         (dom_walker::walk): ...here to optimize common cases.
223 2017-07-25  Martin Liska  <mliska@suse.cz>
225         PR ipa/81520
226         * ipa-visibility.c (function_and_variable_visibility): Make the
227         redirection just on target that supports aliasing.
228         Fix GNU coding style.
230 2017-07-25  Sebastian Huber  <sebastian.huber@embedded-brains.de>
232         PR libgcc/61152
233         * config/aarch64/rtems.h: Add GCC Runtime Library Exception.
234         Format changes.
235         * config/arm/rtems.h: Likewise.
236         * config/bfin/rtems.h: Likewise.
237         * config/i386/rtemself.h: Likewise.
238         * config/lm32/rtems.h: Likewise.
239         * config/m32c/rtems.h: Likewise.
240         * config/m68k/rtemself.h: Likewise.
241         * config/microblaze/rtems.h: Likewise.
242         * config/mips/rtems.h: Likewise.
243         * config/moxie/rtems.h: Likewise.
244         * config/nios2/rtems.h: Likewise.
245         * config/powerpcspe/rtems.h: Likewise.
246         * config/rs6000/rtems.h: Likewise.
247         * config/rtems.h: Likewise.
248         * config/sh/rtems.h: Likewise.
249         * config/sh/rtemself.h: Likewise.
250         * config/sparc/rtemself.h: Likewise.
252 2017-07-25  Georg-Johann Lay  <avr@gjlay.de>
254         PR 81487
255         * hsa-brig.c (brig_init): Use xasprintf instead of asprintf.
256         * gimple-pretty-print.c (dump_profile, dump_probability): Same.
257         * tree-ssa-structalias.c (alias_get_name): Same.
259 2017-07-25  Bin Cheng  <bin.cheng@arm.com>
261         PR target/81414
262         * config/aarch64/cortex-a57-fma-steering.c (analyze): Skip fmul/fmac
263         instructions if no du chain is found.
265 2017-07-25  Georg-Johann Lay  <avr@gjlay.de>
267         * config/avr/avr-log.c (avr_log_vadump) ['T']: Print NULL-TREE.
269 2017-07-25  Richard Biener  <rguenther@suse.de>
271         PR middle-end/81505
272         * fold-const.c (fold_negate_const): TREE_OVERFLOW should be
273         sticky.
275 2017-07-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
277         * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Delete
278         upper-regs options.
279         (ISA_2_7_MASKS_SERVER): Likewise.
280         (ISA_3_0_MASKS_IEEE): Likewise.
281         (OTHER_P8_VECTOR_MASKS): Likewise.
282         (OTHER_VSX_VECTOR_MASKS): Likewise.
283         (POWERPC_MASKS): Likewise.
284         (power7 cpu): Use ISA_2_6_MASKS_SERVER instead of using a
285         duplicate list of options.
286         * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Remove
287         explicit -mupper-regs options.
288         * config/rs6000/rs6000.opt (-mvsx-scalar-memory): Delete
289         -mupper-regs* options.  Delete -mvsx-scalar-memory, which was an
290         alias for -mupper-regs-df.
291         * config/rs6000/rs6000.c (rs6000_setup_reg_addr_masks): Likewise.
292         (rs6000_init_hard_regno_mode_ok): Likewise.
293         (rs6000_option_override_internal): Likewise.
294         (rs6000_opt_masks): Likewise.
295         * config/rs6000/rs6000.h (TARGET_UPPER_REGS_DF): Define upper regs
296         options in terms of whether -mvsx or -mpower8-vector was used.
297         (TARGET_UPPER_REGS_DI): Likewise.
298         (TARGET_UPPER_REGS_SF): Likewise.
299         * doc/invoke.texi (RS/6000 and PowerPC Options): Delete the
300         -mupper-regs-* options.
302 2017-07-24  Segher Boessenkool  <segher@kernel.crashing.org>
304         * passes.c (emergency_dump_function): Print some empty lines and a
305         header before the RTL dump.
307 2017-07-24  Segher Boessenkool  <segher@kernel.crashing.org>
309         * cfgrtl.c (rtl_dump_bb): Don't call NEXT_INSN on NULL.
311 2017-07-24  Wilco Dijkstra  <wdijkstr@arm.com>
313         PR target/79041
314         * config/aarch64/aarch64.c (aarch64_classify_symbol):
315         Avoid SYMBOL_SMALL_ABSOLUTE for literals with pc-relative literals.
317 2017-07-24  Carl Love  <cel@us.ibm.com>
319         * config/rs6000/rs6000-c.c: Add support for built-in functions
320         vector float vec_extract_fp32_from_shorth (vector unsigned short);
321         vector float vec_extract_fp32_from_shortl (vector unsigned short);
322         * config/rs6000/altivec.h (vec_extract_fp_from_shorth,
323         vec_extract_fp_from_shortl): Add defines for the two builtins.
324         * config/rs6000/rs6000-builtin.def (VEXTRACT_FP_FROM_SHORTH,
325         VEXTRACT_FP_FROM_SHORTL): Add BU_P9V_OVERLOAD_1 and BU_P9V_VSX_1
326         new builtins.
327         * config/rs6000/vsx.md vsx_xvcvhpsp): Add define_insn.
328         (vextract_fp_from_shorth, vextract_fp_from_shortl): Add define_expands.
329         * doc/extend.texi: Update the built-in documentation file for the
330         new built-in function.
332 2017-07-24  Jakub Jelinek  <jakub@redhat.com>
334         PR bootstrap/81521
335         * tree.def: Remove TYPE_METHODS documentation, adjust TYPE_FIELDS
336         documentation.
337         * doc/generic.texi: Likewise.
338         * config/i386/winnt-cxx.c (i386_pe_adjust_class_at_definition): Look
339         for FUNCTION_DECLs in TYPE_FIELDS rather than TYPE_METHODS.
341 2017-07-24  Jackson Woodruff  <jackson.woodruff@arm.com>
343         * config/aarch64/aarch64-simd.md (aarch64_mla_elt_merge<mode>): New.
344         (aarch64_mls_elt_merge<mode>): Likewise.
346 2017-07-23  Krister Walfridsson  <krister.walfridsson@gmail.com>
348         * config.gcc (*-*-netbsd*): Remove check for NetBSD versions not
349         having __cxa_atexit.
351 2017-07-23  Michael Collison  <michael.collison@arm.com>
353         * config/arm/arm.c (arm_option_override): Deprecate
354         use of -mstructure-size-boundary.
355         * config/arm/arm.opt: Deprecate -mstructure-size-boundary.
356         * doc/invoke.texi: Deprecate -mstructure-size-boundary.
358 2017-07-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
360         PR target/80695
361         * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost):
362         Reduce cost estimate for direct moves.
364 2017-07-23  Uros Bizjak  <ubizjak@gmail.com>
366         PR target/80569
367         * config/i386/i386.c (ix86_option_override_internal): Disable
368         BMI, BMI2 and TBM instructions for -m16.
370 2017-07-21  Carl Love  <cel@us.ibm.com>
372         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
373         ALTIVEC_BUILTIN_VMULESW, ALTIVEC_BUILTIN_VMULEUW,
374         ALTIVEC_BUILTIN_VMULOSW, ALTIVEC_BUILTIN_VMULOUW entries.
375         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin,
376         builtin_function_type): Add ALTIVEC_BUILTIN_* case statements.
377         * config/rs6000/altivec.md (MVULEUW, VMULESW, VMULOUW,
378         VMULOSW): New enum "unspec" values.
379         (altivec_vmuleuw, altivec_vmulesw, altivec_vmulouw,
380         altivec_vmulosw): New patterns.
381         * config/rs6000/rs6000-builtin.def (VMLEUW, VMULESW, VMULOUW,
382         VMULOSW): Add definitions.
384 2017-07-21  Jim Wilson  <jim.wilson@linaro.org>
386         * config/aarch64/aarch64-cores.def (falkor): Add AARCH64_FL_RDMA.
387         (qdf24xx): Likewise.
388         * config/aarch64/aarch64-options-extensions.def (rdma); New.
389         * config/aarch64/aarch64.h (AARCH64_FL_RDMA): New.
390         (AARCH64_FL_V8_1): Renumber.
391         (AARCH64_FL_FOR_ARCH8_1): Add AARCH64_FL_RDMA.
392         (AARCH64_ISA_RDMA): Use AARCH64_FL_RDMA.
393         * config/aarch64/arm_neon.h: Use +rdma instead of arch=armv8.1-a.
394         * doc/invoke.texi (AArch64 Options): Mention +rmda in -march docs.  Add
395         rdma to feature modifiers list.
397 2017-07-21  Yury Gribov  <tetra2005@gmail.com>
399         PR middle-end/56727
400         * ipa-visibility (function_and_variable_visibility): Convert
401         recursive PLT call to direct call if appropriate.
403 2017-07-21  Andrew Pinski  <apinski@cavium.com>
405         * tree-ssa-sccvn.c (vn_nary_op_eq): Check BIT_INSERT_EXPR's
406         operand 1 to see if the types precision matches.
407         * fold-const.c (operand_equal_p): Likewise.
409 2017-07-21  Richard Biener  <rguenther@suse.de>
411         PR tree-optimization/81303
412         * tree-vect-data-refs.c (vect_get_peeling_costs_all_drs): Pass
413         in datarefs vector.  Allow NULL dr0 for no peeling cost estimate.
414         (vect_peeling_hash_get_lowest_cost): Adjust.
415         (vect_enhance_data_refs_alignment): Likewise.  Use
416         vect_get_peeling_costs_all_drs to compute the penalty for no
417         peeling to match up costs.
419 2017-07-21  Richard Biener  <rguenther@suse.de>
421         PR tree-optimization/81500
422         * tree-vect-loop.c (vect_is_simple_reduction): Properly fail if
423         we didn't identify a reduction path.
425 2017-07-21  Tom de Vries  <tom@codesourcery.com>
426             Cesar Philippidis  <cesar@codesourcery.com>
428         PR gcov-profile/81442
429         * config/nvptx/nvptx.c (nvptx_goacc_reduction_init): Add missing edge
430         probabilities.
432 2017-07-21  Tom de Vries  <tom@codesourcery.com>
434         PR lto/81430
435         * config/nvptx/nvptx.c (nvptx_override_options_after_change): New
436         function.
437         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define to
438         nvptx_override_options_after_change.
440 2017-07-21  Ulrich Drepper  <drepper@redhat.com>
442         * dwarf2out.c (output_file_names): Avoid double testing for
443         dwarf_version >= 5.
445 2017-07-21  Georg-Johann Lay  <avr@gjlay.de>
447         * doc/invoke.texi (AVR Built-in Functions): Re-layout section.
449 2016-07-21  Jan Hubicka  <hubicka@ucw.cz>
451         * cfgcleanup.c (flow_find_cross_jump): Do not crossjump across
452         hot/cold regions.
453         (try_crossjump_to_edge): Do not punt on partitioned functions.
455 2016-07-21  Jan Hubicka  <hubicka@ucw.cz>
457         * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
458         Put all BBs reachable only via paths crossing cold region to cold
459         region.
460         * cfgrtl.c (find_bbs_reachable_by_hot_paths): New function.
462 2016-07-21  Richard Biener  <rguenther@suse.de>
464         PR tree-optimization/81303
465         * tree-vect-loop.c (vect_estimate_min_profitable_iters): Take
466         into account prologue and epilogue iterations when raising
467         min_profitable_iters to sth at least covering one vector iteration.
469 2017-07-21  Tamar Christina  <tamar.christina@arm.com>
471         * config/arm/arm.c (arm_test_cpu_arch_dat):
472         Check for overlap.
474 2017-07-20  Nathan Sidwell  <nathan@acm.org>
476         Remove TYPE_METHODS.
477         * tree.h (TYPE_METHODS): Delete.
478         * dwarf2out.c (gen_member_die): Member fns are on TYPE_FIELDS.
479         * dbxout.c (dbxout_type_fields): Ignore FUNCTION_DECLs.
480         (dbxout_type_methods): Scan TYPE_FIELDS.
481         (dbxout_type): Don't check TYPE_METHODS here.
482         * function.c (use_register_for_decl): Always ignore register for
483         class types when not optimizing.
484         * ipa-devirt.c (odr_types_equivalent_p): Delete TYPE_METHODS scan.
485         * tree.c (free_lang_data_in_type): Stitch out member functions and
486         templates from TYPE_FIELDS.
487         (build_distinct_type_copy, verify_type_variant,
488         verify_type): Member fns are on TYPE_FIELDS.
489         * tree-dump.c (dequeue_and_dump): No TYPE_METHODS.
490         * tree-pretty-print.c (dump_generic_node): Likewise.
492 2017-07-20  Jakub Jelinek  <jakub@redhat.com>
494         PR target/80846
495         * config/i386/i386.c (ix86_expand_vector_init_general): Handle
496         V2TImode and V4TImode.
497         (ix86_expand_vector_extract): Likewise.
498         * config/i386/sse.md (VMOVE): Enable V4TImode even for just
499         TARGET_AVX512F, instead of only for TARGET_AVX512BW.
500         (ssescalarmode): Handle V4TImode and V2TImode.
501         (VEC_EXTRACT_MODE): Add V4TImode and V2TImode.
502         (*vec_extractv2ti, *vec_extractv4ti): New insns.
503         (VEXTRACTI128_MODE): New mode iterator.
504         (splitter for *vec_extractv?ti first element): New.
505         (VEC_INIT_MODE): New mode iterator.
506         (vec_init<mode>): Consolidate 3 expanders into one using
507         VEC_INIT_MODE mode iterator.
509 2017-07-20  Alexander Monakov  <amonakov@ispras.ru>
511         * lra-assigns.c (pseudo_compare_func): Fix comparison step based on
512         non_spilled_static_chain_regno_p.
514 2017-07-20  Alexander Monakov  <amonakov@ispras.ru>
516         * gimple-ssa-store-merging.c (sort_by_bitpos): Return 0 on equal bitpos.
518 2017-07-20  Jan Hubicka  <hubicka@ucw.cz>
520         * bb-reorder.c (connect_traces): Allow copying of blocks within
521         single partition.
523 2017-07-20  Richard Biener  <rguenther@suse.de>
525         * gimple.h (gimple_phi_result): Add gphi * overload.
526         (gimple_phi_result_ptr): Likewise.
527         (gimple_phi_arg): Likewise.  Adjust index assert to only
528         allow actual argument accesses rather than all slots available
529         by capacity.
530         (gimple_phi_arg_def): Add gphi * overload.
531         * tree-phinodes.c (make_phi_node): Initialize only actual
532         arguments.
533         (resize_phi_node): Clear memory not covered by old node,
534         do not initialize excess argument slots.
535         (reserve_phi_args_for_new_edge): Initialize new argument slot
536         completely.
538 2017-07-20  Bin Cheng  <bin.cheng@arm.com>
540         PR tree-optimization/81388
541         Revert r238585:
542         2016-07-21  Bin Cheng  <bin.cheng@arm.com>
544         * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Clean up
545         by removing computation of may_be_zero.
547 2017-07-18  Jan Hubicka  <hubicka@ucw.cz>
548             Tom de Vries  <tom@codesourcery.com>
550         PR middle-end/81030
551         * cfgbuild.c (find_many_sub_basic_blocks): Update REG_BR_PROB note
552         when gimple level profile disagrees with what RTL expander did.
554 2017-07-20  Richard Biener  <rguenther@suse.de>
556         PR tree-optimization/61171
557         * tree-vectorizer.h (slp_instance): Add reduc_phis member.
558         (vect_analyze_stmt): Add slp instance parameter.
559         (vectorizable_reduction): Likewise.
560         * tree-vect-loop.c (vect_analyze_loop_operations): Adjust.
561         (vect_is_simple_reduction): Deal with chains not detected
562         as SLP reduction chain, specifically not properly associated
563         chains containing a mix of plus/minus.
564         (get_reduction_op): Remove.
565         (get_initial_defs_for_reduction): Simplify, pass in whether
566         this is a reduction chain, pass in the SLP node for the PHIs.
567         (vect_create_epilog_for_reduction): Get the SLP instance as
568         arg and adjust.
569         (vectorizable_reduction): Get the SLP instance as arg.
570         During analysis remember the SLP node with the PHIs in the
571         instance.  Simplify getting at the vectorized reduction PHIs.
572         * tree-vect-slp.c (vect_slp_analyze_node_operations): Pass
573         through SLP instance.
574         (vect_slp_analyze_operations): Likewise.
575         * tree-vect-stms.c (vect_analyze_stmt): Likewise.
576         (vect_transform_stmt): Likewise.
578 2017-07-20  Tom de Vries  <tom@codesourcery.com>
580         PR tree-optimization/81489
581         * gimple-ssa-isolate-paths.c (find_implicit_erroneous_behavior): Move
582         read of phi arg location to before loop that modifies phi.
584 2017-07-20  Naveen H.S  <Naveen.Hurugalawadi@cavium.com>
586         * match.pd (((m1 >/</>=/<= m2) * d -> (m1 >/</>=/<= m2) ? d : 0):
587         New pattern.
589 2017-07-19  Jan Hubicka  <hubicka@ucw.cz>
591         PR middle-end/81331
592         * except.c (execute): Fix ordering issue.
594 2018-07-19  Segher Boessenkool  <segher@kernel.crashing.org>
596         PR rtl-optimization/81423
597         * combine.c (make_compound_operation_int): Don't try to optimize
598         the AND of a SUBREG of an LSHIFTRT if that SUBREG is paradoxical.
600 2017-07-19  Segher Boessenkool  <segher@kernel.crashing.org>
602         PR rtl-optimization/81423
603         * simplify-rtx.c (simplify_truncation): Handle truncating an IOR
604         with a constant that is -1 in the truncated to mode.
606 2017-07-19  Jan Hubicka  <hubicka@ucw.cz>
608         * predict.c (propagate_unlikely_bbs_forward): Break out from ...
609         (determine_unlikely_bbs): ... here.
610         * predict.h (propagate_unlikely_bbs_forward): Declare.
611         * cfgexpand.c (pass_expand::execute): Use it.
612         * bb-reorder.c (sanitize_hot_paths): Do not consider known to be
613         unlikely edges.
614         (find_rarely_executed_basic_blocks_and_crossing_edges): Use
615         propagate_unlikely_bbs_forward.
617 2017-07-19  Jan Hubicka  <hubicka@ucw.cz>
619         PR middle-end/81331
620         * except.c (maybe_add_nop_after_section_switch): New function.
621         (execute): Use it.
623 2017-07-19  Tom de Vries  <tom@codesourcery.com>
625         * gimple.h (gimple_phi_set_arg): Make assert more strict.
627 2017-07-19  Tom de Vries  <tom@codesourcery.com>
629         * gimple.h (gimple_phi_arg): Make assert more strict.
631 2017-07-19  Steven Munroe  <munroesj@gcc.gnu.org>
633         * config.gcc (powerpc*-*-*): Add mmintrin.h.
634         * config/rs6000/mmintrin.h: New file.
635         * config/rs6000/x86intrin.h [__ALTIVEC__]: Include mmintrin.h.
637 2017-07-19  Jakub Jelinek  <jakub@redhat.com>
639         PR tree-optimization/81346
640         * match.pd: Optimize (X - 1U) <= INT_MAX-1U into (int) X > 0.
642 2017-07-19  Tom de Vries  <tom@codesourcery.com>
644         * config/nvptx/nvptx.md (VECIM): Add V2DI.
646 2017-07-19  Tom de Vries  <tom@codesourcery.com>
648         * config/nvptx/nvptx-modes.def: Add V2DImode.
649         * config/nvptx/nvptx-protos.h (nvptx_data_alignment): Declare.
650         * config/nvptx/nvptx.c (nvptx_ptx_type_from_mode): Handle V2DImode.
651         (nvptx_output_mov_insn): Handle lack of mov.b128.
652         (nvptx_print_operand): Handle 'H' and 'L' codes.
653         (nvptx_vector_mode_supported): Allow V2DImode.
654         (nvptx_preferred_simd_mode): New function.
655         (nvptx_data_alignment): New function.
656         (TARGET_VECTORIZE_PREFERRED_SIMD_MODE): Redefine to
657         nvptx_preferred_simd_mode.
658         * config/nvptx/nvptx.h (STACK_BOUNDARY, BIGGEST_ALIGNMENT): Change from
659         64 to 128 bits.
660         (DATA_ALIGNMENT): Define.  Set to nvptx_data_alignment.
662 2017-07-19  Tom de Vries  <tom@codesourcery.com>
664         * config/nvptx/nvptx-modes.def: New file.  Add V2SImode.
665         * config/nvptx/nvptx.c (nvptx_ptx_type_from_mode): Handle V2SImode.
666         (nvptx_vector_mode_supported): New function.  Allow V2SImode.
667         (TARGET_VECTOR_MODE_SUPPORTED_P): Redefine to nvptx_vector_mode_supported.
668         * config/nvptx/nvptx.md (VECIM): New mode iterator. Add V2SI.
669         (mov<VECIM>_insn): New define_insn.
670         (define_expand "mov<VECIM>): New define_expand.
672 2017-07-19  Tom de Vries  <tom@codesourcery.com>
674         * config/nvptx/nvptx.c (nvptx_print_operand): Handle v2 vector mode.
676 2017-07-19  Jakub Jelinek  <jakub@redhat.com>
678         PR tree-optimization/81346
679         * fold-const.h (fold_div_compare, range_check_type): Declare.
680         * fold-const.c (range_check_type): New function.
681         (build_range_check): Use range_check_type.
682         (fold_div_compare): No longer static, rewritten into
683         a match.pd helper function.
684         (fold_comparison): Don't call fold_div_compare here.
685         * match.pd (X / C1 op C2): New optimization using fold_div_compare
686         as helper function.
688 2017-07-19  Nathan Sidwell  <nathan@acm.org>
690         * tree.h (TYPE_MINVAL, TYPE_MAXVAL): Rename to ...
691         (TYPE_MIN_VALUE_RAW, TYPE_MAX_VALUE_RAW): ... these.
692         * tree.c (find_decls_types_r, verify_type): Use
693         TYPE_{MIN,MAX}_VALUE_RAW.
694         * lto-streamer-out.c (DFS::DFS_write_tree_body): Likewise.
695         (hash_tree): Likewise.
696         * tree-streamer-in.c (lto_input_ts_type_non_common_tree_pointers):
697         Likewise.
698         * tree-streamer-out.c (write_ts_type_non_common_tree_pointers):
699         Likewise.
701 2017-07-18  Tom de Vries  <tom@codesourcery.com>
703         PR middle-end/81464
704         * omp-expand.c (expand_omp_for_static_chunk): Handle
705         equal-argument loop exit phi.
707 2017-07-18  Uros Bizjak  <ubizjak@gmail.com>
709         PR target/81471
710         * config/i386/i386.md (rorx_immediate_operand): New mode attribute.
711         (*bmi2_rorx<mode>3_1): Use rorx_immediate_operand as
712         operand 2 predicate.
713         (*bmi2_rorxsi3_1_zext): Use const_0_to_31_operand as
714         operand 2 predicate.
715         (ror,rol -> rorx splitters): Use const_int_operand as
716         operand 2 predicate.
718 2017-06-18  Richard Biener  <rguenther@suse.de>
720         PR tree-optimization/81410
721         * tree-vect-stmts.c (vectorizable_load): Properly adjust for
722         the gap in the ! slp_perm SLP case after each group.
724 2017-07-18  Jan Hubicka  <hubicka@ucw.cz>
726         PR middle-end/81463
727         * cfgloopmanip.c (scale_loop_profile): Watch out for zero frequency
728         again.
730 2017-07-18  Jan Hubicka  <hubicka@ucw.cz>
732         PR middle-end/81462
733         * predict.c (set_even_probabilities): Cleanup; do not affect
734         probabilities that are already known.
735         (combine_predictions_for_bb): Call even when count is set.
737 2017-07-18  Nathan Sidwell  <nathan@acm.org>
739         * tree-parloops.c (try_transform_to_exit_first_loop_alt): Use
740         TYPE_MAX_VALUE.
742 2017-07-18  Bin Cheng  <bin.cheng@arm.com>
744         PR target/81408
745         * tree-ssa-loop-niter.c (number_of_iterations_exit): Dump missed
746         optimization for loop niter analysis.
748 2017-07-18  Georg-Johann Lay  <avr@gjlay.de>
750         PR target/81473
751         * config/avr/avr.c (avr_optimize_casesi): Don't use
752         INT8_MIN, INT8_MAX, UINT8_MAX, INT16_MIN, INT16_MAX, UINT16_MAX.
754 2017-07-18  Robin Dapp  <rdapp@linux.vnet.ibm.com>
756         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Remove
757         body_cost_vec from _vect_peel_extended_info.
758         (vect_peeling_hash_get_lowest_cost): Do not set body_cost_vec.
759         (vect_peeling_hash_choose_best_peeling): Remove body_cost_vec and
760         npeel.
762 2017-07-18  Bin Cheng  <bin.cheng@arm.com>
764         * config/arm/arm.c (emit_unlikely_jump): Remove unused var.
766 2017-07-18  Richard Biener  <rguenther@suse.de>
768         PR tree-optimization/80620
769         PR tree-optimization/81403
770         * tree-ssa-pre.c (phi_translate_1): Clear range and points-to
771         info when re-using a VN table entry.
773 2017-07-18  Richard Biener  <rguenther@suse.de>
775         PR tree-optimization/81418
776         * tree-vect-loop.c (vectorizable_reduction): Properly compute
777         vectype_in.  Verify that with lane-reducing reduction operations
778         we have a single def-use cycle.
780 2017-07-17  Carl Love  <cel@us.ibm.com>
782         Revert commit r249424   2017-06-20  Carl Love  <cel@us.ibm.com>
784         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
785         ALTIVEC_BUILTIN_VMULESW, ALTIVEC_BUILTIN_VMULEUW,
786         ALTIVEC_BUILTIN_VMULOSW, ALTIVEC_BUILTIN_VMULOUW entries.
787         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin,
788         builtin_function_type): Add ALTIVEC_BUILTIN_* case statements.
789         * config/rs6000/altivec.md (MVULEUW, VMULESW, VMULOUW,
790         VMULOSW): New enum "unspec" values.
791         (vec_widen_umult_even_v4si, vec_widen_smult_even_v4si,
792         vec_widen_umult_odd_v4si, vec_widen_smult_odd_v4si,
793         altivec_vmuleuw, altivec_vmulesw, altivec_vmulouw,
794         altivec_vmulosw): New patterns.
795         * config/rs6000/rs6000-builtin.def (VMLEUW, VMULESW, VMULOUW,
796         VMULOSW): Add definitions.
797 2017-07-17  Uros Bizjak  <ubizjak@gmail.com>
799         * config/alpha/alpha.c: Include predict.h.
801 2017-07-17  Yury Gribov  <tetra2005@gmail.com>
803         * tree-vrp.c (compare_assert_loc): Fix comparison function
804         to return predictable results.
806 2017-07-17  Claudiu Zissulescu  <claziss@synopsys.com>
808         * config/arc/arc.md (adddi3): Remove support for mexpand-adddi
809         option.
810         (subdi3): Likewise.
811         * config/arc/arc.opt (mexpand-adddi): Deprecate it.
812         * doc/invoke.texi (mexpand-adddi): Update text.
814 2017-07-17  Claudiu Zissulescu  <claziss@synopsys.com>
816         * config/arc/arc.md (clzsi2): Expand to an arc_clzsi2 instruction
817         that also clobbers the CC register. The old expand code is moved
818         to ...
819         (*arc_clzsi2): ... here.
820         (ctzsi2): Expand to an arc_ctzsi2 instruction that also clobbers
821         the CC register. The old expand code is moved to ...
822         (arc_ctzsi2): ... here.
824 2017-07-17  Claudiu Zissulescu  <claziss@synopsys.com>
826         * config/arc/arc.opt (mindexed-loads): Use initial value
827         TARGET_INDEXED_LOADS_DEFAULT.
828         (mauto-modify-reg): Use initial value
829         TARGET_AUTO_MODIFY_REG_DEFAULT.
830         * config/arc/elf.h (TARGET_INDEXED_LOADS_DEFAULT): Define.
831         (TARGET_AUTO_MODIFY_REG_DEFAULT): Likewise.
832         * config/arc/linux.h (TARGET_INDEXED_LOADS_DEFAULT): Define.
833         (TARGET_AUTO_MODIFY_REG_DEFAULT): Likewise.
835 2017-07-17  Martin Liska  <mliska@suse.cz>
837         PR sanitizer/81302
838         * opts.c (finish_options): Do not allow -fgnu-tm
839         w/ -fsanitize={kernel-,}address.  Say sorry.
841 2017-07-17  Bin Cheng  <bin.cheng@arm.com>
843         PR target/81369
844         * tree-loop-distribution.c (classify_partition): Only assert on
845         numer of iterations.
846         (merge_dep_scc_partitions): Delete prameter.  Update function call.
847         (distribute_loop): Remove code handling loop with unknown niters.
848         (pass_loop_distribution::execute): Skip loop with unknown niters.
850 2017-07-17  Bin Cheng  <bin.cheng@arm.com>
852         PR target/81369
853         * tree-loop-distribution.c (merge_dep_scc_partitions): Sink call to
854         function sort_partitions_by_post_order.
856 2017-07-17  Bin Cheng  <bin.cheng@arm.com>
858         PR tree-optimization/81374
859         * tree-loop-distribution.c (pass_loop_distribution::execute): Record
860         the max index of basic blocks, rather than number of basic blocks.
862 2017-07-17  Claudiu Zissulescu  <claziss@synopsys.com>
864         * config/arc/arc-protos.h (arc_legitimate_pc_offset_p): Remove
865         proto.
866         (arc_legitimate_pic_operand_p): Likewise.
867         * config/arc/arc.c (arc_legitimate_pic_operand_p): Remove
868         function.
869         (arc_needs_pcl_p): Likewise.
870         (arc_legitimate_pc_offset_p): Likewise.
871         (arc_legitimate_pic_addr_p): Remove LABEL_REF case, as this
872         function is also used in constrains.md.
873         (arc_legitimate_constant_p): Use arc_legitimate_pic_addr_p to
874         validate pic constants. Handle CONST_INT, CONST_DOUBLE, MINUS and
875         PLUS.  Only return true/false in known cases, otherwise assert.
876         (arc_legitimate_address_p): Remove arc_legitimate_pic_addr_p as it
877         is already called in arc_legitimate_constant_p.
878         * config/arc/arc.h (CONSTANT_ADDRESS_P): Consider also LABEL for
879         pic addresses.
880         (LEGITIMATE_PIC_OPERAND_P): Use
881         arc_raw_symbolic_reference_mentioned_p function.
882         * config/arc/constraints.md (Cpc): Use arc_legitimate_pic_addr_p
883         function.
884         (Cal): Likewise.
885         (C32): Likewise.
887 2017-07-17  Claudiu Zissulescu  <claziss@synopsys.com>
888         Andrew Burgess  <andrew.burgess@embecosm.com>
890         * config/arc/arc-protos.h (arc_compute_function_type): Change prototype.
891         (arc_return_address_register): New function.
892         * config/arc/arc.c (arc_handle_fndecl_attribute): New function.
893         (arc_handle_fndecl_attribute): Add naked attribute.
894         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Define.
895         (TARGET_WARN_FUNC_RETURN): Likewise.
896         (arc_allocate_stack_slots_for_args): New function.
897         (arc_warn_func_return): Likewise.
898         (machine_function): Change type fn_type.
899         (arc_compute_function_type): Consider new naked function type,
900         change function return type.
901         (arc_must_save_register): Adapt to handle new
902         arc_compute_function_type's return type.
903         (arc_expand_prologue): Likewise.
904         (arc_expand_epilogue): Likewise.
905         (arc_return_address_regs): Delete.
906         (arc_return_address_register): New function.
907         (arc_epilogue_uses): Use above function.
908         * config/arc/arc.h (arc_return_address_regs): Delete prototype.
909         (arc_function_type): Change encoding, add naked type.
910         (ARC_INTERRUPT_P): Change to handle the new encoding.
911         (ARC_FAST_INTERRUPT_P): Likewise.
912         (ARC_NORMAL_P): Define.
913         (ARC_NAKED_P): Likewise.
914         (arc_compute_function_type): Delete prototype.
915         * config/arc/arc.md (in_ret_delay_slot): Use
916         arc_return_address_register function.
917         (simple_return): Likewise.
918         (p_return_i): Likewise.
920 2017-07-17  Jakub Jelinek  <jakub@redhat.com>
922         PR tree-optimization/81428
923         * match.pd (X / X -> one): Don't optimize _Fract divisions, as 1
924         can't be built for those types.
926 2017-07-17  Georg-Johann Lay  <avr@gjlay.de>
928         Remove stuff dead since r239246.
930         * config/avr/avr-arch.h (avr_inform_devices): Remove dead proto.
931         * config/avr/avr-devices.c (mcu_name, comparator, avr_mcus_str)
932         (avr_inform_devices): Remove dead stuff.
934 2017-07-17  Tamar Christina  <tamar.christina@arm.com>
936         * config/arm/arm_neon.h: Fix softp typo.
938 2017-07-17  Jakub Jelinek  <jakub@redhat.com>
940         PR tree-optimization/81365
941         * tree-ssa-phiprop.c (propagate_with_phi): When considering hoisting
942         aggregate moves onto bb predecessor edges, make sure there are no
943         loads that could alias the lhs in between the start of bb and the
944         loads from *phi.
946 2017-07-17  Georg-Johann Lay  <avr@gjlay.de>
948         PR 80929
949         * config/avr/avr.c (avr_mul_highpart_cost): New static function.
950         (avr_rtx_costs_1) [TRUNCATE]: Use it to compute mul_highpart cost.
951         [LSHIFTRT, outer_code = TRUNCATE]: Same.
953 2017-07-17  Jakub Jelinek  <jakub@redhat.com>
955         PR tree-optimization/81396
956         * tree-ssa-math-opts.c (struct symbolic_number): Add n_ops field.
957         (init_symbolic_number): Initialize it to 1.
958         (perform_symbolic_merge): Add n_ops from both operands into the new
959         n_ops.
960         (find_bswap_or_nop): Don't consider n->n == cmpnop computations
961         without base_addr as useless if they need more than one operation.
962         (bswap_replace): Handle !bswap case for NULL base_addr.
964 2017-07-17  Tom de Vries  <tom@codesourcery.com>
966         PR target/81069
967         * config/nvptx/nvptx.c (nvptx_single): Insert diverging branch as late
968         as possible.
970 2017-07-17  Sebastian Huber  <sebastian.huber@embedded-brains.de>
972         * config/sparc/rtemself.h (TARGET_OS_CPP_BUILTINS): Add
973         conditional builtin define __FIX_LEON3FT_B2BST.
975 2017-07-17  Daniel Cederman  <cederman@gaisler.com>
977         * config/sparc/t-rtems: Add mfix-gr712rc multilibs. Replace
978         MULTILIB_EXCEPTIONS with MULTILIB_REQUIRED. Match -mfix-gr712rc
979         with -mfix-ut700.
981 2017-07-16  Eric Botcazou  <ebotcazou@adacore.com>
983         PR rtl-optimization/81424
984         * optabs.c (prepare_cmp_insn): Use copy_to_reg instead of force_reg
985         to remove potential trapping from operands if -fnon-call-exceptions.
987 2017-07-16  Jan Hubicka  <hubicka@ucw.cz>
989         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Use
990         profile_proability for scalling.
991         * scale_profile_for_vect_loop.c (scale_profile_for_vect_loop): Likewise.
993 2017-07-16  Jan Hubicka  <hubicka@ucw.cz>
995         * cgraph.c (cgraph_edge::redirect_call_stmt_to_caller): Cleanup.
997 2017-07-16  Jan Hubicka  <hubicka@ucw.cz>
999         * cfgloopmanip.c (scale_loop_profile): Avoid use of REG_BR_PROB_BASE
1000         fixpoint arithmetics.
1002 2017-07-16  Jan Hubicka  <hubicka@ucw.cz>
1004         * tree-ssa-loop-unswitch.c (hoist_guard): Avoid use of REG_BR_PROB_BASE
1005         fixpoint arithmetics.
1007 2017-07-16  Jan Hubicka  <hubicka@ucw.cz>
1009         * asan.c (create_cond_insert_point): Avoid use of REG_BR_PROB_BASE
1010         fixpoint arithmetics.
1012 2017-07-16  Jan Hubicka  <hubicka@ucw.cz>
1014         * profile-count.h (profile_probability::from_reg_br_prob_note,
1015         profile_probability::to_reg_br_prob_note): New functions.
1016         * doc/rtl.texi (REG_BR_PROB_NOTE): Update documentation.
1017         * reg-notes.h (REG_BR_PROB, REG_BR_PRED): Update docs.
1018         * predict.c (probability_reliable_p): Update.
1019         (edge_probability_reliable_p): Update.
1020         (br_prob_note_reliable_p): Update.
1021         (invert_br_probabilities): Update.
1022         (add_reg_br_prob_note): New function.
1023         (combine_predictions_for_insn): Update.
1024         * asan.c (asan_clear_shadow): Update.
1025         * cfgbuild.c (compute_outgoing_frequencies): Update.
1026         * cfgrtl.c (force_nonfallthru_and_redirect): Update.
1027         (update_br_prob_note): Update.
1028         (rtl_verify_edges): Update.
1029         (purge_dead_edges): Update.
1030         (fixup_reorder_chain): Update.
1031         * emit-rtl.c (try_split): Update.
1032         * ifcvt.c (cond_exec_process_insns): Update.
1033         (cond_exec_process_if_block): Update.
1034         (dead_or_predicable): Update.
1035         * internal-fn.c (expand_addsub_overflow): Update.
1036         (expand_neg_overflow): Update.
1037         (expand_mul_overflow): Update.
1038         * loop-doloop.c (doloop_modify): Update.
1039         * loop-unroll.c (compare_and_jump_seq): Update.
1040         * optabs.c (emit_cmp_and_jump_insn_1): Update.
1041         * predict.h: Update.
1042         * reorg.c (mostly_true_jump): Update.
1043         * rtl.h: Update.
1044         * config/aarch64/aarch64.c (aarch64_emit_unlikely_jump): Update.
1045         * config/alpha/alpha.c (emit_unlikely_jump): Update.
1046         * config/arc/arc.c: (emit_unlikely_jump): Update.
1047         * config/arm/arm.c: (emit_unlikely_jump): Update.
1048         * config/bfin/bfin.c (cbranch_predicted_taken_p): Update.
1049         * config/frv/frv.c (frv_print_operand_jump_hint): Update.
1050         * config/i386/i386.c (ix86_expand_split_stack_prologue): Update.
1051         (ix86_print_operand): Update.
1052         (ix86_split_fp_branch): Update.
1053         (predict_jump): Update.
1054         * config/ia64/ia64.c (ia64_print_operand): Update.
1055         * config/mmix/mmix.c (mmix_print_operand): Update.
1056         * config/powerpcspe/powerpcspe.c (output_cbranch): Update.
1057         (rs6000_expand_split_stack_prologue): Update.
1058         * config/rs6000/rs6000.c: Update.
1059         * config/s390/s390.c (s390_expand_vec_strlen): Update.
1060         (s390_expand_vec_movstr): Update.
1061         (s390_expand_cs_tdsi): Update.
1062         (s390_expand_split_stack_prologue): Update.
1063         * config/sh/sh.c (sh_print_operand): Update.
1064         (expand_cbranchsi4): Update.
1065         (expand_cbranchdi4): Update.
1066         * config/sparc/sparc.c (output_v9branch): Update.
1067         * config/spu/spu.c (get_branch_target): Update.
1068         (ea_load_store_inline): Update.
1069         * config/tilegx/tilegx.c (cbranch_predicted_p): Update.
1070         * config/tilepro/tilepro.c: Update.
1072 2017-07-16  Eric Botcazou  <ebotcazou@adacore.com>
1074         * gimplify.c (mostly_copy_tree_r): Revert latest change.
1075         (gimplify_save_expr): Likewise.
1077 2017-07-07  Jan Hubicka  <hubicka@ucw.cz>
1079         * ipa-visibility.c (function_and_variable_visibility): Fix pasto.
1081 2017-07-07  Jan Hubicka  <hubicka@ucw.cz>
1083         * ipa-fnsummary.c (pass_data_ipa_fn_summary): Use
1084         TV_IPA_FNSUMMARY.
1085         * timevar.def (TV_IPA_FNSUMMARY): Define.
1087 2017-07-16  Daniel Cederman  <cederman@gaisler.com>
1089         * config/sparc/sparc.md (divdf3_fix): Add NOP to prevent back
1090         to back store errata sensitive sequence from being generated.
1091         (sqrtdf2_fix): Likewise.
1093 2017-07-07  Jan Hubicka  <hubicka@ucw.cz>
1095         * tree-ssa-threadupdate.c (compute_path_counts,
1096         update_joiner_offpath_counts): Use profile_probability.
1098 2017-07-15  Thomas Preud'homme  <thomas.preudhomme@arm.com>
1100         Revert:
1101         2017-07-14  Thomas Preud'homme  <thomas.preudhomme@arm.com>
1103         * config/arm/arm-c.c (arm_cpu_builtins): Define
1104         __ARM_FEATURE_NUMERIC_MAXMIN solely based on TARGET_VFP5.
1106 2017-07-14  Kelvin Nilsen  <kelvin@gcc.gnu.org>
1108         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
1109         array entries to represent __ieee128 versions of the
1110         scalar_test_data_class, scalar_test_neg, scalar_extract_exp,
1111         scalar_extract_sig, and scalar_insert_exp built-in functions.
1112         (altivec_resolve_overloaded_builtin): Add special case handling
1113         for the __builtin_scalar_insert_exp function, as represented by
1114         the P9V_BUILTIN_VEC_VSIEDP constant.
1115         * config/rs6000/rs6000-builtin.def (VSEEQP): Add scalar extract
1116         exponent support for __ieee128 argument.
1117         (VSESQP): Add scalar extract signature support for __ieee128
1118         argument.
1119         (VSTDCNQP): Add scalar test negative support for __ieee128
1120         argument.
1121         (VSIEQP): Add scalar insert exponent support for __int128 argument
1122         with __ieee128 result.
1123         (VSIEQPF): Add scalar insert exponent support for __ieee128
1124         argument with __ieee128 result.
1125         (VSTDCQP): Add scalar test data class support for __ieee128
1126         argument.
1127         (VSTDCNQP): Add overload support for scalar test negative with
1128         __ieee128 argument.
1129         (VSTDCQP): Add overload support for scalar test data class
1130         __ieee128 argument.
1131         * config/rs6000/vsx.md (UNSPEC_VSX_SXSIG) Replace
1132         UNSPEC_VSX_SXSIGDP.
1133         (UNSPEC_VSX_SIEXPQP): New constant.
1134         (xsxexpqp): New insn for VSX scalar extract exponent quad
1135         precision.
1136         (xsxsigqp): New insn for VSX scalar extract significand quad
1137         precision.
1138         (xsiexpqpf): New insn for VSX scalar insert exponent quad
1139         precision with floating point argument.
1140         (xststdcqp): New expand for VSX scalar test data class quad
1141         precision.
1142         (xststdcnegqp): New expand for VSX scalar test negative quad
1143         precision.
1144         (xststdcqp): New insn to match expansions for VSX scalar test data
1145         class quad precision and VSX scalar test negative quad precision.
1146         * config/rs6000/rs6000.c (rs6000_expand_binop_builtin): Add
1147         special case operand checking to enforce that second operand of
1148         VSX scalar test data class with quad precision argument is a 7-bit
1149         unsigned literal.
1150         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Add
1151         prototypes and descriptions of __ieee128 versions of
1152         scalar_extract_exp, scalar_extract_sig, scalar_insert_exp,
1153         scalar_test_data_class, and scalar_test_neg built-in functions.
1155 2016-07-14  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1157         PR tree-optimization/81162
1158         * gimple-ssa-strength-reduction.c (replace_mult_candidate): Don't
1159         replace a negate with an add.
1161 2017-07-14  James Greenhalgh  <james.greenhalgh@arm.com>
1163         * doc/invoke.texi (arm/-mcpu): Document +crypto.
1165 2017-07-14  Thomas Preud'homme  <thomas.preudhomme@arm.com>
1167         * config/arm/arm-c.c (arm_cpu_builtins): Define
1168         __ARM_FEATURE_NUMERIC_MAXMIN solely based on TARGET_VFP5.
1170 2017-07-14  Thomas Preud'homme  <thomas.preudhomme@arm.com>
1172         * config/arm/arm-cpus.in (cortex-r52): Add new entry.
1173         (armv8-r): Set ARM Cortex-R52 as default CPU.
1174         * config/arm/arm-tables.opt: Regenerate.
1175         * config/arm/arm-tune.md: Regenerate.
1176         * config/arm/driver-arm.c (arm_cpu_table): Add entry for ARM
1177         Cortex-R52.
1178         * doc/invoke.texi: Mention -mtune=cortex-r52 and availability of fp.dp
1179         extension for -mcpu=cortex-r52.
1181 2017-07-14  Thomas Preud'homme  <thomas.preudhomme@arm.com>
1183         * config/arm/arm-isa.h (isa_bit_FP_ARMv8): Delete enumerator.
1184         (ISA_FP_ARMv8): Define as ISA_FPv5 and ISA_FP_D32.
1185         * config/arm/arm-cpus.in (armv8-r): Define fp.sp as enabling FPv5.
1186         (fp-armv8): Define it as FP_ARMv8 only.
1187         config/arm/arm.h (TARGET_FPU_ARMV8): Delete.
1188         (TARGET_VFP_FP16INST): Define using TARGET_VFP5 rather than
1189         TARGET_FPU_ARMV8.
1190         config/arm/arm.c (arm_rtx_costs_internal): Replace checks against
1191         TARGET_FPU_ARMV8 by checks against TARGET_VFP5.
1192         * config/arm/arm-builtins.c (arm_builtin_vectorized_function): Define
1193         first ARM_CHECK_BUILTIN_MODE definition using TARGET_VFP5 rather
1194         than TARGET_FPU_ARMV8.
1195         * config/arm/arm-c.c (arm_cpu_builtins): Likewise for
1196         __ARM_FEATURE_NUMERIC_MAXMIN macro definition.
1197         * config/arm/arm.md (cmov<mode>): Condition on TARGET_VFP5 rather than
1198         TARGET_FPU_ARMV8.
1199         * config/arm/neon.md (neon_vrint): Likewise.
1200         (neon_vcvt): Likewise.
1201         (neon_<fmaxmin_op><mode>): Likewise.
1202         (<fmaxmin><mode>3): Likewise.
1203         * config/arm/vfp.md (l<vrint_pattern><su_optab><mode>si2): Likewise.
1204         * config/arm/predicates.md (arm_cond_move_operator): Check against
1205         TARGET_VFP5 rather than TARGET_FPU_ARMV8 and fix spacing.
1207 2017-07-14  Jackson Woodruff  <jackson.woodruff@arm.com>
1209         * config/aarch64/aarch64.c (aarch64_print_operand): Move comments
1210         to top of function.
1212 2017-07-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1214         * gimple-ssa-store-merging.c (clear_bit_region): Replace reference to
1215         loop in comment with memset.
1217 2017-07-14  Martin Liska  <mliska@suse.cz>
1219         * cfgexpand.c (expand_gimple_basic_block): Remove dead comment.
1220         * dwarf2out.c (is_java): Remove the function.
1221         (output_pubname): Remove usage of the function.
1222         (lower_bound_default): Remove usage of DW_LANG_Java.
1223         (gen_compile_unit_die): Likewise.
1224         * gcc.c: Remove compiler defaults for .java and .zip files.
1225         * gimple-expr.c (remove_suffix): Change as there's no longer
1226         extension than 4-letter one.
1227         * gimplify.c (mostly_copy_tree_r): Remove Java-special part.
1228         (gimplify_save_expr): Likewise.
1229         * ipa-utils.h (polymorphic_type_binfo_p): Remove the comment
1230         as it's possible even for other languages than Java.
1231         * langhooks.h (struct lang_hooks): Remove Java from a comment.
1232         * lto-opts.c (lto_write_options): Remove reference to Java.
1233         * opts.c (strip_off_ending): Update file extension handling.
1234         * tree-cfg.c (verify_gimple_call): Remove comment with Java.
1235         * tree-eh.c (lower_resx): Likewise.
1236         * tree.c (free_lang_data_in_type): Remove dead code.
1237         (find_decls_types_r): Likewise.
1238         (build_common_builtin_nodes): Remove Java from a comment.
1239         (verify_type): Remove dead code.
1240         * varasm.c (assemble_external): Remove Java from a comment.
1242 2017-07-14  Martin Liska  <mliska@suse.cz>
1244         * opts.c (finish_options): Add quotes.
1245         (common_handle_option): Likewise.
1247 2017-07-14  Martin Liska  <mliska@suse.cz>
1249         * dbxout.c (get_lang_number): Do not handle GNU Pascal.
1250         * dbxout.h (extern void dbxout_stab_value_internal_label_diff):
1251         Remove N_SO_PASCAL.
1252         * dwarf2out.c (lower_bound_default): Do not handle
1253         DW_LANG_Pascal83.
1254         (gen_compile_unit_die): Likewise.
1255         * gcc.c: Remove default extension binding for GNU Pascal.
1256         * stmt.c: Remove Pascal language from a comment.
1257         * xcoffout.c: Likewise.
1259 2017-07-13  David Malcolm  <dmalcolm@redhat.com>
1261         PR c/81405
1262         * diagnostic-show-locus.c (fixit_cmp): New function.
1263         (layout::layout): Sort m_fixit_hints.
1264         (column_range::column_range): Assert that the values are valid.
1265         (struct char_span): New struct.
1266         (correction::overwrite): New method.
1267         (struct source_line): New struct.
1268         (line_corrections::add_hint): Add assertions.  Reimplement memcpy
1269         calls in terms of classes source_line and char_span, and
1270         correction::overwrite.
1271         (selftest::test_overlapped_fixit_printing_2): New function.
1272         (selftest::diagnostic_show_locus_c_tests): Call it.
1274 2017-07-13  Will Schmidt  <will_schmidt@vnet.ibm.com>
1276         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Return
1277         early if there is no lhs.
1279 2017-07-13  Martin Liska  <mliska@suse.cz>
1281         * dwarf2out.c (gen_pointer_type_die): Remove dead code.
1282         (gen_reference_type_die): Likewise.
1283         * stor-layout.c: Remove Pascal-related comment.
1285 2017-07-13  Martin Liska  <mliska@suse.cz>
1287         * opts.c (finish_options): Add quotes to error messages.
1288         (parse_sanitizer_options): Likewise.
1290 2017-07-13  Thomas Preud'homme  <thomas.preudhomme@arm.com>
1292         * doc/invoke.texi (armv8-r): Document +fp.sp ARMv8-R extension.
1294 2017-07-13  Richard Earnshaw  <rearnsha@arm.com>
1296         * config/arm/vxworks.h (TARGET_ENDIAN_DEFAULT): Define.
1298 2017-07-13  Maxim Ostapenko  <m.ostapenko@samsung.com>
1300         * asan.c (asan_emit_allocas_unpoison): Use ptr_mode for arguments
1301         during expansion.
1302         * builtins.c (expand_asan_emit_allocas_unpoison): Likewise.
1304 2017-07-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
1306         PR target/81193
1307         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): If GLIBC
1308         provides the hardware capability bits, define the macro
1309         __BUILTIN_CPU_SUPPORTS__.
1310         * config/rs6000/rs6000.c (cpu_expand_builtin): Generate a warning
1311         if GLIBC does not provide the hardware capability bits.  Add a
1312         gcc_unreachable call if the built-in cpu function is neither
1313         __builtin_cpu_is nor __builtin_cpu_supports.
1314         (rs6000_get_function_versions_dispatcher): Change the warning
1315         that an old GLIBC is used which does not export the capability
1316         bits to be an error.
1317         * doc/extend.texi (target_clones attribute): Document the
1318         restriction that GLIBC 2.23 or newer is needed on the PowerPC.
1319         (PowerPC built-in functions): Document that GLIBC 2.23 or newer is
1320         needed by __builtin_cpu_is and __builtin_cpu_supports.  Document
1321         the macros defined by GCC if the newer GLIBC is available.
1323 2017-07-12  Jeff Law  <law@redhat.com>
1325         * config/riscv/riscv.c: Remove unnecessary includes.  Reorder
1326         remaining includes slightly.
1327         * config/riscv/riscv-builtins.c: Include profile-count.h.
1329 2017-07-12  Georg-Johann Lay  <avr@gjlay.de>
1331         PR target/79883
1332         * config/avr/avr.c (avr_set_current_function): In diagnostic
1333         messages: Quote keywords and (parts of) identifiers.
1334         [WITH_AVRLIBC]: Warn for functions named "ISR", "SIGNAL" or
1335         "INTERUPT".
1337 2017-07-12  Carl Love  <cel@us.ibm.com>
1339         * config/rs6000/rs6000-c.c: Add support for built-in functions
1340         vector bool char vec_revb (vector bool char);
1341         vector bool short vec_revb (vector short char);
1342         vector bool int vec_revb (vector bool int);
1343         vector bool long long vec_revb (vector bool long long);
1344         * doc/extend.texi: Update the built-in documentation file for the
1345         new built-in functions.
1347 2017-07-12  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
1349         * config/s390/s390.md: Remove movcc splitter.
1351 2017-07-12  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
1353         * config/s390/s390.c (s390_rtx_costs): Return proper costs for
1354         load/store on condition.
1356 2017-07-12  Georg-Johann Lay  <avr@gjlay.de>
1358         PR target/81407
1359         * config/avr/avr.c (avr_encode_section_info)
1360         [progmem && !TREE_READONLY]: Error if progmem object needs
1361         constructing.
1363 2017-07-11  Michael Collison  <michael.collison@arm.com>
1365         * config/aarch64/aarch64-simd.md (aarch64_sub<mode>_compare0):
1366         New pattern.
1368 2017-07-11  Carl Love  <cel@us.ibm.com>
1370         * config/rs6000/rs6000-c.c: Add support for builtins
1371         vector unsigned int vec_parity_lsbb (vector signed int);
1372         vector unsigned int vec_parity_lsbb (vector unsigned int);
1373         vector unsigned __int128 vec_parity_lsbb (vector signed __int128);
1374         vector unsigned __int128 vec_parity_lsbb (vector unsigned __int128);
1375         vector unsigned long long vec_parity_lsbb (vector signed long long);
1376         vector unsigned long long vec_parity_lsbb (vector unsigned long long);
1377         * config/rs6000/rs6000-builtin.def (VPARITY_LSBB): Add BU_P9V_OVERLOAD1.
1378         * config/rs6000/altivec.h (vec_parity_lsbb): Add define.
1379         * doc/extend.texi: Update the built-in documentation file for the
1380         new built-in functions.
1382 2017-07-11  David Malcolm  <dmalcolm@redhat.com>
1384         * diagnostic-show-locus.c: Include "gcc-rich-location.h".
1385         (layout::m_primary_loc): New field.
1386         (layout::layout): Initialize new field.  Move location filtering
1387         logic from here to...
1388         (layout::maybe_add_location_range): ...this new method.  Add
1389         support for filtering to just the lines already specified by other
1390         locations.
1391         (layout::will_show_line_p): New method.
1392         (gcc_rich_location::add_location_if_nearby): New method.
1393         (selftest::test_add_location_if_nearby): New test function.
1394         (selftest::diagnostic_show_locus_c_tests): Call it.
1395         * gcc-rich-location.h (gcc_rich_location::add_location_if_nearby):
1396         New method.
1398 2017-07-11  Tom de Vries  <tom@codesourcery.com>
1400         * config/nvptx/nvptx.c (WORKAROUND_PTXJIT_BUG): New macro.
1401         (bb_first_real_insn): New function.
1402         (nvptx_single): Add extra initialization of broadcasted condition
1403         variables.
1405 2017-07-11  Nathan Sidwell  <nathan@acm.org>
1407         * dwarf2out.c (gen_member_die): Remove useless check for anon ctors.
1409 2017-07-11  Georg-Johann Lay  <avr@gjlay.de>
1411         * doc/extend.texi (AVR Function Attributes): Remove weblink to
1412         Binutils doc as TEXI will mess them up.
1413         * doc/invoke.texi (AVR Options): Same here.
1415 2017-07-11  Daniel Cederman  <cederman@gaisler.com>
1417         * config/sparc/sparc.opt (mfix-ut700): New option.
1418         (mfix-gr712rc): Likewise.
1419         (sparc_fix_b2bst): New variable.
1420         * doc/invoke.texi (SPARC options): Document them.
1421         (ARM options): Fix warnings.
1422         * config/sparc/sparc.c (sparc_do_work_around_errata): Insert NOP
1423         instructions to prevent sequences that can trigger the store-store
1424         errata for certain LEON3FT processors.
1425         (pass_work_around_errata::gate): Also test sparc_fix_b2bst.
1426         (sparc_option_override): Set sparc_fix_b2bst appropriately.
1427         * config/sparc/sparc.md (fix_b2bst): New attribute.
1428         (in_branch_delay): Prevent stores in delay slot if fix_b2bst.
1430 2017-07-10  Uros Bizjak  <ubizjak@gmail.com>
1432         PR target/81375
1433         * config/i386/i386.md (divsf3): Add TARGET_SSE to TARGET_SSE_MATH.
1434         (rcpps): Ditto.
1435         (*rsqrtsf2_sse): Ditto.
1436         (rsqrtsf2): Ditto.
1437         (div<mode>3): Macroize insn from divdf3 and divsf3
1438         using MODEF mode iterator.
1440 2017-07-10  Martin Sebor  <msebor@redhat.com>
1442         PR tree-optimization/80397
1443         * gimple-ssa-sprintf.c (format_integer): Use INTEGRAL_TYPE_P()
1444         instead of testing for equality to INTEGER_TYPE.
1446 2017-07-10  Vineet Gupta <vgupta@synopsys.com>
1448         * config.gcc: Remove uclibc from arc target spec.
1450 2017-07-10  Claudiu Zissulescu  <claziss@synopsys.com>
1452         * config/arc/arc.h (ADDITIONAL_REGISTER_NAMES): Define.
1454 2017-07-07  Jan Hubicka  <hubicka@ucw.cz>
1456         PR lto/80838
1457         * lto-wrapper.c (remove_option): New function.
1458         (merge_and_complain): Merge PIC/PIE options more realistically.
1460 2017-07-10  Georg-Johann Lay  <avr@gjlay.de>
1462         Better ISR prologues by supporting GASes __gcc_isr pseudo insn.
1464         PR target/20296
1465         PR target/81268
1466         * configure.ac [target=avr]: Add GAS check for -mgcc-isr.
1467         (HAVE_AS_AVR_MGCCISR_OPTION):  If so, AC_DEFINE it.
1468         * config.in: Regenerate.
1469         * configure: Regenerate.
1470         * doc/extend.texi (AVR Function Attributes) <no_gccisr>: Document it.
1471         * doc/invoke.texi (AVR Options) <-mgas-isr-prologues>: Document it.
1472         * config/avr/avr.opt (-mgas-isr-prologues): New option and...
1473         (TARGET_GASISR_PROLOGUES): ...target mask.
1474         * common/config/avr/avr-common.c
1475         (avr_option_optimization_table) [OPT_LEVELS_1_PLUS_NOT_DEBUG]:
1476         Set -mgas-isr-prologues.
1477         * config/avr/avr-passes.def (avr_pass_pre_proep): Add
1478         INSERT_PASS_BEFORE for it.
1479         * config/avr/avr-protos.h (make_avr_pass_pre_proep): New proto.
1480         * config/avr/avr.c (avr_option_override)
1481         [!HAVE_AS_AVR_MGCCISR_OPTION]: Unset TARGET_GASISR_PROLOGUES.
1482         (avr_no_gccisr_function_p, avr_hregs_split_reg): New static functions.
1483         (avr_attribute_table) <no_gccisr>: Add new function attribute.
1484         (avr_set_current_function) <is_no_gccisr>: Init machine field.
1485         (avr_pass_data_pre_proep, avr_pass_pre_proep): New pass data
1486         and rtl_opt_pass.
1487         (make_avr_pass_pre_proep): New function.
1488         (emit_push_sfr) <treg>: Add argument to function and use it
1489         instead of TMP_REG.
1490         (avr_expand_prologue) [machine->gasisr.maybe]: Emit gasisr insn
1491         and set machine->gasisr.yes.
1492         (avr_expand_epilogue) [machine->gasisr.yes]: Similar.
1493         (avr_asm_function_end_prologue) [machine->gasisr.yes]: Add
1494         __gcc_isr.n_pushed to .L__stack_usage.
1495         (TARGET_ASM_FINAL_POSTSCAN_INSN): Define to...
1496         (avr_asm_final_postscan_insn): ...this new static function.
1497         * config/avr/avr.h (machine_function)
1498         <is_no_gccisr, use_L__stack_usage>: New fields.
1499         <gasisr, gasisr.yes, gasisr.maybe, gasisr.regno>: New fields.
1500         * config/avr/avr.md (UNSPECV_GASISR): Add unspecv enum.
1501         (GASISR_Prologue, GASISR_Epilogue, GASISR_Done): New define_constants.
1502         (gasisr, *gasisr): New expander and insn.
1503         * config/avr/gen-avr-mmcu-specs.c (print_mcu)
1504         [HAVE_AS_AVR_MGCCISR_OPTION]: Print asm_gccisr spec.
1505         * config/avr/specs.h (ASM_SPEC) <asm_gccisr>: Add sub spec.
1507 2017-07-10  Richard Earnshaw  <rearnsha@arm.com>
1509         * config/arm/parsecpu.awk (gen_comm_data): Do not escape single quotes
1510         in quoted strings.
1512 2017-07-10  Georg-Johann Lay  <avr@gjlay.de>
1514         Move jump-tables out of .text again.
1516         PR target/81075
1517         * config/avr/avr.c (ASM_OUTPUT_ADDR_VEC_ELT): Remove function.
1518         (ASM_OUTPUT_ADDR_VEC): New function.
1519         (avr_adjust_insn_length) [JUMP_TABLE_DATA_P]: Return 0.
1520         (avr_final_prescan_insn) [avr_log.insn_addresses]: Dump
1521         INSN_ADDRESSes as asm comment.
1522         * config/avr/avr.h (JUMP_TABLES_IN_TEXT_SECTION): Adjust comment.
1523         (ASM_OUTPUT_ADDR_VEC_ELT): Remove define.
1524         (ASM_OUTPUT_ADDR_VEC): Define to avr_output_addr_vec.
1525         * config/avr/avr.md (*tablejump): Adjust comment.
1526         * config/avr/elf.h (ASM_OUTPUT_BEFORE_CASE_LABEL): Remove.
1527         * config/avr/avr-log.c (avr_log_set_avr_log) <insn_addresses>:
1528         New detail.
1529         * config/avr/avr-protos.h (avr_output_addr_vec_elt): Remove proto.
1530         (avr_output_addr_vec): New proto.
1531         (avr_log_t) <insn_addresses>: New field.
1533 2017-07-09  H.J. Lu  <hongjiu.lu@intel.com>
1535         PR target/81313
1536         * config/i386/i386.c (ix86_function_arg_advance): Set
1537         outgoing_args_on_stack to true if there are outgoing arguments
1538         on stack.
1539         (ix86_function_arg): Likewise.
1540         (ix86_get_drap_rtx): Use DRAP only if there are outgoing
1541         arguments on stack and ACCUMULATE_OUTGOING_ARGS is false.
1542         * config/i386/i386.h (machine_function): Add
1543         outgoing_args_on_stack.
1545 2017-07-09  Krister Walfridsson  <krister.walfridsson@gmail.com>
1547         * config.gcc (*-*-netbsd*): Remove check for NetBSD versions not
1548         supporting pthreds.
1549         * config/netbsd.h (NETBSD_LIBGCC_SPEC): Always enable pthreads.
1551 2017-07-08  Richard Sandiford  <richard.sandiford@linaro.org>
1553         * Makefile.in (HOOKS_H, RTL_BASE_H, FUNCTION_H, EXPR_H, REGS_H)
1554         (REAL_H): Remove $(MACHMODE_H).
1555         (FIXED_VALUE_H, TREE_CORE_H, CFGLOOP_H): Remove $(MACHMODE_H) and
1556         double-int.h.
1557         (CORETYPES_H): Add signop.h, wide-int.h, wide-int-print.h,
1558         $(MACHMODE_H) and double-int.h.
1559         (build/min-insn-modes.o): Depend on $(CORETYPES_H) rather than
1560         $(MACHMODE_H).
1561         (gengtype-state.o, gengtype.o, build/gengtype.o): Don't depend on
1562         double-int.h.
1564 2017-07-07  Andrew Pinski  <apinski@cavium.com>
1566         * config/aarch64/aarch64.c (aarch_macro_fusion_pair_p): Check
1567         prev_set and curr_set for AARCH64_FUSE_ALU_BRANCH.
1569 2017-07-07  Michael Meissner  <meissner@linux.vnet.ibm.com>
1571         * config/rs6000/rs6000.c (rs6000_get_function_versions_dispatcher):
1572         Add warning if GCC was not configured to link against a GLIBC that
1573         exports the hardware capability bits.
1574         (make_resolver_func): Make resolver function private and not a
1575         COMDAT function.  Create the name with clone_function_name instead
1576         of make_unique_name.
1578         PR target/81348
1579         * config/rs6000/rs6000.md (HI sign_extend splitter): Use the
1580         correct operand in doing the split.
1582 2017-07-07 Carl Love  <cel@us.ibm.com>
1584         * config/rs6000/rs6000-c: Add support for built-in function
1585         vector unsigned short vec_pack_to_short_fp32 (vector float,
1586                                                       vector float).
1587         * config/rs6000/rs6000-builtin.def (CONVERT_4F32_8I16): Add
1588         BU_P9V_AV_2 and BU_P9V_OVERLOAD_2 definitions.
1589         * config/rs6000/altivec.h (vec_pack_to_short_fp32): Add define.
1590         * config/rs6000/altivec.md(UNSPEC_CONVERT_4F32_8I16): Add UNSPEC.
1591         (convert_4f32_8i16): Add define_expand.
1592         * doc/extend.texi: Update the built-in documentation file for the
1593         new built-in function.
1595 2017-07-07  Jose E. Marchesi  <jose.marchesi@oracle.com>
1597         * config/sparc/m8.md: New file.
1598         * config/sparc/sparc.md: Include m8.md.
1600 2017-07-07  Jose E. Marchesi  <jose.marchesi@oracle.com>
1602         * config/sparc/sparc.opt: New option -mvis4b.
1603         * config/sparc/sparc.c (dump_target_flag_bits): Handle MASK_VIS4B.
1604         (sparc_option_override): Handle VIS4B.
1605         (enum sparc_builtins): Define
1606         SPARC_BUILTIN_DICTUNPACK{8,16,32},
1607         SPARC_BUILTIN_FPCMP{LE,GT,EQ,NE}{8,16,32}SHL,
1608         SPARC_BUILTIN_FPCMPU{LE,GT}{8,16,32}SHL,
1609         SPARC_BUILTIN_FPCMPDE{8,16,32}SHL and
1610         SPARC_BUILTIN_FPCMPUR{8,16,32}SHL.
1611         (check_constant_argument): New function.
1612         (sparc_vis_init_builtins): Define builtins
1613         __builtin_vis_dictunpack{8,16,32},
1614         __builtin_vis_fpcmp{le,gt,eq,ne}{8,16,32}shl,
1615         __builtin_vis_fpcmpu{le,gt}{8,16,32}shl,
1616         __builtin_vis_fpcmpde{8,16,32}shl and
1617         __builtin_vis_fpcmpur{8,16,32}shl.
1618         (sparc_expand_builtin): Check that the constant operands to
1619         __builtin_vis_fpcmp*shl and _builtin_vis_dictunpack* are indeed
1620         constant and in range.
1621         * config/sparc/sparc-c.c (sparc_target_macros): Handle
1622         TARGET_VIS4B.
1623         * config/sparc/sparc.h (SPARC_IMM2_P): Define.
1624         (SPARC_IMM5_P): Likewise.
1625         * config/sparc/sparc.md (cpu_feature): Add new feagure "vis4b".
1626         (enabled): Handle vis4b.
1627         (UNSPEC_DICTUNPACK): New unspec.
1628         (UNSPEC_FPCMPSHL): Likewise.
1629         (UNSPEC_FPUCMPSHL): Likewise.
1630         (UNSPEC_FPCMPDESHL): Likewise.
1631         (UNSPEC_FPCMPURSHL): Likewise.
1632         (cpu_feature): New CPU feature `vis4b'.
1633         (dictunpack{8,16,32}): New insns.
1634         (FPCSMODE): New mode iterator.
1635         (fpcscond): New code iterator.
1636         (fpcsucond): Likewise.
1637         (fpcmp{le,gt,eq,ne}{8,16,32}{si,di}shl): New insns.
1638         (fpcmpu{le,gt}{8,16,32}{si,di}shl): Likewise.
1639         (fpcmpde{8,16,32}{si,di}shl): Likewise.
1640         (fpcmpur{8,16,32}{si,di}shl): Likewise.
1641         * config/sparc/constraints.md: Define constraints `q' for unsigned
1642         2-bit integer constants and `t' for unsigned 5-bit integer
1643         constants.
1644         * config/sparc/predicates.md (imm5_operand_dictunpack8): New
1645         predicate.
1646         (imm5_operand_dictunpack16): Likewise.
1647         (imm5_operand_dictunpack32): Likewise.
1648         (imm2_operand): Likewise.
1649         * doc/invoke.texi (SPARC Options): Document -mvis4b.
1650         * doc/extend.texi (SPARC VIS Built-in Functions): Document the
1651         ditunpack* and fpcmp*shl builtins.
1653 2017-07-07  Jose E. Marchesi  <jose.marchesi@oracle.com>
1655         * config.gcc: Handle m8 in --with-{cpu,tune} options.
1656         * config.in: Add HAVE_AS_SPARC6 define.
1657         * config/sparc/driver-sparc.c (cpu_names): Add entry for the SPARC
1658         M8.
1659         * config/sparc/sol2.h (CPP_CPU64_DEFAULT_SPEC): Define for
1660         TARGET_CPU_m8.
1661         (ASM_CPU32_DEFAUILT_SPEC): Likewise.
1662         (CPP_CPU_SPEC): Handle m8.
1663         (ASM_CPU_SPEC): Likewise.
1664         * config/sparc/sparc-opts.h (enum processor_type): Add
1665         PROCESSOR_M8.
1666         * config/sparc/sparc.c (m8_costs): New struct.
1667         (sparc_option_override): Handle TARGET_CPU_m8.
1668         (sparc32_initialize_trampoline): Likewise.
1669         (sparc64_initialize_trampoline): Likewise.
1670         (sparc_issue_rate): Likewise.
1671         (sparc_register_move_cost): Likewise.
1672         * config/sparc/sparc.h (TARGET_CPU_m8): Define.
1673         (CPP_CPU64_DEFAULT_SPEC): Define for M8.
1674         (ASM_CPU64_DEFAULT_SPEC): Likewise.
1675         (CPP_CPU_SPEC): Handle M8.
1676         (ASM_CPU_SPEC): Likewise.
1677         (AS_M8_FLAG): Define.
1678         * config/sparc/sparc.md: Add m8 to the cpu attribute.
1679         * config/sparc/sparc.opt: New option -mcpu=m8 for sparc targets.
1680         * configure.ac (HAVE_AS_SPARC6): Check for assembler support for
1681         M8 instructions.
1682         * configure: Regenerate.
1683         * doc/invoke.texi (SPARC Options): Document -mcpu=m8 and
1684         -mtune=m8.
1686 2017-07-07  Jose E. Marchesi  <jose.marchesi@oracle.com>
1688         * config/sparc/niagara7.md: Rework the DFA scheduler to use insn
1689         subtypes.
1690         * config/sparc/sparc.md: Remove the `v3pipe' insn attribute.
1691         ("*movdi_insn_sp32"): Do not set v3pipe.
1692         ("*movsi_insn"): Likewise.
1693         ("*movdi_insn_sp64"): Likewise.
1694         ("*movsf_insn"): Likewise.
1695         ("*movdf_insn_sp32"): Likewise.
1696         ("*movdf_insn_sp64"): Likewise.
1697         ("*zero_extendsidi2_insn_sp64"): Likewise.
1698         ("*sign_extendsidi2_insn"): Likewise.
1699         ("*mov<VM32:mode>_insn"): Likewise.
1700         ("*mov<VM64:mode>_insn_sp64"): Likewise.
1701         ("*mov<VM64:mode>_insn_sp32"): Likewise.
1702         ("<plusminus_insn><VADDSUB:mode>3"): Likewise.
1703         ("<vlop:code><VL:mode>3"): Likewise.
1704         ("*not_<vlop:code><VL:mode>3"): Likewise.
1705         ("*nand<VL:mode>_vis"): Likewise.
1706         ("*<vlnotop:code>_not1<VL:mode>_vis"): Likewise.
1707         ("*<vlnotop:code>_not2<VL:mode>_vis"): Likewise.
1708         ("one_cmpl<VL:mode>2"): Likewise.
1709         ("faligndata<VM64:mode>_vis"): Likewise.
1710         ("alignaddrsi_vis"): Likewise.
1711         ("alignaddrdi_vis"): Likweise.
1712         ("alignaddrlsi_vis"): Likewise.
1713         ("alignaddrldi_vis"): Likewise.
1714         ("fcmp<gcond:code><GCM:gcm_name><P:mode>_vis"): Likewise.
1715         ("bmaskdi_vis"): Likewise.
1716         ("bmasksi_vis"): Likewise.
1717         ("bshuffle<VM64:mode>_vis"): Likewise.
1718         ("cmask8<P:mode>_vis"): Likewise.
1719         ("cmask16<P:mode>_vis"): Likewise.
1720         ("cmask32<P:mode>_vis"): Likewise.
1721         ("pdistn<P:mode>_vis"): Likewise.
1722         ("<vis3_addsub_ss_patname><VASS:mode>3"): Likewise.
1724 2017-07-07  Jose E. Marchesi  <jose.marchesi@oracle.com>
1726         * config/sparc/sparc.md ("subtype"): New insn attribute.
1727         ("*wrgsr_sp64"): Set insn subtype.
1728         ("*rdgsr_sp64"): Likewise.
1729         ("alignaddrsi_vis"): Likewise.
1730         ("alignaddrdi_vis"): Likewise.
1731         ("alignaddrlsi_vis"): Likewise.
1732         ("alignaddrldi_vis"): Likewise.
1733         ("<plusminus_insn><VADDSUB:mode>3"): Likewise.
1734         ("fexpand_vis"): Likewise.
1735         ("fpmerge_vis"): Likewise.
1736         ("faligndata<VM64:mode>_vis"): Likewise.
1737         ("bshuffle<VM64:mode>_vis"): Likewise.
1738         ("cmask8<P:mode>_vis"): Likewise.
1739         ("cmask16<P:mode>_vis"): Likewise.
1740         ("cmask32<P:mode>_vis"): Likewise.
1741         ("fchksm16_vis"): Likewise.
1742         ("v<vis3_shift_patname><GCM:mode>3"): Likewise.
1743         ("fmean16_vis"): Likewise.
1744         ("fp<plusminus_insn>64_vis"): Likewise.
1745         ("<plusminus_insn>v8qi3"): Likewise.
1746         ("<vis3_addsub_ss_patname><VASS:mode>3"): Likewise.
1747         ("<vis4_minmax_patname><VMMAX:mode>3"): Likewise.
1748         ("<vis4_uminmax_patname><VMMAX:mode>3"): Likewise.
1749         ("<vis3_addsub_ss_patname>v8qi3"): Likewise.
1750         ("<vis4_addsub_us_patname><VAUS:mode>3"): Likewise.
1751         ("*movqi_insn"): Likewise.
1752         ("*movhi_insn"): Likewise.
1753         ("*movsi_insn"): Likewise.
1754         ("movsi_pic_gotdata_op"): Likewise.
1755         ("*movdi_insn_sp32"): Likewise.
1756         ("*movdi_insn_sp64"): Likewise.
1757         ("movdi_pic_gotdata_op"): Likewise.
1758         ("*movsf_insn"): Likewise.
1759         ("*movdf_insn_sp32"): Likewise.
1760         ("*movdf_insn_sp64"): Likewise.
1761         ("*zero_extendhisi2_insn"): Likewise.
1762         ("*zero_extendqihi2_insn"): Likewise.
1763         ("*zero_extendqisi2_insn"): Likewise.
1764         ("*zero_extendqidi2_insn"): Likewise.
1765         ("*zero_extendhidi2_insn"): Likewise.
1766         ("*zero_extendsidi2_insn_sp64"): Likewise.
1767         ("ldfsr"): Likewise.
1768         ("prefetch_64"): Likewise.
1769         ("prefetch_32"): Likewise.
1770         ("tie_ld32"): Likewise.
1771         ("tie_ld64"): Likewise.
1772         ("*tldo_ldub_sp32"): Likewise.
1773         ("*tldo_ldub1_sp32"): Likewise.
1774         ("*tldo_ldub2_sp32"): Likewise.
1775         ("*tldo_ldub_sp64"): Likewise.
1776         ("*tldo_ldub1_sp64"): Likewise.
1777         ("*tldo_ldub2_sp64"): Likewise.
1778         ("*tldo_ldub3_sp64"): Likewise.
1779         ("*tldo_lduh_sp32"): Likewise.
1780         ("*tldo_lduh1_sp32"): Likewise.
1781         ("*tldo_lduh_sp64"): Likewise.
1782         ("*tldo_lduh1_sp64"): Likewise.
1783         ("*tldo_lduh2_sp64"): Likewise.
1784         ("*tldo_lduw_sp32"): Likewise.
1785         ("*tldo_lduw_sp64"): Likewise.
1786         ("*tldo_lduw1_sp64"): Likewise.
1787         ("*tldo_ldx_sp64"): Likewise.
1788         ("*mov<VM32:mode>_insn"): Likewise.
1789         ("*mov<VM64:mode>_insn_sp64"): Likewise.
1790         ("*mov<VM64:mode>_insn_sp32"): Likewise.
1792 2017-07-07  Jose E. Marchesi  <jose.marchesi@oracle.com>
1794         * config/sparc/sparc.md ("type"): New insn type viscmp.
1795         ("fcmp<gcond:code><GCM:gcm_name><P:mode>_vis"): Set insn type to
1796         viscmp.
1797         ("fpcmp<gcond:code>8<P:mode>_vis"): Likewise.
1798         ("fucmp<gcond:code>8<P:mode>_vis"): Likewise.
1799         ("fpcmpu<gcond:code><GCM:gcm_name><P:mode>_vis"): Likewise.
1800         * config/sparc/niagara7.md ("n7_vis_logical_v3pipe"): Handle
1801         viscmp.
1802         ("n7_vis_logical_11cycle"): Likewise.
1803         * config/sparc/niagara4.md ("n4_vis_logical"): Likewise.
1804         * config/sparc/niagara2.md ("niag3_vis": Likewise.
1805         * config/sparc/niagara.md ("niag_vis"): Likewise.
1806         * config/sparc/ultra3.md ("us3_fga"): Likewise.
1807         * config/sparc/ultra1_2.md ("us1_fga_double"): Likewise.
1809 2017-07-07  Jose E. Marchesi  <jose.marchesi@oracle.com>
1811         * config/sparc/sparc.md: New instruction type `bmask'.
1812         (bmaskdi_vis): Use the `bmask' type.
1813         (bmasksi_vis): Likewise.
1814         * config/sparc/ultra3.md (us3_array): Likewise.
1815         * config/sparc/niagara7.md (n7_array): Likewise.
1816         * config/sparc/niagara4.md (n4_array): Likewise.
1817         * config/sparc/niagara2.md (niag2_vis): Likewise.
1818         (niag3_vis): Likewise.
1819         * config/sparc/niagara.md (niag_vis): Likewise.
1821 2017-07-06  Jan Hubicka  <hubicka@ucw.cz>
1823         * ipa-comdats.c: Remove optimize check from gate.
1824         * ipa-fnsummary.c (ipa_fn_summary_generate): do not generate summary
1825         for functions not optimized.
1826         (ipa_fn_summary_read): Skip optimize check.
1827         (ipa_fn_summary_write): Likewise.
1828         * ipa-inline-analysis.c (do_estimate_growth_1): Check that caller
1829         is optimized.
1830         * ipa-inline.c (can_inline_edge_p): Not optimized functions are
1831         uninlinable.
1832         (can_inline_edge_p): Check flag_pcc_struct_return for match.
1833         (check_callers): Give up on caller which is not optimized.
1834         (inline_small_functions): Likewise.
1835         (ipa_inline): Do not give up when not optimizing.
1836         * ipa-visbility.c (function_and_variable_visibility): Do not optimize
1837         away unoptimizes cdtors.
1838         (whole_program_function_and_variable_visibility): Do
1839         ipa_discover_readonly_nonaddressable_vars in LTO mode.
1840         * ipa.c (process_references): Do not check optimize.
1841         (symbol_table::remove_unreachable_nodes): Update optimize check.
1842         (set_writeonly_bit): Update optimize check.
1843         (pass_ipa_cdtor_merge::gate): Do not check optimize.
1844         (pass_ipa_single_use::gate): Remove.
1846 2017-07-06  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
1848         * config/rs6000/rs6000.c (union_defs, union_uses, insn_is_load_p,
1849         insn_is_store_p, insn_is_swap_p, const_load_sequence_p, v2df_reduction_p,
1850         rtx_is_swappable_p, insn_is_swappable_p, chain_contains_only_swaps,
1851         mark_swaps_for_removal, swap_const_vector_halves, adjust_subreg_index,
1852         permute_load, permute_store, adjust_extract, adjust_splat,
1853         adjust_xxpermdi, adjust_concat, adjust_vperm, handle_special_swappables,
1854         replace_swap_with_copy, dump_swap_insn_table,
1855         alignment_with_canonical_addr, alignment_mask, find_alignment_op,
1856         recombine_lvx_pattern, recombine_stvx_pattern,
1857         recombine_lvx_stvx_patterns, rs6000_analyze_swaps,
1858         make_pass_analyze_swaps): Move all code related to p8 swap optimizations
1859         to file rs6000-p8swap.c.
1860         * config/rs6000/rs6000-p8swap.c: New file.
1861         * config/rs6000/t-rs6000: Add rule to build rs6000-p8swap.o.
1862         * config.gcc: Add rs6000-p8swap.o to extra_objs for powerpc*-*-*
1863         and rs6000*-*-* targets.
1865 2017-07-06  David Malcolm  <dmalcolm@redhat.com>
1867         * Makefile.in (selftest): Remove dependency on s-selftest-c++.
1869 2017-07-06  Jan Hubicka  <hubicka@ucw.cz>
1871         * lto-wrapper.c (merge_and_complain): Do not merge
1872         fexceptions, fnon_call_exceptions, ftrapv, ffp_contract_, fmath_errno,
1873         fsigned_zeros, ftrapping_math, fwrapv.
1874         (append_compiler_options): Do not track these options.
1875         (append_linker_options): Likewie
1877 2017-07-06  Jan Hubicka  <hubicka@ucw.cz>
1879         * cgraphunit.c (cgraph_node::finalize_function): When
1880         !flag_toplevel_reorde set no_reorder flag.
1881         (varpool_node::finalize_decl): Likewise.
1882         (symbol_table::compile): Drop no toplevel reorder path.
1884 2017-07-06  Jan Hubicka  <hubicka@ucw.cz>
1886         * bb-reorder.c (better_edge_p): Do not build traces across abnormal/eh
1887         edges; zero probability is not better than uninitialized.
1889 2017-07-06  Maxim Ostapenko  <m.ostapenko@samsung.com>
1891         * asan.h (asan_sanitize_allocas_p): Declare.
1892         * asan.c (asan_sanitize_allocas_p): New function.
1893         (handle_builtin_stack_restore): Bail out if !asan_sanitize_allocas_p.
1894         (handle_builtin_alloca): Likewise.
1895         * cfgexpand.c (expand_used_vars): Do not add allocas unpoisoning stuff
1896         if !asan_sanitize_allocas_p.
1897         * params.def (asan-instrument-allocas): Add new option.
1898         * params.h (ASAN_PROTECT_ALLOCAS): Define.
1899         * opts.c (common_handle_option): Disable allocas sanitization for
1900         KASan by default.
1902 2017-07-06  Maxim Ostapenko  <m.ostapenko@samsung.com>
1904         * asan.c: Include gimple-fold.h.
1905         (get_last_alloca_addr): New function.
1906         (handle_builtin_stackrestore): Likewise.
1907         (handle_builtin_alloca): Likewise.
1908         (asan_emit_allocas_unpoison): Likewise.
1909         (get_mem_refs_of_builtin_call): Add new parameter, remove const
1910         quallifier from first paramerer. Handle BUILT_IN_ALLOCA,
1911         BUILT_IN_ALLOCA_WITH_ALIGN and BUILT_IN_STACK_RESTORE builtins.
1912         (instrument_builtin_call): Pass gimple iterator to
1913         get_mem_refs_of_builtin_call.
1914         (last_alloca_addr): New global.
1915         * asan.h (asan_emit_allocas_unpoison): Declare.
1916         * builtins.c (expand_asan_emit_allocas_unpoison): New function.
1917         (expand_builtin): Handle BUILT_IN_ASAN_ALLOCAS_UNPOISON.
1918         * cfgexpand.c (expand_used_vars): Call asan_emit_allocas_unpoison
1919         if function calls alloca.
1920         * gimple-fold.c (replace_call_with_value): Remove static keyword.
1921         * gimple-fold.h (replace_call_with_value): Declare.
1922         * internal-fn.c: Include asan.h.
1923         * sanitizer.def (BUILT_IN_ASAN_ALLOCA_POISON,
1924         BUILT_IN_ASAN_ALLOCAS_UNPOISON): New builtins.
1926 2017-07-06  David Malcolm  <dmalcolm@redhat.com>
1928         * Makefile.in (SELFTEST_FLAGS): Drop "-x c", moving it to...
1929         (C_SELFTEST_FLAGS): New.
1930         (CPP_SELFTEST_FLAGS): New.
1931         (SELFTEST_DEPS): New, from deps of s-selftest.
1932         (C_SELFTEST_DEPS): New, from deps of s-selftest.
1933         (CPP_SELFTEST_DEPS): New.
1934         (selftest): Add dependency on s-selftest-c++.
1935         (s-selftest): Rename to...
1936         (s-selftest-c): ...this, moving deps to SELFTEST_DEPS
1937         and C_SELFTEST_DEPS, and using C_SELFTEST_FLAGS rather
1938         than SELFTEST_FLAGS.
1939         (selftest-gdb): Rename to...
1940         (selftest-c-gdb): ...this, using C_SELFTEST_DEPS and
1941         C_SELFTEST_FLAGS.
1942         (selftest-gdb): Reintroduce as an alias for selftest-c-gdb.
1943         (selftest-valgrind): Rename to...
1944         (selftest-c-valgrind): ...this, using C_SELFTEST_DEPS and
1945         C_SELFTEST_FLAGS.
1946         (selftest-valgrind): Reintroduce as an alias for
1947         selftest-c-valgrind.
1948         (s-selftest-c++): New.
1949         (selftest-c++-gdb): New.
1950         (selftest-c++-valgrind): New.
1952 2017-07-06  Olivier Hainque  <hainque@adacore.com>
1954         * gcc.c (process_command): When deciding if undefined variables
1955         should be ignored when processing specs, accept "gcc -v" as well.
1957 2017-07-06  Jan Hubicka  <hubicka@ucw.cz>
1959         * auto-profile.c (afdo_set_bb_count, afdo_propagate_edge,
1960         afdo_annotate_cfg): Set counts/probabilities as determined by afdo.
1962 2017-07-06  Thomas Preud'homme  <thomas.preudhomme@arm.com>
1964         * config/arm/arm-cpus.in (armv8-r): Add new entry.
1965         * config/arm/arm-isa.h (ISA_ARMv8r): Define macro.
1966         * config/arm/arm-tables.opt: Regenerate.
1967         * config/arm/arm.h (enum base_architecture): Add BASE_ARCH_8R
1968         enumerator.
1969         * doc/invoke.texi: Mention -march=armv8-r and its extensions.
1971 2017-07-06  Carl Love  <cel@us.ibm.com>
1973         * ChangeLog: Clean up from mid air collision
1975 2017-07-06  Carl Love  <cel@us.ibm.com>
1977         * config/rs6000/rs6000-c.c: Add support for built-in functions
1978         vector signed int vec_subc (vector signed int, vector signed int);
1979         vector signed __int128 vec_subc (vector signed __int128,
1980                                          vector signed __int128);
1981         vector unsigned __int128 vec_subc (vector unsigned __int128,
1982                                            vector unsigned __int128);
1983         vector signed int vec_sube (vector signed int, vector signed int,
1984                                     vector signed int);
1985         vector unsigned int vec_sube (vector unsigned int,
1986                                       vector unsigned int,
1987                                       vector unsigned int);
1988         vector signed __int128 vec_sube (vector signed __int128,
1989                                          vector signed __int128,
1990                                          vector signed__int128);
1991         vector unsigned __int128 vec_sube (vector unsigned __int128,
1992                                            vector unsigned __int128,
1993                                            vector unsigned __int128);
1994         vector signed int vec_subec (vector signed int, vector signed int,
1995                                      vector signed int);
1996         vector unsigned int vec_subec (vector unsigned int,
1997                                        vector unsigned int,
1998                                        vector unsigned int);
1999         vector signed __int128 vec_subec (vector signed __int128,
2000                                           vector signed __int128,
2001                                           vector signed__int128);
2002         vector unsigned __int128 vec_subec (vector unsigned __int128,
2003                                             vector unsigned __int128,
2004                                             vector unsigned __int128);
2005         * config/rs6000/rs6000.c (ALTIVEC_BUILTIN_VEC_SUBE,
2006         ALTIVEC_BUILTIN_VEC_SUBEC): Add ef_builtins.
2007         * config/rs6000/rs6000-builtin.def (SUBE, SUBEC): Add
2008         BU_ALTIVEC_OVERLOAD_X definitions.
2009         * config/rs6000/altivec.h (vec_sube, vec_subec): Add builtin defines.
2010         * doc/extend.texi: Update the built-in documentation file for the new
2011         built-in functions.
2013 2017-07-06  David Malcolm  <dmalcolm@redhat.com>
2015         PR c++/79300
2016         * diagnostic-show-locus.c (layout::layout): Use start and finish
2017         spelling location for the start and finish of each range.
2018         * genmatch.c (linemap_client_expand_location_to_spelling_point):
2019         Add unused aspect param.
2020         * input.c (expand_location_1): Add "aspect" param, and use it
2021         to access the correct part of the location.
2022         (expand_location): Pass LOCATION_ASPECT_CARET to new param of
2023         expand_location_1.
2024         (expand_location_to_spelling_point): Likewise.
2025         (linemap_client_expand_location_to_spelling_point): Add "aspect"
2026         param, and pass it to expand_location_1.
2028 2017-07-06  Sebastian Peryt  <sebastian.peryt@intel.com>
2030         * config/i386/avx512fintrin.h (_mm_mask_getexp_round_ss,
2031         _mm_maskz_getexp_round_ss, _mm_mask_getexp_round_sd,
2032         _mm_maskz_getexp_round_sd, _mm_mask_getmant_round_sd,
2033         _mm_maskz_getmant_round_sd, _mm_mask_getmant_round_ss,
2034         _mm_maskz_getmant_round_ss, _mm_mask_getexp_ss, _mm_maskz_getexp_ss,
2035         _mm_mask_getexp_sd, _mm_maskz_getexp_sd, _mm_mask_getmant_sd,
2036         _mm_maskz_getmant_sd, _mm_mask_getmant_ss,
2037         _mm_maskz_getmant_ss): New intrinsics.
2038         (__builtin_ia32_getexpss128_mask): Changed to ...
2039         __builtin_ia32_getexpss128_round ... this.
2040         (__builtin_ia32_getexpsd128_mask): Changed to ...
2041         __builtin_ia32_getexpsd128_round ... this.
2042         * config/i386/i386-builtin-types.def
2043         ((V2DF, V2DF, V2DF, INT, V2DF, UQI, INT),
2044         (V4SF, V4SF, V4SF, INT, V4SF, UQI, INT)): New function type aliases.
2045         * config/i386/i386-builtin.def (__builtin_ia32_getexpsd_mask_round,
2046         __builtin_ia32_getexpss_mask_round,     __builtin_ia32_getmantsd_mask_round,
2047         __builtin_ia32_getmantss_mask_round): New builtins.
2048         * config/i386/i386.c (V2DF_FTYPE_V2DF_V2DF_INT_V2DF_UQI_INT,
2049         V4SF_FTYPE_V4SF_V4SF_INT_V4SF_UQI_INT): Handle new types.
2050         (CODE_FOR_avx512f_vgetmantv2df_mask_round,
2051         CODE_FOR_avx512f_vgetmantv4sf_mask_round): New cases.
2052         * config/i386/sse.md
2053         (avx512f_sgetexp<mode><round_saeonly_name>): Changed to ...
2054         avx512f_sgetexp<mode><mask_scalar_name>
2055         <round_saeonly_scalar_name> ... this.
2056         (vgetexp<ssescalarmodesuffix>\t{<round_saeonly_op3>%2, %1, %0|
2057         %0, %1, %2<round_saeonly_op3>}): Changed to ...
2058         vgetexp<ssescalarmodesuffix>
2059         \t{<round_saeonly_scalar_mask_op3>%2, %1, %0<mask_scalar_operand3>|
2060         %0<mask_scalar_operand3>, %1, %2<round_saeonly_scalar_mask_op3>} ... this.
2061         (avx512f_vgetmant<mode><round_saeonly_name>): Changed to ...
2062         avx512f_vgetmant<mode><mask_scalar_name>
2063         <round_saeonly_scalar_name> ... this.
2064         (vgetmant<ssescalarmodesuffix>\t{%3, <round_saeonly_op4>%2, %1, %0|
2065         %0, %1, %2<round_saeonly_op4>, %3}): Changed to ...
2066         vgetmant<ssescalarmodesuffix>
2067         \t{%3, <round_saeonly_scalar_mask_op4>%2, %1, %0<mask_scalar_operand4>|
2068         %0<mask_scalar_operand4>, %1, %2
2069         <round_saeonly_scalar_mask_op4>, %3} ... this.
2070         * config/i386/subst.md (mask_scalar_operand4,
2071         round_saeonly_scalar_mask_operand4,     round_saeonly_scalar_mask_op4,
2072         round_saeonly_scalar_nimm_predicate): New subst attributes.
2074 2017-07-06  Julia Koval  <julia.koval@intel.com>
2076         * config/i386/i386.c (ix86_erase_embedded_rounding):
2077         Remove code for old rounding pattern.
2079 2017-07-06  Richard Earnshaw  <rearnsha@arm.com>
2081         * config/arm/t-arm (GTM_H): Add arm-cpu.h.
2083 2017-07-06  Christophe Lyon  <christophe.lyon@linaro.org>
2085         * doc/sourcebuild.texi (Test Directives, Variants of
2086         dg-require-support): Add documentation for dg-require-stack-check.
2088 2017-07-05  Sebastian Peryt  <sebastian.peryt@intel.com>
2090         * config/i386/subst.md (mask_scalar, round_scalar,
2091         round_saeonly_scalar): New meta-templates.
2092         (mask_scalar_name, mask_scalar_operand3, round_scalar_name,
2093         round_scalar_mask_operand3, round_scalar_mask_op3,
2094         round_scalar_constraint, round_scalar_prefix, round_saeonly_scalar_name,
2095         round_saeonly_scalar_mask_operand3, round_saeonly_scalar_mask_op3,
2096         round_saeonly_scalar_constraint,
2097         round_saeonly_scalar_prefix): New subst attribute.
2098         * config/i386/sse.md
2099         (<sse>_vm<plusminus_insn><mode>3<mask_name><round_name>): Renamed to ...
2100         <sse>_vm<plusminus_insn><mode>3<mask_scalar_name>
2101         <round_scalar_name> ... this.
2102         (<sse>_vm<multdiv_mnemonic><mode>3<mask_name><round_name>): Renamed to ...
2103         <sse>_vm<multdiv_mnemonic><mode>3<mask_scalar_name>
2104         <round_scalar_name> ... this.
2105         (<sse>_vm<code><mode>3<mask_name><round_saeonly_name>): Renamed to ...
2106         <sse>_vm<code><mode>3<mask_scalar_name>
2107         <round_saeonly_scalar_name> ... this.
2108         (v<plusminus_mnemonic><ssescalarmodesuffix>
2109         \t{<round_mask_op3>%2, %1, %0<mask_operand3>|
2110         %0<mask_operand3>, %1, %<iptr>2<round_mask_op3>}): Changed to ...
2111         v<plusminus_mnemonic><ssescalarmodesuffix>
2112         \t{<round_scalar_mask_op3>%2, %1, %0<mask_scalar_operand3>|
2113         %0<mask_scalar_operand3>, %1, %<iptr>2<round_scalar_mask_op3>} ... this.
2114         (v<multdiv_mnemonic><ssescalarmodesuffix>
2115         \t{<round_mask_op3>%2, %1, %0<mask_operand3>|
2116         %0<mask_operand3>, %1, %<iptr>2<round_mask_op3>}): Changed to ...
2117         v<multdiv_mnemonic><ssescalarmodesuffix>
2118         \t{<round_scalar_mask_op3>%2, %1, %0<mask_scalar_operand3>|
2119         %0<mask_scalar_operand3>, %1, %<iptr>2<round_scalar_mask_op3>} ... this.
2120         (v<maxmin_float><ssescalarmodesuffix>
2121         \t{<round_saeonly_mask_op3>%2, %1, %0<mask_operand3>|
2122         %0<mask_operand3>, %1, %<iptr>2<round_saeonly_mask_op3>}): Changed to ...
2123         v<maxmin_float><ssescalarmodesuffix>
2124         \t{<round_saeonly_scalar_mask_op3>%2, %1, %0<mask_scalar_operand3>|
2125         %0<mask_scalar_operand3>, %1, %<iptr>2
2126         <round_saeonly_scalar_mask_op3>} ... this.
2128 2017-07-05  Richard Earnshaw  <rearnsha@arm.com>
2130         * config/arm/arm.c (arm_fixed_condition_code_regs): New function.
2131         (TARGET_FIXED_CONDITION_CODE_REGS): Redefine.
2133 2017-07-05  Richard Sandiford  <richard.sandiford@linaro.org>
2134             Alan Hayward  <alan.hayward@arm.com>
2135             David Sherwood  <david.sherwood@arm.com>
2137         * combine.c (simplify_if_then_else): Remove "enum" before
2138         "machine_mode".
2139         * compare-elim.c (can_eliminate_compare): Likewise.
2140         * config/aarch64/aarch64-builtins.c (aarch64_simd_builtin_std_type):
2141         Likewise.
2142         (aarch64_lookup_simd_builtin_type): Likewise.
2143         (aarch64_simd_builtin_type): Likewise.
2144         (aarch64_init_simd_builtin_types): Likewise.
2145         (aarch64_simd_expand_args): Likewise.
2146         * config/aarch64/aarch64-protos.h (aarch64_simd_attr_length_rglist):
2147         Likewise.
2148         (aarch64_reverse_mask): Likewise.
2149         (aarch64_simd_emit_reg_reg_move): Likewise.
2150         (aarch64_gen_adjusted_ldpstp): Likewise.
2151         (aarch64_ccmp_mode_to_code): Likewise.
2152         (aarch64_operands_ok_for_ldpstp): Likewise.
2153         (aarch64_operands_adjust_ok_for_ldpstp): Likewise.
2154         * config/aarch64/aarch64.c (aarch64_ira_change_pseudo_allocno_class):
2155         Likewise.
2156         (aarch64_min_divisions_for_recip_mul): Likewise.
2157         (aarch64_reassociation_width): Likewise.
2158         (aarch64_get_condition_code_1): Likewise.
2159         (aarch64_simd_emit_reg_reg_move): Likewise.
2160         (aarch64_simd_attr_length_rglist): Likewise.
2161         (aarch64_reverse_mask): Likewise.
2162         (aarch64_operands_ok_for_ldpstp): Likewise.
2163         (aarch64_operands_adjust_ok_for_ldpstp): Likewise.
2164         (aarch64_gen_adjusted_ldpstp): Likewise.
2165         * config/aarch64/cortex-a57-fma-steering.c (fma_node::rename):
2166         Likewise.
2167         * config/arc/arc.c (legitimate_offset_address_p): Likewise.
2168         * config/arm/arm-builtins.c (arm_simd_builtin_std_type): Likewise.
2169         (arm_lookup_simd_builtin_type): Likewise.
2170         (arm_simd_builtin_type): Likewise.
2171         (arm_init_simd_builtin_types): Likewise.
2172         (arm_expand_builtin_args): Likewise.
2173         * config/arm/arm-protos.h (arm_expand_builtin): Likewise.
2174         * config/ft32/ft32.c (ft32_libcall_value): Likewise.
2175         (ft32_setup_incoming_varargs): Likewise.
2176         (ft32_function_arg): Likewise.
2177         (ft32_function_arg_advance): Likewise.
2178         (ft32_pass_by_reference): Likewise.
2179         (ft32_arg_partial_bytes): Likewise.
2180         (ft32_valid_pointer_mode): Likewise.
2181         (ft32_addr_space_pointer_mode): Likewise.
2182         (ft32_addr_space_legitimate_address_p): Likewise.
2183         * config/i386/i386-protos.h (ix86_operands_ok_for_move_multiple):
2184         Likewise.
2185         * config/i386/i386.c (ix86_setup_incoming_vararg_bounds): Likewise.
2186         (ix86_emit_outlined_ms2sysv_restore): Likewise.
2187         (iamcu_alignment): Likewise.
2188         (canonicalize_vector_int_perm): Likewise.
2189         (ix86_noce_conversion_profitable_p): Likewise.
2190         (ix86_mpx_bound_mode): Likewise.
2191         (ix86_operands_ok_for_move_multiple): Likewise.
2192         * config/microblaze/microblaze-protos.h
2193         (microblaze_expand_conditional_branch_reg): Likewise.
2194         * config/microblaze/microblaze.c
2195         (microblaze_expand_conditional_branch_reg): Likewise.
2196         * config/powerpcspe/powerpcspe.c (rs6000_init_hard_regno_mode_ok):
2197         Likewise.
2198         (rs6000_reassociation_width): Likewise.
2199         (rs6000_invalid_binary_op): Likewise.
2200         (fusion_p9_p): Likewise.
2201         (emit_fusion_p9_load): Likewise.
2202         (emit_fusion_p9_store): Likewise.
2203         * config/riscv/riscv-protos.h (riscv_regno_mode_ok_for_base_p):
2204         Likewise.
2205         (riscv_hard_regno_mode_ok_p): Likewise.
2206         (riscv_address_insns): Likewise.
2207         (riscv_split_symbol): Likewise.
2208         (riscv_legitimize_move): Likewise.
2209         (riscv_function_value): Likewise.
2210         (riscv_hard_regno_nregs): Likewise.
2211         (riscv_expand_builtin): Likewise.
2212         * config/riscv/riscv.c (riscv_build_integer_1): Likewise.
2213         (riscv_build_integer): Likewise.
2214         (riscv_split_integer): Likewise.
2215         (riscv_legitimate_constant_p): Likewise.
2216         (riscv_cannot_force_const_mem): Likewise.
2217         (riscv_regno_mode_ok_for_base_p): Likewise.
2218         (riscv_valid_base_register_p): Likewise.
2219         (riscv_valid_offset_p): Likewise.
2220         (riscv_valid_lo_sum_p): Likewise.
2221         (riscv_classify_address): Likewise.
2222         (riscv_legitimate_address_p): Likewise.
2223         (riscv_address_insns): Likewise.
2224         (riscv_load_store_insns): Likewise.
2225         (riscv_force_binary): Likewise.
2226         (riscv_split_symbol): Likewise.
2227         (riscv_force_address): Likewise.
2228         (riscv_legitimize_address): Likewise.
2229         (riscv_move_integer): Likewise.
2230         (riscv_legitimize_const_move): Likewise.
2231         (riscv_legitimize_move): Likewise.
2232         (riscv_address_cost): Likewise.
2233         (riscv_subword): Likewise.
2234         (riscv_output_move): Likewise.
2235         (riscv_canonicalize_int_order_test): Likewise.
2236         (riscv_emit_int_order_test): Likewise.
2237         (riscv_function_arg_boundary): Likewise.
2238         (riscv_pass_mode_in_fpr_p): Likewise.
2239         (riscv_pass_fpr_single): Likewise.
2240         (riscv_pass_fpr_pair): Likewise.
2241         (riscv_get_arg_info): Likewise.
2242         (riscv_function_arg): Likewise.
2243         (riscv_function_arg_advance): Likewise.
2244         (riscv_arg_partial_bytes): Likewise.
2245         (riscv_function_value): Likewise.
2246         (riscv_pass_by_reference): Likewise.
2247         (riscv_setup_incoming_varargs): Likewise.
2248         (riscv_print_operand): Likewise.
2249         (riscv_elf_select_rtx_section): Likewise.
2250         (riscv_save_restore_reg): Likewise.
2251         (riscv_for_each_saved_reg): Likewise.
2252         (riscv_register_move_cost): Likewise.
2253         (riscv_hard_regno_mode_ok_p): Likewise.
2254         (riscv_hard_regno_nregs): Likewise.
2255         (riscv_class_max_nregs): Likewise.
2256         (riscv_memory_move_cost): Likewise.
2257         * config/rl78/rl78-protos.h (rl78_split_movsi): Likewise.
2258         * config/rl78/rl78.c (rl78_split_movsi): Likewise.
2259         (rl78_addr_space_address_mode): Likewise.
2260         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
2261         Likewise.
2262         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Likewise.
2263         (rs6000_reassociation_width): Likewise.
2264         (rs6000_invalid_binary_op): Likewise.
2265         (fusion_p9_p): Likewise.
2266         (emit_fusion_p9_load): Likewise.
2267         (emit_fusion_p9_store): Likewise.
2268         * config/visium/visium-protos.h (prepare_move_operands): Likewise.
2269         (ok_for_simple_move_operands): Likewise.
2270         (ok_for_simple_move_strict_operands): Likewise.
2271         (ok_for_simple_arith_logic_operands): Likewise.
2272         (visium_legitimize_reload_address): Likewise.
2273         (visium_select_cc_mode): Likewise.
2274         (output_cbranch): Likewise.
2275         (visium_split_double_move): Likewise.
2276         (visium_expand_copysign): Likewise.
2277         (visium_expand_int_cstore): Likewise.
2278         (visium_expand_fp_cstore): Likewise.
2279         * config/visium/visium.c (visium_pass_by_reference): Likewise.
2280         (visium_function_arg): Likewise.
2281         (visium_function_arg_advance): Likewise.
2282         (visium_libcall_value): Likewise.
2283         (visium_setup_incoming_varargs): Likewise.
2284         (visium_legitimate_constant_p): Likewise.
2285         (visium_legitimate_address_p): Likewise.
2286         (visium_legitimize_address): Likewise.
2287         (visium_secondary_reload): Likewise.
2288         (visium_register_move_cost): Likewise.
2289         (visium_memory_move_cost): Likewise.
2290         (prepare_move_operands): Likewise.
2291         (ok_for_simple_move_operands): Likewise.
2292         (ok_for_simple_move_strict_operands): Likewise.
2293         (ok_for_simple_arith_logic_operands): Likewise.
2294         (visium_function_value_1): Likewise.
2295         (rtx_ok_for_offset_p): Likewise.
2296         (visium_legitimize_reload_address): Likewise.
2297         (visium_split_double_move): Likewise.
2298         (visium_expand_copysign): Likewise.
2299         (visium_expand_int_cstore): Likewise.
2300         (visium_expand_fp_cstore): Likewise.
2301         (visium_split_cstore): Likewise.
2302         (visium_select_cc_mode): Likewise.
2303         (visium_split_cbranch): Likewise.
2304         (output_cbranch): Likewise.
2305         (visium_print_operand_address): Likewise.
2306         * expmed.c (flip_storage_order): Likewise.
2307         * expmed.h (emit_cstore): Likewise.
2308         (flip_storage_order): Likewise.
2309         * genrecog.c (validate_pattern): Likewise.
2310         * hsa-gen.c (gen_hsa_addr): Likewise.
2311         * internal-fn.c (expand_arith_overflow): Likewise.
2312         * ira-color.c (allocno_copy_cost_saving): Likewise.
2313         * lra-assigns.c (find_hard_regno_for_1): Likewise.
2314         * lra-constraints.c (prohibited_class_reg_set_mode_p): Likewise.
2315         (process_invariant_for_inheritance): Likewise.
2316         * lra-eliminations.c (move_plus_up): Likewise.
2317         * omp-low.c (lower_oacc_reductions): Likewise.
2318         * simplify-rtx.c (simplify_subreg): Likewise.
2319         * target.def (TARGET_SETUP_INCOMING_VARARG_BOUNDS): Likewise.
2320         (TARGET_CHKP_BOUND_MODE): Likewise..
2321         * targhooks.c (default_chkp_bound_mode): Likewise.
2322         (default_setup_incoming_vararg_bounds): Likewise.
2323         * targhooks.h (default_chkp_bound_mode): Likewise.
2324         (default_setup_incoming_vararg_bounds): Likewise.
2325         * tree-ssa-math-opts.c (divmod_candidate_p): Likewise.
2326         * tree-vect-loop.c (calc_vec_perm_mask_for_shift): Likewise.
2327         (have_whole_vector_shift): Likewise.
2328         * tree-vect-stmts.c (vectorizable_load): Likewise.
2329         * doc/tm.texi: Regenerate.
2331 2017-07-05  Georg-Johann Lay  <avr@gjlay.de>
2333         Graceful degrade if Binutils PR21472 is not available.
2335         PR target/81072
2336         * configure.ac [target=avr]: WARN instead of ERROR if avrxmega3
2337         .rodata in flash test fails.
2338         (HAVE_LD_AVR_AVRXMEGA3_RODATA_IN_FLASH): Define it if test passes.
2339         * confgure: Regenerate.
2340         * config.in: Regenerate.
2341         * config/avr/avr.c (avr_asm_named_section)
2342         [HAVE_LD_AVR_AVRXMEGA3_RODATA_IN_FLASH]: Only trigger
2343         __do_copy_data for stuff in .rodata if flash_pm_offset = 0.
2344         (avr_asm_init_sections): Same.
2346 2017-07-05  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2348         * config/arm/neon.md (fma<VCVTF:mode>4): Remove %?.
2349         (fma<VH:mode>4_intrinsic): Likewise.
2350         (*fmsub<VCVTF:mode>4): Likewise.
2351         (*fmsub<VH:mode>4_intrinsic): Likewise.
2353 2017-07-05  Georg-Johann Lay  <avr@gjlay.de>
2355         PR target/81305
2356         * config/avr/avr.c (avr_out_movhi_mr_r_xmega) [CONSTANT_ADDRESS_P]:
2357         Don't depend on "optimize > 0".
2358         (out_movhi_r_mr, out_movqi_mr_r): Same.
2359         (out_movhi_mr_r, out_movqi_r_mr): Same.
2360         (avr_address_cost) [CONSTANT_ADDRESS_P]: Don't depend cost for
2361         io_address_operand on "optimize > 0".
2363 2017-07-05  Bin Cheng  <bin.cheng@arm.com>
2365         * tree-loop-distribution.c: Add general explanantion on the pass.
2366         (generate_loops_for_partition): Mark distributed loop.
2367         (pg_add_dependence_edges): New parameter.  Handle alias data
2368         dependence specially and record it in the parameter if asked.
2369         (struct pg_vdata, pg_edata, pg_edge_callback_data): New structs.
2370         (init_partition_graph_vertices, add_partition_graph_edge): New.
2371         (pg_skip_alias_edge, free_partition_graph_edata_cb): New.
2372         (free_partition_graph_vdata, build_partition_graph): New.
2373         (sort_partitions_by_post_order, merge_dep_scc_partitions): New.
2374         (pg_collect_alias_ddrs, break_alias_scc_partitions): New.
2375         (data_ref_segment_size, latch_dominated_by_data_ref): New.
2376         (compute_alias_check_pairs, version_loop_by_alias_check): New.
2377         (version_for_distribution_p, finalize_partitions): New.
2378         (distribute_loop): Handle alias data dependence specially.  Factor
2379         out loop fusion code as functions and call these functions.
2381 2017-07-05  Bin Cheng  <bin.cheng@arm.com>
2383         * tree-loop-distribution.c (classify_partition): New parameter and
2384         better handle reduction statement.
2385         (rdg_build_partitions): Revise comment.
2386         (distribute_loop): Compute statements in all partitions and pass it
2387         to classify_partition.
2389 2017-07-05  Bin Cheng  <bin.cheng@arm.com>
2391         * tree-loop-distribution.c (enum partition_type): New.
2392         (struct partition): New field type.
2393         (partition_merge_into): Add parameter.  Update partition type.
2394         (data_dep_in_cycle_p, update_type_for_merge): New functions.
2395         (build_rdg_partition_for_vertex): Compute partition type.
2396         (rdg_build_partitions): Dump partition type.
2397         (distribute_loop): Update calls to partition_merge_into.
2399 2017-07-05  Bin Cheng  <bin.cheng@arm.com>
2401         * tree-loop-distribution.c (struct ddr_hasher): New.
2402         (ddr_hasher::hash, ::equal, get_data_dependence): New function.
2403         (ddrs_table): New.
2404         (classify_partition): Call get_data_dependence.
2405         (pg_add_dependence_edges): Ditto.
2406         (distribute_loop): Release data dependence hash table.
2408 2017-07-05  Bin Cheng  <bin.cheng@arm.com>
2410         * tree-loop-distribution.c (ref_base_address): Delete.
2411         (similar_memory_accesses): Rename ...
2412         (share_memory_accesses): ... to this.  Check if partitions access
2413         the same memory reference.
2414         (distribute_loop): Call share_memory_accesses.
2416 2017-07-05  Bin Cheng  <bin.cheng@arm.com>
2418         * tree-loop-distribution.c (struct partition): New field recording
2419         its data reference.
2420         (partition_alloc, partition_free): Init and release data refs.
2421         (partition_merge_into): Merge data refs.
2422         (build_rdg_partition_for_vertex): Collect data refs for partition.
2423         (pg_add_dependence_edges): Change parameters from vector to bitmap.
2424         Update uses.
2425         (distribute_loop): Remve data refs from vertice data of partition
2426         graph.
2428 2017-07-05  Bin Cheng  <bin.cheng@arm.com>
2430         * tree-loop-distribution.c (params.h): Include header file.
2431         (MAX_DATAREFS_NUM, DR_INDEX): New macro.
2432         (datarefs_vec): New global var.
2433         (create_rdg_vertices): Use datarefs_vec directly.
2434         (free_rdg): Don't free data references.
2435         (build_rdg): Update use.  Don't free data references.
2436         (distribute_loop): Compute global variable for data references.
2437         Bail out if there are too many data references.
2439 2017-07-05  Bin Cheng  <bin.cheng@arm.com>
2441         * tree-loop-distribution.c (loop_nest): New global var.
2442         (build_rdg): Use loop directly, rather than loop nest.
2443         (pg_add_dependence_edges): Remove loop nest parameter.  Use global
2444         variable directly.
2445         (distribute_loop): Compute global variable loop nest.  Update use.
2447 2017-07-05  Bin Cheng  <bin.cheng@arm.com>
2449         * tree-loop-distribution.c (enum fuse_type, fuse_message): New.
2450         (partition_merge_into): New parameter.  Dump reason for fusion.
2451         (distribute_loop): Update use of partition_merge_into.
2453 2017-07-05  Bin Cheng  <bin.cheng@arm.com>
2455         * tree-loop-distribution.c (bb_top_order_index): New.
2456         (bb_top_order_index_size, bb_top_order_cmp): New.
2457         (stmts_from_loop): Use topological order.
2458         (pass_loop_distribution::execute): Compute and release topological
2459         order for basic blocks.
2461 2017-07-05  Bin Cheng  <bin.cheng@arm.com>
2463         * tree-loop-distribution.c (pass_loop_distribution::execute): Skip
2464         if no loops.
2466 2017-07-05  Bin Cheng  <bin.cheng@arm.com>
2468         * cfgloop.h (struct loop): Add comment.  New field orig_loop_num.
2469         * cfgloopmanip.c (lv_adjust_loop_entry_edge): Comment change.
2470         * internal-fn.c (expand_LOOP_DIST_ALIAS): New function.
2471         * internal-fn.def (LOOP_DIST_ALIAS): New.
2472         * tree-vectorizer.c (fold_loop_vectorized_call): Rename to ...
2473         (fold_loop_internal_call): ... this.
2474         (vect_loop_dist_alias_call): New function.
2475         (set_uid_loop_bbs): Call fold_loop_internal_call.
2476         (vectorize_loops): Fold IFN_LOOP_VECTORIZED and IFN_LOOP_DIST_ALIAS
2477         internal calls.
2479 2017-07-04  Uros Bizjak  <ubizjak@gmail.com>
2481         PR target/81300
2482         * config/i386/i386.md (setcc + movzbl/and to xor + setcc peepholes):
2483         Require dead FLAGS_REG at the beginning of a peephole.
2485 2017-07-04  Uros Bizjak  <ubizjak@gmail.com>
2487         PR target/81294
2488         * config/i386/adxintrin.h (_subborrow_u32): Swap _X and _Y
2489         arguments in the call to __builtin_ia32_sbb_u32.
2490         (_subborrow_u64): Swap _X and _Y arguments in the call to
2491         __builtin_ia32_sbb_u64.
2493 2017-07-04  Jakub Jelinek  <jakub@redhat.com>
2495         PR debug/81278
2496         * tree-vrp.c (compare_assert_loc): Turn into a function template
2497         with stable template parameter.  Only test if a->e is NULL,
2498         !a->e == !b->e has been verified already.  Use e == NULL or
2499         e != NULL instead of e or ! e tests.  If stable is true, don't use
2500         iterative_hash_expr, on the other side allow a or b or both NULL
2501         and sort the NULLs last.
2502         (process_assert_insertions): Sort using compare_assert_loc<false>
2503         instead of compare_assert_loc, later sort using
2504         compare_assert_loc<true> before calling process_assert_insertions_for
2505         in a loop.  Use break instead of continue once seen NULL pointer.
2507 2017-07-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>
2509         * config/arm/driver-arm.c (arm_cpu_table): Add entry for ARM
2510         Cortex-R7 and Cortex-R8 processors.
2512 2017-07-04  Jan Hubicka  <hubicka@ucw.cz>
2514         * ipa-utils.c (ipa_merge_profiles): Fix merging when dst is
2515         uninitialized while src is not.
2517 2017-07-04  Richard Earnshaw  <rearnsha@arm.com>
2519         * common/config/arm/arm-common.c: Adjust include path for
2520         arm-cpu-cdata.h
2521         * config/arm/t-arm (TM_H): Adjust path for arm-cpu.h.
2522         (arm-cpu.h): Create in build directory.  Adjust dependency rules.
2523         (arm-cpu-data.h): Likewise.
2524         (arm-cpu-cdata.h): Likewise.
2525         * config/arm/arm-cpu.h: Delete.
2526         * config/arm/arm-cpu-cdata.h: Delete.
2527         * config/arm/arm-cpu-data.h: Delete.
2529 2017-07-04  James Greenhalgh  <james.greenhalgh@arm.com>
2531         * config/arm/arm-cpus.in (cortex-a55): New.
2532         (cortex-a75): Likewise.
2533         (cortex-a75.cortex-a55): Likewise.
2534         * config/arm/driver-arm.c (arm_cpu_table): Add cortex-a55 and
2535         cortex-a75.
2536         * doc/invoke.texi (-mcpu): Document cortex-a55 and cortex-a75.
2537         * config/arm/arm-cpu-cdata.h: Regenerate.
2538         * config/arm/arm-cpu-data.h: Regenerate.
2539         * config/arm/arm-cpu.h: Regenerate.
2540         * config/arm/arm-tables.opt: Regenerate.
2541         * config/arm/arm-tune.md: Regenerate.
2543 2017-07-04  Jan Hubicka  <hubicka@ucw.cz>
2545         * haifa-sched.c (sched_create_recovery_edges): Update profile.
2547 2017-07-04  Jan Hubicka  <hubicka@ucw.cz>
2549         * bb-reorder.c (better_edge_p): Fix handling of uninitialized
2550         probability.
2552 2017-07-04  Richard Sandiford  <richard.sandiford@linaro.org>
2554         PR tree-optimization/81292
2555         * tree-ssa-strlen.c (handle_builtin_strlen): When setting
2556         full_string_p, also call adjust_related_strinfos if the adjustment
2557         is simple, otherwise invalidate related strinfos.
2559 2017-07-04  Martin Liska  <mliska@suse.cz>
2561         PR sanitizer/81040
2562         * sanopt.c (sanitize_rewrite_addressable_params): Mark the
2563         newly created variable as DECL_IGNORED_P.
2565 2017-07-04  Martin Liska  <mliska@suse.cz>
2567         PR ipa/81293
2568         * ipa-inline.c (inline_small_functions):
2569         Use xstrdup_for_dump.
2571 2017-07-04  Tom de Vries  <tom@codesourcery.com>
2573         * graph.c (draw_cfg_edges): Save and restore EDGE_DFS_BACK.
2575 2017-07-03  Dominique d'Humieres  <dominiq@lps.ens.fr>
2577         PR target/81033
2578         * config/darwin.c (darwin_function_switched_text_sections):
2579         Fix spaces.
2581 2017-07-03  Jan Hubicka  <hubicka@ucw.cz>
2583         * tree-vect-loop-manip.c (vect_do_peeling): Fix scaling up.
2585 2017-07-03  Richard Earnshaw  <rearnsha@arm.com>
2587         * doc/invoke.texi (ARM Options): Add -mbe8 and -mbe32 to option summary.
2589 2017-07-03  Richard Sandiford  <richard.sandiford@linaro.org>
2591         * tree-vect-loop.c (vect_analyze_loop_2): Treat min_scalar_loop_bound,
2592         min_profitable_iters, and th as inclusive lower bounds.
2593         Fix LOOP_VINFO_PEELING_FOR_GAPS condition.
2594         (vect_estimate_min_profitable_iters): Return inclusive lower bounds
2595         for min_profitable_iters and min_profitable_estimate.
2596         (vect_transform_loop): Treat th as an inclusive lower bound.
2597         * tree-vect-loop-manip.c (vect_loop_versioning): Likewise.
2599 2017-07-03  Dominique d'Humieres  <dominiq@lps.ens.fr>
2601         PR target/81033
2602         * config/darwin.c (darwin_function_switched_text_sections):
2603         Replace DECL_NAME with DECL_ASSEMBLER_NAME, split assemble_name_raw
2604         in two pieces, and suppress the use of buf.
2606 2017-07-03  Nathan Sidwell  <nathan@acm.org>
2608         * hash-table.h (hash_table_mod1): Fix indentation.
2610 2017-07-02  Jan Hubicka  <hubicka@ucw.cz>
2612         PR middle-end/81290
2613         * predict.c (force_edge_cold): Be more careful about propagation
2614         backward.
2615         * profile-count.h (profile_probability::guessed,
2616         profile_probability::fdo, profile_count::guessed, profile_count::fdo):
2617         New.
2618         * tree-ssa-threadupdate.c (recompute_probabilities): Result is guessed.
2620 2017-07-03  James Greenhalgh  <james.greenhalgh@arm.com>
2622         * doc/invoke.texi (rcpc architecture extension): Document it.
2624 2017-07-03  Richard Biener  <rguenther@suse.de>
2626         PR tree-optimization/60510
2627         * tree-vect-loop.c (vect_create_epilog_for_reduction): Pass in
2628         the scalar reduction PHI and use it.
2629         (vectorizable_reduction): Properly guard the single_defuse_cycle
2630         path for non-SLP reduction chains where we cannot use it.
2631         Rework reduc_def/index and vector type deduction.  Rework
2632         vector operand gathering during reduction op code-gen.
2633         * tree-vect-slp.c (vect_analyze_slp): For failed SLP reduction
2634         chains dissolve the chain and leave it to non-SLP reduction
2635         handling.
2637 2017-07-03  Richard Sandiford  <richard.sandiford@linaro.org>
2639         * tree-data-ref.h (dr_alignment): Declare.
2640         * tree-data-ref.c (dr_alignment): New function.
2641         * tree-vectorizer.h (dataref_aux): Remove base_element_aligned.
2642         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Don't
2643         set it.
2644         * tree-vect-stmts.c (vectorizable_store): Use dr_alignment.
2646 2017-07-03  Richard Sandiford  <richard.sandiford@linaro.org>
2648         * tree-data-ref.h (innermost_loop_behavior): Add base_alignment
2649         and base_misalignment fields.
2650         (DR_BASE_ALIGNMENT, DR_BASE_MISALIGNMENT): New macros.
2651         * tree-data-ref.c: Include builtins.h.
2652         (dr_analyze_innermost): Set up the new innmost_loop_behavior fields.
2653         * tree-vectorizer.h (STMT_VINFO_DR_BASE_ALIGNMENT): New macro.
2654         (STMT_VINFO_DR_BASE_MISALIGNMENT): Likewise.
2655         * tree-vect-data-refs.c: Include tree-cfg.h.
2656         (vect_compute_data_ref_alignment): Use the new innermost_loop_behavior
2657         fields instead of calculating an alignment here.
2658         (vect_analyze_data_refs): Use dr_analyze_innermost.  Dump the new
2659         innermost_loop_behavior fields.
2661 2017-07-03  Richard Sandiford  <richard.sandiford@linaro.org>
2663         * tree-data-ref.h (innermost_loop_behavior): Add a step_alignment
2664         field.
2665         (DR_STEP_ALIGNMENT): New macro.
2666         * tree-vectorizer.h (STMT_VINFO_DR_STEP_ALIGNMENT): Likewise.
2667         * tree-data-ref.c (dr_analyze_innermost): Initalize step_alignment.
2668         (create_data_ref): Print it.
2669         * tree-vect-stmts.c (vectorizable_load): Use the step alignment
2670         to tell whether the step preserves vector (mis)alignment.
2671         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Likewise.
2672         Move the check for an integer step and generalise to all INTEGER_CST.
2673         (vect_analyze_data_refs): Set DR_STEP_ALIGNMENT when setting DR_STEP.
2674         Print the outer step alignment.
2676 2017-07-03  Richard Sandiford  <richard.sandiford@linaro.org>
2678         * tree-data-ref.h (innermost_loop_behavior): Replace aligned_to
2679         with offset_alignment.
2680         (DR_ALIGNED_TO): Delete.
2681         (DR_OFFSET_ALIGNMENT): New macro.
2682         * tree-vectorizer.h (STMT_VINFO_DR_ALIGNED_TO): Delete.
2683         (STMT_VINFO_DR_OFFSET_ALIGNMENT): New macro.
2684         * tree-data-ref.c (dr_analyze_innermost): Update after above changes.
2685         (create_data_ref): Likewise.
2686         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Likewise.
2687         (vect_analyze_data_refs): Likewise.
2688         * tree-if-conv.c (if_convertible_loop_p_1): Use memset before
2689         creating dummy innermost behavior.
2691 2017-07-03  Richard Sandiford  <richard.sandiford@linaro.org>
2693         * tree-data-ref.h (dr_analyze_innermost): Replace the dr argument
2694         with a "innermost_loop_behavior *" and refeence tree.
2695         * tree-data-ref.c (dr_analyze_innermost): Likewise.
2696         (create_data_ref): Update call accordingly.
2697         * tree-predcom.c (find_looparound_phi): Likewise.
2699 2017-07-03  Richard Sandiford  <richard.sandiford@linaro.org>
2701         * tree-vectorizer.h (_stmt_vec_info): Replace individual dr_*
2702         fields with dr_wrt_vec_loop.
2703         (STMT_VINFO_DR_BASE_ADDRESS, STMT_VINFO_DR_INIT, STMT_VINFO_DR_OFFSET)
2704         (STMT_VINFO_DR_STEP, STMT_VINFO_DR_ALIGNED_TO): Update accordingly.
2705         (STMT_VINFO_DR_WRT_VEC_LOOP): New macro.
2706         (vect_dr_behavior): New function.
2707         (vect_create_addr_base_for_vector_ref): Remove loop parameter.
2708         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Use
2709         vect_dr_behavior.  Use a step_preserves_misalignment_p boolean to
2710         track whether the step preserves the misalignment.
2711         (vect_create_addr_base_for_vector_ref): Remove loop parameter.
2712         Use vect_dr_behavior.
2713         (vect_setup_realignment): Update call accordingly.
2714         (vect_create_data_ref_ptr): Likewise.  Use vect_dr_behavior.
2715         * tree-vect-loop-manip.c (vect_gen_prolog_loop_niters): Update
2716         call to vect_create_addr_base_for_vector_ref.
2717         (vect_create_cond_for_align_checks): Likewise.
2718         * tree-vect-patterns.c (vect_recog_bool_pattern): Copy
2719         STMT_VINFO_DR_WRT_VEC_LOOP as a block.
2720         (vect_recog_mask_conversion_pattern): Likewise.
2721         * tree-vect-stmts.c (compare_step_with_zero): Use vect_dr_behavior.
2722         (new_stmt_vec_info): Remove redundant zeroing.
2724 2017-07-03  Richard Earnshaw  <rearnsha@arm.com>
2726         * common/config/arm/arm-common.c (arm_be8_option): New function.
2727         * config/arm/arm-isa.h (isa_feature): Add new feature bit isa_bit_be8.
2728         (ISA_ARMv6): Add isa_bit_be8.
2729         * config/arm/arm.h (arm_be8_option): Add prototype.
2730         (BE8_SPEC_FUNCTION): New define.
2731         (EXTRA_SPEC_FUNCTIONS): Add BE8_SPEC_FUNCTION.
2732         * config/arm/arm.opt (mbig-endian): Mark as Negative of mlittle-endian.
2733         (mlittle-endian): Similarly.
2734         (mbe8, mbe32): New options.
2735         * config/arm/bpabi.h (BE8_LINK_SPEC): Call arm_be8_option.
2736         * doc/invoke.texi (ARM Options): Document -mbe8 and -mbe32.
2738 2017-07-02  Jan Hubicka  <hubicka@ucw.cz>
2740         * tree-cfg.c (gimple_find_sub_bbs): Fix profile updating.
2742 2017-07-02  Jan Hubicka  <hubicka@ucw.cz>
2744         * tree-cfgcleanup.c (want_merge_blocks_p): New function.
2745         (cleanup_tree_cfg_bb): Use it.
2746         * profile-count.h (profile_count::of_for_merging, profile_count::merge):
2747         New functions.
2748         * tree-cfg.c (gimple_merge_blocks): Use profile_count::merge.
2750 2017-07-02  Jan Hubicka  <hubicka@ucw.cz>
2752         PR bootstrap/81285
2753         * loop-doloop.c (add_test): Update profile.
2755 2017-07-03  Martin Liska  <mliska@suse.cz>
2757         PR sanitize/81040
2758         * sanopt.c (rewrite_usage_of_param): New function.
2759         (sanitize_rewrite_addressable_params): Likewise.
2760         (pass_sanopt::execute): Call rewrite_usage_of_param.
2762 2017-07-03  Richard Biener  <rguenther@suse.de>
2764         * tree-vect-loop.c (vect_create_epilog_for_reduction): Revert
2765         back to using VIEW_CONVERT_EXPR.
2767 2017-07-03  Martin Liska  <mliska@suse.cz>
2769         PR other/78366
2770         * doc/extend.texi: Document when a resolver function is
2771         generated for target_clones.
2773 2017-07-03  Martin Liska  <mliska@suse.cz>
2775         * asan.c (asan_emit_stack_protection): Unpoison just red zones
2776         and shadow memory of auto variables which are subject of
2777         use-after-scope sanitization.
2778         (asan_expand_mark_ifn): Add do set only when is_poison.
2780 2016-07-03  Richard Biener  <rguenther@suse.de>
2782         * tree-vect-loop.c (vect_analyze_loop_operations): Also analyze
2783         reduction PHIs.
2784         (vect_force_simple_reduction): Record reduction def -> phi mapping.
2785         (vectorizable_reduction): Perform reduction PHI creation when
2786         visiting a reduction PHI and adjust and simplify code generation
2787         phase of the reduction op.  Cache dts, use fold_binary, not fold_build2.
2788         (vect_transform_loop): Visit reduction PHIs.
2789         * tree-vect-slp.c (vect_get_and_check_slp_defs): Record reduction
2790         defs into the SLP tree.
2791         (vect_build_slp_tree): Reduction defs terminate the recursion.
2792         * tree-vect-stmts.c (vect_get_vec_def_for_operand_1): Allow lookup
2793         of reduction defs.
2794         (vect_get_vec_defs_for_stmt_copy): Export.
2795         (vect_get_vec_defs): Likewise.
2796         * tree-vectorizer.h (struct _stmt_vec_info): Amend reduc_def
2797         purpose.
2798         (vect_get_vec_defs_for_stmt_copy): Declare.
2799         (vect_get_vec_defs): Likewise.
2801 2017-07-03  Richard Sandiford  <richard.sandiford@linaro.org>
2803         * tree-data-ref.c (dr_analyze_innermost): Replace the "nest"
2804         parameter with a "loop" parameter and use it instead of the
2805         loop containing DR_STMT.  Don't check simple_iv when doing
2806         BB analysis.  Describe the two analysis modes in the comment.
2808 2017-07-03  Tom de Vries  <tom@codesourcery.com>
2810         PR tree-optimization/69468
2811         * tree-ssa-tail-merge.c (ignore_edge_flags): New constant.
2812         (find_same_succ_bb): Handle ignore_edge_flags.
2814 2017-07-03  Tom de Vries  <tom@codesourcery.com>
2816         PR tree-optimization/81192
2817         * tree-ssa-tail-merge.c (same_succ_hash): Use bb->loop_father->num in
2818         hash.
2819         (same_succ::equal): Don't find bbs to be equal if bb->loop_father
2820         differs.
2821         (find_same_succ_bb): Remove obsolete test on bb->loop_father->latch.
2823 2017-07-03  Tom de Vries  <tom@codesourcery.com>
2825         PR tree-optimization/81192
2826         * tree-ssa-tail-merge.c (same_succ_flush_bb): Handle
2827         BB_SAME_SUCC (bb) == NULL.
2829 2017-07-02  Jan Hubicka  <hubicka@ucw.cz>
2831         * cfgrtl.c (rtl_verify_edges): Enable checking of profile_probability
2832         consistency.
2834 2017-07-02  Jan Hubicka  <hubicka@ucw.cz>
2836         * dumpfile.c: Include profile-count.h
2837         * tree-cfg.c (gimple_duplicate_sese_tail): Drop UNUSED attributes;
2838         update profile.
2839         (insert_cond_bb): Update profile.
2840         * tree-cfg.h (insert_cond_bb): Update prototype.
2841         * tree-chkp-opt.c (chkp_optimize_string_function_calls): Update.
2842         * tree-dump.c: Do not include tree-cfg.
2844 2017-07-02  Jan Hubicka  <hubicka@ucw.cz>
2846         * bb-reorder.c (fix_up_crossing_landing_pad): Update profile.
2848 2017-07-02  Jan Hubicka  <hubicka@ucw.cz>
2850         * expect.c (dw2_build_landing_pads): Update profile of the landing pad
2851         bb.
2853 2017-07-02  Jan Hubicka  <hubicka@ucw.cz>
2855         * tree-complex.c (expand_complex_div_wide): update profile.
2857 2017-07-02  Richard Sandiford  <richard.sandiford@linaro.org>
2858             Alan Hayward  <alan.hayward@arm.com>
2859             David Sherwood  <david.sherwood@arm.com>
2861         * Makefile.in (MACHMODE_H): Remove insn-modes.h
2862         (CORETYPES_H): New define.
2863         (MOSTLYCLEANFILES): Add insn-modes-inline.h.
2864         (insn-modes-inline.h, s-modes-inline-h): New rules.
2865         (generated_files): Add insn-modes-inline.h.
2866         (RTL_BASE_H, TREE_CORE_H): Use CORETYPES_H instead of coretypes.h.
2867         (build/gensupport.o, build/ggc-none.o, build/print-rtl.o): Likewise.
2868         (build/read-md.o, build/read-rtl.o, build/rtl.o): Likewise.
2869         (build/vec.o, build/hash-table.o, build/inchash.o): Likewise.
2870         (build/gencondmd.o, build/genattr.o, build/genattr-common.o): Likewise.
2871         (build/genattrtab.o, build/genautomata.o, build/gencheck.o): Likewise.
2872         (build/gencodes.o, build/genconditions.o): Likewise.
2873         (build/genconfig.o, build/genconstants.o, build/genemit.o): Likewise.
2874         (build/genenums.o, build/genextract.o, build/genflags.o): Likewise.
2875         (build/gentarget-def.o, build/genmddeps.o, build/genopinit.o)
2876         (build/genoutput.o, build/genpeep.o, build/genpreds.o): Likewise.
2877         (build/genrecog.o, build/genmddump.o, build/genmatch.o): Likewise.
2878         (build/gencfn-macros.o, build/gcov-iov.o): Likewise.
2879         * coretypes.h: Include everything up to real.h for generators.
2880         Include insn-modes.h first.  Include wide-int-print.h after
2881         wide-int.h.  Include insn-modes-inline.h and then machmode.h.
2882         * machmode.h: Don't include insn-modes.h here.
2883         * function-tests.c: Remove includes of signop.h, machmode.h,
2884         double-int.h and wide-int.h.
2885         * rtl.h: Likewise.
2886         * gcc-rich-location.c: Remove includes of machmode.h, double-int.h
2887         and wide-int.h.
2888         * optc-save-gen.awk: Likewise.
2889         * gencheck.c (BITS_PER_UNIT): Delete dummy definition.
2890         * godump.c: Remove include of wide-int-print.h.
2891         * pretty-print.h: Likewise.
2892         * wide-int-print.cc: Likewise.
2893         * wide-int.cc: Likewise.
2894         * hash-map-tests.c: Remove include of signop.h.
2895         * hash-set-tests.c: Likewise.
2896         * rtl-tests.c: Likewise.
2897         * mkconfig.sh: Remove include of machmode.h.
2898         * genmodes.c (emit_insn_modes_h): Split emission of inline functions
2899         into...
2900         (emit_insn_modes_inline_h): ...this new function.  Emit the code
2901         into an insn-modes-inline.h header file, adding appropriate
2902         include guards and end comments.
2903         (emit_insn_modes_c_header): Remove include of machmode.h.
2904         (emit_min_insn_modes_c_header): Include coretypes.h rather than
2905         machmode.h.
2906         (main): Handle -i flag and call emit_insn_modes_inline_h when
2907         it is passed.
2909 2017-07-02  Richard Sandiford  <richard.sandiford@linaro.org>
2911         * tree-ssa-strlen.c (strinfo): Rename the length field to
2912         nonzero_chars.  Add a full_string_p field.
2913         (compare_nonzero_chars, zero_length_string_p): New functions.
2914         (get_addr_stridx): Add an offset_out parameter.
2915         Use compare_nonzero_chars.
2916         (get_stridx): Update accordingly.  Use compare_nonzero_chars.
2917         (new_strinfo): Update after above changes to strinfo.
2918         (set_endptr_and_length): Set full_string_p.
2919         (get_string_length): Update after above changes to strinfo.
2920         (unshare_strinfo): Update call to new_strinfo.
2921         (maybe_invalidate): Likewise.
2922         (get_stridx_plus_constant): Change off to unsigned HOST_WIDE_INT.
2923         Use compare_nonzero_chars and zero_string_p.  Treat nonzero_chars
2924         as a uhwi instead of an shwi.  Update after above changes to
2925         strinfo and new_strinfo.
2926         (zero_length_string): Assert that chainsi contains full strings.
2927         Use zero_length_string_p.  Update call to new_strinfo.
2928         (adjust_related_strinfos): Update after above changes to strinfo.
2929         Copy full_string_p from origsi.
2930         (adjust_last_stmt): Use zero_length_string_p.
2931         (handle_builtin_strlen): Update after above changes to strinfo and
2932         new_strinfo.  Install the lhs as the string length if the previous
2933         entry didn't describe a full string.
2934         (handle_builtin_strchr): Update after above changes to strinfo
2935         and new_strinfo.
2936         (handle_builtin_strcpy): Likewise.
2937         (handle_builtin_strcat): Likewise.
2938         (handle_builtin_malloc): Likewise.
2939         (handle_pointer_plus): Likewise.
2940         (handle_builtin_memcpy): Likewise.  Track nonzero characters
2941         that aren't necessarily followed by a nul terminator.
2942         (handle_char_store): Likewise.
2944 2017-07-02  Richard Sandiford  <richard.sandiford@linaro.org>
2946         PR tree-optimization/80769
2947         * tree-ssa-strlen.c (strinfo): Document that "stmt" is also used
2948         for malloc and calloc.  Document the new invariant that all related
2949         strinfos have delayed lengths or none do.
2950         (verify_related_strinfos): Move earlier in file.
2951         (set_endptr_and_length): New function, split out from...
2952         (get_string_length): ...here.  Also set the lengths of related
2953         strinfos.
2954         (zero_length_string): Assert that chainsi has known (rather than
2955         delayed) lengths.
2956         (adjust_related_strinfos): Likewise.
2958 2017-07-02  Richard Sandiford  <richard.sandiford@linaro.org>
2960         PR tree-optimization/81136
2961         * tree-vect-data-refs.c (vect_update_misalignment_for_peel): Only
2962         assert that two references with the same misalignment have the same
2963         compile-time misalignment if those compile-time misalignments
2964         are known.
2966 2017-07-01  Andi Kleen  <ak@linux.intel.com>
2968         * print-tree.c (print_node): Print all attributes.
2970 2017-07-01  Jan Hubicka  <hubicka@ucw.cz>
2972         * cfg.c (scale_bbs_frequencies): New function.
2973         * cfg.h (scale_bbs_frequencies): Declare it.
2974         * cfgloopanal.c (single_likely_exit): Cleanup.
2975         * cfgloopmanip.c (scale_loop_frequencies): Take profile_probability
2976         as parameter.
2977         (scale_loop_profile): Likewise.
2978         (loop_version): Likewise.
2979         (create_empty_loop_on_edge): Update.
2980         * cfgloopmanip.h (scale_loop_frequencies, scale_loop_profile,
2981         scale_loop_frequencies, scale_loop_profile, loopify,
2982         loop_version): Update prototypes.
2983         * modulo-sched.c (sms_schedule): Update.
2984         * predict.c (unlikely_executed_edge_p): Also check probability.
2985         (probably_never_executed_edge_p): Fix typo.
2986         * tree-if-conv.c (version_loop_for_if_conversion): Update.
2987         * tree-parloops.c (gen_parallel_loop): Update.
2988         * tree-ssa-loop-ivcanon.c (try_peel_loop): Update.
2989         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Update.
2990         * tree-ssa-loop-split.c (split_loop): Update.
2991         * tree-ssa-loop-unswitch.c (tree_unswitch_loop): Update.
2992         * tree-vect-loop-manip.c (vect_do_peeling): Update.
2993         (vect_loop_versioning): Update.
2994         * tree-vect-loop.c (scale_profile_for_vect_loop): Update.
2996 2017-07-01  Jan Hubicka  <hubicka@ucw.cz>
2998         * trans-mem.c (split_bb_make_tm_edge): Update profile.
3000 2017-07-01  Jan Hubicka  <hubicka@ucw.cz>
3002         * tree-if-conv.c (combine_blocks): Use make_single_succ_edge
3003         to keep profile consistent.
3005 2017-07-01  Jan Hubicka  <hubicka@ucw.cz>
3007         * cfgrtl.c (rtl_flow_call_edges_add): Update profile.
3008         * tree-cfg.c (gimple_flow_call_edges_add): Likewise.
3009         * profile-count.h (max_safe_multiplier): Make unsigned.
3010         (profile_count::guessed_zero): New.
3012 2017-07-01  Jan Hubicka  <hubicka@ucw.cz>
3014         * bb-reorder.c (fix_up_crossing_landing_pad,
3015         fix_crossing_conditional_branches): Use make_single_succ_edge
3016         to keep profile consistent.
3018 2017-07-01  Jan Hubicka  <hubicka@ucw.cz>
3020         * tree-vect-loop.c (optimize_mask_stores): Use make_single_succ_edge
3021         to update profile.
3023 2017-07-01  Jakub Jelinek  <jakub@redhat.com>
3025         PR sanitizer/81262
3026         * bb-reorder.c (fix_up_fall_thru_edges): Move variable declarations to
3027         the right scopes, make sure cond_jump isn't preserved between multiple
3028         iterations.  Search for fallthru edge whenever there are 3+ edges and
3029         use find_fallthru_edge for it.
3031 2017-06-29  Jan Hubicka  <hubicka@ucw.cz>
3033         Patch by Alexander Monakov <amonakov@ispras.ru>
3034         * sel-sched-ir.c (compute_succs_info): Handle uninitialized
3035         probabilities consistently.
3037 2017-06-29  Jan Hubicka  <hubicka@ucw.cz>
3039         * pa.c (pa_expand_compare_and_swap_loop): Update call of
3040         emit_cmp_and_jump_insns.
3042 2017-06-29  Jan Hubicka  <hubicka@ucw.cz>
3044         PR ipa/81261
3045         * tree-inline.c (expand_call_inline): Combine profile statuses.
3047 2017-06-30  Andrew Pinski  <apinski@cavium.com>
3049         * tree-if-conv.c (predicate_scalar_phi): Update new_stmt if
3050         fold_stmt returned true.
3052 2017-06-30  Nathan Sidwell  <nathan@acm.org>
3054         * ggc.h (empty_string): Delete.
3055         * cfgexpand.c (expand_asm_stmt): Use plain "".
3056         * optabs.c (expand_asm_memory_barrier): Likewise.
3057         * stringpool.c (empty_string): Delete.
3058         (digit_vector, digit_string): Delete.
3059         (ggc_alloc_string): Use plain "", don't optimize single digit
3060         strings.  Use ggc_alloc_atomic.
3062 2017-06-30  Richard Earnshaw  <rearnsha@arm.com>
3064         * rtlanal.c (insn_rtx_cost): If a parallel contains exactly one
3065         comparison set and one other set, use the cost of the non-comparison
3066         set.
3068 2017-06-30  Nathan Sidwell  <nathan@acm.org>
3070         * ggc.h: Replace all 'static inline' with plain 'inline'.  Fix
3071         some formatting.
3073 2017-06-30  Peter Bergner  <bergner@vnet.ibm.com>
3075         * tree-cfg.c (group_case_labels_stmt): Merge scanning and compressing
3076         loops.  Remove now unneeded calls to gimple_switch_set_label() that
3077         just set removed labels to NULL_TREE.
3079 2017-06-30  Aldy Hernandez  <aldyh@redhat.com>
3081         * tree-ssanames.c (set_range_info_raw): Abstract from ...
3082         (set_range_info): ...here.  Only call set_range_info_raw if domain
3083         is useful.
3084         (set_nonzero_bits): Call set_range_info_raw.
3085         * tree-ssanames.h (set_range_info_raw): New.
3087 2017-06-30  Jakub Jelinek  <jakub@redhat.com>
3089         PR target/81225
3090         * config/i386/sse.md (vec_extract_lo_<mode><mask_name>): For V8FI,
3091         V16FI and VI8F_256 iterators, use <store_mask_predicate> instead
3092         of nonimmediate_operand and <store_mask_constraint> instead of m
3093         for the input operand.  For V8FI iterator, always split if input
3094         is a MEM.  For V16FI and V8SF_256 iterators, don't test if both
3095         operands are MEM if <mask_applied>.  For VI4F_256 iterator, use
3096         <store_mask_predicate> instead of register_operand and
3097         <store_mask_constraint> instead of v for the input operand.  Make
3098         sure both operands aren't MEMs for if not <mask_applied>.
3100 2017-06-30  Sylvestre Ledru  <sylvestre@debian.org>
3102         * lto-wrapper.c (copy_file) Close both file descriptors before
3103         exiting normally.
3105 2017-06-30  Martin Liska  <mliska@suse.cz>
3107         PR ipa/81214
3108         * multiple_target.c (create_dispatcher_calls): Make ifunc
3109         also for function that don't have calls or are not referenced.
3111 2017-06-30  Richard Biener  <rguenther@suse.de>
3113         * tree-vect-slp.c (vect_slp_analyze_node_operations): Only
3114         analyze the first scalar stmt.  Move vector type computation
3115         for the BB case here from ...
3116         * tree-vect-stmts.c (vect_analyze_stmt): ... here.  Guard
3117         live operation processing in the SLP case properly.
3119 2017-06-30  Richard Biener  <rguenther@suse.de>
3121         * graph.c (draw_cfg_node_succ_edges): Fix broken dot syntax.
3123 2017-06-30  Martin Liska  <mliska@suse.cz>
3125         PR sanitizer/81021
3126         * tree-eh.c (lower_resx): Call BUILT_IN_ASAN_HANDLE_NO_RETURN
3127         before BUILT_IN_UNWIND_RESUME when ASAN is used.
3129 2017-06-30  Yvan Roux  <yvan.roux@linaro.org>
3131         * doc/invoke.texi (AArch64): Add missing options and remove redundant
3132         ones.
3134 2017-06-30  Richard Biener  <rguenther@suse.de>
3136         PR tree-optimization/81249
3137         * tree-vect-loop.c (vect_create_epilog_for_reduction): Convert
3138         condition reduction result to original scalar type.
3140 2017-06-30  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
3142         * profile-count.h (enum profile_quality): Fix typos and whitespace
3143         issues.
3145 2017-06-30  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
3147         * config/s390/s390.c (s390_expand_setmem): Adjust to the new data
3148         type for branch probabilities.
3150 2017-06-29  Julian Brown  <julian@codesourcery.com>
3151             Naveen H.S  <Naveen.Hurugalawadi@cavium.com>
3153         * config/aarch64/aarch64-fusion-pairs.def: Add ALU_BRANCH entry.
3154         * config/aarch64/aarch64.c (AARCH64_FUSE_ALU_BRANCH): New fusion type.
3155         (thunderx2t99_tunings): Set AARCH64_FUSE_ALU_BRANCH flag.
3156         (aarch_macro_fusion_pair_p): Add support for AARCH64_FUSE_ALU_BRANCH.
3158 2017-06-29  Naveen H.S  <Naveen.Hurugalawadi@cavium.com>
3160         * config/aarch64/aarch64.c (aarch_macro_fusion_pair_p): Push the
3161         check for CC usage into AARCH64_FUSE_CMP_BRANCH.
3162         * config/i386/i386.c (ix86_macro_fusion_pair_p): Push the check for
3163         CC usage from generic code to here.
3164         * sched-deps.c (sched_macro_fuse_insns): Move the condition for
3165         CC usage into the target macros.
3167 2017-06-29  Maya Rashish  <coypu@sdf.org>
3169         * config/netbsd.h (NETBSD_LIB_SPEC): Add -lc when creating shared
3170         objects.
3172 2017-06-29  Jan Hubicka  <hubicka@ucw.cz>
3174         * arm/arm-builtins.c: Include profile-count.h
3175         * except.c (sjlj_emit_function_enter): Use
3176         profile_probability::unlikely.
3178 2017-06-29  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
3180         * config/rs6000/rs6000.c (toc_relative_expr_p): Make tocrel_base
3181         and tocrel_offset be pointer args rather than implicitly using
3182         static versions.
3183         (legitimate_constant_pool_address_p, rs6000_emit_move,
3184         const_load_sequence_p, adjust_vperm): Add local tocrel_base and
3185         tocrel_offset and use in toc_relative_expr_p call.
3186         (print_operand, print_operand_address): Use static tocrel_base_oac
3187         and tocrel_offset_oac.
3188         (rs6000_output_addr_const_extra): Use static tocrel_base_oac and
3189         tocrel_offset_oac.
3191 2017-06-29  Maya Rashish  <coypu@sdf.org>
3193         * config/vax/builtins.md (ffssi2_internal): Correct constraint.
3195 2017-06-29  Eric Botcazou  <ebotcazou@adacore.com>
3197         * expr.c (expand_expr) <normal_inner_ref>: When testing for unaligned
3198         objects, take into account only the alignment of 'op0' and 'mode1' if
3199         'op0' is a MEM.
3201 2017-06-29  Steve Ellcey  <sellcey@cavium.com>
3203         * ccmp.c (ccmp_tree_comparison_p): New function.
3204         (ccmp_candidate_p): Update to use above function.
3205         (get_compare_parts): New function.
3206         (expand_ccmp_next): Update to use new functions.
3207         (expand_ccmp_expr_1): Take tree arg instead of gimple, update to use
3208         new functions.
3209         (expand_ccmp_expr): Pass tree instead of gimple to expand_ccmp_expr_1,
3210         take mode as argument.
3211         * ccmp.h (expand_ccmp_expr): Add mode as argument.
3212         * expr.c (expand_expr_real_1): Pass mode as argument.
3214 2017-06-29  Segher Boessenkool  <segher@kernel.crashing.org>
3216         * combine.c (combine_instructions): Print insns to dump_file, together
3217         with their costs.
3219 2017-06-29  Jan Hubicka  <hubicka@ucw.cz>
3221         * asan.c (asan_emit_stack_protection): Update.
3222         (create_cond_insert_point): Update.
3223         * auto-profile.c (afdo_propagate_circuit): Update.
3224         * basic-block.h (struct edge_def): Turn probability to
3225         profile_probability.
3226         (EDGE_FREQUENCY): Update.
3227         * bb-reorder.c (find_traces_1_round): Update.
3228         (better_edge_p): Update.
3229         (sanitize_hot_paths): Update.
3230         * cfg.c (unchecked_make_edge): Initialize probability to uninitialized.
3231         (make_single_succ_edge): Update.
3232         (check_bb_profile): Update.
3233         (dump_edge_info): Update.
3234         (update_bb_profile_for_threading): Update.
3235         * cfganal.c (connect_infinite_loops_to_exit): Initialize new edge
3236         probabilitycount to 0.
3237         * cfgbuild.c (compute_outgoing_frequencies): Update.
3238         * cfgcleanup.c (try_forward_edges): Update.
3239         (outgoing_edges_match): Update.
3240         (try_crossjump_to_edge): Update.
3241         * cfgexpand.c (expand_gimple_cond): Update make_single_succ_edge.
3242         (expand_gimple_tailcall): Update.
3243         (construct_init_block): Use make_single_succ_edge.
3244         (construct_exit_block): Use make_single_succ_edge.
3245         * cfghooks.c (verify_flow_info): Update.
3246         (redirect_edge_succ_nodup): Update.
3247         (split_edge): Update.
3248         (account_profile_record): Update.
3249         * cfgloopanal.c (single_likely_exit): Update.
3250         * cfgloopmanip.c (scale_loop_profile): Update.
3251         (set_zero_probability): Remove.
3252         (duplicate_loop_to_header_edge): Update.
3253         * cfgloopmanip.h (loop_version): Update prototype.
3254         * cfgrtl.c (try_redirect_by_replacing_jump): Update.
3255         (force_nonfallthru_and_redirect): Update.
3256         (update_br_prob_note): Update.
3257         (rtl_verify_edges): Update.
3258         (purge_dead_edges): Update.
3259         (rtl_lv_add_condition_to_bb): Update.
3260         * cgraph.c: (cgraph_edge::redirect_call_stmt_to_calle): Update.
3261         * cgraphunit.c (init_lowered_empty_function): Update.
3262         (cgraph_node::expand_thunk): Update.
3263         * cilk-common.c: Include profile-count.h
3264         * dojump.c (inv): Remove.
3265         (jumpifnot): Update.
3266         (jumpifnot_1): Update.
3267         (do_jump_1): Update.
3268         (do_jump): Update.
3269         (do_jump_by_parts_greater_rtx): Update.
3270         (do_compare_rtx_and_jump): Update.
3271         * dojump.h (jumpifnot, jumpifnot_1, jumpif_1, jumpif, do_jump,
3272         do_jump_1. do_compare_rtx_and_jump): Update prototype.
3273         * dwarf2cfi.c: Include profile-count.h
3274         * except.c (dw2_build_landing_pads): Use make_single_succ_edge.
3275         (sjlj_emit_dispatch_table): Likewise.
3276         * explow.c: Include profile-count.h
3277         * expmed.c (emit_store_flag_force): Update.
3278         (do_cmp_and_jump): Update.
3279         * expr.c (compare_by_pieces_d::generate): Update.
3280         (compare_by_pieces_d::finish_mode): Update.
3281         (emit_block_move_via_loop): Update.
3282         (store_expr_with_bounds): Update.
3283         (store_constructor): Update.
3284         (expand_expr_real_2): Update.
3285         (expand_expr_real_1): Update.
3286         * expr.h (try_casesi, try_tablejump): Update prototypes.
3287         * gimple-pretty-print.c (dump_probability): Update.
3288         (dump_profile): New.
3289         (dump_gimple_label): Update.
3290         (dump_gimple_bb_header): Update.
3291         * graph.c (draw_cfg_node_succ_edges): Update.
3292         * hsa-gen.c (convert_switch_statements): Update.
3293         * ifcvt.c (cheap_bb_rtx_cost_p): Update.
3294         (find_if_case_1): Update.
3295         (find_if_case_2): Update.
3296         * internal-fn.c (expand_arith_overflow_result_store): Update.
3297         (expand_addsub_overflow): Update.
3298         (expand_neg_overflow): Update.
3299         (expand_mul_overflow): Update.
3300         (expand_vector_ubsan_overflow): Update.
3301         * ipa-cp.c (good_cloning_opportunity_p): Update.
3302         * ipa-split.c (split_function): Use make_single_succ_edge.
3303         * ipa-utils.c (ipa_merge_profiles): Update.
3304         * loop-doloop.c (add_test): Update.
3305         (doloop_modify): Update.
3306         * loop-unroll.c (compare_and_jump_seq): Update.
3307         (unroll_loop_runtime_iterations): Update.
3308         * lra-constraints.c (lra_inheritance): Update.
3309         * lto-streamer-in.c (input_cfg): Update.
3310         * lto-streamer-out.c (output_cfg): Update.
3311         * mcf.c (adjust_cfg_counts): Update.
3312         * modulo-sched.c (sms_schedule): Update.
3313         * omp-expand.c (expand_omp_for_init_counts): Update.
3314         (extract_omp_for_update_vars): Update.
3315         (expand_omp_ordered_sink): Update.
3316         (expand_omp_for_ordered_loops): Update.
3317         (expand_omp_for_generic): Update.
3318         (expand_omp_for_static_nochunk): Update.
3319         (expand_omp_for_static_chunk): Update.
3320         (expand_cilk_for): Update.
3321         (expand_omp_simd): Update.
3322         (expand_omp_taskloop_for_outer): Update.
3323         (expand_omp_taskloop_for_inner): Update.
3324         * omp-simd-clone.c (simd_clone_adjust): Update.
3325         * optabs.c (expand_doubleword_shift): Update.
3326         (expand_abs): Update.
3327         (emit_cmp_and_jump_insn_1): Update.
3328         (expand_compare_and_swap_loop): Update.
3329         * optabs.h (emit_cmp_and_jump_insns): Update prototype.
3330         * predict.c (predictable_edge_p): Update.
3331         (edge_probability_reliable_p): Update.
3332         (set_even_probabilities): Update.
3333         (combine_predictions_for_insn): Update.
3334         (combine_predictions_for_bb): Update.
3335         (propagate_freq): Update.
3336         (estimate_bb_frequencies): Update.
3337         (force_edge_cold): Update.
3338         * profile-count.c (profile_count::dump): Add missing space into dump.
3339         (profile_count::debug): Add newline.
3340         (profile_count::differs_from_p): Explicitly convert to unsigned.
3341         (profile_count::stream_in): Update.
3342         (profile_probability::dump): New member function.
3343         (profile_probability::debug): New member function.
3344         (profile_probability::differs_from_p): New member function.
3345         (profile_probability::differs_lot_from_p): New member function.
3346         (profile_probability::stream_in): New member function.
3347         (profile_probability::stream_out): New member function.
3348         * profile-count.h (profile_count_quality): Rename to ...
3349         (profile_quality): ... this one.
3350         (profile_probability): New.
3351         (profile_count): Update.
3352         * profile.c (compute_branch_probabilities): Update.
3353         * recog.c (peep2_attempt): Update.
3354         * sched-ebb.c (schedule_ebbs): Update.
3355         * sched-rgn.c (find_single_block_region): Update.
3356         (compute_dom_prob_ps): Update.
3357         (schedule_region): Update.
3358         * sel-sched-ir.c (compute_succs_info): Update.
3359         * stmt.c (struct case_node): Update.
3360         (do_jump_if_equal): Update.
3361         (get_outgoing_edge_probs): Update.
3362         (conditional_probability): Update.
3363         (emit_case_dispatch_table): Update.
3364         (expand_case): Update.
3365         (expand_sjlj_dispatch_table): Update.
3366         (emit_case_nodes): Update.
3367         * targhooks.c: Update.
3368         * tracer.c (better_p): Update.
3369         (find_best_successor): Update.
3370         * trans-mem.c (expand_transaction): Update.
3371         * tree-call-cdce.c: Update.
3372         * tree-cfg.c (gimple_split_edge): Upate.
3373         (move_sese_region_to_fn): Upate.
3374         * tree-cfgcleanup.c (cleanup_control_expr_graph): Upate.
3375         * tree-eh.c (lower_resx): Upate.
3376         (cleanup_empty_eh_move_lp): Upate.
3377         * tree-if-conv.c (version_loop_for_if_conversion): Update.
3378         * tree-inline.c (copy_edges_for_bb): Update.
3379         (copy_cfg_body): Update.
3380         * tree-parloops.c (gen_parallel_loop): Update.
3381         * tree-profile.c (gimple_gen_ic_func_profiler): Update.
3382         (gimple_gen_time_profiler): Update.
3383         * tree-ssa-dce.c (remove_dead_stmt): Update.
3384         * tree-ssa-ifcombine.c (update_profile_after_ifcombine): Update.
3385         * tree-ssa-loop-im.c (execute_sm_if_changed): Update.
3386         * tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): Update.
3387         (unloop_loops): Update.
3388         (try_peel_loop): Update.
3389         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Update.
3390         * tree-ssa-loop-split.c (connect_loops): Update.
3391         (split_loop): Update.
3392         * tree-ssa-loop-unswitch.c (tree_unswitch_loop): Update.
3393         (hoist_guard): Update.
3394         * tree-ssa-phionlycprop.c (propagate_rhs_into_lhs): Update.
3395         * tree-ssa-phiopt.c (replace_phi_edge_with_variable): Update.
3396         (value_replacement): Update.
3397         * tree-ssa-reassoc.c (branch_fixup): Update.
3398         * tree-ssa-tail-merge.c (replace_block_by): Update.
3399         * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges): Update.
3400         (create_edge_and_update_destination_phis): Update.
3401         (compute_path_counts): Update.
3402         (recompute_probabilities): Update.
3403         (update_joiner_offpath_counts): Update.
3404         (freqs_to_counts_path): Update.
3405         (duplicate_thread_path): Update.
3406         * tree-switch-conversion.c (hoist_edge_and_branch_if_true): Update.
3407         (struct switch_conv_info): Update.
3408         (gen_inbound_check): Update.
3409         * tree-vect-loop-manip.c (slpeel_add_loop_guard): Update.
3410         (vect_do_peeling): Update.
3411         (vect_loop_versioning): Update.
3412         * tree-vect-loop.c (scale_profile_for_vect_loop): Update.
3413         (optimize_mask_stores): Update.
3414         * ubsan.c (ubsan_expand_null_ifn): Update.
3415         * value-prof.c (gimple_divmod_fixed_value): Update.
3416         (gimple_divmod_fixed_value_transform): Update.
3417         (gimple_mod_pow2): Update.
3418         (gimple_mod_pow2_value_transform): Update.
3419         (gimple_mod_subtract): Update.
3420         (gimple_mod_subtract_transform): Update.
3421         (gimple_ic): Update.
3422         (gimple_stringop_fixed_value): Update.
3423         (gimple_stringops_transform): Update.
3424         * value-prof.h: Update.
3426 2017-06-29  Carl Love  <cel@us.ibm.com>
3428         * config/rs6000/rs6000-c.c: Add support for built-in functions
3429         vector signed int vec_signed (vector float);
3430         vector signed long long vec_signed (vector double);
3431         vector signed int vec_signed2 (vector double, vector double);
3432         vector signed int vec_signede (vector double);
3433         vector signed int vec_signedo (vector double);
3434         * config/rs6000/rs6000.c (rs6000_generate_vsigned2_code): Add
3435         instruction generator.
3436         * config/rs6000/vsx.md (UNSPEC_VSX_XVCVSPSXWS, UNSPEC_VSX_XVCVSPSXDS,
3437         UNSPEC_VSX_VSIGNED2): Add UNSPECS.
3438         (vsx_xvcvspsxws, vsx_xvcvdpuxds_scale, vsx_xvcvspuxws, vsigned2_v2df):
3439         Add define_insn.
3440         (vsignedo_v2df, vsignede_v2df, vunsigned2_v2df, vunsignedo_v2df,
3441         vunsignede_v2df): Add define_expands.
3442         * config/rs6000/rs6000-builtin.def (VEC_SIGNED, VEC_UNSIGNED,
3443         VEC_SIGNED2, VEC_UNSIGNED2, VEC_SIGNEDE, VEC_UNSIGNEDE, VEC_SIGNEDO,
3444         VEC_UNSIGNEDO): Add definitions.
3445         * config/vsx.md (UNSPEC_VSX_XVCVSPSXWS, UNSPEC_VSX_XVCVSPSXDS,
3446         UNSPEC_VSX_VSIGNED2): Add UNSPECs.
3447         (vsx_xvcvspsxws, vsx_xvcvspuxws): Add define_insn.
3448         (vsigned2_v2df, vsigendo_v2df, vsignede_v2df,
3449         vunsigned2_v2df, vunsignedo_v2df, vunsignede_v2df): Add define_expands.
3450         * config/rs6000/altivec.h (vec_signed, vec_signed2,
3451         vec_signede and vec_signedo, vec_unsigned, vec_unsigned2,
3452         vec_unsignede, vec_unsignedo): Add builtin defines.
3453         * config/rs6000-protos.h (rs6000_generate_vsigned2_code): Add extern
3454         declaration.
3455         * doc/extend.texi: Update the built-in documentation file for the
3456         new built-in functions.
3458 2017-06-29  Richard Biener  <rguenther@suse.de>
3460         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Do not add
3461         reduction chains to LOOP_VINFO_REDUCTIONS.
3462         * tree-vect-slp.c (vect_analyze_slp): Continue looking for
3463         SLP reductions after processing reduction chains.
3465 2017-06-29  Nathan Sidwell  <nathan@acm.org>
3467         * builtins.c (fold_builtin_FUNCTION): Use
3468         lang_hooks.decl_printable_name.
3470 2017-06-29  Peter Bergner  <bergner@vnet.ibm.com>
3472         PR middle-end/81194
3473         * cfgexpand.c (expand_gimple_stmt_1): Handle switch statements
3474         with only one label.
3475         * stmt.c (expand_case): Assert NCASES is greater than one.
3477 2017-06-29  Richard Biener  <rguenther@suse.de>
3479         * tree-cfg.c (group_case_labels_stmt): Return whether we changed
3480         anything.
3481         (group_case_labels): Likewise.
3482         (find_taken_edge): Push sanity checking on val to workers...
3483         (find_taken_edge_cond_expr): ... here
3484         (find_taken_edge_switch_expr): ... and here, handle cases
3485         with just a default label.
3486         * tree-cfg.h (group_case_labels_stmt): Adjust prototype.
3487         (group_case_labels): Likewise.
3488         * tree-cfgcleanup.c (execute_cleanup_cfg_post_optimizing): When
3489         group_case_labels does anything cleanup the CFG again.
3491 2017-06-29  Bin Cheng  <bin.cheng@arm.com>
3493         PR tree-optimization/81196
3494         * tree-ssa-loop-niter.c (number_of_iterations_cond): Handle loop
3495         exit condition comparing two IVs.
3497 2017-06-29  Richard Earnshaw  <rearnsha@arm.com>
3499         * config/arm/parsecpu.awk (gen_comm_data): Add initializer for
3500         profile to the dummy entry at the end of the list of architectures.
3501         * config/arm/arm-cpu-cdata.h: Regenerated.
3503 2017-06-29  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3504             Michael Collison <michael.collison@arm.com>
3506         PR target/70119
3507         * config/aarch64/aarch64.md (*aarch64_<optab>_reg_<mode>3_mask1):
3508         New pattern.
3509         (*aarch64_reg_<mode>3_neg_mask2): New pattern.
3510         (*aarch64_reg_<mode>3_minus_mask): New pattern.
3511         (*aarch64_<optab>_reg_di3_mask2): New pattern.
3512         * config/aarch64/aarch64.c (aarch64_rtx_costs): Account for cost
3513         of shift when the shift amount is masked with constant equal to
3514         the size of the mode.
3515         * config/aarch64/predicates.md (subreg_lowpart_operator): New
3516         predicate.
3518 2017-06-29  Martin Liska  <mliska@suse.cz>
3520         * config/i386/i386.opt: Change range from [1,5] to [0,5].
3522 2017-06-29  Yury Gribov  <tetra2005@gmail.com>
3524         PR bootstrap/80565
3525         * ipa-cp.c (allocate_and_init_ipcp_value): Add initialization
3526         code.
3527         * ipa-inline.h
3528         (edge_growth_cache_entry::edge_growth_cache_entry): New
3529         function.
3530         (reset_edge_growth_cache): Update to use constructor.
3532 2017-06-28  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
3534         * config/aarch64/aarch64.h (AARCH64_EXPAND_ALIGNMENT): New.
3535         (DATA_ALIGNMENT): Update to use AARCH64_EXPAND_ALIGNMENT.
3536         (LOCAL_ALIGNMENT): Update to use AARCH64_EXPAND_ALIGNMENT.
3538 2017-06-28  Sebastian Peryt  <sebastian.peryt@intel.com>
3540         * config/i386/avx512vlintrin.h (_mm256_permutexvar_epi64)
3541         (_mm256_permutexvar_epi32, _mm256_permutex_epi64): New intrinsics.
3543 2017-06-28  Szabolcs Nagy  <szabolcs.nagy@arm.com>
3545         * config.gcc (*-linux-musl*): Add t-musl tmake_file.
3546         (*-linux-uclibc*): Add t-uclibc tmake_file.
3547         * config/t-musl: New.
3548         * config/t-uclibc: New.
3550 2017-06-28  Richard Earnshaw  <rearnsha@arm.com>
3552         * config/arm/parsecpu.awk (profile): Parse new keyword in an arch
3553         context.
3554         (gen_comm_data): Emit architectural setting of arch_prof.
3555         * config/arm/arm-cpus.in (armv6-m, armv6s-m, armv7-a, armv7ve): Set the
3556         profile.
3557         (armv7-r, armv7-m, armv7e-m, armv8-a, armv8.1-a, armv8.2-a): Likewise.
3558         (armv8-m.base, armv8-m.main): Likewise.
3559         * arm-protos.h (arm_build_target): Add profile field.
3560         (arch_option): Likewise.
3561         * config/arm/arm.c (arm_configure_build_target): Copy the profile to
3562         the active target.
3563         * config/arm/arm.h (TARGET_ARM_ARCH_PROFILE): Use
3564         arm_active_target.profile.
3566 2017-06-28  Richard Biener  <rguenther@suse.de>
3568         PR middle-end/81227
3569         * fold-const.c (negate_expr_p): Use TYPE_UNSIGNED, not
3570         TYPE_OVERFLOW_WRAPS.
3571         * match.pd (negate_expr_p): Likewise.
3572         * tree-ssa-reassoc.c (optimize_range_tests_diff): Use
3573         fold_build2, not fold_binary.
3575 2017-06-28  Wilco Dijkstra  <wdijkstr@arm.com>
3577         * config/aarch64/aarch64 (aarch64_expand_mov_immediate):
3578         Convert memory address to Pmode.
3579         (aarch64_print_operand): Assert MEM operands are always Pmode.
3581 2017-06-28  Wilco Dijkstra  <wdijkstr@arm.com>
3583         PR target/79665
3584         * config/arm/aarch-common.c (arm_no_early_alu_shift_dep):
3585         Remove redundant if.
3586         (aarch_forward_to_shift_is_not_shifted_reg): Remove.
3587         * config/arm/aarch-common-protos.h
3588         (aarch_forward_to_shift_is_not_shifted_re): Remove.
3589         * config/arm/cortex-a53.md: Use arm_no_early_alu_shift_dep in bypass.
3591 2017-06-28  Michael Meissner  <meissner@linux.vnet.ibm.com>
3593         PR ipa/81238
3594         * multiple_target.c (create_dispatcher_calls): Set the default
3595         clone to be static, not public.
3597 2017-06-28  Richard Biener  <rguenther@suse.de>
3599         * tree-vect-loop.c (vectorizable_reduction): Move special
3600         cond reduction IV var creation ...
3601         (vect_create_epilog_for_reduction): ... here.  Remove induction_index
3602         parameter.  Use STMT_VINFO_VECTYPE.
3603         * tree-vect-slp.c (vect_get_constant_vectors): Properly reset
3604         constant_p.
3606 2017-06-28  Martin Liska  <mliska@suse.cz>
3608         PR ipa/81128
3609         * ipa-visibility.c (non_local_p): Handle visibility.
3611 2017-06-28  Martin Liska  <mliska@suse.cz>
3613         PR driver/79659
3614         * common.opt: Add IntegerRange to various options.
3615         * opt-functions.awk (integer_range_info): New function.
3616         * optc-gen.awk: Add integer_range_info to cl_options struct.
3617         * opts-common.c (decode_cmdline_option): Handle
3618         CL_ERR_INT_RANGE_ARG.
3619         (cmdline_handle_error): Likewise.
3620         * opts.c (print_filtered_help): Show valid interval in
3621         when --help is provided.
3622         * opts.h (struct cl_option): Add range_min and range_max fields.
3623         * config/i386/i386.opt: Add IntegerRange for -mbranch-cost.
3625 2017-06-28  Marc Glisse  <marc.glisse@inria.fr>
3627         * match.pd ((X & ~Y) | (~X & Y)): Generalize to + and ^.
3628         (x * C EQ/NE y * C): New transformation.
3630 2017-06-28  Christophe Lyon  <christophe.lyon@linaro.org>
3632         * genmultilib (combination_space): Accept '+' in option names.
3634 2017-06-28  Martin Liska  <mliska@suse.cz>
3636         PR sanitizer/81224
3637         * asan.c (instrument_derefs): Bail out inner references
3638         that are hard register variables.
3640 2017-06-28  Jakub Jelinek  <jakub@redhat.com>
3642         PR target/81175
3643         * config/i386/i386.c (ix86_init_mmx_sse_builtins): Use def_builtin
3644         rather than def_builtin_pure for __builtin_ia32_gatherpf*.
3646 2017-06-28  Richard Biener  <rguenther@suse.de>
3648         * tree-vectorizer.h (vect_get_vec_defs): Remove.
3649         (vect_get_slp_defs): Adjust.
3650         * tree-vect-loop.c (get_initial_defs_for_reduction): Split
3651         out from ...
3652         * tree-vect-slp.c (vect_get_constant_vectors): ... here and
3653         simplify.
3654         * tree-vect-loop.c (vect_create_epilog_for_reduction): Use
3655         get_initial_defs_for_reduction instead of vect_get_vec_defs.
3656         (vectorizable_reduction): Adjust.
3657         * tree-vect-slp.c (vect_get_constant_vectors): Remove reduction
3658         handling.
3659         (vect_get_slp_defs): Likewise.
3660         * tree-vect-stmts.c (vect_get_vec_defs): Make static and adjust.
3661         (vectorizable_bswap): Adjust.
3662         (vectorizable_call): Likewise.
3663         (vectorizable_conversion): Likewise.
3664         (vectorizable_assignment): Likewise.
3665         (vectorizable_shift): Likewise.
3666         (vectorizable_operation): Likewise.
3667         (vectorizable_store): Likewise.
3668         (vectorizable_condition): Likewise.
3669         (vectorizable_comparison): Likewise.
3671 2017-06-28  Michael Collison  <michael.collison@arm.com>
3673         PR target/68535
3674         * config/arm/arm.c (gen_ldm_seq): Remove last unnecessary
3675         set of base_reg
3676         (arm_gen_movmemqi): Removed unused variable 'i'.
3677         Convert 'for' loop into 'while' loop.
3678         (arm_expand_prologue): Remove last unnecessary set of insn.
3679         (thumb_pop): Remove unused variable 'pushed_words'.
3680         (thumb_exit): Remove last unnecessary set of regs_to_pop.
3682 2017-06-28  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
3684         * config/s390/predicates.md: Use s390_rel_address_ok_p.
3685         * config/s390/s390-protos.h: Add prototype of
3686         s390_rel_address_ok_p.
3687         * config/s390/s390.c (s390_got_symbol): New function.
3688         (s390_rel_address_ok_p): New function.
3689         (legitimize_pic_address): Use s390_rel_address_ok_p.
3690         (s390_load_got): Use s390_got_symbol.
3691         (s390_option_override): Issue error if
3692         -mno-pic-data-is-text-relative is used without -fpic/-fPIC.
3693         * config/s390/s390.h (TARGET_DEFAULT_PIC_DATA_IS_TEXT_RELATIVE):
3694         New macro.
3695         * config/s390/s390.opt: New option mpic-data-is-text-relative.
3697 2017-06-27  Andrew Pinski  <apinski@cavium.com>
3699         * match.pd (X >/>=/</<= 0 ? 1.0 : -1.0): New patterns.
3700         (X * copysign (1.0, X)): New pattern.
3701         (X * copysign (1.0, -X)): New pattern.
3702         (copysign (-1.0, CST)): New pattern.
3704 2017-06-27  Joseph Myers  <joseph@codesourcery.com>
3706         * genmultilib (combination_space): Remove variable.
3707         Validate reuse rules against regular expression for any sequence
3708         of multilib options in any order.
3710 2017-06-27  Michael Collison  <michael.collison@arm.com>
3712         * config/aarch64/aarch64-simd.md (aarch64_combine<mode>): Directly
3713         call aarch64_split_simd_combine.
3714         * (aarch64_combine_internal<mode>): Delete pattern.
3715         * config/aarch64/aarch64.c (aarch64_split_simd_combine):
3716         Allow register and subreg operands.
3718 2017-06-27  Jerome Lambourg  <lambourg@adacore.com>
3720         * config/i386/vxworks.h (ASM_SPEC): Remove definition. No target
3721         specific need, just fallback on defaults.
3722         (ASM_OUTPUT_ALIGNED_BSS): Add #undef before #define.
3724 2017-06-27  Jerome Lambourg  <lambourg@adacore.com>
3725             Olivier Hainque  <hainque@adacore.com>
3727         * config/i386/vxworks.h (DBX_REGISTER_NUMBER): Pick distinct
3728         map for 64bits.
3729         (TARGET_OS_CPP_BUILTINS): builtin_define CPU to X86_64 for 64bit
3730         targets. Pick a default if no particular attempt applied.
3731         (STACK_CHECK_PROTECT): Double for 64bit targets, which have
3732         larger contexts.
3734 2017-06-27  Jerome Lambourg  <lambourg@adacore.com>
3736         * config.gcc (i*86-wrs-vxworks7): Handle new acceptable triplet.
3737         (x86_64-wrs-vxworks7): Likewise.
3739 2017-06-27  Marek Polacek  <polacek@redhat.com>
3741         PR sanitizer/81223
3742         * ubsan.c (instrument_null): Check get_base_address's result for null.
3744 2017-06-27  Marc Glisse  <marc.glisse@inria.fr>
3746         * match.pd ((A+-B)+(C-A), (A+B)-(A-C)): New transformations.
3748 2017-06-27  Marc Glisse  <marc.glisse@inria.fr>
3750         * builtin-types.def (BT_FENV_T_PTR, BT_CONST_FENV_T_PTR,
3751         BT_FEXCEPT_T_PTR, BT_CONST_FEXCEPT_T_PTR): New primitive types.
3752         (BT_FN_INT_FENV_T_PTR, BT_FN_INT_CONST_FENV_T_PTR,
3753         BT_FN_INT_FEXCEPT_T_PTR_INT, BT_FN_INT_CONST_FEXCEPT_T_PTR_INT):
3754         New function types.
3755         * builtins.def (BUILT_IN_FECLEAREXCEPT, BUILT_IN_FEGETENV,
3756         BUILT_IN_FEGETEXCEPTFLAG, BUILT_IN_FEGETROUND,
3757         BUILT_IN_FEHOLDEXCEPT, BUILT_IN_FERAISEEXCEPT,
3758         BUILT_IN_FESETENV, BUILT_IN_FESETEXCEPTFLAG,
3759         BUILT_IN_FESETROUND, BUILT_IN_FETESTEXCEPT,
3760         BUILT_IN_FEUPDATEENV): New builtins.
3761         * tree-core.h (TI_FENV_T_PTR_TYPE, TI_CONST_FENV_T_PTR_TYPE,
3762         TI_FEXCEPT_T_PTR_TYPE, TI_CONST_FEXCEPT_T_PTR_TYPE): New entries.
3763         * tree.h (fenv_t_ptr_type_node, const_fenv_t_ptr_type_node,
3764         fexcept_t_ptr_type_node, const_fexcept_t_ptr_type_node): New
3765         macros.
3766         (builtin_structptr_types): Adjust size.
3767         * tree.c (builtin_structptr_types): Add four entries.
3769 2017-06-27  Jerome Lambourg  <lambourg@adacore.com>
3770             Olivier Hainque  <hainque@adacore.com>
3772         * config/vxworks.h (VXWORKS_LIB_SPEC): Incorporate ...
3773         (TLS_SYM): New local macro, forcing reference to __tls__ on
3774         link command lines for VxWorks 7 RTPs, triggering initialization
3775         of tlsLib.
3776         (VXWORKS_HAVE_TLS): New macro. State whether the target VxWorks
3777         OS features TLS support, true for RTPs on VxWorks 7.
3778         * config/vxworks.c (vxworks_override_options): Setup emutls
3779         accordingly.
3781 2017-06-27  Jakub Jelinek  <jakub@redhat.com>
3783         * predict.c (test_prediction_value_range): Use -1U instead of -1
3784         to avoid narrowing conversion warning.
3785         * dumpfile.c (dump_options): Wrap all value into dump_flags_t cast
3786         to avoid narrowing conversion warning.
3787         * opt-functions.awk (var_ref): Return (unsigned short) -1 instead of
3788         -1.
3789         * optc-gen.awk (END): Expect (unsigned short) -1 instead of -1.
3791 2017-06-27  Jerome Lambourg  <lambourg@adacore.com>
3793         * config/vxworks.h (VXWORKS_LIBS_RTP): Alternative definition for
3794         64bit configurations.
3795         (PTR_DIFF_TYPE): Alternative definition for TARGET_LP64.
3796         (SIZE_TYPE): Likewise.
3797         * config/vxworks.c (vxworks_emutls_var_fields): Use
3798         long_unsigned_type_node instead of unsigned_type_node as the offset
3799         field type, which is "pointer" mode in emutls.c.
3801 2017-06-27  Jakub Jelinek  <jakub@redhat.com>
3803         PR sanitizer/81209
3804         * ubsan.c (ubsan_encode_value): Initialize DECL_CONTEXT on var.
3806         PR middle-end/81207
3807         * gimple-fold.c (replace_call_with_call_and_fold): Handle
3808         gimple_vuse copying separately from gimple_vdef copying.
3810 2017-06-27  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
3812         * value-prof.c (free_hist): Remove call to memset and the enclosing if
3813         condition.
3815 2017-06-26  Jerome Lambourg  <lambourg@adacore.com>
3816             Olivier Hainque  <hainque@adacore.com>
3818         * config.gcc (*-*-vxworks*): Add TARGET_VXWORKS7=1 to tm_defines
3819         for all vxworks7 targets.
3820         * config/vxworks.h (TARGET_VXWORKS7): If not defined, define to 0.
3821         (VXWORKS_ADDITIONAL_CPP_SPEC): Alternative definition for VXWORKS7.
3822         (VXWORKS_LIBS_RTP, VXWORKS_LIBS_RTP_DIR): New macros, allowing
3823         variations for VX6/VX7 and 32/64bits later on in ...
3824         (VXWORKS_LIB_SPEC): Leverage new macros.
3825         (VXWORKS_OS_CPP_BUILTINS): Define _VSB_CONFIG_FILE for VXWORKS7,
3826         as well as _ALLOW_KEYWORD_MACROS when "inline" is not a keyword.
3828 2017-06-26  Jerome Lambourg  <lambourg@adacore.com>
3830         * config/vxworks.h (VXWORKS_OS_CPP_BUILTINS): builtin_define
3831         _VX_TOOL_FAMILY and _VX_TOOL to gnu.
3833 2017-06-26  Carl Love  <cel@us.ibm.com>
3835         * config/rs6000/rs6000-c.c: Add support for built-in functions
3836         vector bool char vec_reve (vector bool char);
3837         vector signed char vec_reve (vector signed char);
3838         vector unsigned char vec_reve (vector unsigned char);
3839         vector bool int vec_reve (vector bool int);
3840         vector signed int vec_reve (vector signed int);
3841         vector unsigned int vec_reve (vector unsigned int);
3842         vector bool long long vec_reve (vector bool long long);
3843         vector signed long long vec_reve (vector signed long long);
3844         vector unsigned long long vec_reve (vector unsigned long long);
3845         vector bool short vec_reve (vector bool short);
3846         vector signed short vec_reve (vector signed short);
3847         vector double vec_reve (vector double);
3848         vector float vec_reve (vector float);
3849         * config/rs6000/rs6000-builtin.def (VREVE_V2DI, VREVE_V4SI,
3850         VREVE_V8HI, VREVE_V16QI, VREVE_V2DF, VREVE_V4SF, VREVE): New builtin.
3851         * config/rs6000/altivec.md (UNSPEC_VREVEV): New UNSPEC.
3852         (altivec_vreve): New pattern.
3853         * config/rs6000/altivec.h (vec_reve): New define.
3854         * doc/extend.texi (vec_rev): Update the built-in documentation file
3855         for the new built-in functions.
3857 2016-06-26  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
3859         PR tree-optimization/71815
3860         * gimple-ssa-strength-reduction.c (uses_consumed_by_stmt): New
3861         function.
3862         (find_basis_for_candidate): Call uses_consumed_by_stmt rather than
3863         has_single_use.
3864         (slsr_process_phi): Likewise.
3865         (replace_uncond_cands_and_profitable_phis): Don't replace a
3866         multiply candidate with a stride of 1 (copy or cast).
3867         (phi_incr_cost): Call uses_consumed_by_stmt rather than
3868         has_single_use.
3869         (lowest_cost_path): Likewise.
3870         (total_savings): Likewise.
3872 2017-06-26  Richard Biener  <rguenther@suse.de>
3874         PR target/81175
3875         * config/i386/i386.c (ix86_init_mmx_sse_builtins):
3876         Use def_builtin_pure for all gather builtins.
3878 2017-06-26  Richard Biener  <rguenther@suse.de>
3880         PR tree-optimization/81203
3881         * tree-tailcall.c (find_tail_calls): Do not move stmts into
3882         non-dominating BBs.
3884 2017-06-26  Marek Polacek  <polacek@redhat.com>
3886         PR c/80116
3887         * doc/invoke.texi: Document -Wmultistatement-macros.
3889 2017-06-26  Christophe Lyon  <christophe.lyon@linaro.org>
3891         * doc/sourcebuild.texi (ARM-specific attributes): Document new
3892         arm_neon_ok_no_float_abi effective target.
3894 2017-06-26  Richard Biener  <rguenther@suse.de>
3896         PR tree-optimization/80928
3897         * cfghooks.c (duplicate_block): Do not copy BB_DUPLICATED flag.
3898         (copy_bbs): Set BB_DUPLICATED flag early.
3899         (execute_on_growing_pred): Do not execute for BB_DUPLICATED
3900         marked blocks.
3901         (execute_on_shrinking_pred): Likewise.
3902         * tree-ssa.c (ssa_redirect_edge): Do not look for PHI args in
3903         BB_DUPLICATED blocks.
3904         * tree-ssa-phionlycoprop.c (eliminate_degenerate_phis_1): Properly
3905         iterate over all PHIs considering removal of *gsi.
3907 2017-06-23  Jim Wilson  <jim.wilson@linaro.org>
3909         * doc/invoke.texi (AArch64 Options, -mtune): Re-add falkor and
3910         qdf24xx.
3912 2017-06-23  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
3914         * config/rs6000/rs6000-string.c: (expand_block_clear,
3915         do_load_for_compare, select_block_compare_mode,
3916         compute_current_alignment, expand_block_compare,
3917         expand_strncmp_align_check, expand_strn_compare,
3918         expand_block_move, rs6000_output_load_multiple)
3919         Move functions related to string/block move/compare
3920         to a separate file.
3921         * config/rs6000/rs6000.c: Move above functions to rs6000-string.c.
3922         * config/rs6000/rs6000-protos.h (rs6000_emit_dot_insn): Add prototype
3923         for this function which is now used in two files.
3924         * config/rs6000/t-rs6000: Add rule to compile rs6000-string.o.
3925         * config.gcc: Add rs6000-string.o to extra_objs for
3926         targets powerpc*-*-* and rs6000*-*-*.
3928 2017-06-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
3930         PR target/80510
3931         * config/rs6000/rs6000.md (ALTIVEC_DFORM): Do not allow DImode in
3932         32-bit, since indexed is not valid for DImode.
3933         (mov<mode>_hardfloat32): Reorder ISA 2.07 load/stores before ISA
3934         3.0 d-form load/stores to be the same as mov<mode>_hardfloat64.
3935         (define_peephole2 for Altivec d-form load): Add 32-bit support.
3936         (define_peephole2 for Altivec d-form store): Likewise.
3938         PR ipa/81185
3939         * multiple_target.c (create_dispatcher_calls): Only create the
3940         dispatcher call if the function is the default clone of a
3941         versioned function.
3943 2017-06-23  Segher Boessenkool  <segher@kernel.crashing.org>
3945         PR middle-end/80902
3946         * builtins.c (expand_builtin_atomic_fetch_op): If emitting code after
3947         a call, force the call to not be a tail call.
3949 2017-06-23  Jeff Law  <law@redhat.com>
3951         * doc/contrib.texi: Add entry for Steven Pemberton's work on
3952         enquire.
3954 2017-06-23  Will Schmidt  <will_schmidt@vnet.ibm.com>
3956         * config/rs6000/rs6000.c: Add include of ssa-propagate.h for
3957         update_call_from_tree().  (rs6000_gimple_fold_builtin): Add
3958         handling for early expansion of vector shifts (sl,sr,sra,rl).
3959         (builtin_function_type): Add vector shift right instructions
3960         to the unsigned argument list.
3962 2017-06-23  Bernd Edlinger  <bernd.edlinger@hotmail.de>
3964         rtl-optimizatoin/79286
3965         * ira.c (update_equiv_regs): Revert to using may_trap_or_fault_p again.
3966         * rtlanal.c (rtx_addr_can_trap_p_1): SYMBOL_REF_FUNCTION_P can never
3967         trap.  PIC register plus a const unspec without offset can never trap.
3969 2017-06-23  Marc Glisse  <marc.glisse@inria.fr>
3971         * tree.h (builtin_structptr_type): New type.
3972         (builtin_structptr_types): Declare new array.
3973         * tree.c (builtin_structptr_types): New array.
3974         (free_lang_data, build_common_tree_nodes): Use it.
3976 2017-06-23  Jonathan Wakely  <jwakely@redhat.com>
3978         PR c++/81187
3979         * doc/invoke.texi (-Wnoexcept-type): Fix name of option, from
3980         -Wnoexcept.
3982 2017-06-22  Matt Turner  <mattst88@gmail.com>
3984         * config/i386/driver-i386.c (host_detect_local_cpu): Add Kaby
3985         Lake models to skylake case.  Assume skylake for unknown
3986         models with clflushopt.
3988 2017-06-22  Jeff Law  <law@redhat.com>
3990         * config/aarch64/aarch64.c (aarch64_emit_probe_stack_range): Handle
3991         frame sizes that do not satisfy aarch64_uimm12_shift.
3993 2017-06-22  Jan Hubicka <hubicka@ucw.cz>
3995         * profile-count.h (apply_probability,
3996         apply_scale, probability_in): Fix checks for zero.
3998 2017-06-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4000         * incpath.c (add_sysroot_to_chain): Allow for $SYSROOT prefix.
4001         * doc/cppdiropts.texi (-I @var{dir}): Document it.
4003 2016-06-22  Richard Biener  <rguenther@suse.de>
4005         * tree-vect-loop.c (vect_model_reduction_cost): Handle
4006         COND_REDUCTION and INTEGER_INDUC_COND_REDUCTION without
4007         REDUC_MAX_EXPR support.
4008         (vectorizable_reduction): Likewise.
4009         (vect_create_epilog_for_reduction): Likewise.
4011 2017-06-22  James Greenhalgh  <james.greenhalgh@arm.com>
4013         * match.pd (A / (1 << B) -> A >> B): New.
4014         * generic-match-head.c: Include optabs-tree.h.
4015         * gimple-match-head.c: Likewise.
4016         * optabs-tree.h (target_supports_op_p): New.
4017         * optabs-tree.c (target_supports_op_p): New.
4019 2017-06-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4021         * configure.ac (gcc_cv_ld_static_dynamic): Also check stderr for
4022         $gcc_cv_ld --help output.
4023         (gcc_cv_ld_demangle): Likewise.
4024         (gcc_cv_ld_eh_frame_hdr): Likewise.
4025         (gcc_cv_ld_pie): Likewise.
4026         (gcc_cv_ld_as_needed): Likewise.  Prefer native forms unless $gnu_ld.
4027         (gcc_cv_ld_buildid): Likewise.
4028         (gcc_cv_ld_sysroot): Likewise.
4029         (ld_bndplt_support): Likewise.
4030         (ld_pushpopstate_support): Likewise.
4031         * configure: Regenerate.
4032         * config/sol2.h [!USE_GLD] (SYSROOT_SPEC): Define.
4034 2017-06-21  Jakub Jelinek  <jakub@redhat.com>
4036         PR target/81151
4037         * config/i386/sse.md (round<mode>2): Renumber match_dup and
4038         operands indexes to avoid gap between operands and match_dups.
4040 2017-06-21  Andrew Pinski  <apinski@cavium.com>
4042         * config/aarch64/aarch64-cost-tables.h (thunderx_extra_costs):
4043         Increment Arith_shift and Arith_shift_reg by 1.
4044         * config/aarch64/aarch64-tuning-flags.def (cheap_shift_extend):
4045         New tuning flag.
4046         * config/aarch64/aarch64.c (thunderx_tunings): Enable
4047         AARCH64_EXTRA_TUNE_CHEAP_SHIFT_EXTEND.
4048         (aarch64_strip_extend): Add new argument and test for it.
4049         (aarch64_cheap_mult_shift_p): New function.
4050         (aarch64_rtx_mult_cost): Call aarch64_cheap_mult_shift_p and don't
4051         add a cost if it is true.
4052         Update calls to aarch64_strip_extend.
4053         (aarch64_rtx_costs): Update calls to aarch64_strip_extend.
4055 2017-06-21  Andrew Pinski  <apinski@cavium.com>
4057         * config/aarch64/aarch64-cores.def (thunderxt88p1): Use thunderxt88
4058         tunings.
4059         (thunderxt88): Likewise.
4060         * config/aarch64/aarch64.c (thunderxt88_prefetch_tune): New variable.
4061         (thunderx_prefetch_tune): New variable.
4062         (thunderx2t99_prefetch_tune): Update for the correct values.
4063         (thunderxt88_tunings): New variable.
4064         (thunderx_tunings): Use thunderx_prefetch_tune instead of
4065         generic_prefetch_tune.
4066         (thunderx2t99_tunings): Use AUTOPREFETCHER_WEAK.
4068 2017-06-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4070         * config/aarch64/atomics.md (aarch64_compare_and_swap<mode>_lse,
4071         SHORT): Relax operand 3 to aarch64_reg_or_zero and constraint to Z.
4072         (aarch64_compare_and_swap<mode>_lse, GPI): Likewise.
4073         (aarch64_atomic_cas<mode>, SHORT): Likewise for operand 2.
4074         (aarch64_atomic_cas<mode>, GPI): Likewise.
4076 2017-06-21  Martin Liska  <mliska@suse.cz>
4078         * gimplify.c (gimplify_label_expr): Insert GIMPLE_PREDICT
4079         statements on cold and hot labels.
4080         * predict.c (tree_estimate_probability_bb): Remove the
4081         prediction from this place.
4083 2017-06-21  Martin Liska  <mliska@suse.cz>
4085         PR tree-optimization/79489
4086         * gimplify.c (maybe_add_early_return_predict_stmt): New
4087         function.
4088         (gimplify_return_expr): Call the function.
4089         * predict.c (tree_estimate_probability_bb): Remove handling
4090         of early return.
4091         * predict.def: Update comment about early return predictor.
4092         * gimple-predict.h (is_gimple_predict): New function.
4093         * predict.def: Change default value of early return to 66.
4094         * tree-tailcall.c (find_tail_calls): Skip GIMPLE_PREDICT
4095         statements.
4096         * passes.def: Put pass_strip_predict_hints to the beginning of
4097         IPA passes.
4099 2017-06-21  Pierre-Marie de Rodat  <derodat@adacore.com>
4101         * dwarf2out.c (gen_decl_die): Remove the guard to skip file-scope
4102         FUNCTION_DECL declarations.
4103         (dwarf2out_early_global_decl): Remove the guard to skip FUNCTION_DECL
4104         declarations.
4105         (dwaf2out_decl): Likewise.
4106         * godump.c (go_early_global_decl): Skip call to the real debug hook
4107         for FUNCTION_DECL declarations.
4108         * passes.c (rest_of_decl_compilation): Skip call to the
4109         early_global_decl debug hook for FUNCTION_DECL declarations, unless
4110         -fdump-go-spec is passed.
4112 2017-06-21  Marc Glisse  <marc.glisse@inria.fr>
4114         * config/i386/i386.c (struct builtin_isa): New field pure_p.
4115         Reorder for compactness.
4116         (def_builtin, def_builtin2, ix86_add_new_builtins): Handle pure_p.
4117         (def_builtin_pure, def_builtin_pure2): New functions.
4118         (ix86_init_mmx_sse_builtins) [__builtin_ia32_stmxcsr]: Mark as pure.
4120 2017-06-21  Marc Glisse  <marc.glisse@inria.fr>
4122         * match.pd (nop_convert): New predicate.
4123         ((A +- CST1) +- CST2): Allow some NOP conversions.
4125 2017-06-21  Jakub Jelinek  <jakub@redhat.com>
4127         PR c++/81130
4128         * gimplify.c (omp_add_variable): Don't force GOVD_SEEN for types
4129         with ctors/dtors if GOVD_SHARED is set.
4131 2017-06-21  Wilco Dijkstra  <wdijkstr@arm.com>
4133         * config/aarch64/aarch64.md (movti_aarch64):
4134         Emit mov rather than orr.
4135         (movtf_aarch64): Likewise.
4136         * config/aarch64/aarch64-simd.md (aarch64_simd_mov):
4137         Emit mov rather than orr.
4139 2017-06-21  Wilco Dijkstra  <wdijkstr@arm.com>
4141         * config/aarch64/aarch64-simd.md (aarch64_simd_dup):
4142         Swap alternatives, make integer dup more expensive.
4144 2017-06-21  Wilco Dijkstra  <wdijkstr@arm.com>
4146         * config/aarch64/aarch64.c (aarch64_legitimate_constant_p):
4147         Return true for non-tls symbols.
4149 2017-06-21  James Greenhalgh  <james.greenhalgh@arm.com>
4151         * config/aarch64/aarch64-cores.def (cortex-a55): New.
4152         (cortex-a75): Likewise.
4153         (cortex-a75.cortex-a55): Likewise.
4154         * config/aarch64/aarch64-tune.md: Regenerate.
4155         * doc/invoke.texi (-mtune): Document new values for -mtune.
4157 2017-06-21  Tom de Vries  <tom@codesourcery.com>
4159         * doc/sourcebuild.texi (Add Options, Features for dg-add-options): Add
4160         stack_size feature.
4161         (Effective-Target Keywords, Other attributes): Suggest using
4162         dg-add-options stack_size feature to get stack limit in stack_size
4163         effective target documentation.
4165 2017-06-21  Julian Brown  <julian@codesourcery.com>
4166             Naveen H.S  <Naveen.Hurugalawadi@cavium.com>
4168         * config/aarch64/aarch64-simd.md (aarch64_crypto_pmulldi)
4169         (aarch64_crypto_pmullv2di): Change type attribute to crypto_pmull.
4170         * config/aarch64/thunderx2t99.md (thunderx2t99_pmull): New
4171         reservation.
4172         * config/arm/cortex-a53.md (cortex_a53_advsimd_type): Add crypto_pmull to
4173         attribute type list for neon_multiply.
4174         * config/arm/cortex-a57.md (cortex_a57_neon_type): Add crypto_pmull to
4175         attribute type list for neon_multiply.
4176         * config/arm/crypto.md (crypto_vmullp64): Change type to crypto_pmull.
4177         * config/arm/exynos-m1.md (exynos_m1_neon_type): Add crypto_pmull to
4178         attribute type list for neon_multiply.
4179         * config/arm/types.md (crypto_pmull): Add.
4180         * config/arm/xgene1.md (xgene1_neon_pmull): Add crypto_pmull to
4181         attribute type list.
4183 2017-06-20  Andreas Tobler  <andreast@gcc.gnu.org>
4185         * config.gcc (armv6*-*-freebsd*): Change the target_cpu_cname to
4186         arm1176jzf-s.
4188 2017-06-20  Jakub Jelinek  <jakub@redhat.com>
4190         * ira-costs.c (find_costs_and_classes): Initialize cost_classes later
4191         to make sure not to dereference a NULL cost_classes_ptr pointer.
4193 2017-06-20  Carl Love  <cel@us.ibm.com>
4195         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
4196         ALTIVEC_BUILTIN_VMULESW, ALTIVEC_BUILTIN_VMULEUW,
4197         ALTIVEC_BUILTIN_VMULOSW, ALTIVEC_BUILTIN_VMULOUW entries.
4198         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin,
4199         builtin_function_type): Add ALTIVEC_BUILTIN_* case statements.
4200         * config/rs6000/altivec.md (MVULEUW, VMULESW, VMULOUW,
4201         VMULOSW): New enum "unspec" values.
4202         (vec_widen_umult_even_v4si, vec_widen_smult_even_v4si,
4203         vec_widen_umult_odd_v4si, vec_widen_smult_odd_v4si,
4204         altivec_vmuleuw, altivec_vmulesw, altivec_vmulouw,
4205         altivec_vmulosw): New patterns.
4206         * config/rs6000/rs6000-builtin.def (VMLEUW, VMULESW, VMULOUW,
4207         VMULOSW): Add definitions.
4209 2017-06-20  Julia Koval  <julia.koval@intel.com>
4211         * config/i386/i386.c: Fix rounding expand for new pattern.
4212         * config/i386/subst.md: Fix pattern (parallel -> unspec).
4214 2017-06-20  James Greenhalgh  <james.greenhalgh@arm.com>
4216         * config/aarch64/aarch64-option-extensions.def (rcpc): New.
4217         * config/aarch64/aarch64.h (AARCH64_FL_RCPC): New.
4219 2017-06-20  James Greenhalgh  <james.greenhalgh@arm.com>
4221         * config/aarch64/aarch64-option-extensions.def (fp16): Fix expected
4222         feature string.
4224 2017-06-20  James Greenhalgh  <james.greenhalgh@arm.com>
4226         * config/aarch64/aarch64-cores.def: Rearrange to sort by
4227         architecture, then by implementer ID.
4228         * config/aarch64/aarch64-tune.md: Regenerate.
4230 2017-06-20  Richard Biener  <rguenther@suse.de>
4232         PR middle-end/81097
4233         * fold-const.c (split_tree): Fold to type before negating.
4235 2017-06-20  David Malcolm  <dmalcolm@redhat.com>
4237         * diagnostic-show-locus.c
4238         (selftest::test_fixit_deletion_affecting_newline): New function.
4239         (selftest::diagnostic_show_locus_c_tests): Call it.
4241 2017-06-20  Andreas Schwab  <schwab@suse.de>
4243         PR target/80970
4244         * config/m68k/m68k.md (bsetdreg, bchgdreg, bclrdreg): Use "=d"
4245         instead of "+d".
4247 2017-06-20  Prakhar Bahuguna  <prakhar.bahuguna@arm.com>
4249         * config/arm/arm-c.c (arm_cpu_builtins): New block to define
4250         __ARM_FEATURE_COPROC according to support.
4252 2017-06-20  Jakub Jelinek  <jakub@redhat.com>
4254         * tree-chkp.c (chkp_get_hard_register_var_fake_base_address):
4255         Rewritten to avoid overflow for > 32-bit pointers.
4257         PR sanitizer/81125
4258         * ubsan.h (ubsan_encode_value): Workaround buggy clang++ parser
4259         by removing enum keyword.
4260         (ubsan_type_descriptor): Likewise.  Formatting fix.
4262         PR target/81121
4263         * config/i386/i386.md (TARGET_USE_VECTOR_CONVERTS float si->{sf,df}
4264         splitter): Require TARGET_SSE2 in the condition.
4266 2017-06-20  Michael Meissner  <meissner@linux.vnet.ibm.com>
4268         PR target/79799
4269         * config/rs6000/rs6000.c (rs6000_expand_vector_init): Add support
4270         for doing vector set of SFmode on ISA 3.0.
4271         * config/rs6000/vsx.md (vsx_set_v4sf_p9): Likewise.
4272         (vsx_set_v4sf_p9_zero): Special case setting 0.0f to a V4SF
4273         element.
4274         (vsx_insert_extract_v4sf_p9): Add an optimization for inserting a
4275         SFmode value into a V4SF variable that was extracted from another
4276         V4SF variable without converting the element to double precision
4277         and back to single precision vector format.
4278         (vsx_insert_extract_v4sf_p9_2): Likewise.
4280 2017-06-19  Jakub Jelinek  <jakub@redhat.com>
4282         * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Multiply
4283         in UWHI to avoid undefined overflow.
4285         PR sanitizer/81125
4286         * ubsan.h (enum ubsan_encode_value_phase): New.
4287         (ubsan_encode_value): Change second argument to
4288         enum ubsan_encode_value_phase with default value of
4289         UBSAN_ENCODE_VALUE_GENERIC.
4290         * ubsan.c (ubsan_encode_value): Change second argument to
4291         enum ubsan_encode_value_phase PHASE from bool IN_EXPAND_P,
4292         adjust uses, for UBSAN_ENCODE_VALUE_GENERIC use just
4293         create_tmp_var_raw instead of create_tmp_var and use a
4294         TARGET_EXPR.
4295         (ubsan_expand_bounds_ifn, ubsan_build_overflow_builtin,
4296         instrument_bool_enum_load, ubsan_instrument_float_cast): Adjust
4297         ubsan_encode_value callers.
4299         PR sanitizer/81111
4300         * ubsan.c (ubsan_encode_value): If current_function_decl is NULL,
4301         use create_tmp_var_raw instead of create_tmp_var, mark it addressable
4302         just by setting TREE_ADDRESSABLE on the result and use a TARGET_EXPR.
4304 2017-06-19  Richard Biener  <rguenther@suse.de>
4306         PR middle-end/81118
4307         * tree-cfgcleanup.c (cleanup_tree_cfg_noloop): Clear niter
4308         estimates if we changed anything.
4310 2017-06-19  Richard Biener  <rguenther@suse.de>
4312         PR tree-optimization/80887
4313         * tree-ssa-sccvn.c (mprts_hook_cnt): New global.
4314         (vn_lookup_simplify_result): Allow only mprts_hook_cnt succesful
4315         simplified lookups, then reset mprts_hook.
4316         (vn_nary_build_or_lookup_1): Set mprts_hook_cnt to 9 before
4317         simplifying.
4318         (try_to_simplify): Likewise.
4320 2017-06-19  Martin Liska  <mliska@suse.cz>
4322         PR sanitizer/80879
4323         * gimplify.c (gimplify_switch_expr):
4324         Initialize live_switch_vars for SWITCH_BODY == STATEMENT_LIST.
4326 2017-06-19  Martin Liska  <mliska@suse.cz>
4328         * doc/install.texi: Document that PGO runs in 4 stages.
4330 2017-06-19  Martin Liska  <mliska@suse.cz>
4332         PR ipa/80732
4333         * attribs.c (make_dispatcher_decl): Do not append '.ifunc'
4334         to dispatcher function name.
4335         * multiple_target.c (replace_function_decl): New function.
4336         (create_dispatcher_calls): Redirect both edges and references.
4338 2017-06-19  Jan Hubicka <hubicka@ucw.cz>
4340         * profile-count.c (profile_count::dump): Dump quality.
4341         (profile_count::differs_from_p): Update for unsigned val.
4342         * profile-count.h (profile_count_quality): New enum.
4343         (profile_count): Turn m_val to 62bit unsigned, add quality tracking.
4345 2017-06-19  Richard Biener  <rguenther@suse.de>
4347         * tree-ssa-loop-niter.h (estimate_numbers_of_iterations): Take
4348         struct function as arg.
4349         (estimate_numbers_of_iterations): Export overload with loop arg.
4350         (free_numbers_of_iterations_estimates_loop): Use an overload of
4351         free_numbers_of_iterations_estimates instead.
4352         * tree-cfg.c (remove_bb): Adjust.
4353         * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Likewise.
4354         * tree-parloops.c (gen_parallel_loop): Likewise.
4355         * tree-ssa-loop-ivcanon.c (canonicalize_induction_variables):
4356         Likewise.
4357         (tree_unroll_loops_completely): Likewise.
4358         * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop):
4359         Use an overload instead and export.
4360         (estimated_loop_iterations): Adjust.
4361         (max_loop_iterations): Likewise.
4362         (likely_max_loop_iterations): Likewise.
4363         (estimate_numbers_of_iterations): Take struct function as arg
4364         and adjust.
4365         (loop_exits_before_overflow): Adjust.
4366         (free_numbers_of_iterations_estimates_loop): Use an overload.
4367         * tree-vect-loop.c (vect_analyze_loop_form): Adjust.
4368         * tree-vectorizer.c (vect_free_loop_info_assumptions): Likewise.
4370 2017-06-19  Richard Biener  <rguenther@suse.de>
4372         PR ipa/81112
4373         * ipa-prop.c (find_constructor_constant_at_offset): Handle
4374         RANGE_EXPR conservatively.
4376 2017-06-16  Carl Love  <cel@us.ibm.com>
4378         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
4379         definitions for vec_float, vec_float2, vec_floato,
4380         vec_floate built-ins.
4381         * config/rs6000/vsx.md (define_c_enum "unspec"): Add RTL code
4382         for instructions vsx_xvcvsxws vsx_xvcvuxwsp, float2, floato and
4383         floate.
4384         * config/rs6000/rs6000-builtin.def (FLOAT2_V2DI, FLOATE_V2DF,
4385         FLOATE_2DI, FLOATO_V2DF, FLOATEE_V2DI, XVCVSXWSP_V4SF,
4386         UNS_FLOATO_V2DI, UNS_FLOATE_V2DI): Add definitions.
4387         * config/altivec.md (define_insn "p8_vmrgew_<mode>",
4388         define_mode_attr VF_sxddp): Add V4SF type to p8_vmrgew.
4389         * config/rs6000/altivec.h (vec_float, vec_float2, vec_floate,
4390         vec_floato): Add builtin defines.
4391         * doc/extend.texi (vec_float, vec_float2, vec_floate, vec_floato):
4392         Update the built-in documentation file for the new built-in
4393         functions.
4395 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
4397         * config/arm/arm.opt (marm): Mark as the negative of of -mthumb.
4398         (mthumb): Mark as the negative of -marm.
4400 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
4402         * doc/invoke.texi (ARM Options, -mcpu): Document supported
4403         extension options.
4404         (ARM Options, -mtune): Document that this accepts the same
4405         extension options as -mcpu.
4406         (ARM Options, -mfpu): Document addition of -mfpu=auto.
4408 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
4410         * doc/invoke.texi (ARM Options, -march=): Document new syntax and
4411         permitted extensions.
4413 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
4415         * config/arm/arm-cpus.in (armv7): Add extension +nofp.
4416         (armv7-r): Add aliases vfpv3xd and vfpv3-d16.
4417         (armv8-m.main): Add option +nodsp.
4418         * config/arm/arm-cpu-cdata.h: Regenerated.
4420 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
4422         * config/arm/t-fuchsia: New file.
4423         * config.gcc (arm*-*-fuchsia*): Use it.
4425 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
4427         * config/arm/t-symbian: Rewrite for new option infrastructure.
4429 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
4431         * config/arm/t-phoenix (MULTILIB_REUSE): Clear variable.
4432         (MULTILIB_REQUIRED): Likewise.
4434 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
4436         * config/arm/t-linux-eabi (MULTILIB_EXCEPTIONS): Set to empty.
4437         (MULTILIB_RESUE): Likewise.
4438         (MULTILIB_MATCHES): Likewise.
4439         (MULTLIB_REQUIRED): Likewise.
4441 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
4443         * config/arm/t-rtems: Rewrite for new option framework.
4445 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
4447         * config/arm/t-aprofile (v7_a_nosimd_variants, v7_a_simd_variants)
4448         (v7ve_nosimd_variatns, v7ve_vfpv3_simd_variants)
4449         (v7ve_vfpv4_simd_variants, v8_a_nosimd_variants, v8_a_simd_variants)
4450         (v8_1_a_simd_variants, v8_2_a_simd_variants): Move to ...
4451         * config/arm/t-multilib: ... here.
4452         (MULTILIB_OPTIONS): Add armv7 and armv7+fp architectures.
4453         (MULTILIB_MATCHES): Use armv7 libraries for armv7-r.  Also use for
4454         armv7-a and armv8*-a when A-profile libraries have not been built.
4455         * config/arm/t-rmprofile: Rewrite.
4457 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
4459         * genmultilib (multilib_reuse): Allow an explicit period to be escaped
4460         with a backslash.  Remove the backslash after substituting unescaped
4461         periods.
4462         * doc/fragments.texi (MULTILIB_REUSE): Document it.
4464 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
4466         * config.gcc: (arm*-*-*): When building a-profile libraries, force
4467         the driver to pass through the default setting of -mfloat-abi.
4468         * common/config/arm/arm-common.c (arm_target_thumb_only): Return -marm
4469         rather than NULL.
4470         * config/arm/t-multilib (MULTILIB_REUSE): Initialize to empty.
4471         (all_feat_combs): New rule.
4472         (MULTILIB_OPTIONS): Use explicit ARM and Thumb directories.  Rework
4473         default libraries.
4474         * config/arm/t-aprofile: Rewrite.
4476 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
4478         * config/arm/arm.h (FPUTYPE_AUTO): Define.
4479         * config/arm/arm.c (arm_option_override): Use FPUTYPE_AUTO if the
4480         fpu is not specified by the user/command-line.
4481         * config/arm/bpabi.h (FPUTYPE_DEFAULT): Delete.
4482         * config/arm/netbsd-elf.h (FPUTYPE_DEFAULT): Delete.
4483         * config/arm/linux-elf.h (FPUTYPE_DEFAULT): Delete.
4484         * config/arm/vxworks.h (FPUTYPE_DEFAULT): Delete.
4485         * common/config/arm/arm-common.c (arm_canon_arch_option): Use
4486         FPUTYPE_AUTO insted of FPUTYPE_DEFAULT.
4488 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
4490         * config/arm/elf.h (MULTILIB_DEFAULTS): Delete.
4491         * config/arm/t-arm-elf: Rewritten.
4493 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
4495         * config/arm/arm.h (TARGET_HARD_FLOAT): Also check that we
4496         have some floating-point instructions.
4497         (TARGET_SOFT_FLOAT): Define as inverse of TARGET_HARD_FLOAT.
4498         (TARGET_MAYBE_HARD_FLOAT): New macro.
4499         * config/arm/arm-builtins.c (arm_init_builtins): Use
4500         TARGET_MAYBE_HARD_FLOAT.
4501         * config/arm/arm.c (arm_option_override): Use TARGET_HARD_FLOAT_ABI.
4503 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
4505         * common/config/arm/arm-common.c: Define INCLUDE_LIST.
4506         (configargs.h): Include it.
4507         (arm_print_hint_for_fpu_option): New function.
4508         (arm_parse_fpu_option): New function.
4509         (candidate_extension): New class.
4510         (arm_canon_for_multilib): New function.
4511         * config/arm/arm.h (CANON_ARCH_SPEC_FUNCTION): New macro.
4512         (EXTRA_SPEC_FUNCTIONS): Add CANON_ARCH_SPEC_FUNCTION.
4513         (ARCH_CANONICAL_SPECS): New macro.
4514         (DRIVER_SELF_SPECS): Add ARCH_CANONICAL_SPECS.
4516 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
4518         * config.gcc (arm*-*-*): Ensure both target_cpu_cname and with_cpu
4519         are set after handling multilib fragments.  Set target_cpu_default2
4520         from with_cpu.
4522 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
4524         * config.gcc (arm*-*-fucshia*): Set target_cpu_cname to the real
4525         cpu name.
4526         (arm*-*-*): Set target_cpu_default2 to a quoted string.
4527         * config/arm/parsecpu.awk (check_cpu): Validate any extension
4528         options.
4529         (check_arch): Likewise.
4530         * config/arm/arm.c (arm_configure_build_target): Handle
4531         TARGET_CPU_DEFAULT being a string constant.  Scan any feature
4532         options in the default.
4534 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
4536         * config/arm/arm-protos.h (cpu_arch_extension): Add field to record
4537         when an option is an alias of another.
4538         * config/arm/parsecpu.awk (optalias): New parser token.
4539         (gen_comm_data): Mark non-alias options as such.  Emit entries
4540         for extension aliases.
4541         * config/arm/arm-cpus.in (armv5e): Make vfpv2 an alias.
4542         (armv5te, armv5tej, armv6, armv6j, armv6k, armv6z): Likewise.
4543         (armv6kz, armv6zk, armv6t2): Likewise.
4544         (armv7): Make vfpv3-d16 an alias.
4545         (armv7-a): Make vfpv3-d16, neon and neon-vfpv3 aliases.  Sort in
4546         canonical order.
4547         (armv7ve): Make vfpv4-d16, neon-vfpv3 and neon-vfpv4 aliases.
4548         Sort in canonical order.
4549         (armv8-a): Sort in canonical order.
4550         (armv8.1-a, armv8.2-a):  Likewise.
4551         (generic-armv7-a): Make neon and neon-vfpv3 aliases.  Sort in
4552         canonical order.
4553         (cortex-a9): Sort in canonical order.
4554         * config/arm/arm.c (selftests.h): Include it.
4555         (arm_test_cpu_arch_data): New function.
4556         (arm_run_self_tests): New function.
4557         (TARGET_RUN_TARGET_SELFTESTS): Redefine.
4558         (targetm): Move declaration to the end of the file.
4559         * arm-cpu-cdata.h: Regenerated.
4561 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
4563         * config/arm/arm.h (TARGET_MODE_SPECS): Add additional parameter to
4564         call to target_mode_check describing the type of option passed.
4565         * common/config/arm/arm-common.c (arm_arch_core_flag): Delete.
4566         (arm_target_thumb_only): Use arm_parse_arch_option_name or
4567         arm_parse_cpu_option_name to match parameters against list of
4568         available targets.
4569         * config/arm/parsecpu.awk (gen_comm_data): Don't generate
4570         arm_arch_core_flags data structure.
4571         * config/arm/arm-cpu_cdata.h: Regenerated.
4573 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
4575         * common/config/arm/arm-common.c (arm_initialize_isa): Moved here from
4576         config/arm/arm.c.
4577         (arm_print_hint_for_cpu_option): Likewise.
4578         (arm_print_hint_for_arch_option): Likewise.
4579         (arm_parse_cpu_option_name): Likewise.
4580         (arm_parse_arch_option_name): Likewise.
4581         * config/arm/arm.c (arm_identify_fpu_from_isa): Use the computed number
4582         of entries in the all_fpus list.
4583         * config/arm/arm-protos.h (all_architectures, all_cores): Declare.
4584         (arm_parse_cpu_option_name): Declare.
4585         (arm_parse_arch_option_name): Declare.
4586         (arm_parse_option_features): Declare.
4587         (arm_intialize_isa): Declare.
4588         * config/arm/parsecpu.awk (gen_data): Move CPU and architecture
4589         data tables to ...
4590         (gen_comm_data): ... here.  Make definitions non-static.
4591         * config/arm/arm-cpu-data.h: Regenerated.
4592         * config/arm/arm-cpu-cdata.h: Regenerated.
4594 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
4596         * config/arm/arm-protos.h (arm_build_target): Remove arch_core.
4597         (cpu_arch_extension): New structure.
4598         (cpu_arch_option, arch_option, cpu_option): New structures.
4599         * config/arm/parsecpu.awk (gen_headers): Build an enumeration of
4600         architecture types.
4601         (gen_data): Generate new format data tables.
4602         * config/arm/arm.c (cpu_tune): New structure.
4603         (cpu_option, processors): Delete.
4604         (arm_print_hint_for_core_or_arch): Delete.  Replace with ...
4605         (arm_print_hint_for_cpu_option): ... this and ...
4606         (arm_print_hint_for_arch_option): ... this.
4607         (arm_parse_arch_cpu_name): Delete.  Replace with ...
4608         (arm_parse_cpu_option_name): ... this and ...
4609         (arm_parse_arch_option_name): ... this.
4610         (arm_unrecognized_feature): Change type of target parameter to
4611         cpu_arch_option.
4612         (arm_parse_arch_cpu_features): Delete.  Replace with ...
4613         (arm_parse_option_features): ... this.
4614         (arm_configure_build_target): Rework to use new configuration data
4615         tables.
4616         (arm_print_tune_info): Rework for new configuration data tables.
4617         * config/arm/arm-cpu-data.h: Regenerated.
4618         * config/arm/arm-cpu.h: Regenerated.
4620 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
4622         * Makefile.in (OBJS): Move sbitmap.o from here ...
4623         (OBJS-libcommon): ... to here.
4625 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
4627         * config/arm/arm-isa.h (ISA_ALL_FPU_INTERNAL): Renamed from ISA_ALL_FPU.
4628         (ISA_ALL_CRYPTO): New macro.
4629         (ISA_ALL_SIMD): New macro
4630         (ISA_ALL_FP): New macro.
4631         * config/arm/arm.c (fpu_bitlist): Update initializer.
4632         * config/arm/arm-cpus.in: Use new ISA_ALL macros to disable crypto,
4633         simd or fp.
4634         (arm9e): Add fpu.  Add option for nofp
4635         (arm946e-s, arm966e-s, arm968e-s, arm10e, arm1020e, arm1022e): Likewise.
4636         (arm926ej-s, arm1026ej-s): Likewise.
4637         (generic-armv7-a): Add fpu.  Add options for simd, vfpv3, vfpv3-d16,
4638         vfpv3-fp16, vfpv3-d16-fp16, vfpv4, vfpv4-d16, neon, neon-vfp3,
4639         neon-fp16, neon-vfpv4, nofp and nosimd.
4640         (cortex-a5, cortex-a7): Add fpu.  Add options for nosimd and nofp.
4641         (cortex-a8): Add fpu.  Add option for nofp.
4642         (cortex-a9): Add fpu.  Add options for nosimd and nofp.
4643         (cortex-a12, cortex-a15, cortex-a17): Add fpu.  Add option for nofp.
4644         (cortex-r4f): Add fpu.
4645         (cortex-r5): Add fpu.  Add options for nofp.dp and nofp.
4646         (cortex-r7): Use idiv option from architecture.  Add fpu.  Add option
4647         for nofp.
4648         (cortex-r8): Likewise.
4649         (cortex-m4): Add fpu.  Add option for nofp.
4650         (cortex-a15.cortex-a7): Add fpu.  Add option for nofp.
4651         (cortex-a17.cortex-a7): Likewise.
4652         (cortex-a32): Add fpu.  Add options for crypto and nofp.
4653         (cortex-a35, cortex-a53): Likewise.
4654         (cortex-a57): Add fpu.  Add option for crypto.
4655         (cortex-a72, cortex-a73): Likewise.
4656         (exynos-m1): Likewise.
4657         (cortex-a57.cortex-a53, cortex-a72.cortex-a53): Likewise.
4658         (cortex-a73.cortex-a35, cortex-a73.cortex-a53): Likewise.
4659         (cortex-m33): Add fpu.  Add option for nofp.
4660         * config/arm/arm-cpu-cdata.h: Regenerated
4661         * config/arm/arm-cpu-data.h: Regenerated.
4663 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
4665         * arm-cpus.in (armv5e): Add options fp, vfpv2 and nofp.
4666         (armv5te, armv5tej): Likewise.
4667         (armv6, armv6j, armv6k, armv6z, armv6kz, armv6zk, armv6t2): Likewise.
4668         (armv7): Add options fp and vfpv3-d16.
4669         (armv7-a): Add options fp, simd, vfpv3, vfpv3-d16, vfpv3-d16-fp16,
4670         vfpv3-fp16, vfpv4, vfpv4-d16, neon, neon-vfpv3, neon-fp16, neon-vfpv4,
4671         nofp and nosimd.
4672         (armv7ve): Likewise.
4673         (armv7-r): Add options fp, fp.sp, idiv, nofp and noidiv.
4674         (armv7e-m): Add options fp, fpv5, fp.dp and nofp.
4675         (armv8-a): Add nocrypto option.
4676         (armv8.1-a, armv8.2-a): Likewise.
4677         (armv8-m.main): add options fp, fp.dp and nofp.
4679 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
4681         * config/arm/arm-cpus.in (armv8-a): Add options crc, simd crypto and
4682         nofp.
4683         (armv8-a+crc): Delete.
4684         (armv8.1-a): Add options simd, crypto and nofp.
4685         (armv8.2-a): Add options fp16, simd, crypto and nofp.
4686         (armv8.2-a+fp16): Delete.
4687         (armv8-m.main): Add option dsp.
4688         (armv8-m.main+dsp): Delete.
4689         (cortex-a8): Add fpu.  Add nofp option.
4690         (cortex-a9): Add fpu.  Add nofp and nosimd options.
4691         * config/arm/parsecpu.awk (gen_data): Generate option tables and
4692         link to main cpu and architecture data structures.
4693         (gen_comm_data): Only put isa attributes from the main architecture
4694         in common tables.
4695         (option): New statement for architecture and CPU entries.
4696         * arm.c (struct cpu_option): New structure.
4697         (struct processors): Add entry for options.
4698         (arm_unrecognized_feature): New function.
4699         (arm_parse_arch_cpu_name): Ignore any characters after the first
4700         '+' character.
4701         (arm_parse_arch_cpu_feature): New function.
4702         (arm_configure_build_target): Separate out any CPU and architecture
4703         features and parse separately.  Don't error out if -mfpu=auto is
4704         used with only an architecture string.
4705         (arm_print_asm_arch_directives): New function.
4706         (arm_file_start): Call it.
4707         * config/arm/arm-cpu-cdata.h: Regenerated.
4708         * config/arm/arm-cpu-data.h: Likewise.
4709         * config/arm/arm-tables.opt: Likewise.
4711 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
4713         * config/arm/elf.h (ASM_SPEC): Only pass -mfpu through to the
4714         assembler when it is not -mfpu=auto.
4716 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
4718         * config/arm/arm.h (BIG_LITTLE_SPEC): Delete macro.
4719         (ASM_REWRITE_SPEC_FUNCTIONS): New macro.
4720         (BIG_LITTLE_CPU_SPEC_FUNCTIONS): Delete macro.
4721         (ASM_CPU_SPEC): Rewrite.
4722         (MCPU_MTUNE_NATIVE_FUNCTIONS): New macro.
4723         (EXTRA_SPEC_FUNCTIONS): Move outside of ifdef.  Use
4724         MCPU_MTUNE_NATIVE_FUNCTIONS and ASM_REWRITE_SPEC_FUNCTIONS.  Remove
4725         reference to BIG_LITTLE_CPU_SPEC_FUNCTIONS.
4726         * common/config/arm/arm-common.c (arm_rewrite_selected_cpu): Ensure
4727         copied string is NUL-terminated.  Also strip any characters prefixed
4728         by '+'.
4729         (arm_rewrite_selected_arch): New function.
4730         (arm_rewrite_march): New function.
4732 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
4734         * config/arm/arm.opt (x_arm_arch_string): New TargetSave option.
4735         (x_arm_cpu_string, x_arm_tune_string): Likewise.
4736         (march, mcpu, mtune): Convert to string-based options.
4737         * config/arm/arm.c (arm_print_hint_for_core_or_arch): New function.
4738         (arm_parse_arch_cpu_name): New function.
4739         (arm_configure_build_target): Use arm_parse_arch_cpu_name to
4740         identify selected architecture or CPU.
4741         (arm_option_save): New function.
4742         (TARGET_OPTION_SAVE): Redefine.
4743         (arm_option_restore): Restore string options.
4744         (arm_option_print): Print string options.
4746 2017-06-16  Martin Sebor  <msebor@redhat.com>
4748         PR tree-optimization/80933
4749         PR tree-optimization/80934
4750         * builtins.c (fold_builtin_3): Do not handle bcmp here.
4751         * gimple-fold.c (gimple_fold_builtin_bcmp): New function.
4752         (gimple_fold_builtin_bcopy, gimple_fold_builtin_bzero): Likewise.
4753         (gimple_fold_builtin): Call them.
4755 2017-06-16  Jan Hubicka  <hubicka@ucw.cz>
4757         * gimple-ssa-isolate-paths.c (isolate_path): Set edge leading to path
4758         as unlikely; update profile.
4760 2017-06-16  Jan Hubicka  <hubicka@ucw.cz>
4762         * predict.c (force_edge_cold): Handle declaring edges impossible
4763         more aggresively.
4765 2017-06-16  Jan Hubicka  <hubicka@ucw.cz>
4767         * tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): Update
4768         profile.
4769         (try_unroll_loop_completely): Fix reporting.
4771 2017-06-16  Jan Hubicka  <hubicka@ucw.cz>
4773         * tree-ssa-tail-merge.c (replace_block_by): Fix profile updating.
4775 2017-06-16  James Greenhalgh  <james.greenhalgh@arm.com>
4777         PR target/71778
4778         * config/arm/arm-builtins.c (arm_expand_builtin_args): Return TARGET
4779         if given a non-constant argument for an intrinsic which requires a
4780         constant.
4782 2017-06-16  Jan Hubicka  <hubicka@ucw.cz>
4784         * profile.c (compare_freqs): New function.
4785         (branch_prob): Sort edge list.
4786         (find_spanning_tree): Assume that the list is priority sorted.
4788 2017-06-16  Richard Biener  <rguenther@suse.de>
4790         PR tree-optimization/81090
4791         * passes.def (pass_record_bounds): Remove.
4792         * tree-pass.h (make_pass_record_bounds): Likewise.
4793         * tree-ssa-loop.c (pass_data_record_bounds, pass_record_bounds,
4794         make_pass_record_bounds): Likewise.
4795         * tree-ssa-loop-ivcanon.c (canonicalize_induction_variables): Do
4796         not free niter estimates at the beginning but at the end.
4797         * tree-scalar-evolution.c (scev_finalize): Free niter estimates.
4799 2017-06-16  Richard Biener  <rguenther@suse.de>
4801         * tree-switch-conversion.c (emit_case_bit_tests): Adjust
4802         initializer to workaround ICE in host GCC 4.8.
4804 2017-06-16  Jan Hubicka  <hubicka@ucw.cz>
4806         * ipa-inline-transform.c (update_noncloned_frequencies): Update also
4807         counts.
4808         (clone_inlined_nodes): Update.
4810 2017-06-16  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
4812         * config/aarch64/aarch64.c (qdf24xx_prefetch_tune): Update
4813         prefetch settings, and enable prefetching by default at -O3.
4815 2017-06-16  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
4817         * config/aarch64/aarch64.c (aarch64_override_options_internal):
4818         Set flag_prefetch_loop_arrays according to tuning data.
4820 2017-06-16  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
4822         * config/aarch64/aarch64-protos.h (struct cpu_prefetch_tune):
4823         New tune structure.
4824         (struct tune_params): Use cpu_prefetch_tune instead of cache_line_size.
4825         [Unrelated to main purpose of the patch] Place the pointer field last
4826         to enable type checking errors when tune structure are wrongly merged.
4827         * config/aarch64/aarch64.c (generic_prefetch_tune,)
4828         (exynosm1_prefetch_tune, qdf24xx_prefetch_tune,)
4829         (thunderx2t99_prefetch_tune): New tune constants.
4830         (tune_params *_tunings): Update all tunings (no functional change).
4831         (aarch64_override_options_internal): Set PARAM_SIMULTANEOUS_PREFETCHES,
4832         PARAM_L1_CACHE_SIZE, PARAM_L1_CACHE_LINE_SIZE, and PARAM_L2_CACHE_SIZE
4833         from tunings structures.
4835 2017-06-16  Jakub Jelinek  <jakub@redhat.com>
4837         PR sanitizer/81094
4838         * ubsan.c (instrument_null): Add T argument, use it instead
4839         of computing it based on IS_LHS.
4840         (instrument_object_size): Likewise.
4841         (pass_ubsan::execute): Adjust instrument_null and
4842         instrument_object_size callers to pass gimple_get_lhs or
4843         gimple_assign_rhs1 result to it.  Use instrument_null instead of
4844         calling get_base_address and instrument_mem_ref.  Handle
4845         aggregate call arguments for object-size sanitization.
4847 2017-06-16  Yury Gribov  <tetra2005@gmail.com>
4849         PR tree-optimization/81089
4850         * tree-vrp.c (is_masked_range_test): Validate operands of
4851         subexpression.
4853 2017-06-15  Martin Sebor  <msebor@redhat.com>
4855         PR c++/80560
4856         * dumpfile.c (dump_register): Avoid calling memset to initialize
4857         a class with a default ctor.
4858         * gcc.c (struct compiler): Remove const qualification.
4859         * genattrtab.c (gen_insn_reserv): Replace memset with initialization.
4860         * hash-table.h: Ditto.
4861         * ipa-cp.c (allocate_and_init_ipcp_value): Replace memset with
4862           assignment.
4863         * ipa-prop.c (ipa_free_edge_args_substructures): Ditto.
4864         * omp-low.c (lower_omp_ordered_clauses): Replace memset with
4865         default ctor.
4866         * params.h (struct param_info): Make struct members non-const.
4867         * tree-switch-conversion.c (emit_case_bit_tests): Replace memset
4868         with default initialization.
4869         * vec.h (vec_copy_construct, vec_default_construct): New helper
4870         functions.
4871         (vec<T>::copy, vec<T>::splice, vec<T>::reserve): Replace memcpy
4872         with vec_copy_construct.
4873         (vect<T>::quick_grow_cleared): Replace memset with default ctor.
4874         (vect<T>::vec_safe_grow_cleared, vec_safe_grow_cleared): Same.
4875         * doc/invoke.texi (-Wclass-memaccess): Document.
4877 2017-06-15  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
4879         * emit-rtl.h (is_leaf): Update comment about local
4880         register allocator.
4882 2017-06-15  Jozef Lawrynowicz   <jozef.l@somniumtech.com>
4884         PR target/78818
4885         * config/msp430/msp430.c (msp430_data_attr): Check that it's possible
4886         for a variable to have a section before checking if the section has a
4887         name.
4888         Set section to.persistent if persistent attribute is set.
4889         Warn if .persistent attribute is used on an automatic variable.
4891 2017-06-15  Eric Botcazou  <ebotcazou@adacore.com>
4893         PR rtl-optimization/80474
4894         * reorg.c (update_block): Do not ignore instructions in a delay slot.
4896 2017-06-15  Segher Boessenkool  <segher@kernel.crashing.org>
4898         * config/rs6000/rs6000.md (add<mode>3): Use reg_or_subregno instead
4899         of REGNO.
4901 2017-06-14  Maciej W. Rozycki  <macro@imgtec.com>
4903         * config/mips/mips.md (MIPS16_T_REGNUM): Remove constant.
4904         (casesi): Emit bounds checking as RTL.
4905         (casesi_internal_mips16_<mode>): Remove bounds checking.
4907 2017-06-14  Max Filippov  <jcmvbkbc@gmail.com>
4909         * config/xtensa/xtensa.c (xtensa_option_override): Append
4910         MASK_CONST16 to target_flags in the absence of TARGET_L32R.
4911         (hwloop_optimize, hwloop_fail, hwloop_pattern_reg,
4912          xtensa_doloop_hooks): Define unconditionally.
4913         (xtensa_reorg_loops): Only call reorg_loops in the presence of
4914         TARGET_LOOPS.
4915         * config/xtensa/xtensa.h (TARGET_L32R): New definition.
4916         (TARGET_DEFAULT): Remove XCHAL_HAVE_L32R condition and account
4917         for it in xtensa_option_override.
4918         (HARD_FRAME_POINTER_IS_FRAME_POINTER,
4919          HARD_FRAME_POINTER_IS_ARG_POINTER): New definitions.
4921 2017-06-14  Boris Kolpackov  <boris@codesynthesis.com>
4923         * doc/cppopts.texi: Document '-' special value to -MF.
4925 2017-06-14  Wilco Dijkstra  <wdijkstr@arm.com>
4927         * config/arm/cortex-a53.md (cortex_a53_fpalu) Adjust latency.
4928         (cortex_a53_fconst): Likewise.
4929         (cortex_a53_fpmul): Likewise.
4930         (cortex_a53_f_load_64): Likewise.
4931         (cortex_a53_f_load_many): Likewise.
4932         (cortex_a53_advsimd_alu): Likewise.
4933         (cortex_a53_advsimd_alu_q): Likewise.
4934         (cortex_a53_advsimd_mul): Likewise.
4935         (cortex_a53_advsimd_mul_q): Likewise.
4936         (fpmac bypass): Add new bypass for fpmac-fpmac case.
4937         Add missing fmul, r2f_cvt and fconst cases.
4939 2017-06-14  Richard Biener  <rguenther@suse.de>
4941         PR middle-end/81088
4942         * fold-const.c (split_tree): Drop TREE_OVERFLOW flag from
4943         literal constants.
4944         (fold_binary_loc): When associating do not treat pre-existing
4945         TREE_OVERFLOW on literal constants as a reason to allow
4946         TREE_OVERFLOW on associated literal constants.
4948 2017-06-14  Eric Botcazou  <ebotcazou@adacore.com>
4950         * config/sparc/sparc.h (MASK_ISA): Add MASK_LEON and MASK_LEON3.
4951         (MASK_FEATURES): New macro.
4952         * config/sparc/sparc.c (sparc_option_override): Remove the special
4953         handling of -mfpu and generalize it to all MASK_FEATURES switches.
4955 2017-06-14  Eric Botcazou  <ebotcazou@adacore.com>
4957         * simplify-rtx.c (simplify_binary_operation_1) <UDIV>: Do not simplify
4958         a division of 0 if non-call exceptions are enabled.
4960 2017-06-14  Andrew Pinski  <apinski@cavium.com>
4961             Naveen H.S  <Naveen.Hurugalawadi@cavium.com>
4963         PR target/71663
4964         * config/aarch64/aarch64.c (aarch64_expand_vector_init):
4965         Improve vector initialization code gen for only variable case.
4967 2017-06-14  Eric Botcazou  <ebotcazou@adacore.com>
4969         * config/sparc/driver-sparc.c (cpu_names): Add SPARC-T5 entry.
4971 2017-06-14  Richard Biener  <rguenther@suse.de>
4973         PR tree-optimization/81083
4974         * tree-ssa-sccvn.c (vn_reference_lookup_3): Do not use abnormals
4975         as values.
4977 2017-06-13  Segher Boessenkool  <segher@kernel.crashing.org>
4979         * config/rs6000/rs6000.c: Update all comments that mentioned SPE.
4980         (rs6000_expand_builtin): Remove RS6000_BTC_EVSEL.
4981         * config/rs6000/rs6000.h (RS6000_BTC_EVSEL): Delete.
4982         * config/rs6000/vxworks.h (VXCPU_FOR_8548): Delete.  Adjust former use.
4983         * config/rs6000/vxworksae.h (VXCPU_FOR_8548): Delete.
4984         * config/rs6000/vxworksmils.h (VXCPU_FOR_8548): Delete.
4986 2017-06-13  Segher Boessenkool  <segher@kernel.crashing.org>
4988         * config/rs6000/rs6000-opts.h (enum rs6000_vector): Delete VECTOR_SPE.
4989         * config/rs6000/rs6000.c (rs6000_debug_vector_unit): Delete VECTOR_SPE.
4991 2017-06-13  Segher Boessenkool  <segher@kernel.crashing.org>
4993         * config/rs6000/rs6000.h (FIXED_SCRATCH): Delete.
4995 2017-06-13  Segher Boessenkool  <segher@kernel.crashing.org>
4997         * config/rs6000/t-rtems: Don't handle SPE.
4999 2017-06-13  Segher Boessenkool  <segher@kernel.crashing.org>
5001         * config/rs6000/t-linux: Don't handle SPE.
5003 2017-06-13  Segher Boessenkool  <segher@kernel.crashing.org>
5005         * config/rs6000/eabispe.h: Delete file.
5007 2017-06-13  Segher Boessenkool  <segher@kernel.crashing.org>
5009         * config/rs6000/t-spe: Delete file.
5011 2017-06-13  Segher Boessenkool  <segher@kernel.crashing.org>
5013         * config/rs6000/rs6000.c (SPE_CONST_OFFSET_OK): Delete.
5014         (rs6000_legitimate_offset_address_p): Return false for anything in
5015         V2SImode or V2SFmode.
5017 2017-06-13  Segher Boessenkool  <segher@kernel.crashing.org>
5019         * config/rs6000/rs6000-modes.def: Remove all 8-byte vector modes
5020         except V2SF and V2SI.  Rearrange the vector modes, and add comments.
5021         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Remove V8QImode
5022         and V4HImode.
5023         (reg_offset_addressing_ok_p): Remove V4HImode and V1DImode.
5024         (rs6000_legitimate_offset_address_p): Ditto.
5025         (rs6000_emit_move): Ditto.
5026         (rs6000_init_builtins): Remove V4HI_type_node.
5028 2017-06-13  Martin Liska  <mliska@suse.cz>
5030         PR sanitize/78204
5031         * asan.c (asan_sanitize_stack_p): Use sanitize_flags_p.
5032         (gate_asan): Likewise.
5033         * asan.h (asan_no_sanitize_address_p): Remove the function.
5034         (sanitize_flags_p): New function.
5035         * builtins.def: Fix coding style.
5036         * common.opt: Use renamed enum value.
5037         * convert.c (convert_to_integer_1): Use sanitize_flags_p.
5038         * doc/extend.texi: Document no_sanitize attribute.
5039         * flag-types.h (enum sanitize_code): Rename SANITIZE_NONDEFAULT
5040         to SANITIZE_UNDEFINED_NONDEFAULT.
5041         * gcc.c (sanitize_spec_function): Use the renamed enum value.
5042         * gimple-fold.c (optimize_atomic_compare_exchange_p):
5043         Use sanitize_flags_p.
5044         * gimplify.c (gimplify_function_tree): Likewise.
5045         * ipa-inline.c (sanitize_attrs_match_for_inline_p): Likewise.
5046         * opts.c (parse_no_sanitize_attribute): New function.
5047         (common_handle_option): Use renamed enum value.
5048         * opts.h (parse_no_sanitize_attribute): Declare.
5049         * tree.c (sanitize_flags_p): New function.
5050         * tree.h: Declared here.
5051         * tsan.c: Use sanitize_flags_p.
5052         * ubsan.c (ubsan_expand_null_ifn): Likewise.
5053         (instrument_mem_ref): Likewise.
5054         (instrument_bool_enum_load): Likewise.
5055         (do_ubsan_in_current_function): Remove the function.
5056         (pass_ubsan::execute): Use sanitize_flags_p.
5057         * ubsan.h: Remove do_ubsan_in_current_function
5058         * tree-cfg.c (print_no_sanitize_attr_value): New function.
5059         (dump_function_to_file): Use it here.
5061 2017-06-13  Martin Jambor  <mjambor@suse.cz>
5063         PR tree-optimization/80803
5064         PR tree-optimization/81063
5065         * tree-sra.c (subtree_mark_written_and_enqueue): Move up in the file.
5066         (propagate_subaccesses_across_link): Enqueue subtree whenever
5067         necessary instead of relying on the caller.
5069 2017-06-13  Martin Jambor  <mjambor@suse.cz>
5071         * tree-sra.c (add_access_to_work_queue): Only enqueue accesses
5072         that have a first_link.
5073         (sort_and_splice_var_accesses): Do not check first_link before
5074         enquing.
5075         (subtree_mark_written_and_enqueue): Likewise.
5076         (propagate_all_subaccesses): Likewise and do not stop at first
5077         parent with a first_link.
5079 2017-06-13  Martin Jambor  <mjambor@suse.cz>
5081         * tree-sra.c (dump_access_tree_1): Fix accidental dumping to stderr
5082         instead of f.
5084 2017-06-13  Yury Gribov  <tetra2005@gmail.com>
5086         * match.pd: New pattern.
5088 2017-06-13  Yury Gribov  <tetra2005@gmail.com>
5090         * tree-vrp.c (is_masked_range_test): New function.
5091         (register_edge_assert_for): Determine ranges for
5092         some bit tests.
5094 2017-06-13  Yury Gribov  <tetra2005@gmail.com>
5096         PR tree-optimization/67328
5097         * fold-const.c (maskable_range_p): New function.
5098         (build_range_check): Generate bittests if possible.
5100 2017-06-13  Martin Liska  <mliska@suse.cz>
5102         * gimple-pretty-print.c (dump_probability): Add new argument.
5103         (dump_edge_probability): Dump both probability and count.
5104         (dump_gimple_label): Likewise.
5105         (dump_gimple_bb_header): Likewise.
5107 2017-06-13  Georg-Johann Lay  <avr@gjlay.de>
5109         PR target/81072
5110         * config/avr/avr-devices.c: Fix indentation.
5111         * config/avr/gen-avr-mmcu-specs.c: Dito.
5113 2017-06-13  Richard Biener  <rguenther@suse.de>
5115         * tree-vect-loop.c (vect_model_reduction_cost): Do not fail,
5116         instead get vector type from stmt_info.
5117         (vectorizable_reduction): Adjust.  Remove dead code.
5119 2017-06-13  Richard Biener  <rguenther@suse.de>
5121         PR middle-end/81065
5122         * fold-const.c (extract_muldiv_1): Remove bogus distribution
5123         case of C * (x * C2 + C3).
5124         (fold_addr_of_array_ref_difference): Properly fold index difference.
5126 2017-06-12  David S. Miller  <davem@davemloft.net>
5128         PR target/80968
5129         * config/sparc/sparc.md (return expander): Emit frame blockage if
5130         function uses alloca.
5132 2017-06-12  Richard Sandiford  <richard.sandiford@linaro.org>
5134         * combine.c (make_field_assignment): Check len rather than the mode
5135         precision when calling force_to_mode.
5137 2017-06-12  Georg-Johann Lay  <avr@gjlay.de>
5139         Support multilibs and devices that see flash in RAM address range.
5141         PR target/81072
5142         * config/avr/avr-arch.h (avr_arch_id) <ARCH_AVRXMEGA3>: New enum.
5143         (avr_mcu_t) <flash_pm_offset>: New field.
5144         (avr_device_specific_features) <AVR_ISA_RCALL>: New enum.
5145         * config/avr/avr.h (AVR_SHORT_CALLS): New define.
5146         (AVR_HAVE_JMP_CALL): Don't set if AVR_SHORT_CALLS.
5147         (AVR_TINY_PM_OFFSET): Remove macro.
5148         * config/avr/avr.opt (-mshort-calls): New option.
5149         * config/avr/gen-avr-mmcu-specs.c (print_mcu)
5150         [*self_spec]: Add / remove -mshort-calls depending on AVR_ISA_RCALL.
5151         * config/avr/avr-c.c (avr_cpu_cpp_builtins)
5152         <__AVR_SHORT_CALLS__>: Built-in define if AVR_SHORT_CALLS.
5153         <__AVR_HAVE_JMP_CALL__>: Use AVR_HAVE_JMP_CALL as condition
5154         instead of avr_arch->have_jmp_call.
5155         <__AVR_PM_BASE_ADDRESS__>: Built-in define if avr_arch->flash_pm_offset.
5156         [AVR_TINY] <__AVR_TINY_PM_BASE_ADDRESS__>: Use
5157         avr_arch->flash_pm_offset to define.
5158         * config/avr/avr-devices.c (avr_arch_types): Add initializers for
5159         new field flash_pm_offset.  Add entry for avrxmega3.
5160         (avr_texinfo): Add entry for avrxmega3.
5161         * config/avr/avr-mcus.def: Add entries for: avrxmega3,
5162         attiny212, attiny214,
5163         attiny412, attiny414, attiny416, attiny417,
5164         attiny814, attiny816, attiny817,
5165         attiny1614, attiny1616, attiny1617,
5166         attiny3214, attiny3216, attiny3217.
5167         * config/avr/avr.c (avr_assemble_integer)[AVR_TINY]: Use
5168         avr_arch->flash_pm_offset instead of AVR_TINY_PM_OFFSET.
5169         (avr_print_operand_address) [AVR_TINY]: Same.
5170         (avr_asm_init_sections) <readonly_data_section>: Only patch
5171         callback if avr_arch->flash_pm_offset = 0.
5172         (avr_asm_named_section) <avr_need_copy_data_p>: Skip setting it
5173         for rodata if avr_arch->flash_pm_offset != 0.
5174         (avr_encode_section_info) [AVR_TINY]: Adjust comment.
5175         * config/avr/genmultilib.awk (dir_rcall, opt_rcall): New vars.
5176         (opts) [AVR_ISA_RCALL]: Append opt_rcall.
5177         (m_options): Append opt_rcall.
5178         (m_dirnames): Append dir_rcall.
5179         * config/avr/t-multilib: Regenerate.
5181         * configure.ac [target=avr]: Check whether avrxmega3 default
5182         linker description file works as needed.
5183         * configure: Regenerate.
5184         * doc/avr-mmcu.texi: Regenerate.
5185         * doc/invoke.texi (AVR Options) <-mshort-calls>: Document it.
5186         <__AVR_ARCH__>: Document avrxmega3 and 103.
5187         <__AVR_HAVE_JMP_CALL__>: Adjust documentation.
5188         <__AVR_SHORT_CALLS__>: Document it.
5189         <__AVR_PM_BASE_ADDRESS__>: Document it.
5190         * doc/extend.texi (AVR Options) <-mshort-calls>: Document it.
5191         (AVR Variable Attributes) <progmem>: Document this is
5192         not needed for avrxmega3.
5193         (AVR Named Address Spaces) <__flash>: Dito.
5195 2017-06-12  Jan Hubicka  <hubicka@ucw.cz>
5197         * cgraph.c (cgraph_node::dump): Complain about profile insanities.
5199 2017-06-12  Doug Rupp  <rupp@adacore.com>
5201         * config.gcc (*-*-vxworks*): Set use_gcc_stdint to "provide".
5202         Append vxworks-stdint.h to the tm_file list.
5203         * config/vxworks-stdint.h: New file.
5205 2017-06-12  Martin Liska  <mliska@suse.cz>
5207         PR tree-optimization/81041
5208         * tree-profile.c (gimple_gen_ic_func_profiler):
5209         Create an extra BB in profile-generate
5210         (gimple_gen_time_profiler): Likewise.
5212 2017-06-12  Jakub Jelinek  <jakub@redhat.com>
5214         PR tree-optimization/81003
5215         * tree-ssa-reassoc.c (force_into_ssa_name): New function.
5216         (update_range_test): Use it instead of force_gimple_operand_gsi.
5218 2017-06-12  Richard Biener  <rguenther@suse.de>
5220         PR tree-optimization/81053
5221         * tree-vect-loop.c (vect_is_simple_reduction): Handle PHI
5222         with backedge value not defined in loop.  Simplify def stmt
5223         compute.
5225 2017-06-11  Tom de Vries  <tom@codesourcery.com>
5227         PR target/79939
5228         * config/nvptx/nvptx.c (nvptx_cannot_force_const_mem): New function.
5229         Return true.
5230         (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to
5231         nvptx_cannot_force_const_mem.
5233 2017-06-10  Jan Hubicka  <hubicka@ucw.cz>
5235         * opts.c (finish_options): Move test for flag_split_stack after
5236         it has been initialized.
5238 2017-06-11  Jason Merrill  <jason@redhat.com>
5240         * tree.h (id_equal): New.
5241         * dwarf2out.c, hsa-gen.c, ipa-devirt.c, omp-expand.c,
5242         omp-simd-clone.c, read-rtl-function.c, tree-chkp.c, tree.c: Use it
5243         instead of strcmp of IDENTIFIER_POINTER.
5245 2017-06-10  Jan Hubicka  <hubicka@ucw.cz>
5247         * ipa-inline-transform.c: Include function.h, cfg.h and basic-block.h
5248         (mark_all_inlined_calls_cdtor): Fix formating.
5249         (inline_transform): Rescale profile before inlining.
5251 2017-06-10  Jan Hubicka  <hubicka@ucw.cz>
5253         * cgraph.h (cgraph_edge::clone): Update prototype.
5254         * cgraphclones.c (cgraph_edge::clone): Update profile scaling.
5255         (cgraph_node::create_clone): Update.
5256         (cgraph_node::create_version_clone): Update.
5257         * tree-inline.c (copy_bb): Update.
5258         (expand_call_inline): Update.
5260 2017-06-10  Segher Boessenkool  <segher@kernel.crashing.org>
5262         * config/rs6000/rs6000.c (emit_vrsave_prologue): New function,
5263         factored out from ...
5264         (rs6000_emit_prologue): ... here.
5266 2017-06-10  Segher Boessenkool  <segher@kernel.crashing.org>
5268         * config/rs6000/rs6000.c (emit_split_stack_prologue): New function,
5269         factored out from ...
5270         (rs6000_emit_prologue): ... here.
5272 2017-06-10  Jan Hubicka  <hubicka@ucw.cz>
5274         * predict.c (drop_profile): Also drop individual bb/edge and cgraph
5275         edge counts.
5276         (handle_missing_profiles): Fix computation of tp_first_run.
5277         (counts_to_freqs): Do not touch freqs when count is 0.
5279 2017-06-10  Jan Hubicka  <hubicka@ucw.cz>
5281         * cgraphbuild.c (cgraph_edge::rebuild_references): Do not touch
5282         profile.
5284 2017-06-10  Tom de Vries  <tom@codesourcery.com>
5286         * doc/sourcebuild.texi (Effective-Target Keywords, Environment
5287         attributes): Document signal effective target.
5289 2017-06-10  Tom de Vries  <tom@codesourcery.com>
5291         * doc/sourcebuild.texi (Effective-Target Keywords, Other attributes):
5292         Document effective target stack_size.
5294 2017-06-09  David Malcolm  <dmalcolm@redhat.com>
5296         * diagnostic.c (diagnostic_report_diagnostic): Only add fixits
5297         to the edit_context if they can be auto-applied.
5299 2017-06-9  Ian Lance Taylor  <iant@golang.org>
5301         * opts.c (finish_options): If -fsplit-stack, disable implicit
5302         -forder-blocks-and-partition.
5303         * doc/invoke.texi (Optimize Options): Document that when using
5304         -fsplit-stack -forder-blocks-and-partition is not implicitly
5305         enabled.
5307 2017-06-09  Jan Hubicka  <hubicka@ucw.cz>
5309         * builtin-attrs.def (ATTR_NORETURN_NOTHROW_LEAF_COLD_LIST,
5310         ATTR_CONST_NORETURN_NOTHROW_LEAF_COLD_LIST,
5311         ATTR_TMPURE_NORETURN_NOTHROW_LEAF_COLD_LIST): New.
5312         * builtins.def (abort, trap, unreachable): Declare cold.
5313         * calls.c (flags_from_decl_or_type): Lookup ECF_COLD.
5314         * tree-core.h (ECF_COLD): New.
5315         * tree.c (set_call_expr_flags): Handle ECF_COLD.
5316         (build_common_builtin_nodes): Mark unreachable and abort as cold.
5318 2017-06-09  Jan Hubicka  <hubicka@ucw.cz>
5320         * predict.c (unlikely_executed_stmt_p): Cleanup.
5322 2017-06-09  Richard Biener  <rguenther@suse.de>
5324         * tree-ssa-loop-im.c (execute_sm): Do not force multi-threaded
5325         model if the ref is always written to.
5327 2017-06-09  Tamar Christina  <tamar.christina@arm.com>
5329         * config/aarch64/aarch64.md (lrint<GPF:mode><GPI:mode>2): New.
5331 2017-06-09  Tamar Christina  <tamar.christina@arm.com>
5333         * config/arm/arm.c (arm_rtx_costs_internal): Make sdiv more expensive
5334         than udiv.
5336 2017-06-09  Tom de Vries  <tom@codesourcery.com>
5338         PR target/80855
5339         * config/nvptx/nvptx.md (define_expand "mov<QHSDISDFM>"): Error out with
5340         "target cannot support label values" when encountering LABEL_REF.
5342 2017-06-09  Martin Liska  <mliska@suse.cz>
5344         * tree-profile.c (gimple_gen_ic_profiler): Update comment.
5345         (gimple_gen_ic_func_profiler): Emit direct comparison
5346         of __gcov_indirect_call_callee with NULL.
5347         (gimple_gen_time_profiler): Change probability from
5348         PROB_VERY_UNLIKELY to PROB_UNLIKELY.
5350 2017-06-09  Jan Hubicka  <hubicka@ucw.cz>
5352         * profile.c (edge_gcov_counts): Turn to pointer.
5353         (compute_branch_probabilities, compute_branch_probabilities): Update.
5354         (branch_prob): Do not clear edge_gcov_count.
5355         * profile.h (edge_gcov_counts): Turn to pointer.
5356         (edge_gcov_count): Update.
5358 2017-06-09  Jan Hubicka  <hubicka@ucw.cz>
5360         * gimple.h (gimple_check_failed): Mark cold.
5362 2017-06-09  Richard Biener  <rguenther@suse.de>
5364         PR tree-optimization/66623
5365         * tree-vect-loop.c (vect_is_simple_reduction): Cleanup,
5366         refactor check_reduction into two parts, properly computing
5367         whether we have to check reduction validity for outer loop
5368         vectorization.
5370 2017-06-09  Richard Biener  <rguenther@suse.de>
5372         PR tree-optimization/79483
5373         * graphite-scop-detection.c (order): New global.
5374         (get_order): Compute bb to order mapping that satisfies code
5375         generation constraints.
5376         (cmp_pbbs): New helper.
5377         (build_scops): Start domwalk at entry block, sort generated
5378         pbbs.
5380 2017-06-09  Richard Biener  <rguenther@suse.de>
5382         PR middle-end/81007
5383         * ipa-polymorphic-call.c
5384         (ipa_polymorphic_call_context::restrict_to_inner_class):
5385         Skip FIELD_DECLs with error_mark_node type.
5386         * passes.def (all_lowering_passes): Run pass_build_cgraph_edges
5387         last again.
5389 2017-06-09  Martin Liska  <mliska@suse.cz>
5391         * predict.c (struct branch_predictor): New struct.
5392         (test_prediction_value_range): New test.
5393         (predict_c_tests): New function.
5394         * selftest-run-tests.c (selftest::run_tests): Run the function.
5395         * selftest.h: Declare new tests.
5397 2017-06-09  Segher Boessenkool  <segher@kernel.crashing.org>
5399         PR target/80966
5400         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Assert that
5401         gen_add3_insn did not fail.
5402         * config/rs6000/rs6000.md (add<mode>3): If asked to add a constant to
5403         r0, construct that number in a temporary reg and add that reg to r0.
5404         If asked to put the result in r0 as well, fail.
5406 2017-06-08  Will Schmidt  <will_schmidt@vnet.ibm.com>
5408         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling
5409         for early expansion of vec_eqv.
5411 2017-06-08  Jakub Jelinek  <jakub@redhat.com>
5413         PR middle-end/81005
5414         * ubsan.c (instrument_null): Avoid pointless code temporary.
5415         (pass_ubsan::execute): Instrument aggregate arguments of calls.
5417 2017-06-08  Uros Bizjak  <ubizjak@gmail.com>
5419         PR target/81015
5420         Revert:
5421         2016-12-14  Uros Bizjak  <ubizjak@gmail.com>
5423         PR target/59874
5424         * config/i386/i386.md (*ctzhi2): New insn_and_split pattern.
5425         (*clzhi2): Ditto.
5427 2017-06-08  Jan Hubicka  <hubicka@ucw.cz>
5429         * predict.c (unlikely_executed_edge_p): Move ahead.
5430         (probably_never_executed_edge_p): Use it.
5432 2017-06-08  Alexander Ivchenko  <alexander.ivchenko@intel.com>
5434         PR middle-end/79988
5435         * tree-chkp.c (chkp_gimple_call_builtin_p): Remove
5436         gimple_call_builtin_p call.
5438 2017-06-08  Jan Hubicka  <hubicka@ucw.cz>
5440         * system.h (fancy_abort): Annotate by ATTRIBUTE_COLD.
5441         * rtl.h (rtl_check_failed_bounds, rtl_check_failed_type1,
5442         rtl_check_failed_type2, rtl_check_failed_code1,
5443         rtl_check_failed_code2, rtl_check_failed_code_mode,
5444         rtl_check_failed_block_symbol, cwi_check_failed_bounds,
5445         rtvec_check_failed_bounds, rtl_check_failed_flag,
5446         _fatal_insn_not_found, _fatal_insn): Likewise.
5447         * tree.h (tree_contains_struct_check_failed,
5448         tree_check_failed, tree_not_check_failed,
5449         tree_class_check_failed, tree_range_check_failed,
5450         tree_not_class_check_failed, tree_int_cst_elt_check_failed,
5451         tree_vec_elt_check_failed, phi_node_elt_check_failed,
5452         tree_operand_check_failed, omp_clause_check_failed,
5453         omp_clause_operand_check_failed, omp_clause_range_check_failed):
5454         Likewise.
5456 2017-06-08  Jan Hubicka  <hubicka@ucw.cz>
5458         * cgraph.c (cgraph_edge::maybe_hot_p): Do not check
5459         flag_branch_probabilities.
5460         * ipa-inline.c (edge_badness): Likewise.
5461         * ipa-profile.c (ipa_propagate_frequency_1): Likewise.
5462         * postreload-gcse.c (eliminate_partially_redundant_load): Likewise.
5463         * predict.c (maybe_hot_frequency_p): Likewise.
5464         (probably_never_executed): Likewise.
5465         * sched-ebb.c (schedule_ebbs): Likewise.
5466         * sched-rgn.c (find_single_block_region): Likewise.
5467         * tracer.c (tail_duplicate): Likewise.
5469 2017-06-08  Jan Hubicka  <hubicka@ucw.cz>
5471         * opts.c (finish_options): x_flag_reorder_blocks_and_partition no
5472         longer requires x_flag_profile_use.
5474 2017-06-08  Jan Hubicka  <hubicka@ucw.cz>
5476         * cfgrtl.c (cfg_layout_initialize): Check crtl->has_bb_partition
5477         instead of flag_reorder_blocks_and_partition.
5478         * dbxout.c (dbxout_function_end): Likewise.
5479         * dwarf2out.c (gen_subprogram_die): Likewise.
5480         * haifa-sched.c (sched_create_recovery_edges): Likewise.
5481         * hw-doloop.c (reorg_loops): Likewise.
5482         * varasm.c (assemble_start_function,
5483         assemble_end_function): Likewise.
5484         (decide_function_section): Do not check for
5485         flag_reorder_blocks_and_partition.
5487 2017-06-08  Alexander Ivchenko  <alexander.ivchenko@intel.com>
5489         * tree-chkp.c (chkp_get_hard_register_var_fake_base_address):
5490         New function.
5491         (chkp_get_hard_register_fake_addr_expr): Ditto.
5492         (chkp_build_addr_expr): Add check for hard reg case.
5493         (chkp_parse_array_and_component_ref): Ditto.
5494         (chkp_find_bounds_1): Ditto.
5495         (chkp_process_stmt): Don't generate bounds store for
5496         hard reg case.
5498 2017-06-08  Jan Hubicka  <hubicka@ucw.cz>
5500         * predict.c (maybe_hot_bb_p): Do not check profile status.
5501         (maybe_hot_edge_p): Likewise.
5502         (probably_never_executed): Check for zero counts even if profile
5503         is not read.
5504         (unlikely_executed_edge_p): New function.
5505         (unlikely_executed_stmt_p): New function.
5506         (unlikely_executed_bb_p): New function.
5507         (set_even_probabilities): Use unlikely predicates.
5508         (combine_predictions_for_bb): Likewise.
5509         (predict_paths_for_bb): Likewise.
5510         (predict_paths_leading_to_edge): Likewise.
5511         (determine_unlikely_bbs): New function.
5512         (estimate_bb_frequencies): Use it.
5513         (compute_function_frequency): Use zero counts even if profile is
5514         not read.
5515         * profile-count.h: Fix typo.
5517 2017-08-08  Julia Koval  <julia.koval@intel.com>
5519         * config/i386/avx512bwintrin.h (_mm512_mask_cvtepi16_storeu_epi8,
5520         _mm512_mask_cvtsepi16_storeu_epi8,
5521         _mm512_mask_cvtusepi16_storeu_epi8): New intrinsics.
5522         * config/i386/avx512vlbwintrin.h (_mm256_mask_cvtepi16_storeu_epi8,
5523         _mm_mask_cvtsepi16_storeu_epi8, _mm256_mask_cvtsepi16_storeu_epi8,
5524         _mm_mask_cvtusepi16_storeu_epi8, _mm256_mask_cvtusepi16_storeu_epi8,
5525         _mm_mask_cvtepi16_storeu_epi8): New intrinsics.
5526         * config/i386/i386-builtin-types.def (PV8Q, V8QI): New pointer type.
5527         (VOID_FTYPE_PV32QI_V32HI_USI, VOID_FTYPE_PV8QI_V8HI_UQI,
5528         VOID_FTYPE_PV16QI_V16HI_UHI): New function types.
5529         * config/i386/i386-builtin.def (__builtin_ia32_pmovwb128mem_mask,
5530         __builtin_ia32_pmovwb256mem_mask, __builtin_ia32_pmovswb128mem_mask,
5531         __builtin_ia32_pmovswb256mem_mask, __builtin_ia32_pmovuswb128mem_mask,
5532         __builtin_ia32_pmovuswb256mem_mask,
5533         __builtin_ia32_pmovuswb512mem_mask, __builtin_ia32_pmovswb512mem_mask)
5534         __builtin_ia32_pmovwb512mem_mask): New builtins.
5536 2017-08-08  Julia Koval  <julia.koval@intel.com>
5538         PR target/73350,80862
5539         * config/i386/subst.md (round): Fix round pattern.
5540         * config/i386/i386.c (ix86_erase_embedded_rounding):
5541         Fix erasing rounding for the fixed pattern.
5543 2017-06-08  Jan Hubicka  <hubicka@ucw.cz>
5545         * cfgbuild.c (find_many_sub_basic_blocks): Fix thinko.
5547 2017-06-08  Martin Liska  <mliska@suse.cz>
5549         PR gcov-profile/80911
5550         * gcov.c (block_info::block_info): New constructor.
5552 2017-06-07  Carl Love  <cel@us.ibm.com>
5554         * config/rs6000/rs6000-c: The return type of the following
5555         built-in functions was implemented as int not long long.  Fix sign
5556         of return value for the unsigned version of vec_mulo and vec_mule.
5557         vector unsigned long long vec_bperm (vector unsigned long long,
5558                                              vector unsigned char)
5559         vector signed long long vec_mule (vector signed int,
5560                                           vector signed int)
5561         vector unsigned long long vec_mule (vector unsigned int,
5562                                             vector unsigned int)
5563         vector signed long long vec_mulo (vector signed int,
5564                                           vector signed int)
5565         vector unsigned long long vec_mulo (vector unsigned int,
5566                                             vector unsigned int)
5567         * doc/extend.texi: Fix the documentation for the built-in
5568         functions.
5570 2017-06-07  Carl Love  <cel@us.ibm.com>
5572         PR target/80982
5573         * config/rs6000/altivec.md (double<mode>2): Fix the implementation of
5574         for BE.
5576 2017-06-07  Carl Love  <cel@us.ibm.com>
5578         * config/rs6000/altivec.md: Fix argument swizzle in vec_doublel
5579         support, Generate       doublehv for signed int/float for BE case only.
5581 2017-06-07  Alexander Monakov  <amonakov@ispras.ru>
5583         * doc/invoke.texi (mcx16): Rewrite.
5585 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
5587         * config/rs6000/predicates.md (rs6000_nonimmediate_operand): Delete.
5588         * config/rs6000/rs6000.md (*movsi_internal1, movsi_from_sf,
5589         *mov<mode>_softfloat, and an anonymous splitter): Use
5590         nonimmediate_operand instead of rs6000_nonimmediate_operand.
5592 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
5594         * config/rs6000/darwin.h (REGISTER_NAMES): Delete the SPE_ACC and
5595         SPEFSCR registers.
5596         * config/rs6000/rs6000.c (rs6000_reg_names, alt_reg_names): Ditto.
5597         (enum rs6000_reg_type): Delete SPE_ACC_TYPE and SPEFSCR_REG_TYPE.
5598         (rs6000_debug_reg_global): Adjust.
5599         (rs6000_init_hard_regno_mode_ok): Adjust.
5600         (rs6000_dbx_register_number): Adjust.
5601         * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTER): Change to 115.
5602         (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS):
5603         Remove SPE_ACC and SPEFSCR.
5604         (REG_ALLOC_ORDER): Ditto.
5605         (FRAME_POINTER_REGNUM): Change to 111.
5606         (enum reg_class): Remove the SPE_ACC and SPEFSCR registers.
5607         (REG_CLASS_NAMES): Ditto.
5608         (REG_CLASS_CONTENTS): Delete the SPE_ACC and SPEFSCR registers.
5609         (REGISTER_NAMES): Ditto.
5610         (ADDITIONAL_REG_NAMES): Ditto.
5611         (rs6000_reg_names): Ditto.
5612         * config/rs6000/rs6000.md: Renumber some register number
5613         define_constants.
5615 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
5617         * config/rs6000/darwin.h (REGISTER_NAMES): Delete the SPE high
5618         registers.
5619         * config/rs6000/rs6000.c (rs6000_reg_names, alt_reg_names): Ditto.
5620         * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTER): Change from 149
5621         to 117.
5622         (DWARF_REG_TO_UNWIND_COLUMN): Do not define.
5623         (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS):
5624         Delete the SPE high registers.
5625         (REG_ALLOC_ORDER): Ditto.
5626         (enum reg_class): Remove SPE_HIGH_REGS.
5627         (REG_CLASS_NAMES): Ditto.
5628         (REG_CLASS_CONTENTS): Delete the SPE high registers.
5629         (REGISTER_NAMES): Ditto.
5630         (rs6000_reg_names): Ditto.
5631         * doc/tm.texi.in: Remove SPE as example.
5632         * doc/tm.texi: Regenerate.
5634 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
5636         * config/rs6000/8540.md (ppc8540_brinc): Delete.
5637         * config/rs6000/e500mc.md (e500mc_brinc): Delete.
5638         * config/rs6000/e500mc64.md (e500mc64_brinc): Delete.
5639         * config/rs6000/rs6000.md (type): Remove "brinc".
5641 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
5643         * config.gcc (powerpc*-*-*): Don't add spe.h to extra_headers.
5644         (powerpc*-linux*spe*): Use ${cpu_type} instead of rs6000.
5645         * config/rs6000/linuxspe.h: Delete file.
5646         * config/rs6000/rs6000.md: Don't include spe.md.
5647         * config/rs6000/spe.h: Delete file.
5648         * config/rs6000/spe.md: Delete file.
5649         * config/rs6000/t-rs6000: Remove spe.md.
5651 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
5653         * config/rs6000/predicates.md (reg_or_mem_operand): Reformat.
5654         (reg_or_none500mem_operand): Delete.
5655         * config/rs6000/rs6000.md (extendsfdf2): Use reg_or_mem_operand
5656         instead of reg_or_none500mem_operand.
5658 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
5660         * config/rs6000/rs6000.c (rs6000_option_override_internal): Delete
5661         handling of SPE flags.
5662         * config/rs6000/rs6000.opt (-mspe, -mspe=no, -mspe=yes): Delete.
5664 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
5666         * config/rs6000/rs6000-common.c (rs6000_handle_option): Remove
5667         SPE ABI handling.
5668         * config/rs6000/paired.md (paired_negv2sf2): Rename to negv2sf2.
5669         (paired_absv2sf2, paired_addv2sf3, paired_subv2sf3, paired_mulv2sf3,
5670         paired_divv2sf3): Similar.
5671         * config/rs6000/predicates.md: Replace TARGET_SPE, TARGET_SPE_ABI,
5672         SPE_VECTOR_MODE and SPE_HIGH_REGNO_P by 0; simplify.
5673         * config/rs6000/rs6000-builtin.def: Delete RS6000_BUILTIN_E and
5674         RS6000_BUILTIN_S.
5675         Delete BU_SPE_1, BU_SPE_2, BU_SPE_3, BU_SPE_E, BU_SPE_P, and BU_SPE_X.
5676         Rename the paired_* instruction patterns.
5677         * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Do not
5678         define __SPE__.
5679         * config/rs6000/rs6000-protos.h (invalid_e500_subreg): Delete.
5680         * config/rs6000/rs6000.c: Delete RS6000_BUILTIN_E and RS6000_BUILTIN_S.
5681         (struct rs6000_stack): Delete fields spe_gp_save_offset, spe_gp_size,
5682         spe_padding_size, and spe_64bit_regs_used.  Replace TARGET_SPE and
5683         TARGET_SPE_ABI with 0, simplify.  Replace SPE_VECTOR_MODE with
5684         PAIRED_VECTOR_MODE.
5685         (struct machine_function): Delete field spe_insn_chain_scanned_p.
5686         (spe_func_has_64bit_regs_p): Delete.
5687         (spe_expand_predicate_builtin): Delete.
5688         (spe_expand_evsel_builtin): Delete.
5689         (TARGET_DWARF_REGISTER_SPAN): Do not define.
5690         (TARGET_MEMBER_TYPE_FORCES_BLK): Do not define.
5691         (invalid_e500_subreg): Delete.
5692         (rs6000_legitimize_address): Always force_reg op2 as well, for
5693         paired single memory accesses.
5694         (rs6000_member_type_forces_blk): Delete.
5695         (rs6000_spe_function_arg): Delete.
5696         (rs6000_expand_unop_builtin): Delete SPE handling.
5697         (rs6000_expand_binop_builtin): Ditto.
5698         (spe_expand_stv_builtin): Delete.
5699         (bdesc_2arg_spe): Delete.
5700         (spe_expand_builtin): Delete.
5701         (spe_expand_predicate_builtin): Delete.
5702         (spe_expand_evsel_builtin): Delete.
5703         (rs6000_invalid_builtin): Remove RS6000_BTM_SPE handling.
5704         (spe_init_builtins): Delete.
5705         (spe_func_has_64bit_regs_p): Delete.
5706         (savres_routine_name): Delete "info" parameter.  Adjust callers.
5707         (rs6000_emit_stack_reset): Ditto.
5708         (rs6000_dwarf_register_span): Delete.
5709         * config/rs6000/rs6000.h (TARGET_SPE_ABI, TARGET_SPE,
5710         UNITS_PER_SPE_WORD, SPE_HIGH_REGNO_P, SPE_SIMD_REGNO_P,
5711         SPE_VECTOR_MODE, RS6000_BTM_SPE, RS6000_BUILTIN_E, RS6000_BUILTIN_S):
5712         Delete.
5713         * config/rs6000/rs6000.md (FIRST_SPE_HIGH_REGNO, LAST_SPE_HIGH_REGNO):
5714         Delete.
5715         * config/rs6000/rs6000.opt (-mabi=spe, -mabi=no-spe): Delete.
5716         * config/rs6000/spe.md: Delete every pattern that uses TARGET_SPE.
5717         * config/rs6000/vector.md (absv2sf2, negv2sf2, addv2sf3, subv2sf3,
5718         mulv2sf3, divv2sf3): Delete expanders.
5720 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
5722         config/rs6000/rs6000.md (UNSPEC_MV_CR_GT): Delete.
5724 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
5726         * config/rs6000/rs6000-protos.h (output_e500_flip_gt_bit): Delete.
5727         * config/rs6000/rs6000.c: Ditto.
5729 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
5731         * config/rs6000/predicated.md (rs6000_cbranch_operator): Delete.
5732         * config/rs6000/rs6000.md: Replace rs6000_cbranch_operator by
5733         comparison_operator.
5735 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
5737         * config/rs6000/rs6000.c: Remove everything related to -mfloat-gprs.
5738         * config/rs6000/rs6000.opt: Ditto.
5739         * config/rs6000/t-rtems: Ditto.
5741 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
5743         * config/rs6000/predicates.md: Replace TARGET_E500_DOUBLE and
5744         TARGET_E500_SINGLE by 0, simplify.
5745         * config/rs6000/rs6000.c: Ditto.
5746         (rs6000_option_override_internal): Delete CHECK_E500_OPTIONS.
5747         (spe_build_register_parallel): Delete.
5748         * config/rs6000/rs6000.h: Delete TARGET_E500_SINGLE,
5749         TARGET_E500_DOUBLE, and CHECK_E500_OPTIONS.
5750         * config/rs6000/rs6000.md: Replace TARGET_E500_DOUBLE,
5751         TARGET_E500_SINGLE, and <E500_CONVERT> by 0, simplify.
5752         (E500_CONVERT): Delete.
5753         * config/rs6000/spe.md: Remove many patterns and all define_constants.
5755 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
5757         * config/rs6000/darwin.md: Replace TARGET_FPRS by 1 and simplify.
5758         * config/rs6000/dfp.md: Ditto.
5759         (negdd2, *negdd2_fpr): Merge.
5760         (absdd2, *absdd2_fpr): Merge.
5761         (negtd2, *negtd2_fpr): Merge.
5762         (abstd2, *abstd2_fpr): Merge.
5763         * config/rs6000/e500.h: Delete file.
5764         * config/rs6000/predicates.md (rs6000_cbranch_operator): Replace
5765         TARGET_FPRS by 1 and simplify.
5766         * config/rs6000/rs6000-c.c: Ditto.
5767         * config/rs6000/rs6000.c: Ditto.  Also replace TARGET_SF_SPE and
5768         TARGET_DF_SPE by 0.
5769         * config/rs6000/rs6000.h: Ditto.  Delete TARGET_SF_SPE and
5770         TARGET_DF_SPE.
5771         * config/rs6000/rs6000.md: Ditto.
5772         (floatdidf2, *floatdidf2_fpr): Merge.
5773         (move_from_CR_gt_bit): Delete.
5774         * config/rs6000/spe.md: Replace TARGET_FPRS by 1 and simplify.
5775         (E500_CR_IOR_COMPARE): Delete.
5776         (All patterns that require !TARGET_FPRS): Delete.
5777         * config/rs6000/vsx.md: Replace TARGET_FPRS by 1 and simplify.
5779 2017-06-07  Bin Cheng  <bin.cheng@arm.com>
5781         * passes.def (pass_iv_canon): Move before pass_loop_distribution.
5783 2017-06-07  Bin Cheng  <bin.cheng@arm.com>
5785         * graphds.c (add_edge): Intitialize edge's attached data.
5786         (foll_in_subgraph, dfs_fst_edge, dfs_next_edge): New function
5787         pointer parameter.  Call pointed function on each edge during
5788         graph traversing.  Skip traversing the edge when the function
5789         returns true.
5790         (graphds_dfs, graphds_scc): Ditto.
5791         (for_each_edge): New parameter.  Pass the new parameter to callback
5792         function.
5793         * graphds.h (skip_edge_callback): New function pointer type.
5794         (graphds_dfs, graphds_scc): New function pointer parameter.
5795         (graphds_edge_callback, for_each_edge): New parameter.
5797 2017-06-07  Bin Cheng  <bin.cheng@arm.com>
5799         * tree-vect-data-refs.c (vect_mark_for_runtime_alias_test): Factor
5800         out code checking if runtime alias check is possible to below ...
5801         Call the new function.
5802         * tree-data-ref.c (runtime_alias_check_p): ... to new function.
5803         * tree-data-ref.h (runtime_alias_check_p): New decalaration.
5805 2017-06-07  Marek Polacek  <polacek@redhat.com>
5807         PR sanitizer/80932
5808         * fold-const.c (extract_muldiv_1) <case MINUS_EXPR>: Add
5809         TYPE_OVERFLOW_WRAPS check.
5811 2017-06-07  Bin Cheng  <bin.cheng@arm.com>
5813         * tree-vect-loop-manip.c (vect_do_peeling): Don't skip vector loop
5814         if versioning is required.
5815         * tree-vect-loop.c (vect_analyze_loop_2): Merge niter check for loop
5816         peeling with the check for versioning.
5818 2017-06-07  Bin Cheng  <bin.cheng@arm.com>
5820         * tree-vectorizer.h (vect_build_loop_niters): New parameter.
5821         * tree-vect-loop-manip.c (vect_build_loop_niters): New parameter.
5822         Set true to new parameter if new ssa variable is defined.
5823         (vect_gen_vector_loop_niters): Refactor.  Set range information
5824         for the new vector loop bound variable.
5825         (vect_do_peeling): Ditto.
5827 2017-06-07  Bin Cheng  <bin.cheng@arm.com>
5829         * tree-affine.c (ssa.h): Include header file.
5830         (tree_to_aff_combination): Handle (T1)(X - CST) when inner type
5831         has wrapping overflow behavior.
5833 2017-06-07  Bin Cheng  <bin.cheng@arm.com>
5835         * tree-affine.c (tree_to_aff_combination): Handle (T1)(X + X).
5837 2017-06-07  Bin Cheng  <bin.cheng@arm.com>
5839         (aff_combination_expand): Move (T1)(X *+- CST) simplification to ...
5840         (tree_to_aff_combination): ... here.
5842 2017-06-07  Bin Cheng  <bin.cheng@arm.com>
5844         * tree-ssa-loop-ivopts.c (ivopts_estimate_reg_pressure): New
5845         reg_pressure model function.
5846         (ivopts_global_cost_for_size): Delete.
5847         (determine_set_costs, iv_ca_recount_cost): Call new model function
5848         ivopts_estimate_reg_pressure.
5850 2017-06-07  Tamar Christina  <tamar.christina@arm.com>
5852         * config/aarch64/aarch64.c (aarch64_rtx_costs): Make sdiv more
5853         expensive than udiv.  Remove floating point cases from mod.
5855 2017-06-07  Tamar Christina  <tamar.christina@arm.com>
5857         * config/arm/aarch-cost-tables.h (cortexa53_extra_cost):
5858         Increase idiv cost.
5860 2017-06-07  Tamar Christina  <tamar.christina@arm.com>
5862         * config/aarch64/aarch64.md
5863         (copysignsf3): Fix mask generation.
5865 2017-06-07  Jakub Jelinek  <jakub@redhat.com>
5867         * dumpfile.h (enum tree_dump_index): Rename TDI_generic to
5868         TDI_gimple.
5869         (class dump_manager): Add register_dumps method.
5870         * dumpfile.c: Include langhooks.h.
5871         (dump_files): Use 0 instead of 3/4/5 for TDI_{original,gimple,nested}.
5872         (FIRST_AUTO_NUMBERED_DUMP): Decrease to 1.
5873         (FIRST_ME_AUTO_NUMBERED_DUMP): Define.
5874         (dump_manager::dump_register): Start with 512 entries instead of 32.
5875         (dump_manager::register_dumps): New method.
5876         * toplev.c (general_init): Instead of invoking register_dumps
5877         langhook, invoke register_dumps method on the dump manager.
5878         * gimplify.c (gimplify_function_tree): Use TDI_gimple instead of
5879         TDI_generic.
5881 2017-06-07  Richard Sandiford  <richard.sandiford@linaro.org>
5883         * doc/md.texi: Clarify the restrictions on a define_insn condition.
5884         Say that # requires an associated define_split to exist, and that
5885         the define_split must be suitable for use after register allocation.
5887 2017-06-06  Jan Hubicka  <hubicka@ucw.cz>
5889         * cfgbuild.c (find_bb_boundaries): Initialize profile of split blocks.
5890         (compute_outgoing_frequencies): Also initialize zero counts.
5891         (find_many_sub_basic_blocks): Do not produce uninitialized profile
5892         around loops; preserve more of profile when nothing changes.
5894 2017-06-06  Jim Wilson  <jim.wilson@linaro.org>
5896         * config/aarch64/aarch64-cost-tables.h (qdf24xx_extra_costs): Move to
5897         here.
5898         * config/arm/aarch-cost-tables.h (qdf24xx_extra_costs): From here.
5899         * config/arm/arm-cpu-cdata.h: Regenerate.
5900         * config/arm/arm-cpu-data.h, config/arm/arm-cpu.h: Likewise.
5901         * config/arm/arm-tables.opt, config/arm/arm-tune.md: Likewise.
5902         * config/arm/arm-cpus.in: Delete falkor and qdf24xx entries.
5903         * config/arm/arm.c (arm_qdf24xx_tune): Delete.
5904         * config/arm/bpabi.h (BE8_LINK_SPEC): Delete falkor and qdf24xx
5905         support.
5906         * config/arm/t-aprofile (MULTILIB_MATCHES): Delete falkor and qdf24xx
5907         support.
5908         * config/arm/t-rmprofile: Likewise.
5909         * doc/invoke.texi (ARM Options): Drop falkor and qdf24xx support.
5911 2017-06-06  David S. Miller  <davem@davemloft.net>
5913         PR target/80968
5914         * config/sparc/sparc.c (sparc_expand_prologue): Emit frame
5915         blockage if function uses alloca.
5917 2017-06-06  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
5919         * tree-ssa-loop-prefetch.c (struct mem_ref_group, struct mem_ref):
5920         New "uid" fields to hold pretty-print IDs of group and ref.
5921         Memory references are now identified as <group_id>:<ref_id>
5922         instead of using [random] addresses.
5923         (dump_mem_details): Simplify, no functional change.
5924         (dump_mem_ref): Simplify and make output more concise.
5925         Replace couple of fprintf's throughout code with calls to dump_mem_ref.
5926         (find_or_create_group): Initialize group uid.
5927         (record_ref): Initialize ref uid.  Improve debug output.
5928         (prune_group_by_reuse, should_issue_prefetch_p,)
5929         (should_issue_prefetch_p, schedule_prefetches, issue_prefetch_ref,)
5930         (mark_nontemporal_store, determine_loop_nest_reuse):
5931         Improve debug output.
5933 2017-06-06  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
5935         * dbgcnt.def (prefetch): New debug counter.
5936         * tree-ssa-loop-prefetch.c (dbgcnt.h): New include.
5937         (schedule_prefetches): Stop issueing prefetches if debug counter
5938         tripped.
5940 2017-06-06  Tom de Vries  <tom@codesourcery.com>
5942         * doc/sourcebuild.texi (Testsuites, C Language Testsuites,
5943         gcc.c-torture/compile): Remove mention of NO_LABEL_VALUES in fixme.
5945 2017-06-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5947         * config/aarch64/atomics.md (atomic_compare_and_swap<mode> expander):
5948         Use aarch64_reg_or_zero predicate for operand 4.
5949         (aarch64_compare_and_swap<mode> define_insn_and_split):
5950         Use aarch64_reg_or_zero predicate for operand 3.  Add 'Z' constraint.
5951         (aarch64_store_exclusive<mode>): Likewise for operand 2.
5953 2017-06-06  Thomas Preud'homme  <thomas.preudhomme@arm.com>
5955         * config/arm/arm.c (arm_compute_save_reg_mask): Rename into ...
5956         (arm_compute_save_core_reg_mask): This.
5957         (thumb1_compute_save_reg_mask): Rename into ...
5958         (thumb1_compute_save_core_reg_mask): This.
5959         (arm_compute_save_reg0_reg12_mask): Adapt comment.
5960         (arm_compute_frame_layout): Likewise.
5962 2017-06-06  Richard Biener  <rguenther@suse.de>
5964         PR tree-optimization/80974
5965         * tree-ssa-sccvn.c (set_ssa_val_to): Do not change but only
5966         keep or clear leaders SSA info.
5968 2017-06-06  Tom de Vries  <tom@codesourcery.com>
5970         * config/nvptx/nvptx.c (split_mode_p): New function.
5971         (nvptx_declare_function_name, nvptx_print_operand): Use split_mode_p.
5973 2017-06-06  Tom de Vries  <tom@codesourcery.com>
5975         * config/nvptx/nvptx.c (nvptx_print_operand): Use maybe_split_mode.
5977 2017-06-06  Jan Hubicka  <hubicka@ucw.cz>
5979         PR bootstrap/80978
5980         * tree-cfg.c (execute_fixup_cfg): Fix condition on when to rescale
5981         profile.
5983 2017-06-06  Jan Hubicka  <hubicka@ucw.cz>
5985         * shrink-wrap.c (handle_simple_exit): Update profile.
5986         (try_shrink_wrapping): Upate profile.
5988 2017-06-06  Jan Hubicka  <hubicka@ucw.cz>
5990         * predict.c (tree_estimate_probability_bb): Add LOCAL_ONLY.
5991         (tree_guess_outgoing_edge_probabilities): New.
5992         * predict.h (tree_guess_outgoing_edge_probabilities): Declare.
5993         * tree-cfg.c (gimple_find_sub_bbs): Propagate profile.
5995 2017-06-06  Jan Hubicka  <hubicka@ucw.cz>
5997         * ipa-split.c (split_function): Initialize return bb profile.
5999 2017-06-06  Jan Hubicka  <hubicka@ucw.cz>
6001         * profile.c (compute_branch_probabilities): Also initialize
6002         EXIT_BLOCK profile.
6004 2017-06-06  Richard Biener  <rguenther@suse.de>
6006         PR tree-optimization/80928
6007         * tree-vect-loop.c (vect_update_vf_for_slp): Amend dumps.
6008         (vect_analyze_loop_operations): Properly guard analysis for
6009         pure SLP case.
6010         (vect_transform_loop): Likewise.
6011         (vect_analyze_loop_2): Also reset SLP type on PHIs.
6012         (vect_model_induction_cost): Do not cost for pure SLP.
6013         (vectorizable_induction): Pass in SLP node, implement SLP vectorization
6014         of induction in inner loop vectorization.
6015         * tree-vect-slp.c (vect_create_new_slp_node): Handle PHIs.
6016         (vect_get_and_check_slp_defs): Handle vect_induction_def.
6017         (vect_build_slp_tree): Likewise.  Handle PHIs as terminating the
6018         recursion.
6019         (vect_analyze_slp_cost_1): Cost induction.
6020         (vect_detect_hybrid_slp_stmts): Handle PHIs.
6021         (vect_get_slp_vect_defs): Likewise.
6022         * tree-vect-stmts.c (vect_analyze_stmt): Handle induction.
6023         (vect_transform_stmt): Handle SLP reductions.
6024         * tree-vectorizer.h (vectorizable_induction): Adjust.
6026 2017-06-05  Michael Meissner  <meissner@linux.vnet.ibm.com>
6028         * config/rs6000/rs6000.c (make_resolver_func): Update
6029         init_lowered_empty_function call.
6031 2017-06-05  Bernd Edlinger  <bernd.edlinger@hotmail.de>
6033         * doc/invoke.texi: Document the -fprofile-abs-path option.
6034         * common.opt (fprofile-abs-path): New option.
6035         * gcov-io.h (gcov_write_filename): Declare.
6036         * gcov-io.c (gcov_write_filename): New function.
6037         * coverage.c (coverage_begin_function): Use gcov_write_filename.
6038         * profile.c (output_location): Likewise.
6040 2017-06-05  Jan Hubicka  <hubicka@ucw.cz>
6042         * shring-wrap.c: Revert accidental commit.
6044 2017-06-05  Volker Reichelt  <v.reichelt@netcologne.de>
6046         * doc/invoke.texi (-Wduplicated-branches): Add to warning list.
6048 2017-06-05  Jan Hubicka  <hubicka@ucw.cz>
6050         * cfgexpand.c (expand_gimple_tailcall): Initialize profile of
6051         new edge.
6052         * ipa-inline.c (want_inline_self_recursive_call_p): Watch for missing
6053         profile in callgraph edge.
6054         * profile-count.h (apply_probability): If THIS is 0, then result is 0
6055         (apply_scale): Likewise.
6056         * tree-inline.c (copy_bb, copy_edges_for_bb, copy_cfg_body):
6057         Also scale profile when inlining function with zero profile.
6058         (initialize_cfun): Update exit block profile even when it is zero.
6059         * tree-ssa-threadupdate.c (clear_counts_path): Handle correctly case
6060         when profile is read.
6062 2017-06-05  Michael Meissner  <meissner@linux.vnet.ibm.com>
6064         * config/rs6000/rs6000.c (toplevel): Include attribs.h.
6065         (CLONE_*): New constants to define the processors we can generate
6066         code for with the target_clone attribute.
6067         (rs6000_clone_map): New array to identify which clone processors
6068         the current program is running on.
6069         (TARGET_COMPARE_VERSION_PRIORITY): Define to enable the
6070         target_clone attribute.
6071         (TARGET_GENERATE_VERSION_DISPATCHER_BODY): Likewise.
6072         (TARGET_GET_FUNCTION_VERSIONS_DISPATCHER): Likewise.
6073         (TARGET_OPTION_FUNCTION_VERSIONS): Likewise.
6074         (cpu_expand_builtin): Add support for target_clone attribute.
6075         (rs6000_valid_attribute_p): Allow "default" attribute.
6076         (get_decl_name): New debug function to simplify printing the
6077         current function name in debugging statements.
6078         (rs6000_clone_priority): New functions to support the target_clone
6079         attribute, and be able to generate code to switch between ISA 2.05
6080         through ISA 3.0 (power6 through power9).
6081         (rs6000_compare_version_priority): Likewise.
6082         (rs6000_get_function_versions_dispatcher): Likewise.
6083         (make_resolver_func): Likewise.
6084         (add_condition_to_bb): Likewise.
6085         (dispatch_function_versions): Likewise.
6086         (rs6000_generate_version_dispatcher_body): Likewise.
6087         (rs6000_can_inline_p): Call get_decl_name for debugging usage.
6088         (fusion_gpr_load_p): Fix a spacing issue.
6089         * doc/extend.texi (Common Function Attributes): Document that the
6090         PowerPC supports the target_clone attribute.
6092 2017-06-05  Thomas Preud'homme  <thomas.preudhomme@arm.com>
6094         * config/arm/arm.h: explain F symbol found in description of ARM
6095         register allocation in its legend.
6097 2017-06-05  Jan Hubicka  <hubicka@ucw.cz>
6099         * config/mips/frame-header-opt.c: Include profile-count.h.
6100         * config/riscv/riscv.c: Include profile-count.h
6102 2017-06-05  Jan Hubicka  <hubicka@ucw.cz>
6104         * tree-ssa-loop-im.c (execute_sm_if_changed): Add FLAG_BBS parameter;
6105         update profile.
6106         (sm_set_flag_if_changed): Add bbs field.
6107         (execute_sm_if_changed_flag_set): Pass BBS.
6108         (execute_sm): Update.
6110 2017-06-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6112         * config/aarch64/aarch64-simd.md (aarch64_store_lane0<mode>):
6113         New pattern.
6115 2017-06-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6117         * config/aarch64/aarch64.md (sub<mode>3_compare1_imm): New define_insn.
6118         (peephole2): New peephole2 to emit the above.
6119         * config/aarch64/predicates.md (aarch64_sub_immediate): New predicate.
6121 2017-06-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6123         * config/aarch64/aarch64.c (define_peephole2 above
6124         *sub_<shift>_<mode>): New peephole.
6126 2017-05-23  Jan Hubicka  <hubicka@ucw.cz>
6128         * config/i386/i386.c (make_resolver_func): Update.
6129         * Makefile.in: Add profile-count.h and profile-count.o
6130         * auto-profile.c (afdo_indirect_call): Update to new API.
6131         (afdo_set_bb_count): Update.
6132         (afdo_propagate_edge): Update.
6133         (afdo_propagate_circuit): Update.
6134         (afdo_calculate_branch_prob): Update.
6135         (afdo_annotate_cfg): Update.
6136         * basic-block.h: Include profile-count.h
6137         (struct edge_def): Turn count to profile_count.
6138         (struct basic_block_def): Likewie.
6139         (REG_BR_PROB_BASE): Move to profile-count.h
6140         (RDIV): Move to profile-count.h
6141         * bb-reorder.c (max_entry_count): Turn to profile_count.
6142         (find_traces): Update.
6143         (rotate_loop):Update.
6144         (connect_traces):Update.
6145         (sanitize_hot_paths):Update.
6146         * bt-load.c (migrate_btr_defs): Update.
6147         * cfg.c (RDIV): Remove.
6148         (init_flow): Use alloc_block.
6149         (alloc_block): Uninitialize count.
6150         (unchecked_make_edge): Uninitialize count.
6151         (check_bb_profile): Update.
6152         (dump_edge_info): Update.
6153         (dump_bb_info): Update.
6154         (update_bb_profile_for_threading): Update.
6155         (scale_bbs_frequencies_int): Update.
6156         (scale_bbs_frequencies_gcov_type): Update.
6157         (scale_bbs_frequencies_profile_count): New.
6158         * cfg.h (update_bb_profile_for_threading): Update.
6159         (scale_bbs_frequencies_profile_count): Declare.
6160         * cfgbuild.c (compute_outgoing_frequencies): Update.
6161         (find_many_sub_basic_blocks): Update.
6162         * cfgcleanup.c (try_forward_edges): Update.
6163         (try_crossjump_to_edge): Update.
6164         * cfgexpand.c (expand_gimple_tailcall): Update.
6165         (construct_exit_block): Update.
6166         * cfghooks.c (verify_flow_info): Update.
6167         (dump_bb_for_graph): Update.
6168         (split_edge): Update.
6169         (make_forwarder_block): Update.
6170         (duplicate_block): Update.
6171         (account_profile_record): Update.
6172         * cfgloop.c (find_subloop_latch_edge_by_profile): Update.
6173         (get_estimated_loop_iterations): Update.
6174         * cfgloopanal.c (expected_loop_iterations_unbounded): Update.
6175         (single_likely_exit): Update.
6176         * cfgloopmanip.c (scale_loop_profile): Update.
6177         (loopify): Update.
6178         (set_zero_probability): Update.
6179         (lv_adjust_loop_entry_edge): Update.
6180         * cfgrtl.c (force_nonfallthru_and_redirect): Update.
6181         (purge_dead_edges): Update.
6182         (rtl_account_profile_record): Update.
6183         * cgraph.c (cgraph_node::create): Uninitialize count.
6184         (symbol_table::create_edge): Uninitialize count.
6185         (cgraph_update_edges_for_call_stmt_node): Update.
6186         (cgraph_edge::dump_edge_flags): Update.
6187         (cgraph_node::dump): Update.
6188         (cgraph_edge::maybe_hot_p): Update.
6189         * cgraph.h: Include profile-count.h
6190         (create_clone), create_edge, create_indirect_edge): Update.
6191         (cgraph_node): Turn count to profile_count.
6192         (cgraph_edge0: Likewise.
6193         (make_speculative, clone): Update.
6194         (create_edge): Update.
6195         (init_lowered_empty_function): Update.
6196         * cgraphclones.c (cgraph_edge::clone): Update.
6197         (duplicate_thunk_for_node): Update.
6198         (cgraph_node::create_clone): Update.
6199         * cgraphunit.c (cgraph_node::analyze): Update.
6200         (cgraph_node::expand_thunk): Update.
6201         * final.c (dump_basic_block_info): Update.
6202         * gimple-streamer-in.c (input_bb): Update.
6203         * gimple-streamer-out.c (output_bb): Update.
6204         * graphite.c (print_global_statistics): Update.
6205         (print_graphite_scop_statistics): Update.
6206         * hsa-brig.c: Include basic-block.h.
6207         * hsa-dump.c: Include basic-block.h.
6208         * hsa-gen.c (T sum_slice): Update.
6209         (convert_switch_statements):Update.
6210         * hsa-regalloc.c: Include basic-block.h.
6211         * ipa-chkp.c (chkp_produce_thunks): Update.
6212         * ipa-cp.c (struct caller_statistics): Update.
6213         (init_caller_stats): Update.
6214         (gather_caller_stats): Update.
6215         (ipcp_cloning_candidate_p): Update.
6216         (good_cloning_opportunity_p): Update.
6217         (get_info_about_necessary_edges): Update.
6218         (dump_profile_updates): Update.
6219         (update_profiling_info): Update.
6220         (update_specialized_profile): Update.
6221         (perhaps_add_new_callers): Update.
6222         (decide_about_value): Update.
6223         (ipa_cp_c_finalize): Update.
6224         * ipa-devirt.c (struct odr_type_warn_count): Update.
6225         (struct decl_warn_count): Update.
6226         (struct final_warning_record): Update.
6227         (possible_polymorphic_call_targets): Update.
6228         (ipa_devirt): Update.
6229         * ipa-fnsummary.c (redirect_to_unreachable): Update.
6230         * ipa-icf.c (sem_function::merge): Update.
6231         * ipa-inline-analysis.c (do_estimate_edge_time): Update.
6232         * ipa-inline.c (compute_uninlined_call_time): Update.
6233         (compute_inlined_call_time): Update.
6234         (want_inline_small_function_p): Update.
6235         (want_inline_self_recursive_call_p): Update.
6236         (edge_badness): Update.
6237         (lookup_recursive_calls): Update.
6238         (recursive_inlining): Update.
6239         (inline_small_functions): Update.
6240         (dump_overall_stats): Update.
6241         (dump_inline_stats): Update.
6242         * ipa-profile.c (ipa_profile_generate_summary): Update.
6243         (ipa_propagate_frequency): Update.
6244         (ipa_profile): Update.
6245         * ipa-prop.c (ipa_make_edge_direct_to_target): Update.
6246         * ipa-utils.c (ipa_merge_profiles): Update.
6247         * loop-doloop.c (doloop_modify): Update.
6248         * loop-unroll.c (report_unroll): Update.
6249         (unroll_loop_runtime_iterations): Update.
6250         * lto-cgraph.c (lto_output_edge): Update.
6251         (lto_output_node): Update.
6252         (input_node): Update.
6253         (input_edge): Update.
6254         (merge_profile_summaries): Update.
6255         * lto-streamer-in.c (input_cfg): Update.
6256         * lto-streamer-out.c (output_cfg): Update.
6257         * mcf.c (create_fixup_graph): Update.
6258         (adjust_cfg_counts): Update.
6259         (sum_edge_counts): Update.
6260         * modulo-sched.c (sms_schedule): Update.
6261         * postreload-gcse.c (eliminate_partially_redundant_load): Update.
6262         * predict.c (maybe_hot_count_p): Update.
6263         (probably_never_executed): Update.
6264         (dump_prediction): Update.
6265         (combine_predictions_for_bb): Update.
6266         (propagate_freq): Update.
6267         (handle_missing_profiles): Update.
6268         (counts_to_freqs): Update.
6269         (rebuild_frequencies): Update.
6270         (force_edge_cold): Update.
6271         * predict.h: Include profile-count.h
6272         (maybe_hot_count_p, counts_to_freqs): UPdate.
6273         * print-rtl-function.c: Do not include cfg.h
6274         * print-rtl.c: Include basic-block.h
6275         * profile-count.c: New file.
6276         * profile-count.h: New file.
6277         * profile.c (is_edge_inconsistent): Update.
6278         (correct_negative_edge_counts): Update.
6279         (is_inconsistent): Update.
6280         (set_bb_counts): Update.
6281         (read_profile_edge_counts): Update.
6282         (compute_frequency_overlap): Update.
6283         (compute_branch_probabilities): Update; Initialize and deinitialize
6284         gcov_count tables.
6285         (branch_prob): Update.
6286         * profile.h (bb_gcov_counts, edge_gcov_counts): New.
6287         (edge_gcov_count): New.
6288         (bb_gcov_count): New.
6289         * shrink-wrap.c (try_shrink_wrapping): Update.
6290         * tracer.c (better_p): Update.
6291         * trans-mem.c (expand_transaction): Update.
6292         (ipa_tm_insert_irr_call): Update.
6293         (ipa_tm_insert_gettmclone_call): Update.
6294         * tree-call-cdce.c: Update.
6295         * tree-cfg.c (gimple_duplicate_sese_region): Update.
6296         (gimple_duplicate_sese_tail): Update.
6297         (gimple_account_profile_record): Update.
6298         (execute_fixup_cfg): Update.
6299         * tree-inline.c (copy_bb): Update.
6300         (copy_edges_for_bb): Update.
6301         (initialize_cfun): Update.
6302         (freqs_to_counts): Update.
6303         (copy_cfg_body): Update.
6304         (expand_call_inline): Update.
6305         * tree-ssa-ifcombine.c (update_profile_after_ifcombine): Update.
6306         * tree-ssa-loop-ivcanon.c (unloop_loops): Update.
6307         (try_unroll_loop_completely): Update.
6308         (try_peel_loop): Update.
6309         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Update.
6310         * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop): Update.
6311         * tree-ssa-loop-split.c (connect_loops): Update.
6312         * tree-ssa-loop-unswitch.c (hoist_guard): Update.
6313         * tree-ssa-reassoc.c (branch_fixup): Update.
6314         * tree-ssa-tail-merge.c (replace_block_by): Update.
6315         * tree-ssa-threadupdate.c (create_block_for_threading): Update.
6316         (compute_path_counts): Update.
6317         (update_profile): Update.
6318         (recompute_probabilities): Update.
6319         (update_joiner_offpath_counts): Update.
6320         (estimated_freqs_path): Update.
6321         (freqs_to_counts_path): Update.
6322         (clear_counts_path): Update.
6323         (ssa_fix_duplicate_block_edges): Update.
6324         (duplicate_thread_path): Update.
6325         * tree-switch-conversion.c (case_bit_test_cmp): Update.
6326         (struct switch_conv_info): Update.
6327         * tree-tailcall.c (decrease_profile): Update.
6328         * tree-vect-loop-manip.c (slpeel_add_loop_guard): Update.
6329         * tree-vect-loop.c (scale_profile_for_vect_loop): Update.
6330         * value-prof.c (check_counter): Update.
6331         (gimple_divmod_fixed_value): Update.
6332         (gimple_mod_pow2): Update.
6333         (gimple_mod_subtract): Update.
6334         (gimple_ic_transform): Update.
6335         (gimple_stringop_fixed_value): Update.
6336         * value-prof.h (gimple_ic): Update.
6338 2017-06-02  Carl Love  <cel@us.ibm.com>
6340         * config/rs6000/rs6000-c: Add support for built-in functions
6341         vector double vec_doublee (vector signed int);
6342         vector double vec_doublee (vector unsigned int);
6343         vector double vec_doublee (vector float);
6344         vector double vec_doubleh (vector signed int);
6345         vector double vec_doubleh (vector unsigned int);
6346         vector double vec_doubleh (vector float);
6347         vector double vec_doublel (vector signed int);
6348         vector double vec_doublel (vector unsigned int);
6349         vector double vec_doublel (vector float);
6350         vector double vec_doubleo (vector signed int);
6351         vector double vec_doubleo (vector unsigned int);
6352         vector double vec_doubleo (vector float);.
6353         * config/rs6000/rs6000-builtin.def: Add definitions for DOUBLEE,
6354         DOUBLEO, DOUBLEH, DOUBLEL, UNS_DOUBLEO, UNS_DOUBLEE, UNS_DOUBLEH,
6355         UNS_DOUBLEL.
6356         * config/rs6000/altivec.md: Add code generator for doublee<mode>2,
6357         unsdoubleev4si2, doubleo<mode>2, unsdoubleov4si2, doubleh<mode>2,
6358         unsdoublehv4si2, doublel<mode>2, unsdoublelv4si2, add mode attribute
6359         VS_sxwsp.
6360         * config/rs6000/altivec.h: Add define for vec_doublee, vec_doubleo,
6361         vec_doublel, vec_doubleh.
6362         * doc/extend.texi: Update the built-in documentation file for the
6363         new built-in functions.
6365 2017-06-02  David Malcolm  <dmalcolm@redhat.com>
6367         PR jit/80954
6368         * ipa-inline-analysis.c (free_growth_caches): Set
6369         edge_removal_hook_holder to NULL after removing it.
6371 2017-06-02  Sudakshina Das  <sudi.das@arm.com>
6373         * config/aarch64/aarch64.c (aarch64_select_cc_mode): Return CC_SWP for
6374         comparision with zero.
6376 2017-06-02  Will Schmidt  <will_schmidt@vnet.ibm.com>
6377         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling
6378         for early expansion of vec_min and vec_max builtins.
6379         (builtin_function_type): Add min/max unsigned variants to those
6380         identified as having unsigned arguments.
6382 2017-06-02  Olivier Hainque  <hainque@adacore.com>
6384         * config/vx-common.h (DWARF_UNWIND_INFO): Switch #define to 1.
6386 2017-06-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6388         * config/aarch64/aarch64-simd.md (*aarch64_simd_vec_copy_lane<mode>):
6389         Use VALL_F16 iterator rather than VALL.
6391 2017-06-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6393         * config/aarch64/aarch64.c (aarch64_split_compare_and_swap):
6394         Emit CBNZ inside loop when doing a strong exchange and comparing
6395         against zero.  Generate the CC flags after the loop.
6397 2017-06-02  David Edelsohn  <dje.gcc@gmail.com>
6399         * dwarf2out.c (DWARF_INITIAL_LENGTH_SIZE_STR): New.
6400         (dl_section_ref): New.
6401         (dwarf2out_finish): Copy debug_line_section_label to dl_section_ref.
6402         On AIX, append an expression to subtract the size of the
6403         section length to dl_section_ref.
6405 2017-06-02  Will Schmidt  <will_schmidt@vnet.ibm.com>
6407         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling
6408         for early expansion of vector absolute builtins.
6410 2017-06-02  Richard Biener  <rguenther@suse.de>
6412         * tree-vect-slp.c (vect_detect_hybrid_slp_2): Match up
6413         what we consider a relevant use stmt with vect_detect_hybrid_slp_stmts.
6415 2017-06-02  Richard Biener  <rguenther@suse.de>
6417         PR tree-optimization/80948
6418         * tree-tailcall.c (find_tail_calls): Track stmts to move in
6419         stmt order as well.
6421 2017-06-02  Richard Biener  <rguenther@suse.de>
6423         * tree-vect-loop.c (vect_analyze_loop_operations): Not relevant
6424         PHIs are ok.
6425         * tree-vect-stmts.c (process_use): Do not mark backedge defs
6426         for inductions as relevant.
6428 2017-06-02  Richard Biener  <rguenther@suse.de>
6430         * tree-vect-loop.c (get_initial_def_for_induction): Inline into ...
6431         (vectorizable_induction): ... this.  Remove dead code.
6433 2017-06-02  Eric Botcazou  <ebotcazou@adacore.com>
6435         * builtins. (expand_builtin_alloca): Remove second parameter and
6436         infer its value from the first parameter instead.
6437         (expand_builtin) <BUILT_IN_ALLOCA>: Adjust call to above.
6439 2017-06-02  Jakub Jelinek  <jakub@redhat.com>
6441         PR rtl-optimization/80903
6442         * loop-doloop.c (add_test): Unshare sequence.
6444 2017-06-02  Bernd Edlinger  <bernd.edlinger@hotmail.de>
6446         * doc/invoke.texi: Document the -Wsizeof-pointer-div warning.
6448 2017-06-01  Bernd Edlinger  <bernd.edlinger@hotmail.de>
6450         * config/i386/i386.c (x86_64_ms_sysv_extra_clobbered_registers): Make
6451         static.
6452         (xlogue_layout::get_stack_space_used, xlogue_layout::s_instances,
6453         xlogue_layout::get_instance, logue_layout::xlogue_layout,
6454         sp_valid_at, fp_valid_at, choose_basereg): Formatting.
6455         (xlogue_layout::get_stub_rtx): Make static.
6456         (xlogue_layout::get_stub_name): Avoid const-cast, make static.
6457         (xlogue_layout::compute_stub_managed_regs): Rename to...
6458         (xlogue_layout::count_stub_managed_regs): ...this.
6459         (xlogue_layout::is_stub_managed_reg): New function.
6460         (xlogue_layout::m_stub_names): Rename to...
6461         (xlogue_layout::s_stub_names): ...this, make static.
6462         (xlogue_layout::STUB_INDEX_OFFSET, xlogue_layout::MIN_REGS,
6463         xlogue_layout::MAX_REGS, xlogue_layout::MAX_EXTRA_REGS,
6464         xlogue_layout::VARIANT_COUNT, xlogue_layout::STUB_NAME_MAX_LEN,
6465         xlogue_layout::s_stub_names): Instantiate statics.
6466         (stub_managed_regs): Remove.
6467         (ix86_save_reg): Use xlogue_layout::compute_stub_managed_regs.
6468         (disable_call_ms2sysv_xlogues): Rename to...
6469         (warn_once_call_ms2sysv_xlogues): ...this, and warn only once.
6470         (ix86_initial_elimination_offset, ix86_expand_call): Fix call_ms2sysv
6471         warning logic.
6472         (ix86_static_chain): Make sure that ix86_static_chain_on_stack can't
6473         change after reload_completed.
6474         (ix86_can_use_return_insn_p): Use the ix86_frame data structure
6475         directly.
6476         (ix86_expand_prologue): Likewise.
6477         (ix86_expand_epilogue): Likewise.
6478         (ix86_expand_split_stack_prologue): Likewise.
6479         (ix86_compute_frame_layout): Remove frame parameter ...
6480         (TARGET_COMPUTE_FRAME_LAYOUT): ... and export it as a target hook.
6481         (ix86_finalize_stack_realign_flags): Call ix86_compute_frame_layout
6482         only if necessary.
6483         (ix86_init_machine_status): Don't set use_fast_prologue_epilogue_nregs.
6484         (ix86_frame): Move from here ...
6485         * config/i386/i386.h (ix86_frame): ... to here.
6486         (machine_function): Remove use_fast_prologue_epilogue_nregs, cache the
6487         complete ix86_frame data structure instead.  Remove some_ld_name.
6489 2017-06-01  Pierre-Marie de Rodat  <derodat@adacore.com>
6491         * dwarf2out.c (dwarf2out_late_global_decl): Add locations for
6492         symbols that hold a DECL_VALUE_EXPR.
6494 2017-06-01  Martin Jambor  <mjambor@suse.cz>
6496         PR tree-optimization/80898
6497         * tree-sra.c (process_subtree_disqualification): Removed.
6498         (disqualify_candidate): Do not acll
6499         process_subtree_disqualification.
6500         (subtree_mark_written_and_enqueue): New function.
6501         (propagate_all_subaccesses): Set grp_write of LHS subtree if the
6502         RHS has been disqualified and re-queue LHS if necessary.  Apart
6503         from that, ignore disqualified RHS.
6505 2017-06-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6507         * config/s390/s390.c (s390_emit_epilogue): Disable early return
6508         address fetch for z10 or later.
6510 2017-06-01  Claudiu Zissulescu  <claziss@synopsys.com>
6512         * config/arc/arc.md (tst_movb): Add guard when splitting.
6514 2017-06-01  Claudiu Zissulescu  <claziss@synopsys.com>
6516         * config/arc/arc.c (arc_can_eliminate): Test against
6517         arc_frame_pointer_needed.
6519 2017-06-01  Claudiu Zissulescu  <claziss@synopsys.com>
6521         * config/arc/arc.c (arc_expand_prologue): Emit a special barrier
6522         to prevent store reordering.
6523         * config/arc/arc.md (UNSPEC_ARC_STKTIE): Define.
6524         (type): Add block type.
6525         (stack_tie): Define special instruction to be used in
6526         expand_prologue.
6528 2017-06-01  Claudiu Zissulescu  <claziss@synopsys.com>
6530         * config/arc/arc.md (commutative_binary_comparison): Remove 'I'
6531         constraint. It is not valid for the pattern.
6532         (noncommutative_binary_comparison): Likewise.
6534 2017-06-01  Claudiu Zissulescu  <claziss@synopsys.com>
6536         * config/arc/simdext.md (movv2hi_insn): Change predicate to avoid
6537         scaled addresses.
6539 2017-06-01  Claudiu Zissulescu  <claziss@synopsys.com>
6541         * config/arc/arc.c (arc_conditional_register_usage): Allow r30 to
6542         be used by the reg-alloc.
6544 2017-06-01  Claudiu Zissulescu  <claziss@synopsys.com>
6546         * config/arc/arc.md (mulsi3): Avoid use of hard registers before
6547         reg-alloc when having mul64 or mul32x16 instructions.
6548         (mulsidi3): Likewise.
6549         (umulsidi3): Likewise.
6550         (mulsi32x16): New pattern.
6551         (mulsi64): Likewise.
6552         (mulsidi64): Likewise.
6553         (umulsidi64): Likewise.
6554         (MUL32x16_REG): Define.
6555         (mul64_600): Use MUL32x16_REG.
6556         (mac64_600): Likewise.
6557         (umul64_600): Likewise.
6558         (umac64_600): Likewise.
6560 2017-06-01  Claudiu Zissulescu  <claziss@synopsys.com>
6562         * config/arc/arc.md (mulsi3_700): Make it commutative.
6564 2017-06-01  Jose E. Marchesi  <jose.marchesi@oracle.com>
6566         * config/sparc/sparc.md (*zero_extendsidi2_insn_sp64): Set insn
6567         type for movstouw.
6568         (*sign_extendsidi2_insn): Likewise for movstosw.
6570 2017-06-01  Pierre-Marie de Rodat  <derodat@adacore.com>
6572         * dwarf2out.c (get_discr_value): Call the get_debug_type hook on
6573         the type of the input discriminant value.  Convert the
6574         discriminant value of signedness vary.
6576 2017-06-01  Volker Reichelt  <v.reichelt@netcologne.de>
6578         * doc/invoke.texi (-Wcatch-value): Document new shortcut.
6579         Add to -Wall section.
6581 2017-06-01  Richard Biener  <rguenther@suse.de>
6583         PR middle-end/66313
6584         * fold-const.c (fold_plusminus_mult_expr): If the factored
6585         factor may be zero use a wrapping type for the inner operation.
6586         * tree-tailcall.c (independent_of_stmt_p): Pass in to_move bitmap
6587         and handle moved defs.
6588         (process_assignment): Properly guard the unary op case.  Return a
6589         tri-state indicating that moving the stmt before the call may allow
6590         to continue.  Pass through to_move.
6591         (find_tail_calls): Handle moving unrelated defs before
6592         the call.
6594 2017-05-31  Segher Boessenkool  <segher@kernel.crashing.org>
6596         PR target/80618
6597         * config/rs6000/vector.md (*vector_uneq<mode>): Write the nor in the
6598         splitter result in the canonical way.
6600 2017-05-31  Uros Bizjak  <ubizjak@gmail.com>
6602         * config/i386/i386.md (*zero_extendsidi2): Enable alternative (?r, *Yj)
6603         also for 32bit target.  Update insn attributes.
6604         (zero-extendsidi2 splitter): Allow all registers for operand 1.
6606 2017-05-31  Sebastian Peryt  <sebastian.peryt@intel.com>
6608         * config/i386/avx512fintrin.h (_mm_mask_max_sd)
6609         (_mm_maskz_max_sd, _mm_mask_max_ss, _mm_maskz_max_ss)
6610         (_mm_mask_min_sd, _mm_maskz_min_sd, _mm_mask_min_ss)
6611         (_mm_maskz_min_ss): New intrinsics.
6613 2017-05-31  Martin Liska  <mliska@suse.cz>
6615         * tree-vect-loop.c (vect_create_epilog_for_reduction):
6616         Change comment style to one we normally use.
6617         (vectorizable_reduction): Likewise.
6618         (vectorizable_induction): Likewise.
6619         * tree-vect-stmts.c (vectorizable_mask_load_store): Likewise.
6620         (vectorizable_call): Likewise.
6621         (vectorizable_simd_clone_call): Likewise.
6622         (vectorizable_conversion): Likewise.
6623         (vectorizable_assignment): Likewise.
6624         (vectorizable_shift): Likewise.
6625         (vectorizable_operation): Likewise.
6626         (vectorizable_store): Likewise.
6627         (vectorizable_load): Likewise.
6628         * tree-vectorizer.h: Likewise.
6630 2017-05-31  Alexander Monakov  <amonakov@ispras.ru>
6632         * passes.c (emergency_dump_function): New.
6633         * tree-pass.h (emergency_dump_function): Declare.
6634         * plugin.c (plugins_internal_error_function): Remove.
6635         * plugin.h (plugins_internal_error_function): Remove declaration.
6636         * toplev.c (internal_error_function): New static function.  Use it...
6637         (general_init): ...here.
6639 2017-05-31  Graham Markall  <graham.markall@embecosm.com>
6641         * config/arc/arc.c (arc_print_operand): Handle constant operands.
6642         (arc_rtx_costs): Add costs for new patterns.
6643         * config/arc/arc.md: Additional *add_n and *sub_n patterns.
6644         * config/arc/predicates.md: Add _1_2_3_operand predicate.
6646 2017-05-31  Richard Sandiford  <richard.sandiford@linaro.org>
6648         * tree-ssa-strlen.c (get_next_strinfo): New function.
6649         (get_stridx_plus_constant): Use it.
6650         (zero_length_string): Likewise.
6651         (adjust_related_strinfos): Likewise.
6652         (adjust_last_stmt): Likewise.
6654 2017-05-31  Richard Biener  <rguenther@suse.de>
6656         PR target/80880
6657         * config/i386/i386.c (ix86_expand_builtin): Remove assert
6658         for arg being an SSA name when expanding IX86_BUILTIN_BNDRET.
6660 2017-05-31  Richard Sandiford  <richard.sandiford@linaro.org>
6662         * tree-vect-data-refs.c (vect_find_same_alignment_drs): Remove
6663         loop_vinfo argument and use of dependence distance vectors.
6664         Check instead whether the two references differ only in their
6665         initial value and assume that they have the same alignment if the
6666         difference is a multiple of the vector alignment.
6667         (vect_analyze_data_refs_alignment): Update call accordingly.
6669 2017-05-31  Martin Liska  <mliska@suse.cz>
6671         PR target/79155
6672         * config/i386/cpuid.h: Fix typo in a comment in cpuid.h.
6674 2017-05-31  Bin Cheng  <bin.cheng@arm.com>
6676         * tree-vect-loop-manip.c (create_intersect_range_checks_index)
6677         (create_intersect_range_checks): Move from ...
6678         * tree-data-ref.c (create_intersect_range_checks_index)
6679         (create_intersect_range_checks): ... to here.
6680         (create_runtime_alias_checks): New function factored from ...
6681         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): ...
6682         here.  Call above function.
6683         * tree-data-ref.h (create_runtime_alias_checks): New function.
6685 2017-05-31  Bin Cheng  <bin.cheng@arm.com>
6687         * tree-data-ref.c (prune_runtime_alias_test_list): Relax minimal
6688         segment length for dr_b and compute it in wide_int.
6690 2017-05-31  Richard Biener  <rguenther@suse.de>
6692         PR tree-optimization/80906
6693         * graphite-isl-ast-to-gimple.c (copy_loop_close_phi_nodes): Get
6694         and pass through iv_map.
6695         (copy_bb_and_scalar_dependences): Adjust.
6696         (translate_pending_phi_nodes): Likewise.
6697         (copy_loop_close_phi_args): Handle code-generating IVs instead
6698         of ICEing.
6700 2017-05-30  David Malcolm  <dmalcolm@redhat.com>
6702         * diagnostic-color.c (color_dict): Add "type-diff".
6703         (parse_gcc_colors): Update comment.
6704         * doc/invoke.texi (Diagnostic Message Formatting Options): Add
6705         -fdiagnostics-show-template-tree and -fno-elide-type.
6706         (GCC_COLORS): Add type-diff to example.
6707         (type-diff=): New.
6708         (-fdiagnostics-show-template-tree): New.
6709         (-fno-elide-type): New.
6710         * pretty-print.c (pp_format): Pass quote and formatters[argno] to
6711         the pp_format_decoder callback.  Call any m_format_postprocessor's
6712         "handle" method.
6713         (pretty_printer::pretty_printer): Initialize
6714         m_format_postprocessor.
6715         (pretty_printer::~pretty_printer): Delete any
6716         m_format_postprocessor.
6717         * pretty-print.h (printer_fn): Add bool and const char ** parameters.
6718         (class format_postprocessor): New class.
6719         (struct pretty_printer::format_decoder): Document the new parameters.
6720         (struct pretty_printer::m_format_postprocessor): New field.
6721         * tree-diagnostic.c (default_tree_printer): Update for new
6722         bool and const char ** params.
6723         * tree-diagnostic.h (default_tree_printer): Likewise.
6725 2017-05-30  Segher Boessenkool  <segher@kernel.crashing.org>
6727         * config/rs6000/predicates.md (cc_reg_not_micro_cr0_operand): Delete.
6728         (lwa_operand): Delete rs6000_gen_cell_microcode test.
6729         * config/rs6000/rs6000.c (rs6000_option_override_internal): Delete
6730         rs6000_gen_cell_microcode code.
6731         (rs6000_final_prescan_insn): Delete.
6732         (rs6000_opt_vars): Delete the "gen-cell-microcode" and
6733         "warn-cell-microcode" entries.
6734         * config/rs6000/rs6000.h (FINAL_PRESCAN_INSN): Delete.
6735         * config/rs6000/rs6000.md: Delete rs6000_gen_cell_microcode tests
6736         throughout.  Change cc_reg_not_micro_cr0_operand to
6737         cc_reg_not_cr0_operand throughout.
6738         (*extendhi<mode>2_noload): Delete.
6739         * config/rs6000/rs6000.opt (mgen-cell-microcode): Replace by stub.
6740         (mwarn-cell-microcode): Delete.
6741         * doc/invoke.texi (RS/6000 and PowerPC Options): Delete
6742         -mgen-cell-microcode and -mwarn-cell-microcode.
6744 2017-05-30  Uros Bizjak  <ubizjak@gmail.com>
6746         PR target/80833
6747         * config/i386/constraints.md (Yd): New constraint.
6748         (Ye): Ditto.
6749         * config/i386/i386.md (*movti_internal): Add (?r, Ye)
6750         and (?Yd, r) alternatives.  Update insn attributes.
6751         * config/i386/i386.md (*movti_internal): Add (?r, *Ye)
6752         and (?*Yd, r) alternatives.  Update insn attributes.
6753         (double-mode inter-unit splitters): Add new GR<->XMM splitters.
6755 2017-05-30  Pierre-Marie de Rodat  <derodat@adacore.com>
6757         * gimplify.c (gimplify_modify_expr): Don't create a
6758         DECL_DEBUG_EXPR link if *FROM_P does not belong to the current
6759         function.
6761 2017-05-30  Wilco Dijkstra  <wdijkstr@arm.com>
6763         * config/arm/arm-builtins.c (arm_expand_builtin): Remove const.
6765 2017-05-30  Richard Biener  <rguenther@suse.de>
6767         * tree-vectorizer.h (struct _stmt_vec_info): Add reduc_type
6768         and reduc_def fields.
6769         (STMT_VINFO_REDUC_TYPE): New define.
6770         (STMT_VINFO_REDUC_DEF): Likewise.
6771         (vect_force_simple_reduction): Adjust prototype.
6772         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Adjust.
6773         (vect_is_simple_reduction): Remove check_reduction argument.
6774         (vect_force_simple_reduction): Adjust and set
6775         STMT_VINFO_REDUC_TYPE and STMT_VINFO_REDUC_DEF.
6776         (vectorizable_reduction): Do not re-do reduction analysis
6777         but use STMT_VINFO_REDUC_TYPE and STMT_VINFO_REDUC_DEF.
6778         * tree-parloops.c (gather_scalar_reductions): Adjust.
6780 2017-05-30  Richard Biener  <rguenther@suse.de>
6782         PR middle-end/80901
6783         * cfgexpand.c (expand_gimple_cond): Match up loop fixup with
6784         split_edge code.
6786 2017-05-24  Robin Dapp  <rdapp@linux.vnet.ibm.com>
6788         * tree-vect-data-refs.c (vect_get_peeling_costs_all_drs):
6789         Introduce unknown_misalignment parameter and remove vf.
6790         (vect_peeling_hash_get_lowest_cost):
6791         Pass unknown_misalignment parameter.
6792         (vect_enhance_data_refs_alignment):
6793         Fix unsupportable data ref treatment.
6795 2017-05-30  Robin Dapp  <rdapp@linux.vnet.ibm.com>
6797         * tree-vect-data-refs.c (vect_get_data_access_cost):
6798         Workaround for SLP handling.
6799         (vect_enhance_data_refs_alignment):
6800         Compute costs for doing no peeling at all, compare to the best
6801         peeling costs so far and avoid peeling if cheaper.
6803 2017-05-30  Robin Dapp  <rdapp@linux.vnet.ibm.com>
6805         * tree-vect-data-refs.c (vect_peeling_hash_choose_best_peeling):
6806         Return peeling info and set costs to zero for unlimited cost
6807         model.
6808         (vect_enhance_data_refs_alignment): Also inspect all datarefs
6809         with unknown misalignment. Compute and costs for unknown
6810         misalignment, compare them to the costs for known misalignment
6811         and choose the cheapest for peeling.
6813 2017-05-30  Robin Dapp  <rdapp@linux.vnet.ibm.com>
6815         * tree-vect-data-refs.c (vect_update_misalignment_for_peel): Rename.
6816         (vect_get_peeling_costs_all_drs): Create function.
6817         (vect_peeling_hash_get_lowest_cost):
6818         Use vect_get_peeling_costs_all_drs.
6819         (vect_peeling_supportable): Create function.
6820         (vect_enhance_data_refs_alignment): Use vect_peeling_supportable.
6822 2017-05-30  Robin Dapp  <rdapp@linux.vnet.ibm.com>
6824         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Create
6825         DR_HAS_NEGATIVE_STEP.
6826         (vect_update_misalignment_for_peel): Define DR_MISALIGNMENT.
6827         (vect_enhance_data_refs_alignment): Use.
6828         (vect_duplicate_ssa_name_ptr_info): Use.
6829         * tree-vectorizer.h (dr_misalignment): Use.
6830         (known_alignment_for_access_p): Use.
6832 2017-05-30  Jozef Lawrynowicz  <jozef.l@somniumtech.com>
6834         PR target/78838
6835         * config/msp430/msp430.c (gen_prefix): Return NULL when section name is
6836         .lowtext.
6837         (has_section_name): New function.
6839 2017-05-30  Martin Liska  <mliska@suse.cz>
6841         PR other/80909
6842         * auto-profile.c (get_function_decl_from_block): Fix
6843         parenthesis.
6845 2017-05-30  Richard Biener  <rguenther@suse.de>
6847         PR middle-end/80876
6848         * cfgexpand.c (expand_gimple_cond): Fixup preserving loops again.
6850 2017-05-30  Martin Liska  <mliska@suse.cz>
6852         * dumpfile.c: Use newly added macro DUMP_FILE_INFO.
6853         * dumpfile.h (struct dump_file_info): Remove ctors.
6855 2017-05-30  Martin Liska  <mliska@suse.cz>
6857         * predict.def: Fix GNU coding style.
6859 2017-05-29  Max Filippov  <jcmvbkbc@gmail.com>
6861         * config/xtensa/xtensa.c (xtensa_initial_elimination_offset):
6862         Mark 'to' argument with ATTRIBUTE_UNUSED.
6864 2017-05-29  Max Filippov  <jcmvbkbc@gmail.com>
6866         * config/xtensa/xtensa.c (xtensa_emit_call): Use
6867         HOST_WIDE_INT_PRINT_HEX instead of 0x%lx format string.
6868         (print_operand): Use HOST_WIDE_INT_PRINT_DEC instead of %ld
6869         format string.
6871 2017-05-29  Eric Botcazou  <ebotcazou@adacore.com>
6873         * doc/install.texi (Options specification): Restore entry of
6874         --enable-sjlj-exceptions.
6876 2017-05-27  Michael Eager  <eager@eagercon.com>
6878         Revert:
6879         2016-01-21  Ajit Agarwal  <ajitkum@xilinx.com>
6881         See https://gcc.gnu.org/ml/gcc/2017-05/msg00221.html.
6883         * config/microblaze/microblaze.h
6884         (FIXED_REGISTERS): Update in macro.
6885         (CALL_USED_REGISTERS): Update in macro.
6887 2017-05-27  François-Xavier Coudett  <fxcoudert@gcc.gnu.org>
6889         * doc/install.texi: Add links to macOS binary distributions.
6891 2017-05-27  Jakub Jelinek  <jakub@redhat.com>
6893         PR bootstrap/80887
6894         Revert:
6895         2017-05-25  Marc Glisse  <marc.glisse@inria.fr>
6897         * match.pd ((A +- CST1) +- CST2): Allow some conversions.
6899 2017-05-26  Martin Liska  <mliska@suse.cz>
6901         * dumpfile.h (enum dump_kind): Renumber TDF_* flags to be contiguous.
6903 2017-05-26  Martin Liska  <mliska@suse.cz>
6905         * cfg.c (check_bb_profile): Do not use TDF_COMMENT and print
6906         always leading ';; '.
6907         (dump_bb_info): Likewise.
6908         (brief_dump_cfg): Likewise.
6909         * cfgrtl.c (print_rtl_with_bb): Do not use TDF_COMMENT.
6910         * dumpfile.c: Remove usage of TDF_VERBOSE.
6911         * dumpfile.h (enum dump_kind): Likewise.
6912         (dump_gimple_bb_header): Do not use TDF_COMMENT.
6913         * print-tree.c (debug_verbose): Remove.
6914         * tree-cfg.c (gimple_dump_cfg): Do not use TDF_COMMENT.
6915         (dump_function_to_file): Remove dumps guarded with TDF_VERBOSE.
6916         * tree-diagnostic.c (default_tree_printer): Replace
6917         TDF_DIAGNOSTIC with TDF_SLIM.
6919 2017-05-26  Bin Cheng  <bin.cheng@arm.com>
6921         * tree-vect-loop-manip.c (create_intersect_range_checks_index): Pass
6922         in parameter loop, rather than loop_vinfo.
6923         (create_intersect_range_checks): Ditto.
6924         (vect_create_cond_for_alias_checks): Update call to above functions.
6926 2017-05-26  Bin Cheng  <bin.cheng@arm.com>
6928         PR tree-optimization/80815
6929         * tree-data-ref.c (prune_runtime_alias_test_list): Simplify condition
6930         for merging runtime alias checks.  Handle negative DR_STEPs.
6932 2017-05-26  Bin Cheng  <bin.cheng@arm.com>
6934         * tree-vect-data-refs.c (Operator==, comp_dr_with_seg_len_pair):
6935         Move from ...
6936         * tree-data-ref.c (Operator==, comp_dr_with_seg_len_pair): To here.
6937         * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list): Factor
6938         out code pruning runtime alias checks.
6939         * tree-data-ref.c (prune_runtime_alias_test_list): New function
6940         factored out from above.
6941         * tree-vectorizer.h (struct dr_with_seg_len, dr_with_seg_len_pair_t):
6942         Move from ...
6943         * tree-data-ref.h (struct dr_with_seg_len, dr_with_seg_len_pair_t):
6944         ... to here.
6945         (prune_runtime_alias_test_list): New decalaration.
6947 2017-05-26  Bin Cheng  <bin.cheng@arm.com>
6949         * tree-vect-data-refs.c (compare_tree): Rename and move ...
6950         * tree-data-ref.c (data_ref_compare_tree): ... to here.
6951         * tree-data-ref.h (data_ref_compare_tree): New decalaration.
6952         * tree-vect-data-refs.c (dr_group_sort_cmp): Update uses.
6953         (operator==, comp_dr_with_seg_len_pair): Ditto.
6954         (vect_prune_runtime_alias_test_list): Ditto.
6956 2017-05-26  Martin Liska  <mliska@suse.cz>
6958         PR ipa/80663
6959         * params.def: Bound partial-inlining-entry-probability param.
6961 2017-05-26  Marek Polacek  <polacek@redhat.com>
6963         PR sanitizer/80875
6964         * fold-const.c (fold_binary_loc) <case MULT_EXPR>: Check if OP1
6965         can be negated.
6967 2017-05-26  Richard Biener  <rguenther@suse.de>
6969         PR tree-optimization/80842
6970         * tree-ssa-ccp.c (set_lattice_value): Always meet with the old
6971         value.
6973 2017-05-26  Richard Biener  <rguenther@suse.de>
6975         PR tree-optimization/80844
6976         * tree-vectorizer.c (adjust_simduid_builtins): Propagate results.
6978 2017-05-25  Sebastian Peryt  <sebastian.peryt@intel.com>
6980         * doc/md.texi (Machine Constraints): Update x86 family
6981         machine constraints section to match 'config/i386/constraints.md'.
6983 2017-05-25  Volker Reichelt  <v.reichelt@netcologne.de>
6985         * doc/invoke.texi (-Wcatch-value=): Document new warning option.
6987 2017-05-25  Nathan Sidwell  <nathan@acm.org>
6989         * doc/invoke.texi (--enable-languages): Update documentation.
6991 2017-05-25  Martin Liska  <mliska@suse.cz>
6993         * dumpfile.c: Add TDF_FOLDING.
6994         * dumpfile.h (enum dump_kind): Likewise.
6995         * genmatch.c (dt_simplify::gen_1): Use it.
6997 2017-05-25  Marc Glisse  <marc.glisse@inria.fr>
6999         * match.pd (view_convert (convert@0 @1)): Handle zero-extension.
7001 2017-05-25  Marc Glisse  <marc.glisse@inria.fr>
7003         * match.pd ((A +- CST1) +- CST2): Allow some conversions.
7004         * tree.c (drop_tree_overflow): Handle COMPLEX_CST and VECTOR_CST.
7006 2017-05-25  Marc Glisse  <marc.glisse@inria.fr>
7008         * fold-const.c (fold_binary_loc) [(A & C) == D]: Remove transformation.
7009         * match.pd (X == C): Rewrite it here.
7010         (with_possible_nonzero_bits, with_possible_nonzero_bits2,
7011         with_certain_nonzero_bits2): New predicates.
7012         * tree-ssanames.c (get_nonzero_bits): Handle INTEGER_CST.
7014 2017-05-24  Nathan Sidwell  <nathan@acm.org>
7016         * lto-streamer-in.c (lto_input_data_block): Adjust T const cast to
7017         avoid warning.
7019         * auto-profile.c (afdo_propagate): Adjust T const cast to avoid
7020         warning.
7022 2017-05-24  Segher Boessenkool  <segher@kernel.crashing.org>
7024         * config/powerpcspe: New port.  Files are copied from the rs6000
7025         port, with "rs6000" in filenames replaced by "powerpcspe".
7027 2017-05-24  Wilco Dijkstra  <wdijkstr@arm.com>
7029         PR rtl-optimization/80754
7030         * lra-remat.c (do_remat): Add overlap checks for dst_regno.
7032 2017-05-24  Sheldon Lobo  <smlobo@sheldon.us.oracle.com>
7034         * config/sparc/sparc.md (length): Return the correct value for -mflat
7035         sibcalls to match output_sibcall.
7037 2017-05-24  Segher Boessenkool  <segher@kernel.crashing.org>
7039         PR bootstrap/80860
7040         PR bootstrap/80843
7041         * config/rs6000/rs6000.c (struct machine_function): Add new field
7042         n_components.
7043         (rs6000_get_separate_components): Init that field, use it.
7044         (rs6000_components_for_bb): Use the field.
7046 2017-05-24  Thomas Preud'homme  <thomas.preudhomme@arm.com>
7048         * config/arm/arm.c (arm_expand_prologue): Fix typo in comment.
7050 2017-05-24  Peter Bergner  <bergner@vnet.ibm.com>
7052         PR middle-end/80823
7053         * tree-cfg.c (group_case_labels_stmt): Delete increment of "i";
7055 2017-05-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
7057         PR target/80725
7058         * config/s390/s390.c (s390_check_qrst_address): Check incoming
7059         address against address_operand predicate.
7060         * config/s390/s390.md ("*indirect_jump"): Swap alternatives.
7062 2017-05-24  Eric Botcazou  <ebotcazou@adacore.com>
7064         * var-tracking.c (track_expr_p): Do not return 0 for tracked record
7065         parameters passed indirectly.
7067 2017-05-23  Uros Bizjak  <ubizjak@gmail.com>
7069         * config/i386/i386.md (*movdi_internal): Remove SSE4
7070         alternative 18 (?r, *v).  Update insn attributes.
7071         (*movsi_internal): Remove SSE4 alternative 13 (?r, *v).
7072         Update insn attributes.
7073         (*zero_extendsidi2): Remove SSE4 alternative (?r, *x).
7074         Update insn attributes.
7075         * config/i386/sse.md (vec_extract<ssevecmodelower>_0): Remove SSE4
7076         alternative 1 (r, v). Remove isa attribute.
7077         * config/i386/i386.c (dimode_scalar_chain::make_vector_copies):
7078         Always move value through stack for !TARGET_INTER_UNIT_MOVES_TO_VEC
7079         and !TARGET_INTER_UNIT_MOVES_TO_VEC targets.
7081 2017-05-23  Tom de Vries  <tom@codesourcery.com>
7083         * doc/sourcebuild.texi (Directives, Verify compiler message): Document
7084         dg-line directive.
7086 2017-05-23  Jan Hubicka  <hubicka@ucw.cz>
7088         * cgraphunit.c (symbol_table::process_new_functions): Update.
7089         * ipa-fnsummary.c (pass_data_inline_parameters): Remove.
7090         (inline_generate_summary): Rename to ...
7091         (ipa_fn_summary_generate): ... this one.
7092         (inline_read_summary): Rename to ...
7093         (ipa_fn_summary_read): ... this one.
7094         (inline_write_summary): Rename to ...
7095         (ipa_fn_summary_write): ... this one.
7096         (inline_free_summary): Rename to ...
7097         (ipa_free_fn_summary): ... this one.
7098         (pass_data_local_fn_summary, pass_local_fn_summary,
7099         make_pass_local_fn_summary, pass_data_ipa_free_fn_summary,
7100         pass_ipa_free_fn_summary, make_pass_ipa_free_fn_summary,
7101         pass_data_ipa_fn_summary, pass_ipa_fn_summary,
7102         make_pass_ipa_fn_summary): New.
7103         * ipa-fnsummary.h (inline_generate_summary, inline_read_summary,
7104         inline_write_summary, inline_free_summary): Remove.
7105         (ipa_free_fn_summary) : New.
7106         * ipa-inline.c (ipa_inline): Update.
7107         (pass_ipa_inline): Do not generate summaries.
7108         * ipa.c (pass_data_ipa_free_fn_summary, pass_ipa_free_fn_summary):
7109         Remove.
7110         * passes.def: Replace pass_inline_parameters by pass_local_fn_summary
7111         and add pass_ipa_fn_summary.
7112         * tree-pass.h (make_pass_ipa_fn_summary, make_pass_local_fn_summary):
7113         New.
7114         (make_pass_inline_parameters): Remove.
7116 2017-05-23  Thomas Schwinge  <thomas@codesourcery.com>
7118         * omp-low.c (struct omp_context): Remove "default_kind" member.
7119         Adjust all users.
7121         * omp-offload.c (execute_oacc_device_lower): Remove the
7122         parallelism dimensions function attributes for unparallelized
7123         OpenACC kernels constructs.
7125 2017-05-23  Martin Liska  <mliska@suse.cz>
7127         * cgraph.c (cgraph_node::get_create): Use symtab_node::dump_{asm_,}name
7128         functions.
7129         (cgraph_edge::make_speculative): Likewise.
7130         (cgraph_edge::resolve_speculation): Likewise.
7131         (cgraph_edge::redirect_call_stmt_to_callee): Likewise.
7132         (cgraph_node::dump): Likewise.
7133         * cgraph.h: Likewise.
7134         * cgraphunit.c (analyze_functions): Likewise.
7135         (symbol_table::compile): Likewise.
7136         * ipa-cp.c (print_all_lattices): Likewise.
7137         (determine_versionability): Likewise.
7138         (initialize_node_lattices): Likewise.
7139         (ipcp_verify_propagated_values): Likewise.
7140         (estimate_local_effects): Likewise.
7141         (update_profiling_info): Likewise.
7142         (create_specialized_node): Likewise.
7143         (perhaps_add_new_callers): Likewise.
7144         (decide_about_value): Likewise.
7145         (decide_whether_version_node): Likewise.
7146         (identify_dead_nodes): Likewise.
7147         (ipcp_store_bits_results): Likewise.
7148         * ipa-devirt.c (dump_targets): Likewise.
7149         (ipa_devirt): Likewise.
7150         * ipa-icf.c (sem_item::dump): Likewise.
7151         (sem_function::equals): Likewise.
7152         (sem_variable::equals): Likewise.
7153         (sem_item_optimizer::read_section): Likewise.
7154         (sem_item_optimizer::execute): Likewise.
7155         (congruence_class::dump): Likewise.
7156         * ipa-inline-analysis.c (dump_ipa_call_summary): Likewise.
7157         (dump_inline_summary): Likewise.
7158         (estimate_node_size_and_time): Likewise.
7159         (inline_analyze_function): Likewise.
7160         * ipa-inline-transform.c (inline_call): Likewise.
7161         * ipa-inline.c (report_inline_failed_reason): Likewise.
7162         (want_early_inline_function_p): Likewise.
7163         (edge_badness): Likewise.
7164         (update_edge_key): Likewise.
7165         (inline_small_functions): Likewise.
7166         * ipa-profile.c (ipa_profile): Likewise.
7167         * ipa-prop.c (ipa_print_node_jump_functions): Likewise.
7168         (ipa_make_edge_direct_to_target): Likewise.
7169         (remove_described_reference): Likewise.
7170         (ipa_impossible_devirt_target): Likewise.
7171         (propagate_controlled_uses): Likewise.
7172         (ipa_print_node_params): Likewise.
7173         (ipcp_transform_function): Likewise.
7174         * ipa-pure-const.c (pure_const_read_summary): Likewise.
7175         (propagate_pure_const): Likewise.
7176         * ipa-reference.c (generate_summary): Likewise.
7177         (read_write_all_from_decl): Likewise.
7178         (propagate): Likewise.
7179         (ipa_reference_read_optimization_summary): Likewise.
7180         * ipa-utils.c (ipa_merge_profiles): Likewise.
7181         * ipa.c (walk_polymorphic_call_targets): Likewise.
7182         (symbol_table::remove_unreachable_nodes): Likewise.
7183         (ipa_single_use): Likewise.
7184         * passes.c (execute_todo): Likewise.
7185         * predict.c (drop_profile): Likewise.
7186         * symtab.c (symtab_node::get_dump_name): New function.
7187         (symtab_node::dump_name): Likewise.
7188         (symtab_node::dump_asm_name): Likewise.
7189         (symtab_node::dump_references): Likewise.
7190         (symtab_node::dump_referring): Likewise.
7191         (symtab_node::dump_base): Likewise.
7192         (symtab_node::debug_symtab): Likewise.
7193         * tree-sra.c (convert_callers_for_node): Likewise.
7194         * tree-ssa-structalias.c (ipa_pta_execute): Likewise.
7195         * value-prof.c (init_node_map): Likewise.
7197 2017-05-23  Martin Liska  <mliska@suse.cz>
7199         * cgraph.h: Move symtab_node::dump_table to symbol_table::dump
7200         and symtab_node::debug_symtab to symbol_table::debug.
7201         * cgraphunit.c (analyze_functions): Use the renamed function.
7202         (symbol_table::compile): Likewise.
7203         * ipa-cp.c (ipcp_verify_propagated_values): Likewise.
7204         * ipa-icf.c (sem_item_optimizer::execute): Likewise.
7205         * passes.c (execute_todo): Likewise.
7206         * symtab.c (symbol_table::dump): New function.
7207         * tree-ssa-structalias.c (ipa_pta_execute): Use the renamed function.
7209 2017-05-23  Jan Hubicka  <hubicka@ucw.cz>
7211         * ipa-fnsummary.c (estimate_node_size_and_time): Do not sanity check
7212         that nonconst implies exec.
7214 2017-05-23  Jan Hubicka  <hubicka@ucw.cz>
7216         * ipa-inline-analysis.c (cgraph_2edge_hook_list, cgraph_edge_hook_list,
7217         inline_edge_removal_hook, inline_edge_duplication_hook): Remove.
7218         (inline_edge_summary_vec): Turn into ...
7219         (ipa_call_summaries): ... this one.
7220         (redirect_to_unreachable, edge_set_predicate,
7221         evaluate_properties_for_edge, inline_summary_alloc,
7222         reset_ipa_call_summary, reset_inline_summary,
7223         inline_summary_t::duplicate): Update.
7224         (inline_edge_duplication_hook): Turn to ...
7225         (ipa_call_summary_t::duplicate): ... this one.
7226         (inline_edge_removal_hook): Turn to ...
7227         (ipa_call_summary_t::remove): ... this one.
7228         (dump_inline_edge_summary): Turn to ...
7229         (dump_ipa_call_summary): ... this one.
7230         (estimate_function_body_sizes): Update.
7231         (inline_update_callee_summaries): Update.
7232         (remap_edge_change_prob): Update.
7233         (remap_edge_summaries): Update.
7234         (inline_merge_summary): Update.
7235         (do_estimate_edge_time): Update.
7236         (inline_generate_summary): Update.
7237         (inline_read_section): Update.
7238         (inline_read_summary): Update.
7239         (inline_free_summary): Update.
7240         * ipa-inline.c (can_inline_edge_p): Update.
7241         (compute_inlined_call_time): Update.
7242         (want_inline_small_function_p): Update.
7243         (edge_badness): Update.
7244         (early_inliner): Update.
7245         * ipa-inline.h (inline_edge_summary): Turn to ...
7246         (ipa_call_summary): ... this one.
7247         (ipa_call_summary_t): New class.
7248         (inline_edge_summary_t, inline_edge_summary_vec): Remove.
7249         (ipa_call_summaries): New.
7250         (inline_edge_summary): Remove.
7251         (estimate_edge_growth): Update.
7252         * ipa-profile.c (ipa_propagate_frequency_1): Update.
7253         * ipa-prop.c (ipa_make_edge_direct_to_target): Update.
7254         * ipa-split.c (execute_split_functions): Update.
7255         * ipa.c (symbol_table::remove_unreachable_nodes): Update.
7257 2017-05-23  Tom de Vries  <tom@codesourcery.com>
7259         * doc/sourcebuild.texi (Effective-Target Keywords, Other hardware
7260         attributes): Document rdrand effective target.
7262 2017-05-23  Tom de Vries  <tom@codesourcery.com>
7264         * doc/sourcebuild.texi (Effective-Target Keywords, Other hardware
7265         attributes): Sort alphabetically.
7267 2017-05-23  Georg-Johann Lay  <avr@gjlay.de>
7269         * config/avr/genmultilib.awk: Use gsub instead of gensub.
7271 2017-05-22  Michael Meissner  <meissner@linux.vnet.ibm.com>
7273         PR target/80718
7274         * config/rs6000/vsx.md (vsx_splat_<mode>, VSX_D iterator): Split
7275         V2DF/V2DI splat into two separate patterns, one that handles
7276         registers, and the other that only handles memory.  Drop support
7277         for splatting from a GPR on ISA 2.07 and then splitting the
7278         splat into direct move and splat.
7279         (vsx_splat_<mode>_reg): Likewise.
7280         (vsx_splat_<mode>_mem): Likewise.
7282 2017-05-22  Segher Boessenkool  <segher@kernel.crashing.org>
7284         * cfgcleanup.c (bb_is_just_return): Allow CLOBBERs.
7286 2017-05-22  Jakub Jelinek  <jakub@redhat.com>
7288         PR middle-end/80809
7289         * omp-low.c (finish_taskreg_remap): New function.
7290         (finish_taskreg_scan): If unit size of ctx->record_type
7291         is non-constant, unshare the size expression and replace
7292         decls in it with possible outer var refs.
7294         PR middle-end/80809
7295         * gimplify.c (omp_add_variable): For GOVD_DEBUG_PRIVATE use
7296         GOVD_SHARED rather than GOVD_PRIVATE with it.
7297         (gimplify_adjust_omp_clauses_1, gimplify_adjust_omp_clauses): Expect
7298         GOVD_SHARED rather than GOVD_PRIVATE with GOVD_DEBUG_PRIVATE.
7300         PR middle-end/80853
7301         * omp-low.c (lower_reduction_clauses): Pass OMP_CLAUSE_PRIVATE
7302         as last argument to build_outer_var_ref for pointer bases of array
7303         section reductions.
7305 2017-05-19  Martin Sebor  <msebor@redhat.com>
7307         * print-tree.c (print_node): Print DECL_READ_P flag.
7309 2017-05-22  Jan Hubicka  <hubicka@ucw.cz>
7311         * Makefile.in: Add ipa-fnsummary.o and ipa-fnsummary.h
7312         * auto-profile.c: Replace ipa-inline.h by ipa-fnsummary.h
7313         * cgraph.c: Likewise.
7314         * cgraphunit.c: Likewise.
7315         * gengtype.c: Likewise.
7316         * ipa-cp.c: Likewise.
7317         * ipa-devirt.c: Likewise.
7318         * ipa-icf.c: Likewise.
7319         * ipa-predicate.c: Likewise.
7320         * ipa-profile.c: Likewise.
7321         * ipa-prop.c: Likewise.
7322         * ipa-split.c: Likewise.
7323         * ipa.c: Likewise.
7324         * ipa-inline-analysis.c (inline_summaries, ipa_call_summaries,
7325         edge_predicate_pool, dump_inline_hints,
7326         inline_summary::account_size_time, redirect_to_unreachable,
7327         edge_set_predicate, set_hint_predicate,
7328         evaluate_conditions_for_known_args, evaluate_properties_for_edge,
7329         inline_summary_alloc, ipa_call_summary::reset, inline_summary::reset,
7330         inline_summary_t::remove, remap_hint_predicate_after_duplication,
7331         inline_summary_t::duplicate, ipa_call_summary_t::duplicate,
7332         ipa_call_summary_t::remove, initialize_growth_caches,
7333         free_growth_caches, dump_ipa_call_summary, dump_inline_summary,
7334         debug_inline_summary, dump_inline_summaries, initialize_inline_failed,
7335         mark_modified, unmodified_parm_1, unmodified_parm,
7336         unmodified_parm_or_parm_agg_item, eliminated_by_inlining_prob,
7337         set_cond_stmt_execution_predicate, set_switch_stmt_execution_predicate,
7338         compute_bb_predicates, will_be_nonconstant_expr_predicate,
7339         will_be_nonconstant_predicate, record_modified_bb_info,
7340         get_minimal_bb, record_modified, param_change_prob,
7341         phi_result_unknown_predicate, predicate_for_phi_result,
7342         array_index_predicate, clobber_only_eh_bb_p, fp_expression_p,
7343         estimate_function_body_sizes, compute_inline_parameters,
7344         compute_inline_parameters_for_curren, pass_data_inline_parameters,
7345         estimate_node_size_and_time, estimate_ipcp_clone_size_and_time,
7346         inline_update_callee_summaries, remap_edge_change_prob,
7347         remap_edge_summaries, remap_hint_predicate, inline_merge_summary,
7348         inline_update_overall_summary, inline_indirect_intraprocedural_analysis,
7349         inline_analyze_function, inline_summary_t::insert,
7350         inline_generate_summary, read_ipa_call_summary, inline_read_section,
7351         inline_read_summary, write_ipa_call_summary, inline_write_summary,
7352         inline_free_summary): Move to ipa-fnsummary.h
7353         (predicate_t): Remove.
7354         * ipa-fnsummary.c: New file.
7355         * ipa-inline.h:  Do not include sreal.h and ipa-predicate.h
7356         (enum inline_hints_vals, inline_hints, agg_position_info,
7357         INLINE_SIZE_SCALE, size_time_entry, inline_summary, inline_summary_t,
7358         inline_summaries, ipa_call_summary, ipa_call_summary_t,
7359         ipa_call_summaries, debug_inline_summary, dump_inline_summaries,
7360         dump_inline_summary, dump_inline_hints, inline_generate_summary,
7361         inline_read_summary, inline_write_summary, inline_free_summary,
7362         inline_analyze_function, initialize_inline_failed,
7363         inline_merge_summary, inline_update_overall_summary,
7364         compute_inline_parameters): Move to ipa-fnsummary.h
7365         * ipa-fnsummary.h: New file.
7366         * ipa-inline-transform.h: Include ipa-inline.h.
7367         * ipa-inline.c: LIkewise.
7369 2017-05-22  Jan Hubicka  <hubicka@ucw.cz>
7371         * ipa-inline.c (edge_badness): Use inlined_time instead of
7372         inline_summaries->get.
7374 2017-05-22  Jan Hubicka  <hubicka@ucw.cz>
7376         * ipa-inline.c (edge_badness): Use estimate_size_after_inlining.
7378 2017-05-22  Nathan Sidwell  <nathan@acm.org>
7380         * doc/invoke.texi (fdump-translation-unit): Delete documentation.
7381         (fdump-lang): Document 'raw' option.
7382         * dumpfile.h (TDI_tu): Delete.
7383         * dumpfile.c (dump_files): Remove translation-unit.
7384         (FIRST_AUTO_NUMBERED_DUMP): Decrement.
7386 2017-05-22  Georg-Johann Lay  <avr@gjlay.de>
7388         * config/avr/t-avr (AWK) [t-multilib]: Remove "-v FORMAT=Makefile"
7389         command option from $(AWK) call.
7390         * config/avr/genmultilib.awk: Simplify and rewrite so that it
7391         generates MULTILIB_REQUIRED instead of MULTILIB_EXCEPTIONS.
7392         [FORMAT]: Remove handling of variable.
7393         * config/avr/t-multilib: Regenerate.
7395 2017-05-22  Jan Hubicka  <hubicka@ucw.cz>
7397         * ipa-inline-analysis.c (inline_summary::reset): Do not reset
7398         self_time.
7399         (dump_inline_summary): Do not print self_time.
7400         (estimate_function_body_sizes): Do not set self_time.
7401         (compute_inline_parameters): Likewise.
7402         (inline_read_section, inline_write_summary): Do not stream self_time.
7403         * ipa-inline.h (inline_summary): Drop self_time.
7405 2017-05-22  Jan Hubicka  <hubicka@ucw.cz>
7407         * ipa-inline-analysis.c (account_size_time): Rename to ...
7408         (inline_summary::account_size_time): ... this one.
7409         (reset_ipa_call_summary): Turn to ...
7410         (ipa_call_summary::reset): ... this one.
7411         (reset_inline_summary): Turn to ...
7412         (inline_summary::reset): ... this one.
7413         (inline_summary_t::remove): Update.
7414         (inline_summary_t::duplicate): Update.
7415         (ipa_call_summary_t::remove): Update.
7416         (dump_inline_summary): Update.
7417         (estimate_function_body_sizes): Update.
7418         (compute_inline_parameters): Update.
7419         (estimate_node_size_and_time): Update.
7420         (inline_merge_summary): Update.
7421         (inline_update_overall_summary): Update.
7422         (inline_read_section): Update.
7423         (inline_write_summary): Update.
7424         * ipa-inline.h (inline_summary): Rename entry to size_time_table;
7425         add account_size_time and reset member functions.
7426         (ipa_call_summary): Add reset function.
7427         * ipa-predicate.h (predicate::operator &): Constify.
7429 2017-05-22  Richard Biener  <rguenther@suse.de>
7431         * df-scan.c (df_insn_refs_verify): Speedup when not verifying.
7433 2017-05-19  Jason Merrill  <jason@redhat.com>
7435         * tree.c (make_tree_vec_stat, grow_tree_vec_stat): Use size_t.
7437 2017-05-19  Marek Polacek  <polacek@redhat.com>
7439         PR sanitizer/80800
7440         * fold-const.c (extract_muldiv_1) <case TRUNC_DIV_EXPR>: Add
7441         TYPE_OVERFLOW_WRAPS checks.
7443 2017-05-19  Thomas Schwinge  <thomas@codesourcery.com>
7445         * tree-core.h (enum omp_clause_default_kind): Add
7446         "OMP_CLAUSE_DEFAULT_PRESENT".
7447         * tree-pretty-print.c (dump_omp_clause): Handle it.
7448         * gimplify.c (enum gimplify_omp_var_data): Add
7449         "GOVD_MAP_FORCE_PRESENT".
7450         (gimplify_adjust_omp_clauses_1): Map it to
7451         "GOMP_MAP_FORCE_PRESENT".
7452         (oacc_default_clause): Handle "OMP_CLAUSE_DEFAULT_PRESENT".
7454         * gimplify.c (oacc_default_clause): Clarify.
7456 2017-05-19  Nathan Sidwell  <nathan@acm.org>
7458         LANG_HOOK_REGISTER_DUMPS
7459         * toplev.c (general_init): Call register dump lang hook.
7460         * doc/invoke.texi: Document -fdump-lang option family.
7461         * dumpfile.c (dump_files): Remove class dump here.
7462         (FIRST_AUTO_NUMBERED_DUMP): Adjust.
7463         * dumpfile.h (tree_dump_index): Remove TDI_class.
7464         * langhooks-def.h (lhd_register_dumps): Declare.
7465         (LANG_HOOKS_REGISTER_DUMPS): Define.
7466         (LANG_HOOKS_INITIALIZER): Add it.
7467         * langhooks.c (lhd_register_dumps): Define.
7468         * langhooks.h (struct lang_hooks): Add register_dumps.
7470 2017-05-19  Nathan Sidwell  <nathan@acm.org>
7472         * context.h (context::set_passes): New.
7473         * context.c (context::context): Do not create pass manager.
7474         * toplev.c (general_init): Create pass manager here.
7476 2017-05-19  Segher Boessenkool  <segher@kernel.crashing.org>
7478         * config/rs6000/rs6000.md (splitter to load of -1 and mask): Don't
7479         use this splitter if two add or or instructions would also work for
7480         the constant we want to generate.
7482 2017-05-19  Richard Biener  <rguenther@suse.de>
7484         PR build/80821
7485         * genmatch.c (dt_node::gen_kids_1): Add missing scope around
7486         predicate evaluation.
7488 2017-05-19  Jan Hubicka  <hubicka@ucw.cz>
7490         * ipa-inline.h (ipa_call_summary): Turn sizes into signed;
7491         add ctor.
7492         * ipa-inline.c (want_inline_small_function_p): Do not cast to
7493         unsigned.
7495 2017-05-19  Jan Hubicka  <hubicka@ucw.cz>
7497         * ipa-inline-analysis.c (cgraph_2edge_hook_list, cgraph_edge_hook_list,
7498         inline_edge_removal_hook, inline_edge_duplication_hook): Remove.
7499         (inline_edge_summary_vec): Turn into ...
7500         (ipa_call_summaries): ... this one.
7501         (redirect_to_unreachable, edge_set_predicate,
7502         evaluate_properties_for_edge, inline_summary_alloc,
7503         reset_ipa_call_summary, reset_inline_summary,
7504         inline_summary_t::duplicate): Update.
7505         (inline_edge_duplication_hook): Turn to ...
7506         (ipa_call_summary_t::duplicate): ... this one.
7507         (inline_edge_removal_hook): Turn to ...
7508         (ipa_call_summary_t::remove): ... this one.
7509         (dump_inline_edge_summary): Turn to ...
7510         (dump_ipa_call_summary): ... this one.
7511         (estimate_function_body_sizes): Update.
7512         (inline_update_callee_summaries): Update.
7513         (remap_edge_change_prob): Update.
7514         (remap_edge_summaries): Update.
7515         (inline_merge_summary): Update.
7516         (do_estimate_edge_time): Update.
7517         (inline_generate_summary): Update.
7518         (inline_read_section): Update.
7519         (inline_read_summary): Update.
7520         (inline_free_summary): Update.
7521         * ipa-inline.c (can_inline_edge_p): Update.
7522         (compute_inlined_call_time): Update.
7523         (want_inline_small_function_p): Update.
7524         (edge_badness): Update.
7525         (early_inliner): Update.
7526         * ipa-inline.h (inline_edge_summary): Turn to ...
7527         (ipa_call_summary): ... this one.
7528         (ipa_call_summary_t): New class.
7529         (inline_edge_summary_t, inline_edge_summary_vec): Remove.
7530         (ipa_call_summaries): New.
7531         (inline_edge_summary): Remove.
7532         (estimate_edge_growth): Update.
7533         * ipa-profile.c (ipa_propagate_frequency_1): Update.
7534         * ipa-prop.c (ipa_make_edge_direct_to_target): Update.
7535         * ipa-split.c (execute_split_functions): Update.
7536         * ipa.c (symbol_table::remove_unreachable_nodes): Update.
7538 2017-05-19  Richard Biener  <rguenther@suse.de>
7540         PR middle-end/80764
7541         * cfgexpand.c (expand_gimple_cond): Fix loop fixup.
7543 2017-05-18  Segher Boessenkool  <segher@kernel.crashing.org>
7545         * config/rs6000/rs6000.c (struct machine_function): Add field
7546         fpr_is_wrapped_separately.
7547         (rs6000_get_separate_components): Use 64 components.  Handle the
7548         new FPR components.
7549         (rs6000_components_for_bb): Handle the FPR components.
7550         (rs6000_emit_prologue_components): Handle the FPR components.
7551         (rs6000_emit_epilogue_components): Handle the FPR components.
7552         (rs6000_set_handled_components): Handle the FPR components.
7553         (rs6000_emit_prologue): Don't output prologue code for those FPRs
7554         that are already separately shrink-wrapped.
7555         (rs6000_emit_epilogue): Don't output epilogue code for those FPRs
7556         that are already separately shrink-wrapped.
7558 2017-05-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
7560         PR target/80510
7561         * config/rs6000/predicates.md (simple_offsettable_mem_operand):
7562         New predicate.
7564         * config/rs6000/rs6000.md (ALTIVEC_DFORM): New iterator.
7565         (define_peephole2 for Altivec d-form load): Add peepholes to catch
7566         cases where the register allocator uses a move and an offsettable
7567         memory operation to/from a FPR register on ISA 2.06/2.07.
7568         (define_peephole2 for Altivec d-form store): Likewise.
7570 2017-05-18  Uros Bizjak  <ubizjak@gmail.com>
7572         PR target/80799
7573         * config/i386/mmx.md (*mov<mode>_internal): Enable
7574         alternatives 11, 12, 13 and 14 also for 32bit targets.
7575         Remove alternatives 15, 16, 17 and 18.
7576         * config/i386/sse.md (vec_concatv2di): Change
7577         alternative (!x, *y) to (x, ?!*Yn).
7579 2017-05-18  Paolo Carlini  <paolo.carlini@oracle.com>
7581         * dumpfile.h (enum dump_kind): Remove stray comma.
7583 2017-05-18  Jan Hubicka  <hubicka@ucw.cz>
7585         * Makefile.in: Add ipa-predicate.o and ipa-predicate.h
7586         * ipa-inline-analysis.c (NUM_CONDITIONS): turn into
7587         predicate::num_conditions
7588         (IS_NOT_CONSTANT): turn into predicate::is_not_constant.
7589         (CHANGED): turn into predicate::changed.
7590         (agg_position_info): Move to ipa-predicate.h
7591         (add_condition, predicate::add_clause, predicate::operator &=,
7592         predicate::or_with, predicate::evaluate, predicate::probability,
7593         dump_condition, dump_clause, predicate::dump,
7594         predicate::remap_after_duplication, predicate::remap_after_inlining,
7595         predicate::stream_in, predicate::stream_out): Move to ipa-predicate.c
7596         (evaluate_conditions_for_known_args): Update.
7597         (set_cond_stmt_execution_predicate): Update.
7598         * ipa-inline.h: Include ipa-predicate.h
7599         (condition, inline_param_summary, conditions, agg_position_info,
7600         predicate): Move to ipa-predicate.h
7601         * ipa-predicate.c: New file.
7602         * ipa-predicate.h: New file.
7604 2017-05-18  Wilco Dijkstra  <wdijkstr@arm.com>
7606         * final.c (leaf_function_p): Check we are not in a sequence.
7608 2017-05-18  Martin Liska  <mliska@suse.cz>
7610         * cfgrtl.c (rtl_verify_edges): Remove usage of TDF_RTL.
7611         * dumpfile.c (dump_register): Use new enum dump_kind.
7612         (get_dump_file_name): Likewise.
7613         (dump_enable_all): Likewise.
7614         (dump_switch_p_1): Likewise.
7615         (enable_rtl_dump_file): Remove usage of TDF_RTL.
7616         * dumpfile.h (enum dump_kind): New enum type.
7617         (struct dump_file_info): Create constructor and
7618         format fields and comments.
7619         * passes.c (pass_manager::register_one_dump_file):
7620         Use num dump_kind.
7621         * statistics.c (statistics_early_init): Likewise.
7622         * tree-ssa-loop-prefetch.c (dump_mem_details): Replace
7623         TDF_TREE with TDF_SLIM.
7624         (gather_memory_references_ref): Likewise.
7626 2017-05-18  Martin Liska  <mliska@suse.cz>
7628         * vec.h (struct vnull): Use it.
7630 2017-05-18  Jan Hubicka  <hubicka@ucw.cz>
7632         * ipa-inline-analysis.c (predicate_conditions): Move to ipa-inline.h
7633         (true_predicate, false_predicate, true_predicate_p,
7634         false_predicate_p): Remove.
7635         (single_cond_predicate, not_inlined_predicate): Turn to member function
7636         in ipa-inline.h
7637         (add_condition): Update.
7638         (add_clause): Turn to...
7639         (predicate::add_clause): ... this one; update; allow passing NULL
7640         as parameter.
7641         (and_predicates): Turn to ...
7642         (predicate::operator &=): ... this one.
7643         (predicates_equal_p): Move to predicate::operator == in ipa-inline.h
7644         (or_predicates): Turn to ...
7645         (predicate::or_with): ... this one.
7646         (evaluate_predicate): Turn to ...
7647         (predicate::evaluate): ... this one.
7648         (predicate_probability): Turn to ...
7649         (predicate::probability): ... this one.
7650         (dump_condition): Update.
7651         (dump_predicate): Turn to ...
7652         (predicate::dump): ... this one.
7653         (account_size_time): Update.
7654         (edge_set_predicate): Update.
7655         (set_hint_predicate): UPdate.
7656         (evaluate_conditions_for_known_args): Update.
7657         (evaluate_properties_for_edge): Update.
7658         (remap_predicate_after_duplication): Turn to...
7659         (predicate::remap_after_duplication): ... this one.
7660         (remap_hint_predicate_after_duplication): Update.
7661         (inline_summary_t::duplicate): UPdate.
7662         (dump_inline_edge_summary): Update.
7663         (dump_inline_summary): Update.
7664         (set_cond_stmt_execution_predicate): Update.
7665         (set_switch_stmt_execution_predicate): Update.
7666         (compute_bb_predicates): Update.
7667         (will_be_nonconstant_expr_predicate): Update.
7668         (will_be_nonconstant_predicate): Update.
7669         (phi_result_unknown_predicate): Update.
7670         (predicate_for_phi_result): Update.
7671         (array_index_predicate): Update.
7672         (estimate_function_body_sizes): Update.
7673         (estimate_node_size_and_time): Update.
7674         (estimate_ipcp_clone_size_and_time): Update.
7675         (remap_predicate): Rename to ...
7676         (predicate::remap_after_inlining): ... this one.
7677         (remap_hint_predicate): Update.
7678         (inline_merge_summary): Update.
7679         (inline_update_overall_summary): Update.
7680         (estimate_size_after_inlining): Update.
7681         (read_predicate): Rename to ...
7682         (predicate::stream_in): ... this one.
7683         (read_inline_edge_summary): Update.
7684         (write_predicate): Rename to ...
7685         (predicate::stream_out): ... this one.
7686         (write_inline_edge_summary): Update.
7687         * ipa-inline.h (MAX_CLAUSES): Turn to predicate::max_clauses.
7688         (clause_t): Turn to uint32_t
7689         (predicate): Turn to class; implement constructor and operators
7690         ==, !=, &
7691         (size_time_entry): Update.
7692         (inline_summary): Update.
7693         (inline_edge_summary): Update.
7695 2017-05-18  Marc Glisse  <marc.glisse@inria.fr>
7697         * fold-const.c (fold_binary_loc): Move transformation...
7698         * match.pd (C - X CMP X): ... here.
7700 2017-05-18  Sheldon Lobo  <sheldon.lobo@oracle.com>
7702         * config/sparc/sparc.c (sparc_option_override): Set function
7703         alignment for -mcpu=niagara7 to 64 to match the I$ line.
7704         * config/sparc/sparc.h (BRANCH_COST): Set the SPARC M7 branch
7705         latency to 1.
7706         * config/sparc/sparc.h (BRANCH_COST): Set the SPARC T4 branch
7707         latency to 2.
7708         * config/sparc/sol2.h: Fix a ASM_CPU32_DEFAULT_SPEC typo.
7710 2017-05-18  Marek Polacek  <polacek@redhat.com>
7712         PR sanitizer/80797
7713         * ubsan.c (instrument_null): Unwrap ADDR_EXPRs.
7714         (pass_ubsan::execute): Call gimple_assign_single_p instead of
7715         gimple_assign_load_p.
7717 2017-05-17  Segher Boessenkool  <segher@kernel.crashing.org>
7719         PR middle-end/80692
7720         * real.c (do_compare): Give decimal_do_compare preference over
7721         comparing just the signs.
7723 2017-05-17  Uros Bizjak  <ubizjak@gmail.com>
7725         * doc/md.texi (Canonicalization of Instructions): Describe the
7726         canonical form of instructions that inherently set a condition
7727         code register.
7729 2017-05-17  Peter Bergner  <bergner@vnet.ibm.com>
7731         PR middle-end/80775
7732         * tree-cfg.c: Move deletion of unreachable case statements to after
7733         the merging of consecutive case labels.
7735 2017-05-17  Thomas Preud'homme  <thomas.preudhomme@arm.com>
7737         * config/arm/arm.c (cmse_nonsecure_call_clear_caller_saved): Refer
7738         readers to __gnu_cmse_nonsecure_call libcall for saving, clearing and
7739         restoring of callee-saved registers.
7741 2017-05-17  Eric Botcazou  <ebotcazou@adacore.com>
7743         * compare-elim.c (equivalent_reg_at_start): Adjust outdated comment.
7744         * config/visium/visium.c (single_set_and_flags): Likewise.
7745         * config/visium/visium.md (Substitutions): Likewise.
7747 2017-05-17  Martin Liska  <mliska@suse.cz>
7749         * cfg.c: Introduce dump_flags_t type and
7750         use it instead of int type.
7751         * cfg.h: Likewise.
7752         * cfghooks.c: Likewise.
7753         * cfghooks.h (struct cfg_hooks): Likewise.
7754         * cfgrtl.c: Likewise.
7755         * cfgrtl.h: Likewise.
7756         * cgraph.c (cgraph_node::get_body): Likewise.
7757         * coretypes.h: Likewise.
7758         * domwalk.c: Likewise.
7759         * domwalk.h: Likewise.
7760         * dumpfile.c (struct dump_option_value_info): Likewise.
7761         (dump_enable_all): Likewise.
7762         (dump_switch_p_1): Likewise.
7763         (opt_info_switch_p): Likewise.
7764         * dumpfile.h (enum tree_dump_index): Likewise.
7765         (struct dump_file_info): Likewise.
7766         * genemit.c: Likewise.
7767         * generic-match-head.c: Likewise.
7768         * gengtype.c (open_base_files): Likewise.
7769         * gimple-pretty-print.c: Likewise.
7770         * gimple-pretty-print.h: Likewise.
7771         * graph.c (print_graph_cfg): Likewise.
7772         * graphite-scop-detection.c (dot_all_sese): Likewise.
7773         * ipa-devirt.c (build_type_inheritance_graph): Likewise.
7774         * loop-unroll.c (report_unroll): Likewise.
7775         * passes.c (pass_manager::register_one_dump_file): Likewise.
7776         * print-tree.c: Likewise.
7777         * statistics.c: Likewise.
7778         * tree-cfg.c: Likewise.
7779         * tree-cfg.h: Likewise.
7780         * tree-dfa.c: Likewise.
7781         * tree-dfa.h: Likewise.
7782         * tree-dump.c (dump_function): Likewise.
7783         * tree-dump.h (struct dump_info): Likewise.
7784         * tree-pretty-print.c: Likewise.
7785         * tree-pretty-print.h: Likewise.
7786         * tree-ssa-live.c: Likewise.
7787         * tree-ssa-live.h: Likewise.
7788         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Likewise.
7789         * tree-vect-loop.c: Likewise.
7790         * tree-vect-slp.c: Likewise.
7792 2017-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
7793             Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
7795         PR tree-optimization/80457
7796         * tree-vect-stmts.c (vect_model_simple_cost): Model the cost
7797         of all arguments to a statement as scalar_to_vec operations.
7798         (vectorizable_call): Adjust call to vect_model_simple_cost for
7799         new parameter.
7800         (vectorizable_conversion): Likewise.
7801         (vectorizable_assignment): Likewise.
7802         (vectorizable_shift): Likewise.
7803         (vectorizable_operation): Likewise.
7804         (vectorizable_comparison): Likewise.
7805         (vect_is_simple_cond): Record the def types for operands.
7806         (vectorizable_condition): Likewise, call vect_model_simple_cost.
7807         * tree-vectorizer.h (vect_model_simple_cost): Add new parameter
7808         for statement argument count.
7810 2017-05-16  Carl Love  <cel@us.ibm.com>
7812         * config/rs6000/rs6000-c: Add support for built-in functions
7813         vector unsigned long long vec_bperm (vector unsigned long long,
7814                                              vector unsigned char)
7815         vector signed long long vec_mule (vector signed int,
7816                                           vector signed int)
7817         vector unsigned long long vec_mule (vector unsigned int,
7818                                             vector unsigned int)
7819         vector signed long long vec_mulo (vector signed int,
7820                                           vector signed int)
7821         vector unsigned long long vec_mulo (vector unsigned int,
7822                                             vector unsigned int)
7823         vector signed char vec_sldw (vector signed char,
7824                                      vector signed char,
7825                                      const int)
7826         vector unsigned char vec_sldw (vector unsigned char,
7827                                        vector unsigned char,
7828                                        const int)
7829         vector signed short vec_sldw (vector signed short,
7830                                       vector signed short,
7831                                       const int)
7832         vector unsigned short vec_sldw (vector unsigned short,
7833                                         vector unsigned short,
7834                                         const int)
7835         vector signed int vec_sldw (vector signed int,
7836                                     vector signed int,
7837                                     const int)
7838         vector unsigned int vec_sldw (vector unsigned int,
7839                                       vector unsigned int,
7840                                       const int)
7841         vector signed long long vec_sldw (vector signed long long,
7842                                           vector signed long long,
7843                                           const int)
7844         vector unsigned long long vec_sldw (vector unsigned long long,
7845                                             vector unsigned long long,
7846                                             const int)
7847         * config/rs6000/rs6000-c: Add support for built-in functions
7848         * config/rs6000/rs6000-builtin.def: Add definition for SLDW.
7849         * config/rs6000/altivec.h: Add defintion for vec_sldw.
7850         * doc/extend.texi: Update the built-in documentation for the
7851         new built-in functions.
7853 2017-05-16  Marek Polacek  <polacek@redhat.com>
7855         PR sanitizer/80536
7856         PR sanitizer/80386
7857         * tree.c (save_expr): Don't fold the expression.
7859 2017-05-16  Uros Bizjak  <ubizjak@gmail.com>
7861         * config/i386/i386.md (*movsi_internal): Split (?rm,*y) alternative
7862         to (?r,*Yn) and (?m,*y) alternatives, and (?*y,rm) to (?*Ym,r)
7863         and (?*y,m).  Update insn attributes.
7865 2017-05-16  Martin Liska  <mliska@suse.cz>
7867         * cgraph.c (cgraph_edge::resolve_speculation): Add default value for
7868         flags argument of print_gimple_stmt, print_gimple_expr,
7869         print_generic_stmt and print_generic_expr.
7870         * cgraphclones.c (symbol_table::materialize_all_clones): Likewise.
7871         * coretypes.h: Likewise.
7872         * except.c (dump_eh_tree): Likewise.
7873         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Likewise.
7874         * gimple-pretty-print.h: Likewise.
7875         * gimple-ssa-backprop.c (dump_usage_prefix): Likewise.
7876         (backprop::push_to_worklist): Likewise.
7877         (backprop::pop_from_worklist): Likewise.
7878         (backprop::process_use): Likewise.
7879         (backprop::intersect_uses): Likewise.
7880         (note_replacement): Likewise.
7881         * gimple-ssa-store-merging.c
7882         (pass_store_merging::terminate_all_aliasing_chains): Likewise.
7883         (imm_store_chain_info::coalesce_immediate_stores): Likewise.
7884         (pass_store_merging::execute): Likewise.
7885         * gimple-ssa-strength-reduction.c (dump_candidate): Likewise.
7886         (ssa_base_cand_dump_callback): Likewise.
7887         (dump_incr_vec): Likewise.
7888         (replace_refs): Likewise.
7889         (replace_mult_candidate): Likewise.
7890         (create_add_on_incoming_edge): Likewise.
7891         (create_phi_basis): Likewise.
7892         (insert_initializers): Likewise.
7893         (all_phi_incrs_profitable): Likewise.
7894         (introduce_cast_before_cand): Likewise.
7895         (replace_one_candidate): Likewise.
7896         * gimplify.c (gimplify_expr): Likewise.
7897         * graphite-isl-ast-to-gimple.c (is_valid_rename): Likewise.
7898         (set_rename): Likewise.
7899         (rename_uses): Likewise.
7900         (copy_loop_phi_nodes): Likewise.
7901         (add_close_phis_to_merge_points): Likewise.
7902         (copy_loop_close_phi_args): Likewise.
7903         (copy_cond_phi_args): Likewise.
7904         (graphite_copy_stmts_from_block): Likewise.
7905         (translate_pending_phi_nodes): Likewise.
7906         * graphite-poly.c (print_pdr): Likewise.
7907         (dump_gbb_cases): Likewise.
7908         (dump_gbb_conditions): Likewise.
7909         (print_scop_params): Likewise.
7910         * graphite-scop-detection.c (build_cross_bb_scalars_def): Likewise.
7911         (build_cross_bb_scalars_use): Likewise.
7912         (gather_bbs::before_dom_children): Likewise.
7913         * hsa-dump.c (dump_hsa_immed): Likewise.
7914         * ipa-cp.c (print_ipcp_constant_value): Likewise.
7915         (get_replacement_map): Likewise.
7916         * ipa-inline-analysis.c (dump_condition): Likewise.
7917         (estimate_function_body_sizes): Likewise.
7918         * ipa-polymorphic-call.c (check_stmt_for_type_change): Likewise.
7919         (ipa_polymorphic_call_context::get_dynamic_type): Likewise.
7920         * ipa-prop.c (ipa_dump_param): Likewise.
7921         (ipa_print_node_jump_functions_for_edge): Likewise.
7922         (ipa_modify_call_arguments): Likewise.
7923         (ipa_modify_expr): Likewise.
7924         (ipa_dump_param_adjustments): Likewise.
7925         (ipa_dump_agg_replacement_values): Likewise.
7926         (ipcp_modif_dom_walker::before_dom_children): Likewise.
7927         * ipa-pure-const.c (check_stmt): Likewise.
7928         (pass_nothrow::execute): Likewise.
7929         * ipa-split.c (execute_split_functions): Likewise.
7930         * omp-offload.c (dump_oacc_loop_part): Likewise.
7931         (dump_oacc_loop): Likewise.
7932         * trans-mem.c (tm_log_emit): Likewise.
7933         (tm_memopt_accumulate_memops): Likewise.
7934         (dump_tm_memopt_set): Likewise.
7935         (dump_tm_memopt_transform): Likewise.
7936         * tree-cfg.c (gimple_verify_flow_info): Likewise.
7937         (print_loop): Likewise.
7938         * tree-chkp-opt.c (chkp_print_addr): Likewise.
7939         (chkp_gather_checks_info): Likewise.
7940         (chkp_get_check_result): Likewise.
7941         (chkp_remove_check_if_pass): Likewise.
7942         (chkp_use_outer_bounds_if_possible): Likewise.
7943         (chkp_reduce_bounds_lifetime): Likewise.
7944         * tree-chkp.c (chkp_register_addr_bounds): Likewise.
7945         (chkp_mark_completed_bounds): Likewise.
7946         (chkp_register_incomplete_bounds): Likewise.
7947         (chkp_mark_invalid_bounds): Likewise.
7948         (chkp_maybe_copy_and_register_bounds): Likewise.
7949         (chkp_build_returned_bound): Likewise.
7950         (chkp_get_bound_for_parm): Likewise.
7951         (chkp_build_bndldx): Likewise.
7952         (chkp_get_bounds_by_definition): Likewise.
7953         (chkp_generate_extern_var_bounds): Likewise.
7954         (chkp_get_bounds_for_decl_addr): Likewise.
7955         * tree-chrec.c (chrec_apply): Likewise.
7956         * tree-data-ref.c (dump_data_reference): Likewise.
7957         (dump_subscript): Likewise.
7958         (dump_data_dependence_relation): Likewise.
7959         (analyze_overlapping_iterations): Likewise.
7960         * tree-inline.c (expand_call_inline): Likewise.
7961         (tree_function_versioning): Likewise.
7962         * tree-into-ssa.c (dump_defs_stack): Likewise.
7963         (dump_currdefs): Likewise.
7964         (dump_names_replaced_by): Likewise.
7965         (dump_update_ssa): Likewise.
7966         (update_ssa): Likewise.
7967         * tree-object-size.c (pass_object_sizes::execute): Likewise.
7968         * tree-parloops.c (build_new_reduction): Likewise.
7969         (try_create_reduction_list): Likewise.
7970         (ref_conflicts_with_region): Likewise.
7971         (oacc_entry_exit_ok_1): Likewise.
7972         (oacc_entry_exit_single_gang): Likewise.
7973         * tree-pretty-print.h: Likewise.
7974         * tree-scalar-evolution.c (set_scalar_evolution): Likewise.
7975         (get_scalar_evolution): Likewise.
7976         (add_to_evolution): Likewise.
7977         (get_loop_exit_condition): Likewise.
7978         (analyze_evolution_in_loop): Likewise.
7979         (analyze_initial_condition): Likewise.
7980         (analyze_scalar_evolution): Likewise.
7981         (instantiate_scev): Likewise.
7982         (number_of_latch_executions): Likewise.
7983         (gather_chrec_stats): Likewise.
7984         (final_value_replacement_loop): Likewise.
7985         (scev_const_prop): Likewise.
7986         * tree-sra.c (dump_access): Likewise.
7987         (disqualify_candidate): Likewise.
7988         (create_access): Likewise.
7989         (reject): Likewise.
7990         (maybe_add_sra_candidate): Likewise.
7991         (create_access_replacement): Likewise.
7992         (analyze_access_subtree): Likewise.
7993         (analyze_all_variable_accesses): Likewise.
7994         (sra_modify_assign): Likewise.
7995         (initialize_constant_pool_replacements): Likewise.
7996         (find_param_candidates): Likewise.
7997         (decide_one_param_reduction): Likewise.
7998         (replace_removed_params_ssa_names): Likewise.
7999         * tree-ssa-ccp.c (ccp_fold_stmt): Likewise.
8000         * tree-ssa-copy.c (dump_copy_of): Likewise.
8001         (copy_prop_visit_cond_stmt): Likewise.
8002         * tree-ssa-dce.c (mark_operand_necessary): Likewise.
8003         * tree-ssa-dom.c (pass_dominator::execute): Likewise.
8004         (record_equivalences_from_stmt): Likewise.
8005         * tree-ssa-dse.c (compute_trims): Likewise.
8006         (delete_dead_call): Likewise.
8007         (delete_dead_assignment): Likewise.
8008         * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond): Likewise.
8009         (forward_propagate_into_cond): Likewise.
8010         (pass_forwprop::execute): Likewise.
8011         * tree-ssa-ifcombine.c (ifcombine_ifandif): Likewise.
8012         * tree-ssa-loop-im.c (invariantness_dom_walker::before_dom_children):
8013         Likewise.
8014         (move_computations_worker): Likewise.
8015         (execute_sm): Likewise.
8016         * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Likewise.
8017         (remove_exits_and_undefined_stmts): Likewise.
8018         (remove_redundant_iv_tests): Likewise.
8019         * tree-ssa-loop-ivopts.c (dump_use): Likewise.
8020         (adjust_iv_update_pos): Likewise.
8021         * tree-ssa-math-opts.c (bswap_replace): Likewise.
8022         * tree-ssa-phiopt.c (factor_out_conditional_conversion): Likewise.
8023         (value_replacement): Likewise.
8024         * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
8025         * tree-ssa-pre.c (print_pre_expr): Likewise.
8026         (get_representative_for): Likewise.
8027         (create_expression_by_pieces): Likewise.
8028         (insert_into_preds_of_block): Likewise.
8029         (eliminate_insert): Likewise.
8030         (eliminate_dom_walker::before_dom_children): Likewise.
8031         (eliminate): Likewise.
8032         (remove_dead_inserted_code): Likewise.
8033         * tree-ssa-propagate.c (substitute_and_fold): Likewise.
8034         * tree-ssa-reassoc.c (get_rank): Likewise.
8035         (eliminate_duplicate_pair): Likewise.
8036         (eliminate_plus_minus_pair): Likewise.
8037         (eliminate_not_pairs): Likewise.
8038         (undistribute_ops_list): Likewise.
8039         (eliminate_redundant_comparison): Likewise.
8040         (update_range_test): Likewise.
8041         (optimize_range_tests_var_bound): Likewise.
8042         (optimize_vec_cond_expr): Likewise.
8043         (rewrite_expr_tree): Likewise.
8044         (rewrite_expr_tree_parallel): Likewise.
8045         (linearize_expr): Likewise.
8046         (break_up_subtract): Likewise.
8047         (linearize_expr_tree): Likewise.
8048         (attempt_builtin_powi): Likewise.
8049         (attempt_builtin_copysign): Likewise.
8050         (transform_stmt_to_copy): Likewise.
8051         (transform_stmt_to_multiply): Likewise.
8052         (dump_ops_vector): Likewise.
8053         * tree-ssa-sccvn.c (vn_nary_build_or_lookup_1): Likewise.
8054         (print_scc): Likewise.
8055         (set_ssa_val_to): Likewise.
8056         (visit_reference_op_store): Likewise.
8057         (visit_use): Likewise.
8058         (sccvn_dom_walker::before_dom_children): Likewise.
8059         (run_scc_vn): Likewise.
8060         * tree-ssa-scopedtables.c (avail_exprs_stack::lookup_avail_expr):
8061         Likewise.
8062         (expr_hash_elt::print): Likewise.
8063         (const_and_copies::pop_to_marker): Likewise.
8064         (const_and_copies::record_const_or_copy_raw): Likewise.
8065         * tree-ssa-structalias.c (compute_dependence_clique): Likewise.
8066         * tree-ssa-uninit.c (collect_phi_def_edges): Likewise.
8067         (dump_predicates): Likewise.
8068         (find_uninit_use): Likewise.
8069         (warn_uninitialized_phi): Likewise.
8070         (pass_late_warn_uninitialized::execute): Likewise.
8071         * tree-ssa.c (verify_vssa): Likewise.
8072         (verify_ssa): Likewise.
8073         (maybe_optimize_var): Likewise.
8074         * tree-vrp.c (dump_value_range): Likewise.
8075         (dump_all_value_ranges): Likewise.
8076         (dump_asserts_for): Likewise.
8077         (register_edge_assert_for_2): Likewise.
8078         (vrp_visit_cond_stmt): Likewise.
8079         (vrp_visit_switch_stmt): Likewise.
8080         (vrp_visit_stmt): Likewise.
8081         (vrp_visit_phi_node): Likewise.
8082         (simplify_cond_using_ranges_1): Likewise.
8083         (fold_predicate_in): Likewise.
8084         (evrp_dom_walker::before_dom_children): Likewise.
8085         (evrp_dom_walker::push_value_range): Likewise.
8086         (evrp_dom_walker::pop_value_range): Likewise.
8087         (execute_early_vrp): Likewise.
8089 2017-05-16  Richard Biener  <rguenther@suse.de>
8091         * dwarf2out.c (loc_list_from_tree_1): Do not create
8092         DW_OP_GNU_variable_value for DECL_IGNORED_P decls.
8094 2017-05-16  Richard Biener  <rguenther@suse.de>
8096         * dwarf2out.c (resolve_variable_value_in_expr): Lookup DIE
8097         just generated.
8098         (note_variable_value_in_expr): If we resolved the decl ref
8099         do not push to the stack.
8101 2017-05-16  Matthew Wahab  <matthew.wahab@arm.com>
8103         * config/arm/arm_neon.h (vadd_f16): Use standard arithmetic
8104         operations in fast-math mode.
8105         (vaddq_f16): Likewise.
8106         (vmul_f16): Likewise.
8107         (vmulq_f16): Likewise.
8108         (vsub_f16): Likewise.
8109         (vsubq_f16): Likewise.
8110         * config/arm/neon.md (add<mode>3): New.
8111         (sub<mode>3): New.
8112         (fma:<VH:mode>3): New.  Also remove outdated comment.
8113         (mul<mode>3): New.
8115 2017-05-16  Martin Liska  <mliska@suse.cz>
8117         PR ipa/79849.
8118         PR ipa/79850.
8119         * ipa-devirt.c (warn_types_mismatch): Fix typo.
8120         (odr_types_equivalent_p): Likewise.
8122 2017-05-15  Sylvestre Ledru  <sylvestre@debian.org>
8124         * plugin.c (try_init_one_plugin): Fix ressource leaks (CID 726637).
8126 2017-05-15  Uros Bizjak  <ubizjak@gmail.com>
8128         PR target/80425
8129         * config/i386.i386.md (*zero_extendsidi2): Do not penalize
8130         non-interunit SSE move alternatives with '?'.
8131         (zero-extendsidi peephole2): New peephole to skip intermediate
8132         general register in SSE zero-extend sequence.
8134 2017-05-15  Jeff Law  <law@redhat.com>
8136         * reorg.c (relax_delay_slots): Create a new variable to hold
8137         the temporary target rather than clobbering TARGET_LABEL.
8139         * config/tilegx/tilegx.c (tilegx_expand_unaligned_load): Add
8140         missing argument to extract_bit_field call.
8141         * config/tilepro/tilepro.c (tilepro_expand_unaligned_load): Likewise.
8143 2017-05-15  Martin Liska  <mliska@suse.cz>
8145         PR driver/31468
8146         * gcc.c (process_command): Do not allow empty argument of -o option.
8148 2017-05-15  Renlin Li  <renlin.li@arm.com>
8150         * config/aarch64/aarch64-protos.h (aarch64_expand_call): Declare.
8151         * config/aarch64/aarch64.c (aarch64_expand_call): Define.
8152         * config/aarch64/constraints.md (Usf): Add long call check.
8153         * config/aarch64/aarch64.md (call): Use aarch64_expand_call.
8154         (call_value): Likewise.
8155         (sibcall): Likewise.
8156         (sibcall_value): Likewise.
8157         (call_insn): New.
8158         (call_value_insn): New.
8159         (sibcall_insn): Update rtx pattern.
8160         (sibcall_value_insn): Likewise.
8161         (call_internal): Remove.
8162         (call_value_internal): Likewise.
8163         (sibcall_internal): Likewise.
8164         (sibcall_value_internal): Likewise.
8165         (call_reg): Likewise.
8166         (call_symbol): Likewise.
8167         (call_value_reg): Likewise.
8168         (call_value_symbol): Likewise.
8170 2017-05-14  Krister Walfridsson  <krister.walfridsson@gmail.com>
8172         PR target/80600
8173         * config/netbsd.h (NETBSD_LIBGCC_SPEC): Always add -lgcc.
8175 2017-05-14  Uros Bizjak  <ubizjak@gmail.com>
8177         * config/i386.i386.c (ix86_cc_modes_compatible): CCNOmode is
8178         compatible with CCGOCmode and with CCZmode.
8180 2017-05-14  Martin Sebor  <msebor@redhat.com>
8182         PR middle-end/77671
8183         * gimple-fold.c (gimple_fold_builtin_sprintf): Make extern.
8184         (gimple_fold_builtin_snprintf): Same.
8185         * gimple-fold.h (gimple_fold_builtin_sprintf): Declare.
8186         (gimple_fold_builtin_snprintf): Same.
8187         * gimple-ssa-sprintf.c (get_format_string): Correct the detection
8188         of character types.
8189         (is_call_safe): New function.
8190         (try_substitute_return_value): Call it.
8191         (try_simplify_call): New function.
8192         (pass_sprintf_length::handle_gimple_call): Call it.
8194 2017-05-14  Martin Sebor  <msebor@redhat.com>
8196         PR middle-end/80669
8197         * builtins.c (expand_builtin_stpncpy): Simplify.
8199 2017-05-14  Daniel Santos  <daniel.santos@pobox.com>
8201         * config/i386/i386.opt: Add option -mcall-ms2sysv-xlogues.
8202         * config/i386/i386.h
8203         (x86_64_ms_sysv_extra_clobbered_registers): Change type to unsigned.
8204         (NUM_X86_64_MS_CLOBBERED_REGS): New macro.
8205         (struct machine_function): Add new members call_ms2sysv,
8206         call_ms2sysv_pad_in, call_ms2sysv_pad_out and call_ms2sysv_extra_regs.
8207         (struct machine_frame_state): New fields sp_realigned and
8208         sp_realigned_offset.
8209         * config/i386/i386.c
8210         (enum xlogue_stub): New enum.
8211         (enum xlogue_stub_sets): New enum.
8212         (class xlogue_layout): New class.
8213         (struct ix86_frame): New fields stack_realign_allocate_offset,
8214         stack_realign_offset and outlined_save_offset.  Modify comments to
8215         detail stack layout when using out-of-line stubs.
8216         (ix86_target_string): Add -mcall-ms2sysv-xlogues option.
8217         (ix86_option_override_internal): Add sorry() for TARGET_SEH and
8218         -mcall-ms2sysv-xlogues.
8219         (stub_managed_regs): New static variable.
8220         (ix86_save_reg): Add new parameter ignore_outlined to optionally omit
8221         registers managed by out-of-line stub.
8222         (disable_call_ms2sysv_xlogues): New function.
8223         (ix86_compute_frame_layout): Modify re-alignment calculations, disable
8224         m->call_ms2sysv when appropriate and compute frame layout for
8225         out-of-line stubs.
8226         (sp_valid_at, fp_valid_at): New inline functions.
8227         (choose_basereg): New function.
8228         (choose_baseaddr): Add align parameter, use choose_basereg and modify
8229         all callers.
8230         (ix86_emit_save_reg_using_mov, ix86_emit_restore_sse_regs_using_mov):
8231         Use align parameter of choose_baseaddr to generated aligned SSE movs
8232         when possible.
8233         (pro_epilogue_adjust_stack): Modify to track
8234         machine_frame_state::sp_realigned.
8235         (ix86_nsaved_regs): Modify to accommodate changes to ix86_save_reg.
8236         (ix86_nsaved_sseregs): Likewise.
8237         (ix86_emit_save_regs): Likewise.
8238         (ix86_emit_save_regs_using_mov): Likewise.
8239         (ix86_emit_save_sse_regs_using_mov): Likewise.
8240         (get_scratch_register_on_entry): Likewise.
8241         (gen_frame_set): New function.
8242         (gen_frame_load): Likewise.
8243         (gen_frame_store): Likewise.
8244         (emit_outlined_ms2sysv_save): Likewise.
8245         (emit_outlined_ms2sysv_restore): Likewise.
8246         (ix86_expand_prologue): Modify stack re-alignment code and call
8247         emit_outlined_ms2sysv_save when appropriate.
8248         (ix86_emit_leave): Clear machine_frame_state::sp_realigned.  Add
8249         parameter rtx_insn *insn, which allows the function to be used to only
8250         generate the notes.
8251         (ix86_expand_epilogue): Modify validity checks of frame and stack
8252         pointers, and call emit_outlined_ms2sysv_restore when appropriate.
8253         (ix86_expand_call): Modify to enable m->call_ms2sysv when appropriate.
8254         * config/i386/predicates.md
8255         (save_multiple): New predicate.
8256         (restore_multiple): Likewise.
8257         * config/i386/sse.md
8258         (save_multiple<mode>): New pattern.
8259         (save_multiple_realign<mode>): Likewise.
8260         (restore_multiple<mode>): Likewise.
8261         (restore_multiple_and_return<mode>): Likewise.
8262         (restore_multiple_leave_return<mode>): Likewise.
8263         * Makefile.in: Export HOSTCXX and HOSTCXXFLAGS to site.exp
8265 2017-05-14  Julia Koval  <julia.koval@intel.com>
8267         * config/i386/i386-builtin-types.def (VOID_FTYPE_INT_INT64): New type.
8268         * config/i386/i386-builtin.def (__builtin_ia32_xgetbv)
8269         (__builtin_ia32_xsetbv): New builtins.
8270         * config/i386/i386.c (ix86_expand_special_args_builtin):
8271         Process new types.
8272         (ix86_expand_builtin): Special expand for new intrinsics.
8273         * config/i386/i386.md (UNSPECV_XGETBV, UNSPECV_XSETBV): New.
8274         (xsetbv, xsetbv_rex64, xgetbv, xgetbv_rex64): New insn patterns.
8275         * config/i386/xsaveintrin.h (_xsetbv, _getbv): New intrinsics.
8277 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
8279         * cfganal.c (inverted_post_order_compute): Change argument type
8280         to vec *.
8281         * cfganal.h (inverted_post_order_compute): Adjust prototype.
8282         * df-core.c (rest_of_handle_df_initialize): Adjust.
8283         (rest_of_handle_df_finish): Likewise.
8284         (df_analyze_1): Likewise.
8285         (df_analyze): Likewise.
8286         (loop_inverted_post_order_compute): Change argument to be a vec *.
8287         (df_analyze_loop): Adjust.
8288         (df_get_n_blocks): Likewise.
8289         (df_get_postorder): Likewise.
8290         * df.h (struct df_d): Change field to be a vec.
8291         * lcm.c (compute_laterin): Adjust.
8292         (compute_available): Likewise.
8293         * lra-lives.c (lra_create_live_ranges_1): Likewise.
8294         * tree-ssa-dce.c (remove_dead_stmt): Likewise.
8295         * tree-ssa-pre.c (compute_antic): Likewise.
8297 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
8299         * cfganal.c (connect_infinite_loops_to_exit): Adjust.
8300         (depth_first_search::depth_first_search): Change structure init
8301         function to this constructor.
8302         (depth_first_search::add_bb): Rename function to this member.
8303         (depth_first_search::execute): Likewise.
8304         (flow_dfs_compute_reverse_finish): Adjust.
8306 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
8308         * ddg.c (find_nodes_on_paths): Use auto_sbitmap.
8309         (longest_simple_path): Likewise.
8310         * shrink-wrap.c (spread_components): Likewise.
8311         (disqualify_problematic_components): Likewise.
8312         (emit_common_heads_for_components): Likewise.
8313         (emit_common_tails_for_components): Likewise.
8314         (insert_prologue_epilogue_for_components): Likewise.
8316 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
8318         * tree-ssa-dse.c (dse_dom_walker): Make m_live_byes a
8319         auto_sbitmap.
8321 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
8323         * df-core.c (df_set_blocks): Start using auto_bitmap.
8324         (df_compact_blocks): Likewise.
8325         * df-problems.c (df_rd_confluence_n): Likewise.
8326         * df-scan.c (df_insn_rescan_all): Likewise.
8327         (df_process_deferred_rescans): Likewise.
8328         (df_update_entry_block_defs): Likewise.
8329         (df_update_exit_block_uses): Likewise.
8330         (df_entry_block_bitmap_verify): Likewise.
8331         (df_exit_block_bitmap_verify): Likewise.
8332         (df_scan_verify): Likewise.
8333         * lra-constraints.c (lra_constraints): Likewise.
8334         (undo_optional_reloads): Likewise.
8335         (lra_undo_inheritance): Likewise.
8336         * lra-remat.c (calculate_gen_cands): Likewise.
8337         (do_remat): Likewise.
8338         * lra-spills.c (assign_spill_hard_regs): Likewise.
8339         (spill_pseudos): Likewise.
8340         * tree-ssa-pre.c (bitmap_set_and): Likewise.
8341         (bitmap_set_subtract_values): Likewise.
8343 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
8345         * haifa-sched.c (estimate_shadow_tick): Replace manual bitmap
8346         management with auto_bitmap.
8347         (fix_inter_tick): Likewise.
8348         (fix_recovery_deps): Likewise.
8349         * ira.c (add_store_equivs): Likewise.
8350         (find_moveable_pseudos): Likewise.
8351         (split_live_ranges_for_shrink_wrap): Likewise.
8352         * print-rtl.c (rtx_reuse_manager::rtx_reuse_manager): Likewise.
8353         (rtx_reuse_manager::seen_def_p): Likewise.
8354         (rtx_reuse_manager::set_seen_def): Likewise.
8355         * print-rtl.h (class rtx_reuse_manager): Likewise.
8357 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
8359         * bt-load.c (combine_btr_defs): Use auto_bitmap to manage bitmap
8360         lifetime.
8361         (migrate_btr_def): Likewise.
8362         * cfgloop.c (get_loop_body_in_bfs_order): Likewise.
8363         * df-core.c (loop_post_order_compute): Likewise.
8364         (loop_inverted_post_order_compute): Likewise.
8365         * hsa-common.h: Likewise.
8366         * hsa-gen.c (hsa_bb::~hsa_bb): Likewise.
8367         * init-regs.c (initialize_uninitialized_regs): Likewise.
8368         * ipa-inline.c (resolve_noninline_speculation): Likewise.
8369         (inline_small_functions): Likewise.
8370         * ipa-reference.c (ipa_reference_write_optimization_summary): Likewise.
8371         * ira.c (combine_and_move_insns): Likewise.
8372         (build_insn_chain): Likewise.
8373         * loop-invariant.c (find_invariants): Likewise.
8374         * lower-subreg.c (propagate_pseudo_copies): Likewise.
8375         * predict.c (tree_predict_by_opcode): Likewise.
8376         (predict_paths_leading_to): Likewise.
8377         (predict_paths_leading_to_edge): Likewise.
8378         (estimate_loops_at_level): Likewise.
8379         (estimate_loops): Likewise.
8380         * shrink-wrap.c (try_shrink_wrapping): Likewise.
8381         (spread_components): Likewise.
8382         * tree-cfg.c (remove_edge_and_dominated_blocks): Likewise.
8383         * tree-loop-distribution.c (rdg_build_partitions): Likewise.
8384         * tree-predcom.c (tree_predictive_commoning_loop): Likewise.
8385         * tree-ssa-coalesce.c (coalesce_ssa_name): Likewise.
8386         * tree-ssa-phionlycprop.c (pass_phi_only_cprop::execute): Likewise.
8387         * tree-ssa-pre.c (remove_dead_inserted_code): Likewise.
8388         * tree-ssa-sink.c (nearest_common_dominator_of_uses): Likewise.
8389         * tree-ssa-threadupdate.c (compute_path_counts): Likewise.
8390         (mark_threaded_blocks): Likewise.
8391         (thread_through_all_blocks): Likewise.
8392         * tree-ssa.c (verify_ssa): Likewise.
8393         (execute_update_addresses_taken): Likewise.
8394         * tree-ssanames.c (verify_ssaname_freelists): Likewise.
8396 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
8398         * cfganal.c (mark_dfs_back_edges): Replace manual stack with
8399         auto_vec.
8400         (post_order_compute): Likewise.
8401         (inverted_post_order_compute): Likewise.
8402         (pre_and_rev_post_order_compute_fn): Likewise.
8404 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
8406         * genrecog.c (int_set::int_set): Explicitly construct our
8407         auto_vec base class.
8408         * vec.h (auto_vec::auto_vec): New constructor.
8410 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
8412         * bitmap.h (class auto_bitmap): New constructor taking
8413         bitmap_obstack * argument.
8415 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
8417         * bitmap.h (class auto_bitmap): Change type of m_bits to
8418         bitmap_head, and adjust ctor / dtor and member operators.
8420 2017-05-13  Uros Bizjak  <ubizjak@gmail.com>
8422         * compare-elim.c (equivalent_reg_at_start): Return NULL_RTX
8423         when returned register mode doesn't match original mode.
8425 2017-05-12  Jeff Law  <law@redhat.com>
8426             Jakub Jelinek  <jakub@redhat.com>
8428         * config/mn10300/mn10300.c (mn10300_match_ccmode): Fix where
8429         we look for cc setter after the compare-elim changes.
8430         * config/mn10300/mn10300.md (addsi3_flags): Fix order of patterns
8431         within the vector to match what compare-elim now expects.
8432         (subsi3_flags, andsi3_flags, iorsi3_flags): Likewise.
8433         (xorsi3_flags, one_cmplsi2_flags): Likewise.
8435         * config/rx/rx.c (rx_match_ccmode): Fix where we look cc setter
8436         after the compare-elim changes.
8437         * config/rx/rx.md (abssi2_flags): Fix order of patterns within
8438         the vector to match what compare-elim now expects.
8439         (addsi3_flags, adc_flags, addsi3_flags peepholes): Likewise.
8440         (andsi3_flags, negsi2_flags, one_cmplsi2_flags): Likewise.
8441         (iorsi3_flags, rotlsi3_flags, rotrsi3_flags): Likewise.
8442         (ashrsi3_flags, lshrsi3_flags, ashlsi3_flags): Likewise.
8443         (ssaddsi3, subsi3_flags, sbb_flags, xorsi3_flags): Likewise.
8445         * config/visium/visium.c (single_set_and_flags): Fix where
8446         we look for cc setter after the compare-elim changes.
8447         * config/visium/visium.md (flags_subst_logic): Fix order of patterns
8448         with the vector to match what compare-elim now expects.
8449         (flags_subst_arith, add<mode>3_insn_set_carry): Likewise.
8450         (add<mode>3_insn_set_overflow, addsi3_insn_set_carry): Likewise.
8451         (addsi3_insn_set_overflow, sub<mode>3_insn_set_carry): Likewise.
8452         (sub<mode>3_insn_set_overflow, subsi3_insn_set_carry): Likewise.
8453         (subsi3_insn_set_overflow, negsi2_insn_set_carry): Likewise.
8454         (neg<mode>2_insn_set_overflow): Likewise.
8456 2017-05-12  Jim Wilson  <jim.wilson@linaro.org>
8458         PR middle-end/79794
8459         * expmed.c (extract_bit_field_1): Add alt_rtl argument.  Before
8460         maybe_expand_insn call, set ops[0].target.  If still set after call,
8461         set alt_rtl.  Add extra arg to recursive calls.
8462         (extract_bit_field): Add alt_rtl argument.  Pass to
8463         extract_bit_field.
8464         * expmed.h (extract_bit_field): Fix prototype.
8465         * expr.c (emit_group_load_1, copy_blkmode_from_reg)
8466         (copy_blkmode_to_reg, read_complex_part, store_field): Pass extra NULL
8467         to extract_bit_field_calls.
8468         (expand_expr_real_1): Pass alt_rtl to expand_expr_real instead of 0.
8469         Pass alt_rtl to extract_bit_field calls.
8470         * calls.c (store_unaligned_arguments_into_psuedos)
8471         load_register_parameters): Pass extra NULL to extract_bit_field calls.
8472         * optabs.c (maybe_legitimize_operand): Clear op->target when call
8473         gen_reg_rtx.
8474         * optabs.h (struct expand_operand): Add target bitfield.
8476 2017-05-12  Uros Bizjak  <ubizjak@gmail.com>
8478         * compare-elim.c (try_eliminate_compare): Canonicalize
8479         operation with embedded compare to
8480         [(set (reg:CCM) (compare:CCM (operation) (immediate)))
8481          (set (reg) (operation)].
8483         * config/i386/i386.c (TARGET_FLAGS_REGNUM): New define.
8485 2017-05-12  Uros Bizjak  <ubizjak@gmail.com>
8487         PR target/80723
8488         * config/i386/i386.c (ix86_rtx_cost) [case PLUS]: Ignore the
8489         cost of adding a carry flag for ADC instruction.
8490         [case MINUS]: Ignore the cost of subtracting a carry flag
8491         for SBB instruction.
8493 2017-05-12  Steven Munroe  <munroesj@gcc.gnu.org>
8495         * config.gcc (powerpc*-*-*): Add bmi2intrin.h, bmiintrin.h,
8496         and x86intrin.h
8497         * config/rs6000/bmiintrin.h: New file.
8498         * config/rs6000/bmi2intrin.h: New file.
8499         * config/rs6000/x86intrin.h: New file.
8501 2017-05-12  Jeff Law  <law@redhat.com>
8503         * tree-vrp.c (vrp_dom_walker::before_dom_children): Push unwinding
8504         markers.
8506 2017-05-12  Peter Bergner  <bergner@vnet.ibm.com>
8508         PR middle-end/80707
8509         * tree-cfg.c: Remove cfg edges of unreachable case statements.
8511 2017-05-12  Will Schmidt  <will_schmidt@vnet.ibm.com>
8513         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling for
8514         early expansion of vector divide builtins.
8515         (builtin_function_type): Add VSX_BUILTIN_UDIV_V2DI to the list of
8516         builtins identified as having unsigned arguments.
8518 2017-05-12  Will Schmidt  <will_schmidt@vnet.ibm.com>
8520         * config/rs6000/rs6000.c (gimple-fold.h): New #include.
8521         (rs6000_gimple_fold_builtin): Add handling for early GIMPLE
8522         expansion of vector logical operations (and, andc, or, xor,
8523         nor, orc, nand).
8525 2017-05-12  Will Schmidt  <will_schmidt@vnet.ibm.com>
8527         * gimple-fold.c (create_tmp_reg_or_ssa_name): Remove static declaration.
8528         * gimple-fold.h (create_tmp_reg_or_ssa_name): New prototype.
8530 2017-05-12  Will Schmidt  <will_schmidt@vnet.ibm.com>
8532         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling for
8533         early GIMPLE expansion of vector multiplies.
8535 2017-05-12  Prakhar Bahuguna  <prakhar.bahuguna@arm.com>
8537         * config/arm/arm.md (movsi): Add TARGET_32BIT in addition to the
8538         TARGET_HAVE_MOVT conditional.
8539         (movt splitter): Likewise.
8541 2017-05-12  Richard Biener  <rguenther@suse.de>
8543         * tree-ssa-sccvn.h (has_VN_INFO): Declare.
8544         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
8545         Fold all stmts not inplace.
8547 2017-05-12  Richard Biener  <rguenther@suse.de>
8549         PR tree-optimization/80713
8550         * tree-ssa-pre.c (remove_dead_inserted_code): Clear
8551         inserted_exprs bit for not removed stmts.
8553 2017-05-12  Thomas Schwinge  <thomas@codesourcery.com>
8555         PR middle-end/69921
8556         * tree-parloops.c (create_parallel_loop): Set "oacc kernels
8557         parallelized" attribute for parallelized OpenACC kernels.
8558         * omp-offload.c (execute_oacc_device_lower): Use it.
8560         * omp-expand.c (expand_omp_target) <GF_OMP_TARGET_KIND_OACC_KERNELS>:
8561         Set "oacc kernels" attribute.
8562         * omp-general.c (oacc_set_fn_attrib): Remove is_kernel formal
8563         parameter.  Adjust all users.
8564         (oacc_fn_attrib_kernels_p): Remove function.
8565         * omp-offload.c (execute_oacc_device_lower): Look for "oacc
8566         kernels" attribute instead of calling oacc_fn_attrib_kernels_p.
8567         * tree-ssa-loop.c (gate_oacc_kernels): Likewise.
8568         * tree-parloops.c (create_parallel_loop): If oacc_kernels_p,
8569         assert "oacc kernels" attribute is set.
8571 2017-05-11  Carl Love  <cel@us.ibm.com>
8573         * config/rs6000/rs6000-c: Add support for built-in functions
8574         vector unsigned char vec_popcnt (vector signed char)
8575         vector unsigned char vec_popcnt (vector unsigned char)
8576         vector unsigned short vec_popcnt (vector signed short)
8577         vector unsigned short vec_popcnt (vector unsigned short)
8578         vector unsigned int vec_popcnt (vector signed int)
8579         vector unsigned int vec_popcnt (vector unsigned int)
8580         vector unsigned long long vec_popcnt (vector signed long long)
8581         vector unsigned long long vec_popcnt (vector unsigned long long)
8582         vector signed long long vec_slo (vector signed long long,
8583                                          vector signed char)
8584         vector signed long long vec_slo (vector signed long long,
8585                                          vector unsigned char)
8586         vector unsigned long long vec_slo (vector unsigned long long,
8587                                            vector signed char)
8588         vector unsigned long long vec_slo (vector unsigned long long,
8589                                            vector unsigned char)
8590         * config/rs6000/rs6000-builtin.def: Add definitions for VPOPCNTUB,
8591         VPOPCNTUH, VPOPCNTUW, and VPOPCNTUD overloads.
8592         * config/rs6000/altivec.h: Add define for vec_popcnt, vec_popcntb,
8593         vec_popcnth, vec_popcntw and vec_popcntd built-in functions.
8594         * doc/extend.texi: Update the built-in documentation file for the
8595         new built-in functions.
8597 2017-05-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
8599         * attribs.h (sorted_attr_string): Move machine independent
8600         functions for target clone support from the i386 port to common
8601         code.  Rename ix86_function_versions to common_function_versions.
8602         Rename make_name to make_unique_name.
8603         (common_function_versions): Likewise.
8604         (make_unique_name): Likewise.
8605         (make_dispatcher_decl): Likewise.
8606         (is_function_default_version): Likewise.
8607         * attribs.c (attr_strcmp): Likewise.
8608         (sorted_attr_string): Likewise.
8609         (common_function_versions): Likewise.
8610         (make_unique_name): Likewise.
8611         (make_dispatcher_decl): Likewise.
8612         (is_function_default_version): Likewise.
8613         * config/i386/i386.c (attr_strcmp): Likewise.
8614         (sorted_attr_string): Likewise.
8615         (ix86_function_versions): Likewise.
8616         (make_name): Likewise.
8617         (make_dispatcher_decl): Likewise.
8618         (is_function_default_version): Likewise.
8619         (TARGET_OPTION_FUNCTION_VERSIONS): Update target function hook.
8621 2017-05-11  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
8623         PR target/80695
8624         * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost):
8625         Account for direct move costs for vec_construct of integer
8626         vectors.
8628 2017-05-11  Uros Bizjak  <ubizjak@gmail.com>
8630         PR target/80706
8631         * config/i386/sync.md (UNSPEC_LDX_ATOMIC): New unspec.
8632         (UNSPEC_STX_ATOMIC): Ditto.
8633         (loaddi_via_sse): New insn.
8634         (storedi_via_sse): Ditto.
8635         (atomic_loaddi_fpu): Emit loaddi_via_sse and storedi_via_sse.
8636         Update corresponding peephole2 patterns.
8637         (atomic_storedi_fpu): Ditto.
8639 2017-05-11  Julia Koval  <julia.koval@intel.com>
8641         * config/i386/avx512fintrin.h (_mm_mask_rsqrt14_sd)
8642         (_mm_maskz_rsqrt14_sd, _mm_mask_rsqrt14_ss, _mm_maskz_rsqrt14_ss):
8643         New intrinsics.
8644         * config/i386/i386-builtin.def (__builtin_ia32_rsqrt14sd_mask)
8645         (__builtin_ia32_rsqrt14ss_mask): New builtins.
8646         * config/i386/sse.md (rsqrt14_<mode>_mask): New pattern.
8648 2017-05-11  Nathan Sidwell  <nathan@acm.org>
8650         * graphite-poly.c: Include dumpfile.h.
8652         * dumpfle.h (dump_function): Declare here ...
8653         * tree-dump.h (dump_function): ... not here.
8654         * dumpfile.c: #include tree-cfg.h.
8655         (dump_function): Move here from ...
8656         * tree-dump.c (dump_function): ... here.
8657         * gimplify.c: #include splay-tree.h, not tree-dump.h.
8658         * graphite-poly.c: Don't include tree-dump.h.
8659         * cgraphclones.c: Include dumpfile.h not tree-dump.h.
8660         * print-tree.c: Likewise.
8661         * stor-layout.c: Likewise.
8662         * tree-nested.c: Likewise.
8664         * dumpfile.c (dump_start): Use TDF_FLAGS.
8665         (dump_enable_all): Fix TDF_KIND check thinko.
8667 2017-05-11  Kelvin Nilsen  <kelvin@gcc.gnu.org>
8669         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
8670         array entries to represent two legal parameterizations of the
8671         overloaded __builtin_cmpb function, as represented by the
8672         P6_OV_BUILTIN_CMPB constant.
8673         (altivec_resolve_overloaded_builtin): Add special case handling
8674         for the __builtin_cmpb function, as represented by the
8675         P6_OV_BUILTIN_CMPB constant.
8676         * config/rs6000/rs6000-builtin.def (BU_P6_2): New macro.
8677         (BU_P6_64BIT_2): New macro.
8678         (BU_P6_OVERLOAD_2): New macro
8679         (CMPB_32): Add 32-bit compare-bytes support for 32-bit only targets.
8680         (CMPB): Add 64-bit compare-bytes support for 32-bit and 64-bit targets.
8681         (CMPB): Add overload support to represent both 32-bit and 64-bit
8682         compare-bytes function.
8683         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
8684         support for TARGET_CMPB.
8685         * config/rs6000/rs6000.h: Add support for RS6000_BTM_CMPB.
8686         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Add
8687         documentation of the __builtin_cmpb overloaded built-in function.
8689 2017-05-11  Richard Biener  <rguenther@suse.de>
8691         PR tree-optimization/80705
8692         * tree-vect-data-refs.c (vect_analyze_data_refs): DECL_NONALIASED
8693         bases are not vectorizable.
8695 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
8697         * tree-ssa-loop-ivopts.c (determine_set_costs): Skip non-interger
8698         when counting register pressure.
8700 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
8702         * tree-ssa-loop-ivopts.c (compare_cost_pair): New.
8703         (iv_ca_more_deps): Renamed to ...
8704         (iv_ca_compare_deps): ... this.
8705         (iv_ca_extend): Extend iv_ca if NEW_CP is cheaper than OLD_CP.
8707 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
8709         * tree-ssa-loop-ivopts.c (find_interesting_uses): Move inv vars dump
8710         to ...
8711         (determine_group_iv_costs): ... here.
8712         (find_inv_vars_cb): Record inv var if it's not recorded before.
8714 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
8716         * tree-ssa-loop-ivopts.c (allow_ip_end_pos_p): Refine comments.
8717         (get_shiftadd_cost): Ditto.
8719 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
8721         * tree-ssa-address.c: Include header file.
8722         (move_hint_to_base): Return TRUE if BASE_HINT is moved to memory
8723         address.
8724         (add_to_parts): Refactor.
8725         (addr_to_parts): New parameter.  Update use of move_hint_to_base.
8726         (create_mem_ref): Update use of addr_to_parts.  Re-associate addr
8727         in new order.
8729 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
8731         PR tree-optimization/53090
8732         * tree-ssa-loop-ivopts.c (enum comp_iv_rewrite): New enum value
8733         COMP_IV_EXPR_2.
8734         (extract_cond_operands): Detect condition with IV on both sides
8735         and return COMP_IV_EXPR_2.
8736         (find_interesting_uses_cond): Add iv_use for both IVs in condition.
8737         (rewrite_use_compare): Simplify by removing call to function
8738         extract_cond_operands.
8740 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
8742         * tree-ssa-loop-ivopts.c (enum comp_iv_rewrite): New.
8743         (extract_cond_operands): Detect condition comparing against non-
8744         invariant bound and return appropriate enum value.
8745         (find_interesting_uses_cond): Update use of extract_cond_operands.
8746         Handle its return value accordingly.
8747         (determine_group_iv_cost_cond, rewrite_use_compare): Ditto.
8749 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
8751         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Re-associate
8752         nonlinear iv_use computation in loop invariant sensitive way.
8754 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
8756         * tree-ssa-loop-ivopts.c (relate_compare_use_with_all_cands): New.
8757         (find_iv_candidates): Call relate_compare_use_with_all_cands.
8759 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
8761         * tree-ssa-loop-ivopts.c (struct iv_cand): New field inv_exprs.
8762         (dump_cand): Support iv_cand.inv_exprs.
8763         (add_candidate_1): Record invariant exprs in iv_cand.inv_exprs
8764         for candidates.
8765         (iv_ca_set_no_cp, iv_ca_set_cp, free_loop_data): Support
8766         iv_cand.inv_exprs.
8768 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
8770         * tree-ssa-loop-ivopts.c (multiplier_allowed_in_address_p): Move
8771         from ...
8772         * tree-ssa-address.c (multiplier_allowed_in_address_p): ... to here
8773         as local function.  Include necessary header files.
8774         * tree-ssa-loop-ivopts.h (multiplier_allowed_in_address_p): Delete.
8776 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
8778         * tree-ssa-loop-ivopts.c (autoinc_possible_for_pair): Simplify.
8780 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
8782         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Handle more
8783         operators: TRUNC_DIV_EXPR, BIT_AND_EXPR, BIT_IOR_EXPR, LSHIFT_EXPR,
8784         RSHIFT_EXPR and BIT_NOT_EXPR.
8786 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
8788         * tree-ssa-loop-ivopts.c (get_loop_invariant_expr): Simplify.
8789         (adjust_setup_cost): New parameter supporting round up adjustment.
8790         (struct address_cost_data): Delete.
8791         (force_expr_to_var_cost): Don't bound cost with spill_cost.
8792         (split_address_cost, ptr_difference_cost): Delete.
8793         (difference_cost, compare_aff_trees, record_inv_expr): Delete.
8794         (struct ainc_cost_data): New struct.
8795         (get_address_cost_ainc): New function.
8796         (get_address_cost, get_computation_cost): Reimplement.
8797         (determine_group_iv_cost_address): Record inv_expr for all uses of
8798         a group.
8799         (determine_group_iv_cost_cond): Call get_loop_invariant_expr.
8800         (iv_ca_has_deps): Reimplemented to ...
8801         (iv_ca_more_deps): ... this.  Check if NEW_CP introduces more deps
8802         than OLD_CP.
8803         (iv_ca_extend): Call iv_ca_more_deps.
8805 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
8807         * tree-ssa-address.c (struct mem_address): Move to header file.
8808         (valid_mem_ref_p, move_fixed_address_to_symbol): Make it global.
8809         * tree-ssa-address.h (struct mem_address): Move from C file.
8810         (valid_mem_ref_p, move_fixed_address_to_symbol): Declare.
8812 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
8814         * tree-affine.h (aff_combination_type): New interface.
8815         (aff_combination_zero_p): Remove static.
8816         (aff_combination_const_p): New interface.
8817         (aff_combination_singleton_var_p): New interfaces.
8819 2017-05-11  Richard Biener  <rguenther@suse.de>
8821         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
8822         Skip unreachable blocks and destinations.
8823         (eliminate): Move stmt removal and fixup ...
8824         (fini_eliminate): ... here.  Skip inserted exprs.
8825         (pass_pre::execute): Move fini_pre after fini_eliminate.
8826         * tree-ssa-tailmerge.c: Include tree-cfgcleanup.h.
8827         (tail_merge_optimize): Run cleanup_tree_cfg if requested by
8828         PRE to get rid of dead code that has invalid SSA form and
8829         split critical edges again.
8831 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
8833         * rtlanal.c (rtx_cost): Handle TRUNCATE between tieable modes.
8835 2017-05-11  Richard Biener  <rguenther@suse.de>
8837         * passes.c (execute_function_todo): Verify loops if they are
8838         said to be up-to-date.
8839         * cfgexpand.c (pass_expand::execute): Discard loops for -dx.
8840         * trans-mem.c (pass_tm_edges::execute): Mark loops for fixup.
8842 2017-05-10  John David Anglin  <danglin@gcc.gnu.org>
8844         PR target/80090
8845         * config/pa/pa.c (pa_assemble_integer): When outputting a SYMBOL_REF,
8846         handle calling assemble_external ourself.
8848         PR target/79027
8849         * config/pa/pa.c (pa_cannot_change_mode_class): Reject changes to/from
8850         modes with zero size.  Enhance comment.
8852 2017-05-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
8854         * config/rs6000/rs6000.c (altivec_init_builtins): Define POWER8
8855         built-ins for vec_xl and vec_xst with short and char pointer
8856         arguments.
8858 2017-05-10  Sebastian Peryt  <sebastian.peryt@intel.com>
8860         * config/i386/avx512fintrin.h (_mm_mask_max_round_sd)
8861         (_mm_maskz_max_round_sd, _mm_mask_max_round_ss)
8862         (_mm_maskz_max_round_ss, _mm_mask_min_round_sd)
8863         (_mm_maskz_min_round_sd, _mm_mask_min_round_ss)
8864         (_mm_maskz_min_round_ss): New intrinsics.
8865         * config/i386/i386-builtin-types.def (V2DF, V2DF, V2DF, V2DF, UQI, INT)
8866         (V4SF, V4SF, V4SF, V4SF, UQI, INT): New function type aliases.
8867         * config/i386/i386-builtin.def (__builtin_ia32_maxsd_mask_round)
8868         (__builtin_ia32_maxss_mask_round, __builtin_ia32_minsd_mask_round)
8869         (__builtin_ia32_minss_mask_round): New builtins.
8870         * config/i386/i386.c (V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT)
8871         (V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT): Handle new types.
8872         * config/i386/sse.md (<sse>_vm<code><mode>3<round_saeonly_name>):
8873         Rename to ...
8874         (<sse>_vm<code><mode>3<mask_name><round_saeonly_name>): ... this.
8875         (v<maxmin_float><ssescalarmodesuffix>\t{<round_saeonly_op3>%2, %1, %0|%0, %1, %<iptr>2<round_saeonly_op3>}):
8876         Change to ...
8877         (v<maxmin_float><ssescalarmodesuffix>\t{<round_saeonly_mask_op3>%2, %1, %0<mask_operand3>|%0<mask_operand3>, %1, %<iptr>2<round_saeonly_mask_op3>}):
8878         ... this.
8880 2017-05-10  Sebastian Peryt  <sebastian.peryt@intel.com>
8882         * config/i386/avx512fintrin.h (_mm_mask_mul_round_sd)
8883         (_mm_maskz_mul_round_sd, _mm_mask_mul_round_ss)
8884         (_mm_maskz_mul_round_ss, _mm_mask_div_round_sd)
8885         (_mm_maskz_div_round_sd, _mm_mask_div_round_ss)
8886         (_mm_maskz_div_round_ss, _mm_mask_mul_sd, _mm_maskz_mul_sd)
8887         (_mm_mask_mul_ss, _mm_maskz_mul_ss, _mm_mask_div_sd)
8888         (_mm_maskz_div_sd, _mm_mask_div_ss, _mm_maskz_div_ss): New intrinsics.
8889         * config/i386/i386-builtin-types.def (V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT)
8890         (V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT): New function type aliases.
8891         * config/i386/i386-builtin.def (__builtin_ia32_divsd_mask_round)
8892         (__builtin_ia32_divss_mask_round, __builtin_ia32_mulsd_mask_round)
8893         (__builtin_ia32_mulss_mask_round): New builtins.
8894         * config/i386/i386.c (V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT)
8895         (V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT): Handle new types.
8896         * config/i386/sse.md (<sse>_vm<multdiv_mnemonic><mode>3<round_name>):
8897         Rename to ...
8898         (<sse>_vm<multdiv_mnemonic><mode>3<mask_name><round_name>): ... this.
8899         (v<multdiv_mnemonic><ssescalarmodesuffix>\t{<round_op3>%2, %1, %0|%0, %1, %<iptr>2<round_op3>}):
8900         Change to ...
8901         (v<multdiv_mnemonic><ssescalarmodesuffix>\t{<round_mask_op3>%2, %1, %0<mask_operand3>|%0<mask_operand3>, %1, %<iptr>2<round_mask_op3>}):
8902         ... this.
8904 2017-05-10  Julia Koval  <julia.koval@intel.com>
8906         * config/i386/avxintrin.h (_mm256_set_m128, _mm256_set_m128d)
8907         (_mm256_set_m128i, _mm256_setr_m128, _mm256_setr_m128d)
8908         (_mm256_setr_m128i): New intrinsics.
8910 2017-05-10  Julia Koval  <julia.koval@intel.com>
8912         * config/i386/avx512fintrin.h (_mm_mask_rcp14_sd)
8913         (_mm_maskz_rcp14_sd, _mm_mask_rcp14_ss)
8914         (_mm_maskz_rcp14_ss): New intrinsics.
8915         * config/i386/i386-builtin.def (__builtin_ia32_rcp14sd_mask)
8916         (__builtin_ia32_rcp14ss_mask): New builtins.
8917         * config/i386/sse.md (srcp14<mode>_mask): New pattern.
8919 2017-05-10  Peter Bergner  <bergner@vnet.ibm.com>
8921         PR tree-optimization/51513
8922         * tree-cfg.c (gimple_seq_unreachable_p): New function.
8923         (assert_unreachable_fallthru_edge_p): Use it.
8924         (group_case_labels_stmt): Likewise.
8925         * tree-cfg.h: Prototype it.
8926         * stmt.c: Include cfghooks.h and tree-cfg.h.
8927         (emit_case_dispatch_table) <gap_label>: New local variable.
8928         Use it to fill dispatch table gaps.
8929         Test for default_label before updating probabilities.
8930         (expand_case) <default_label>: Remove unneeded initialization.
8931         Test for unreachable default case statement and remove its edge.
8932         Set default_label accordingly.
8933         * tree-ssa-ccp.c (optimize_unreachable): Update comment.
8935 2017-05-10  Carl Love  <cel@us.ibm.com>
8937         * config/rs6000/rs6000-c: Add support for built-in functions
8938         vector signed char      vec_neg (vector signed char)
8939         vector signed short int vec_neg (vector short int)
8940         vector signed int       vec_neg (vector signed int)
8941         vector signed long long vec_neg (vector signed long long)
8942         vector float            vec_neg (vector float)
8943         vector double           vec_neg (vector double)
8944         * config/rs6000/rs6000-builtin.def: Add definitions for NEG function
8945         overload.
8946         * config/rs6000/altivec.h: Add define for vec_neg
8947         * doc/extend.texi: Update the built-in documentation for the
8948         new built-in functions.
8950 2017-05-10  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
8952         PR tree-optimization/77644
8953         * match.pd (sqrt(x) cmp sqrt(y) -> x cmp y): New pattern.
8955 2017-05-10  Nathan Sidwell  <nathan@acm.org>
8957         * dumpfile.h (TDI_lang_all): New.
8958         (TDF_KIND): New. Renumber others
8959         (TDF_LANG, TDF_TREE, TDF_RTL, TDF_IPA): Enumerate value, rather
8960         than bits.
8961         * dumpfile.c (dump_files): Mark language dumps as TDF_LANG.  add
8962         lang-all.
8963         (get_dump_file_name): Adjust suffix generation.
8964         (dump_enable_all): Use TDF_KIND.
8965         * doc/invoke.texi (-fdump-lang-all): Document.
8967         * dumpfile.h: Tabify.
8969 2017-05-10  Wilco Dijkstra  <wdijkstr@arm.com>
8971         PR target/80671
8972         * config/aarch64/cortex-a57-fma-steering.c (merge_forest):
8973         Move member access before delete.
8975 2017-05-10  Alexandre Oliva <aoliva@redhat.com>
8977         * tree-inline.c (expand_call_inline): Split block at stmt
8978         before the call.
8980 2017-05-09  Michael Meissner  <meissner@linux.vnet.ibm.com>
8982         PR target/68163
8983         * config/rs6000/rs6000.md (f32_lr): Delete mode attributes that
8984         are now unused after splitting mov{sf,sd}_hardfloat.
8985         (f32_lr2): Likewise.
8986         (f32_lm): Likewise.
8987         (f32_lm2): Likewise.
8988         (f32_li): Likewise.
8989         (f32_li2): Likewise.
8990         (f32_lv): Likewise.
8991         (f32_sr): Likewise.
8992         (f32_sr2): Likewise.
8993         (f32_sm): Likewise.
8994         (f32_sm2): Likewise.
8995         (f32_si): Likewise.
8996         (f32_si2): Likewise.
8997         (f32_sv): Likewise.
8998         (f32_dm): Likewise.
8999         (f32_vsx): Likewise.
9000         (f32_av): Likewise.
9001         (mov<mode>_hardfloat): Split into separate movsf and movsd pieces.
9002         For movsf, order stores so the VSX stores occur before the GPR
9003         store which encourages the register allocator to use a traditional
9004         FPR instead of a GPR.  For movsd, order the stores so that the GPR
9005         store comes before the VSX stores to allow the power6 to work.
9006         This is due to the power6 not having a 32-bit integer store
9007         instruction from a FPR.
9008         (movsf_hardfloat): Likewise.
9009         (movsd_hardfloat): Likewise.
9011 2017-05-09  Martin Sebor  <msebor@redhat.com>
9013         PR translation/80280
9014         * config/sol2-c.c (cmn_err_flag_specs): Initialize new data member
9015         added in r247778.
9017         PR translation/80280
9018         * config/i386/msformat-c.c (ms_printf_flag_specs): Initialize new
9019         data member added in r247778.
9020         (ms_scanf_flag_specs, ms_strftime_flag_specs): Same.
9022 2017-05-09  Nathan Sidwell  <nathan@acm.org>
9024         * tree.h (tree_fits_shwi_p, tree_fits_uhwi_p): Unconditionally pure.
9026         * ipa-devirt.c (default_hash_traits<type_pair>): Skip struct-scope
9027         typedefs.
9029 2017-05-09  Marek Polacek  <polacek@redhat.com>
9031         * doc/invoke.texi: Fix typo.
9033 2017-05-09  Richard Biener  <rguenther@suse.de>
9035         * tree-vrp.c (vrp_val_is_max): Adjust comment.
9036         (vrp_val_is_min): Likewise.
9037         (set_value_range_to_value): Likewise.
9038         (set_value_range_to_nonnegative): Likewise.
9039         (gimple_assign_nonzero_p): Likewise.
9040         (gimple_stmt_nonzero_p): Likewise.
9041         (vrp_int_const_binop): Likewise.  Remove unreachable case.
9042         (adjust_range_with_scev): Adjust comments.
9043         (compare_range_with_value): Likewise.
9044         (extract_range_from_phi_node): Likewise.
9045         (test_for_singularity): Likewise.
9047 2017-05-09  Richard Biener  <rguenther@suse.de>
9049         * tree-vrp.c (get_single_symbol): Add assert that we don't
9050         get overflowed constants as invariant part.
9051         (compare_values_warnv): Add comment before the TREE_NO_WARNING
9052         checks.  Use wi::cmp instead of recursing for integer constants.
9053         (compare_values): Just ignore whether we assumed undefined
9054         overflow instead of failing the compare.
9055         (extract_range_for_var_from_comparison_expr): Add comment before the
9056         TREE_NO_WARNING sets.
9057         (test_for_singularity): Likewise.
9058         (extract_range_from_comparison): Do not disable optimization
9059         when we assumed undefined overflow.
9060         (extract_range_basic): Remove init of unused var.
9062 2017-05-09  Richard Biener  <rguenther@suse.de>
9064         * tree-vrp.c (vrp_int_const_binop): Use wide-ints and simplify.
9065         (extract_range_from_multiplicative_op_1): Adjust.
9066         (extract_range_from_binary_expr_1): Use int_const_binop.
9068 2017-05-08  Kelvin Nilsen  <kelvin@gcc.gnu.org>
9070         PR target/80101
9071         * config/rs6000/power6.md: Replace store_data_bypass_p calls with
9072         rs6000_store_data_bypass_p in seven define_bypass directives and
9073         in several comments.
9074         * config/rs6000/rs6000-protos.h: Add prototype for
9075         rs6000_store_data_bypass_p function.
9076         * config/rs6000/rs6000.c (rs6000_store_data_bypass_p): New
9077         function implements slightly different (rs6000-specific) semantics
9078         than store_data_bypass_p, returning false rather than aborting
9079         with assertion error when arguments do not satisfy the
9080         requirements of store data bypass.
9081         (rs6000_adjust_cost): Replace six calls of store_data_bypass_p with
9082         rs6000_store_data_bypass_p.
9084 2017-05-08  Max Filippov  <jcmvbkbc@gmail.com>
9086         * config/xtensa/xtensa-protos.h
9087         (xtensa_initial_elimination_offset): New declaration.
9088         * config/xtensa/xtensa.c (xtensa_initial_elimination_offset):
9089         New function. Move its body from the INITIAL_ELIMINATION_OFFSET
9090         macro definition, add case for FRAME_POINTER_REGNUM when
9091         FRAME_GROWS_DOWNWARD.
9092         * config/xtensa/xtensa.h (FRAME_GROWS_DOWNWARD): New macro definition.
9093         (INITIAL_ELIMINATION_OFFSET): Replace body with call to
9094         xtensa_initial_elimination_offset.
9096 2017-05-08  Nathan Sidwell  <nathan@acm.org>
9098         * doc/invoke.texi: Alphabetize -fdump options.
9100 2017-05-08  Martin Sebor  <msebor@redhat.com>
9102         PR translation/80280
9103         * config/sol2-c.c (solaris_pragma_align): Correct quoting.
9105 2017-05-08  Bernd Edlinger  <bernd.edlinger@hotmail.de>
9107         * target.def (compute_frame_layout): New optional target hook.
9108         * doc/tm.texi.in (TARGET_COMPUTE_FRAME_LAYOUT): Add hook.
9109         * doc/tm.texi (TARGET_COMPUTE_FRAME_LAYOUT): Add documentation.
9110         * lra-eliminations.c (update_reg_eliminate): Call compute_frame_layout
9111         target hook.
9112         * reload1.c (verify_initial_elim_offsets): Likewise.
9113         * config/arm/arm.c (TARGET_COMPUTE_FRAME_LAYOUT): Define.
9114         (use_simple_return_p): Call arm_compute_frame_layout if needed.
9115         (arm_get_frame_offsets): Split up into this ...
9116         (arm_compute_frame_layout): ... and this function.
9118 2017-05-08  Richard Sandiford  <richard.sandiford@arm.com>
9120         * config/aarch64/constraints.md (Usa): New constraint.
9121         * config/aarch64/aarch64.md (*movsi_aarch64, *movdi_aarch64): Use it.
9123 2017-05-08  Thomas Preud'homme  <thomas.preudhomme@arm.com>
9125         * config.gcc (arm*-*-*): Set TM_MULTILIB_CONFIG from
9126         with_multilib_list after it has been checked.
9128 2017-05-08  Richard Biener  <rguenther@suse.de>
9130         * tree-ssa-pre.c (bitmap_set_and): Avoid bitmap copy.
9131         (bitmap_set_subtract_values): Likewise.
9133 2017-05-08  Richard Biener  <rguenther@suse.de>
9135         * tree-vrp.c (gimple_assign_nonzero_warnv_p): Rename to ...
9136         (gimple_assign_nonzero): ... this and remove strict_overflow_p
9137         argument.
9138         (gimple_stmt_nonzero_warnv_p): Rename to ...
9139         (gimple_stmt_nonzero_p): ... this and remove strict_overflow_p
9140         argument.
9141         (vrp_stmt_computes_nonzero): Remove strict_overflow_p argument.
9142         (extract_range_basic): Adjust, do not disable propagation on
9143         strict overflow sensitive simplification.
9144         (vrp_visit_cond_stmt): Likewise.
9146 2017-05-05  Jan Hubicka  <hubicka@ucw.cz>
9148         * ipa-inline-analysis.c (estimate_function_body_sizes): Recompute
9149         body size unconditionally.
9151 2017-05-07  Jeff Law  <law@redhat.com>
9153         Revert:
9154         2017-05-06  Jeff Law  <law@redhat.com>
9155         PR tree-optimization/78496
9156         * tree-vrp.c (simplify_assert_expr_using_ranges): Remove debugging
9157         code.
9159         PR tree-optimization/78496
9160         * tree-vrp.c (simplify_assert_expr_using_ranges): New function.
9161         (simplify_stmt_using_ranges): Call it.
9162         (vrp_dom_walker::before_dom_children): Extract equivalences
9163         from an ASSERT_EXPR with an equality comparison against a
9164         constant.
9166 2017-05-06  Jeff Law  <law@redhat.com>
9168         PR tree-optimization/78496
9169         * tree-vrp.c (simplify_assert_expr_using_ranges): Remove debugging
9170         code.
9172         PR tree-optimization/78496
9173         * tree-vrp.c (simplify_assert_expr_using_ranges): New function.
9174         (simplify_stmt_using_ranges): Call it.
9175         (vrp_dom_walker::before_dom_children): Extract equivalences
9176         from an ASSERT_EXPR with an equality comparison against a
9177         constant.
9179 2017-05-06  Richard Sandiford  <richard.sandiford@linaro.org>
9181         * lra-constraints.c (lra_copy_reg_equiv): New function.
9182         (split_reg): Use it to copy equivalence information from the
9183         original register to the spill register.
9185 2017-05-06  Richard Sandiford  <richard.sandiford@linaro.org>
9187         PR rtl-optimization/75964
9188         * simplify-rtx.c (simplify_const_relational_operation): Remove
9189         invalid handling of comparisons of integer ABS.
9191 2017-05-06  Uros Bizjak  <ubizjak@gmail.com>
9193         * config/i386/i386.c (ext_80387_constant_init): Do not explicitly
9194         initialize to zero.
9195         (init_regs): Remove declaration.
9196         (function_arg_advance_32): Initialize error_p as boolean variable.
9198 2017-05-05  Nathan Sidwell  <nathan@acm.org>
9200         * store-motion.c (remove_reachable_equiv_notes): Reformat long
9201         lines.  Use for (;;).
9203 2017-05-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
9205         * config/rs6000/rs6000.c (rs6000_vect_nonmem): New static var.
9206         (rs6000_init_cost): Initialize rs6000_vect_nonmem.
9207         (rs6000_add_stmt_cost): Update rs6000_vect_nonmem.
9208         (rs6000_finish_cost): Avoid vectorizing simple copy loops with
9209         VF=2 that require versioning.
9211 2017-05-05  David Malcolm  <dmalcolm@redhat.com>
9213         * diagnostic.h (CARET_LINE_MARGIN): Convert from macro to const
9214         int.
9216 2017-05-05  David Malcolm  <dmalcolm@redhat.com>
9218         * diagnostic.h (diagnostic_override_option_index): Convert from
9219         macro to inline function.
9221 2017-05-05  David Malcolm  <dmalcolm@redhat.com>
9223         * diagnostic.c (last_module_changed_p): New function.
9224         (set_last_module): New function.
9225         (diagnostic_report_current_module): Convert macro usage to
9226         the above functions.
9227         * diagnostic.h (diagnostic_context::last_module): Strengthen
9228         from const line_map * to const line_map_ordinary *.
9229         (diagnostic_last_module_changed): Delete macro.
9230         (diagnostic_set_last_module): Delete macro.
9232 2017-05-05  David Malcolm  <dmalcolm@redhat.com>
9234         * diagnostic.c (diagnostic_impl): Replace report_diagnostic
9235         with diagnostic_report_diagnostic.
9236         (diagnostic_n_impl_richloc): Likewise.
9237         * diagnostic.h (report_diagnostic): Delete macro.
9238         * rtl-error.c (diagnostic_for_asm): Replace report_diagnostic
9239         with diagnostic_report_diagnostic.
9240         * substring-locations.c (format_warning_va): Likewise.
9242 2017-05-05  David Malcolm  <dmalcolm@redhat.com>
9244         * diagnostic.c (diagnostic_report_diagnostic): Eliminate
9245         save/restor of format_spec.  Move option-printing code to...
9246         (print_option_information): ...this new function, and
9247         reimplement by simply printing to the pretty_printer,
9248         rather than appending to the format string.
9250 2017-05-05  David Malcolm  <dmalcolm@redhat.com>
9252         * diagnostic.c (diagnostic_report_diagnostic): Split out pragma
9253         handling logic into...
9254         (update_effective_level_from_pragmas): ...this new function.
9256 2017-05-04  Andrew Waterman  <andrew@sifive.com>
9258         * config/riscv/riscv.opt (mstrict-align): New option.
9259         * config/riscv/riscv.h (STRICT_ALIGNMENT): Use it.  Update comment.
9260         (SLOW_UNALIGNED_ACCESS): Define.
9261         (riscv_slow_unaligned_access): Declare.
9262         * config/riscv/riscv.c (riscv_tune_info): Add slow_unaligned_access
9263         field.
9264         (riscv_slow_unaligned_access): New variable.
9265         (rocket_tune_info): Set slow_unaligned_access to true.
9266         (optimize_size_tune_info): Set slow_unaligned_access to false.
9267         (riscv_cpu_info_table): Add entry for optimize_size_tune_info.
9268         (riscv_valid_lo_sum_p): Use TARGET_STRICT_ALIGN.
9269         (riscv_option_override): Set riscv_slow_unaligned_access.
9270         * doc/invoke.texi: Add -mstrict-align to RISC-V.
9272 2017-05-04  Kito Cheng  <kito.cheng@gmail.com>
9274         * config/riscv/riscv.md: Unify indentation.
9276 2017-05-05  Michael Meissner  <meissner@linux.vnet.ibm.com>
9278         PR target/79038
9279         PR target/79202
9280         PR target/79203
9281         * config/rs6000/rs6000.md (u code attribute): Add FIX and
9282         UNSIGNED_FIX.
9283         (extendsi<mode>2): Add support for doing sign extension via
9284         VUPKHSW and XXPERMDI if the value is in Altivec registers and we
9285         don't have ISA 3.0 instructions.
9286         (extendsi<mode>2 splitter): Likewise.
9287         (fix_trunc<mode>si2): If we are at ISA 2.07 (VSX small integer),
9288         generate the normal insns since SImode can now go in vector
9289         registers.  Disallow the special UNSPECs needed for previous
9290         machines to hide SImode being used.  Add new insns
9291         fctiw{,w}_<mode>_smallint if SImode can go in vector registers.
9292         (fix_trunc<mode>si2_stfiwx): Likewise.
9293         (fix_trunc<mode>si2_internal): Likewise.
9294         (fixuns_trunc<mode>si2): Likewise.
9295         (fixuns_trunc<mode>si2_stfiwx): Likewise.
9296         (fctiw<u>z_<mode>_smallint): Likewise.
9297         (fctiw<u>z_<mode>_mem): New combiner pattern to prevent conversion
9298         of floating point to 32-bit integer from doing a direct move to
9299         the GPR registers to do a store.
9300         (fctiwz_<mode>): Break long line.
9302 2017-05-05  Bin Cheng  <bin.cheng@arm.com>
9304         * Makefile.in (GTFILES): Add tree-ssa-loop-ivopts.c.
9305         * tree-ssa-loop-ivopts.c (compute_max_addr_offset): Delete.
9306         (addr_list, addr_offset_valid_p): New.
9307         (split_address_groups): Check offset validity with above function.
9308         (gt-tree-ssa-loop-ivopts.h): Include header file.
9310 2017-05-05  Nathan Sidwell  <nathan@acm.org>
9312         * config.gcc (arm*-*-*): Add missing 'fi'.
9314 2017-05-05  Steve Ellcey  <sellcey@cavium.com>
9316         * doc/invoke.texi (-fopt-info): Explicitly say order of options
9317         included in -fopt-info does not matter.
9318         * doc/optinfo.texi (-fopt-info): Fix description of default
9319         behavour. Explicitly say order of options included in -fopt-info
9320         does not matter.
9322 2017-05-05  Thomas Preud'homme  <thomas.preudhomme@arm.com>
9324         * config.gcc: Allow combinations of aprofile and rmprofile values for
9325         --with-multilib-list.
9326         * config/arm/t-multilib: New file.
9327         * config/arm/t-aprofile: Remove initialization of MULTILIB_*
9328         variables.  Remove setting of ISA and floating-point ABI in
9329         MULTILIB_OPTIONS and MULTILIB_DIRNAMES.  Set architecture and FPU in
9330         MULTI_ARCH_OPTS_A and MULTI_ARCH_DIRS_A rather than MULTILIB_OPTIONS
9331         and MULTILIB_DIRNAMES respectively.  Add comment to introduce all
9332         matches.  Add architecture matches for marvel-pj4 and generic-armv7-a
9333         CPU options.
9334         * config/arm/t-rmprofile: Likewise except for the matches changes.
9335         * doc/install.texi (--with-multilib-list): Document the combination of
9336         aprofile and rmprofile values and warn about pitfalls in doing that.
9338 2017-05-05  Wilco Dijkstra  <wdijkstr@arm.com>
9340         * config/aarch64/aarch64.md (movsi_aarch64): Remove '*' from r=w.
9341         (movdi_aarch64): Likewise.
9343 2017-05-05  Jakub Jelinek  <jakub@redhat.com>
9345         PR tree-optimization/80632
9346         * tree-switch-conversion.c (struct switch_conv_info): Add target_vop
9347         field.
9348         (build_arrays): Initialize it for virtual phis.
9349         (fix_phi_nodes): Use it for virtual phis.
9351         PR tree-optimization/80558
9352         * tree-vrp.c (extract_range_from_binary_expr_1): Optimize
9353         [x, y] op z into [x op, y op z] for op & or | if conditions
9354         are met.
9356 2017-05-05  Andre Vieira  <andre.simoesdiasvieira@arm.com>
9357             Prakhar Bahuguna  <prakhar.bahuguna@arm.com>
9359         PR target/71607
9360         * config/arm/arm.md (use_literal_pool): Remove.
9361         (64-bit immediate split): No longer takes cost into consideration
9362         if arm_disable_literal_pool is enabled.
9363         * config/arm/arm.c (arm_tls_referenced_p): Add diagnostic if TLS is
9364         used when arm_disable_literal_pool is enabled.
9365         (arm_max_const_double_inline_cost): Remove use of
9366         arm_disable_literal_pool.
9367         (push_minipool_fix): Add assert.
9368         (arm_reorg): Add return if arm_disable_literal_pool is enabled.
9369         * config/arm/vfp.md (no_literal_pool_df_immediate): New.
9370         (no_literal_pool_sf_immediate): New.
9372 2017-05-05  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
9374         PR tree-optimization/80613
9375         * tree-ssa-dce.c (propagate_necessity): Remove cases for
9376         BUILT_IN_STRDUP and BUILT_IN_STRNDUP.
9378 2017-05-05  Richard Biener  <rguenther@suse.de>
9380         * tree-ssa-pre.c (get_or_alloc_expr_for): Simplify.
9382 2017-05-05  Georg-Johann Lay  <avr@gjlay.de>
9384         * config/avr/avr.md [flag_strict_overflow]: Remove any occurence
9385         of this flag from insn conditions due to removal from r247495.
9387 2017-05-05  Wilco Dijkstra  <wdijkstr@arm.com>
9389         * config/arm/aarch-common.c (arm_early_load_addr_dep_ptr):
9390         New function.
9391         (arm_early_store_addr_dep_ptr): Likewise.
9392         * config/arm/aarch-common-protos.h
9393         (arm_early_load_addr_dep_ptr): Add prototype.
9394         (arm_early_store_addr_dep_ptr): Likewise.
9395         * config/arm/cortex-a53.md: Add new bypasses.
9397 2017-05-05  Jakub Jelinek  <jakub@redhat.com>
9399         * tree.c (next_type_uid): Change type to unsigned.
9400         (type_hash_canon): Decrement back next_type_uid if
9401         freeing a type node with the highest TYPE_UID.  For INTEGER_TYPEs
9402         also ggc_free TYPE_MIN_VALUE, TYPE_MAX_VALUE and TYPE_CACHED_VALUES
9403         if possible.
9405 2017-05-04  Martin Sebor  <msebor@redhat.com>
9407         * builtins.c: Fix a trivial typo in a comment.
9409         PR middle-end/79234
9410         * builtins.c (check_sizes): Adjust to handle reading past the end.
9411         Avoid printing excessive upper bound of ranges.  Use %E to print
9412         tree nodes instead of converting them to %wu.
9413         (expand_builtin_memchr): New function.
9414         (compute_dest_size): Rename...
9415         (compute_objsize): ...to this.
9416         (expand_builtin_memcpy): Adjust.
9417         (expand_builtin_mempcpy): Adjust.
9418         (expand_builtin_strcat): Adjust.
9419         (expand_builtin_strcpy): Adjust.
9420         (check_strncat_sizes): Adjust.
9421         (expand_builtin_strncat): Adjust.
9422         (expand_builtin_strncpy): Adjust and simplify.
9423         (expand_builtin_memset): Adjust.
9424         (expand_builtin_bzero): Adjust.
9425         (expand_builtin_memcmp): Adjust.
9426         (expand_builtin): Handle memcmp.
9427         (maybe_emit_chk_warning): Check strncat just once.
9429 2017-05-04  Martin Sebor  <msebor@redhat.com>
9431         PR preprocessor/79214
9432         PR middle-end/79222
9433         PR middle-end/79223
9434         * builtins.c (check_sizes): Add inlining context and issue
9435         warnings even when -Wno-system-headers is set.
9436         (check_strncat_sizes): Same.
9437         (expand_builtin_strncat): Same.
9438         (expand_builtin_memmove): New function.
9439         (expand_builtin_stpncpy): Same.
9440         (expand_builtin): Handle memmove and stpncpy.
9442 2017-05-04  Bin Cheng  <bin.cheng@arm.com>
9444         * tree-ssa-loop-ivopts.c (struct cost_pair): Remove field inv_expr
9445         which is not used any more.
9447 2017-05-04  Wilco Dijkstra  <wdijkstr@arm.com>
9449         * config/aarch64/aarch64.c (generic_tunings): Update prefetch model.
9451 2017-05-04  Wilco Dijkstra  <wdijkstr@arm.com>
9453         * config/aarch64/aarch64.c (cortexa35_tunings): Set jump alignment to 4.
9454         (cortexa53_tunings): Likewise.
9455         (cortexa57_tunings): Likewise.
9456         (cortexa72_tunings): Likewise.
9457         (cortexa73_tunings): Likewise.
9459 2017-05-04  Wilco Dijkstra  <wdijkstr@arm.com>
9461         * config/aarch64/aarch64.c (generic_tunings): Set jump alignment to 4.
9462         Set loop alignment to 8.
9464 2017-05-04  Martin Sebor  <msebor@redhat.com>
9466         PR translation/80280
9467         * builtins.c (expand_builtin_object_size): Add missing quoting to
9468         %D and like directives.
9469         * hsa-gen.c (hsa_type_for_scalar_tree_type): Same.
9470         (hsa_type_for_tree_type): Same.
9471         (verify_function_arguments): Same.
9472         * symtab.c (symbol_table::change_decl_assembler_name): Same.
9473         * varasm.c (get_section): Same.
9474         (mark_weak): Same.
9476 2017-05-04  Martin Sebor  <msebor@redhat.com>
9478         PR translation/80280
9479         * config/i386/i386.c (ix86_function_versions): Quote a %D directive.
9481 2017-05-04  Wilco Dijkstra  <wdijkstr@arm.com>
9483         * config/aarch64/aarch64.c (generic_addrcost_table):
9484         Change HI/TI mode setting.
9486 2017-05-04  Martin Jambor  <mjambor@suse.cz>
9488         PR tree-optimization/80622
9489         * tree-sra.c (comes_initialized_p): New function.
9490         (build_accesses_from_assign): Only set write lazily when
9491         comes_initialized_p is false.
9492         (analyze_access_subtree): Use comes_initialized_p.
9493         (propagate_subaccesses_across_link): Assert !comes_initialized_p
9494         instead of testing for PARM_DECL.
9496 2017-05-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9498         * config/aarch64/aarch64.md (prefetch); Adjust predicate and
9499         constraint on operand 0 to allow more general addressing modes.
9500         Adjust output template.
9501         * config/aarch64/aarch64.c (aarch64_address_valid_for_prefetch_p):
9502         New function.
9503         * config/aarch64/aarch64-protos.h
9504         (aarch64_address_valid_for_prefetch_p): Declare prototype.
9505         * config/aarch64/constraints.md (Dp): New address constraint.
9506         * config/aarch64/predicates.md (aarch64_prefetch_operand): New
9507         predicate.
9509 2017-05-04  Jan Hubicka  <hubicka@ucw.cz>
9511         * ipa-cp.c (perform_estimation_of_a_value): Drop base_time parameter;
9512         update use of estimate_ipcp_clone_size_and_time.
9513         (estimate_local_effects): Update use of
9514         estimate_ipcp_clone_size_and_time and perform_estimation_of_a_value.
9515         * ipa-inline.h (estimate_ipcp_clone_size_and_time): Update prototype.
9516         * ipa-inline-analysis.c (estimate_ipcp_clone_size_and_time):
9517         Return nonspecialized time.
9519 2017-05-04  Richard Biener  <rguenther@suse.de>
9521         * tree-ssa-alias.c (get_continuation_for_phi): Improve looking
9522         for the last VUSE which def dominates the PHI.  Directly call
9523         maybe_skip_until.
9524         (get_continuation_for_phi_1): Remove.
9526 2017-05-04  Richard Sandiford  <richard.sandiford@linaro.org>
9528         * tree-ssa-loop-manip.c (niter_for_unrolled_loop): Add commentary
9529         to explain the use of truncating division.  Cap the number of
9530         iterations to the maximum given by nb_iterations_upper_bound,
9531         if defined.
9533 2017-05-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>
9535         * configure.ac (--enable-mingw-wildcard): Add new configurable feature.
9536         * configure: Regenerate.
9537         * config.in: Regenerate.
9538         * config/i386/driver-mingw32.c: new file.
9539         * config/i386/x-mingw32: Add rule to build driver-mingw32.o.
9540         * config.host: Link driver-mingw32.o on MinGW host.
9541         * doc/install.texi: Document new --enable-mingw-wildcard configure
9542         option.
9544 2017-05-04  Marek Polacek  <polacek@redhat.com>
9546         PR tree-optimization/80612
9547         * calls.c (get_size_range): Check for INTEGRAL_TYPE_P.
9549 2017-05-04  Prakhar Bahuguna  <prakhar.bahuguna@arm.com>
9550             Andre Simoes Dias Vieira  <andre.simoesdiasvieira@arm.com>
9552         * config/arm/arm.md (movsi): Change TARGET_32BIT to TARGET_HAVE_MOVT.
9553         (movt splitter): Likewise.
9554         * config/arm/arm.c (arm_option_check_internal): Change arm_arch_thumb2
9555         to TARGET_HAVE_MOVT, and merge with -mslow-flash-data check.
9556         (const_ok_for_arm): Change else to else if (TARGET_THUMB2) and add else
9557         block for Thumb-1 with MOVT.
9558         (thumb2_legitimate_address_p): Move code block ...
9559         (can_avoid_literal_pool_for_label_p): ... into this new function.
9560         (thumb1_legitimate_address_p): Add check for TARGET_HAVE_MOVT and
9561         literal pool.
9562         (thumb_legitimate_constant_p): Add conditional on TARGET_HAVE_MOVT
9563         * doc/invoke.texi (-mpure-code): Change "ARMv7-M targets" for
9564         "M-profile targets with the MOVT instruction".
9566 2017-05-04  Prakhar Bahuguna  <prakhar.bahuguna@arm.com>
9568         * config/arm/arm-builtins.c (arm_init_builtins): Rename
9569         __builtin_arm_ldfscr to __builtin_arm_get_fpscr, and rename
9570         __builtin_arm_stfscr to __builtin_arm_set_fpscr.
9572 2017-05-04  Martin Liska  <mliska@suse.cz>
9574         * tree-vrp.c (simplify_cond_using_ranges_2): Remove unused
9575         variable cond_code.
9577 2017-05-04  Richard Biener  <rguenther@suse.de>
9579         * tree.c (array_at_struct_end_p): Handle arrays at struct
9580         end with flexarrays more conservatively.  Refactor and treat
9581         arrays of arrays or aggregates more strict.  Fix
9582         VIEW_CONVERT_EXPR handling.  Remove allow_compref argument.
9583         * tree.c (array_at_struct_end_p): Adjust prototype.
9584         * emit-rtl.c (set_mem_attributes_minus_bitpos): Adjust.
9585         * gimple-fold.c (get_range_strlen): Likewise.
9586         * tree-chkp.c (chkp_may_narrow_to_field): Likewise.
9588 2017-05-04  Richard Biener  <rguenther@suse.de>
9590         PR tree-optimization/31130
9591         * tree-vrp.c (needs_overflow_infinity): Remove as always returning
9592         false.
9593         (supports_overflow_infinity): Likewise.
9594         (is_negative_overflow_infinity): Likewise.
9595         (is_positive_overflow_infinity): Likewise.
9596         (is_overflow_infinity): Likewise.
9597         (stmt_overflow_infinity): Likewise.
9598         (overflow_infinity_range_p): Likewise.
9599         (usable_range_p): Remove as always returning true.
9600         (make_overflow_infinity): Remove.
9601         (negative_overflow_infinity): Likewise.
9602         (positive_overflow_infinity): Likewise.
9603         (avoid_overflow_infinity): Likewise.
9604         (set_value_range): Adjust accordingly.
9605         (set_value_range_to_nonnegative): Likewise, remove now unused
9606         overflow_infinity arg.
9607         (vrp_operand_equal_p): Adjust.
9608         (update_value_range): Likewise.
9609         (range_int_cst_singleton_p): Likewise.
9610         (operand_less_p): Likewise.
9611         (compare_values_warnv): Likewise.
9612         (extract_range_for_var_from_comparison_expr): Likewise.
9613         (vrp_int_const_binop): Likewise.
9614         (zero_nonzero_bits_from_vr): Likewise.
9615         (extract_range_from_multiplicative_op_1): Likewise.
9616         (extract_range_from_binary_expr_1): Likewise.
9617         (extract_range_from_unary_expr): Likewise.
9618         (extract_range_from_comparison): Likewise.
9619         (extract_range_basic): Likewise.
9620         (adjust_range_with_scev): Likewise.
9621         (compare_ranges): Likewise.
9622         (compare_range_with_value): Likewise.
9623         (dump_value_range): Likewise.
9624         (test_for_singularity): Likewise, remove strict_overflow_p parameter
9625         never used.
9626         (simplify_cond_using_ranges): Adjust.
9628 2017-05-04  Pekka Jääskeläinen  <pekka.jaaskelainen@parmance.com>
9630         * brig-builtins.def: Added a builtin for class_f64.
9631         * builtin-types.def: Added a builtin type needed by class_f64.
9633 2017-05-03  Jason Merrill  <jason@redhat.com>
9635         * timevar.def: Add TV_CONSTEXPR.
9637 2017-05-03  David Malcolm  <dmalcolm@redhat.com>
9639         * common.opt (fdiagnostics-parseable-fixits): Fix typo.
9641 2017-05-03  Martin Jambor  <mjambor@suse.cz>
9643         * ipa-prop.c (ipa_update_after_lto_read): Removed.
9644         * ipa-prop.h (ipa_update_after_lto_read): Remove declaration.
9645         * ipa-cp.c (ipcp_propagate_stage): Do not call
9646         ipa_update_after_lto_read.
9647         * ipa-inline.c (ipa_inline): Likewise.
9649 2017-05-03  Martin Jambor  <mjambor@suse.cz>
9651         * ipa-prop.h (ipa_edge_args): Make a class.  Mark with for_user GTY
9652         tag.  Added a default constructor and a destructor.
9653         (ipa_edge_args_sum_t): New class;
9654         (ipa_edge_args_sum): Declare.
9655         (ipa_edge_args_vector): Remove declaration.
9656         (IPA_EDGE_REF): Use ipa_edge_args_sum.
9657         (ipa_free_edge_args_substructures): Remove declaration.
9658         (ipa_check_create_edge_args): Use ipa_edge_args_sum.
9659         (ipa_edge_args_info_available_for_edge_p): Likewise.
9660         * ipa-prop.c (ipa_edge_args_vector): Removed.
9661         (edge_removal_hook_holder): Likewise.
9662         (edge_duplication_hook_holder): Likewise.
9663         (ipa_edge_args_sum): New variable.
9664         (ipa_propagate_indirect_call_infos): Test ipa_edge_args_sum instead of
9665         ipa_edge_args_vector.
9666         (ipa_free_edge_args_substructures): Likewise.
9667         (ipa_free_all_edge_args): Free ipa_edge_args_sum instead of
9668         ipa_edge_args_vector.
9669         (ipa_edge_removal_hook): Turned into method
9670         ipa_edge_args_sum_t::remove.
9671         (ipa_edge_duplication_hook): Turned into method
9672         ipa_edge_args_sum_t::duplicate.
9673         (ipa_register_cgraph_hooks): Create ipa_edge_args_sum instead of
9674         registering edge hooks.
9675         (ipa_unregister_cgraph_hooks): Do not unregister edge hooks.
9676         * ipa-inline-analysis.c (estimate_function_body_sizes): Test
9677         ipa_edge_args_sum instead of ipa_edge_args_vector.
9678         * ipa-profile.c (ipa_profile): Likewise.
9680 2017-05-03  Martin Jambor  <mjambor@suse.cz>
9682         * symbol-summary.h (function_summary): New method exists.
9683         (function_summary::symtab_removal): Deallocate through release.
9684         (call_summary): New class.
9685         (gt_ggc_mx): New overload.
9686         (gt_pch_nx): Likewise.
9687         (gt_pch_nx): Likewise.
9689 2017-05-03  Jeff Law  <law@redhat.com>
9691         PR tree-optimization/78496
9692         * tree-vrp.c (simplify_cond_using_ranges_1): Renamed
9693         from simplify_cond_using_ranges.  Split off code to walk
9694         backwards through casts into ...
9695         (simplify_cond_using_ranges_2): New function.
9696         (simplify_stmt_using_ranges): Call simplify_cond_using_ranges_1.
9697         (execute_vrp): After identifying jump threads, call
9698         simplify_cond_using_ranges_2.
9700 2017-05-03  Jan Hubicka  <hubicka@ucw.cz>
9702         PR bootstrap/80609
9703         * ipa-inline.h (inline_summary): Add ctor.
9704         (create_ggc): Do not use ggc_cleared_alloc.
9706 2017-05-03  Jeff Downs  <heydowns@somuchpressure.net>
9707             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9709         * gcc.c (handle_braces): Support escaping in switch matching
9710         text.
9711         * doc/invoke.texi (Spec Files): Document it.
9712         Remove superfluous @code markup in items.
9714 2017-05-03  David Malcolm  <dmalcolm@redhat.com>
9716         * diagnostic-show-locus.c (struct column_range): New struct.
9717         (get_affected_columns): New function.
9718         (get_printed_columns): New function.
9719         (struct correction): New struct.
9720         (correction::ensure_capacity): New function.
9721         (correction::ensure_terminated): New function.
9722         (struct line_corrections): New struct.
9723         (line_corrections::~line_corrections): New dtor.
9724         (line_corrections::add_hint): New function.
9725         (layout::print_trailing_fixits): Reimplement in terms of the new
9726         classes.
9727         (selftest::test_overlapped_fixit_printing): New function.
9728         (selftest::diagnostic_show_locus_c_tests): Call it.
9730 2017-05-03  Nathan Sidwell  <nathan@acm.org>
9732         Canonicalize canonical type hashing
9733         * tree.h (type_hash_canon_hash): Declare.
9734         * tree.c (type_hash_list, attribute_hash_list): Move into
9735         type_hash_canon_hash.
9736         (build_type_attribute_qual_variant): Break out hash code calc into
9737         type_hash_canon_hash.
9738         (type_hash_canon_hash): New.  Generic type hash computation.
9739         (build_range_type_1, build_array_type_1, build_function_type,
9740         build_method_type_directly, build_offset_type, build_complex_type,
9741         make_vector_type): Call it.
9743 2017-05-03  Richard Biener  <rguenther@suse.de>
9745         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
9746         When all DRs have unknown misaligned do not always peel
9747         when there is a store but apply the same costing model as if
9748         there were only loads.
9750 2017-05-03  Richard Biener  <rguenther@suse.de>
9752         Revert
9753         PR tree-optimization/80492
9754         * tree-ssa-alias.c (decl_refs_may_alias_p): Handle
9755         compare_base_decls returning dont-know properly.
9757 2017-05-03  Thomas Preud'homme  <thomas.preudhomme@arm.com>
9759         * config/arm/iterators.md (CCSI): New mode iterator.
9760         (arch): New mode attribute.
9761         * config/arm/sync.md (atomic_compare_and_swap<mode>_1): Rename into ...
9762         (atomic_compare_and_swap<CCSI:arch><NARROW:mode>_1): This and ...
9763         (atomic_compare_and_swap<CCSI:arch><SIDI:mode>_1): This.  Use CCSI
9764         code iterator for success result mode.
9765         * config/arm/arm.c (arm_expand_compare_and_swap): Adapt code to use
9766         the corresponding new insn generators.
9768 2017-05-03  Bin Cheng  <bin.cheng@arm.com>
9770         Revert r247509
9771         2017-05-02  Bin Cheng  <bin.cheng@arm.com>
9772         * rtlanal.c (rtx_cost): Handle TRUNCATE between tieable modes.
9774 2017-05-03  Richard Sandiford  <richard.sandiford@linaro.org>
9776         * tree-data-ref.h (SUB_CONFLICTS_IN_A): Wrap SUB argument in brackets.
9777         (SUB_CONFLICTS_IN_B, SUB_LAST_CONFLICT, SUB_DISTANCE): Likewise.
9778         (DDR_A): Wrap DDR argument in brackets.
9779         (DDR_B, DDR_AFFINE_P, DDR_ARE_DEPENDENT, DDR_SUBSCRIPTS): Likewise.
9780         (DDR_LOOP_NEST, DDR_INNER_LOOP, DDR_SELF_REFERENCE): Likewise.
9781         (DDR_REVERSED_P): Likewise.
9783 2017-05-03  Jakub Jelinek  <jakub@redhat.com>
9785         PR tree-optimization/79472
9786         * tree-switch-conversion.c (struct switch_conv_info): Add
9787         contiguous_range and default_case_nonstandard fields.
9788         (collect_switch_conv_info): Compute contiguous_range and
9789         default_case_nonstandard fields, don't clear final_bb if
9790         contiguous_range and only the default case doesn't have the required
9791         structure.
9792         (check_all_empty_except_final): Set default_case_nonstandard instead
9793         of failing if contiguous_range and the default case doesn't have empty
9794         block.
9795         (check_final_bb): Add SWTCH argument, don't fail if contiguous_range
9796         and only the default case doesn't have the required constants.  Skip
9797         virtual phis.
9798         (gather_default_values): Skip virtual phis.  Allow non-NULL CASE_LOW
9799         if default_case_nonstandard.
9800         (build_constructors): Build constant 1 just once.  Assert that default
9801         values aren't inserted in between cases if contiguous_range.  Skip
9802         virtual phis.
9803         (build_arrays): Skip virtual phis.
9804         (prune_bbs): Add DEFAULT_BB argument, don't remove that bb.
9805         (fix_phi_nodes): Don't add e2f phi arg if default_case_nonstandard.
9806         Handle virtual phis.
9807         (gen_inbound_check): Handle default_case_nonstandard case.
9808         (process_switch): Adjust check_final_bb caller.  Call
9809         gather_default_values with the first non-default case instead of
9810         default case if default_case_nonstandard.
9812 2017-05-02  Nathan Sidwell  <nathan@acm.org>
9814         * ggc-page.c (move_ptes_to_front): Replace unsigned >0 with i--
9815         check.  Fix formatting.
9817 2017-05-02  Jan Hubicka  <hubicka@ucw.cz>
9819         * ipa-inline-analysis.c (estimate_node_size_and_time): Allow roundoff
9820         errors when comparing specialized and unspecialized times.
9822 2017-05-02  David Malcolm  <dmalcolm@redhat.com>
9824         * diagnostic-show-locus.c
9825         (layout::should_print_annotation_line_p): Make private.
9826         (layout::print_annotation_line): Make private.
9827         (layout::annotation_line_showed_range_p): Make private.
9828         (layout::show_ruler): Make private.
9829         (layout::print_source_line): Make private.  Pass in line and
9830         line_width, rather than calling location_get_source_line.  Drop
9831         returned value.
9832         (layout::print_leading_fixits): New method.
9833         (layout::print_any_fixits): Rename to...
9834         (layout::print_trailing_fixits): ...this, and make private.
9835         Don't print newline fixits.
9836         (diagnostic_show_locus): Move logic for printing one row into...
9837         (layout::print_line): ...this new function.  Move the
9838         location_get_source_line call and error-handling from
9839         print_source_line to here.  Call print_leading_fixits, and rename
9840         print_any_fixits to print_trailing_fixits.
9841         (selftest::test_fixit_insert_containing_newline): Update now that
9842         newlines are partially supported.
9843         (selftest::test_fixit_insert_containing_newline_2): New test.
9844         (selftest::test_fixit_replace_containing_newline): Update comments.
9845         (selftest::diagnostic_show_locus_c_tests): Call the new test.
9846         * edit-context.c (class added_line): New class.
9847         (class edited_line): Describe newline handling in comment.
9848         (edited_line::actually_edited_p): New method.
9849         (edited_line::print_content): Delete redundant decl.
9850         (edited_line::m_predecessors): New field.
9851         (edited_file::print_content): Call edited_line::print_content.
9852         (edited_file::print_diff): Update to support newlines.
9853         (edited_file::print_diff_hunk): Likewise.
9854         (edited_file::print_run_of_changed_lines): New function.
9855         (edited_file::print_diff_line): Convert to...
9856         (print_diff_line): ...this.
9857         (edited_file::get_effective_line_count): New function.
9858         (edited_line::edited_line): Initialize new field m_predecessors.
9859         (edited_line::~edited_line): Clean up m_predecessors.
9860         (edited_line::apply_fixit): Handle newlines.
9861         (edited_line::get_effective_line_count): New function.
9862         (edited_line::print_content): New function.
9863         (edited_line::print_diff_lines): New function.
9864         (selftest::test_applying_fixits_insert_containing_newline): New
9865         test.
9866         (selftest::test_applying_fixits_replace_containing_newline): New
9867         test.
9868         (selftest::insert_line): New function.
9869         (selftest::test_applying_fixits_multiple_lines): Add example of
9870         inserting a line.
9871         (selftest::edit_context_c_tests): Call the new tests.
9873 2017-05-02  Bin Cheng  <bin.cheng@arm.com>
9875         * tree-ssa-loop-ivopts.c (get_scaled_computation_cost_at): Delete
9876         parameter cand.  Update dump information.
9877         (get_computation_cost): Update uses.
9879 2017-05-02  Bin Cheng  <bin.cheng@arm.com>
9881         * tree-ssa-loop-ivopts.c (get_computation_aff_1): New.
9882         (get_computation_aff): Reorder parameters.  Use get_computation_aff_1.
9883         (get_computation_at, rewrite_use_address): Update use of
9884         get_computation_aff.
9886 2017-05-02  Bin Cheng  <bin.cheng@arm.com>
9888         * tree-ssa-loop-ivopts.c (get_computation_at): Reorder parameters.
9889         (get_computation): Delete.
9890         (get_computation_cost): Implement like get_computation_cost_at.
9891         Use get_computation_at.
9892         (get_computation_cost_at): Delete.
9893         (rewrite_use_nonlinear_expr): Use get_computation_at.
9894         (rewrite_use_compare, remove_unused_ivs): Ditto.
9896 2017-05-02  Bin Cheng  <bin.cheng@arm.com>
9898         * tree-ssa-loop-ivopts.c (rewrite_use_address): Simple refactor.
9900 2017-05-02  Bin Cheng  <bin.cheng@arm.com>
9902         * tree-ssa-loop-ivopts.c (struct iv_ca): Rename n_regs to n_invs.
9903         (ivopts_global_cost_for_size): Rename parameter and update uses.
9904         (iv_ca_recount_cost): Update uses.
9905         (iv_ca_set_remove_invs, iv_ca_set_no_cp): Record invariants and
9906         candidates seperately in n_invs and n_cands.
9907         (iv_ca_set_add_invs, iv_ca_set_cp, iv_ca_new): Ditto.
9909 2017-05-02  Bin Cheng  <bin.cheng@arm.com>
9911         * tree-ssa-loop-ivopts.c (struct walk_tree_data): New.
9912         (find_inv_vars_cb): New.
9913         (find_depends): Renamed to ...
9914         (find_inv_vars): ... this.
9915         (add_candidate_1, force_var_cost): Call find_inv_vars.
9916         (split_address_cost, determine_group_iv_cost_cond): Ditto.
9918 2017-05-02  Bin Cheng  <bin.cheng@arm.com>
9920         * tree-ssa-loop-ivopts.c (struct cost_pair): Rename depends_on to
9921         inv_vars.  Add inv_exprs.
9922         (struct iv_cand): Rename depends_on to inv_vars.
9923         (struct ivopts_data): Rename max_inv_id/n_invariant_uses to
9924         max_inv_var_id/n_inv_var_uses.  Move max_inv_expr_id around.
9925         Refactor field used_inv_exprs from has_map to array n_inv_expr_uses.
9926         (dump_cand): Dump inv_vars.
9927         (tree_ssa_iv_optimize_init): Support inv_vars and inv_exprs.
9928         (record_invariant, find_depends, add_candidate_1): Ditto.
9929         (set_group_iv_cost, force_var_cost): Ditto.
9930         (split_address_cost, ptr_difference_cost, difference_cost): Ditto.
9931         (get_computation_cost_at, get_computation_cost): Ditto.
9932         (determine_group_iv_cost_generic): Ditto.
9933         (determine_group_iv_cost_address): Ditto.
9934         (determine_group_iv_cost_cond, autoinc_possible_for_pair): Ditto.
9935         (determine_group_iv_costs): Ditto.
9936         (iv_ca_recount_cost): Update call to ivopts_global_cost_for_size.
9937         (iv_ca_set_remove_invariants): Renamed to ...
9938         (iv_ca_set_remove_invs): ... this.  Support inv_vars and inv_exprs.
9939         (iv_ca_set_no_cp): Use iv_ca_set_remove_invs.
9940         (iv_ca_set_add_invariants):  Renamed to ...
9941         (iv_ca_set_add_invs): ... this.  Support inv_vars and inv_exprs.
9942         (iv_ca_set_cp): Use iv_ca_set_add_invs.
9943         (iv_ca_has_deps): Support inv_vars and inv_exprs.
9944         (iv_ca_new, iv_ca_free, iv_ca_dump, free_loop_data): Ditto.
9945         (create_new_ivs): Remove useless dump.
9947 2017-05-02  Bin Cheng  <bin.cheng@arm.com>
9949         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Remove pseudo
9950         iv_cand code.
9951         (determine_group_iv_cost_cond, determine_iv_cost): Ditto.
9952         (iv_ca_set_no_cp, create_new_iv): Ditto.
9954 2017-05-02  Bin Cheng  <bin.cheng@arm.com>
9956         * rtlanal.c (rtx_cost): Handle TRUNCATE between tieable modes.
9958 2017-05-02  Xi Ruoyao  <ryxi@stu.xidian.edu.cn>
9960         * tree.h (EXPR_CILK_SPAWN): Use macro TREE_CHECK2 instead of
9961         function tree_check2.
9963 2017-05-02  Martin Liska  <mliska@suse.cz>
9965         * doc/gcov.texi: Add missing preposition.
9966         * gcov.c (function_info::function_info): Properly fill up
9967         all member variables.
9969 2017-05-02  Tamar Christina  <tamar.christina@arm.com>
9971         * expr.c (expand_expr_real_2): Re-cost if previous costs are the same.
9973 2017-05-02  Tamar Christina  <tamar.christina@arm.com>
9975         * simplify-rtx.c (simplify_binary_operation_1): Add LSHIFTRT case.
9977 2017-05-02  Martin Liska  <mliska@suse.cz>
9979         PR lto/77954.
9980         * lto-streamer-in.c (lto_read_tree_1): Remove
9981         LTO_STREAMER_DEBUG.
9982         * lto-streamer.c (struct tree_hash_entry): Likewise.
9983         (struct tree_entry_hasher): Likewise.
9984         (tree_entry_hasher::hash): Likewise.
9985         (tree_entry_hasher::equal): Likewise.
9986         (lto_streamer_init): Likewise.
9987         (lto_orig_address_map): Likewise.
9988         (lto_orig_address_get): Likewise.
9989         (lto_orig_address_remove): Likewise.
9990         * lto-streamer.h: Likewise.
9991         * tree-streamer-in.c (streamer_alloc_tree): Likewise.
9992         * tree-streamer-out.c (streamer_write_tree_header): Likewise.
9994 2017-05-02  Sebastian Peryt  <sebastian.peryt@intel.com>
9996         * config/i386/avx512fintrin.h (_mm_mask_add_round_sd)
9997         (_mm_maskz_add_round_sd, _mm_mask_add_round_ss)
9998         (mm_maskz_add_round_ss, _mm_mask_sub_round_sd)
9999         (mm_maskz_sub_round_sd, _mm_mask_sub_round_ss)
10000         (mm_maskz_sub_round_ss, _mm_mask_add_sd)
10001         (mm_maskz_add_sd, _mm_mask_add_ss, _mm_maskz_add_ss)
10002         (mm_mask_sub_sd, _mm_maskz_sub_sd, _mm_mask_sub_ss)
10003         (mm_maskz_sub_ss): New intrinsics.
10004         * config/i386/i386-builtin-types.def (V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT)
10005         (V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT): New function type aliases.
10006         * config/i386/i386-builtin.def (__builtin_ia32_addsd_mask_round)
10007         (__builtin_ia32_addss_mask_round, __builtin_ia32_subsd_mask_round)
10008         (__builtin_ia32_subss_mask_round): New builtins.
10009         * config/i386/i386.c (V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT)
10010         (V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT): Handle new types.
10011         * config/i386/sse.md (<sse>_vm<plusminus_insn><mode>3<round_name>):
10012         Renamed to ...
10013         (<sse>_vm<plusminus_insn><mode>3<mask_name><round_name>): ... this.
10014         (v<plusminus_mnemonic><ssescalarmodesuffix>\t{<round_op3>%2, %1, %0|%0, %1, %<iptr>2<round_op3>}):
10015         Changed to ...
10016         (v<plusminus_mnemonic><ssescalarmodesuffix>\t{<round_mask_op3>%2, %1, %0<mask_operand3>|%0<mask_operand3>, %1, %<iptr>2<round_mask_op3>}):
10017         ... this.
10019 2017-05-02  Martin Jambor  <mjambor@suse.cz>
10021         PR tree-optimization/78687
10022         * tree-sra.c (access): New field parent.
10023         (process_subtree_disqualification): New function.
10024         (disqualify_candidate): Call it.
10025         (build_accesses_from_assign): Reset write flag if creating an
10026         assighnment link.
10027         (build_access_subtree): Fill in parent field and also prpagate
10028         down grp_write flag.
10029         (create_artificial_child_access): New parameter set_grp_write, set
10030         grp_write to its value.
10031         (propagate_subaccesses_across_link): Also propagate grp_write flag
10032         values.
10033         (propagate_all_subaccesses): Push the closest parent back to work
10034         queue if add_access_to_work_queue returned true.
10036 2017-05-02  Richard Biener  <rguenther@suse.de>
10038         * common.opt (fstrict-overflow): Alias negative to fwrapv.
10039         * doc/invoke.texi (fstrict-overflow): Remove all traces of
10040         -fstrict-overflow documentation.
10041         * tree.h (TYPE_OVERFLOW_UNDEFINED): Do not test flag_strict_overflow.
10042         (POINTER_TYPE_OVERFLOW_UNDEFINED): Test !flag_wrapv instead of
10043         flag_strict_overflow.
10044         * ipa-inline.c (can_inline_edge_p): Do not test flag_strict_overflow.
10045         * lto-opts.c (lto_write_options): Do not stream it.
10046         * lto-wrapper.c (merge_and_complain): Do not handle it.
10047         * opts.c (default_options_table): Do not set -fstrict-overflow.
10048         (finish_options): Likewise do not clear it when sanitizing.
10049         * simplify-rtx.c (simplify_const_relational_operation): Do not
10050         test flag_strict_overflow.
10052 2017-05-02  Uros Bizjak  <ubizjak@gmail.com>
10054         * config/alpha/alpha.md (*add<mode>3_ieee): Merge to add<mode>3
10055         using enabled attribute.
10056         (*sub<mode>3_ieee): Merge to sub<mode>3 using enabled attribute.
10057         (*mul<mode>3_ieee): Merge to mul<mode>3 using enabled attribute.
10058         (*div<mode>3_ieee): Merge to div<mode>3 using enabled attribute.
10059         (*sqrt<mode>2_ieee): Merge to sqrt<mode>2 using enabled attribute.
10060         (*fix_truncdfdi_ieee): Merge to *fix_truncdfdi2 using enabled attribute.
10061         (*fix_truncsfdi_ieee): Merge to *fix_truncsfdi2 using enabled attribute.
10062         (*floatdisf_ieee): Merge to floatdisf2 using enabled attribute.
10063         (*floatdidf_ieee): Merge to floatdidf2 using enabled attribute.
10064         (*truncdfsf2_ieee): Merge to truncdfsf2 using enabled attribute.
10065         (*cmpdf_ieee): Merge to *cmpdf_internal using enabled attribute.
10067 2017-05-02  Uros Bizjak  <ubizjak@gmail.com>
10069         * config/i386/i386.c (ix86_code_end): Use {FIRST,LAST}_INT_REG.
10071 2017-05-02  Richard Biener  <rguenther@suse.de>
10073         PR tree-optimization/80591
10074         Revert
10075         2017-04-10  Richard Biener  <rguenther@suse.de>
10077         * tree-ssa-structalias.c (find_func_aliases): Properly handle
10078         asm inputs.
10080 2017-05-02  Richard Biener  <rguenther@suse.de>
10082         PR tree-optimization/80549
10083         * tree-cfgcleanup.c (mfb_keep_latches): New helper.
10084         (cleanup_tree_cfg_noloop): Create forwarders to known loop
10085         headers if they do not have a preheader.
10087 2017-05-02  Martin Liska  <mliska@suse.cz>
10089         PR other/80589
10090         * common.opt: Fix typo.
10091         * doc/invoke.texi: Likewise.
10093 2017-05-01  Jan Beulich  <jbeulich@suse.com>
10095         * config/i386/sse.md (xop_vpermil2<mode>3): Do not allow operand
10096         swapping, add (x,x,m,x,n) alternative.
10098 2017-05-01  Nathan Sidwell  <nathan@acm.org>
10100         * calls.c (combine_pending_stack_adjustment_and_call): Remove
10101         unnecessary unadjusted_alignment check.
10103 2017-05-01  Xi Ruoyao  <ryxi@stu.xidian.edu.cn>
10105         PR c++/80038
10106         * cilk_common.c (expand_builtin_cilk_detach): Move pedigree
10107         operations here.
10108         * gimplify.c (gimplify_cilk_detach): New function.
10109         (gimplify_call_expr, gimplify_modify_expr): Call it as needed.
10110         * tree-core.h: Document EXPR_CILK_SPAWN.
10111         * tree.h (EXPR_CILK_SPAWN): Define.
10113 2017-05-01  David Malcolm  <dmalcolm@redhat.com>
10115         * diagnostic-show-locus.c (layout::get_expanded_location): Rewrite
10116         to use new fixit_hint representation, using the "replace" logic.
10117         (get_line_span_for_fixit_hint): Likewise.
10118         (layout::print_any_fixits): Likewise.
10119         (selftest::test_one_liner_many_fixits): Rename to...
10120         (selftest::test_one_liner_many_fixits_1): ...this, and update
10121         comment and expected output to reflect that the multiple fix-it
10122         hints are now consolidated into one insertion.
10123         (selftest::test_one_liner_many_fixits_2): New test.
10124         (selftest::test_diagnostic_show_locus_one_liner): Update for
10125         above.
10126         (selftest::test_fixit_consolidation): Update for fix-it API
10127         change.
10128         * diagnostic.c (print_parseable_fixits): Likewise.
10129         * edit-context.c (edited_line::m_line_events): Convert from
10130         auto_vec <line_event *> to auto_vec <line_event>.
10131         (class line_event): Convert from abstract base class to a concrete
10132         class, taking over the role of replace_event.
10133         (class insert_event): Delete.
10134         (class replace_event): Rename to class line_event.  Convert to
10135         half-open range.
10136         (edit_context::add_fixits): Reimplement.
10137         (edit_context::apply_insert): Delete.
10138         (edit_context::apply_replace): Rename to...
10139         (edit_context::apply_fixit): ...this.  Convert to half-open range.
10140         (edited_file::apply_insert): Delete.
10141         (edited_file::apply_replace): Rename to...
10142         (edited_file::apply_fixit): ...this.
10143         (edited_line::~edited_line): Drop deletion of events.
10144         (edited_line::apply_insert): Delete.
10145         (edited_line::apply_replace): Rename to...
10146         (edited_line::apply_fixit): ...this.  Convert to half-open range.
10147         Update for change to type of m_line_events.
10148         * edit-context.h (edit_context::apply_insert): Delete.
10149         (edit_context::apply_replace): Rename to...
10150         (edit_context::apply_fixit): ...this.
10152 2017-05-01  Martin Sebor  <msebor@redhat.com>
10154         * gimple-ssa-sprintf.c (format_integer): Set knownrange when it's
10155         known.
10157 2017-05-01  Uros Bizjak  <ubizjak@gmail.com>
10159         PR target/68491
10160         * config/i386/cpuid.h (__get_cpuid): Always return 0 when
10161         __get_cpuid_max returns 0.
10162         (__get_cpuid_count): Ditto.
10164 2017-05-01  Eric Botcazou  <ebotcazou@adacore.com>
10166         * tree.c (substitute_in_expr) <tcc_vl_exp>: Also inline a call if the
10167         replacement expression is another instance of one of its arguments.
10169 2017-05-01  Jakub Jelinek  <jakub@redhat.com>
10171         PR target/79430
10172         * rtlanal.c (reg_set_p): If reg is a stack_pointer_rtx, also
10173         check for stack push/pop autoinc.
10174         * config/i386/i386.c (ix86_agi_dependent): Return false
10175         if the only reason why modified_in_p returned true is that
10176         addr is SP based and set_insn is a push or pop.
10178 2017-04-29  Jan Hubicka  <hubicka@ucw.cz>
10180         * ipa-inline.c (compute_inlined_call_time): Remove now unnecesary
10181         overflow check.
10183 2017-04-29  Jan Hubicka  <hubicka@ucw.cz>
10185         PR ipa/79224
10186         * ipa-inline-analysis.c (dump_predicate): Add optional parameter NL.
10187         (account_size_time): Use two predicates - exec_pred and
10188         nonconst_pred_ptr.
10189         (evaluate_conditions_for_known_args): Compute both clause and
10190         nonspec_clause.
10191         (evaluate_properties_for_edge): Evaulate both clause and nonspec_clause.
10192         (inline_summary_t::duplicate): Update.
10193         (estimate_function_body_sizes): Caluculate exec and nonconst predicates
10194         separately.
10195         (compute_inline_parameters): Likewise.
10196         (estimate_edge_size_and_time): Update caluclation of time.
10197         (estimate_node_size_and_time): Compute both time and nonspecialized
10198         time.
10199         (estimate_ipcp_clone_size_and_time): Update.
10200         (inline_merge_summary): Update.
10201         (do_estimate_edge_time): Update.
10202         (do_estimate_edge_size): Update.
10203         (do_estimate_edge_hints): Update.
10204         (inline_read_section, inline_write_summary): Stream both new predicates.
10205         * ipa-inline.c (compute_uninlined_call_time): Take uninlined_call_time
10206         as argument.
10207         (compute_inlined_call_time): Cleanup.
10208         (big_speedup_p): Update.
10209         (edge_badness): Update.
10210         * ipa-inline.h (INLINE_TIME_SCALE): Remove.
10211         (size_time_entry): Replace predicate by exec_predicate and
10212         nonconst_predicate.
10213         (edge_growth_cache_entry): Cache both time nad nonspecialized time.
10214         (estimate_edge_time): Return also nonspec_time.
10215         (reset_edge_growth_cache): Update.
10217 2017-04-29  Jakub Jelinek  <jakub@redhat.com>
10219         PR rtl-optimization/80491
10220         * ifcvt.c (noce_process_if_block): When looking for x setter
10221         with missing else_bb, don't check only the insn right before
10222         cond_earliest, but look for the last insn that x is modified in
10223         within the same bb.
10225         PR rtl-optimization/80491
10226         * alias.c (memory_modified_in_insn_p): Return true for CALL_INSNs.
10228 2017-04-29  Marc Glisse  <marc.glisse@inria.fr>
10230         PR tree-optimization/80487
10231         * tree-ssa-alias.c (stmt_kills_ref_p): Handle stpncpy and strncpy.
10233 2017-04-29  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
10235         PR tree-optimization/79697
10236         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Check if callee
10237         is BUILT_IN_STRDUP, BUILT_IN_STRNDUP, BUILT_IN_REALLOC.
10238         (propagate_necessity): Check if def_callee is BUILT_IN_STRDUP or
10239         BUILT_IN_STRNDUP.
10240         * gimple-fold.c (gimple_fold_builtin_realloc): New function.
10241         (gimple_fold_builtin): Call gimple_fold_builtin_realloc.
10243 2017-04-28  Martin Sebor  <msebor@redhat.com>
10245         PR tree-optimization/80523
10246         * gimple-ssa-sprintf.c (target_to_host_charmap): New global variable.
10247         (init_target_to_host_charmap, target_to_host, target_strtol10): New
10248         functions.
10249         (maybe_warn, format_directive, parse_directive): Use new functions.
10250         (pass_sprintf_length::execute): Call init_target_to_host_charmap.
10252 2017-04-28  Marc Glisse  <marc.glisse@inria.fr>
10254         * match.pd (X+Z OP Y+Z, X-Z OP Y-Z, Z-X OP Z-Y): New transformations.
10256 2017-04-28  Bernd Edlinger  <bernd.edlinger@hotmail.de>
10258         * configure.ac (SYSTEM_HEADER_DIR, BUILD_SYSTEM_HEADER_DIR,
10259         target_header_dir): Set correctly.
10260         * configure: Regenerated.
10261         * Makefile.in (BUILD_SYSTEM_HEADER_DIR): New make variabe.
10262         (LIMITS_H_TEST, if_multiarch, stmp-fixinc): Use BUILD_SYSTEM_HEADER_DIR
10263         instead of SYSTEM_HEADER_DIR.
10265 2017-04-28  Jan Hubicka  <hubicka@ucw.cz>
10267         * ipa-cp.c (perform_estimation_of_a_value): Turn time to sreal.
10268         (estimate_local_effects): Likewise.
10269         * ipa-inline.c (compute_inlined_call_time, want_inline_small_function_p,
10270         edge_badness, inline_small_functions, dump_overall_stats): LIkewise.
10271         * ipa-inline.h (edge_growth_cache_entry, estimate_time_after_inlining,
10272         estimate_ipcp_clone_size_and_time, do_estimate_edge_time,
10273         do_estimate_edge_time, estimate_edge_time): Likewise.
10274         * ipa-inline-analysis.c (estimate_node_size_and_time,
10275         estimate_ipcp_clone_size_and_time, do_estimate_edge_time): Likewise.
10276         (estimate_time_after_inlining): Remove.
10278 2017-04-28  Martin Liska  <mliska@suse.cz>
10280         * doc/gcov.texi: Enhance documentation of gcov.
10282 2017-04-28  Martin Liska  <mliska@suse.cz>
10284         * doc/gcov.texi: Sort options in alphabetic order.
10285         * doc/gcov-dump.texi: Likewise.
10286         * doc/gcov-tool.texi: Likewise.
10287         * gcov.c (print_usage): Likewise.
10288         * gcov-dump.c (print_usage): Likewise.
10289         * gcov-tool.c (print_merge_usage_message): Likewise.
10290         (print_rewrite_usage_message): Likewise.
10291         (print_overlap_usage_message): Likewise.
10293 2017-04-28  Martin Liska  <mliska@suse.cz>
10295         PR gcov-profile/53915
10296         * gcov.c (format_gcov): Print 'NAN %' when top > bottom.
10298 2017-04-28  Martin Liska  <mliska@suse.cz>
10300         PR gcov-profile/79891
10301         * gcov.c (add_line_counts): Assign BBs to lines just if the BB
10302         is marked by compiler as living on a line.
10303         (get_cycles_count): Remove usage of the union.
10304         (output_intermediate_file): Likewise.
10305         (find_source): Fix GNU coding style.
10306         (accumulate_line_counts): Remove old non-all block mode.
10307         (output_lines): Remove usage of the union.
10308         * profile.c (output_location): Include all BBs, even if
10309         belonging to a same line (and file) as a previous BB.
10311 2017-04-28  Martin Liska  <mliska@suse.cz>
10313         * gcov.c (process_args): Handle new argument 'w'.
10314         (read_graph_file): Assign ID to BBs.
10315         (output_branch_count): Display BB # if verbose flag is set.
10316         (output_lines): Likewise for arcs.
10317         (print_usage): Add '--verbose' option help.
10318         * doc/gcov.texi: Document --verbose (-w) option.
10320 2017-04-28  Martin Liska  <mliska@suse.cz>
10322         * gcov.c (struct block_location_info): New struct.
10323         (process_file): Fill up the new structure.
10324         (read_graph_file): Replace usage of encoding by the newly added
10325         struct.
10326         (add_line_counts): Likewise.
10327         (accumulate_line_counts): Remove usage of the union.
10328         (function_info::function_info): New function.
10329         (function_info::~function_info): Likewise.
10330         (process_file): Call delete instead of release_function.
10331         (release_function): Release the function.
10332         (release_structures): Call delete instead of release_function.
10333         (solve_flow_graph): Replace usage of num_blocks.
10334         (find_exception_blocks): Likewise.
10335         (output_lines): Fix GNU coding style.
10337 2017-04-28  Martin Liska  <mliska@suse.cz>
10339         PR driver/56469
10340         * coverage.c (coverage_remove_note_file): New function.
10341         * coverage.h: Declare the function.
10342         * toplev.c (finalize): Clean if an error has been seen.
10344 2017-04-28  Martin Liska  <mliska@suse.cz>
10346         PR gcov-profile/80031
10347         * gcov-dump.c (tag_blocks): Just print number of basic blocks.
10348         * gcov-io.h (GCOV_TAG_BLOCKS_NUM): Remove unused macro.
10349         * gcov.c (read_graph_file): Read just number of blocks.
10350         * profile.c (branch_prob): Do not stream 0 flags per a basic
10351         block.
10353 2017-04-28  Martin Liska  <mliska@suse.cz>
10355         * gcov-dump.c (tag_*): Add new argument to declarations.
10356         (dump_gcov_file): Likewise.
10357         (tag_blocks): Add and use new argument depth.
10358         (tag_arcs): Likewise.
10359         (tag_lines): Likewise.
10360         (tag_counters): Likewise.
10361         (tag_summary): Likewise.
10362         (dump_working_sets): Use depth to do a proper indentation.
10364 2017-04-28  Jakub Jelinek  <jakub@redhat.com>
10366         PR bootstrap/80531
10367         * cgraph.h (symtab_node::debug_symtab): No longer inline.
10368         * symtab.c (symtab_node::debug_symtab): Move definition here.
10370 2017-04-28  Richard Biener  <rguenther@suse.de>
10372         * lto-streamer.h (LTO_major_version): Bump to 7.
10374 2017-04-28  Richard Biener  <rguenther@suse.de>
10376         * tree-vrp.c (assert_info): New struct.
10377         (add_assert_info): New helper.
10378         (register_edge_assert_for_2): Refactor to add asserts to a vector
10379         of assert_info.
10380         (register_edge_assert_for_1): Likewise.
10381         (register_edge_assert_for): Likewise.
10382         (finish_register_edge_assert_for): New helper actually registering
10383         asserts where live on edge.
10384         (find_conditional_asserts): Adjust.
10385         (find_switch_asserts): Likewise.
10386         (evrp_dom_walker::try_find_new_range): Generalize.
10387         (evrp_dom_walker::before_dom_children): Use register_edge_assert_for.
10389 2017-04-27  Marek Polacek  <polacek@redhat.com>
10391         PR sanitizer/80349
10392         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Convert
10393         arg10 and arg11 to itype.
10395 2017-04-27  Jonathan Wakely  <jwakely@redhat.com>
10397         * doc/extend.texi (Object Size Checking): Improve grammar.
10399 2017-04-27  Richard Earnshaw  <rearnsha@arm.com>
10401         PR target/80530
10402         * config/aarch64/aarch64.c (aarch64_emit_approx_sqrt): Ensure
10403         that the logic for permitting reciprocal estimates matches that
10404         in use_rsqrt_p.
10406 2017-04-27  Jakub Jelinek  <jakub@redhat.com>
10408         PR c++/80534
10409         * tree.c (type_cache_hasher::equal): Only compare
10410         TYPE_TYPELESS_STORAGE flag on non-aggregate element types.
10411         (build_array_type_1): Only hash TYPE_TYPELESS_STORAGE flag on
10412         non-aggregate element types.
10413         * tree.h (TYPE_TYPELESS_STORAGE): Fix comment typo, add more details
10414         about the flag on ARRAY_TYPEs in the comment, formatting fix.
10416 2017-04-27  Richard Biener  <rguenther@suse.de>
10418         PR middle-end/80533
10419         * emit-rtl.c (set_mem_attributes_minus_bitpos): When
10420         stripping ARRAY_REFs from MEM_EXPR make sure we're not
10421         keeping a reference to a trailing array.
10423 2017-04-27  Richard Biener  <rguenther@suse.de>
10425         PR middle-end/80539
10426         * tree-chrec.c (chrec_fold_plus_poly_poly): Deal with not
10427         being in loop-closed SSA form conservatively.
10428         (chrec_fold_multiply_poly_poly): Likewise.
10430 2017-04-27  Tamar Christina  <tamar.christina@arm.com>
10432         PR middle-end/79665
10433         * expr.c (expand_expr_real_2): Move TRUNC_MOD_EXPR, FLOOR_MOD_EXPR,
10434         CEIL_MOD_EXPR, ROUND_MOD_EXPR cases.
10436 2017-04-27  Jakub Jelinek  <jakub@redhat.com>
10438         PR target/77728
10439         * config/aarch64/aarch64.c (struct aarch64_fn_arg_alignment): Remove.
10440         (aarch64_function_arg_alignment): Return unsigned int again, but still
10441         ignore TYPE_FIELDS chain decls other than FIELD_DECLs.
10442         (aarch64_layout_arg): Adjust aarch64_function_arg_alignment caller.
10443         Don't emit -Wpsabi note.
10444         (aarch64_function_arg_boundary): Likewise.
10445         (aarch64_gimplify_va_arg_expr): Adjust aarch64_function_arg_alignment
10446         caller.
10448 2017-04-26  Nathan Sidwell  <nathan@acm.org>
10450         * tree.h (crc32_unsigned_n): Declare.
10451         (crc32_unsigned, crc32_unsigned): Make inline.
10452         * tree.c (crc32_unsigned_bits): Replace with ...
10453         (crc32_unsigned_n): ... this.
10454         (crc32_unsigned, crc32_byte): Remove.
10455         (crc32_string): Remove unnecessary braces.
10457 2017-04-25  Jan Hubicka  <hubicka@ucw.cz>
10459         * ipa-cp.c (estimate_local_effects): Convert sreal to int.
10460         * ipa-inline-analysis.c (MAX_TIME): Remove.
10461         (account_size_time): Use sreal for time.
10462         (dump_inline_summary): Update.
10463         (estimate_function_body_sizes): Update.
10464         (estimate_edge_size_and_time): Update.
10465         (estimate_calls_size_and_time): Update.
10466         (estimate_node_size_and_time): Update.
10467         (inline_merge_summary): Update.
10468         (inline_update_overall_summary): Update.
10469         (estimate_time_after_inlining): Update.
10470         (inline_read_section): Update.
10471         (inline_write_summary): Update.
10472         * ipa-inline.c (compute_uninlined_call_time): Update.
10473         (compute_inlined_call_time): Update.
10474         (recursive_inlining): Update.
10475         (inline_small_functions): Update.
10476         (dump_overall_stats): Update.
10477         * ipa-inline.h: Include sreal.h.
10478         (size_time_entry): Turn time to sreal.
10479         (inline_summary): Turn self_time nad time to sreal.
10481 2017-04-25  Jan Hubicka  <hubicka@ucw.cz>
10483         * sreal.c: Include backend.h, tree.h, gimple.h, cgraph.h and
10484         data-streamer.h
10485         (sreal::stream_out, sreal::stream_in): New.
10486         * sreal.h (sreal::stream_out, sreal::stream_in): Declare.
10488 2017-04-25  Jakub Jelinek  <jakub@redhat.com>
10490         * Makefile.in (s-options): Invoke opt-gather.awk with LC_ALL=C in the
10491         environment.
10493 2017-04-25  Uros Bizjak  <ubizjak@gmail.com>
10495         PR target/70799
10496         * config/i386/i386.c (dimode_scalar_to_vector_candidate_p):
10497         Handle ASHIFTRT.
10498         (dimode_scalar_chain::compute_convert_gain): Ditto.
10499         (dimode_scalar_chain::make_vector_copies): Ditto.
10500         (dimode_scalar_chain::convert_reg): Ditto.
10501         (dimode_scalar_chain::convert_insn): Ditto.
10502         * config/i386/sse.md (VI24_AVX512BW_1): Remove mode iterator.
10503         (VI248_AVX512BW_1): New mode iterator.
10504         (<mask_codefor>ashr<mode>3<mask_name>): Merge insn pattern with
10505         <mask_codefor>ashrv2di3<mask_name> insn using VI248_AVX512BW_1
10506         mode iterator.
10508 2017-04-25  Martin Sebor  <msebor@redhat.com>
10510         PR tree-optimization/80497
10511         * gimple-ssa-sprintf.c (get_int_range): Avoid assuming all integer
10512         constants are representable in HOST_WIDE_INT.
10513         (parse_directive): Ditto.
10515 2017-04-25  Martin Sebor  <msebor@redhat.com>
10517         PR bootstrap/80486
10518         * dominance.c (dom_info::m_n_basic_blocks): Change type to unsigned.
10519         (new_zero_array): Adjust signature.
10520         (dom_info::dom_init): Used unsigned rather that size_t.
10521         (dom_info::dom_info): Same.
10523 2017-04-25  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
10524             Jakub Jelinek  <jakub@redhat.com>
10526         PR target/77728
10527         * config/arm/arm.c: Include gimple.h.
10528         (aapcs_layout_arg): Emit -Wpsabi note if arm_needs_doubleword_align
10529         returns negative, increment ncrn only if it returned positive.
10530         (arm_needs_doubleword_align): Return int instead of bool,
10531         ignore DECL_ALIGN of non-FIELD_DECL TYPE_FIELDS chain
10532         members, but if there is any such non-FIELD_DECL
10533         > PARM_BOUNDARY aligned decl, return -1 instead of false.
10534         (arm_function_arg): Emit -Wpsabi note if arm_needs_doubleword_align
10535         returns negative, increment nregs only if it returned positive.
10536         (arm_setup_incoming_varargs): Likewise.
10537         (arm_function_arg_boundary): Emit -Wpsabi note if
10538         arm_needs_doubleword_align returns negative, return
10539         DOUBLEWORD_ALIGNMENT only if it returned positive.
10541 2017-04-25  Marek Polacek  <polacek@redhat.com>
10543         PR sanitizer/80349
10544         * fold-const.c (fold_binary_loc) <case BIT_IOR_EXPR>: Convert arg0's
10545         first argument to type.
10547 2017-04-25  Bill Seurer  <seurer@linux.vnet.ibm.com>
10549         PR target/80482
10550         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Change
10551         type checks to test for compatibility instead of equality.
10553 2017-04-25  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
10554             Jakub Jelinek  <jakub@redhat.com>
10556         PR target/77728
10557         * config/aarch64/aarch64.c (struct aarch64_fn_arg_alignment): New
10558         type.
10559         (aarch64_function_arg_alignment): Return aarch64_fn_arg_alignment
10560         struct.  Ignore DECL_ALIGN of decls other than FIELD_DECL for
10561         the alignment computation, but return their maximum in warn_alignment.
10562         (aarch64_layout_arg): Adjust aarch64_function_arg_alignment caller.
10563         Emit a -Wpsabi note if warn_alignment is 16 bytes, but alignment
10564         is smaller.
10565         (aarch64_function_arg_boundary): Likewise.  Simplify using MIN/MAX.
10566         (aarch64_gimplify_va_arg_expr): Adjust aarch64_function_arg_alignment
10567         caller.
10569 2017-04-25  Claudiu Zissulescu  <claziss@synopsys.com>
10571         * config/arc/simdext.md (dmpyh): Fix typo.
10573 2017-04-25  Richard Biener  <rguenther@suse.de>
10575         PR tree-optimization/80492
10576         * alias.c (compare_base_decls): Handle registers with asm
10577         specification conservatively.
10578         * tree-ssa-alias.c (decl_refs_may_alias_p): Handle
10579         compare_base_decls returning dont-know properly.
10581 2017-04-25  Claudiu Zissulescu  <claziss@synopsys.com>
10583         * config/arc/arc.c (LEGITIMATE_OFFSET_ADDRESS_P): Delete macro.
10584         (legitimate_offset_address_p): New function.
10585         (arc_legitimate_address_p): Use above function.
10587 2017-04-25  Claudiu Zissulescu  <claziss@synopsys.com>
10589         * config/arc/arc.c (arc_output_mi_thunk): Emit PIC calls.
10591 2017-04-25  Claudiu Zissulescu  <claziss@synopsys.com>
10593         * config/arc/arc.c (arc_conditional_register_usage): Use ACCL,
10594         ACCH registers whenever they are available.
10596 2017-04-25  Claudiu Zissulescu  <claziss@synopsys.com>
10598         * config/arc/arc.c (arc_conditional_register_usage): Make D0, D1
10599         double regs fix when not used.
10601 2017-04-25  Claudiu Zissulescu  <claziss@synopsys.com>
10603         * config/arc/arc.h (REGNO_OK_FOR_BASE_P): Consider also extension
10604         core registers.
10605         (REG_OK_FOR_INDEX_P_NONSTRICT): Likewise.
10606         (REG_OK_FOR_BASE_P_NONSTRICT): Likewise.
10608 2017-04-25  Claudiu Zissulescu  <claziss@synopsys.com>
10610         * config/arc/arc.c (arc_output_addsi): Check for h-register class
10611         when emitting short ADD instructions.
10613 2017-04-25  Claudiu Zissulescu  <claziss@synopsys.com>
10615         * config/arc/arc.md (cmpsi_cc_insn_mixed): Use 'h' register
10616         constraint.
10617         (cmpsi_cc_c_insn): Likewise.
10618         (cbranchsi4_scratch): Compute proper instruction length using
10619         compact_hreg_operand.
10620         * config/arc/predicates.md (compact_hreg_operand): New predicate.
10622 2017-04-25  Richard Biener  <rguenther@suse.de>
10624         PR middle-end/80509
10625         * passes.c (pass_manager::pass_manager): Initialize
10626         m_name_to_pass_map.
10628 2017-04-25  Richard Biener  <rguenther@suse.de>
10630         PR tree-optimization/79201
10631         * tree-ssa-sink.c (statement_sink_location): Handle calls.
10633 2017-04-25  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
10635         PR target/80464
10636         * config/s390/vector.md: Split MEM->GPR vector moves for
10637         non-s_operand addresses.
10639 2017-04-25  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
10641         PR target/79895
10642         * config/s390/predicates.md (reload_const_wide_int_operand): New
10643         predicate.
10644         * config/s390/s390.md ("movti"): Remove d/P alternative.
10645         ("movti_bigconst"): New pattern definition.
10647 2017-04-25  Dominik Vogt  <vogt@linux.vnet.ibm.com>
10649         PR target/80080
10650         * s390-protos.h (s390_expand_cs_hqi): Removed.
10651         (s390_expand_cs, s390_expand_atomic_exchange_tdsi): New prototypes.
10652         * config/s390/s390.c (s390_emit_compare_and_swap): Handle all integer
10653         modes as well as CCZ1mode and CCZmode.
10654         (s390_expand_atomic_exchange_tdsi, s390_expand_atomic): Adapt to new
10655         signature of s390_emit_compare_and_swap.
10656         (s390_expand_cs_hqi): Likewise, make static.
10657         (s390_expand_cs_tdsi): Generate an explicit compare before trying
10658         compare-and-swap, in some cases.
10659         (s390_expand_cs): Wrapper function.
10660         (s390_expand_atomic_exchange_tdsi): New backend specific expander for
10661         atomic_exchange.
10662         (s390_match_ccmode_set): Allow CCZmode <-> CCZ1 mode.
10663         * config/s390/s390.md ("atomic_compare_and_swap<mode>"): Merge the
10664         patterns for small and large integers.  Forbid symref memory operands.
10665         Move expander to s390.c.  Require cc register.
10666         ("atomic_compare_and_swap<DGPR:mode><CCZZ1:mode>_internal")
10667         ("*atomic_compare_and_swap<TDI:mode><CCZZ1:mode>_1")
10668         ("*atomic_compare_and_swapdi<CCZZ1:mode>_2")
10669         ("*atomic_compare_and_swapsi<CCZZ1:mode>_3"): Use s_operand to forbid
10670         symref memory operands.  Remove CC mode and call s390_match_ccmode
10671         instead.
10672         ("atomic_exchange<mode>"): Allow and implement all integer modes.
10674 2017-04-25  Dominik Vogt  <vogt@linux.vnet.ibm.com>
10676         * config/s390/s390.md (define_peephole2): New peephole to help
10677         combining the load-and-test pattern with volatile memory.
10679 2017-04-25  Dominik Vogt  <vogt@linux.vnet.ibm.com>
10681         * config/s390/s390.md ("cstorecc4"): Use load-on-condition and deal
10682         with CCZmode for TARGET_Z196.
10684 2017-04-25  Jakub Jelinek  <jakub@redhat.com>
10686         PR rtl-optimization/80501
10687         * combine.c (make_compound_operation_int): Set subreg_code to SET
10688         even for AND with mask of the sign bit of mode.
10690         PR rtl-optimization/80500
10691         * loop-unroll.c (combine_var_copies_in_loop_exit): Call copy_rtx on
10692         sum's initial value.
10694 2017-04-25  Julian Brown  <julian@codesourcery.com>
10695             Naveen H.S  <Naveen.Hurugalawadi@cavium.com>
10697         * config/aarch64/thunderx2t99.md (thunderx2t99_crc): New Reservation.
10699 2017-04-25  Marc Glisse  <marc.glisse@inria.fr>
10701         * fold-const.c (tree_single_nonzero_warnv_p): Handle SSA_NAME.
10703 2017-04-25  Julian Brown  <julian@codesourcery.com>
10704             Naveen H.S  <Naveen.Hurugalawadi@cavium.com>
10706         * config/aarch64/thunderx2t99.md (thunderx2t99_aes): New Reservation.
10707         (thunderx2t99_sha): New Reservation.
10709 2017-04-25  Julian Brown  <julian@codesourcery.com>
10710             Naveen H.S  <Naveen.Hurugalawadi@cavium.com>
10712         * config/aarch64/aarch64-simd.md (aarch64_simd_vec_set<mode>): Fix
10713         type for 1-element load.
10715 2017-04-24  Marc Glisse  <marc.glisse@inria.fr>
10717         * match.pd (X/[ex]C CMP Y/[ex]C): New transformation.
10719 2017-04-24  Martin Jambor  <mjambor@suse.cz>
10721         PR tree-optimization/80293
10722         * tree-sra.c (scalarizable_type_p): New parameter const_decl, make
10723         char arrays not totally scalarizable if it is false.
10724         (analyze_all_variable_accesses): Pass correct value in the new
10725         parameter.  Add a statistics counter.
10727 2017-04-24  Jan Hubicka  <hubicka@ucw.cz>
10729         PR middle-end/79931
10730         * ipa-devirt.c (dump_possible_polymorphic_call_targets): Fix ICE.
10732 2017-04-24  Richard Biener  <rguenther@suse.de>
10734         PR tree-optimization/80494
10735         * tree-scalar-evolution.c (analyze_scalar_evolution_1): Bail
10736         out for complex types.
10738 2017-04-24  Richard Biener  <rguenther@suse.de>
10740         * tree-ssa-sccvn.h (run_scc_vn): Adjust prototype.
10741         * tree-ssa-sccvn.c (print_scc): Print SCC size.
10742         (extract_and_process_scc_for_name): Never fail but drop SCC to varying.
10743         (DFS): Adjust and never fail.
10744         (sccvn_dom_walker::fail): Remove.
10745         (sccvn_dom_walker::before_dom_children): Adjust.
10746         (run_scc_vn): Likewise and never fail.
10747         * tree-ssa-pre.c (pass_pre::execute): Adjust.
10748         (pass_fre::execute): Likewise.
10750 2017-04-24  Richard Biener  <rguenther@suse.de>
10752         PR tree-optimization/79725
10753         * tree-ssa-sink.c (statement_sink_location): Return whether
10754         failure reason was zero uses.  Move that check later.
10755         (sink_code_in_bb): Deal with zero uses by removing the stmt
10756         if possible.
10758 2017-04-24  Richard Biener  <rguenther@suse.de>
10760         PR c++/2972
10761         * tree-ssa-uninit.c (warn_uninitialized_vars): Handle some
10762         pointer-based references.
10764 2017-04-24  Richard Biener  <rguenther@suse.de>
10766         PR bootstrap/79814
10767         * pass_manager.h (pass_manager::operator new): Remove.
10768         (pass_manager::operator delete): Likewise.
10769         * passes.c (pass_manager::operator new): Remove.
10770         (pass_manager::operator delete): Likewise.
10771         (pass_manager::pass_manager): Zero individual pass members.
10773 2017-04-23  Uros Bizjak  <ubizjak@gmail.com>
10775         PR target/70799
10776         * config/i386/i386.c (dimode_scalar_to_vector_candidate_p)
10777         <case ASHIFT, case LSHIFTRT>: Also consider variable shifts.
10778         Check "XEXP (src, 1)" operand here.
10779         <case PLUS, case MINUS, case IOR, case XOR, case AND>:
10780         Check "XEXP (src, 1)" operand here.
10781         (dimode_scalar_chain::make_vector_copies): Detect count register
10782         of a shift instruction.  Zero extend count register from QImode
10783         to DImode to satisfy vector shift pattern count operand predicate.
10784         Substitute vector shift count operand with a DImode copy.
10785         (dimode_scalar_chain::convert_reg): Ditto, zero-extend from
10786         vector register.
10788 2017-04-21  Uros Bizjak  <ubizjak@gmail.com>
10790         * config/i386/i386.md (*extzvqi_mem_rex64): Move above *extzv<mode>.
10791         Remove UNSPEC_NOREX_MEM tag.  Update corresponding peephole2 pattern.
10792         (*insvqi_1_mem_rex64): Move above insv<mode>_1.  Remove
10793         UNSPEC_NOREX_MEM tag.  Update corresponding peephole2 pattern.
10794         (UNSPEC_NOREX_MEM): Remove definition.
10796 2017-04-21  Richard Biener  <rguenther@suse.de>
10798         PR tree-optimization/79547
10799         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
10800         Handle strlen, strcmp, strncmp, strcasecmp, strncasecmp, memcmp,
10801         bcmp, strspn, strcspn, __builtin_object_size and __builtin_constant_p
10802         without any constraints.
10804 2017-04-21  Richard Biener  <rguenther@suse.de>
10806         PR tree-optimization/78847
10807         * fold-const.c (split_tree): Handle POINTER_PLUS_EXPR.
10809 2017-04-21  Richard Biener  <rguenther@suse.de>
10811         * tree.h (build_qualified_type): Annotate with CXX_MEM_STAT_INFO.
10812         (build_distinct_type_copy): Likewise.
10813         (build_variant_type_copy): Likewise.
10814         * tree.c (build_qualified_type): Pass down mem-stat info.
10815         (build_distinct_type_copy): Likewise.
10816         (build_variant_type_copy): Likewise.
10818 2017-04-21  Richard Biener  <rguenther@suse.de>
10820         PR tree-optimization/80237
10821         * tree-ssa-pre.c (find_leader_in_sets): Add third set argument,
10822         defaulted to NULL.
10823         (phi_translate_1): Also allow a leader in AVAIL_OUT of pred
10824         for a simplified result.
10826 2016-04-21  Richard Biener  <rguenther@suse.de>
10828         * tree-ssa-loop-ivcanon.c (constant_after_peeling): Do not require
10829         sth as strict as a simple_iv but a chrec without symbols and an
10830         operand defined in the loop we are peeling (and not some subloop).
10831         (propagate_constants_for_unrolling): Propagate all constants.
10833 2017-04-20  Uros Bizjak  <ubizjak@gmail.com>
10835         PR target/79804
10836         * config/i386/i386.c (print_reg): Remove assert for disalowed
10837         regno values, call output_operand_lossage instead.
10839 2017-04-20  Uros Bizjak  <ubizjak@gmail.com>
10841         PR target/78090
10842         * config/i386/constraints.md (Yc): New register constraint.
10843         * config/i386/i386.md (*float<SWI48:mode><MODEF:mode>2_mixed):
10844         Use Yc constraint for alternative 2 of operand 0.  Remove
10845         preferred_for_speed attribute.
10847 2017-04-20  Alexander Monakov  <amonakov@ispras.ru>
10849         * omp-low.c (lower_lastprivate_clauses): Correct handling of linear and
10850         lastprivate clauses in SIMT case.
10852 2017-04-20  Volker Reichelt  <v.reichelt@netcologne.de>
10854         * doc/invoke.texi (-Wextra-semi): Document new warning option.
10856 2017-04-20  Richard Biener  <rguenther@suse.de>
10858         PR tree-optimization/57796
10859         * tree-vect-stmts.c (vect_model_store_cost): Cost scatters
10860         as N scalar stores.
10861         (vect_model_load_cost): Cost gathers as N scalar loads.
10863 2017-04-20  Richard Biener  <rguenther@suse.de>
10865         * ggc-page.c (ggc_allocated_p): Rename to ...
10866         (safe_lookup_page_table_entry): ... this and return the lookup
10867         result.
10868         (gt_ggc_m_S): Use safe_lookup_page_table_entry.
10870 2017-04-20  Richard Biener  <rguenther@suse.de>
10872         PR tree-optimization/80453
10873         * tree-ssa-sccvn.h (struct vn_phi_s): Add cclhs and ccrhs members.
10874         * tree-ssa-sccvn.c (cond_stmts_equal_p): Use recorded lhs and rhs
10875         from the conditions.
10876         (vn_phi_eq): Pass them down.
10877         (vn_phi_lookup): Record them.
10878         (vn_phi_insert): Likewise.
10880 2017-04-20  Matthew Fortune  <matthew.fortune@imgtec.com>
10882         * config/mips/mips.c (mips_expand_vec_perm_const): Re-fix
10883         uninitialized variable warning to avoid buffer overrun.
10885 2017-04-20  Alexander Monakov  <amonakov@ispras.ru>
10887         PR other/71250
10888         * doc/invoke.texi (-Wmissing-field-initializers): Mention that warning
10889         is suppressed for '{ 0 }' in C.
10891 2017-04-20  Jakub Jelinek  <jakub@redhat.com>
10893         * BASE-VER: Set to 8.0.0.
10895 2017-04-20  Thomas Preud'homme  <thomas.preudhomme@arm.com>
10897         * config/arm/arm.c (arm_elf_asm_cdtor): Create non-default
10898         priority .init_array and .fini_array section with SECTION_NOTYPE
10899         flag.
10901 2017-04-20  Jakub Jelinek  <jakub@redhat.com>
10903         PR middle-end/80423
10904         * tree.h (build_array_type): Add typeless_storage default argument.
10905         * tree.c (type_cache_hasher::equal): Also compare
10906         TYPE_TYPELESS_STORAGE flag for ARRAY_TYPEs.
10907         (build_array_type): Add typeless_storage argument, set
10908         TYPE_TYPELESS_STORAGE to it, if shared also hash it, and pass to
10909         recursive call.
10910         (build_nonshared_array_type): Adjust build_array_type_1 caller.
10911         (build_array_type): Likewise.  Add typeless_storage argument.
10913 2017-04-19  Eric Botcazou  <ebotcazou@adacore.com>
10914             Jakub Jelinek  <jakub@redhat.com>
10916         PR tree-optimization/80426
10917         * tree-vrp.c (extract_range_from_binary_expr_1): For an additive
10918         operation on symbolic operands, also compute the overflow for the
10919         invariant part when the operation degenerates into a negation.
10921 2017-04-19  Jakub Jelinek  <jakub@redhat.com>
10923         PR debug/80461
10924         * dwarf2out.c (modified_type_die, gen_type_die_with_usage):
10925         Check for t with zero TYPE_QUALS_NO_ADDR_SPACE.
10927         PR debug/80436
10928         * tree-ssa-loop-manip.c (find_uses_to_rename_def): Ignore debug uses.
10930 2017-04-19  Georg-Johann Lay  <avr@gjlay.de>
10932         PR target/80462
10933         * config/avr/avr.c (tree.h): Include it.
10934         (cgraph.h): Include it.
10935         (avr_encode_section_info): Don't warn for uninitialized progmem
10936         variable if it's just an alias.
10938 2017-04-19  Richard Biener  <rguenther@suse.de>
10940         PR ipa/65972
10941         * auto-profile.c (afdo_vpt_for_early_inline): Update SSA
10942         when needed by AutoPGO.
10944 2017-04-19  Paulo J. Matos  <paulo@matos-sorge.com>
10946         PR lto/50345
10947         * doc/lto.texi: Remove an extra 'that'.
10949 2017-04-19  Segher Boessenkool  <segher@kernel.crashing.org>
10951         PR rtl-optimization/80429
10952         * ira.c (split_live_ranges_for_shrink_wrap): Don't split regs that
10953         are only used in debug insns.
10955 2017-04-19  Eric Botcazou  <ebotcazou@adacore.com>
10956             Vladimir Makarov  <vmakarov@redhat.com>
10958         * config/sparc/predicates.md (input_operand): Add comment.  Return
10959         true for any memory operand when LRA is in progress.
10960         * config/sparc/sparc.c (sparc_expand_move): Minor formatting fix.
10962 2017-04-18  Jeff Law  <law@redhat.com>
10964         PR target/74563
10965         * mips.md ({return,simple_return}_internal): Do not overwrite
10966         operands[0].
10968 2017-04-18  Jakub Jelinek  <jakub@redhat.com>
10970         PR tree-optimization/80443
10971         * tree-vrp.c (intersect_ranges): For signed 1-bit precision type,
10972         instead of adding 1, subtract -1 and similarly instead of subtracting
10973         1 add -1.
10975 2017-04-18  Richard Sandiford  <richard.sandiford@arm.com>
10977         PR rtl-optimization/80357
10978         * haifa-sched.c (tmp_bitmap): New variable.
10979         (model_recompute): Handle duplicate use records.
10980         (alloc_global_sched_pressure_data): Initialize tmp_bitmap.
10981         (free_global_sched_pressure_data): Free it.
10983 2017-04-18  Bernd Edlinger  <bernd.edlinger@hotmail.de>
10985         Revert:
10986         2017-02-20  Bernd Edlinger  <bernd.edlinger@hotmail.de>
10987         * Makefile.in (BUILD_SYSTEM_HEADER_DIR): New make variabe.
10988         (LIMITS_H_TEST, if_multiarch, stmp-fixinc): Use BUILD_SYSTEM_HEADER_DIR
10989         instead of SYSTEM_HEADER_DIR.
10991 2017-04-18  Jeff Law  <law@redhat.com>
10993         PR middle-end/80422
10994         * cfgcleanup.c (try_crossjump_to_edge): Verify SRC1 and SRC2 have
10995         predecessors after walking up the insn chain.
10997 2017-04-18  Jakub Jelinek  <jakub@redhat.com>
10999         PR debug/80263
11000         * dwarf2out.c (modified_type_die): Try harder not to emit internal
11001         sizetype type into debug info.
11003 2017-04-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
11005         PR target/80099
11006         * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Eliminate
11007         unneeded test for TARGET_UPPER_REGS_SF.
11008         * config/rs6000/vsx.md (vsx_extract_v4sf_var): Likewise.
11010 2017-04-18  Jakub Jelinek  <jakub@redhat.com>
11012         PR sanitizer/80444
11013         * sancov.c (sancov_pass): Use gsi_start_nondebug_after_labels_bb
11014         instead of gsi_after_labels.
11016 2017-04-18  Jeff Law  <law@redhat.com>
11018         * regcprop.c (maybe_mode_change): Avoid creating copies of the
11019         stack pointer.
11021         Revert:
11022         2017-04-13  Jeff Law  <law@redhat.com>
11023         * config/mips.mips.md (zero_extendsidi2): Do not allow SP to appear
11024         in operands[1] if it is a MEM and TARGET_MIPS16 is active.
11026 2017-04-18  Georg-Johann Lay  <avr@gjlay.de>
11028         PR target/79453
11029         * config/avr/avr.c (intl.h): Include it.
11030         (avr_pgm_check_var_decl) [reason]: Wrap diagnostic snippets into _().
11032 2017-04-18  Martin Liska  <mliska@suse.cz>
11034         PR gcov-profile/78783
11035         * gcov-tool.c (gcov_output_files): Validate that destination
11036         file is either removed by the tool or by a user.
11038 2017-04-14  Andrew Burgess  <andrew.burgess@embecosm.com>
11039             Guy Benyei  <guybe@mellanox.com>
11041         * config/arc/arc.c (arc_reorg): Move loop_end_id into a more local
11042         block, and do not negate it, the stored id is already negative.
11044 2017-04-14  Andrew Burgess  <andrew.burgess@embecosm.com>
11046         * config/arc/arc.md (doloop_begin_i): Use @pcl assembler syntax.
11048 2017-04-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
11050         PR target/80098
11051         * config/rs6000/rs6000-cpus.def (OTHER_P9_VECTOR_MASKS): Define
11052         masks of options that should be turned off if the VSX vector
11053         options are turned off.
11054         (OTHER_P8_VECTOR_MASKS): Likewise.
11055         (OTHER_VSX_VECTOR_MASKS): Likewise.
11056         * config/rs6000/rs6000.c (rs6000_option_override_internal): Call
11057         rs6000_disable_incompatible_switches to validate no type switches
11058         like -mvsx.
11059         (rs6000_incompatible_switch): New function to disallow turning on
11060         other vector options if -mno-vsx, -mno-power8-vector, or
11061         -mno-power9-vector are specified.
11063 2017-04-14  Claudiu Zissulescu  <claziss@synopsys.com>
11065         * config/arc/arc.h (CRT_CALL_STATIC_FUNCTION): Use long calls.
11067 2017-04-14  Claudiu Zissulescu  <claziss@synopsys.com>
11069         * config/arc/arc-protos.h (arc_decl_pretend_args): Remove.
11070         * config/arc/arc.c (arc_decl_pretend_args): Likewise.
11071         * config/arc/arc.h (CFA_FRAME_BASE_OFFSET): Likewise.
11072         (ARG_POINTER_CFA_OFFSET): Likewise.
11074 2017-04-14  Claudiu Zissulescu  <claziss@synopsys.com>
11076         * config/arc/arc.c (arc_mode_dependent_address_p): Relax
11077         conditions to take advantage of various optimizations.
11079 2017-04-13  Jeff Law  <law@redhat.com>
11081         * config/mips.mips.md (zero_extendsidi2): Do not allow SP to appear
11082         in operands[1] if it is a MEM and TARGET_MIPS16 is active.
11083         (zero_extendsidi2_dext): Likewise.
11085 2017-04-13  Jakub Jelinek  <jakub@redhat.com>
11087         PR sanitizer/80403
11088         * fold-const.c (fold_ternary_loc): Revert
11089         use op0 instead of fold_convert_loc (loc, type, arg0) part of
11090         2017-04-12 change.
11092 2017-04-13  Vladimir Makarov  <vmakarov@redhat.com>
11094         PR rtl-optimization/80343
11095         * lra-remat.c (update_scratch_ops): Assign original hard reg to
11096         new scratch pseudo.
11098 2017-04-13  Denis Khalikov <d.khalikov@partner.samsung.com>
11100         PR sanitizer/80414
11101         * ubsan.c (ubsan_expand_bounds_ifn): Pass original index
11102         to ubsan_encode_value.
11104 2017-04-13  Jeff Law  <law@redhat.com>
11106         * reload1.c (eliminate_regs_1): Call gen_rtx_raw_SUBREG for SUBREGs
11107         appearing in DEBUG_INSNs.
11109 2017-04-13  Martin Liska  <mliska@suse.cz>
11111         PR gcov-profile/80413
11112         * gcov-io.c (gcov_write_string): Copy to buffer just when
11113         allocated size is greater than zero.
11115 2017-04-13  Jakub Jelinek  <jakub@redhat.com>
11117         PR debug/80321
11118         * dwarf2out.c (decls_for_scope): Ignore declarations of
11119         current_function_decl in BLOCK_NONLOCALIZED_VARS.
11121 2017-04-12  Jan Hubicka  <hubicka@ucw.cz>
11123         PR lto/69953
11124         * ipa-visibility.c (non_local_p): Fix typos.
11125         (localize_node): When localizing symbol in same comdat group,
11126         dissolve the group only when we know external symbols are going
11127         to be privatized.
11128         (function_and_variable_visibility): Do not localize DECL_EXTERNAL.
11130 2017-04-12  Jakub Jelinek  <jakub@redhat.com>
11132         PR tree-optimization/79390
11133         * optabs.c (emit_conditional_move): If the preferred op2/op3 operand
11134         order does not result in usable sequence, retry with reversed operand
11135         order.
11137         PR sanitizer/80403
11138         PR sanitizer/80404
11139         PR sanitizer/80405
11140         * fold-const.c (fold_ternary_loc): Use op1 instead of arg1 as argument
11141         to fold_build2_loc.  Convert TREE_OPERAND (tem, 0) to type.  Use
11142         op0 instead of fold_convert_loc (loc, type, arg0).
11144 2017-04-12  Jeff Law  <law@redhat.com>
11146         * genattrtab.c (write_eligible_delay): Verify DELAY_INSN still
11147         has a delay slot in the generated code.
11149         * config/cris/cris.md (cris_preferred_reload_class): Return
11150         GENNONACR_REGS rather than GENERAL_REGS.
11152 2017-04-12  Jakub Jelinek  <jakub@redhat.com>
11154         PR c/80163
11155         * expr.c <CASE_CONVERT>: For EXPAND_INITIALIZER determine SIGN_EXTEND
11156         vs. ZERO_EXTEND based on signedness of treeop0's type rather than
11157         signedness of the result type.
11159 2017-04-12  Richard Biener  <rguenther@suse.de>
11160             Jeff Law  <law@redhat.com>
11162         PR tree-optimization/80359
11163         * tree-ssa-dse.c (maybe_trim_partially_dead_store): Do not
11164         trim stores to TARGET_MEM_REFs.
11166 2017-04-12  Richard Biener  <rguenther@suse.de>
11168         PR tree-optimization/79390
11169         * gimple-ssa-split-paths.c (is_feasible_trace): Restrict
11170         threading case even more.
11172 2017-04-12  Segher Boessenkool  <segher@kernel.crashing.org>
11174         PR target/80382
11175         * config/rs6000/sync.md (atomic_load<mode>, atomic_store<mode): Test
11176         for quad_address_p for TImode, instead of just not indexed_address.
11178 2017-04-12  Richard Biener  <rguenther@suse.de>
11179             Bernd Edlinger  <bernd.edlinger@hotmail.de>
11181         PR middle-end/79671
11182         * alias.c (component_uses_parent_alias_set_from): Handle
11183         TYPE_TYPELESS_STORAGE.
11184         (get_alias_set): Likewise.
11185         * tree-core.h (tree_type_common): Add typeless_storage flag.
11186         * tree.h (TYPE_TYPELESS_STORAGE): New macro.
11187         * stor-layout.c (place_union_field): Set TYPE_TYPELESS_STORAGE
11188         for types containing members with TYPE_TYPELESS_STORAGE.
11189         (place_field): Likewise.
11190         (layout_type): Likewise for ARRAY_TYPE.
11191         * lto-streamer-out.c (hash_tree): Hash TYPE_TYPELESS_STORAGE.
11192         * tree-streamer-in.c (unpack_ts_type_common_value_fields): Stream
11193         TYPE_TYPELESS_STORAGE.
11194         * tree-streamer-out.c (pack_ts_type_common_value_fields): Likewise.
11196 2017-04-12  Jakub Jelinek  <jakub@redhat.com>
11198         PR sanitizer/80349
11199         * fold-const.c (fold_binary_loc) <case BIT_IOR_EXPR>: Convert arg0's
11200         first argument to type.
11202 2017-04-11  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
11204         PR target/80376
11205         PR target/80315
11206         * config/rs6000/rs6000.c (rs6000_expand_unop_builtin): Return
11207         CONST0_RTX (mode) rather than const0_rtx where appropriate.
11208         (rs6000_expand_binop_builtin): Likewise.
11209         (rs6000_expand_ternop_builtin): Likewise; also add missing
11210         vsx_xxpermdi_* variants; also fix typo (arg1 => arg2) for
11211         vshasigma built-ins.
11212         * doc/extend.texi: Document that vec_xxpermdi's third argument
11213         must be a constant.
11215 2017-04-11  Uros Bizjak  <ubizjak@gmail.com>
11217         * config/i386/i386.c (dimode_scalar_chain::compute_convert_gain):
11218         Use shift_const cost parameter when calculating gain of STV shifts.
11220 2017-04-11  Vladimir Makarov  <vmakarov@redhat.com>
11222         PR rtl-optimization/70478
11223         * lra-constraints.c (process_alt_operands): Check memory for
11224         disfavoring memory insn operand.
11226 2017-04-11  Jakub Jelinek  <jakub@redhat.com>
11228         PR middle-end/80100
11229         * simplify-rtx.c (simplify_binary_operation_1) <case IOR>: Perform
11230         left shift in unsigned HOST_WIDE_INT type.
11232         PR rtl-optimization/80385
11233         * simplify-rtx.c (simplify_unary_operation_1): Don't transform
11234         (not (neg X)) into (plus X -1) for complex or non-integral modes.
11236         PR libgomp/80394
11237         * omp-low.c (scan_omp_task): Don't optimize away empty tasks
11238         if they have any depend clauses.
11240 2017-04-11  Martin Liska  <mliska@suse.cz>
11242         PR ipa/80212
11243         * cgraph.c (cgraph_node::dump): Dump calls_comdat_local.
11244         * ipa-split.c (split_function): Create a local comdat symbol
11245         if caller is in a comdat group.
11247 2017-04-11  Martin Liska  <mliska@suse.cz>
11249         PR ipa/80212
11250         * ipa-cp.c (determine_versionability): Handle calls_comdat_local
11251         flags.
11253 2017-04-11  Martin Sebor  <msebor@redhat.com>
11255         PR middle-end/80364
11256         * gimple-ssa-sprintf.c (get_int_range): Remove second argument and
11257         always use the int type.  Use INTEGRAL_TYPE_P() rather than testing
11258         for INTEGER_TYPE.
11259         (directive::set_width, directive::set_precision, format_character):
11260         Adjust.
11261         (parse_directive): Use INTEGRAL_TYPE_P() rather than testing for
11262         INTEGER_TYPE.
11264 2017-04-11  Richard Earnshaw  <rearnsha@arm.com>
11266         PR target/80389
11267         * config/arm/arm.c (arm_configure_build_target): When -mcpu and -arch
11268         conflict, set target->arch_name instead of target->cpu_name.
11270 2017-04-11  Richard Biener  <rguenther@suse.de>
11272         PR tree-optimization/80374
11273         * tree-ssa-dom.c (derive_equivalences_from_bit_ior): Use
11274         build_zero_cst, remove fold_convertible_p check again.
11276 2017-04-11  Martin Liska  <mliska@suse.cz>
11278         PR sanitizer/70878
11279         * ubsan.c (instrument_object_size): Do not instrument register
11280         variables.
11282 2017-04-11  Jakub Jelinek  <jakub@redhat.com>
11284         PR target/80381
11285         * config/i386/i386-builtin-types.def
11286         (V16HI_FTYPE_V16HI_INT_V16HI_UHI_COUNT,
11287         V16HI_FTYPE_V16HI_V8HI_V16HI_UHI_COUNT,
11288         V16SI_FTYPE_V16SI_INT_V16SI_UHI_COUNT,
11289         V16SI_FTYPE_V16SI_V4SI_V16SI_UHI_COUNT,
11290         V2DI_FTYPE_V2DI_INT_V2DI_UQI_COUNT,
11291         V2DI_FTYPE_V2DI_V2DI_V2DI_UQI_COUNT,
11292         V32HI_FTYPE_V32HI_INT_V32HI_USI_COUNT,
11293         V32HI_FTYPE_V32HI_V8HI_V32HI_USI_COUNT,
11294         V4DI_FTYPE_V4DI_INT_V4DI_UQI_COUNT,
11295         V4DI_FTYPE_V4DI_V2DI_V4DI_UQI_COUNT,
11296         V4SI_FTYPE_V4SI_INT_V4SI_UQI_COUNT,
11297         V4SI_FTYPE_V4SI_V4SI_V4SI_UQI_COUNT,
11298         V8DI_FTYPE_V8DI_INT_V8DI_UQI_COUNT,
11299         V8DI_FTYPE_V8DI_V2DI_V8DI_UQI_COUNT,
11300         V8HI_FTYPE_V8HI_INT_V8HI_UQI_COUNT,
11301         V8HI_FTYPE_V8HI_V8HI_V8HI_UQI_COUNT,
11302         V8SI_FTYPE_V8SI_INT_V8SI_UQI_COUNT,
11303         V8SI_FTYPE_V8SI_V4SI_V8SI_UQI_COUNT): New function type aliases.
11304         * config/i386/i386-builtin.def (__builtin_ia32_pslld512_mask,
11305         __builtin_ia32_pslldi512_mask, __builtin_ia32_psllq512_mask,
11306         __builtin_ia32_psllqi512_mask, __builtin_ia32_psrad512_mask,
11307         __builtin_ia32_psradi512_mask, __builtin_ia32_psraq512_mask,
11308         __builtin_ia32_psraqi512_mask, __builtin_ia32_psrld512_mask,
11309         __builtin_ia32_psrldi512_mask, __builtin_ia32_psrlq512_mask,
11310         __builtin_ia32_psrlqi512_mask, __builtin_ia32_psllwi128_mask,
11311         __builtin_ia32_pslldi128_mask, __builtin_ia32_psllqi128_mask,
11312         __builtin_ia32_psllw128_mask, __builtin_ia32_pslld128_mask,
11313         __builtin_ia32_psllq128_mask, __builtin_ia32_psllwi256_mask,
11314         __builtin_ia32_psllw256_mask, __builtin_ia32_pslldi256_mask,
11315         __builtin_ia32_pslld256_mask, __builtin_ia32_psllqi256_mask,
11316         __builtin_ia32_psllq256_mask, __builtin_ia32_psradi128_mask,
11317         __builtin_ia32_psrad128_mask, __builtin_ia32_psradi256_mask,
11318         __builtin_ia32_psrad256_mask, __builtin_ia32_psraqi128_mask,
11319         __builtin_ia32_psraq128_mask, __builtin_ia32_psraqi256_mask,
11320         __builtin_ia32_psraq256_mask, __builtin_ia32_psrldi128_mask,
11321         __builtin_ia32_psrld128_mask, __builtin_ia32_psrldi256_mask,
11322         __builtin_ia32_psrld256_mask, __builtin_ia32_psrlqi128_mask,
11323         __builtin_ia32_psrlq128_mask, __builtin_ia32_psrlqi256_mask,
11324         __builtin_ia32_psrlq256_mask, __builtin_ia32_psrawi256_mask,
11325         __builtin_ia32_psraw256_mask, __builtin_ia32_psrawi128_mask,
11326         __builtin_ia32_psraw128_mask, __builtin_ia32_psrlwi256_mask,
11327         __builtin_ia32_psrlw256_mask, __builtin_ia32_psrlwi128_mask,
11328         __builtin_ia32_psrlw128_mask, __builtin_ia32_psllwi512_mask,
11329         __builtin_ia32_psllw512_mask, __builtin_ia32_psrawi512_mask,
11330         __builtin_ia32_psraw512_mask, __builtin_ia32_psrlwi512_mask,
11331         __builtin_ia32_psrlw512_mask): Use _COUNT suffixed function type
11332         aliases.
11333         * config/i386/i386.c (ix86_expand_args_builtin): Rename last_arg_count
11334         flag to second_arg_count, handle 4 argument function type _COUNT
11335         aliases, handle second_arg_count on second argument rather than last.
11337 2017-04-10  Jeff Law  <law@redhat.com>
11339         PR tree-optimization/80374
11340         * tree-ssa-dom.c (derive_equivalences_from_bit_ior): Do not try to
11341         record anything if we can not convert integer_zero_node to the
11342         desired type.
11344 2017-04-10  Kelvin Nilsen  <kelvin@gcc.gnu.org>
11346         PR target/80108
11347         * config/rs6000/rs6000.c (rs6000_option_override_internal):
11348         Enhance special handling given to the TARGET_P9_MINMAX option in
11349         relation to certain other options.
11351 2017-04-10  Bin Cheng  <bin.cheng@arm.com>
11353         PR tree-optimization/80153
11354         * tree-ssa-loop-ivopts.c (add_iv_candidate_for_use): Check and
11355         remove POINTER_PLUS_EXPR's base part directly, rather than through
11356         aff_tree.
11358 2017-04-10  Richard Biener  <rguenther@suse.de>
11359             Bin Cheng  <bin.cheng@arm.com>
11361         PR tree-optimization/80153
11362         * tree-affine.c (aff_combination_to_tree): Get base pointer from
11363         the first element of pointer type aff_tree.  Build result expr in
11364         aff_tree's type.
11365         (add_elt_to_tree): Convert to type unconditionally.  Remove other
11366         fold_convert calls.
11367         * tree-ssa-loop-ivopts.c (alloc_iv): Pass in consistent types.
11368         (rewrite_use_nonlinear_expr): Check invariant using iv information.
11370 2017-04-10  Richard Biener  <rguenther@suse.de>
11372         * tree-ssa-structalias.c (find_func_aliases): Properly handle
11373         asm inputs.
11375 2017-04-10  Vladimir Makarov  <vmakarov@redhat.com>
11377         PR rtl-optimization/70478
11378         * lra-constraints.c (curr_small_class_check): New.
11379         (update_and_check_small_class_inputs): New.
11380         (process_alt_operands): Update curr_small_class_check.  Disfavor
11381         alternative insn memory operands.  Check available regs for small
11382         class operands.
11384 2017-03-31  Matthew Fortune  <matthew.fortune@imgtec.com>
11386         PR target/80057
11387         * config/mips/mips.opt (-mvirt): Update description.
11388         * doc/invoke.texi (-mvirt): Likewise.
11390 2017-04-10  Richard Biener  <rguenther@suse.de>
11392         PR middle-end/80362
11393         * fold-const.c (fold_binary_loc): Look at unstripped ops when
11394         looking for NEGATE_EXPR in -A / -B to A / B folding.
11396 2017-04-10  Martin Liska  <mliska@suse.cz>
11398         PR gcov-profile/80224
11399         * gcov.c (print_usage): Fix usage string.
11400         (get_gcov_intermediate_filename): Remove.
11401         (output_gcov_file): Use both for normal and intermediate format.
11402         (generate_results): Do not initialize special file for
11403         intermediate format.
11405 2017-04-10  Richard Biener  <rguenther@suse.de>
11407         PR tree-optimization/80304
11408         * tree-ssa-loop-im.c (ref_indep_loop_p_1): Also recurse
11409         for safelen.
11411 2017-04-10  Nathan Sidwell  <nathan@acm.org>
11413         PR target/79905
11414         * config/rs6000/rs6000.c (rs6000_vector_type): New.
11415         (rs6000_init_builtins): Use it.
11417 2016-04-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11419         * config/arm/arm.md (<mrc>): Add mode to SET source.
11420         (<mrrc>): Likewise.
11422 2017-04-10  Richard Biener  <rguenther@suse.de>
11424         PR middle-end/80344
11425         * gimplify.c (is_gimple_mem_rhs_or_call): Allow CLOBBERs.
11427 2017-04-10  Jakub Jelinek  <jakub@redhat.com>
11429         PR target/80324
11430         * config/i386/avx512fintrin.h (_mm512_reduce_add_epi32,
11431         _mm512_reduce_mul_epi32, _mm512_reduce_and_epi32,
11432         _mm512_reduce_or_epi32, _mm512_mask_reduce_add_epi32,
11433         _mm512_mask_reduce_mul_epi32, _mm512_mask_reduce_and_epi32,
11434         _mm512_mask_reduce_or_epi32, _mm512_reduce_min_epi32,
11435         _mm512_reduce_max_epi32, _mm512_reduce_min_epu32,
11436         _mm512_reduce_max_epu32, _mm512_mask_reduce_min_epi32,
11437         _mm512_mask_reduce_max_epi32, _mm512_mask_reduce_min_epu32,
11438         _mm512_mask_reduce_max_epu32, _mm512_reduce_add_ps,
11439         _mm512_reduce_mul_ps, _mm512_mask_reduce_add_ps,
11440         _mm512_mask_reduce_mul_ps, _mm512_reduce_min_ps, _mm512_reduce_max_ps,
11441         _mm512_mask_reduce_min_ps, _mm512_mask_reduce_max_ps,
11442         _mm512_reduce_add_epi64, _mm512_reduce_mul_epi64,
11443         _mm512_reduce_and_epi64, _mm512_reduce_or_epi64,
11444         _mm512_mask_reduce_add_epi64, _mm512_mask_reduce_mul_epi64,
11445         _mm512_mask_reduce_and_epi64, _mm512_mask_reduce_or_epi64,
11446         _mm512_reduce_min_epi64, _mm512_reduce_max_epi64,
11447         _mm512_mask_reduce_min_epi64, _mm512_mask_reduce_max_epi64,
11448         _mm512_reduce_min_epu64, _mm512_reduce_max_epu64,
11449         _mm512_mask_reduce_min_epu64, _mm512_mask_reduce_max_epu64,
11450         _mm512_reduce_add_pd, _mm512_reduce_mul_pd, _mm512_mask_reduce_add_pd,
11451         _mm512_mask_reduce_mul_pd, _mm512_reduce_min_pd, _mm512_reduce_max_pd,
11452         _mm512_mask_reduce_min_pd, _mm512_mask_reduce_max_pd): New intrinsics.
11454 2017-04-08  Vladimir Makarov  <vmakarov@redhat.com>
11456         PR rtl-optimization/70478
11457         * lra-constraints.c: Reverse the last patch.
11459 2017-04-08  Andreas Tobler  <andreast@gcc.gnu.org>
11461         * config/aarch64/aarch64-freebsd.h: Define MCOUNT_NAME.
11462         Add comment for WCHAR_T.
11464 2017-04-08  Martin Liska  <mliska@suse.cz>
11466         Revert:
11467         2017-04-07  Martin Liska  <mliska@suse.cz>
11469         PR ipa/80212
11470         * ipa-split.c (split_function): Add function part to a same comdat
11471         group.
11473 2017-04-08  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
11475         PR target/80358
11476         * config/rs6000/rs6000.c (expand_block_compare): Fix boundary check.
11478 2017-04-07  Pat Haugen  <pthaugen@us.ibm.com>
11480         * rs6000/rs6000.c (vec_load_pendulum): Rename...
11481         (vec_pairing): ...to this.
11482         (power9_sched_reorder2): Rewrite code for pairing vector/vecload insns.
11483         (rs6000_sched_init): Adjust for name change.
11484         (struct rs6000_sched_context): Likewise.
11485         (rs6000_init_sched_context): Likewise.
11486         (rs6000_set_sched_context): Likewise.
11488 2017-04-07  Jakub Jelinek  <jakub@redhat.com>
11490         PR target/80322
11491         PR target/80323
11492         PR target/80325
11493         PR target/80326
11494         * config/i386/avxintrin.h (_mm256_cvtsd_f64, _mm256_cvtss_f32): New
11495         intrinsics.
11496         * config/i386/avx512fintrin.h (_mm512_int2mask, _mm512_mask2int,
11497         _mm512_abs_ps, _mm512_mask_abs_ps, _mm512_abs_pd, _mm512_mask_abs_pd,
11498         _mm512_cvtsd_f64, _mm512_cvtss_f32): Likewise.
11500 2017-04-07  Andreas Tobler  <andreast@gcc.gnu.org>
11502         * config/aarch64/aarch64-freebsd.h: Define WCHAR_TYPE.
11504 2017-04-07  Vladimir Makarov  <vmakarov@redhat.com>
11506         PR rtl-optimization/70703
11507         * ira-color.c (update_conflict_hard_regno_costs): Use
11508         int64_t instead of HOST_WIDE_INT.
11510 2017-04-07  Vladimir Makarov  <vmakarov@redhat.com>
11512         PR rtl-optimization/70478
11513         * lra-constraints.c (process_alt_operands): Disfavor alternative
11514         insn memory operands.
11516 2017-04-07  Jeff Law  <law@redhat.com>
11518         * config/iq2000/iq2000.c (final_prescan_insn): Do not separate a
11519         CALL and NOTE_INSN_CALL_ARG_LOCATION.
11521 2017-04-07  Martin Liska  <mliska@suse.cz>
11523         PR target/79889
11524         * config/aarch64/aarch64.c (aarch64_process_target_attr):
11525         Show error message instead of an ICE.
11527 2017-04-07  Martin Liska  <mliska@suse.cz>
11529         PR ipa/80212
11530         * ipa-split.c (split_function): Add function part to a same comdat
11531         group.
11533 2017-04-07  Richard Biener  <rguenther@suse.de>
11535         PR middle-end/80341
11536         * tree.c (get_unwidened): Also handle ! for_type case for
11537         INTEGER_CSTs.
11538         * convert.c (do_narrow): Split out from ...
11539         (convert_to_integer_1): ... here.  Do not pass final truncation
11540         type to get_unwidened for TRUNC_DIV_EXPR.
11542 2017-04-07  Richard Biener  <rguenther@suse.de>
11544         * tree-affine.c (wide_int_ext_for_comb): Take type rather
11545         than aff_tree.
11546         (aff_combination_const): Adjust.
11547         (aff_combination_scale): Likewise.
11548         (aff_combination_add_elt): Likewise.
11549         (aff_combination_add_cst): Likewise.
11550         (aff_combination_convert): Likewise.
11551         (add_elt_to_tree): Likewise.  Remove unused argument.
11552         (aff_combination_to_tree): Adjust calls to add_elt_to_tree.
11554 2017-04-07  Sebastian Huber  <sebastian.huber@embedded-brains.de>
11556         * config/arm/arm.h (ARM_DEFAULT_SHORT_ENUMS): Provide default
11557         definition.
11558         * config/arm/arm.c (arm_default_short_enums): Use
11559         ARM_DEFAULT_SHORT_ENUMS.
11560         * config/arm/rtems.h (ARM_DEFAULT_SHORT_ENUMS): Define.
11562 2017-04-06  Jakub Jelinek  <jakub@redhat.com>
11564         PR debug/80234
11565         * dwarf2out.c (gen_member_die): Handle C++17 inline static data
11566         members with redundant out-of-class redeclaration.
11568 2017-04-06  Uros Bizjak  <ubizjak@gmail.com>
11570         PR target/80286
11571         * config/i386/sse.md (*vec_extractv4si_0_zext_sse4): New pattern.
11572         * config/i386/i386.md (*zero_extendsidi2):
11573         Add (?*x,*x) and (?*v,*v) alternatives.
11575 2017-04-06  Uros Bizjak  <ubizjak@gmail.com>
11577         PR target/79733
11578         * config/i386/i386.c (ix86_expand_builtin)
11579         <case IX86_BUILTIN_K{,OR}TEST{C,Z}{8,16,32,64}>: Determine insn operand
11580         mode from insn data. Convert operands to insn operand mode.
11581         Copy operands that don't satisfy insn predicate to a register.
11583 2017-04-06  Sam Thursfield  <sam.thursfield@codethink.co.uk>
11585         * config/rs6000/x-aix: Increase memory limit for genautomata on AIX.
11586         Update comments.
11588 2017-04-06  Richard Biener  <rguenther@suse.de>
11590         PR tree-optimization/80334
11591         * tree-ssa-loop-ivopts.c (rewrite_use_address): Properly
11592         preserve alignment of accesses.
11594 2017-04-06  Richard Biener  <rguenther@suse.de>
11596         PR tree-optimization/80262
11597         * tree-sra.c (build_ref_for_offset): Preserve address-space
11598         information.
11599         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address):
11600         Drop useless address-space information on MEM_REF offsets.
11602 2017-04-05  Andreas Schwab  <schwab@linux-m68k.org>
11604         * builtins.def (BUILT_IN_UPDATE_SETJMP_BUF): Fix type.
11606 2017-04-05  Vladimir Makarov  <vmakarov@redhat.com>
11608         PR rtl-optimization/70703
11609         * ira-color.c (update_conflict_hard_regno_costs): Use
11610         HOST_WIDE_INT instead of long.
11612 2017-04-05  Uros Bizjak  <ubizjak@gmail.com>
11614         PR target/80298
11615         * config/i386/mmintrin.h: Add -msse target option when __SSE__ is
11616         not defined for x86_64 target.  Add -mmmx target option when __SSE2__
11617         is not defined.
11618         * config/i386/mm3dnow.h: Add -msse target when __SSE__ is not defined
11619         for x86_64 target.  Handle -m3dnowa option.
11621 2017-04-05  Vladimir Makarov  <vmakarov@redhat.com>
11623         PR rtl-optimization/70703
11624         * ira-color.c (update_costs_from_allocno): Use the smallest mode.
11625         (update_conflict_hard_regno_costs): Use long instead of unsigned
11626         arithmetic for cost calculation.
11628 2017-04-05  Jakub Jelinek  <jakub@redhat.com>
11629             Bernd Edlinger  <bernd.edlinger@hotmail.de>
11631         PR sanitizer/80308
11632         * asan.c (asan_store_shadow_bytes): Fix location of last_chunk_value
11633         for big endian.
11635 2017-04-05  Eric Botcazou  <ebotcazou@adacore.com>
11637         PR target/78002
11638         * config/aarch64/aarch64.c (aarch64_emit_probe_stack_range): Replace
11639         ptr_mode with Pmode throughout.
11640         * config/aarch64/aarch64.md (probe_stack_range_<PTR:mode): Rename
11641         into probe_stack_range and use DImode.
11643 2017-04-05  Dominik Vogt  <vogt@linux.vnet.ibm.com>
11645         PR target/79890
11646         * config/s390/s390.c (s390_register_info_gprtofpr): Return if
11647         call_eh_return is true.
11649 2017-04-05  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
11651         * config/s390/s390-c.c (s390_resolve_overloaded_builtin):
11652         Initialize last_match_fntype_index.
11654 2017-04-05  Jakub Jelinek  <jakub@redhat.com>
11656         PR target/80310
11657         * tree-nvr.c: Include internal-fn.h.
11658         (pass_return_slot::execute): Ignore internal calls without
11659         direct optab.
11661 2017-04-04  Jakub Jelinek  <jakub@redhat.com>
11662             Richard Biener  <rguenther@suse.de>
11664         PR c++/80297
11665         * genmatch.c (capture::gen_transform): For GENERIC unshare_expr
11666         captures used multiple times, except for the last use.
11667         * generic-match-head.c: Include gimplify.h.
11669 2017-04-04  Jakub Jelinek  <jakub@redhat.com>
11671         PR tree-optimization/79390
11672         * target.h (struct noce_if_info): Declare.
11673         * targhooks.h (default_noce_conversion_profitable_p): Declare.
11674         * target.def (noce_conversion_profitable_p): New target hook.
11675         * ifcvt.h (struct noce_if_info): New type, moved from ...
11676         * ifcvt.c (struct noce_if_info): ... here.
11677         (noce_conversion_profitable_p): Renamed to ...
11678         (default_noce_conversion_profitable_p): ... this.  No longer
11679         static nor inline.
11680         (noce_try_store_flag_constants, noce_try_addcc,
11681         noce_try_store_flag_mask, noce_try_cmove, noce_try_cmove_arith,
11682         noce_convert_multiple_sets): Use targetm.noce_conversion_profitable_p
11683         instead of noce_conversion_profitable_p.
11684         * config/i386/i386.c: Include ifcvt.h.
11685         (ix86_option_override_internal): Don't override
11686         PARAM_MAX_RTL_IF_CONVERSION_INSNS default.
11687         (ix86_noce_conversion_profitable_p): New function.
11688         (TARGET_NOCE_CONVERSION_PROFITABLE_P): Redefine.
11689         * config/i386/x86-tune.def (X86_TUNE_ONE_IF_CONV_INSN): Adjust comment.
11690         * doc/tm.texi.in (TARGET_NOCE_CONVERSION_PROFITABLE_P): Add.
11691         * doc/tm.texi: Regenerated.
11693 2017-04-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
11695         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Grammar
11696         correction.
11698 2017-04-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>
11700         PR target/80307
11701         * config/arm/arm.c (thumb1_rtx_costs): Give a cost of 32
11702         instructions for small multiply cores.
11704 2017-04-04  Jeff Law  <law@redhat.com>
11706         * config/mips/mips.c (mips_multi_add): Zero initialize the newly
11707         added member.
11708         (mips_expand_vec_perm_const): Initialize elements in orig_perm
11709         that are not set by the loop over the elements.
11711 2017-04-04  Jakub Jelinek  <jakub@redhat.com>
11713         PR target/80286
11714         * config/i386/i386.c (ix86_expand_args_builtin): If op has scalar
11715         int mode, convert_modes it to mode as unsigned, otherwise use
11716         lowpart_subreg to mode rather than SImode.
11717         * config/i386/sse.md (<mask_codefor>ashr<mode>3<mask_name>,
11718         ashr<mode>3, ashr<mode>3<mask_name>, <shift_insn><mode>3<mask_name>):
11719         Use DImode instead of SImode for the shift count operand.
11720         * config/i386/mmx.md (mmx_ashr<mode>3, mmx_<shift_insn><mode>3):
11721         Likewise.
11723 2017-04-04  Richard Biener  <rguenther@suse.de>
11725         PR middle-end/80281
11726         * match.pd (A + (-B) -> A - B): Make sure to preserve unsigned
11727         arithmetic done for the negate or the plus.  Simplify.
11728         (A - (-B) -> A + B): Likewise.
11729         * fold-const.c (split_tree): Make sure to not negate pointers.
11731 2017-04-04  Segher Boessenkool  <segher@kernel.crashing.org>
11733         PR rtl-optimization/60818
11734         * simplify-rtx.c (simplify_binary_operation_1): Do not replace
11735         a compare of comparisons with the thing compared if this results
11736         in a different machine mode.
11738 2017-04-03  Jonathan Wakely  <jwakely@redhat.com>
11740         * alias.c (base_alias_check): Fix typo in comment.
11741         * cgraph.h (class ipa_polymorphic_call_context): Likewise.
11742         * cgraphunit.c (symbol_table::compile): Likewise.
11743         * collect2.c (maybe_run_lto_and_relink): Likewise.
11744         * config/arm/arm.c (arm_thumb1_mi_thunk): Likewise.
11745         * config/avr/avr-arch.h (avr_arch_info_t): Likewise.
11746         * config/avr/avr.c (avr_map_op_t): Likewise.
11747         * config/cr16/cr16.h (DATA_ALIGNMENT): Likewise.
11748         * config/epiphany/epiphany.c (TARGET_ARG_PARTIAL_BYTES): Likewise.
11749         * config/epiphany/epiphany.md (movcc): Likewise.
11750         * config/i386/i386.c (legitimize_pe_coff_extern_decl): Likewise.
11751         * config/m68k/m68k.c (struct _sched_ib, m68k_sched_variable_issue):
11752         Likewise.
11753         * config/mips/mips.c (mips_save_restore_reg): Likewise.
11754         * config/rx/rx.c (rx_is_restricted_memory_address): Likewise.
11755         * config/s390/s390.c (Z10_EARLYLOAD_DISTANCE): Likewise.
11756         * config/sh/sh.c (sh_rtx_costs): Likewise.
11757         * fold-const.c (fold_truth_andor): Likewise.
11758         * genautomata.c (collapse_flag): Likewise.
11759         * gengtype.h (struct type::u::s): Likewise.
11760         * gensupport.c (has_subst_attribute, add_mnemonic_string): Likewise.
11761         * input.c (FORMAT_AMOUNT): Likewise.
11762         * ipa-cp.c (class ipcp_lattice, agg_replacements_to_vector)
11763         (known_aggs_to_agg_replacement_list): Likewise.
11764         * ipa-inline-analysis.c: Likewise.
11765         * ipa-inline.h (estimate_edge_time, estimate_edge_hints): Likewise.
11766         * ipa-polymorphic-call.c
11767         (ipa_polymorphic_call_context::restrict_to_inner_class): Likewise.
11768         * loop-unroll.c (analyze_insn_to_expand_var): Likewise.
11769         * lra.c (lra_optional_reload_pseudos, lra_subreg_reload_pseudos):
11770         Likewise.
11771         * modulo-sched.c (apply_reg_moves): Likewise.
11772         * omp-expand.c (build_omp_regions_1): Likewise.
11773         * trans-mem.c (struct tm_wrapper_hasher): Likewise.
11774         * tree-ssa-loop-ivopts.c (may_eliminate_iv): Likewise.
11775         * tree-ssa-loop-niter.c (maybe_lower_iteration_bound): Likewise.
11776         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise.
11777         * value-prof.c: Likewise.
11778         * var-tracking.c (val_reset): Likewise.
11780 2017-04-03  Richard Biener  <rguenther@suse.de>
11782         PR tree-optimization/80275
11783         * fold-const.c (split_address_to_core_and_offset): Handle
11784         POINTER_PLUS_EXPR.
11786 2017-04-03  Eric Botcazou  <ebotcazou@adacore.com>
11788         * tree-nested.c (get_descriptor_type): Make sure that the alignment of
11789         descriptors is at least equal to that of functions.
11791 2017-04-02  Uros Bizjak  <ubizjak@gmail.com>
11793         * config/i386/sse.md (movdi_to_sse): Add missing DONE.
11795 2017-04-02  Uros Bizjak  <ubizjak@gmail.com>
11797         PR target/80250
11798         * config/i386/sse.md (mov<IMOD4:mode>): Remove insn pattern.
11799         (mov<IMOD4:mode>): New expander.
11800         (*mov<IMOD4:mode>_internal): New insn and split pattern.
11802 2017-03-31  Segher Boessenkool  <segher@kernel.crashing.org>
11804         PR rtl-optimization/79405
11805         * fwprop.c (propagations_left): New variable.
11806         (forward_propagate_into): Decrement it.
11807         (fwprop_init): Initialize it.
11808         (fw_prop): If the variable has reached zero, stop propagating.
11809         (fwprop_addr): Ditto.
11811 2017-03-31  Jakub Jelinek  <jakub@redhat.com>
11813         PR debug/79255
11814         * dwarf2out.c (decls_for_scope): If BLOCK_NONLOCALIZED_VAR is
11815         a FUNCTION_DECL, pass it as decl instead of origin to
11816         process_scope_var.
11818 2017-03-31  Alexander Monakov  <amonakov@ispras.ru>
11820         * config/nvptx/nvptx.c (nvptx_output_softstack_switch): Correct format
11821         string.
11823 2017-03-31  Pat Haugen  <pthaugen@us.ibm.com>
11825         PR target/80107
11826         * config/rs6000/rs6000.md (extendhi<mode>2): Add test for
11827         TARGET_VSX_SMALL_INTEGER.
11829 2017-03-31  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
11831         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Add
11832         reference to the OpenPOWER 64-Bit ELF V2 ABI Specification.
11834 2017-03-31  Matthew Fortune  <matthew.fortune@imgtec.com>
11836         * config/mips/mips-msa.md (msa_vec_extract_<msafmt_f>): Update
11837         extraction from odd-numbered MSA register.
11839 2017-03-31  Jakub Jelinek  <jakub@redhat.com>
11841         PR middle-end/80173
11842         * expmed.c (store_bit_field_1): Don't attempt to create
11843         a word subreg out of hard registers wider than word if they
11844         have HARD_REGNO_NREGS of 1 for their mode.
11846         PR middle-end/80163
11847         * varasm.c (initializer_constant_valid_p_1): Disallow sign-extending
11848         conversions to integer types wider than word and pointer.
11850         PR debug/80025
11851         * cselib.h (rtx_equal_for_cselib_1): Add depth argument.
11852         (rtx_equal_for_cselib_p): Pass 0 to it.
11853         * cselib.c (cselib_hasher::equal): Likewise.
11854         (rtx_equal_for_cselib_1): Add depth argument.  If depth
11855         is 128, don't look up VALUE locs and punt.  Increment
11856         depth in recursive calls when walking VALUE locs.
11858 2017-03-31  Bernd Edlinger  <bernd.edlinger@hotmail.de>
11860         * gcov.c (md5sum_to_hex): Fix output of MD5 hex bytes.
11861         (make_gcov_file_name): Use the canonical path name for generating
11862         the MD5 value.
11863         (read_line): Fix handling of files with ascii null bytes.
11865 2017-03-30  Matthew Fortune  <matthew.fortune@imgtec.com>
11867         * config/mips/mips.c (mips_expand_vector_init): Create a const_vector
11868         to initialise a vector register instead
11869         of using a const_int.
11871 2017-03-30  Jakub Jelinek  <jakub@redhat.com>
11873         PR translation/80189
11874         * gimplify.c (omp_default_clause): Use %qs instead of %s in
11875         diagnostic messages.
11877 2017-03-30  Peter Bergner  <bergner@vnet.ibm.com>
11879         PR target/80246
11880         * config/rs6000/dfp.md (dfp_dxex_<mode>): Update mode of operand 0.
11881         (dfp_diex_<mode>): Update mode of operand 1.
11882         * doc/extend.texi (dxex, dxexq): Document change to return type.
11883         (diex, diexq): Document change to argument type.
11885 2017-03-30  Martin Jambor  <mjambor@suse.cz>
11887         PR ipa/77333
11888         * cgraph.h (cgraph_build_function_type_skip_args): Declare.
11889         * cgraph.c (redirect_call_stmt_to_callee): Set gimple fntype so that
11890         it reflects the signature changes performed at the callee side.
11891         * cgraphclones.c (build_function_type_skip_args): Make public, renamed
11892         to cgraph_build_function_type_skip_args.
11893         (build_function_decl_skip_args): Adjust call to the above function.
11895 2017-03-30  Jakub Jelinek  <jakub@redhat.com>
11897         PR target/80206
11898         * config/i386/sse.md
11899         (<extract_type>_vextract<shuffletype><extract_suf>_mask): Use
11900         register as dest whenever it is a MEM not rtx_equal_p to the
11901         corresponding dup operand, and when forcing into reg move the
11902         reg into the memory afterwards.
11903         (<extract_type_2>_vextract<shuffletype><extract_suf_2>_mask):
11904         Likewise.  Use <ssehalfvecmode> instead of <ssequartermode>
11905         for the force_reg mode.
11906         (avx512vl_vextractf128<mode>): Use register as dest either
11907         always when a MEM, or when it is a MEM not rtx_equal_p to the
11908         corresponding dup operand, or even not when it is a CONST_VECTOR
11909         depending on the mode and lo vs. hi.
11910         (avx512dq_vextract<shuffletype>64x2_1_maskm): Remove extraneous
11911         parens.
11912         (avx512f_vextract<shuffletype>32x4_1_maskm): Likewise.
11913         (<mask_codefor>avx512dq_vextract<shuffletype>64x2_1<mask_name>):
11914         Likewise.  Require that operands[2] is even.
11915         (<mask_codefor>avx512f_vextract<shuffletype>32x4_1<mask_name>):
11916         Remove extraneous parens.  Require that operands[2] is a multiple
11917         of 4.
11918         (vec_extract_lo_<mode><mask_name>): Don't bother testing if
11919         operands[0] is a MEM if <mask_applied>, the predicates/constraints
11920         disallow memory then.
11922 2017-03-30  Richard Biener  <rguenther@suse.de>
11924         PR tree-optimization/77498
11925         * tree-ssa-pre.c (phi_translate_1): Do not allow simplifications
11926         to non-constants over backedges.
11928 2017-03-29  Segher Boessenkool  <segher@kernel.crashing.org>
11930         PR rtl-optimization/80233
11931         * combine.c (combine_instructions): Only take NONDEBUG_INSN_P insns
11932         as last_combined_insn.  Do not test for BARRIER_P separately.
11934 2017-03-29  Andreas Schwab  <schwab@suse.de>
11936         PR ada/80146
11937         * calls.c (prepare_call_address): Convert funexp to Pmode before
11938         copying to temp reg.
11940 2017-03-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
11942         PR tree-optimization/80158
11943         * gimple-ssa-strength-reduction.c (replace_mult_candidate):
11944         Handle possible future case of more than one alternate
11945         interpretation.
11946         (replace_rhs_if_not_dup): Likewise.
11947         (replace_one_candidate): Likewise.
11949 2017-03-28  Vladimir Makarov  <vmakarov@redhat.com>
11951         PR rtl-optimization/80193
11952         * ira.c (ira): Do not check allocation for LRA.
11954 2017-03-28  Alexander Monakov  <amonakov@ispras.ru>
11956         * config/nvptx/nvptx-protos.h (nvptx_output_simt_enter): Declare.
11957         (nvptx_output_simt_exit): Declare.
11958         * config/nvptx/nvptx.c (nvptx_init_unisimt_predicate): Use
11959         cfun->machine->unisimt_location.  Handle NULL unisimt_predicate.
11960         (init_softstack_frame): Move initialization of crtl->is_leaf to...
11961         (nvptx_declare_function_name): ...here.  Emit declaration of local
11962         memory space buffer for omp_simt_enter insn.
11963         (nvptx_output_unisimt_switch): New.
11964         (nvptx_output_softstack_switch): New.
11965         (nvptx_output_simt_enter): New.
11966         (nvptx_output_simt_exit): New.
11967         * config/nvptx/nvptx.h (struct machine_function): New fields
11968         has_simtreg, unisimt_location, simt_stack_size, simt_stack_align.
11969         * config/nvptx/nvptx.md (UNSPECV_SIMT_ENTER): New unspec.
11970         (UNSPECV_SIMT_EXIT): Ditto.
11971         (omp_simt_enter_insn): New insn.
11972         (omp_simt_enter): New expansion.
11973         (omp_simt_exit): New insn.
11974         * config/nvptx/nvptx.opt (msoft-stack-reserve-local): New option.
11976         * internal-fn.c (expand_GOMP_SIMT_ENTER): New.
11977         (expand_GOMP_SIMT_ENTER_ALLOC): New.
11978         (expand_GOMP_SIMT_EXIT): New.
11979         * internal-fn.def (GOMP_SIMT_ENTER): New internal function.
11980         (GOMP_SIMT_ENTER_ALLOC): Ditto.
11981         (GOMP_SIMT_EXIT): Ditto.
11982         * target-insns.def (omp_simt_enter): New insn.
11983         (omp_simt_exit): Ditto.
11984         * omp-low.c (struct omplow_simd_context): New fields simt_eargs,
11985         simt_dlist.
11986         (lower_rec_simd_input_clauses): Implement SIMT privatization.
11987         (lower_rec_input_clauses): Likewise.
11988         (lower_lastprivate_clauses): Handle SIMT privatization.
11990         * omp-offload.c: Include langhooks.h, tree-nested.h, stor-layout.h.
11991         (ompdevlow_adjust_simt_enter): New.
11992         (find_simtpriv_var_op): New.
11993         (execute_omp_device_lower): Handle IFN_GOMP_SIMT_ENTER,
11994         IFN_GOMP_SIMT_ENTER_ALLOC, IFN_GOMP_SIMT_EXIT.
11996         * tree-inline.h (struct copy_body_data): New field dst_simt_vars.
11997         * tree-inline.c (expand_call_inline): Handle SIMT privatization.
11998         (copy_decl_for_dup_finish): Ditto.
12000         * tree-ssa.c (execute_update_addresses_taken): Handle GOMP_SIMT_ENTER.
12002 2017-03-28  Uros Bizjak  <ubizjak@gmail.com>
12004         PR target/53383
12005         * config/i386/i386.c (ix86_option_override_internal): Always
12006         allow -mpreferred-stack-boundary=3 for 64-bit targets.
12008 2017-03-28  Bin Cheng  <bin.cheng@arm.com>
12010         * tree-vect-loop.c (optimize_mask_stores): Add bb to the right loop.
12012 2017-03-28  Bin Cheng  <bin.cheng@arm.com>
12014         * tree-vect-loop-manip.c (slpeel_add_loop_guard): New param and
12015         mark new edge's irreducible flag accordign to it.
12016         (vect_do_peeling): Check loop preheader edge's irreducible flag
12017         and pass it to function slpeel_add_loop_guard.
12019 2017-03-28  Richard Sandiford  <richard.sandiford@arm.com>
12021         PR tree-optimization/80218
12022         * tree-call-cdce.c (shrink_wrap_one_built_in_call_with_conds):
12023         Update block frequencies and counts.
12025 2017-03-28  Richard Biener  <rguenther@suse.de>
12027         PR tree-optimization/78644
12028         * tree-ssa-ccp.c (evaluate_stmt): When we may not use the value
12029         of a simplification result we may not use it at all.
12031 2017-03-28  Richard Biener  <rguenther@suse.de>
12033         PR ipa/80205
12034         * tree-inline.c (copy_phis_for_bb): Do not create PHI node
12035         without arguments, generate default definition of a SSA name.
12037 2017-03-28  Richard Biener  <rguenther@suse.de>
12039         PR middle-end/80222
12040         * gimple-fold.c (gimple_fold_indirect_ref): Do not touch
12041         TYPE_REF_CAN_ALIAS_ALL references.
12042         * fold-const.c (fold_indirect_ref_1): Likewise.
12044 2017-03-28  Martin Liska  <mliska@suse.cz>
12046         PR ipa/80104
12047         * cgraphunit.c (cgraph_node::expand_thunk): Mark argument of a
12048         thunk call as DECL_GIMPLE_REG_P when vector or complex type.
12050 2017-03-28  Claudiu Zissulescu  <claziss@synopsys.com>
12051             Thomas Petazzoni  <thomas.petazzoni@free-electrons.com>
12053         * config/arc/arc.h (CPP_SPEC): Add subtarget_cpp_spec.
12054         (EXTRA_SPECS): Define.
12055         (SUBTARGET_EXTRA_SPECS): Likewise.
12056         (SUBTARGET_CPP_SPEC): Likewise.
12057         * config/arc/elf.h (EXTRA_SPECS): Renamed to
12058         SUBTARGET_EXTRA_SPECS.
12059         * config/arc/linux.h (SUBTARGET_CPP_SPEC): Define.
12061 2017-03-28  Claudiu Zissulescu  <claziss@synopsys.com>
12063         * config/arc/simdext.md (vst64_insn): Update pattern.
12064         (vld32wh_insn): Likewise.
12065         (vld32wl_insn): Likewise.
12066         (vld64_insn): Likewise.
12067         (vld32_insn): Likewise.
12069 2017-03-28  Marek Polacek  <polacek@redhat.com>
12071         PR sanitizer/80067
12072         * fold-const.c (fold_comparison): Use protected_set_expr_location
12073         instead of SET_EXPR_LOCATION.
12075 2017-03-28  Markus Trippelsdorf  <markus@trippelsdorf.de>
12077         * tree.c (add_expr): Avoid name lookup warning.
12079 2017-03-27  Jeff Law  <law@redhat.com>
12081         PR tree-optimization/80216
12082         * tree-ssa-dom.c (derive_equivalences_from_bit_ior): Fix typo in
12083         function name.  Limit recursion depth.
12084         (record_temporary_equivalences): Corresponding changes.
12086 2017-03-27  Jonathan Wakely  <jwakely@redhat.com>
12088         * doc/invoke.texi (-Wno-narrowing): Reorder so default behavior is
12089         covered first.
12091 2017-03-27  Jakub Jelinek  <jakub@redhat.com>
12093         PR target/80102
12094         * reg-notes.def (REG_CFA_NOTE): Define.  Use it for CFA related
12095         notes.
12096         * cfgcleanup.c (reg_note_cfa_p): New array.
12097         (insns_have_identical_cfa_notes): New function.
12098         (old_insns_match_p): Don't cross-jump in between /f
12099         and non-/f instructions.  If both i1 and i2 are frame related,
12100         verify all CFA notes, their order and content.
12102 2017-03-27  Michael Meissner  <meissner@linux.vnet.ibm.com>
12104         PR target/78543
12105         * config/rs6000/rs6000.md (bswaphi2_extenddi): Combine bswap
12106         HImode and SImode with zero extend to DImode to one insn.
12107         (bswap<mode>2_extenddi): Likewise.
12108         (bswapsi2_extenddi): Likewise.
12109         (bswaphi2_extendsi): Likewise.
12110         (bswaphi2): Combine bswap HImode and SImode into one insn.
12111         Separate memory insns from swapping register.
12112         (bswapsi2): Likewise.
12113         (bswap<mode>2): Likewise.
12114         (bswaphi2_internal): Delete, no longer used.
12115         (bswapsi2_internal): Likewise.
12116         (bswap<mode>2_load): Split bswap HImode/SImode into separate load,
12117         store, and gpr<-gpr swap insns.
12118         (bswap<mode>2_store): Likewise.
12119         (bswaphi2_reg): Register only splitter, combine with the splitter.
12120         (bswaphi2 splitter): Likewise.
12121         (bswapsi2_reg): Likewise.
12122         (bswapsi2 splitter): Likewise.
12123         (bswapdi2): If we have the LDBRX and STDBRX instructions, split
12124         the insns into load, store, and register/register insns.
12125         (bswapdi2_ldbrx): Likewise.
12126         (bswapdi2_load): Likewise.
12127         (bswapdi2_store): Likewise.
12128         (bswapdi2_reg): Likewise.
12130 2017-03-27  Gunther Nikl  <gnikl@users.sourceforge.net>
12132         * system.h (HAVE_DESIGNATED_INITIALIZERS): Fix non C++ case.
12133         (HAVE_DESIGNATED_UNION_INITIALIZERS): Likewise.
12135 2017-03-27  Kelvin Nilsen  <kelvin@gcc.gnu.org>
12137         PR target/80103
12138         * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Edit and
12139         add comments.
12140         * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
12141         special handling for target option conflicts between dform
12142         options (-mpower9-dform, -mpower9-dform-vector,
12143         -mpower9-dform-scalar) and -mno-direct-move.
12145 2017-03-27  Richard Biener  <rguenther@suse.de>
12147         PR tree-optimization/80181
12148         * tree-ssa-ccp.c (likely_value): UNDEFINED ^ X is UNDEFINED.
12150 2017-03-27  Claudiu Zissulescu  <claziss@synopsys.com>
12152         * config/arc/predicates.md (move_double_src_operand): Replace the
12153         call to move_double_src_operand with a call to address_operand.
12155 2017-03-27  Claudiu Zissulescu  <claziss@synopsys.com>
12157         * config/arc/elf.h (ARGET_ARC_TP_REGNO_DEFAULT): Define.
12158         * config/arc/linux.h (ARGET_ARC_TP_REGNO_DEFAULT): Likewise.
12159         * config/arc/arc.opt (mtp-regno): Use ARGET_ARC_TP_REGNO_DEFAULT.
12161 2017-03-27  Claudiu Zissulescu  <claziss@synopsys.com>
12163         * config/arc/predicates.md (long_immediate_loadstore_operand):
12164         Consider scaled addresses cases.
12166 2017-03-27  Claudiu Zissulescu  <claziss@synopsys.com>
12168         * config/arc/arc.c (arc_epilogue_uses): BLINK should be also
12169         restored when in interrupt.
12170         * config/arc/arc.md (simple_return): ARCv2 rtie instruction
12171         doesn't have delay slot.
12173 2017-03-27  Richard Biener  <rguenther@suse.de>
12175         PR ipa/79776
12176         * tree-ssa-structalias.c (associate_varinfo_to_alias): Skip
12177         inlined thunk clones.
12179 2017-03-27  Jakub Jelinek  <jakub@redhat.com>
12181         PR sanitizer/80168
12182         * asan.c (instrument_derefs): Copy over last operand from
12183         original COMPONENT_REF to the new COMPONENT_REF with
12184         DECL_BIT_FIELD_REPRESENTATIVE.
12185         * ubsan.c (instrument_object_size): Likewise.
12187 2017-03-27  Richard Biener  <rguenther@suse.de>
12189         PR tree-optimization/80170
12190         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Make
12191         sure DR/SCEV didnt fold in constants we do not see when looking
12192         at the reference base alignment.
12194 2017-03-27  Richard Biener  <rguenther@suse.de>
12196         PR middle-end/80171
12197         * gimple-fold.c (fold_ctor_reference): Properly guard against
12198         NULL return value from canonicalize_constructor_val.
12200 2017-03-25  Uros Bizjak  <ubizjak@gmail.com>
12202         PR target/80180
12203         * config/i386/i386.c (ix86_expand_builtin)
12204         <IX86_BUILTIN_RDSEED{16,32,64}_STEP>: Do not expand arg0 between
12205         flags reg setting and flags reg using instructions.
12206         <IX86_BUILTIN_RDRAND{16,32,64}_STEP>: Ditto.  Use non-flags reg
12207         clobbering instructions to zero extend op2.
12209 2017-03-25  Gerald Pfeifer  <gerald@pfeifer.com>
12211         * doc/install.texi (Configuration) <--with-aix-soname>:
12212         Update link to AIX ld.
12214 2017-03-25  Bernd Schmidt  <bschmidt@redhat.com>
12216         PR rtl-optimization/80160
12217         PR rtl-optimization/80159
12218         * lra-assigns.c (must_not_spill_p): Tighten new test to also take
12219         reg_alternate_class into account.
12221 2017-03-24  Vladimir Makarov  <vmakarov@redhat.com>
12223         PR target/80148
12224         * lra-assigns.c (assign_by_spills): Add spilled non-reload pseudos
12225         to consider in curr_insn_transform.
12227 2017-03-24  Jakub Jelinek  <jakub@redhat.com>
12229         * genrecog.c (validate_pattern): Add VEC_SELECT validation.
12230         * genmodes.c (emit_min_insn_modes_c): Call emit_mode_nunits
12231         and emit_mode_inner.
12233 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12235         * config/s390/s390-builtins.def: Add VXE builtins.  Add a flags
12236         argument to the overloaded builtin variants.  Use the new flag to
12237         deprecate certain builtin variants.
12238         * config/s390/s390-builtin-types.def: Add new builtin types.
12239         * config/s390/s390-builtins.h: Support new flags field for
12240         overloaded builtins.
12241         * config/s390/s390-c.c (OB_DEF_VAR): New flags field.
12242         (s390_macro_to_expand): Enable vector float data type.
12243         (s390_cpu_cpp_builtins_internal): Indicate support of the new
12244         builtins by incrementing the __VEC__ version number.
12245         (s390_expand_overloaded_builtin): Support expansion of vec_xl and
12246         vec_xst.
12247         (s390_resolve_overloaded_builtin): Emit error messages depending
12248         on the builtin flags.
12249         * config/s390/s390.c (s390_expand_builtin): Support additional
12250         flags argument.  Change error message to match the messages
12251         emitted in s390-c.c.
12252         * config/s390/s390.md: New UNSPEC_* constants.
12253         (op_type): Add new instruction types.
12254         * config/s390/vecintrin.h: Add new builtins and test data class
12255         constants.
12256         * config/s390/vx-builtins.md (V_HW_32_64): Add V4SF.
12257         (V_HW_4, VEC_HW, VECF_HW): New mode iterators.
12258         (VEC_INEXACT, VEC_NOINEXACT): New constants.
12259         ("vec_splats<mode>", "vec_insert<mode>", "vec_promote<mode>")
12260         ("vec_insert_and_zero<mode>", "vec_mergeh<mode>")
12261         ("vec_mergel<mode>"): V_HW -> VEC_HW.
12263         ("vlrlrv16qi", "vstrlrv16qi", "vbpermv16qi", "vec_msumv2di")
12264         ("vmslg", "*vftci<mode>_cconly", "vftci<mode>_intcconly")
12265         ("*vftci<mode>", "vftci<mode>_intcc", "vec_double_s64")
12266         ("vec_double_u64", "vfmin<mode>", "vfmax<mode>"): New definition.
12268         ("and_av2df3", "and_cv2df3", "vec_andc_av2df3")
12269         ("vec_andc_cv2df3", "xor_av2df3", "xor_cv2df3", "vec_nor_av2df3")
12270         ("vec_nor_cv2df3", "ior_av2df3", "ior_cv2df3", "vec_nabs")
12271         ("*vftcidb", "*vftcidb_cconly", "vftcidb"): Remove definition.
12273         ("vec_all_<fpcmpcc:code>v2df", "vec_any_<fpcmpcc:code>v2df")
12274         ("vec_scatter_elementv4si_DI", "vec_cmp<fpcmp:code>v2df")
12275         ("vec_di_to_df_s64", "vec_di_to_df_u64", "vec_df_to_di_u64")
12276         ("vfidb", "*vldeb", "*vledb", "*vec_cmp<insn_cmp>v2df_cconly")
12277         ("vec_cmpeqv2df_cc", "vec_cmpeqv2df_cc", "vec_cmphv2df_cc")
12278         ("vec_cmphev2df_cc", "*vec_cmpeqv2df_cc")
12279         ("*vec_cmphv2df_cc", "*vec_cmphev2df_cc"): Enable new modes as ...
12281         ("vec_all_<fpcmpcc:code><mode>", "vec_any_<fpcmpcc:code><mode>")
12282         ("vec_scatter_element<V_HW_4:mode>_DI")
12283         ("vec_cmp<fpcmp:code><mode>", "vcdgb", "vcdlgb", "vclgdb")
12284         ("vec_fpint<mode>", "vflls")
12285         ("vflrd", "*vec_cmp<insn_cmp><mode>_cconly", "vec_cmpeq<mode>_cc")
12286         ("vec_cmpeq<mode>_cc", "vec_cmph<mode>_cc", "vec_cmphe<mode>_cc")
12287         ("*vec_cmpeq<mode>_cc", "*vec_cmph<mode>_cc")
12288         ("*vec_cmphe<mode>_cc"): ... these.
12290         ("vec_ctd_s64", "vec_ctsl", "vec_ctul", "vec_st2f"): Use rounding
12291         mode constant instead of magic value.
12293 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12295         * config/s390/s390.c (s390_expand_vec_compare): Support other
12296         vector floating point modes than just V2DF.
12297         (s390_expand_vcond): Likewise.
12298         (s390_hard_regno_mode_ok): Allow SFmode values in VRs.
12299         (s390_cannot_change_mode_class): Prevent mode changes between TF
12300         and V1TF in vector registers.
12301         * config/s390/s390.md (DF, SF): New mode attributes.
12302         ("*cmp<mode>_ccs", "add<mode>3", "sub<mode>3", "mul<mode>3")
12303         ("fma<mode>4", "fms<mode>4", "div<mode>3", "*neg<mode>2"): Add
12304         SFmode support for VRs.
12305         * config/s390/vector.md (V_HW, V_HW2, VT_HW, ti*, nonvec): Add new
12306         vector fp modes.
12307         (VFT, VF_HW): New mode iterators.
12308         (vw, sdx): New mode attributes.
12309         ("addv2df3", "subv2df3", "mulv2df3", "divv2df3", "sqrtv2df2")
12310         ("fmav2df4","fmsv2df4", "negv2df2", "absv2df2", "*negabsv2df2")
12311         ("smaxv2df3", "sminv2df3", "*vec_cmp<VFCMP_HW_OP:code>v2df_nocc")
12312         ("vec_cmpuneqv2df", "vec_cmpltgtv2df", "vec_orderedv2df")
12313         ("vec_unorderedv2df"): Adjust the v2df only patterns to support
12314         also the new vector floating point modes.  Renaming to ...
12316         ("add<mode>3", "sub<mode>3", "mul<mode>3", "div<mode>3")
12317         ("sqrt<mode>2", "fma<mode>4", "fms<mode>4", "neg<mode>2")
12318         ("abs<mode>2", "negabs<mode>2", "smax<mode>3")
12319         ("smin<mode>3", "*vec_cmp<VFCMP_HW_OP:code><mode>_nocc")
12320         ("vec_cmpuneq<mode>", "vec_cmpltgt<mode>", "vec_ordered<mode>")
12321         ("vec_unordered<mode>"): ... these.
12323         ("neg_fma<mode>4", "neg_fms<mode>4", "*smax<mode>3_vxe")
12324         ("*smin<mode>3_vxe", "*sminv2df3_vx", "*vec_extendv4sf")
12325         ("*vec_extendv2df"): New insn definitions.
12327 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12329         * config/s390/s390.md ("*adddi3_sign", "*subdi3_sign", "mulditi3")
12330         ("mulditi3_2", "*muldi3_sign"): New patterns.
12331         ("muldi3", "*muldi3", "mulsi3", "*mulsi3"): Add an expander and
12332         rename the pattern definition.
12334 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12336         * config/s390/s390.md ("indirect_jump"): Turn insn definition into
12337         expander.
12338         ("*indirect_jump", "*indirect2_jump"): New pattern definitions.
12340 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12342         * config/s390/s390.c (s390_expand_vec_init): Use vllezl
12343         instruction if possible.
12344         * config/s390/vector.md (vec_halfnumelts): New mode
12345         attribute.
12346         ("*vec_vllezlf<mode>"): New pattern.
12348 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12350         * config/s390/vector.md ("popcountv16qi2", "popcountv8hi2")
12351         ("popcountv4si2", "popcountv2di2"): Rename to ...
12352         ("popcount<mode>2", "popcountv8hi2_vx", "popcountv4si2_vx")
12353         ("popcountv2di2_vx"): ... these and add !TARGET_VXE to the
12354         condition.
12355         ("popcount<mode>2_vxe"): New pattern.
12357 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12359         * common/config/s390/s390-common.c (processor_flags_table): Add
12360         arch12.
12361         * config.gcc: Add arch12.
12362         * config/s390/driver-native.c (s390_host_detect_local_cpu):
12363         Default to arch12 for unknown CPU model numbers.
12364         * config/s390/s390-builtins.def: Add B_VXE builtin flag.
12365         * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Adjust
12366         PROCESSOR_max sanity check.
12367         * config/s390/s390-opts.h (enum processor_type): Add
12368         PROCESSOR_ARCH12.
12369         * config/s390/s390.c (processor_table): Add arch12.
12370         (s390_expand_builtin): Add check for B_VXE flag.
12371         (s390_issue_rate): Add PROCESSOR_ARCH12.
12372         (s390_get_sched_attrmask): Likewise.
12373         (s390_get_unit_mask): Likewise.
12374         (s390_sched_score): Enable z13 scheduling for arch12.
12375         (s390_sched_reorder): Likewise.
12376         (s390_sched_variable_issue): Likewise.
12377         * config/s390/s390.h (enum processor_flags): Add PF_ARCH12 and
12378         PF_VXE.
12379         (s390_tune_attr): Use z13 scheduling also for arch12.
12380         (TARGET_CPU_ARCH12, TARGET_CPU_ARCH12_P, TARGET_CPU_VXE)
12381         (TARGET_CPU_VXE_P, TARGET_ARCH12, TARGET_ARCH12_P, TARGET_VXE)
12382         (TARGET_VXE_P): New macros.
12383         * config/s390/s390.md: Add arch12 to cpu attribute.  Add arch12
12384         and vxe to cpu_facility.  Add arch12 and vxe to enabled attribute.
12385         * config/s390/s390.opt: Add arch12 as processor_type.
12387 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12389         * config/s390/s390.md
12390         ("fixuns_truncdddi2", "fixuns_trunctddi2")
12391         ("fixuns_trunc<BFP:mode><GPR:mode>2"): Merge into ...
12392         ("fixuns_trunc<FP:mode><GPR:mode>2"): New expander.
12394         ("fixuns_trunc<BFP:mode><GPR:mode>2", "fixuns_trunc<mode>si2"):
12395         Rename expanders to ...
12397         ("fixuns_trunc<BFP:mode><GPR:mode>2_emu")
12398         ("fixuns_truncdddi2_emu"): ... these.
12400         ("fixuns_trunc<mode>si2_emu"): New expander.
12402         ("*fixuns_truncdfdi2_z13"): Rename to ...
12403         ("*fixuns_truncdfdi2_vx"): ... this.
12405 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12407         * config/s390/2964.md: Remove the single element vector compare
12408         instructions which are no longer used.
12409         * config/s390/s390.c (s390_select_ccmode): Remove handling of
12410         vector CCmodes.
12411         (s390_canonicalize_comparison): Remove handling of DFmode
12412         compares.
12413         (s390_expand_vec_compare_scalar): Remove function.
12414         (s390_emit_compare): Don't call s390_expand_vec_compare_scalar.
12415         * config/s390/s390.md ("*vec_cmp<insn_cmp>df_cconly"): Remove
12416         pattern.
12417         ("*cmp<mode>_ccs"): Add wfcdb instruction.
12419 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12421         * config/s390/s390.md ("mov<mode>_64dfp" DD_DF): Use vleig for loading a
12422         FP zero.
12423         ("*mov<mode>_64" DD_DF): Remove the vector instructions. These
12424         will anyway by matched by mov<mode>_64dfp.
12426 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12428         * config/s390/s390.md ("mov<mode>" SD_SF): Change vleg/vsteg to
12429         vlef/vstef.  Add missing operand to vleif.
12431 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12433         * config/s390/s390.c (s390_expand_vec_init): Enable vector load
12434         pair for all vector types with 64 bit elements.
12435         * config/s390/vx-builtins.md (V_HW_64): Move mode iterator to ...
12436         * config/s390/vector.md (V_HW_64): ... here.
12437         (V_128_NOSINGLE): New mode iterator.
12438         ("vec_init<V_HW:mode>"): Use V_128 as mode iterator.
12439         ("*vec_splat<mode>"): Use V_128_NOSINGLE mode iterator.
12440         ("*vec_tf_to_v1tf", "*vec_ti_to_v1ti"): New pattern definitions.
12441         ("*vec_load_pairv2di"): Change to ...
12442         ("*vec_load_pair<mode>"): ... this one.
12444 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12446         * config/s390/constraints.md: Add comments.
12447         (jKK): Reject element sizes > 8 bytes.
12448         * config/s390/s390.c (s390_split_ok_p): Enable splitting also for
12449         s_operands.
12450         * config/s390/s390.md: Add the s_operand checks formerly in
12451         s390_split_ok_p to various splitters where they are still
12452         required.
12453         * config/s390/vector.md ("mov<mode>" V_128): Add GPR alternatives
12454         for 128 bit vectors.  Plus two splitters.
12456 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12458         * config/s390/s390.md: Rename the cpu facilty vec to vx throughout
12459         the file.
12461 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12463         PR target/79893
12464         * config/s390/s390-c.c (s390_adjust_builtin_arglist): Issue an
12465         error if the boundary argument is not constant.
12467 2017-03-24  Jakub Jelinek  <jakub@redhat.com>
12469         PR rtl-optimization/80112
12470         * loop-doloop.c (doloop_condition_get): Don't check condition
12471         if cmp isn't SET with IF_THEN_ELSE src.
12473 2017-03-24  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
12475         PR tree-optimization/80158
12476         * gimple-ssa-strength-reduction.c (replace_mult_candidate): When
12477         replacing a candidate statement, also replace it for the
12478         candidate's alternate interpretation.
12479         (replace_rhs_if_not_dup): Likewise.
12480         (replace_one_candidate): Likewise.
12482 2017-03-24  Richard Biener  <rguenther@suse.de>
12484         PR tree-optimization/80167
12485         * graphite-isl-ast-to-gimple.c
12486         (translate_isl_ast_to_gimple::is_valid_rename): Handle default-defs
12487         properly.
12488         (translate_isl_ast_to_gimple::get_rename): Likewise.
12490 2017-03-23  Kelvin Nilsen  <kelvin@gcc.gnu.org>
12492         * config/rs6000/rs6000.c (rs6000_option_override_internal): Change
12493         handling of certain combinations of target options, including the
12494         combinations -mpower8-vector vs. -mno-vsx, -mpower9-vector vs.
12495         -mno-power8-vector, and -mpower9_dform vs. -mno-power9-vector.
12497 2017-03-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12499         PR target/71436
12500         * config/arm/arm.md (*load_multiple): Add reload_completed to
12501         matching condition.
12503 2017-03-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
12504             Richard Biener  <rguenth@suse.de>
12506         PR tree-optimization/79908
12507         PR tree-optimization/80136
12508         * tree-stdarg.c (expand_ifn_va_arg_1): For a VA_ARG whose LHS has
12509         been cast away, gimplify_and_add suffices.
12511 2017-03-23  Markus Trippelsdorf  <markus@trippelsdorf.de>
12513         * tree-vrp.c (identify_jump_threads): Delete avail_exprs.
12515 2017-03-23  Richard Biener  <rguenther@suse.de>
12517         PR tree-optimization/80032
12518         * gimplify.c (gimple_push_cleanup): Forced unconditional
12519         cleanups still have to go to the conditional_cleanups
12520         sequence.
12522 2017-03-22  Jakub Jelinek  <jakub@redhat.com>
12524         PR tree-optimization/80072
12525         * tree-ssa-reassoc.c (struct operand_entry): Change id field type
12526         to unsigned int.
12527         (next_operand_entry_id): Change type to unsigned int.
12528         (sort_by_operand_rank): Make sure to return the right return value
12529         even if unsigned fields are bigger than INT_MAX.
12530         (struct oecount): Change cnt and id type to unsigned int.
12531         (oecount_hasher::equal): Formatting fix.
12532         (oecount_cmp): Make sure to return the right return value
12533         even if unsigned fields are bigger than INT_MAX.
12534         (undistribute_ops_list): Change next_oecount_id type to unsigned int.
12536         PR c++/80129
12537         * gimplify.c (gimplify_modify_expr_rhs) <case COND_EXPR>: Clear
12538         TREE_READONLY on result if writing it more than once.
12540         PR sanitizer/80110
12541         * doc/invoke.texi (-fsanitize=thread): Document that with
12542         -fnon-call-exceptions atomics are not able to throw
12543         exceptions.
12545         PR sanitizer/80110
12546         * tsan.c: Include tree-eh.h.
12547         (instrument_builtin_call): Call maybe_clean_eh_stmt or
12548         maybe_clean_or_replace_eh_stmt where needed.
12549         (instrument_memory_accesses): Add cfg_changed argument.
12550         Call gimple_purge_dead_eh_edges on each block and set *cfg_changed
12551         if it returned true.
12552         (tsan_pass): Adjust caller.  Return TODO_cleanup_cfg if cfg_changed.
12554         PR rtl-optimization/63191
12555         * config/i386/i386.c (ix86_delegitimize_address): Turn into small
12556         wrapper function, moved the whole old content into ...
12557         (ix86_delegitimize_address_1): ... this.  New inline function.
12558         (ix86_find_base_term): Use ix86_delegitimize_address_1 with
12559         true as last argument instead of ix86_delegitimize_address.
12561 2017-03-22  Wilco Dijkstra  <wdijkstr@arm.com>
12563         * config/aarch64/aarch64.c (generic_branch_cost): Copy
12564         cortexa57_branch_cost.
12566 2017-03-22  Wilco Dijkstra  <wdijkstr@arm.com>
12568         * config/aarch64/aarch64.c (generic_tunings): Add AES fusion.
12570 2017-03-21  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
12572         PR target/80123
12573         * doc/md.texi (Constraints): Document wA constraint.
12574         * config/rs6000/constraints.md (wA): New.
12575         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Add wA reg_class.
12576         (rs6000_init_hard_regno_mode_ok): Init wA constraint.
12577         * config/rs6000/rs6000.h (RS6000_CONSTRAINT_wA): New.
12578         * config/rs6000/vsx.md (vsx_splat_<mode>): Use wA constraint.
12580 2017-03-22  Cesar Philippidis  <cesar@codesourcery.com>
12582         PR c++/80029
12583         * gimplify.c (is_oacc_declared): New function.
12584         (oacc_default_clause): Use it to set default flags for acc declared
12585         variables inside parallel regions.
12586         (gimplify_scan_omp_clauses): Strip firstprivate pointers for acc
12587         declared variables.
12588         (gimplify_oacc_declare): Gimplify the declare clauses.  Add the
12589         declare attribute to any decl as necessary.
12591 2017-03-22  Thomas Preud'homme  <thomas.preudhomme@arm.com>
12593         PR target/80082
12594         * config/arm/arm-isa.h (isa_bit_lpae): New feature bit.
12595         (ISA_ARMv7ve): Add isa_bit_lpae to the definition.
12596         * config/arm/arm-protos.h (arm_arch7ve): Rename into ...
12597         (arm_arch_lpae): This.
12598         * config/arm/arm.c (arm_arch7ve): Rename into ...
12599         (arm_arch_lpae): This.  Define it in term of isa_bit_lpae.
12600         * config/arm/arm.h (TARGET_HAVE_LPAE): Redefine in term of
12601         arm_arch_lpae.
12603 2017-03-22  Martin Liska  <mliska@suse.cz>
12605         PR target/79906
12606         * config/rs6000/rs6000.c (rs6000_inner_target_options): Show
12607         error message instead of an ICE.
12609 2017-03-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
12611         * doc/extend.texi (6.11 Additional Floating Types): Revise.
12613 2017-03-21  Kelvin Nilsen  <kelvin@gcc.gnu.org>
12615         * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Add
12616         comments.
12617         * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
12618         comments.
12620 2017-03-21  Martin Sebor  <msebor@redhat.com>
12622         * doc/extend.texi: Use "cannot" instead of "can't."
12623         * doc/hostconfig.texi: Same.
12624         * doc/install.texi: Same.
12625         * doc/invoke.texi: Same.
12626         * doc/loop.texi: Same.
12627         * doc/md.texi: Same.
12628         * doc/objc.texi: Same.
12629         * doc/rtl.texi: Same.
12630         * doc/tm.texi: Same.
12631         * doc/tm.texi.in: Same.
12632         * doc/trouble.texi: Same.
12634 2017-03-21  Alexandre Oliva <aoliva@redhat.com>
12636         PR debug/63238
12637         * dwarf2out.c (struct checksum_attributes): Add at_alignment.
12638         (collect_checksum_attributes): Set it.
12639         (die_checksum_ordered): Use it.
12641 2017-03-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
12643         PR tree-optimization/79908
12644         * tree-stdarg.c (expand_ifn_va_arg_1): Revert the following
12645         change: For a VA_ARG whose LHS has been cast away, use
12646         force_gimple_operand to construct the side effects.
12648 2017-03-21  David Malcolm  <dmalcolm@redhat.com>
12650         PR translation/80001
12651         * omp-offload.c (oacc_loop_fixed_partitions): Make diagnostics
12652         more amenable to translation.
12653         (oacc_loop_auto_partitions): Likewise.
12655 2017-03-21  Marek Polacek  <polacek@redhat.com>
12656             Martin Sebor  <msebor@redhat.com>
12658         PR tree-optimization/80109
12659         * gimple-ssa-warn-alloca.c (alloca_call_type): Only call get_range_info
12660         on INTEGRAL_TYPE_P.
12662 2017-03-21  Jakub Jelinek  <jakub@redhat.com>
12663             Segher Boessenkool  <segher@kernel.crashing.org>
12665         PR target/80125
12666         * combine.c (can_combine_p): Revert the 2017-03-20 change, only
12667         check reg_used_between_p between insn and one of succ or succ2
12668         depending on if succ is artificial insn not inserted into insn
12669         stream.
12671 2017-03-21  Martin Liska  <mliska@suse.cz>
12673         PR gcov-profile/80081
12674         * Makefile.in: Add gcov-dump and fix installation of gcov-tool.
12675         * doc/gcc.texi: Include gcov-dump stuff.
12676         * doc/gcov-dump.texi: New file.
12678 2017-03-21  Toma Tabacu  <toma.tabacu@imgtec.com>
12680         PR rtl-optimization/79150
12681         * config/mips/mips.c (mips_block_move_loop): Emit a NOP after the
12682         conditional jump, if the jump is the last insn of the loop.
12684 2017-03-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
12685             Richard Biener  <rguenth@suse.de>
12687         PR tree-optimization/79908
12688         * tree-stdarg.c (expand_ifn_va_arg_1): For a VA_ARG whose LHS has
12689         been cast away, use force_gimple_operand to construct the side
12690         effects.
12692 2017-03-21  Martin Liska  <mliska@suse.cz>
12694         PR libfortran/79956
12695         * simplify-rtx.c (simplify_immed_subreg): Initialize a variable
12696         to NULL.
12698 2017-03-21  Brad Spengler <spender@grsecurity.net>
12700         PR plugins/80094
12701         * plugin.c (htab_hash_plugin): New function.
12702         (add_new_plugin): Use it and adjust.
12703         (parse_plugin_arg_opt): Adjust.
12704         (init_one_plugin): Likewise.
12706 2017-03-21  Richard Biener  <rguenther@suse.de>
12708         PR tree-optimization/80032
12709         * gimplify.c (gimple_push_cleanup): Add force_uncond parameter,
12710         if set force the cleanup to happen unconditionally.
12711         (gimplify_target_expr): Push inserted clobbers with force_uncond
12712         to avoid them being removed by control-dependent DCE.
12714 2017-03-21  Richard Biener  <rguenther@suse.de>
12716         PR tree-optimization/80122
12717         * tree-inline.c (copy_bb): Do not expans va-arg packs or
12718         va_arg_pack_len when the inlined call stmt requires pack
12719         expansion itself.
12720         * tree-inline.h (struct copy_body_data): Make call_stmt a gcall *.
12722 2017-03-21  Jakub Jelinek  <jakub@redhat.com>
12724         PR sanitizer/78158
12725         * tsan.c (instrument_builtin_call): If the memory model argument
12726         is not a constant, assume it is valid.
12728         PR c/67338
12729         * fold-const.c (round_up_loc): Negate divisor in unsigned type to
12730         avoid UB.
12732 2017-03-20  Segher Boessenkool  <segher@kernel.crashing.org>
12734         PR rtl-optimization/79910
12735         * combine.c (can_combine_p): Do not allow combining an I0 or I1
12736         if its dest is used by an insn before I2 (other than the combined
12737         insns themselves, which are properly handled already).
12739 2017-03-20  Segher Boessenkool  <segher@kernel.crashing.org>
12741         Revert:
12742         2017-03-17  Bernd Schmidt  <bschmidt@redhat.com>
12744         * combine.c (record_used_regs): New static function.
12745         (try_combine): Handle situations where there is an additional
12746         instruction between I2 and I3 which needs to have a LOG_LINK
12747         updated.
12749         Revert:
12750         2017-03-17  Jim Wilson  <jim.wilson@linaro.org>
12752         * combine.c (try_combine): Delete redundant i1 test.  Call
12753         prev_nonnote_nondebug_insn instead of prev_nonnote_insn.
12755 2017-03-20  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
12757         PR target/80083
12758         * config/rs6000/rs6000.md (*movsi_internal1): Fix constraints for
12759         alternatives 13/14.
12761 2017-03-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
12763         PR tree-optimization/80054
12764         * gimple-ssa-strength-reduction.c (all_phi_incrs_profitable): Fail
12765         the optimization if a PHI or any of its arguments is not dominated
12766         by the candidate's basis.  Use gphi* rather than gimple* as
12767         appropriate.
12768         (replace_profitable_candidates): Clean up a gimple* variable that
12769         should be a gphi* variable.
12771 2017-03-20  Martin Sebor  <msebor@redhat.com>
12773         PR c++/52477
12774         * doc/extend.texi (attribute constructor): Document present limitation.
12776 2017-03-20  Kelvin Nilsen  <kelvin@gcc.gnu.org>
12778         PR target/79963
12779         * config/rs6000/altivec.h (vec_all_ne): Under __cplusplus__ and
12780         __POWER9_VECTOR__ #ifdef control, change template definition to
12781         use Power9-specific built-in function.
12782         (vec_any_eq): Likewise.
12783         * config/rs6000/vector.md (vector_ae_v2di_p): Change the flag used
12784         to control outcomes from this test.
12785         (vector_ae_<mode>p): For VEC_F modes, likewise.
12787 2017-03-20  Ian Lance Taylor  <iant@google.com>
12789         * config/i386/i386.c (ix86_function_regparm): Save an extra
12790         register for -fsplit-stack with DECL_STATIC_CHAIN.
12792 2017-03-17  Palmer Dabbelt  <palmer@dabbelt.com>
12794         PR target/79912
12795         * config/riscv/riscv.c (riscv_preferred_reload_class): Remove.
12796         (TARGET_PREFERRED_RELOAD_CLASS): Likewise.
12798 2017-03-17  Palmer Dabbelt  <palmer@dabbelt.com>
12800         * config/riscv/riscv.c (riscv_print_operand): Use "fence
12801         iorw,ow".
12802         * config/riscv/sync.mc (mem_thread_fence_1): Use "fence
12803         iorw,iorw".
12805 2017-03-20  Marek Polacek  <polacek@redhat.com>
12807         PR sanitizer/80063
12808         * asan.c (DEF_SANITIZER_BUILTIN): Use do { } while (0).
12810 2017-03-20  Richard Biener  <rguenther@suse.de>
12812         PR tree-optimization/80113
12813         * graphite-isl-ast-to-gimple.c (copy_loop_phi_nodes): Do not
12814         allocate extra SSA name for PHI def.
12815         (add_close_phis_to_outer_loops): Likewise.
12816         (add_close_phis_to_merge_points): Likewise.
12817         (copy_loop_close_phi_args): Likewise.
12818         (copy_cond_phi_nodes): Likewise.
12820 2017-03-20  Martin Liska  <mliska@suse.cz>
12822         PR middle-end/79753
12823         * tree-chkp.c (chkp_build_returned_bound): Do not build
12824         returned bounds for a LHS that's not a BOUNDED_P type.
12826 2017-03-20  Martin Liska  <mliska@suse.cz>
12828         PR target/79769
12829         PR target/79770
12830         * tree-chkp.c (chkp_find_bounds_1): Handle REAL_CST,
12831         COMPLEX_CST and VECTOR_CST.
12833 2017-03-20  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12835         PR target/78857
12836         * config/s390/s390.md ("cmp<mode>_ccs_0"): Add a clobber of the
12837         target operand.  A new splitter adds the clobber statement in case
12838         the target operand is dead anyway.
12840 2017-03-19  Gerald Pfeifer  <gerald@pfeifer.com>
12842         * doc/install.texi (Specific) <sparc-*-linux*>: No longer refer
12843         to age-old versions of binutils and glibc.
12845 2017-03-18  Segher Boessenkool  <segher@kernel.crashing.org>
12847         * doc/contrib.texi (Contributors): Remove duplicate entry for myself.
12849 2017-03-18  Gerald Pfeifer  <gerald@pfeifer.com>
12851         * doc/contrib.texi (Contributors): Add Segher Boessenkool.
12853 2017-03-18  Gerald Pfeifer  <gerald@pfeifer.com>
12855         * doc/install.texi (Specific) <arm-*-eabi>: Remove old
12856         requirement for binutils 2.13.
12858 2017-03-17  Jim Wilson  <jim.wilson@linaro.org>
12860         * combine.c (try_combine): Delete redundant i1 test.  Call
12861         prev_nonnote_nondebug_insn instead of prev_nonnote_insn.
12863 2017-03-17  Palmer Dabbelt  <palmer@dabbelt.com
12865         * doc/install.texi (Specific) <riscv32-*-elf>: Add riscv32-*-elf,
12866         riscv32-*-linux, riscv64-*-elf, riscv64-*-linux to the table of
12867         contents.
12868         <riscv64-*-elf>: Re-arrange section
12869         <riscv32-*-elf>: Add a note about requiring binutils 2.28.
12870         <riscv32-*-linux>: Likewise.
12871         <riscv64-*-elf>: Likewise
12872         <riscv64-*-linux>: Likewise.
12874 2017-03-17  Richard Earnshaw  <rearnsha@arm.com>
12876         PR target/80052
12877         * aarch64.opt(verbose-cost-dump): Fix typo.
12879 2017-03-17  Pat Haugen  <pthaugen@us.ibm.com>
12881         PR target/79951
12882         * config/rs6000/rs6000.md (copysign<mode>3_fcpsgn): Test
12883         for VECTOR_UNIT_VSX_P (<MODE>mode) too.
12885 2017-03-17  Bernd Schmidt  <bschmidt@redhat.com>
12887         * reload.c (find_reloads): When reloading a nonoffsettable address,
12888         use RELOAD_OTHER for it and its address reloads.
12890         PR rtl-optimization/79910
12891         * combine.c (record_used_regs): New static function.
12892         (try_combine): Handle situations where there is an additional
12893         instruction between I2 and I3 which needs to have a LOG_LINK
12894         updated.
12896 2017-03-17  Jeff Law  <law@redhat.com>
12898         PR tree-optimization/71437
12899         * tree-vrp.c (simplify_stmt_for_jump_threading): Lookup the
12900         conditional in the hash table first.
12901         (vrp_dom_walker::before_dom_children): Extract condition from
12902         ASSERT_EXPR.  Record condition, its inverion and any implied
12903         conditions as well.
12905 2017-03-17  Marek Polacek  <polacek@redhat.com>
12906             Markus Trippelsdorf  <markus@trippelsdorf.de>
12908         PR tree-optimization/80079
12909         * gimple-ssa-store-merging.c (class pass_store_merging): Initialize
12910         m_stores_head.
12912 2017-03-17  Richard Biener  <rguenther@suse.de>
12914         PR middle-end/80075
12915         * tree-eh.c (stmt_could_throw_1_p): Only handle gimple assigns.
12916         Properly verify the LHS before the RHS possibly claims to be
12917         handled.
12918         (stmt_could_throw_p): Hande gimple conds fully here.  Clobbers
12919         do not throw.
12921 2017-03-17  Martin Jambor  <mjambor@suse.cz>
12923         * doc/invoke.texi (Option Options): Include -fipa-vrp in the list.
12924         (List of -O2 options): Likewise.
12925         (-fipa-bit-cp): Replace "ipa" with "interprocedural."
12926         (-fipa-vrp) New.
12928 2017-03-17  Tom de Vries  <tom@codesourcery.com>
12930         * gcov-dump.c (print_usage): Print bug_report_url.
12932 2017-03-17  Richard Biener  <rguenther@suse.de>
12934         PR middle-end/80050
12935         * genmatch.c (parser::next): Remove pointless check for CPP_EOF.
12936         (parser::peek): Likewise.
12938 2017-03-17  Richard Biener  <rguenther@suse.de>
12940         PR tree-optimization/80048
12941         * sese.c (free_sese_info): Properly release rename_map and
12942         copied_bb_map elements.
12944 2017-03-16  Alexandre Oliva <aoliva@redhat.com>
12946         * gimple-ssa-store-merging.c (struct imm_store_chain_info):
12947         Add linked-list forward and backlinks.  Insert on
12948         construction, remove on destruction.
12949         (class pass_store_merging): Add m_stores_head field.
12950         (pass_store_merging::terminate_and_process_all_chains):
12951         Iterate over m_stores_head list.
12952         (pass_store_merging::terminate_all_aliasing_chains):
12953         Likewise.
12954         (pass_store_merging::execute): Check for debug stmts first.
12955         Push new chains onto the m_stores_head stack.
12957 2017-03-16  Michael Meissner  <meissner@linux.vnet.ibm.com>
12959         PR target/71294
12960         * config/rs6000/vsx.md (vsx_splat_<mode>, VSX_D iterator): Allow a
12961         SPLAT operation on ISA 2.07 64-bit systems that have direct move,
12962         but no MTVSRDD support, by doing MTVSRD and XXPERMDI.
12964 2017-03-16  Jeff Law  <law@redhat.com>
12966         PR tree-optimization/71437
12967         * tree-ssa-dom.c (dom_opt_dom_walker): Remove thread_across_edge
12968         member function.  Implementation moved into after_dom_children
12969         member function and into the threader's thread_outgoing_edges
12970         function.
12971         (dom_opt_dom_walker::after_dom_children): Simplify by moving
12972         some code into new thread_outgoing_edges.
12973         * tree-ssa-threadedge.c (thread_across_edge): Make static and simplify
12974         definition.  Simplify marker handling (do it here).   Assume we always
12975         have the available expression and the const/copies tables.
12976         (thread_outgoing_edges): New function extracted from tree-ssa-dom.c
12977         and tree-vrp.c
12978         * tree-ssa-threadedge.h (thread_outgoing_edges): Declare.
12979         * tree-vrp.c (equiv_stack): No longer file scoped.
12980         (vrp_dom_walker): New class.
12981         (vrp_dom_walker::before_dom_children): New member function.
12982         (vrp_dom_walker::after_dom_children): Likewise.
12983         (identify_jump_threads):  Setup domwalker.  Use it rather than
12984         walking edges in a random order by hand.  Simplify setup/finalization.
12985         (finalize_jump_threads): Remove.
12986         (vrp_finalize): Do not call identify_jump_threads here.
12987         (execute_vrp): Do it here instead and call thread_through_all_blocks
12988         here too.
12990         PR tree-optimization/71437
12991         * tree-ssa-dom.c (pfn_simplify): Add basic_block argument.  All
12992         callers changed.
12993         (simplify_stmt_for_jump_threading): Add basic_block argument.  All
12994         callers changed.
12995         (lhs_of_dominating_assert): Moved from here into tree-vrp.c.
12996         (dom_opt_dom_walker::thread_across_edge): Remove
12997         handle_dominating_asserts argument.  All callers changed.
12998         (record_temporary_equivalences_from_stmts_at_dest): Corresponding
12999         changes.  Remove calls to lhs_of_dominating_assert.  Other
13000         uses of handle_dominating_asserts turn into unconditional code
13001         (simplify_control_stmt_condition_1): Likewise.
13002         (simplify_control_stmt_condition): Likewise.
13003         (thread_through_normal_block, thread_across_edge): Likewise.
13004         * tree-ssa-threadedge.h (thread_across_edge): Corresponding changes.
13005         * tree-vrp.c (lhs_of_dominating_assert): Move here.  Return original
13006         object if it is not an SSA_NAME.
13007         (simplify_stmt_for_jump_threading): Call lhs_of_dominating_assert
13008         before calling into the VRP specific simplifiers.
13009         (identify_jump_threads): Remove handle_dominating_asserts
13010         argument.
13012 2017-03-16  Jakub Jelinek  <jakub@redhat.com>
13014         PR fortran/79886
13015         * tree-diagnostic.c (default_tree_printer): No longer static.
13016         * tree-diagnostic.h (default_tree_printer): New prototype.
13018 2017-03-16  Tamar Christina  <tamar.christina@arm.com>
13020         * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>)
13021         Change ins into fmov.
13023 2017-03-16  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13025         * config/aarch64/iterators.md (h_con): Return "x" for V4HF and V8HF.
13026         * config/aarch64/aarch64-simd.md (*aarch64_fma4_elt_from_dup<mode>):
13027         Use h_con constraint for operand 1.
13028         (*aarch64_fnma4_elt_from_dup<mode>): Likewise.
13029         (*aarch64_mulx_elt_from_dup<mode>): Likewise for operand 2.
13031 2017-03-15  Jeff Law  <law@redhat.com>
13033         PR tree-optimization/71437
13034         * tree-ssa-dom.c (derive_equivalences_from_bit_ior): New function.
13035         (record_temporary_equivalences): Use it.
13037         PR tree-optimization/71437
13038         * tree-ssa-dom.c (struct cond_equivalence): Moved from here into
13039         tree-ssa-scopedtables.
13040         (lookup_avail_expr, build_and_record_new_cond): Likewise.
13041         (record_conditions, record_cond, vuse_eq): Likewise.
13042         (record_edge_info): Adjust to API tweak of record_conditions.
13043         (simplify_stmt_for_jump_threading): Similarly for lookup_avail_expr.
13044         (record_temporary_equivalences, optimize_stmt): Likewise.
13045         (eliminate_redundant_computations): Likewise.
13046         (record_equivalences_from_stmt): Likewise.
13047         * tree-ssa-scopedtables.c: Include options.h and params.h.
13048         (vuse_eq): New function, moved from tree-ssa-dom.c
13049         (build_and_record_new_cond): Likewise.
13050         (record_conditions): Likewise.  Accept vector of conditions rather
13051         than edge_equivalence structure for first argument.
13052         for the first argument.
13053         (avail_exprs_stack::lookup_avail_expr): New member function, moved
13054         from tree-ssa-dom.c.
13055         (avail_exprs_stack::record_cond): Likewise.
13056         * tree-ssa-scopedtables.h (struct cond_equivalence): Moved here
13057         from tree-ssa-dom.c.
13058         (avail_exprs_stack): Add new member functions lookup_avail_expr
13059         and record_cond.
13060         (record_conditions): Declare.
13062 2017-03-15  Vladimir Makarov  <vmakarov@redhat.com>
13064         PR target/80017
13065         * lra-constraints.c (process_alt_operands): Increase reject for
13066         reloading an input/output operand.
13068 2017-03-15  Michael Meissner  <meissner@linux.vnet.ibm.com>
13070         PR target/79038
13071         * config/rs6000/rs6000.md (float<QHI:mode><IEEE128:mode>2): Define
13072         insns to convert from signed/unsigned char/short to IEEE 128-bit
13073         floating point.
13074         (floatuns<QHI:mode><IEEE128:mode>2): Likewise.
13076 2017-03-15  Uros Bizjak  <ubizjak@gmail.com>
13078         PR target/80019
13079         * config/i386/i386.c (ix86_vector_duplicate_value): Create
13080         subreg of inner mode for values already in registers.
13082 2017-03-15  Bernd Schmidt  <bschmidt@redhat.com>
13084         * config/c6x/c6x.c (hwloop_optimize): Handle case where the old
13085         iteration reg is used after the loop.
13087 2017-03-14  Martin Sebor  <msebor@redhat.com>
13089         PR tree-optimization/79800
13090         * gimple-ssa-sprintf.c (format_floating: Add argument.  Handle
13091         precision in negative-positive range.
13092         (format_floating): Call non-const overload with adjusted precision.
13094 2017-03-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
13096         PR target/79947
13097         * config/rs6000/rs6000.h (TARGET_FRSQRTES): Add check for
13098         -mpowerpc-gfxopt.
13100 2017-03-14  Martin Sebor  <msebor@redhat.com>
13102         PR middle-end/80020
13103         * builtin-attrs.def (ATTR_ALLOC_SIZE_2_NOTHROW_LIST): New macro.
13104         * builtins.def (aligned_alloc): Use it.
13106         PR c/79936
13107         * Makefile.in (GTFILES): Add calls.c.
13108         * calls.c: Include "gt-calls.h".
13110 2017-03-14  Bernd Schmidt  <bschmidt@redhat.com>
13112         PR rtl-optimization/79728
13113         * regs.h (struct target_regs): New field
13114         x_contains_allocatable_regs_of_mode.
13115         (contains_allocatable_regs_of_mode): New macro.
13116         * reginfo.c (init_reg_sets_1): Initialize it, and change
13117         contains_reg_of_mode so it includes global regs as well.
13118         * reload.c (push_reload): Use contains_allocatable_regs_of_mode
13119         rather than contains_regs_of_mode.
13121 2017-03-14  Martin Liska  <mliska@suse.cz>
13123         * doc/invoke.texi: Document options that can't be combined with
13124         -fcheck-pointer-bounds.
13126 2017-03-14  Martin Liska  <mliska@suse.cz>
13128         PR middle-end/79831
13129         * doc/invoke.texi (-Wchkp): Document the option.
13131 2017-03-14  Martin Liska  <mliska@suse.cz>
13133         * Makefile.in: Install gcov-dump.
13135 2017-03-14  Martin Liska  <mliska@suse.cz>
13137         * multiple_target.c (expand_target_clones): Bail out for
13138         an invalid attribute.
13140 2017-03-14  Richard Biener  <rguenther@suse.de>
13142         * alias.c (struct alias_set_entry): Pack properly.
13143         * cfgloop.h (struct loop): Likewise.
13144         * cse.c (struct set): Likewise.
13145         * ipa-utils.c (struct searchc_env): Likewise.
13146         * loop-invariant.c (struct invariant): Likewise.
13147         * lra-remat.c (struct cand): Likewise.
13148         * recog.c (struct change_t): Likewise.
13149         * rtl.h (struct address_info): Likewise.
13150         * symbol-summary.h (function_summary): Likewise.
13151         * tree-loop-distribution.c (struct partition): Likewise.
13152         * tree-object-size.c (struct object_size_info): Likewise.
13153         * tree-ssa-loop-ivopts.c (struct cost_pair): Likewise.
13154         * tree-ssa-threadupdate.c (struct ssa_local_info_t): Likewise.
13155         * tree-vect-data-refs.c (struct _vect_peel_info): Likewise.
13156         * tree-vect-slp.c (struct _slp_oprnd_info): Likewise.
13157         * tree-vect-stmts.c (struct simd_call_arg_info): Likewise.
13158         * tree-vectorizer.h (struct _loop_vec_info): Likewise.
13159         (struct _stmt_vec_info): Likewise.
13161 2017-03-14  Martin Liska  <mliska@suse.cz>
13163         PR target/79892
13164         * multiple_target.c (create_dispatcher_calls): Check that
13165         a target can create a function dispatcher.
13167 2017-03-14  Martin Liska  <mliska@suse.cz>
13169         PR lto/66295
13170         * multiple_target.c (expand_target_clones): Drop local.local
13171         flag for default implementation.
13173 2017-03-14  Richard Biener  <rguenther@suse.de>
13175         PR tree-optimization/80030
13176         * tree-vect-stmts.c (vectorizable_store): Plug memleak.
13178 2017-03-13  Kito Cheng  <kito.cheng@gmail.com>
13180         * config/riscv/riscv.c (riscv_emit_float_compare>: Use
13181         gcc_fallthrough() instead of __attribute__((fallthrough));
13183 2017-03-13  Gerald Pfeifer  <gerald@pfeifer.com>
13185         * doc/gcc.texi: Remove "up" link to (DIR).
13186         * doc/gccint.texi: Ditto.
13188 2017-03-13  Gerald Pfeifer  <gerald@pfeifer.com>
13190         * doc/install.texi (Specific) <avr>: Remove reference to
13191         binutils 2.13.
13193 2017-03-13  Jeff Law  <law@redhat.com>
13195         * config/riscv/riscv.c (riscv_emit_float_compare): Use fallthru
13196         attribute rather than comments.
13198         * config/pdp11/pdp11.md (movmemhi): Adjust operand numbers to
13199         match_scratch operand is highest.
13201 2017-03-13  Martin Liska  <mliska@suse.cz>
13203         PR middle-end/78339
13204         * ipa-pure-const.c (warn_function_noreturn): If the declarations
13205         is a CHKP clone, use original declaration.
13207 2017-03-13  Claudiu Zissulescu  <claziss@synopsys.com>
13209         * config/arc/arc.c (arc_init): Use multiplier whenever we have it.
13210         (arc_conditional_register_usage): Use a different allocation order
13211         when optimizing for size.
13212         * common/config/arc/arc-common.c (arc_option_optimization_table):
13213         Section anchors default on when optimizing for size.
13215 2017-03-13  Claudiu Zissulescu  <claziss@synopsys.com>
13217         * config/arc/arc.md (*tst_bitfield_tst): Fix pattern.
13219 2017-03-13  Claudiu Zissulescu  <claziss@synopsys.com>
13221         * config/arc/arc.c (arc_output_addsi): Emit code density adds.
13222         * config/arc/arc.md (cpu_facility): Add cd variant.
13223         (*movqi_insn): Add code density variant.
13224         (*movhi_insn): Likewise.
13225         (*movqi_insn): Likewise.
13226         (*addsi3_mixed): Likewise.
13227         (subsi3_insn): Likewise.
13229 2017-03-13  Claudiu Zissulescu  <claziss@synopsys.com>
13231         * config/arc/arc.md (movsi_cond_exec): Update constraint.
13233 2017-03-13  Claudiu Zissulescu  <claziss@synopsys.com>
13235         * config/arc/arc.c (arc_legitimize_pic_address): Handle PIC
13236         expressions with MINUS and UNARY ops.
13238 2017-03-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13240         PR target/79911
13241         * config/arm/neon.md (vec_sel_widen_ssum_lo<VQI:mode><VW:mode>3):
13242         Rename to...
13243         (vec_sel_widen_ssum_lo<mode><V_half>3): ... This. Avoid mismatch
13244         between vec_select and vector argument.
13245         (vec_sel_widen_ssum_hi<VQI:mode><VW:mode>3): Rename to...
13246         (vec_sel_widen_ssum_hi<mode><V_half>3): ... This. Likewise.
13247         (vec_sel_widen_usum_lo<VQI:mode><VW:mode>3): Rename to...
13248         (vec_sel_widen_usum_lo<mode><V_half>3): ... This.
13249         (vec_sel_widen_usum_hi<VQI:mode><VW:mode>3): Rename to...
13250         (vec_sel_widen_usum_hi<mode><V_half>3): ... This.
13252 2017-03-13  Richard Biener  <rguenther@suse.de>
13254         PR other/79991
13255         * params.def (vect-max-peeling-for-alignment): Fix typo.
13257 2017-03-12  Gerald Pfeifer  <gerald@pfeifer.com>
13259         * doc/install.texi (Specific) <mips-*-*>: Remove description of
13260         issue that only occurred with binutils below 2.18.
13262 2017-03-12  Gerald Pfeifer  <gerald@pfeifer.com>
13264         * doc/install.texi (Specific) <cris-axis-elf>: No longer
13265         refer to binutils 2.11/2.12 minimum.
13267 2017-03-12  Gerald Pfeifer  <gerald@pfeifer.com>
13269         * doc/install.texi (Specific) <powerpc-*-*>: Remove link to
13270         ftp.kernel.org and simplify binutils requirement.
13272 2017-03-11  Gerald Pfeifer  <gerald@pfeifer.com>
13274         * doc/invoke.texi (Warning Options): Fix spelling of link-time
13275         optimization.
13276         (Optimize Options): Ditto.  Also remove redundancy.
13278 2017-03-10  David Malcolm  <dmalcolm@redhat.com>
13280         PR translation/79848
13281         * ipa-devirt.c (warn_types_mismatch): Simplify uses of "%<%s%>" to
13282         "%qs".
13283         * ipa-pure-const.c (suggest_attribute): Likewise.  Convert _
13284         to G_ to avoid double translation.
13286 2017-03-10  David Malcolm  <dmalcolm@redhat.com>
13288         PR translation/79923
13289         * auto-profile.c (get_combined_location): Convert leading
13290         character of diagnostics to lower case and remove trailing period.
13291         (read_profile): Likewise for various diagnostics.
13292         * config/arm/arm.c (arm_option_override): Remove trailing period
13293         from various diagnostics.
13294         * config/msp430/msp430.c (msp430_expand_delay_cycles): Likewise.
13295         (msp430_expand_delay_cycles): Likewise.
13297 2017-03-10  David Malcolm  <dmalcolm@redhat.com>
13299         PR target/79925
13300         * config/aarch64/aarch64.c (aarch64_validate_mcpu): Quote the
13301         full command-line argument, rather than just "str".
13302         (aarch64_validate_march): Likewise.
13303         (aarch64_validate_mtune): Likewise.
13305 2017-03-10  Bernd Schmidt  <bschmidt@redhat.com>
13307         PR rtl-optimization/78911
13308         * lra-assigns.c (must_not_spill_p): New function.
13309         (spill_for): Use it.
13311 2017-03-10  Jakub Jelinek  <jakub@redhat.com>
13313         PR tree-optimization/79981
13314         * tree-vrp.c (extract_range_basic): Handle IMAGPART_EXPR of
13315         ATOMIC_COMPARE_EXCHANGE ifn result.
13316         (stmt_interesting_for_vrp, vrp_visit_stmt): Handle
13317         IFN_ATOMIC_COMPARE_EXCHANGE.
13319 2017-03-10  David Malcolm  <dmalcolm@redhat.com>
13321         PR driver/79875
13322         * opts.c (parse_sanitizer_options): Add missing question mark to
13323         "did you mean" message.
13325 2017-03-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
13327         * config/rs6000/rs6000-builtin.def (VMULEUB_UNS): Remove orphaned
13328         built-in.
13329         (VMULEUH_UNS): Likewise.
13330         (VMULOUB_UNS): Likewise.
13331         (VMULOUH_UNS): Likewise.
13332         * config/rs6000/rs6000.c (builtin_function_type): Remove
13333         references to ALTIVEC_BUILTIN_VMUL[EO]U[BH]_UNS.
13335 2017-03-10  David Malcolm  <dmalcolm@redhat.com>
13337         PR bootstrap/79952
13338         * read-rtl-function.c (function_reader::read_rtx_operand): Update
13339         x with result of extra_parsing_for_operand_code_0.
13340         (function_reader::extra_parsing_for_operand_code_0): Convert
13341         return type from void to rtx, returning x.  When reading
13342         SYMBOL_REF with SYMBOL_FLAG_HAS_BLOCK_INFO, reallocate x to the
13343         larger size containing struct block_symbol.
13345 2017-03-10  Segher Boessenkool  <segher@kernel.crashing.org>
13347         * config/rs6000/rs6000.c (rs6000_option_override_internal): Disallow
13348         -mfloat128-hardware without -m64.
13350 2017-03-10  Will Schmidt <will_schmidt@vnet.ibm.com>
13352         PR target/79941
13353         * config/rs6000/rs6000.c (builtin_function_type): Add VMUL*U[HB]
13354         entries to the case statement that marks unsigned arguments to
13355         overloaded functions.
13357 2017-03-10  Kelvin Nilsen  <kelvin@gcc.gnu.org>
13359         * config/rs6000/rs6000.c (rs6000_option_override_internal): Fix
13360         two typographic errors in the handling of TARGET_UPPER_REGS_DI.
13362 2017-03-10  Pat Haugen  <pthaugen@us.ibm.com>
13364         PR target/79907
13365         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Test
13366         TARGET_UPPER_REGS_DI when setting 'wi' constraint regclass.
13368 2017-03-10  Martin Liska  <mliska@suse.cz>
13370         PR target/65705
13371         PR target/69804
13372         * toplev.c (process_options): Enable MPX with LSAN and UBSAN.
13373         * tree-chkp.c (chkp_walk_pointer_assignments): Verify that
13374         FIELD != NULL.
13376 2017-03-10  Olivier Hainque  <hainque@adacore.com>
13378         * tree-switch-conversion (array_value_type): Start by resetting
13379         candidate type to it's main variant.
13381 2017-03-10  Jakub Jelinek  <jakub@redhat.com>
13383         PR rtl-optimization/79909
13384         * combine.c (try_combine): Use simplify_replace_rtx on individual
13385         CALL_INSN_FUNCTION_USAGE elements instead of replace_rtx on copy_rtx
13386         of the whole CALL_INSN_FUNCTION_USAGE.
13388         PR tree-optimization/79972
13389         * gimple-ssa-warn-alloca.c (alloca_call_type): Only call
13390         get_range_info on SSA_NAMEs.  Formatting fixes.
13392 2017-03-10  Richard Biener  <rguenther@suse.de>
13393             Jakub Jelinek  <jakub@redhat.com>
13395         PR tree-optimization/77975
13396         * tree-ssa-loop-niter.c (get_base_for): Allow phi argument from latch
13397         edge to be constant.
13398         (get_val_for): For constant x return it.  Formatting fix.
13399         (loop_niter_by_eval): Avoid pointless looping if the next iteration
13400         would use the same bases as the current one.
13402 2017-03-09  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
13404         * config/rs6000/rs6000.c (rs6000_gen_le_vsx_permute): Use rotate
13405         instead of vec_select for V1TImode.
13406         * conifg/rs6000/vsx.md (VSX_LE): Remove mode iterator that is no
13407         longer needed.
13408         (VSX_LE_128): Add V1TI to this mode iterator.
13409         (*vsx_le_perm_load_<mode>): Change to use VSX_D mode iterator.
13410         (*vsx_le_perm_store_<mode>): Likewise.
13411         (pre-reload splitter for VSX stores): Likewise.
13412         (post-reload splitter for VSX stores): Likewise.
13413         (*vsx_xxpermdi2_le_<mode>): Likewise.
13414         (*vsx_lxvd2x2_le_<mode>): Likewise.
13415         (*vsx_stxvd2x2_le_<mode>): Likewise.
13417 2017-03-09  Michael Eager  <eager@eagercon.com>
13419         Correct failures with --enable-checking=yes,rtl.
13421         * config/microblaze/microblaze.c (microblaze_expand_shift):
13422         Replace GET_CODE test with CONST_INT_P and INTVAL test with
13423         test for const0_rtx.
13424         * config/microblaze/microblaze.md (ashlsi3_byone, ashrsi3_byone,
13425         lshrsi3_byone): Replace INTVAL with test for const1_rtx.
13427 2017-03-09  Richard Biener  <rguenther@suse.de>
13429         PR tree-optimization/79977
13430         * graphite-scop-detection.c (scop_detection::merge_sese):
13431         Handle the case of extra exits to blocks dominating the entry.
13433 2017-03-09  Toma Tabacu  <toma.tabacu@imgtec.com>
13435         * doc/sourcebuild.texi (Effective-Target Keywords, Other attributes):
13436         Document rdynamic.
13438 2017-03-09  Vladimir Makarov  <vmakarov@redhat.com>
13440         PR rtl-optimization/79949
13441         * lra-constraints.c (process_alt_operands): Check memory when
13442         trying to predict a cycle.  Print about the overall increase.
13444 2017-03-09  Richard Biener  <rguenther@suse.de>
13446         PR middle-end/79971
13447         * gimple-expr.c (useless_type_conversion_p): Preserve
13448         TYPE_SATURATING for fixed-point types.
13450 2017-03-09  Richard Biener  <rguenther@suse.de>
13452         PR ipa/79970
13453         * ipa-prop.c (ipa_modify_formal_parameters): Avoid changing
13454         alignment of BLKmode params.
13456 2017-03-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13458         PR target/79913
13459         * config/aarch64/iterators.md (VALL_F16_NO_V2Q): New mode iterator.
13460         (VALL_NO_V2Q): Likewise.
13461         (VDQF_DF): Delete.
13462         * config/aarch64/aarch64-simd.md
13463         (aarch64_dup_lane_<vswap_width_name><mode>): Use VALL_F16_NO_V2Q
13464         iterator.
13465         (*aarch64_simd_vec_copy_lane_<vswap_width_name><mode>): Use
13466         VALL_NO_V2Q mode iterator.
13467         (*aarch64_vgetfmulx<mode>): Use VDQF iterator.
13469 2017-03-09  Martin Liska  <mliska@suse.cz>
13471         PR tree-optimization/79631
13472         * tree-chkp-opt.c (chkp_is_constant_addr): Call
13473         tree_int_cst_sign_bit just for INTEGER constants.
13475 2017-03-09  Martin Liska  <mliska@suse.cz>
13477         PR target/65705
13478         PR target/69804
13479         * toplev.c (process_options): Disable -fcheck-pointer-bounds with
13480         sanitizers.
13482 2017-03-09  Marek Polacek  <polacek@redhat.com>
13484         PR c++/79672
13485         * tree.c (inchash::add_expr): Handle TREE_VEC.
13487 2017-03-09  Martin Liska  <mliska@suse.cz>
13489         PR ipa/79764
13490         (chkp_narrow_size_and_offset): New function.
13491         (chkp_parse_array_and_component_ref): Support BIT_FIELD_REF.
13492         (void chkp_parse_bit_field_ref): New function.
13493         (chkp_make_addressed_object_bounds): Add case for BIT_FIELD_REF.
13494         (chkp_process_stmt): Use chkp_parse_bit_field_ref.
13496 2017-03-09  Martin Liska  <mliska@suse.cz>
13498         PR ipa/79761
13499         * tree-chkp.c (chkp_get_bound_for_parm): Get bounds for a param.
13500         (chkp_find_bounds_1): Remove gcc_unreachable.
13502 2017-03-09  Jakub Jelinek  <jakub@redhat.com>
13504         PR sanitizer/79944
13505         * asan.c (get_mem_refs_of_builtin_call): For BUILT_IN_ATOMIC* and
13506         BUILT_IN_SYNC*, determine the access type from the size suffix and
13507         always build a MEM_REF with that type.  Handle forgotten
13508         BUILT_IN_SYNC_FETCH_AND_NAND_16 and BUILT_IN_SYNC_NAND_AND_FETCH_16.
13510         PR target/79932
13511         * config/i386/avx512vlintrin.h (_mm256_cmpge_epi32_mask,
13512         _mm256_cmpge_epi64_mask, _mm256_cmpge_epu32_mask,
13513         _mm256_cmpge_epu64_mask, _mm256_cmple_epi32_mask,
13514         _mm256_cmple_epi64_mask, _mm256_cmple_epu32_mask,
13515         _mm256_cmple_epu64_mask, _mm256_cmplt_epi32_mask,
13516         _mm256_cmplt_epi64_mask, _mm256_cmplt_epu32_mask,
13517         _mm256_cmplt_epu64_mask, _mm256_cmpneq_epi32_mask,
13518         _mm256_cmpneq_epi64_mask, _mm256_cmpneq_epu32_mask,
13519         _mm256_cmpneq_epu64_mask, _mm256_mask_cmpge_epi32_mask,
13520         _mm256_mask_cmpge_epi64_mask, _mm256_mask_cmpge_epu32_mask,
13521         _mm256_mask_cmpge_epu64_mask, _mm256_mask_cmple_epi32_mask,
13522         _mm256_mask_cmple_epi64_mask, _mm256_mask_cmple_epu32_mask,
13523         _mm256_mask_cmple_epu64_mask, _mm256_mask_cmplt_epi32_mask,
13524         _mm256_mask_cmplt_epi64_mask, _mm256_mask_cmplt_epu32_mask,
13525         _mm256_mask_cmplt_epu64_mask, _mm256_mask_cmpneq_epi32_mask,
13526         _mm256_mask_cmpneq_epi64_mask, _mm256_mask_cmpneq_epu32_mask,
13527         _mm256_mask_cmpneq_epu64_mask, _mm_cmpge_epi32_mask,
13528         _mm_cmpge_epi64_mask, _mm_cmpge_epu32_mask, _mm_cmpge_epu64_mask,
13529         _mm_cmple_epi32_mask, _mm_cmple_epi64_mask, _mm_cmple_epu32_mask,
13530         _mm_cmple_epu64_mask, _mm_cmplt_epi32_mask, _mm_cmplt_epi64_mask,
13531         _mm_cmplt_epu32_mask, _mm_cmplt_epu64_mask, _mm_cmpneq_epi32_mask,
13532         _mm_cmpneq_epi64_mask, _mm_cmpneq_epu32_mask, _mm_cmpneq_epu64_mask,
13533         _mm_mask_cmpge_epi32_mask, _mm_mask_cmpge_epi64_mask,
13534         _mm_mask_cmpge_epu32_mask, _mm_mask_cmpge_epu64_mask,
13535         _mm_mask_cmple_epi32_mask, _mm_mask_cmple_epi64_mask,
13536         _mm_mask_cmple_epu32_mask, _mm_mask_cmple_epu64_mask,
13537         _mm_mask_cmplt_epi32_mask, _mm_mask_cmplt_epi64_mask,
13538         _mm_mask_cmplt_epu32_mask, _mm_mask_cmplt_epu64_mask,
13539         _mm_mask_cmpneq_epi32_mask, _mm_mask_cmpneq_epi64_mask,
13540         _mm_mask_cmpneq_epu32_mask, _mm_mask_cmpneq_epu64_mask): Move
13541         definitions outside of __OPTIMIZE__ guarded section.
13543         PR target/79932
13544         * config/i386/avx512bwintrin.h (_mm512_packs_epi32,
13545         _mm512_maskz_packs_epi32, _mm512_mask_packs_epi32,
13546         _mm512_packus_epi32, _mm512_maskz_packus_epi32,
13547         _mm512_mask_packus_epi32): Move definitions outside of __OPTIMIZE__
13548         guarded section.
13550 2017-03-09  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
13552         * config/s390/vx-builtins.md ("vfee<mode>", "vfeez<mode>")
13553         ("vfenez<mode>"): Add missing constraints.
13555 2017-03-08  Martin Sebor  <msebor@redhat.com>
13557         PR target/79928
13558         * config/nds32/nds32.c (nds32_option_override):
13559         Fix misspelled diagnostic.
13561 2017-03-08  Jakub Jelinek  <jakub@redhat.com>
13563         PR c/79940
13564         * gimplify.c (gimplify_omp_for): Replace index var in outer
13565         taskloop statement with an artificial variable and add
13566         OMP_CLAUSE_PRIVATE clause for it.
13568 2017-03-08  Richard Biener  <rguenther@suse.de>
13570         PR tree-optimization/79955
13571         * tree-ssa-uninit.c (warn_uninitialized_vars): Do not warn
13572         for accesses that are completely outside of the variable.
13574 2017-03-08  Andrew Haley  <aph@redhat.com>
13576         PR tree-optimization/79943
13577         * tree-ssa-loop-split.c (compute_new_first_bound): When
13578         calculating the new upper bound, (END-BEG) should be added, not
13579         subtracted.
13581 2017-03-08  Jakub Jelinek  <jakub@redhat.com>
13583         * config/avr/avr.md (setmemhi): Make sure match_dup
13584         operand number comes before match_scratch.
13586 2017-03-08  Richard Biener  <rguenther@suse.de>
13588         PR tree-optimization/79920
13589         * tree-vect-slp.c (vect_create_mask_and_perm): Remove and inline
13590         with ncopies == 1 to ...
13591         (vect_transform_slp_perm_load): ... here.  Properly compute
13592         all element loads by iterating VF times over the group.  Do
13593         not handle ncopies (computed in a broken way) in
13594         vect_create_mask_and_perm.
13596 2017-03-08  Jakub Jelinek  <jakub@redhat.com>
13598         PR sanitizer/79904
13599         * internal-fn.c (expand_vector_ubsan_overflow): If arg0 or arg1
13600         is a uniform vector, use uniform_vector_p return value instead of
13601         building ARRAY_REF on folded VIEW_CONVERT_EXPR to array type.
13603 2017-03-07  Marek Polacek  <polacek@redhat.com>
13605         PR middle-end/79809
13606         * gimple-ssa-warn-alloca.c (pass_walloca::gate): Use HOST_WIDE_INT.
13607         (alloca_call_type): Likewise.
13609 2017-03-07  Martin Liska  <mliska@suse.cz>
13611         * gcov.c (process_args): Put comment to correct location.
13613 2017-03-07  Martin Liska  <mliska@suse.cz>
13615         PR middle-end/68270
13616         * tree-chkp.c (chkp_may_narrow_to_field): Add new argument ref.
13617         Use array_at_struct_end_p instead of DECL_CHAIN (field).
13618         (chkp_narrow_bounds_for_field): Likewise.
13619         (chkp_parse_array_and_component_ref): Pass one more argument to
13620         call.
13622 2017-03-07  Richard Biener  <rguenther@suse.de>
13624         * tree-vect-loop-manip.c (slpeel_add_loop_guard): Preserve
13625         preheaders.
13627 2017-03-07  Segher Boessenkool  <segher@kernel.crashing.org>
13629         * config/i386/i386.c (ix86_local_alignment): Align most aggregates
13630         of 16 bytes and more to 16 bytes, not those of 16 bits and more.
13632 2017-03-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13634         PR c/79855
13635         * params.def (PARAM_STORE_MERGING_ALLOW_UNALIGNED): Add full stop
13636         to end of description.
13637         (PARAM_MAX_STORES_TO_MERGE): Likewise.
13639 2017-03-07  Jakub Jelinek  <jakub@redhat.com>
13641         PR rtl-optimization/79901
13642         * config/i386/sse.md (*avx512bw_<code><mode>3<mask_name>): Renamed to
13643         ...
13644         (*avx512f_<code><mode>3<mask_name>): ... this.
13645         (<code><mode>3 with maxmin code iterator): Use VI8_AVX2_AVX512F
13646         iterator instead of VI8_AVX2_AVX512BW.
13648         PR rtl-optimization/79901
13649         * expr.c (expand_expr_real_2): For vector MIN/MAX, if there is no
13650         min/max expander, expand it using expand_vec_cond_expr.
13652         PR sanitizer/79897
13653         * ubsan.c (ubsan_encode_value): Call mark_addressable on the
13654         temporary.
13656 2017-03-06  Jakub Jelinek  <jakub@redhat.com>
13658         PR c++/79821
13659         * dwarf2out.h (dw_vec_const): Change array type from unsigned char *
13660         to void * for PCH reasons.
13661         * dwarf2out.c (output_loc_operands, output_die): Cast
13662         v.val_vec.array to unsigned char *.
13664 2017-03-06  John David Anglin  <danglin@gcc.gnu.org>
13666         PR target/77850
13667         * config/pa/pa-64.h (PAD_VARARGS_DOWN): Don't pad down complex and
13668         vector types.
13670 2017-03-06  Vladimir Makarov  <vmakarov@redhat.com>
13672         PR rtl-optimization/79571
13673         * lra-constraints.c (process_alt_operands): Calculate static
13674         reject and subtract it from overall when only addresses will be
13675         reloaded.
13677 2017-03-06  Julia Koval  <julia.koval@intel.com>
13679         PR target/79793
13680         * config/i386/i386.c (ix86_minimum_incoming_stack_boundary): Set
13681         incoming stack boundary to 128 for 64-bit targets.
13683 2017-03-06  Richard Biener  <rguenther@suse.de>
13685         PR tree-optimization/79894
13686         * tree-vectorizer.c (vectorize_loops): Set loop_vectorized_call
13687         to NULL after folding it.
13689 2017-03-06  Richard Biener  <rguenther@suse.de>
13691         PR tree-optimization/79824
13692         * tree-vect-stmts.c (get_group_load_store_type): Fix alignment
13693         check disabling peeling for gaps.
13695 2017-03-06  Toma Tabacu  <toma.tabacu@imgtec.com>
13697         * doc/sourcebuild.texi (Effective-Target Keywords, Environment
13698         attributes): Document gettimeofday.
13700 2017-03-06  Robin Dapp  <rdapp@linux.vnet.ibm.com>
13702         * config/s390/s390.c (s390_option_override_internal): Set
13703         PARAM_MIN_VECT_LOOP_BOUND
13705 2017-03-06  Robin Dapp  <rdapp@linux.vnet.ibm.com>
13707         * config/s390/s390.c (s390_asm_output_function_label): Use nopr %r0.
13708         * config/s390/s390.md: Likewise.
13710 2017-03-06  Jakub Jelinek  <jakub@redhat.com>
13712         PR target/79812
13713         * config/i386/sse.md (VI8F_256_512): Remove mode iterator.
13714         (<avx2_avx512>_perm<mode>): Rename to ...
13715         (avx2_perm<mode>): ... this.  Use VI8F_256 iterator instead
13716         of VI8F_256_512.
13717         (<avx512>_perm<mode>_mask): Rename to ...
13718         (avx512vl_perm<mode>_mask): ... this.  Use VI8F_256 iterator instead
13719         of VI8F_256_512.
13720         (<avx2_avx512>_perm<mode>_1<mask_name>): Rename to ...
13721         (avx2_perm<mode>_1<mask_name): ... this.  Use VI8F_256 iterator
13722         instead of VI8F_256_512.
13723         (avx512f_perm<mode>): New define_expand.
13724         (avx512f_perm<mode>_mask): Likewise.
13725         (avx512f_perm<mode>_1<mask_name>): New define_insn.
13726         (<avx512>_vec_dup<mode>_1): Fix up vec_select mode.
13728 2017-03-06  Prachi Godbole  <prachi.godbole@imgtec.com>
13730         * config/mips/mips-msa.md (msa_fmax_a_<msafmt>, msa_fmin_a_<msafmt>,
13731         msa_max_a_<msafmt>, msa_min_a_<msafmt>): Introduce mode interator for
13732         if_then_else.
13733         (smin<mode>3, smax<mode>3): Change operand print code from 'B' to 'E'.
13735 2017-03-06  Martin Liska  <mliska@suse.cz>
13737         PR sanitize/79783
13738         * asan.c (asan_expand_poison_ifn): Do not expand ASAN_POISON
13739         when having a SSA NAME w/o VAR_DECL assigned to it.
13741 2017-03-06  Prachi Godbole  <prachi.godbole@imgtec.com>
13743         * config/mips/mips-msa.md (msa_dotp_<su>_d, msa_dpadd_<su>_d,
13744         msa_dpsub_<su>_d): Fix MODE for vec_select.
13746 2017-03-06  Prachi Godbole  <prachi.godbole@imgtec.com>
13748         * config/mips/mips.c (mips_gen_const_int_vector): Change type of last
13749         argument.
13750         * config/mips/mips-protos.h (mips_gen_const_int_vector): Likewise.
13752 2017-03-06  Richard Biener  <rguenther@suse.de>
13754         * lto-streamer.c (lto_check_version): Use %qs in diagnostics.
13755         * plugin.c (register_plugin_info): Likewise.
13756         * tree-chkp.c (chkp_make_static_const_bounds): Likewise.
13758 2017-03-05  Jakub Jelinek  <jakub@redhat.com>
13760         * config/i386/sse.md (sse_storehps, sse_storelps,
13761         avx_<castmode><avxsizesuffix>_<castmode>,
13762         avx512f_<castmode><avxsizesuffix>_<castmode>,
13763         avx512f_<castmode><avxsizesuffix>_256<castmode>): Require
13764         in condition that at least one operand is not a MEM.
13766 2017-03-03  Jakub Jelinek  <jakub@redhat.com>
13768         PR middle-end/79805
13769         * internal-fn.def (ATOMIC_BIT_TEST_AND_SET, ATOMIC_BIT_TEST_AND_RESET,
13770         ATOMIC_BIT_TEST_AND_COMPLEMENT, ATOMIC_COMPARE_EXCHANGE): Remove
13771         ECF_NOTHROW.
13772         * gimple-fold.c (fold_builtin_atomic_compare_exchange): Set
13773         gimple_call_nothrow_p flag based on whether original builtin can throw.
13774         If it can, emit following stmts on the fallthrough edge.
13775         * tree-ssa-ccp.c (optimize_atomic_bit_test_and): Similarly, except
13776         don't create new bb if inserting just debug stmts on the edge, try to
13777         insert them on the fallthru bb or just reset debug stmts.
13779 2017-03-03  Segher Boesssenkool  <segher@kernel.crashing.org>
13781         PR target/43763
13782         * config/rs6000/rs6000.c (rs6000_final_prescan_insn): Save and
13783         restore recog_data (including the operand rtxes inside it) around
13784         the call to get_insn_template.
13786 2017-03-03  Martin Sebor  <msebor@redhat.com>
13788         PR tree-optimization/79699
13789         * context.c (context::~context): Free MPFR caches to avoid
13790         a memory leak on program exit.
13792 2017-03-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13794         * config/aarch64/aarch64.c (aarch64_float_const_representable_p):
13795         Use wide_int::ulow () instead of .elt (0).
13797 2017-03-03  Uros Bizjak  <ubizjak@gmail.com>
13799         * config/i386/i386.md (*pushtf): Change *roF constraint to *roC.
13800         (*pushxf): Limit oF constraint to 32bit targets and add oC
13801         constraint for 64bit targets.
13802         (pushxf splitter): Use PUSH_ROUNDING to calculate stack adjustment.
13803         (*pushdf): Change rmF constraint to rmC.
13805 2017-03-03  Martin Liska  <mliska@suse.cz>
13807         * tree-ssa-loop-prefetch.c (pass_loop_prefetch::execute):
13808         Remove unused variable.
13810 2017-03-03  Jakub Jelinek  <jakub@redhat.com>
13812         PR target/79807
13813         * config/i386/i386.c (ix86_expand_multi_arg_builtin): If target
13814         is a memory operand, increase num_memory.
13815         (ix86_expand_args_builtin): Likewise.
13817 2017-03-03  Jan Hubicka  <jh@suse.cz>
13819         PR lto/79760
13820         * ipa-devirt.c (maybe_record_node): Properly handle
13821         __cxa_pure_virtual visibility.
13823 2017-03-03  Martin Liska  <mliska@suse.cz>
13825         PR tree-optimization/79803
13826         * tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Remove
13827         assert.
13828         (pass_loop_prefetch::execute): Disabled optimization if an
13829         assumption about L1 cache size is not met.
13831 2017-03-03  Martin Liska  <mliska@suse.cz>
13833         PR rtl-optimization/79574
13834         * gcse.c (struct gcse_expr): Use HOST_WIDE_INT instead of int.
13835         (hash_scan_set): Likewise.
13836         (dump_hash_table): Likewise.
13837         (hoist_code): Likewise.
13839 2017-03-03  Richard Biener  <rguenther@suse.de>
13841         * fixed-value.c (fixed_from_string): Restore use of elt (1)
13842         in place of uhigh ().
13843         (fixed_convert_from_real): Likewise.
13845 2017-03-03  Uros Bizjak  <ubizjak@gmail.com>
13847         PR target/79514
13848         * config/i386/i386.md (*pushxf_rounded): Use Pmode instead of DImode.
13850 2017-03-03  Richard Biener  <rguenther@suse.de>
13852         PR middle-end/79818
13853         * match.pd ( X +- C1 CMP C2 -> X CMP C2 -+ C1): Add missing
13854         TYPE_OVERFLOW_UNDEFINED check.
13856 2017-03-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
13858         * config/rs6000/vector.md (vector_ne_<mode>_p): Correct operand
13859         numbers.
13860         (vector_ae_<mode>_p): Likewise.
13861         (vector_nez_<mode>_p): Likewise.
13862         (vector_ne_v2di_p): Likewise.
13863         (vector_ae_v2di_p): Likewise.
13864         (vector_ne_<mode>_p): Likewise.
13865         * config/rs6000/vsx.md (vsx_tsqrt<mode>2_fg): Correct operand
13866         numbers.
13867         (vsx_tsqrt<mode>2_fe): Likewise.
13869 2017-03-02  Uros Bizjak  <ubizjak@gmail.com>
13871         PR target/79514
13872         * config/i386/i386.md (*pushxf_rounded): New insn_and_split pattern.
13874 2017-03-02  Jakub Jelinek  <jakub@redhat.com>
13876         PR rtl-optimization/79780
13877         * cprop.c (one_cprop_pass): When second and further conditional trap
13878         in a single basic block is turned into an unconditional trap, turn it
13879         into a deleted note to avoid RTL verification failures.
13881 2017-03-02  Richard Biener  <rguenther@suse.de>
13883         * fold-const.c (const_binop): Use ulow () instead of elt (0).
13885 2017-03-02  Richard Biener  <rguenther@suse.de>
13887         PR tree-optimization/79345
13888         PR c++/42000
13889         * tree-ssa-alias.c (walk_aliased_vdefs_1): Take a limit
13890         param and abort the walk, returning -1 if it is hit.
13891         (walk_aliased_vdefs): Take a limit param and pass it on.
13892         * tree-ssa-alias.h (walk_aliased_vdefs): Add a limit param,
13893         defaulting to 0 and return a signed int.
13894         * tree-ssa-uninit.c (struct check_defs_data): New struct.
13895         (check_defs): New helper.
13896         (warn_uninitialized_vars): Use walk_aliased_vdefs to warn
13897         about uninitialized memory.
13898         * fixed-value.c (fixed_from_string): Use ulow/uhigh to avoid
13899         bogus uninitialized warning.
13900         (fixed_convert_from_real): Likewise.
13902 2017-03-02  Bin Cheng  <bin.cheng@arm.com>
13904         PR tree-optimization/66768
13905         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Skip addr
13906         iv_use if base object can't be determined.
13908 2017-03-02  Jakub Jelinek  <jakub@redhat.com>
13910         PR tree-optimization/79345
13911         * gensupport.h (struct pattern_stats): Add min_scratch_opno field.
13912         * gensupport.c (get_pattern_stats_1) <case MATCH_SCRATCH>: Update it.
13913         (get_pattern_stats): Initialize it.
13914         * genemit.c (gen_expand): Verify match_scratch numbers come after
13915         match_operand/match_dup numbers.
13916         * config/i386/i386.md (<s>mul<mode>3_highpart): Swap match_dup and
13917         match_scratch numbers.
13918         * config/i386/sse.md (avx2_gathersi<mode>, avx2_gatherdi<mode>):
13919         Likewise.
13920         * config/s390/s390.md (trunctdsd2): Likewise.
13922 2017-03-02  Richard Biener  <rguenther@suse.de>
13924         * wide-int.h (wide_int_storage::operator=): Implement in terms
13925         of wi::copy.
13927 2017-03-02  Richard Biener  <rguenther@suse.de>
13929         PR tree-optimization/79777
13930         * tree-ssa-pre.c (eliminate_insert): Give up if we simplify
13931         the to insert expression to sth existing.
13933 2017-03-01  Martin Sebor  <msebor@redhat.com>
13935         PR middle-end/79692
13936         * gimple-ssa-sprintf.c
13937         (directive::known_width_and_precision): New function.
13938         (format_integer): Use it.
13939         (get_mpfr_format_length): Consider the full range of precision
13940         when computing %g output with the # flag.  Set the likely byte
13941         count to 3 rather than 1 when precision is indeterminate.
13942         (format_floating): Correct the lower bound of precision.
13944 2017-03-01  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
13946         * doc/invoke.texi: Document default code model for 64-bit Linux.
13948 2017-03-01  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
13950         PR target/79752
13951         * config/rs6000/rs6000.md (peephole2 for udiv/umod): Should emit
13952         udiv rather than div since input pattern is unsigned.
13954 2017-03-01  Uros Bizjak  <ubizjak@gmail.com>
13956         * config/i386/i386.c (print_reg): Warn for values of
13957         unsupported size in integer register.
13959 2017-03-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
13961         PR target/79439
13962         * config/rs6000/predicates.md (current_file_function_operand): Do
13963         not allow self calls to be local if the function is replaceable.
13965 2017-03-01  Kelvin Nilsen  <kelvin@gcc.gnu.org>
13967         PR target/79395
13968         * config/rs6000/altivec.h (vec_ctz and others): Change the
13969         preprocessor macro that controls conditional compilation from
13970         _ARCH_PWR9 to __POWER9_VECTOR__.
13971         (vec_all_ne): Change parameterization of __altivec_scalar_pred
13972         macro expansion under preprocessor #ifdef __POWER9_VECTOR__
13973         control (instead of _ARCH_PWR9 control) so that template
13974         definition uses power9-specific function.
13975         (vec_any_eq): Likewise.
13976         (vec_all_ne): Change macro definition to use a power9-specific
13977         expansion under #ifdef __POWER9_VECTOR__ control (instead of
13978         _ARCH_PWR9 control).
13979         (vec_any_eq) Likewise.
13980         * config/rs6000/rs6000-builtin.def (CMPNEF): Remove BU_P9V_AV_2
13981         expansion for CMPNEF to remove support for xvcmpnesp instruction.
13982         (CMPNED): Remove BU_P9V_AV2 expansion for CMPNED to remove
13983         support for xvcmpnedp instruction.
13984         (VCMPNEB_P): Replace BU_P9V_AV_P macro expansion with BU_P9V_AV_2
13985         macro expansion so that Power9 implementation of vec_all_ne does
13986         not use the AltiVec predicate framework.
13987         (VCMPNEH_P): Likewise.
13988         (VCMPNEW_P): Likewise.
13989         (VCMPNED_P): Likewise.
13990         (VCMPNEFP_P): Likewise.
13991         (VCMPNEDP_P): Likewise.
13992         (VCMPAEB_P): Add BU_P9V_AV_2 macro expansion to change
13993         implementation of vec_any_eq to not use AltiVec predicate
13994         framework.
13995         (VCMPAEH_P): Likewise.
13996         (VCMPAEW_P): Likewise.
13997         (VCMPAED_P): Likewise.
13998         (VCMPAEFP_P): Likewise.
13999         (VCMPAEDP_P): Likewise.
14000         (VCMPNE_P): Replace BU_P9V_OVERLOAD_P macro expansion with
14001         BU_P9V_OVERLOAD_2 so that Power9 implementation of vec_all_ne does
14002         not use the AltiVec predicate framework.
14003         (VCMPAE_P): Add BU_P9V_OVERLOAD_2 macro to change implementation
14004         of vec_any_eq to not use AltiVec predicate framework.
14005         * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Add
14006         support for predefined __POWER9_VECTOR__ macro to indicate that
14007         Power9 instruction selection is enabled.
14008         (altivec_overloaded_builtins): Remove extraneous
14009         ALTIVEC_BUILTIN_VEC_CMPNE entry for overloaded
14010         function argument types RS6000_BTI_bool_V16QI and
14011         RS6000_BTI_bool_V16QI.  Remove erroneous ALTIVEC_BUILTIN_VEC_CMPNE
14012         entry for overloaded function argument types RS6000_BTI_bool_V4SI
14013         andRS6000_BTI_bool_V4SI, mapping to P9V_BUILTIN_CMPNEB.  Remove
14014         two entries mapping to P9V_BUITIN_CMPNED and one entry mapping to
14015         P9V_BUILTIN_CMPNEF to force use of instructions not specific to
14016         Power9 for implementations of vec_cmpne.  Change the signature for
14017         all definitions of the overloaded P9V_BUILTIN_VEC_CMPNE_P function
14018         (representing vec_all_ne) to remove the previously described first
14019         argument of type RS6000_BTI_INTSI, as this was an artifact of
14020         reliance on the AltiVec predicate framework, which is no longer
14021         used in the implementation of these functions.  Add
14022         P9V_BUILTIN_VEC_VCMPAE_P entries (representing the vec_anyeq
14023         function) to match all of the P9V_BUILTIN_VEC_VCMNE_P entries
14024         since, unlike the AltiVec predicate framework implementation, we
14025         do not share function descriptors between vec_alle and vec_anyeq.
14026         (altivec_resolve_overloaded_builtin): Add SFmode and DFmode to the
14027         set of modes that receive special treatment even when
14028         TARGET_P9_VECTOR is true.  The special treatment emits code that
14029         does not depend on Power9 instructions.
14030         * config/rs6000/vector.md (vector_ne_<mode>_p): Change this
14031         define_expand to not rely on AltiVec predicate framework.
14032         (vector_ae_<mode>p): New define_expand to represent vec_any_eq
14033         function.
14034         (vector_ne_v2di_p): Change this define_expand to not rely on
14035         AltiVec predicate framework.
14036         (vector_ae_v2di_p): New define_expand to represent vec_any_eq
14037         function.
14038         (vector_ne_<mode>_p): Change this define_expand to not rely on
14039         AltiVec predicate framework.
14040         (vector_ae_<mode>p): New define_expand to represent vec_any_eq
14041         function.
14042         * config/rs6000/vsx.md (*vsx_ne_<mode>_p): For modes VSX_EXTRACT_I
14043         (V16QI, V8HI, V4SI), correct a typo in the code emitted for this
14044         define_insn pattern.
14045         (*vsx_ne_<mode>_p): For modes VSX_F (V4SF and V2DF), remove this
14046         define_insn pattern because the xvcmpne<VSs>. instruction is not
14047         supported.
14048         (vcmpne<VSs>): Remove this define_insn because xvcmpne<VSs>
14049         instruction is not supported.
14051 2017-03-01  Jakub Jelinek  <jakub@redhat.com>
14053         * config/nvptx/nvptx.c: Include intl.h.
14055 2017-03-01  Martin Jambor  <mjambor@suse.cz>
14057         PR lto/78140
14058         * ipa-prop.h (ipa_bits): Removed field known.
14059         (ipa_jump_func): Removed field vr_known.  Changed fields bits and m_vr
14060         to pointers.  Adjusted their comments to warn about their sharing.
14061         (ipcp_transformation_summary): Change bits to a vector of pointers.
14062         (ipa_check_create_edge_args): Moved to ipa-prop.c, declare.
14063         (ipa_get_ipa_bits_for_value): Declare.
14064         * tree-vrp.h (value_range): Mark as GTY((for_user)).
14065         * ipa-prop.c (ipa_bit_ggc_hash_traits): New.
14066         (ipa_bits_hash_table): Likewise.
14067         (ipa_vr_ggc_hash_traits): Likewise.
14068         (ipa_vr_hash_table): Likewise.
14069         (ipa_print_node_jump_functions_for_edge): Adjust for bits and m_vr
14070         being pointers and vr_known being removed.
14071         (ipa_set_jf_unknown): Likewise.
14072         (ipa_get_ipa_bits_for_value): New function.
14073         (ipa_set_jfunc_bits): Likewise.
14074         (ipa_get_value_range): New overloaded functions.
14075         (ipa_set_jfunc_vr): Likewise.
14076         (ipa_compute_jump_functions_for_edge): Use the above functions to
14077         construct bits and vr parts of jump functions.
14078         (ipa_check_create_edge_args): Move here from ipa-prop.h, also allocate
14079         ipa_bits_hash_table and ipa_vr_hash_table if they do not already
14080         exist.
14081         (ipcp_grow_transformations_if_necessary): Also allocate
14082         ipa_bits_hash_table and ipa_vr_hash_table if they do not already
14083         exist.
14084         (ipa_node_params_t::duplicate): Do not copy bits, just pointers to
14085         them.  Fix too long lines.
14086         (ipa_write_jump_function): Adjust for bits and m_vr being pointers and
14087         vr_known being removed.
14088         (ipa_read_jump_function): Use new setter functions to construct bits
14089         and vr parts of jump functions or set them to NULL.
14090         (write_ipcp_transformation_info): Adjust for bits being pointers.
14091         (read_ipcp_transformation_info): Likewise.
14092         (ipcp_update_bits): Likewise.  Fix excessively long lines a trailing
14093         space.
14094         Include gt-ipa-prop.h.
14095         * ipa-cp.c (propagate_bits_across_jump_function): Adjust for bits
14096         being pointers.
14097         (ipcp_store_bits_results): Likewise.
14098         (propagate_vr_across_jump_function): Adjust for m_vr being a pointer.
14099         Do not write to existing jump functions but use a temporary instead.
14101 2017-03-01  Jakub Jelinek  <jakub@redhat.com>
14103         PR c++/79681
14104         * fold-const.c (make_bit_field_ref): If orig_inner is COMPONENT_REF,
14105         attempt to use its first operand as BIT_FIELD_REF base.
14107 2017-03-01  Richard Biener  <rguenther@suse.de>
14109         PR middle-end/79721
14110         * tree-chrec.c (chrec_evaluate): Perform computation of Newtons
14111         interpolating formula in wrapping arithmetic.
14112         (chrec_apply): Convert chrec_evaluate return value to wanted type.
14114 2017-03-01  Jakub Jelinek  <jakub@redhat.com>
14116         PR tree-optimization/79734
14117         * tree-vect-generic.c (expand_vector_condition): Optimize
14118         AVX512 vector boolean VEC_COND_EXPRs into bitwise operations.
14119         Handle VEC_COND_EXPR where comparison has different inner width from
14120         type's inner width.
14122 2017-02-28  Sandra Loosemore  <sandra@codesourcery.com>
14124         * doc/invoke.texi (ARC Options): Copy-edit to fix punctuation,
14125         markup, and similar issues.  Remove @opindex entries for things
14126         that aren't options.  Add missing -mmpy-option entries.
14128 2017-02-28  Jakub Jelinek  <jakub@redhat.com>
14130         PR tree-optimization/79737
14131         * gimple-ssa-store-merging.c (encode_tree_to_bitpos): If bitlen is
14132         a multiple of BITS_PER_UNIT and !BYTES_BIG_ENDIAN, clear
14133         tmpbuf[byte_size - 1].  Call natice_encode_expr with byte_size - 1
14134         instead of byte_size.  Formatting fix.
14135         (shift_bytes_in_array_right): Formatting fix.
14137 2017-02-28  Eric Botcazou  <ebotcazou@adacore.com>
14139         PR target/79749
14140         * config/sparc/sparc.c (sparc_frame_pointer_required): Add missing
14141         condition on optimize for the leaf function test.
14143 2017-02-28  Martin Liska  <mliska@suse.cz>
14145         PR lto/79625
14146         * read-rtl-function.c (function_reader::handle_unknown_directive):
14147         Bail out when one uses -flto.
14149 2017-02-28  Martin Liska  <mliska@suse.cz>
14151         * common.opt: Replace space with tabular for options of <number>
14152         type.
14153         * config/i386/i386.opt: Show <number> value for
14154         -mlarge-data-threshold.
14155         * opts.c (print_filtered_help): Do not display number in hexadecimal
14156         format.
14158 2017-02-28  Martin Liska  <mliska@suse.cz>
14160         * common.opt: Fix --help=option -Q for options which are of
14161         an enum type.
14163 2017-02-28  Uros Bizjak  <ubizjak@gmail.com>
14165         * config/i386/i386.c (print_reg): Error out for values
14166         of 8-bit size in invalid integer register.
14168 2017-02-28  Martin Sebor  <msebor@redhat.com>
14170         PR tree-optimization/79691
14171         * passes.def (pass_all_optimizations_g): Enable pass_sprintf_length.
14173 2017-02-28  Jakub Jelinek  <jakub@redhat.com>
14175         PR target/79729
14176         * config/i386/i386.c (ix86_print_operand) <case 'R'>: Replace
14177         gcc_unreachable with output_operand_lossage.
14179 2017-02-28  Richard Biener  <rguenther@suse.de>
14181         PR tree-optimization/79740
14182         * tree-ssa-sccvn.c (vn_nary_op_insert_into): Allow redundant
14183         inserts.
14184         (visit_nary_op): Insert the nary into the hashtable if we
14185         pattern-matched sth.
14186         * tree-ssa-pre.c (eliminate_insert): Robustify.
14188 2017-02-28  Richard Biener  <rguenther@suse.de>
14190         PR middle-end/79731
14191         * fold-const.c (decode_field_reference): Reject out-of-bound
14192         accesses.
14194 2017-02-28  Jakub Jelinek  <jakub@redhat.com>
14196         * config/i386/i386.c: Include intl.h.
14197         (ix86_option_override_internal): Use cond ? G_("...") : G_("...")
14198         instead of just cond ? "..." : "...".
14199         * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Likewise.
14200         * coverage.c (read_counts_file): Likewise.
14201         * omp-offload.c: Include intl.h.
14202         (oacc_loop_fixed_partitions): Use cond ? G_("...") : G_("...") instead
14203         of just cond ? "..." : "...".
14204         * gcov.c (read_count_file): Use cond ? N_("...") : N_("...") instead
14205         of just cond ? "..." : "...".
14207 2017-02-28  Richard Earnshaw  <rearnsha@arm.com>
14209         PR target/79742
14210         * config/arm/parsecpu.awk (gen_data): Set tuning target to 'tune for'
14211         entry, if present.
14212         * config/arm/arm-cpus.in (cortex-m0plus.small-multiply): Correct
14213         'tune for' CPU name.
14214         * config/arm/arm-cpu-data.h: Regenerated.
14216 2017-02-28  Richard Biener  <rguenther@suse.de>
14218         PR tree-optimization/79732
14219         * tree-inline.c (expand_call_inline): Do not shadow var.
14221 2017-02-28  Richard Biener  <rguenther@suse.de>
14223         PR tree-optimization/79723
14224         * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): Preserve
14225         address-space properly.
14227 2017-02-28  Thomas Schwinge  <thomas@codesourcery.com>
14229         * doc/optinfo.texi (Optimization groups): Fix option used for
14230         OPTGROUP_ALL.
14231         * doc/invoke.texi (-fopt-info): Document "omp".
14232         * dumpfile.h: Sort OPTGROUP_OMP before OPTGROUP_VEC.
14233         (OPTGROUP_ALL): Add OPTGROUP_OMP.
14234         * hsa-gen.c (pass_data_gen_hsail): Use OPTGROUP_OMP.
14235         * ipa-hsa.c (pass_data_ipa_hsa): Likewise.
14236         * omp-simd-clone.c (pass_data_omp_simd_clone): Likewise.
14238         * dumpfile.h (OPTGROUP_OPENMP): Rename to OPTGROUP_OMP.  Adjust
14239         all users.
14240         * dumpfile.c (optgroup_options): Instead of "openmp", associate
14241         OPTGROUP_OMP with "omp".
14243 2017-02-27  Pat Haugen  <pthaugen@us.ibm.com>
14245         PR target/79544
14246         * config/rs6000/rs6000-c.c (struct altivec_builtin_types): Use VSRAD
14247         for arithmetic shift of unsigned V2DI.
14249 2017-02-27  Claudiu Zissulescu  <claziss@synopsys.com>
14251         * config.gcc (arc*-): Clean up, use arc/big.h, arc/elf.h, and
14252         arc/linux.h headers.
14253         * config/arc/arc.h (TARGET_OS_CPP_BUILTINS): Remove.
14254         (LINK_SPEC): Likewise.
14255         (ARC_TLS_EXTRA_START_SPEC): Likewise.
14256         (EXTRA_SPECS): Likewise.
14257         (STARTFILE_SPEC): Likewise.
14258         (ENDFILE_SPEC): Likewise.
14259         (LIB_SPEC): Likewise.
14260         (TARGET_SDATA_DEFAULT): Likewise.
14261         (TARGET_MMEDIUM_CALLS_DEFAULT): Likewise.
14262         (MULTILIB_DEFAULTS): Likewise.
14263         (DWARF2_UNWIND_INFO): Likewise.
14264         * config/arc/big.h: New file.
14265         * config/arc/elf.h: Likewise.
14266         * config/arc/linux.h: Likewise.
14267         * config/arc/t-uClibc: Remove.
14269 2017-02-27  Bin Cheng  <bin.cheng@arm.com>
14271         PR tree-optimization/77536
14272         * tree-ssa-loop-manip.c (niter_for_unrolled_loop): New function.
14273         (tree_transform_and_unroll_loop): Use above function to compute the
14274         estimated niter of unrolled loop and use it when scaling profile.
14275         Also use count info rather than frequency if it's non-zero.
14276         * tree-ssa-loop-manip.h niter_for_unrolled_loop(): New declaration.
14277         * tree-vect-loop.c (scale_profile_for_vect_loop): New function.
14278         (vect_transform_loop): Call above function.
14280 2017-02-27  Richard Biener  <rguenther@suse.de>
14282         PR tree-optimization/45397
14283         * tree-ssa-pre.c (eliminate_insert): Handle BIT_AND_EXPR.
14284         * tree-ssa-sccvn.c (valueized_wider_op): New helper.
14285         (visit_nary_op): Add pattern matching for CSEing sign-changed
14286         or truncated operations with wider ones.
14288 2017-02-27  Richard Biener  <rguenther@suse.de>
14290         PR tree-optimization/79690
14291         * tree-vect-stmts.c (vectorizable_store): Use vector type
14292         built from the DR with address-space.
14294 2017-02-26  Gerald Pfeifer  <gerald@pfeifer.com>
14296         * doc/invoke.texi (Optimize Options): Refine the description
14297         of asan-use-after-return.
14299 2017-02-25  Alan Modra  <amodra@gmail.com>
14301         PR rtl-optimization/79584
14302         * lra-constraints.c (base_to_reg): Reload ad->base, the entire
14303         base, not ad->base_term, the reg within base.  Remove assertion
14304         that ad->base == ad->base_term.  Replace gen_int_mode using
14305         bogus mode with const0_rtx.
14307 2017-02-25  Jakub Jelinek  <jakub@redhat.com>
14309         PR middle-end/79396
14310         * tree-eh.c (operation_could_trap_p, stmt_could_throw_1_p): Handle
14311         FMA_EXPR like tcc_binary or tcc_unary.
14313         * tree-ssa-loop-niter.c (number_of_iterations_exit): Simplify warning.
14315         PR debug/77589
14316         * dwarf2out.c (struct dw_loc_list_struct): Add noted_variable_value
14317         bitfield.
14318         (size_of_loc_descr): Handle DW_OP_GNU_variable_value.
14319         (output_loc_operands): Handle DW_OP_call_ref and
14320         DW_OP_GNU_variable_value.
14321         (struct variable_value_struct): New type.
14322         (struct variable_value_hasher): Likewise.
14323         (variable_value_hash): New variable.
14324         (string_types): Remove.
14325         (copy_loc_descr): New function.
14326         (add_loc_descr_to_each): Clarify comment.  Use copy_loc_descr.
14327         (prepend_loc_descr_to_each): New function.
14328         (add_loc_list): Fix comment typo.  Use prepend_loc_descr_to_each
14329         instead of add_loc_descr_to_each if the first argument is single
14330         location list and the second has multiple.
14331         (resolve_args_picking_1): Handle DW_OP_GNU_variable_value.
14332         (loc_list_from_tree_1): For early_dwarf, emit DW_OP_GNU_variable_value
14333         when looking for variable value which doesn't have other location info.
14334         (loc_list_from_tree): Formatting fix.
14335         (gen_array_type_die): Simplify DW_AT_string_length handling.
14336         (adjust_string_types): Remove.
14337         (gen_subprogram_die): Don't call adjust_string_types nor test/set
14338         string_types.  Call resolve_variable_values.
14339         (prune_unused_types_walk_loc_descr): Handle DW_OP_GNU_variable_value.
14340         (resolve_addr_in_expr): Likewise.  Add A argument.
14341         (copy_deref_exprloc): Remove deref argument.  Adjust for the
14342         original expression being DW_OP_GNU_variable_value with optionally
14343         DW_OP_stack_value after it instead of DW_OP_call4 with DW_OP_deref
14344         optionally after it.
14345         (optimize_string_length): Rework for DW_OP_GNU_variable_value.
14346         (resolve_addr): Adjust optimize_string_length and resolve_addr_in_expr
14347         callers.  Set remove_AT_byte_size if removing DW_AT_string_length.
14348         (variable_value_hasher::hash, variable_value_hasher::equal): New
14349         methods.
14350         (resolve_variable_value_in_expr, resolve_variable_value,
14351         resolve_variable_values, note_variable_value_in_expr,
14352         note_variable_value): New functions.
14353         (dwarf2out_early_finish): Call note_variable_value on all toplevel
14354         DIEs.
14356 2017-02-24  Jakub Jelinek  <jakub@redhat.com>
14358         PR c/79677
14359         * opts.h (handle_generated_option): Add GENERATED_P argument.
14360         * opts-common.c (handle_option): Adjust function comment.
14361         (handle_generated_option): Add GENERATED_P argument, pass it to
14362         handle_option.
14363         (control_warning_option): Pass false to handle_generated_option
14364         GENERATED_P.
14365         * opts.c (maybe_default_option): Pass true to handle_generated_option
14366         GENERATED_P.
14367         * optc-gen.awk: Likewise.
14369 2017-02-24  Segher Boessenkool  <segher@kernel.crashing.org>
14371         * config/sh/sh.md (tstsi_t): If operands[0] is a SUBREG instead of
14372         a REG, look at the REG it is a SUBREG of.
14373         (splitter for cmpeqsi_t): Ditto.
14375 2017-02-24  Segher Boessenkool  <segher@kernel.crashing.org>
14377         * config/pa/pa.c (pa_combine_instructions): Do not share RTL.  Make
14378         the special USEs with the pattern of the insn, not the insn itself.
14380 2017-02-24  Matthew Fortune  <matthew.fortune@imgtec.com>
14382         PR target/79473
14383         * doc/invoke.texi: Document -mload-store-pairs.
14385 2017-02-24  Segher Boessenkool  <segher@kernel.crashing.org>
14386             Sandra Loosemore  <sandra@codesourcery.com>
14388         * config/nios2/nios2.c (nios2_simple_const_p): Returns false if the
14389         argument isn't a CONST_INT.
14390         (nios2_alternate_compare_const): Assert op is a CONST_INT.
14391         (nios2_valid_compare_const_p): Assert op is a CONST_INT.
14392         (nios2_validate_compare): Bypass alternate compare logic if *op2
14393         is not a CONST_INT.
14394         (ldstwm_operation_p): Return false if first_base is not a REG or
14395         if first_offset is not a CONST_INT.
14397 2017-02-24  Segher Boessenkool  <segher@kernel.crashing.org>
14399         * config/cris/cris.md: Use correct operand in a define_peephole2.
14401 2017-02-24  Segher Boessenkool  <segher@kernel.crashing.org>
14403         * config/c6x/c6x.c (predicate_insn): Do not incorrectly share RTL.
14405 2017-02-24  Segher Boessenkool  <segher@kernel.crashing.org>
14407         * config/arc/arc.c (arc_ccfsm_advance): Only take the PATTERN of
14408         this_insn if it is an INSN or JUMP_INSN.
14409         (force_offsettable): Look at base, not at addr.
14410         * config/arc/predicates.md (brcc_nolimm_operator): Don't call INTVAL
14411         on things that aren't necessarily CONST_INTs.
14413 2017-02-24  Uros Bizjak  <ubizjak@gmail.com>
14415         * doc/invoke.texi (x86 Options, -mfpmath=sse): Mention that
14416         -mfpmath=sse is the default also for x86-32 targets with SSE2
14417         instruction set when @option{-ffast-math} is enabled
14419 2017-02-24  Jeff Law  <law@redhat.com>
14421         PR rtl-optimizatoin/79286
14422         * ira.c (update_equiv_regs): Drop may_trap_p exception to
14423         dominance test.
14425 2017-02-24  Richard Biener  <rguenther@suse.de>
14427         PR tree-optimization/79389
14428         * gimple-ssa-split-paths.c (is_feasible_trace): Properly skip
14429         debug insns.
14431 2017-02-24  Aldy Hernandez  <aldyh@redhat.com>
14433         * tree-ssa-loop-niter.c (number_of_iterations_exit): Update
14434         function comment to reflect reality.
14435         (loop_exits_before_overflow): Fix typo in function description.
14437 2017-02-24  Richard Biener  <rguenther@suse.de>
14439         PR tree-optimization/79389
14440         * gimple-ssa-split-paths.c (is_feasible_trace): Verify more
14441         properly that a threading opportunity exists.  Detect conditional
14442         copy/constant propagation opportunities.
14444 2017-02-23  Eric Botcazou  <ebotcazou@adacore.com>
14446         * config/visium/visium.md (type): Add trap.
14447         (b): New mode attribute.
14448         (*btst): Rename into...
14449         (*btst<mode>): ...this and adjust.
14450         (*cbranchsi4_btst_insn): Rename into...
14451         (*cbranch<mode>4_btst_insn): ...this and adjust.
14452         (trap): New define_insn.
14454 2017-02-23  Jakub Jelinek  <jakub@redhat.com>
14456         PR tree-optimization/79389
14457         * ifcvt.c (struct noce_if_info): Add rev_cond field.
14458         (noce_reversed_cond_code): New function.
14459         (noce_emit_store_flag): Use rev_cond if non-NULL instead of
14460         reversed_comparison_code.  Formatting fix.
14461         (noce_try_store_flag): Test rev_cond != NULL in addition to
14462         reversed_comparison_code.
14463         (noce_try_store_flag_constants): Likewise.
14464         (noce_try_store_flag_mask): Likewise.
14465         (noce_try_addcc): Use rev_cond if non-NULL instead of
14466         reversed_comparison_code.
14467         (noce_try_cmove_arith): Likewise.  Formatting fixes.
14468         (noce_try_minmax, noce_try_abs): Clear rev_cond.
14469         (noce_find_if_block): Initialize rev_cond.
14470         (find_cond_trap): Call noce_get_condition with then_bb == trap_bb
14471         instead of false as last argument never attempt to reverse it
14472         afterwards.
14474 2017-02-23  Bin Cheng  <bin.cheng@arm.com>
14476         PR tree-optimization/79663
14477         * tree-predcom.c (combine_chains): Process refs in reverse order
14478         only for ZERO length chains, and add explaining comment.
14480 2017-02-23  Jeff Law  <law@redhat.com>
14482         PR tree-optimization/79578
14483         * tree-ssa-dse.c (clear_bytes_written_by): Use OEP_ADDRESS_OF
14484         in call to operand_equal_p.
14486 2017-01-23  Dominique d'Humieres  <dominiq@lps.ens.fr>
14488         PR target/71017
14489         * config/i386/cpuid.h: Fix another undefined behavior.
14491 2017-02-23  Richard Biener  <rguenther@suse.de>
14493         PR tree-optimization/79683
14494         * tree-vect-stmts.c (vect_analyze_stmt): Do not overwrite
14495         vector types for data-refs.
14497 2017-02-23  Martin Liska  <mliska@suse.cz>
14499         * params.def (PARAM_MIN_NONDEBUG_INSN_UID): Change default to 0.
14501 2017-02-23  Jakub Jelinek  <jakub@redhat.com>
14503         PR middle-end/79665
14504         * internal-fn.c (get_range_pos_neg): Moved to ...
14505         * tree.c (get_range_pos_neg): ... here.  No longer static.
14506         * tree.h (get_range_pos_neg): New prototype.
14507         * expr.c (expand_expr_real_2) <case TRUNC_DIV_EXPR>: If both arguments
14508         are known to be in between 0 and signed maximum inclusive, try to
14509         expand both unsigned and signed divmod and use the cheaper one from
14510         those.
14512 2017-02-22  Jeff Law  <law@redhat.com>
14514         PR tree-optimization/79578
14515         * tree-ssa-dse.c (clear_bytes_written_by): Use operand_equal_p
14516         to compare base operands.
14518 2017-02-22  Segher Boessenkool  <segher@kernel.crashing.org>
14520         PR target/79211
14521         * config/rs6000/rs6000.md (*fsel<SFDF:mode><SFDF2:mode>4): Use
14522         gpc_reg_operand instead of fpr_reg_operand.
14524 2017-02-22  Sameera Deshpande  <sameera.deshpande@imgtec.com>
14526         * config/mips/mips.c (mips_return_in_memory): Force FP
14527         vector types to be returned in memory for o32 ABI.
14529 2017-02-22  Jakub Jelinek  <jakub@redhat.com>
14531         * dwarf2out.c (gen_variable_die): For -gdwarf-5, use DW_TAG_variable
14532         instead of DW_TAG_member for static data member declarations and don't
14533         set no_linkage_name for static inline data members.
14534         (gen_member_die): For -gdwarf-5 don't change DW_TAG_variable
14535         to DW_TAG_member.
14537 2017-02-22  Martin Liska  <mliska@suse.cz>
14539         * doc/invoke.texi: Replace inequality signs with square brackets
14540         for -Wnormalized.
14542 2017-02-22  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
14544         PR tree-optimization/68644
14545         * gcc.dg/tree-ssa/ivopts-lt-2.c: Skip for powerpc*-*-*.
14547 2017-02-22  Matthew Fortune  <matthew.fortune@imgtec.com>
14549         PR target/78660
14550         * lra-constraints.c (simplify_operand_subreg): Handle
14551         WORD_REGISTER_OPERATIONS targets.
14553 2017-02-22  Jakub Jelinek  <jakub@redhat.com>
14555         PR target/70465
14556         * reg-stack.c (emit_swap_insn): Treat (float_extend:?F (mem:?F))
14557         and (const_double:?F) like (mem:?F) for the purpose of fxch %st(1)
14558         elimination by swapping fld*.
14560 2017-02-22  Richard Biener  <rguenther@suse.de>
14562         PR tree-optimization/79673
14563         * tree-ssa-pre.c (compute_avail): Use wide_int_to_tree to
14564         convert the [TARGET_]MEM_REF offset INTEGER_CST, scrapping off
14565         irrelevant address-space qualifiers and avoiding a
14566         ADDR_SPACE_CONVERT_EXPR from fold_convert.
14568 2017-02-22  Richard Biener  <rguenther@suse.de>
14570         PR tree-optimization/79666
14571         * tree-vrp.c (extract_range_from_binary_expr_1): Make sure
14572         to not symbolically negate if that may introduce undefined
14573         overflow.
14575 2017-02-22  Martin Liska  <mliska@suse.cz>
14577         PR lto/79587
14578         * data-streamer-in.c (streamer_read_gcov_count): Remove assert.
14579         * data-streamer-out.c (streamer_write_gcov_count_stream):
14580         Likewise.
14581         * value-prof.c (stream_out_histogram_value): Make assert more
14582         precise based on type of counter.
14584 2017-02-21  Uros Bizjak  <ubizjak@gmail.com>
14586         PR target/79593
14587         * config/i386/i386.md (standard_x87sse_constant_load splitter):
14588         Use nonimmediate_operand instead of memory_operand for operand 1.
14589         (float-extend standard_x87sse_constant_load splitter): Ditto.
14591 2017-02-21  Jeff Law  <law@redhat.com>
14593         PR tree-optimization/79621
14594         * gimple-ssa-isolate-paths.c (find_implicit_erroneous_behavior): Ignore
14595         blocks with edges to themselves.
14597 2017-02-21  Jakub Jelinek  <jakub@redhat.com>
14599         PR target/79633
14600         * tree-chkp-opt.c (chkp_optimize_string_function_calls): Use
14601         is_gimple_call instead of comparing gimple_code with GIMPLE_CALL.
14602         Use gimple_call_builtin_p.
14604         PR target/79570
14605         * sel-sched.c (moveup_expr_cached): Don't call sel_bb_head
14606         on temporarily removed DEBUG_INSNs.
14608         PR tree-optimization/79649
14609         * tree-loop-distribution.c (classify_partition): Give up on
14610         non-generic address space loads/stores.
14612 2017-02-21  Aldy Hernandez  <aldyh@redhat.com>
14614         * doc/loop.texi (Loop manipulation): Remove nonexistent
14615         tree_ssa_loop_version from the documentation.
14616         * cfgloopmanip.c (loop_version): Document CONDITION_BB argument.
14618 2017-02-21  Jakub Jelinek  <jakub@redhat.com>
14620         PR target/79494
14621         * config/i386/i386.c (ix86_expand_split_stack_prologue): Call
14622         make_reg_eh_region_note_nothrow_nononlocal on call_insn.
14623         * config/rs6000/rs6000.c: Include except.h.
14624         (rs6000_expand_split_stack_prologue): Call
14625         make_reg_eh_region_note_nothrow_nononlocal on the call insn.
14627 2017-02-21  Martin Jambor  <mjambor@suse.cz>
14629         PR lto/79579
14630         * ipa-prop.c (ipa_prop_write_jump_functions): Bail out if no edges
14631         have been analyzed.
14633 2017-02-21  Martin Jambor  <mjambor@suse.cz>
14635         * common.opt (-fipa-cp-alignment): Mark as ignored and preserved
14636         for backward compatibility only.
14637         * doc/invoke.texi (Option Summary): Remove all references to
14638         -fipa-cp-alignment.
14640 2017-02-21  Matthew Fortune  <matthew.fortune@imgtec.com>
14642         PR target/78660
14643         Revert:
14644         2017-02-20  Matthew Fortune  <matthew.fortune@imgtec.com>
14646         * lra-constraints.c (curr_insn_transform): Handle
14647         WORD_REGISTER_OPERATIONS requirements when reloading SUBREGs.
14649 2017-02-21  Martin Liska  <mliska@suse.cz>
14651         * config/i386/i386.opt: Replace -masm-dialect with -masm.
14653 2017-02-21  Thomas Schwinge  <thomas@codesourcery.com>
14655         PR translation/79638
14656         * config/nvptx/nvptx.c (ENTRY_TEMPLATE): Single out "%ntid.y".
14658 2017-02-21  Eric Botcazou  <ebotcazou@adacore.com>
14660         PR ada/67205
14661         * config/arm/arm.c (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Define.
14662         (arm_function_ok_for_sibcall): Return false for an indirect call by
14663         descriptor if all the argument registers are used.
14664         (arm_relayout_function): Use FUNCTION_ALIGNMENT macro to adjust the
14665         alignment of the function.
14667 2017-02-21  Jakub Jelinek  <jakub@redhat.com>
14669         PR tree-optimization/61441
14670         * simplify-rtx.c (simplify_const_unary_operation): For
14671         -fsignaling-nans and sNaN operand, return NULL_RTX rather than
14672         the sNaN unmodified.
14674 2017-02-20  Bernd Edlinger  <bernd.edlinger@hotmail.de>
14676         * Makefile.in (BUILD_SYSTEM_HEADER_DIR): New make variabe.
14677         (LIMITS_H_TEST, if_multiarch, stmp-fixinc): Use BUILD_SYSTEM_HEADER_DIR
14678         instead of SYSTEM_HEADER_DIR.
14680 2017-02-20  Gerald Pfeifer  <gerald@pfeifer.com>
14681             Martin LiÅ¡ka  <mliska@suse.cz>
14683         * doc/invoke.texi (use-after-scope-direct-emission-threshold):
14684         Fix typos and grammar, use active voice, and clarify.
14686 2017-02-20  Marek Polacek  <polacek@redhat.com>
14688         PR middle-end/79537
14689         * gimplify.c (gimplify_expr): Handle unused *&&L;.
14691         PR sanitizer/79558
14692         * ubsan.c (ubsan_type_descriptor): Check if TYPE_MAX_VALUE is null.
14694 2017-02-20  Jakub Jelinek  <jakub@redhat.com>
14696         PR target/79568
14697         * config/i386/i386.c (ix86_expand_builtin): Handle
14698         OPTION_MASK_ISA_AVX512VL and OPTION_MASK_ISA_64BIT in
14699         ix86_builtins_isa[fcode].isa as a requirement of those
14700         flags and any other flag in the bitmask.
14701         (ix86_init_mmx_sse_builtins): Use 0 instead of
14702         ~OPTION_MASK_ISA_64BIT as mask.
14703         * config/i386/i386-builtin.def (__builtin_ia32_rdtsc,
14704         __builtin_ia32_rdtscp, __builtin_ia32_pause, __builtin_ia32_bsrsi,
14705         __builtin_ia32_rdpmc, __builtin_ia32_rolqi, __builtin_ia32_rolhi,
14706         __builtin_ia32_rorqi, __builtin_ia32_rorhi): Likewise.
14708 2017-02-20  Matthew Fortune  <matthew.fortune@imgtec.com>
14710         PR target/78012
14711         * lra-constraints.c (split_reg): Check requested split mode
14712         is supported by the register.
14714 2017-02-20  Matthew Fortune  <matthew.fortune@imgtec.com>
14716         * lra-constraints.c (simplify_operand_subreg): Remove early
14717         return false.
14719 2017-02-20  Matthew Fortune  <matthew.fortune@imgtec.com>
14721         PR target/78660
14722         * lra-constraints.c (curr_insn_transform): Tighten condition
14723         for converting SUBREG reloads from OP_OUT to OP_INOUT.
14725 2017-02-20  Matthew Fortune  <matthew.fortune@imgtec.com>
14727         PR target/78660
14728         * lra-constraints.c (curr_insn_transform): Handle
14729         WORD_REGISTER_OPERATIONS requirements when reloading SUBREGs.
14731 2017-02-19  Uros Bizjak  <ubizjak@gmail.com>
14733         Revert:
14734         2016-05-30  Uros Bizjak  <ubizjak@gmail.com>
14736         * config/i386/sync.md (mfence_nosse): Use "lock orl $0, -4(%esp)".
14738 2017-02-19  Jonathan Wakely  <jwakely@redhat.com>
14740         PR c++/69523
14741         * doc/invoke.texi (C++ Dialect Options) [-Wliteral-suffix]: Update
14742         description.
14744 2017-02-19  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
14746         * gimple-pretty-print.c (dump_ternary_rhs): Adjust gimple dump format
14747         for FMA_EXPR.
14749 2017-02-18  Jakub Jelinek  <jakub@redhat.com>
14751         * final.c (last_columnnum, override_columnnum): New variables.
14752         (final_start_function): Set last_columnnum, pass it to begin_prologue
14753         hook and pass 0 to dwarf2out_begin_prologue.
14754         (final_scan_insn): Update override_columnnum.  Pass last_columnnum
14755         to source_line debug hook.
14756         (notice_source_line): Compute last_columnnum and for debug_column_info
14757         return true on column changes.
14758         * debug.h (struct gcc_debug_hooks): Add column argument to
14759         source_line and begin_prologue hooks.
14760         (debug_nothing_int_charstar_int_bool): Remove prototype.
14761         (debug_nothing_int_int_charstar,
14762         debug_nothing_int_int_charstar_int_bool): New prototypes.
14763         (dwarf2out_begin_prologue): Add column argument.
14764         * debug.c (do_nothing_debug_hooks): Adjust source_line and
14765         begin_prologue hooks.
14766         (debug_nothing_int_charstar_int_bool): Remove.
14767         (debug_nothing_int_int_charstar,
14768         debug_nothing_int_int_charstar_int_bool): New functions.
14769         * dwarf2out.c (dwarf2out_begin_prologue): Add column argument, pass it
14770         through to dwarf2out_source_line.
14771         (dwarf2_lineno_debug_hooks): Adjust begin_prologue hook.
14772         (dwarf2out_source_line): Add column argument, emit it if requested.
14773         * sdbout.c (sdbout_source_line, sdbout_begin_prologue): Add column
14774         arguments.
14775         * xcoffout.h (xcoffout_begin_prologue, xcoffout_source_line): Likewise.
14776         * xcoffout.c (xcoffout_begin_prologue, xcoffout_source_line): Likewise.
14777         * vmsdbgout.c (vmsdbgout_begin_prologue): Add column argument, pass it
14778         through to dwarf2out_begin_prologue.
14779         (vmsdbgout_source_line): Add column argument, pass it through to
14780         dwarf2out_source_line.
14781         * dbxout.c (dbxout_begin_prologue): Add column argument, adjust
14782         dbxout_source_line caller.
14783         (dbxout_source_line): Add column argument.
14785         * common.opt (gno-column-info, gcolumn-info): New options.
14786         * dwarf2out.c (dwarf2_lineno_debug_hooks): Formatting fix.
14787         (check_die): Also test for multiple DW_AT_decl_column attributes.
14788         (add_src_coords_attributes, dwarf2out_imported_module_or_decl_1): Add
14789         DW_AT_decl_column if requested.
14790         (gen_subprogram_die): Compare and/or add also DW_AT_decl_column
14791         if requested.
14792         (gen_variable_die): Likewise.
14793         (add_call_src_coords_attributes): Add DW_AT_call_column if requested.
14794         * doc/invoke.texi (-gcolumn-info, -gno-column-info): Document.
14796         PR target/79569
14797         * config/i386/i386.opt (m3dnowa): Replace Undocumented with Report.
14798         * common/config/i386/i386-common.c (OPTION_MASK_ISA_3DNOW_A_SET): Define.
14799         (ix86_handle_option): Handle OPT_m3dnowa.
14800         * doc/invoke.texi (-m3dnowa): Document.
14801         * doc/extend.texi (__builtin_ia32_pmulhuw, __builtin_ia32_pf2iw): Use
14802         -m3dnowa instead of -m3dnow -march=athlon.
14804         PR target/79559
14805         * config/i386/i386.c (ix86_print_operand): Use output_operand_lossage
14806         instead of gcc_assert for K, r and R code checks.  Formatting fixes.
14808 2017-02-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
14810         PR target/79261
14811         * config/rs6000/rs6000.c (rs6000_expand_ternop_builtin): Add
14812         support for CODE_FOR_vsx_xxpermdi_v2d[fi]_be.
14813         * config/rs6000/rs6000.md (reload_gpr_from_vsx<mode>): Call
14814         generator for vsx_xxpermdi_<mode>_be.
14815         * config/rs6000/vsx.md (vsx_xxpermdi_<mode>): Remove logic to
14816         force big-endian semantics.
14817         (vsx_xxpermdi_<mode>_be): New define_expand with same
14818         implementation as previous version of vsx_xxpermdi_<mode>.
14820 2017-02-17  Jakub Jelinek  <jakub@redhat.com>
14822         PR tree-optimization/79327
14823         * gimple-ssa-sprintf.c (format_integer): Remove likely_adjust
14824         variable, its initialization and use.
14826 2017-02-17  Julia Koval  <julia.koval@intel.com>
14828         * common/config/i386/i386-common.c (OPTION_MASK_ISA_RDPID_SET): New.
14829         (OPTION_MASK_ISA_PKU_UNSET): New.
14830         (ix86_handle_option): Handle -mrdpid.
14831         * config/i386/cpuid.h (bit_RDPID): New.
14832         * config/i386/driver-i386.c (host_detect_local_cpu):
14833         Detect RDPID feature.
14834         * config/i386/i386-builtin.def (__builtin_ia32_rdpid): New.
14835         * config/i386/i386-c.c (ix86_target_macros_internal):
14836         Handle RDPID flag.
14837         * config/i386/i386.c (ix86_target_string): Add -mrdpid to isa2_opts.
14838         (ix86_valid_target_attribute_inner_p): Add "rdpid".
14839         (ix86_expand_builtin): Handle IX86_BUILTIN_RDPID.
14840         * config/i386/i386.h (TARGET_RDPID, TARGET_RDPID_P): New.
14841         * config/i386/i386.md (define_insn "rdpid"): New.
14842         * config/i386/i386.opt Add -mrdpid.
14843         * config/i386/immintrin.h (_rdpid_u32): New.
14845 2017-02-17  Vladimir Makarov  <vmakarov@redhat.com>
14847         PR rtl-optimization/79541
14848         * lra-constraints.c (curr_insn_transform): Remove wrong asm insn
14849         instead of transforming it into USE.
14851 2017-02-17  Segher Boessenkool  <segher@kernel.crashing.org>
14853         * config/rs6000/rs6000.md (extendsfdf2): Remove default arguments.
14854         If HONOR_SNANS (SFmode) force the input to a register.
14855         (*extendsfdf2_fpr): Add !HONOR_SNANS (SFmode) condition.
14856         (*extendsfdf2_snan): New pattern, used when using SNaNs; it generates
14857         an frsp or similar insn.
14859 2017-02-17  Martin Liska  <mliska@suse.cz>
14861         PR rtl-optimization/79577
14862         * params.def (selsched-max-sched-times): Increase minimum to 1.
14864 2017-02-17  Martin Liska  <mliska@suse.cz>
14866         PR rtl-optimization/79574
14867         * gcse.c (want_to_gcse_p): Prevent integer overflow.
14869 2017-02-17  Martin Liska  <mliska@suse.cz>
14871         PR tree-optimization/79529
14872         * tree-ssa-loop-unswitch.c (is_maybe_undefined): Use
14873         ssa_defined_default_def_p to handle cases which are implicitly
14874         defined.
14875         * tree-ssa.c (ssa_defined_default_def_p): New function.
14876         (ssa_undefined_value_p): Use ssa_defined_default_def_p to handle cases
14877         which are implicitly defined.
14878         * tree-ssa.h (ssa_defined_default_def_p): Declare.
14880 2017-02-17  Richard Biener  <rguenther@suse.de>
14882         PR middle-end/79576
14883         * params.def (max-ssa-name-query-depth): Limit to 10.
14885 2017-02-17  Richard Biener  <rguenther@suse.de>
14887         PR tree-optimization/79552
14888         * tree-ssa-structalias.c (visit_loadstore): Properly verify
14889         default defs.
14891 2017-02-17  Richard Biener  <rguenther@suse.de>
14893         PR bootstrap/79567
14894         * genmatch.c (output_line_directive): Handle DIR_SEPARATOR_2.
14896 2017-02-17  Marek Polacek  <polacek@redhat.com>
14898         PR middle-end/79536
14899         * fold-const.c (fold_negate_expr_1): Renamed from fold_negate_expr.
14900         (fold_negate_expr): New wrapper.
14902 2017-02-16  Sandra Loosemore  <sandra@codesourcery.com>
14904         * doc/invoke.texi (C++ Dialect Options) [-Wno-non-template-friend]: 
14905         Correct terminology and de-emphasize pre-standard behavior.
14907 2017-02-16  Alan Modra  <amodra@gmail.com>
14909         PR rtl-optimization/79286
14910         * ira.c (def_dominates_uses): New function.
14911         (update_equiv_regs): Don't create an equivalence for insns that
14912         may trap where the register def does not dominate the use.
14914 2017-02-16  Vladimir Makarov  <vmakarov@redhat.com>
14916         PR rtl-optimization/78127
14917         * lra.c (lra): Call lra_eliminate before finish the loop after
14918         lra_constraint.
14920 2017-02-16  Richard Biener  <rguenther@suse.de>
14922         * graphite.h: Do not include isl/isl_val_gmp.h, instead include
14923         isl/isl_val.h.
14924         * graphite-isl-ast-to-gimple.c (gmp_cst_to_tree): Remove.
14925         (gcc_expression_from_isl_expr_int): Use generic isl_val interface.
14926         * graphite-sese-to-poly.c: Do not include isl/isl_val_gmp.h.
14927         (isl_val_int_from_wi): New function.
14928         (extract_affine_gmp): Rename to ...
14929         (extract_affine_wi): ... this, take a widest_int.
14930         (extract_affine_int): Just wrap extract_affine_wi.
14931         (add_param_constraints): Use isl_val_int_from_wi.
14932         (add_loop_constraints): Likewise, and extract_affine_wi.
14934 2017-02-15  Jeff Law  <law@redhat.com>
14936         PR middle-end/79521
14937         * ira-costs.c (scan_one_insn): Check have_regs_of_mode before calling
14938         ira_init_register_move_cost_if_necessary.
14940 2017-02-15  Martin Sebor  <msebor@redhat.com>
14942         PR middle-end/32003
14943         * doc/invoke.texi (-fdump-final-insns): Replace option accidentally
14944         removed in a prior commit.
14946 2017-02-15  Bin Cheng  <bin.cheng@arm.com>
14948         PR tree-optimization/79347
14949         * tree-vect-loop-manip.c (vect_do_peeling): Maintain profile
14950         counters during peeling.
14952 2017-02-15  Thomas Schwinge  <thomas@codesourcery.com>
14954         * Makefile.in (site.exp): Remove "set ISLVER".
14956 2017-02-15  Jakub Jelinek  <jakub@redhat.com>
14958         PR target/79487
14959         * real.c (real_from_integer): Call real_convert even for decimal.
14961 2017-02-15  Dominik Vogt  <vogt@linux.vnet.ibm.com>
14963         PR target/79421
14964         * config/s390/s390.c: define TARGET_CUSTOM_FUNCTION_DESCRIPTORS.
14966 2017-02-14  Andrew Pinski  <apinski@cavium.com>
14968         * config/aarch64/aarch64-cores.def (thunderx2t99): Move to under 'C"
14969         cores and change the partno/implementer to be correct.
14970         (thunderx2t99p1): New core which replaces thunderx2t99 and still has
14971         the 'B" as the implementer.
14972         * config/aarch64/aarch64-tune.md: Regenerate.
14974 2017-02-14  Carl Love  <cel@us.ibm.com>
14976         * config/rs6000/rs6000.c: Add case statement entry to make the
14977         xvcvuxdsp built-in argument unsigned.
14978         * config/rs6000/vsx.md: Fix the source and return operand types so they
14979         match the instruction definitions from the ISA document.  Fix typo
14980         in the instruction generation for the (define_insn "vsx_xvcvuxdsp"
14981         statement.
14983 2017-02-14  Vladimir Makarov  <vmakarov@redhat.com>
14985         PR target/79282
14986         * lra-int.h (struct lra_operand_data, struct lra_insn_reg): Add
14987         member early_clobber_alts.
14988         * lra-lives.c (reg_early_clobber_p): New.
14989         (process_bb_lives): Use it.
14990         * lra.c (new_insn_reg): New arg early_clobber_alts.  Use it.
14991         (debug_operand_data): Initialize early_clobber_alts.
14992         (setup_operand_alternative): Set up early_clobber_alts.
14993         (collect_non_operand_hard_regs): Ditto.  Pass early clobber
14994         alternatives to new_insn_reg.
14995         (add_regs_to_insn_regno_info): Add arg early_clobber_alts.  Use
14996         it.
14997         (lra_update_insn_regno_info): Pass the new arg.
14999 2017-02-14  Jakub Jelinek  <jakub@redhat.com>
15001         PR middle-end/79505
15002         * omp-offload.c (free_oacc_loop): Release loop->ifns vector.
15003         (new_oacc_loop_raw): Don't clear already cleared fields.
15005         PR target/79481
15006         * config/i386/avx512pfintrin.h (_mm512_prefetch_i32gather_pd,
15007         _mm512_prefetch_i32gather_ps, _mm512_prefetch_i64gather_pd,
15008         _mm512_prefetch_i64gather_ps): New inline functions and macros.
15010 2017-02-14  Uros Bizjak  <ubizjak@gmail.com>
15012         PR target/79495
15013         * config/i386/i386.md (*movxf_internal): Add (o,rC) alternative.
15015 2017-02-14  H.J. Lu  <hongjiu.lu@intel.com>
15017         PR target/79498
15018         * config/i386/i386.c (timode_scalar_chain::convert_insn): Insert
15019         the extra instruction to the right place to store 128-bit constant
15020         when needed.
15022 2017-02-14  Martin Sebor  <msebor@redhat.com>
15024         PR middle-end/79448
15025         * gimple-ssa-sprintf.c (format_directive): Avoid issuing INT_MAX
15026           warning for strings of unknown length.
15028 2017-02-13  Segher Boessenkool  <segher@kernel.crashing.org>
15030         * config.gcc (supported_defaults) [powerpc*-*-*]: Update.
15032 2017-02-14  Jeff Law  <law@redhat.com>
15034         PR target/79404
15035         * ira-costs.c (scan_one_insn): Initialize register move costs
15036         for pseudos seen in USE/CLOBBER insns.
15038         PR tree-optimization/79095
15039         * tree-vrp.c (extract_range_from_binary_expr_1): For EXACT_DIV_EXPR,
15040         if the numerator has the range ~[0,0] make the resultant range ~[0,0].
15041         (extract_range_from_binary_expr): For MINUS_EXPR with no derived range,
15042         if the operands are known to be not equal, then the resulting range
15043         is ~[0,0].
15044         (intersect_ranges): If the new range is ~[0,0] and the old range is
15045         wide, then prefer ~[0,0].
15046         * tree-vrp.c (overflow_comparison_p_1): New function.
15047         (overflow_comparison_p): New function.
15048         * tree-vrp.c (register_edge_assert_for_2): Register additional asserts
15049         if NAME is used in an overflow test.
15050         (vrp_evaluate_conditional_warnv_with_ops): If the ops represent an
15051         overflow check that can be expressed as an equality test, then adjust
15052         ops to be that equality test.
15054 2017-02-14  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
15056         * config/s390/s390-builtin-types.def: Remove flags argument.
15057         * config/s390/s390.c (s390_init_builtins): Likewise.
15059 2017-02-14  Martin Liska  <mliska@suse.cz>
15061         * tree-ssa-loop-unswitch.c (hoist_guard): Release get_loop_body
15062         vector.  Fix trailing white spaces.
15064 2017-02-14  James Greenhalgh  <james.greenhalgh@arm.com>
15066         * config/aarch64/aarch64.c (aarch64_simd_container_mode): Handle
15067         HFmode.
15069 2017-02-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15071         PR rtl-optimization/68664
15072         * config/arm/arm.c (arm_sched_can_speculate_insn):
15073         New function.  Declare prototype.
15074         (TARGET_SCHED_CAN_SPECULATE_INSN): Define.
15076 2017-02-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15078         PR rtl-optimization/68664
15079         * config/aarch64/aarch64.c (aarch64_sched_can_speculate_insn):
15080         New function.
15081         (TARGET_SCHED_CAN_SPECULATE_INSN): Define.
15083 2017-02-14  Amit Pawar  <amit.pawar@amd.com>
15085         * config/i386/i386.c (znver1_cost): Fix the alignment for function and
15086         max skip bytes for function, loop and jump.
15088 2017-02-14  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
15090         * gimple-pretty-print.c (dump_unary_rhs): Adjust dump format for
15091         ABS_EXPR for gimple dump.
15093 2017-02-14  Jakub Jelinek  <jakub@redhat.com>
15095         PR target/79462
15096         * config/sh/sh.c (expand_cbranchdi4): Don't clear operands[4].
15098         PR tree-optimization/79408
15099         * tree-vrp.c (simplify_div_or_mod_using_ranges): Handle also the
15100         case when on TRUNC_MOD_EXPR op0 is INTEGER_CST.
15101         (simplify_stmt_using_ranges): Call simplify_div_or_mod_using_ranges
15102         also if rhs1 is INTEGER_CST.
15104 2017-02-14  Richard Biener  <rguenther@suse.de>
15106         PR middle-end/79432
15107         * tree-into-ssa.c (insert_phi_nodes): When the function can
15108         have abnormal edges rewrite SSA names with broken use-def
15109         dominance out of SSA and register them for PHI insertion.
15111 2017-02-13  Martin Sebor  <msebor@redhat.com>
15113         PR middle-end/79496
15114         * gimple-ssa-sprintf.c (pass_sprintf_length::handle_gimple_call): Avoid
15115         clearing info.nowrite flag when snprintf size argument is a range.
15117 2017-02-13  Jakub Jelinek  <jakub@redhat.com>
15119         * cprop.c (cprop_jump): Add missing space in string literal.
15120         * tree-ssa-structalias.c (rewrite_constraints): Likewise.
15121         (get_constraint_for_component_ref): Likewise.
15122         * df-core.c (df_worklist_dataflow_doublequeue): Likewise.
15123         * tree-outof-ssa.c (insert_partition_copy_on_edge): Likewise.
15124         * lra-constraints.c (process_alt_operands): Likewise.
15125         * ipa-inline.c (inline_small_functions): Likewise.
15126         * tree-ssa-sccvn.c (visit_reference_op_store): Likewise.
15127         * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Likewise.
15128         * trans-mem.c (diagnose_tm_1_op): Likewise.
15129         * omp-grid.c (grid_find_single_omp_among_assignments): Likewise.
15130         (grid_parallel_clauses_gridifiable): Likewise.
15132         * config/nvptx/mkoffload.c (process): Add space in between
15133         , and %d.
15135         * config/i386/i386.h (REG_CLASS_NAMES): Add , in between
15136         "MOD4_SSE_REGS" and "ALL_REGS".
15138         * spellcheck.c (test_data): Add , in between "foo" and "food".
15140 2017-02-13  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
15142         PR target/79449
15143         * config/rs6000/rs6000.c (expand_block_compare): Make sure runtime
15144         boundary crossing check and subsequent code generation agree.
15146 2017-02-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15148         * config/aarch64/aarch64.c (has_memory_op): Delete.
15149         (aarch64_madd_needs_nop): Use contains_mem_rtx_p instead of
15150         has_memory_op.
15152 2017-02-13  Jakub Jelinek  <jakub@redhat.com>
15154         PR rtl-optimization/79388
15155         PR rtl-optimization/79450
15156         * combine.c (distribute_notes): When removing TEM_INSN for which
15157         corresponding dest has last value recorded, invalidate that last
15158         value.
15160 2017-02-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15162         * config/arm/arm.c (arm_print_tune_info): Use ASM_COMMENT_START instead
15163         of explicit '@'.  Add missing assembly comment marker on branch costs
15164         printout.
15166 2017-02-13  Nathan Sidwell  <nathan@acm.org>
15168         * gengtype-lex.l (<in_struct>): Add '/'.
15170 2017-02-13  Martin Liska  <mliska@suse.cz>
15172         PR c/79471
15173         * calls.c (expand_call): Replace XALLOCAVEC with XCNEWVEC.
15175 2017-02-13  Richard Biener  <rguenther@suse.de>
15177         * configure.ac (HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS):
15178         Remove.
15179         * configure: Re-generate.
15180         * config.in: Likewise.
15181         * graphite-dependences.c: Simplify as if
15182         HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS was defined.
15183         * graphite-isl-ast-to-gimple.c: Likewise.
15184         * graphite-optimize-isl.c: Likewise.
15185         * graphite-poly.c: Likewise.
15186         * graphite-sese-to-poly.c: Likewise.
15187         * graphite.h: Likewise.
15188         * toplev.c: Include isl/version.h and use isl_version () for
15189         printing the ISL version.
15190         * doc/install.texi: Update ISL requirement.
15192 2017-02-12  Gerald Pfeifer  <gerald@pfeifer.com>
15194         * doc/standards.texi (Standards): Update reference to
15195         Objective-C 2.0.
15197 2017-02-12  Gerald Pfeifer  <gerald@pfeifer.com>
15199         * doc/extend.texi (Named Address Spaces): sourceware.org now
15200         defaults to https.
15201         * doc/install.texi (Binaries): Ditto.
15202         (Specific): Ditto.
15204 2017-02-11  Sandra Loosemore  <sandra@codesourcery.com>
15206         * doc/cpp.texi: Replace "stringify"/"stringification" with C
15207         standard terminology "stringize"/"stringizing" throughout.
15208         * doc/cppinternals.texi: Likewise.
15210 2017-02-11  Sandra Loosemore  <sandra@codesourcery.com>
15212         * doc/extend.texi: Fix some spelling mistakes and typos.
15213         * doc/invoke.texi: Likewise.
15215 2017-02-11  Jan Hubicka  <hubicka@ucw.cz>
15217         PR ipa/79224
15218         * params.def (inline-min-speedup) Change from 10 to 8.
15220 2017-02-11  Jakub Jelinek  <jakub@redhat.com>
15222         * doc/invoke.texi (fopenmp): Bump OpenMP version from 4.0 to
15223         4.5.
15225 2017-02-11  Jan Hubicka  <hubicka@ucw.cz>
15227         PR ipa/79224
15228         * ipa-inline-analysis.c (get_minimal_bb): New function.
15229         (record_modified): Use it.
15230         (remap_edge_change_prob): Handle also ancestor functions.
15232 2017-02-11  Gerald Pfeifer  <gerald@pfeifer.com>
15234         * doc/contrib.texi (Contributors): Remove broken link into
15235         the Mauve CVS repository.
15237 2017-02-11  Jakub Jelinek  <jakub@redhat.com>
15239         PR middle-end/79454
15240         * internal-fn.c (expand_vector_ubsan_overflow): Use piece-wise
15241         result computation whenever lhs doesn't have vector mode, not
15242         just when it has BLKmode.
15244 2017-02-10  Gerald Pfeifer  <gerald@pfeifer.com>
15246         * doc/makefile.texi (profiledbootstrap): Refer to the
15247         installation instructions only in textual form.
15249 2017-02-10  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
15251         PR target/79295
15252         * config/rs6000/altivec.md (bcd<bcd_add_sub>): Fix constraints.
15254 2017-02-10  Gerald Pfeifer  <gerald@pfeifer.com>
15256         * doc/install.texi (Specific): Use https for blackfin.uclinux.org.
15257         (Specific): Update mingw-w64 reference.
15258         (Binaries): Ditto.
15259         (Specific): Remove broken link to Renesas RX processor.
15261 2017-02-10  Richard Biener  <rguenther@suse.de>
15263         * toplev.c (process_options): Do not mention obsolete graphite
15264         options when printing sorry message about missing graphite support.
15265         Mention -floop-nest-optimize.
15267 2017-02-10  Christophe Lyon  <christophe.lyon@linaro.org>
15269         * config/aarch64/arm_neon.h (vtst_p8): Rewrite without asm.
15270         (vtst_p16): Likewise.
15271         (vtstq_p8): Likewise.
15272         (vtstq_p16): Likewise.
15273         (vtst_p64): New.
15274         (vtstq_p64): Likewise.
15275         * config/arm/arm_neon.h (vgetq_lane_p64): New.
15276         (vset_lane_p64): New.
15277         (vsetq_lane_p64): New.
15279 2017-02-10  Jakub Jelinek  <jakub@redhat.com>
15281         PR tree-optimization/79411
15282         * tree-ssa-reassoc.c (is_reassociable_op): Return false if
15283         stmt operands are SSA_NAMEs used in abnormal phis.
15284         (can_reassociate_p): Return false if op is SSA_NAME used in abnormal
15285         phis.
15287 2017-02-09  Jan Hubicka  <hubicka@ucw.cz>
15289         PR ipa/70795
15290         * cgraphunit.c (cgraph_node::add_new_function): Set externally_visible
15291         flag if needed.
15293 2017-02-09  Jan Hubicka  <hubicka@ucw.cz>
15295         * tree-ssa-loop-unswitch.c (hoist_guard): Update profile.
15297 2017-02-09  Jakub Jelinek  <jakub@redhat.com>
15299         * omp-offload.c (oacc_loop_auto_partitions): Use || instead of |
15300         to avoid warning.
15302         PR c/79413
15303         * gimplify.h (is_gimple_sizepos): Only test for INTEGER_CST constants,
15304         not arbitrary TREE_CONSTANT.
15306         PR c/79431
15307         * gimplify.c (gimplify_adjust_omp_clauses): Ignore
15308         "omp declare target link" attribute unless is_global_var.
15309         * omp-offload.c (find_link_var_op): Likewise.
15311 2017-02-09  Nathan Sidwell  <nathan@codesourcery.com>
15312             Chung-Lin Tang  <cltang@codesourcery.com>
15314         * gimplify.c (gimplify_scan_omp_clauses): No special handling for
15315         OMP_CLAUSE_TILE.
15316         (gimplify_adjust_omp_clauses): Don't delete TILE.
15317         (gimplify_omp_for): Deal with TILE.
15318         * internal-fn.c (expand_GOACC_TILE): New function.
15319         * internal-fn.def (GOACC_DIM_POS): Comment may be overly conservative.
15320         (GOACC_TILE): New.
15321         * omp-expand.c (struct oacc_collapse): Add tile and outer fields.
15322         (expand_oacc_collapse_init): Add LOC paramter.  Initialize tile
15323         element fields.
15324         (expand_oacc_collapse_vars): Add INNER parm, adjust for tiling,
15325         avoid DIV for outermost collapse var.
15326         (expand_oacc_for): Insert tile element loop as needed.  Adjust.
15327         Remove out of date comments, fix whitespace.
15328         * omp-general.c (omp_extract_for_data): Deal with tiling.
15329         * omp-general.h (enum oacc_loop_flags): Add OLF_TILE flag,
15330         adjust OLF_DIM_BASE value.
15331         (struct omp_for_data): Add tiling field.
15332         * omp-low.c (scan_sharing_clauses): Allow OMP_CLAUSE_TILE.
15333         (lower_oacc_head_mark): Add OLF_TILE as appropriate.  Ensure 2 levels
15334         for auto loops.  Remove default auto determining, moved to
15335         oacc_loop_fixed_partitions.
15336         * omp-offload.c (struct oacc_loop): Change 'ifns' to vector of call
15337         stmts, add e_mask field.
15338         (oacc_dim_call): New function, abstracted out from oacc_thread_numbers.
15339         (oacc_thread_numbers): Use oacc_dim_call.
15340         (oacc_xform_tile): New.
15341         (new_oacc_loop_raw): Initialize e_mask, adjust for ifns vector.
15342         (finish_oacc_loop): Adjust for ifns vector.
15343         (oacc_loop_discover_walk): Append loop abstraction sites to list,
15344         add case for GOACC_TILE fns.
15345         (oacc_loop_xform_loop): Delete.
15346         (oacc_loop_process): Iterate over call list directly, and add
15347         handling for GOACC_TILE fns.
15348         (oacc_loop_fixed_partitions): Determine default auto, deal with TILE,
15349         dump partitioning.
15350         (oacc_loop_auto_partitions): Add outer_assign parm. Assign all but
15351         vector partitioning to outer loops.  Assign 2 partitions to loops
15352         when available. Add TILE handling.
15353         (oacc_loop_partition): Adjust oacc_loop_auto_partitions call.
15354         (execite_oacc_device_lower): Process GOACC_TILE fns,
15355         ignore unknown specs.
15356         * tree-nested.c (convert_nonlocal_omp_clauses): Allow OMP_CLAUSE_TILE.
15357         * tree.c (omp_clause_num_ops): Adjust TILE ops.
15358         * tree.h (OMP_CLAUSE_TILE_ITERVAR, OMP_CLAUSE_TILE_COUNT): New.
15360 2017-02-09  Gerald Pfeifer  <gerald@pfeifer.com>
15362         * configure.ac (ACX_BUGURL): Update.
15363         * configure: Regenerate.
15365 2017-02-09  Richard Biener  <rguenther@suse.de>
15367         PR tree-optimization/69823
15368         * graphite-scop-detection.c (scop_detection::harmful_loop_in_region):
15369         Properly enumerate all BBs in the region.  Use auto_vec/auto_bitmap.
15371 2017-02-09  Andrew Burgess  <andrew.burgess@embecosm.com>
15373         * config/arc/arc-c.def: Add __NPS400__ definition.
15374         * config/arc/arc.h (CPP_SPEC): Don't define __NPS400__ here.
15375         (TARGET_NPS400): Define.
15377 2017-02-09  Andrew Burgess  <andrew.burgess@embecosm.com>
15379         * config/arc/arc-arch.h (arc_arch_t): Move unchanged to earlier in
15380         file.
15381         (arc_cpu_t): Change base_architecture field, arch, to a arc_arc_t
15382         pointer, arch_info.
15383         (arc_cpu_types): Fill the arch_info field with a pointer into the
15384         arc_arch_types table.
15385         (arc_selected_cpu): Declare.
15386         * config/arc/arc.c (arc_selected_cpu): Make global.
15387         (arc_selected_arch): Delete.
15388         (arc_base_cpu): Delete.
15389         (arc_override_options): Remove references to deleted variables,
15390         update access to arch information.
15391         (ARC_OPT): Update access to arch information.
15392         (ARC_OPTX): Likewise.
15393         * config/arc/arc.h (arc_base_cpu): Remove declaration.
15394         (TARGET_ARC600): Update access to arch information.
15395         (TARGET_ARC601): Likewise.
15396         (TARGET_ARC700): Likewise.
15397         (TARGET_EM): Likewise.
15398         (TARGET_HS): Likewise.
15399         * config/arc/driver-arc.c (arc_cpu_to_as): Update access to arch
15400         information.
15402 2017-02-08  Pat Haugen  <pthaugen@us.ibm.com>
15404         PR target/78604
15405         * config/rs6000/rs6000.c (rs6000_emit_vector_cond_expr): Invert
15406         condition/operands for integer GE/LE/GEU/LEU operations.
15408 2017-02-08  Segher Boessenkool  <segher@kernel.crashing.org>
15410         PR translation/79397
15411         * config/rs6000/rs6000.opt (maltivec=le, maltivec=be): Fix spelling
15412         of AltiVec.
15414 2017-02-08  Martin Jambor  <mjambor@suse.cz>
15416         PR ipa/79375
15417         * ipa-prop.c (ipa_alloc_node_params): Make static, return bool
15418         whether allocation happened.
15419         (ipa_initialize_node_params): Do not call ipa_alloc_node_params if
15420         nothing was allocated.
15422 2017-02-08  Jakub Jelinek  <jakub@redhat.com>
15424         PR tree-optimization/79408
15425         * tree-vrp.c (simplify_div_or_mod_using_ranges): If op1 is not
15426         constant, but SSA_NAME with a known integer range, use the minimum
15427         of that range instead of op1 to determine if modulo can be replaced
15428         with its first operand.
15430 2016-02-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15432         * config/riscv/riscv.c (riscv_build_integer_1): Avoid use of INT16_MAX.
15434 2017-02-08  Richard Biener  <rguenther@suse.de>
15436         PR tree-optimization/71824
15437         * graphite-scop-detection.c (scop_detection::build_scop_breadth):
15438         Check all loops contained in the merged region.
15440 2017-02-07  Andrew Pinski  <apinski@cavium.com>
15442         * config/aarch64/aarch64.md (popcount<mode>2): New pattern.
15444 2017-02-07  Andrew Pinski  <apinski@cavium.com>
15446         * config/aarch64/aarch64-cores.def (thunderx): Disable LSE.
15447         (thunderxt88): Likewise.
15448         (thunderxt81): Disable LSE and change v8.1 to v8.
15449         (thunderxt83): Likewise.
15451 2017-02-07  Jakub Jelinek  <jakub@redhat.com>
15452             Richard Biener  <rguenther@suse.de>
15454         PR middle-end/79399
15455         * ira-int.h (struct target_ira_int): Change x_max_struct_costs_size
15456         type from int to size_t.
15457         * ira-costs.c (struct_costs_size): Change type from int to size_t.
15459 2017-02-07  Jakub Jelinek  <jakub@redhat.com>
15461         PR rtl-optimization/79386
15462         * cprop.c (bypass_conditional_jumps): Initialize
15463         bypass_last_basic_block already before splitting bbs after
15464         unconditional traps...
15465         (bypass_conditional_jumps): ... rather than here.
15467         PR target/79299
15468         * config/i386/sse.md (xtg_mode, gatherq_mode): New mode attrs.
15469         (*avx512f_gathersi<mode>, *avx512f_gathersi<mode>_2,
15470         *avx512f_gatherdi<mode>, *avx512f_gatherdi<mode>_2): Use them,
15471         fix -masm=intel patterns.
15473 2017-02-07  Richard Biener  <rguenther@suse.de>
15475         PR tree-optimization/79256
15476         PR middle-end/79278
15477         * builtins.c (get_object_alignment_2): Use min_align_of_type
15478         to extract alignment for MEM_REFs to honor BIGGEST_FIELD_ALIGNMENT
15479         and ADJUST_FIELD_ALIGN.
15481         * doc/tm.texi.in (ADJUST_FIELD_ALIGN): Adjust to take additional
15482         type parameter.
15483         * doc/tm.texi: Regenerate.
15484         * stor-layout.c (layout_decl): Adjust.
15485         (update_alignment_for_field): Likewise.
15486         (place_field): Likewise.
15487         (min_align_of_type): Likewise.
15488         * config/arc/arc.h (ADJUST_FIELD_ALIGN): Adjust.
15489         * config/epiphany/epiphany.h (ADJUST_FIELD_ALIGN): Likewise.
15490         * config/epiphany/epiphany.c (epiphany_adjust_field_align): Likewise.
15491         * config/frv/frv.h (ADJUST_FIELD_ALIGN): Likewise.
15492         * config/frv/frv.c (frv_adjust_field_align): Likewise.
15493         * config/i386/i386.h (ADJUST_FIELD_ALIGN): Likewise.
15494         * config/i386/i386.c (x86_field_alignment): Likewise.
15495         * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Likewise.
15496         * config/rs6000/darwin.h (ADJUST_FIELD_ALIGN): Likewise.
15497         * config/rs6000/freebsd64.h (ADJUST_FIELD_ALIGN): Likewise.
15498         * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
15499         * config/rs6000/sysv4.h (ADJUST_FIELD_ALIGN): Likewise.
15500         * config/rs6000/rs6000.c (rs6000_special_adjust_field_align_p):
15501          Likewise.
15503         Revert
15504         2017-01-30  Richard Biener  <rguenther@suse.de>
15506         PR tree-optimization/79256
15507         * targhooks.c (default_builtin_vector_alignment_reachable): Honor
15508         BIGGEST_FIELD_ALIGNMENT and ADJUST_FIELD_ALIGN to fix up bogus
15509         alignment on TYPE.
15511 2017-02-07  Toma Tabacu  <toma.tabacu@imgtec.com>
15513         * config/mips/mips.c (mips_expand_builtin_insn): Convert the QImode
15514         argument of the pshufh, psllh, psllw, psrah, psraw, psrlh, psrlw
15515         builtins to SImode and emit a zero-extend, if necessary.
15517 2017-02-06  Palmer Dabbelt  <palmer@dabbelt.com>
15519         * docs/invoke.texi (RISC-V Options): Alphabetize.
15521 2017-02-06  Palmer Dabbelt  <palmer@dabbelt.com>
15523         * doc/invoke.texi (RISC-V Options): Use two spaces to separate
15524         options.
15526 2017-02-06  Palmer Dabbelt  <palmer@dabbelt.com>
15528         * config/riscv/riscv.c: New file.
15529         * common/config/riscv/riscv-common.c: Likewise.
15530         * config.gcc: Likewise.
15531         * config/riscv/constraints.md: Likewise.
15532         * config/riscv/elf.h: Likewise.
15533         * config/riscv/generic.md: Likewise.
15534         * config/riscv/linux.h: Likewise.
15535         * config/riscv/multilib-generator: Likewise.
15536         * config/riscv/peephole.md: Likewise.
15537         * config/riscv/pic.md: Likewise.
15538         * config/riscv/predicates.md: Likewise.
15539         * config/riscv/riscv-builtins.c: Likewise.
15540         * config/riscv/riscv-c.c: Likewise.
15541         * config/riscv/riscv-ftypes.def: Likewise.
15542         * config/riscv/riscv-modes.def: Likewise.
15543         * config/riscv/riscv-opts.h: Likewise.
15544         * config/riscv/riscv-protos.h: Likewise.
15545         * config/riscv/riscv.h: Likewise.
15546         * config/riscv/riscv.md: Likewise.
15547         * config/riscv/riscv.opt: Likewise.
15548         * config/riscv/sync.md: Likewise.
15549         * config/riscv/t-elf-multilib: Likewise.
15550         * config/riscv/t-linux: Likewise.
15551         * config/riscv/t-linux-multilib: Likewise.
15552         * config/riscv/t-riscv: Likewise.
15553         * configure.ac: Likewise.
15554         * doc/contrib.texi: Add Kito Cheng, Palmer Dabbelt, and Andrew
15555         Waterman as RISC-V maintainers.
15556         * doc/install.texi: Add RISC-V entries.
15557         * doc/invoke.texi: Add RISC-V options section.
15558         * doc/md.texi: Add RISC-V constraints section.
15559         * configure: Regenerated.
15561 2017-02-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
15563         PR target/66144
15564         * config/rs6000/vector.md (vcond<mode><mode>): Allow the true and
15565         false values to be constant vectors with all 0 or all 1 bits set.
15566         (vcondu<mode><mode>): Likewise.
15567         * config/rs6000/predicates.md (vector_int_reg_or_same_bit): New
15568         predicate.
15569         (fpmask_comparison_operator): Update comment.
15570         (vecint_comparison_operator): New predicate.
15571         * config/rs6000/rs6000.c (rs6000_emit_vector_cond_expr): Optimize
15572         vector conditionals when the true and false values are constant
15573         vectors with all 0 bits or all 1 bits set.
15575 2017-02-06  Martin Sebor  <msebor@redhat.com>
15577         PR  tree-optimization/79376
15578         * gimple-fold.c (get_range_strlen): Set the minimum length to zero.
15580 2017-02-06  Uros Bizjak  <ubizjak@gmail.com>
15582         * config/i386/sse.md (vector modes -> vec_extract* splitter): Use
15583         explicit subreg RTX with operand 1.  Use VECTOR_MODE_P predicate
15584         to simplify split condition.
15586 2017-02-06  Jakub Jelinek  <jakub@redhat.com>
15588         * omp-expand.c (oxpand_omp_atomic_fetch_op,
15589         expand_omp_atomic_pipeline): Return false if can_atomic_load_p is
15590         false.
15592 2017-02-06  Segher Boessenkool  <segher@kernel.crashing.org>
15594         PR rtl-optimization/68664
15595         * target.def (can_speculate_insn): New hook.
15596         * doc/tm.texi.in (TARGET_SCHED_CAN_SPECULATE_INSN): New hook.
15597         * doc/tm.texi: Regenerate.
15598         * sched-rgn.c (can_schedule_ready_p): Use the new hook.
15599         * config/rs6000/rs6000.c (TARGET_SCHED_CAN_SPECULATE_INSN): New macro.
15600         (rs6000_sched_can_speculate_insn): New function.
15602 2017-02-06  Jakub Jelinek  <jakub@redhat.com>
15604         PR tree-optimization/79284
15605         * tree-vectorizer.h (VECT_SCALAR_BOOLEAN_TYPE_P): Define.
15606         * tree-vect-stmts.c (vect_get_vec_def_for_operand,
15607         vectorizable_mask_load_store, vectorizable_operation,
15608         vect_is_simple_cond, get_same_sized_vectype): Use it instead
15609         of comparing TREE_CODE of a type against BOOLEAN_TYPE.
15610         * tree-vect-patterns.c (check_bool_pattern, search_type_for_mask_1,
15611         vect_recog_bool_pattern, vect_recog_mask_conversion_pattern): Likewise.
15612         * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
15613         * tree-vect-loop.c (vect_determine_vectorization_factor): Likewise.
15614         Remove redundant gimple_code (stmt) == GIMPLE_ASSIGN test after
15615         is_gimple_assign (stmt).  Replace another such test with
15616         is_gimple_assign (stmt).
15618 2017-02-06  Georg-Johann Lay  <avr@gjlay.de>
15620         PR target/78883
15621         * config/avr/avr.c (rtl-iter.h): Include it.
15622         (TARGET_LEGITIMATE_COMBINED_INSN): New hook define...
15623         (avr_legitimate_combined_insn): ...and implementation.
15625 2017-02-06  Dominik Vogt  <vogt@linux.vnet.ibm.com>
15627         * config/s390/predicates.md ("larl_operand"): Use macros from hwint.h.
15628         * config/s390/s390.c (s390_const_operand_ok)
15629         (s390_canonicalize_comparison, s390_extract_part)
15630         (s390_single_part, s390_contiguous_bitmask_nowrap_p)
15631         (s390_contiguous_bitmask_p, s390_rtx_costs)
15632         (legitimize_pic_address): Likewise.
15633         * config/s390/s390.md ("clzdi2", "clztidi2"): Likewise.
15634         * config/s390/vx-builtins.md ("vec_genbytemaskv16qi")
15635         ("vec_permi<mode>", "vfae<mode>", "*vfaes<mode>", "vstrc<mode>")
15636         ("*vstrcs<mode>"): Use UINTVAL() to set unsigned HOST_WIDE_INT.
15637         * config/s390/vector.md ("vec_vfenes<mode>"): Likewise.
15639 2017-02-06  Georg-Johann Lay  <avr@gjlay.de>
15641         * config/avr/avr.md (*addhi3_zero_extend): Add alternative where
15642         REGNO($0) == REGNO($1).
15644 2017-02-06  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
15646         * config/s390/linux.h(SIZE_TYPE): Add comment.
15648 2017-02-06  Julian Brown  <julian@codesourcery.com>
15649             Naveen H.S  <Naveen.Hurugalawadi@cavium.com>
15650             Virendra Pathak  <virendra.pathak@broadcom.com>
15652         * config/aarch64/aarch64-cores.def: Change the scheduler
15653         to Thunderx2t99.
15654         * config/aarch64/aarch64.md: Include thunderx2t99.md.
15655         * config/aarch64/thunderx2t99.md: New file.
15657 2017-02-05  Gerald Pfeifer  <gerald@pfeifer.com>
15659         * doc/standards.texi (Go Language): Update link to language
15660         standard.
15662 2017-02-05  Jan Hubicka  <hubicka@ucw.cz>
15664         * tree-eh.c (lower_resx): Sanitize profile.
15665         (cleanup_empty_eh_move_lp): Likewise.
15667 2017-02-05  Jan Hubicka  <hubicka@ucw.cz>
15669         PR tree-ssa/79347
15670         * cfgloopmanip.c (lv_adjust_loop_entry_edge, loop_version): Add
15671         ELSE_PROB.
15672         * cfgloopmanip.h (loop_version): Update prototype.
15673         * modulo-sched.c (sms_schedule): Update call of loop_version.
15674         * tree-if-conv.c(version_loop_for_if_conversion): Likewise.
15675         * tree-parloops.c (gen_parallel_loop): Likewise.
15676         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Likewise.
15677         * tree-ssa-loop-split.c (split_loop): Likewise.
15678         * tree-ssa-loop-unswitch.c (tree_unswitch_loop): Likewise.
15679         * tree-vect-loop-manip.c (vect_loop_versioning): Likewise.
15681 2017-02-05  Martin Liska  <mliska@suse.cz>
15683         PR bootstrap/78985
15684         * config/s390/s390.c (s390_gimplify_va_arg): Initialize local
15685         variable to NULL.
15686         (print_operand_address): Initialize a struct to zero.
15688 2017-02-05  Gerald Pfeifer  <gerald@pfeifer.com>
15690         * doc/contrib.texi (Contributors): Refer to Hans Boehm's
15691         garbage collector only in textual form.
15693 2017-02-05  Gerald Pfeifer  <gerald@pfeifer.com>
15695         * doc/extend.texi (x86 specific memory model extensions for
15696         transactional memory): Simplify a phrase.
15698 2017-02-05  Eric Botcazou  <ebotcazou@adacore.com>
15700         PR target/79353
15701         * config/sparc/sync.md (atomic_loaddi_1): Replace 'U' constraint with
15702         'r', 'm' constraint with 'T' and !TARGET_ARCH64 with TARGET_ARCH32.
15703         (atomic_storedi_1): Likewise.
15705 2017-02-04  Jakub Jelinek  <jakub@redhat.com>
15707         PR tree-optimization/79338
15708         * tree-parloops.c (gather_scalar_reductions): Don't call
15709         vect_analyze_loop_form for loop->inner before destroying loop's
15710         loop_vinfo.
15712 2017-02-03  Martin Sebor  <msebor@redhat.com>
15714         PR tree-optimization/79327
15715         * gimple-ssa-sprintf.c (tree_digits): Avoid adding the base prefix
15716         when precision has resulted in leading zeros.
15717         (format_integer): Adjust the likely counter to assume an unknown
15718         argument that may be zero is non-zero.
15720 2017-02-03  Jason Merrill  <jason@redhat.com>
15722         PR c++/78689
15723         * tree-inline.c (copy_tree_body_r) [COND_EXPR]: Revert change to
15724         avoid copying non-taken branch.
15726 2017-02-03  Jakub Jelinek  <jakub@redhat.com>
15728         PR tree-optimization/79340
15729         * tree-vect-loop.c (vectorizable_reduction): Release
15730         vec_defs elements after safe_splicing them into other vectors.
15731         Formatting fixes.
15733         PR tree-optimization/79327
15734         * gimple-ssa-sprintf.c (adjust_range_for_overflow): If returning
15735         true, always set *argmin and *argmax to TYPE_{MIN,MAX}_VALUE of
15736         dirtype.
15737         (format_integer): Use wide_int_to_tree instead of build_int_cst
15738         + to_?hwi.  If argmin is NULL, just set argmin and argmax to
15739         TYPE_{MIN,MAX}_VALUE of argtype.  Simplify and fix computation
15740         of shortest and longest sequence.
15742 2017-02-03  Uros Bizjak  <ubizjak@gmail.com>
15744         * config/i386/i386.c (dimode_scalar_chain::convert_reg):
15745         Use pextrd for TARGET_SSE4_1 when creating scalar copy.
15747 2017-02-03  Walter Lee  <walt@tilera.com>
15749         PR target/78862
15750         * config/tilegx/tilegx.md (tilegx_expand_prologue): Add blockage
15751         after initial stackframe link reg save.
15752         * config/tilepro/tilepro.md (tilepro_expand_prologue): Likewise.
15754 2017-02-03  Jakub Jelinek  <jakub@redhat.com>
15756         PR target/79354
15757         * config/rs6000/rs6000.md (movsi_from_sf): Use wb constraint instead of
15758         wu for stxssp alternative.
15760 2017-02-03  Martin Sebor  <msebor@redhat.com>
15762         PR tree-optimization/79352
15763         * gimple-fold.c (get_range_strlen): Add argument.
15764         (get_range_strlen): Change return type to bool.
15765         (get_maxval_strlen): Pass in a dummy argument.
15766         * gimple-fold.h (get_range_strlen): Change return type to bool.
15767         * gimple-ssa-sprintf.c (get_string_length): Set unlikely counter.
15768         * tree.h (array_at_struct_end_p): Add argument.
15769         * tree.c (array_at_struct_end_p): Handle it.
15771 2017-02-03  Martin Liska  <mliska@suse.cz>
15773         PR lto/66295
15774         * multiple_target.c (create_dispatcher_calls): Redirect edge
15775         from a caller of a dispatcher.
15776         (expand_target_clones): Make the clones local.
15777         (ipa_target_clone): Do both target clones and resolvers.
15778         (ipa_dispatcher_calls): Remove the pass.
15779         (pass_dispatcher_calls::gate): Likewise.
15780         (make_pass_dispatcher_calls): Likewise.
15781         * passes.def (pass_target_clone): Put as very first IPA early
15782         pass.
15784 2017-02-03  Martin Liska  <mliska@suse.cz>
15786         * symtab.c (symtab_node::binds_to_current_def_p): Bail out
15787         in case of a function with ifunc attribute.
15789 2017-02-03  Martin Liska  <mliska@suse.cz>
15791         * cgraph.c (cgraph_node::dump): Dump function version info.
15792         * symtab.c (symtab_node::dump_base): Add missing new line.
15794 2017-02-02  Jan Hubicka  <hubicka@ucw.cz>
15796         * tree-ssa-ifcombine.c (update_profile_after_ifcombine): New function.
15797         (ifcombine_ifandif): Use it.
15799 2017-02-03  Martin Liska  <mliska@suse.cz>
15801         * doc/invoke.texi: Document default value for
15802         use-after-scope-direct-emission-threshold.
15804 2017-02-03  Martin Liska  <mliska@suse.cz>
15806         PR tree-optimization/79339
15807         * gimple-ssa-sprintf.c (format_floating_max): Call mpfr_clear.
15808         (format_floating): Likewise.
15810 2017-02-03  Martin Liska  <mliska@suse.cz>
15812         PR ipa/79337
15813         * ipa-prop.c (ipa_node_params_t::insert): Remove current
15814         implementation.
15815         (ipa_node_params_t::remove): Likewise.
15816         * ipa-prop.h (ipa_node_params::ipa_node_params): Make default
15817         initialization from removed ipa_node_params_t::insert.
15818         (ipa_node_params::~ipa_node_params): Move from removed
15819         ipa_node_params_t::release.
15820         * symbol-summary.h (symbol_summary::m_released): New member.
15821         Do not release a summary twice.  Do not allow to call finalizer
15822         for types of a summary that live in GGC memory.
15824 2017-02-02  Naveen H.S  <Naveen.Hurugalawadi@cavium.com>
15826         * config/aarch64/aarch64.c (thunderx2t99_tunings): Enable AES and
15827         cmp_branch fusion.
15829 2017-02-02  Martin Sebor  <msebor@redhat.com>
15831         PR middle-end/79275
15832         * gimple-ssa-sprintf.c (get_string_length): Set lower bound to zero.
15833         (format_string): Tighten up the range of output for non-constant
15834         strings and correct the expected range for wide non-constant strings.
15836 2017-02-02  Martin Sebor  <msebor@redhat.com>
15838         * doc/invoke.texi (-maccumulate-args): Fix bad grammar.
15840         PR middle-end/32003
15841         * doc/invoke.texi (-fdump-tree-): Remove pass-specific options from
15842         index.
15843         (-fdump-tree-@var): Add to index and document how to come up
15844         with pass-specific option and dump file names.
15845         (-fdump-passes): Clarify where to look for output.
15847 2017-02-02  Jan Hubicka  <hubicka@ucw.cz>
15849         PR middle-end/77445
15850         * tree-ssa-threadbackward.c (profitable_jump_thread_path): Dump
15851         statistics of the analyzed path; allow threading for speed when
15852         any of BBs along the path are optimized for speed.
15854 2017-02-02  Eric Botcazou  <ebotcazou@adacore.com>
15856         PR middle-end/78468
15857         * emit-rtl.c (init_emit): Add ??? comment for problematic alignment
15858         settings of the virtual registers.
15860         Revert again
15861         2016-08-23  Dominik Vogt  <vogt@linux.vnet.ibm.com>
15863         * explow.c (get_dynamic_stack_size): Take known alignment of stack
15864         pointer + STACK_DYNAMIC_OFFSET into account when calculating the size
15865         needed.
15867 2017-02-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
15869         * config/s390/vx-builtins.md ("vec_ceil", "vec_floor")
15870         ("vec_trunc", "vec_roundc", "vec_round"): Remove expanders.
15872 2017-02-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
15874         * config/s390/s390.md: Add missing comments with the expanded
15875         mnemonics.
15876         * config/s390/vector.md: Likewise.
15877         * config/s390/vx-builtins.md: Likewise.
15879 2017-02-02  Jakub Jelinek  <jakub@redhat.com>
15881         PR target/79197
15882         * config/rs6000/rs6000.md (*fixuns_trunc<mode>di2_fctiduz): Rename to ...
15883         (fixuns_trunc<mode>di2): ... this, remove previous expander.  Put all
15884         conditions on a single line.
15886 2017-02-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
15888         * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Rename
15889         __S390_VX__ to __VX__.
15891 2017-02-01  Andrew Pinski  <apinski@cavium.com>
15893         * tree-vect-loop.c (vect_compute_single_scalar_iteration_cost): Pass
15894         stmt_info to record_stmt_cost.
15895         (vect_get_known_peeling_cost): Pass stmt_info if known to
15896         record_stmt_cost.
15897         * config/aarch64/aarch64-protos.h (cpu_vector_cost): Split
15898         cpu_vector_cost field into
15899         scalar_int_stmt_cost and scalar_fp_stmt_cost.  Split vec_stmt_cost
15900         field into vec_int_stmt_cost and vec_fp_stmt_cost.
15901         * config/aarch64/aarch64.c (generic_vector_cost): Update for the
15902         splitting of scalar_stmt_cost and vec_stmt_cost.
15903         (thunderx_vector_cost): Likewise.
15904         (cortexa57_vector_cost): LIkewise.
15905         (exynosm1_vector_cost): Likewise.
15906         (xgene1_vector_cost): Likewise.
15907         (thunderx2t99_vector_cost): Improve after the splitting of the two
15908         fields.
15909         (aarch64_builtin_vectorization_cost): Update for the splitting of
15910         scalar_stmt_cost and vec_stmt_cost.
15912 2017-02-01  Torvald Riegel  <triegel@redhat.com>
15913             Richard Henderson  <rth@redhat.com>
15915         * builtins.c (fold_builtin_atomic_always_lock_free): Make "lock-free"
15916         conditional on existance of a fast atomic load.
15917         * optabs-query.c (can_atomic_load_p): New function.
15918         * optabs-query.h (can_atomic_load_p): Declare it.
15919         * optabs.c (expand_atomic_exchange): Always delegate to libatomic if
15920         no fast atomic load is available for the particular size of access.
15921         (expand_atomic_compare_and_swap): Likewise.
15922         (expand_atomic_load): Likewise.
15923         (expand_atomic_store): Likewise.
15924         (expand_atomic_fetch_op): Likewise.
15925         * testsuite/lib/target-supports.exp
15926         (check_effective_target_sync_int_128): Remove x86 because it provides
15927         no fast atomic load.
15928         (check_effective_target_sync_int_128_runtime): Likewise.
15930 2017-02-01  Richard Biener  <rguenther@suse.de>
15932         * graphite.c: Include tree-vectorizer.h for find_loop_location.
15933         (graphite_transform_loops): Provide opt-info for optimized nests.
15934         * tree-parloop.c (parallelize_loops): Provide opt-info for
15935         parallelized loops.
15937 2017-02-01  Richard Biener  <rguenther@suse.de>
15939         PR middle-end/79315
15940         * tree-cfg.c (move_stmt_op): Never set TREE_BLOCK when it
15941         was not set before.
15943 2017-02-01  Richard Biener  <rguenther@suse.de>
15945         PR tree-optimization/71824
15946         * graphite-scop-detection.c (scop_detection::build_scop_breadth):
15947         Verify the loops are valid in the merged SESE region.
15948         (scop_detection::can_represent_loop_1): Check analyzing the
15949         evolution of the number of iterations in the region succeeds.
15951 2017-01-31  Ian Lance Taylor  <iant@golang.org>
15953         * config/i386/i386.c (ix86_expand_split_stack_prologue): Add
15954         REG_ARGS_SIZE note to 32-bit push insns and call insn.
15956 2017-01-31  David Malcolm  <dmalcolm@redhat.com>
15958         PR preprocessor/79210
15959         * input.c (get_substring_ranges_for_loc): Replace line_width
15960         assertion with error-handling.
15962 2017-01-31  Richard Biener  <rguenther@suse.de>
15964         PR tree-optimization/77318
15965         * graphite-sese-to-poly.c (extract_affine): Fix assert.
15966         (create_pw_aff_from_tree): Take loop parameter.
15967         (add_condition_to_pbb): Pass loop of the condition to
15968         create_pw_aff_from_tree.
15970 2017-01-31  Jakub Jelinek  <jakub@redhat.com>
15972         * config/s390/s390.c (s390_asan_shadow_offset): New function.
15973         (TARGET_ASAN_SHADOW_OFFSET): Redefine.
15975 2017-01-31  Michael Meissner  <meissner@linux.vnet.ibm.com>
15977         PR target/78597
15978         PR target/79038
15979         * config/rs6000/rs6000-protos.h (convert_float128_to_int): Delete,
15980         no longer used.
15981         (convert_int_to_float128): Likewise.
15982         * config/rs6000/rs6000.c (convert_float128_to_int): Likewise.
15983         (convert_int_to_float128): Likewise.
15984         * config/rs6000/rs6000.md (UNSPEC_IEEE128_MOVE): Likewise.
15985         (UNSPEC_IEEE128_CONVERT): Likewise.
15986         (floatsi<mode>2, FLOAT128 iterator): Bypass calling
15987         rs6000_expand_float128_convert if we have IEEE 128-bit hardware.
15988         Use local variables for IBM extended format.
15989         (fix_trunc<mode>si2, FLOAT128 iterator): Likewise.
15990         (fix_trunc<mode>si2_fprs): Likewise.
15991         (fixuns_trunc<IEEE128:mode><SDI:mode>2): Likewise.
15992         (floatuns<IEEE128:mode>2, IEEE128 iterator): Likewise.
15993         (fix<uns>_<mode>si2_hw): Rework the IEEE 128-bt hardware support
15994         to know that we can now have integers of all sizes in vector
15995         registers.
15996         (fix<uns>_<mode>di2_hw): Likewise.
15997         (float<uns>_<mode>si2_hw): Likewise.
15998         (fix_<mode>si2_hw): Likewise.
15999         (fixuns_<mode>si2_hw): Likewise.
16000         (float<uns>_<mode>di2_hw): Likewise.
16001         (float_<mode>di2_hw): Likewise.
16002         (float_<mode>si2_hw): Likewise.
16003         (floatuns_<mode>di2_hw): Likewise.
16004         (floatuns_<mode>si2_hw): Likewise.
16005         (xscvqp<su>wz_<mode>): Delete, no longer used.
16006         (xscvqp<su>dz_<mode>): Likewise.
16007         (xscv<su>dqp_<mode>): Likewise.
16008         (ieee128_mfvsrd_64bit): Likewise.
16009         (ieee128_mfvsrd_32bit): Likewise.
16010         (ieee128_mfvsrwz): Likewise.
16011         (ieee128_mtvsrw): Likewise.
16012         (ieee128_mtvsrd_64bit): Likewise.
16013         (ieee128_mtvsrd_32bit): Likewise.
16015 2017-01-31  Martin Liska  <mliska@suse.cz>
16017         PR ipa/79285
16018         * ipa-prop.c (ipa_free_all_node_params): Call release method
16019         instead of ~sumbol_summary to not to trigger double times
16020         dtor of hash_map.
16022 2017-01-31  Aldy Hernandez  <aldyh@redhat.com>
16024         PR tree-optimization/71691
16025         * bitmap.h (class auto_bitmap): New.
16026         * tree-ssa-loop-unswitch.c (tree_may_unswitch_on): Call
16027         is_maybe_undefined instead of ssa_undefined_value_p.
16029 2017-01-31  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
16031         * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Rename
16032         __S390_ARCH_LEVEL__ to __ARCH__.
16034 2017-01-31  Jakub Jelinek  <jakub@redhat.com>
16036         PR tree-optimization/79267
16037         * value-prof.c (gimple_ic): Only drop lhs for noreturn calls
16038         if should_remove_lhs_p is true.
16040 2017-01-30  Alexandre Oliva <aoliva@redhat.com>
16042         PR debug/63238
16043         * dwarf2out.c (clone_as_declaration): Drop DW_AT_alignment.
16044         (add_alignment_attribute): New.
16045         (base_type_die): Add alignment attribute.
16046         (subrange_type_die): Likewise.
16047         (modified_type_die): Likewise.
16048         (gen_array_type_die): Likewise.
16049         (gen_descr_array_type_die: Likewise.
16050         (gen_enumeration_type_die): Likewise.
16051         (gen_subprogram_die): Likewise.
16052         (gen_variable_die): Likewise.
16053         (gen_field_die): Likewise.
16054         (gen_ptr_to_mbr_type_die): Likewise.
16055         (gen_struct_or_union_type_die): Likewise.
16056         (gen_subroutine_type_die): Likewise.
16057         (gen_typedef_die): Likewise.
16058         (base_type_cmp): Compare alignment attribute.
16060 2017-01-30  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
16062         PR target/79170
16063         * config/rs6000/altivec.md (*setb_internal): Rename to setb_signed.
16064         (setb_unsigned) New pattern for setb with CCUNS.
16065         * config/rs6000/rs6000.c (expand_block_compare): Use a different
16066         subfc./subfe sequence to avoid overflow problems.  Generate a
16067         shorter sequence with cmpld/setb for power9.
16068         * config/rs6000/rs6000.md (subf<mode>3_carry_dot2): Add a new pattern
16069         for generating subfc. instruction.
16070         (cmpstrsi): Add TARGET_POPCNTD predicate as the generate sequence
16071         now uses this instruction.
16073 2017-01-30  Ian Lance Taylor  <iant@google.com>
16075         PR debug/79289
16076         * dwarf2out.c (gen_type_die_with_usage): When picking a variant
16077         for FUNCTION_TYPE/METHOD_TYPE, use the first matching one.
16079 2017-01-30  Martin Sebor  <msebor@redhat.com>
16081         * gimple-ssa-sprintf.c (fmtresult::adjust_for_width_or_precision):
16082         Move constant to the right of a relational operator.
16083         (get_mpfr_format_length, format_character, format_string): Ditto.
16084         (should_warn_p, maybe_warn): Same.
16086         * doc/invoke.texi (-Wformat-truncation=1): Fix typo.
16088 2017-01-30  Maxim Ostapenko  <m.ostapenko@samsung.com>
16090         PR lto/79061
16091         * asan.c (get_translation_unit_decl): Remove function.
16092         (asan_add_global): Force has_dynamic_init to zero in LTO mode.
16094 2017-01-30  Martin Liska  <mliska@suse.cz>
16096         PR gcov-profile/79259
16097         * opts.c (common_handle_option): Enable flag_ipa_bit_cp w/
16098         -fprofile-generate.
16100 2017-01-30  Martin Liska  <mliska@suse.cz>
16102         PR bootstrap/78985
16103         * config/aarch64/cortex-a57-fma-steering.c (func_fma_steering::analyze):
16104         Initialize variables with NULL value.
16106 2017-01-30  Richard Earnshaw  <rearnsh@arm.com>
16108         PR target/79260
16109         * config.gcc (arm*-*-*): Add arm/arm-flags.h and arm/arm-isa.h to
16110         tm_p_file.
16111         * arm/arm-protos.h: Don't directly include arm-flags.h and arm-isa.h.
16113 2017-01-30  Richard Biener  <rguenther@suse.de>
16115         PR tree-optimization/79276
16116         * tree-vrp.c (process_assert_insertions): Properly adjust common
16117         when removing a duplicate.
16119         * gcc.dg/torture/pr79276.c: New testcase.
16121 2017-01-30  Richard Biener  <rguenther@suse.de>
16123         PR tree-optimization/79256
16124         * targhooks.c (default_builtin_vector_alignment_reachable): Honor
16125         BIGGEST_FIELD_ALIGNMENT and ADJUST_FIELD_ALIGN to fix up bogus
16126         alignment on TYPE.
16127         * tree.c (build_aligned_type): Set TYPE_USER_ALIGN.
16129 2017-01-30  Dominik Vogt  <vogt@linux.vnet.ibm.com>
16131         PR target/79240
16132         * config/s390/s390.md ("*r<noxa>sbg_<mode>_srl_bitmask")
16133         ("*r<noxa>sbg_<mode>_sll_bitmask")
16134         ("*extzv_<mode>_srl<clobbercc_or_nocc>")
16135         ("*extzv_<mode>_sll<clobbercc_or_nocc>"):
16136         Use contiguous_bitmask_nowrap_operand.
16138 2017-01-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
16140         PR target/79268
16141         * config/rs6000/altivec.h (vec_xl): Revise #define.
16142         (vec_xst): Likewise.
16144 2017-01-27  Uros Bizjak  <ubizjak@gmail.com>
16146         * config/i386/i386.c (print_reg): Use REGNO instead of true_regnum.
16148 2017-01-27  Bernd Schmidt  <bschmidt@redhat.com>
16150         PR rtl-optimization/79194
16151         * cprop.c (one_cprop_pass): Move deletion of code after unconditional
16152         traps before call to bypass_conditional_jumps.
16154 2017-01-27  Vladimir Makarov  <vmakarov@redhat.com>
16156         PR tree-optimization/71374
16157         * lra-constraints.c (check_conflict_input_operands): New.
16158         (match_reload): Use it.
16160 2017-01-27  Vladimir Makarov  <vmakarov@redhat.com>
16162         PR target/79131
16163         * lra-assigns.c (find_hard_regno_for_1): Take endianess for into
16164         account to calculate conflict_set.
16166 2017-01-27  Bin Cheng  <bin.cheng@arm.com>
16168         PR rtl-optimization/78559
16169         * combine.c (try_combine): Discard REG_EQUAL and REG_EQUIV for
16170         other_insn in combine.
16172 2017-01-27  Pekka Jääskeläinen  <pekka.jaaskelainen@parmance.com>
16174         * builtin-types.def: Use unsigned_char_type_node for BT_UINT8.  Use
16175         uint16_type_node for BT_UINT16.
16177 2017-01-27  David Malcolm  <dmalcolm@redhat.com>
16179         * doc/sourcebuild.texi (Testsuites): Add "GIMPLE Tests" and
16180         "RTL Tests" to menu.
16181         (GIMPLE Tests): New node.
16182         (RTL Tests): New node.
16184 2017-01-27  Richard Biener  <rguenther@suse.de>
16186         PR tree-optimization/79245
16187         * tree-loop-distribution.c (distribute_loop): Apply cost
16188         modeling also to detected patterns.
16190 2017-01-27  Richard Biener  <rguenther@suse.de>
16192         PR tree-optimization/71433
16193         * tree-vrp.c (register_new_assert_for): Revert earlier changes.
16194         (compare_assert_loc): New function.
16195         (process_assert_insertions): Sort and optimize assert locations
16196         to remove duplicates and push down identical assertions on
16197         edges to their destination block.
16199 2017-01-27  Richard Biener  <rguenther@suse.de>
16201         PR tree-optimization/79244
16202         * tree-vrp.c (remove_range_assertions): Forcefully propagate
16203         out SSA names even if abnormal.
16205 2017-01-27  Jakub Jelinek  <jakub@redhat.com>
16207         * realmpfr.h: Poison MPFR_RND{N,Z,U,D}.
16208         * gimple-ssa-sprintf.c (format_floating_max): Use GMP_RNDN
16209         instead of MPFR_RNDN.
16211 2017-01-27  Richard Earnshaw  <rearnsha@arm.com>
16213         PR target/79239
16214         * arm.c (arm_option_override): Don't call build_target_option_node
16215         until after doing all option overrides.
16216         (arm_valid_target_attribute_tree): Likewise.
16218 2017-01-27  Martin Liska  <mliska@suse.cz>
16220         * doc/invoke.texi (-fprofile-arcs): Document profiling support
16221         for {cd}tors and C++ {cd}tors.
16223 2017-01-27  Dominik Vogt  <vogt@linux.vnet.ibm.com>
16225         * config/s390/s390.md ("*setmem_long_and")
16226         ("*setmem_long_and_31z"): Use zero_extend instead of and.
16228 2017-01-26  Martin Sebor  <msebor@redhat.com>
16230         * gimple-ssa-sprintf.c (format_floating): Simplify the computation
16231         of precision.
16233 2017-01-26  Martin Sebor  <msebor@redhat.com>
16235         * gimple-ssa-sprintf.c (format_floating): Test HAVE_XFmode and
16236         HAVE_DFmode before using XFmode or DFmode.
16237         (parse_directive): Avoid using the z length modifier to avoid
16238         the ISO C++98 does not support the â€˜z’ gnu_printf length modifier.
16240         PR middle-end/78703
16241         * gimple-ssa-sprintf.c (adjust_for_width_or_precision): Change
16242         to accept adjustment as an array.
16243         (get_int_range): New function.
16244         (struct directive): Make width and prec arrays.
16245         (directive::set_width, directive::set_precision): Call get_int_range.
16246         (format_integer, format_floating): Handle width and precision ranges.
16247         (format_string, parse_directive): Same.
16249 2017-01-26  Jakub Jelinek  <jakub@redhat.com>
16251         PR debug/79129
16252         * dwarf2out.c (generate_skeleton_bottom_up): For children with
16253         comdat_type_p set, just clone them, but keep the children in the
16254         original DIE.
16256         PR debug/78835
16257         * dwarf2out.c (prune_unused_types): Mark all functions with DIEs
16258         which have direct callers with -fvar-tracking-assignments enabled
16259         in the current TU.
16260         (resolve_addr): Avoid adding skeleton DIEs for DW_AT_call_origin
16261         inside of type units.
16263 2017-01-26  Martin Sebor  <msebor@redhat.com>
16265         PR middle-end/78703
16266         * gimple-ssa-sprintf.c (struct result_range): Add likely and
16267         unlikely counters.
16268         (struct format_result): Replace number_chars, number_chars_min,
16269         and number_chars_max with a single member of struct result_range.
16270         Remove bounded.
16271         (format_result::operator+=): Adjust.
16272         (struct fmtresult): Remove bounded.  Handle likely and unlikely
16273         counters.
16274         (fmtresult::adjust_for_width_or_precision): New function.
16275         (fmtresult:type_max_digits): New function.
16276         (bytes_remaining): Handle likely and unlikely counters.
16277         (min_bytes_remaining): Remove.
16278         (format_percent): Simplify.
16279         (format_integer, format_floating): Set likely and unlikely counters.
16280         (get_string_length, format_character, format_string): Same.
16281         (format_plain, should_warn_p): New function.
16282         (maybe_warn): Call should_warn_p.  Update diagnostic messages
16283         and handle those for all directives, including plain strings.
16284         (format_directive): Handle likely and unlikely counters.
16285         Remove unnecessary quoting from diagnostics.  Add an informational
16286         note.
16287         (add_bytes): Remove.
16288         (pass_sprintf_length::compute_format_length): Simplify.
16289         (try_substitute_return_value): Handle likely and unlikely counters.
16291 2017-01-26  Carl Love  <cel@us.ibm.com>
16293         * config/rs6000/rs6000-c (altivec_overloaded_builtins): Remove
16294         bogus entries for the P8V_BUILTIN_VEC_VGBBD built-ins
16296 2017-01-26  Vladimir Makarov  <vmakarov@redhat.com>
16298         PR target/79131
16299         * lra-assigns.c (setup_live_pseudos_and_spill_after_risky): Take
16300         endianess for subregs into account.
16301         * lra-constraints.c (lra_constraints): Do risky transformations
16302         always on the first iteration.
16303         * lra-lives.c (check_pseudos_live_through_calls): Add arg
16304         last_call_used_reg_set.
16305         (process_bb_lives): Define and use last_call_used_reg_set.
16306         * lra.c (lra): Always continue after lra_constraints on the first
16307         iteration.
16309 2017-01-26  Kirill Yukhin  <kirill.yukhin@gmail.com>
16311         * gcc.target/i386/avx512bw-kshiftlq-2.c: Use unsigned long long
16312         constant.
16313         * gcc.target/i386/avx512bw-kshiftrq-2.c: Ditto.
16315 2017-01-26  Jakub Jelinek  <jakub@redhat.com>
16317         * config/i386/avx512fintrin.h (_ktest_mask16_u8,
16318         _ktestz_mask16_u8, _ktestc_mask16_u8, _kadd_mask16): Move to ...
16319         * config/i386/avx512dqintrin.h (_ktest_mask16_u8,
16320         _ktestz_mask16_u8, _ktestc_mask16_u8, _kadd_mask16): ... here.
16321         * config/i386/i386-builtin.def (__builtin_ia32_ktestchi,
16322         __builtin_ia32_ktestzhi, __builtin_ia32_kaddhi): Use
16323         OPTION_MASK_ISA_AVX512DQ instead of OPTION_MASK_ISA_AVX512F.
16324         * config/i386/sse.md (SWI1248_AVX512BWDQ2): New mode iterator.
16325         (kadd<mode>, ktest<mode>): Use it instead of SWI1248_AVX512BWDQ.
16327 2017-01-26  Marek Polacek  <polacek@redhat.com>
16329         PR c/79199
16330         * fold-const.c (operand_equal_p) [COND_EXPR]: Use OP_SAME_WITH_NULL
16331         for the third operand.
16333 2017-01-26  Jakub Jelinek  <jakub@redhat.com>
16335         PR middle-end/79236
16336         * omp-low.c (struct omp_context): Add simt_stmt field.
16337         (scan_omp_for): Return omp_context *.
16338         (scan_omp_simd): Set simt_stmt on the non-_simt_ SIMD
16339         context to the _simt_ SIMD stmt.
16340         (lower_omp_for): For combined SIMD with sibling _simt_
16341         SIMD, make sure to use the same decls in _looptemp_
16342         clauses as in the sibling.
16344 2017-01-26  David Sherwood  <david.sherwood@arm.com>
16346         PR middle-end/79212
16347         * gimplify.c (omp_notice_variable): Add GOVD_SEEN flag to variables in
16348         all contexts.
16350 2017-01-26  Jakub Jelinek  <jakub@redhat.com>
16352         PR target/70465
16353         * reg-stack.c (emit_swap_insn): Instead of fld a; fld b; fxchg %st(1);
16354         emit fld b; fld a; if possible.
16356         * brig-builtins.def: Update copyright years.
16357         * config/arm/arm_acle_builtins.def: Update copyright years.
16359 2017-01-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
16361         PR target/79179
16362         * config/rs6000/vsx.md (vsx_extract_<mode>_store): Use wY
16363         constraint instead of o for the stxsd instruction.
16365 2017-01-25  Carl Love  <cel@us.ibm.com>
16367         * config/rs6000/rs6000-c (altivec_overloaded_builtins): Fix order
16368         of entries for ALTIVEC_BUILTIN_VEC_PACKS and P8V_BUILTIN_VEC_VGBBD.
16370 2017-01-25  Jonathan Wakely  <jwakely@redhat.com>
16372         * doc/invoke.texi (C++ Dialect Options): Fix typo.
16374 2017-01-25  Richard Biener  <rguenther@suse.de>
16376         PR tree-optimization/69264
16377         * target.def (vector_alignment_reachable): Improve documentation.
16378         * doc/tm.texi: Regenerate.
16379         * targhooks.c (default_builtin_vector_alignment_reachable): Simplify
16380         and add a comment.
16381         * tree-vect-data-refs.c (vect_supportable_dr_alignment): Revert
16382         earlier changes with respect to TYPE_USER_ALIGN.
16383         (vector_alignment_reachable_p): Likewise.  Improve dumping.
16385 2016-01-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16387         PR target/79145
16388         * config/arm/arm.md (xordi3): Force constant operand into a register
16389         for TARGET_IWMMXT.
16391 2016-01-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16393         * doc/invoke.texi (-fstore-merging): Correct default optimization
16394         levels at which it is enabled.
16395         (-O): Move -fstore-merging from list to...
16396         (-O2): ... Here.
16398 2017-01-25  Richard Biener  <rguenther@suse.de>
16400         PR debug/78363
16401         * omp-expand.c: Include debug.h.
16402         (expand_omp_taskreg): Make sure to generate early debug before
16403         outlining anything from a function.
16404         (expand_omp_target): Likewise.
16405         (grid_expand_target_grid_body): Likewise.
16407 2017-01-25  Maxim Ostapenko  <m.ostapenko@samsung.com>
16409         PR lto/79061
16410         * asan.c (get_translation_unit_decl): New function.
16411         (asan_add_global): Extract modules file name from globals
16412         TRANSLATION_UNIT_DECL name.
16414 2017-01-24  Eric Botcazou  <ebotcazou@adacore.com>
16416         PR target/77439
16417         * config/arm/arm.c (arm_function_ok_for_sibcall): Add back restriction
16418         for long calls with APCS frame and VFP.
16420 2017-01-24  David Malcolm  <dmalcolm@redhat.com>
16422         * cfg.c (original_copy_tables_initialized_p): New function.
16423         * cfg.h (original_copy_tables_initialized_p): New decl.
16424         * cfgrtl.c (relink_block_chain): Guard the call to
16425         free_original_copy_tables with a call to
16426         original_copy_tables_initialized_p.
16427         * cgraph.h (symtab_node::native_rtl_p): New decl.
16428         * cgraphunit.c (symtab_node::native_rtl_p): New function.
16429         (symtab_node::needed_p): Don't assert for early assembly output
16430         for __RTL functions.
16431         (cgraph_node::finalize_function): Set "force_output" for __RTL
16432         functions.
16433         (cgraph_node::analyze): Bail out early for __RTL functions.
16434         (analyze_functions): Update assertion to support __RTL functions.
16435         (cgraph_node::expand): Bail out early for __RTL functions.
16436         * final.c (rest_of_clean_state): Don't call delete_tree_ssa for
16437         __RTL functions.
16438         * function.h (struct function): Update comment for field
16439         "pass_startwith".
16440         * gimple-expr.c: Include "tree-pass.h".
16441         (gimple_has_body_p): Return false for __RTL functions.
16442         * Makefile.in (OBJS): Add run-rtl-passes.o.
16443         * pass_manager.h (gcc::pass_manager::get_rest_of_compilation): New
16444         accessor.
16445         (gcc::pass_manager::get_clean_slate): New accessor.
16446         * passes.c: Include "insn-addr.h".
16447         (should_skip_pass_p): Add logging.  Update logic for running
16448         "expand" to be compatible with both __GIMPLE and __RTL.  Guard
16449         property-provider override so it is only done for gimple passes.
16450         Don't skip dfinit.
16451         (skip_pass): New function.
16452         (execute_one_pass): Call skip_pass when skipping passes.
16453         * read-md.c (md_reader::read_char): Support filtering
16454         the input to a subset of line numbers.
16455         (md_reader::md_reader): Initialize fields
16456         m_first_line and m_last_line.
16457         (md_reader::read_file_fragment): New function.
16458         * read-md.h (md_reader::read_file_fragment): New decl.
16459         (md_reader::m_first_line): New field.
16460         (md_reader::m_last_line): New field.
16461         * read-rtl-function.c (function_reader::create_function): Only
16462         create cfun if it doesn't already exist.  Set PROP_rtl on cfun's
16463         curr_properties.  Set DECL_INITIAL to a dummy block.
16464         (read_rtl_function_body_from_file_range): New function.
16465         * read-rtl-function.h (read_rtl_function_body_from_file_range):
16466         New decl.
16467         * run-rtl-passes.c: New file.
16468         * run-rtl-passes.h: New file.
16470 2017-01-24  Jeff Law  <law@redhat.com>
16472         * config/microblaze/microblaze.h (ASM_FORMAT_PRIVATE_NAME): Increase
16473         buffer size.
16475 2017-01-24  Bin Cheng  <bin.cheng@arm.com>
16477         PR tree-optimization/79159
16478         * tree-ssa-loop-niter.c (get_cst_init_from_scev): New function.
16479         (record_nonwrapping_iv): Improve boundary using above function if no
16480         value range information.
16482 2017-01-24  Pekka Jääskeläinen  <pekka@parmance.com>
16483             Martin Jambor  <mjambor@suse.cz>
16485         * brig-builtins.def: New file.
16486         * builtins.def (DEF_HSAIL_BUILTIN): New macro.
16487         (DEF_HSAIL_ATOMIC_BUILTIN): Likewise.
16488         (DEF_HSAIL_SAT_BUILTIN): Likewise.
16489         (DEF_HSAIL_INTR_BUILTIN): Likewise.
16490         (DEF_HSAIL_CVT_ZEROI_SAT_BUILTIN): Likewise.
16491         * builtin-types.def (BT_INT8): New.
16492         (BT_INT16): Likewise.
16493         (BT_UINT8): Likewise.
16494         (BT_UINT16): Likewise.
16495         (BT_FN_ULONG): Likewise.
16496         (BT_FN_UINT_INT): Likewise.
16497         (BT_FN_UINT_ULONG): Likewise.
16498         (BT_FN_UINT_LONG): Likewise.
16499         (BT_FN_UINT_PTR): Likewise.
16500         (BT_FN_ULONG_PTR): Likewise.
16501         (BT_FN_INT8_FLOAT): Likewise.
16502         (BT_FN_INT16_FLOAT): Likewise.
16503         (BT_FN_UINT32_FLOAT): Likewise.
16504         (BT_FN_UINT16_FLOAT): Likewise.
16505         (BT_FN_UINT8_FLOAT): Likewise.
16506         (BT_FN_UINT64_FLOAT): Likewise.
16507         (BT_FN_UINT16_UINT32): Likewise.
16508         (BT_FN_UINT32_UINT16): Likewise.
16509         (BT_FN_UINT16_UINT16_UINT16): Likewise.
16510         (BT_FN_INT_PTR_INT): Likewise.
16511         (BT_FN_UINT_PTR_UINT): Likewise.
16512         (BT_FN_LONG_PTR_LONG): Likewise.
16513         (BT_FN_ULONG_PTR_ULONG): Likewise.
16514         (BT_FN_VOID_UINT64_UINT64): Likewise.
16515         (BT_FN_UINT8_UINT8_UINT8): Likewise.
16516         (BT_FN_INT8_INT8_INT8): Likewise.
16517         (BT_FN_INT16_INT16_INT16): Likewise.
16518         (BT_FN_INT_INT_INT): Likewise.
16519         (BT_FN_UINT_FLOAT_UINT): Likewise.
16520         (BT_FN_FLOAT_UINT_UINT): Likewise.
16521         (BT_FN_ULONG_UINT_UINT): Likewise.
16522         (BT_FN_ULONG_UINT_PTR): Likewise.
16523         (BT_FN_ULONG_ULONG_ULONG): Likewise.
16524         (BT_FN_UINT_UINT_UINT): Likewise.
16525         (BT_FN_VOID_UINT_PTR): Likewise.
16526         (BT_FN_UINT_UINT_PTR: Likewise.
16527         (BT_FN_UINT32_UINT64_PTR): Likewise.
16528         (BT_FN_INT_INT_UINT_UINT): Likewise.
16529         (BT_FN_UINT_UINT_UINT_UINT): Likewise.
16530         (BT_FN_UINT_UINT_UINT_PTR): Likewise.
16531         (BT_FN_UINT_ULONG_ULONG_UINT): Likewise.
16532         (BT_FN_ULONG_ULONG_ULONG_ULONG): Likewise.
16533         (BT_FN_LONG_LONG_UINT_UINT): Likewise.
16534         (BT_FN_ULONG_ULONG_UINT_UINT): Likewise.
16535         (BT_FN_VOID_UINT32_UINT64_PTR): Likewise.
16536         (BT_FN_VOID_UINT32_UINT32_PTR): Likewise.
16537         (BT_FN_UINT_UINT_UINT_UINT_UINT): Likewise.
16538         (BT_FN_UINT_FLOAT_FLOAT_FLOAT_FLOAT): Likewise.
16539         (BT_FN_ULONG_ULONG_ULONG_UINT_UINT): Likewise.
16540         * doc/frontends.texi: List BRIG FE.
16541         * doc/install.texi (Testing): Add BRIG tesring requirements.
16542         * doc/invoke.texi (Overall Options): Mention BRIG.
16543         * doc/standards.texi (Standards): Doucment BRIG HSA version.
16545 2017-01-24  Richard Biener  <rguenther@suse.de>
16547         PR translation/79208
16548         * ipa-devirt.c (odr_types_equivalent_p): Fix typo in diagnostic.
16550 2017-01-24  Martin Jambor  <mjambor@suse.cz>
16552         PR bootstrap/79198
16553         * ipa-prop.c (ipa_free_all_node_params): Call summary destructor.
16554         * ipa-prop.c (ipa_node_params_t::insert): Initialize fields known_csts
16555         and known_contexts.
16557 2017-01-24  Aldy Hernandez  <aldyh@redhat.com>
16559         PR middle-end/79123
16560         * gimple-ssa-warn-alloca.c (alloca_call_type): Make sure
16561         casts from signed to unsigned really don't have a range.
16563 2017-01-24  Markus Trippelsdorf  <markus@trippelsdorf.de>
16565         * gimple-ssa-sprintf.c (format_floating): Change MPFR_RNDx to
16566         GMP_RNDx for compatiblity.
16568 2017-01-24  Martin Liska  <mliska@suse.cz>
16570         PR bootstrap/79132
16571         * tree-ssa-reassoc.c (rewrite_expr_tree_parallel): Insert assert
16572         that would prevent us to call alloca with -1 as argument.
16574 2017-01-24  Jakub Jelinek  <jakub@redhat.com>
16576         * dwarf2out.c (output_compilation_unit_header, output_file_names):
16577         Avoid -Wformat-security warning.
16579 2017-01-23  Andrew Pinski  <apinski@cavium.com>
16581         * config/aarch64/aarch64.c (thunderx2t99_addrcost_table): Improve
16582         cost table.
16584 2017-01-23  Martin Sebor  <msebor@redhat.com>
16586         PR middle-end/78703
16587         * gimple-ssa-sprintf.c (warn_level): New global.
16588         (format_integer): Use it here and throughout the rest of the file.
16589         Use the same switch to compute sign as base.
16590         (maybe_warn): New function.
16591         (format_directive): Factor out warnings into maybe_warn.
16592         Add debugging output.  Use warn_level.
16593         (add_bytes): Use warn_level.
16594         (pass_sprintf_length::compute_format_length): Add debugging output.
16595         (try_substitute_return_value): Same.
16596         (pass_sprintf_length::handle_gimple_call): Set and use warn_level.
16598         PR middle-end/78703
16599         * gimple-ssa-sprintf.c (struct format_result): Remove constant member.
16600         (struct fmtresult, format_integer, format_floating): Adjust.
16601         (fmtresult::fmtresult): Set max correctly in two argument ctor.
16602         (get_string_length, format_string,format_directive): Same.
16603         (pass_sprintf_length::compute_format_length): Same.
16604         (try_substitute_return_value): Simplify slightly.
16606         PR middle-end/78703
16607         * gimple-ssa-sprintf.c (pass_sprintf_length::gate): Adjust formatting.
16608         (fmtresult::operator+=): Outlined.
16609         (struct fmtresult): Add ctors.
16610         (struct conversion_spec): Rename...
16611         (struct directive): ...to this.  Add and remove data members.
16612         (directive::set_width, directive::set_precision): New functions.
16613         (format_percent): Use fmtresult ctor.
16614         (get_width_and_precision): Remove.
16615         (format_integer): Make naming changes.  Avoid computing width and
16616         precision.
16617         (format_floating): Same.  Adjust indentation.
16618         (format_character, format_none): New functions.
16619         (format_string): Moved character handling to format_character.
16620         (format_directive): Remove arguments, change return type.
16621         (parse_directive): New function.
16622         (pass_sprintf_length::compute_format_length): Move directive
16623         parsing to parse_directive.
16625 2017-01-23  Jakub Jelinek  <jakub@redhat.com>
16627         * tree.h (assign_assembler_name_if_neeeded): Rename to ...
16628         (assign_assembler_name_if_needed): ... this.
16629         * tree.c (assign_assembler_name_if_neeeded): Rename to ...
16630         (assign_assembler_name_if_needed): ... this.
16631         (free_lang_data_in_cgraph): Adjust callers.
16632         * cgraphunit.c (cgraph_node::analyze): Likewise.
16633         * omp-expand.c (expand_omp_taskreg, expand_omp_target):
16634         Likewise.
16636 2017-01-23  Richard Biener  <rguenther@suse.de>
16638         PR tree-optimization/79088
16639         PR tree-optimization/79188
16640         * tree-ssa-threadupdate.c (mark_threaded_blocks): Move code
16641         resetting loop bounds after last path deletion.  Reset loop
16642         bounds of the target loop, make code match the comments.
16643         * tree-ssa-threadbackwards.c (pass_early_thread_jumps::execute):
16644         Make sure loops need no fixups.
16646 2017-01-23  Kelvin Nilsen  <kelvin@gcc.gnu.org>
16648         * config/rs6000/rs6000-builtin.def (VSIEDPF): Add scalar insert
16649         exponent support with double type for first argument.
16650         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Changed
16651         type returned by __builtin_vec_extract_sig,
16652         __builtin_vec_extract_sig_sp, and __builtin_vec_extract_sig_dp
16653         functions from "vector int" to "vector unsigned int" or from
16654         "vector long long int" to "vector unsigned long long int".
16655         Changed type returned by __builtin_vec_extract_exp,
16656         __builtin_vec_extract_exp_sp, and __builtin_vec_extract_exp_dp
16657         functions from "vector int" to "vector unsigned int" or from
16658         "vector long long int" to "vector unsigned long long int".
16659         Changed return type of __builtin_vec_test_data_class,
16660         __builtin_vec_test_data_class_sp, and
16661         __builtin_vec_test_data_class_dp from "vector int" to
16662         "vector bool int" or from "vector long long int" to "vector bool
16663         long long int" and changed second argument type from "unsigned
16664         int" to "int".  Added new overloaded function forms "vector float
16665         __builtin_vec_insert_exp (vector float, vector unsigned int)" and
16666         "vector float __builtin_vec_insert_exp_sp (vector float, vector
16667         unsigned int)" and "vector double __builtin_vec_insert_exp (vector
16668         double, vector unsigned long long int)" and "vector double
16669         __builtin_vec_insert_exp_dp (vector double, vector unsigned long
16670         long int)".  Changed return type of
16671         __builtin_scalar_test_data_class and
16672         __builtin_scalar_test_data_class_sp and
16673         __builtin_scalar_test_data_class_dp from "unsigned int" to "bool
16674         int" and changed second argument from "unsigned int" to "int".
16675         Changed type returned by __builtin_scalar_test_neg,
16676         __builtin_scalar_test_neg_sp, and __builtin_scalar_test_neg_dp
16677         from "int" to "bool int".  Added new overloaded function form
16678         "double __builtin_scalar_insert_exp (double, unsigned long long int)".
16679         * config/rs6000/vsx.md (xsiexpdpf): New insn for scalar insert
16680         exponent double-precision with floating point first argument.
16681         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Adjust
16682         documentation of scalar_test_data_class, scalar_test_neg,
16683         scalar_extract_sig, scalar_extract_exp, scalar_insert_exp,
16684         vector_extract_exp, vec_extract_sig, vec_insert_exp, and
16685         vec_test_data_class built-in functions to reflect refinements in
16686         their type signatures.
16688 2017-01-23  Andreas Tobler  <andreast@gcc.gnu.org>
16690         * config/aarch64/aarch64.c (aarch64_elf_asm_constructor): Increase
16691         size of buf.
16692         (aarch64_elf_asm_destructor): Likewise.
16694 2017-01-23  Bernd Schmidt  <bschmidt@redhat.com>
16696         PR rtl-optimization/78634
16697         * config/i386/i386.c (ix86_max_noce_ifcvt_seq_cost): New function.
16698         (TARGET_MAX_NOCE_IFCVT_SEQ_COST): Define.
16699         * ifcvt.c (noce_try_cmove): Add missing cost check.
16701         PR rtl-optimization/71724
16702         * combine.c (if_then_else_cond): Look for situations where it is
16703         beneficial to undo the work of one of the recursive calls.
16705 2017-01-23  Bin Cheng  <bin.cheng@arm.com>
16707         PR tree-optimization/70754
16708         * tree-predcom.c (stmt_combining_refs): New parameter INSERT_BEFORE.
16709         (reassociate_to_the_same_stmt): New parameter INSERT_BEFORE.  Insert
16710         combined stmt before it if not NULL.
16711         (combine_chains): Process refs reversely and compute dominance point
16712         for root ref.
16714 2017-01-23  Martin Liska  <mliska@suse.cz>
16716         PR tree-optimization/79196
16717         * tree-ssa-strlen.c (fold_strstr_to_memcmp): Rename to ...
16718         (fold_strstr_to_strncmp): ... this.  Fold the pattern to strncmp
16719         instead of memcmp.
16720         (strlen_optimize_stmt): Call the renamed function.
16722 2017-01-23  Michael Matz  <matz@suse.de>
16724         PR tree-optimization/78384
16725         * tree-ssa-loop-split.c (patch_loop_exit): Use correct edge.
16727 2017-01-23  Richard Biener  <rguenther@suse.de>
16729         PR tree-optimization/79186
16730         * tree-vrp.c (register_new_assert_for): Make sure we've seen
16731         both incoming edges before moving an assert.
16733 2017-01-23  Martin Jambor  <mjambor@suse.cz>
16735         * ipa-prop.c (load_from_param_1): Removed.
16736         (load_from_unmodified_param): Bits from load_from_param_1 put back
16737         here.
16738         (load_from_param): Removed.
16739         (compute_complex_assign_jump_func): Removed stmt2 and just replaced it
16740         with stmt.  Reverted back to use of load_from_unmodified_param.
16742 2017-01-23  Martin Jambor  <mjambor@suse.cz>
16744         PR ipa/79108
16745         * ipa-prop.h (ipa_param_descriptor): Anotate with with GTY(()).
16746         (ipa_node_params): Annotate with GTY((for_user)).  Make descriptors
16747         field a pointer to garbage collected vector, mark lattices and
16748         ipcp_orig_node with GTY((skip)).
16749         (ipa_get_param_count): Adjust to descriptors being a pointer.
16750         (ipa_get_param): Likewise.
16751         (ipa_get_type): Likewise.
16752         (ipa_get_param_move_cost): Likewise.
16753         (ipa_set_param_used): Likewise.
16754         (ipa_get_controlled_uses): Likewise.
16755         (ipa_set_controlled_uses): Likewise.
16756         (ipa_is_param_used): Likewise.
16757         (ipa_node_params_t): Move into garbage collector.  New methods insert
16758         and remove.
16759         (ipa_node_params_sum): Annotate wth GTY(()).
16760         (ipa_check_create_node_params): Adjust to ipa_node_params_sum being
16761         garbage collected.
16762         (ipa_load_from_parm_agg): Adjust declaration.
16763         * ipa-icf.c (param_used_p): Adjust to descriptors being a pointer.
16764         * ipa-profile.c (ipa_profile): Likewise.
16765         * ipa-prop.c (ipa_get_param_decl_index_1): Likewise.
16766         (ipa_populate_param_decls): Make descriptors parameter garbage
16767         collected.
16768         (ipa_dump_param): Adjust to descriptors being a pointer.
16769         (ipa_alloc_node_params): Likewise.
16770         (ipa_initialize_node_params): Likewise.
16771         (load_from_param_1): Make descriptors parameter garbage collected.
16772         (load_from_unmodified_param): Likewise.
16773         (load_from_param): Likewise.
16774         (ipa_load_from_parm_agg): Likewise.
16775         (ipa_node_params::~ipa_node_params): Removed.
16776         (ipa_free_all_node_params): Remove call to delete operator.
16777         (ipa_node_params_t::insert): New.
16778         (ipa_node_params_t::remove): Likewise.
16779         (ipa_node_params_t::duplicate): Adjust to descriptors being a pointer,
16780         copy known_csts and known_contexts vectors.
16781         (ipa_read_node_info): Adjust to descriptors being a pointer.
16782         (ipcp_modif_dom_walker): Make m_descriptors field garbage
16783         collected.
16784         (ipcp_transform_function): Make descriptors variable garbage
16785         collected.
16787 2017-01-23  Andrew Senkevich  <andrew.senkevich@intel.com>
16789         * config/i386/avx512bwintrin.h: Add k-mask test, kortest intrinsics.
16790         * config/i386/avx512dqintrin.h: Ditto.
16791         * config/i386/avx512fintrin.h: Ditto.
16792         * config/i386/i386.c: Handle new builtins.
16793         * config/i386/i386-builtin.def: Add new builtins.
16794         * config/i386/sse.md (ktest<mode>, kortest<mode>): New.
16795         (UNSPEC_KORTEST, UNSPEC_KTEST): New.
16797 2017-01-23  Jakub Jelinek  <jakub@redhat.com>
16798             Martin Liska  <mliska@suse.cz>
16800         * asan.h: Define ASAN_USE_AFTER_SCOPE_ATTRIBUTE.
16801         * asan.c (asan_expand_poison_ifn): Support stores and use
16802         appropriate ASAN report function.
16803         * internal-fn.c (expand_ASAN_POISON_USE): New function.
16804         * internal-fn.def (ASAN_POISON_USE): Declare.
16805         * tree-into-ssa.c (maybe_add_asan_poison_write): New function.
16806         (maybe_register_def): Create ASAN_POISON_USE when sanitizing.
16807         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Remove
16808         ASAN_POISON calls w/o LHS.
16809         * tree-ssa.c (execute_update_addresses_taken): Create clobber
16810         for ASAN_MARK (UNPOISON, &x, ...) in order to prevent usage of a LHS
16811         from ASAN_MARK (POISON, &x, ...) coming to a PHI node.
16812         * gimplify.c (asan_poison_variables): Add attribute
16813         use_after_scope_memory to variables that really needs to live
16814         in memory.
16815         * tree-ssa.c (is_asan_mark_p): Do not rewrite into SSA when
16816         having the attribute.
16818 2017-01-23  Martin Liska  <mliska@suse.cz>
16820         * asan.c (create_asan_shadow_var): New function.
16821         (asan_expand_poison_ifn): Likewise.
16822         * asan.h (asan_expand_poison_ifn): New declaration.
16823         * internal-fn.c (expand_ASAN_POISON): Likewise.
16824         * internal-fn.def (ASAN_POISON): New builtin.
16825         * sanopt.c (pass_sanopt::execute): Expand
16826         asan_expand_poison_ifn.
16827         * tree-inline.c (copy_decl_for_dup_finish): Make function
16828         external.
16829         * tree-inline.h (copy_decl_for_dup_finish): Likewise.
16830         * tree-ssa.c (is_asan_mark_p): New function.
16831         (execute_update_addresses_taken): Rewrite local variables
16832         (identified just by use-after-scope as addressable) into SSA.
16834 2017-01-22  Gerald Pfeifer  <gerald@pfeifer.com>
16836         * doc/install.texi (Specific): opensource.apple.com uses https
16837         now. Remove trailing slash.
16839 2017-01-22  Gerald Pfeifer  <gerald@pfeifer.com>
16841         * README.Portability: Remove note on an Irix compatibility issue.
16843 2017-01-22  Dimitry Andric <dim@FreeBSD.org>
16845         * gcov.c (INCLUDE_ALGORITHM): Define.
16846         (INCLUDE_VECTOR): Define.
16847         No longer include <vector> and <algorithm> directly.
16849 2017-01-21  Gerald Pfeifer  <gerald@pfeifer.com>
16851         * doc/extend.texi (Thread-Local): Change www.akkadia.org reference
16852         to https.
16853         * doc/invoke.texi (Code Gen Options): Ditto.
16855 2017-01-21  Jan Hubicka  <hubicka@ucw.cz>
16857         PR lto/78407
16858         * cfg.c (update_bb_profile_for_threading): Fix updating of probablity.
16860 2017-01-21  Bernd Schmidt  <bschmidt@redhat.com>
16862         rtl-optimization/79125
16863         * cprop.c (local_cprop_pass): Handle cases where we make an
16864         unconditional trap.
16866 2017-01-20  Segher Boessenkool  <segher@kernel.crashing.org>
16868         PR target/61729
16869         PR target/77850
16870         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Adjust address to
16871         read from, for big endian.
16873 2017-01-20  Jiong Wang  <jiong.wang@arm.com>
16875         * config/aarch64/aarch64-builtins.c (aarch64_init_builtins): Register
16876         register pauth builtins for LP64 only.
16878 2017-01-20  Marek Polacek  <polacek@redhat.com>
16880         PR c/79152
16881         * gimplify.c (should_warn_for_implicit_fallthrough): Handle consecutive
16882         non-case labels.
16884 2017-01-20  Alexander Monakov  <amonakov@ispras.ru>
16886         * omp-expand.c (expand_omp_simd): Clear PROP_gimple_lomp_dev regardless
16887         of safelen status.
16888         * omp-offload.c (pass_omp_device_lower::gate): Use PROP_gimple_lomp_dev.
16889         * passes.c (dump_properties): Handle PROP_gimple_lomp_dev.
16890         * tree-inline.c (expand_call_inline): Propagate PROP_gimple_lomp_dev.
16892 2017-01-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16894         PR target/71270
16895         * config/arm/arm.c (neon_valid_immediate): Reject vector constants
16896         in big-endian mode when they are not a single duplicated value.
16898 2017-01-20  Richard Biener  <rguenther@suse.de>
16900         * BASE-VER: Bump to 7.0.1.
16902 2017-01-20  Alexander Monakov  <amonakov@ispras.ru>
16904         * omp-low.c (omplow_simd_context): New struct.  Use it...
16905         (lower_rec_simd_input_clauses): ...here and...
16906         (lower_rec_input_clauses): ...here to hold common data.  Adjust all
16907         references to idx, lane, max_vf, is_simt.
16909 2017-01-20  Graham Markall  <graham.markall@embecosm.com>
16911         * config/arc/arc.h (LINK_SPEC): Use arclinux_nps emulation when
16912         mcpu=nps400.
16914 2017-01-20  Martin Jambor  <mjambor@suse.cz>
16916         * hsa.h: Renaed to hsa-common.h.  Adjusted a comment.
16917         * hsa.c: Renaed to hsa-common.c.  Change include of gt-hsa.h to
16918         gt-hsa-common.h.
16919         * Makefile.in (OBJS): Rename hsa.o to hsa-common.o.
16920         (GTFILES): Rename hsa.c to hsa-common.c.
16921         * hsa-brig.c: Change include of hsa.h to hsa-common.h.
16922         * hsa-dump.c: Likewise.
16923         * hsa-gen.c: Likewise.
16924         * hsa-regalloc.c: Likewise.
16925         * ipa-hsa.c: Likewise.
16926         * omp-expand.c: Likewise.
16927         * omp-low.c: Likewise.
16928         * toplev.c: Likewise.
16930 2017-01-20  Marek Polacek  <polacek@redhat.com>
16932         PR c/64279
16933         * doc/invoke.texi: Document -Wduplicated-branches.
16934         * fold-const.c (operand_equal_p): Handle MODIFY_EXPR, INIT_EXPR,
16935         COMPOUND_EXPR, PREDECREMENT_EXPR, PREINCREMENT_EXPR,
16936         POSTDECREMENT_EXPR, POSTINCREMENT_EXPR, CLEANUP_POINT_EXPR, EXPR_STMT,
16937         STATEMENT_LIST, and RETURN_EXPR.  For non-pure non-const functions
16938         return 0 only when not OEP_LEXICOGRAPHIC.
16939         (fold_build_cleanup_point_expr): Use the expression
16940         location when building CLEANUP_POINT_EXPR.
16941         * tree-core.h (enum operand_equal_flag): Add OEP_LEXICOGRAPHIC.
16942         * tree.c (add_expr): Handle error_mark_node.
16944 2017-01-20  Martin Liska  <mliska@suse.cz>
16946         PR lto/69188
16947         * tree-profile.c (init_ic_make_global_vars): Do not call
16948         finalize_decl.
16949         (gimple_init_gcov_profiler): Likewise.
16951 2017-01-20  Martin Liska  <mliska@suse.cz>
16953         PR ipa/71190
16954         * cgraph.h (maybe_create_reference): Remove argument and
16955         update comment.
16956         * cgraphclones.c (cgraph_node::create_virtual_clone): Remove one
16957         argument.
16958         * ipa-cp.c (create_specialized_node): Likewise.
16959         * symtab.c (symtab_node::maybe_create_reference): Handle
16960         VAR_DECLs and ADDR_EXPRs and select ipa_ref_use type.
16962 2017-01-20  Martin Liska  <mliska@suse.cz>
16964         * read-rtl-function.c (function_reader::create_function): Use
16965         build_decl instread of build_decl_stat.
16967 2017-01-20  Andrew Senkevich  <andrew.senkevich@intel.com>
16969         * config/i386/avx512bwintrin.h: Add k-mask registers shift intrinsics.
16970         * config/i386/avx512dqintrin.h: Ditto.
16971         * config/i386/avx512fintrin.h: Ditto.
16972         * config/i386/i386-builtin-types.def: Add new types.
16973         * config/i386/i386.c: Handle new types.
16974         * config/i386/i386-builtin.def (__builtin_ia32_kshiftliqi)
16975         (__builtin_ia32_kshiftlihi, __builtin_ia32_kshiftlisi)
16976         (__builtin_ia32_kshiftlidi, __builtin_ia32_kshiftriqi)
16977         (__builtin_ia32_kshiftrihi, __builtin_ia32_kshiftrisi)
16978         (__builtin_ia32_kshiftridi): New.
16979         * config/i386/sse.md (k<code><mode>): Rename *k<code><mode>.
16981 2017-01-19  Segher Boessenkool  <segher@kernel.crashing.org>
16983         PR target/78875
16984         PR target/79140
16985         * config/rs6000/rs6000.c (TARGET_STACK_PROTECT_GUARD): Unconditionally
16986         define to rs6000_init_stack_protect_guard.
16987         (rs6000_init_stack_protect_guard): New function.
16989 2017-01-19  Matthew Fortune  <matthew.fortune@imgtec.com>
16990             Yunqiang Su  <yunqiang.su@imgtec.com>
16992         * config.gcc (supported_defaults): Add madd4.
16993         (with_madd4): Add validation.
16994         (all_defaults): Add madd4.
16995         * config/mips/mips.opt (mmadd4): New option.
16996         * config/mips/mips.h (OPTION_DEFAULT_SPECS): Add a default for
16997         mmadd4.
16998         (TARGET_CPU_CPP_BUILTINS): Add builtin_define for
16999         __mips_no_madd4.
17000         (ISA_HAS_UNFUSED_MADD4): Gate with mips_madd4.
17001         (ISA_HAS_FUSED_MADD4): Likewise.
17002         * doc/invoke.texi (-mmadd4): Document the new option.
17003         * doc/install.texi (--with-madd4): Document the new option.
17005 2017-01-19  Jiong Wang  <jiong.wang@arm.com>
17007         * config/aarch64/aarch64-builtins.c (enum aarch64_builtins): New
17008         entries for AARCH64_PAUTH_BUILTIN_XPACLRI,
17009         AARCH64_PAUTH_BUILTIN_PACIA1716, AARCH64_PAUTH_BUILTIN_AUTIA1716.
17010         (aarch64_init_pauth_hint_builtins): New.
17011         (aarch64_init_builtins): Call aarch64_init_pauth_hint_builtins.
17012         (aarch64_expand_builtin): Expand new builtins.
17014 2017-01-19  Jiong Wang  <jiong.wang@arm.com>
17016         * reg-notes.def (CFA_TOGGLE_RA_MANGLE): New reg-note.
17017         * combine-stack-adj.c (no_unhandled_cfa): Handle
17018         REG_CFA_TOGGLE_RA_MANGLE.
17019         * dwarf2cfi.c (dwarf2out_frame_debug): Handle REG_CFA_TOGGLE_RA_MANGLE.
17020         * config/aarch64/aarch64.c (aarch64_expand_prologue): Generates DWARF
17021         info for return address signing.
17022         (aarch64_expand_epilogue): Likewise.
17024 2017-01-19  Jiong Wang  <jiong.wang@arm.com>
17026         * config/aarch64/aarch64-opts.h (aarch64_function_type): New enum.
17027         * config/aarch64/aarch64-protos.h
17028         (aarch64_return_address_signing_enabled): New declaration.
17029         * config/aarch64/aarch64.c (aarch64_return_address_signing_enabled):
17030         New function.
17031         (aarch64_expand_prologue): Sign return address before it's pushed onto
17032         stack.
17033         (aarch64_expand_epilogue): Authenticate return address fetched from
17034         stack.
17035         (aarch64_override_options): Sanity check for ILP32 and ISA level.
17036         (aarch64_attributes): New function attributes for "sign-return-address".
17037         * config/aarch64/aarch64.md (UNSPEC_AUTI1716, UNSPEC_AUTISP,
17038         UNSPEC_PACI1716, UNSPEC_PACISP, UNSPEC_XPACLRI): New unspecs.
17039         ("*do_return"): Generate combined instructions according to key index.
17040         ("<pauth_mnem_prefix>sp", "<pauth_mnem_prefix1716", "xpaclri"): New.
17041         * config/aarch64/iterators.md (PAUTH_LR_SP, PAUTH_17_16): New integer
17042         iterators.
17043         (pauth_mnem_prefix, pauth_hint_num_a): New integer attributes.
17044         * config/aarch64/aarch64.opt (msign-return-address=): New.
17045         * doc/extend.texi (AArch64 Function Attributes): Documents
17046         "sign-return-address=".
17047         * doc/invoke.texi (AArch64 Options): Documents "-msign-return-address=".
17049 2017-01-19  Matthew Fortune  <matthew.fortune@imgtec.com>
17051         * doc/invoke.texi: Add missing -mlxc1-sxc1 options to
17052         overall option summary.
17054 2017-01-19  Jiong Wang  <jiong.wang@arm.com>
17056         * config/aarch64/aarch64-arches.def: New entry for "armv8.3-a".
17057         * config/aarch64/aarch64.h (AARCH64_FL_V8_3, AARCH64_FL_FOR_ARCH8_3,
17058         AARCH64_ISA_V8_3, TARGET_ARMV8_3): New.
17059         * doc/invoke.texi (AArch64 Options): Document "armv8.3-a".
17061 2017-01-19  Michael Meissner  <meissner@linux.vnet.ibm.com>
17063         * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Enable
17064         -mpower9-minmax by default for -mcpu=power9.
17065         (ISA_3_MASKS_IEEE): Require -mvsx-small-integer to enable IEEE
17066         128-bit floating point.
17068 2017-01-20  Alan Modra  <amodra@gmail.com>
17070         * config/rs6000/rs6000.md (cmpstrnsi, cmpstrsi): Fail if
17071         optimizing for size.
17073 2017-01-20  Alan Modra  <amodra@gmail.com>
17075         PR target/79144
17076         * config/rs6000/rs6000.c (expand_strn_compare): Get the asm name
17077         for strcmp and strncmp from corresponding builtin decl.
17079 2017-01-19  Uros Bizjak  <ubizjak@gmail.com>
17081         * config.gcc (x86_64-*-rtems*): Use i386/rtemself.h
17082         instead of i386/rtems-64.h.
17083         * config/i386/rtems-64.h: Remove.
17085 2017-01-19  Uros Bizjak  <ubizjak@gmail.com>
17087         PR target/78478
17088         Revert:
17089         2013-11-05  Uros Bizjak  <ubizjak@gmail.com>
17091         * config/i386/rtemself.h (LONG_DOUBLE_TYPE_SIZE): New define.
17093 2017-01-19  Tamar Christina  <tamar.christina@arm.com>
17095         * config/aarch64/aarch64.c (aarch64_simd_gen_const_vector_dup):
17096         Change int to HOST_WIDE_INT.
17097         * config/aarch64/aarch64-protos.h
17098         (aarch64_simd_gen_const_vector_dup): Likewise.
17099         * config/aarch64/aarch64-simd.md: Add copysign<mode>3.
17101 2017-01-19  David Malcolm  <dmalcolm@redhat.com>
17103         * langhooks-def.h (lhd_type_for_size): New decl.
17104         (LANG_HOOKS_TYPE_FOR_SIZE): Define as lhd_type_for_size.
17105         * langhooks.c (lhd_type_for_size): New function, taken from
17106         lto_type_for_size.
17108 2017-01-19  Pat Haugen  <pthaugen@us.ibm.com>
17110         * config/rs6000/power9.md (power9-alu): Remove 'cmp' type and add
17111         define_bypass for CR latency.
17112         (power9-cracked-alu): Update bypass latency and remove power9-branch.
17113         (power9-alu2): Add define_bypass for CR latency.
17114         (power9-cmp): New.
17115         (power9-mul): Update insn latency.
17116         (power9-mul-compare): Update insn latency, bypass latency and remove
17117         power9-branch.
17119 2016-01-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17121         * config/aarch64/aarch64-protos.h (aarch64_nopcrelative_literal_loads):
17122         Delete.
17123         * config/aarch64/aarch64.md
17124         (aarch64_reload_movcp<GPF_TF:mode><P:mode>): Delete reference to
17125         aarch64_nopcrelative_literal_loads.
17126         (aarch64_reload_movcp<VALL:mode><P:mode>): Likewise.
17128 2017-01-19  Chenghua Xu  <paul.hua.gm@gmail.com>
17130         * config/mips/mips.h (ISA_HAS_FUSED_MADD4): Enable for
17131         TARGET_LOONGSON_3A.
17132         (ISA_HAS_UNFUSED_MADD4): Exclude TARGET_LOONGSON_3A.
17134 2017-01-19  Doug Gilmore  <doug.gilmore@imgtec.com>
17136         PR target/78176
17137         * config.gcc (supported_defaults): Add lxc1-sxc1.
17138         (with_lxc1_sxc1): Add validation.
17139         (all_defaults): Add lxc1-sxc1.
17140         * config/mips/mips.opt (mlxc1-sxc1): New option.
17141         * config/mips/mips.h (OPTION_DEFAULT_SPECS): Add a default for
17142         mlxc1-sxc1.
17143         (TARGET_CPU_CPP_BUILTINS): Add builtin_define for
17144         __mips_no_lxc1_sxc1.
17145         (ISA_HAS_LXC1_SXC1): Gate with mips_lxc1_sxc1.
17146         * doc/invoke.texi (-mlxc1-sxc1): Document the new option.
17147         * doc/install.texi (--with-lxc1-sxc1): Document the new option.
17149 2017-01-19  Richard Biener  <rguenther@suse.de>
17151         PR tree-optimization/72488
17152         * tree-ssa-sccvn.c (run_scc_vn): When we abort the VN make
17153         sure to restore SSA info.
17154         * tree-ssa.c (verify_ssa): Verify SSA info is not shared.
17156 2017-01-19  Richard Earnshaw  <rearnsha@arm.com>
17158         PR rtl-optimization/79121
17159         * expr.c (expand_expr_real_2, case LSHIFT_EXPR): Look at the signedness
17160         of the inner type when shifting an extended value.
17162 2017-01-17  Jan Hubicka  <hubicka@ucw.cz>
17164         PR lto/78407
17165         * symtab.c (symtab_node::equal_address_to): Fix comparing of
17166         interposable aliases.
17168 2017-01-18  Peter Bergner  <bergner@vnet.ibm.com>
17170         PR target/78516
17171         * config/rs6000/spe.md (mov_si<mode>_e500_subreg0): Fix constraints.
17172         Use the evmergelohi instruction.
17173         (mov_si<mode>_e500_subreg4_2_le): Likewise.
17174         (mov_sitf_e500_subreg8_2_be): Likewise.
17175         (mov_sitf_e500_subreg12_2_le): Likewise.
17176         (mov_si<mode>_e500_subreg0_2_le): Fix constraints.
17177         (mov_si<mode>_e500_subreg4_2_be): Likewise.
17178         (mov_sitf_e500_subreg8_2_le): Likewise.
17179         (mov_sitf_e500_subreg12_2_be): Likewise.
17181 2017-01-18  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
17183         * config/rs6000/altivec.md (altivec_vbpermq): Change "type"
17184         attribute from vecsimple to vecperm.
17185         (altivec_vbpermq2): Likewise.
17187 2017-01-18  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
17189         PR target/79040
17190         * config/rs6000/altivec.h: Fix typo of vec_cntlz to vec_cnttz.
17192 2017-01-18  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
17193         * config/rs6000/rs6000-protos.h (expand_strn_compare): Add arg.
17194         * config/rs6000/rs6000.c (expand_strn_compare): Add ability to expand
17195         strcmp. Fix bug where comparison didn't stop with zero byte. Fix
17196         case where N arg is SIZE_MAX.
17197         * config/rs6000/rs6000.md (cmpstrnsi): Args to expand_strn_compare.
17198         (cmpstrsi): Add pattern.
17200 2017-01-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
17202         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
17203         __builtin_vec_revb builtins.
17204         * config/rs6000/rs6000-builtins.def (P9V_BUILTIN_XXBRQ_V16QI): Add
17205         built-in functions to support generation of the ISA 3.0 XXBR<x>
17206         vector byte reverse instructions.
17207         (P9V_BUILTIN_XXBRQ_V1TI): Likewise.
17208         (P9V_BUILTIN_XXBRD_V2DI): Likewise.
17209         (P9V_BUILTIN_XXBRD_V2DF): Likewise.
17210         (P9V_BUILTIN_XXBGW_V4SI): Likewise.
17211         (P9V_BUILTIN_XXBGW_V4SF): Likewise.
17212         (P9V_BUILTIN_XXBGH_V8HI): Likewise.
17213         (P9V_BUILTIN_VEC_REVB): Likewise.
17214         * config/rs6000/vsx.md (p9_xxbrq_v1ti): New insns/expanders to
17215         generate the ISA 3.0 XXBR<x> vector byte reverse instructions.
17216         (p9_xxbrq_v16qi): Likewise.
17217         (p9_xxbrd_<mode>, VSX_D iterator): Likewise.
17218         (p9_xxbrw_<mode>, VSX_W iterator): Likewise.
17219         (p9_xxbrh_v8hi): Likewise.
17220         * config/rs6000/altivec.h (vec_revb): Define if ISA 3.0.
17221         * doc/extend.texi (RS/6000 Altivec Built-ins): Document the
17222         vec_revb built-in functions.
17224 2017-01-18  Uros Bizjak  <ubizjak@gmail.com>
17226         PR rtl-optimization/78952
17227         * config/i386/i386.md (any_extract): New code iterator.
17228         (*insvqi_2): Use any_extract for source operand.
17229         (*insvqi_3): Use any_shiftrt for source operand.
17231 2017-01-18  Wilco Dijkstra  <wdijkstr@arm.com>
17233         * config/aarch64/aarch64.c (aarch64_sched_adjust_priority)
17234         New function.
17235         (TARGET_SCHED_ADJUST_PRIORITY): Define target hook.
17237 2017-01-18  Matthias Klose  <doko@ubuntu.com>
17239         * doc/install.texi: Allow default for --with-target-bdw-gc-include.
17241 2016-01-18  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
17243         * config/rs6000/altivec.h (vec_bperm): Change #define.
17244         * config/rs6000/altivec.md (UNSPEC_VBPERMD): New enum constant.
17245         (altivec_vbpermq2): New define_insn.
17246         (altivec_vbpermd): Likewise.
17247         * config/rs6000/rs6000-builtin.def (VBPERMQ2): New monomorphic
17248         function interface.
17249         (VBPERMD): Likewise.
17250         (VBPERM): New polymorphic function interface.
17251         * config/rs6000/r6000-c.c (altivec_overloaded_builtins_table):
17252         Add entries for P9V_BUILTIN_VEC_VBPERM.
17253         * doc/extend.texi: Add interfaces for vec_bperm.
17255 2017-01-18  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
17257         * config/s390/s390-c.c (s390_expand_overloaded_builtin): Downcase
17258         first letter of error messages.
17259         (s390_resolve_overloaded_builtin): Likewise.
17260         * config/s390/s390.c (s390_expand_builtin): Likewise.
17261         (s390_invalid_arg_for_unprototyped_fn): Likewise.
17262         (s390_valid_target_attribute_inner_p): Likewise.
17263         * config/s390/s390.md ("tabort"): Likewise.
17265 2017-01-18  Toma Tabacu  <toma.tabacu@imgtec.com>
17267         * config/mips/mips.h (ISA_HAS_DIV3): Remove unused macro.
17268         (ISA_AVOID_DIV_HILO): New macro.
17269         (ISA_HAS_DIV): Use new ISA_AVOID_DIV_HILO macro.
17270         (ISA_HAS_DDIV): Likewise.
17272 2017-01-18  Markus Trippelsdorf  <markus@trippelsdorf.de>
17274         * doc/invoke.texi (fabi-version): Correct number of occurrences.
17276 2017-01-18  Markus Trippelsdorf  <markus@trippelsdorf.de>
17278         * doc/invoke.texi (fabi-version): Spelling fix.
17280 2017-01-18  Markus Trippelsdorf  <markus@trippelsdorf.de>
17282         PR c++/70182
17283         * doc/invoke.texi (fabi-version): Mention mangling fix for
17284         operator names.
17286 2017-01-18  Markus Trippelsdorf  <markus@trippelsdorf.de>
17288         PR c++/77489
17289         * doc/invoke.texi (fabi-version): Document discriminator mangling.
17291 2017-01-17  Segher Boessenkool  <segher@kernel.crashing.org>
17293         PR target/78875
17294         * config/rs6000/rs6000-opts.h (stack_protector_guard): New enum.
17295         * config/rs6000/rs6000.c (rs6000_option_override_internal): Handle
17296         the new options.
17297         * config/rs6000/rs6000.md (stack_protect_set): Handle the new more
17298         flexible settings.
17299         (stack_protect_test): Ditto.
17300         * config/rs6000/rs6000.opt (mstack-protector-guard=,
17301         mstack-protector-guard-reg=, mstack-protector-guard-offset=): New
17302         options.
17303         * doc/invoke.texi (Option Summary) [RS/6000 and PowerPC Options]:
17304         Add -mstack-protector-guard=, -mstack-protector-guard-reg=, and
17305         -mstack-protector-guard-offset=.
17306         (RS/6000 and PowerPC Options): Ditto.
17308 2017-01-17  Uros Bizjak  <ubizjak@gmail.com>
17310         * config/i386/i386.h (MASK_CLASS_P): New define.
17311         * config/i386/i386.c (inline_secondary_memory_needed): Ensure that
17312         there are no registers from different register sets also when
17313         mask registers are used.  Update function comment.
17314         * config/i386/i386.md (*movsi_internal): Split (*k/*krm) alternative
17315         to (*k/*r) and (*k/*km) alternatives.
17317 2017-01-17  Wilco Dijkstra  <wdijkstr@arm.com>
17319         * config/aarch64/aarch64.md (eh_return): Remove pattern and splitter.
17320         * config/aarch64/aarch64.h (AARCH64_EH_STACKADJ_REGNUM): Remove.
17321         (EH_RETURN_HANDLER_RTX): New define.
17322         * config/aarch64/aarch64.c (aarch64_frame_pointer_required):
17323         Force frame pointer in EH return functions.
17324         (aarch64_expand_epilogue): Add barrier for eh_return.
17325         (aarch64_final_eh_return_addr): Remove.
17326         (aarch64_eh_return_handler_rtx): New function.
17327         * config/aarch64/aarch64-protos.h (aarch64_final_eh_return_addr):
17328         Remove.
17329         (aarch64_eh_return_handler_rtx): New prototype.
17331 2017-01-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
17333         * config/rs6000/altivec.h (vec_rlmi): New #define.
17334         (vec_vrlnm): Likewise.
17335         (vec_rlnm): Likewise.
17336         * config/rs6000/altivec.md (UNSPEC_VRLMI): New UNSPEC enum value.
17337         (UNSPEC_VRLNM): Likewise.
17338         (VIlong): New mode iterator.
17339         (altivec_vrl<VI_char>mi): New define_insn.
17340         (altivec_vrl<VI_char>nm): Likewise.
17341         * config/rs6000/rs6000-builtin.def (VRLWNM): New monomorphic
17342         function entry.
17343         (VRLDNM): Likewise.
17344         (RLNM): New polymorphic function entry.
17345         (VRLWMI): New monomorphic function entry.
17346         (VRLDMI): Likewise.
17347         (RLMI): New polymorphic function entry.
17348         * config/rs6000/r6000-c.c (altivec_overloaded_builtin_table): Add
17349         new entries for P9V_BUILTIN_VEC_RLMI and P9V_BUILTIN_VEC_RLNM.
17350         * doc/extend.texi: Add description of vec_rlmi, vec_rlnm, and
17351         vec_vrlnm.
17353 2017-01-17  Jakub Jelinek  <jakub@redhat.com>
17355         PR debug/78839
17356         * dwarf2out.c (field_byte_offset): Restore the
17357         PCC_BITFIELD_TYPE_MATTERS behavior for INTEGER_CST DECL_FIELD_OFFSET
17358         and DECL_FIELD_BIT_OFFSET.  Use fold_build2 instead of build2 + fold.
17359         (analyze_variants_discr, gen_variant_part): Use fold_build2 instead
17360         of build2 + fold.
17362 2017-01-17  Eric Botcazou  <ebotcazou@adacore.com>
17364         PR ada/67205
17365         * config/aarch64/aarch64.c (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Define
17367 2017-01-17  Jakub Jelinek  <jakub@redhat.com>
17369         PR debug/71669
17370         * dwarf2out.c (add_data_member_location_attribute): For constant
17371         offset bitfield emit for -gdwarf-5 DW_AT_data_bit_offset attribute
17372         instead of DW_AT_data_member_location, DW_AT_bit_offset and
17373         DW_AT_byte_size attributes.
17375 2017-01-17  Eric Botcazou  <ebotcazou@adacore.com>
17377         * config/rs6000/rs6000.c (rs6000_emit_move): Also use a TOC reference
17378         after forcing to constant memory when the code model is medium.
17380 2017-01-17  Julia Koval  <julia.koval@intel.com>
17382         PR target/76731
17383         * config/i386/avx512fintrin.h
17384         (_mm512_i32gather_ps): Change __addr type to void const*.
17385         (_mm512_mask_i32gather_ps): Ditto.
17386         (_mm512_i32gather_pd): Ditto.
17387         (_mm512_mask_i32gather_pd): Ditto.
17388         (_mm512_i64gather_ps): Ditto.
17389         (_mm512_mask_i64gather_ps): Ditto.
17390         (_mm512_i64gather_pd): Ditto.
17391         (_mm512_mask_i64gather_pd): Ditto.
17392         (_mm512_i32gather_epi32): Ditto.
17393         (_mm512_mask_i32gather_epi32): Ditto.
17394         (_mm512_i32gather_epi64): Ditto.
17395         (_mm512_mask_i32gather_epi64): Ditto.
17396         (_mm512_i64gather_epi32): Ditto.
17397         (_mm512_mask_i64gather_epi32): Ditto.
17398         (_mm512_i64gather_epi64): Ditto.
17399         (_mm512_mask_i64gather_epi64): Ditto.
17400         (_mm512_i32scatter_ps): Change __addr type to void*.
17401         (_mm512_mask_i32scatter_ps): Ditto.
17402         (_mm512_i32scatter_pd): Ditto.
17403         (_mm512_mask_i32scatter_pd): Ditto.
17404         (_mm512_i64scatter_ps): Ditto.
17405         (_mm512_mask_i64scatter_ps): Ditto.
17406         (_mm512_i64scatter_pd): Ditto.
17407         (_mm512_mask_i64scatter_pd): Ditto.
17408         (_mm512_i32scatter_epi32): Ditto.
17409         (_mm512_mask_i32scatter_epi32): Ditto.
17410         (_mm512_i32scatter_epi64): Ditto.
17411         (_mm512_mask_i32scatter_epi64): Ditto.
17412         (_mm512_i64scatter_epi32): Ditto.
17413         (_mm512_mask_i64scatter_epi32): Ditto.
17414         (_mm512_i64scatter_epi64): Ditto.
17415         (_mm512_mask_i64scatter_epi64): Ditto.
17416         * config/i386/avx512pfintrin.h
17417         (_mm512_mask_prefetch_i32gather_pd): Change __addr type to void const*.
17418         (_mm512_mask_prefetch_i32gather_ps): Ditto.
17419         (_mm512_mask_prefetch_i64gather_pd): Ditto.
17420         (_mm512_mask_prefetch_i64gather_ps): Ditto.
17421         (_mm512_prefetch_i32scatter_pd): Change __addr type to void*.
17422         (_mm512_prefetch_i32scatter_ps): Ditto.
17423         (_mm512_mask_prefetch_i32scatter_pd): Ditto.
17424         (_mm512_mask_prefetch_i32scatter_ps): Ditto.
17425         (_mm512_prefetch_i64scatter_pd): Ditto.
17426         (_mm512_prefetch_i64scatter_ps): Ditto.
17427         (_mm512_mask_prefetch_i64scatter_pd): Ditto.
17428         (_mm512_mask_prefetch_i64scatter_ps): Ditto.
17429         * config/i386/avx512vlintrin.h
17430         (_mm256_mmask_i32gather_ps): Change __addr type to void const*.
17431         (_mm_mmask_i32gather_ps): Ditto.
17432         (_mm256_mmask_i32gather_pd): Ditto.
17433         (_mm_mmask_i32gather_pd): Ditto.
17434         (_mm256_mmask_i64gather_ps): Ditto.
17435         (_mm_mmask_i64gather_ps): Ditto.
17436         (_mm256_mmask_i64gather_pd): Ditto.
17437         (_mm_mmask_i64gather_pd): Ditto.
17438         (_mm256_mmask_i32gather_epi32): Ditto.
17439         (_mm_mmask_i32gather_epi32): Ditto.
17440         (_mm256_mmask_i32gather_epi64): Ditto.
17441         (_mm_mmask_i32gather_epi64): Ditto.
17442         (_mm256_mmask_i64gather_epi32): Ditto.
17443         (_mm_mmask_i64gather_epi32): Ditto.
17444         (_mm256_mmask_i64gather_epi64): Ditto.
17445         (_mm_mmask_i64gather_epi64): Ditto.
17446         (_mm256_i32scatter_ps): Change __addr type to void*.
17447         (_mm256_mask_i32scatter_ps): Ditto.
17448         (_mm_i32scatter_ps): Ditto.
17449         (_mm_mask_i32scatter_ps): Ditto.
17450         (_mm256_i32scatter_pd): Ditto.
17451         (_mm256_mask_i32scatter_pd): Ditto.
17452         (_mm_i32scatter_pd): Ditto.
17453         (_mm_mask_i32scatter_pd): Ditto.
17454         (_mm256_i64scatter_ps): Ditto.
17455         (_mm256_mask_i64scatter_ps): Ditto.
17456         (_mm_i64scatter_ps): Ditto.
17457         (_mm_mask_i64scatter_ps): Ditto.
17458         (_mm256_i64scatter_pd): Ditto.
17459         (_mm256_mask_i64scatter_pd): Ditto.
17460         (_mm_i64scatter_pd): Ditto.
17461         (_mm_mask_i64scatter_pd): Ditto.
17462         (_mm256_i32scatter_epi32): Ditto.
17463         (_mm256_mask_i32scatter_epi32): Ditto.
17464         (_mm_i32scatter_epi32): Ditto.
17465         (_mm_mask_i32scatter_epi32): Ditto.
17466         (_mm256_i32scatter_epi64): Ditto.
17467         (_mm256_mask_i32scatter_epi64): Ditto.
17468         (_mm_i32scatter_epi64): Ditto.
17469         (_mm_mask_i32scatter_epi64): Ditto.
17470         (_mm256_i64scatter_epi32): Ditto.
17471         (_mm256_mask_i64scatter_epi32): Ditto.
17472         (_mm_i64scatter_epi32): Ditto.
17473         (_mm_mask_i64scatter_epi32): Ditto.
17474         (_mm256_i64scatter_epi64): Ditto.
17475         (_mm256_mask_i64scatter_epi64): Ditto.
17476         (_mm_i64scatter_epi64): Ditto.
17477         (_mm_mask_i64scatter_epi64): Ditto.
17478         * config/i386/i386-builtin-types.def (V16SF_V16SF_PCFLOAT_V16SI_HI_INT)
17479         (V8DF_V8DF_PCDOUBLE_V8SI_QI_INT, V8SF_V8SF_PCFLOAT_V8DI_QI_INT)
17480         (V8DF_V8DF_PCDOUBLE_V8DI_QI_INT, V16SI_V16SI_PCINT_V16SI_HI_INT)
17481         (V8DI_V8DI_PCINT64_V8SI_QI_INT, V8SI_V8SI_PCINT_V8DI_QI_INT)
17482         (V8DI_V8DI_PCINT64_V8DI_QI_INT, V2DF_V2DF_PCDOUBLE_V4SI_QI_INT)
17483         (V4DF_V4DF_PCDOUBLE_V4SI_QI_INT, V2DF_V2DF_PCDOUBLE_V2DI_QI_INT)
17484         (V4DF_V4DF_PCDOUBLE_V4DI_QI_INT, V4SF_V4SF_PCFLOAT_V4SI_QI_INT)
17485         (V8SF_V8SF_PCFLOAT_V8SI_QI_INT, V4SF_V4SF_PCFLOAT_V2DI_QI_INT)
17486         (V4SF_V4SF_PCFLOAT_V4DI_QI_INT, V2DI_V2DI_PCINT64_V4SI_QI_INT)
17487         (V4DI_V4DI_PCINT64_V4SI_QI_INT, V2DI_V2DI_PCINT64_V2DI_QI_INT)
17488         (V4DI_V4DI_PCINT64_V4DI_QI_INT, V4SI_V4SI_PCINT_V4SI_QI_INT)
17489         (V8SI_V8SI_PCINT_V8SI_QI_INT, V4SI_V4SI_PCINT_V2DI_QI_INT)
17490         (V4SI_V4SI_PCINT_V4DI_QI_INT, VOID_PFLOAT_HI_V16SI_V16SF_INT)
17491         (VOID_PFLOAT_QI_V8SI_V8SF_INT, VOID_PFLOAT_QI_V4SI_V4SF_INT)
17492         (VOID_PDOUBLE_QI_V8SI_V8DF_INT, VOID_PDOUBLE_QI_V4SI_V4DF_INT)
17493         (VOID_PDOUBLE_QI_V4SI_V2DF_INT, VOID_PFLOAT_QI_V8DI_V8SF_INT)
17494         (VOID_PFLOAT_QI_V4DI_V4SF_INT, VOID_PFLOAT_QI_V2DI_V4SF_INT)
17495         (VOID_PDOUBLE_QI_V8DI_V8DF_INT, VOID_PDOUBLE_QI_V4DI_V4DF_INT)
17496         (VOID_PDOUBLE_QI_V2DI_V2DF_INT, VOID_PINT_HI_V16SI_V16SI_INT)
17497         (VOID_PINT_QI_V8SI_V8SI_INT, VOID_PINT_QI_V4SI_V4SI_INT)
17498         (VOID_PLONGLONG_QI_V8SI_V8DI_INT, VOID_PLONGLONG_QI_V4SI_V4DI_INT)
17499         (VOID_PLONGLONG_QI_V4SI_V2DI_INT, VOID_PINT_QI_V8DI_V8SI_INT)
17500         (VOID_PINT_QI_V4DI_V4SI_INT, VOID_PINT_QI_V2DI_V4SI_INT)
17501         (VOID_PLONGLONG_QI_V8DI_V8DI_INT, VOID_QI_V8SI_PCINT64_INT_INT)
17502         (VOID_PLONGLONG_QI_V4DI_V4DI_INT, VOID_PLONGLONG_QI_V2DI_V2DI_INT)
17503         (VOID_HI_V16SI_PCINT_INT_INT, VOID_QI_V8DI_PCINT64_INT_INT)
17504         (VOID_QI_V8DI_PCINT_INT_INT): Remove.
17505         (V16SF_V16SF_PCVOID_V16SI_HI_INT,  V8DF_V8DF_PCVOID_V8SI_QI_INT)
17506         (V8SF_V8SF_PCVOID_V8DI_QI_INT, V8DF_V8DF_PCVOID_V8DI_QI_INT)
17507         (V16SI_V16SI_PCVOID_V16SI_HI_INT, V8DI_V8DI_PCVOID_V8SI_QI_INT)
17508         (V8SI_V8SI_PCVOID_V8DI_QI_INT, V8DI_V8DI_PCVOID_V8DI_QI_INT)
17509         (VOID_PVOID_HI_V16SI_V16SF_INT, VOID_PVOID_QI_V8SI_V8DF_INT)
17510         (VOID_PVOID_QI_V8DI_V8SF_INT, VOID_PVOID_QI_V8DI_V8DF_INT)
17511         (VOID_PVOID_HI_V16SI_V16SI_INT, VOID_PVOID_QI_V8SI_V8DI_INT)
17512         (VOID_PVOID_QI_V8DI_V8SI_INT, VOID_PVOID_QI_V8DI_V8DI_INT)
17513         (V2DF_V2DF_PCVOID_V4SI_QI_INT, V4DF_V4DF_PCVOID_V4SI_QI_INT)
17514         (V2DF_V2DF_PCVOID_V2DI_QI_INT, V4DF_V4DF_PCVOID_V4DI_QI_INT
17515         (V4SF_V4SF_PCVOID_V4SI_QI_INT, V8SF_V8SF_PCVOID_V8SI_QI_INT)
17516         (V4SF_V4SF_PCVOID_V2DI_QI_INT, V4SF_V4SF_PCVOID_V4DI_QI_INT)
17517         (V2DI_V2DI_PCVOID_V4SI_QI_INT, V4DI_V4DI_PCVOID_V4SI_QI_INT)
17518         (V2DI_V2DI_PCVOID_V2DI_QI_INT, V4DI_V4DI_PCVOID_V4DI_QI_INT)
17519         (V4SI_V4SI_PCVOID_V4SI_QI_INT, V8SI_V8SI_PCVOID_V8SI_QI_INT)
17520         (V4SI_V4SI_PCVOID_V2DI_QI_INT, V4SI_V4SI_PCVOID_V4DI_QI_INT)
17521         (VOID_PVOID_QI_V8SI_V8SF_INT, VOID_PVOID_QI_V4SI_V4SF_INT)
17522         (VOID_PVOID_QI_V4SI_V4DF_INT, VOID_PVOID_QI_V4SI_V2DF_INT)
17523         (VOID_PVOID_QI_V4DI_V4SF_INT, VOID_PVOID_QI_V2DI_V4SF_INT)
17524         (VOID_PVOID_QI_V4DI_V4DF_INT, VOID_PVOID_QI_V2DI_V2DF_INT)
17525         (VOID_PVOID_QI_V8SI_V8SI_INT, VOID_PVOID_QI_V4SI_V4SI_INT)
17526         (VOID_PVOID_QI_V4SI_V4DI_INT, VOID_PVOID_QI_V4SI_V2DI_INT)
17527         (VOID_PVOID_QI_V4DI_V4SI_INT, VOID_PVOID_QI_V2DI_V4SI_INT)
17528         (VOID_PVOID_QI_V4DI_V4DI_INT, VOID_PVOID_QI_V2DI_V2DI_INT)
17529         (VOID_QI_V8SI_PCVOID_INT_INT, VOID_HI_V16SI_PCVOID_INT_INT)
17530         (VOID_QI_V8DI_PCVOID_INT_INT): Add.
17531         * config/i386/i386.c (ix86_init_mmx_sse_builtins): Adjust builtin
17532         definitions accordingly.
17534 2017-01-17  Kito Cheng  <kito.cheng@gmail.com>
17535             Kuan-Lin Chen  <kuanlinchentw@gmail.com>
17537         PR target/79079
17538         * internal-fn.c (expand_mul_overflow): Use convert_modes instead of
17539         gen_lowpart.
17541 2017-01-17  Vladimir Makarov  <vmakarov@redhat.com>
17543         PR target/79058
17544         * ira-conflicts.c (ira_build_conflicts): Update total conflict
17545         hard regs for inner regno.
17547 2017-01-17  Martin Liska  <mliska@suse.cz>
17549         PR ipa/71207
17550         * ipa-polymorphic-call.c (contains_type_p): Fix wrong
17551         assumption and add comment.
17553 2017-01-17  Nathan Sidwell  <nathan@acm.org>
17555         * ipa-visibility.c (localize_node): New function, broken out of ...
17556         (function_and_variable_visibility): ... here. Call it.
17558 2017-01-17  Jan Hubicka  <hubicka@ucw.cz>
17560         PR middle-end/77445
17561         * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges):
17562         correctly set frequency of oudgoing edge.
17563         (duplicate_thread_path): Fix profile updating.
17565 2017-01-17  Jakub Jelinek  <jakub@redhat.com>
17567         PR other/79046
17568         * configure.ac: Add GCC_BASE_VER.
17569         * Makefile.in (version): Use @get_gcc_base_ver@ instead of cat to get
17570         version from BASE-VER file.
17571         (CFLAGS-gcc.o): Add -DBASEVER=$(BASEVER_s).
17572         (gcc.o): Depend on $(BASEVER).
17573         * common.opt (dumpfullversion): New option.
17574         * gcc.c (driver_handle_option): Handle OPT_dumpfullversion.
17575         * doc/invoke.texi: Document -dumpfullversion.
17576         * doc/install.texi: Document --with-gcc-major-version-only.
17577         * configure: Regenerated.
17579 2017-01-17  Richard Biener  <rguenther@suse.de>
17581         PR tree-optimization/71433
17582         * tree-vrp.c (register_new_assert_for): Merge same asserts
17583         on all incoming edges.
17584         (process_assert_insertions_for): Handle insertions at the
17585         beginning of BBs.
17587 2017-01-17  Gerald Pfeifer  <gerald@pfeifer.com>
17589         * config/i386/cygwin.h (LIBGCJ_SONAME): Remove.
17590         * config/i386/mingw32.h (LIBGCJ_SONAME): Remove.
17592 2017-01-17  Kaz Kojima  <kkojima@gcc.gnu.org>
17594         PR target/78633
17595         * config/sh/sh.md (cmpeqsi_t+1): Call copy_rtx to avoid invalid
17596         RTL sharing.
17598 2017-01-17  Alan Modra  <amodra@gmail.com>
17600         PR target/79066
17601         * config/rs6000/rs6000.md (elf_high, elf_low): Disable when pic.
17602         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Don't allow
17603         symbolic stack limit when pic.
17605 2017-01-16  Martin Sebor  <msebor@redhat.com>
17607         PR tree-optimization/78608
17608         * gimple-ssa-sprintf.c (tree_digits): Avoid negating TYPE_MIN.
17610 2017-01-16  Jeff Law  <law@redhat.com>
17612         Revert:
17613         2016-12-02  Tadek Kijkowski  <tkijkowski@gmail.com>
17614         * Makefile.in (PREPROCESSOR_DEFINES): Add a level of indirection
17615         for several include directories that may be relative to sysroot.
17616         * config/i386/x-mingw32 (gplus_includedir): Define.
17617         (gplus_tool_includedir, gplus_backward_include_dir): Likewise.
17618         (native_system_includedir): Likewise.
17619         * config/i386/mingw32.h (STANDARD_STARTFILE_PREFIX_1): Do not
17620         override if TARGET_SYSTEM_ROOT is defined.
17621         (NATIVE_SYSTEM_HEADER_DIR): Likewise.
17623         PR tree-optimization/79090
17624         PR tree-optimization/33562
17625         PR tree-optimization/61912
17626         PR tree-optimization/77485
17627         * tree-ssa-dse.c (compute_trims): Accept STMT argument.  Dump STMT
17628         and computed trims into the dump file.
17630 2017-01-17  Uros Bizjak  <ubizjak@gmail.com>
17632         * config/i386/i386.h (LIMIT_RELOAD_CLASS): Remove.
17634 2017-01-16  Jakub Jelinek  <jakub@redhat.com>
17636         PR c/79089
17637         * gimplify.c (gimplify_init_constructor): If want_value and
17638         object == lhs, unshare lhs to avoid invalid tree sharing.  Formatting
17639         fix.
17641         PR target/79080
17642         * loop-doloop.c (doloop_modify): Call unshare_all_rtl_in_chain on
17643         sequence.  Formatting fixes.
17644         (doloop_optimize): Formatting fixes.
17646         PR driver/49726
17647         * gcc.c (debug_level_greater_than_spec_func): New function.
17648         (static_spec_functions): Add debug-level-gt spec function.
17649         (ASM_DEBUG_SPEC, cpp_options): Use %:debug-level-gt(0) instead of
17650         !g0.
17651         * config/darwin.h (DSYMUTIL_SPEC, ASM_DEBUG_SPEC): Likewise.
17652         * config/darwin9.h (DSYMUTIL_SPEC, ASM_DEBUG_SPEC): Likewise.
17653         * common.opt (g, gcoff, gdwarf, gdwarf-, ggdb, gno-pubnames,
17654         gpubnames, ggnu-pubnames, gno-record-gcc-switches,
17655         grecord-gcc-switches, gno-strict-dwarf, gstrict-dwarf, gstabs,
17656         gstabs+, gtoggle, gvms, gxcoff, gxcoff+): Add Driver flag.
17658 2017-01-16  Uros Bizjak  <ubizjak@gmail.com>
17660         * config/i386/i386.h (HARD_REGNO_CALLER_SAVE_MODE): Apply HImode and
17661         QImode fixups to general and mask registers only.
17663 2017-01-16  Carl Love  <cel@us.ibm.com>
17665         * config/rs6000/rs6000-c (altivec_overloaded_builtins): Add support
17666         for built-in functions
17667         vector signed char vec_nabs (vector signed char)
17668         vector signed short vec_nabs (vector signed short)
17669         vector signed int vec_nabs (vector signed int)
17670         vector signed long long vec_nabs (vector signed long long)
17671         vector float vec_nabs (vector float)
17672         vector double vec_nabs (vector double)
17673         * config/rs6000/rs6000-builtin.def: Add definitions for NABS functions
17674         and NABS overload.
17675         * config/rs6000/altivec.md: New define_expand nabs<mode>2 types
17676         * config/rs6000/altivec.h: New define for vec_nabs built-in function.
17677         * doc/extend.texi: Update the documentation file for the new built-in
17678         functions.
17680 2017-01-16  Martin Sebor  <msebor@redhat.com>
17682         * gimple-ssa-sprintf.c (format_directive): Correct a typo in a warning
17683         message.
17685 2017-01-16  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
17687         * config/rs6000/rs6000.c (rtx_is_swappable_p): Change
17688         UNSPEC_VSX__XXSPLTD to require special splat handling.
17690 2017-01-16  David Malcolm  <dmalcolm@redhat.com>
17692         PR bootstrap/78616
17693         * system.h: Poison strndup.
17695 2017-01-16  Alan Modra  <amodra@gmail.com>
17697         PR target/79098
17698         * config/rs6000/rs6000.c (rs6000_legitimate_combined_insn): Don't
17699         use a switch.
17701 2017-01-16  Georg-Johann Lay  <avr@gjlay.de>
17703         * config/avr/avr.h (BRANCH_COST) [reload_completed]: Increase by 4.
17705 2017-01-15  Uros Bizjak  <ubizjak@gmail.com>
17707         * config/i386/i386.c (ix86_legitimate_combined_insn): Do not
17708         call recog here.  Assert that INSN_CODE (insn) is non-negative.
17710 2017-01-15  Segher Boessenkool  <segher@kernel.crashing.org>
17712         PR target/72749
17713         * cfgrtl.c (rtl_split_edge): Also patch jump insns that jump to the
17714         fallthrough.
17715         * haifa-sched.c (dump_insn_stream): Don't crash if there is a label
17716         in the currently scheduled RTL fragment.
17718 2017-01-15  Segher Boessenkool  <segher@kernel.crashing.org>
17720         PR rtl-optimization/78751
17721         * ifcvt.c (find_cond_trap): If we generated a non-existing insn,
17722         give up.
17724 2017-01-14  Jeff Law  <law@redhat.com>
17726         PR tree-optimization/79090
17727         * tree-ssa-dse.c (valid_ao_ref_for_dse): Reject zero length and
17728         variable length stores.
17729         (compute_trims): Delete dead assignment to *trim_tail.
17730         (dse_dom_walker::dse_optimize_stmt): Optimize mem* calls with
17731         zero length.
17733 2017-01-14  Bernd Schmidt  <bschmidt@redhat.com>
17735         PR rtl-optimization/78626
17736         PR rtl-optimization/78727
17737         * cprop.c (one_cprop_pass): Collect unconditional traps in the middle
17738         of a block, and split such blocks after everything else is finished.
17740 2017-01-14  Alan Modra  <amodra@gmail.com>
17742         PR target/72749
17743         * combine.c (recog_for_combine_1): Set INSN_CODE before calling
17744         target legitimate_combined_insn.
17745         * config/rs6000/rs6000.c (TARGET_LEGITIMATE_COMBINED_INSN): Define.
17746         (rs6000_legitimate_combined_insn): New function.
17747         * config/rs6000/rs6000.md (UNSPEC_DOLOOP): Delete, and remove
17748         all uses.
17749         (ctr<mode>_internal3): Rename from *ctr<mode>_internal5.
17750         (ctr<mode>_internal4): Rename from *ctr<mode>_internal6.
17751         (ctr<mode>_internal1, ctr<mode>_internal2): Remove '*' from name.
17753 2017-01-14  Gerald Pfeifer  <gerald@pfeifer.com>
17755         * doc/frontends.texi (G++ and GCC): Remove references to Java.
17757 2017-01-13  Jeff Law  <law@redhat.com>
17759         PR tree-optimization/33562
17760         PR tree-optimization/61912
17761         PR tree-optimization/77485
17762         * tree-ssa-dse.c (delete_dead_call): Accept gsi rather than
17763         a statement.
17764         (delete_dead_assignment): Likewise.
17765         (dse_dom_walker::dse_optimize_stmt): Pass in the gsi rather than
17766         statement to delete_dead_call and delete_dead_assignment.
17768 2017-01-13  David Malcolm  <dmalcolm@redhat.com>
17770         PR c/78304
17771         * substring-locations.c (format_warning_va): Strengthen case 1 so
17772         that both endpoints of the substring must be within the format
17773         range for just the substring to be printed.
17775 2017-01-13  Uros Bizjak  <ubizjak@gmail.com>
17777         * config/i386/i386.opt (msgx): Use ix86_isa_flags2 variable.
17778         * config/i386/i386.c (ix86_target_string): Add missing options
17779         to isa_opts and reorder options by implied ISAs.  Rename isa_opts2 to
17780         isa2_opts, ix86_flag_opts to flag2_opts, ix86_target_other to
17781         flags_other and ix86_target_other to flags2_other.  Display unknown
17782         isa2 options.
17783         (ix86_valid_target_attribute_inner_p): Add missing options and
17784         reorder options by implied ISAs, as in ix86_target_string.
17786 2017-01-13  Richard Sandiford  <richard.sandiford@arm.com>
17788         * hash-table.h (hash_table::too_empty_p): New function.
17789         (hash_table::expand): Use it.
17790         (hash_table::traverse): Likewise.
17791         (hash_table::empty_slot): Use sizeof (value_type) instead of
17792         sizeof (PTR) to convert bytes to elements.  Shrink the table
17793         if the current size is excessive for the current number of
17794         elements.
17796 2017-01-13  Richard Sandiford  <richard.sandiford@arm.com>
17798         * ira-costs.c (record_reg_classes): Break from the inner loop
17799         early once alt_fail is known to be true.  Update outer loop
17800         handling accordingly.
17802 2017-01-13  Jeff Law  <law@redhat.com>
17804         * tree-ssa-dse.c (decrement_count): New function.
17805         (increment_start_addr, maybe_trim_memstar_call): Likewise.
17806         (dse_dom_walker::optimize_stmt): Call maybe_trim_memstar_call directly
17807         when we know the partially dead statement is a mem* function.
17809         PR tree-optimization/61912
17810         PR tree-optimization/77485
17811         * tree-ssa-dse.c: Include expr.h.
17812         (maybe_trim_constructor_store): New function.
17813         (maybe_trim_partially_dead_store): Call maybe_trim_constructor_store.
17815         PR tree-optimization/33562
17816         PR tree-optimization/61912
17817         PR tree-optimization/77485
17818         * doc/invoke.texi: Document new dse-max-object-size param.
17819         * params.def (PARM_DSE_MAX_OBJECT_SIZE): New PARAM.
17820         * tree-ssa-dse.c: Include params.h.
17821         (dse_store_status): New enum.
17822         (initialize_ao_ref_for_dse): New, partially extracted from
17823         dse_optimize_stmt.
17824         (valid_ao_ref_for_dse, normalize_ref): New.
17825         (setup_live_bytes_from_ref, compute_trims): Likewise.
17826         (clear_bytes_written_by, maybe_trim_complex_store): Likewise.
17827         (maybe_trim_partially_dead_store): Likewise.
17828         (maybe_trim_complex_store): Likewise.
17829         (dse_classify_store): Renamed from dse_possibly_dead_store_p.
17830         Track what bytes live from the original store.  Return tri-state
17831         for dead, partially dead or live.
17832         (dse_dom_walker): Add constructor, destructor and new private members.
17833         (delete_dead_call, delete_dead_assignment): New extracted from
17834         dse_optimize_stmt.
17835         (dse_optimize_stmt): Make a member of dse_dom_walker.
17836         Use initialize_ao_ref_for_dse.
17838         PR tree-optimization/33562
17839         PR tree-optimization/61912
17840         PR tree-optimization/77485
17841         * sbitmap.h (bitmap_count_bits): Prototype.
17842         (bitmap_clear_range, bitmap_set_range): Likewise.
17843         * sbitmap.c (bitmap_clear_range): New function.
17844         (bitmap_set_range, sbitmap_popcount, bitmap_count_bits): Likewise.
17846 2017-01-13  Martin Liska  <mliska@suse.cz>
17848         PR ipa/79043
17849         * function.c (set_cfun): Add new argument force.
17850         * function.h (set_cfun): Likewise.
17851         * ipa-inline-transform.c (inline_call): Use the function when
17852         strict alising from is dropped for function we inline to.
17854 2017-01-13  Richard Biener  <rguenther@suse.de>
17856         * tree-pretty-print.c (dump_generic_node): Fix inverted condition
17857         for dumping GIMPLE INTEGER_CSTs.
17859 2017-01-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17861         * config/sol2.h (TARGET_OS_CPP_BUILTINS): Define __STDC_VERSION__
17862         to 201112L since C++17.
17864 2017-01-13  Maxim Ostapenko  <m.ostapenko@samsung.com>
17866         PR sanitizer/78887
17867         * asan.c (asan_needs_odr_indicator_p): Don't emit ODR indicators
17868         if -fsanitize=kernel-address is present.
17870 2017-01-13  Richard Biener  <rguenther@suse.de>
17872         * tree-pretty-print.c (dump_generic_node): Dump INTEGER_CSTs
17873         as _Literal ( type ) number in case usual suffixes do not
17874         preserve all information.
17876 2017-01-13  Richard Biener  <rguenther@suse.de>
17878         PR tree-optimization/77283
17879         * gimple-ssa-split-paths.c: Include gimple-ssa.h, tree-phinodes.h
17880         and ssa-iterators.h.
17881         (is_feasible_trace): Implement a cost model based on joiner
17882         PHI node uses.
17884 2017-01-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
17886         PR target/79004
17887         * config/rs6000/rs6000.md (FP_ISA3): Do not optimize converting
17888         char or short to __float128/_Float128 directly.
17890 2017-01-12  Martin Sebor  <msebor@redhat.com>
17892         to -Wformat-overflow.
17893         * gimple-ssa-sprintf.c (pass_sprintf_length::gate): Adjust.
17894         (min_bytes_remaining): Same.
17895         (get_string_length): Same.
17896         (format_string): Same.
17897         (format_directive): Same.
17898         (add_bytes): Same.
17899         (pass_sprintf_length::handle_gimple_call): Same.
17901 2017-01-12  Jakub Jelinek  <jakub@redhat.com>
17903         * gimple-ssa-sprintf.c (try_substitute_return_value): Remove
17904         info.nowrite calls with no lhs that can't throw.  Return bool
17905         whether gsi_remove has been called or not.
17906         (pass_sprintf_length::handle_gimple_call): Return bool whether
17907         try_substitute_return_value called gsi_remove.  Formatting fix.
17908         (pass_sprintf_length::execute): Don't use gsi_remove if
17909         handle_gimple_call returned true.
17911         PR bootstrap/79069
17912         * cfgrtl.c (rtl_tidy_fallthru_edge): For any_uncondjump_p that can't
17913         be removed due to side-effects, don't remove following barrier nor
17914         turn the successor edge into fallthru edge.
17916 2017-01-12  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
17918         PR target/79044
17919         * config/rs6000/rs6000.c (insn_is_swappable_p): Mark
17920         element-reversing loads and stores as not swappable.
17922 2017-01-12  Nathan Sidwell  <nathan@acm.org>
17923             Nicolai Stange  <nicstange@gmail.com>
17925         * combine.c (try_combine): Don't ignore result of overlap checking
17926         loop.  Combine overlap & asm check into single loop.
17928 2017-01-12  Richard Biener  <rguenther@suse.de>
17930         * tree-pretty-print.c (dump_generic_node): Provide -gimple
17931         variant for MEM_REF.  Sanitize INTEGER_CST for -gimple.
17933 2017-01-12  Richard Biener  <rguenther@suse.de>
17935         * tree.c (initialize_tree_contains_struct): Make TS_OPTIMIZATION
17936         and TS_TARGET_OPTION directly derive from TS_BASE.
17937         * tree-core.h (tree_optimization_option): Derive from tree_base.
17938         (tree_target_option): Likewise.
17940 2017-01-11  Uros Bizjak  <ubizjak@gmail.com>
17942         * config/i386/i386.c (memory_address_length): Increase len
17943         only when rip_relative_addr_p returns false.
17945 2017-01-11  Julia Koval  <julia.koval@intel.com>
17947         * common/config/i386/i386-common.c (OPTION_MASK_ISA_SGX_UNSET): New.
17948         (OPTION_MASK_ISA_SGX_SET): New.
17949         (ix86_handle_option): Handle OPT_msgx.
17950         * config.gcc: Added sgxintrin.h.
17951         * config/i386/driver-i386.c (host_detect_local_cpu): Detect sgx.
17952         * config/i386/i386-c.c (ix86_target_macros_internal): Define __SGX__.
17953         * config/i386/i386.c (ix86_target_string): Add -msgx.
17954         (PTA_SGX): New.
17955         (ix86_option_override_internal): Handle new options.
17956         (ix86_valid_target_attribute_inner_p): Add sgx.
17957         * config/i386/i386.h (TARGET_SGX, TARGET_SGX_P): New.
17958         * config/i386/i386.opt: Add msgx.
17959         * config/i386/sgxintrin.h: New file.
17960         * config/i386/x86intrin.h: Add sgxintrin.h.
17962 2017-01-11  Jakub Jelinek  <jakub@redhat.com>
17964         PR c++/71537
17965         * fold-const.c (maybe_nonzero_address): Return 1 for function
17966         local objects.
17967         (tree_single_nonzero_warnv_p): Don't handle function local objects
17968         here.
17970         PR c++/72813
17971         * gcc.c (default_compilers): Don't add -o %g.s for -S -save-temps
17972         of c-header.
17974 2017-01-11  David Malcolm  <dmalcolm@redhat.com>
17976         PR driver/78877
17977         * opts.c: Include "spellcheck.h"
17978         (struct string_fragment): New struct.
17979         (struct edit_distance_traits<const string_fragment &>): New
17980         struct.
17981         (get_closest_sanitizer_option): New function.
17982         (parse_sanitizer_options): Offer suggestions for unrecognized arguments.
17984 2017-01-11  Jakub Jelinek  <jakub@redhat.com>
17986         * dwarf2out.c (DWARF_COMPILE_UNIT_HEADER_SIZE): For DWARF5 decrease
17987         by 12.
17988         (DWARF_COMDAT_TYPE_UNIT_HEADER_SIZE): Always
17989         DWARF_COMPILE_UNIT_HEADER_SIZE plus 12.
17990         (DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE): Define.
17991         (calc_base_type_die_sizes): Use DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE
17992         for initial die_offset if dwarf_split_debug_info.
17993         (output_comp_unit): Use DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE for
17994         initial next_die_offset if dwo_id is non-NULL.  Don't emit padding
17995         fields.
17996         (output_skeleton_debug_sections): Formatting fix.  Use
17997         DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE instead of
17998         DWARF_COMPILE_UNIT_HEADER_SIZE.  Don't emit padding.
18000 2017-01-11  Wilco Dijkstra  <wdijkstr@arm.com>
18002         * config/arm/cortex-a53.md: Add bypasses for
18003         cortex_a53_r2f_cvt.
18004         (cortex_a53_r2f): Only use for transfers.
18005         (cortex_a53_f2r): Likewise.
18006         (cortex_a53_r2f_cvt): Add reservation for conversions.
18007         (cortex_a53_f2r_cvt): Likewise.
18009 2017-01-11  Tamar Christina  <tamar.christina@arm.com>
18011         * config/arm/arm_neon.h: Add __artificial__ and gnu_inline
18012         to all inlined functions, change static to extern.
18014 2017-01-11  Christophe Lyon  <christophe.lyon@linaro.org>
18016         PR target/78253
18017         * config/arm/arm.c (legitimize_pic_address): Handle reference to
18018         weak symbol.
18019         (arm_assemble_integer): Likewise.
18021 2017-01-11  Richard Earnshaw  <rearnsha@arm.com>
18023         * config.gcc: Use new awk script to check CPU, FPU and architecture
18024         parameters for --with-... options.
18025         * config/arm/parsecpu.awk: New file
18026         * config/arm/arm-cpus.in: New file.
18027         * config/arm/arm-opts.h: Include arm-cpu.h instead of processing .def
18028         files.
18029         * config/arm/arm.c: Include arm-cpu-data.h instead of processing .def
18030         files.
18031         * config/arm/t-arm: Update dependency rules.
18032         * common/config/arm/arm-common.c: Include arm-cpu-cdata.h instead
18033         of processing .def files.
18034         * config/arm/genopt.sh: Deleted.
18035         * config/arm/gentune.sh: Deleted.
18036         * config/arm/arm-cores.def: Deleted.
18037         * config/arm/arm-arches.def: Deleted.
18038         * config/arm/arm-fpus.def: Deleted.
18039         * config/arm/arm-tune.md: Regenerated.
18040         * config/arm/arm-tables.opt: Regenerated.
18041         * config/arm/arm-cpu.h: New generated file.
18042         * config/arm/arm-cpu-data.h: New generated file.
18043         * config/arm/arm-cpu-cdata.h: New generated file.
18045 2017-01-11  Maxim Ostapenko  <m.ostapenko@samsung.com>
18047         PR lto/79042
18048         * lto-cgraph.c (lto_output_varpool_node): Pack dynamically_initialized
18049         bit.
18050         (input_varpool_node): Unpack dynamically_initialized bit.
18052 2017-01-11  Eric Botcazou  <ebotcazou@adacore.com>
18054         PR rtl-optimization/79032
18055         * lra-constraints.c (simplify_operand_subreg): In the MEM case, test
18056         the alignment of the adjusted memory reference against that of MODE,
18057         instead of the alignment of the original memory reference.
18059 2017-01-11  Martin Jambor  <mjambor@suse.cz>
18061         * hsa.c (hsa_callable_function_p): Revert addition of DECL_ARTIFICIAL
18062         test.
18063         * ipa-hsa.c (process_hsa_functions): Only duplicate non-artificial
18064         decorated functions.
18066 2017-01-11  Richard Biener  <rguenther@suse.de>
18068         * tree-vrp.c (evrp_dom_walker::before_dom_children): Also
18069         set range/nonnull info for PHI results.  Do not set it on
18070         stmts marked for removal.
18072 2017-01-10  Eric Botcazou  <ebotcazou@adacore.com>
18074         * expr.c (store_field): In the bitfield case, fetch the return value
18075         from the registers before applying a single big-endian adjustment.
18076         Always do a final load for a BLKmode value not larger than a word.
18078 2017-01-10  David Malcolm  <dmalcolm@redhat.com>
18080         PR c++/77949
18081         * input.c (selftest::test_accessing_ordinary_linemaps): Verify
18082         that we correctly handle column numbers greater than
18083         LINE_MAP_MAX_COLUMN_NUMBER.
18085 2017-01-10  Martin Sebor  <msebor@redhat.com>
18087         PR middle-end/78245
18088         * gimple-ssa-sprintf.c (get_destination_size): Call
18089         {init,fini}object_sizes.
18090         * tree-object-size.c (addr_object_size): Adjust.
18091         (pass_through_call): Adjust.
18092         (pass_object_sizes::execute): Adjust.
18093         * tree-object-size.h (fini_object_sizes): Declare.
18095 2017-01-10  Martin Sebor  <msebor@redhat.com>
18097         PR tree-optimization/78775
18098         * builtins.c (get_size_range): Move...
18099         * calls.c: ...to here.
18100         (alloc_max_size): Accept zero argument.
18101         (operand_signed_p): Remove.
18102         (maybe_warn_alloc_args_overflow): Call get_size_range.
18103         * calls.h (get_size_range): Declare.
18105 2017-01-10  Joe Seymour  <joe.s@somniumtech.com>
18107         * config/msp430/driver-msp430.c (msp430_mcu_data): Sync with data
18108         from TI's devices.csv file as of September 2016.
18109         * config/msp430/msp430.c (msp430_mcu_data): Likewise.
18111 2017-01-10  Sandra Loosemore  <sandra@codesourcery.com>
18113         * doc/extend.texi: Tweak formatting to fix overfull hbox warnings.
18114         * doc/invoke.texi: Likewise.
18115         * doc/md.texi: Likewise.
18116         * doc/objc.texi: Likewise.
18118 2017-01-10  Joshua Conner  <joshconner@google.com>
18120         * config/arm/fuchsia-elf.h: New file.
18121         * config/fuchsia.h: New file.
18122         * config.gcc (*-*-fuchsia*): Set native_system_header_dir.
18123         (aarch64*-*-fuchsia*, arm*-*-fuchsia*, x86_64-*-fuchsia*): Add to
18124         targets.
18125         * config.host: (aarch64*-*-fuchsia*, arm*-*-fuchsia*): Add to hosts.
18127 2016-01-10  Richard Biener  <rguenther@suse.de>
18129         PR tree-optimization/79034
18130         * tree-call-cdce.c (shrink_wrap_one_built_in_call_with_conds):
18131         Propagate out degenerate PHIs in the joiner.
18133 2017-01-10  Martin Liska  <mliska@suse.cz>
18135         * ipa-icf.c (sort_sem_items_by_decl_uid): New function.
18136         (sort_congruence_classes_by_decl_uid): Likewise.
18137         (sort_congruence_class_groups_by_decl_uid): Likewise.
18138         (sem_item_optimizer::merge_classes): Sort class, groups in these
18139         classes and members in the groups by DECL_UID of declarations.
18140         This would make merge operations stable.
18142 2017-01-10  Martin Liska  <mliska@suse.cz>
18144         * ipa-icf.c (sem_item_optimizer::sem_item_optimizer): Remove
18145         usage of m_classes_vec.
18146         (sem_item_optimizer::~sem_item_optimizer):  Likewise.
18147         (sem_item_optimizer::get_group_by_hash): Likewise.
18148         (sem_item_optimizer::subdivide_classes_by_equality): Likewise.
18149         (sem_item_optimizer::subdivide_classes_by_sensitive_refs): Likewise.
18150         (sem_item_optimizer::verify_classes): Likewise.
18151         (sem_item_optimizer::process_cong_reduction): Likewise.
18152         (sem_item_optimizer::dump_cong_classes): Likewise.
18153         (sem_item_optimizer::merge_classes): Likewise.
18154         * ipa-icf.h (congruence_class_hash): Rename from
18155         congruence_class_group_hash.  Remove declaration of m_classes_vec.
18157 2017-01-10  Andrew Senkevich  <andrew.senkevich@intel.com>
18159         * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512VPOPCNTDQ_SET,
18160         OPTION_MASK_ISA_AVX512VPOPCNTDQ_UNSET): New.
18161         * config.gcc: Add avx512vpopcntdqintrin.h.
18162         * config/i386/avx512vpopcntdqintrin.h: New.
18163         * config/i386/cpuid.h (bit_AVX512VPOPCNTDQ): New.
18164         * config/i386/i386-builtin-types.def: Add new types.
18165         * config/i386/i386-builtin.def (__builtin_ia32_vpopcountd_v16si,
18166         __builtin_ia32_vpopcountd_v16si_mask, __builtin_ia32_vpopcountq_v8di,
18167         __builtin_ia32_vpopcountq_v8di_mask): New.
18168         * config/i386/i386-c.c (ix86_target_macros_internal): Define
18169         __AVX512VPOPCNTDQ__.
18170         * config/i386/i386.c (ix86_target_string): Add -mavx512vpopcntdq.
18171         (PTA_AVX512VPOPCNTDQ): Define.
18172         * config/i386/i386.h (TARGET_AVX512VPOPCNTDQ,
18173         TARGET_AVX512VPOPCNTDQ_P): Define.
18174         * config/i386/i386.opt: Add mavx512vpopcntdq.
18175         * config/i386/immintrin.h: Include avx512vpopcntdqintrin.h.
18176         * config/i386/sse.md (define_insn "vpopcount<mode><mask_name>"): New.
18178 2017-01-01  Jan Hubicka  <hubicka@ucw.cz>
18180         PR middle-end/77484
18181         * predict.def (PRED_CALL): Set to 67.
18183 2017-01-09  Eric Botcazou  <ebotcazou@adacore.com>
18185         * expr.c (store_field): In the bitfield case, if the value comes from
18186         a function call and is of an aggregate type returned in registers, do
18187         not modify the field mode; extract the value in all cases if the mode
18188         is BLKmode and the size is not larger than a word.
18190 2017-01-09  Dominique d'Humieres  <dominiq@lps.ens.fr>
18192         PR target/71017
18193         * config/i386/cpuid.h: Fix undefined behavior.
18195 2017-01-04  Jeff Law  <law@redhat.com>
18197         PR tree-optimization/79007
18198         PR tree-optimization/67955
18199         * tree-ssa-alias.c (same_addr_size_stores_p): Only need to be
18200         conservative for pt.null when flag_non_call_exceptions is on.
18202 2017-01-09  Jakub Jelinek  <jakub@redhat.com>
18204         PR translation/79019
18205         PR translation/79020
18206         * params.def (PARAM_INLINE_MIN_SPEEDUP,
18207         PARAM_IPA_CP_SINGLE_CALL_PENALTY,
18208         PARAM_USE_AFTER_SCOPE_DIRECT_EMISSION_THRESHOLD): Fix typos
18209         in descriptions.
18210         * config/avr/avr.opt (maccumulate-args): Likewise.
18211         * config/msp430/msp430.opt (mwarn-mcu): Likewise.
18212         * common.opt (freport-bug): Likewise.
18213         * cif-code.def (CIF_FINAL_ERROR): Likewise.
18214         * doc/invoke.texi (ipa-cp-single-call-penalty): Likewise.
18215         * config/s390/s390.c (s390_invalid_binary_op): Fix spelling in
18216         translatable string.
18217         * config/i386/i386.c (function_value_32): Likewise.
18218         * config/nios2/nios2.c (nios2_valid_target_attribute_rec): Likewise.
18219         * config/msp430/msp430.c (msp430_option_override, msp430_attr):
18220         Likewise.
18221         * config/msp430/driver-msp430.c (msp430_select_hwmult_lib): Likewise.
18222         * common/config/msp430/msp430-common.c (msp430_handle_option):
18223         Likewise.
18224         * symtab.c (symtab_node::verify_base): Likewise.
18225         * opts.c (set_debug_level): Likewise.
18226         * tree.c (verify_type_variant): Likewise.  Fix typo in comment.
18227         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
18228         missing whitespace to translatable strings.
18229         * config/avr/avr.md (bswapsi2): Fix typo in comment.
18230         * config/sh/superh.h: Likewise.
18231         * config/i386/xopintrin.h: Likewise.
18232         * config/i386/znver1.md: Likewise.
18233         * config/rs6000/rs6000.c (struct rs6000_opt_mask): Likewise.
18234         * ipa-inline-analysis.c (compute_inline_parameters): Likewise.
18235         * double-int.h (struct double_int): Likewise.
18236         * double-int.c (div_and_round_double): Likewise.
18237         * wide-int.cc: Likewise.
18238         * tree-ssa.c (non_rewritable_mem_ref_base): Likewise.
18239         * tree-ssa-sccvn.c (vn_reference_lookup_3): Likewise.
18240         * cfgcleanup.c (crossjumps_occured): Renamed to ...
18241         (crossjumps_occurred): ... this.
18242         (try_crossjump_bb, try_head_merge_bb, try_optimize_cfg, cleanup_cfg):
18243         Adjust all uses.
18245         PR tree-optimization/78899
18246         * tree-if-conv.c (version_loop_for_if_conversion): Instead of
18247         returning bool return struct loop *, NULL for failure and the new
18248         loop on success.
18249         (versionable_outer_loop_p): Don't version outer loop if it has
18250         dont_vectorized bit set.
18251         (tree_if_conversion): When versioning outer loop, ensure
18252         tree_if_conversion is performed also on the inner loop of the
18253         non-vectorizable outer loop copy.
18254         * tree-vectorizer.c (set_uid_loop_bbs): Formatting fix.  Fold
18255         LOOP_VECTORIZED in inner loop of the scalar outer loop and
18256         prevent vectorization of it.
18257         (vectorize_loops): For outer + inner LOOP_VECTORIZED, ensure
18258         the outer loop vectorization of the non-scalar version is attempted
18259         before vectorization of the inner loop in scalar version.  If
18260         outer LOOP_VECTORIZED guarded loop is not vectorized, prevent
18261         vectorization of its inner loop.
18262         * tree-vect-loop-manip.c (rename_variables_in_bb): If outer_loop
18263         has 2 inner loops, rename also on edges from bb whose single pred
18264         is outer_loop->header.  Fix typo in function comment.
18266 2017-01-09  Martin Sebor  <msebor@redhat.com>
18268         PR bootstrap/79033
18269         * asan.c (asan_emit_stack_protection): Increase local buffer size
18270         to avoid snprintf truncation warning.
18272 2017-01-09  Andrew Pinski  <apinski@cavium.com>
18274         * config/aarch64/aarch64-cores.def: Add thunderx2t99.  Change vulcan
18275         to reference thunderx2t99 for the tuning structure
18276         * config/aarch64/aarch64-cost-tables.h (vulcan_extra_costs):
18277         Rename to ...
18278         (thunderx2t99_extra_costs): This.
18279         * config/aarch64/aarch64-tune.md: Regenerate.
18280         * config/aarch64/aarch64.c (vulcan_addrcost_table): Rename to ...
18281         (vulcan_addrcost_table): This.
18282         (vulcan_regmove_cost): Rename to ...
18283         (thunderx2t99_regmove_cost): This.
18284         (vulcan_vector_cost): Rename to ...
18285         (thunderx2t99_vector_cost): this.
18286         (vulcan_branch_cost): Rename to ...
18287         (thunderx2t99_branch_cost): This.
18288         (vulcan_tunings): Rename to ...
18289         (thunderx2t99_tunings): This and s/vulcan/thunderx2t99 .
18290         * doc/invoke.texi (AARCH64/mtune): Add thunderx2t99.
18292 2017-01-09  Martin Jambor  <mjambor@suse.cz>
18294         PR ipa/78365
18295         PR ipa/78599
18296         * ipa-prop.h (ipa_jump_func): Swap positions of vr_known and m_vr.
18297         * ipa-cp.c (ipa_vr_operation_and_type_effects): New function.
18298         (propagate_vr_accross_jump_function): Use the above function for all
18299         value range computations for pass-through jump functions and type
18300         converasion from explicit value range values.
18301         (ipcp_propagate_stage): Do not attempt to deduce types of formal
18302         parameters from TYPE_ARG_TYPES.
18303         * ipa-prop.c (ipa_write_jump_function): Remove trailing whitespace.
18304         (ipa_write_node_info): Stream type of the actual argument.
18305         (ipa_read_node_info): Likewise. Also remove trailing whitespace.
18307 2017-01-09  Martin Liska  <mliska@suse.cz>
18309         PR pch/78970
18310         * gcc.c (driver_handle_option): Handle OPT_E and set have_E.
18311         (lookup_compiler): Do not show error message with have_E.
18313 2017-01-09  Jakub Jelinek  <jakub@redhat.com>
18315         PR tree-optimization/78938
18316         * tree-vect-stmts.c (vectorizable_condition): For non-masked COND_EXPR
18317         where comp_vectype is VECTOR_BOOLEAN_TYPE_P, use
18318         BIT_{NOT,XOR,AND,IOR}_EXPR on the comparison operands instead of
18319         {EQ,NE,GE,GT,LE,LT}_EXPR directly inside of VEC_COND_EXPR.  Formatting
18320         fixes.
18322 2017-01-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18324         * tree-ssa-address.c (gen_addr_rtx): Don't handle index if it
18325         is const0_rtx.
18327 2017-01-09  Richard Biener  <rguenther@suse.de>
18329         PR tree-optimization/78997
18330         * tree-vect-slp.c (vect_mask_constant_operand_p): Handle SSA
18331         name condition properly.
18333 2017-01-09  Richard Biener  <rguenther@suse.de>
18335         PR debug/79000
18336         * dwarf2out.c (is_cxx): New overload with context.
18337         (is_naming_typedef_decl): Use it.
18339 2017-01-08  Sandra Loosemore  <sandra@codesourcery.com>
18341         * invoke.texi (Option Summary): Correct spacing in option lists
18342         and add line breaks to fix over-long lines.
18344 2017-01-08  Sandra Loosemore  <sandra@codesourcery.com>
18346         PR middle-end/17660
18348         * extend.texi (Common Variable Attributes): Add xref to GCC
18349         Internals manual to explain mode attribute keywords.
18351 2017-01-08  Sandra Loosemore  <sandra@codesourcery.com>
18353         PR other/16519
18354         * doc/invoke.texi (Option Summary): Move -pthread to Linker Options
18355         and Preprocessor Options.
18356         (Options for Linking): Document -pthread here....
18357         (RS/6000 and PowerPC Options): ...not here.
18358         (Solaris 2 Options): ...or here.
18359         * doc/cppopts.texi: Document -pthread.
18361 2017-01-08  Martin Sebor  <msebor@redhat.com>
18363         PR middle-end/77708
18364         * doc/invoke.texi (Warning Options): Document -Wformat-truncation.
18365         * gimple-ssa-sprintf.c (call_info::reval_used, call_info::warnopt):
18366         New member functions.
18367         (format_directive): Used them.
18368         (add_bytes): Same.
18369         (pass_sprintf_length::handle_gimple_call): Same.
18370         * graphite-sese-to-poly.c (tree_int_to_gmp): Increase buffer size
18371         to avoid truncation for any argument.
18372         (extract_affine_mul): Same.
18373         * tree.c (get_file_function_name): Same.
18375 2017-01-01  Jan Hubicka  <hubicka@ucw.cz>
18377         PR middle-end/77484
18378         * predict.def (PRED_INDIR_CALL): Set to 86.
18380 2017-01-07  Sandra Loosemore  <sandra@codesourcery.com>
18382         PR preprocessor/54124
18383         * doc/cppopts.texi: Reformat -d subtable to list the full name
18384         of the options.  Add cross-reference to the docs for the general
18385         compiler -d options.
18386         * doc/invoke.texi (Developer Options): Add cross-reference to the
18387         preprocessor-specific -d option documentation.
18389 2017-01-07  Sandra Loosemore  <sandra@codesourcery.com>
18391         PR preprocessor/13498
18392         * doc/cpp.texi (Search Path): Rewrite to remove obsolete and
18393         redudant material, and reflect new command-line options.
18394         (System Headers): Likewise.
18396 2017-01-07  Sandra Loosemore  <sandra@codesourcery.com>
18398         * doc/cppdiropts.texi: Merge documentation of -I, -iquote,
18399         -isystem, and -idirafter.  Copy-edit.
18400         * doc/cppopts.texi: Copy-edit.  Remove contradiction about
18401         default for -ftrack-macro-expansion.  Delete obsolete and
18402         badly-formatted implementation details about -fdebug-cpp output.
18403         * doc/cppwarnopts.texi: Copy-edit.
18405 2017-01-07  David Malcolm  <dmalcolm@redhat.com>
18407         PR c++/72803
18408         * input.c (selftest::test_accessing_ordinary_linemaps): Verify
18409         that the transition from a max line width >= 1<<10 to narrower
18410         lines works correctly.
18412 2017-01-07  Alexandre Oliva <aoliva@redhat.com>
18414         * doc/options.texi (PerFunction): New.
18415         * opt-functions.awk (switch_flags): Map both Optimization and
18416         PerFunction to CL_OPTIMIZATION.
18417         * opth-gen.awk: Test for PerFunction flag along with
18418         Optimization.
18419         * optc-save-gen.awk: Likewise.  Introduce var_opt_hash and set
18420         it only when the latter is present.  Skip those that don't in
18421         the hash function generator.
18422         * common.opt (fvar-tracking): Mark as PerFunction instead of
18423         Optimization.
18424         (fvar-tracking-assignments): Likewise.
18425         (fvar-tracking-assignments-toggle): Likewise.
18426         (fvar-tracking-uninit): Likewise.
18428 2017-01-07  Jakub Jelinek  <jakub@redhat.com>
18430         PR translation/79018
18431         * params.def (PARAM_MAX_STORES_TO_MERGE): Add missing space between
18432         the and store.
18434 2017-01-06  Mikael Pettersson  <mikpelinux@gmail.com>
18436         PR target/57583
18437         * config/m68k/m68k.opt (LONG_JUMP_TABLE_OFFSETS): New option.
18438         * config/m68k/linux.h (ASM_RETURN_CASE_JUMP): Handle
18439         TARGET_LONG_JUMP_TABLE_OFFSETS.
18440         * config/m68k/m68kelf.h (ASM_RETURN_CASE_JUMP): Likewise.
18441         * config/m68k/netbsd-elf.h (ASM_RETURN_CASE_JUMP): Likewise.
18442         * config/m68k/m68k.h (CASE_VECTOR_MODE): Likewise.
18443         (ASM_OUTPUT_ADDR_DIFF_ELF): Likewise.
18444         * config/m68k/m68k.md (tablejump expander): Likewise.
18445         (*tablejump_pcrel_hi): Renamed from unnamed insn, reject
18446         TARGET_LONG_JUMP_TABLE_OFFSETS.
18447         (*tablejump_pcrel_si): New insn, handle TARGET_LONG_JUMP_TABLE_OFFSETS.
18448         * doc/invoke.texi (M68K options): Add -mlong-jump-table-offsets.
18450 2017-01-06  Edgar E. Iglesias <edgar.iglesias@xilinx.com>
18451             David Holsgrove <david.holsgrove@xilinx.com>
18453         * common/config/microblaze/microblaze-common.c
18454         (TARGET_EXCEPT_UNWIND_INFO): Remove.
18455         * config/microblaze/microblaze-protos.h (microblaze_eh_return):
18456         New prototype.
18457         * config/microblaze/microblaze.c (microblaze_must_save_register)
18458         (microblaze_expand_epilogue, microblaze_return_addr): Handle
18459         calls_eh_return.
18460         (microblaze_eh_return): New function.
18461         * config/microblaze/microblaze.h (RETURN_ADDR_OFFSET)
18462         (EH_RETURN_DATA_REGNO, MB_EH_STACKADJ_REGNUM)
18463         (EH_RETURN_STACKADJ_RTX, ASM_PREFERRED_EH_DATA_FORMAT): New macros.
18464         * config/microblaze/microblaze.md (eh_return): New pattern.
18466 2017-01-06  Jakub Jelinek  <jakub@redhat.com>
18468         * system.h (GCC_DIAGNOSTIC_PUSH_IGNORED, GCC_DIAGNOSTIC_POP,
18469         GCC_DIAGNOSTIC_STRINGIFY): Define.
18471         * read-rtl.c (rtx_reader::read_rtx_code): Avoid -Wsign-compare warning.
18473 2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>
18475         * config/arm/arm.md (<mcrr>): New.
18476         (<mrrc>): New.
18477         * config/arm/arm.c (arm_arch5te): New.
18478         (arm_option_override): Set arm_arch5te.
18479         (arm_coproc_builtin_available): Add support for mcrr, mcrr2, mrrc
18480         and mrrc2.
18481         * config/arm/arm-builtins.c (MCRR_QUALIFIERS): Define to...
18482         (arm_mcrr_qualifiers): ... this. New.
18483         (MRRC_QUALIFIERS): Define to...
18484         (arm_mrrc_qualifiers): ... this. New.
18485         * config/arm/arm_acle.h (__arm_mcrr, __arm_mcrr2, __arm_mrrc,
18486         __arm_mrrc2): New.
18487         * config/arm/arm_acle_builtins.def (mcrr, mcrr2, mrrc, mrrc2): New.
18488         * config/arm/iterators.md (MCRRI, mcrr, MCRR): New.
18489         (MRRCI, mrrc, MRRC): New.
18490         * config/arm/unspecs.md (VUNSPEC_MCRR, VUNSPEC_MCRR2, VUNSPEC_MRRC,
18491         VUNSPEC_MRRC2): New.
18493 2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>
18495         * config/arm/arm.md (<mcr>): New.
18496         (<mrc>): New.
18497         * config/arm/arm.c (arm_coproc_builtin_available): Add
18498         support for mcr, mrc, mcr2 and mrc2.
18499         * config/arm/arm-builtins.c (MCR_QUALIFIERS): Define to...
18500         (arm_mcr_qualifiers): ... this. New.
18501         (MRC_QUALIFIERS): Define to ...
18502         (arm_mrc_qualifiers): ... this. New.
18503         (MCR_QUALIFIERS): Define to ...
18504         (arm_mcr_qualifiers): ... this. New.
18505         * config/arm/arm_acle.h (__arm_mcr, __arm_mrc, __arm_mcr2,
18506         __arm_mrc2): New.
18507         * config/arm/arm_acle_builtins.def (mcr, mcr2, mrc, mrc2): New.
18508         * config/arm/iterators.md (MCRI, mcr, MCR, MRCI, mrc, MRC): New.
18509         * config/arm/unspecs.md (VUNSPEC_MCR, VUNSPEC_MCR2, VUNSPEC_MRC,
18510         VUNSPEC_MRC2): New.
18512 2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>
18514         * config/arm/arm.md (*ldc): New.
18515         (*stc): New.
18516         (<ldc>): New.
18517         (<stc>): New.
18518         * config/arm/arm.c (arm_coproc_builtin_available): Add
18519         support for ldc,ldcl,stc,stcl,ldc2,ldc2l,stc2 and stc2l.
18520         (arm_coproc_ldc_stc_legitimate_address): New.
18521         * config/arm/arm-builtins.c (arm_type_qualifiers): Add
18522         'qualifier_const_pointer'.
18523         (LDC_QUALIFIERS): Define to...
18524         (arm_ldc_qualifiers): ... this. New.
18525         (STC_QUALIFIERS): Define to...
18526         (arm_stc_qualifiers): ... this. New.
18527         * config/arm/arm-protos.h
18528         (arm_coproc_ldc_stc_legitimate_address): New.
18529         * config/arm/arm_acle.h (__arm_ldc, __arm_ldcl, __arm_stc,
18530         __arm_stcl, __arm_ldc2, __arm_ldc2l, __arm_stc2, __arm_stc2l): New.
18531         * config/arm/arm_acle_builtins.def (ldc, ldc2, ldcl, ldc2l, stc,
18532         stc2, stcl, stc2l): New.
18533         * config/arm/constraints.md (Uz): New.
18534         * config/arm/iterators.md (LDCI, STCI, ldc, stc, LDC STC): New.
18535         * config/arm/unspecs.md (VUNSPEC_LDC, VUNSPEC_LDC2, VUNSPEC_LDCL,
18536         VUNSPEC_LDC2L, VUNSPEC_STC, VUNSPEC_STC2, VUNSPEC_STCL,
18537         VUNSPEC_STC2L): New.
18539 2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>
18541         * config/arm/arm.md (<cdp>): New.
18542         * config/arm/arm.c (neon_const_bounds): Rename this ...
18543         (arm_const_bounds): ... this.
18544         (arm_coproc_builtin_available): New.
18545         * config/arm/arm-builtins.c (SIMD_MAX_BUILTIN_ARGS): Increase.
18546         (arm_type_qualifiers): Add 'qualifier_unsigned_immediate'.
18547         (CDP_QUALIFIERS): Define to...
18548         (arm_cdp_qualifiers): ... this. New.
18549         (void_UP): Define.
18550         (arm_expand_builtin_args): Add case for 6 arguments.
18551         * config/arm/arm-protos.h (neon_const_bounds): Rename this ...
18552         (arm_const_bounds): ... this.
18553         (arm_coproc_builtin_available): New.
18554         * config/arm/arm_acle.h (__arm_cdp): New.
18555         (__arm_cdp2): New.
18556         * config/arm/arm_acle_builtins.def (cdp): New.
18557         (cdp2): New.
18558         * config/arm/iterators.md (CDPI,CDP,cdp): New.
18559         * config/arm/neon.md: Rename all 'neon_const_bounds' to
18560         'arm_const_bounds'.
18561         * config/arm/types.md (coproc): New.
18562         * config/arm/unspecs.md (VUNSPEC_CDP, VUNSPEC_CDP2): New.
18563         * doc/extend.texi (ACLE): Add a mention of Coprocessor intrinsics.
18564         * doc/sourcebuild.texi (arm_coproc1_ok, arm_coproc2_ok,
18565         arm_coproc3_ok, arm_coproc4_ok): Document new effective targets.
18567 2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>
18569         * config/arm/arm-builtins.c (arm_unsigned_binop_qualifiers): New.
18570         (UBINOP_QUALIFIERS): New.
18571         (si_UP): Define.
18572         (acle_builtin_data): New. Change comment.
18573         (arm_builtins): Remove ARM_BUILTIN_CRC32B, ARM_BUILTIN_CRC32H,
18574         ARM_BUILTIN_CRC32W, ARM_BUILTIN_CRC32CB, ARM_BUILTIN_CRC32CH,
18575         ARM_BUILTIN_CRC32CW. Add ARM_BUILTIN_ACLE_BASE and include
18576         arm_acle_builtins.def.
18577         (ARM_BUILTIN_ACLE_PATTERN_START): Define.
18578         (arm_init_acle_builtins): New.
18579         (CRC32_BUILTIN): Remove.
18580         (bdesc_2arg): Remove entries for crc32b, crc32h, crc32w,
18581         crc32cb, crc32ch and crc32cw.
18582         (arm_init_crc32_builtins): Remove.
18583         (arm_init_builtins): Use arm_init_acle_builtins rather
18584         than arm_init_crc32_builtins.
18585         (arm_expand_acle_builtin): New.
18586         (arm_expand_builtin): Use 'arm_expand_acle_builtin'.
18587         * config/arm/arm_acle_builtins.def: New.
18589 2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>
18591         * config/arm/arm-builtins.c (neon_builtin_datum): Rename to ..
18592         (arm_builtin_datum): ... this.
18593         (arm_init_neon_builtin): Rename to ...
18594         (arm_init_builtin): ... this. Add a new parameters PREFIX
18595         and USE_SIG_IN_NAME.
18596         (arm_init_neon_builtins): Replace 'arm_init_neon_builtin' with
18597         'arm_init_builtin'. Replace type 'neon_builtin_datum' with
18598         'arm_builtin_datum'.
18599         (arm_init_vfp_builtins): Likewise.
18600         (builtin_arg): Rename enum's replacing 'NEON_ARG' with
18601         'ARG_BUILTIN' and add a 'ARG_BUILTIN_NEON_MEMORY.
18602         (arm_expand_neon_args): Rename to ...
18603         (arm_expand_builtin_args): ... this. Rename builtin_arg
18604         enum values and differentiate between ARG_BUILTIN_MEMORY
18605         and ARG_BUILTIN_NEON_MEMORY.
18606         (arm_expand_neon_builtin_1): Rename to ...
18607         (arm_expand_builtin_1): ... this. Rename builtin_arg enum
18608         values, arm_expand_builtin_args and add bool parameter NEON.
18609         (arm_expand_neon_builtin): Use arm_expand_builtin_1.
18610         (arm_expand_vfp_builtin): Likewise.
18611         (NEON_MAX_BUILTIN_ARGS): Remove, it was unused.
18613 2017-01-01  Jan Hubicka  <hubicka@ucw.cz>
18615         PR middle-end/77484
18616         * predict.def (PRED_POLYMORPHIC_CALL): Set to 59.
18617         * predict.c (tree_estimate_probability_bb): Reverse direction of
18618         polymorphic call predictor.
18620 2017-01-06  David Malcolm  <dmalcolm@redhat.com>
18622         * passes.c (execute_one_pass): Split out pass-skipping logic into...
18623         (determine_pass_name_match): ...this new function and...
18624         (should_skip_pass_p): ...this new function.
18626 2017-01-06  Nathan Sidwell  <nathan@acm.org>
18628         * ipa-visibility.c (function_and_variable_visibility): Reformat
18629         comments and long lines.  Remove extrneous if.
18630         * symtab.c (symtab_node::make_decl_local): Fix code format.
18631         (symtab_node::set_section_for_node): Fix comment typo.
18633 2017-01-06  Martin Liska  <mliska@suse.cz>
18635         PR bootstrap/79003
18636         * lra-constraints.c: Rename invariant to lra_invariant.
18637         * predict.c (set_even_probabilities): Initialize e to NULL.
18639 2017-01-05  Martin Sebor  <msebor@redhat.com>
18641         PR tree-optimization/78910
18642         * gimple-ssa-sprintf.c (tree_digits): Add an argument.
18643         (format_integer): Correct off-by-one error in the handling
18644         of precision with negative numbers in signed conversions..
18646 2017-01-05  Eric Botcazou  <ebotcazou@adacore.com>
18648         * doc/invoke.texi (C Dialect Options): Adjust -fsso-struct entry.
18650 2017-01-05  Jakub Jelinek  <jakub@redhat.com>
18652         PR tree-optimization/71016
18653         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Pass cond_stmt to
18654         factor_out_conditional_conversion.  Formatting fix.
18655         (factor_out_conditional_conversion): Add cond_stmt argument.
18656         If arg1 is INTEGER_CST, punt if new_arg0 is not any operand of
18657         cond_stmt and if arg0_def_stmt is not the only stmt in its bb.
18658         Formatting fix.
18660 2017-01-05  David Malcolm  <dmalcolm@redhat.com>
18662         * Makefile.in (OBJS): Add read-md.o, read-rtl.o,
18663         read-rtl-function.o, and selftest-rtl.o.
18664         * config/aarch64/aarch64.c: Include selftest.h and selftest-rtl.h.
18665         (selftest::aarch64_test_loading_full_dump): New function.
18666         (selftest::aarch64_run_selftests): New function.
18667         (TARGET_RUN_TARGET_SELFTESTS): Wire it up to
18668         selftest::aarch64_run_selftests.
18669         * config/i386/i386.c
18670         (selftest::ix86_test_loading_dump_fragment_1): New function.
18671         (selftest::ix86_test_loading_call_insn): New function.
18672         (selftest::ix86_test_loading_full_dump): New function.
18673         (selftest::ix86_test_loading_unspec): New function.
18674         (selftest::ix86_run_selftests): Call the new functions.
18675         * emit-rtl.c (maybe_set_max_label_num): New function.
18676         * emit-rtl.h (maybe_set_max_label_num): New decl.
18677         * function.c (instantiate_decls): Guard call to
18678         instantiate_decls_1 with if (DECL_INITIAL (fndecl)).
18679         * function-tests.c (selftest::verify_three_block_rtl_cfg): Remove
18680         "static".
18681         * gensupport.c (gen_reader::gen_reader): Pass "false"
18682         for new "compact" param of rtx_reader.
18683         * print-rtl.c (rtx_writer::print_rtx_operand): Print "(nil)"
18684         rather than an empty string for NULL strings.
18685         * read-md.c: Potentially include config.h rather than bconfig.h.
18686         Wrap include of errors.h with #ifdef GENERATOR_FILE.
18687         (have_error): New global, copied from errors.c.
18688         (md_reader::read_name): Rename to...
18689         (md_reader::read_name_1): ...this, adding "out_loc" param,
18690         and converting "missing name or number" to returning false, rather
18691         than failing.
18692         (md_reader::read_name): Reimplement in terms of read_name_1.
18693         (md_reader::read_name_or_nil): New function.
18694         (md_reader::read_string): Handle "(nil)" by returning NULL.
18695         (md_reader::md_reader): Add new param "compact".
18696         (md_reader::read_md_files): Wrap with #ifdef GENERATOR_FILE.
18697         (md_reader::read_file): New method.
18698         * read-md.h (md_reader::md_reader): Add new param "compact".
18699         (md_reader::read_file): New method.
18700         (md_reader::is_compact): New accessor.
18701         (md_reader::read_name): Convert return type from void to file_location.
18702         (md_reader::read_name_or_nil): New decl.
18703         (md_reader::read_name_1): New decl.
18704         (md_reader::m_compact): New field.
18705         (noop_reader::noop_reader): Pass "false" for new "compact" param
18706         of rtx_reader.
18707         (rtx_reader::rtx_reader): Add new "compact" param.
18708         (rtx_reader::read_rtx_operand): Make virtual and convert return
18709         type from void to rtx.
18710         (rtx_reader::read_until): New decl.
18711         (rtx_reader::handle_any_trailing_information): New virtual function.
18712         (rtx_reader::postprocess): New virtual function.
18713         (rtx_reader::finalize_string): New virtual function.
18714         (rtx_reader::m_in_call_function_usage): New field.
18715         (rtx_reader::m_reuse_rtx_by_id): New field.
18716         * read-rtl-function.c: New file.
18717         * selftest-rtl.c (selftest::assert_rtx_ptr_eq_at): New function.
18718         * selftest-rtl.h (ASSERT_RTX_PTR_EQ): New macro.
18719         (selftest::verify_three_block_rtl_cfg): New decl.
18720         * read-rtl-function.h: New file.
18721         * read-rtl.c: Potentially include config.h rather than bconfig.h.
18722         For host, include function.h, memmodel.h, and emit-rtl.h.
18723         (one_time_initialization): New function.
18724         (struct compact_insn_name): New struct.
18725         (compact_insn_names): New array.
18726         (find_code): Handle insn codes in compact dumps.
18727         (apply_subst_iterator): Wrap with #ifdef GENERATOR_FILE.
18728         (bind_subst_iter_and_attr): Likewise.
18729         (add_condition_to_string): Likewise.
18730         (add_condition_to_rtx): Likewise.
18731         (apply_attribute_uses): Likewise.
18732         (add_current_iterators): Likewise.
18733         (apply_iterators): Likewise.
18734         (initialize_iterators): Guard usage of apply_subst_iterator with
18735         #ifdef GENERATOR_FILE.
18736         (read_conditions): Wrap with #ifdef GENERATOR_FILE.
18737         (md_reader::read_mapping): Likewise.
18738         (add_define_attr_for_define_subst): Likewise.
18739         (add_define_subst_attr): Likewise.
18740         (read_subst_mapping): Likewise.
18741         (check_code_iterator): Likewise.
18742         (rtx_reader::read_rtx): Likewise.  Move one-time initialization
18743         logic to...
18744         (one_time_initialization): New function.
18745         (rtx_reader::read_until): New method.
18746         (read_flags): New function.
18747         (parse_reg_note_name): New function.
18748         (rtx_reader::read_rtx_code): Initialize "iterator" to NULL.
18749         Handle reuse_rtx ids.
18750         Wrap iterator lookup within #ifdef GENERATOR_FILE.
18751         Add parsing support for RTL dumps, mirroring the special-cases in
18752         print_rtx, by calling read_flags, reading REG_NOTE names, INSN_UID
18753         values, and calling handle_any_trailing_information.
18754         (rtx_reader::read_rtx_operand): Convert return type from void
18755         to rtx, returning return_rtx.  Handle case 'e'.  Call
18756         finalize_string on XSTR and XTMPL fields.
18757         (rtx_reader::read_nested_rtx):  Handle dumps in which trailing
18758          "(nil)" values were omitted.  Call the postprocess vfunc on the
18759         return_rtx.
18760         (rtx_reader::rtx_reader): Add new "compact" param and pass to base
18761         class ctor.  Initialize m_in_call_function_usage.  Call
18762         one_time_initialization.
18763         * rtl-tests.c (selftest::test_uncond_jump): Call
18764         set_new_first_and_last_insn.
18765         * rtl.h (read_rtx): Wrap decl with #ifdef GENERATOR_FILE.
18766         * selftest-rtl.c: New file.
18767         * selftest-rtl.h (class selftest::rtl_dump_test): New class.
18768         (selftest::get_insn_by_uid): New decl.
18769         * selftest-run-tests.c (selftest::run_tests): Call
18770         read_rtl_function_c_tests.
18771         * selftest.h  (selftest::read_rtl_function_c_tests): New decl.
18772         * tree-dfa.c (ssa_default_def): Return NULL_TREE for rtl function
18773         dumps.
18775 2017-01-05  Uros Bizjak  <ubizjak@gmail.com>
18777         * config/i386/i386.md (*testqi_ext_3): No need to handle memory
18778         operands in a special way.  Assert that pos+len <= mode precision.
18780 2017-01-05  Jakub Jelinek  <jakub@redhat.com>
18782         * common.opt (fvect-cost-model): Remove RejectNegative flag, use
18783         3 argument Alias with unlimited for the negative form.
18784         (fno-vect-cost-model): Removed.
18786 2017-01-05  Martin Liska  <mliska@suse.cz>
18788         * hsa-gen.c (gen_hsa_divmod): New function.
18789         (gen_hsa_insn_for_internal_fn_call): Use the function for IFN_DIVMOD.
18791 2017-01-05  Martin Liska  <mliska@suse.cz>
18793         PR pch/78970
18794         * gcc.c (lookup_compiler): Reject '-' filename for a precompiled
18795         header.
18797 2017-01-05  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
18799         * config/s390/s390.c (s390_expand_setmem): Unroll the loop for
18800         small constant length operands.
18802 2017-01-05  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
18804         * config/s390/s390.c (s390_expand_setmem): Avoid overlapping bytes
18805         between loop iterations.
18807 2017-01-05  Martin Liska  <mliska@suse.cz>
18809         PR sanitizer/78815
18810         * gimplify.c (gimplify_decl_expr): Compare to
18811         asan_poisoned_variables instread of checking flags.
18812         (gimplify_target_expr): Likewise.
18813         (gimplify_expr): Likewise.
18814         (gimplify_function_tree): Conditionally initialize
18815         asan_poisoned_variables.
18817 2017-01-04  Jeff Law  <law@redhat.com>
18819         PR tree-optimizatin/78812
18820         * rtl.h (contains_mem_rtx_p): Prototype.
18821         * ifcvt.c (containts_mem_rtx_p): Move from here to...
18822         * rtlanal.c (contains_mem_rtx_p): Here and remove static linkage.
18823         * gcse.c (prune_expressions): Use contains_mem_rtx_p to discover
18824         and prune MEMs that are not at the toplevel of a SET_SRC rtx.  Look
18825         through ZERO_EXTEND and SIGN_EXTEND when trying to avoid pruning MEMs.
18827 2017-01-04  Alexandre Oliva <aoliva@redhat.com>
18829         * input.c (assert_char_at_range): Default-initialize actual_range.
18831 2017-01-04  Alexandre Oliva <aoliva@redhat.com>
18833         * df-scan.c (df_ref_create_structure): Make regno unsigned,
18834         to match the caller.
18836 2017-01-04  Alexandre Oliva <aoliva@redhat.com>
18838         * cfgexpand.c (expand_gimple_basic_block): Disregard debug
18839         insns after final jump in test to emit dummy move.
18841 2017-01-04  Alexandre Oliva <aoliva@redhat.com>
18843         * gimple-iterator.h (gsi_one_nondebug_before_end_p): New.
18844         * tree-eh.c (cleanup_empty_eh): Skip more debug stmts.
18846 2017-01-04  Alexandre Oliva <aoliva@redhat.com>
18848         * multiple_target.c (create_dispatcher_calls): Init e_next.
18849         * tree-ssa-loop-split.c (split_loop): Init border.
18850         * tree-vect-loop.c (vect_determine_vectorization_factor): Init
18851         scalar_type.
18853 2017-01-04  Michael Meissner  <meissner@linux.vnet.ibm.com>
18855         PR target/71977
18856         PR target/70568
18857         PR target/78823
18858         * config/rs6000/predicates.md (sf_subreg_operand): New predicate.
18859         (altivec_register_operand): Do not return true if the operand
18860         contains a SUBREG mixing SImode and SFmode.
18861         (vsx_register_operand): Likewise.
18862         (vsx_reg_sfsubreg_ok): New predicate.
18863         (vfloat_operand): Do not return true if the operand contains a
18864         SUBREG mixing SImode and SFmode.
18865         (vint_operand): Likewise.
18866         (vlogical_operand): Likewise.
18867         (gpc_reg_operand): Likewise.
18868         (int_reg_operand): Likewise.
18869         * config/rs6000/rs6000-protos.h (valid_sf_si_move): Add declaration.
18870         * config/rs6000/rs6000.c (valid_sf_si_move): New function to
18871         determine if a MOVSI or MOVSF operation contains SUBREGs that mix
18872         SImode and SFmode.
18873         (rs6000_emit_move_si_sf_subreg): New helper function.
18874         (rs6000_emit_move): Call rs6000_emit_move_si_sf_subreg to possbily
18875         fixup SUBREGs involving SImode and SFmode.
18876         * config/rs6000/vsx.md (SFBOOL_*): New constants that are operand
18877         numbers for the new peephole2 optimization.
18878         (peephole2 for SFmode unions): New peephole2 to optimize cases in
18879         the GLIBC math library that do AND/IOR/XOR operations on single
18880         precision floating point.
18881         * config/rs6000/rs6000.h (TARGET_NO_SF_SUBREG): New internal
18882         target macros to say whether we need to avoid SUBREGs mixing
18883         SImode and SFmode.
18884         (TARGET_ALLOW_SF_SUBREG): Likewise.
18885         * config/rs6000/rs6000.md (UNSPEC_SF_FROM_SI): New unspecs.
18886         (UNSPEC_SI_FROM_SF): Likewise.
18887         (iorxor): Change spacing.
18888         (and_ior_xor): New iterator for AND, IOR, and XOR.
18889         (movsi_from_sf): New insns for SImode/SFmode SUBREG support.
18890         (movdi_from_sf_zero_ext): Likewise.
18891         (mov<mode>_hardfloat, FMOVE32 iterator): Use register_operand
18892         instead of gpc_reg_operand.  Add SImode/SFmode SUBREG support.
18893         (movsf_from_si): New insn for SImode/SFmode SUBREG support.
18894         (fma<mode>4): Use gpc_reg_operand instead of register_operand.
18895         (fms<mode>4): Likewise.
18896         (fnma<mode>4): Likewise.
18897         (fnms<mode>4): Likewise.
18898         (nfma<mode>4): Likewise.
18899         (nfms<mode>4): Likewise.
18901 2017-01-04  Marek Polacek  <polacek@redhat.com>
18903         PR c++/64767
18904         * doc/invoke.texi: Document -Wpointer-compare.
18906 2017-01-04  Jakub Jelinek  <jakub@redhat.com>
18908         * optc-gen.awk: Emit #error for -W*/-f*/-m* Enum without
18909         RejectNegative.
18911         * dwarf2out.c (output_loc_list): Don't throw away 64K+ location
18912         descriptions for -gdwarf-5 and emit them as uleb128 instead of
18913         2-byte data.
18915 2017-01-04  Kelvin Nilsen  <kelvin@gcc.gnu.org>
18917         PR target/78056
18918         * doc/sourcebuild.texi (PowerPC-specific attributes): Add
18919         documentation of the powerpc_popcntb_ok attribute.
18920         * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
18921         code to issue warning messages if a requested CPU configuration is
18922         not supported by the binary (assembler and loader) toolchain.
18923         (spe_init_builtins): Add two assertions to prevent ICE if attempt is
18924         made to define a built-in function that has been disabled.
18925         (paired_init_builtins): Add assertion to prevent ICE if attempt is
18926         made to define a built-in function that has been disabled.
18927         (altivec_init_builtins): Add comment explaining why definition
18928         of the DST built-in functions is not preceded by an assertion
18929         check.  Add assertions to prevent ICE if attempts are made to
18930         define an altivec predicate or an abs* built-in function that has
18931         been disabled.
18932         (htm_init_builtins): Add comment explaining why definition of the
18933         htm built-in functions is not preceded by an assertion check.
18935 2017-01-04  Jeff Law  <law@redhat.com>
18937         PR tree-optimizatin/67955
18938         * tree-ssa-alias.c (same_addr_size_stores_p): Check offsets first.
18939         Allow any SSA_VAR_P as the base objects.  Use integer_zerop.  Verify
18940         the points-to solution does not include pt_null.  Use DECL_PT_UID
18941         unconditionally.
18943 2017-01-04  Uros Bizjak  <ubizjak@gmail.com>
18945         * config/i386/i386.md (HI/SImode test with imm to QImode splitters):
18946         Use gen_int_mode instead of gen_lopwart for const_int operands.
18948 2017-01-04  Jakub Jelinek  <jakub@redhat.com>
18950         PR tree-optimization/71563
18951         * match.pd: Simplify X << Y into X if Y is known to be 0 or
18952         out of range value - has low bits known to be zero.
18954 2017-01-04  Alan Modra  <amodra@gmail.com>
18956         * Makefile.in (aclocal_deps): Update and order as per aclocal.m4.
18957         * configure: Regenerate.
18958         * config.in: Regenerate.
18960 2017-01-04  Jakub Jelinek  <jakub@redhat.com>
18962         PR bootstrap/77569
18963         * input.c (ebcdic_execution_charset::on_error): Don't use strstr for
18964         a substring of the message, but strcmp with the whole message.  Ifdef
18965         ENABLE_NLS, translate the message first using dgettext.
18967 2017-01-03  Jeff Law  <law@redhat.com>
18969         PR tree-optimizatin/78856
18970         * tree-ssa-threadupdate.c: Include tree-vectorizer.h.
18971         (mark_threaded_blocks): Remove code to truncate thread paths that
18972         cross multiple loop headers.  Instead invalidate the cached loop
18973         iteration information and handle case of a thread path walking
18974         into an irreducible region.
18976 2017-01-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
18978         PR target/78900
18979         * config/rs6000/rs6000.c (rs6000_split_signbit): Change some
18980         assertions.  Add support for doing the signbit if the IEEE 128-bit
18981         floating point value is in a GPR.
18982         * config/rs6000/rs6000.md (Fsignbit): Delete.
18983         (signbit<mode>2_dm): Delete using <Fsignbit> and just use "wa".
18984         Update the length attribute if the value is in a GPR.
18985         (signbit<mode>2_dm_<su>ext): Add combiner pattern to eliminate
18986         the sign or zero extension instruction, since the value is always 0/1.
18987         (signbit<mode>2_dm2): Delete using <Fsignbit>.
18989         PR target/78953
18990         * config/rs6000/vsx.md (vsx_extract_<mode>_store_p9): If we are
18991         extracting SImode to a GPR register so that we can generate a
18992         store, limit the vector to be in a traditional Altivec register
18993         for the vextuwrx instruction.
18995 2017-01-03  Ian Lance Taylor  <iant@google.com>
18997         * godump.c (go_format_type): Treat ENUMERAL_TYPE like INTEGER_TYPE.
18999 2017-01-03  Martin Sebor  <msebor@redhat.com>
19001         PR tree-optimization/78696
19002         * gimple-ssa-sprintf.c (format_floating): Correct handling of
19003         precision.  Use MPFR for %f for greater fidelity.  Correct handling
19004         of %g.
19005         (pass_sprintf_length::compute_format_length): Set width and precision
19006         specified by asrerisk to void_node for vararg functions.
19007         (try_substitute_return_value): Adjust dump output.
19009 2017-01-03  David Edelsohn  <dje.gcc@gmail.com>
19011         * doc/invoke.texi (RS6000 options): LRA is enabled by default.
19013 2017-01-03  Eric Botcazou  <ebotcazou@adacore.com>
19015         * doc/invoke.texi (SPARC options): Document -mlra as the default.
19016         * config/sparc/sparc.c (sparc_option_override): Force LRA unless
19017         -mlra/-mno-lra was passed to the compiler.
19019 2017-01-03  James Cowgill  <James.Cowgill@imgtec.com>
19021         PR rtl-optimization/65618
19022         * emit-rtl.c (try_split): Move initialization of "before" and
19023         "after" to just before the call to emit_insn_after_setloc.
19025 2017-01-03  Gerald Pfeifer  <gerald@pfeifer.com>
19027         * doc/md.texi (Standard Names): Remove reference to Java frontend.
19029 2017-01-03  Pierre-Marie de Rodat  <derodat@adacore.com>
19031         * dwarf2out.c (gen_enumeration_type_die): When
19032         -gno-strict-dwarf, add a DW_AT_encoding attribute.
19034 2017-01-03  Jakub Jelinek  <jakub@redhat.com>
19036         PR tree-optimization/78965
19037         * gimple-ssa-sprintf.c (pass_sprintf_length::compute_format_length):
19038         Change first argument from const call_info & to call_info &.  For %n
19039         set info.nowrite to false.
19041         PR middle-end/78901
19042         * gimple-ssa-sprintf.c (try_substitute_return_value): Don't change
19043         possibly throwing calls.
19045         * genmatch.c (dt_node::gen_kids_1): If generic_exprs include SSA_NAME
19046         and exprs_len || fns_len, emit the code for SSA_NAME next to the exprs
19047         and fns handling, rather than in a separate case SSA_NAME.
19049 2017-01-02  Jeff Law  <law@redhat.com>
19051         * config/darwin-driver.c (darwin_driver_init): Const-correctness
19052         fixes for first_period and second_period variables.
19054 2017-01-02  Uros Bizjak  <ubizjak@gmail.com>
19056         PR target/78967
19057         * config/i386/i386.md (UNSPEC_NOREX_MEM): New unspec.
19058         (*insvqi_1): New insn pattern.
19059         (*insvqi_1_mem_rex64): Ditto.
19060         (*insvqi_2): Ditto.
19061         (*insvqi_3): Rename from *insvqi.
19063         (*extzvqi_mem_rex64): Add UNSPEC_NOREX_MEM tag.
19065 2017-01-02  Gerald Pfeifer  <gerald@pfeifer.com>
19067         * doc/cfg.texi (Edges): Remove reference to Java.
19068         (Maintaining the CFG): Ditto.
19070 2017-01-01  Jan Hubicka  <hubicka@ucw.cz>
19072         PR middle-end/77674
19073         * symtab.c (symtab_node::binds_to_current_def_p): Fix handling of
19074         transparent aliases.
19076 2017-01-01  Jan Hubicka  <hubicka@ucw.cz>
19078         PR middle-end/77484
19079         * predict.def (PRED_CALL): Update hitrate.
19080         (PRED_INDIR_CALL, PRED_POLYMORPHIC_CALL): New predictors.
19081         * predict.c (tree_estimate_probability_bb): Split CALL predictor
19082         into direct/indirect/polymorphic variants.
19084 2017-01-01  Jakub Jelinek  <jakub@redhat.com>
19086         Update copyright years.
19088         * gcc.c (process_command): Update copyright notice dates.
19089         * gcov-dump.c (print_version): Ditto.
19090         * gcov.c (print_version): Ditto.
19091         * gcov-tool.c (print_version): Ditto.
19092         * gengtype.c (create_file): Ditto.
19093         * doc/cpp.texi: Bump @copying's copyright year.
19094         * doc/cppinternals.texi: Ditto.
19095         * doc/gcc.texi: Ditto.
19096         * doc/gccint.texi: Ditto.
19097         * doc/gcov.texi: Ditto.
19098         * doc/install.texi: Ditto.
19099         * doc/invoke.texi: Ditto.
19101 Copyright (C) 2017 Free Software Foundation, Inc.
19103 Copying and distribution of this file, with or without modification,
19104 are permitted in any medium without royalty provided the copyright
19105 notice and this notice are preserved.