1 2016-11-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
3 * rtl.h: Adjust prototype.
4 * rtlanal.c (dead_or_set_p): Change argument type to rtx_insn *.
5 (dead_or_set_regno_p): Likewise.
7 2016-11-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
9 * rtl.h: Adjust prototype.
10 * rtlanal.c (add_int_reg_note): Change argument type to rtx_insn *.
12 2016-11-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
14 * function.c (contains): Change argument type to rtx_insn *.
15 (prologue_contains): Likewise.
16 (epilogue_contains): Likewise.
17 (prologue_epilogue_contains): Likewise.
18 * function.h: Adjust prototype.
20 2016-11-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
22 * optabs.c (emit_libcall_block): Change argument type to
24 * optabs.h: Adjust prototype.
26 2016-11-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
28 * cfgrtl.c (delete_insn): Change argument type to rtx_insn *.
29 (fixup_reorder_chain): Adjust.
30 * cfgrtl.h: Adjust prototype.
32 2016-11-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
34 * rtl.h: Adjust prototype.
35 * rtlanal.c (replace_label_in_insn): Change argument type to
38 2016-11-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
40 * config/v850/v850.c (expand_prologue): Adjust.
41 (expand_epilogue): Likewise.
42 * expr.c (init_expr_target): Likewise.
43 * genrecog.c (print_subroutine): Always make the argument type
45 * recog.h: Adjust prototype.
47 2016-11-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
49 * config/aarch64/aarch64.c (aarch64_emit_unlikely_jump): split
50 up variables to make some rtx_insn *.
51 * config/alpha/alpha.c (emit_unlikely_jump): Likewise.
52 * config/arc/arc.c: Likewise.
53 * config/arm/arm.c: Likewise.
54 * config/mn10300/mn10300.c (mn10300_legitimize_pic_address):
56 * config/rs6000/rs6000.c (rs6000_expand_split_stack_prologue):
58 * config/spu/spu.c (spu_emit_branch_hint): Likewise.
60 2016-11-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
62 * config/arm/arm.c (legitimize_pic_address): Change to use
63 rtx_insn * as the type of variables.
64 (arm_pic_static_addr): Likewise.
65 (arm_emit_movpair): Likewise.
66 * config/c6x/c6x.c (reorg_split_calls): Likewise.
67 * config/darwin.c (machopic_legitimize_pic_address): Likewise.
68 * config/frv/frv.c (frv_optimize_membar_local): Likewise.
69 * config/frv/frv.md: Likewise.
70 * config/i386/i386-protos.h: Likewise.
71 * config/i386/i386.c (ix86_expand_split_stack_prologue):
73 (ix86_split_fp_branch): Likewise.
74 (predict_jump): Likewise.
75 * config/ia64/ia64.c: Likewise.
76 * config/mcore/mcore.c: Likewise.
77 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address):
79 * config/s390/s390.c: Likewise.
80 * config/s390/s390.md: Likewise.
81 * config/spu/spu.md: Likewise.
82 * config/tilegx/tilegx.c (tilegx_legitimize_tls_address):
84 * lower-subreg.c (resolve_simple_move): Likewise.
86 2016-11-20 Jeff Law <law@redhat.com>
89 * reload.h (struct target_reload): Make x_double_reg_address_ok
91 * reload.c (find_reloads_address): Check if double_reg_address_ok
92 is true for the mode of the memory reference.
93 * reload1.c (init_reload): Initialize double_reg_address_ok for
96 2016-11-20 Aldy Hernandez <aldyh@redhat.com>
99 * tree-ssa-uninit.c: Define new global max_phi_args.
100 (compute_uninit_opnds_pos): Use max_phi_args.
101 (prune_uninit_phi_opnds): Same.
102 (use_pred_not_overlap_with_undef_path_pred): Remove reference to
103 missing NUM_PREDS in function comment.
104 (can_one_predicate_be_invalidated_p): New.
105 (can_chain_union_be_invalidated_p): New.
106 (flatten_out_predicate_chains): New.
107 (uninit_ops_invalidate_phi_use): New.
108 (is_use_properly_guarded): Call uninit_ops_invalidate_phi_use.
110 2016-11-20 Marc Glisse <marc.glisse@inria.fr>
112 * fold-const.c (fold_comparison): Ignore EXACT_DIV_EXPR.
113 * match.pd (A /[ex] B CMP C): New simplifications.
115 2016-11-20 Marc Glisse <marc.glisse@inria.fr>
117 * match.pd (0 / X, X / X, X % X): New simplifications.
119 2016-11-19 Jakub Jelinek <jakub@redhat.com>
121 * config/i386/i386.c (ix86_can_inline_p): Use || instead of &
122 when checking if callee's isa flags are subset of caller's isa flags.
125 * config/i386/i386.c (ix86_valid_target_attribute_tree): Don't
126 clear opts->x_ix86_isa_flags, clear opts->x_ix86_isa_flags2
127 instead and using = 0 instead of &= 0.
129 * config/i386/i386.c (def_builtin, def_builtin2, def_builtin_const2,
130 ix86_add_new_builtins): Formatting fixes.
131 (ix86_expand_builtin): Use || instead of && for isa vs. isa2.
132 (ix86_get_builtin): Likewise.
134 * config/i386/i386.c (ix86_expand_builtin): Remove msk_mov variable,
135 don't initialize it, don't use it for the case where it isn't
136 provable %{z} nor using the same argument, instead move merge
137 argument into a new pseudo and use that as target. Formatting fixes.
139 2016-11-19 Jeff Law <law@redhat.com>
142 * config/m68k/m68k.md (bsetdreg): New pattern.
143 (bchgdreg, bclrdreg): Likewise.
145 2016-11-19 Kaz Kojima <kkojima@gcc.gnu.org>
148 * config/sh/sh-mem.cc (sh_expand_cmpnstr): Use copy_to_mode_reg
149 instead of force_reg.
150 (sh_expand_setmem): Likewise.
152 2016-11-19 Krister Walfridsson <krister.walfridsson@gmail.com>
154 * config.gcc (*-*-netbsd): Set use_gcc_stdint=wrap.
156 2016-11-18 Walter Lee <walt@tilera.com>
158 * config/tilegx/tilegx.c (tilegx_gen_bundles): Preserve
159 end-of-bundle marker for consecutive barriers.
161 2016-11-18 Walter Lee <walt@tilera.com>
163 * config/tilegx/tilegx.md (clzsi2): Fix for big-endian.
165 2016-11-18 Jakub Jelinek <jakub@redhat.com>
168 * multiple_target.c (get_attr_len): Start with argnum and increment
169 argnum on every arg. Use strchr in a loop instead of counting commas
171 (get_attr_str): Increment argnum for every comma in the string.
172 (separate_attrs): Use for instead of while loop, simplify.
173 (expand_target_clones): Rename defenition argument to definition.
174 Free attrs and attr_str even when diagnosing errors. Temporarily
175 change input_location around targetm.target_option.valid_attribute_p
176 calls. Don't emit warning or errors if that function fails.
178 * dwarf2out.c (size_of_discr_list): Fix typo in function comment.
181 * dwarf2out.c (abbrev_opt_base_type_end): New variable.
182 (die_abbrev_cmp): Sort dies with die_abbrev smaller than
183 abbrev_opt_base_type_end only by increasing die_abbrev, before
185 (optimize_abbrev_table): Don't change abbrev numbers of
186 base types and CU or optimize implicit consts in them if
187 calc_base_type_die_sizes has been called during build_abbrev_table.
188 (calc_base_type_die_sizes): If abbrev_opt_start, set
189 abbrev_opt_base_type_end to one plus largest base type's
192 2016-11-18 Jeff Law <law@redhat.com>
195 * config/m68k/m68k.c (moveq feeding equality comparison): New
197 * config/m68k/predicates.md (addq_subq_operand): New predicate.
198 (equality_comparison_operator): Likewise.
200 2016-11-18 Richard Sandiford <richard.sandiford@arm.com>
202 * rtlanal.c (load_extend_op): Move to...
203 * rtl.h: ...here and make inline.
205 2016-11-18 Terry Guo <terry.guo@arm.com>
206 Thomas Preud'homme <thomas.preudhomme@arm.com>
208 * common/config/arm/arm-common.c (arm_target_thumb_only): New function.
209 * config/arm/arm-opts.h: Include arm-flags.h.
210 (struct arm_arch_core_flag): Define.
211 (arm_arch_core_flags): Define.
212 * config/arm/arm-protos.h: Include arm-flags.h
213 (FL_NONE, FL_ANY, FL_CO_PROC, FL_ARCH3M, FL_MODE26, FL_MODE32,
214 FL_ARCH4, FL_ARCH5, FL_THUMB, FL_LDSCHED, FL_STRONG, FL_ARCH5E,
215 FL_XSCALE, FL_ARCH6, FL_VFPV2, FL_WBUF, FL_ARCH6K, FL_THUMB2, FL_NOTM,
216 FL_THUMB_DIV, FL_VFPV3, FL_NEON, FL_ARCH7EM, FL_ARCH7, FL_ARM_DIV,
217 FL_ARCH8, FL_CRC32, FL_SMALLMUL, FL_NO_VOLATILE_CE, FL_IWMMXT,
218 FL_IWMMXT2, FL_ARCH6KZ, FL2_ARCH8_1, FL2_ARCH8_2, FL2_FP16INST,
219 FL_TUNE, FL_FOR_ARCH2, FL_FOR_ARCH3, FL_FOR_ARCH3M, FL_FOR_ARCH4,
220 FL_FOR_ARCH4T, FL_FOR_ARCH5, FL_FOR_ARCH5T, FL_FOR_ARCH5E,
221 FL_FOR_ARCH5TE, FL_FOR_ARCH5TEJ, FL_FOR_ARCH6, FL_FOR_ARCH6J,
222 FL_FOR_ARCH6K, FL_FOR_ARCH6Z, FL_FOR_ARCH6ZK, FL_FOR_ARCH6KZ,
223 FL_FOR_ARCH6T2, FL_FOR_ARCH6M, FL_FOR_ARCH7, FL_FOR_ARCH7A,
224 FL_FOR_ARCH7VE, FL_FOR_ARCH7R, FL_FOR_ARCH7M, FL_FOR_ARCH7EM,
225 FL_FOR_ARCH8A, FL2_FOR_ARCH8_1A, FL2_FOR_ARCH8_2A, FL_FOR_ARCH8M_BASE,
226 FL_FOR_ARCH8M_MAIN, arm_feature_set, ARM_FSET_MAKE,
227 ARM_FSET_MAKE_CPU1, ARM_FSET_MAKE_CPU2, ARM_FSET_CPU1, ARM_FSET_CPU2,
228 ARM_FSET_EMPTY, ARM_FSET_ANY, ARM_FSET_HAS_CPU1, ARM_FSET_HAS_CPU2,
229 ARM_FSET_HAS_CPU, ARM_FSET_ADD_CPU1, ARM_FSET_ADD_CPU2,
230 ARM_FSET_DEL_CPU1, ARM_FSET_DEL_CPU2, ARM_FSET_UNION, ARM_FSET_INTER,
231 ARM_FSET_XOR, ARM_FSET_EXCLUDE, ARM_FSET_IS_EMPTY,
232 ARM_FSET_CPU_SUBSET): Move to ...
233 * config/arm/arm-flags.h: This new file.
234 * config/arm/arm.h (TARGET_MODE_SPEC_FUNCTIONS): Define.
235 (EXTRA_SPEC_FUNCTIONS): Add TARGET_MODE_SPEC_FUNCTIONS to its value.
236 (TARGET_MODE_SPECS): Define.
237 (DRIVER_SELF_SPECS): Add TARGET_MODE_SPECS to its value.
239 2016-11-18 Thomas Preud'homme <thomas.preudhomme@arm.com>
241 * config/arm/arm-protos.h (FL_NONE, FL_ANY, FL_CO_PROC, FL_ARCH3M,
242 FL_MODE26, FL_MODE32, FL_ARCH4, FL_ARCH5, FL_THUMB, FL_LDSCHED,
243 FL_STRONG, FL_ARCH5E, FL_XSCALE, FL_ARCH6, FL_VFPV2, FL_WBUF,
244 FL_ARCH6K, FL_THUMB2, FL_NOTM, FL_THUMB_DIV, FL_VFPV3, FL_NEON,
245 FL_ARCH7EM, FL_ARCH7, FL_ARM_DIV, FL_ARCH8, FL_CRC32, FL_SMALLMUL,
246 FL_NO_VOLATILE_CE, FL_IWMMXT, FL_IWMMXT2, FL_ARCH6KZ, FL2_ARCH8_1,
247 FL2_ARCH8_2, FL2_FP16INST): Reindent comment, add final dot when
248 missing and make value unsigned.
249 (arm_feature_set): Use unsigned entries instead of unsigned long.
251 2016-11-18 Dominik Vogt <vogt@linux.vnet.ibm.com>
253 Re-apply after PR bootstrap/77359 is fixed:
254 2016-08-23 Dominik Vogt <vogt@linux.vnet.ibm.com>
256 * explow.c (get_dynamic_stack_size): Take known alignment of stack
257 pointer + STACK_DYNAMIC_OFFSET into account when calculating the
260 2016-11-18 Dominik Vogt <vogt@linux.vnet.ibm.com>
263 * config/rs6000/rs6000.c (rs6000_stack_info): Properly align local
264 variables in functions calling alloca. Also update the ASCII
266 * config/rs6000/rs6000.h (STARTING_FRAME_OFFSET)
267 (STACK_DYNAMIC_OFFSET): Likewise.
268 * config/rs6000/aix.h (STARTING_FRAME_OFFSET)
269 (STACK_DYNAMIC_OFFSET): Copy AIX specific versions of the rs6000.h
272 2016-11-18 Richard Sandiford <richard.sandiford@arm.com>
273 Alan Hayward <alan.hayward@arm.com>
274 David Sherwood <david.sherwood@arm.com>
276 * combine.c (try_combine): Use rtx_mode_t instead of std::make_pair.
277 * dwarf2out.c (mem_loc_descriptor, loc_descriptor): Likewise.
278 (add_const_value_attribute): Likewise.
279 * explow.c (plus_constant): Likewise.
280 * expmed.c (expand_mult, make_tree): Likewise.
281 * expr.c (convert_modes): Likewise.
282 * loop-doloop.c (doloop_optimize): Likewise.
283 * postreload.c (reload_cse_simplify_set): Likewise.
284 * simplify-rtx.c (simplify_const_unary_operation): Likewise.
285 (simplify_binary_operation_1, simplify_const_binary_operation):
286 (simplify_const_relational_operation, simplify_immed_subreg): Likewise.
287 * wide-int.h: Update documentation to recommend rtx_mode_t
288 instead of std::make_pair.
290 2016-11-18 Richard Sandiford <richard.sandiford@arm.com>
291 Alan Hayward <alan.hayward@arm.com>
292 David Sherwood <david.sherwood@arm.com>
294 * tree.h (SET_DECL_MODE): New macro.
295 * cfgexpand.c (avoid_deep_ter_for_debug): Use SET_DECL_MODE.
296 (expand_gimple_basic_block): Likewise.
297 * function.c (split_complex_args): Likeise.
298 * ipa-prop.c (ipa_modify_call_arguments): Likewise.
299 * omp-simd-clone.c (ipa_simd_modify_stmt_ops): Likewise.
300 * stor-layout.c (layout_decl, relayout_decl): Likewise.
301 (finish_bitfield_representative): Likewise.
302 * tree.c (make_node_stat): Likewise.
303 * tree-inline.c (remap_ssa_name): Likewise.
304 (tree_function_versioning): Likewise.
305 * tree-into-ssa.c (rewrite_debug_stmt_uses): Likewise.
306 * tree-sra.c (sra_ipa_reset_debug_stmts): Likewise.
307 * tree-ssa-ccp.c (optimize_atomic_bit_test_and): Likewise.
308 * tree-ssa-loop-ivopts.c (remove_unused_ivs): Likewise.
309 * tree-ssa.c (insert_debug_temp_for_var_def): Likewise.
310 * tree-streamer-in.c (unpack_ts_decl_common_value_fields): Likewise.
311 * varasm.c (make_debug_expr_from_rtl): Likewise.
313 2016-11-18 Segher Boessenkool <segher@kernel.crashing.org>
315 PR rtl-optimization/71785
316 * bb-reorder.c (maybe_duplicate_computed_goto): New function.
317 (duplicate_computed_gotos): New function.
318 (pass_duplicate_computed_gotos::execute): Rewrite.
320 2016-11-17 Jeff Law <law@redhat.com>
323 * config/m68k/m68k.c (m68k_expand_epilogue): Emit a scheduling
324 barrier prior to deallocating the stack.
326 2016-11-17 Andrew Burgess <andrew.burgess@embecosm.com>
328 * config/arc/arc.md (cmem bit/sign-extend peephole2): New peephole
329 to make better use of cmem loads in the case where a single bit is
331 * config/arc/predicates.md (ge_lt_comparison_operator): New
334 2016-11-17 Andrew Senkevich <andrew.senkevich@intel.com>
336 * config/i386/i386.c (processor_features): Add F_AVX5124VNNIW,
338 (isa_names_table): Handle new features.
340 2016-11-17 Kirill Yukhin <kirill.yukhin@gmail.com>
341 Andrew Senkevich <andrew.senkevich@intel.com>
343 * common/config/i386/i386-common.c
344 (OPTION_MASK_ISA_AVX5124FMAPS_SET,
345 OPTION_MASK_ISA_AVX5124FMAPS_UNSET,
346 OPTION_MASK_ISA_AVX5124VNNIW_SET,
347 OPTION_MASK_ISA_AVX5124VNNIW_UNSET): New.
348 (ix86_handle_option): Handle OPT_mavx5124fmaps,
350 * config.gcc: Add avx5124fmapsintrin.h, avx5124vnniwintrin.h.
351 * config/i386/avx5124fmapsintrin.h: New file.
352 * config/i386/avx5124vnniwintrin.h: Ditto.
353 * config/i386/constraints.md (h): New constraint.
354 * config/i386/cpuid.h: (bit_AVX5124VNNIW,
355 bit_AVX5124FMAPS): New.
356 * config/i386/driver-i386.c (host_detect_local_cpu):
357 Detect avx5124fmaps, avx5124vnniw.
358 * config/i386/i386-builtin-types.def: Add types
359 V16SF_FTYPE_V16SF_V16SF_V16SF_V16SF_V16SF_PCV4SF_V16SF_UHI,
360 V16SF_FTYPE_V16SF_V16SF_V16SF_V16SF_V16SF_PCV4SF,
361 V4SF_FTYPE_V4SF_V4SF_V4SF_V4SF_V4SF_PCV4SF,
362 V4SF_FTYPE_V4SF_V4SF_V4SF_V4SF_V4SF_PCV4SF_V4SF_UQI,
363 V16SI_FTYPE_V16SI_V16SI_V16SI_V16SI_V16SI_PCV4SI,
364 V16SI_FTYPE_V16SI_V16SI_V16SI_V16SI_V16SI_PCV4SI_V16SI_UHI.
365 * config/i386/i386-builtin.def (__builtin_ia32_4fmaddps_mask,
366 __builtin_ia32_4fmaddps, __builtin_ia32_4fmaddss,
367 __builtin_ia32_4fmaddss_mask, __builtin_ia32_4fnmaddps_mask,
368 __builtin_ia32_4fnmaddps, __builtin_ia32_4fnmaddss,
369 __builtin_ia32_4fnmaddss_mask, __builtin_ia32_vp4dpwssd,
370 __builtin_ia32_vp4dpwssd_mask, __builtin_ia32_vp4dpwssds,
371 __builtin_ia32_vp4dpwssds_mask): New.
372 * config/i386/i386-c.c (ix86_target_macros_internal):
373 Define __AVX5124FMAPS__, __AVX5124VNNIW__.
374 * config/i386/i386-modes.def: Fixed comment typos, added new
375 modes (VECTOR_MODES (FLOAT, 256), VECTOR_MODE (INT, SI, 64)).
376 * config/i386/i386.c (ix86_target_string): Add -mavx5124fmaps,
378 (PTA_AVX5124FMAPS, PTA_AVX5124VNNIW): Define.
379 (ix86_option_override_internal): Handle new options.
380 (ix86_valid_target_attribute_inner_p): Add avx5124fmaps,
382 (ix86_expand_builtin): Handle new builtins.
383 (ix86_additional_allocno_class_p): New.
384 * config/i386/i386.h (TARGET_AVX5124FMAPS,
385 TARGET_AVX5124FMAPS_P,
387 TARGET_AVX5124VNNIW_P): Define.
388 (reg_class): Add MOD4_SSE_REGS.
389 (MOD4_SSE_REG_P, MOD4_SSE_REGNO_P): New.
390 * config/i386/i386.opt: Add mavx5124fmaps, mavx5124vnniw.
391 * config/i386/immintrin.h: Include avx5124fmapsintrin.h,
392 avx5124vnniwintrin.h.
393 * config/i386/sse.md (unspec): Add UNSPEC_VP4FMADD,
395 UNSPEC_VP4DPWSSD, UNSPEC_VP4DPWSSDS.
396 (define_mode_iterator IMOD4): New.
397 (define_mode_attr imod4_narrow): Ditto.
398 (define_insn "mov<mode>"): Ditto.
399 (define_insn "avx5124fmaddps_4fmaddps"): Ditto.
400 (define_insn "avx5124fmaddps_4fmaddps_mask"): Ditto.
401 (define_insn "avx5124fmaddps_4fmaddps_maskz"): Ditto.
402 (define_insn "avx5124fmaddps_4fmaddss"): Ditto.
403 (define_insn "avx5124fmaddps_4fmaddss_mask"): Ditto.
404 (define_insn "avx5124fmaddps_4fmaddss_maskz"): Ditto.
405 (define_insn "avx5124fmaddps_4fnmaddps"): Ditto.
406 (define_insn "avx5124fmaddps_4fnmaddps_mask"): Ditto.
407 (define_insn "avx5124fmaddps_4fnmaddps_maskz"): Ditto.
408 (define_insn "avx5124fmaddps_4fnmaddss"): Ditto.
409 (define_insn "avx5124fmaddps_4fnmaddss_mask"): Ditto.
410 (define_insn "avx5124fmaddps_4fnmaddss_maskz"): Ditto.
411 (define_insn "avx5124vnniw_vp4dpwssd"): Ditto.
412 (define_insn "avx5124vnniw_vp4dpwssd_mask"): Ditto.
413 (define_insn "avx5124vnniw_vp4dpwssd_maskz"): Ditto.
414 (define_insn "avx5124vnniw_vp4dpwssds"): Ditto.
415 (define_insn "avx5124vnniw_vp4dpwssds_mask"): Ditto.
416 (define_insn "avx5124vnniw_vp4dpwssds_maskz"): Ditto.
417 * init-regs.c (initialize_uninitialized_regs): Add emit_clobber call.
418 * genmodes.c (mode_size_inline): Extend return type.
419 * machmode.h (mode_size, mode_base_align): Extend type.
421 2016-11-17 Michael Meissner <meissner@linux.vnet.ibm.com>
424 * config/rs6000/predicates.md (fusion_addis_mem_combo_load): Add
425 the appropriate checks for SFmode/DFmode load/stores in GPR
427 (fusion_addis_mem_combo_store): Likewise.
428 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Rename
429 fusion_fpr_* to fusion_vsx_* and add in support for ISA 3.0 scalar
430 d-form instructions for traditional Altivec registers.
431 (emit_fusion_p9_load): Likewise.
432 (emit_fusion_p9_store): Likewise.
433 * config/rs6000/rs6000.md (p9 fusion store peephole2): Remove
434 early clobber from scratch register. Do not match if the register
435 being stored is the scratch register.
436 (fusion_vsx_<P:mode>_<FPR_FUSION:mode>_load): Rename fusion_fpr_*
437 to fusion_vsx_* and add in support for ISA 3.0 scalar d-form
438 instructions for traditional Altivec registers.
439 (fusion_fpr_<P:mode>_<FPR_FUSION:mode>_load): Likewise.
440 (fusion_vsx_<P:mode>_<FPR_FUSION:mode>_store): Likewise.
441 (fusion_fpr_<P:mode>_<FPR_FUSION:mode>_store): Likewise.
443 2016-11-17 Thomas Preud'homme <thomas.preudhomme@arm.com>
446 * config/arm/arm.c (thumb1_expand_prologue): Distinguish between lr
447 being live in the function and lr needing to be saved. Distinguish
448 between already saved pushable registers and registers to push.
449 Check for LR being an available pushable register.
451 2016-11-17 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
453 * config/i386/i386.md (cmpstrnsi): New test to bail out if neither
454 string input is a string constant.
455 * builtins.c (expand_builtin_strncmp): Attempt expansion of strncmp
456 via cmpstrnsi even if neither string is constant.
458 2016-11-17 Jakub Jelinek <jakub@redhat.com>
461 * varasm.c (default_use_anchors_for_symbol_p): Fix a comment typo.
462 Don't test decl != NULL. Don't look at DECL_SIZE, but DECL_SIZE_UNIT
463 instead, return false if it is NULL, or doesn't fit into uhwi, or
464 is larger or equal to targetm.max_anchor_offset.
466 2016-11-17 Pip Cet <pipcet@gmail.com>
467 Eric Botcazou <ebotcazou@adacore.com>
469 PR rtl-optimization/78355
470 * doc/tm.texi.in (SLOW_UNALIGNED_ACCESS): Document that the macro only
471 needs to deal with unaligned accesses.
472 * doc/tm.texi: Regenerate.
473 * lra-constraints.c (simplify_operand_subreg): Only invoke
474 SLOW_UNALIGNED_ACCESS on innermode if the MEM is not aligned enough.
476 2016-11-17 David Malcolm <dmalcolm@redhat.com>
478 * input.c (selftest::test_lexer_string_locations_long_line): New
480 (selftest::test_lexer_string_locations_raw_string_multiline): New
482 (selftest::input_c_tests): Call the new functions, via
483 for_each_line_table_case.
485 2016-11-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
487 * config/aarch64/aarch64.md (mov<mode>): Call
488 aarch64_split_dimode_const_store on DImode constant stores.
489 * config/aarch64/aarch64-protos.h (aarch64_split_dimode_const_store):
491 * config/aarch64/aarch64.c (aarch64_split_dimode_const_store): New
494 2016-11-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
495 Richard Biener <rguenther@suse.de>
497 PR tree-optimization/77848
498 * tree-if-conv.c (tree_if_conversion): Always version loops unless
499 the user specified -ftree-loop-if-convert.
501 2016-11-17 Bernd Edlinger <bernd.edlinger@hotmail.de>
504 * config/arm/arm.md (*thumb2_ldrd, *thumb2_ldrd_base,
505 *thumb2_ldrd_base_neg, *thumb2_strd, *thumb2_strd_base,
506 *thumb2_strd_base_neg): Recognize insn regardless of
507 current_tune->prefer_ldrd_strd.
508 * config/arm/ldrdstrd.md: Enable all ldrd/strd peephole rules
511 2016-11-17 Claudiu Zissulescu <claziss@synopsys.com>
513 * config/arc/arc.c (arc_ccfsm_post_advance): Handle return
516 2016-11-17 Claudiu Zissulescu <claziss@synopsys.com>
518 * config/arc/arc-arches.def: Add FPX quarkse instruction as valid
520 * config/arc/arc-c.def (__ARC_FPX_QUARK__): Define.
521 * config/arc/arc-cpus.def (quarkse_em): Add.
522 * config/arc/arc-options.def (FL_FPX_QUARK, FL_QUARK): Likewise.
523 * config/arc/arc-opts.h (FPX_QK): Define.
524 * config/arc/arc-tables.opt: Regenerate.
525 * config/arc/arc.c (gen_compare_reg): Change.
526 (arc_register_move_cost): Avoid Dy,Dx moves.
527 * config/arc/arc.h (TARGET_HARD_FLOAT): Change.
528 (TARGET_FPX_QUARK, TARGET_FP_ASSIST): Define.
529 * config/arc/arc.md (divsf3, sqrtsf2, fix_truncsfsi2, floatsisf2):
531 * config/arc/fpu.md (divsf3_fpu, sqrtsf2_fpu, floatsisf2_fpu)
532 (fix_truncsfsi2_fpu): Rename.
533 * config/arc/fpx.md (cmp_quark, cmpsf_quark_, cmpsf_quark_ord)
534 (cmpsf_quark_uneq, cmpsf_quark_eq, divsf3_quark, sqrtsf2_quark)
535 (fix_truncsfsi2_quark, floatsisf2_quark): New patterns.
536 * config/arc/t-multilib: Regenerate.
538 2016-11-17 Georg-Johann Lay <avr@gjlay.de>
540 * config/avr/avr.c (avr_print_operand_address): Use CONST_INT_P if
542 (ashlqi3_out, ashlsi3_out, ashrqi3_out, ashrhi3_out): Same.
543 (ashrsi3_out, lshrqi3_out, lshrhi3_out, lshrsi3_out): Same.
544 (avr_rtx_costs_1, extra_constraint_Q): Same.
545 (avr_address_cost): Use SUBREG_P if possible.
547 2016-11-17 Richard Biener <rguenther@suse.de>
550 * tree-cfgcleanup.c (cleanup_control_flow_bb): Do not turn
551 non-local goto into CFG.
553 2016-11-17 Richard Biener <rguenther@suse.de>
555 * common.opt (ftree-loop-if-convert-stores): Mark as preserved for
556 backward compatibility.
557 * doc/invoke.texi (ftree-loop-if-convert-stores): Remove.
558 * tree-if-conv.c (pass_if_conversion::gate): Do not test
559 flag_tree_loop_if_convert_stores.
560 (pass_if_conversion::execute): Likewise.
562 2016-11-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
564 * config/aarch64/predicates.md (aarch64_reg_or_fp_zero): Check for
565 const_double code before calling aarch64_float_const_zero_rtx_p.
567 2016-11-17 Richard Biener <rguenther@suse.de>
569 PR tree-optimization/78306
570 * ipa-inline-analysis.c (initialize_inline_failed): Do not
571 inhibit inlining if function calls cilk_spawn.
572 (can_inline_edge_p): Likewise.
574 2016-11-17 Richard Biener <rguenther@suse.de>
577 * fold-const.c (negate_expr_p): Fix multiplication case.
579 2016-11-17 Chung-Lin Tang <cltang@codesourcery.com>
582 * config/nios2/nios2.c (nios2_init_libfuncs): Remove TARGET_LINUX_ABI
584 (TARGET_INIT_LIBFUNCS): Delete definition and...
585 * config/nios2/linux.h (TARGET_INIT_LIBFUNCS): ...move to here, add
588 2016-11-17 Krister Walfridsson <krister.walfridsson@gmail.com>
590 * config/netbsd-stdint.h: New.
591 * config.gcc (i[34567]86-*-netbsd): Add netbsd-stdint.h to tm_file.
592 (x86_64-*-netbsd*): Likewise.
594 2016-11-16 Andrew PInski <apinski@cavium.com>
596 * config/aarch64/aarch64.opt (mverbose-cost-dump): New option.
597 * config/aarch64/aarch64.c (aarch64_rtx_costs): Use
598 flag_aarch64_verbose_cost instead of checking for details dump.
599 (aarch64_rtx_costs_wrapper): Likewise.
601 2016-11-16 Jakub Jelinek <jakub@redhat.com>
603 PR rtl-optimization/78378
604 * combine.c (make_extraction): Use force_to_mode for non-{REG,MEM}
605 inner only if pos is 0. Fix up formatting.
607 2016-11-17 Alan Modra <amodra@gmail.com>
609 PR rtl-optimization/78325
610 PR rtl-optimization/70890
611 * ira.c (combine_and_move_insns): Only remove REG_EQUIV notes
614 2016-11-16 Jason Merrill <jason@redhat.com>
616 * rtl.h: Declare gt_ggc_mx and gt_pch_nx.
618 2016-11-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
619 Richard Biener <rguenther@suse.de>
621 PR tree-optimization/77848
622 * tree-if-conv.c (version_loop_for_if_conversion): When versioning
623 an outer loop, only save basic block aux information for the inner
625 (versionable_outer_loop_p): New function.
626 (tree_if_conversion): Version the outer loop instead of the inner
627 one if the pattern will be recognized for outer-loop
630 2016-11-16 Andrew Burgess <andrew.burgess@embecosm.com>
632 * gcc/bb-reorder.c: Remove 'toplev.h' include.
633 (pass_partition_blocks::gate): No longer check
634 user_defined_section_attribute, instead check the function decl
635 for a section attribute.
636 * gcc/c-family/c-attribs.c (handle_section_attribute): No longer
637 set user_defined_section_attribute.
638 * gcc/final.c (rest_of_handle_final): Likewise.
639 * gcc/toplev.c: Remove definition of user_defined_section_attribute.
640 * gcc/toplev.h: Remove declaration of
641 user_defined_section_attribute.
643 2016-11-16 Maciej W. Rozycki <macro@imgtec.com>
645 * config/mips/mips.md (casesi_internal_mips16_<mode>):
646 Explicitly switch between JR and JRC for the table jump. Adjust
649 2016-11-16 Maciej W. Rozycki <macro@imgtec.com>
651 * config/mips/mips.md (casesi_internal_mips16_<mode>): Set
652 `insn_count' to 11 rather than 16.
654 2016-11-16 Maciej W. Rozycki <macro@imgtec.com>
656 * config/mips/mips.md (casesi_internal_mips16_<mode>): Use the
657 `ltu' rather than `leu' operation in the RTL pattern
659 2016-11-16 Maciej W. Rozycki <macro@imgtec.com>
661 * config/mips/mips.md (casesi_internal_mips16_<mode>): Add
662 missing <d> instruction prefixes throughout. Correct
665 2016-11-16 Maciej W. Rozycki <macro@imgtec.com>
667 * config/mips/mips.c (mips_output_jump): Output R_MICROMIPS_JALR
668 rather than R_MIPS_JALR relocation in microMIPS code. Do not
669 cancel short delay slots in PIC call relaxation.
671 2016-11-16 Thomas Preud'homme <thomas.preudhomme@arm.com>
673 * config/arm/arm.md (arm_addsi3): Add alternative for addition of
674 general register with general register or ARM constant into SP
677 2016-11-16 Jakub Jelinek <jakub@redhat.com>
680 * omp-low.c (expand_omp_for_static_nochunk): Don't assert
681 that loop->header == body_bb if broken_loop.
683 2015-11-16 Wilco Dijkstra <wdijkstr@arm.com>
685 * tree-ssa-math-opts.c (bswap_replace): Remove test
686 of SLOW_UNALIGNED_ACCESS.
688 2016-11-16 Alexander Monakov <amonakov@ispras.ru>
690 * config/nvptx/mkoffload.c (main): Check that either OpenACC or OpenMP
691 is selected. Pass -mgomp to offload compiler in OpenMP case.
692 * config/nvptx/nvptx-protos.h (nvptx_shuffle_kind): Move enum
693 declaration from nvptx.c.
694 (nvptx_gen_shuffle): Declare.
695 (nvptx_output_set_softstack): Declare.
696 * config/nvptx/nvptx.c (nvptx_shuffle_kind): Move to nvptx-protos.h.
697 (need_softstack_decl): New variable.
698 (need_unisimt_decl): New variable.
699 (diagnose_openacc_conflict): New. Use it...
700 (nvptx_option_override): ...here. Handle TARGET_GOMP.
701 (nvptx_encode_section_info): Handle "shared" attribute.
702 (write_as_kernel): Restrict to OpenACC target regions.
703 (init_softstack_frame): New.
704 (nvptx_init_unisimt_predicate): New.
705 (write_omp_entry): New. Use it...
706 (nvptx_declare_function_name): ...here to emit OpenMP target region
707 entrypoints. Handle TARGET_SOFT_STACK. Call
708 nvptx_init_unisimt_predicate.
709 (nvptx_output_set_softstack): New.
710 (nvptx_get_drap_rtx): Return %argp as the DRAP if needed.
711 (nvptx_gen_shuffle): Export.
712 (nvptx_output_call_insn): Handle COND_EXEC patterns. Emit instruction
714 (nvptx_print_operand): Fix handling of instruction predicates.
715 (nvptx_get_unisimt_master): New helper function.
716 (nvptx_get_unisimt_predicate): Ditto.
717 (nvptx_call_insn_is_syscall_p): Ditto.
718 (nvptx_unisimt_handle_set): Ditto.
719 (nvptx_reorg_uniform_simt): New. Transform code for -muniform-simt.
720 (nvptx_reorg): Call nvptx_reorg_uniform_simt.
721 (nvptx_handle_shared_attribute): New. Use it...
722 (nvptx_attribute_table): ... here (new entry).
723 (nvptx_record_offload_symbol): Handle NULL attributes.
724 (nvptx_file_end): Handle need_softstack_decl and need_unisimt_decl.
725 (nvptx_simt_vf): New.
726 (TARGET_SIMT_VF): Define.
727 * config/nvptx/nvptx.h (TARGET_CPU_CPP_BUILTINS): Define
728 __nvptx_softstack or __nvptx_unisimt__ when -msoft-stack, or resp.
729 -muniform-simt option is active.
730 (STACK_SIZE_MODE): Define.
731 (FIXED_REGISTERS): Adjust.
732 (SOFTSTACK_SLOT_REGNUM): New.
733 (SOFTSTACK_PREV_REGNUM): New.
734 (REGISTER_NAMES): Adjust.
735 (struct machine_function): New fields.
736 * config/nvptx/nvptx.md (UNSPEC_SET_SOFTSTACK): New.
737 (UNSPEC_VOTE_BALLOT): Ditto.
738 (UNSPEC_LANEID): Ditto.
739 (UNSPECV_NOUNROLL): Ditto.
740 (atomic): New attribute.
741 (predicable): New attribute. Generate predicated forms via
743 (br_true): Mark as not predicable.
745 (br_true_uni): Ditto.
746 (br_false_uni): Ditto.
748 (trap_if_true): Ditto.
749 (trap_if_false): Ditto.
751 (nvptx_forked): Ditto.
752 (nvptx_joining): Ditto.
754 (nvptx_barsync): Ditto.
755 (epilogue): Emit stack restore if TARGET_SOFT_STACK.
756 (allocate_stack): Implement for TARGET_SOFT_STACK. Remove unused code.
757 (allocate_stack_<mode>): Remove unused pattern.
758 (set_softstack_insn): New pattern.
759 (restore_stack_block): Handle for TARGET_SOFT_STACK.
760 (nvptx_vote_ballot): New pattern.
761 (omp_simt_lane): Ditto.
762 (omp_simt_last_lane): Ditto.
763 (omp_simt_ordered): Ditto.
764 (omp_simt_vote_any): Ditto.
765 (omp_simt_xchg_bfly): Ditto.
766 (omp_simt_xchg_idx): Ditto.
767 (nvptx_nounroll): Ditto.
768 (atomic_compare_and_swap<mode>_1): Mark with atomic attribute.
769 (atomic_exchange<mode>): Ditto.
770 (atomic_fetch_add<mode>): Ditto.
771 (atomic_fetch_addsf): Ditto.
772 (atomic_fetch_<logic><mode>): Ditto.
773 * config/nvptx/nvptx.opt: (msoft-stack): New option.
774 (muniform-simt): Ditto.
776 * config/nvptx/t-nvptx (MULTILIB_OPTIONS): New.
777 * doc/extend.texi (Nvidia PTX Variable Attributes): New section.
778 * doc/invoke.texi (msoft-stack): Document.
779 (muniform-simt): Document
781 * doc/tm.texi: Regenerate.
782 * doc/tm.texi.in: (TARGET_SIMT_VF): New hook.
783 * target.def: Define it.
784 * target-insns.def (omp_simt_lane): New.
785 (omp_simt_last_lane): New.
786 (omp_simt_ordered): New.
787 (omp_simt_vote_any): New.
788 (omp_simt_xchg_bfly): New.
789 (omp_simt_xchg_idx): New.
791 2016-11-16 Maciej W. Rozycki <macro@imgtec.com>
793 * config/mips/mips-protos.h (mips_set_text_contents_type): New
795 * config/mips/mips.h (ASM_OUTPUT_BEFORE_CASE_LABEL): New macro.
796 (ASM_OUTPUT_CASE_END): Likewise.
797 * config/mips/mips.c (mips_set_text_contents_type): New
799 (mips16_emit_constants): Record the pool's initial label number
800 with the `consttable' insn. Emit a `consttable_end' insn at the
802 (mips_final_prescan_insn): Call `mips_set_text_contents_type'
803 for `consttable' insns.
804 (mips_final_postscan_insn): Call `mips_set_text_contents_type'
805 for `consttable_end' insns.
806 * config/mips/mips.md (unspec): Add UNSPEC_CONSTTABLE_END enum
808 (consttable): Add operand.
809 (consttable_end): New insn.
811 2016-11-16 Yuri Rumyantsev <ysrumyan@gmail.com>
813 * params.def (PARAM_VECT_EPILOGUES_NOMASK): New.
814 * tree-if-conv.c (tree_if_conversion): Make public.
815 * * tree-if-conv.h: New file.
816 * tree-vect-data-refs.c (vect_analyze_data_ref_dependences) Avoid
817 dynamic alias checks for epilogues.
818 * tree-vect-loop-manip.c (vect_do_peeling): Return created epilog.
819 * tree-vect-loop.c: include tree-if-conv.h.
820 (new_loop_vec_info): Add zeroing orig_loop_info field.
821 (vect_analyze_loop_2): Don't try to enhance alignment for epilogues.
822 (vect_analyze_loop): Add argument ORIG_LOOP_INFO which is not NULL
823 if epilogue is vectorized, set up orig_loop_info field of loop_vinfo
824 using passed argument.
825 (vect_transform_loop): Check if created epilogue should be returned
826 for further vectorization with less vf. If-convert epilogue if
827 required. Print vectorization success for epilogue.
828 * tree-vectorizer.c (vectorize_loops): Add epilogue vectorization
829 if it is required, pass loop_vinfo produced during vectorization of
830 loop body to vect_analyze_loop.
831 * tree-vectorizer.h (struct _loop_vec_info): Add new field
833 (LOOP_VINFO_ORIG_LOOP_INFO): New.
834 (LOOP_VINFO_EPILOGUE_P): New.
835 (LOOP_VINFO_ORIG_VECT_FACTOR): New.
836 (vect_do_peeling): Change prototype to return epilogue.
837 (vect_analyze_loop): Add argument of loop_vec_info type.
838 (vect_transform_loop): Return created loop.
840 2016-11-16 Segher Boessenkool <segher@kernel.crashing.org>
842 * config/rs6000/rs6000.c (rs6000_components_for_bb): Mark the LR
843 component as used also if LR_REGNO is a live input to the bb.
844 * df-scan.c (df_get_entry_block_def_set): Return immediately after
845 clearing the set if DF_SCAN_EMPTY_ENTRY_EXIT is set.
846 (df_get_exit_block_use_set): Ditto.
847 * df.h (df_scan_flags): New enum.
848 * shrink-wrap.c (try_shrink_wrapping_separate): Set
849 DF_SCAN_EMPTY_ENTRY_EXIT in df_scan->local_flags, and call
850 df_update_entry_block_defs and df_update_exit_block_uses
851 at the start; clear the flag and call those functions at the end.
853 2016-11-16 Richard Sandiford <richard.sandiford@arm.com>
854 Alan Hayward <alan.hayward@arm.com>
855 David Sherwood <david.sherwood@arm.com>
857 * tree-vect-loop-manip.c (slpeel_make_loop_iterate_ntimes): Set
858 nb_iterations to the number of latch iterations rather than the
859 number of loop iterations.
861 2016-11-16 Richard Sandiford <richard.sandiford@arm.com>
862 Alan Hayward <alan.hayward@arm.com>
863 David Sherwood <david.sherwood@arm.com>
865 * combine.c (maybe_swap_commutative_operands): New function.
866 (combine_simplify_rtx): Use it.
867 (change_zero_ext): Likewise.
868 (make_compound_operation_int): New function, split out of...
869 (make_compound_operation): ...here. Use
870 maybe_swap_commutative_operands for both.
872 2016-11-16 Richard Earnshaw <rearnsha@arm.com>
874 * arm/arm-fpus.def (vfpv2): New FPU, currently an alias for 'vfp'.
875 (neon-vfpv3): New FPU, currently an alias for 'neon'.
876 * arm/arm-tables.opt: Regenerated.
877 * arm/t-aprofile (MULTILIB_REUSE): Add reuse rules for vfpv2 and
879 * doc/invoke.texi (ARM: -mfpu): Document new options. Note that 'vfp'
880 and 'neon' are aliases for specific implementations.
882 2016-11-16 Richard Sandiford <richard.sandiford@arm.com>
883 Alan Hayward <alan.hayward@arm.com>
884 David Sherwood <david.sherwood@arm.com>
886 * optabs.c (vector_compare_rtx): Add a cmp_mode parameter
887 and use it in the final call to gen_rtx_fmt_ee.
888 (expand_vec_cond_expr): Update accordingly.
889 (expand_vec_cmp_expr): Likewise.
891 2016-11-16 Richard Sandiford <richard.sandiford@arm.com>
892 Alan Hayward <alan.hayward@arm.com>
893 David Sherwood <david.sherwood@arm.com>
895 * cprop.c (local_cprop_find_used_regs): Use df_read_modify_subreg_p.
897 2016-11-16 Richard Biener <rguenther@suse.de>
900 * gimplify.c (gimplify_function_tree): Do not instrument
901 GNU extern inline functions.
903 2016-11-16 Martin Liska <mliska@suse.cz>
906 * gimplify.c (gimplify_switch_expr): Always save previous
907 gimplify_ctxp->live_switch_vars.
909 2016-11-16 Andrew Burgess <andrew.burgess@embecosm.com>
911 * config/arc/arc.md (movb peephole2): New peephole2 to merge two
912 zero_extract operations to allow a movb to occur.
913 * testsuite/gcc.target/arc/movb-1.c: Update little endian arc results.
914 * testsuite/gcc.target/arc/movb-2.c: Likewise.
915 * testsuite/gcc.target/arc/movb-5.c: Likewise.
916 * testsuite/gcc.target/arc/movh_cl-1.c: Extend test to cover
919 2016-11-16 Richard Sandiford <richard.sandiford@arm.com>
920 Alan Hayward <alan.hayward@arm.com>
921 David Sherwood <david.sherwood@arm.com>
923 * expr.c (emit_group_load_1): Tighten check for whether an
924 access involves only one operand of a CONCAT. Use extract_bit_field
925 for constants if the bit range does span the whole operand.
927 2016-11-16 Richard Sandiford <richard.sandiford@arm.com>
928 Alan Hayward <alan.hayward@arm.com>
929 David Sherwood <david.sherwood@arm.com>
931 * rtlanal.c (rtx_addr_can_trap_p_1): Handle unknown sizes.
933 2016-11-16 Richard Sandiford <richard.sandiford@arm.com>
934 Alan Hayward <alan.hayward@arm.com>
935 David Sherwood <david.sherwood@arm.com>
937 * tree-vect-loop.c (vect_transform_loop): Protect the updates of
938 all three iteration counts with an any_* test. Use a single update
939 for each count. Fix the calculation of nb_iterations_estimate.
941 2016-11-16 Richard Sandiford <richard.sandiford@arm.com>
943 * config/pdp11/pdp11.c: Include dbxout.h.
945 2016-11-16 Richard Sandiford <richard.sandiford@arm.com>
947 * config/arc/arc.c (arc_loop_hazard): Add missing brackets.
949 2016-11-16 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
952 * config/arm/arm.md (*extv_reg): Restrict operands 2 and 3 to the
953 proper ranges for an SBFX instruction.
954 (extzv_t2): Likewise for UBFX.
956 2016-11-16 Richard Biener <rguenther@suse.de>
958 PR tree-optimization/78348
959 * tree-loop-distribution.c (enum partition_kind): Add PKIND_MEMMOVE.
960 (generate_memcpy_builtin): Honor PKIND_MEMCPY on the partition.
961 (classify_partition): Set PKIND_MEMCPY if dependence analysis
962 revealed no dependency, PKIND_MEMMOVE otherwise.
964 2016-11-16 Jakub Jelinek <jakub@redhat.com>
967 * ubsan.c (ubsan_build_overflow_builtin): Add DATAP argument, if
968 it points to non-NULL tree, use it instead of ubsan_create_data.
969 (instrument_si_overflow): Handle vector signed integer overflow
971 * ubsan.h (ubsan_build_overflow_builtin): Add DATAP argument.
972 * tree-vrp.c (simplify_internal_call_using_ranges): Punt for
973 vector IFN_UBSAN_CHECK_*.
974 * internal-fn.c (expand_addsub_overflow): Add DATAP argument,
975 pass it through to ubsan_build_overflow_builtin.
976 (expand_neg_overflow, expand_mul_overflow): Likewise.
977 (expand_vector_ubsan_overflow): New function.
978 (expand_UBSAN_CHECK_ADD, expand_UBSAN_CHECK_SUB,
979 expand_UBSAN_CHECK_MUL): Use tit for vector arithmetics.
980 (expand_arith_overflow): Adjust expand_*_overflow callers.
982 2016-11-16 Matthias Klose <doko@ubuntu.com>
984 * doc/install.texi: Remove references to java/libjava.
986 2016-11-16 Kugan Vivekanandarajah <kuganv@linaro.org>
988 * tree-ssa-coalesce.c (register_default_def): Remove register_ssa_partition.
989 (create_outofssa_var_map): Likewise.
990 * tree-ssa-live.c (register_ssa_partition_check): Remove.
991 * tree-ssa-live.h (register_ssa_partition): Likewise.
993 2016-11-15 Bernd Edlinger <bernd.edlinger@hotmail.de>
995 * genattrtab.c (attr_rtx_1): Avoid allocating new rtx objects.
996 Clear ATTR_CURR_SIMPLIFIED_P for re-used binary rtx objects.
997 Use DEF_ATTR_STRING for string arguments. Use RTL_HASH for
998 integer arguments. Only set ATTR_PERMANENT_P on newly hashed
999 rtx when all sub-rtx are also permanent.
1000 (attr_eq): Simplify.
1001 (attr_copy_rtx): Remove.
1002 (make_canonical, get_attr_value): Use attr_equal_p.
1003 (copy_boolean): Rehash NOT.
1004 (simplify_test_exp_in_temp,
1005 optimize_attrs): Remove call to attr_copy_rtx.
1006 (attr_alt_intersection, attr_alt_union,
1007 attr_alt_complement, mk_attr_alt): Rehash EQ_ATTR_ALT.
1008 (make_automaton_attrs): Use attr_eq.
1010 2016-11-15 Matthias Klose <doko@ubuntu.com>
1012 * doc/install.texi: Remove references to java/libjava.
1013 * doc/sourcebuild.texi: Likewise.
1014 * doc/invoke.texi: Likewise.
1015 * doc/standards.texi: Likewise.
1017 2016-11-15 Richard Sandiford <richard.sandiford@arm.com>
1018 Alan Hayward <alan.hayward@arm.com>
1019 David Sherwood <david.sherwood@arm.com>
1021 * config/i386/i386.h (INCOMING_RETURN_ADDR_RTX): Use Pmode instead
1023 * config/ia64/ia64.h (INCOMING_RETURN_ADDR_RTX): Likewise.
1024 * config/iq2000/iq2000.h (INCOMING_RETURN_ADDR_RTX): Likewise.
1025 * config/m68k/m68k.h (INCOMING_RETURN_ADDR_RTX): Likewise.
1026 * config/microblaze/microblaze.h (INCOMING_RETURN_ADDR_RTX): Likewise.
1027 * config/mips/mips.h (INCOMING_RETURN_ADDR_RTX): Likewise.
1028 * config/mn10300/mn10300.h (INCOMING_RETURN_ADDR_RTX): Likewise.
1029 * config/nios2/nios2.h (INCOMING_RETURN_ADDR_RTX): Likewise.
1031 2016-11-15 Richard Sandiford <richard.sandiford@arm.com>
1032 Alan Hayward <alan.hayward@arm.com>
1033 David Sherwood <david.sherwood@arm.com>
1035 * dce.c (check_argument_store): Pass the size instead of
1036 the memory reference.
1037 (find_call_stack_args): Pass MEM_SIZE to check_argument_store.
1039 2016-11-15 Richard Sandiford <richard.sandiford@arm.com>
1040 Alan Hayward <alan.hayward@arm.com>
1041 David Sherwood <david.sherwood@arm.com>
1043 * alias.c (canon_rtx): Use simplify_gen_binary.
1045 2016-11-15 Richard Sandiford <richard.sandiford@arm.com>
1046 Alan Hayward <alan.hayward@arm.com>
1047 David Sherwood <david.sherwood@arm.com>
1049 * rtl.h (load_extend_op): Declare.
1050 * rtlanal.c (load_extend_op): New function.
1051 (nonzero_bits1): Use it.
1052 (num_sign_bit_copies1): Likewise.
1053 * cse.c (cse_insn): Likewise.
1054 * fold-const.c (fold_single_bit_test): Likewise.
1055 (fold_unary_loc): Likewise.
1056 * fwprop.c (free_load_extend): Likewise.
1057 * postreload.c (reload_cse_simplify_set): Likewise.
1058 (reload_cse_simplify_operands): Likewise.
1059 * combine.c (try_combine): Likewise.
1060 (simplify_set): Likewise. Remove redundant SUBREG_BYTE and
1061 subreg_lowpart_p checks.
1063 2016-11-15 Richard Sandiford <richard.sandiford@arm.com>
1064 Alan Hayward <alan.hayward@arm.com>
1065 David Sherwood <david.sherwood@arm.com>
1067 * combine.c (simplify_shift_const_1): Use the number of bits
1068 in the inner mode to determine the range of the shift.
1069 When handling shifts of vectors, skip any rules that apply
1072 2016-11-15 Richard Sandiford <richard.sandiford@arm.com>
1073 Alan Hayward <alan.hayward@arm.com>
1074 David Sherwood <david.sherwood@arm.com>
1076 * rtlanal.c (num_sign_bit_copies1): Calculate bitwidth after
1079 2016-11-15 Matthias Klose <doko@ubuntu.com>
1081 * doc/install.texi: Remove references to gcj/libjava.
1082 * doc/invoke.texi: Likewise.
1084 2016-11-15 Jeff Law <law@redhat.com>
1086 * tree-ssa-threadbackward.c (fsm_find_thread_path): Remove unneeded
1087 parameter. Callers changed.
1088 (check-subpath_and_update_thread_path): Extracted from
1089 fsm_find_control_statement_thread_paths.
1090 (handle_phi, handle_assignment, handle_assignment_p): Likewise.
1091 (handle_phi, handle_assignment): Allow any constant node, not
1094 2016-11-15 Claudiu Zissulescu <claziss@synopsys.com>
1096 * config/arc/arc-arch.h: New file.
1097 * config/arc/arc-arches.def: Likewise.
1098 * config/arc/arc-cpus.def: Likewise.
1099 * config/arc/arc-options.def: Likewise.
1100 * config/arc/t-multilib: Likewise.
1101 * config/arc/genmultilib.awk: Likewise.
1102 * config/arc/genoptions.awk: Likewise.
1103 * config/arc/arc-tables.opt: Likewise.
1104 * config/arc/driver-arc.c: Likewise.
1105 * testsuite/gcc.target/arc/nps400-cpu-flag.c: Likewise.
1106 * common/config/arc/arc-common.c (arc_handle_option): Trace
1108 * config.gcc (arc*-*-*): Add arc-tables.opt to arc's extra
1109 options; check for supported cpu against arc-cpus.def file.
1110 (arc*-*-elf*, arc*-*-linux-uclibc*): Use new make fragment; define
1111 TARGET_CPU_BUILD macro; add driver-arc.o as an extra object.
1112 * config/arc/arc-c.def: Add emacs local variables.
1113 * config/arc/arc-opts.h (processor_type): Use arc-cpus.def file.
1114 (FPU_FPUS, FPU_FPUD, FPU_FPUDA, FPU_FPUDA_DIV, FPU_FPUDA_FMA)
1115 (FPU_FPUDA_ALL, FPU_FPUS_DIV, FPU_FPUS_FMA, FPU_FPUS_ALL)
1116 (FPU_FPUD_DIV, FPU_FPUD_FMA, FPU_FPUD_ALL): New defines.
1117 (DEFAULT_arc_fpu_build): Define.
1118 (DEFAULT_arc_mpy_option): Define.
1119 * config/arc/arc-protos.h (arc_init): Delete.
1120 * config/arc/arc.c (arc_cpu_name): New variable.
1121 (arc_selected_cpu, arc_selected_arch, arc_arcem, arc_archs)
1122 (arc_arc700, arc_arc600, arc_arc601): New variable.
1123 (arc_init): Add static; remove selection of default tune value,
1124 cleanup obsolete error messages.
1125 (arc_override_options): Make use of .def files for selecting the
1126 right cpu and option configurations.
1127 * config/arc/arc.h (stdbool.h): Include.
1128 (TARGET_CPU_DEFAULT): Define.
1129 (CPP_SPEC): Remove mcpu=NPS400 handling.
1130 (arc_cpu_to_as): Declare.
1131 (EXTRA_SPEC_FUNCTIONS): Define.
1132 (OPTION_DEFAULT_SPECS): Likewise.
1133 (ASM_DEFAULT): Remove.
1134 (ASM_SPEC): Use arc_cpu_to_as.
1135 (DRIVER_SELF_SPECS): Remove deprecated options.
1136 (arc_base_cpu): Declare.
1137 (TARGET_ARC600, TARGET_ARC601, TARGET_ARC700, TARGET_EM)
1138 (TARGET_HS, TARGET_V2, TARGET_ARC600): Make them use arc_base_cpu
1140 (MULTILIB_DEFAULTS): Use ARC_MULTILIB_CPU_DEFAULT.
1141 * config/arc/arc.md (attr_cpu): Remove.
1142 * config/arc/arc.opt (mno-mpy): Deprecate.
1143 (mcpu=ARC600, mcpu=ARC601, mcpu=ARC700, mcpu=NPS400, mcpu=ARCEM)
1144 (mcpu=ARCHS): Remove.
1145 (mcrc, mdsp-packa, mdvbf, mmac-d16, mmac-24, mtelephony, mrtsc):
1147 (mbarrel_shifte, mspfp_, mdpfp_, mdsp_pack, mmac_): Remove.
1148 (arc_fpu): Use new defines.
1149 (mpy-option): Change to use numeric or string like inputs.
1150 * config/arc/t-arc (driver-arc.o): New target.
1151 (arc-cpus, t-multilib, arc-tables.opt): Likewise.
1152 * config/arc/t-arc-newlib: Delete.
1153 * config/arc/t-arc-uClibc: Renamed to t-uClibc.
1154 * doc/invoke.texi (ARC): Update arc options.
1156 2016-11-15 Maciej W. Rozycki <macro@imgtec.com>
1158 * config/mips/mips.c (mips16_emit_constants): Emit `consttable'
1159 insn at the beginning of the constant pool.
1160 (mips_insert_insn_pseudos): New function.
1161 (mips_machine_reorg2): Call it.
1162 * config/mips/mips.md (unspec): Add UNSPEC_CONSTTABLE and
1163 UNSPEC_INSN_PSEUDO enum values.
1164 (insn_pseudo, consttable): New insns.
1166 2016-11-15 Michael Matz <matz@suse.de>
1168 PR missed-optimization/77881
1169 * combine.c (simplify_comparison): Remove useless subregs
1170 also inside the loop, not just after it.
1171 (make_compound_operation): Recognize some subregs as being
1174 2016-11-15 Richard Sandiford <richard.sandiford@arm.com>
1175 Alan Hayward <alan.hayward@arm.com>
1176 David Sherwood <david.sherwood@arm.com>
1178 * dwarf2out.c (mem_loc_descriptor): Fix GET_MODE_CLASS/
1181 2016-11-14 Michael Meissner <meissner@linux.vnet.ibm.com>
1183 * config/rs6000/rs6000.c (rs6000_expand_vector_set): Add support
1184 for using xxinsertw and vinsert{b,h} on ISA 3.0.
1186 * config/rs6000/vsx.md (vsx_extract_<mode>): Update comment.
1187 (vsx_set_<mode>_p9): New insn to generate xxinsertw and
1188 vinsert{b,h} on ISA 3.0.
1190 2016-11-14 Thomas Preud'homme <thomas.preudhomme@arm.com>
1192 * tree-ssa-math-opts.c (find_bswap_or_nop): Zero out bytes in cmpxchg
1193 and cmpnop in two steps: first the ones not accessed in original gimple
1194 expression in a endian independent way and then the ones not accessed
1195 in the final result in an endian-specific way.
1196 (bswap_replace): Stop doing big endian adjustment.
1198 2016-11-14 Uros Bizjak <ubizjak@gmail.com>
1200 * config/i386/i386.md (*andndi3_doubleword): Merge operand constraints.
1201 (*ashl<mode>3_doubleword): Ditto.
1203 2016-11-14 Martin Liska <mliska@suse.cz>
1205 * tree-ssa-dse.c (dse_optimize_stmt): Remove quotes and extra
1208 2016-11-14 Prasad Ghangal <prasad.ghangal@gmail.com>
1209 Richard Biener <rguenther@suse.de>
1211 * doc/invoke.texi (fgimple): Document.
1212 * dumpfile.h (TDF_GIMPLE): Add.
1213 * dumpfile.c (dump_options): Add gimple.
1214 * gimple-pretty-print.c (dump_gimple_switch): Adjust dump
1216 (dump_gimple_label): Likewise.
1217 (dump_gimple_phi): Likewise.
1218 (dump_gimple_bb_header): Likewise.
1219 (dump_phi_nodes): Likewise.
1220 (pp_cfg_jump): Likewise. Pass in dump flags.
1221 (dump_implicit_edges): Adjust.
1222 * passes.c (pass_init_dump_file): Do not dump function header
1224 * tree-cfg.c (dump_function_to_file): Dump function return type
1225 and __GIMPLE keyword for TDF_GIMPLE. Change guard for dumping
1227 * tree-pretty-print.c (dump_decl_name): Adjust dump for TDF_GIMPLE.
1228 (dump_generic_node): Likewise.
1229 * function.h (struct function): Add pass_startwith member.
1230 * passes.c (execute_one_pass): Implement startwith.
1231 * tree-ssanames.c (make_ssa_name_fn): New argument, check for version
1232 and assign proper version for parsed ssa names.
1233 * tree-ssanames.h (make_ssa_name_fn): Add new argument to the function.
1234 * internal-fn.c (expand_PHI): New function.
1235 * internal-fn.h (expand_PHI): Declared here.
1236 * internal-fn.def: New defination for PHI.
1237 * tree-cfg.c (lower_phi_internal_fn): New function.
1238 (build_gimple_cfg): Call it.
1239 (verify_gimple_call): Condition for passing label as arg in internal
1241 * tree-into-ssa.c (rewrite_add_phi_arguments): Handle already
1242 present PHIs with arguments.
1244 2016-11-14 Martin Liska <mliska@suse.cz>
1247 * common.opt: Add prefer-atomic as a new enum value for
1249 * coretypes.h: Likewise.
1250 * doc/invoke.texi: Document the new option value.
1251 * gcc.c: Replace atomic with prefer-atomic. Remove warning.
1252 * tree-profile.c (tree_profiling): Select default value
1253 of -fprofile-update when 'prefer-atomic' is selected.
1255 2016-11-14 Wilco Dijkstra <wdijkstr@arm.com>
1257 * config/arm/cortex-a57.md (cortex_a57_alu): Move extend here, bfm...
1258 (cortex_a57_alu_shift): ...here.
1260 2016-11-14 Wilco Dijkstra <wdijkstr@arm.com>
1262 * config/aarch64/aarch64.md (aarch64_ashl_sisd_or_int_<mode>3)
1264 (aarch64_lshr_sisd_or_int_<mode>3): Likewise.
1265 (aarch64_ashr_sisd_or_int_<mode>3): Likewise.
1266 (<optab>si3_insn_uxtw): Likewise.
1267 (<optab><mode>3_insn): Likewise.
1268 (<ANY_EXTEND:optab><GPI:mode>_ashl<SHORT:mode>): Likewise.
1269 (zero_extend<GPI:mode>_lshr<SHORT:mode>): Likewise.
1270 (extend<GPI:mode>_ashr<SHORT:mode>): Likewise.
1271 (<optab><mode>): Likewise.
1272 (insv<mode>): Likewise.
1273 (andim_ashift<mode>_bfiz): Likewise.
1274 * config/aarch64/thunderx.md (thunderx_shift): Add bfx.
1275 * config/arm/cortex-a53.md (cortex_a53_alu_shift): Likewise.
1276 * config/arm/cortex-a57.md (cortex_a57_alu): Add bfx.
1277 * config/arm/exynos-m1.md (exynos_m1_alu): Add bfx.
1278 (exynos_m1_alu_p): Likewise.
1279 * config/arm/types.md: Add bfx.
1280 * config/arm/xgene1.md (xgene1_bfm): Add bfx.
1282 2016-11-14 Wilco Dijkstra <wdijkstr@arm.com>
1284 * config/aarch64/aarch64.c (cortexa57_vector_cost):
1285 Change vec_stmt_cost, vec_align_load_cost and vec_unalign_load_cost.
1287 2016-11-14 Richard Biener <rguenther@suse.de>
1289 PR tree-optimization/78312
1290 * gimple-ssa-backprop.c (backprop::prepare_change): Reset
1291 flow-sensitive info.
1293 2016-11-14 Georg-Johann Lay <avr@gjlay.de>
1296 * doc/invoke.texi (AVR Options) [-mabsdata]: Document new option.
1297 * config/avr/avr.opt (-mabsdata): New option.
1298 * config/avr/avr-arch.h (avr_device_specific_features): Add AVR_ISA_LDS.
1299 * config/avr/avr.c (avr_encode_section_info) [AVR_TINY]: If
1300 -mabsdata & symbol is not progmem, tag as AVR_SYMBOL_FLAG_TINY_ABSDATA.
1301 * config/avr/avr-mcus.def (attiny4/5/9/10/20): Use AVR_ISA_LDS.
1302 * config/avr/gen-avr-mmcu-specs.c (print_mcu): Print cc1_absdata
1303 spec depending on AVR_ISA_LDS.
1304 * config/avr/specs.h (CC1_SPEC): Enhanced by cc1_absdata spec.
1306 2016-11-13 Jakub Jelinek <jakub@redhat.com>
1308 * match.pd: Don't try to compare addresses of variables with
1311 2016-11-13 Kugan Vivekanandarajah <kuganv@linaro.org>
1313 * ipa-cp.c (ipa_get_jf_pass_through_result): Skip unary expressions.
1314 (propagate_vr_accross_jump_function): Handle unary expressions.
1315 * ipa-prop.c (ipa_set_jf_unary_pass_through): New.
1316 (load_from_param_1): New.
1317 (load_from_unmodified_param): Factor common part into load_from_param_1.
1318 (load_from_param): New.
1319 (compute_complex_assign_jump_func): Handle unary expressions.
1320 (update_jump_functions_after_inlining): Likewise.
1321 (ipa_write_jump_function): Likewise.
1322 (ipa_read_jump_function): Likewise.
1324 2016-11-13 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
1327 * doc/invoke.texi: Document Wrestrict.
1328 * pretty-print.c (pp_format): Add case for "Z" specifier.
1329 (test_pp_format): Test "Z" specifier.
1331 2016-11-13 Eric Botcazou <ebotcazou@adacore.com>
1333 * ipa-icf.c (sem_function::merge): Do not create a wrapper also if the
1334 original function needs a static chain.
1336 2016-11-13 David Edelsohn <dje.gcc@gmail.com>
1339 * config/rs6000/rs6000.c (rs6000_asm_weaken_decl): Protect
1342 2016-11-12 Segher Boessenkool <segher@kernel.crashing.org>
1345 * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Don't
1346 return early if !optional_tbtab.
1348 2016-11-11 Eric Botcazou <ebotcazou@adacore.com>
1350 PR rtl-optimization/59461
1351 * doc/rtl.texi (paradoxical subregs): Add missing word.
1352 * combine.c (reg_nonzero_bits_for_combine): Do not discard results
1353 in modes with precision larger than that of last_set_mode.
1354 * rtlanal.c (nonzero_bits1) <SUBREG>: If WORD_REGISTER_OPERATIONS is
1355 set and LOAD_EXTEND_OP is appropriate, propagate results from inner
1356 REGs to paradoxical SUBREGs.
1357 (num_sign_bit_copies1) <SUBREG>: Likewise. Check that the mode is not
1358 larger than a word before invoking LOAD_EXTEND_OP on it.
1360 2016-11-11 Michael Meissner <meissner@linux.vnet.ibm.com>
1363 * config/rs6000/vsx.md (vsx_extract_<mode>_p9): Correct the
1364 element order for little endian ordering.
1366 * config/rs6000/altivec.md (reduc_plus_scal_<mode>): Use
1367 VECTOR_ELT_ORDER_BIG and not BYTES_BIG_ENDIAN to adjust element
1370 2016-11-11 Uros Bizjak <ubizjak@gmail.com>
1373 * config/i386/i386.md (rotate to rotatex splitter): Avoid overflow
1374 when calculating operand 2.
1375 (rotate to rotatex zext splitter): Ditto.
1377 2016-11-11 Jeff Law <law@redhat.com>
1379 * gimple-ssa-isolate-paths.c (is_divmod_with_given_divisor): New
1381 (stmt_uses_name_in_undefined_way): New function, extracted from
1382 find_implicit_erroneous_behavior and extended for div/mod case.
1383 (stmt_uses_0_or_null_in_undefined_way): New function, extracted from
1384 find_explicit_erroneous_behavior and extended for div/mod case.
1385 (find_implicit_erroneous_behavior): Use new helper function.
1386 (find_explicit_erroneous_behavior): Use new helper function.
1388 2016-11-11 Richard Biener <rguenther@suse.de>
1390 PR tree-optimization/71575
1391 * graphite-isl-ast-to-gimple.c (copy_cond_phi_nodes): Remove
1394 2016-11-11 Richard Biener <rguenther@suse.de>
1397 * tree-ssa-uninit.c (warn_uninitialized_vars): Do not warn
1398 about uninitialized destination arg of BIT_INSERT_EXPR.
1400 2016-11-10 Sandra Loosemore <sandra@codesourcery.com>
1403 * doc/invoke.texi (Code Gen Options) [-fno-common]: Use correct
1404 terminology. Expand to remove ambiguity.
1406 2016-11-10 Segher Boessenkool <segher@kernel.crashing.org>
1408 PR rtl-optimization/78232
1409 * combine.c (try_combine): Add a big comment about why reusing i2dest
1411 (change_zero_ext): Do not call simplify_gen_binary, do the
1412 simplifications manually.
1414 2016-11-10 Michael Meissner <meissner@linux.vnet.ibm.com>
1416 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): If ISA 3.0,
1417 enable HImode and QImode to go in vector registers by default if
1418 the -mvsx-small-integer option is enabled.
1419 (rs6000_secondary_reload_simple_move): Likewise.
1420 (rs6000_preferred_reload_class): Don't force integer constants to
1421 be loaded into vector registers that we can easily make into
1422 memory (or being created in the GPRs and moved over with direct move).
1423 * config/rs6000/vsx.md (UNSPEC_P9_MEMORY): Delete, no longer used.
1424 (vsx_extract_<mode>): Rework V4SImode, V8HImode, and V16QImode
1425 vector extraction on ISA 3.0 when the scalar integer can be
1426 allocated in vector registers. Generate the VEC_SELECT directy,
1427 and don't use UNSPEC's to avoid having the scalar type in a vector
1428 register. Make the expander target registers, and let the
1429 combiner fold in results storing to memory, if the machine
1431 (vsx_extract_<mode>_di): Likewise.
1432 (vsx_extract_<mode>_p9): Likewise.
1433 (vsx_extract_<mode>_di_p9): Likewise.
1434 (vsx_extract_<mode>_store_p9): Likewise.
1435 (vsx_extract_si): Likewise.
1436 (vsx_extract_<mode>_p8): Likewise.
1437 (p9_lxsi<wd>zx): Delete, no longer used.
1438 (p9_stxsi<wd>x): Likewise.
1439 * config/rs6000/rs6000.md (INT_ISA3): New mode iterator for
1440 integers in vector registers for ISA 3.0.
1441 (QHI): Update comment.
1442 (zero_extendqi<mode>2): Add support for ISA 3.0 scalar load or
1443 vector extract instructions in sign/zero extend.
1444 (zero_extendhi<mode>): Likewise.
1445 (extendqi<mode>): Likewise.
1446 (extendhi<mode>2): Likewise.
1447 (HImode splitter for load/sign extend in vector register): Likewise.
1448 (float<QHI:mode><FP_ISA3:mode>2): Eliminate old method of
1449 optimizing floating point conversions to/from small data types and
1450 rewrite it to support QImode/HImode being allowed in vector
1451 registers on ISA 3.0.
1452 (float<QHI:mode><FP_ISA3:mode>2_internal): Likewise.
1453 (floatuns<QHI:mode><FP_ISA3:mode>2): Likewise.
1454 (floatuns<QHI:mode><FP_ISA3:mode>2_internal): Likewise.
1455 (fix_trunc<SFDF:mode><QHI:mode>2): Likewise.
1456 (fix_trunc<SFDF:mode><QHI:mode>2_internal): Likewise.
1457 (fixuns_trunc<SFDF:mode><QHI:mode>2): Likewise.
1458 (fixuns_trunc<SFDF:mode><QHI:mode>2_internal): Likewise.
1459 VSPLITISW on ISA 2.07.
1460 (movhi_internal): Combine movhi_internal and movqi_internal into
1461 one mov<mode>_internal with an iterator. Add support for QImode
1462 and HImode being allowed in vector registers. Make large number
1463 of attributes and constraints easier to read.
1464 (movqi_internal): Likewise.
1465 (mov<mode>_internal): Likewise.
1466 (movdi_internal64): Fix constraint to allow loading -16..15 with
1467 VSPLITISW on ISA 2.07.
1468 (integer XXSPLTIB splitter): Add support for QI, HI, and SImode as
1471 2016-11-10 Pat Haugen <pthaugen@us.ibm.com>
1473 PR rtl-optimization/78241
1474 * loop-unroll.c (unroll_loop_runtime_iterations): Don't adjust 'niter',
1475 but emit initial peel copy if niter expr is not reliable.
1477 2016-11-10 Segher Boessenkool <segher@kernel.crashing.org>
1479 * dwarf2cfi.c (dump_cfi_row): Add forward declaration.
1480 (maybe_record_trace_start): If the CFI is different on the new and
1481 old paths, print out both to the dump file before ICEing.
1483 2016-11-10 Vladimir Makarov <vmakarov@redhat.com>
1485 * target.def (additional_allocno_class_p): New.
1486 * hooks.h (hook_bool_reg_class_t_false): New prototype.
1487 * hooks.c (hook_bool_reg_class_t_false): New.
1488 * ira.c (setup_allocno_and_important_classes): Use the new hook.
1489 * doc/tm.texi.in (TARGET_ADDITIONAL_ALLOCNO_CLASS_P): Add it.
1490 * doc/tm.texi: Update.
1492 2016-11-10 Jason Merrill <jason@redhat.com>
1494 * gengtype.c (new_structure): Append to structures list.
1495 (find_structure): Likewise.
1497 2016-11-10 Jim Wilson <jim.wilson@linaro.org>
1499 * tree-loop-distribution.c (pg_add_dependence_edges): Return 2 if
1500 this_dir is 2. Check for this_dir non-zero before dir != this_dir
1503 2016-11-10 Jakub Jelinek <jakub@redhat.com>
1505 * omp-low.c (lower_omp_target): Fix up argument to is_reference.
1506 (expand_omp_ordered_sink): Handle TREE_PURPOSE of deps being
1508 * gimplify.c (gimplify_scan_omp_clauses): Likewise. Set
1509 ctx->target_map_scalars_firstprivate on OMP_TARGET even for Fortran.
1510 Remove omp_no_lastprivate callers. Propagate lastprivate on combined
1511 teams distribute parallel for simd even to distribute and teams
1512 construct. For OMP_CLAUSE_DEPEND add missing break at the end of
1513 OMP_CLAUSE_DEPEND_SINK case.
1514 (omp_notice_variable): Use lang_hooks.decls.omp_scalar_p.
1515 (omp_no_lastprivate): Removed.
1516 (gimplify_adjust_omp_clauses): Remove omp_no_lastprivate callers.
1517 (gimplify_omp_for): Likewise.
1518 (computable_teams_clause): Fail for automatic vars from current
1519 function not yet seen in bind expr.
1520 * langhooks.c (lhd_omp_scalar_p): New function.
1521 * langhooks.h (struct lang_hooks_for_decls): Add omp_scalar_p.
1522 * varpool.c (varpool_node::get_create): Set node->offloading
1523 even for DECL_EXTERNAL decls.
1524 * langhooks-def.h (lhd_omp_scalar_p): New prototype.
1525 (LANG_HOOKS_OMP_SCALAR_P): Define.
1526 (LANG_HOOKS_DECLS): Use it.
1528 2016-11-10 Martin Liska <mliska@suse.cz>
1531 * gimplify.c (gimplify_switch_expr): Create live_switch_vars
1532 only when SWITCH_BODY is a BIND_EXPR.
1534 2016-11-10 Pierre-Marie de Rodat <derodat@adacore.com>
1537 * dwarf2out.c (dwarf2out_early_global_decl): Call dwarf2out_decl
1538 on the context only when it has no DIE yet.
1540 2016-11-10 Richard Earnshaw <rearnsha@arm.com>
1542 * arm.h (target_cpus): Delete.
1543 * arm-opts.h (enum processor_type): Prefix entires with TARGET_CPU_.
1544 * arm.c (all_cores): Prefix IDENT with TARGET_CPU_.
1545 (all_architectures): Likewise.
1546 (arm_option_override): Adjust use of CPU enums.
1547 (arm_sched_reorder): Likewise.
1548 * vfp.md (movdi_vfp, movdi_vfp_cortexa8): Likewise.
1549 * arm.opt (mcpu, mtune): Adjust use of CPU enums.
1550 * arm/genopt.sh (processor_type): Prefix enumeration entries with
1552 * arm-tables.opt: Regenerated.
1554 2016-11-10 Siddhesh Poyarekar <siddhesh.poyarekar@linaro.org>
1556 * config/aarch64/aarch64-cores.def (qdf24xx): Update part number.
1558 * config/aarch64/aarch64-tune.md: Regenerated.
1559 * config/arm/arm-cores.def (falkor): New core.
1560 * config/arm/arm-tables.opt: Regenerated.
1561 * config/arm/arm-tune.md: Regenerated.
1562 * config/arm/bpabi.h (BE8_LINK_SPEC): Add falkor support.
1563 * config/arm/t-aprofile (MULTILIB_MATCHES): Likewise.
1564 * doc/invoke.texi (AArch64 Options/-mtune): Document it.
1565 (ARM Options/-mtune): Likewise.
1567 2016-11-10 Kugan Vivekanandarajah <kuganv@linaro.org>
1570 2016-11-09 Kugan Vivekanandarajah <kuganv@linaro.org>
1572 * ipa-cp.c (ipa_get_jf_pass_through_result): Handle unary expressions.
1573 (propagate_vr_accross_jump_function): Likewise.
1574 * ipa-prop.c (ipa_set_jf_unary_pass_through): New.
1575 (load_from_param_1): New.
1576 (load_from_unmodified_param): Factor common part into load_from_param_1.
1577 (load_from_param): New.
1578 (compute_complex_assign_jump_func): Handle unary expressions.
1579 (ipa_write_jump_function): Likewise.
1580 (ipa_read_jump_function): Likewise.
1582 2016-11-09 Segher Boessenkool <segher@kernel.crashing.org>
1584 * simplify-rtx.c (simplify_binary_operation_1): Simplify
1585 (xor (and (xor A B) C) B) to (ior (and A C) (and B ~C)) and
1586 (xor (and (xor A B) C) A) to (ior (and A ~C) (and B C)) if C
1589 2016-11-09 David Malcolm <dmalcolm@redhat.com>
1591 * print-rtl-function.c: Include varasm.h.
1592 (print_any_param_name): New function.
1593 (print_param): New function.
1594 (print_rtx_function): Call print_param for each argument.
1595 * print-rtl.c (rtx_writer::finish_directive): New function.
1596 * print-rtl.h (rtx_writer::finish_directive): New decl.
1598 2016-11-09 Uros Bizjak <ubizjak@gmail.com>
1601 * config/i386/i386.md (*<shift_insn><mode>3_doubleword): Mark
1602 operand 0 as earlyclobber.
1603 (*ashl<mode>3_doubleword): Ditto for all operand 0 alternatives.
1605 2016-11-09 Martin Liska <mliska@suse.cz>
1607 * fold-const-call.c (fold_const_call): Fix up type of s0 and s1.
1609 2016-11-09 Jakub Jelinek <jakub@redhat.com>
1612 * builtins.c (expand_builtin_memcmp): Formatting fix.
1614 * flag-types.h (enum sanitize_code): Add SANITIZE_SHIFT_BASE
1615 and SANITIZE_SHIFT_EXPONENT, change SANITIZE_SHIFT to bitwise
1616 or of them, renumber other enumerators.
1617 * opts.c (sanitizer_opts): Add shift-base and shift-exponent.
1618 * doc/invoke.texi: Document -fsanitize=shift-base and
1619 -fsanitize-shift-exponent, document -fsanitize=shift as
1620 having those 2 suboptions.
1622 2016-11-09 Richard Biener <rguenther@suse.de>
1624 * fold-const.c (tree_swap_operands_p): Remove unused arg.
1625 * fold-const.c (tree_swap_operands_p): Likewise.
1626 (fold_binary_loc): Adjust.
1627 (fold_ternary_loc): Likewise.
1628 * genmatch.c (dt_operand::gen_gimple_exp): Likewise.
1629 * gimple-fold.c (fold_stmt_1): Likewise.
1630 * gimple-match-head.c (gimple_resimplify2): Likewise.
1631 (gimple_resimplify3): Likewise.
1632 (gimple_simplify): Likewise.
1633 * tree-ssa-dom.c (record_equality): Likewise.
1634 * tree-ssa-reassoc.c (optimize_range_tests_var_bound): Likewise.
1635 * tree-ssa-sccvn.c (vn_nary_op_compute_hash): Likewise.
1636 * tree-ssa-threadedge.c (simplify_control_stmt_condition_1): Likewise.
1638 2016-11-09 Richard Biener <rguenther@suse.de>
1640 * tree-ssa-dom.c (canonicalize_comparison): Remove.
1641 (optimize_stmt): Remove redundant pre-propagation canonicalization
1642 of comparison operand order.
1644 2016-11-09 Martin Liska <mliska@suse.cz>
1646 * fold-const-call.c (fold_const_call): Fix the folding.
1648 2016-11-09 Richard Biener <rguenther@suse.de>
1650 * common.opt (flag_evaluation_order): Remove.
1651 * expr.c (expand_operands): Remove code guarded by
1652 flag_evaluation_order.
1653 * fold-const.c (reorder_operands_p): Remove, it always returns
1655 (negate_expr_p): Remove calls to reorder_operands_p.
1656 (fold_negate_expr): Likewise.
1657 (tree_swap_operands_p): Likewise.
1658 (fold_binary_loc): Likewise.
1660 2016-11-09 Andreas Schwab <schwab@suse.de>
1663 * config/m68k/m68k.md: Reject out-of-range bit pos in bit-fields
1664 insns operating on a register.
1666 2016-11-09 Richard Biener <rguenther@suse.de>
1668 PR tree-optimization/78007
1669 * tree-vect-stmts.c (vectorizable_bswap): New function.
1670 (vectorizable_call): Call vectorizable_bswap for
1671 BUILT_IN_BSWAP{16,32,64} if arguments are not promoted.
1673 2016-11-09 Richard Biener <rguenther@suse.de>
1675 * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
1676 Look at the DR_BASE_ADDRESS object for forcing alignment.
1678 2016-11-09 Kugan Vivekanandarajah <kuganv@linaro.org>
1680 * ipa-cp.c (ipa_get_jf_pass_through_result): Handle unary expressions.
1681 (propagate_vr_accross_jump_function): Likewise.
1682 * ipa-prop.c (ipa_set_jf_unary_pass_through): New.
1683 (load_from_param_1): New.
1684 (load_from_unmodified_param): Factor common part into load_from_param_1.
1685 (load_from_param): New.
1686 (compute_complex_assign_jump_func): Handle unary expressions.
1687 (ipa_write_jump_function): Likewise.
1688 (ipa_read_jump_function): Likewise.
1690 2016-11-09 Kugan Vivekanandarajah <kuganv@linaro.org>
1693 * ipa-cp.c (propagate_vr_accross_jump_function): Pass param type.
1694 Also fold constant passed as argument while computing value range.
1695 (propagate_constants_accross_call): Pass param type.
1696 * ipa-prop.c: export ipa_get_callee_param_type.
1697 * ipa-prop.h: export ipa_get_callee_param_type.
1699 2016-11-09 Maxim Ostapenko <m.ostapenko@samsung.com>
1701 * asan.h (asan_intercepted_p): Handle BUILT_IN_STRCSPN,
1702 BUILT_IN_STRPBRK, BUILT_IN_STRSPN and BUILT_IN_STRSTR.
1704 2016-11-09 Maxim Ostapenko <m.ostapenko@samsung.com>
1706 * asan.h (ASAN_STACK_MAGIC_PARTIAL): Remove.
1707 * asan.c (ASAN_STACK_MAGIC_PARTIAL): Replace with
1708 ASAN_STACK_MAGIC_MIDDLE.
1709 (asan_global_struct): Increase the size of fields.
1710 (asan_add_global): Add new field constructor.
1711 * sanitizer.def (__asan_version_mismatch_check_v6): Replace with
1712 __asan_version_mismatch_check_v8.
1714 2016-11-08 David Edelsohn <dje.gcc@gmail.com>
1716 * dwarf2asm.c (USE_LINKONCE_INDIRECT): Test XCOFF_DEBUGGING_INFO
1719 2016-11-08 Uros Bizjak <ubizjak@gmail.com>
1722 * config/i386/i386.c (dimode_scalar_to_vector_candidate_p):
1723 Handle ASHIFT and LSHIFTRT.
1724 (dimode_scalar_chain::compute_convert_gain): Ditto.
1725 (dimode_scalar_chain::convert_insn): Ditto.
1727 2016-11-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1729 * gimple-ssa-store-merging.c: Include selftest.h
1730 (verify_array_eq): New function.
1731 (verify_shift_bytes_in_array): Likewise.
1732 (verify_shift_bytes_in_array_right): Likewise.
1733 (verify_clear_bit_region): Likewise.
1734 (verify_clear_bit_region_be): Likewise.
1735 (store_merging_c_tests): Likewise.
1736 * selftest.h (store_merging_c_tests): Declare prototype.
1737 * selftest-run-tests.c (selftest::run_tests): Run
1738 store_merging_c_tests.
1740 2016-11-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1742 * config/arm/arm.opt (mold-rtx-costs): Delete.
1743 (mnew-generic-costs): Delete.
1744 * config/arm/arm-protos.h (struct tune_params): Delete rtx_costs field.
1745 * config/arm/arm.c (arm_rtx_costs_1): Delete.
1746 (arm_size_rtx_costs): Likewise.
1747 (arm_slowmul_rtx_costs): Likewise.
1748 (arm_fastmul_rtx_costs): Likewise.
1749 (arm_xscale_rtx_costs): Likewise.
1750 (arm_9e_rtx_costs): Likewise.
1751 (arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune,
1752 arm_xscale_tune, arm_9e_tune, arm_v6t2_tune, arm_cortex_tune,
1753 arm_cortex_a8_tune, arm_cortex_a7_tune, arm_cortex_a15_tune,
1754 arm_cortex_a53_tune, arm_cortex_a57_tune, arm_cortex_a9_tune,
1755 arm_cortex_a12_tune, arm_v7m_tune, arm_v6m_tune, arm_fa726te_tune
1756 arm_cortex_a5_tune, arm_xgene1_tune, arm_marvell_pj4_tune,
1757 arm_cortex_a35_tune, arm_exynosm1_tune, arm_cortex_a73_tune,
1758 arm_cortex_m7_tune):
1759 Delete rtx_costs field.
1760 (arm_new_rtx_costs): Rename to...
1761 (arm_rtx_costs_internal): ... This.
1762 (arm_rtx_costs): Remove old way of doing rtx costs.
1764 2016-11-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1766 * config/arm/arm.c (arm_slowmul_tune): Use generic_extra_costs.
1767 (arm_fastmul_tune): Likewise.
1768 (arm_strongarm_tune): Likewise.
1769 (arm_xscale_tune): Likewise.
1770 (arm_9e_tune): Likewise.
1771 (arm_marvell_pj4_tune): Likewise.
1772 (arm_v6t2_tune): Likewise.
1773 (arm_v6m_tune): Likewise.
1774 (arm_fa726te_tune): Likewise.
1776 2016-11-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1778 PR tree-optimization/78234
1779 * gimple-ssa-store-merging.c (clear_bit_region): Fix off-by-one error
1782 2016-11-08 Martin Liska <mliska@suse.cz>
1785 * dbgcnt.def: Add new debug counter asan_use_after_scope.
1786 * gimplify.c (gimplify_decl_expr): Do not sanitize vars
1787 with a value expr. Do not add artificial variables to
1788 live_switch_vars. Use the debug counter.
1789 (gimplify_target_expr): Use the debug counter.
1790 * internal-fn.def: Remove ECF_TM_PURE from ASAN_MARK builtin.
1791 * sanitizer.def: Set ATTR_NOTHROW_LEAF_LIST to
1792 BUILT_IN_ASAN_CLOBBER_N and BUILT_IN_ASAN_UNCLOBBER_N.
1794 2016-11-08 Richard Biener <rguenther@suse.de>
1796 * tree-vect-stmts.c (get_group_load_store_type): If the
1797 access is aligned do not trigger peeling for gaps.
1798 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Do not
1799 force alignment of vars with DECL_USER_ALIGN.
1801 2016-11-08 James Greenhalgh <james.greenhalgh@arm.com>
1803 * config/aarch64/t-aarch64 (aarch64-c.o): Depend on TARGET_H.
1805 2016-11-08 Richard Biener <rguenther@suse.de>
1807 PR tree-optimization/78205
1808 * tree-vect-stmts.c (vectorizable_load): Move check whether
1809 we may run into gaps when BB vectorizing SLP permutations ...
1810 * tree-vect-slp.c (vect_supported_load_permutation_p): ...
1811 here where we can do a more precise check.
1813 2016-11-08 Richard Biener <rguenther@suse.de>
1815 PR tree-optimization/78224
1816 * tree-call-cdce.c (shrink_wrap_one_built_in_call_with_conds):
1817 Split the fallthru edge in case its successor may have PHIs.
1818 Do not free dominance info.
1820 2016-11-07 Jakub Jelinek <jakub@redhat.com>
1823 * config/i386/i386.c (ix86_gimple_fold_builtin): Do not adjust
1824 EH info even for bzhi and pdep/pext.
1826 2016-11-07 Peter Bergner <bergner@vnet.ibm.com>
1828 * config.gcc (powerpc*-*-*, rs6000*-*-*): Remove setting of
1829 INCLUDE_EXTRA_SPEC for Advance Toolchain builds.
1831 2016-11-07 Segher Boessenkool <segher@kernel.crashing.org>
1833 * config/rs6000/rs6000.md (div<mode>3): Expand using rs6000_emit_swdiv
1835 * config/rs6000/vector.md (div<mode>3): Ditto.
1837 2016-11-07 David Edelsohn <dje.gcc@gmail.com>
1839 * configure.ac (.hidden): Change to conftest_s string. Provide string
1841 (gcc_cv_ld_hidden): Yes for AIX.
1842 * configure: Regenerate.
1844 * dwarf2asm.c (USE_LINKONCE_INDIRECT): Don't set for AIX (XCOFF).
1846 * config/rs6000/rs6000-protos.h (rs6000_asm_weaken_decl): Declare
1847 (rs6000_xcoff_asm_output_aligned_decl_common): Declare.
1848 * config/rs6000/xcoff.h (TARGET_ASM_GLOBALIZE_DECL_NAME): Define.
1849 (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define.
1850 (ASM_OUTPUT_ALIGNED_COMMON): Delete.
1851 * config/rs6000/rs6000.c (rs6000_init_builtins): Change clog rename
1853 (rs6000_xcoff_visibility): New.
1854 (rs6000_xcoff_declare_function_name): Add visibility support.
1855 (rs6000_xcoff_asm_globalize_decl_name): New.
1856 (rs6000_xcoff_asm_output_aligned_decl_common): New.
1857 (rs6000_asm_weaken_decl): New.
1858 (rs6000_code_end): Disable HIDDEN_LINKONCE on XCOFF.
1859 config/rs6000/rs6000.h (ASM_WEAKEN_DECL): Change definition to
1862 2016-11-07 Jack Howarth <howarth.at.gcc@gmail.com>
1865 * incpath.c: (remove_dup(): Also silently ignore EPERM.
1867 2016-11-07 Martin Jambor <mjambor@suse.cz>
1869 * tree.c (verify_type_variant): Use pointer comparison to check that
1870 TYPE_SIZE_UNIT match.
1872 2016-11-07 Jakub Jelinek <jakub@redhat.com>
1875 * dse.c (dse_step5): Call scan_reads even if just
1876 insn_info->frame_read. Improve and fix dump file messages.
1879 * config/i386/i386.c (ix86_expand_sse_cmp): Force dest into
1880 cmp_mode argument even for -O0 if cmp_mode != mode and maskcmp.
1882 2016-11-07 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
1885 * match.pd: Add following two patterns:
1886 (x == 0 & y == 0) -> (x | typeof(x)(y)) == 0.
1887 (x != 0 | y != 0) -> (x | typeof(x)(y)) != 0.
1889 2016-11-07 Bernd Schmidt <bschmidt@redhat.com>
1891 * emit-rtl.c (emit_copy_of_insn_after): Duplicate notes in order.
1892 * sel-sched-ir.c (create_copy_of_insn_rtx): Likewise.
1893 * rtl.h (duplicate_reg_notes): Declare.
1894 * rtlanal.c (duplicate_reg_note): New function.
1896 PR rtl-optimization/77309
1897 * combine.c (make_compound_operation): Allow EQ for IN_CODE, and
1898 don't assume an equality comparison for plain COMPARE.
1899 (simplify_comparison): Pass a more accurate code to
1900 make_compound_operation.
1902 2016-11-07 Pat Haugen <pthaugen@us.ibm.com>
1904 * target.def (compute_pressure_classes): New target hook.
1905 * doc/tm.texi.in: Document it.
1906 * doc/tm.texi: Regenerate.
1907 * ira.c (setup_pressure_classes): Call target hook if defined.
1909 2016-11-07 David Malcolm <dmalcolm@redhat.com>
1911 * print-rtl.c (rtx_writer::operand_has_default_value_p): New
1913 (rtx_writer::print_rtx): In compact mode, omit trailing operands
1914 that have the default values.
1915 * print-rtl.h (rtx_writer::operand_has_default_value_p): New
1917 * rtl-tests.c (selftest::test_dumping_insns): Remove empty
1918 label string from expected dump.
1919 (seltest::test_uncond_jump): Remove trailing "(nil)" for REG_NOTES
1922 2016-11-07 Jakub Jelinek <jakub@redhat.com>
1925 * alias.c (nonoverlapping_memrefs_p): If one decl is
1926 FUNCTION_DECL or LABEL_DECL and the other is not, return 1.
1928 2016-11-07 Richard Biener <rguenther@suse.de>
1931 * config/i386/i386.c (ix86_gimple_fold_builtin): Do not adjust
1934 2016-11-07 Richard Biener <rguenther@suse.de>
1936 PR tree-optimization/78218
1937 * gimple-ssa-store-merging.c
1938 (pass_store_merging::terminate_all_aliasing_chains):
1939 Drop unused argument, fix alias check to also consider uses.
1940 (pass_store_merging::execute): Adjust.
1942 2016-11-07 Richard Biener <rguenther@suse.de>
1944 PR tree-optimization/78228
1945 * tree-ssa-phiopt.c (abs_replacement): Avoid introducing
1948 2016-11-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1951 * config/aarch64/aarch64.md (*tb<optab><mode>1): Use
1952 aarch64_simd_shift_imm_<mode> predicate for operand 1.
1953 (<optab>, ANY_EXTRACT): Use tighter predicates on operands 2 and 3
1954 to restrict them to an appropriate range and add FAIL check if the
1955 region they specify is out of range. Delete useless constraint
1957 (*<optab><mode>, ANY_EXTRACT): Add appropriate predicates on operands
1958 2 and 3 to restrict their range and add pattern predicate.
1960 2016-11-07 Martin Liska <mliska@suse.cz>
1962 * asan.c (enum asan_check_flags): Move the enum to header file.
1963 (asan_init_shadow_ptr_types): Make type creation more generic.
1964 (shadow_mem_size): New function.
1965 (asan_emit_stack_protection): Use newly added ASAN_SHADOW_GRANULARITY.
1966 Rewritten stack unpoisoning code.
1967 (build_shadow_mem_access): Add new argument return_address.
1968 (instrument_derefs): Instrument local variables if use after scope
1969 sanitization is enabled.
1970 (asan_store_shadow_bytes): New function.
1971 (asan_expand_mark_ifn): Likewise.
1972 (asan_sanitize_stack_p): Moved from asan_sanitize_stack_p.
1973 * asan.h (enum asan_mark_flags): Moved here from asan.c
1974 (asan_protect_stack_decl): Protect all declaration that need
1976 (asan_sanitize_use_after_scope): New function.
1977 (asan_no_sanitize_address_p): Likewise.
1978 * cfgexpand.c (partition_stack_vars): Consider
1979 asan_sanitize_use_after_scope in condition.
1980 (expand_stack_vars): Likewise.
1981 * common.opt (-fsanitize-address-use-after-scope): New option.
1982 * doc/invoke.texi (use-after-scope-direct-emission-threshold):
1983 Explain the parameter.
1984 * flag-types.h (enum sanitize_code): Define SANITIZE_USE_AFTER_SCOPE.
1985 * gimplify.c (build_asan_poison_call_expr): New function.
1986 (asan_poison_variable): Likewise.
1987 (gimplify_bind_expr): Generate poisoning/unpoisoning for local
1988 variables that have address taken.
1989 (gimplify_decl_expr): Likewise.
1990 (gimplify_target_expr): Likewise for C++ temporaries.
1991 (sort_by_decl_uid): New function.
1992 (gimplify_expr): Unpoison all variables for a label we can jump
1993 from outside of a scope.
1994 (gimplify_switch_expr): Unpoison variables defined in the switch
1996 (gimplify_function_tree): Clear asan_poisoned_variables.
1997 (asan_poison_variables): New function.
1998 (warn_switch_unreachable_r): Handle IFN_ASAN_MARK.
1999 * internal-fn.c (expand_ASAN_MARK): New function.
2000 * internal-fn.def (ASAN_MARK): Declare.
2001 * opts.c (finish_options): Handle -fstack-reuse if
2002 -fsanitize-address-use-after-scope is enabled.
2003 (common_handle_option): Enable address sanitization if
2004 -fsanitize-address-use-after-scope is enabled.
2005 * params.def (PARAM_USE_AFTER_SCOPE_DIRECT_EMISSION_THRESHOLD):
2007 * params.h: Likewise.
2008 * sancov.c (pass_sanopt::execute): Handle IFN_ASAN_MARK.
2009 * sanitizer.def: Define __asan_poison_stack_memory and
2010 __asan_unpoison_stack_memory functions.
2011 * asan.c (asan_mark_poison_p): New function.
2012 (transform_statements): Handle asan_mark_poison_p calls.
2013 * gimple.c (nonfreeing_call_p): Handle IFN_ASAN_MARK.
2015 2016-11-07 Tamar Christina <tamar.christina@arm.com>
2018 * Makefile.in (SELFTEST_FLAGS): Added -o /dev/null.
2020 2016-11-07 Martin Liska <mliska@suse.cz>
2022 * tree-profile.c (gimple_gen_time_profiler): Set proper type
2023 to time_profiler_counter_ptr.
2025 2016-11-07 Richard Biener <rguenther@suse.de>
2027 PR tree-optimization/37150
2028 * tree-vectorizer.h (vect_transform_slp_perm_load): Add n_perms
2030 * tree-vect-slp.c (vect_supported_load_permutation_p): Adjust.
2031 (vect_analyze_slp_cost_1): Account for the real number of
2032 permutations emitted and for dead loads.
2033 (vect_transform_slp_perm_load): Add n_perms parameter counting
2034 the number of emitted permutations.
2035 * tree-vect-stmts.c (vectorizable_load): Adjust.
2037 2016-11-07 Richard Biener <rguenther@suse.de>
2039 PR tree-optimization/78189
2040 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Fix
2041 alignment computation.
2043 2016-11-06 Kugan Vivekanandarajah <kuganv@linaro.org>
2045 * ipa-cp.c (ipcp_bits_lattice::meet_with): Remove unreachable code.
2047 2016-11-05 Martin Sebor <msebor@redhat.com>
2049 * doc/invoke.texi (Warning Options): Correct typos in -Walloca
2052 2016-11-05 David Edelsohn <dje.gcc@gmail.com>
2056 * ipa-comdats.c (pass_ipa_comdats::gate): Require HAVE_COMDAT_GROUP.
2058 2016-11-04 Jakub Jelinek <jakub@redhat.com>
2061 * alias.c (nonoverlapping_memrefs_p): Return 0 if exprx or expry
2062 doesn't have rtl set.
2064 2016-11-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2066 * config/rs6000/rs6000.c (gimple-ssa.h): New #include.
2067 (TARGET_GIMPLE_FOLD_BUILTIN): Define as
2068 rs6000_gimple_fold_builtin.
2069 (rs6000_gimple_fold_builtin): New function. Add handling for
2070 early expansion of vector addition builtins.
2072 2016-11-04 Eric Botcazou <ebotcazou@adacore.com>
2074 * expr.h (copy_blkmode_from_reg): Delete.
2075 * expr.c (copy_blkmode_from_reg): Make static.
2077 2016-11-04 Eric Botcazou <ebotcazou@adacore.com>
2079 * defaults.h (LOAD_EXTEND_OP): Define if not already defined.
2080 * combine.c (LOAD_EXTEND_OP): Delete.
2081 (simplify_comparison): Fix comment about LOAD_EXTEND_OP.
2082 * cse.c (LOAD_EXTEND_OP): Delete.
2083 * fold-const.c (LOAD_EXTEND_OP): Likewise.
2084 * fwprop.c (free_load_extend): Remove #ifdef LOAD_EXTEND_OP/#endif.
2085 * postreload.c (LOAD_EXTEND_OP): Delete.
2086 * reload.c (push_reload): Remove #ifdef LOAD_EXTEND_OP/#endif.
2087 Convert conditional compilation based on WORD_REGISTER_OPERATIONS.
2088 (find_reloads): Likewise.
2089 * reload1.c (eliminate_regs_1): Likewise.
2090 * rtlanal.c (nonzero_bits1): Remove #ifdef LOAD_EXTEND_OP/#endif.
2091 (num_sign_bit_copies1): Likewise.
2093 2016-11-04 David Malcolm <dmalcolm@redhat.com>
2095 * config/i386/i386.c: Include "selftest.h" and "selftest-rtl.h".
2096 (selftest::ix86_test_dumping_hard_regs): New function.
2097 (selftest::ix86_run_selftests): New function.
2098 (TARGET_RUN_TARGET_SELFTESTS): When CHECKING_P, wire this up to
2099 selftest::ix86_run_selftests.
2100 * doc/tm.texi.in (TARGET_RUN_TARGET_SELFTESTS): New.
2101 * doc/tm.texi: Regenerate
2102 * selftest-rtl.h: New file.
2103 * rtl-tests.c: Include "selftest-rtl.h".
2104 (selftest::assert_rtl_dump_eq): Make non-static.
2105 (ASSERT_RTL_DUMP_EQ): Move to selftest-rtl.h.
2106 (selftest::test_dumping_regs): Update comment.
2107 * selftest-run-tests.c: Include "target.h".
2108 (selftest::run_tests): If non-NULL, call
2109 targetm.run_target_selftests.
2110 * target.def (run_target_selftests): New hook.
2112 2016-11-04 Thomas Preud'homme <thomas.preudhomme@arm.com>
2114 * config/arm/arm-arches.def (armv8-m.main+dsp): Set Cortex-M33 as
2115 representative core for this architecture.
2116 * config/arm/arm-cores.def (cortex-m33): Define new processor.
2117 * config/arm/arm-tables.opt: Regenerate.
2118 * config/arm/arm-tune.md: Likewise.
2119 * config/arm/bpabi.h (BE8_LINK_SPEC): Add Cortex-M33 to the list of
2120 valid -mcpu options.
2121 * doc/invoke.texi (ARM Options): Document new Cortex-M33 processor.
2123 2016-11-04 Thomas Preud'homme <thomas.preudhomme@arm.com>
2125 * config/arm/arm-arches.def (armv8-m.base): Set Cortex-M23 as
2126 representative core for this architecture.
2127 * config/arm/arm-cores.def (cortex-m23): Define new processor.
2128 * config/arm/arm-tables.opt: Regenerate.
2129 * config/arm/arm-tune.md: Likewise.
2130 * config/arm/arm.c (arm_v6m_tune): Add Cortex-M23 to the list of cores
2131 this tuning parameters apply to in the comment.
2132 * config/arm/bpabi.h (BE8_LINK_SPEC): Add Cortex-M23 to the list of
2133 valid -mcpu options.
2134 * doc/invoke.texi (ARM Options): Document new Cortex-M23 processor.
2136 2016-11-04 Bin Cheng <bin.cheng@arm.com>
2138 * fold-const.c (fold_cond_expr_with_comparison): Remove call
2139 to pedantic_non_lvalue_loc. Remove useless code for lvalue
2140 where cond_expr can't be a lvalue.
2142 2016-11-04 Claudiu Zissulescu <claziss@synopsys.com>
2144 * config/arc/arc.c (arc_process_double_reg_moves): Use
2146 * config/arc/arc.md (movsi_insn): Disable unsupported move
2147 instructions for ARCv2 cores.
2148 (movdi): Use prepare_move_operands.
2149 (movsf, movdf): Use move_dest_operand predicate.
2150 * config/arc/constraints.md (Chs): Enable when barrel shifter is
2152 * config/arc/fpu.md (divsf3): Change to divsf3_fpu.
2153 * config/arc/fpx.md (dexcl_3op_peep2_insn): Dx data register is
2155 (dexcl_3op_peep2_insn_nores): Likewise.
2156 * config/arc/arc.h (SHIFT_COUNT_TRUNCATED): Define to one.
2157 (LINK_COMMAND_SPEC): Remove.
2159 2016-11-04 Richard Biener <rguenther@suse.de>
2162 * loop-invariant.c (find_exits): Record entering inner
2163 loops as possibly exiting to handle infinite sub-loops.
2164 * tree-ssa-loop-im.c: Include tree-ssa-loop-niter.h.
2165 (fill_always_executed_in_1): Honor infinite child loops.
2167 2016-11-03 Michael Meissner <meissner@linux.vnet.ibm.com>
2170 * config/rs6000/vsx.md (vsx_extract_<mode>_di): The element number
2171 has already been adjusted for endianness, so don't adjust it any
2175 * config/rs6000/rs6000.h (FLOAT128_IBM_P): Do not allow IFmode or
2176 ICmode unless we have standard PowerPC floating point.
2177 * config/rs6000/rs6000.md (FP iterator): Likewise.
2178 (FMOVE128 iterator): Likewise.
2180 2016-11-03 Jakub Jelinek <jakub@redhat.com>
2181 Alexandre Oliva <aoliva@redhat.com>
2182 Jason Merrill <jason@redhat.com>
2186 * langhooks.h (struct lang_hooks_for_types): Add type_dwarf_attribute
2188 * langhooks.c (lhd_type_dwarf_attribute): New function.
2189 * langhooks-def.h (lhd_type_dwarf_attribute): Declare.
2190 (LANG_HOOKS_TYPE_DWARF_ATTRIBUTE): Define.
2191 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add
2192 LANG_HOOKS_TYPE_DWARF_ATTRIBUTE.
2193 (check_qualified_type, check_aligned_type): Call it.
2194 * dwarf2out.c (modified_type_die): Don't use type_main_variant
2195 for FUNCTION_TYPE or METHOD_TYPE, instead walk over variants with
2196 check_base_type and check_lang_type.
2197 (gen_ptr_to_mbr_type_die): If lookup_type_die is already non-NULL,
2198 return early. For pointer-to-data-member add DW_AT_use_location
2200 (gen_subroutine_type_die): Add DW_AT_{,rvalue_}reference attribute
2202 (gen_type_die_with_usage): Don't use type_main_variant
2203 for FUNCTION_TYPE or METHOD_TYPE, instead walk over variants with
2204 check_base_type and check_lang_type. Formatting fixes. Call
2205 get_debug_type langhook.
2207 2016-11-03 Jason Merrill <jason@redhat.com>
2209 * tree.c (check_lang_type): New.
2210 (check_qualified_type): Use it.
2211 (check_aligned_type): Use it.
2212 * tree.h: Declare it.
2214 2016-11-03 Richard Earnshaw <rearnsha@arm.com>
2216 * config.gcc (arm-wrs-vxworks): Set target_cpu_cname.
2217 (arm*-freebsd*): Likewise.
2218 (arm*-*-netbsdelf*): Likewise.
2219 (arm*-*-linux*): Likewise.
2220 (arm*-*-uclinux*eabi*): Likewise.
2221 (arm*-*-phoenix*): Likewise.
2222 (arm*-*-eabi*, arm*-*-symbianelf*, arm*-*-rtems*): Likewise.
2223 (arm*-*-*): Don't clobber target_cpu_cname when --with-cpu is not
2224 specified. Default to arm6 if target_cpu_cname is not set.
2225 * arm/arm.c (arm_option_override): Simplify logic. Assert that the
2226 default cpu has been correctly configured.
2227 * arm/arm.h (TARGET_CPU_DEFAULT): Delete.
2228 (target_cpus): Delete TARGET_CPU_generic, add TARGET_CPU_num_cores.
2229 * arm/freebsd.h (SUBTARGET_CPU_DEFAULT): Delete.
2230 * arm/linux-eabi.h (SUBTARGET_CPU_DEFAULT): Delete.
2231 * arm/linux-elf.h (SUBTARGET_CPU_DEFAULT): Delete.
2232 * arm/symbian.h (SUBTARGET_CPU_DEFAULT): Delete.
2233 * arm/unknown-elf.h (SUBTARGET_CPU_DEFAULT): Delete.
2235 2016-11-03 Jiong Wang <jiong.wang@arm.com>
2237 * reg-notes.def (CFA_VAL_EXPRESSION): New entry.
2238 * dwarf2cfi.c (dwarf2out_frame_debug_cfa_val_expression): New function.
2239 (dwarf2out_frame_debug): Support REG_CFA_VAL_EXPRESSION.
2240 (output_cfa_loc): Support DW_CFA_val_expression.
2241 (output_cfa_loc_raw): Likewise.
2242 (output_cfi): Likewise.
2243 (output_cfi_directive): Likewise.
2244 * dwarf2out.c (dw_cfi_oprnd1_desc): Support DW_CFA_val_expression.
2245 (dw_cfi_oprnd2_desc): Likewise.
2246 (mem_loc_descriptor): Recognize new pattern generated for value
2249 2016-11-03 Segher Boessenkool <segher@kernel.crashing.org>
2251 PR rtl-optimization/78186
2252 * combine.c (change_zero_ext): Mask the RHS of a zero_extract as
2253 well, when converting to IOR.
2255 2016-11-03 Eric Botcazou <ebotcazou@adacore.com>
2257 * config/sparc/sparc.md (vec_interleave_lowv8qi): Delete.
2258 (vec_interleave_highv8qi): Likewise.
2260 2016-11-03 Martin Liska <mliska@suse.cz>
2262 * profile.c (instrument_values): Fix coding style.
2263 (branch_prob): Use renamed function.
2264 * tree-profile.c (init_ic_make_global_vars): Likewise.
2265 (gimple_init_edge_profiler): Rename to
2266 gimple_init_gcov_profiler.
2267 tree_time_profiler_counter variable declaration.
2268 (gimple_gen_time_profiler): Rewrite to do a direct gimple code
2270 * value-prof.h: Remove an argument.
2272 2016-11-03 Richard Biener <rguenther@suse.de>
2274 * config/rs6000/rs6000.c (rs6000_xcoff_declare_object_name): Use
2275 symtab_node::get_create.
2277 2016-11-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2279 * rtlanal.c (nonzero_bits1): Fix WORD_REGISTER_OPERATIONS condition.
2280 Move comments into more natural position.
2282 2016-11-03 Vineet Gupta <vgupta@synopsys.com>
2284 * config/arc/arc.h (SIZE_TYPE): Define as unsigned int.
2285 (PTRDIFF_TYPE): Define as int.
2287 2016-11-03 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
2289 * ccmp.c (expand_ccmp_expr_1): Adjust.
2290 (expand_ccmp_expr): Likewise.
2291 (expand_ccmp_next): Likewise.
2292 * config/aarch64/aarch64.c (aarch64_gen_ccmp_next): Likewise.
2293 (aarch64_gen_ccmp_first): Likewise.
2294 * doc/tm.texi: Regenerate.
2295 * target.def (gen_ccmp_first): Change argument types to rtx_insn *.
2296 (gen_ccmp_next): Likewise.
2298 2016-11-03 Bin Cheng <bin.cheng@arm.com>
2300 * tree-vect-loop.c (destroy_loop_vec_info): Handle cond_expr.
2301 (vect_is_simple_reduction): Swap cond_reduction by inversion.
2303 2016-11-02 Uros Bizjak <ubizjak@gmail.com>
2305 * config/i386/i386.c (ix86_init_libfuncs): New. Call
2306 darwin_rename_builtins here.
2307 (ix86_expand_divmod_libfunc): New.
2308 (TARGET_INIT_LIBFUNCS): Unconditionally define to ix86_init_libfuncs.
2309 (TARGET_EXPAND_DIVMOD_LIBFUNC): Define.
2311 2016-11-02 Cesar Philippidis <cesar@codesourcery.com>
2312 Nathan Sidwell <nathan@acm.org>
2314 * config/nvptx/nvptx.c (PTX_GANG_DEFAULT): Set to zero.
2316 2016-11-02 Max Filippov <jcmvbkbc@gmail.com>
2318 * config/xtensa/xtensa.c (xtensa_output_integer_literal_parts):
2320 (xtensa_output_literal): Use xtensa_output_integer_literal_parts
2321 to format MODE_INT and MODE_PARTIAL_INT literals.
2323 2016-11-02 Segher Boessenkool <segher@kernel.crashing.org>
2326 * config/r6000/rs6000.c (rs6000_get_separate_components): Return
2327 NULL if TARGET_SPE_ABI.
2329 2016-11-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2331 * gimple-ssa-store-merging.c (encode_tree_to_bitpos): Don't forget to
2332 clear padding bits even when they're less than a byte.
2334 2016-11-02 Richard Biener <rguenther@suse.de>
2336 * gimple-ssa-store-merging.c: Include gimplify-me.h.
2337 (imm_store_chain_info::output_merged_stores): Force base_addr
2338 to be proper GIMPLE for a MEM_REF address.
2339 (pass_store_merging::execute): Restrict negative bitpos
2340 handling to non-MEM_REF bases. Remove TREE_THIS_VOLATILE
2341 check. Take into account non-NULL_TREE offset if the base
2342 is already addressable.
2344 2016-11-26 Wilco Dijkstra <wdijkstr@arm.com>
2346 * config/aarch64/aarch64-simd.md (aarch64_crypto_sha1hv4si):
2348 (aarch64_be_crypto_sha1hv4si): New pattern.
2350 2016-11-02 Wilco Dijkstra <wdijkstr@arm.com>
2352 * config/aarch64/aarch64.md (add<mode>3): Remove
2353 redundant code. Don't split frame based additions.
2355 2016-11-02 Richard Biener <rguenther@suse.de>
2357 * gimple-ssa-store-merging.c (struct store_immediate_info): Remove
2358 redundant val and dest members.
2359 (store_immediate_info::store_immediate_info): Adjust.
2360 (merged_store_group::merged_store_group): Adjust.
2361 (merged_store_group::apply_stores): Likewise.
2362 (struct imm_store_chain_info): Add base_addr field.
2363 (imm_store_chain_info::imm_store_chain_info): New constructor.
2364 (imm_store_chain_info::terminate_and_process_chain): Do not pass base.
2365 (imm_store_chain_info::output_merged_store): Likewise. Use
2366 addr_base which is already the address.
2367 (imm_store_chain_info::output_merged_stores): Likewise.
2368 (pass_tree_store_merging::terminate_all_aliasing_chains): Take
2369 imm_store_chain_info instead of base. Fix alias check.
2370 (pass_tree_store_merging::terminate_and_release_chain): Likewise.
2371 (imm_store_chain_info::coalesce_immediate_stores): Adjust.
2372 (pass_store_merging::execute): Refuse to operate on TARGET_MEM_REF.
2373 use the address of the base and adjust for other changes.
2375 2016-11-02 Martin Liska <mliska@suse.cz>
2377 * fold-const-call.c (host_size_t_cst_p): Test whether
2378 t is convertible to size_t.
2380 2016-11-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2382 PR tree-optimization/78170
2383 * gimple-ssa-store-merging.c (encode_tree_to_bitpos): Truncate padding
2384 introduced by native_encode_expr on little-endian as well.
2386 2016-11-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2388 PR tree-optimization/78162
2389 * gimple-ssa-store-merging.c (execute): Mark stores with bitpos < 0
2392 2016-11-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2394 * config/aarch64/aarch64.c (aarch64_register_saved_on_entry): Add
2396 (aarch64_next_callee_save): Likewise.
2397 (aarch64_pushwb_single_reg): Likewise.
2398 (aarch64_gen_storewb_pair): Likewise.
2399 (aarch64_push_regs): Likewise.
2400 (aarch64_gen_loadwb_pair): Likewise.
2401 (aarch64_pop_regs): Likewise.
2402 (aarch64_gen_store_pair): Likewise.
2403 (aarch64_gen_load_pair): Likewise.
2404 (aarch64_save_callee_saves): Likewise.
2405 (aarch64_restore_callee_saves): Likewise.
2407 2016-11-02 Richard Biener <rguenther@suse.de>
2409 PR tree-optimization/78035
2410 PR tree-optimization/77964
2411 * gimple-pretty-print.c (pp_points_to_solution): Print
2412 vars_contains_interposable.
2413 * tree-ssa-alias.c: Include varasm.h.
2414 (ptrs_compare_unequal): Check vars_contains_interposable and
2415 decl_binds_to_current_def_p.
2416 (dump_points_to_solution): Dump vars_contains_interposable.
2417 * tree-ssa-alias.h (struct pt_solution): Add vars_contains_interposable
2419 * tree-ssa-structalias.c: Include varasm.h.
2420 (set_uids_in_ptset): Record whether vars contains a
2421 not decl_binds_to_current_def_p variable in vars_contains_interposable.
2422 (ipa_escaped_pt): Update initializer.
2424 2016-11-02 Richard Biener <rguenther@suse.de>
2426 PR tree-optimization/78047
2427 * tree-ssa-structalias.c (push_fields_onto_fieldstack): Initialize
2428 fake field at offset zero conservatively regarding to may_have_pointers.
2430 2016-11-02 Richard Biener <rguenther@suse.de>
2432 * tree-vrp.c (evrp_dom_walker::before_dom_children): Call
2433 infer_value_range on stmt ops and update value-ranges.
2434 Dump visited stmts and blocks.
2435 (evrp_dom_walker::push_value_range): Dump changes.
2436 (evrp_dom_walker::pop_value_range): Likewise.
2437 (evrp_dom_walker::try_find_new_range): Avoid noop changes.
2439 2016-11-01 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
2441 * emit-rtl.c (prev_nonnote_insn_bb): Change argument type to
2443 * rtl.h (prev_nonnote_insn_bb): Adjust prototype.
2445 2016-11-01 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
2447 * cfgrtl.c (delete_insn_chain): Change argument type to rtx_insn *
2448 and adjust for that.
2449 * cfgrtl.h (delete_insn_chain): Adjust prototype.
2451 2016-11-01 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
2453 * config/rl78/rl78.c (gen-and_emit_move): Change argument type
2455 (transcode_memory_rtx): Likewise.
2456 (move_to_acc): Likewise.
2457 (move_from_acc): Likewise.
2458 (move_acc_to_reg): Likewise.
2459 (move_to_x): Likewise.
2460 (move_to_hl): Likewise.
2461 (move_to_de): Likewise.
2462 * config/rs6000/rs6000.c (emit_frame_save): Likewise.
2463 (rs6000_emit_savres_rtx): Likewise.
2464 (rs6000_emit_prologue): Likewise.
2465 * reorg.c (update_reg_unused_notes): Likewise.
2466 * rtl.h (remove_note): Adjust prototype.
2467 * rtlanal.c (remove_note): Make argument type rtx_insn *.
2469 2016-11-01 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
2471 * config/alpha/alpha.c (alpha_legitimize_address_1): Split up
2472 variables so some can be rtx_insn *.
2473 (alpha_emit_xfloating_libcall): Likewise.
2474 * config/mips/mips.c (mips_call_tls_get_addr): Likewise.
2475 (mips_legitimize_tls_address): Likewise.
2476 * optabs.c (expand_binop): Likewise.
2477 * reload1.c (gen_reload): Likewise.
2479 2016-11-01 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
2481 * reorg.c (relax_delay_slots): Split up the trial variable.
2483 2016-11-01 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
2485 * config/arc/arc.c (arc_emit_call_tls_get_addr): Make the type
2486 of variables rtx_insn *.
2487 * config/arm/arm.c (arm_call_tls_get_addr): Likewise.
2488 (legitimize_tls_address): Likewise.
2489 * config/bfin/bfin.c (hwloop_optimize): Likewise.
2490 (bfin_gen_bundles): Likewise.
2491 * config/c6x/c6x.c (reorg_split_calls): Likewise.
2492 (c6x_reorg): Likewise.
2493 * config/frv/frv.c (frv_reorder_packet): Likewise.
2494 * config/i386/i386.c (ix86_split_idivmod): Likewise.
2495 * config/ia64/ia64.c (ia64_expand_compare): Likewise.
2496 * config/m32c/m32c.c (m32c_prepare_shift): Likewise.
2497 * config/mn10300/mn10300.c: Likewise.
2498 * config/rl78/rl78.c: Likewise.
2499 * config/s390/s390.c (s390_fix_long_loop_prediction): Likewise.
2500 * config/sh/sh-mem.cc (sh_expand_cmpstr): Likewise.
2501 (sh_expand_cmpnstr): Likewise.
2502 (sh_expand_strlen): Likewise.
2503 (sh_expand_setmem): Likewise.
2504 * config/sh/sh.md: Likewise.
2505 * emit-rtl.c (emit_pattern_before): Likewise.
2506 * except.c: Likewise.
2507 * final.c: Likewise.
2510 2016-11-01 Jason Merrill <jason@redhat.com>
2512 * tree-inline.c (copy_tree_body_r): Only copy the taken branch of
2513 a COND_EXPR with constant condition.
2515 2016-11-01 Jakub Jelinek <jakub@redhat.com>
2517 * dwarf2out.c (gen_variable_die): Remove again origin_die variable
2518 and its initialization.
2520 2016-11-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2522 * dwarf2out.c (output_rnglists): Wrap basebuf, len in
2525 2016-11-01 Jakub Jelinek <jakub@redhat.com>
2527 * dwarf2out.c (add_name_and_src_coords_attributes): Add NO_LINKAGE_NAME
2528 argument, don't call add_linkage_name if it is true.
2529 (gen_variable_die): For C++ inline static data members, consider the
2530 initial call when old_die is NULL to be declaration and call
2531 add_name_and_src_coords_attributes in that case with true as
2532 NO_LINKAGE_NAME. Add DW_AT_inline attribute if needed.
2533 (gen_member_die): For C++ inline static data members, emit a
2534 definition DIE right away in DW_TAG_compile_unit context.
2536 2016-11-01 John David Anglin <danglin@gcc.gnu.org>
2539 * config/pa/pa.md: Add new shift/add patterns to handle
2540 (plus (mult (reg) (mem_shadd_operand)) (reg)) source operand.
2542 2016-11-01 Max Filippov <jcmvbkbc@gmail.com>
2544 * config/xtensa/xtensa-protos.h
2545 (xtensa_use_return_instruction_p): New prototype.
2546 * config/xtensa/xtensa.c (xtensa_current_frame_size,
2547 xtensa_callee_save_size): Remove.
2548 (struct machine_function): Add new fields: current_frame_size,
2549 callee_save_size, frame_laid_out and epilogue_done.
2550 (compute_frame_size, xtensa_expand_prologue,
2551 xtensa_expand_epilogue): Replace xtensa_callee_save_size with
2552 cfun->machine->callee_save_size and xtensa_current_frame_size
2553 with cfun->machine->current_frame_size.
2554 (compute_frame_size): Update cfun->machine->frame_laid_out and
2555 don't update frame layout after reload completion.
2556 (xtensa_expand_epilogue): Set cfun->machine->epilogue_done
2557 instead of zeroing xtensa_current_frame_size.
2558 (xtensa_use_return_instruction_p): New function.
2559 * config/xtensa/xtensa.h (xtensa_current_frame_size): Remove
2561 (INITIAL_ELIMINATION_OFFSET): Use return value of
2562 compute_frame_size instead of xtensa_current_frame_size value.
2563 * config/xtensa/xtensa.md ("return" pattern): Use new predicate
2564 function xtensa_use_return_instruction_p instead of inline code.
2566 2016-11-01 Jakub Jelinek <jakub@redhat.com>
2568 * tree.h (BLOCK_IN_COLD_SECTION_P): Define.
2569 * final.c (final_scan_insn): Set BLOCK_IN_COLD_SECTION_P.
2570 * dwarf2out.c (rnglist_idx): New variable.
2571 (struct dw_ranges): Add label, idx and maybe_new_sec fields.
2572 (DEBUG_RNGLISTS_SECTION): Define.
2573 (ranges_base_label): New variable.
2574 (size_of_die) <case dw_val_class_range_list>: If using
2575 DW_FORM_rnglistx, count size of uleb128 of range list index.
2576 (value_format) <case dw_val_class_range_list>: For
2577 -gdwarf-5 -gsplit-dwarf return DW_FORM_rnglistx.
2578 (output_range_list_offset): Handle -gdwarf-5 .debug_rnglists
2579 offsets. Multiply dwarf < 5 offsets by 2 * DWARF_ADDR_SIZE.
2580 (add_ranges_num): Remove useless prototype. Don't multiply
2581 by 2 * DWARF2_ADDR_SIZE. Add maybe_new_sec argument, adjust
2582 for new fields added to dw_ranges struct.
2583 (add_ranges): Add maybe_new_sec argument and pass it
2584 through to add_ranges_num.
2585 (note_rnglist_head): New function.
2586 (add_ranges_by_labels): Pass true as maybe_new_sec to
2587 add_ranges_num, call note_rnglist_head on the head of the list.
2588 (output_ranges): Add function comment. Switch to
2589 .debug_ranges section here and emit .Ldebug_ranges0 label.
2590 (index_rnglists, output_rnglists): New functions.
2591 (gen_subprogram_die): Formatting fixes.
2592 (add_high_low_attributes): Don't divide offsets
2593 by 2 * DWARF2_ADDR_SIZE. Call note_rnglist_head on the
2594 first list element or when pointing into the middle of
2595 a list. Pass true as second argument to add_ranges on the
2596 first block fragment after cold/hot section switch.
2597 (init_sections_and_labels): For -gdwarf-5 use .debug_rnglists
2598 section instead of .debug_ranges. Initialize
2599 ranges_base_label if -gdwarf-5 -gsplit-dwarf.
2600 (dwarf2out_finish): For -gdwarf-5 -gsplit-dwarf call
2601 index_rnglists and add DW_AT_rnglists_base attr. Don't switch
2602 to dwarf_ranges_section here or emit .Ldebug_ranges0 label.
2603 Call output_rnglists for -gdwarf-5.
2604 (dwarf2out_c_finalize): Clear rnglist_idx.
2606 2016-11-01 Fritz Reese <fritzoreese@gmail.com>
2608 * combine.c (simplify_compare_const): Add gcc_fallthrough.
2610 2016-11-01 Bilyan Borisov <bilyan.borisov@arm.com>
2611 Tamar Christina <tamar.christina@arm.com>
2613 * config/arm/arm-c.c (arm_cpu_builtins): New macro definition.
2614 * config/arm/arm_neon.h (vmaxnm_f32): New intrinsinc.
2615 (vmaxnmq_f32): Likewise.
2616 (vminnm_f32): Likewise.
2617 (vminnmq_f32): Likewise.
2618 * config/arm/arm_neon_builtins.def (vmaxnm): New builtin.
2620 * config/arm/neon.md (neon_<fmaxmin_op><mode>, VCVTF): New
2623 2016-10-31 Michael Meissner <meissner@linux.vnet.ibm.com>
2625 * config/rs6000/vsx.md (VSX_EXTRACT_FL): New iterator for all
2626 binary floating point types supported by the hardware except for
2628 (vsx_xvcvsxwdp_df): Provide scalar result alternative to the
2629 vector instruction for optimizing extracting a SImode from a
2630 V4SImode vector and converting it to floating point.
2631 (vsx_xvcvuxwdp_df): Likewise.
2632 (vsx_extract_si): On ISA 3.0, allow extract target and temporary
2633 registers to be any VSX register. Move stores to the end of the
2635 (vsx_extract_si_<uns>float_df): New combiner pattern and splitter
2636 to optimize extracting a SImode from a V4SImode vector and
2637 converting it to a binary floating point type supported by the
2638 hardware. Use the vector converts instead of extracting the
2639 element, sign extending it, and then converting it to double.
2640 Other floating point types than double first convert to double,
2641 then the double is converted to that type.
2642 (vsx_extract_si_<uns>float_<mode>): Likewise.
2644 2016-10-31 Andrew Pinski <apinski@cavium.com>
2646 * config/aarch64/driver-aarch64.c (host_detect_local_cpu):
2647 Rewrite handling of part num to handle the case where
2648 multiple implementers share the same part num.
2650 2016-10-31 Jan Kratochvil <jan.kratochvil@redhat.com>
2651 Jakub Jelinek <jakub@redhat.com>
2653 * dwarf2out.c (DWARF_COMPILE_UNIT_HEADER_SIZE): Adjust for -gdwarf-5.
2654 (DWARF_COMDAT_TYPE_UNIT_HEADER_SIZE): Likewise.
2656 2016-10-31 Jakub Jelinek <jakub@redhat.com>
2658 * dwarf2out.c (dwarf_AT): Handle DW_AT_dwo_name.
2659 (use_debug_types): Adjust comment for DWARF5 DW_UT_type units.
2660 (new_die): Handle DW_TAG_skeleton_unit like DW_TAG_compile_unit.
2661 (is_cu_die, is_unit_die): Likewise.
2662 (should_move_die_to_comdat, break_out_comdat_types): Adjust
2663 comments for DWARF5 DW_UT_type units.
2664 (output_compilation_unit_header): Add UT argument, output
2665 start of DWARF5 .debug_info section header.
2666 (output_comp_unit): Add dwo_id argument. Adjust
2667 output_compilation_unit_header caller, for DW_UT_split_compile
2668 emit dwo_id field, otherwise padding1. Emit padding2 field.
2669 (add_top_level_skeleton_die_attrs): Add DW_AT_dwo_name
2670 rather than DW_AT_GNU_dwo_name attr for -gdwarf-5.
2671 (output_skeleton_debug_sections): Add dwo_id argument, for
2672 -gdwarf-5 emit DWARF 5 DW_UT_skeleton header.
2673 (output_comdat_type_unit): For -gdwarf-5 emit .debug_info
2674 DW_UT_type or DW_UT_split_type units rather than .debug_types.
2675 (dwarf2out_finish): Use DW_TAG_skeleton_unit rather than
2676 DW_TAG_compile_unit for skeleton unit die. Don't add
2677 DW_AT_GNU_dwo_id attributes for -gdwarf-5, instead pass checksum
2678 address to output_comp_unit and output_skeleton_debug_sections.
2680 * dwarf2out.c (debug_line_str_section): New variable.
2681 (debug_line_str_hash): Likewise.
2682 (DEBUG_LINE_STR_SECTION): Define.
2683 (set_indirect_string): Handle DW_FORM_line_strp like
2685 (find_string_form): Fix up formatting.
2686 (size_of_die): Handle DW_FORM_line_strp like DW_FORM_strp.
2688 (output_die): Handle DW_FORM_line_strp.
2689 (DWARF5_USE_DEBUG_LINE_STR): Define.
2690 (output_line_string): New function.
2691 (output_file_names): Add -gdwarf-5 support.
2692 (output_line_info): Likewise.
2693 (init_sections_and_labels): Initialize debug_line_str_section.
2694 (output_indirect_string): Change 2nd argument from void *
2695 to enum dwarf_form form, compare with form rather than
2697 (output_indirect_strings): Pass DW_FORM_strp to
2698 output_indirect_string traversion.
2699 (dwarf2out_finish): Output .debug_line_str strings.
2700 (dwarf2out_c_finalize): Clear debug_line_str_section and
2701 debug_line_str_hash.
2703 2016-10-31 Tom Tromey <tom@tromey.com>
2706 * dwarf2out.c (mem_loc_descriptor): Use DW_OP_form_tls_address.
2707 (resolve_args_picking_1): Move DW_OP_form_tls_address case next to
2708 DW_OP_GNU_push_tls_address case.
2709 (loc_list_from_tree_1): Use DW_OP_form_tls_address.
2711 2016-10-31 Jakub Jelinek <jakub@redhat.com>
2713 * dwarf2out.h (struct dw_loc_descr_node): Adjust comment
2714 for frame_offset_rel bit.
2715 (struct array_descr_info): Add rank field.
2716 * dwarf2out.c (struct loc_descr_context): Add placeholder_arg
2717 and placeholder_seen fields.
2718 (resolve_args_picking_1): Handle also frame_offset_rel DW_OP_dup
2719 and DW_OP_over. Optimize DW_OP_pick 0 into DW_OP_dup and
2720 DW_OP_pick 1 into DW_OP_over.
2721 (function_to_dwarf_procedure, type_byte_size, field_byte_offset,
2722 gen_variant_part): Clear placeholder_{arg,seen}.
2723 (loc_list_from_tree_1): Drop const from context argument.
2724 Handle integral PLACEHOLDER_EXPR if context->placeholder_arg.
2725 (loc_list_for_address_of_addr_expr_of_indirect_ref,
2726 loc_list_from_tree, loc_descriptor_from_tree): Drop const from
2728 (add_scalar_info): Drop const from context argument. Handle
2729 context->placeholder_arg.
2730 (add_bound_info): Drop const from context argument.
2731 (gen_descr_array_type_die): Drop const from ctx variable.
2732 Initialize placeholder_arg and placeholder_seen. Add DW_AT_rank
2733 attribute and use a single DW_TAG_generic_subrange instead of
2734 7 DW_TAG_subrange_type for assumed rank arrays.
2736 * dwarf2out.h (enum dw_val_class): Add dw_val_class_loclistsptr.
2737 * dwarf2out.c (struct dw_loc_list_struct): Change emitted field
2738 from bool to 1-bit uchar bitfield. Add num_assigned and
2739 offset_emitted bitfields.
2740 (dw_val_equal_p): Compare v.val_lbl_id rather than v.val_unsigned
2741 for dw_val_class_lineptr and dw_val_class_macptr. Handle
2742 dw_val_class_loclistsptr.
2743 (new_addr_loc_descr): Fix up formatting.
2744 (DEBUG_LOCLISTS_SECTION, DEBUG_DWO_LOCLISTS_SECTION): Define.
2745 (add_AT_low_high_pc): Fix up formatting.
2746 (add_AT_loclistsptr): New function.
2747 (AT_lbl): Allow dw_val_class_loclistsptr.
2748 (print_dw_val, attr_checksum, attr_checksum_ordered, same_dw_val_p):
2749 Handle dw_val_class_loclistsptr.
2750 (loc_list_idx): New variable.
2751 (output_loclists_offsets, assign_location_list_indexes): New
2753 (size_of_die): For dw_val_class_loc_list -gsplit-dwarf -gdwarf-5
2754 add size_of_uleb128 of the index. Drop never used
2755 dwarf_split_debug_info AT_index handling. Handle
2756 dw_val_class_loclistsptr.
2757 (value_format): Return DW_FORM_loclistsx for dw_val_class_loc_list
2758 if -gsplit-dwarf -gdwarf-5. Handle dw_val_class_loclistsptr.
2759 (output_loc_list): Handle DWARF 5 .debug_loclists* format.
2760 (output_loc_list_offset): Handle -gsplit-dwarf -gdwarf-5
2761 DW_FORM_loclistx indexes.
2762 (output_attr_index_or_value): Fix up formatting. Don't handle
2763 dw_val_class_loc_list here.
2764 (output_die): Formatting fixes. Handle dw_val_class_loclistsptr.
2765 For dw_val_class_loc_list call output_loc_list_offset rather than
2766 output_attr_index_or_value.
2767 (init_sections_and_labels): For -gdwarf-5 use .debug_loclists
2768 or .debug_loclists.dwo section name for debug_loc_section.
2769 (resolve_addr_in_expr): Formatting fix.
2770 (index_location_lists): Likewise.
2771 (dwarf2out_finish): If there are any location lists, for
2772 -gsplit-dwarf -gdwarf-5 add DW_AT_loclists_base attribute. Call
2773 index_location_lists only if have_location_lists. Call
2774 assign_location_list_indexes for -gsplit-dwarf -gdwarf-5. Emit
2775 .debug_loclists{,.dwo} section header for -gdwarf-5, for -gdwarf-5
2776 -gsplit-dwarf also emit offset table.
2778 * dwarf2out.c (DWARF_LARGEST_DATA_FORM_BITS): Define.
2779 (size_of_die, value_format, output_die): Use
2780 DW_FORM_data16 for 128-bit dw_val_class_const_double or
2781 dw_val_class_wide_int.
2783 * dwarf2out.c (dwarf_op): Renamed to ...
2784 (dwarf_OP): ... this.
2785 (convert_descriptor_to_mode, scompare_loc_descriptor,
2786 minmax_loc_descriptor, typed_binop, mem_loc_descriptor,
2787 implicit_ptr_descriptor, optimize_one_addr_into_implicit_ptr): Adjust
2789 (dwarf_AT, dwarf_TAG): New functions.
2790 (check_die): Disallow DW_AT_call_all_calls next to
2791 DW_AT_GNU_all_call_sites.
2792 (gen_call_site_die): Use dwarf_TAG and dwarf_AT with DWARF 5 tag
2793 and attributes instead of the corresponding GNU tag and attributes.
2794 (gen_subprogram_die): Likewise. Emit call site information even
2795 for -gdwarf-5 -gstrict-dwarf. Replace DW_AT_GNU_defaulted with
2796 DW_AT_defaulted in comment.
2797 (resolve_addr): Handle DW_AT_call_origin attribute on
2798 DW_TAG_call_site DIE like DW_AT_abstract_origin on
2799 DW_TAG_GNU_call_site DIE.
2801 * dwarf2out.c (dwarf_op): New function.
2802 (size_of_loc_descr): Handle DW_OP_{implicit_pointer,entry_value},
2803 DW_OP_{const,regval,deref}_type and DW_OP_{convert,reinterpret}.
2804 (output_loc_operands, output_loc_operands_raw): Likewise.
2805 (resolve_args_picking_1, prune_unused_types_walk_loc_descr,
2806 mark_base_types, hash_loc_operands, compare_loc_operands): Likewise.
2807 (resolve_addr_in_expr): Likewise. Only punt for !dwarf_strict
2808 if dwarf_version < 5.
2809 (convert_descriptor_to_mode): Use dwarf_op (DW_OP_xxx) instead of
2811 (scompare_loc_descriptor, ucompare_loc_descriptor,
2812 minmax_loc_descriptor, typed_binop, mem_loc_descriptor,
2813 implicit_ptr_descriptor, optimize_one_addr_into_implicit_ptr,
2814 optimize_location_into_implicit_ptr): Likewise. Only punt for
2815 !dwarf_strict if dwarf_version < 5.
2816 (string_cst_pool_decl): Adjust comment.
2817 (non_dwarf_expression): Handle DW_OP_implicit_pointer.
2819 * dwarf2out.h (enum dw_val_class): Add dw_val_class_const_implicit,
2820 dw_val_class_unsigned_const_implicit and dw_val_class_file_implicit.
2821 (struct dw_val_node): Add val_file_implicit field.
2822 * dwarf2out.c (dw_val_equal_p, print_dw_val, attr_checksum,
2823 attr_checksum_ordered, same_dw_val_p, size_of_die, value_format,
2824 output_die): Handle dw_val_class_const_implicit,
2825 dw_val_class_unsigned_const_implicit and dw_val_class_file_implicit.
2826 (abbrev_die_table): Change into va_gc vec.
2827 (abbrev_die_table_allocated, abbrev_die_table_in_use,
2828 ABBREV_DIE_TABLE_INCREMENT): Remove.
2829 (AT_int, AT_unsigned, AT_file): Allow dw_val_class_*_implicit.
2830 (abbrev_opt_start, abbrev_usage_count, sorted_abbrev_dies): New
2832 (build_abbrev_table): Adjust for abbrev_die_table being a va_gc vec.
2833 If abbrev_opt_start, fill in abbrev_usage_count and abbrev_dies
2835 (die_abbrev_cmp, optimize_implicit_const, optimize_abbrev_table): New
2837 (output_die_abbrevs): For DW_FORM_implicit_const emit sleb128 with
2839 (output_abbrev_section): Adjust for abbrev_die_table being a va_gc
2841 (output_comp_unit): Initialize abbrev_opt_start if emitting the main
2842 unit. Call optimize_abbrev_table.
2843 (dwarf2out_init, dwarf2out_finish, dwarf2out_c_finalize): Adjust for
2844 abbrev_die_table being a va_gc vec.
2846 PR tree-optimization/77860
2847 * tree-ssa-reassoc.c (eliminate_using_constants): Handle
2848 also integral complex and vector constants.
2850 * dwarf2out.c (dwarf2out_define, dwarf2out_undef, output_macinfo_op,
2851 optimize_macinfo_range, save_macinfo_strings): Replace
2852 DW_MACRO_GNU_* constants with corresponding DW_MACRO_* constants.
2853 (output_macinfo): Likewise. Emit .debug_macro* rather than
2854 .debug_macinfo* even for -gstrict-dwarf -gdwarf-5.
2855 (init_sections_and_labels): Use .debug_macro* labels rather than
2856 .debug_macinfo* labels even for -gstrict-dwarf -gdwarf-5.
2857 (dwarf2out_finish): Use DW_AT_macros instead of DW_AT_macro_info
2858 or DW_AT_GNU_macros for -gdwarf-5.
2860 2016-10-31 Waldemar Brodkorb <wbx@openadk.org>
2862 * config/microblaze/linux.h (UCLIBC_DYNAMIC_LINKER): Define.
2864 2016-09-11 Le-Chun Wu <lcwu@google.com>
2865 Mark Wielaard <mjw@redhat.com>
2867 * common.opt (Wshadow=global): New option. Default for -Wshadow.
2868 (Wshadow=local): New option.
2869 (Wshadow-local): Hidden alias for -Wshadow=local.
2870 (Wshadow=compatible-local): New option.
2871 (Wshadow-compatible-local): Hidden alias for
2872 -Wshadow=compatible-local.
2873 * doc/invoke.texi: Document Wshadow=global, Wshadow=local and
2874 Wshadow=compatible-local.
2876 2016-10-31 Bin Cheng <bin.cheng@arm.com>
2878 * tree-vect-slp.c (vect_get_and_check_slp_defs): New parameter SWAP.
2879 Check slp defs for COND_EXPR by swapping/inverting operands if the
2880 new parameter SWAP indicates so.
2881 (vect_build_slp_tree_1): New parameter SWAP. Check COND_EXPR stmt
2882 is isomorphic to the first stmt via swapping/inverting. Store swap
2883 information in the new parameter SWAP.
2884 (vect_build_slp_tree): New local array SWAP and pass it to function
2885 vect_build_slp_tree_1. Cleanup result handling code for function
2886 call to vect_get_and_check_slp_defs. Skip operand swapping if the
2887 order of operands has been fixed as indicated by SWAP[i].
2889 2016-10-31 Bin Cheng <bin.cheng@arm.com>
2891 * tree-vect-data-refs.c (vect_slp_analyze_node_dependences): Skip
2892 unnecessary data dependence check after visited store stmt.
2894 2016-10-30 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2896 PR tree-optimization/71915
2897 PR tree-optimization/71490
2898 * gimple-ssa-strength-reduction.c (struct slsr_cand_d): Add
2900 (find_basis_for_base_expr): Require stride types to match when
2902 (alloc_cand_and_find_basis): Record the stride type.
2903 (slsr_process_phi): Pass stride type to alloc_cand_and_find_basis.
2904 (backtrace_base_for_ref): Pass types to legal_cast_p_1 rather than
2905 the expressions having those types.
2906 (slsr_process_ref): Pass stride type to alloc_cand_and_find_basis.
2907 (create_mul_ssa_cand): Likewise.
2908 (create_mul_imm_cand): Likewise.
2909 (create_add_ssa_cand): Likewise.
2910 (create_add_imm_cand): Likewise.
2911 (legal_cast_p_1): Change interface to accept types rather than the
2912 expressions having those types.
2913 (legal_cast_p): Pass types to legal_cast_p_1.
2914 (slsr_process_cast): Pass stride type to
2915 alloc_cand_and_find_basis.
2916 (slsr_process_copy): Likewise.
2917 (dump_candidate): Display stride type when a cast exists.
2918 (create_add_on_incoming_edge): Introduce a cast when necessary for
2920 (analyze_increments): Change the code checking for invalid casts
2921 to rely on the stride type, and update the documentation and
2922 example. Change the code checking for pointer multiplies to rely
2924 (insert_initializers): Introduce a cast when necessary for the
2925 stride type. Use the stride type for the type of the initializer.
2927 2016-10-30 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
2929 * config/arm/arm.c (arm_const_not_ok_for_debug_p): Use VAR_P.
2931 2016-10-29 Jakub Jelinek <jakub@redhat.com>
2933 PR rtl-optimization/77919
2934 * expr.c (expand_expr_real_1) <normal_inner_ref>: Only avoid forcing
2935 into memory if both modes are complex and their inner modes have the
2936 same precision. If the two modes are different complex modes, convert
2937 each part separately and generate a new CONCAT.
2939 2016-10-29 John David Anglin <danglin@gcc.gnu.org>
2941 * config/pa/pa64-hpux.h (FINI_SECTION_ASM_OP): Define to null string.
2943 2016-10-29 Jakub Jelinek <jakub@redhat.com>
2946 * gimple-ssa-store-merging.c
2947 (imm_store_chain_info::output_merged_store): Use build_aligned_type
2948 instead of SET_TYPE_ALIGN on shared integral type.
2950 2016-10-29 John David Anglin <danglin@gcc.gnu.org>
2952 * config/pa/pa.h (BIGGEST_ALIGNMENT): Adjust comment.
2953 (MALLOC_ABI_ALIGNMENT): Define to 128 on all targets except SOM.
2956 2016-10-28 Jeff Law <law@redhat.com>
2958 * config/vax/vax.h (REGNO_REG_CLASS): Access the REGNO argument.
2959 * config/spu/spu.h (REGNO_REG_CLASS): Likewise.
2961 2016-10-28 Eric Botcazou <ebotcazou@adacore.com>
2963 * doc/sourcebuild.texi (Ada Tests): Remove mention of gcc chapter.
2965 2016-10-28 Eric Botcazou <ebotcazou@adacore.com>
2967 * target.def (min_arithmetic_precision): New hook.
2968 * doc/tm.texi.in (Misc): Add TARGET_MIN_ARITHMETIC_PRECISION.
2969 * doc/tm.texi: Regenerate.
2970 * internal-fn.c (expand_arith_overflow): Adjust handling of target
2971 dependent support by means of TARGET_MIN_ARITHMETIC_PRECISION.
2972 * targhooks.c (default_min_arithmetic_precision): New function.
2973 * targhooks.h (default_min_arithmetic_precision): Declare.
2974 * config/sparc/sparc.c (TARGET_MIN_ARITHMETIC_PRECISION): Define.
2975 (sparc_min_arithmetic_precision): New function.
2977 2016-10-28 Segher Boessenkool <segher@kernel.crashing.org>
2980 * combine.c (change_zero_ext): Handle zero_ext of hard registers.
2981 Swap commutative operands in new RTL if needed. Handle zero_ext
2983 (recog_for_combine): Pass *pnewpat to change_zero_ext instead of
2986 2016-10-28 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
2987 Kugan Vivekanandarajah <kuganv@linaro.org>
2988 Jim Wilson <jim.wilson@linaro.org>
2990 PR tree-optimization/43721
2991 * target.def: New hook expand_divmod_libfunc.
2992 * doc/tm.texi.in: Add hook for TARGET_EXPAND_DIVMOD_LIBFUNC.
2993 * doc/tm.texi: Regenerate.
2994 * internal-fn.def: Add new entry for DIVMOD ifn.
2995 * internal-fn.c (expand_DIVMOD): New.
2996 * tree-ssa-math-opts.c: Include optabs-libfuncs.h, tree-eh.h,
2998 (widen_mul_stats): Add new field divmod_calls_inserted.
2999 (target_supports_divmod_p): New.
3000 (divmod_candidate_p): Likewise.
3001 (convert_to_divmod): Likewise.
3002 (pass_optimize_widening_mul::execute): Call calculate_dominance_info,
3003 renumber_gimple_stmt_uids at beginning of function. Call
3004 convert_to_divmod and record stats for divmod.
3005 * config/arm/arm.c (arm_expand_divmod_libfunc): Override hook
3006 TARGET_EXPAND_DIVMOD_LIBFUNC.
3007 * doc/sourcebuild.texi: Add items for arm_divmod_simode, divmod,
3010 2016-10-28 Eric Botcazou <ebotcazou@adacore.com>
3011 Segher Boessenkool <segher@kernel.crashing.org>
3013 * dojump.c (do_jump_by_parts_greater_rtx): Invert probability when
3014 swapping the arms of the branch.
3015 * internal-fn.c (expand_addsub_overflow): Use a straight-line code
3016 sequence for the generic signed-signed-signed case.
3018 2016-10-28 Jeff Law <law@redhat.com>
3020 * config/bfin/bfin.c (bfin_legitimate_address_p): Add missing
3022 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Likewise.
3024 2016-10-28 Segher Boessenkool <segher@kernel.crashing.org>
3026 PR rtl-optimization/78029
3027 * function.c (prologue_contains, epilogue_contains): New functions.
3028 (record_prologue_seq, record_epilogue_seq): New functions.
3029 * function.h (prologue_contains, epilogue_contains,
3030 record_prologue_seq, record_epilogue_seq): New declarations.
3031 * sched-deps.c (sched_analyze_insn): Make dependencies to prevent
3032 mixing prologue and epilogue insns.
3033 (init_deps): Initialize the new fields in struct deps_desc.
3034 * sched-int.h (struct deps_desc): New fields last_prologue,
3035 last_epilogue, and last_logue_was_epilogue.
3036 * shrink-wrap.c (emit_common_heads_for_components): Record all
3037 emitted prologue and epilogue insns.
3038 (emit_common_tails_for_components): Ditto.
3039 (insert_prologue_epilogue_for_components): Ditto.
3041 2016-10-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3044 * Makefile.in (OBJS): Add gimple-ssa-store-merging.o.
3045 * common.opt (fstore-merging): New Optimization option.
3046 * opts.c (default_options_table): Add entry for
3047 OPT_ftree_store_merging.
3048 * fold-const.h (can_native_encode_type_p): Declare prototype.
3049 * fold-const.c (can_native_encode_type_p): Define.
3050 * params.def (PARAM_STORE_MERGING_ALLOW_UNALIGNED): Define.
3051 (PARAM_MAX_STORES_TO_MERGE): Likewise.
3052 * timevar.def (TV_GIMPLE_STORE_MERGING): New timevar.
3053 * passes.def: Insert pass_tree_store_merging.
3054 * tree-pass.h (make_pass_store_merging): Declare extern
3056 * gimple-ssa-store-merging.c: New file.
3057 * doc/invoke.texi (Optimization Options): Document
3059 (--param documentation): Document store-merging-allow-unaligned
3060 and max-stores-to-merge.
3062 2016-10-28 Will Schmidt <will_schmidt@vnet.ibm.com>
3065 * gimplify.c (gimplify_init_constructor): Move emit of constructor
3066 assignment to earlier in the if/else logic.
3068 2016-10-28 Richard Biener <rguenther@suse.de>
3072 * fold-const.c (make_bit_field_ref): Only adjust alias set
3073 when the original alias set was zero.
3075 2016-10-28 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
3077 * config/s390/s390.c (s390_adjust_loop_scan_osc): New function.
3078 (s390_adjust_loops): New function.
3079 (s390_reorg): Invoke s390_adjust_loops.
3080 * config/s390/s390.md: (UNSPEC_OSC_BREAK): New constant.
3081 ("osc_break"): New insn definition.
3083 2016-10-28 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
3085 * config/s390/s390.opt: Support alternate cpu level naming (archXX).
3086 * config.gcc: Support alternate archXX cpu levels with
3087 --with-arch= and --with-tune=.
3088 * config/s390/linux.h: Translate new archXX cpu levels to the
3089 original names when calling GAS.
3090 * config/s390/tpf.h: Likewise.
3091 * doc/invoke.texi: Document the alternate cpu level names.
3093 2016-10-28 Jakub Jelinek <jakub@redhat.com>
3095 PR rtl-optimization/77919
3096 * expr.c (expand_expr_real_1) <normal_inner_ref>: Force CONCAT into
3097 MEM if mode1 is not a complex mode.
3099 PR rtl-optimization/78132
3100 * ree.c (combine_reaching_defs): Give up if copy_needed and
3101 !HARD_REGNO_MODE_OK (REGNO (src_reg), dst_mode).
3103 2016-10-27 Eric Botcazou <ebotcazou@adacore.com>
3105 * config/sparc/sparc.md (<*vlop:code><VL:mode>3): Remove leading '*'.
3107 2016-10-27 Michael Meissner <meissner@linux.vnet.ibm.com>
3109 * config/rs6000/constraints.md (wH constraint): Add new
3110 constraints for allowing 32-bit integers (and eventually 8/16-bit
3111 integers) into the vector registers.
3112 (wI constraint): Likewise.
3113 (wJ constraint): Likewise.
3114 (wK constraint): Likewise.
3115 * config/rs6000/rs6000-cpus.def (ISA_2_7_MASKS_SERVER): Add
3116 -mvsx-small-integer as a default option for ISA 2.07
3118 (POWERPC_MASKS): Likewise.
3119 * config/rs6000/rs6000.opt (-mvsx-small-integer): Add new debug
3120 switch to turn off small integer support in vector registers.
3121 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Eliminate
3122 test for -mupper-regs-di, since it is already done with the
3123 reg_add[mode].scalar_in_vsx_p. Add support for the switch
3124 -mvsx-small-integer.
3125 (rs6000_debug_reg_global): Add support for wH, wI, wJ, and wK
3127 (rs6000_setup_reg_addr_masks): Likewise.
3128 (rs6000_init_hard_regno_mode_ok): Likewise.
3129 (rs6000_option_override_internal): Add consistency checks for
3130 -mvsx-small-integer.
3131 (rs6000_secondary_reload_simple_move): SImode is a simple move if
3132 -mvsx-small-integer.
3133 (rs6000_secondary_reload): Use std::swap.
3134 (rs6000_preferred_reload_class): Don't prefer FLOAT_REGS over
3135 VSX_REGS for small integers in vector registers, since there is no
3136 D-FORM address mode for such types.
3137 (rs6000_register_move_cost): Use FIRST_FPR_REGNO instead of 32.
3138 (rs6000_opt_masks): Add -mvsx-small-integer.
3139 * config/rs6000/vsx.md (VSINT_84): Add SImode for small integer
3141 (VSX_EXTRACT_I2): Clone VSX_EXTRACT_I, but drop V4SI since SImode
3142 extracts can be done on ISA 2.07.
3143 (vsx_extract_<mode>): Add support for small integers in vsx
3145 (vsx_extract_<mode>_p9): Use 'v' instead of VSX_EX, since we no
3146 longer support V4SImode in this pattern.
3147 (vsx_extract_si): New insn to support extraction of SImode in ISA
3148 2.07 using either xxextractuw or vspltw.
3149 (vsx_extract_<mode>_p8): Use 'v' instead of VSX_EX, since we no
3150 longer support V4SImode in this pattern.
3151 * config/rs6000/rs6000.h (enum rs6000_reg_class_enum): Add wH, wI,
3152 wJ, and wK constraints.
3153 * config/rs6000/rs6000.md (f32_sv): Use correct instruction for
3154 storing SDmode with VSX instructions.
3155 (zero_extendsi<mode>2): Reorder pattern, so RLDICL comes after the
3156 GPR load and before the FPR and VSX loads. Remove ??, ! from the
3157 constraints. Add MFVSRWZ and XXEXTRACTUW instructions to support
3158 small integers in vector registers.
3159 (extendsi<mode>2): Reorder pattern, so EXTSW comes after the GPR
3160 load and before the FPR and VSX loads. Remove ??, ! from the
3161 constraints. Add VEXTSW2D support for small integers in vector
3163 (lfiwax): Remove ! constraint. Add VEXTSW2D support for small
3164 integers in vector registers.
3165 (floatsi<mode>2_lfiwax): If -mvsx-small-integer issue a normal
3166 move instead of using an UNSPEC.
3167 (lfiwzx): Remove ! constraint. Add XXEXTRACTUW support for small
3168 integers in vector registers.
3169 (floatunssi<mode>2_lfiwzx): If -mvsx-small-integer issue a normal
3170 move instead of using an UNSPEC.
3171 (movsi_internal1): Add support for -mvsx-small-integer. Align
3172 columns so that it is more readable.
3173 (SImode splitter for ISA 3.0 constants): Add splitter for
3174 -128..127 constants that can easily be constructed on ISA 3.0.
3175 * doc/md.texi (PowerPC Constraints): Document wH, wI, wJ, and wK
3178 2016-10-27 Jakub Jelinek <jakub@redhat.com>
3181 * omp-simd-clone.c (simd_clone_adjust): Handle noreturn declare simd
3184 2016-10-27 Aldy Hernandez <aldyh@redhat.com>
3186 * builtins.c (expand_builtin_nonlocal_goto): Avoid evaluating
3187 PIC_OFFSET_TABLE_REGNUM twice.
3189 2016-10-27 Bin Cheng <bin.cheng@arm.com>
3191 * match.pd ((convert (op:s (convert@2 @0) (convert?@3 @1)))): Add
3192 support for constant operand for OP.
3194 2016-10-27 Jakub Jelinek <jakub@redhat.com>
3196 * dwarf2out.c (gen_member_die): Only reparent_child instead of
3197 splice_child_die if child doesn't have DW_AT_specification attribute.
3199 2016-10-27 Thomas Preud'homme <thomas.preudhomme@arm.com>
3201 * config/arm/arm.h (TARGET_HAVE_LDREX): Define for ARMv8-M Baseline.
3202 (TARGET_HAVE_LDREXBH): Likewise.
3203 (TARGET_HAVE_LDACQ): Likewise.
3205 2016-10-27 Thomas Preud'homme <thomas.preudhomme@arm.com>
3207 * config/arm/arm.c (arm_split_atomic_op): Add function comment. Add
3208 logic to to decide whether to copy over old value to register for new
3210 * config/arm/sync.md: Add comments explaning why mode and code
3211 attribute are not defined in iterators.md
3212 (thumb1_atomic_op_str): New code attribute.
3213 (thumb1_atomic_newop_str): Likewise.
3214 (thumb1_atomic_fetch_op_str): Likewise.
3215 (thumb1_atomic_fetch_newop_str): Likewise.
3216 (thumb1_atomic_fetch_oldop_str): Likewise.
3217 (atomic_exchange<mode>): Add new ARMv8-M Baseline only alternatives to
3218 mirror the more restrictive constraints of the Thumb-1 insns after
3219 split compared to Thumb-2 counterpart insns.
3220 (atomic_<sync_optab><mode>): Likewise. Add comment to keep constraints
3221 in sync with non atomic version.
3222 (atomic_nand<mode>): Likewise.
3223 (atomic_fetch_<sync_optab><mode>): Likewise.
3224 (atomic_fetch_nand<mode>): Likewise.
3225 (atomic_<sync_optab>_fetch<mode>): Likewise.
3226 (atomic_nand_fetch<mode>): Likewise.
3227 * config/arm/thumb1.md (thumb1_addsi3): Add comment to keep contraint
3228 in sync with atomic version.
3229 (thumb1_subsi3_insn): Likewise.
3230 (thumb1_andsi3_insn): Likewise.
3231 (thumb1_iorsi3_insn): Likewise.
3232 (thumb1_xorsi3_insn): Likewise.
3234 2016-10-27 Nick Clifton <nickc@redhat.com>
3236 * plugin.c (register_plugin_info): Produce an error message if the
3237 plugin is not found in the hash table.
3239 2016-10-27 Bin Cheng <bin.cheng@arm.com>
3241 * match.pd ((convert1 (minmax ((convert2 (x) c)))) -> minmax (x c)):
3244 2016-10-26 Kelvin Nilsen <kelvin@gcc.gnu.org>
3247 * config/rs6000/rs6000.c (spe_init_builtins): Modify loops to not
3248 define builtin functions from the bdesc_spe_predicates or
3249 bdesc_spe_evsel arrays if the builtin mask is not compatible with
3250 the current compiler configuration.
3251 (paired_init_builtins): Modify loop to not define define builtin
3252 functions from the bdesc_paried_preds array if the builtin mask is
3253 not compatible with the current compiler configuration.
3254 (altivec_init_builtins): Modify loops to not define the
3255 __builtin_altivec_stxvl function nor the builtin functions from
3256 the bdesc_dst or bdesc_altivec_preds, or bdesc_abs arrays if the
3257 builtin mask is not compatible with the current compiler
3260 2016-10-26 Jeff Law <law@redhat.com>
3262 * config/sh/sh.c (output_branch): Add missing fallthru comments.
3263 (gen_shl_and): Likewise.
3264 * config/sh/sh.md (movsicc): Add missing fallthru comments.
3266 * config/mips/mips.c (mips16_constant_cost): Add missing
3268 (mips16_build_call_stub): Increase buffer size. Adjust
3271 2016-10-26 David Malcolm <dmalcolm@redhat.com>
3273 * print-rtl.c (rtx_writer::print_rtx_operand_code_u): Print
3274 INSN_UIDs for all insns in compact mode.
3275 (rtx_writer::print_rtx): Likewise.
3276 * print-rtl.h (rtx_writer::flag_compact): Update comment.
3277 * rtl-tests.c (selftest::test_dumping_insns): Update expected
3278 output to include INSN_UID.
3279 (selftest::test_uncond_jump): Likewise.
3281 2016-10-26 Pat Haugen <pthaugen@us.ibm.com>
3283 * haifa-sched.c (call_used_regs_num): Rename to...
3284 (call_saved_regs_num): ...this.
3285 (fixed_regs_num): New variable.
3286 (sched_pressure_start_bb): Subtract out fixed_regs. Scale call_saved
3288 (alloc_global_sched_pressure_data): Compute call_saved and fixed regs.
3290 2016-10-26 David Malcolm <dmalcolm@redhat.com>
3292 * print-rtl-function.c (print_rtx_function): Rewrite in terms of
3294 * print-rtl.c (outfile): Delete global.
3295 (sawclose): Likewise.
3297 (in_call_function_usage): Likewise.
3298 (flag_compact): Likewise.
3299 (flag_simple): Likewise.
3300 (rtx_writer::rtx_writer): New ctor.
3301 (print_rtx_operand_code_0): Convert to...
3302 (rtx_writer::print_rtx_operand_code_0): ...this.
3303 (print_rtx_operand_code_e): Convert to...
3304 (rtx_writer::print_rtx_operand_code_e): ...this.
3305 (print_rtx_operand_codes_E_and_V): Convert to...
3306 (rtx_writer::print_rtx_operand_codes_E_and_V): ...this.
3307 (print_rtx_operand_code_i): Convert to...
3308 (rtx_writer::print_rtx_operand_code_i): ...this.
3309 (print_rtx_operand_code_r): Convert to...
3310 (rtx_writer::print_rtx_operand_code_r): ...this.
3311 (print_rtx_operand_code_u): Convert to...
3312 (rtx_writer::print_rtx_operand_code_u): ...this.
3313 (print_rtx_operand): Convert to...
3314 (rtx_writer::print_rtx_operand): ...this.
3315 (print_rtx): Convert to...
3316 (rtx_writer::print_rtx): ...this.
3317 (print_inline_rtx): Rewrite in terms of class rtx_writer.
3318 (debug_rtx): Likewise.
3319 (print_rtl): Convert to...
3320 (rtx_writer::print_rtl): ...this.
3321 (print_rtl): Reimplement in terms of class rtx_writer.
3322 (print_rtl_single): Rewrite in terms of class rtx_writer.
3323 (print_rtl_single_with_indent): Convert to..
3324 (rtx_writer::print_rtl_single_with_indent): ...this.
3325 (print_simple_rtl): Rewrite in terms of class rtx_writer.
3326 * print-rtl.h (flag_compact): Delete decl.
3327 (class rtx_writer): New class.
3328 * rtl-tests.c (selftest::assert_rtl_dump_eq): Rewrite in terms of
3331 2016-10-26 Jeff Law <law@redhat.com>
3333 * config/microblaze/microblaze.c (tls_mentioned_p): Avoid
3336 * config/arc/arc.c (acr_print_operand): Adjust fallthru comment.
3337 (check_if_valid_sleep_operand): Add missing fallthru comment.
3338 (arc_register_move_cost): Increase buffer size.
3339 * config/arc/arc.md (cbranch4si_scratch): Add missing fallthru
3341 * config/arc/predicates.md (move_str_operand): Avoid fallthru.
3343 * config/cr16/cr16.c (cr16_print_operand): Add missing fallthru
3344 comment. Add gcc_unreachable for path that should never happen.
3346 * config/epiphany/epiphany.c (epiphany_print_operand): Adjust
3349 2016-10-26 Jakub Jelinek <jakub@redhat.com>
3350 Martin Liska <mliska@suse.cz>
3353 * gimplify.c (gimplify_adjust_omp_clauses_1): For all added map
3354 clauses with OMP_CLAUSE_SIZE being a decl, call omp_notice_variable
3355 on outer context if any.
3357 2016-10-26 Jakub Jelinek <jakub@redhat.com>
3359 * gen-pass-instances.awk (adjust_linenos): Increment pass_lines[p]
3360 by increment rather than double it.
3361 (insert_remove_pass): Strip leading whitespace from args[3]. Don't
3362 emit a space before args[4].
3363 (END): Don't emit a space before with_arg.
3365 2016-10-26 Thomas Preud'homme <thomas.preudhomme@arm.com>
3367 * config/arm/sync.md (atomic_compare_and_swap<mode>_1): Add new ARMv8-M
3368 Baseline only alternatives to (i) hold store atomic success value in a
3369 return register rather than a scratch register, (ii) use a low register
3370 for it and to (iii) ensure the cbranchsi insn generated by the split
3371 respect the constraints of Thumb-1 cbranchsi4_insn and
3373 * config/arm/thumb1.md (cbranchsi4_insn): Add comment to indicate
3374 constraints must match those in atomic_compare_and_swap.
3375 (cbranchsi4_scratch): Likewise.
3377 2016-10-26 Thomas Preud'homme <thomas.preudhomme@arm.com>
3379 * config/arm/arm.c (arm_expand_compare_and_swap): Add new bdst local
3380 variable. Add the new parameter to the insn generator. Set that
3381 parameter to be CC flag for 32-bit targets, bval otherwise. Set the
3382 return value from the negation of that parameter for Thumb-1, keeping
3383 the logic unchanged otherwise except for using bdst as the destination
3384 register of the compare_and_swap insn.
3385 (arm_split_compare_and_swap): Add explanation about how is the value
3386 returned to the function comment. Rename scratch variable to
3387 neg_bval. Adapt initialization of variables holding operands to the
3388 new operand numbers. Use return register to hold result of store
3389 exclusive for Thumb-1, scratch register otherwise. Construct the
3390 appropriate cbranch for Thumb-1 targets, keeping the logic unchanged
3391 for 32-bit targets. Guard Z flag setting to restrict to 32bit targets.
3392 Use gen_cbranchsi4 rather than hand-written conditional branch to loop
3393 for strongly ordered compare_and_swap.
3394 * config/arm/predicates.md (cc_register_operand): New predicate.
3395 * config/arm/sync.md (atomic_compare_and_swap<mode>_1): Use a
3396 match_operand with the new predicate to accept either the CC flag or a
3397 destination register for the boolean return value, restricting it to
3398 CC flag only via constraint. Adapt operand numbers accordingly.
3400 2016-10-26 Jeff Law <law@redhat.com>
3402 * config/fr30/fr30.c (fr30_print_operand): Adjust fallthru comment.
3404 * config/frv/frv.c (comparison_string): Do not fall through after
3407 * config/iq2000/iq2000.c (iq2000_function_arg): Adjust fallthru
3409 (expand_one_builtin): Add missing break.
3411 * config/m32c/m32c.c (encode_pattern_1): Add fallthru comment.
3412 (m32c_legitimate_address_p): Likewise.
3414 * config/m32r/m32r.c (m32r_print_operand): Adjust fallthru comment.
3416 * config/mcore/mcore.c (mcore_gen_compare): Adjust fallthru comments.
3418 * config/microblaze/microblaze.c (microblaze_function_arg): Adjust
3421 * config/msp430/msp430.c (msp430_legitimate_address_p): Adjust
3424 * config/nios2/nios2.c (nios2_rtx_costs): Avoid fallthru.
3426 * config/rl78/rl78.c (rl78_calculate_death_notes): Add fallthru
3428 (rl78_asm_ctor_dtor): Increase buffer size.
3430 * config/stormy16/stormy16.c (xstormy16_asm_output_destrutor): Increase
3432 (xstormy16_asm_output_constructor): Likewise.
3434 * config/pa/pa.c (pa_asm_output_mi_thunk): Increase buffer
3437 * config/h8300/h8300.c (h8300_print_operand): Adjust FALLTHRU
3438 comment to silence warning.
3440 * config/spu/spu.c (spu_sched_reorder): Add missing fallthru comment.
3441 (spu_legitimate_address_p): Fix logic error and add missing fallthru
3444 2016-10-26 Michael Matz <matz@suse.de>
3446 PR tree-optimization/78060
3447 PR tree-optimization/78061
3448 PR tree-optimization/78088
3449 * tree-ssa-loop-split.c (easy_exit_values): New function.
3450 (tree_ssa_split_loops): Use it.
3451 (compute_new_first_bound): Change order of operations,
3452 fix invalid use of types.
3454 2016-10-26 Georg-Johann Lay <avr@gjlay.de>
3456 gen-pass-instances.awk is sensitive to the order in which
3457 passes are added; passes that appear later have to be added first.
3461 * config/avr/avr-passes.def: Swap order of directives for
3462 gen-pass-instances.awk.
3464 2016-10-25 Jeff Law <law@redhat.com>
3466 * config/vax/vax.c (vad_address_cost_1): Add missing FALLTHRU comment.
3467 (vax_notice_update_cc): Likewise.
3469 2016-10-25 Eric Botcazou <ebotcazou@adacore.com>
3471 * config.gcc (sparc*-*-solaris2*): Adjust.
3472 (sparc64-*-linux*): Likewise.
3473 * config/sparc/default-64.h: Rename to...
3474 * config/sparc/default64.h: ...this.
3475 * config/sparc/sparc.c (sparc_option_override): Replace TARGET_64BIT
3477 (sparc_mangle_type): Replace !TARGET_64BIT with TARGET_ARCH32.
3478 * config/sparc/sparc.h: Minor tweaks.
3479 * config/sparc/sparc.md: Replace !TARGET_64BIT and !TARGET_ARCH64 with
3480 TARGET_ARCH32 throughout. Minor various tweaks throughout.
3482 2016-10-25 David Malcolm <dmalcolm@redhat.com>
3484 * input.c (fcache::file_patch): Add comment about lifetime.
3485 (selftest::cpp_reader_ptr): New class.
3486 (selftest::lexer_test): Convert m_parser from cpp_reader *
3487 to a cpp_reader_ptr, and move m_tempfile to after it.
3488 (selftest::lexer_test::lexer_test): Update for above reordering.
3489 (lexer_test::~lexer_test): Move cleanup of m_parser to
3490 cpp_reader_ptr's dtor.
3492 2016-10-25 David Malcolm <dmalcolm@redhat.com>
3494 * toplev.c (toplev::main): Remove call to
3495 location_adhoc_data_fini.
3497 2016-10-25 Eric Botcazou <ebotcazou@adacore.com>
3499 * tree.h (wi::fits_to_tree_p): Accept only 0 and 1 for boolean types.
3500 * tree.c (int_fits_type_p): Likewise. Adjust head comment.
3502 2016-10-25 David Malcolm <dmalcolm@redhat.com>
3504 * ggc-tests.c (forcibly_ggc_collect): Rename to...
3505 (selftest::forcibly_ggc_collect): ...this, and remove "static".
3506 (test_basic_struct): Update for above renaming.
3507 (test_length): Likewise.
3508 (test_union): Likewise.
3509 (test_finalization): Likewise.
3510 (test_deletable_global): Likewise.
3511 (test_inheritance): Likewise.
3512 (test_chain_next): Likewise.
3513 (test_user_struct): Likewise.
3514 (test_tree_marking): Likewise.
3515 * selftest-run-tests.c (selftest::run_tests): Call
3516 selftest::forcibly_ggc_collect at the end of the selftests.
3517 * selftest.h (selftest::forcibly_ggc_collect): New decl.
3519 2016-10-25 Jakub Jelinek <jakub@redhat.com>
3522 * optabs.def (vcondeq_optab, vec_cmpeq_optab): New optabs.
3523 * optabs.c (expand_vec_cond_expr): For comparison codes
3524 EQ_EXPR and NE_EXPR, attempt vcondeq_optab as fallback.
3525 (expand_vec_cmp_expr): For comparison codes
3526 EQ_EXPR and NE_EXPR, attempt vec_cmpeq_optab as fallback.
3527 * optabs-tree.h (expand_vec_cmp_expr_p, expand_vec_cond_expr_p):
3528 Add enum tree_code argument.
3529 * optabs-query.h (get_vec_cmp_eq_icode, get_vcond_eq_icode): New
3531 * optabs-tree.c (expand_vec_cmp_expr_p): Add CODE argument. For
3532 CODE EQ_EXPR or NE_EXPR, attempt to use vec_cmpeq_optab as
3534 (expand_vec_cond_expr_p): Add CODE argument. For CODE EQ_EXPR or
3535 NE_EXPR, attempt to use vcondeq_optab as fallback.
3536 * tree-vect-generic.c (expand_vector_comparison,
3537 expand_vector_divmod, expand_vector_condition): Adjust
3538 expand_vec_cmp_expr_p and expand_vec_cond_expr_p callers.
3539 * tree-vect-stmts.c (vectorizable_condition,
3540 vectorizable_comparison): Likewise.
3541 * tree-vect-patterns.c (vect_recog_mixed_size_cond_pattern,
3542 check_bool_pattern, search_type_for_mask_1): Likewise.
3543 * expr.c (do_store_flag): Likewise.
3544 * doc/md.texi (@code{vec_cmpeq@var{m}@var{n}},
3545 @code{vcondeq@var{m}@var{n}}): Document.
3546 * config/i386/sse.md (vec_cmpeqv2div2di, vcondeq<VI8F_128:mode>v2di):
3549 2016-10-25 Jeff Law <law@redhat.com>
3551 * config/v850/v850.c (v850_handle_data_area_attribute): Fix fallthru
3553 (v850_output_aligned_bss): Add missing break.
3555 * config/m68k/m68k.c (m68k_get_reloc_decoration): Add gcc_unreachable.
3557 2016-10-25 Martin Liska <mliska@suse.cz>
3560 * sanopt.c (imm_dom_path_with_freeing_call): Handle gasm
3561 statements as they can also contain possibly a freeing call.
3563 2016-10-25 H.J. Lu <hongjiu.lu@intel.com>
3564 Martin Liska <mliska@suse.cz>
3567 * common.opt: Mark flag_ipa_icf_variables as Optimization flag.
3568 * ipa-icf.c (sem_function::get_hash): Add target optimization
3571 2016-10-25 Wilco Dijkstra <wdijkstr@arm.com>
3574 * config/arm/neon.md (ashldi3_neon): Add "r 0 i" and "&r r i" variants.
3575 Remove partial overlap check for shift by 1.
3576 (ashldi3_neon): Likewise.
3578 2016-10-25 Thomas Preud'homme <thomas.preudhomme@arm.com>
3580 * config/arm/constraints.md (Q constraint): Document its use for
3582 (Pf constraint): New constraint for relaxed, consume or relaxed memory
3584 * config/arm/sync.md (atomic_load<mode>): Add new ARMv8-M Baseline only
3585 alternatives to allow any register when memory model matches Pf and
3586 thus lda is used, but only low registers otherwise. Use unpredicated
3587 output template for Thumb-1 targets.
3588 (atomic_store<mode>): Likewise for stl.
3589 (arm_load_exclusive<mode>): Add new ARMv8-M Baseline only alternative
3590 whose output template does not have predication.
3591 (arm_load_acquire_exclusive<mode>): Likewise.
3592 (arm_load_exclusivesi): Likewise.
3593 (arm_load_acquire_exclusivesi): Likewise.
3594 (arm_store_release_exclusive<mode>): Likewise.
3595 (arm_store_exclusive<mode>): Use unpredicated output template for
3598 2016-10-25 Jakub Jelinek <jakub@redhat.com>
3600 * internal-fn.def (LAUNDER): New internal function.
3601 * internal-fn.c (expand_LAUNDER): New function.
3603 2016-10-25 Georg-Johann Lay <avr@gjlay.de>
3604 Pitchumani Sivanupandi <pitchumani.sivanupandi@microchip.com>
3606 New avr target pass to work around performance loss by PR fix.
3610 * config/avr/avr.md (casesi_<mode>_sequence) [qi,hi]: New insn.
3611 (*cmp<mode>) [qi,qq,uqq,hi,hq,uhq,ha,uha]: Rename to cmp<mode>3.
3612 * config/avr/predicates.md (extend_operator): New.
3613 * config/avr/avr-passes.def (avr_pass_casesi): Register new pass.
3614 * config/avr/avr-protos.h (avr_casei_sequence_check_operands)
3615 (make_avr_pass_casesi): New prototypes.
3616 * config/avr/avr.c (print-rtl.h): Include it.
3617 (pass_data avr_pass_data_casesi): Data for new pass.
3618 (avr_pass_casesi): New class implementing rtl_opt_pass .avr-casesi.
3619 (make_avr_pass_casesi, avr_parallel_insn_from_insns)
3620 (avr_is_casesi_sequence, avr_casei_sequence_check_operands)
3621 (avr_optimize_casesi): New functions.
3623 2016-10-25 Georg-Johann Lay <avr@gjlay.de>
3624 Pitchumani Sivanupandi <pitchumani.sivanupandi@microchip.com>
3628 * config/avr/avr.md (casesi): Rewrite avoiding subregs of SI.
3630 2016-10-24 Jakub Jelinek <jakub@redhat.com>
3632 * dwarf2out.c (gen_subprogram_die): Add DW_AT_reference or
3633 DW_AT_rvalue_reference attributes.
3635 2016-10-24 Bernd Edlinger <bernd.edlinger@hotmail.de>
3637 * doc/invoke.text (Wint-in-bool-context): Update documentation.
3638 * value-prof.c (stringop_block_profile): Fix a warning.
3640 2016-10-24 Martin Sebor <msebor@redhat.com>
3643 * builtins.c (string_length): New function.
3644 (c_strlen): Use string_length. Correctly handle wide strings.
3645 * gimple-ssa-sprintf.c (target_max_value, target_size_max): New
3647 (target_int_max): Call target_max_value.
3648 (format_result::knownrange): New data member.
3649 (fmtresult::fmtresult): Define default constructor.
3650 (format_integer): Use it and set format_result::knownrange.
3651 Handle global constants.
3652 (format_floating_max): Add third argument.
3653 (format_floating): Recompute maximum value for %a for each argument.
3654 (get_string_length): Use fmtresult default ctor.
3655 (format_string): Set format_result::knownrange.
3656 (format_directive): Check format_result::knownrange.
3657 (add_bytes): Same. Correct caret placement in diagnostics.
3658 (pass_sprintf_length::compute_format_length): Set
3659 format_result::knownrange.
3660 (pass_sprintf_length::handle_gimple_call): Use target_size_max.
3662 2016-10-24 Jakub Jelinek <jakub@redhat.com>
3664 * config/i386/i386.c (ix86_in_large_data_p, ix86_expand_builtin): Use
3665 VAR_P (x) instead of TREE_CODE (x) == VAR_DECL.
3667 2016-10-24 Ximin Luo <infinity0@pwned.gg>
3670 * dwarf2out.c (file_table_relative_p): Remove.
3671 (gen_compile_unit_die, dwarf2out_early_finish): Emit DW_AT_comp_dir
3672 also for absolute paths.
3673 * doc/tm.texi: Update.
3674 * doc/tm.texi.in (SDB and DWARF) <TARGET_FORCE_AT_COMP_DIR>: Remove.
3675 * target.def (force_at_comp_dir): Remove hook.
3676 * config/darwin.h (TARGET_FORCE_AT_COMP_DIR): Remove define.
3678 2016-10-24 Richard Biener <rguenther@suse.de>
3680 * tree-vrp.c (evrp_dom_walker::before_dom_children): Ignore
3681 backedges when identifying the single predecessor to take
3682 conditional info from. Use SCEV to get at ranges for loop IVs.
3683 * lto-streamer-out.c (lto_write_mode_table): CSE inner mode to
3684 avoid false warning.
3686 2016-10-24 Georg-Johann Lay <avr@gjlay.de>
3689 * doc/extend.texi (AVR Variable Attributes) [absdata]: Document it.
3690 * config/avr/avr.c (AVR_SYMBOL_FLAG_TINY_ABSDATA): New macro.
3691 (avr_address_tiny_absdata_p): New static function.
3692 (avr_legitimate_address_p, avr_legitimize_address) [AVR_TINY]: Use
3693 it to determine validity of constant addresses.
3694 (avr_attribute_table) [absdata]: New variable attribute...
3695 (avr_handle_absdata_attribute): ...and handler.
3696 (avr_decl_absdata_p): New static function.
3697 (avr_encode_section_info) [AVR_TINY]: Use it to add flag
3698 AVR_SYMBOL_FLAG_TINY_ABSDATA to respective symbols_refs.
3699 (avr_address_cost) [AVR_TINY]: absdata addresses cost 2.
3701 2016-10-24 Richard Biener <rguenther@suse.de>
3703 PR tree-optimization/78076
3704 * tree-ssa-loop-split.c (tree_ssa_split_loops): Reset aux
3705 also on the loop tree root.
3707 2016-10-24 Jakub Jelinek <jakub@redhat.com>
3709 * config/i386/i386.c (ix86_fold_builtin): Handle
3710 IX86_BUILTIN_BEXTR{,I}{32,64}, IX86_BUILTIN_BZHI{32,64},
3711 IX86_BUILTIN_PDEP{32,64} and IX86_BUILTIN_PEXT{32,64}.
3712 (ix86_gimple_fold_builtin): Handle IX86_BUILTIN_BZHI{32,64},
3713 IX86_BUILTIN_PDEP{32,64} and IX86_BUILTIN_PEXT{32,64}.
3715 2016-10-24 Martin Liska <mliska@suse.cz>
3718 * opts.c (finish_options): Skip conditionally.
3720 2016-10-23 Martin Sebor <msebor@redhat.com>
3723 * config/rs6000/linux.h (TARGET_PRINTF_POINTER_FORMAT): Define.
3724 * config/rs6000/linux64.h (TARGET_PRINTF_POINTER_FORMAT): Likewise.
3726 2016-10-23 Eric Botcazou <ebotcazou@adacore.com>
3728 * config/sparc/sparc.md (cpu_feature): Minor tweak.
3729 (enabled): Likewise.
3730 (movsi_insn, movdi_insn_sp32, movdi_insn_sp64, movsf_insn,
3731 movdf_insn_sp32, movdf_insn_sp64, zero_extendsidi2_insn_sp64,
3732 sign_extendsidi2_insn, mov<VM32:mode>_insn, mov<VM64:mode>_insn_sp64,
3733 mov<VM64:mode>_insn_sp32, not_<code><mode>, nand<mode>_vis,
3734 <code>_not1<mode>_vi, <code>_not2<mode>_vis, one_cmpl<mode>2,
3735 fcmp<code><GCM:gcm_name>, pdistn<mode>_vis): Likewise.
3737 2016-10-23 Eric Botcazou <ebotcazou@adacore.com>
3739 * config/sparc/sparc-c.c (sparc_target_macros): Replace TARGET_64BIT
3740 with TARGET_ARCH64. Define __VIS to 0x400 if TARGET_VIS4.
3742 2016-10-21 Andrew Pinski <apinski@cavium.com>
3744 * config/aarch64/aarch64-cores.def: Rewrite so IMP and PART are
3746 * config/aarch64/driver-aarch64.c (struct aarch64_core_data): Change
3747 implementer_id to unsigned char.
3748 Change part_no to unsigned int.
3749 (AARCH64_BIG_LITTLE): New define.
3750 (INVALID_IMP): New define.
3751 (INVALID_CORE): New define.
3752 (cpu_data): Change the last element's implementer_id and part_no to
3754 (valid_bL_string_p): Rewrite to ..
3755 (valid_bL_core_p): this for integers instead of strings.
3756 (parse_field): New function.
3757 (contains_string_p): Rewrite to ...
3758 (contains_core_p): this for integers and only for the part_no.
3759 (host_detect_local_cpu): Rewrite handling of implementation and
3760 par num to be integers; simplifying the code.
3762 2016-10-21 Kugan Vivekanandarajah <kuganv@linaro.org>
3764 * ipa-prop.c (ipa_compute_jump_functions_for_edge): Create nonzero
3765 value range for pointers in more cases.
3767 2016-10-21 Wilco Dijkstra <wdijkstr@arm.com>
3769 * config/aarch64/aarch64.c (aarch64_add_constant_internal):
3770 Add extra argument to allow emitting the move immediate.
3771 Use add/sub with positive immediate.
3772 (aarch64_add_constant): Add inline function.
3773 (aarch64_add_sp): Likewise.
3774 (aarch64_sub_sp): Likewise.
3775 (aarch64_expand_prologue): Call aarch64_sub_sp.
3776 (aarch64_expand_epilogue): Call aarch64_add_sp.
3777 Decide when to leave out move.
3778 (aarch64_output_mi_thunk): Call aarch64_add_constant.
3780 2016-10-21 Wilco Dijkstra <wdijkstr@arm.com>
3782 * config/aarch64/aarch64.c (aarch64_layout_frame):
3783 Align FP callee-saves.
3785 2016-10-21 Jakub Jelinek <jakub@redhat.com>
3787 * config/i386/adxintrin.h (_subborrow_u32, _addcarry_u32,
3788 _addcarryx_u32, _subborrow_u64, _addcarry_u64, _addcarryx_u64):
3790 * config/i386/rdseedintrin.h (_rdseed16_step, _rdseed32_step,
3791 _rdseed64_step): Likewise.
3792 * config/i386/tbmintrin.h (__bextri_u32): Likewise.
3795 * config/i386/i386.c: Include fold-const-call.h, tree-vrp.h
3796 and tree-ssanames.h.
3797 (ix86_fold_builtin): Fold IX86_BUILTIN_[LT]ZCNT{16,32,64}
3798 with INTEGER_CST argument.
3799 (ix86_gimple_fold_builtin): New function.
3800 (TARGET_GIMPLE_FOLD_BUILTIN): Define.
3802 * dwarf2out.c (ranges_table): Change into vec<dw_ranges, va_gc> *.
3803 (ranges_by_label): Change into vec<dw_ranges_by_label, va_gc> *.
3804 (ranges_table_allocated, ranges_table_in_use,
3805 ranges_by_label_allocated, ranges_by_label_in_use,
3806 RANGES_TABLE_INCREMENT): Removed.
3807 (add_ranges_num): Use vec_safe_push into ranges_table.
3808 (add_ranges_by_labels): Use vec_safe_push into ranges_by_label.
3809 (output_ranges): Adjust for ranges_table and ranges_by_label
3810 conversion from arrays to vec.
3811 (add_high_low_attributes, dwarf2out_finish): Adjust for range_table
3812 conversion from arrays to vec.
3813 (dwarf2out_c_finalize): Don't clear ranges_table_allocated,
3814 ranges_table_in_use, ranges_by_label_allocated and
3815 ranges_by_label_in_use. Set ranges_by_label to NULL instead of 0.
3817 * dwarf2out.c (gen_variable_die): Emit DW_AT_const_expr attribute
3818 if needed. Re-add origin_die variable and its initialization.
3820 * gimplify.c (gimplify_bind_expr): Handle oacc_declare_returns
3821 even for -fstack-reuse=none, or for volatile vars etc.
3823 2016-10-21 David Malcolm <dmalcolm@redhat.com>
3825 * print-rtl-function.c (flag_compact): Move extern decl to...
3826 * print-rtl.h (flag_compact): ...here.
3827 * rtl-tests.c (selftests::assert_rtl_dump_eq): New function.
3828 (ASSERT_RTL_DUMP_EQ): New macro.
3829 (selftest::test_dumping_regs): New function.
3830 (selftest::test_dumping_insns): New function.
3831 (selftest::test_uncond_jump): Add uses of ASSERT_RTL_DUMP_EQ on
3833 (selftest::rtl_tests_c_tests): Call the new test functions.
3835 2016-10-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
3837 * cfgcleanup.c (merge_blocks_move_successor_nojumps): Adjust.
3838 (outgoing_edges_match): Likewise.
3839 (try_crossjump_to_edge): Likewise.
3840 * cfgrtl.c (try_redirect_by_replacing_jump): Likewise.
3841 (rtl_tidy_fallthru_edge): Likewise.
3842 * rtl.h (tablejump_p): Adjust prototype.
3843 * rtlanal.c (tablejump_p): Return the label as a rtx_insn *.
3845 2016-10-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
3847 * rtl.h (label_ref_label): New function.
3848 (set_label_ref_label): New function.
3849 (LABEL_REF_LABEL): Delete.
3850 * alias.c (rtx_equal_for_memref_p): Adjust.
3851 * cfgbuild.c (make_edges): Likewise.
3852 (purge_dead_tablejump_edges): Likewise.
3853 * cfgexpand.c (convert_debug_memory_address): Likewise.
3854 * cfgrtl.c (patch_jump_insn): Likewise.
3855 * combine.c (distribute_notes): Likewise.
3856 * cse.c (hash_rtx_cb): Likewise.
3857 (exp_equiv_p): Likewise.
3858 (fold_rtx): Likewise.
3859 (check_for_label_ref): Likewise.
3860 * cselib.c (rtx_equal_for_cselib_1): Likewise.
3861 (cselib_hash_rtx): Likewise.
3862 * emit-rtl.c (mark_label_nuses): Likewise.
3863 * explow.c (convert_memory_address_addr_space_1): Likewise.
3864 * final.c (output_asm_label): Likewise.
3865 (output_addr_const): Likewise.
3866 * gcse.c (add_label_notes): Likewise.
3867 * genconfig.c (walk_insn_part): Likewise.
3868 * genrecog.c (validate_pattern): Likewise.
3869 * ifcvt.c (cond_exec_get_condition): Likewise.
3870 (noce_emit_store_flag): Likewise.
3871 (noce_get_alt_condition): Likewise.
3872 (noce_get_condition): Likewise.
3873 * jump.c (maybe_propagate_label_ref): Likewise.
3874 (mark_jump_label_1): Likewise.
3875 (redirect_exp_1): Likewise.
3876 (rtx_renumbered_equal_p): Likewise.
3877 * lra-constraints.c (operands_match_p): Likewise.
3878 * print-rtl.c (print_value): Likewise.
3879 * reload.c (find_reloads): Likewise.
3880 * reload1.c (set_label_offsets): Likewise.
3881 * reorg.c (get_branch_condition): Likewise.
3882 * rtl-tests.c (test_uncond_jump): Likewise.
3883 * rtl.c (rtx_equal_p_cb): Likewise.
3884 (rtx_equal_p): Likewise.
3885 * rtlanal.c (reg_mentioned_p): Likewise.
3886 (rtx_referenced_p): Likewise.
3887 (get_condition): Likewise.
3888 * varasm.c (const_hash_1): Likewise.
3889 (compare_constant): Likewise.
3890 (const_rtx_hash_1): Likewise.
3891 (output_constant_pool_1): Likewise.
3893 2016-10-21 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
3896 * reload.c (find_valid_class_1): Allow regclass if atleast one
3897 regno in regclass is ok. Compute and use rclass size based on
3898 actually available regnos for mode in rclass.
3900 2016-10-21 Eric Botcazou <ebotcazou@adacore.com>
3902 * config/sparc/sparc-modes.def (CCV): New.
3904 * config/sparc/predicates.md (v_comparison_operator): New.
3905 (icc_comparison_operator): Add support for CCV/CCXV.
3906 (xcc_comparison_operator): Likewise.
3907 * config/sparc/sparc.c (output_cbranch): Likewise.
3908 (sparc_print_operand): Likewise.
3909 * config/sparc/sparc.md (UNSPEC_{ADD,SUB,NEG}V): New constants.
3910 (uaddvdi4): New expander.
3911 (addvdi4): Likewise.
3912 (uaddvdi4_sp32): New instruction.
3913 (addvdi4_sp32): Likewise.
3914 (uaddvsi4): New expander.
3915 (addvsi4): Likewise.
3916 (cmp_ccc_plus_sltu_set): New instruction.
3917 (cmp_ccv_plus): Likewise.
3918 (cmp_ccxv_plus): Likewise.
3919 (cmp_ccv_plus_set): Likewise.
3920 (cmp_ccxv_plus_set): Likewise.
3921 (cmp_ccv_plus_sltu_set): Likewise.
3922 (uaddvdi4): New expander.
3923 (subvdi4): Likewise.
3924 (usubdi4_sp32): New instruction.
3925 (subvdi4_sp32): Likewise.
3926 (usubvsi4): New expander.
3927 (subvsi4): Likewise.
3928 (cmpsi_minus_sltu_set): New instruction.
3929 (cmp_ccv_minus): Likewise.
3930 (cmp_ccxv_minus): Likewise.
3931 (cmp_ccv_minus_set): Likewise.
3932 (cmp_ccxv_minus_set): Likewise.
3933 (cmp_ccv_minus_sltu_set): Likewise.
3934 (unegvdi3): New expander.
3935 (negvdi3): Likewise.
3936 (unegdi3_sp32): New instruction.
3937 (negvdi3_sp32): Likewise.
3938 (unegvsi3): New expander.
3939 (negvsi3): Likewise.
3940 (cmp_ccc_neg_sltu_set): New instruction.
3941 (cmp_ccv_neg): Likewise.
3942 (cmp_ccxv_neg): Likewise.
3943 (cmp_ccv_neg_set): Likewise.
3944 (cmp_ccxv_neg_set): Likewise.
3945 (cmp_ccv_neg_sltu_set): Likewise.
3947 * tree-ssa-loop-split.c: Remove trailing spaces.
3948 * match.pd: Likewise.
3950 2016-10-21 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3952 PR rtl-optimization/78038
3953 * ree.c (get_defs): Return NULL if a defining insn for REG cannot
3954 be deduced to set REG through the RTL structure.
3955 (make_defs_and_copies_lists): Return false on a failing get_defs call.
3957 2016-10-21 Richard Biener <rguenther@suse.de>
3959 PR tree-optimization/78051
3960 * tree-vrp.c (evrp_dom_walker::before_dom_children): Update stmt
3961 and mark replaced if folding did something.
3963 2016-10-21 David Edelsohn <dje.gcc@gmail.com>
3965 * config/rs6000/rs6000.c (rs6000_assemble_visibility): Swap "internal"
3966 and "protected" in visibility types.
3967 (rs6000_xcoff_declare_function_name): Fix formatting.
3968 (rs6000_xcoff_declare_object_name): Fix formatting.
3970 2016-10-21 Uros Bizjak <ubizjak@gmail.com>
3972 * config/i386/i386.c (ix86_fold_builtin): Handle IX86_BUILTIN_INFQ
3973 and IX86_BUILTIN_HUGE_VALQ here ...
3974 (ix86_expand_builtin): ... not here.
3976 2016-10-20 Jakub Jelinek <jakub@redhat.com>
3978 * doc/gty.texi (for_user): Use @item next to @findex.
3980 2016-10-20 Uros Bizjak <ubizjak@gmail.com>
3983 * config/i386/bmiintrin.h (__tzcnt_u16): Call __builtin_ia32_tzcnt_u16.
3984 (__tzcnt_u32, _tzcnt_u32): Call __builtin_ia32_tzcnt_u32.
3985 (__tzcnt_u64, _tzcnt_u64): Call __builtin_ia32_tzcnt_u64.
3986 * config/i386/lzcntintrin.h (__lzcnt_u16): Call
3987 __builtin_ia32_lzcnt_u16.
3988 (__lzcnt_u32, _lzcnt_u32): Call __builtin_ia32_lzcnt_u32.
3989 (__lzcnt_u64, _lzcnt_u64): Call __builtin_ia32_lzcnt_u64.
3990 * config/i386/i386.md (UNSPEC_LZCNT, UNSPEC_TZCNT): New unspecs.
3991 (ctz<mode>2, *ctz<mode>2): Use SWI48 mode iterator.
3992 (bmi_tzcnt_<mode>): New expander.
3993 (*bmi_tzcnt_<mode>_falsedep_1): New define_insn_and_split pattern.
3994 (*bmi_tzcnt_<mode>_falsedep, *bmi_tzcnt_<mode>): New insn patterns.
3995 (clz<mode>2_lzcnt, *clz<mode>2_lzcnt): Use SWI48 mode iterator.
3996 (lzcnt_<mode>): New expander.
3997 (*lzcnt_<mode>_falsedep_1): New define_insn_and_split pattern.
3998 (*lzcnt_<mode>_falsedep, *lzcnt_<mode>): New insn patterns.
3999 * config/i386/i386-builtin-types.def (UINT_FTYPE_UINT): New.
4000 (UINT64_FTYPE_UINT64): New.
4001 * config/i386/i386-builtin.def (__builtin_clzs): Remove description.
4002 (__builtin_ia32_lzcnt_u16): New description.
4003 (__builtin_ia32_lzcnt_u32): Ditto.
4004 (__builtin_ia32_lzcnt_u64): Ditto.
4005 (__builtin_ctzs): Remove description.
4006 (__builtin_ia32_tzcnt_u16): New description.
4007 (__builtin_ia32_tzcnt_u32): Ditto.
4008 (__builtin_ia32_tzcnt_u64): Ditto.
4009 * config/i386/i386.c (ix86_expand_args_builtin): Handle
4010 UINT_FTYPE_UINT and UINT64_FTYPE_UINT64.
4012 2016-10-20 Martin Liska <mliska@suse.cz>
4015 * lto-streamer-in.c (fixup_call_stmt_edges_1): Replace value
4016 comparison with STMT_UID_NOT_IN_RANGE.
4017 (fixup_call_stmt_edges): Do not fixup edges of a thunk in
4020 2016-10-20 Eric Botcazou <ebotcazou@adacore.com>
4022 * compare-elim.c (conforming_compare): Accept UNSPECs.
4023 (find_comparison_dom_walker::before_dom_children): Deal with
4024 instructions both using and killing the flags register.
4025 (equivalent_reg_at_start): New function extracted from...
4026 (try_eliminate_compare): ...here. Use it and add support for
4027 registers and UNSPECs as second operand of the compare.
4028 * config/visium/visium-modes.def (CCV): New.
4029 * config/visium/predicates.md (visium_v_comparison_operator): New.
4030 (visium_branch_operator): Deal with CCV mode.
4031 * config/visium/visium.c (visium_select_cc_mode): Likewise.
4032 (output_cbranch): Likewise.
4033 * config/visium/visium.md (UNSPEC_{ADD,SUB,NEG}V): New constants.
4034 (uaddv<mode>4): New expander.
4035 (addv<mode>4): Likewise.
4036 (add<mode>3_insn_set_carry): New instruction.
4037 (add<mode>3_insn_set_overflow): Likewise.
4038 (addsi3_insn_set_overflow): Likewise.
4039 (usubv<mode>4): New expander.
4040 (subv<mode>4): Likewise.
4041 (sub<mode>3_insn_set_carry): New instruction.
4042 (sub<mode>3_insn_set_overflow): Likewise.
4043 (subsi3_insn_set_overflow): Likewise.
4044 (unegv<mode>3): New expander.
4045 (negv<mode>3): Likewise.
4046 (neg<mode>2_insn_set_overflow): New instruction.
4047 (addv_tst<mode>): Likewise.
4048 (subv_tst<mode>): Likewise.
4049 (negv_tst<mode>): Likewise.
4050 (cbranch<mode>4_addv_insn): New splitter and instruction.
4051 (cbranch<mode>4_subv_insn): Likewise.
4052 (cbranch<mode>4_negv_insn): Likewise.
4054 2016-10-20 Richard Biener <rguenther@suse.de>
4056 * tree-ssa-alias.c (ptrs_compare_unequal): Remove code duplication.
4057 Handle decls possibly not bound.
4058 * tree-ssa-structalias.c (get_constraint_for_ssa_var): Add
4059 nothing_id for decls that might not be bound if we are interested
4061 (get_constraint_for_component_ref): Deal with that.
4063 2016-10-20 Michael Matz <matz@suse.de>
4066 * common.opt (-fsplit-loops): New flag.
4067 * passes.def (pass_loop_split): Add.
4068 * opts.c (default_options_table): Add OPT_fsplit_loops entry at -O3.
4069 (enable_fdo_optimizations): Add loop splitting.
4070 * timevar.def (TV_LOOP_SPLIT): Add.
4071 * tree-pass.h (make_pass_loop_split): Declare.
4072 * tree-ssa-loop-manip.h (rewrite_into_loop_closed_ssa_1): Declare.
4073 * tree-ssa-loop-unswitch.c: Include tree-ssa-loop-manip.h,
4074 * tree-ssa-loop-split.c: New file.
4075 * Makefile.in (OBJS): Add tree-ssa-loop-split.o.
4076 * doc/invoke.texi (fsplit-loops): Document.
4077 * doc/passes.texi (Loop optimization): Add paragraph about loop
4080 2016-10-20 Richard Biener <rguenther@suse.de>
4082 * cgraphunit.c (analyze_functions): Set node->definition to
4083 false to signal symbol removal to debug_hooks->late_global_decl.
4084 * ipa.c (symbol_table::remove_unreachable_nodes): When not in
4085 WPA signal symbol removal to the debuginfo machinery.
4086 * dwarf2out.c (dwarf2out_late_global_decl): Instead of
4087 using early_finised to guard the we're called for symbol
4088 removal case look at the symtabs definition flag.
4089 (gen_variable_die): Remove redundant check.
4091 2016-10-20 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
4093 * config/s390/s390.md ("prefetch"): Add fallthrough comment.
4095 2016-10-20 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
4097 PR tree-optimization/53979
4098 * match.pd ((a ^ b) | a -> a | b): New pattern.
4100 2016-10-19 John David Anglin <danglin@gcc.gnu.org>
4102 * config/pa/pa64-hpux.h (PA_INIT_FRAME_DUMMY_ASM_OP): Move to
4103 config/pa/pa64-hpux-lib.h.
4104 (PA_CRTBEGIN_HACK): Likewise.
4105 (DTOR_LIST_BEGIN): Likewise.
4107 2016-10-19 Bernd Edlinger <bernd.edlinger@hotmail.de>
4109 * config/arm/arm.c (arm_emit_coreregs_64bit_shift): Clear the result
4110 register only if "in" and "out" are different registers.
4112 2016-10-19 Eric Botcazou <ebotcazou@adacore.com>
4114 * omp-low.c (pass_oacc_device_lower::gate): New method.
4115 (execute): Always call execute_oacc_device_lower.
4117 2016-10-19 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
4119 PR tree-optimization/77916
4120 PR tree-optimization/77937
4121 * gimple-ssa-strength-reduction.c (analyze_increments): Remove
4123 (insert_initializers): Requirement of initializer for -1 should be
4124 based on pointer-typedness of the candidate basis.
4126 2016-10-19 Bin Cheng <bin.cheng@arm.com>
4128 PR tree-optimization/78005
4129 * tree-vect-loop-manip.c (vect_gen_prolog_loop_niters): Compute
4130 upper (included) bound for niters of prolog loop.
4131 (vect_gen_scalar_loop_niters): Change parameter VF to VFM1.
4132 Compute niters of scalar loop above which vectorized loop is
4133 preferred, as well as the upper (included) bound for the niters.
4134 (vect_do_peeling): Record niter bound for loops accordingly.
4136 2016-10-19 Thomas Schwinge <thomas@codesourcery.com>
4139 * tree-core.h (enum tree_index): Put the complex types after their
4141 * tree-streamer.c (verify_common_node_recorded): New function.
4142 (preload_common_nodes) <TREE_CODE (node) == COMPLEX_TYPE>: Use it.
4144 2016-10-19 Martin Liska <mliska@suse.cz>
4146 * cgraph.h (cgraph_edge::binds_to_current_def_p):
4147 Replace NULL with false as a return value.
4149 2016-10-19 Thomas Schwinge <thomas@codesourcery.com>
4151 PR tree-optimization/78024
4152 * omp-low.c (oacc_loop_discovery): Call clear_bb_flags before, and
4153 don't clear BB_VISITED after processing.
4155 2016-10-19 Richard Biener <rguenther@suse.de>
4157 * domwalk.c (dom_walker::walk): Use RPO order.
4159 2016-10-19 Richard Biener <rguenther@suse.de>
4161 * tree-vrp.c (evrp_dom_walker::evrp_dom_walker): Initialize
4163 (evrp_dom_walker::~evrp_dom_walker): Free it.
4164 (evrp_dom_walker::stmts_to_remove): Add.
4165 (evrp_dom_walker::before_dom_children): Mark PHIs and stmts
4166 whose output we fully propagate for removal. Propagate
4167 into BB destination PHI arguments.
4168 (execute_early_vrp): Remove queued stmts. Dump value ranges
4169 before stmt removal.
4171 2016-10-18 Aldy Hernandez <aldyh@redhat.com>
4173 * Makefile.in (OBJS): Add gimple-ssa-warn-alloca.o.
4174 * passes.def: Add two instances of pass_walloca.
4175 * tree-pass.h (make_pass_walloca): New.
4176 * gimple-ssa-warn-alloca.c: New file.
4177 * doc/invoke.texi: Document -Walloca, -Walloca-larger-than=, and
4178 -Wvla-larger-than= options.
4180 2016-10-18 Thomas Schwinge <thomas@codesourcery.com>
4182 * cfg.c (clear_bb_flags): Use FOR_ALL_BB_FN.
4183 * config/nvptx/nvptx.c (nvptx_find_sese): Likewise.
4185 2016-10-18 Kelvin Nilsen <kelvin@gcc.gnu.org>
4187 * config/rs6000/altivec.h (vec_xl_len): New macro.
4188 (vec_xst_len): New macro.
4189 (vec_cmpnez): New macro.
4190 (vec_cntlz_lsbb): New macro.
4191 (vec_cnttz_lsbb): New macro.
4192 (vec_xlx): New macro.
4193 (vec_xrx): New macro.
4194 (vec_all_nez): New C++ predicate template.
4195 (vec_any_eqz): New C++ predicate template.
4196 (vec_all_ne): Revised C++ predicate template under _ARCH_PWR9
4197 conditional compilation.
4198 (vec_any_eq): Revised C++ predicate template under _ARCH_PWR9
4199 conditional compilation.
4200 (vec_all_nez): New macro.
4201 (vec_any_eqz): New macro.
4202 (vec_all_ne): Revised macro under _ARCH_PWR9 conditional
4204 (vec_any_eq): Revised macro under _ARCH_PWR9 conditional
4206 * config/rs6000/vector.md (VI): Moved this mode iterator
4207 definition from altivec.md to vector.md.
4208 (UNSPEC_NEZ_P): New value.
4209 (vector_ne_<mode>_p): New expansion for implementation of
4210 vec_all_ne and vec_any_eq built-in functions.
4211 (vector_nez_<mode>_p): New expansion for implementation of
4212 vec_all_nez and vec_any_eqz built-in functions.
4213 (vector_ne_v2di_p): New expansion for implementation of vec_all_ne
4214 and vec_any_eq built-in function.
4215 (cr6_test_for_zero): New commentary to explain this expansion.
4216 (cr6_test_for_zero_reverse): New commentary to explain this expansion.
4217 (cr6_test_for_lt): New commentary to explain this expansion.
4218 (cr6_test_for_lt_reverse): New commentary to explain this
4220 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
4221 overloaded function prototypes for vec_all_ne, vec_all_nez,
4222 vec_any_eq, vec_any_eqz, vec_cmpnez, vec_cntlz_lsbb,
4223 vec_cnttz_lsbb, vec_xl_len, vec_xst_len, vec_xlx, and vec_xrx
4225 (altivec_resolve_overloaded_builtin): Modify the handling of
4226 ALTIVEC_BUILTIN_VEC_CMPNE to use the Power9 instructions when
4227 the compiler is configured to support TARGET_P9_VECTOR.
4228 * config/rs6000/rs6000-builtin.def (BU_ALTIVEC_P): Add commentary
4229 to explain the special processing that is given to predicate
4230 built-ins introduced using this macro.
4231 (BU_ALTIVEC_OVERLOAD_P): Add commentary to alert maintainers to
4232 the special processing given to predicate built-ins introduced
4234 (BU_VSX_P): Likewise.
4235 (BU_P8V_AV_P): Likewise.
4236 (BU_P9V_AV_P): Likewise.
4237 (BU_P9V_AV_X): New macro.
4238 (BU_P9V_64BIT_AV_X): New macro.
4239 (BU_P9V_VSX_3): New macro.
4240 (BU_P9V_OVERLOAD_P): New macro.
4241 (LXVL): New BU_P9V_64BIT_VSX_2.
4242 (VEXTUBLX): New BU_P9V_AV_2.
4243 (VEXTUBRX): Likewise.
4244 (VEXTUHLX): Likewise.
4245 (VEXTUHRX): Likewise.
4246 (VEXTUWLX): Likewise.
4247 (VEXTUWRX): Likewise.
4248 (STXVL): New BU_P9V_64BIT_AV_X.
4249 (VCLZLSBB): New BU_P9V_AV_1.
4250 (VCTZLSBB): Likewise.
4251 (CMPNEB): New BU_P9V_AV_2.
4256 (VCMPNEB_P): New BU_P9V_AV_P.
4257 (VCMPNEH_P): Likewise.
4258 (VCMPNEW_P): Likewise.
4259 (VCMPNED_P): Likewise.
4260 (VCMPNEFP_P): Likewise.
4261 (VCMPNEDP_P): Likewise.
4262 (CMPNEZB): New BU_P9V_AV_2.
4263 (CMPNEZH): Likewise.
4264 (CMPNEZW): Likewise.
4265 (VCMPNEZB_P): New BU_P9V_AV_P.
4266 (VCMPNEZH_P): Likewise.
4267 (VCMPNEZW_P): Likewise.
4268 (LXVL): New BU_P9V_OVERLOAD_2.
4269 (STXVL): New BU_P9V_OVERLOAD_3.
4270 (VEXTULX): New BU_P9V_OVERLOAD_2.
4271 (VEXTURX): Likewise.
4273 (VCMPNEZ_P): New BU_P9V_OVERLOAD_P.
4274 (VCMPNE_P): Likewise.
4275 (VCLZLSBB): New BU_P9V_OVERLOAD_1.
4276 (VCTZLSBB): Likewise.
4277 * config/rs6000/rs6000.c (altivec_expand_predicate_builtin): Add
4278 comment to explain mode used for scratch register.
4279 (altivec_expand_stxvl_builtin): New function.
4280 (altivec_expand_builtin): Add case for new constant P9V_BUILTIN_STXVL.
4281 (altivec_init_builtins): Add initialized variable
4282 void_ftype_v16qi_pvoid_long and use this type to define the
4283 built-in function __builtin_altivec_stxvl.
4284 * config/rs6000/vsx.md (UNSPEC_LXVL): New value.
4285 (UNSPEC_STXVL): New value.
4286 (UNSPEC_VCLZLSBB): New value.
4287 (UNSPEC_VCTZLSBB): New value.
4288 (UNSPEC_VEXTUBLX): New value.
4289 (UNSPEC_VEXTUHLX): New value.
4290 (UNSPEC_VEXTUWLX): New value.
4291 (UNSPEC_VEXTUBRX): New value.
4292 (UNSPEC_VEXTUHRX): New value.
4293 (UNSPEC_VEXTUWRX): New value.
4294 (UNSPEC_VCMPNEB): New value.
4295 (UNSPEC_VCMPNEZB): New value.
4296 (UNSPEC_VCMPNEH): New value.
4297 (UNSPEC_VCMPNEZH): New value.
4298 (UNSPEC_VCMPNEW): New value.
4299 (UNSPEC_VCMPNEZW): New value.
4300 (*vsx_ne_<mode>_p): New insn for vector test all not equal with
4301 vector of integer modes.
4302 (*vsx_ne_<mode>_p): New insn for vector test all not equal with
4303 vector of float or double modes.
4304 (*vector_nez_<mode>_p): New insn for vector test all not equal or
4306 (lxvl): New expand for load VSX vector with length.
4307 (*lxvl): New insn for load VSX vector with length.
4308 (stxvl): New expand for store VSX vector with length.
4309 (*stxvl): New insn for store VSX vector with length.
4310 (vcmpneb): New insn for vector of byte compare not equal.
4311 (vcmpnezb): New insn for vector of byte compare not equal or zero.
4312 (vcmpneh): New insn for vector of half word compare not equal.
4313 (vcmpnezh): New insn for vector of half word compare not equal or
4315 (vcmpnew): New insn for vector of word compare not equal.
4316 (vcmpne<VSs>): New insn for vector of float or double compare not
4318 (vcmpnezw): New insn for vector of word compare not equal or zero.
4319 (vclzlsbb): New insn for vector count leading zero
4320 least-significant bits byte.
4321 (vctzlsbb): New insn for vector count trailing zero least
4322 signficant bits byte.
4323 (vextublx): New insn for vector extract unsigned byte left
4325 (vextubrx): New insn for vector extract unsigned byte right
4327 (vextuhlx): New insn for vector extract unsigned half word left
4329 (vextuhrx): New insn for vector extract unsigned half word right
4331 (vextuwlx): New insn for vector extract unsigned word left
4333 (vextuwrx): New insn for vector extract unsigned word right
4335 * config/rs6000/rs6000.h (RS6000_BTC_CONST): Enhance comment to
4336 clarify intent of this constant.
4337 * config/rs6000/altivec.md (VI): Move this mode iterator to vsx.md.
4338 * doc/extend.texi (PowerPC Altivec Built-in Functions): Add
4339 documentation for vec_all_nez, vec_any_eqz, vec_cmpnez,
4340 vec_cntlz_lsbb, vec_cnttz_lsbb, vec_xl_len, vec_xst_len, vec_xlx,
4341 and vec_xrx functions.
4343 2016-10-18 Andrew Pinski <apinski@cavium.com>
4346 * predict.c (is_exit_with_zero_arg): New function.
4347 (tree_bb_level_predictions): Don't consider paths leading to exit(0)
4350 2016-10-18 Uros Bizjak <ubizjak@gmail.com>
4353 * config/i386/i386.c (legitimize_tls_address)
4354 <case TLS_MODEL_INITIAL_EXEC>: For TARGET_64BIT || TARGET_ANY_GNU_TLS
4355 convert dest to Pmode if different than Pmode.
4357 2016-10-18 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
4359 PR tree-optimization/77916
4360 * gimple-ssa-strength-reduction.c (analyze_increments): Reinstate
4361 stopgap fix, as pointers with -1 increment are still broken.
4363 2016-10-18 David Edelsohn <dje.gcc@gmail.com>
4365 * config/rs6000/rs6000.c (rs6000_output_symbol_ref): Move storage
4366 mapping class decoration from here...
4367 (rs6000_xcoff_encode_section): ...to here.
4369 (rs6000_savres_strategy) [AIX,ELFv2]: Inline FPR save and restore
4370 if shrink-wrapping and optimizing for speed.
4372 2016-10-18 Richard Biener <rguenther@suse.de>
4374 * tree-vrp.c (evrp_dom_walker::before_dom_children): Handle
4375 not visited but non-executable predecessors. Return taken edge.
4376 Simplify conditions and refactor propagation vs. folding step.
4378 2016-10-18 Segher Boessenkool <segher@kernel.crashing.org>
4380 * config/rs6000/rs6000.c (rs6000_savres_strategy): Do not select
4381 {SAVE,REST}_MULTIPLE if shrink-wrapping separate components.
4382 (rs6000_get_separate_components): Assert we do not have those
4383 strategies selected.
4385 2016-10-18 Richard Biener <rguenther@suse.de>
4387 * tree-ssa-propagate.h (substitute_and_fold): Adjust prototype.
4388 * tree-ssa-propagate.c (ssa_prop_fini): Remove final BB_VISITED
4390 (substitute_and_fold_dom_walker): Adjust constructor.
4391 (substitute_and_fold_dom_walker::before_dom_children): Remove
4392 do_dce flag and handling (always true).
4393 (substitute_and_fold): Likewise.
4394 * tree-vrp.c (vrp_finalize): Adjust.
4395 (execute_early_vrp): Remove final BB_VISITED clearing.
4396 * tree-ssa-ccp.c (ccp_finalize): Adjust.
4397 * tree-ssa-copy.c (fini_copy_prop): Likewise.
4398 * ira.c (ira): Call clear_bb_flags.
4400 2016-10-18 Richard Biener <rguenther@suse.de>
4402 * genmatch.c (dt_operand::gen_gimple_expr): Use get_name to
4403 get at the operand to look at with TREE_OPERAND for generic
4406 2016-10-18 David Malcolm <dmalcolm@redhat.com>
4408 * genattrtab.c (attr_string): Use rtx_reader_ptr for call to
4410 (gen_attr): Use rtx_reader_ptr for lookup_enum_type call.
4411 (write_test_expr): Use rtx_reader_ptr for calls to
4413 (write_attr_value): Likewise.
4414 * genconditions.c (write_one_condition): Use rtx_reader_ptr for
4415 call to print_md_ptr_loc.
4416 (write_one_condition): Likewise for calls to print_c_condition.
4417 * genconstants.c: Include "statistics.h" and "vec.h".
4418 (main): Update for conversion to member functions.
4419 * genemit.c (emit_c_code): Use rtx_reader_ptr for
4420 call to print_md_ptr_loc.
4421 * genenums.c: Include "statistics.h" and "vec.h".
4422 (main): Update for conversion of traverse_enum_types to a method.
4423 * genmddeps.c: Include "statistics.h" and "vec.h".
4424 * genoutput.c (process_template): Use rtx_reader_ptr for call to
4426 * genpreds.c (write_predicate_subfunction): Likewise.
4427 (write_predicate_expr): Likewise for calls to print_c_condition.
4428 * genrecog.c (print_test): Likewise.
4429 * gensupport.c (process_rtx): Likewise for calls to
4430 copy_md_ptr_loc and join_c_conditions.
4431 (alter_test_for_insn): Likewise for call to join_c_conditions.
4432 (process_substs_on_one_elem): Likewise.
4433 (gen_mnemonic_setattr): Update for move of string_obstack to a
4434 field of rtx_reader.
4435 (mnemonic_htab_callback): Likewise. Fix formatting.
4436 (gen_mnemonic_attr): Likewise.
4437 * gentarget-def.c (def_target_insn): Use rtx_reader_ptr for calls
4438 to print_c_condition.
4439 * read-md.c: Include "statistics.h" and "vec.h".
4440 (string_obstack): Convert this global to field "m_string_obstack"
4441 of class rtx_reader.
4442 (ptr_locs): Likewise, as "m_ptr_locs".
4443 (ptr_loc_obstack): Likewise, as "m_ptr_loc_obstack".
4444 (joined_conditions): Likewise, as "m_joined_conditions".
4445 (joined_conditions_obstack): Likewise, as "m_joined_conditions_obstack".
4446 (md_constants): Likewise, as "m_md_constants".
4447 (enum_types): Likewise, as "m_enum_types".
4448 (set_md_ptr_loc): Convert to...
4449 (rtx_reader::set_md_ptr_loc): ...member function.
4450 (get_md_ptr_loc): Convert to...
4451 (rtx_reader::get_md_ptr_loc): ...member function.
4452 (copy_md_ptr_loc): Convert to...
4453 (rtx_reader::copy_md_ptr_loc): ...member function.
4454 (fprint_md_ptr_loc): Convert to...
4455 (rtx_reader::fprint_md_ptr_loc): ...member function.
4456 (print_md_ptr_loc): Convert to...
4457 (rtx_reader::print_md_ptr_loc): ...member function.
4458 (join_c_conditions): Convert to...
4459 (rtx_reader::join_c_conditions): ...member function.
4460 (fprint_c_condition): Convert to...
4461 (rtx_reader::fprint_c_condition): ...member function.
4462 (print_c_condition): Convert to...
4463 (rtx_reader::print_c_condition): ...member function.
4464 (read_name): Convert to...
4465 (rtx_reader::read_name): ...member function.
4466 (read_escape): Convert to...
4467 (rtx_reader::read_escape): ...member function.
4468 (read_quoted_string): Convert to...
4469 (rtx_reader::read_quoted_string): ...member function.
4470 (read_braced_string): Convert to...
4471 (rtx_reader::read_braced_string): ...member function.
4472 (read_string): Convert to...
4473 (rtx_reader::read_string): ...member function.
4474 (read_skip_construct): Convert to...
4475 (rtx_reader::read_skip_construct): ...member function.
4476 (handle_constants): Convert to...
4477 (rtx_reader::handle_constants): ...member function.
4478 (traverse_md_constants): Convert to...
4479 (rtx_reader::traverse_md_constants): ...member function.
4480 (handle_enum): Convert to...
4481 (rtx_reader::handle_enum): ...member function.
4482 (lookup_enum_type): Convert to...
4483 (rtx_reader::lookup_enum_type): ...member function.
4484 (traverse_enum_types): Convert to...
4485 (rtx_reader::traverse_enum_types): ...member function.
4486 (rtx_reader::rtx_reader): Move initializations
4487 of various former global data from rtx_reader::read_md_files to
4488 here, as fields, along with the call to unlock_std_streams.
4489 (rtx_reader::~rtx_reader): Clean up m_base_dir, and clean up
4491 (rtx_reader::read_md_files): Move initializations of various
4492 global data from here to the ctor.
4493 * read-md.h (read_name): Convert to...
4494 (rtx_reader::read_name): ...member function.
4495 (rtx_reader::read_escape): New method decl.
4496 (read_quoted_string): Convert to...
4497 (rtx_reader::read_quoted_string): ...member function.
4498 (rtx_reader::read_braced_string): New method decl.
4499 (read_string): Convert to...
4500 (rtx_reader::read_string): ...member function.
4501 (rtx_reader::read_skip_construct): New method decl.
4502 (rtx_reader::set_md_ptr_loc): New method decl.
4503 (rtx_reader::get_md_ptr_loc): New method decl.
4504 (copy_md_ptr_loc): Convert to...
4505 (rtx_reader::copy_md_ptr_loc): ...member function.
4506 (fprint_md_ptr_loc): Convert to...
4507 (rtx_reader::fprint_md_ptr_loc): ...member function.
4508 (print_md_ptr_loc): Convert to...
4509 (rtx_reader::print_md_ptr_loc): ...member function.
4510 (rtx_reader::lookup_enum_type): New method decl.
4511 (rtx_reader::traverse_enum_types): New method decl.
4512 (rtx_reader::handle_constants): New method decl.
4513 (traverse_md_constants): Convert to...
4514 (rtx_reader::traverse_md_constants): ...member function.
4515 (rtx_reader::handle_enum): New method decl.
4516 (rtx_reader::join_c_conditions): New method decl.
4517 (fprint_c_condition): Convert to...
4518 (rtx_reader::fprint_c_condition): ...member function.
4519 (print_c_condition): Convert to...
4520 (rtx_reader::print_c_condition): ...member function.
4521 (rtx_reader::apply_iterator_to_string): New method decl.
4522 (rtx_reader::copy_rtx_for_iterators): New method decl.
4523 (rtx_reader::read_conditions): New method decl.
4524 (rtx_reader::record_potential_iterator_use): New method decl.
4525 (rtx_reader::read_mapping): New method decl.
4526 (rtx_reader::read_rtx): New method decl.
4527 (rtx_reader::read_rtx_code): New method decl.
4528 (rtx_reader::read_rtx_operand): New method decl.
4529 (rtx_reader::read_nested_rtx): New method decl.
4530 (rtx_reader::read_rtx_variadic): New method decl.
4531 (rtx_reader::get_string_obstack): New method.
4532 (rtx_reader::get_md_constants): New method.
4533 (string_obstack): Convert global variable decl to...
4534 (rtx_reader::m_string_obstack): ...this new field.
4535 (rtx_reader::m_ptr_locs): New field.
4536 (rtx_reader::m_ptr_loc_obstack): New field.
4537 (rtx_reader::m_joined_conditions): New field.
4538 (rtx_reader::m_joined_conditions_obstack): New field.
4539 (rtx_reader::m_md_constants): New field.
4540 (rtx_reader::m_enum_types): New field.
4541 * read-rtl.c (apply_iterator_to_string): Convert to...
4542 (rtx_reader::apply_iterator_to_string): ...member function.
4543 (copy_rtx_for_iterators): Convert to...
4544 (rtx_reader::copy_rtx_for_iterators): ...member function.
4545 (add_condition_to_string): Use rtx_reader_ptr for
4546 calls join_c_conditions.
4547 (apply_iterators): Use rtx_reader_ptr for calls to
4548 join_c_conditions and copy_rtx_for_iterators.
4549 (read_conditions): Convert to...
4550 (rtx_reader::read_conditions): ...member function.
4551 (record_potential_iterator_use): Convert to...
4552 (rtx_reader::record_potential_iterator_use): ...member function.
4553 (read_mapping): Convert to...
4554 (rtx_reader::read_mapping): ...member function.
4555 (read_subst_mapping): Use rtx_reader_ptr for read_string call.
4556 (read_rtx): Convert to...
4557 (rtx_reader::read_rtx): ...member function.
4558 (read_rtx_code): Convert to...
4559 (rtx_reader::read_rtx_code): ...member function.
4560 (read_rtx_operand): Convert to...
4561 (rtx_reader::read_rtx_operand): ...member function. Update for move
4562 of string_obstack to a field.
4563 (read_nested_rtx): Convert to..
4564 (rtx_reader::read_nested_rtx): ...member function.
4565 (read_rtx_variadic): Convert to..
4566 (rtx_reader::read_rtx_variadic): ...member function.
4568 2016-10-18 Kugan Vivekanandarajah <kuganv@linaro.org>
4570 * tree-vrp.c (get_value_range): Check get_ptr_nonnull.
4572 2016-10-18 Kugan Vivekanandarajah <kuganv@linaro.org>
4574 * ipa-prop.c (ipa_compute_jump_functions_for_edge): Set value range
4575 for pointer type too.
4576 (ipcp_update_vr): set_ptr_nonnull for pointer.
4578 2016-10-18 Kugan Vivekanandarajah <kuganv@linaro.org>
4580 * tree-ssa-alias.h (pt_solution_singleton_or_null_p): Renamed from
4581 pt_solution_singleton_p.
4582 * tree-ssa-ccp.c (fold_builtin_alloca_with_align): Use renamed
4583 pt_solution_singleton_or_null_p from pt_solution_singleton_p.
4584 * tree-ssa-structalias.c (find_what_p_points_to): Preserve
4585 pointer nonnull computed by VRP.
4586 Also Conservatively set pt.null to 1.
4587 (pt_solution_reset): Conservatively set pt.null to 1.
4588 (pt_solution_singleton_or_null_p): Renamed from
4589 pt_solution_singleton_p.
4590 * tree-ssanames.h (set_ptr_nonnull): Declare.
4591 (get_ptr_nonnull): Likewise.
4592 * tree-ssanames.c (set_ptr_nonnull): New.
4593 (get_ptr_nonnull): Likewise.
4594 * tree-vrp.c (vrp_finalize): Set ptr that are nonnull.
4595 (evrp_dom_walker::before_dom_children): Likewise.
4597 2016-10-17 Eric Botcazou <ebotcazou@adacore.com>
4599 * config/i386/i386.h (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Move to...
4600 * config/i386/i386.c (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): ...here.
4601 * config/ia64/ia64.h (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Move to...
4602 * config/ia64/ia64.c (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): ...here.
4603 * config/rs6000/rs6000.h (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Move to.
4604 * config/rs6000/rs6000.c (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): ...here.
4605 (rs6000_option_override_internal): Clear it if ABI_AIX.
4606 * config/sparc/sparc.h (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Move to...
4607 * config/sparc/sparc.c (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): ... here.
4609 2016-10-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
4611 * gimple-ssa-strength-reduction.c (record_increment): Remove
4614 2016-10-17 Eric Botcazou <ebotcazou@adacore.com>
4616 * expmed.c (expand_shift_1): Add MAY_FAIL parameter and do not assert
4617 that the result is non-zero if it is true.
4618 (maybe_expand_shift): New wrapper around expand_shift_1.
4619 (emit_store_flag): Call maybe_expand_shift in lieu of expand_shift.
4621 2016-10-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
4623 PR tree-optimization/77916
4624 * gimple-ssa-strength-reduction.c (create_add_on_incoming_edge):
4625 Don't allow a MINUS_EXPR for pointer arithmetic for either known
4627 (record_increment): Increments of -1 for unknown strides just use
4628 a multiply initializer like other negative values.
4629 (analyze_increments): Remove stopgap solution for -1 increment
4630 applied to pointer arithmetic.
4632 2016-10-17 Yuri Rumyantsev <ysrumyan@gmail.com>
4634 * dominance.c (dom_info::dom_info): Add new constructor for region
4635 which is vector of basic blocks.
4636 (dom_init): New method to initialize members common for both
4638 (dom_info::dom_info): Invoke dom_init for partial initialization.
4639 (dom_info::get_idom): Add check to corner cases on basic blocks which
4641 (dom_info::calc_dfs_tree): Check M_FAKE_EXIT_EDGE instead of M_REVERSE
4642 to detect unreachable bbs.
4643 (dom_info::calc_idoms): Likewise.
4644 (compute_dom_fast_query_in_region): New function.
4645 (calculate_dominance_info_for_region): Likewise.
4646 (free_dominance_info_for_region): Likewise.
4647 * dominance.h: Add prototypes for introduced region-based functions
4648 tree-if-conv.c: (build_region): New function.
4649 (if_convertible_loop_p_1): Invoke local version of post-dominators
4650 calculation before basic block predication with subsequent freeing
4651 post-dominator info.
4652 (tree_if_conversion): Remove free of post-dominator info
4653 (pass_if_conversion::execute): Delete detection of infinite loops
4654 and fake edges to exit block since post-dominator calculation is
4655 performed per if-converted loop only.
4657 2016-10-17 Bernd Edlinger <bernd.edlinger@hotmail.de>
4660 * config/arm/arm.c (arm_emit_coreregs_64bit_shift): Clear the result
4661 register explicitly.
4662 * config/arm/arm.md (ashldi3, ashrdi3, lshrdi3): Don't FAIL if
4663 optimizing for size.
4665 2016-10-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4667 * config/aarch64/aarch64.c: Delete inclusion of
4668 cortex-a57-fma-steering.h.
4669 (aarch64_override_options): Delete call
4670 to aarch64_register_fma_steering.
4671 * config/aarch64/aarch64-protos.h (make_pass_fma_steering): Declare.
4672 * config/aarch64/cortex-a57-fma-steering.h: Delete.
4673 * config/aarch64/aarch64-passes.def: New file.
4674 * config/aarch64/cortex-a57-fma-steering.c
4675 (aarch64_register_fma_steering): Delete definition.
4676 (make_pass_fma_steering): Remove static qualifier.
4677 * config/aarch64/t-aarch64 (PASSES_EXTRA): New directive.
4678 (cortex-a57-fma-steering.o): Remove dependency on
4679 cortex-a57-fma-steering.h.
4681 2016-10-17 Eric Botcazou <ebotcazou@adacore.com>
4683 * explow.c (validize_mem): Do not modify the argument in-place.
4685 2016-10-17 Thomas Schwinge <thomas@codesourcery.com>
4687 * tree-streamer.c (record_common_node): Explicitly list expected
4690 2016-10-17 Richard Biener <rguenther@suse.de>
4692 PR tree-optimization/77988
4693 * tree-vrp.c (remove_range_assertions): Use replace_uses_by.
4695 2016-10-17 Marek Polacek <polacek@redhat.com>
4697 * Makefile.in (C_COMMON_OBJS): Add c-family/c-attribs.o.
4699 2016-10-17 Richard Biener <rguenther@suse.de>
4701 * bb-reorder.c (reorder_basic_blocks_simple): Clear BB_VISITED
4704 2016-10-17 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
4706 PR tree-optimization/71636
4707 * match.pd (x & ((1 << b) - 1) -> x & ~(~0 << b)): New pattern.
4709 2016-10-17 Richard Biener <rguenther@suse.de>
4711 * gimplify.c (gimplify_function_tree): Do not move the outer
4714 2016-10-17 Jakub Jelinek <jakub@redhat.com>
4716 * langhooks.h (struct lang_hooks_for_decls): Remove
4717 function_decl_explicit_p, function_decl_deleted_p and
4718 function_decl_defaulted hooks. Add decl_dwarf_attribute hook.
4719 * langhooks-def.h (lhd_decl_dwarf_attribute): Declare.
4720 (LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P,
4721 LANG_HOOKS_FUNCTION_DECL_DELETED_P,
4722 LANG_HOOKS_FUNCTION_DECL_DEFAULTED): Remove.
4723 (LANG_HOOKS_DECL_DWARF_ATTRIBUTE): Define.
4724 (LANG_HOOKS_DECLS): Remove LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P,
4725 LANG_HOOKS_FUNCTION_DECL_DELETED_P and
4726 LANG_HOOKS_FUNCTION_DECL_DEFAULTED. Add
4727 LANG_HOOKS_DECL_DWARF_ATTRIBUTE.
4728 * langhooks.c (lhd_decl_dwarf_attribute): New function.
4729 * dwarf2out.c (gen_subprogram_die): Use
4730 lang_hooks.decls.decl_dwarf_attribute instead of
4731 lang_hooks.decls.function_decl_*.
4733 2016-10-16 Eric Botcazou <ebotcazou@adacore.com>
4737 * common.opt (-ftrampolines): New option.
4738 * doc/invoke.texi (Code Gen Options): Document it.
4739 * doc/tm.texi.in (Trampolines): Add TARGET_CUSTOM_FUNCTION_DESCRIPTORS.
4740 * doc/tm.texi: Regenerate.
4741 * builtins.def: Add init_descriptor and adjust_descriptor.
4742 * builtins.c (expand_builtin_init_trampoline): Do not issue a warning
4743 on platforms with descriptors.
4744 (expand_builtin_init_descriptor): New function.
4745 (expand_builtin_adjust_descriptor): Likewise.
4746 (expand_builtin) <BUILT_IN_INIT_DESCRIPTOR>: New case.
4747 <BUILT_IN_ADJUST_DESCRIPTOR>: Likewise.
4748 * calls.c (prepare_call_address): Remove SIBCALLP parameter and add
4749 FLAGS parameter. Deal with indirect calls by descriptor and adjust.
4750 Set STATIC_CHAIN_REG_P on the static chain register, if any.
4751 (call_expr_flags): Set ECF_BY_DESCRIPTOR for calls by descriptor.
4752 (expand_call): Likewise. Move around call to prepare_call_address
4753 and pass all flags to it.
4754 * cfgexpand.c (expand_call_stmt): Reinstate CALL_EXPR_BY_DESCRIPTOR.
4755 * gimple.h (enum gf_mask): New GF_CALL_BY_DESCRIPTOR value.
4756 (gimple_call_set_by_descriptor): New setter.
4757 (gimple_call_by_descriptor_p): New getter.
4758 * gimple.c (gimple_build_call_from_tree): SetCALL_EXPR_BY_DESCRIPTOR.
4759 (gimple_call_flags): Deal with GF_CALL_BY_DESCRIPTOR.
4760 * langhooks.h (struct lang_hooks): Add custom_function_descriptors.
4761 * langhooks-def.h (LANG_HOOKS_CUSTOM_FUNCTION_DESCRIPTORS): Define.
4762 (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_CUSTOM_FUNCTION_DESCRIPTORS.
4763 * rtl.h (STATIC_CHAIN_REG_P): New macro.
4764 * rtlanal.c (find_first_parameter_load): Skip static chain registers.
4765 * target.def (custom_function_descriptors): New POD hook.
4766 * tree.h (FUNC_ADDR_BY_DESCRIPTOR): New flag on ADDR_EXPR.
4767 (CALL_EXPR_BY_DESCRIPTOR): New flag on CALL_EXPR.
4768 * tree-core.h (ECF_BY_DESCRIPTOR): New mask.
4769 Document FUNC_ADDR_BY_DESCRIPTOR and CALL_EXPR_BY_DESCRIPTOR.
4770 * tree.c (make_node_stat) <tcc_declaration>: Use FUNCTION_ALIGNMENT.
4771 (build_common_builtin_nodes): Initialize init_descriptor and
4773 * tree-nested.c: Include target.h.
4774 (struct nesting_info): Add 'any_descr_created' field.
4775 (get_descriptor_type): New function.
4776 (lookup_element_for_decl): New function extracted from...
4777 (create_field_for_decl): Likewise.
4778 (lookup_tramp_for_decl): ...here. Adjust.
4779 (lookup_descr_for_decl): New function.
4780 (convert_tramp_reference_op): Deal with descriptors.
4781 (build_init_call_stmt): New function extracted from...
4782 (finalize_nesting_tree_1): ...here. Adjust and deal with descriptors.
4783 * defaults.h (FUNCTION_ALIGNMENT): Define.
4784 (TRAMPOLINE_ALIGNMENT): Set to above instead of FUNCTION_BOUNDARY.
4785 * config/i386/i386.h (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Define.
4786 * config/ia64/ia64.h (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Likewise.
4787 * config/rs6000/rs6000.h (TARGET_CUSTOM_FUNCTION_DESCRIPTORS):Likewise.
4788 * config/sparc/sparc.h (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Likewise.
4790 2016-10-16 Eric Botcazou <ebotcazou@adacore.com>
4792 * config/sparc/sparc.c (sparc_expand_vector_init): Only accept literal
4793 constants in CONST_VECTORs.
4795 2016-10-15 Eric Botcazou <ebotcazou@adacore.com>
4797 * config/sparc/sparc.c (sparc_expand_vec_perm_bmask): Use a scratch
4798 register as destination of bmask.
4799 (vector_init_bshuffle): Likewise.
4800 * config/sparc/sparc.md (vec_perm_constv8qi): Likewise.
4801 (bmaskdi_vis): Enable only in 64-bit mode.
4803 2016-10-15 Segher Boessenkool <segher@kernel.crashing.org>
4805 * config/rs6000/rs6000.c (rs6000_get_separate_components): Do not
4806 make LR a separately shrink-wrapped component unless savres_strategy
4807 contains all of {SAVE,REST}_INLINE_{GPRS,FPRS,VRS}. Do not wrap
4808 GPRs unless both {SAVE,REST}_INLINE_GPRS. Do not disallow all
4809 wrapping when not both {SAVE,REST}_INLINE_GPRS.
4811 2016-10-15 Eric Botcazou <ebotcazou@adacore.com>
4813 * optabs.c (expand_parity): Fix mode mismatch, add final conversion
4814 and keep looping on failure.
4816 2016-10-14 David Malcolm <dmalcolm@redhat.com>
4818 * print-rtl-function.c (print_edge): Omit "(flags)" when none are
4820 (print_rtx_function): Update example in comment for...
4821 * print-rtl.c (print_rtx_operand_code_r): In compact mode, print
4822 non-virtual pseudos with a '%' sigil followed by the regno, offset
4823 by (LAST_VIRTUAL_REGISTER + 1), so that the first non-virtual
4824 pseudo is dumped as "%0".
4826 2016-10-14 Jakub Jelinek <jakub@redhat.com>
4829 * expr.c (expand_expr_real_1) <case CONST_DECL>: For EXPAND_WRITE
4832 2016-10-14 Eric Botcazou <ebotcazou@adacore.com>
4834 * config/sparc/sparc-passes.def: New file.
4835 * config/sparc/t-sparc (PASSES_EXTRA): Add sparc-passes.def.
4836 * config/sparc/sparc-protos.h (make_pass_work_around_errata): New.
4837 * config/sparc/sparc.c (sparc_option_override): Don't register passes.
4839 2016-10-14 Pat Haugen <pthaugen@us.ibm.com>
4841 * loop-unroll.c (unroll_loop_runtime_iterations): Condition initial
4842 loop peel to loops with exit test at the beginning.
4844 2016-10-14 Pat Haugen <pthaugen@us.ibm.com>
4846 PR rtl-optimization/68212
4847 * cfgloopmanip.c (duplicate_loop_to_header_edge): Use preheader edge
4848 frequency when computing scale factor for peeled copies.
4849 * loop-unroll.c (unroll_loop_runtime_iterations): Fix freq/count
4850 values for switch/peel blocks/edges.
4852 2016-10-14 Pedro Alves <palves@redhat.com>
4854 * coretypes.h (OVERRIDE, FINAL): Delete, moved to include/ansidecl.h.
4856 2016-10-14 Catherine Moore <clm@codesourcery.com>
4858 * config/mips/mips.c (mips_prepare_pch_save): Initialize
4859 micromips_globals to zero.
4861 2016-10-14 Richard Biener <rguenther@suse.de>
4863 PR tree-optimization/77979
4864 * tree-vrp.c (compare_name_with_value): Handle released SSA names
4865 in the equivalency sets.
4866 (compare_names): Likewise.
4868 2016-10-14 Martin Liska <mliska@suse.cz>
4870 * builtins.h(target_char_cst_p): Declare the function.
4871 * builtins.c (fold_builtin_memchr): Remove.
4872 (target_char_cst_p): Move the function from gimple-fold.c.
4873 (fold_builtin_3): Do not call the function.
4874 * gimple-fold.c (gimple_fold_builtin_memchr): New function.
4875 (gimple_fold_builtin): Call the function.
4876 * fold-const-call.c (fold_const_call_1): Handle CFN_BUILT_IN_MEMCHR.
4878 2016-10-14 Martin Liska <mliska@suse.cz>
4880 * builtins.c (fold_builtin_strcmp): Remove function.
4881 (fold_builtin_strncmp): Likewise.
4882 (fold_builtin_2): Remove call of the function.
4883 (fold_builtin_3): Likewise.
4884 * fold-const-call.c (fold_const_call): Add constant folding
4885 for CFN_BUILT_IN_STRCASECMP and CFN_BUILT_IN_STRNCASECMP.
4886 * fold-const-call.h (build_cmp_result): Declare the function.
4887 * gimple-fold.c (gimple_load_first_char): New function.
4888 (gimple_fold_builtin_string_compare): Likewise.
4889 (gimple_fold_builtin): Call the function.
4891 2016-10-14 Nathan Sidwell <nathan@acm.org>
4893 * gcov-io.c (gcov_open): Deconstify 'mode'.
4895 2016-10-14 Martin Liska <mliska@suse.cz>
4897 * fold-const.c (c_getstr): Support of properly \0-terminated
4898 string constants. New argument is added.
4899 * fold-const.h: New argument is added.
4901 2016-10-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4903 * config/aarch64/aarch64.c (aarch64_print_hint_for_core_or_arch):
4905 (aarch64_print_hint_for_core): Likewise.
4906 (aarch64_print_hint_for_arch): Likewise.
4907 (aarch64_validate_march): Use it. Fix indentation in type signature.
4908 (aarch64_validate_mcpu): Use aarch64_print_hint_for_core_or_arch.
4909 (aarch64_validate_mtune): Likewise.
4910 (aarch64_handle_attr_arch): Likewise.
4911 (aarch64_handle_attr_cpu): Likewise.
4912 (aarch64_handle_attr_tune): Likewise.
4914 2016-10-14 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
4916 * optabs.def: Remove optab function gen_int_libfunc for sdivmod_optab
4919 2016-10-13 Andreas Schwab <schwab@linux-m68k.org>
4921 * config/m68k/m68k.c (m68k_option_override): Check
4922 opt_fstack_limit_symbol_arg and opt_fstack_limit_register_no
4923 instead of stack_limit_rtx.
4925 2016-10-13 Jakub Jelinek <jakub@redhat.com>
4927 * dwarf2out.c (gen_member_die): Handle inline static data member
4930 2016-10-13 Nathan Sidwell <nathan@acm.org>
4932 * gcov-io.c (gcov_open): Fix documentation. Simplify setting
4933 gcov_var.mode. Remove unnecessary fstat.
4935 2016-10-13 Segher Boessenkool <segher@kernel.crashing.org>
4938 * function.c (thread_prologue_and_epilogue_insns): Call all
4939 make_*logue_seq in the same order as traditional. Call them
4940 all a second time if shrink_wrapped_separate.
4942 2016-10-13 Marek Polacek <polacek@redhat.com>
4944 * Makefile.in (insn-attrtab.o-warn, insn-dfatab.o-warn,
4945 insn-latencytab.o-warn, insn-output.o-warn, insn-emit.o-warn): Don't
4948 2016-10-13 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
4950 PR tree-optimization/77937
4951 * gimple-ssa-strength-reduction.c (analyze_increments): Set cost
4952 to infinite when we have a pointer with an increment of -1.
4954 2016-10-13 Thomas Preud'homme <thomas.preudhomme@arm.com>
4956 * coretypes.h: Move MEMMODEL_* macros and enum memmodel definition
4958 * memmodel.h: This file.
4959 * alias.c, asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c,
4960 caller-save.c, calls.c, ccmp.c, cfgbuild.c, cfgcleanup.c,
4961 cfgexpand.c, cfgloopanal.c, cfgrtl.c, cilk-common.c, combine.c,
4962 combine-stack-adj.c, common/config/aarch64/aarch64-common.c,
4963 common/config/arm/arm-common.c, common/config/bfin/bfin-common.c,
4964 common/config/c6x/c6x-common.c, common/config/i386/i386-common.c,
4965 common/config/ia64/ia64-common.c, common/config/nvptx/nvptx-common.c,
4966 compare-elim.c, config/aarch64/aarch64-builtins.c,
4967 config/aarch64/aarch64-c.c, config/aarch64/cortex-a57-fma-steering.c,
4968 config/arc/arc.c, config/arc/arc-c.c, config/arm/arm-builtins.c,
4969 config/arm/arm-c.c, config/avr/avr.c, config/avr/avr-c.c,
4970 config/avr/avr-log.c, config/bfin/bfin.c, config/c6x/c6x.c,
4971 config/cr16/cr16.c, config/cris/cris.c, config/darwin-c.c,
4972 config/darwin.c, config/epiphany/epiphany.c,
4973 config/epiphany/mode-switch-use.c,
4974 config/epiphany/resolve-sw-modes.c, config/fr30/fr30.c,
4975 config/frv/frv.c, config/ft32/ft32.c, config/h8300/h8300.c,
4976 config/i386/i386-c.c, config/i386/winnt.c, config/iq2000/iq2000.c,
4977 config/lm32/lm32.c, config/m32c/m32c.c, config/m32r/m32r.c,
4978 config/m68k/m68k.c, config/mcore/mcore.c,
4979 config/microblaze/microblaze.c, config/mmix/mmix.c,
4980 config/mn10300/mn10300.c, config/moxie/moxie.c,
4981 config/msp430/msp430.c, config/nds32/nds32-cost.c,
4982 config/nds32/nds32-intrinsic.c, config/nds32/nds32-md-auxiliary.c,
4983 config/nds32/nds32-memory-manipulation.c,
4984 config/nds32/nds32-predicates.c, config/nds32/nds32.c,
4985 config/nios2/nios2.c, config/nvptx/nvptx.c, config/pa/pa.c,
4986 config/pdp11/pdp11.c, config/rl78/rl78.c, config/rs6000/rs6000-c.c,
4987 config/rx/rx.c, config/s390/s390-c.c, config/s390/s390.c,
4988 config/sh/sh.c, config/sh/sh-c.c, config/sh/sh-mem.cc,
4989 config/sh/sh_treg_combine.cc, config/sol2.c, config/spu/spu.c,
4990 config/stormy16/stormy16.c, config/tilegx/tilegx.c,
4991 config/tilepro/tilepro.c, config/v850/v850.c, config/vax/vax.c,
4992 config/visium/visium.c, config/vms/vms-c.c, config/xtensa/xtensa.c,
4993 coverage.c, cppbuiltin.c, cprop.c, cse.c, cselib.c, dbxout.c, dce.c,
4994 df-core.c, df-problems.c, df-scan.c, dojump.c, dse.c, dwarf2asm.c,
4995 dwarf2cfi.c, dwarf2out.c, emit-rtl.c, except.c, explow.c, expmed.c,
4996 expr.c, final.c, fold-const.c, function.c, fwprop.c, gcse.c,
4997 ggc-page.c, haifa-sched.c, hsa-brig.c, hsa-gen.c, hw-doloop.c,
4998 ifcvt.c, init-regs.c, internal-fn.c, ira-build.c, ira-color.c,
4999 ira-conflicts.c, ira-costs.c, ira-emit.c, ira-lives.c, ira.c, jump.c,
5000 loop-doloop.c, loop-invariant.c, loop-iv.c, loop-unroll.c,
5001 lower-subreg.c, lra.c, lra-assigns.c, lra-coalesce.c,
5002 lra-constraints.c, lra-eliminations.c, lra-lives.c, lra-remat.c,
5003 lra-spills.c, mode-switching.c, modulo-sched.c, omp-low.c, passes.c,
5004 postreload-gcse.c, postreload.c, predict.c, print-rtl-function.c,
5005 recog.c, ree.c, reg-stack.c, regcprop.c, reginfo.c, regrename.c,
5006 reload.c, reload1.c, reorg.c, resource.c, rtl-chkp.c, rtl-tests.c,
5007 rtlanal.c, rtlhooks.c, sched-deps.c, sched-rgn.c, sdbout.c,
5008 sel-sched-ir.c, sel-sched.c, shrink-wrap.c, simplify-rtx.c,
5009 stack-ptr-mod.c, stmt.c, stor-layout.c, target-globals.c,
5010 targhooks.c, toplev.c, tree-nested.c, tree-outof-ssa.c,
5011 tree-profile.c, tree-ssa-coalesce.c, tree-ssa-ifcombine.c,
5012 tree-ssa-loop-ivopts.c, tree-ssa-loop.c, tree-ssa-reassoc.c,
5013 tree-ssa-sccvn.c, tree-vect-data-refs.c, ubsan.c, valtrack.c,
5014 var-tracking.c, varasm.c: Include memmodel.h.
5015 * genattrtab.c (write_header): Include memmodel.h in generated file.
5016 * genautomata.c (main): Likewise.
5017 * gengtype.c (open_base_files): Likewise.
5018 * genopinit.c (main): Likewise.
5019 * genconditions.c (write_header): Include memmodel.h earlier in
5021 * genemit.c (main): Likewise.
5022 * genoutput.c (output_prologue): Likewise.
5023 * genpeep.c (main): Likewise.
5024 * genpreds.c (write_insn_preds_c): Likewise.
5025 * genrecog.c (write_header): Likewise.
5026 * Makefile.in (PLUGIN_HEADERS): Include memmodel.h
5028 2016-10-13 David Malcolm <dmalcolm@redhat.com>
5030 * function-tests.c (selftest::test_expansion_to_rtl): Add "true"
5031 for new "compact" param of print_rtx_function. Check for "cinsn"
5033 * print-rtl-function.c (flag_compact): New decl.
5034 (print_rtx_function): Add param "compact" and use it to set
5035 flag_compact, adding a description of the effect to the leading
5036 comment, and updating the example output.
5037 * print-rtl.c (flag_compact): New variable.
5038 (print_rtx_operand_code_0): Omit the JUMP_LABEL reference in compact
5040 (print_rtx_operand_code_i): When printing source locations, wrap
5041 xloc.file in quotes. Don't print INSN_CODEs in compact mode.
5042 (print_rtx_operand_code_r): Don't print regnos for hard regs and
5043 virtuals in compact mode.
5044 (print_rtx_operand_code_u): Don't print insn UIDs in compact mode,
5045 apart from in LABEL_REFs.
5046 (print_rtx_operand): In case 'w', don't print in hex in compact mode.
5047 Don't print basic block ids in compact mode.
5048 (print_rtx): In compact mode, prefix the code of insns with "c",
5049 only print the INSN_UID of CODE_LABELs, and omit their LABEL_NUSES.
5050 * print-rtl.h (print_rtx_function): Add "compact" param.
5052 2016-10-13 Richard Earnshaw <rearnsha@arm.com>
5054 * arm.h (TARGET_VFP): Delete.
5055 (TARGET_VFPD32): Remove references to TARGET_VFP.
5056 (TARGET_VFP3, TARGET_VFP5): Likewise.
5057 (TARGET_VFP_SINGLE, TARGET_VFP_DOUBLE): Likewise.
5058 (TARGET_NEON_FP16): Likewise.
5059 (TARGET_FMA): Likewise.
5060 (TARGET_CRYPTO): Likewise.
5061 (TARGET_NEON): Likewise.
5062 (SECONDARY_OUTPUT_RELOAD_CLASS): Likewise.
5063 (FUNCTION_ARG_REGNO_P): Likewise.
5064 * arm.c (arm_option_check_internal): Likewise.
5065 (arm_option_override): Likewise.
5066 (use_return_insn): Likewise.
5067 (arm_function_value_regno_p): Likewise.
5068 (arm_apply_result_size): Likewise.
5069 (use_vfp_abi): Likewise.
5070 (arm_legitimate_address_outer_p): Likewise.
5071 (thumb2_legitimate_address_p): Likewise.
5072 (arm_legitimate_index_p): Likewise.
5073 (thumb2_legitimate_index_p): Likewise.
5074 (arm_legitimate_address): Likewise.
5075 (arm_get_vfp_saved_size): Likewise.
5076 (arm_emit_vfp_multi_reg_pop): Likewise.
5077 (arm_get_frame_offsets): Likewise.
5078 (arm_save_coproc_regs): Likewise.
5079 (arm_hard_regno_mode_ok): Likewise.
5080 (arm_expand_epilogue_apcs_frame): Likewise.
5081 (arm_expand_epilogue): Likewise.
5082 (arm_file_start): Likewise.
5083 (arm_conditional_register_usage): Likewise.
5084 (arm_validize_comparison): Use vfp_compare_operand directly.
5085 * arm-builtins.c (arm_init_builtins): Remove references to TARGET_VFP.
5086 (arm_expand_vfp_builtin): Use TARGET_HARD_FLOAT for detecting
5088 (arm_atomic_assign_expand_fenv): Likewise.
5089 * arm.md (divsf3): Likewise.
5090 (arm_negsi2): Likewise.
5092 (arm_movdi): Likewise.
5093 (arm_movt): Likewise.
5094 (cbranchsf4): Change predicate to vfp_compare_operand.
5095 (cbranchdf4): Change predicate to vfp_compare_operand.
5096 (cstorehf4): Change predicate to vfp_compare_operand.
5097 (cstoresf4): Change predicate to vfp_compare_operand.
5098 (cstoredf4): Change predicate to vfp_compare_operand.
5099 (vfp_pop_multiple_with_writeback): Remove references to TARGET_VFP.
5100 (movhi_insn_arch4, movhi_bytes): Likewise.
5101 * constraints.md (Dt): Likewise.
5103 * iterators.md (SDF): Likewise.
5104 * predicates.md (arm_float_compare_operand): Delete.
5105 (const_double_vcvt_power_of_two_reciprocal): Remove references to
5107 (const_double_vcvt_power_of_two): Likewise.
5108 * thumb2.md thumb2_movsi_insn): Likewise.
5109 * vfp.md (arm_movhi_vfp, thumb2_movhi_vfp): Likewise.
5110 (movhf_vfp): Likewise.
5111 (arm_movsi_vfp, thumb2_movsi_vfp): Likewise.
5112 (movdi_vfp, movdi_vfp_cortexa8): Likewise.
5113 (movsf_vfp, thumb2_movsf_vfp): Likewise.
5114 (movdf_vfp, thumb2_movdf_vfp): Likewise.
5115 (movsfcc_vfp, abssf2_vfp, negsf2_vfp, addsf3_vfp): Likewise.
5116 (subsf3_vfp, divsf3_vfp): Likewise.
5117 (mulsf3_vfp, mulsf3negsf_vfp, negmulsf3_vfp): Likewise.
5118 (mulsf3addsf_vfp, (mulsf3subsf_vfp, mulsf3negsfaddsf_vfp): Likewise.
5119 (mulsf3negsfsubsf_vfp): Likewise.
5120 (truncsisf2_vfp, fixuns_truncsfsi2, floatsisf2_vfp): Likewise.
5121 (floatunssisf2, sqrtsf2_vfp): Likewise.
5122 (movcc_vfp): Likewise.
5123 (cmpsf_split_vfp, cmpsf_trap_split_vfp): Likewise.
5124 (cmpsf_vfp, cmpsf_trap_vfp): Likewise.
5125 (push_multi_vfp): Likewise.
5126 (set_fpscr, get_fpscr): Likewise.
5127 * arm-c.c (arm_cpu_builtins): Unconditionally define __VFP_FP__.
5129 2016-10-13 Richard Earnshaw <rearnsha@arm.com>
5131 * arm.h (TARGET_VFP): Unconditionally define to 1.
5132 (arm_fpu_desc): Remove 'model' field.
5133 (TARGET_FPU_MODEL): Delete.
5134 * arm.c (all_fpus): Don't initialize the model field.
5135 (arm_can_inline_p): Don't check the FPU model.
5136 * arm-fpus.def: Remove redundant model field from all FPU
5139 2016-10-13 Richard Biener <rguenther@suse.de>
5142 * genmatch.c (struct capture): Add value_match member.
5143 (commutate): Preserve value_match.
5144 (lower_opt_convert): Likewise.
5145 (lower_cond): Likewise.
5146 (replace_id): Likewise.
5147 (struct dt_operand): Add value_match member.
5148 (decision_tree::cmp_node): Compare it.
5149 (decision_tree::insert_operand): Honor it when finding and
5150 when appending a DT_MATCH.
5151 (dt_operand::gen_match_op): Generate a type check after
5152 operand_equal_p if ! value_match for both GENERIC and GIMPLE.
5153 (parser::get_internal_capture_id): New helper.
5154 (parser::finish_match_operand): New function lowering @@<id>.
5155 (parser::parse_capture): Parse @@<id> as value-match.
5156 (parser::parse_expr): Use get_internal_capture_id.
5157 (parser::parse_simplify): Call finish_match_operand.
5158 (walk_captures): New helper.
5159 * match.pd (X - (X / Y) * Y -> X % Y): Use value-matching instead
5161 ((X /[ex] A) * A -> X): Likewise.
5162 ((X | Y) ^ X -> Y & ~ X): Handle constants properly by using
5163 convert[12] and value-matching.
5164 ((A | B) & (A | C) -> A | (B & C)): Likewise.
5165 ((X | Y) | Y -> X | Y): Likewise.
5166 ((X ^ Y) ^ Y -> X): Likewise.
5167 (A - (A & B) -> ~B & A): Likewise.
5168 ((T)(P + A) - (T)P -> (T) A): Likewise.
5169 ((T)P - (T)(P + A) -> -(T) A): Likewise.
5170 ((T)(P + A) - (T)(P + B) -> (T)A - (T)B): Likewise.
5171 * doc/match-and-simplify.texi: Amend capture section.
5173 2016-10-13 Claudiu Zissulescu <claziss@synopsys.com>
5175 * config/arc/arc.md (umul_600): Remove predicated variant.
5176 (umul64_600): Likewise.
5178 2016-10-13 Claudiu Zissulescu <claziss@synopsys.com>
5180 * config/arc/arc.h (INSN_LENGTH_ALIGNMENT): Change.
5182 2016-10-13 Bin Cheng <bin.cheng@arm.com>
5184 * tree-vect-loop.c (loop_niters_no_overflow): New func.
5185 (vect_transform_loop): Call loop_niters_no_overflow. Pass the
5186 no-overflow information to vect_do_peeling_for_loop_bound and
5187 vect_gen_vector_loop_niters.
5189 2016-10-13 Bin Cheng <bin.cheng@arm.com>
5191 * tree-predcom.c (tree_predictive_commoning_loop): Skip loop that only
5194 2016-10-13 Bin Cheng <bin.cheng@arm.com>
5196 * tree-vect-loop-manip.c (adjust_vec_debug_stmts): Don't release
5197 adjust_vec automatically.
5198 (slpeel_add_loop_guard): Remove param cond_expr_stmt_list. Rename
5199 param exit_bb to guard_to.
5200 (slpeel_checking_verify_cfg_after_peeling):
5201 (set_prologue_iterations):
5202 (create_lcssa_for_virtual_phi): New func which is factored out from
5203 slpeel_tree_peel_loop_to_edge.
5204 (slpeel_tree_peel_loop_to_edge):
5205 (iv_phi_p): New func.
5206 (vect_can_advance_ivs_p): Call iv_phi_p.
5207 (vect_update_ivs_after_vectorizer): Call iv_phi_p. Directly insert
5208 new gimple stmts in basic block.
5209 (vect_gen_niters_for_prolog_loop): Rename to...
5210 (vect_gen_prolog_loop_niters): ...Rename from. Change parameters and
5211 adjust implementation.
5212 (vect_update_inits_of_drs): Fix code style issue. Convert niters to
5213 sizetype if necessary.
5214 (vect_build_loop_niters): Move to here from tree-vect-loop.c. Change
5215 it to external function.
5216 (vect_gen_scalar_loop_niters, vect_gen_vector_loop_niters): New.
5217 (vect_gen_vector_loop_niters_mult_vf): New.
5218 (slpeel_update_phi_nodes_for_loops): New.
5219 (slpeel_update_phi_nodes_for_guard1): Reimplement.
5220 (find_guard_arg, slpeel_update_phi_nodes_for_guard2): Reimplement.
5221 (slpeel_update_phi_nodes_for_lcssa, vect_do_peeling): New.
5222 * tree-vect-loop.c (vect_build_loop_niters): Move to file
5223 tree-vect-loop-manip.c
5224 (vect_generate_tmps_on_preheader): Delete.
5225 (vect_transform_loop): Rename vectorization_factor to vf. Call
5226 vect_do_peeling instead of vect_do_peeling-* functions.
5227 * tree-vectorizer.h (vect_do_peeling): New decl.
5228 (vect_build_loop_niters, vect_gen_vector_loop_niters): New decls.
5229 (vect_do_peeling_for_loop_bound): Delete.
5230 (vect_do_peeling_for_alignment): Delete.
5232 2016-10-13 Bin Cheng <bin.cheng@arm.com>
5234 * tree-vect-loop-manip.c (slpeel_tree_duplicate_loop_to_edge_cfg): Put
5235 duplicated loop after its preheader and after the original loop.
5237 2016-10-13 Bin Cheng <bin.cheng@arm.com>
5239 * tree-vect-loop.c (vect_analyze_loop_2): Check and skip loop if it
5240 has no enough iterations for LOOP_VINFO_PEELING_FOR_GAPS.
5242 2016-10-13 Bin Cheng <bin.cheng@arm.com>
5244 * tree-vect-loop.c (vectorizable_live_operation): Support handling
5245 for live variable outside loop but not in lcssa form.
5247 2016-10-13 Bin Cheng <bin.cheng@arm.com>
5249 * cfg.c (reset_original_copy_tables): New func.
5250 * cfg.h (reset_original_copy_tables): New decl.
5252 2016-10-13 Jakub Jelinek <jakub@redhat.com>
5255 * tree.h (FALLTHROUGH_LABEL_P): Use private_flag instead of
5257 * varasm.c (default_binds_local_p_3): Formatting fix.
5259 2016-10-13 Bin Cheng <bin.cheng@arm.com>
5261 * tree-vect-loop-manip.c (slpeel_can_duplicate_loop_p): Fix code
5263 (vect_do_peeling_for_loop_bound, vect_do_peeling_for_alignment):
5264 Remove useless code.
5266 2016-10-13 Martin Liska <mliska@suse.cz>
5268 PR tree-optimization/77943
5269 * tree-ssa-tail-merge.c (merge_stmts_p): Do not merge BBs with
5270 a different EH landing pads.
5272 2016-10-13 Jakub Jelinek <jakub@redhat.com>
5275 * hooks.h (hook_tree_void_null): Declare.
5276 * hooks.c (hook_tree_void_null): New function.
5277 * langhooks.c (lhd_return_null_tree_v): Remove.
5278 * langhooks-def.h (lhd_return_null_tree_v): Remove.
5279 * cfgexpand.c (stack_protect_prologue): If guard_decl is NULL,
5280 set y to const0_rtx.
5281 * function.c (stack_protect_epilogue): Likewise.
5282 * config/tilepro/tilepro.c (TARGET_STACK_PROTECT_GUARD): Redefine
5283 if TARGET_THREAD_SSP_OFFSET is defined.
5284 * config/s390/s390.c (TARGET_STACK_PROTECT_GUARD): Likewise.
5285 * config/sparc/sparc.c (TARGET_STACK_PROTECT_GUARD): Likewise.
5286 * config/tilegx/tilegx.c (TARGET_STACK_PROTECT_GUARD): Likewise.
5287 * config/rs6000/rs6000.c (TARGET_STACK_PROTECT_GUARD): Likewise.
5288 * config/i386/i386.c (TARGET_STACK_PROTECT_GUARD): Likewise.
5289 (ix86_stack_protect_guard): New function.
5291 2016-10-13 Richard Biener <rguenther@suse.de>
5293 * dwarf2out.c (tree_add_const_value_attribute): Do not try
5294 rtl_for_decl_init during early phase.
5295 (gen_variable_die): Do not create locations during early phase.
5296 (gen_label_die): Likewise.
5297 (decls_for_scope): Do not waste time handling BLOCK_NONLOCALIZED_VARs
5300 2016-10-12 Richard Biener <rguenther@suse.de>
5302 * tree-vrp.c (evrp_dom_walker::try_find_new_range): Renamed from
5303 try_add_new_range and made to eturn new range.
5304 (evrp_dom_walker::before_dom_children): Push op1 value range before
5305 pushing op0 value range.
5307 2016-10-12 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
5309 PR tree-optimization/77937
5310 * gimple-ssa-strength-reduction.c (analyze_increments): Use
5311 POINTER_TYPE_P on the candidate type to determine whether
5312 candidates in this chain require pointer arithmetic.
5314 2016-10-12 Eric Botcazou <ebotcazou@adacore.com>
5316 * config/visium/visium.c (visium_gimplify_va_arg): Emit a big-endian
5317 correction if the type is smaller than a word.
5318 (visium_select_cc_mode): Add ... fall through ... comment.
5320 2016-10-12 Segher Boessenkool <segher@kernel.crashing.org>
5322 * config/rs6000/rs6000.c (machine_function): Add new fields
5323 gpr_is_wrapped_separately and lr_is_wrapped_separately.
5324 (TARGET_SHRINK_WRAP_GET_SEPARATE_COMPONENTS,
5325 TARGET_SHRINK_WRAP_COMPONENTS_FOR_BB,
5326 TARGET_SHRINK_WRAP_DISQUALIFY_COMPONENTS,
5327 TARGET_SHRINK_WRAP_EMIT_PROLOGUE_COMPONENTS,
5328 TARGET_SHRINK_WRAP_EMIT_EPILOGUE_COMPONENTS,
5329 TARGET_SHRINK_WRAP_SET_HANDLED_COMPONENTS): Define.
5330 (rs6000_get_separate_components): New function.
5331 (rs6000_components_for_bb): New function.
5332 (rs6000_disqualify_components): New function.
5333 (rs6000_emit_prologue_components): New function.
5334 (rs6000_emit_epilogue_components): New function.
5335 (rs6000_set_handled_components): New function.
5336 (rs6000_emit_prologue): Don't emit LR save if lr_is_wrapped_separately.
5337 Don't emit GPR saves if gpr_is_wrapped_separately for that register.
5338 (restore_saved_lr): Don't restore LR if lr_is_wrapped_separately.
5339 (rs6000_emit_epilogue): Don't emit GPR restores if
5340 gpr_is_wrapped_separately for that register. Don't make a
5341 REG_CFA_RESTORE note for registers we did not restore, either.
5343 2016-10-12 Segher Boessenkool <segher@kernel.crashing.org>
5345 * function.c (thread_prologue_and_epilogue_insns): Call
5346 try_shrink_wrapping_separate. Compute the prologue_seq afterwards,
5347 if it has possibly changed. Compute the split_prologue_seq and
5348 epilogue_seq later, too.
5349 * shrink-wrap.c: #include cfgbuild.h and insn-config.h.
5350 (dump_components): New function.
5351 (struct sw): New struct.
5353 (init_separate_shrink_wrap): New function.
5354 (fini_separate_shrink_wrap): New function.
5355 (place_prologue_for_one_component): New function.
5356 (spread_components): New function.
5357 (disqualify_problematic_components): New function.
5358 (emit_common_heads_for_components): New function.
5359 (emit_common_tails_for_components): New function.
5360 (insert_prologue_epilogue_for_components): New function.
5361 (try_shrink_wrapping_separate): New function.
5362 * shrink-wrap.h: Declare try_shrink_wrapping_separate.
5364 2016-10-12 Segher Boessenkool <segher@kernel.crashing.org>
5366 * regrename.c (build_def_use): Invalidate chains that have a
5367 REG_CFA_RESTORE on some instruction.
5369 2016-10-12 Segher Boessenkool <segher@kernel.crashing.org>
5371 * dce.c (delete_unmarked_insns): Don't delete instructions with
5372 a REG_CFA_RESTORE note.
5374 2016-10-12 Segher Boessenkool <segher@kernel.crashing.org>
5376 * common.opt (-fshrink-wrap-separate): New flag.
5377 * doc/invoke.texi: Document it.
5378 * doc/tm.texi.in (Shrink-wrapping separate components): New subsection.
5379 * doc/tm.texi: Regenerate.
5380 * emit-rtl.h (struct rtl_data): New field shrink_wrapped_separate.
5381 * target.def (shrink_wrap): New hook vector.
5382 (get_separate_components, components_for_bb, disqualify_components,
5383 emit_prologue_components, emit_epilogue_components,
5384 set_handled_components): New hooks.
5386 2016-10-12 Segher Boessenkool <segher@kernel.crashing.org>
5388 * config/rs6000/rs6000.c (rs6000_return_in_memory): Warn for
5389 vector return by reference only if -Wpsabi.
5390 (rs6000_pass_by_reference): Similarly, for argument passing.
5392 2016-10-12 David Malcolm <dmalcolm@redhat.com>
5394 * function-tests.c: Include "print-rtl.h".
5395 (selftest::test_expansion_to_rtl): Call print_rtx_function on the
5396 function, and verify what is dumped.
5397 * print-rtl-function.c (print_edge): New function.
5398 (begin_any_block): New function.
5399 (end_any_block): New function.
5400 (can_have_basic_block_p): New function.
5401 (print_rtx_function): Track the basic blocks of insns in the
5402 chain, wrapping those that are within blocks within "(block)"
5403 directives. Remove the "(cfg)" directive.
5405 2016-10-12 David Malcolm <dmalcolm@redhat.com>
5407 * selftest.c (selftest::read_file): New function.
5408 (selftest::test_read_file): New function.
5409 (selftest::selftest_c_tests): Call test_read_file.
5410 * selftest.h (selftest::read_file): New decl.
5412 2016-10-12 Richard Biener <rguenther@suse.de>
5415 * cgraphunit.c (analyze_functions): Preserve cgraph nodes
5418 2016-10-12 Thomas Schwinge <thomas@codesourcery.com>
5420 * lto-streamer.c: Fix LTO_STREAMER_DEBUG build.
5422 * dwarf2out.c (dwarf2_lineno_debug_hooks): Use
5423 dwarf2out_assembly_start.
5425 * Makefile.in (SELFTEST_FLAGS): Add -nostdinc.
5427 * Makefile.in (SELFTEST_FLAGS): New variable.
5428 (s-selftest, selftest-gdb, selftest-valgrind): Use it.
5430 * vmsdbgout.c (vmsdbg_debug_hooks): Add filename parameter to
5433 2016-10-12 Georg-Johann Lay <avr@gjlay.de>
5435 * rtl.h (struct rtx_def): Comment how RTX_FLAGS will be
5436 dumped in RTL dumps.
5438 2016-10-12 Martin Liska <mliska@suse.cz>
5440 * gimple-fold.c (create_tmp_reg_or_ssa_name): New function.
5441 (gimple_fold_builtin_memory_op): Use the function.
5442 (gimple_fold_builtin_strchr): Likewise.
5443 (gimple_fold_builtin_strcat): Likewise.
5444 (gimple_build): Likewise.
5446 2016-10-12 Nathan Sidwell <nathan@acm.org>
5448 * diagnostic.c (diagnostc_report_diagnostic): Fix formatting.
5450 2016-10-12 Pierre-Marie de Rodat <derodat@adacore.com>
5452 * dwarf2out.c (int_loc_descriptor): Generate opcodes for another
5453 equivalent 32-bit constant (modulo 2**32) when that yields
5454 smaller instructions.
5455 (size_of_int_loc_descriptor): Update accordingly.
5457 2016-10-12 Pierre-Marie de Rodat <derodat@adacore.com>
5459 * dwarf2out.c (dwarf2out_early_global_decl): For nested
5460 functions, call dwarf2out_decl on the parent function first.
5462 2016-10-12 Richard Biener <rguenther@suse.de>
5464 * match.pd ((X /[ex] A) * A -> X): Remove unnecessary constraint
5467 2016-10-12 Richard Biener <rguenther@suse.de>
5469 * tree-ssa-propagate.c
5470 (substitute_and_fold_dom_walker::before_dom_children): Do not
5471 ignore ASSERT_EXPRs but only preserve them.
5472 * tree-vrp.c (remove_range_assertions): Deal with ASSERT_EXPRs
5473 that have been propagated into.
5474 (vrp_finalize): Enable DCE for substitute_and_fold.
5476 2016-10-12 Richard Biener <rguenther@suse.de>
5478 PR tree-optimization/77920
5479 * tree-vrp.c (simplify_div_or_mod_using_ranges): Simplify.
5480 (simplify_min_or_max_using_ranges): Pass in gsi and use it.
5481 (simplify_abs_using_ranges): Likewise.
5482 (simplify_conversion_using_ranges): Likewise.
5483 (simplify_stmt_using_ranges): Adjust.
5485 2016-10-12 Jakub Jelinek <jakub@redhat.com>
5487 PR tree-optimization/77929
5488 * tree-ssa-reassoc.c (optimize_range_tests_var_bound): Handle
5489 (*ops)[ranges[i].idx]->op != ranges[i].exp case.
5491 2016-10-12 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
5494 * config/rs6000/vmx.md (vsx_concat_<mode>): The mtvsrdd instruction
5495 needs a base register for arg 1.
5497 2016-10-12 Jakub Jelinek <jakub@redhat.com>
5499 * common.opt (Wimplicit-fallthrough) Turn into alias to
5500 -Wimplicit-fallthrough=3. Remove EnabledBy.
5501 (Wimplicit-fallthrough=): New option.
5502 * gimplify.c (warn_implicit_fallthrough_r): Use
5503 OPT_Wimplicit_fallthrough_ instead of OPT_Wimplicit_fallthrough.
5504 * doc/invoke.texi (-Wimplicit-fallthrough): Document as alias
5505 to -Wimplicit-fallthrough=3.
5506 (-Wimplicit-fallthrough=): Document.
5508 2016-10-11 Eric Botcazou <ebotcazou@adacore.com>
5510 * config/sparc/sparc.c (emit_scc_insn): Remove direct support for EQ
5511 and GEU in DImode if TARGET_SUBXC.
5512 * config/sparc/sparc.md (seqdi<W:mode>_zero): Remove TARGET_SUBXC.
5513 (seqdi<W:mode>_zero_subxc): Delete.
5514 (neg_seqdi<W:mode>_zero): Remove TARGET_VIS3.
5515 (neg_seqdi<W:mode>_zero_vis3): Delete.
5516 (plus_seqdi<W:mode>_zero): Likewise.
5517 (minus_seqdi<W:mode>_zero): Likewise.
5518 (plus_plus_sltu<W:mode>): Accept only register.
5519 (addx<W:mode>): Likewise.
5520 (plus_sltu<W:mode>_vis3): Likewise.
5521 (plus_plus_sltu<W:mode>_vis3): Likewise.
5522 (neg_sgeu<W:mode>_vis3): Delete.
5523 (minus_sgeu<W:mode>_vis3): Likewise.
5524 (addxc<W:mode>): Accept only registers.
5525 (neg_sltu<W:mode>_subxc): Write %%g0 instead of 0.
5526 (minus_neg_sltu<W:mode>_subxc): Accept only register.
5527 (neg_plus_sltu<W:mode>_subxc): Likewise.
5528 (minus_sltu<W:mode>_subxc): Write %%g0 instead of 0.
5529 (minus_minus_sltu<W:mode>_subxc): Accept only register.
5530 (sgeu<W:mode>_insn_subxc): Delete.
5531 (plus_sgeu<W:mode>_subxc): Likewise.
5532 (subxc<W:mode>): Accept only register.
5533 (scc splitter): Split always GEU again.
5535 2016-10-11 Jeff Law <law@redhat.com>
5537 PR tree-optimization/77424
5538 * tree-ssa-threadupdate.c (thread_through_all_blocks): Remove
5539 dead conditionals. Assert that all e->aux fields are NULL.
5541 2016-10-11 David Malcolm <dmalcolm@redhat.com>
5543 * print-rtl.c (print_rtx): Rename "i" to "idx". Split out the
5544 operand-printing "switch" statement into...
5545 (print_rtx_operand_code_0): ...this new function, ...
5546 (print_rtx_operand_code_e): ...this new function, ...
5547 (print_rtx_operand_codes_E_and_V): ...this new function, ...
5548 (print_rtx_operand_code_i): ...this new function, ...
5549 (print_rtx_operand_code_r): ...this new function, ...
5550 (print_rtx_operand_code_u): ...this new function, ...
5551 (print_rtx_operand): ...and this new function.
5553 2016-10-11 Uros Bizjak <ubizjak@gmail.com>
5555 * config/alpha/alpha-passes.def: New file.
5556 * config/alpha/t-alpha: New file.
5557 * config/alpha/alpha-protos.h (gcc::context, rtl_opt_pass): Declare.
5558 (make_pass_handle_trap_shadows): New prototype.
5559 (make_pass_align_insns): Ditto.
5560 * config/alpha/alpha.c (alpha_option_override): Don't register
5562 * config.gcc (alpha*-*-*) Add alpha/t-alpha to tmake_file.
5564 2016-10-11 Michael Meissner <meissner@linux.vnet.ibm.com>
5567 * config/rs6000/rs6000.c (rs6000_init_builtins): Only create the
5568 distinct __ibm128 IBM extended double type if long doubles are
5569 128-bits and the default format for long double is IEEE 128-bit.
5571 2016-10-11 Richard Biener <rguenther@suse.de>
5573 * dwarf2out.c (DEBUG_STR_OFFSETS_SECTION): Remove conditional.
5574 (init_sections_and_labels): Use DEBUG_DWO_STR_OFFSETS_SECTION.
5575 (verify_die): New function.
5576 (dwarf2out_finish): Call it.
5577 (output_line_info): Handle case of -gsplit-dwarf without
5578 DWARF2_ASM_LINE_DEBUG_INFO.
5580 2016-10-11 Richard Biener <rguenther@suse.de>
5583 * gimple-low.c (lower_gimple_bind): Handle arbitrary common
5584 sub-chains of BLOCK_VARS and gimple_bind_vars.
5586 2016-10-11 Venkataramanan Kumar <Venkataramanan.kumar@amd.com>
5588 * config/i386/znver1.md : Fix imov/imovx load type reservations.
5590 2016-10-11 Eric Botcazou <ebotcazou@adacore.com>
5592 * config/sparc/sparc.opt (msubxc): New option.
5593 * doc/invoke.texi (SPARC options): Document it and tidy up.
5594 * doc/tm.texi.in (Condition Codes): Adjust SPARC example.
5595 * doc/tm.texi: Regenerate.
5596 * config/sparc/sparc-modes.def (CC_NOOV): Rename into...
5598 (CCX_NOOV): Rename into...
5602 * config/sparc/predicates.m (fcc_register_operand): Simplify.
5603 (fcc0_register_operand): Likewise.
5604 (icc_register_operand): New.
5605 (icc_or_fcc_register_operand): Simplify.
5606 (nz_comparison_operator): New.
5607 (c_comparison_operator): Likewise.
5608 (noov_compare_operator): Rename into...
5609 (icc_comparison_operator): ...this. Use above predicates.
5610 (noov_compare64_operator): Rename into...
5611 (v9_comparison_operator): ...this and tidy up.
5612 (fcc_comparison_operator): New.
5613 (icc_or_fcc_comparison_operator): Likewise.
5614 (v9_register_compare_operator): Rename info...
5615 (v9_register_comparison_operator): ...this.
5616 * config/sparc/sparc.c (TARGET_FIXED_CONDITION_CODE_REGS): Define.
5617 (sparc_option_override): Remove redundant VIS masks and add MASK_SUBXC
5619 (sparc_fixed_condition_code_regs): New function.
5620 (select_cc_mode): Remove ATTRIBUTE_UNUSED. Adjust for CCNZ/CCXNZ
5621 renaming and add support for CCC/CCXC.
5622 (output_cbranch): Likewise.
5623 (sparc_print_operand): Likewise.
5624 (gen_v9_scc): Remove obsolete assertion.
5625 (emit_scc_insn): Emit RTL directly for EQ and NE. Add direct support
5626 for EQ in DImode if TARGET_SUBXC. Remove test on TARGET_VIS3 for GEU.
5627 (output_cbcond): Remove bogus handling of CC modes.
5628 (sparc_register_move_cost): Return 100 for NO_REGS.
5629 * config/sparc/sparc.md (W): New mode iterator.
5630 (length): Adjust for noov_compare64_operator renaming.
5631 (cmpsi_sne): New instruction.
5632 (cmpdi_sne): Likewise.
5633 (seqdi_special): Delete.
5634 (seqdi_special): Likewise.
5635 (snesi<P:mode>_special): Likewise.
5636 (snedi_special): Likewise.
5637 (snedi_special_vis3): Likewise.
5638 (snesi patterns): Use W iterator.
5639 (snedi patterns): Likewise. Add TARGET_SUBXC patterns.
5640 (sltu patterns): Likewise.
5641 (sgeu patterns): Likewise.
5642 (scc splitter): Do not split GEU in DImode if TARGET_SUBXC.
5643 (normal_branch): Use icc_comparison_operator predicate.
5644 (inverted_branch): Likewise.
5645 (cbcond_sp32): Use comparison_operator predicate.
5646 (cbcond_sp64): Likewise.
5647 (normal_int_branch_sp64): Adjust for renaming
5648 (inverted_int_branch_sp64): Likewise.
5649 (mov<I:mode>_cc_reg_sp64): Likewise.
5650 (movsf_cc_reg_sp6): Likewise.
5651 (movdf_cc_reg_sp64): Likewise.
5652 (movtf_cc_reg_hq_sp64): Likewise.
5653 (movtf_cc_reg_sp64): Likewise.
5654 (mov<I:mode>_cc_v9): Use icc_or_fcc_comparison_operator predicate.
5655 (movsf_cc_v9): Likewise.
5656 (movdf_cc_v9): Likewise.
5657 (movtf_cc_hq_v9): Likewise.
5658 (movtf_cc_v9): Likewise.
5659 (adddi3): Call gen_adddi3_sp32.
5660 (adddi3_insn_sp32): Rename to...
5661 (adddi3_sp32): ...this. Accept only register_operand as operand #1
5662 and use CCCmode for the carry.
5663 (addx_extend_sp32): Use CCCmode for the carry.
5664 (addx_extend_sp64): Delete.
5665 (adddi3_extend_sp32): Use CCCmode for the carry.
5666 (cmp_plus patterns): Use CCNZ/CCXNZ mode and add C variants.
5667 (subdi3): Call gen_subdi3_sp32.
5668 (subdi3_insn_sp32): Rename to...
5669 (subdi3_sp32): ...this and use CCmode for the carry.
5670 (subx_extend_sp32): Use CCCmode for the carry.
5671 (subx_extend_sp64): Delete.
5672 (subdi3_extend_sp32): Use CCmode for the carry.
5673 (cmp_minus patterns): Use CCNZ/CCXNZ mode and add C variants.
5674 (negdi3): Call gen_negdi3_sp32.
5675 (negdi3_sp32): Use CCCmode for the carry.
5676 (cmp_neg patterns): Use CCNZ/CCXNZ mode and add C variants.
5677 (cmp_nz_ashift_1): Use CCNZ mode.
5678 (cmp_nz_set_ashift_1): Likewise.
5679 (ctrapsi4): Use comparison_operator predicate.
5680 (ctrapdi4): Likewise.
5681 (trapsi_insn): Use icc_comparison_operator predicate.
5682 (trapdi_insn): Likewise.
5683 (edge8 patterns): Use CCNZmode.
5684 (edge16 patterns): Likewise.
5685 (edge32 patterns): Likewise.
5687 2016-10-11 Eric Botcazou <ebotcazou@adacore.com>
5689 * config/visium/visium-modes.def (CC_NOOV): Rename into...
5691 (CC_BTST): Rename into...
5693 * config/visium/predicates.md (real_add_operand): New.
5694 (visium_btst_operator): Rename into...
5695 (visium_equality_comparison_operator): ...this.
5696 (visium_noov_operator): Rename into...
5697 (visium_nz_comparison_operator): ...this.
5698 (visium_c_comparison_operator): New.
5699 (visium_branch_operator): Adjust and deal with all CC modes.
5700 * config/visium/visium.c (visium_adjust_cost): Adjust.
5701 (visium_split_double_add): Use the *_set_carry patterns.
5702 (visium_select_cc_mode): Add support for CCC mode and adjust.
5703 (output_cbranch): Adjust and use the carry-based operators for
5704 floating-point comparisons.
5705 * config/visium/visium.md (flags_subst_arith): Adjust.
5706 (addsi3_insn_set_carry): New instruction.
5707 (subsi3_insn_set_carry): Likewise.
5708 (negsi2_insn_set_carry): Likewise.
5710 (cmp<mode>_sne): Likewise.
5711 (cbranch<mode>4): Use ordered_comparison_operator.
5712 (cbranch<mode>4_insn): Likewise.
5713 (cbranchsi4_btst_insn): Adjust.
5715 2016-10-11 Tom de Vries <tom@codesourcery.com>
5718 * builtins.c (std_canonical_va_list_type): Remove RECORD_TYPE
5721 2016-10-11 Eric Botcazou <ebotcazou@adacore.com>
5723 * tree.h (build_complex_type): Add second parameter with default.
5724 * tree.c (build_complex_type): Add NAMED second parameter and adjust
5725 recursive call. Create a TYPE_DECL only if NAMED is true.
5726 (build_common_tree_nodes): Pass true in calls to build_complex_type.
5728 2016-10-11 Georg-Johann Lay <avr@gjlay.de>
5730 New avr-passes.def to register AVR specific passes.
5732 * config/avr/avr-passes.def: New file.
5733 * config/avr/t-avr (PASSES_EXTRA): Add avr-passes.def.
5734 * config/avr/avr-protos.h (gcc::context, rtl_opt_pass): Declare.
5735 (make_avr_pass_recompute_note): New proto.
5736 * config/avr/avr.c (make_avr_pass_recompute_notes): New function.
5737 (avr_pass_recompute_notes): Use anonymous namespace.
5738 (avr_register_passes): Remove function...
5739 (avr_option_override): ...and its call.
5741 2016-10-11 Robert Suchanek <robert.suchanek@imgtec.com>
5743 * config/mips/mips-cpus.def: Replace PTF_AVOID_BRANCHLIKELY with
5744 PTF_AVOID_BRANCHLIKELY_ALWAYS for generic architecture and with
5745 PTF_AVOID_BRANCHLIKELY_SPEED for others.
5746 (mips2, mips3, mips4): Add PTF_AVOID_BRANCHLIKELY_SIZE to tune
5748 * config/mips/mips.c (mips_option_override): Enable the branch
5749 likely depending on the tune flags and optimization level.
5750 * config/mips/mips.h (PTF_AVOID_BRANCHLIKELY): Remove.
5751 (PTF_AVOID_BRANCHLIKELY_SPEED): Define.
5752 (PTF_AVOID_BRANCHLIKELY_SIZE): Likewise.
5753 (PTF_AVOID_BRANCHLIKELY_ALWAYS): Likewise.
5755 2016-10-11 Richard Biener <rguenther@suse.de>
5757 * lto-streamer-out.c (collect_block_tree_leafs): New helper.
5758 (output_function): Properly stream the whole block tree.
5759 * lto-streamer-in.c (input_function): Likewise.
5761 2016-10-11 Marek Polacek <polacek@redhat.com>
5763 * Makefile.in (C_COMMON_OBJS): Add c-family/c-warn.o.
5765 2016-10-11 Kugan Vivekanandarajah <kuganv@linaro.org>
5767 * tree-vrp.c (evrp_dom_walker::try_add_new_range): New.
5768 (evrp_dom_walker::before_dom_children): Infer and push new value
5769 ranges for x in y < x.
5771 2016-10-10 Joseph Myers <joseph@codesourcery.com>
5774 * config/ia64/ia64.c (ia64_libgcc_floating_mode_supported_p)
5775 (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P): Remove.
5776 * config/ia64/elf.h (IA64_NO_LIBGCC_TFMODE): Likewise.
5777 * config/ia64/freebsd.h (IA64_NO_LIBGCC_TFMODE): Likewise.
5778 * config/ia64/vms.h (IA64_NO_LIBGCC_XFMODE)
5779 (IA64_NO_LIBGCC_TFMODE): Likewise.
5781 2016-10-11 Kugan Vivekanandarajah <kuganv@linaro.org>
5783 * tree-vrp.c (vrp_intersect_ranges_1): Allocate bitmap before
5786 2016-10-10 Andreas Tobler <andreast@gcc.gnu.org>
5788 * config.gcc: Add aarch64-*-freebsd* support.
5789 * config.host: Likewise.
5790 * config/aarch64/aarch64-freebsd.h: New file.
5791 * config/aarch64/t-aarch64-freebsd: Ditto.
5793 2016-10-10 Jeff Law <law@redhat.com>
5795 PR tree-optimization/71947
5796 * tree-ssa-dom.c (cprop_into_stmt): Avoid replacing A with B, then
5797 B with A within a single statement.
5799 2016-10-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
5801 PR tree-optimization/77824
5802 * gimple-ssa-strength-reduction.c (stmt_cost): Explicitly return
5803 zero cost for copies.
5804 (find_candidates_dom_walker::before_dom_children): Replace
5805 MODIFY_EXPR with SSA_NAME.
5806 (replace_mult_candidate): Likewise.
5807 (replace_profitable_candidates): Likewise.
5809 2016-10-10 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
5811 * config/s390/s390.h: Wrap more macros args in brackets and fix
5813 2016-10-10 Georg-Johann Lay <avr@gjlay.de>
5815 * config/avr/gen-avr-mmcu-texi.c (string.h): Include.
5817 2016-10-10 Andreas Schwab <schwab@suse.de>
5820 * config/ia64/ia64.md ("doloop_end"): Reject if mode of loop
5821 pseudo is not DImode.
5823 2016-10-10 Claudiu Zissulescu <claziss@synopsys.com>
5825 * common/config/arc/arc-common.c (arc_option_optimization_table):
5826 Remove compact casesi option.
5827 * config/arc/arc.c (arc_override_options): Use compact casesi
5828 option only for pre-ARCv2 cores.
5829 * doc/invoke.texi (mcompact-casesi): Update text.
5831 2016-10-09 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
5833 * config/rs6000/rs6000.h (TARGET_EFFICIENT_OVERLAPPING_UNALIGNED):
5834 Add macro to say we can efficiently handle overlapping unaligned
5836 * config/rs6000/rs6000.c (expand_block_compare): Avoid generating
5837 poor code for processors older than p8.
5839 2016-10-09 Eric Botcazou <ebotcazou@adacore.com>
5841 * gen-pass-instances.awk: Remove GNUism.
5843 2016-10-09 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
5845 * ipa-prop.c (ipcp_transform_function): Set fields m_vr and bits to
5846 NULL of (*ipcp_transformations)][node->uid].
5848 2016-10-09 John David Anglin <danglin@gcc.gnu.org>
5850 * config/pa/pa.h (BIGGEST_ALIGNMENT): Adjust comment.
5851 (MALLOC_ABI_ALIGNMENT): Define.
5853 2016-10-09 Jakub Jelinek <jakub@redhat.com>
5855 * tree-ssa.c (target_for_debug_bind, verify_phi_args,
5856 ssa_undefined_value_p, maybe_optimize_var): Use VAR_P and/or
5857 VAR_OR_FUNCTION_DECL_P macros.
5858 * tree-chkp.c (chkp_register_var_initializer, chkp_make_static_bounds,
5859 chkp_get_bounds_for_decl_addr, chkp_parse_array_and_component_ref,
5860 chkp_find_bounds_1): Likewise.
5861 * ipa-polymorphic-call.c (decl_maybe_in_construction_p): Likewise.
5862 * hsa-gen.c (get_symbol_for_decl): Likewise.
5863 * cgraphunit.c (check_global_declaration, analyze_functions,
5864 handle_alias_pairs, thunk_adjust, cgraph_node::expand_thunk):
5866 * gimple-fold.c (can_refer_decl_in_current_unit_p,
5867 canonicalize_constructor_val, gimple_get_virt_method_for_vtable):
5869 * tree.c (set_decl_section_name, copy_node_stat,
5870 need_assembler_name_p, free_lang_data_in_decl, find_decls_types_r,
5871 merge_dllimport_decl_attributes, handle_dll_attribute,
5872 decl_init_priority_insert, auto_var_in_fn_p, array_at_struct_end_p,
5873 verify_type): Likewise.
5874 * gimple-ssa-isolate-paths.c (find_implicit_erroneous_behavior,
5875 find_explicit_erroneous_behavior): Likewise.
5876 * sdbout.c (sdbout_toplevel_data, sdbout_late_global_decl): Likewise.
5877 * ipa.c (process_references): Likewise.
5878 * tree-chkp-opt.c (chkp_get_check_result): Likewise.
5879 * varasm.c (get_block_for_decl, use_blocks_for_decl_p, make_decl_rtl,
5880 notice_global_symbol, assemble_variable, mark_decl_referenced,
5881 build_constant_desc, output_constant_def_contents, do_assemble_alias,
5882 make_decl_one_only, default_section_type_flags,
5883 categorize_decl_for_section, default_encode_section_info): Likewise.
5884 * trans-mem.c (requires_barrier): Likewise.
5885 * gimple-expr.c (mark_addressable): Likewise.
5886 * cfgexpand.c (add_scope_conflicts_1, expand_one_var,
5887 expand_used_vars_for_block, clear_tree_used, stack_protect_decl_p,
5888 expand_debug_expr): Likewise.
5889 * tree-dump.c (dequeue_and_dump): Likewise.
5890 * ubsan.c (instrument_bool_enum_load): Likewise.
5891 * tree-pretty-print.c (print_declaration): Likewise.
5892 * simplify-rtx.c (delegitimize_mem_from_attrs): Likewise.
5893 * tree-ssa-uninit.c (warn_uninitialized_vars): Likewise.
5894 * asan.c (asan_protect_global, instrument_derefs): Likewise.
5895 * tree-into-ssa.c (rewrite_stmt, maybe_register_def,
5896 pass_build_ssa::execute): Likewise.
5897 * var-tracking.c (var_debug_decl, track_expr_p): Likewise.
5898 * tree-ssa-loop-ivopts.c (force_expr_to_var_cost, split_address_cost):
5900 * ipa-split.c (test_nonssa_use, consider_split, mark_nonssa_use):
5902 * tree-inline.c (insert_debug_decl_map, remap_ssa_name,
5903 can_be_nonlocal, remap_decls, copy_debug_stmt,
5904 initialize_inlined_parameters, add_local_variables,
5905 reset_debug_binding, replace_locals_op): Likewise.
5906 * dse.c (can_escape): Likewise.
5907 * ipa-devirt.c (compare_virtual_tables, referenced_from_vtable_p):
5909 * tree-diagnostic.c (default_tree_printer): Likewise.
5910 * tree-streamer-in.c (unpack_ts_decl_common_value_fields,
5911 unpack_ts_decl_with_vis_value_fields,
5912 lto_input_ts_decl_common_tree_pointers): Likewise.
5913 * builtins.c (builtin_save_expr, fold_builtin_expect,
5914 readonly_data_expr): Likewise.
5915 * tree-ssa-structalias.c (new_var_info, get_constraint_for_ssa_var,
5916 create_variable_info_for, set_uids_in_ptset, visit_loadstore):
5918 * gimple-streamer-out.c (output_gimple_stmt): Likewise.
5919 * gimplify.c (force_constant_size, gimplify_bind_expr,
5920 gimplify_decl_expr, gimplify_var_or_parm_decl,
5921 gimplify_compound_lval, gimplify_init_constructor,
5922 gimplify_modify_expr, gimplify_asm_expr, gimplify_oacc_declare,
5923 gimplify_type_sizes): Likewise.
5924 * cgraphbuild.c (record_reference, record_type_list, mark_address,
5925 mark_load, mark_store, pass_build_cgraph_edges::execute): Likewise.
5926 * tree-ssa-live.c (mark_all_vars_used_1, remove_unused_scope_block_p,
5927 remove_unused_locals): Likewise.
5928 * tree-ssa-alias.c (ptr_deref_may_alias_decl_p, ptrs_compare_unequal,
5929 ref_maybe_used_by_call_p_1, call_may_clobber_ref_p_1): Likewise.
5930 * function.c (instantiate_expr, instantiate_decls_1,
5931 setjmp_vars_warning, add_local_decl): Likewise.
5932 * alias.c (ao_ref_from_mem, get_alias_set, compare_base_symbol_refs):
5934 * tree-stdarg.c (find_va_list_reference, va_list_counter_struct_op,
5935 va_list_ptr_read, va_list_ptr_write, check_all_va_list_escapes,
5936 optimize_va_list_gpr_fpr_size): Likewise.
5937 * tree-nrv.c (pass_nrv::execute): Likewise.
5938 * tsan.c (instrument_expr): Likewise.
5939 * tree-ssa-dce.c (remove_dead_stmt): Likewise.
5940 * vtable-verify.c (verify_bb_vtables): Likewise.
5941 * tree-dfa.c (ssa_default_def, set_ssa_default_def,
5942 get_ref_base_and_extent): Likewise.
5943 * toplev.c (wrapup_global_declaration_1, wrapup_global_declaration_2):
5945 * tree-sra.c (static bool constant_decl_p, find_var_candidates,
5946 analyze_all_variable_accesses): Likewise.
5947 * tree-nested.c (get_nonlocal_debug_decl,
5948 convert_nonlocal_omp_clauses, note_nonlocal_vla_type,
5949 note_nonlocal_block_vlas, convert_nonlocal_reference_stmt,
5950 get_local_debug_decl, convert_local_omp_clauses,
5951 convert_local_reference_stmt, nesting_copy_decl, remap_vla_decls):
5953 * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Likewise.
5954 * stmt.c (decl_overlaps_hard_reg_set_p): Likewise.
5955 * dbxout.c (dbxout_late_global_decl, dbxout_type_fields,
5956 dbxout_symbol, dbxout_common_check): Likewise.
5957 * expr.c (expand_assignment, expand_expr_real_2, expand_expr_real_1,
5958 string_constant): Likewise.
5959 * hsa.c (hsa_get_declaration_name): Likewise.
5960 * passes.c (rest_of_decl_compilation): Likewise.
5961 * tree-ssanames.c (make_ssa_name_fn): Likewise.
5962 * tree-streamer-out.c (pack_ts_decl_common_value_fields,
5963 pack_ts_decl_with_vis_value_fields,
5964 write_ts_decl_common_tree_pointers): Likewise.
5965 * stor-layout.c (place_field): Likewise.
5966 * symtab.c (symtab_node::maybe_create_reference,
5967 symtab_node::verify_base, symtab_node::make_decl_local,
5968 symtab_node::copy_visibility_from,
5969 symtab_node::can_increase_alignment_p): Likewise.
5970 * dwarf2out.c (add_var_loc_to_decl, tls_mem_loc_descriptor,
5971 decl_by_reference_p, reference_to_unused, rtl_for_decl_location,
5972 fortran_common, add_location_or_const_value_attribute,
5973 add_scalar_info, add_linkage_name, set_block_abstract_flags,
5974 local_function_static, gen_variable_die, dwarf2out_late_global_decl,
5975 optimize_one_addr_into_implicit_ptr,
5976 optimize_location_into_implicit_ptr): Likewise.
5977 * gimple-low.c (record_vars_into): Likewise.
5978 * ipa-visibility.c (update_vtable_references): Likewise.
5979 * tree-ssa-address.c (fixed_address_object_p, copy_ref_info):
5981 * lto-streamer-out.c (tree_is_indexable, get_symbol_initial_value,
5982 DFS::DFS_write_tree_body, write_symbol): Likewise.
5983 * langhooks.c (lhd_warn_unused_global_decl,
5984 lhd_set_decl_assembler_name): Likewise.
5985 * attribs.c (decl_attributes): Likewise.
5986 * except.c (output_ttype): Likewise.
5987 * varpool.c (varpool_node::get_create, ctor_for_folding,
5988 varpool_node::assemble_decl, varpool_node::create_alias): Likewise.
5989 * fold-const.c (fold_unary_loc): Likewise.
5990 * ipa-prop.c (ipa_compute_jump_functions_for_edge,
5991 ipa_find_agg_cst_from_init): Likewise.
5992 * omp-low.c (expand_omp_regimplify_p, expand_omp_taskreg,
5993 expand_omp_target, lower_omp_regimplify_p,
5994 grid_reg_assignment_to_local_var_p, grid_remap_prebody_decls,
5995 find_link_var_op): Likewise.
5996 * tree-chrec.c (chrec_contains_symbols): Likewise.
5997 * tree-cfg.c (verify_address, verify_expr, verify_expr_location_1,
5998 gimple_duplicate_bb, move_stmt_op, replace_block_vars_by_duplicates,
5999 execute_fixup_cfg): Likewise.
6001 PR tree-optimization/77901
6002 * tree-ssa-reassoc.c (optimize_range_tests_var_bound): Only optimize
6003 if ranges[i].exp is SSA_NAME when looking for >= and only when
6004 ranges[i].exp is NULL or SSA_NAME when looking for the other
6007 2016-10-09 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
6009 * ipa-cp.c (ipcp_alignment_lattice): Remove.
6010 (ipcp_param_lattices): Remove field alignment.
6011 (print_all_lattices): Remove call to ipcp_alignment_lattice::print.
6012 (set_all_contains_variable): Remove call to
6013 ipcp_alignment_lattice::set_to_bottom.
6014 (initialize_node_lattices): Likewise.
6015 (propagate_alignment_accross_jump_function): Remove.
6016 (propagate_constants_accross_call): Remove call to
6017 propagate_alignment_accross_jump_function.
6018 (ipcp_store_alignment_results): Remove.
6019 (ipcp_driver): Remove call to ipcp_store_alignment_results.
6020 (propagate_bits_accross_jump_function): Handle ancestor jump function.
6021 * ipa-prop.c (ipa_print_node_jump_functions_for_edge): Remove
6022 pretty-printing of alignment jump function.
6023 (ipa_set_jf_unknown): Remove assignment to jfunc->alignment.known.
6024 (ipa_compute_jump_functions_for_edge): Adjust ipa_bits jump function for
6025 alignments and remove computing ipa_alignment jump function.
6026 (ipa_node_params_t::duplicate): Remove copying of src_trans->alignments.
6027 (ipa_write_jump_functions): Remove streaming for ipa_alignment.
6028 (ipa_read_jump_function): Remove reading of ipa_alignment.
6029 (write_ipcp_transformation_info): Remove streaming for alignment
6030 propagation summary.
6031 (read_ipcp_transformation_info): Remove reading of alignment
6032 propagation summary.
6033 (ipcp_update_alignments): Remove.
6034 (ipcp_update_bits): Adjust to set alignment for parameters of pointer
6036 (ipcp_transform_function): Remove call to ipcp_update_alignments()
6037 and remove assignment to (*ipcp_transformations)[node->uid].alignments.
6038 * ipa-prop.h (ipa_alignment): Remove.
6039 (ipa_jump_func): Remove field alignment.
6040 (ipcp_transformation_summary): Remove field alignments.
6041 * doc/invoke.texi: Mark fipa-cp-alignment as obsolete.
6042 * opts.c (default_options_table): Remove entry for fipa-cp-alignment.
6043 (enable_fdo_optimizations): Remove checking for fipa-cp-alignment.
6045 2016-10-08 Eric Botcazou <ebotcazou@adacore.com>
6047 * config/sparc/sparc.h (FIXED_REGISTERS): Add %icc.
6049 * config/visium/visium.c (visium_expand_int_cstore): Revert latest
6051 (visium_expand_fp_cstore): Likewise.
6053 2016-10-08 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
6055 * diagnostic-core.h (warning_at_rich_loc_n): Declare.
6056 * diagnostic.c (warning_at_rich_loc_n): New function.
6057 (diagnostic_n_impl_richloc): Likewise.
6058 (diagnostic_n_impl): Move most of the function to
6059 diagnostic_n_impl_richloc and call it.
6061 2016-10-08 Jakub Jelinek <jakub@redhat.com>
6063 * gen-pass-instances.awk: Rewritten.
6064 * Makefile.in (pass-instances.def): Depend on $(PASSES_EXTRA), pass
6065 $(PASSES_EXTRA) after passes.def to the script.
6066 * config/i386/t-i386 (PASSES_EXTRA): Add i386-passes.def.
6067 * config/i386/i386-passes.def: New file.
6068 * config/i386/i386-protos.h (make_pass_insert_vzeroupper,
6069 make_pass_stv): Declare.
6070 * config/i386/i386.c (pass_stv::pass_stv): Initialize timode_p to
6072 (pass_stv::gate): Depending on timode_p member require TARGET_64BIT
6074 (pass_stv::clone, pass_stv::set_pass_param): New methods.
6075 (pass_stv::timode_p): New non-static data member.
6076 (ix86_option_override): Don't register passes here.
6078 * doc/invoke.texi: Document accepting Else, fallthrough.
6080 * doc/invoke.texi (-Wimplicit-fallthrough): Document FALLTHRU comment
6083 * doc/invoke.texi (-Wimplicit-fallthrough): Document the accepted
6084 FALLTHRU comment styles.
6086 2016-10-07 Andrew Pinski <apinski@cavium.com>
6088 * config/aarch64/aarch64-arches.def (AARCH64_ARCH): #undef at the end.
6089 * config/aarch64/aarch64-cores.def (AARCH64_CORE): Likewise.
6090 * config/aarch64/aarch64-fusion-pairs.def (AARCH64_FUSION_PAIR):
6092 * config/aarch64/aarch64-option-extensions.def (AARCH64_OPT_EXTENSION):
6094 * config/aarch64/aarch64-tuning-flags.def (AARCH64_EXTRA_TUNING_OPTION):
6096 * config/aarch64/aarch64-opts.h (AARCH64_CORE): Don't #undef here.
6097 (AARCH64_ARCH): Likewise.
6098 * common/config/aarch64/aarch64-common.c (AARCH64_OPT_EXTENSION):
6100 (AARCH64_CORE): Likewise.
6101 (AARCH64_ARCH): Likewise.
6102 * config/aarch64/aarch64-protos.h (AARCH64_FUSION_PAIR): Likewise.
6103 (AARCH64_EXTRA_TUNING_OPTION): Likewise.
6104 * config/aarch64/aarch64.c (AARCH64_FUION_PAIR): Likewise.
6105 (AARCH64_EXTRA_TUNING_OPTION): Likewise.
6106 (AARCH64_ARCH): Likewise.
6107 (AARCH64_CORE): Likewise.
6108 * config/aarch64/aarch64.h (AARCH64_CORE): Likewise.
6109 * config/aarch64/driver-aarch64.c (AARCH64_OPT_EXTENSION): Likewise.
6110 (AARCH64_CORE): Likewise.
6111 (AARCH64_ARCH): Likewise.
6113 2016-10-06 Michael Meissner <meissner@linux.vnet.ibm.com>
6115 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Split
6116 -mfloat128 into -mfloat128-type that enables the IEEE 128-bit
6117 floating point type infrastructre, and -mfloat128 that enables the
6118 keyword. Define __FLOAT128__ if -mfloat128, and __FLOAT128_TYPE__
6119 if -mfloat128-type. Define __ibm128 to be long double by default.
6120 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print whether
6121 the IEEE 128-bit floating point type infrastructure should
6122 automatically be enabled.
6123 (rs6000_init_hard_regno_mode_ok): Switch to use -mfloat128-type
6124 instead of -mfloat128 to enable KFmode.
6125 (rs6000_option_override_internal): Split the option -mfloat128
6126 into -mfloat128-type and -mfloat128. On Linux PowerPC 64-bit
6127 systems, automatically set -mfloat128-type, but don't enable it on
6128 other operating systems. Move setting the long double size and
6129 IEEE quad support before the IEEE 128-bit floating point changes.
6130 (rs6000_init_builtins): Do not create a unique type for __ibm128
6131 if long double is IBM extended double, instead rely on __ibm128
6132 being defined as 'long double'. If -mfloat128-type and not
6133 -mfloat128, create the KFmode type with an undocumented __ieee128
6135 (rs6000_init_libfuncs): Use -mfloat128-type instead of
6136 -mfloat128 for tests about the types, but keep tests for
6137 -mfloat128 to enable the keyword support.
6138 (rs6000_complex_function_value): Likewise.
6139 (rs6000_scalar_mode_supported_p): Likewise.
6140 (rs6000_floatn_mode): Likewise.
6141 (rs6000_c_mode_for_suffix): Likewise.
6142 (rs6000_opt_masks): Add -mfloat128-type.
6143 * config/rs6000/rs6000-cpus.def (POWERPC_MASKS): Add support for
6144 -mfloat128-type being split from -mfloat128. Add
6145 -mfloat128-hardware, which was missing.
6146 * config/rs6000/rs6000.opt (-mfloat128): Split -mfloat128 into
6147 -mfloat128 and -mfloat128-type:
6148 (-mfloat128-type): Likewise.
6149 * config/rs6000/linux64.h (TARGET_FLOAT128_ENABLE_TYPE): Define so
6150 that 64-bit Linux systems with enable -mfloat128-type by default
6152 * config/rs6000/rs6000.h (TARGET_FLOAT128_ENABLE_TYPE): Likewise.
6153 (FLOAT128_VECTOR_P): Switch IEEE 128-bit floating points to use
6154 -mfloat128-type instead of -mfloat128.
6155 (FLOAT128_2REG_P): Likewise.
6156 (MASK_FLOAT128_TYPE): Likewise.
6157 (ALTIVEC_ARG_MAX_RETURN): Likewise.
6158 (RS6000_BTM_FLOAT128): Likewise.
6159 (TARGET_FLOAT128): Poison old identifiers.
6160 (OPTION_MASK_FLOAT128): Likewise.
6161 (MASK_FLOAT128): Likewise.
6162 * config/rs6000/rs6000.md (FP): Likewise.
6163 (FLOAT128): Likewise.
6164 (fix_trunc<mode>di2): Likewise.
6165 (fixuns_trunc<IEEE128:mode><SDI:mode>2): Likewise.
6166 (floatdi<mode>2): Likewise.
6167 (floatuns<SDI:mode><IEEE128:mode>2): Likewise.
6168 (neg<mode>2, FLOAT128 iterator): Likewise.
6169 (abs<mode>2, FLOAT128 iterator): Likewise.
6170 (ieee_128bit_negative_zero): Likewise.
6171 (ieee_128bit_vsx_neg<mode>2): Likewise.
6172 (ieee_128bit_vsx_neg<mode>2_internal): Likewise.
6173 (ieee_128bit_vsx_abs<mode>2): Likewise.
6174 (ieee_128bit_vsx_abs<mode>2_internal): Likewise.
6175 (ieee_128bit_vsx_nabs<mode>2): Likewise.
6176 (ieee_128bit_vsx_nabs<mode>2_internal): Likewise.
6177 (extendiftf2): Likewise.
6178 (extendifkf2): Likewise.
6179 (extendtfkf2): Likewise.
6180 (trunciftf2): Likewise.
6181 (truncifkf2): Likewise.
6182 (trunckftf2): Likewise.
6183 (trunctfif2): Likewise.
6184 (extendkftf2): Likewise.
6185 (trunctfkf2): Likewise.
6187 2016-10-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6189 * simplify-rtx.c (simplify_immed_subreg): Zero-initialize tmp array
6190 before merging in bytes to pass down to real_from_target.
6192 2016-10-07 Richard Biener <rguenther@suse.de>
6194 * tree-ssa-propagate.c (replace_phi_args_in): Remove no longer
6196 (substitute_and_fold_dom_walker::before_dom_children):
6197 Substitute and fold before pass specific folding to avoid
6198 feeding that with SSA names that will be later released.
6199 * tree-ssa-ccp.c (get_value_for_expr): Guard for new SSA names
6200 introduced by folding and visited by evaluate_stmt called during
6202 (likely_value): Likewise.
6203 (evaluate_stmt): Likewise.
6204 * tree-vrp.c (simplify_truth_ops_using_ranges): Fold modified stmt.
6205 (simplify_div_or_mod_using_ranges): Likewise.
6206 (simplify_min_or_max_using_ranges): Likewise.
6207 (simplify_abs_using_ranges): Likewise.
6208 (simplify_conversion_using_ranges): Likewise.
6209 (simplify_float_conversion_using_ranges): Likewise.
6210 (simplify_stmt_using_ranges): Likewise.
6212 2016-10-07 Marek Polacek <polacek@redhat.com>
6214 * gimplify.c (should_warn_for_implicit_fallthrough): Check for
6215 FALLTHROUGH_LABEL_P here...
6216 (warn_implicit_fallthrough_r): ...not here.
6218 2016-10-07 Bernd Schmidt <bschmidt@redhat.com>
6220 PR tree-optimization/77880
6221 * expr.c (by_pieces_ninsns): Use unsigned HOST_WIDE_INT where
6224 2016-10-07 Marek Polacek <polacek@redhat.com>
6227 * gimplify.c (last_stmt_in_scope): Add check for FALLTHROUGH ().
6229 2016-10-07 Richard Biener <rguenther@suse.de>
6231 * bitmap.h: Document constraints on bitmap modification while
6234 2016-10-07 Richard Biener <rguenther@suse.de>
6236 * bitmap.c (bitmap_elem_to_freelist): Set indx to -1.
6237 * bitmap.h (bmp_iter_set): When advancing to the next element
6238 check that we didn't remove the current one.
6239 (bmp_iter_and): Likewise.
6240 (bmp_iter_and_compl): Likewise.
6241 * tree-ssa.c (release_defs_bitset): Do not remove worklist bit
6242 we currently iterate on but keep a one-level queue.
6243 * sched-deps.c (remove_from_deps): Do not clear current bit
6244 but keep a one-level queue.
6246 2016-10-07 Jakub Jelinek <jakub@redhat.com>
6248 PR tree-optimization/77664
6249 * tree-ssa-reassoc.c (update_range_test): Also clear low and high
6250 for the other ranges.
6251 (optimize_range_tests_diff): Fix up formatting.
6252 (optimize_range_tests_var_bound): New function.
6253 (optimize_range_tests): Use it.
6255 2016-10-07 Martin Liska <mliska@suse.cz>
6257 * coverage.c (build_gcov_exit_decl): Fix priority what
6258 should be really 99.
6260 2016-10-07 Richard Biener <rguenther@suse.de>
6262 * gimple-low.c (lower_gimple_bind): Clear DECL_CHAIN of
6263 vars in gimple_bind_vars but not in BLOCK_VARS.
6265 2016-10-07 Richard Biener <rguenther@suse.de>
6267 PR tree-optimization/77879
6268 * tree-ssa-structalias.c (handle_const_call): Properly handle
6270 (handle_pure_call): Likewise.
6272 2016-10-06 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
6274 * config/rs6000/rs6000.c (rs6000_elf_asm_out_constructor)
6275 (rs6000_elf_asm_out_destructor): increase size of buf to avoid
6278 2016-10-06 Andrew Pinski <apinski@cavium.com>
6280 * config/aarch64/aarch64-cores.def: Add a comment before each
6283 2016-10-06 Kugan Vivekanandarajah <kuganv@linaro.org>
6285 PR tree-optimization/77862
6286 * tree-vrp.c (add_equivalence): Use get_value_range so that
6287 num_vr_values is checked before accessing vr_values.
6289 2016-10-06 Kugan Vivekanandarajah <kuganv@linaro.org>
6291 * tree-vrp.c (evrp_dom_walker::before_dom_children): Handle
6294 2016-10-05 Jeff Law <law@redhat.com>
6296 PR tree-optimization/71661
6297 * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Handle case when
6298 removal of a forwarder exposes a new natural loop.
6300 2016-10-06 Uros Bizjak <ubizjak@gmail.com>
6302 * config/i386/sse.md (andnot<mode>3): Add FALLTHRU comments.
6303 Introduce ssesuffix variable.
6304 (<mask_codefor><code><mode>3<mask_name>): Ditto.
6305 (*<code><mode>3): Ditto.
6307 2016-10-06 Jan Hubicka <hubicka@ucw.cz>
6309 * postreload.c (reload_cse_simplify): Skip also USE when detecting
6312 2016-10-06 Richard Biener <rguenther@suse.de>
6314 PR tree-optimization/77855
6315 * tree-ssa-pre.c (prune_clobbered_mems): Queue exprs to remove
6316 instead of removing the current item while iterating over the set
6319 2016-10-06 James Clarke <jrtc27@jrtc27.com>
6320 Eric Botcazou <ebotcazou@adacore.com>
6323 * config/sparc/sparc.c (classify_data_t): Remove int_regs field.
6324 (classify_registers): Don't set it
6325 (function_arg_slotno): Don't initialize and test it. Tidy up.
6327 2016-10-06 Richard Biener <rguenther@suse.de>
6329 PR tree-optimization/77839
6330 * tree-ssa-sccvn.c (set_ssa_val_to): Forbid value -> constant value
6333 2016-10-06 Martin Liska <mliska@suse.cz>
6335 * gcc.c: Set -fprofile-update=atomic when profiling is
6336 enabled and -pthread is set. Warn when one combines
6337 -pthread and -fprofile-update=single for an app using
6340 2016-10-06 Martin Liska <mliska@suse.cz>
6343 * expmed.h (mul_highpart_cost_ptr): Add an gcc_assert.
6344 * gimple-ssa-strength-reduction.c (slsr_process_cast):
6345 Initialize a pointer to NULL.
6346 (slsr_process_copy): Likewise.
6347 * input.c (location_get_source_line): Likewise.
6348 * tree-ssa-ccp.c (optimize_atomic_bit_test_and): Likewise.
6350 2016-10-05 Andrew Senkevich <andrew.senkevich@intel.com>
6352 * common/config/i386/i386-common.c (OPTION_MASK_ISA_PCOMMIT_UNSET,
6353 OPTION_MASK_ISA_PCOMMIT_SET): Deleted definitions.
6354 (ix86_handle_option): Deleted handle of OPT_mpcommit.
6355 * config.gcc: Deleted pcommitintrin.h
6356 * config/i386/pcommitintrin.h: Deleted file.
6357 * config/i386/cpuid.h (bit_PCOMMIT): Deleted.
6358 * config/i386/driver-i386.c (host_detect_local_cpu): Deleted pcommit
6360 * config/i386/i386-c.c (ix86_target_macros_internal): Deleted define
6362 * config/i386/i386.c (ix86_target_string): Deleted -mpcommit.
6363 (PTA_PCOMMIT): Deleted define.
6364 (ix86_option_override_internal): Deleted handle of option.
6365 (ix86_valid_target_attribute_inner_p): Deleted pcommit.
6366 * config/i386/i386-builtin.def (IX86_BUILTIN_PCOMMIT,
6367 __builtin_ia32_pcommit): Deleted.
6368 * config/i386/i386.h (TARGET_PCOMMIT, TARGET_PCOMMIT_P): Deleted.
6369 * config/i386/i386.md (unspecv): Deleted UNSPECV_PCOMMIT.
6370 (pcommit): Deleted instruction.
6371 * config/i386/i386.opt: Mention -mpcommit deprecation.
6372 * config/i386/x86intrin.h: Deleted inclusion of pcommitintrin.h.
6374 2016-10-05 Uros Bizjak <ubizjak@gmail.com>
6377 * config/i386/sse.md (<mask_codefor><code><mode>3<mask_name>):
6378 Remove wrong assert.
6379 (<floatsuffix>float<sseintvecmodelower><mode>2<mask_name><round_name>:
6380 Use <round_constraint> as operand 1 constraint.
6382 2016-10-05 Jakub Jelinek <jakub@redhat.com>
6385 * ubsan.c (ubsan_create_data): Call initialize_sanitizer_builtins here.
6386 (ubsan_instrument_float_cast): And not here.
6389 * ubsan.c (ubsan_ids): New GTY(()) array.
6390 (ubsan_type_descriptor, ubsan_create_data): Use ubsan_ids
6391 instead of static local counters.
6393 2016-10-05 Martin Sebor <msebor@redhat.com>
6396 * config/linux.h (TARGET_PRINTF_POINTER_FORMAT): Define macro.
6397 * config/linux.c (gnu_libc_printf_pointer_format): Remove.
6398 * targhooks.c [DEFAULT_LIBC == LIBC_UCLIBC) && SINGLE_LIBC]
6399 (default_printf_pointer_format): Define function.
6400 * targhooks.c (linux_printf_pointer_format): Define new function.
6401 * targhooks.h (linux_printf_pointer_format): Declare.
6402 (gnu_libc_printf_pointer_format): Remove declaration.
6404 2016-10-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6406 * fold-const.c (native_encode_real): Fix logic for selecting offset
6407 to write to when BYTES_BIG_ENDIAN.
6409 2016-10-05 Wilco Dijkstra <wdijkstr@arm.com>
6411 * builtins.c (fold_builtin_strchr): Remove function.
6412 (fold_builtin_strrchr): Likewise.
6413 (fold_builtin2): Remove strchr, index, strrchr, rindex cases.
6414 * gimple-fold.c (target_char_cst_p): New function.
6415 (gimple_fold_builtin_strchr) Add more foldings.
6416 (gimple_fold_builtin): Add index, strrchr, rindex cases.
6418 2016-10-05 Richard Biener <rguenther@suse.de>
6421 * genmatch.c (capture_info::walk_c_expr): Diagnose unknown
6422 capture ids in c-exprs.
6424 2016-10-05 Richard Biener <rguenther@suse.de>
6427 * genmatch.c (dt_operand::gen_match_op): Amend operand_equal_p
6428 with types_match for GIMPLE code gen to handle type mismatched
6430 (dt_operand::gen): Adjust.
6431 * match.pd ((X /[ex] A) * A -> X): Properly handle converted
6434 2016-10-05 Richard Biener <rguenther@suse.de>
6436 * match.pd (copysign(x, CST) -> [-]abs (x)): New pattern.
6438 2016-10-05 Richard Biener <rguenther@suse.de>
6441 * genmatch.c (parser::parse_c_expr): Handle premature EOF.
6443 2016-10-05 Pierre-Marie de Rodat <derodat@adacore.com>
6445 * dwarf2out.c (dwarf2out_imported_module_or_decl): Move DWARF
6446 version check to protect only DW_TAG_imported_module generation.
6448 2016-10-05 Richard Biener <rguenther@suse.de>
6451 * match.pd (min(a,-a) -> -abs(a)): New pattern.
6453 2016-10-04 Ian Lance Taylor <iant@golang.org>
6455 * explow.c (allocate_dynamic_stack_space): Call
6456 do_pending_stack_adjust before handling flag_split_stack.
6458 2016-10-04 David Malcolm <dmalcolm@redhat.com>
6460 * genattrtab.c (make_internal_attr): Supply dummy column number to
6463 * genoutput.c (init_insn_for_nothing): Likewise.
6464 * gensupport.c (add_define_attr): Likewise.
6465 * read-md.c (message_at_1): Print column number.
6466 (fatal_with_file_and_line): Likewise.
6467 (rtx_reader::read_char): Track column numbers.
6468 (rtx_reader::unread_char): Likewise.
6469 (rtx_reader::rtx_reader): Initialize m_read_md_colno.
6470 (rtx_reader::handle_include): Stash and restore m_read_md_colno.
6471 (rtx_reader::handle_file): Initialize m_read_md_colno.
6472 (rtx_reader::get_current_location): Supply column number to
6474 * read-md.h (struct file_location): Add field "colno".
6475 (file_location::file_location): Likewise.
6476 (rtx_reader::get_colno): New accessor.
6477 (rtx_reader::m_read_md_colno): New field.
6478 (rtx_reader::m_last_line_colno): New field.
6480 2016-10-04 Jakub Jelinek <jakub@redhat.com>
6482 * doc/extend.texi (Java Exceptions): Remove.
6483 (java_interface): Remove.
6485 2016-10-04 Doug Gilmore <doug.gilmore@imgtec.com>
6487 PR tree-optimization/77808
6488 * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Check base_addr
6489 and addr are different before copying points-to information.
6491 2016-10-04 Uros Bizjak <ubizjak@gmail.com>
6493 * config/i386/x86-tune.def (X86_TUNE_VECTORIZE_DOUBLE): Remove.
6494 * config/i386/i386.h (TARGET_VECTORIZE_DOUBLE): Remove.
6495 * config/i386/i386.c (ix86_add_stmt_cost): Use TARGET_BONNEL instead
6496 of !TARGET_VECTORIZE_DOUBLE when penalizing DFmode vector ops.
6498 2016-10-04 Richard Biener <rguenther@suse.de>
6500 PR tree-optimization/77399
6501 * tree-ssa-forwprop.c (simplify_vector_constructor): Properly
6502 verify the target can convert.
6504 2016-10-04 Richard Biener <rguenther@suse.de>
6507 * explow.c (plus_constant): Verify the mode of the constant
6508 pool offset before calling plus_constant.
6510 2016-10-04 Richard Biener <rguenther@suse.de>
6513 * match.pd (X / abs (X) -> X < 0 ? -1 : 1): Drop vector
6514 type support, mark with :C.
6515 (X / -X -> -1): Mark with :C.
6517 2016-10-04 Jakub Jelinek <jakub@redhat.com>
6519 * defaults.h (JCR_SECTION_NAME, TARGET_USE_JCR_SECTION): Remove.
6520 * system.h (JCR_SECTION_NAME, TARGET_USE_JCR_SECTION): Poison.
6521 * doc/tm.texi.in (TARGET_USE_JCR_SECTION): Remove.
6522 * doc/tm.texi: Regenerated.
6523 * config/i386/mingw32.h (TARGET_USE_JCR_SECTION): Remove.
6524 * config/i386/cygming.h (TARGET_USE_JCR_SECTION): Remove.
6525 * config/darwin.h (JCR_SECTION_NAME): Remove.
6526 * config/pa/pa64-hpux.h (JCR_SECTION_NAME): Remove.
6527 * config/rs6000/aix71.h (TARGET_USE_JCR_SECTION): Remove.
6528 * config/rs6000/aix51.h (TARGET_USE_JCR_SECTION): Remove.
6529 * config/rs6000/aix52.h (TARGET_USE_JCR_SECTION): Remove.
6530 * config/rs6000/aix53.h (TARGET_USE_JCR_SECTION): Remove.
6531 * config/rs6000/aix61.h (TARGET_USE_JCR_SECTION): Remove.
6533 2016-10-03 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
6535 * ipa-cp.c (propagate_bits_accross_jump_function): Introduce space
6536 between "because" and "param" in dump message in call to fprintf.
6538 2016-10-03 Jeff Law <law@redhat.com>
6540 PR tree-optimization/71550
6541 PR tree-optimization/71403
6542 * tree-ssa-threadbackward.c: Include tree-vectorizer.h
6543 (profitable_jump_thread_path): Also return boolean indicating if
6544 the realized path will create an irreducible loop.
6545 Remove loop depth tests from 71403.
6546 (fsm_find_control_statement_thread_paths): Remove loop depth tests
6547 from 71403. If threading will create an irreducible loop, then
6548 throw away loop iteration and related information.
6550 2016-10-03 Uros Bizjak <ubizjak@gmail.com>
6552 * configure.ac (strict_warn): Merge -Wmissing-format-attribute and
6553 -Woverloaded-virtual checks for warning options.
6554 * configure: Regenerate.
6556 2016-10-03 Bernd Edlinger <bernd.edlinger@hotmail.de>
6558 PR preprocessor/77699
6559 * input.c (maybe_grow): Don't allocate one byte extra headroom.
6560 (get_next_line): Return false on error.
6561 (read_next_line): Removed, use get_next_line instead.
6562 (read_line_num): Don't copy the line.
6563 (location_get_source_line): Don't use static data.
6564 (selftest::test_reading_source_line): Add more test cases.
6566 2016-10-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6569 2016-09-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6571 * ifcvt.c (noce_try_avoid_const_materialization): New function.
6572 (noce_process_if_block): Use it.
6574 2016-10-03 Bernd Edlinger <bernd.edlinger@hotmail.de>
6576 * doc/invoke.texi: Update -Wint-in-bool-context.
6578 2016-10-02 Jakub Jelinek <jakub@redhat.com>
6580 * dwarf2out.c (output_fde, output_call_frame_info,
6581 dwarf2out_do_cfi_startproc, set_indirect_string,
6582 gen_internal_sym, output_die, output_line_info): Use
6583 MAX_ARTIFICIAL_LABEL_BYTES as char array sizes for
6584 ASM_GENERATE_INTERNAL_LABEL output.
6586 2016-10-01 Richard Biener <rguenther@suse.de>
6589 * genmatch.c (get_operand_type): Add operand position arg
6590 and handle COND_EXPR comparison operand with fixed boolean_type_node.
6591 (expr::gen_transform): Adjust.
6592 (dt_simplify::gen_1): Likewise.
6594 2016-10-01 Jakub Jelinek <jakub@redhat.com>
6596 * config/i386/sse.md (<mask_codefor><code><mode>): Add FALLTHRU
6597 comments. Simplify asserts, remove unnecessary conditions.
6599 (*<code><mode>3): Likewise.
6601 2016-09-30 Jakub Jelinek <jakub@redhat.com>
6603 * doc/invoke.texi (-Wregister): Document.
6605 2016-09-30 Bernd Edlinger <bernd.edlinger@hotmail.de>
6607 * configure.ac: Split CHECKING_P into CHECKING_P and
6608 ENABLE_EXTRA_CHECKING.
6609 * configure: Regenerated.
6610 * config.in: Adjust commment of CHECKING_P. Add ENABLE_EXTRA_CHECKING.
6611 * common.opt (flag_checking): Use CHECKING_P and ENABLE_EXTRA_CHECKING.
6613 2016-09-30 Prasad Ghangal <prasad.ghangal@gmail.com>
6616 * gcc.c (process_command): For @filename handling, output
6617 the correct name if the file does not exist.
6619 2016-09-30 Marek Polacek <polacek@redhat.com>
6621 * config/aarch64/aarch64-simd.md: Adjust fall through comments.
6622 * config/alpha/predicates.md: Likewise.
6624 2016-09-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6626 * ifcvt.c (noce_try_avoid_const_materialization): New function.
6627 (noce_process_if_block): Use it.
6629 2016-09-30 Martin Liska <mliska@suse.cz>
6631 * doc/invoke.texi: Document asan-use-after-return that
6632 it's disabled by default in runtime.
6634 2016-09-30 Richard Biener <rguenther@suse.de>
6636 * tree-vrp.c (intersect_ranges): If we failed to handle
6637 the intersection choose a constant singleton range if available.
6639 2016-09-30 Richard Biener <rguenther@suse.de>
6641 PR tree-optimization/77399
6642 * tree-ssa-forwprop.c (simplify_vector_constructor): Handle
6643 float <-> int conversions.
6645 2016-09-30 Alan Modra <amodra@gmail.com>
6647 * config/rs6000/rs6000.c (rs6000_opt_vars): Revert last change.
6649 2016-09-29 Uros Bizjak <ubizjak@gmail.com>
6651 * config/i386/driver-i386.c (host_detect_local_cpu): Check maximum
6652 ext_level before calling CPUID with 0x80000008.
6653 Simplify xgetbv checks.
6655 2016-09-29 David Malcolm <dmalcolm@redhat.com>
6657 * Makefile.in (OBJS): Add print-rtl-function.o.
6658 * print-rtl-function.c: New file.
6659 * print-rtl.h (print_rtx_function): New decl.
6661 2016-09-29 Uros Bizjak <ubizjak@gmail.com>
6664 * config/i386/cpuid.h (__get_cpuid_count): New.
6665 (__get_cpuid): Rename __level to __leaf.
6667 2016-09-29 Marek Polacek <polacek@redhat.com>
6669 * genattrtab.c (write_attr_case): Also emit FALLTHRU marker.
6671 2016-09-29 Bernd Schmidt <bschmidt@redhat.com>
6674 * builtins.c (expand_builtin_memcmp): Don't swap args unless
6675 result is only being compared with zero.
6677 2016-09-29 Marek Polacek <polacek@redhat.com>
6679 * dwarf2out.c (loc_descriptor): Add fall through comment.
6680 (add_const_value_attribute): Likewise.
6682 2016-09-29 Matthew Wahab <matthew.wahab@arm.com>
6684 * config/arm/arm.md (*arm_movsi_insn): Replace "t2" arch attribute
6685 with "v6t2". Move "arch" attribute above "pool_range".
6686 * config/arm/vfp.md (*arm_movhi_vfp): Replace "t2" arch attribute
6688 (*thumb2_movhi_vfp): Likewise.
6689 (*arm_movhi_fp16): Likewise.
6690 (*thumb2_movhi_fp16): Likewise.
6691 (*arm_movsi_vfp): Remove "arch" attribute.
6692 (*thumb2_movsi_vfp): Likewise.
6694 2016-09-29 Martin Liska <mliska@suse.cz>
6696 * doc/extend.texi: Remove limitation of Objective C for
6697 __attribute__((constructor)) and __attribute__((destructor)).
6699 2016-09-29 Richard Biener <rguenther@suse.de>
6701 PR tree-optimization/77768
6702 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
6703 Handle stores to readonly memory when removing redundant stores.
6705 2016-09-29 Richard Biener <rguenther@suse.de>
6708 * match.pd: Add X / abs (X) -> X < 0 ? -1 : 1 and
6709 X / -X -> -1 simplifications.
6711 2016-09-29 Richard Biener <rguenther@suse.de>
6714 * match.pd: Add max(a,-a) -> abs(a) pattern.
6715 * tree-ssa-phiopt.c (minmax_replacement): Disable for
6716 HONOR_SIGNED_ZEROS types.
6718 2016-09-29 James Greenhalgh <james.greenhalgh@arm.com>
6720 * defaults.h (TARGET_FLT_EVAL_METHOD_NON_DEFAULT): Remove.
6721 * system.h (TARGET_FLT_EVAL_METHOD_NON_DEFAULT): Poison.
6723 2016-09-29 Richard Biener <rguenther@suse.de>
6725 * tree-vrp.c (set_defs_to_varying): New helper avoiding
6726 writing to vr_const_varying.
6727 (vrp_initialize): Call it.
6728 (vrp_visit_stmt): Likewise.
6729 (evrp_dom_walker::before_dom_children): Likewise.
6731 2016-09-29 Richard Biener <rguenther@suse.de>
6733 * tree-vect-stmts.c (vectorizable_load): Avoid emitting vector
6734 constructors with vector elements.
6736 2016-09-29 Richard Biener <rguenther@suse.de>
6738 PR tree-optimization/77768
6739 * tree-ssa-sccvn.c (visit_reference_op_store): Properly deal
6740 with stores to a place we know has a constant value.
6742 2016-09-29 Alan Modra <amodra@gmail.com>
6744 * config/rs6000/sysv4.opt (mgnu-attribute): New option.
6745 * doc/invoke.texi: Document it.
6746 * config/rs6000/rs6000.c (HAVE_LD_PPC_GNU_ATTR_LONG_DOUBLE): Define.
6747 (rs6000_passes_float): Comment.
6748 (rs6000_passes_long_double): New static var.
6749 (call_ABI_of_interest): Return false unless rs6000_gnu_attr is set.
6750 (init_cumulative_args): Set up to emit fp .gnu_attribute for
6751 ELF 64-bit ABIs as well as 32-bit ELF. Correct rs6000_passes_float
6752 to include fp values returned in vectors.
6753 Set rs6000_passes_long_double.
6754 (rs6000_function_arg_advance_1): Likewise for function args.
6755 (rs6000_elf_file_end): Emit fp .gnu_attribute for ELF 64-bit ABIs,
6756 and SPE. Emit long double tag value too.
6757 (rs6000_opt_vars): Add gnu-attr.
6758 * configure.ac (HAVE_LD_PPC_GNU_ATTR_LONG_DOUBLE): New ppc32 test.
6759 * configure: Regenerate.
6760 * config.in: Regenerate.
6762 2016-09-28 Jakub Jelinek <jakub@redhat.com>
6764 * gimple-ssa-sprintf.c (pass_sprintf_length::gate): Use x > 0 instead
6766 (format_floating, format_string, format_directive,
6767 get_destination_size, pass_sprintf_length::handle_gimple_call):
6770 2016-09-28 Jakub Jelinek <jakub@redhat.com>
6772 * gimple-ssa-sprintf.c: Fix comment formatting.
6773 (format_integer): Use is_gimple_assign.
6774 (pass_sprintf_length::handle_gimple_call): Use gimple_call_builtin_p
6775 and gimple_call_fndecl. Reorder case BUILT_IN_SPRINTF_CHK. Fix up
6776 BUILT_IN_SNPRINTF_CHK comment. Replace "to to" with "to" in comment.
6777 (pass_sprintf_length::execute): Use is_gimple_call.
6779 2016-09-28 Wilco Dijkstra <wdijkstr@arm.com>
6781 * gimple-fold.c (gimple_fold_builtin): After failing to fold
6782 strchr, also try the generic folding.
6784 2016-09-28 Martin Sebor <msebor@redhat.com>
6787 * gimple-ssa-sprintf.c (pass_sprintf_length::handle_gimple_call):
6790 2016-09-28 Martin Sebor <msebor@redhat.com>
6793 * gimple-ssa-sprintf.c (format_integer): Fail gracefully when
6794 length modifier is not expected.
6795 (format_floating): Ignore l length modifier and fail gracefuly
6796 when it isn't one of the other expected ones.
6798 2016-09-28 Martin Sebor <msebor@redhat.com>
6801 * varasm.c (assemble_addr_to_section): Increase local buffer size.
6803 2016-09-27 Richard Biener <rguenther@suse.de>
6805 * dwarf2out.c (cu_die_list): New global.
6806 (dwarf2out_finish): Walk cu_die_list instead of limbo DIEs. Add
6807 main_comp_unit_die to cu_die_list if we created it.
6808 Move break_out_includes ...
6809 (dwarf2out_early_finish): ... here. Push created CU DIEs onto
6812 2016-09-28 Richard Biener <rguenther@suse.de>
6814 * dwarf2out.c (struct die_struct): Add removed flag.
6815 (lookup_type_die): If the DIE is marked as removed, clear
6816 TYPE_SYMTAB_DIE and return NULL.
6817 (lookup_decl_die): If the DIE is marked as removed, remove it
6818 from the hash and return NULL.
6819 (mark_removed): New helper.
6820 (prune_unused_types_prune): Call it for removed DIEs.
6821 (gen_subprogram_die): Move the premark_used_types call to after
6822 DIEs for the functions scopes are generated.
6823 (process_scope_var): Do not re-create pruned types or type decls.
6824 Make sure to also re-parent type decls.
6825 (dwarf2out_finish): Move unused type pruning and debug_types
6827 (dwarf2out_early_finish): ... here.
6829 2016-09-29 Claudiu Zissulescu <claziss@synopsys.com>
6831 * config/arc/arc-c.c: New file.
6832 * config/arc/arc-c.def: Likewise.
6833 * config/arc/t-arc: Likewise.
6834 * config.gcc: Include arc-c.o as c and cpp object.
6835 * config/arc/arc-protos.h (arc_cpu_cpp_builtins): Add prototype.
6836 * config/arc/arc.h (TARGET_CPU_CPP_BUILTINS): Use
6837 arc_cpu_cpp_builtins.
6839 2016-09-29 Claudiu Zissulescu <claziss@synopsys.com>
6841 * config/arc/arc.md (*rotrsi3_cnt1): New pattern.
6842 (*ashlsi2_cnt1, *lshrsi3_cnt1, *ashrsi3_cnt1): Likewise.
6844 2016-09-28 Nathan Sidwell <nathan@acm.org>
6846 * gimple-pretty-print.c (dump_gimple_call_args): Simplify "' "
6849 2016-09-28 Wilco Dijkstra <wdijkstr@arm.com>
6851 PR tree-optimization/61056
6852 * gimple-fold.c (gimple_fold_builtin_strchr):
6853 New function to optimize strchr (s, 0) to strlen.
6854 (gimple_fold_builtin): Add BUILT_IN_STRCHR case.
6856 2016-09-27 Robin Dapp <rdapp@linux.vnet.ibm.com>
6858 PR tree-optimization/77724
6859 * tree-vect-loop-manip.c (create_intersect_range_checks_index):
6860 Add tree_fits_shwi_p check.
6862 2016-09-27 Jakub Jelinek <jakub@redhat.com>
6864 * auto-inc-dec.c (try_merge): Remove break after return.
6865 * cselib.c (autoinc_split): Likewise.
6866 * explow.c (promote_mode): Likewise.
6867 * fixed-value.c (fixed_arithmetic): Likewise.
6868 * hsa.c (hsa_internal_fn::get_arity): Likewise.
6869 * rtlanal.c (modified_between_p, modified_in_p): Likewise.
6870 * trans-mem.c (get_attrs_for): Likewise.
6871 * tree-if-conv.c (if_convertible_stmt_p): Likewise.
6872 * tree-vrp.c (simplify_stmt_using_ranges): Likewise.
6873 * config/aarch64/aarch64-builtins.c (aarch64_fold_builtin): Likewise.
6874 * config/aarch64/aarch64.c (aarch64_get_condition_code_1): Likewise.
6875 * config/c6x/c6x.c (c6x_get_unit_specifier): Likewise.
6876 * config/cr16/cr16.c (legitimate_pic_operand_p): Likewise.
6877 * config/cris/cris.c (cris_op_str): Likewise.
6878 * config/mn10300/mn10300.c (cc_flags_for_code): Likewise.
6879 * config/tilepro/tilepro.c (tilepro_emit_setcc_internal_di): Likewise.
6881 2016-09-27 Nathan Sidwell <nathan@codesourcery.com>
6883 * internal-fn.h (IFN_UNIQUE_CODES, IFN_GOACC_LOOP_CODES,
6884 IFN_GOACC_REDUCTION_CODES): New.
6885 (enum ifn_unique_kind, enum ifn_goacc_loop_kind, enum
6886 ifn_goacc_reduction_kind): Use them.
6887 * gimple-pretty-print.c (dump_gimple_call_args): Decode first arg
6888 of internal functions, when applicable.
6890 2016-09-27 Maciej W. Rozycki <macro@imgtec.com>
6892 * config/mips/constraints.md (d): Fix documentation.
6893 * doc/md.texi (Machine Constraints): Update accordingly.
6895 2016-09-27 Richard Biener <rguenther@suse.de>
6897 * dwarf2out.c (dwarf2out_init): Move text_section_line_info,
6898 cur_line_info_table initialization ...
6899 (dwarf2out_assembly_start): ... here.
6901 2016-09-27 Matthew Wahab <matthew.wahab@arm.com>
6903 * config/arm/arm.md (*arm_movsi_insn): Add "arch" attribute.
6904 * config/arm/vfp.md (*arm_movhi_vfp): Likewise.
6905 (*thumb2_movhi_vfp): Likewise.
6906 (*arm_movhi_fp16): Remove predication operand from VMOV.F16
6907 template. Expand predicable attribute to mark VMOV.F16 as not
6908 predicable. Add "arch" attribute.
6909 (*thumb2_movhi_fp16): Likewise.
6910 (*arm_movsi_vfp): Break a long line. Add "arch" attribute.
6911 (*thumb2_movsi_vfp): Add "arch" attribute.
6913 2016-09-27 David Edelsohn <dje.gcc@gmail.com>
6915 * config/rs6000/rs6000.c (rs6000_output_symbol): Don't modify
6918 2016-09-27 Marek Polacek <polacek@redhat.com>
6920 * config/ia64/ia64.c (ia64_print_operand): Adjust fall through
6923 * config/c6x/c6x.h: Adjust fall through comment.
6924 * config/sh/sh.c (final_prescan_insn): Likewise.
6925 * config/visium/visium.c (visium_expand_int_cstore): Likewise.
6926 (visium_expand_fp_cstore): Likewise.
6928 2016-09-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6930 * config/arm/arm.c (const_ok_for_op): Use "Fall through" comment form
6931 expected by -Wimplicit-fallthrough.
6932 (thumb1_size_rtx_costs): Likewise.
6933 (thumb2_reorg): Likewise.
6934 (tls_mentioned_p): Add "Fall through" comment.
6935 (thumb2_reorg): Likewise.
6936 * config/arm/arm-builtins.c (arm_expand_neon_args): Use "Fall through"
6937 comment form expected by -Wimplicit-fallthrough.
6939 2016-09-27 Martin Liska <mliska@suse.cz>
6941 PR gcov-profile/46266
6942 * input.h (RESERVED_LOCATION_P): New macro.
6943 * profile.c (branch_prob): Use RESERVED_LOCATION_P and
6944 instread of comparison with UNKNOWN_LOCATION.
6946 2016-09-27 Richard Biener <rguenther@suse.de>
6948 PR tree-optimization/77745
6949 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
6950 When removing redundant stores make sure to check compatibility
6951 of the TBAA state for downstream accesses.
6952 * tree-ssa-sccvn.c (visit_reference_op_store): Likewise for when
6953 value-numbering virtual operands for store matches.
6955 2016-09-27 Oleg Endo <olegendo@gcc.gnu.org>
6958 * config/sh/sh.c (sh_rtx_costs): Fix return value of SET of movt and
6959 movrt patterns. Match them before anything else in the SET case.
6961 2016-09-27 Martin Liska <mliska@suse.cz>
6963 PR gcov-profile/7970
6964 PR gcov-profile/16855
6965 PR gcov-profile/44779
6966 * coverage.c (build_gcov_exit_decl): New function.
6967 (coverage_obj_init): Call the function and generate __gcov_exit
6969 * doc/gcov.texi: Document when __gcov_exit function is called.
6971 2016-09-27 Marek Polacek <polacek@redhat.com>
6974 * Makefile.in (insn-attrtab.o-warn, insn-dfatab.o-warn,
6975 insn-latencytab.o-warn, insn-output.o-warn, insn-emit.o-warn): Use
6976 -Wno-error instead of -Wno-implicit-fallthrough.
6978 2016-09-27 Martin Liska <mliska@suse.cz>
6981 * gcov-counter.def: Remove GCOV_COUNTER_V_DELTA.
6983 2016-09-27 Jakub Jelinek <jakub@redhat.com>
6985 * combine.c (simplify_comparison): Add canonical FALLTHROUGH comments.
6986 * config/i386/i386.c (ix86_dep_by_shift_count_body): Add FALLTHROUGH
6987 comments. Remove break after return.
6988 (ix86_fp_compare_code_to_integer, has_dispatch,
6989 ix86_simd_clone_usable): Remove break after return.
6991 2016-09-27 Bernd Edlinger <bernd.edlinger@hotmail.de>
6993 PR rlt-optimization/77714
6994 * lra-eliminations.c (eliminate_regs_in_insn): Avoid alias on
6997 2016-09-27 Kugan Vivekanandarajah <kuganv@linaro.org>
7000 * ipa-prop.c (ipa_compute_jump_functions_for_edge): Use
7001 extract_range_from_unary_expr to convert value_range.
7002 * tree-vrp.c (extract_range_from_unary_expr_1): Rename to.
7003 (extract_range_from_unary_expr): This.
7004 * tree-vrp.h (extract_range_from_unary_expr): Declare.
7006 2016-09-27 Segher Boessenkool <segher@kernel.crashing.org>
7008 * config/rs6000/rs6000.md (movcc_internal1): Disparage using CTR or LR.
7010 2016-09-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7012 * config/i386/i386.c (ix86_print_operand)
7013 [HAVE_AS_IX86_CMOV_SUN_SYNTAX]: Add gcc_fallthrough.
7014 * config/sparc/sparc.c (check_pic): Add fallthrough comment.
7015 (epilogue_renumber): Likewise.
7017 2016-09-26 Kugan Vivekanandarajah <kuganv@linaro.org>
7020 * tree-ssa-reassoc.c (make_new_ssa_for_def): Use gimple_get_lhs
7021 to get lhs instead of gimple_assign_lhs as stmt can be builtins too.
7023 2016-09-26 Thomas Preud'homme <thomas.preudhomme@arm.com>
7025 * tree.h (memmodel_from_int, memmodel_base, is_mm_relaxed,
7026 is_mm_consume, is_mm_acquire, is_mm_release, is_mm_acq_rel,
7027 is_mm_seq_cst, is_mm_sync): Move to ...
7028 * memmodel.h: This. New file.
7029 * builtins.c: Include memmodel.h.
7030 * optabs.c: Likewise.
7032 * config/aarch64/aarch64.c: Likewise.
7033 * config/alpha/alpha.c: Likewise.
7034 * config/arm/arm.c: Likewise.
7035 * config/i386/i386.c: Likewise.
7036 * config/ia64/ia64.c: Likewise.
7037 * config/mips/mips.c: Likewise.
7038 * config/rs6000/rs6000.c: Likewise.
7039 * config/sparc/sparc.c: Likewise.
7040 * genconditions.c: Include memmodel.h in generated file.
7041 * genemit.c: Likewise.
7042 * genoutput.c: Likewise.
7043 * genpeep.c: Likewise.
7044 * genpreds.c: Likewise.
7045 * genrecog.c: Likewise.
7047 2016-09-26 David Malcolm <dmalcolm@redhat.com>
7049 * read-rtl.c (read_rtx_code): Rename local "i" to "idx", and use
7050 "c" instead when parsing characters. Move operand parsing into...
7051 (read_rtx_operand): ...this new function, renaming "i" to "idx",
7052 and tightening the scope of various locals.
7054 2016-09-26 Liu Hao <lh_mouse@126.com>
7056 * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Fix typo.
7058 2016-09-26 Marek Polacek <polacek@redhat.com>
7060 * system.h: Use __has_attribute to check whether the fallthrough
7061 attribute is supported.
7063 2016-09-26 Marek Polacek <polacek@redhat.com>
7065 * ipa-inline-analysis.c (find_foldable_builtin_expect): Use
7066 gimple_call_internal_p.
7067 * ipa-split.c (find_return_bb): Likewise.
7068 (execute_split_functions): Likewise.
7069 * omp-low.c (dump_oacc_loop_part): Likewise.
7070 (oacc_loop_xform_head_tail): Likewise.
7071 * predict.c (predict_loops): Likewise.
7072 * sanopt.c (pass_sanopt::execute): Likewise.
7073 * tree-cfg.c (get_abnormal_succ_dispatcher): Likewise.
7074 * tree-parloops.c (oacc_entry_exit_ok_1): Likewise.
7075 * tree-stdarg.c (gimple_call_ifn_va_arg_p): Remove function.
7076 (expand_ifn_va_arg_1): Use gimple_call_internal_p.
7077 (expand_ifn_va_arg): Likewise.
7078 * tree-vect-loop.c (vect_determine_vectorization_factor): Likewise.
7079 (optimize_mask_stores): Likewise.
7080 * tree-vect-stmts.c (vect_simd_lane_linear): Likewise.
7081 (vect_transform_stmt): Likewise.
7082 * tree-vectorizer.c (vect_loop_vectorized_call): Likewise.
7083 * tsan.c (instrument_memory_accesses): Likewise.
7085 2016-09-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7086 Alexander Monakov <amonakov@ispras.ru>
7088 * regrename.c (rename_chains): Check
7089 HARD_FRAME_POINTER_IS_FRAME_POINTER rather than
7090 HARD_FRAME_POINTER_REGNUM when picking unavailable registers.
7091 * sel-sched.c (mark_unavailable_hard_regs): Likewise.
7093 2016-09-26 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
7095 * config/s390/s390.c (s390_rtx_costs): Add /* fallthrough */.
7096 (s390_sched_score): Likewise.
7098 2016-09-26 Martin Liska <mliska@suse.cz>
7100 * doc/gcov.texi: Update program output of gcov tool.
7102 2016-09-26 Martin Liska <mliska@suse.cz>
7104 PR gcov-profile/23332
7105 * profile.c (instrument_values): Do not handle HIST_TYPE_CONST_DELTA.
7106 * tree-profile.c (gimple_gen_const_delta_profiler): Remove.
7107 * value-prof.c (dump_histogram_value): Do not handle
7108 HIST_TYPE_CONST_DELTA.
7109 (stream_in_histogram_value): Likewise.
7110 (gimple_find_values_to_profile): Likewise.
7111 * value-prof.h (enum hist_type): Likewise.
7113 2016-09-26 Martin Liska <mliska@suse.cz>
7115 * common.opt: Exclude SANITIZE_UNREACHABLE and SANITIZE_RETURN
7116 from default sanitize recover values.
7117 * doc/invoke.texi: Fix documentation related to -fsanitize=leak,
7118 -fsanitize=address, -fsanitize=thread and -fsanitize-recover.
7119 * flag-types.h: Replace couple of 1 << x to 1UL << x, make it
7121 * opts.c (finish_options): Do a generic loop over options
7122 that can be recovered.
7123 (parse_sanitizer_options): Exclude SANITIZE_UNREACHABLE and
7125 (common_handle_option): Likewise.
7126 * opts.h: Declare can_recover to sanitizer_opts_s.
7128 2016-09-26 Andre Vieira <andre.simoesdiasvieira@arm.com>
7130 * target.def(elf_flags_numeric): Change documentation to present tense.
7131 * doc/tm.texi: Regenerate.
7133 2016-09-26 Marek Polacek <polacek@redhat.com>
7136 * Makefile.in (insn-attrtab.o-warn, insn-dfatab.o-warn,
7137 insn-latencytab.o-warn, insn-output.o-warn, insn-emit.o-warn): Add
7138 -Wno-switch-fallthrough.
7139 * builtins.c (expand_builtin_int_roundingfn_2): Add gcc_fallthrough.
7140 (expand_builtin): Likewise.
7141 * config/rs6000/rs6000.c (rs6000_builtin_vectorized_libmass): Likewise.
7142 * convert.c (convert_to_real_1): Likewise.
7143 (convert_to_integer_1): Likewise.
7144 * final.c (output_alternate_entry_point): Likewise.
7145 * genattrtab.c (make_canonical): Likewise.
7146 (write_test_expr): Likewise.
7147 * genpreds.c (validate_exp): Likewise.
7148 * gimple-ssa-strength-reduction.c
7149 (find_candidates_dom_walker::before_dom_children): Likewise.
7150 * godump.c (go_format_type): Likewise.
7151 * reload1.c (elimination_effects): Likewise.
7152 * resource.c (mark_referenced_resources): Likewise.
7153 (mark_set_resources): Likewise.
7154 * tree-ssa-loop-ivopts.c (find_deriving_biv_for_expr): Likewise.
7155 * varasm.c (output_addressed_constants): Likewise.
7157 2016-09-26 Marek Polacek <polacek@redhat.com>
7160 * common.opt (Wimplicit-fallthrough): New option.
7161 * doc/extend.texi: Document statement attributes and the fallthrough
7163 * doc/invoke.texi: Document -Wimplicit-fallthrough.
7164 * gimple.h (gimple_call_internal_p): New function.
7165 * gimplify.c (struct gimplify_ctx): Add in_switch_expr.
7166 (struct label_entry): New struct.
7167 (find_label_entry): New function.
7168 (case_label_p): New function.
7169 (collect_fallthrough_labels): New function.
7170 (last_stmt_in_scope): New function.
7171 (should_warn_for_implicit_fallthrough): New function.
7172 (warn_implicit_fallthrough_r): New function.
7173 (maybe_warn_implicit_fallthrough): New function.
7174 (expand_FALLTHROUGH_r): New function.
7175 (expand_FALLTHROUGH): New function.
7176 (gimplify_switch_expr): Call maybe_warn_implicit_fallthrough and
7177 expand_FALLTHROUGH for the innermost GIMPLE_SWITCH.
7178 (gimplify_label_expr): New function.
7179 (gimplify_case_label_expr): Set location.
7180 (gimplify_expr): Call gimplify_label_expr.
7181 * internal-fn.c (expand_FALLTHROUGH): New function.
7182 * internal-fn.def (FALLTHROUGH): New internal function.
7183 * langhooks.c (lang_GNU_OBJC): New function.
7184 * langhooks.h (lang_GNU_OBJC): Declare.
7185 * system.h (gcc_fallthrough): Define.
7186 * tree-core.h: Add FALLTHROUGH_LABEL_P comment.
7187 * tree.h (FALLTHROUGH_LABEL_P): Define.
7189 2016-09-26 Richard Biener <rguenther@suse.de>
7191 * dwarf2out.c (stripattributes): Remove unused function.
7192 (DEBUG_NORM_MACINFO_SECTION): Rename to DEBUG_MACINFO_SECTION.
7193 Push dwarf_split_debug_info handling into init_sections_and_labels.
7194 (DEBUG_NORM_MACRO_SECTION): Likewise to DEBUG_MACRO_SECTION.
7195 (DEBUG_MACRO_SECTION_FLAGS): Remove.
7196 (debug_macinfo_section_name): New global.
7197 (output_macinfo): Use debug_macinfo_section_name.
7198 (init_sections_and_labels): Split out section and label generation
7199 from dwarf2out_init. Set debug_macinfo_section_name.
7200 (dwarf2out_init): Move text section label generation and emission
7202 (dwarf2out_assembly_start): ... here.
7203 (dwarf2out_finish): Call init_sections_and_labels before DWARF
7206 2016-09-26 Richard Biener <rguenther@suse.de>
7209 * cgraphunit.c (analyze_functions): Before early removing
7210 global vars calls the late_global_decl debug handler mark
7211 the variable as readonly.
7213 2016-09-25 Oleg Endo <olegendo@gcc.gnu.org>
7216 * config/sh/sh.c (sh_movt_set_dest, sh_movrt_set_dest): Add overloads.
7217 (sh_rtx_costs): Handle SET of movt and movrt patterns.
7218 * cnofig/sh/sh-protos.h (sh_movt_set_dest, sh_movrt_set_dest): Forward
7219 declare new overloads.
7220 * config/sh/sh.md (*cset_zero): Add variant that takes a treg_set_expr
7223 2016-09-24 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
7225 * config/rs6000/rs6000.c (expand_block_compare, do_load_for_compare):
7226 Change TARGET_LITTLE_ENDIAN to !BYTES_BIG_ENDIAN.
7228 2016-09-24 David Edelsohn <dje.gcc@gmail.com>
7230 * configure.ac (gcc_cv_as_aix_dwloc): Fix typo in assembly fragment.
7231 * configure: Regenerate.
7233 2016-09-24 Marek Polacek <polacek@redhat.com>
7236 * doc/invoke.texi: Document -Wbool-operation.
7238 2016-09-23 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
7240 * config/rs6000/rs6000.md (cmpmemsi): New define_expand.
7241 * config/rs6000/rs6000.c (expand_block_compare): New function used by
7242 cmpmemsi pattern to do builtin expansion of memcmp ().
7243 (compute_current_alignment): Add helper function for
7244 expand_block_compare used to compute alignment as the compare proceeds.
7245 (select_block_compare_mode): Used by expand_block_compare to select
7246 the mode used for reading the next chunk of bytes in the compare.
7247 (do_load_for_compare): Used by expand_block_compare to emit the load
7248 insns for the compare.
7249 (rs6000_emit_dot_insn): Moved this function to avoid a forward
7250 reference from expand_block_compare ().
7251 * config/rs6000/rs6000-protos.h (expand_block_compare): Add a
7252 prototype for this function.
7253 * config/rs6000/rs6000.opt (mblock-compare-inline-limit): Add a new
7254 target option for controlling how much code inline expansion of
7255 memcmp() will be allowed to generate.
7257 2016-09-23 Jakub Jelinek <jakub@redhat.com>
7259 * hooks.c (hook_bool_bool_false, hook_bool_bool_gcc_optionsp_false,
7260 hook_bool_mode_false, hook_bool_mode_true,
7261 hook_bool_mode_const_rtx_false, hook_bool_mode_const_rtx_true,
7262 hook_bool_mode_rtx_false, hook_bool_mode_rtx_true,
7263 hook_bool_const_rtx_insn_const_rtx_insn_true,
7264 hook_bool_mode_uhwi_false, hook_void_FILEptr_constcharptr,
7265 hook_bool_FILEptr_rtx_false, hook_bool_gsiptr_false,
7266 hook_bool_const_tree_hwi_hwi_const_tree_false,
7267 hook_bool_const_tree_hwi_hwi_const_tree_true,
7268 default_can_output_mi_thunk_no_vcall, hook_int_uint_mode_1,
7269 hook_int_const_tree_0, hook_int_const_tree_const_tree_1,
7270 hook_int_rtx_0, hook_int_rtx_bool_0, hook_void_tree,
7271 hook_void_constcharptr, hook_void_tree_treeptr, hook_void_int_int,
7272 hook_bool_tree_false, hook_bool_const_tree_false, hook_bool_tree_true,
7273 hook_bool_const_tree_true, hook_bool_tree_tree_false,
7274 hook_bool_tree_tree_true, hook_bool_tree_bool_false,
7275 hook_bool_rtx_insn_true, hook_bool_rtx_false,
7276 hook_bool_uintp_uintp_false,
7277 hook_bool_rtx_mode_int_int_intp_bool_false, hook_rtx_rtx_null,
7278 hook_rtx_tree_int_null, hook_uint_mode_0,
7279 hook_constcharptr_const_tree_null, hook_tree_tree_int_treep_bool_null,
7280 hook_tree_tree_tree_null, hook_tree_tree_tree_tree_null,
7281 hook_constcharptr_const_rtx_insn_null,
7282 hook_constcharptr_const_tree_const_tree_null,
7283 hook_constcharptr_int_const_tree_null,
7284 hook_constcharptr_int_const_tree_const_tree_null,
7285 hook_tree_const_tree_null, hook_bool_rtx_insn_int_false,
7286 hook_void_rtx_insn_int, hook_void_gcc_optionsp): For arguments with
7287 ATTRIBUTE_UNUSED, remove parameter name as well as ATTRIBUTE_UNUSED.
7289 * vec.h (vNULL): Extend comment to say = vNULL initialization
7290 isn't needed for static vars.
7292 * sel-sched-ir.c (sel_global_bb_info, sel_region_bb_info,
7293 loop_nests, s_i_d, last_added_blocks): Remove unnecessary
7294 = vNULL initialization of file scope vec.
7295 * passes.c (pass_tab, enabled_pass_uid_range_tab,
7296 disabled_pass_uid_range_tab): Likewise.
7297 * haifa-sched.c (sched_luids, h_i_d): Likewise.
7298 * tree-chkp-opt.c (check_infos): Likewise.
7299 * sel-sched.c (vec_av_set, vec_temp_moveop_nops): Likewise.
7301 * vec.h (vnull::operator vec): Add constexpr keyword for
7304 2016-09-23 Doug Gilmore <doug.gilmore@imgtec.com>
7306 PR tree-optimization/77654
7307 * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Add call
7308 to duplicate_ssa_name_ptr_info.
7310 2016-09-23 David Malcolm <dmalcolm@redhat.com>
7312 PR preprocessor/77672
7313 * input.c (selftest::test_lexer_string_locations_simple): Update
7314 test to expect location information of the terminator character
7315 at the location of the final closing quote.
7316 (selftest::test_lexer_string_locations_hex): Likewise.
7317 (selftest::test_lexer_string_locations_oct): Likewise.
7318 (selftest::test_lexer_string_locations_letter_escape_1): Likewise.
7319 (selftest::test_lexer_string_locations_letter_escape_2): Likewise.
7320 (selftest::test_lexer_string_locations_ucn4): Likewise.
7321 (selftest::test_lexer_string_locations_ucn8): Likewise.
7322 (selftest::test_lexer_string_locations_u8): Likewise.
7323 (selftest::test_lexer_string_locations_utf8_source): Likewise.
7324 (selftest::test_lexer_string_locations_concatenation_1): Likewise.
7325 (selftest::test_lexer_string_locations_concatenation_2): Likewise.
7326 (selftest::test_lexer_string_locations_concatenation_3): Likewise.
7327 (selftest::test_lexer_string_locations_macro): Likewise.
7328 (selftest::test_lexer_string_locations_long_line): Likewise.
7330 2016-09-23 Richard Biener <rguenther@suse.de>
7332 * tree-ssa-sccvn.c (visit_reference_op_call): Value number
7333 virtual definition to virtual use if the call devirtualizes
7334 to a const or pure function.
7335 (visit_use): Also visit calls we can devirtualize to a
7336 const or pure function.
7338 2016-09-23 Richard Biener <rguenther@suse.de>
7340 PR tree-optimization/77697
7341 * tree-ssa-forwprop.c (defcodefor_name): Remove bogus code,
7342 signal error if we have sth ternary or unhandled.
7344 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
7346 * config/arm/arm_neon.h (vabd_f16): New.
7380 (vcvt_f16_s16): New.
7381 (vcvt_f16_u16): New.
7382 (vcvt_s16_f16): New.
7383 (vcvt_u16_f16): New.
7384 (vcvtq_f16_s16): New.
7385 (vcvtq_f16_u16): New.
7386 (vcvtq_s16_f16): New.
7387 (vcvtq_u16_f16): New.
7388 (vcvta_s16_f16): New.
7389 (vcvta_u16_f16): New.
7390 (vcvtaq_s16_f16): New.
7391 (vcvtaq_u16_f16): New.
7392 (vcvtm_s16_f16): New.
7393 (vcvtm_u16_f16): New.
7394 (vcvtmq_s16_f16): New.
7395 (vcvtmq_u16_f16): New.
7396 (vcvtn_s16_f16): New.
7397 (vcvtn_u16_f16): New.
7398 (vcvtnq_s16_f16): New.
7399 (vcvtnq_u16_f16): New.
7400 (vcvtp_s16_f16): New.
7401 (vcvtp_u16_f16): New.
7402 (vcvtpq_s16_f16): New.
7403 (vcvtpq_u16_f16): New.
7404 (vcvt_n_f16_s16): New.
7405 (vcvt_n_f16_u16): New.
7406 (vcvtq_n_f16_s16): New.
7407 (vcvtq_n_f16_u16): New.
7408 (vcvt_n_s16_f16): New.
7409 (vcvt_n_u16_f16): New.
7410 (vcvtq_n_s16_f16): New.
7411 (vcvtq_n_u16_f16): New.
7425 (vmul_lane_f16): New.
7428 (vmulq_lane_f16): New.
7450 (vrsqrteq_f16): New.
7454 (vrsqrtsq_f16): New.
7458 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
7460 * config.gcc (extra_headers): Add arm_fp16.h
7461 * config/arm/arm_fp16.h: New.
7462 * config/arm/arm_neon.h: Include "arm_fp16.h".
7464 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
7466 * config/arm/arm_neon_builtins.def (vadd): New (v8hf, v4hf
7468 (vmulf): New (v8hf, v4hf variants).
7469 (vfma): New (v8hf, v4hf variants).
7470 (vfms): New (v8hf, v4hf variants).
7471 (vsub): New (v8hf, v4hf variants).
7472 (vcage): New (v8hf, v4hf variants).
7473 (vcagt): New (v8hf, v4hf variants).
7474 (vcale): New (v8hf, v4hf variants).
7475 (vcalt): New (v8hf, v4hf variants).
7476 (vceq): New (v8hf, v4hf variants).
7477 (vcgt): New (v8hf, v4hf variants).
7478 (vcge): New (v8hf, v4hf variants).
7479 (vcle): New (v8hf, v4hf variants).
7480 (vclt): New (v8hf, v4hf variants).
7481 (vceqz): New (v8hf, v4hf variants).
7482 (vcgez): New (v8hf, v4hf variants).
7483 (vcgtz): New (v8hf, v4hf variants).
7484 (vcltz): New (v8hf, v4hf variants).
7485 (vclez): New (v8hf, v4hf variants).
7486 (vabd): New (v8hf, v4hf variants).
7487 (vmaxf): New (v8hf, v4hf variants).
7488 (vmaxnm): New (v8hf, v4hf variants).
7489 (vminf): New (v8hf, v4hf variants).
7490 (vminnm): New (v8hf, v4hf variants).
7491 (vpmaxf): New (v4hf variant).
7492 (vpminf): New (v4hf variant).
7493 (vpadd): New (v4hf variant).
7494 (vrecps): New (v8hf, v4hf variants).
7495 (vrsqrts): New (v8hf, v4hf variants).
7496 (vabs): New (v8hf, v4hf variants).
7497 (vneg): New (v8hf, v4hf variants).
7498 (vrecpe): New (v8hf, v4hf variants).
7499 (vrnd): New (v8hf, v4hf variants).
7500 (vrnda): New (v8hf, v4hf variants).
7501 (vrndm): New (v8hf, v4hf variants).
7502 (vrndn): New (v8hf, v4hf variants).
7503 (vrndp): New (v8hf, v4hf variants).
7504 (vrndx): New (v8hf, v4hf variants).
7505 (vrsqrte): New (v8hf, v4hf variants).
7506 (vmul_lane): Add v4hf and v8hf variants.
7507 (vmul_n): Add v4hf and v8hf variants.
7508 (vext): New (v8hf, v4hf variants).
7509 (vcvts): New (v8hi, v4hi variants).
7510 (vcvts): New (v8hf, v4hf variants).
7511 (vcvtu): New (v8hi, v4hi variants).
7512 (vcvtu): New (v8hf, v4hf variants).
7513 (vcvts_n): New (v8hf, v4hf variants).
7514 (vcvtu_n): New (v8hi, v4hi variants).
7515 (vcvts_n): New (v8hi, v4hi variants).
7516 (vcvtu_n): New (v8hf, v4hf variants).
7517 (vbsl): New (v8hf, v4hf variants).
7518 (vcvtas): New (v8hf, v4hf variants).
7519 (vcvtau): New (v8hf, v4hf variants).
7520 (vcvtms): New (v8hf, v4hf variants).
7521 (vcvtmu): New (v8hf, v4hf variants).
7522 (vcvtns): New (v8hf, v4hf variants).
7523 (vcvtnu): New (v8hf, v4hf variants).
7524 (vcvtps): New (v8hf, v4hf variants).
7525 (vcvtpu): New (v8hf, v4hf variants).
7527 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
7529 * config/arm/arm-builtins.c (hf_UP): New.
7531 (vfp_builtin_data): New. Update comment.
7532 (enum arm_builtins): Include "arm_vfp_builtins.def".
7533 (ARM_BUILTIN_VFP_PATTERN_START): New.
7534 (arm_init_vfp_builtins): New.
7535 (arm_init_builtins): Add arm_init_vfp_builtins.
7536 (arm_expand_vfp_builtin): New.
7537 (arm_expand_builtins): Update for arm_expand_vfp_builtin. Fix
7539 * config/arm/arm_vfp_builtins.def: New file.
7540 * config/arm/t-arm (arm.o): Add arm_vfp_builtins.def.
7541 (arm-builtins.o): Likewise.
7543 2016-09-23 Kugan Vivekanandarajah <kuganv@linaro.org>
7546 * ipa-cp.c (propagate_vr_accross_jump_function): Drop TREE_OVERFLOW
7547 from constant while creating value range.
7549 2016-09-23 Renlin Li <renlin.li@arm.com>
7551 * ira.c (ira): Move ira_use_lra_p initialization code to ...
7552 (ira_init_once): Here.
7554 2016-09-23 Uros Bizjak <ubizjak@gmail.com>
7555 Jakub Jelinek <jakub@redhat.com>
7557 * hooks.h (hook_uint_uintp_false): Rename to...
7558 (hook_bool_uint_uintp_false): ... this.
7559 * hooks.c (hook_uint_uintp_false): Rename to...
7560 (hook_bool_uint_uintp_false): ... this.
7561 * target.def (elf_flags_numeric): Use hook_bool_uint_uintp_false
7562 instead of hook_uint_uintp_false.
7564 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
7566 * config/arm/arm-builtins.c (arm_init_neon_builtin): New.
7567 (arm_init_builtins): Move body of a loop to the standalone
7568 function arm_init_neon_builtin.
7569 (arm_expand_neon_builtin_1): New. Update comment. Function body
7570 moved from arm_neon_builtin with some white-space fixes.
7571 (arm_expand_neon_builtin): Move code into the standalone function
7572 arm_expand_neon_builtin_1.
7574 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
7576 * config/arm/iterators.md (VCVTHI): New.
7577 (NEON_VCMP): Add UNSPEC_VCLT and UNSPEC_VCLE. Fix a long line.
7581 (V_reg): Add HF, V4HF and V8HF. Fix white-space.
7582 (V_HALF): Add V4HF. Fix white-space.
7583 (V_if_elem): Add HF, V4HF and V8HF. Fix white-space.
7584 (V_s_elem): Likewise.
7585 (V_sz_elem): Fix white-space.
7586 (V_elem_ch): Likewise.
7588 (scalar_mul_constraint): Add V8HF and V4HF.
7589 (Is_float_mode): Fix white-space.
7590 (Is_d_reg): Add V4HF and V8HF. Fix white-space.
7591 (q): Add HF. Fix white-space.
7594 (cmp_op_unsp): Add UNSPEC_VCALE and UNSPEC_VCALT.
7595 (neon_vfm_lane_as): New.
7596 * config/arm/neon.md (add<mode>3_fp16): New.
7597 (sub<mode>3_fp16): New.
7598 (mul<mode>3add<mode>_neon): New.
7599 (fma<VH:mode>4_intrinsic): New.
7600 (fmsub<VCVTF:mode>4_intrinsic): Fix white-space.
7601 (fmsub<VH:mode>4_intrinsic): New.
7602 (<absneg_str><mode>2): New.
7603 (neon_v<absneg_str><mode>): New.
7604 (neon_v<fp16_rnd_str><mode>): New.
7605 (neon_vrsqrte<mode>): New.
7606 (neon_vpaddv4hf): New.
7607 (neon_vadd<mode>): New.
7608 (neon_vsub<mode>): New.
7609 (neon_vmulf<mode>): New.
7610 (neon_vfma<VH:mode>): New.
7611 (neon_vfms<VH:mode>): New.
7612 (neon_vc<cmp_op><mode>): New.
7613 (neon_vc<cmp_op><mode>_fp16insn): New
7614 (neon_vc<cmp_op_unsp><mode>_fp16insn_unspec): New.
7615 (neon_vca<cmp_op><mode>): New.
7616 (neon_vca<cmp_op><mode>_fp16insn): New.
7617 (neon_vca<cmp_op_unsp><mode>_fp16insn_unspec): New.
7618 (neon_vc<cmp_op>z<mode>): New.
7619 (neon_vabd<mode>): New.
7620 (neon_v<maxmin>f<mode>): New.
7621 (neon_vp<maxmin>fv4hf: New.
7622 (neon_<fmaxmin_op><mode>): New.
7623 (neon_vrecps<mode>): New.
7624 (neon_vrsqrts<mode>): New.
7625 (neon_vrecpe<mode>): New (VH variant).
7626 (neon_vdup_lane<mode>_internal): New.
7627 (neon_vdup_lane<mode>): New.
7628 (neon_vcvt<sup><mode>): New (VCVTHI variant).
7629 (neon_vcvt<sup><mode>): New (VH variant).
7630 (neon_vcvt<sup>_n<mode>): New (VH variant).
7631 (neon_vcvt<sup>_n<mode>): New (VCVTHI variant).
7632 (neon_vcvt<vcvth_op><sup><mode>): New.
7633 (neon_vmul_lane<mode>): New.
7634 (neon_vmul_n<mode>): New.
7635 * config/arm/unspecs.md (UNSPEC_VCALE): New
7636 (UNSPEC_VCALT): New.
7637 (UNSPEC_VFMA_LANE): New.
7638 (UNSPECS_VFMS_LANE): New.
7640 2016-09-23 Dominik Vogt <vogt@linux.vnet.ibm.com>
7642 * config/s390/s390.md ("*extzv<mode>_zEC12", "*extzv<mode>_z10")
7643 ("*extzv<mode><clobbercc_or_nocc>"):
7644 Correct a typo in a comment.
7646 ("*insv<mode>_zEC12", "*insv<mode>_z10")
7647 ("*insv<mode><clobbercc_or_nocc>"): Ditto.
7648 ("*insv<mode>_zEC12_appendbitsleft")
7649 ("*insv<mode><clobbercc_or_nocc>_appendbitsleft")
7650 ("*insv<mode>_z10_appendbitsleft"): Ditto.
7651 ("*insv<mode>_zEC12_noshift", "*insv<mode>_z10_noshift")
7652 ("*insv<mode><clobbercc_or_nocc>_noshift"): Ditto.
7653 Provide pattern with operands switched.
7654 ("*pre_z10_extv<mode>"):
7655 Use new subst patterns.
7656 ("*extzvdi<clobbercc_or_nocc>_lshiftrt", "*<risbg_n>_ior_and_sr_ze")
7657 ("*extvsidi<clobbercc_or_nocc>", "*<risbg_n>_and_subregdi_rotr")
7658 ("*<risbg_n>_and_subregdi_rotl", "*<risbg_n>_di_and_rot")
7659 ("*insv_z10_noshift_cc", "*insv_z10_noshift_cconly")
7660 ("*<risbg_n>_<mode>_ior_and_lshiftrt")
7661 ("*<risbg_n>_sidi_ior_and_lshiftrt")
7662 ("*trunc_sidi_and_subreg_lshrt<clobbercc_or_nocc>"):
7664 ("*extzv_<mode>_sll", "*extzv_<mode>_srl")
7665 ("*extzv_<mode>_srl<clobbercc_or_nocc>")
7666 ("*extzv_<mode>_sll<clobbercc_or_nocc>"): Renamed patterns, use risbgn
7668 ("SINT"): New mode_iterator with SI, HI, QI.
7669 * config/s390/subst.md ("clobbercc_or_nocc_subst", "z10_or_zEC12_cond")
7670 ("clobbercc_or_nocc", "risbg_n"): New constructs for risbg pattern
7673 2016-09-23 Dominik Vogt <vogt@linux.vnet.ibm.com>
7675 * config/s390/predicates.md ("contiguous_bitmask_operand"): Adapt to
7676 new interface of s390_contiguous_bitmask_p.
7677 ("contiguous_bitmask_nowrap_operand"): New predicate.
7678 ("*anddi3_cc", "*anddi3_cconly", "*anddi3"): Replace NxxDq with NxxDw.
7679 * config/s390/constraints.md ("NxxDw", "NxxSq"): Adapt to new interface
7680 of s390_contiguous_bitmask_p.
7681 ("NxxDw"): Rename NxxDq constraint to NxxDw.
7682 ("NxxSw"): New constraint.
7683 * config/s390/s390.md ("*andsi3_zarch"): Enable bitmask wraparound.
7684 * config/s390/s390-protos.h (s390_contiguous_bitmask_p): Updated
7686 (s390_contiguous_bitmask_nowrap_p): Export.
7687 * config/s390/s390.c (s390_contiguous_bitmask_nowrap_p): New name of
7688 former s390_contiguous_bitmask_p.
7689 (s390_contiguous_bitmask_p): Use s390_contiguous_bitmask_nowrap_p to
7690 detect contiguous bit ranges with wraparound. Change signature to
7691 return START and END position instead of POS and LENGTH.
7692 (s390_contiguous_bitmask_vector_p): Remove extra code for continous bit
7693 ranges with wraparound.
7694 (s390_extzv_shift_ok): Use s390_contiguous_bitmask_nowrap_p.
7695 (s390_contiguous_bitmask_vector_p,s390_extzv_shift_ok,print_operand):
7696 Adapt to new signature of s390_contiguous_bitmask_p.
7698 2016-09-23 Bin Cheng <bin.cheng@arm.com>
7700 * tree-vect-loop-manip.c (create_intersect_range_checks_index): New.
7701 (create_intersect_range_checks): New.
7702 (vect_create_cond_for_alias_checks): Call above function.
7704 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
7706 * config/arm/iterators.md (Code iterators): Fix some white-space
7710 (FCVT): Moved from vfp.md.
7711 (VCVT_HF_US_N): New.
7712 (VCVT_SI_US_N): New.
7717 (FCVTI32typename): Moved from vfp.md.
7718 (sup): Add UNSPEC_VCVTA_S, UNSPEC_VCVTA_U, UNSPEC_VCVTM_S,
7719 UNSPEC_VCVTM_U, UNSPEC_VCVTN_S, UNSPEC_VCVTN_U, UNSPEC_VCVTP_S,
7720 UNSPEC_VCVTP_U, UNSPEC_VCVT_HF_S_N, UNSPEC_VCVT_HF_U_N,
7721 UNSPEC_VCVT_SI_S_N, UNSPEC_VCVT_SI_U_N, UNSPEC_VCVTH_S_N,
7722 UNSPEC_VCVTH_U_N, UNSPEC_VCVTH_S and UNSPEC_VCVTH_U.
7724 (fp16_rnd_str): New.
7725 (fp16_rnd_insn): New.
7726 * config/arm/unspecs.md (UNSPEC_VCVT_HF_S_N): New.
7727 (UNSPEC_VCVT_HF_U_N): New.
7728 (UNSPEC_VCVT_SI_S_N): New.
7729 (UNSPEC_VCVT_SI_U_N): New.
7730 (UNSPEC_VCVTH_S): New.
7731 (UNSPEC_VCVTH_U): New.
7732 (UNSPEC_VCVTA_S): New.
7733 (UNSPEC_VCVTA_U): New.
7734 (UNSPEC_VCVTM_S): New.
7735 (UNSPEC_VCVTM_U): New.
7736 (UNSPEC_VCVTN_S): New.
7737 (UNSPEC_VCVTN_U): New.
7738 (UNSPEC_VCVTP_S): New.
7739 (UNSPEC_VCVTP_U): New.
7740 (UNSPEC_VCVTP_S): New.
7741 (UNSPEC_VCVTP_U): New.
7743 (UNSPEC_VRNDA): New.
7744 (UNSPEC_VRNDI): New.
7745 (UNSPEC_VRNDM): New.
7746 (UNSPEC_VRNDN): New.
7747 (UNSPEC_VRNDP): New.
7748 (UNSPEC_VRNDX): New.
7749 * config/arm/vfp.md (<absneg_str>hf2): New.
7751 (neon_v<fp16_rnd_str>hf): New.
7752 (neon_vrndihf): New.
7757 (*mulsf3neghf_vfp): New.
7758 (*negmulhf3_vfp): New.
7759 (*mulsf3addhf_vfp): New.
7760 (*mulhf3subhf_vfp): New.
7761 (*mulhf3neghfaddhf_vfp): New.
7762 (*mulhf3neghfsubhf_vfp): New.
7765 (fmsubhf4_fp16): New.
7769 (neon_vsqrthf): New.
7770 (neon_vrsqrtshf): New.
7771 (FCVT): Move to iterators.md.
7772 (FCVTI32typename): Likewise.
7773 (neon_vcvth<sup>hf): New.
7774 (neon_vcvth<sup>si): New.
7775 (neon_vcvth<sup>_nhf_unspec): New.
7776 (neon_vcvth<sup>_nhf): New.
7777 (neon_vcvth<sup>_nsi_unspec): New.
7778 (neon_vcvth<sup>_nsi): New.
7779 (neon_vcvt<vcvth_op>h<sup>si): New.
7780 (neon_<fmaxmin_op>hf): New.
7782 2016-09-23 Dominik Vogt <vogt@linux.vnet.ibm.com>
7784 * config/s390/s390.md (bitoff, bitoff_plus): Neq mode attributes.
7785 ("*extzv<mode>_zEC12", "*insv<mode>_zEC12", "*insv<mode>_z10")
7786 ("*insv<mode>_zEC12_appendbitsleft")
7787 ("*insv<mode>_z10_appendbitsleft", "*r<noxa>sbg_<mode>_sll")
7788 ("*r<noxa>sbg_<mode>_srl"): Use new attributes.
7790 2016-09-23 Jakub Jelinek <jakub@redhat.com>
7792 * ipa-cp.c (ipcp_store_vr_results): Avoid static local var zero.
7793 * sreal.h (sreal::min, sreal::max): Avoid static local vars,
7794 construct values without normalization.
7795 * tree-ssa-sccvn.c (vn_reference_lookup_3): Don't initialize
7796 static local lhs_ops to vNULL.
7798 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
7799 Jiong Wang <jiong.wang@arm.com>
7801 * config/arm/arm.c (coproc_secondary_reload_class): Make HFmode
7802 available when FP16 instructions are available.
7803 (output_move_vfp): Add support for 16-bit data moves.
7804 (arm_validize_comparison): Fix some white-space. Support HFmode
7805 by conversion to SFmode.
7806 * config/arm/arm.md (truncdfhf2): Fix a comment.
7807 (extendhfdf2): Likewise.
7809 (movsicc): Fix some white-space.
7811 (movsfcc): Fix some white-space.
7813 * config/arm/vfp.md (*arm_movhi_vfp): Disable when VFP FP16
7814 instructions are available.
7815 (*thumb2_movhi_vfp): Likewise.
7816 (*arm_movhi_fp16): New.
7817 (*thumb2_movhi_fp16): New.
7818 (*movhf_vfp_fp16): New.
7819 (*movhf_vfp_neon): Disable when VFP FP16 instructions are available.
7820 (*movhf_vfp): Likewise.
7821 (extendhfsf2): Enable when VFP FP16 instructions are available.
7822 (truncsfhf2): Enable when VFP FP16 instructions are available.
7824 2016-09-23 Martin Liska <mliska@suse.cz>
7826 * config/s390/vx-builtins.md: Replace 'adress' with 'address'.
7828 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
7830 * config/arm/arm.c (arm_evpc_neon_vuzp): Add support for V8HF and
7832 (arm_evpc_neon_vtrn): Likewise.
7833 (arm_evpc_neon_vrev): Likewise.
7834 (arm_evpc_neon_vext): Likewise.
7835 * config/arm/arm_neon.h (vbsl_f16): New.
7839 (vdup_lane_f16): New.
7840 (vdupq_lane_f16): New.
7853 * config/arm/arm_neon_buillins.def (vdup_n): New (v8hf, v4hf variants).
7854 (vdup_lane): New (v8hf, v4hf variants).
7855 (vext): New (v8hf, v4hf variants).
7856 (vbsl): New (v8hf, v4hf variants).
7857 * config/arm/iterators.md (VDQWH): New.
7859 (V_double_vector_mode): Add V8HF and V4HF. Fix white-space.
7860 (Scalar_mul_8_16): Fix white-space.
7861 (Is_d_reg): Add V4HF and V8HF.
7862 * config/arm/neon.md (neon_vdup_lane<mode>_internal): New.
7863 (neon_vdup_lane<mode>): New.
7864 (neon_vtrn<mode>_internal): Replace VDQW with VDQWH.
7865 (*neon_vtrn<mode>_insn): Likewise.
7866 (neon_vzip<mode>_internal): Likewise. Also fix white-space.
7867 (*neon_vzip<mode>_insn): Likewise
7868 (neon_vuzp<mode>_internal): Likewise.
7869 (*neon_vuzp<mode>_insn): Likewise
7870 * config/arm/vec-common.md (vec_perm_const<mode>): New.
7872 2016-09-23 Jiong Wang <jiong.wang@arm.com>
7873 Matthew Wahab <matthew.wahab@arm.com>
7875 * config/arm/arm.c (output_move_vfp): Weaken assert to allow HImode.
7876 (arm_hard_regno_mode_ok): Allow HImode values in VFP registers.
7877 * config/arm/arm.md (*movhi_bytes): Disable when VFP registers are
7878 available. Also fix some white-space.
7879 * config/arm/vfp.md (*arm_movhi_vfp): New.
7880 (*thumb2_movhi_vfp): New.
7882 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
7884 * config/arm/arm-c.c (arm_cpu_builtins): Define
7885 "__ARM_FEATURE_FP16_SCALAR_ARITHMETIC" and
7886 "__ARM_FEATURE_FP16_VECTOR_ARITHMETIC".
7888 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
7890 * doc/sourcebuild.texi (ARM-specific attributes): Add anchor for
7891 arm_v8_1a_neon_ok. Add entries for arm_v8_2a_fp16_scalar_ok,
7892 arm_v8_2a_fp16_scalar_hw, arm_v8_2a_fp16_neon_ok and
7893 arm_v8_2a_fp16_neon_hw.
7894 (Add options): Add entries for arm_v8_1a_neon, arm_v8_2a_scalar,
7897 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
7899 * doc/sourcebuild.texi (ARM-specific attributes): Add entries for
7900 arm_fp16_alternative_ok and arm_fp16_none_ok.
7902 2016-09-23 Martin Liska <mliska@suse.cz>
7904 * ipa-icf.c (sem_variable::merge): Replace adress with address.
7906 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
7908 * config/arm/arm-arches.def ("armv8.1-a"): Add FL_CRC32.
7910 ("armv8.2-a+fp16"): New.
7911 * config/arm/arm-protos.h (FL2_ARCH8_2): New.
7912 (FL2_FP16INST): New.
7913 (FL2_FOR_ARCH8_2A): New.
7914 * config/arm/arm-tables.opt: Regenerate.
7915 * config/arm/arm.c (arm_arch8_2): New.
7916 (arm_fp16_inst): New.
7917 (arm_option_override): Set arm_arch8_2 and arm_fp16_inst. Check
7918 for incompatible fp16-format settings.
7919 * config/arm/arm.h (TARGET_VFP_FP16INST): New.
7920 (TARGET_NEON_FP16INST): New.
7921 (arm_arch8_2): Declare.
7922 (arm_fp16_inst): Declare.
7923 * config/arm/bpabi.h (BE8_LINK_SPEC): Add entries for
7924 march=armv8.2-a and march=armv8.2-a+fp16.
7925 * config/arm/t-aprofile (Arch Matches): Add entries for armv8.2-a
7927 * doc/invoke.texi (ARM Options): Add "-march=armv8.1-a",
7928 "-march=armv8.2-a" and "-march=armv8.2-a+fp16".
7930 2016-09-23 Martin Liska <mliska@suse.cz>
7932 * doc/extend.texi: Remove fused-madd from i386 target options.
7934 2016-09-23 Martin Liska <mliska@suse.cz>
7936 * config/i386/i386.c (ix86_valid_target_attribute_inner_p):
7939 2016-09-23 Martin Liska <mliska@suse.cz>
7941 * config/i386/i386.c (ix86_valid_target_attribute_inner_p):
7944 2016-09-23 Martin Liska <mliska@suse.cz>
7947 * config/i386/i386.c (ix86_option_override_internal): Change
7948 signature and return false when there's an error related to
7950 (release_options_strings): New function.
7951 (ix86_valid_target_attribute_tree): Call the function.
7953 2016-09-23 Jakub Jelinek <jakub@redhat.com>
7955 * hsa-gen.c (hsa_op_immed::hsa_op_immed Use CONSTRUCTOR_NELTS (...)
7956 instead of vec_safe_length (CONSTRUCTOR_ELTS (...)).
7957 (gen_hsa_ctor_assignment): Likewise.
7958 * print-tree.c (print_node): Likewise.
7959 * tree-dump.c (dequeue_and_dump): Likewise.
7960 * tree-sra.c (sra_modify_constructor_assign): Likewise.
7961 * expr.c (store_constructor): Likewise.
7962 * fold-const.c (operand_equal_p): Likewise.
7963 * tree-pretty-print.c (dump_generic_node): Likewise.
7964 * hsa-brig.c (hsa_op_immed::emit_to_buffer): Likewise.
7965 * ipa-icf-gimple.c (func_checker::compare_operand): Likewise.
7967 2016-09-23 Richard Biener <rguenther@suse.de>
7969 * hooks.h (hook_uint_uintp_false): Declare.
7971 2016-09-22 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
7973 * config/avr/avr.c (avr_rtx_costs_1): Handle DImode MULT.
7974 (avr_address_cost): Replace 61 with MAX_LD_OFFSET(mode).
7976 2016-09-22 Martin Sebor <msebor@redhat.com>
7979 * gimple-ssa-sprintf.c (target_int_min, target_int_max): Use
7980 HOST_BITS_PER_WIDE_INT, make a static local variable auto.
7981 (target_int_min): Correct computation.
7982 (format_integer): Use long long as the argument for the ll length
7984 (format_floating): Use target_int_max().
7985 (get_string_length): Same.
7986 (format_string): Avoid setting the bounded flag for strings
7988 (try_substitute_return_value): Avoid setting range info when
7989 the result isn't bounded.
7990 * varasm.c (assemble_name): Increase buffer size.
7992 2016-09-22 Andre Vieira <andre.simoesdiasvieira@arm.com>
7993 Terry Guo <terry.guo@arm.com>
7995 * target.def (elf_flags_numeric): New target hook.
7996 * targhooks.h (default_asm_elf_flags_numeric): New.
7997 * varasm.c (default_asm_elf_flags_numeric): New.
7998 (default_elf_asm_named_section): Use new target hook.
7999 * config/arm/arm.opt (mpure-code): New.
8000 * config/arm/arm.h (SECTION_ARM_PURECODE): New.
8001 * config/arm/arm.c (arm_asm_init_sections): Add section
8002 attribute to default text section if -mpure-code.
8003 (arm_option_check_internal): Diagnose use of option with
8004 non supported targets and/or options.
8005 (arm_asm_elf_flags_numeric): New.
8006 (arm_function_section): New.
8007 (arm_elf_section_type_flags): New.
8008 * config/arm/elf.h (JUMP_TABLES_IN_TEXT_SECTION): Disable
8010 * doc/texi (TARGET_ASM_ELF_FLAGS_NUMERIC): New.
8011 * doc/texi.in (TARGET_ASM_ELF_FLAGS_NUMERIC): Likewise.
8013 2016-09-22 Jan Hubicka <hubicka@ucw.cz>
8015 * regcprop.c (copyprop_hardreg_forward_1): Remove noop moves.
8017 2016-09-22 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
8019 * emit-rtl.c (next_cc0_user): Make argument type rtx_insn *.
8020 * rtl.h: Adjust prototype.
8022 2016-09-22 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
8024 * emit-rtl.c (next_active_insn): Change argument type to rtx_insn *.
8025 (prev_active_insn): Likewise.
8026 (active_insn_p): Likewise.
8027 * rtl.h: Adjust prototypes.
8028 * cfgcleanup.c (merge_blocks_move_successor_nojumps): Adjust.
8029 * config/arc/arc.md: Likewise.
8030 * config/pa/pa.c (branch_to_delay_slot_p): Likewise.
8031 (branch_needs_nop_p): Likewise.
8032 (use_skip_p): Likewise.
8033 * config/sh/sh.c (gen_block_redirect): Likewise.
8034 (split_branches): Likewise.
8035 * reorg.c (optimize_skip): Likewise.
8036 (fill_simple_delay_slots): Likewise.
8037 (fill_slots_from_thread): Likewise.
8038 (relax_delay_slots): Likewise.
8039 * resource.c (mark_target_live_regs): Likewise.
8041 2016-09-22 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
8043 * config/cris/cris.c (cris_asm_output_case_end): Change argument
8045 * emit-rtl.c (next_nonnote_nondebug_insn): Likewise.
8046 (prev_nonnote_nondebug_insn): Likewise.
8047 * config/cris/cris-protos.h: Adjust prototype.
8049 * jump.c (rtx_renumbered_equal_p): Adjust.
8051 2016-09-22 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
8053 * emit-rtl.c (prev_real_insn): Change argument type to rtx_insn *.
8054 * rtl.h: Adjust prototype.
8055 * config/sh/sh.md: Adjust.
8056 * dwarf2out.c (add_var_loc_to_decl): Likewise.
8058 2016-09-22 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
8060 * emit-rtl.c (next_nondebug_insn): Change argument type to rtx_insn *.
8061 (prev_nondebug_insn): Likewise.
8062 * loop-doloop.c (doloop_condition_get): Likewise.
8063 * rtl.h: Adjust prototype.
8064 * cfgloop.h: Likewise.
8066 2016-09-22 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
8068 * emit-rtl.c (next_nonnote_insn): Change argument type to rtx_insn *.
8069 (prev_nonnote_insn): Likewise.
8070 * jump.c (reversed_comparison_code_parts): Likewise.
8071 (reversed_comparison): Likewise.
8072 * rtl.h: Adjust prototypes.
8073 * config/arc/arc.md: Adjust.
8074 * cse.c (find_comparison_args): Likewise.
8075 * reorg.c (redundant_insn): Change return type to rtx_insn *.
8076 (fix_reg_dead_note): Change argument type to rtx_insn *.
8077 (delete_prior_computation): Likewise.
8078 (delete_computation): Likewise.
8079 (fill_slots_from_thread): Adjust.
8080 (relax_delay_slots): Likewise.
8081 * simplify-rtx.c (simplify_unary_operation_1): Likewise.
8082 (simplify_relational_operation_1): Likewise.
8083 (simplify_ternary_operation): Likewise.
8085 2016-09-22 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
8087 * config/arc/arc-protos.h (arc_label_align): Change type of
8088 variables from rtx to rtx_insn *.
8089 * config/arc/arc.c (arc_label_align): Likewise.
8090 * config/arm/arm.c (any_sibcall_could_use_r3): Likewise.
8091 * config/bfin/bfin.c (workaround_speculation): Likewise.
8092 * config/c6x/c6x.c (find_next_cycle_insn): Likewise.
8093 (find_last_same_clock): Likewise.
8094 (reorg_split_calls): Likewise.
8095 * config/cris/cris-protos.h (cris_cc0_user_requires_cmp): Likewise.
8096 * config/cris/cris.c (cris_cc0_user_requires_cmp): Likewise.
8097 * config/h8300/h8300-protos.h (same_cmp_preceding_p): Likewise.
8098 (same_cmp_following_p): Likewise.
8099 * config/h8300/h8300.c (same_cmp_preceding_p): Likewise.
8100 (same_cmp_following_p): Likwise.
8101 * config/m32r/m32r.c (m32r_expand_epilogue): Likewise.
8102 * config/nds32/nds32-protos.h (nds32_target_alignment): Likewise.
8103 * config/nds32/nds32.c (nds32_target_alignment): Likewise.
8104 * config/rl78/rl78.c (rl78_alloc_physical_registers_op2): Likewise.
8105 (rl78_alloc_physical_registers_cmp): Likewise.
8106 (rl78_alloc_physical_registers_umul): Likewise.
8107 (rl78_calculate_death_notes): Likewise.
8108 * config/s390/s390-protos.h (s390_label_align): Likewise.
8109 * config/s390/s390.c (s390_label_align): Likewise.
8110 * config/sh/sh.c (barrier_align): Likewise.
8111 * config/sparc/sparc-protos.h (emit_cbcond_nop): Likewise.
8112 * config/sparc/sparc.c (sparc_asm_function_epilogue): Likewise.
8113 (emit_cbcond_nop): Likewise.
8115 2016-09-22 Martin Liska <mliska@suse.cz>
8118 * ipa-icf.c (sem_variable::merge): Yield merge operation if
8119 alias address matters, not necessarily address of original.
8121 2016-09-22 Richard Biener <rguenther@suse.de>
8124 * gimple-fold.c (fold_array_ctor_reference): Turn asserts into
8127 2016-09-22 Richard Biener <rguenther@suse.de>
8130 * gimple-match-head.c (gimple_resimplify1): Drop TREE_OVERFLOW
8131 from constant folding results.
8132 (gimple_resimplify2): Likewise.
8133 (gimple_resimplify3): Likewise.
8135 2016-09-22 Richard Biener <rguenther@suse.de>
8138 * expr.c (expand_expr_real_1): Guard array access against negative
8141 2016-09-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8143 * gimple-ssa-sprintf.c (format_floating_max): Use GMP_RNDN instead
8145 (format_floating): Likewise.
8147 2016-09-22 Jakub Jelinek <jakub@redhat.com>
8150 * tree-inline.c (remap_gimple_stmt): Set has_simduid_loops
8151 for all IFN_GOMP_SIMD_* internal fns, not just for
8152 IFN_GOMP_SIMD_ORDERED_*.
8154 2016-09-21 Michael Meissner <meissner@linux.vnet.ibm.com>
8157 * config/rs6000/predicates.md (invert_fpmask_comparison_operator):
8158 New predicate that matches the ISA 3.0 XSCMP{EQ,GT,GE}DP
8159 instructions when you want to invert the test.
8160 * config/rs6000/rs6000.md (fpmask<mode>): Use the arguments in the
8161 correct order for XXSEL.
8162 (mov<SFDF:mode><SFDF2:mode>cc_invert_p9): Define the inverted test
8163 for using XSCMP{EQ,GT,GE}DP.
8165 2016-09-21 David Malcolm <dmalcolm@redhat.com>
8167 * genconstants.c (main): Introduce noop_reader and convert call
8168 to read_md_files to a method call.
8169 * genenums.c (main): Likewise.
8170 * genmddeps.c (main): Likewise.
8171 * genpreds.c (write_tm_constrs_h): Replace use of "in_fname" with
8172 rtx_reader_ptr->get_top_level_filename ().
8173 (write_tm_preds_h): Likewise.
8174 (write_insn_preds_c): Likewise.
8175 * gensupport.c (class gen_reader): New subclass of rtx_reader.
8176 (rtx_handle_directive): Convert to...
8177 (gen_reader::handle_unknown_directive): ...this.
8178 (init_rtx_reader_args_cb): Convert return type from bool to
8179 rtx_reader *. Create a gen_reader instance, using it for the
8180 call to read_md_files. Return it if no errors occur.
8181 (init_rtx_reader_args): Convert return type from bool to
8183 * gensupport.h (init_rtx_reader_args_cb): Likewise.
8184 (init_rtx_reader_args_cb): Likewise.
8185 * read-md.c (struct file_name_list): Move to class rtx_reader.
8186 (read_md_file): Delete in favor of rtx_reader::m_read_md_file.
8187 (read_md_filename): Delete in favor of
8188 rtx_reader::m_read_md_filename.
8189 (read_md_lineno): Delete in favor of rtx_reader::m_read_md_lineno.
8190 (in_fname): Delete in favor of rtx_reader::m_toplevel_fname.
8191 (base_dir): Delete in favor of rtx_reader::m_base_dir.
8192 (first_dir_md_include): Delete in favor of
8193 rtx_reader::m_first_dir_md_include.
8194 (last_dir_md_include_ptr): Delete in favor of
8195 rtx_reader::m_last_dir_md_include_ptr.
8196 (max_include_len): Delete.
8197 (rtx_reader_ptr): New.
8198 (fatal_with_file_and_line): Use get_filename and get_lineno
8199 accessors of rtx_reader_ptr.
8200 (require_char_ws): Likewise.
8201 (rtx_reader::read_char): New method, based on ::read_char.
8202 (rtx_reader::unread_char): New method, based on ::unread_char.
8203 (read_escape): Use get_filename and get_lineno accessors of
8205 (read_braced_string): Use get_lineno accessor of rtx_reader_ptr.
8206 (read_string): Use get_filename and get_lineno accessors of
8208 (rtx_reader::rtx_reader): New ctor.
8209 (rtx_reader::~rtx_reader): New dtor.
8210 (handle_include): Convert from a function to...
8211 (rtx_reader::handle_include): ...this method, converting
8212 handle_directive from a callback to a virtual function.
8213 (handle_file): Likewise, converting to...
8214 (rtx_reader::handle_file): ...this method.
8215 (handle_toplevel_file): Likewise, converting to...
8216 (rtx_reader::handle_toplevel_file): ...this method.
8217 (rtx_reader::get_current_location): New method.
8218 (parse_include): Convert from a function to...
8219 (rtx_reader::add_include_path): ...this method, dropping redundant
8220 update to unused max_include_len.
8221 (read_md_files): Convert from a function to...
8222 (rtx_reader::read_md_files): ...this method, converting
8223 handle_directive from a callback to a virtual function.
8224 (noop_reader::handle_unknown_directive): New method.
8225 * read-md.h (directive_handler_t): Delete this typedef.
8227 (read_md_file): Delete.
8228 (read_md_lineno): Delete.
8229 (read_md_filename): Delete.
8230 (class rtx_reader): New class.
8231 (rtx_reader_ptr): New decl.
8232 (class noop_reader): New subclass of rtx_reader.
8233 (read_char): Reimplement in terms of rtx_reader::read_char.
8234 (unread_char): Reimplement in terms of rtx_reader::unread_char.
8235 (read_md_files): Delete.
8236 * read-rtl.c (read_rtx_code): Update for deletion of globals
8237 read_md_filename and read_md_lineno.
8239 2016-09-21 Jason Merrill <jason@redhat.com>
8241 * input.h (from_macro_definition_at): New.
8243 2016-09-21 Segher Boessenkool <segher@kernel.crashing.org>
8245 * doc/rtl.texi (JUMP_LABEL): Document RETURN and SIMPLE_RETURN values.
8247 2016-09-21 Bernd Edlinger <bernd.edlinger@hotmail.de>
8249 PR tree-optimization/77550
8250 * tree-vect-stmts.c (create_array_ref): Change parameters.
8251 (get_group_alias_ptr_type): New function.
8252 (vectorizable_store, vectorizable_load): Use get_group_alias_ptr_type.
8254 2016-09-21 Marek Polacek <polacek@redhat.com>
8256 * gimple-ssa-sprintf.c (pass_sprintf_length::compute_format_length):
8257 Add falls through comment.
8259 2016-09-21 Richard Biener <rguenther@suse.de>
8261 * dwarf2out.c (remove_child_with_prev): Clear child->die_sib.
8262 (replace_child): Likewise.
8263 (remove_child_TAG): Adjust.
8264 (move_marked_base_types): Likewise.
8265 (prune_unused_types_prune): Clear die_sib of removed children.
8267 2016-09-21 Georg-Johann Lay <avr@gjlay.de>
8270 * config/avr/avr.c (avr_notice_update_cc) [CC_NONE]: If insn
8271 touches some regs mentioned in cc_status, do CC_STATUS_INIT.
8273 2016-09-21 Richard Biener <rguenther@suse.de>
8275 PR tree-optimization/77648
8276 * tree-ssa-structalias.c (process_constraint): Handle all DEREF
8278 (make_transitive_closure_constraints): Adjust comment.
8279 (make_any_offset_constraints): New function.
8280 (handle_rhs_call): Make sure to first expand a pointer to all
8281 subfields before transitively closing it.
8282 (handle_const_call): Likewise. Properly expand returned
8284 (handle_pure_call): Likewise.
8286 2016-09-21 Richard Biener <rguenther@suse.de>
8287 Jakub Jelinek <jakub@redhat.com>
8289 PR tree-optimization/77621
8290 * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Split
8291 group at non-vectorizable stmts.
8293 2016-09-21 Kugan Vivekanandarajah <kuganv@linaro.org>
8295 PR tree-optimization/72835
8296 * tree-ssa-reassoc.c (make_new_ssa_for_def): New.
8297 (make_new_ssa_for_all_defs): Likewise.
8298 (zero_one_operation): Replace all SSA_NAMEs defined in the chain.
8300 2016-09-20 Martin Sebor <msebor@redhat.com>
8303 * Makefile.in (OBJS): Add gimple-ssa-sprintf.o.
8304 * config/linux.h (TARGET_PRINTF_POINTER_FORMAT): Redefine.
8305 * config/linux.c (gnu_libc_printf_pointer_format): New function.
8306 * config/sol2.h (TARGET_PRINTF_POINTER_FORMAT): Same.
8307 * config/sol2.c (solaris_printf_pointer_format): New function.
8308 * doc/invoke.texi (-Wformat-length, -fprintf-return-value): New
8310 * doc/tm.texi.in (TARGET_PRINTF_POINTER_FORMAT): Document.
8311 * doc/tm.texi: Regenerate.
8312 * gimple-fold.h (get_range_strlen): New function.
8313 (get_maxval_strlen): Declare existing function.
8314 * gimple-fold.c (get_range_strlen): Add arguments and compute both
8315 maximum and minimum.
8316 (get_range_strlen): Define overload.
8317 (get_maxval_strlen): Adjust.
8318 * gimple-ssa-sprintf.c: New file and pass.
8319 * passes.def (pass_sprintf_length): Add new pass.
8320 * targhooks.h (default_printf_pointer_format): Declare new function.
8321 (gnu_libc_printf_pointer_format): Same.
8322 (solaris_libc_printf_pointer_format): Same.
8323 * targhooks.c (default_printf_pointer_format): Define new function.
8324 * tree-pass.h (make_pass_sprintf_length): Declare new function.
8325 * print-tree.c: Increase buffer size.
8327 2016-09-21 Kugan Vivekanandarajah <kuganv@linaro.org>
8329 * tree-vrp.c (get_value_range): Teach PARM_DECL to use ipa-vrp results.
8331 2016-09-21 Kugan Vivekanandarajah <kuganv@linaro.org>
8333 * common.opt: New option -fipa-vrp.
8334 * ipa-cp.c (ipa_get_vr_lat): New.
8335 (ipcp_vr_lattice::print): Likewise.
8336 (print_all_lattices): Call ipcp_vr_lattice::print.
8337 (ipcp_vr_lattice::meet_with): New.
8338 (ipcp_vr_lattice::meet_with_1): Likewise.
8339 (ipcp_vr_lattice::top_p): Likewise.
8340 (ipcp_vr_lattice::bottom_p): Likewsie.
8341 (ipcp_vr_lattice::set_to_bottom): Likewise.
8342 (set_all_contains_variable): Call VR set_to_bottom.
8343 (initialize_node_lattices): Init VR lattices.
8344 (propagate_vr_accross_jump_function): New.
8345 (propagate_constants_accross_call): Call
8346 propagate_vr_accross_jump_function.
8347 (ipcp_store_vr_results): New.
8348 (ipcp_driver): Handle VR.
8349 * ipa-prop.c (ipa_print_node_jump_functions_for_edge): Handle VR.
8350 (ipa_set_jf_unknown): Likewise.
8351 (ipa_compute_jump_functions_for_edge): Likewise.
8352 (ipa_node_params_t::duplicate): Likewise.
8353 (ipa_write_jump_function): Likewise.
8354 (ipa_read_jump_function): Likewise.
8355 (write_ipcp_transformation_info): Likewise.
8356 (read_ipcp_transformation_info): Likewise.
8357 (ipcp_update_vr): New.
8358 (ipcp_transform_function): Handle VR.
8359 * ipa-prop.h (struct ipa_vr): New.
8360 * cgraph.c: Include tree-vrp.h.
8361 * cgraphunit.c: Likewise.
8362 * ipa-utils.c: Likewise.
8365 * toplev.c: Likewise.
8366 * ipa-devirt.c: Likewise.
8367 * ipa-inline-transform.c: Likewise.
8368 * ipa-inline.c: Likewise.
8369 * ipa-profile.c: Likewise.
8371 2016-09-21 Kugan Vivekanandarajah <kuganv@linaro.org>
8373 * doc/invoke.texi: Document -fdump-tree-evrp.
8374 * passes.def: Define new pass_early_vrp.
8375 * timevar.def: Define new TV_TREE_EARLY_VRP.
8376 * tree-pass.h (make_pass_early_vrp): New.
8377 * tree-ssa-propagate.c: Make replace_uses_in non static.
8378 * tree-ssa-propagate.h: Export replace_uses_in.
8379 * tree-vrp.c (extract_range_for_var_from_comparison_expr): New.
8380 (extract_range_from_assert): Factor out
8381 extract_range_for_var_from_comparison_expr.
8382 (vrp_initialize_lattice): New.
8383 (vrp_initialize): Factor out vrp_initialize_lattice.
8384 (vrp_valueize): Fix it to reject complex value ranges.
8385 (vrp_free_lattice): New.
8386 (evrp_dom_walker::before_dom_children): Likewise.
8387 (evrp_dom_walker::after_dom_children): Likewise.
8388 (evrp_dom_walker::push_value_range): Likewise.
8389 (evrp_dom_walker::pop_value_range): Likewise.
8390 (execute_early_vrp): Likewise.
8391 (execute_vrp): Call vrp_initialize_lattice and vrp_free_lattice.
8392 (make_pass_early_vrp): New.
8394 2016-09-20 Uros Bizjak <ubizjak@gmail.com>
8396 * config/i386/i386.md (mult->ashift peephole2s): Use pow2p_hwi
8397 instead of exact_log2.
8399 2016-09-20 Uros Bizjak <ubizjak@gmail.com>
8402 * config/i386/i386.c (ix86_preferred_simd_mode) <case DFmode>:
8403 Don't return word_mode for !TARGET_VECTORIZE_DOUBLE.
8404 (ix86_add_stmt_cost): Penalize DFmode vector operations
8405 for !TARGET_VECTORIZE_DOUBLE.
8407 2016-09-20 Gerald Pfeifer <gerald@pfeifer.com>
8409 * doc/invoke.texi (Warning Options): Simplify language.
8410 (Optimize Options): Complete sentence.
8412 2016-09-20 David Edelsohn <dje.gcc@gmail.com>
8414 * dbxout.c (xcoff_debug_hooks): Add filename parameter to
8417 2016-09-20 Michael Meissner <meissner@linux.vnet.ibm.com>
8420 * config/rs6000/rs6000.c (rs6000_expand_vector_init): For V4SF
8421 inits on power8 and above, use the VMRGEW instruction instead of a
8424 * config/rs6000/altivec.md (UNSPEC_VMRGEW_DIRECT): New unspec.
8425 (p8_vmrgew_v4sf_direct): New VMRGEW insn for V4SF floating
8428 2016-09-20 Tamar Christina <tamar.christina@arm.com>
8430 * config/aarch64/arm_neon.h
8431 (vst2_s64, vst2_u64, vst2_f64, vst2_s8): Add missing attributes.
8432 (vst3_s64, vst3_u64, vst3_f64, vst3_s8): Likewise.
8433 (vst4_s64, vst4_u64, vst4_f64, vst4_s8): Likewise.
8435 2016-09-20 Bernd Edlinger <bernd.edlinger@hotmail.de>
8437 * config/var/vax.h (ELIMINABLE_REGS): Define.
8438 (INITIAL_ELIMINATION_OFFSET): Define.
8440 2016-09-20 Jakub Jelinek <jakub@redhat.com>
8443 * builtins.c (fold_builtin_atomic_always_lock_free): Only look through
8444 cast to void * if the cast is from some other pointer type.
8446 2016-09-20 Richard Biener <rguenther@suse.de>
8448 PR tree-optimization/77646
8449 * tree-ssa-sccvn.c (visit_reference_op_call): Always value-number
8452 2016-09-20 Tamar Christina <tamar.christina@arm.com>
8454 * config/aarch64/arm_neon.h: Add gnu_inline and artificial
8455 attributes to all inlined functions and make them extern.
8457 2016-09-20 Richard Biener <rguenther@suse.de>
8459 * debug.h (gcc_debug_hooks): Add filename parameter to early_finish
8461 * debug.c (do_nothing_debug_hooks): Adjust.
8462 * dbxout.c (dbx_debug_hooks): Likewise.
8463 * sdbout.c (sdb_debug_hooks): Likewise.
8464 * dwarf2out.c (dwarf2_lineno_debug_hooks): Likewise.
8465 (dwarf2out_finish): Move producer, filename and
8467 (dwarf2out_early_finish): ... here. Remove in_lto_p special-casing.
8468 * cgraphunit.c (symbol_table::finalize_compilation_unit): Adjust.
8470 2016-09-19 Bernd Edlinger <bernd.edlinger@hotmail.de>
8473 * doc/invoke.texi: Document -Wint-in-bool-context.
8476 * dwarf2out.c (output_loc_operands): Fix an assertion.
8478 2016-09-19 Joseph Myers <joseph@codesourcery.com>
8480 * ginclude/float.h [__STDC_WANT_IEC_60559_BFP_EXT__]
8481 (CR_DECIMAL_DIG): New macro.
8483 2016-09-19 Joseph Myers <joseph@codesourcery.com>
8485 * ginclude/stddef.h (max_align_t) [__i386__]: Add __float128
8488 2016-09-19 Vladimir Makarov <vmakarov@redhat.com>
8490 PR rtl-optimization/77416
8491 * lra-remat.c (operand_to_remat): Process hard coded insn
8494 2016-09-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8496 * simplify-rtx.c (simplify_relational_operation_1): Add transformation
8497 (GTU (PLUS a C) (C - 1)) --> (LTU a -C).
8499 2016-09-19 Segher Boessenkool <segher@kernel.crashing.org>
8501 * target.def (lra_p): Wordsmithing.
8502 * doc/tm.texi: Regenerate.
8504 2016-09-19 Jakub Jelinek <jakub@redhat.com>
8505 Jan Hubicka <jh@suse.cz>
8508 * cgraph.c (cgraph_node::rtl_info): Pass &avail to
8509 ultimate_alias_target call, return NULL if avail < AVAIL_AVAILABLE.
8510 Call ultimate_alias_target just once, not up to 4 times.
8512 2016-09-19 Richard Biener <rguenther@suse.de>
8514 * dwarf2out.c (early_dwarf_finished): New global.
8515 (set_early_dwarf::set_early_dwarf): Assert early_dwarf_finished
8517 (dwarf2out_early_finish): Set early_dwarf_finished at the end,
8518 if called from LTO exit early.
8519 (dwarf2out_late_global_decl): When being during the early
8520 debug phase do not add locations but only const value attributes.
8521 Adjust the way we generate early DIEs for LTO.
8523 2016-09-19 Richard Biener <rguenther@suse.de>
8526 * tree-data-ref.c (analyze_subscript_affine_affine): Use the
8527 proper niter to bound the loops.
8529 2016-09-19 Richard Biener <rguenther@suse.de>
8531 PR tree-optimization/77514
8532 * tree-ssa-pre.c (create_expression_by_pieces): Optimize
8533 search for folded stmt.
8535 2016-09-17 Jan Hubicka <hubicka@ucw.cz>
8537 * passes.def (pass_early_thread_jumps): Schedule after forwprop.
8538 * tree-pass.h (make_pass_early_thread_jumps): Declare.
8539 * tree-ssa-threadbackward.c (fsm_find_thread_path,
8540 fsm_find_thread_path, profitable_jump_thread_path,
8541 fsm_find_control_statement_thread_paths,
8542 find_jump_threads_backwards): Add speed_p parameter.
8543 (pass_data_early_thread_jumps): New pass.
8544 (make_pass_early_thread_jumps): New function.
8546 2016-09-17 Andreas Schwab <schwab@suse.de>
8548 * config/ia64/ia64.h (ASM_OUTPUT_DWARF_OFFSET): Add cast.
8549 * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Likewise.
8551 2016-09-16 Eric Botcazou <ebotcazou@adacore.com>
8553 * recog.c (rest_of_handle_split_after_reload): Delete.
8554 (pass_split_after_reload::gate): New method.
8555 (pass_split_after_reload::execute): Call split_all_insns directly.
8557 2016-09-16 Jonathan Wakely <jwakely@redhat.com>
8559 * doc/extend.texi (Integer Overflow Builtins): Fix type of out
8560 parameters for functions taking long long arguments.
8562 2016-09-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
8565 * config/rs6000/rs6000.c (rtx_is_swappable_p): Add support for
8566 splat with truncate.
8568 2016-09-16 Jason Merrill <jason@redhat.com>
8570 * hwint.h (least_bit_hwi, pow2_or_zerop, pow2p_hwi, ctz_or_zero):
8572 * hwint.c (exact_log2): Use pow2p_hwi.
8573 (ctz_hwi, ffs_hwi): Use least_bit_hwi.
8574 * alias.c (memrefs_conflict_p): Use pow2_or_zerop.
8575 * builtins.c (get_object_alignment_2, get_object_alignment)
8576 (get_pointer_alignment, fold_builtin_atomic_always_lock_free): Use
8578 * calls.c (compute_argument_addresses, store_one_arg): Use
8580 * cfgexpand.c (expand_one_stack_var_at): Use least_bit_hwi.
8581 * combine.c (force_to_mode): Use least_bit_hwi.
8582 (contains_muldiv, find_split_point, combine_simplify_rtx)
8583 (simplify_if_then_else, simplify_set, force_to_mode)
8584 (if_then_else_cond, simplify_and_const_int_1)
8585 (simplify_compare_const): Use pow2p_hwi.
8586 * cse.c (fold_rtx): Use pow2p_hwi.
8587 * emit-rtl.c (set_mem_attributes_minus_bitpos, adjust_address_1):
8589 * expmed.c (synth_mult, expand_divmod): Use ctz_or_zero, ctz_hwi.
8590 (init_expmed_one_conv): Use pow2p_hwi.
8591 * expr.c (is_aligning_offset): Use pow2p_hwi.
8592 * fold-const.c (round_up_loc, round_down_loc): Use pow2_or_zerop.
8593 (fold_binary_loc): Use pow2p_hwi.
8594 * function.c (assign_parm_find_stack_rtl): Use least_bit_hwi.
8595 * gimple-fold.c (gimple_fold_builtin_memory_op): Use pow2p_hwi.
8596 * gimple-ssa-strength-reduction.c (replace_ref): Use least_bit_hwi.
8597 * hsa-gen.c (gen_hsa_addr_with_align, hsa_bitmemref_alignment):
8599 * ifcvt.c (noce_try_store_flag_constants): Use pow2p_hwi.
8600 * ipa-cp.c (ipcp_alignment_lattice::meet_with_1): Use least_bit_hwi.
8601 * ipa-prop.c (ipa_modify_call_arguments): Use least_bit_hwi.
8602 * omp-low.c (oacc_loop_fixed_partitions)
8603 (oacc_loop_auto_partitions): Use least_bit_hwi.
8604 * rtlanal.c (nonzero_bits1): Use ctz_or_zero.
8605 * stor-layout.c (place_field): Use least_bit_hwi.
8606 * tree-pretty-print.c (dump_generic_node): Use pow2p_hwi.
8607 * tree-sra.c (build_ref_for_offset): Use least_bit_hwi.
8608 * tree-ssa-ccp.c (ccp_finalize): Use least_bit_hwi.
8609 * tree-ssa-math-opts.c (bswap_replace): Use least_bit_hwi.
8610 * tree-ssa-strlen.c (handle_builtin_memcmp): Use pow2p_hwi.
8611 * tree-vect-data-refs.c (vect_analyze_group_access_1)
8612 (vect_grouped_store_supported, vect_grouped_load_supported)
8613 (vect_permute_load_chain, vect_shift_permute_load_chain)
8614 (vect_transform_grouped_load): Use pow2p_hwi.
8615 * tree-vect-generic.c (expand_vector_divmod): Use ctz_or_zero.
8616 * tree-vect-patterns.c (vect_recog_divmod_pattern): Use ctz_or_zero.
8617 * tree-vect-stmts.c (vectorizable_mask_load_store): Use
8619 * tsan.c (instrument_expr): Use least_bit_hwi.
8620 * var-tracking.c (negative_power_of_two_p): Use pow2_or_zerop.
8622 2016-09-16 Andreas Schwab <schwab@suse.de>
8624 * config/ia64/ia64.h (ASM_OUTPUT_DWARF_OFFSET): Use parameter
8626 * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Likewise.
8628 2016-09-16 Jakub Jelinek <jakub@redhat.com>
8631 * combine.c (rest_of_handle_combine): If any edges have been purged,
8632 free dominators if available.
8634 2016-09-16 Jakub Jelinek <jakub@redhat.com>
8635 Eric Botcazou <ebotcazou@adacore.com>
8638 * internal-fn.c (expand_arith_overflow) <case MINUS_EXPR>: Don't fall
8639 through into expand_addsub_overflow after expand_neg_overflow.
8641 2016-09-15 David Malcolm <dmalcolm@redhat.com>
8643 * diagnostic-show-locus.c
8644 (selftest::test_fixit_insert_containing_newline): New function.
8645 (selftest::test_fixit_replace_containing_newline): New function.
8646 (selftest::diagnostic_show_locus_c_tests): Call the above.
8648 2016-09-15 Bin Cheng <bin.cheng@arm.com>
8650 PR tree-optimization/77503
8651 * tree-vect-loop.c (vectorizable_reduction): Record reduction
8652 code for CONST_COND_REDUCTION at analysis stage and use it at
8654 * tree-vectorizer.h (struct _stmt_vec_info): New field.
8655 (STMT_VINFO_VEC_CONST_COND_REDUC_CODE): New macro.
8656 * tree-vect-stmts.c (new_stmt_vec_info): Initialize above new
8659 2016-09-15 Richard Biener <rguenther@suse.de>
8662 * fold-const.c (split_tree): Do not split constant ~X.
8664 2016-09-15 Jakub Jelinek <jakub@redhat.com>
8666 PR rtl-optimization/77425
8667 * sched-int.h (sd_iterator_cond): Don't update it_ptr->linkp if list
8671 * config/i386/i386.c (ix86_parse_stringop_strategy_string): Simplify,
8672 use %qs instead of %s where desirable, use argument instead of arg in
8673 the diagnostic wording, add list of supported strategies and
8675 (ix86_option_override_internal): Emit target("m...") instead of
8676 option("m...") in the diagnostic. Use %qs instead of %s in invalid
8677 -march/-mtune option diagnostic. Add list of supported arches/tunings
8678 and spellcheck hint. Remove prefix, suffix and sw variables, use
8679 main_args_p ? "..." : "..." in diagnostics to make translation
8682 2016-09-15 Richard Biener <rguenther@suse.de>
8684 * dwarf2asm.h (dw2_asm_output_offset): Add overload with
8685 extra offset argument.
8686 * dwarf2asm.c (dw2_asm_output_offset): Implement that.
8687 * doc/tm.texi.in (ASM_OUTPUT_DWARF_OFFSET): Adjust documentation
8688 to reflect new offset parameter.
8689 * doc/tm.texi: Regenerate.
8690 * config/darwin.h (ASM_OUTPUT_DWARF_OFFSET): Adjust.
8691 * config/darwin-protos.h (darwin_asm_output_dwarf_delta): Add
8693 (darwin_asm_output_dwarf_offset): Likewise.
8694 * config/darwin.c (darwin_asm_output_dwarf_delta): Add offset
8696 (darwin_asm_output_dwarf_offset): Pass offset argument through.
8697 * config/ia64/ia64.h (ASM_OUTPUT_DWARF_OFFSET): Adjust.
8698 * config/i386/cygmin.h (ASM_OUTPUT_DWARF_OFFSET): Likewise.
8700 2016-09-15 Chung-Lin Tang <cltang@codesourcery.com>
8703 * ipa-icf.c (set_alias_uids): New function.
8704 (sem_variable::merge): Use set_alias_uids to set DECL_PT_UID of
8705 all the merged variable's referring aliases.
8707 2016-09-15 Richard Biener <rguenther@suse.de>
8709 PR tree-optimization/77514
8710 * tree-ssa-pre.c (create_expression_by_pieces): Handle garbage
8711 only forced_stmts sequence.
8713 2016-09-15 Kugan Vivekanandarajah <kuganv@linaro.org>
8715 * tree-ssanames.h (FOR_EACH_SSA_NAME): New.
8716 * cfgexpand.c (update_alias_info_with_stack_vars): Use
8717 FOR_EACH_SSA_NAME to iterate over SSA variables.
8718 (pass_expand::execute): Likewise.
8719 * omp-simd-clone.c (ipa_simd_modify_function_body): Likewise.
8720 * tree-cfg.c (dump_function_to_file): Likewise.
8721 * tree-into-ssa.c (pass_build_ssa::execute): Likewise.
8722 (update_ssa): Likewise.
8723 * tree-ssa-alias.c (dump_alias_info): Likewise.
8724 * tree-ssa-ccp.c (ccp_finalize): Likewise.
8725 * tree-ssa-coalesce.c (build_ssa_conflict_graph): Likewise.
8726 (create_outofssa_var_map): Likewise.
8727 (coalesce_ssa_name): Likewise.
8728 * tree-ssa-operands.c (dump_immediate_uses): Likewise.
8729 * tree-ssa-pre.c (compute_avail): Likewise.
8730 * tree-ssa-sccvn.c (init_scc_vn): Likewise.
8731 (scc_vn_restore_ssa_info): Likewise.
8732 (free_scc_vn): Likwise.
8733 (run_scc_vn): Likewise.
8734 * tree-ssa-structalias.c (compute_points_to_sets): Likewise.
8735 * tree-ssa-ter.c (new_temp_expr_table): Likewise.
8736 * tree-ssa-copy.c (fini_copy_prop): Likewise.
8737 * tree-ssa.c (verify_ssa): Likewise.
8739 2016-09-14 Matthew Fortune <matthew.fortune@imgtec.com>
8741 * config.gcc (mips*-mti-elf*, mips*-mti-linux*): Set mips32r2
8742 and mips64r2 as default 32-bit and 64-bit architectures.
8743 (mips*-img-elf*, mips*-img-linux*): Set mips32r6 and mips64r6
8744 as default 32-bit and 64-bit architectures.
8746 2016-09-14 Pat Haugen <pthaugen@us.ibm.com>
8748 * loop-unroll.c (unroll_loop_runtime_iterations): Set probability
8751 2016-09-14 Segher Boessenkool <segher@kernel.crashing.org>
8753 * target.def (lra_p): Change commentary (for the manual) for the
8755 * doc/tm.texi: Regenerate.
8757 2016-09-14 Segher Boessenkool <segher@kernel.crashing.org>
8759 * config/aarch64/aarch64.c (TARGET_LRA_P): Delete macro.
8760 * config/arm/arm.c (TARGET_LRA_P): Delete macro.
8761 * config/i386/i386.c (TARGET_LRA_P): Delete macro.
8762 * config/nds32/nds32.c (TARGET_LRA_P): Delete macro.
8764 2016-09-14 Segher Boessenkool <segher@kernel.crashing.org>
8766 * targhooks.c (default_lra_p): Return true instead of false.
8768 2016-09-14 Segher Boessenkool <segher@kernel.crashing.org>
8770 * config/alpha/alpha.c (TARGET_LRA_P): New macro, defined to
8771 hook_bool_void_false.
8772 * config/avr/avr.c: Ditto.
8773 * config/bfin/bfin.c: Ditto.
8774 * config/c6x/c6x.c: Ditto.
8775 * config/cr16/cr16.c: Ditto.
8776 * config/cris/cris.c: Ditto.
8777 * config/epiphany/epiphany.c: Ditto.
8778 * config/fr30/fr30.c: Ditto.
8779 * config/frv/frv.c: Ditto.
8780 * config/h8300/h8300.c: Ditto.
8781 * config/ia64/ia64.c: Ditto.
8782 * config/iq2000/iq2000.c: Ditto.
8783 * config/lm32/lm32.c: Ditto.
8784 * config/m32c/m32c.c: Ditto.
8785 * config/m32r/m32r.c: Ditto.
8786 * config/m68k/m68k.c: Ditto.
8787 * config/mcore/mcore.c: Ditto.
8788 * config/microblaze/microblaze.c: Ditto.
8789 * config/mmix/mmix.c: Ditto.
8790 * config/mn10300/mn10300.c: Ditto.
8791 * config/moxie/moxie.c: Ditto.
8792 * config/msp430/msp430.c: Ditto.
8793 * config/nios2/nios2.c: Ditto.
8794 * config/nvptx/nvptx.c: Ditto.
8795 * config/pa/pa.c: Ditto.
8796 * config/pdp11/pdp11.c: Ditto.
8797 * config/rl78/rl78.c: Ditto.
8798 * config/sparc/sparc.c: Ditto.
8799 * config/spu/spu.c: Ditto.
8800 * config/stormy16/stormy16.c: Ditto.
8801 * config/tilegx/tilegx.c: Ditto.
8802 * config/tilepro/tilepro.c: Ditto.
8803 * config/v850/v850.c: Ditto.
8804 * config/vax/vax.c: Ditto.
8805 * config/visium/visium.c: Ditto.
8806 * config/xtensa/xtensa.c: Ditto.
8808 2016-09-14 Jakub Jelinek <jakub@redhat.com>
8811 * tsan.c: Include target.h.
8812 (enum tsan_atomic_action): Add bool_clear and bool_test_and_set.
8813 (BOOL_CLEAR, BOOL_TEST_AND_SET): Define.
8814 (tsan_atomic_table): Add BUILT_IN_ATOMIC_CLEAR and
8815 BUILT_IN_ATOMIC_TEST_AND_SET entries.
8816 (instrument_builtin_call): Handle bool_clear and bool_test_and_set.
8818 2016-09-14 Bernd Edlinger <bernd.edlinger@hotmail.de>
8819 Martin Liska <mliska@suse.cz>
8822 * predict.c (force_edge_cold): Add braces to a condition.
8824 2016-09-13 Bernd Edlinger <bernd.edlinger@hotmail.de>
8826 PR rtl-optimization/77289
8827 * lra-constraints.c (get_final_hard_regno): Removed.
8828 (get_hard_regno): Add new parameter final_p.
8829 (get_reg_class): Directly call lra_get_elimination_hard_regno.
8830 (operands_match_p): Adjust call to get_hard_regno.
8831 (uses_hard_regs_p): Likewise.
8832 (process_alt_operands): Likewise.
8834 2016-09-13 Joe Seymour <joe.s@somniumtech.com>
8837 * config/msp430/msp430.c (msp430_start_function): Emit an error
8838 if a function is both weak and specifies an interrupt number.
8840 2016-09-13 Jakub Jelinek <jakub@redhat.com>
8842 PR tree-optimization/77454
8843 * tree-ssa-dom.c (optimize_stmt): Set modified flag on stmt after
8844 changing GIMPLE_COND. Move update_stmt_if_modified call after this.
8847 2016-09-13 Tamar Christina <tamar.christina@arm.com>
8849 * config/aarch64/aarch64-builtins.c
8850 (aarch64_init_simd_builtins): Fix builtin type signature printing.
8852 2016-09-13 Uros Bizjak <ubizjak@gmail.com>
8854 * config/alpha/alpha.c (alpha_pass_by_reference): Pass un-named
8855 SFmode and SCmode arguments by reference.
8857 2016-09-13 David Malcolm <dmalcolm@redhat.com>
8859 * diagnostic-show-locus.c (selftest::test_one_liner_fixit_insert):
8861 (selftest::test_one_liner_fixit_insert_before): ...this, and update
8862 for renaming of add_fixit_insert to add_fixit_insert_before.
8863 (selftest::test_one_liner_fixit_insert_after): New function.
8864 (selftest::test_one_liner_fixit_validation_adhoc_locations):
8865 Update for renaming of add_fixit_insert to add_fixit_insert_before.
8866 (selftest::test_one_liner_many_fixits): Likewise.
8867 (selftest::test_diagnostic_show_locus_one_liner): Update for
8868 renaming, call new test function.
8869 (selftest::test_diagnostic_show_locus_fixit_lines): Update for
8870 renaming of add_fixit_insert to add_fixit_insert_before.
8871 (selftest::test_fixit_consolidation): Likewise.
8872 * diagnostic.c (selftest::test_print_parseable_fixits_insert):
8874 * edit-context.c (selftest::test_applying_fixits_insert): Rename to...
8875 (selftest::test_applying_fixits_insert_before): ...this.
8876 (selftest::test_applying_fixits_insert): Update for renaming of
8877 add_fixit_insert to add_fixit_insert_before.
8878 (selftest::test_applying_fixits_insert_after): New function.
8879 (selftest::test_applying_fixits_insert_after_at_line_end): New
8881 (selftest::test_applying_fixits_insert_after_failure): New function.
8882 (selftest::test_applying_fixits_multiple): Update for renaming of
8883 add_fixit_insert to add_fixit_insert_before.
8884 (selftest::change_line): Likewise.
8885 (selftest::test_applying_fixits_unreadable_file): Likewise.
8886 (selftest::test_applying_fixits_line_out_of_range): Likewise.
8887 (selftest::test_applying_fixits_column_validation): Likewise.
8888 (selftest::test_applying_fixits_column_validation): Likewise.
8889 (selftest::edit_context_c_tests): Update for renamed test function;
8890 call new test functions.
8892 2016-09-13 Pat Haugen <pthaugen@us.ibm.com>
8894 PR tree-optimization/77536
8895 PR rtl-optimization/68212
8896 * config/rs6000/rs6000.md (div->recip splitter): Remove
8897 optimize_insn_for_speed_p condition.
8899 2016-09-13 Maciej W. Rozycki <macro@imgtec.com>
8901 * optabs.c (prepare_cmp_insn): Update documentation comment.
8903 2016-09-13 Jakub Jelinek <jakub@redhat.com>
8904 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
8907 * opts.h (candidates_list_and_hint): Declare.
8908 * opts-common.c (candidates_list_and_hint): New function.
8909 (cmdline_handle_error): Use it.
8911 2016-09-12 David Malcolm <dmalcolm@redhat.com>
8913 * edit-context.c (edited_line::get_len): New accessor.
8914 (edited_file::print_diff): Split out hunk-printing into...
8915 (edited_file::print_diff_hunk): New method.
8916 (edited_file::print_diff_line): New method.
8918 2016-09-12 Andrew Pinski <apinski@cavium.com>
8920 * config/aarch64/aarch64-tuning-flags.def (SLOW_UNALIGNED_LDPW):
8922 * config/aarch64/aarch64.c (thunderx_tunings): Enable
8923 AARCH64_EXTRA_TUNE_SLOW_UNALIGNED_LDPW.
8924 (aarch64_operands_ok_for_ldpstp): Return false if
8925 AARCH64_EXTRA_TUNE_SLOW_UNALIGNED_LDPW and the mode
8926 was SImode and the alignment is less than 8 byte.
8927 (aarch64_operands_adjust_ok_for_ldpstp): Likewise.
8929 2016-09-12 Orlando Arias <oarias@knights.ucf.edu>
8932 * config/msp430/msp430.md (delay_cycles_32x): Fix pushm/popm.
8934 2016-09-12 Marek Polacek <polacek@redhat.com>
8936 * doc/extend.texi: Use lowercase "boolean".
8937 * doc/invoke.texi: Likewise.
8938 * doc/md.texi: Likewise.
8939 * target.def: Likewise.
8940 * doc/tm.texi: Regenerated.
8942 2016-09-12 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8945 * expmed.c (synth_mult): Delete duplicate mode check.
8947 2016-09-10 Tom de Vries <tom@codesourcery.com>
8950 * builtins.c (std_canonical_va_list_type): Strictly return non-null for
8952 * config/i386/i386.c (ix86_canonical_va_list_type): Same.
8953 * gimplify.c (gimplify_va_arg_expr): Handle &va_list.
8955 2016-09-09 Peter Bergner <bergner@vnet.ibm.com>
8957 PR rtl-optimization/77289
8958 * lra-constraints.c (get_final_hard_regno): Add support for non hard
8959 register numbers. Remove support for subregs.
8960 (get_hard_regno): Use SUBREG_P. Don't call get_final_hard_regno().
8961 (get_reg_class): Delete removed get_final_hard_regno() argument.
8962 (uses_hard_regs_p): Call get_final_hard_regno().
8964 2016-09-09 Martin Sebor <msebor@redhat.com>
8968 * pretty-print.c (pp_quoted_string): New function.
8969 (pp_format): Call it for %c and %s directives.
8971 2016-09-10 Bernd Edlinger <bernd.edlinger@hotmail.de>
8973 * doc/tm.texi.in (INITIAL_FRAME_POINTER_OFFSET): Remove.
8974 (ELIMINABLE_REGS, TARGET_CAN_ELIMINATE,
8975 INITIAL_ELIMINATION_OFFSET) : Update documentation.
8976 * target.def (frame_pointer_required, can_eliminate): Likewise.
8977 * doc/tm.texi: Regenerated.
8978 * builtins.c (expand_builtin_setjmp_receiver): Remove #ifdef
8980 * df-scan.c (df_hard_reg_init): Likewise.
8981 * ira.c (ira_setup_eliminable_regset): Likewise.
8982 * lra-eliminations.c (reg_eliminate_1, (update_reg_eliminate,
8983 init_elim_table): Likewise.
8984 * reload1.c (reg_eliminate_1, verify_initial_elim_offsets,
8985 set_initial_elim_offsets, update_eliminables,
8986 init_elim_table): Likewise.
8987 * rtlanal.c (get_initial_register_offset): Likewise.
8988 * config/ft32/ft32.h (INITIAL_FRAME_POINTER_OFFSET): Remove.
8989 * config/m32r/m32r.h (INITIAL_FRAME_POINTER_OFFSET): Likewise.
8990 * config/moxie/moxie.h (INITIAL_FRAME_POINTER_OFFSET): Likewise.
8991 * config/vax/vax.h (INITIAL_FRAME_POINTER_OFFSET): Likewise.
8992 * config/fr30/fr30.h: Fix comment.
8993 * config/frv/frv.c: Likewise.
8994 * config/frv/frv.h: Likewise.
8995 * config/ft32/ft32.h: Likewise.
8996 * config/visium/visium.h: Likewise.
8997 * config/pa/pa64-linux.h: Likewise.
8998 * config/v850/v850.h: Likewise.
8999 * config/cris/cris.c: Likewise.
9000 * config/ia64/ia64.h: Likewise.
9001 * config/moxie/moxie.h: Likewise.
9002 * config/m32r/m32r.h: Likewise.
9004 2016-09-10 Alexander Ivchenko <alexander.ivchenko@intel.com>
9007 * config.in: Regenerate.
9008 * config/i386/linux-common.h (MPX_LD_AS_NEEDED_GUARD_PUSH):
9010 (MPX_LD_AS_NEEDED_GUARD_PUSH): Ditto.
9011 (LIBMPXWRAPPERS_SPEC): Remove "--no-whole-archive" from
9012 static-libmpxwrappers case.
9013 (LIBMPX_SPEC): Add guards with MPX_LD_AS_NEEDED_GUARD_PUSH and
9014 MPX_LD_AS_NEEDED_GUARD_POP.
9015 * configure: Regenerate.
9016 * configure.ac (HAVE_LD_PUSHPOPSTATE_SUPPORT): New variable.
9017 defined if linker support "--push-state"/"--pop-state".
9019 2016-09-09 Bernd Edlinger <bernd.edlinger@hotmail.de>
9021 * doc/cpp.texi (__*_WIDTH__): Small wording fixes.
9023 2016-09-09 Joseph Myers <joseph@codesourcery.com>
9025 * doc/cpp.texi (__SCHAR_WIDTH__, __SHRT_WIDTH__, __INT_WIDTH__)
9026 (__LONG_WIDTH__, __LONG_LONG_WIDTH__, __PTRDIFF_WIDTH__)
9027 (__SIG_ATOMIC_WIDTH__, __SIZE_WIDTH__, __WCHAR_WIDTH__)
9028 (__WINT_WIDTH__, __INT_LEAST8_WIDTH__, __INT_LEAST16_WIDTH__)
9029 (__INT_LEAST32_WIDTH__, __INT_LEAST64_WIDTH__)
9030 (__INT_FAST8_WIDTH__, __INT_FAST16_WIDTH__, __INT_FAST32_WIDTH__)
9031 (__INT_FAST64_WIDTH__, __INTPTR_WIDTH__, __INTMAX_WIDTH__):
9033 * ginclude/stdint-gcc.h [__STDC_WANT_IEC_60559_BFP_EXT__]: Define
9034 width macros from TS 18661-1.
9035 * glimits.h [__STDC_WANT_IEC_60559_BFP_EXT__]: Likewise.
9037 2016-09-08 Jakub Jelinek <jakub@redhat.com>
9040 * omp-low.c (lower_rec_simd_input_clauses): Use max_vf for non-positive
9041 OMP_CLAUSE_SAFELEN_EXPR.
9043 2016-09-07 David Malcolm <dmalcolm@redhat.com>
9045 * Makefile.in (OBJS): Add substring-locations.o.
9046 * langhooks-def.h (class substring_loc): New forward decl.
9047 (lhd_get_substring_location): New decl.
9048 (LANG_HOOKS_GET_SUBSTRING_LOCATION): New macro.
9049 (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_GET_SUBSTRING_LOCATION.
9050 * langhooks.c (lhd_get_substring_location): New function.
9051 * langhooks.h (class substring_loc): New forward decl.
9052 (struct lang_hooks): Add field get_substring_location.
9053 * substring-locations.c: New file, taking definition of
9054 format_warning_va and format_warning_at_substring from
9055 c-family/c-format.c, making them non-static.
9056 * substring-locations.h (class substring_loc): Move class here
9057 from c-family/c-common.h. Add and rewrite comments.
9058 (format_warning_va): New decl.
9059 (format_warning_at_substring): New decl.
9060 (get_source_location_for_substring): Add comment.
9062 2016-09-07 Eric Gallager <egall@gwmail.gwu.edu>
9064 * config/i386/i386.c: Add 'U' suffix to processor feature bits
9065 to avoid -Wnarrowing warning.
9066 * config/i386/x86-tune.def: Likewise for DEF_TUNE selector bitmasks.
9067 * opts.c: Likewise for SANITIZER_OPT bitmasks.
9069 2016-09-07 Wilco Dijkstra <wdijkstr@arm.com>
9071 * config/aarch64/aarch64.c (aarch64_legitimize_address):
9072 Avoid use of base_offset if offset already in range.
9074 2016-09-07 Kaz Kojima <kkojima@gcc.gnu.org>
9076 * config/sh/sh-protos.h (struct sh_atomic_model,
9077 selected_atomic_model, TARGET_ATOMIC_ANY, TARGET_ATOMIC_STRICT,
9078 TARGET_ATOMIC_SOFT_GUSA, TARGET_ATOMIC_HARD_LLCS,
9079 TARGET_ATOMIC_SOFT_TCB, TARGET_ATOMIC_SOFT_IMASK): Move to...
9080 * config/sh/sh.h (struct sh_atomic_model,
9081 selected_atomic_model, TARGET_ATOMIC_ANY, TARGET_ATOMIC_STRICT,
9082 TARGET_ATOMIC_SOFT_GUSA, TARGET_ATOMIC_HARD_LLCS,
9083 TARGET_ATOMIC_SOFT_TCB, TARGET_ATOMIC_SOFT_IMASK): ...here.
9084 Guard with __cplusplus.
9086 2016-09-06 Jakub Jelinek <jakub@redhat.com>
9089 * config/i386/i386.c (ix86_expand_builtin): For builtin with
9090 unsupported or unknown ISA, use expand_call.
9092 2016-09-06 Martin Liska <mliska@suse.cz>
9094 PR gcov-profile/77378
9095 PR gcov-profile/77466
9096 * tree-profile.c (tree_profiling): Detect whether target can use
9097 -fprofile-update=atomic.
9099 2016-09-06 Richard Biener <rguenther@suse.de>
9101 PR tree-optimization/77479
9102 * tree-vrp.c (update_value_range): Extend overflow handling to
9105 2016-09-05 Jakub Jelinek <jakub@redhat.com>
9108 * config/i386/i386.md (isa): Add x64_avx512bw.
9109 (*zero_extendsidi2): For alternative 11 use x64_avx512bw isa.
9110 (kmov_isa): New mode attr.
9111 (zero_extend<mode>di2): Use <kmov_isa> isa for the last alternative.
9112 (*zero_extend<mode>si2): Likewise.
9113 (*zero_extendqihi2): Use avx512dq isa for the last alternative.
9115 2016-09-05 Gerald Pfeifer <gerald@pfeifer.com>
9117 * doc/invoke.texi (SPU Options): nops -> NOPs.
9118 (x86 Options): Ditto.
9120 2016-09-05 Jakub Jelinek <jakub@redhat.com>
9123 * toplev.c (process_options): Temporarily set input_location
9124 to UNKNOWN_LOCATION around targetm.target_option.override () call.
9126 2016-09-05 Uros Bizjak <ubizjak@gmail.com>
9128 PR rtl-optimization/77452
9129 * explow.c (plus_constant) <case MEM>: Extract scalar constant from
9130 inner-mode reference to a CONST_VECTOR constant in the constant pool.
9132 2016-09-05 Marek Polacek <polacek@redhat.com>
9135 * doc/invoke.texi: Update -Wlogical-not-parentheses documentation.
9137 2016-09-05 Jakub Jelinek <jakub@redhat.com>
9140 * gensupport.c (alter_output_for_subst_insn): Remove redundant
9141 *insn_out == '*' test. Don't copy unnecessary to yet another
9142 memory buffer, and don't leak it.
9144 PR rtl-optimization/77425
9145 * ipa-devirt.c (get_odr_type): Set val->id unconditionally.
9147 2016-09-03 Kirill Yukhin <kirill.yukhin@intel.com>
9149 * ubsan.c (ubsan_use_new_style_p): Fix check for empty string.
9151 2016-09-02 David Malcolm <dmalcolm@redhat.com>
9153 * common.opt (fdiagnostics-generate-patch): New option.
9154 * diagnostic.c: Include "edit-context.h".
9155 (diagnostic_initialize): Initialize context->edit_context_ptr.
9156 (diagnostic_finish): Delete context->edit_context_ptr.
9157 (diagnostic_report_diagnostic): Add fix-it hints from the
9158 diagnostic to context->edit_context_ptr, if any.
9159 * diagnostic.h (class edit_context): Add forward decl.
9160 (struct diagnostic_context): Add field "edit_context_ptr".
9161 * doc/invoke.texi (Diagnostic Message Formatting Options): Add
9162 -fdiagnostics-generate-patch.
9163 (-fdiagnostics-generate-patch): New item.
9164 * toplev.c: Include "edit-context.h".
9165 (process_options): Set global_dc->edit_context_ptr to a new
9166 edit_context if the options need one.
9167 (toplev::main): Handle -fdiagnostics-generate-patch by using
9168 global_dc->edit_context_ptr.
9170 2016-09-02 Jakub Jelinek <jakub@redhat.com>
9173 * gimplify.c (gimplify_adjust_omp_clauses_1): Diagnose implicit
9174 map and firstprivate clauses on target construct for _Atomic
9176 (gimplify_adjust_omp_clauses): Diagnose explicit firstprivate clauses
9177 on target construct for _Atomic qualified decls.
9178 * omp-low.c (use_pointer_for_field): Return true for _Atomic qualified
9180 * omp-simd-clone.c (simd_clone_clauses_extract): Warn and give up for
9181 _Atomic qualified arguments not mentioned in uniform clause.
9183 2016-09-02 David Malcolm <dmalcolm@redhat.com>
9185 * Makefile.in (OBJS-libcommon): Add edit-context.o.
9186 * diagnostic-color.c (color_dict): Add "diff-filename",
9187 "diff-hunk", "diff-delete", and "diff-insert".
9188 (parse_gcc_colors): Update default value of GCC_COLORS in comment
9189 to reflect above changes.
9190 * doc/invoke.texi (-fdiagnostics-color): Update description of
9191 default GCC_COLORS, and of the supported capabilities.
9192 * edit-context.c: New file.
9193 * edit-context.h: New file.
9194 * input.c (struct fcache): Add field "missing_trailing_newline".
9195 (diagnostics_file_cache_forcibly_evict_file): Initialize it to
9197 (add_file_to_cache_tab): Likewise.
9198 (fcache::fcache): Likewise.
9199 (get_next_line): Update c->missing_trailing_newline.
9200 (location_missing_trailing_newline): New function.
9201 * input.h (location_missing_trailing_newline): New decl.
9202 * selftest-run-tests.c (selftest::run_tests): Call
9203 edit_context_c_tests.
9204 * selftest.h (edit_context_c_tests): New decl.
9206 2016-09-02 Jakub Jelinek <jakub@redhat.com>
9207 Richard Biener <rguenth@suse.de>
9209 PR tree-optimization/77444
9210 * tree-ssa-loop-ivopts.c (cand_value_at): For pointers use sizetype
9211 as steptype, remove redundant initialization.
9213 2016-09-02 Jakub Jelinek <jakub@redhat.com>
9216 * sanopt.c: Include gimple-ssa.h, tree-phinodes.h and ssa-iterators.h.
9217 (sanopt_optimize_walker): Optimize away
9218 __asan_before_dynamic_init (...) followed by
9219 __asan_after_dynamic_init () without intervening memory loads/stores.
9220 * ipa-pure-const.c (special_builtin_state): Handle
9221 BUILT_IN_ASAN_BEFORE_DYNAMIC_INIT and
9222 BUILT_IN_ASAN_AFTER_DYNAMIC_INIT.
9224 2016-09-02 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
9226 * cfg.c (free_original_copy_tables): Replace second assignment of
9227 bb_copy = NULL by bb_original = NULL.
9229 2016-09-02 Jakub Jelinek <jakub@redhat.com>
9232 * config/i386/i386.c (ix86_expanded_args_builtin): Remove redundant
9233 assignment added in r216794.
9235 2016-09-02 David Malcolm <dmalcolm@redhat.com>
9237 * Makefile.in (OBJS): Add typed-splay-tree.o.
9238 * selftest-run-tests.c (selftest::run_tests): Call
9239 typed_splay_tree_c_tests.
9240 * selftest.h (typed_splay_tree_c_tests): New decl.
9241 * typed-splay-tree.c: New file.
9242 * typed-splay-tree.h (typed_splay_tree::foreach_fn): New typedef.
9243 (typed_splay_tree::max): New method.
9244 (typed_splay_tree::min): New method.
9245 (typed_splay_tree::foreach): New method.
9246 (typed_splay_tree::closure): New struct.
9247 (typed_splay_tree::inner_foreach_fn): New function.
9249 2016-09-02 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
9251 * ipa-cp.c (ipcp_store_bits_results): Change option name from
9252 -fipa-cp-bit to -fipa-bit-cp.
9254 2016-09-01 Martin Sebor <msebor@redhat.com>
9256 PR tree-optimization/71831
9257 * tree-object-size.h: Return bool instead of the size and add
9258 argument for the size.
9259 * tree-object-size.c (compute_object_offset): Update signature.
9260 (addr_object_size): Same.
9261 (compute_builtin_object_size): Return bool instead of the size
9262 and add argument for the size. Handle POINTER_PLUS_EXPR when
9263 optimization is disabled.
9264 (expr_object_size): Adjust.
9265 (plus_stmt_object_size): Adjust.
9266 (pass_object_sizes::execute): Adjust.
9267 * builtins.c (fold_builtin_object_size): Adjust.
9268 * doc/extend.texi (Object Size Checking): Update.
9269 * ubsan.c (instrument_object_size): Adjust.
9271 2016-09-01 Martin Sebor <msebor@redhat.com>
9273 * genmatch.c (parser::parse_expr): Increase buffer size to guarantee
9274 it fits the output of the formatted function regardless of its
9276 * genmodes.c (parser::parse_expr): Same.
9277 * gimplify.c (gimplify_asm_expr): Same.
9278 * passes.c (pass_manager::register_one_dump_file): Same.
9279 * print-tree.c (print_node): Same.
9281 2016-09-01 Segher Boessenkool <segher@kernel.crashing.org>
9283 * config/rs6000/altivec.md: Use VSCR_REGNO instead of 110 throughout.
9285 2016-09-01 Segher Boessenkool <segher@kernel.crashing.org>
9287 * config/rs6000/altivec.md: Use VRSAVE_REGNO instead of 109 throughout.
9289 2016-09-01 Segher Boessenkool <segher@kernel.crashing.org>
9291 * config/rs6000/altivec.md: Use CR6_REGNO instead of 74 throughout.
9292 * config/rs6000/vector.md: Ditto.
9293 * config/rs6000/vsx.md: Ditto.
9295 2016-09-01 Eric Botcazou <ebotcazou@adacore.com>
9297 * ipa-inline-analysis.c (param_change_prob): Get to the base object
9300 2016-09-01 Segher Boessenkool <segher@kernel.crashing.org>
9302 * config/rs6000/rs6000.md (*restore_gpregs_<mode>_r11,
9303 *restore_gpregs_<mode>_r12, *restore_gpregs_<mode>_r1,
9304 *return_and_restore_gpregs_<mode>_r11,
9305 *return_and_restore_gpregs_<mode>_r12,
9306 *return_and_restore_gpregs_<mode>_r1,
9307 *return_and_restore_fpregs_<mode>_r11,
9308 *return_and_restore_fpregs_<mode>_r12,
9309 *return_and_restore_fpregs_<mode>_r1): Use the hard register LR_REGNO
9310 directly instead of via the "l" constraint. Renumber operands.
9313 2016-09-01 Segher Boessenkool <segher@kernel.crashing.org>
9315 * config/rs6000/altivec.md (*save_world, *save_vregs_<mode>_r11,
9316 save_vregs_<mode>_r12, *restore_vregs_<mode>_r11,
9317 *restore_vregs_<mode>_r12): Use LR_REGNO instead of 65.
9318 * config/rs6000/darwin.md (load_macho_picbase, load_macho_picbase_si,
9319 load_macho_picbase_di, *call_indirect_nonlocal_darwin64,
9320 *call_nonlocal_darwin64, *call_value_indirect_nonlocal_darwin64,
9321 *call_value_nonlocal_darwin64, reload_macho_picbase,
9322 reload_macho_picbase_si, reload_macho_picbase_di): Ditto.
9323 * config/rs6000/rs6000.h (RETURN_ADDR_IN_PREVIOUS_FRAME): Ditto.
9324 * config/rs6000/rs6000.md (*save_gpregs_<mode>_r11,
9325 *save_gpregs_<mode>_r12, *save_gpregs_<mode>_r1,
9326 *save_fpregs_<mode>_r11, *save_fpregs_<mode>_r12,
9327 *save_fpregs_<mode>_r1): Ditto.
9328 * config/rs6000/spe.md (*save_gpregs_spe, *restore_gpregs_spe,
9329 *return_and_restore_gpregs_spe): Ditto.
9331 2016-09-01 Segher Boessenkool <segher@kernel.crashing.org>
9333 * config/rs6000/rs6000.md
9334 (define_insn "*return_and_restore_fpregs_aix_<mode>_r11"): Delete
9335 the use of the link register.
9336 (define_insn "*return_and_restore_fpregs_aix_<mode>_r1"): Ditto.
9338 2016-09-01 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
9339 Michael Meissner <meissner@linux.vnet.ibm.com>
9342 * config/rs6000/rs6000.c (rs6000_legitimize_address): Avoid
9343 reg+reg addressing for TImode.
9344 (rs6000_legitimate_address_p): Only allow register indirect
9345 addressing for TImode, even without TARGET_QUAD_MEMORY.
9347 2016-09-01 Richard Biener <rguenther@suse.de>
9350 * tree-chrec.c (tree_fold_binomial): Use widest_int, properly
9351 check whether the result fits the desired result type.
9353 2016-09-01 Nathan Sidwell <nathan@acm.org>
9355 * config/nvptx/nvptx.md (cbranch<mode>4): Op 2 can be const.
9357 2016-09-01 Wilco Dijkstra <wdijkstr@arm.com>
9359 * config/aarch64/aarch64.c (aarch64_legitimize_address_displacement):
9361 (TARGET_LEGITIMIZE_ADDRESS_DISPLACEMENT): Define.
9363 2016-09-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9365 * config/aarch64/aarch64.md (*ands<mode>_compare0): New pattern.
9366 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Return CC_NZmode
9367 for comparisons of integer ZERO_EXTEND against zero.
9369 2016-09-01 Eric Botcazou <ebotcazou@adacore.com>
9371 * config/i386/i386.c (ix86_option_override_internal): Also disable the
9372 STV pass if -mstackrealign is enabled.
9374 2016-08-31 Ilya Verbin <iverbin@gmail.com>
9376 * config/i386/driver-i386.c (host_detect_local_cpu): Fix detection of
9379 2016-08-31 David Malcolm <dmalcolm@redhat.com>
9381 * diagnostic-show-locus.c (class layout): Add field m_fixit_hints.
9382 (layout_range::intersects_line_p): New method.
9383 (test_range_contains_point_for_single_point): Rename to...
9384 (test_layout_range_for_single_point): ...this, and add testing
9385 for layout_range::intersects_line_p.
9386 (test_range_contains_point_for_single_line): Rename to...
9387 (test_layout_range_for_single_line): ...this, and add testing
9388 for layout_range::intersects_line_p.
9389 (test_range_contains_point_for_multiple_lines): Rename to...
9390 (test_layout_range_for_multiple_lines): ...this, and add testing
9391 for layout_range::intersects_line_p.
9392 (layout::layout): Populate m_fixit_hints.
9393 (layout::get_expanded_location): Handle the case of a line-span
9395 (layout::validate_fixit_hint_p): New method.
9396 (get_line_span_for_fixit_hint): New function.
9397 (layout::calculate_line_spans): Add spans for fixit-hints.
9398 (layout::should_print_annotation_line_p): New method.
9399 (layout::print_any_fixits): Drop param "richloc", instead using
9400 validated fixits in m_fixit_hints. Add "const" to hint pointers.
9401 (diagnostic_show_locus): Avoid printing blank annotation lines.
9402 (selftest::test_diagnostic_context::test_diagnostic_context):
9403 Initialize show_column and start_span.
9404 (selftest::test_diagnostic_context::start_span_cb): New static
9406 (selftest::test_diagnostic_show_locus_fixit_lines): New function.
9407 (selftest::diagnostic_show_locus_c_tests): Update for function
9408 renamings. Call test_diagnostic_show_locus_fixit_lines.
9410 2016-08-31 Marc Glisse <marc.glisse@inria.fr>
9412 PR tree-optimization/73714
9413 * match.pd (a * (1 << b)): Revert change from 2016-05-23.
9415 2016-08-31 David Malcolm <dmalcolm@redhat.com>
9417 * selftest.c: Move "namespace selftest {" to top of file,
9418 removing explicit "selftest::" qualifiers throughout.
9420 2016-08-31 Marc Glisse <marc.glisse@inria.fr>
9422 * config/i386/avx512fintrin.h (__m512_u, __m512i_u, __m512d_u):
9424 (_mm512_loadu_pd, _mm512_storeu_pd, _mm512_loadu_ps,
9425 _mm512_storeu_ps, _mm512_loadu_si512, _mm512_storeu_si512):
9426 Replace builtin with vector extension.
9427 * config/i386/avxintrin.h (__m256_u, __m256i_u, __m256d_u):
9429 (_mm256_loadu_pd, _mm256_storeu_pd, _mm256_loadu_ps,
9430 _mm256_storeu_ps, _mm256_loadu_si256, _mm256_storeu_si256):
9431 Replace builtin with vector extension.
9432 * config/i386/emmintrin.h (__m128i_u, __m128d_u): New types.
9433 (_mm_loadu_pd, _mm_storeu_pd, _mm_loadu_si128, _mm_storeu_si128):
9434 Replace builtin with vector extension.
9435 * config/i386/xmmintrin.h (__m128_u): New type.
9436 (_mm_loadu_ps, _mm_storeu_ps): Replace builtin with vector extension.
9437 (_mm_load_ps, _mm_store_ps): Simplify.
9439 2016-08-31 Eric Botcazou <ebotcazou@adacore.com>
9441 * config/arm/arm.c (thumb1_size_rtx_costs) <SET>: Add missing guard.
9443 2016-08-30 David Malcolm <dmalcolm@redhat.com>
9445 * diagnostic-show-locus.c (colorizer::begin_state): Support more
9446 than 3 ranges per diagnostic by alternating between color 1 and
9448 (layout::layout): Replace use of rich_location::MAX_RANGES
9449 with richloc->get_num_locations ().
9450 (layout::calculate_line_spans): Replace use of
9451 rich_location::MAX_RANGES with m_layout_ranges.length ().
9452 (layout::print_annotation_line): Handle arbitrary numbers of
9453 ranges in caret-printing by defaulting to '^'.
9454 (selftest::test_one_liner_many_fixits): New function.
9455 (test_diagnostic_show_locus_one_liner): Call it.
9456 * diagnostic.c (diagnostic_initialize): Update for renaming
9457 of rich_location::MAX_RANGES to
9458 rich_location::STATICALLY_ALLOCATED_RANGES.
9459 * diagnostic.h (struct diagnostic_context): Likewise.
9461 2016-08-30 David Malcolm <dmalcolm@redhat.com>
9463 * selftest.c (selftest::named_temp_file::named_temp_file): New
9465 (selftest::temp_source_file::~temp_source_file): Move to...
9466 (selftest::named_temp_file::~named_temp_file): ...here.
9467 (selftest::test_named_temp_file): New function.
9468 (selftest::selftest_c_tests): Call test_named_temp_file.
9469 * selftest.h (class named_temp_file): New class.
9470 (class temp_source_file): Convert to a subclass of named_temp_file.
9472 2016-08-30 Segher Boessenkool <segher@kernel.crashing.org>
9474 * config/rs6000/rs6000.c (rs6000_emit_epilogue): Do not emit
9475 USEs of LR_REGNO in returns and sibcalls.
9476 (rs6000_output_mi_thunk): Similar.
9477 (rs6000_sibcall_aix): Similar.
9478 * config/rs6000/rs6000.md (sibcall, sibcall_value, sibcall_local32,
9479 sibcall_local64, sibcall_value_local32, sibcall_value_local64,
9480 sibcall_nonlocal_sysv<mode>, sibcall_value_nonlocal_sysv<mode>):
9481 Remove the USE of LR_REGNO from the patterns as well. Delete an
9483 (return_internal_<mode>): Delete.
9485 2016-08-30 Tamar Christina <tamar.christina@arm.com>
9487 * config/aarch64/aarch64-simd.md
9488 (aarch64_ld2<mode>_dreg_le): New.
9489 (aarch64_ld2<mode>_dreg_be): New.
9490 (aarch64_ld2<mode>_dreg): Removed.
9491 (aarch64_ld3<mode>_dreg_le): New.
9492 (aarch64_ld3<mode>_dreg_be): New.
9493 (aarch64_ld3<mode>_dreg): Removed.
9494 (aarch64_ld4<mode>_dreg_le): New.
9495 (aarch64_ld4<mode>_dreg_be): New.
9496 (aarch64_ld4<mode>_dreg): Removed.
9497 (aarch64_ld<VSTRUCT:nregs><VDC:mode>): Wrapper around _le, _be.
9499 2016-08-30 David Malcolm <dmalcolm@redhat.com>
9501 * diagnostic-show-locus.c (test_one_liner_fixit_insert): Remove
9502 redundant location param.
9503 (test_one_liner_fixit_remove): Likewise.
9504 (test_one_liner_fixit_replace): Likewise.
9505 (test_one_liner_fixit_replace_equal_secondary_range): Likewise.
9506 * gcc-rich-location.c
9507 (gcc_rich_location::add_fixit_misspelled_id): Eliminate call to
9508 get_range_from_loc. Drop overload taking a const char *.
9509 * gcc-rich-location.h
9510 (gcc_rich_location::add_fixit_misspelled_id): Drop overload taking
9513 2016-08-30 Szabolcs Nagy <szabolcs.nagy@arm.com>
9515 * config/linux.c (linux_libc_has_function): Return true on musl.
9517 2016-08-30 Szabolcs Nagy <szabolcs.nagy@arm.com>
9519 * config.gcc (*-*-*musl*): Disable gnu-indirect-function.
9521 2016-08-30 Eric Botcazou <ebotcazou@adacore.com>
9523 * postreload-gcse.c (bb_has_well_behaved_predecessors): Tweak criterion
9524 used for abnormal egdes.
9526 2016-08-30 Jakub Jelinek <jakub@redhat.com>
9528 PR tree-optimization/72866
9529 * tree-vect-patterns.c (search_type_for_mask): Turn into
9530 a small wrapper, move all code to ...
9531 (search_type_for_mask_1): ... this new function. Add caching
9532 and adjust recursive calls.
9535 * dwarf2out.c (modified_type_die): Use lookup_type_die (type)
9536 instead of lookup_type_die (type_main_variant (type)) even for array
9540 * simplify-rtx.c (avoid_constant_pool_reference): For out of bounds
9541 constant pool reference return x instead of c.
9543 2016-08-29 Segher Boessenkool <segher@kernel.crashing.org>
9545 * config/rs6000/rs6000.h (CALL_REALLY_USED_REGISTERS): Do not
9548 2016-08-29 David Malcolm <dmalcolm@redhat.com>
9551 (selftest::test_make_location_nonpure_range_endpoints): Fix
9554 2016-08-29 David Malcolm <dmalcolm@redhat.com>
9556 * diagnostic-show-locus.c
9557 (selftest::test_one_liner_fixit_validation_adhoc_locations): New
9559 (selftest::test_diagnostic_show_locus_one_liner): Call it.
9560 * input.c (get_pure_location): Move to libcpp/line-map.c.
9561 * input.h (get_pure_location): Convert decl to an inline function
9562 calling implementation in libcpp.
9564 2016-08-29 Uros Bizjak <ubizjak@gmail.com>
9567 * config/i386/sse.md (vec_set_lo_<mode><mask_name>): Fix assembler
9568 template for intel asm dialect.
9569 (vec_set_hi_<mode><mask_name>): Ditto.
9571 2016-08-29 David Malcolm <dmalcolm@redhat.com>
9573 * selftest.h (selftest::fail): Add ATTRIBUTE_NORETURN.
9574 (selftest::fail_formatted): Likewise.
9576 2016-08-29 David Malcolm <dmalcolm@redhat.com>
9578 * input.c (make_location): Call get_start and get_finish
9579 on the endpoints to avoid storing packed ranges or ad-hoc
9581 (selftest::test_make_location_nonpure_range_endpoints): New function.
9582 (selftest::input_c_tests): Call it.
9583 * input.h (get_start): New inline function.
9585 2016-08-29 Tom de Vries <tom@codesourcery.com>
9588 * gimplify.c (gimplify_va_arg_expr): Replace first argument type error
9591 2016-08-29 Eric Botcazou <ebotcazou@adacore.com>
9593 * Makefile.in (gcov-iov.h): Add dummy recipe.
9595 2016-08-29 Nathan Sidwell <nathan@acm.org>
9597 * config/nvptx/nvptx.c: #include tree-vrp.h.
9599 2016-08-28 Eric Botcazou <ebotcazou@adacore.com>
9602 * config/sparc/sparc.c (sparc_legitimate_address_p): Accept special
9603 HIGH+LO construct during reload.
9605 2016-08-28 Tom de Vries <tom@codesourcery.com>
9608 * config/i386/i386.c (ix86_build_builtin_va_list_64): Tag type with
9609 'sysv_abi va_list' attribute.
9610 (ix86_build_builtin_va_list): Tag type with 'ms_abi va_list' attribute.
9611 (ix86_canonical_va_list_type): Handle 'sysv_abi/ms_abi va_list'
9614 2016-08-27 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
9616 * emit-rtl.h (struct rtl_data): Make stack_slot_list a vector.
9617 * emit-rtl.c (unshare_all_rtl_1): Adjust.
9618 (unshare_all_rtl_again): Likewise.
9619 * function.c (assign_stack_local_1): Likewise.
9620 (assign_stack_temp_for_type): Likewise.
9622 2016-08-27 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
9624 * cfgbuild.c (make_edges): Adjust.
9625 * cfgrtl.c (can_delete_label_p): Likewise.
9626 * dwarf2cfi.c (create_trace_edges): Likewise.
9627 * except.c (sjlj_emit_dispatch_table): Likewise.
9628 * function.h (struct expr_status): make x_forced_labels a vector.
9629 * jump.c (rebuild_jump_labels_1): Adjust.
9630 * reload1.c (set_initial_label_offsets): Likewise.
9631 * stmt.c (force_label_rtx): Likewise.
9632 (expand_label): Likewise.
9634 2016-08-27 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
9636 * haifa-sched.c (fix_recovery_deps): Make ready_list a vector.
9638 2016-08-27 Patrick Palka <ppalka@gcc.gnu.org>
9640 PR tree-optimization/71077
9641 PR tree-optimization/68542
9642 * fold-const.c (fold_relational_const): Fix folding of
9643 VECTOR_CST comparisons that have a scalar boolean result type.
9644 (selftest::test_vector_folding): New static function.
9645 (selftest::fold_const_c_tests): Call it.
9647 2016-08-27 Gerald Pfeifer <gerald@pfeifer.com>
9649 * doc/extend.texi (SPU Built-in Functions): Remove stale
9650 references to material formerly at IBM and Sony.
9652 2016-08-26 David Edelsohn <dje.gcc@gmail.com>
9655 * config/rs6000/xcoff.h (DWARF_OFFSET_SIZE): Define as PTR_SIZE.
9657 2016-08-26 David Malcolm <dmalcolm@redhat.com>
9659 * diagnostic-show-locus.c
9660 (selftest::test_fixit_consolidation): New function.
9661 (selftest::diagnostic_show_locus_c_tests): Call it.
9662 * gcc-rich-location.h (gcc_rich_location): Eliminate unused
9663 constructor based on source_range.
9665 2016-08-26 David Malcolm <dmalcolm@redhat.com>
9667 * diagnostic-color.c (color_dict): Add "fixit-insert" and
9669 (parse_gcc_colors): Update description of default GCC_COLORS.
9670 * diagnostic-show-locus.c (colorizer::set_fixit_hint): Delete.
9671 (colorizer::set_fixit_insert): New method.
9672 (colorizer::set_fixit_delete): New method.
9673 (colorizer::get_color_by_name): New method.
9674 (colorizer::STATE_FIXIT_INSERT): New constant.
9675 (colorizer::STATE_FIXIT_DELETE): New constant.
9676 (class colorizer): Drop "_cs" suffix from fields. Delete "_ce"
9677 fields in favor of new field "m_stop_color". Add fields
9678 "m_fixit_insert" and "m_fixit_delete".
9679 (colorizer::colorizer): Update for above changes. Replace
9680 colorize_start calls with calls to get_color_by_name.
9681 (colorizer::begin_state): Handle STATE_FIXIT_INSERT and
9682 STATE_FIXIT_DELETE. Update for field renamings.
9683 (colorizer::finish_state): Simplify by using m_stop_color,
9684 rather than multiple identical "*_ce" fields.
9685 (colorizer::get_color_by_name): New method.
9686 (layout::print_any_fixits): Print insertions and replacements
9687 using the "fixit-insert" color, and deletions using the
9688 "fixit-delete" color.
9689 * doc/invoke.texi (-fdiagnostics-color): Update description of
9690 default GCC_COLORS, and of the supported capabilities.
9692 2016-08-26 Max Filippov <jcmvbkbc@gmail.com>
9694 * config/xtensa/xtensa.c (xtensa_expand_prologue): Update
9695 current_function_static_stack_size variable with the static
9696 stack frame size of the current function when
9697 flag_stack_usage_info is enabled.
9699 2016-08-26 Nathan Sidwell <nathan@acm.org>
9701 * ipa-inline-analysis.c (inline_write_summary): Remove unnecessary
9702 assignment inside if condition.
9704 2016-08-26 Richard Biener <rguenther@suse.de>
9706 PR tree-optimization/69047
9707 * tree-ssa.c (maybe_rewrite_mem_ref_base): Handle general bitfield
9708 extracts similar to what FRE does.
9709 (non_rewritable_mem_ref_base): Likewise.
9711 2016-08-26 Joseph Myers <joseph@codesourcery.com>
9713 * config/i386/i386.c (ix86_libgcc_floating_mode_supported_p)
9714 (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P): Remove.
9715 * config/i386/i386elf.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Likewise.
9716 * config/i386/lynx.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Likewise.
9717 * config/i386/netbsd-elf.h (IX86_MAYBE_NO_LIBGCC_TFMODE):
9719 * config/i386/netbsd64.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Likewise.
9720 * config/i386/nto.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Likewise.
9721 * config/i386/openbsd.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Likewise.
9722 * config/i386/rtemself.h (IX86_NO_LIBGCC_TFMODE): Likewise.
9723 * config/i386/vxworks.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Likewise.
9725 2016-08-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9728 * config/arm/cortex-a8-neon.md (cortex_a8_vfp_muld): Reduce
9729 reservation duration to 15 cycles.
9730 (cortex_a8_vfp_macs): Likewise.
9731 (cortex_a8_vfp_macd): Likewise.
9732 (cortex_a8_vfp_divs): Likewise.
9733 (cortex_a8_vfp_divd): Likewise.
9735 2016-08-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9737 * config/arm/arm.c (arm_sets_movw_movt_fusible_p): New function.
9738 (aarch_macro_fusion_pair_p): Use above to avoid early return.
9740 2016-08-26 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
9741 Martin Jambhor <mjambor@suse.cz>
9743 * common.opt: New option -fipa-bit-cp.
9744 * doc/invoke.texi: Document -fipa-bit-cp.
9745 * opts.c (default_options_table): Add entry for -fipa-bit-cp.
9746 (enable_fdo_optimizations): Check for flag_ipa_bit_cp.
9747 * tree-ssa-ccp.h: New header file.
9748 * tree-ssa-ccp.c: Include tree-ssa-ccp.h
9749 (bit_value_binop_1): Change to bit_value_binop_1 and export it.
9750 Replace all occurences of tree parameter by two new params: signop, int.
9751 (bit_value_unop_1): Change to bit_value_unop and export it.
9752 Replace all occurences of tree parameter by two new params: signop,
9754 (bit_value_binop): Change call from bit_value_binop_1 to
9756 (bit_value_assume_aligned): Likewise.
9757 (bit_value_unop): Change call from bit_value_unop_1 to bit_value_unop.
9758 (do_ssa_ccp): Pass nonzero_p || flag_ipa_cp_bit instead of nonzero_p
9760 (ccp_finalize): Skip processing if val->mask == 0.
9761 * ipa-cp.c: Include tree-ssa-ccp.h
9762 (ipcp_bits_lattice): New class.
9763 (ipcp_param_lattice (bits_lattice): New member.
9764 (print_all_lattices): Call ipcp_bits_lattice::print.
9765 (set_all_contains_variable): Call ipcp_bits_lattice::set_to_bottom.
9766 (initialize_node_lattices): Likewise.
9767 (propagate_bits_accross_jump_function): New function.
9768 (propagate_constants_accross_call): Call
9769 propagate_bits_accross_jump_function.
9770 (ipcp_propagate_stage): Store parameter types when in_lto_p is true.
9771 (ipcp_store_bits_results): New function.
9772 (ipcp_driver): Call ipcp_store_bits_results.
9773 * ipa-prop.h (ipa_bits): New struct.
9774 (ipa_jump_func): Add new member bits of type ipa_bits.
9775 (ipa_param_descriptor): Change decl to decl_or_type.
9776 (ipa_get_param): Change decl to decl_or_type and assert on
9778 (ipa_get_type): New function.
9779 (ipcp_transformation_summary): New member bits.
9780 * ipa-prop.c (ipa_get_param_decl_index_1): s/decl/decl_or_type.
9781 (ipa_populate_param_decls): Likewise.
9782 (ipa_dump_param): Likewise.
9783 (ipa_print_node_jump_functions_for_edge): Pretty-print ipa_bits jump
9785 (ipa_set_jf_unknown): Set ipa_bits::known to false.
9786 (ipa_compute_jump_functions_for_edge): Compute jump function for bits
9788 (ipa_node_params_t::duplicate): Copy src->bits into dst->bits.
9789 (ipa_write_jump_function): Add streaming for ipa_bits.
9790 (ipa_read_jump_function): Add support for reading streamed ipa_bits.
9791 (write_ipcp_transformation_info): Add streaming for ipa_bits
9793 (read_ipcp_transfomration_info): Add support for reading streamed
9795 (ipcp_update_bits): New function.
9796 (ipcp_transform_function): Call ipcp_update_bits.
9798 2016-08-25 Szabolcs Nagy <szabolcs.nagy@arm.com>
9800 * config/mips/linux.h (MUSL_DYNAMIC_LINKER32): Update.
9801 (MUSL_DYNAMIC_LINKER64, MUSL_DYNAMIC_LINKERN32): Update.
9803 2016-08-25 David Edelsohn <dje.gcc@gmail.com>
9805 * multiple_target.c (pass_data_dispatcher_calls): Fix typo.
9807 2016-08-25 Richard Biener <rguenther@suse.de>
9809 * dwarf2out.c (gen_remaining_tmpl_value_param_die_attributes):
9810 Only add locations in late dwarf.
9811 (gen_scheduled_generic_parms_dies): Do not set early dwarf here.
9812 (dwarf2out_early_finish): But do it here.
9814 2016-08-24 Michael Collison <michael.collison@linaro.org>
9815 Michael Collison <michael.collison@arm.com>
9817 * config/arm/arm-modes.def: Add new condition code mode CC_V
9818 to represent the overflow bit.
9819 * config/arm/arm.c (maybe_get_arm_condition_code):
9820 Add support for CC_Vmode.
9821 (arm_gen_unlikely_cbranch): New function to generate common
9822 rtl conditional branches for overflow patterns.
9823 * config/arm/arm-protos.h: Add prototype for
9824 arm_gen_unlikely_cbranch.
9825 * config/arm/arm.md (addv<mode>4, add<mode>3_compareV,
9826 addsi3_compareV_upper): New patterns to support signed
9827 builtin overflow add operations.
9828 (uaddv<mode>4, add<mode>3_compareC, addsi3_compareV_upper):
9829 New patterns to support unsigned builtin add overflow operations.
9830 (subv<mode>4, sub<mode>3_compare1): New patterns to support signed
9831 builtin overflow subtract operations,
9832 (usubv<mode>4): New patterns to support unsigned builtin subtract
9833 overflow operations.
9834 (negvsi3, negvdi3, negdi2_compare, negsi2_carryin_compare): New patterns
9835 to support builtin overflow negate operations.
9837 2016-08-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
9840 2016-08-23 Dominik Vogt <vogt@linux.vnet.ibm.com>
9842 * explow.c (get_dynamic_stack_size): Take known alignment of stack
9843 pointer + STACK_DYNAMIC_OFFSET into account when calculating the size
9846 2016-08-24 Thomas Preud'homme <thomas.preudhomme@arm.com>
9848 * doc/fragments.texi (MULTILIB_REUSE): Mention that only options in
9849 MULTILIB_OPTIONS should be used. Small wording fixes.
9850 * genmultilib: Memorize set of all option combinations in
9851 combination_space. Detect if RHS of MULTILIB_REUSE uses an option not
9852 found in MULTILIB_OPTIONS by checking if option set is listed in
9853 combination_space. Output new and existing error message to stderr.
9855 2016-08-24 Thomas Preud'homme <thomas.preudhomme@arm.com>
9857 * config/arm/t-aprofile (MULTILIB_MATCHES): Add mapping for
9858 -mcpu=cortex-a7, -mfpu=neon-fp16, -mfpu=fpv5-d16 and -mfpu=fp-armv8.
9859 Fix typo in -mfpu=vfpv3-d16-fp16 mapping.
9860 (MULTILIB_REUSE): Remove reuse rules for option set including
9861 -mfpu=fp-armv8 and -mfpu=vfpv4
9863 2016-08-24 Sebastian Huber <sebastian.huber@embedded-brains.de>
9865 * config/arm/t-rtems: Add vfp multilib.
9867 2016-08-23 Ian Lance Taylor <iant@golang.org>
9869 * config/s390/s390.c (s390_asm_file_start): Call
9872 2016-08-23 Michael Meissner <meissner@linux.vnet.ibm.com>
9874 * config/rs6000/rs6000.c (rs6000_expand_vector_init): Set
9875 initialization of all 0's to the 0 constant, instead of directly
9876 generating XOR. Add support for V4SImode vector initialization on
9877 64-bit systems with direct move, and rework the ISA 3.0 V4SImode
9878 initialization. Change variables used in V4SFmode vector
9879 intialization. For V4SFmode vector splat on ISA 3.0, make sure
9880 any memory addresses are in index form. Add support for using
9881 VSPLTH/VSPLTB to initialize vector short and vector char vectors
9882 with all of the same element.
9883 (regno_or_subregno): New helper function to return a register
9884 number for either REG or SUBREG.
9885 (rs6000_adjust_vec_address): Do not generate ADDI <reg>,R0,<num>.
9886 Use regno_or_subregno where possible.
9887 (rs6000_split_v4si_init_di_reg): New helper function to build up a
9888 DImode value from two SImode values in order to generate V4SImode
9889 vector initialization on 64-bit systems with direct move.
9890 (rs6000_split_v4si_init): Split up the insns for a V4SImode vector
9892 (rtx_is_swappable_p): V4SImode vector initialization insn is not
9894 * config/rs6000/rs6000-protos.h (rs6000_split_v4si_init): Add
9896 * config/rs6000/vsx.md (VSX_SPLAT_I): New mode iterators and
9897 attributes to initialize V8HImode and V16QImode vectors with the
9899 (VSX_SPLAT_COUNT): Likewise.
9900 (VSX_SPLAT_SUFFIX): Likewise.
9901 (UNSPEC_VSX_VEC_INIT): New unspec.
9902 (vsx_concat_v2sf): Eliminate using 'preferred' register classes.
9903 Allow SFmode values to come from Altivec registers.
9904 (vsx_init_v4si): New insn/split for V4SImode vector initialization
9905 on 64-bit systems with direct move.
9906 (vsx_splat_<mode>, VSX_W iterator): Rework V4SImode and V4SFmode
9907 vector initializations, to allow V4SImode vector initializations
9908 on 64-bit systems with direct move.
9909 (vsx_splat_v4si): Likewise.
9910 (vsx_splat_v4si_di): Likewise.
9911 (vsx_splat_v4sf): Likewise.
9912 (vsx_splat_v4sf_internal): Likewise.
9913 (vsx_xxspltw_<mode>, VSX_W iterator): Eliminate using 'preferred'
9915 (vsx_xxspltw_<mode>_direct, VSX_W iterator): Likewise.
9916 (vsx_vsplt<VSX_SPLAT_SUFFIX>_di): New insns to support
9917 initializing V8HImode and V16QImode vectors with the same
9919 * config/rs6000/rs6000.h (TARGET_DIRECT_MOVE_64BIT): Disallow
9920 optimization if -maltivec=be.
9922 2016-08-23 Christophe Lyon <christophe.lyon@linaro.org>
9924 * config/arm/arm.md (arm_movqi_insn): Swap predicable_short_it
9925 attribute for alternatives 3 and 4.
9927 2016-08-23 David Malcolm <dmalcolm@redhat.com>
9929 * selftest.c (selftest::assert_str_contains): New function.
9930 (selftest::test_assertions): Verify ASSERT_STR_CONTAINS.
9931 * selftest.h (selftest::assert_str_contains): New decl.
9932 (ASSERT_STR_CONTAINS): New macro.
9934 2016-08-23 Richard Biener <rguenther@suse.de>
9936 PR tree-optimization/77286
9937 * tree-vect-loop.c (vect_analyze_loop_form_1): Do not modify
9939 (vect_transform_loop): Split exit edges of loop and scalar
9940 loop if required and at the appropriate time.
9942 2016-08-23 Dominik Vogt <vogt@linux.vnet.ibm.com>
9944 * explow.c (get_dynamic_stack_size): Take known alignment of stack
9945 pointer + STACK_DYNAMIC_OFFSET into account when calculating the size
9947 Correct a typo in a comment.
9949 2016-08-23 Dominik Vogt <vogt@linux.vnet.ibm.com>
9951 * config/s390/s390.md ("*andc_split"): New splitter for and with
9954 2016-08-23 Richard Biener <rguenther@suse.de>
9956 PR tree-optimization/27336
9957 * tree-vrp.c (infer_value_range): Handle stmts that can throw
9958 by looking for a non-EH edge.
9959 (process_assert_insertions_for): Likewise.
9961 2016-08-23 Richard Biener <rguenther@suse.de>
9964 * statistics.c (statistics_counter_event): Robustify against
9967 2016-08-23 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
9969 * config/i386/i386.c (processor_alias_table): Enable PTA_PRFCHW
9970 for targets amdfam10 and barcelona.
9972 2016-08-22 Uros Bizjak <ubizjak@gmail.com>
9974 * config/i386/i386.md (*zero_extendsidi2): Add (*r,*k) alternative.
9975 (zero_extend<mode>di2): Ditto.
9976 (*zero_extend<mode>si2): Ditto.
9977 (*zero_extendqihi2): Ditto.
9979 2016-08-22 Joseph Myers <joseph@codesourcery.com>
9982 * builtins.c (fold_builtin_classify): Use builtin_decl_explicit
9983 (BUILT_IN_SIGNBIT) to expand __builtin_isinf_sign.
9985 2016-08-22 Patrick Palka <ppalka@gcc.gnu.org>
9987 * print-tree.c (print_node) [VECTOR_CST]: Coalesce the output of
9988 identical consecutive elements.
9989 [SSA_NAME]: Print the name's def stmt on its own line. When printing
9990 the node's def stmt, avoid printing an unwanted trailing newline by
9991 replacing the call to print_gimple_stmt() with its inlined body and
9992 adjusting it to not set pp_needs_newline and to call pp_flush()
9993 instead of pp_newline_and_flush().
9995 2016-08-22 Joseph Myers <joseph@codesourcery.com>
9997 * tree.h (CASE_FLT_FN_FLOATN_NX, float16_type_node)
9998 (float32_type_node, float64_type_node, float32x_type_node)
9999 (float128x_type_node): New macros.
10000 * builtin-types.def (BT_FLOAT16, BT_FLOAT32, BT_FLOAT64)
10001 (BT_FLOAT128, BT_FLOAT32X, BT_FLOAT64X, BT_FLOAT128X)
10002 (BT_FN_FLOAT16, BT_FN_FLOAT32, BT_FN_FLOAT64, BT_FN_FLOAT128)
10003 (BT_FN_FLOAT32X, BT_FN_FLOAT64X, BT_FN_FLOAT128X)
10004 (BT_FN_FLOAT16_FLOAT16, BT_FN_FLOAT32_FLOAT32)
10005 (BT_FN_FLOAT64_FLOAT64, BT_FN_FLOAT128_FLOAT128)
10006 (BT_FN_FLOAT32X_FLOAT32X, BT_FN_FLOAT64X_FLOAT64X)
10007 (BT_FN_FLOAT128X_FLOAT128X, BT_FN_FLOAT16_CONST_STRING)
10008 (BT_FN_FLOAT32_CONST_STRING, BT_FN_FLOAT64_CONST_STRING)
10009 (BT_FN_FLOAT128_CONST_STRING, BT_FN_FLOAT32X_CONST_STRING)
10010 (BT_FN_FLOAT64X_CONST_STRING, BT_FN_FLOAT128X_CONST_STRING)
10011 (BT_FN_FLOAT16_FLOAT16_FLOAT16, BT_FN_FLOAT32_FLOAT32_FLOAT32)
10012 (BT_FN_FLOAT64_FLOAT64_FLOAT64, BT_FN_FLOAT128_FLOAT128_FLOAT128)
10013 (BT_FN_FLOAT32X_FLOAT32X_FLOAT32X)
10014 (BT_FN_FLOAT64X_FLOAT64X_FLOAT64X)
10015 (BT_FN_FLOAT128X_FLOAT128X_FLOAT128X): New type definitions.
10016 * builtins.def (DEF_GCC_FLOATN_NX_BUILTINS): New macro.
10017 (copysign, fabs, huge_val, inf, nan, nans): Use it.
10018 * builtins.c (expand_builtin): Use CASE_FLT_FN_FLOATN_NX for fabs
10020 (fold_builtin_0): Use CASE_FLT_FN_FLOATN_NX for inf and huge_val.
10021 (fold_builtin_1): Use CASE_FLT_FN_FLOATN_NX for fabs.
10022 * doc/extend.texi (Other Builtins): Document these built-in
10024 * fold-const-call.c (fold_const_call): Use CASE_FLT_FN_FLOATN_NX
10027 2016-08-22 Gerald Pfeifer <gerald@pfeifer.com>
10029 * doc/install.texi (Binaries): www.opencsw.org now uses https.
10031 2016-08-22 Richard Biener <rguenther@suse.de>
10033 * tree-ssa-forwprop.c (pass_forwprop::execute): Use RPO order.
10035 2016-08-21 Uros Bizjak <ubizjak@gmail.com>
10038 * config/i386/i386.md (prefetch): When TARGET_PRFCHW or
10039 TARGET_PREFETCHWT1 are disabled, emit 3dNOW! write prefetches for
10040 non-SSE2 athlons only, otherwise prefer SSE prefetches.
10042 2016-08-20 Kugan Vivekanandarajah <kuganv@linaro.org>
10044 * tree-vrp.c (vrp_visit_assignment_or_call): Changed to Return VR.
10045 (vrp_visit_cond_stmt): Just sets TAKEN_EDGE_P.
10046 (vrp_visit_switch_stmt): Likewise.
10047 (extract_range_from_stmt): Factored out from vrp_visit_stmt.
10048 (extract_range_from_phi_node): Factored out from vrp_visit_phi_stmt.
10049 (vrp_visit_stmt): Use extract_range_from_stmt.
10050 (vrp_visit_phi_node): Use extract_range_from_phi_node.
10052 2016-08-20 Kugan Vivekanandarajah <kuganv@linaro.org>
10054 * Makefile.in: Add tree-vrp.h to GTFILES.
10055 * gengtype.c (open_base_files): Add tree-vrp.h.
10056 * asan.c: Add tree-vrp.h which now has the definition value_range_type.
10057 * builtins.c: Likewise.
10058 * fold-const.c: Likewise.
10059 * gimple-builder.c: Likewise.
10060 * gimple-laddress.c: Likewise.
10061 * hsa-gen.c: Likewise.
10062 * internal-fn.c: Likewise.
10064 * targhooks.c: Liewise,
10065 * tree-ssa-address.c: Likewise.
10066 * tree-ssanames.h (value_range_type: Move to tree-vrp.h.
10067 * tree-vrp.c (struct value_range): Move to tree-vrp.h
10068 * tree-vrp.h: New file.
10070 2016-08-20 Kugan Vivekanandarajah <kuganv@linaro.org>
10072 PR tree-optimization/61839
10073 * tree-vrp.c (two_valued_val_range_p): New.
10074 (simplify_stmt_using_ranges): Convert CST BINOP VAR where VAR is
10075 two-valued to VAR == VAL1 ? (CST BINOP VAL1) : (CST BINOP VAL2).
10076 Also Convert VAR BINOP CST where VAR is two-valued to
10077 VAR == VAL1 ? (VAL1 BINOP CST) : (VAL2 BINOP CST).
10079 2016-08-19 David Malcolm <dmalcolm@redhat.com>
10081 * diagnostic-show-locus.c
10082 (layout::annotation_line_showed_range_p): New method.
10083 (layout::print_any_fixits): Remove case fixit_hint::REMOVE.
10084 Reimplement case fixit_hint::REPLACE to cover removals, and
10085 replacements where the range of the replacement isn't one
10086 of the ranges in the rich_location.
10087 (test_one_liner_fixit_replace): Likewise.
10088 (selftest::test_one_liner_fixit_replace_non_equal_range): New
10090 (selftest::test_one_liner_fixit_replace_equal_secondary_range):
10092 (selftest::test_diagnostic_show_locus_one_liner): Call the new
10094 * diagnostic.c (print_parseable_fixits): Remove case
10095 fixit_hint::REMOVE.
10097 2016-08-19 Uros Bizjak <ubizjak@gmail.com>
10100 * config/i386/i386.c (ix86_option_override_internal): Remove
10101 PTA_PRFCHW from entries that also have PTA_3DNOW flag.
10102 Enable SSE prefetch also for TARGET_PREFETCHWT1.
10103 Do not try to enable TARGET_PRFCHW ISA flag here.
10104 * config/i386/i386.md (prefetch): Enable also for TARGET_3DNOW.
10105 Rewrite expander function body.
10106 (*prefetch_3dnow): Enable for TARGET_3DNOW and TARGET_PREFETCHWT1.
10108 2016-08-19 Joseph Myers <joseph@codesourcery.com>
10111 * tree-core.h (TI_COMPLEX_FLOAT16_TYPE)
10112 (TI_COMPLEX_FLOATN_NX_TYPE_FIRST, TI_COMPLEX_FLOAT32_TYPE)
10113 (TI_COMPLEX_FLOAT64_TYPE, TI_COMPLEX_FLOAT128_TYPE)
10114 (TI_COMPLEX_FLOAT32X_TYPE, TI_COMPLEX_FLOAT64X_TYPE)
10115 (TI_COMPLEX_FLOAT128X_TYPE, TI_FLOAT16_TYPE, TI_FLOATN_TYPE_FIRST)
10116 (TI_FLOATN_NX_TYPE_FIRST, TI_FLOAT32_TYPE, TI_FLOAT64_TYPE)
10117 (TI_FLOAT128_TYPE, TI_FLOATN_TYPE_LAST, TI_FLOAT32X_TYPE)
10118 (TI_FLOATNX_TYPE_FIRST, TI_FLOAT64X_TYPE, TI_FLOAT128X_TYPE)
10119 (TI_FLOATNX_TYPE_LAST, TI_FLOATN_NX_TYPE_LAST): New enum
10121 (NUM_FLOATN_TYPES, NUM_FLOATNX_TYPES, NUM_FLOATN_NX_TYPES): New
10123 (struct floatn_type_info): New structure type.
10124 (floatn_nx_types): New variable declaration.
10125 * tree.h (FLOATN_TYPE_NODE, FLOATN_NX_TYPE_NODE)
10126 (FLOATNX_TYPE_NODE, float128_type_node, float64x_type_node)
10127 (COMPLEX_FLOATN_NX_TYPE_NODE): New macros.
10128 * tree.c (floatn_nx_types): New variable.
10129 (build_common_tree_nodes): Initialize _FloatN, _FloatNx and
10130 corresponding complex types.
10131 * target.def (floatn_mode): New hook.
10132 * targhooks.c: Include "real.h".
10133 (default_floatn_mode): New function.
10134 * targhooks.h (default_floatn_mode): New prototype.
10135 * doc/extend.texi (Floating Types): Document _FloatN and _FloatNx
10137 * doc/sourcebuild.texi (float@var{n}, float@var{n}x): Document new
10138 effective-target and dg-add-options keywords.
10139 (float@var{n}_runtime, float@var{n}x_runtime, floatn_nx_runtime):
10140 Document new effective-target keywords.
10141 * doc/tm.texi.in (TARGET_FLOATN_MODE): New @hook.
10142 * doc/tm.texi: Regenerate.
10143 * ginclude/float.h (LDBL_DECIMAL_DIG): Define to
10144 __LDBL_DECIMAL_DIG__, not __DECIMAL_DIG__.
10145 [__STDC_WANT_IEC_60559_TYPES_EXT__]: Define macros from TS
10147 * real.h (struct real_format): Add field ieee_bits.
10148 * real.c (ieee_single_format, mips_single_format)
10149 (motorola_single_format, spu_single_format, ieee_double_format)
10150 (mips_double_format, motorola_double_format)
10151 (ieee_extended_motorola_format, ieee_extended_intel_96_format)
10152 (ieee_extended_intel_128_format)
10153 (ieee_extended_intel_96_round_53_format, ibm_extended_format)
10154 (mips_extended_format, ieee_quad_format, mips_quad_format)
10155 (vax_f_format, vax_d_format, vax_g_format, decimal_single_format)
10156 (decimal_double_format, decimal_quad_format, ieee_half_format)
10157 (arm_half_format, real_internal_format: Initialize ieee_bits
10159 * config/i386/i386.c (ix86_init_builtin_types): Do not initialize
10160 float128_type_node. Set float80_type_node to float64x_type_node
10161 if appropriate and long_double_type_node not appropriate.
10162 * config/ia64/ia64.c (ia64_init_builtins): Likewise.
10163 * config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format):
10164 Initialize ieee_bits field.
10165 * config/rs6000/rs6000.c (TARGET_FLOATN_MODE): New macro.
10166 (rs6000_init_builtins): Set ieee128_float_type_node to
10167 float128_type_node.
10168 (rs6000_floatn_mode): New function.
10170 2016-08-19 Jakub Jelinek <jakub@redhat.com>
10172 * config/i386/rdseedintrin.h (_rdseed16_step, _rdseed32_step,
10173 _rdseed64_step): Uglify argument names and/or local variable names
10174 in inline functions.
10175 * config/i386/rtmintrin.h (_xabort): Likewise.
10176 * config/i386/avx512vlintrin.h (_mm256_ternarylogic_epi64,
10177 _mm256_mask_ternarylogic_epi64, _mm256_maskz_ternarylogic_epi64,
10178 _mm256_ternarylogic_epi32, _mm256_mask_ternarylogic_epi32,
10179 _mm256_maskz_ternarylogic_epi32, _mm_ternarylogic_epi64,
10180 _mm_mask_ternarylogic_epi64, _mm_maskz_ternarylogic_epi64,
10181 _mm_ternarylogic_epi32, _mm_mask_ternarylogic_epi32,
10182 _mm_maskz_ternarylogic_epi32): Likewise.
10183 * config/i386/lwpintrin.h (__llwpcb, __lwpval32, __lwpval64,
10184 __lwpins32, __lwpins64): Likewise.
10185 * config/i386/avx2intrin.h (_mm_i32gather_pd, _mm_mask_i32gather_pd,
10186 _mm256_i32gather_pd, _mm256_mask_i32gather_pd, _mm_i64gather_pd,
10187 _mm_mask_i64gather_pd, _mm256_i64gather_pd, _mm256_mask_i64gather_pd,
10188 _mm_i32gather_ps, _mm_mask_i32gather_ps, _mm256_i32gather_ps,
10189 _mm256_mask_i32gather_ps, _mm_i64gather_ps, _mm_mask_i64gather_ps,
10190 _mm256_i64gather_ps, _mm256_mask_i64gather_ps, _mm_i32gather_epi64,
10191 _mm_mask_i32gather_epi64, _mm256_i32gather_epi64,
10192 _mm256_mask_i32gather_epi64, _mm_i64gather_epi64,
10193 _mm_mask_i64gather_epi64, _mm256_i64gather_epi64,
10194 _mm256_mask_i64gather_epi64, _mm_i32gather_epi32,
10195 _mm_mask_i32gather_epi32, _mm256_i32gather_epi32,
10196 _mm256_mask_i32gather_epi32, _mm_i64gather_epi32,
10197 _mm_mask_i64gather_epi32, _mm256_i64gather_epi32,
10198 _mm256_mask_i64gather_epi32): Likewise.
10199 * config/i386/pmm_malloc.h (_mm_malloc, _mm_free): Likewise.
10200 * config/i386/ia32intrin.h (__writeeflags): Likewise.
10201 * config/i386/pkuintrin.h (_wrpkru): Likewise.
10202 * config/i386/avx512pfintrin.h (_mm512_mask_prefetch_i32gather_pd,
10203 _mm512_mask_prefetch_i32gather_ps, _mm512_mask_prefetch_i64gather_pd,
10204 _mm512_mask_prefetch_i64gather_ps, _mm512_prefetch_i32scatter_pd,
10205 _mm512_prefetch_i32scatter_ps, _mm512_mask_prefetch_i32scatter_pd,
10206 _mm512_mask_prefetch_i32scatter_ps, _mm512_prefetch_i64scatter_pd,
10207 _mm512_prefetch_i64scatter_ps, _mm512_mask_prefetch_i64scatter_pd,
10208 _mm512_mask_prefetch_i64scatter_ps): Likewise.
10209 * config/i386/gmm_malloc.h (_mm_malloc, _mm_free): Likewise.
10210 * config/i386/avx512fintrin.h (_mm512_ternarylogic_epi64,
10211 _mm512_mask_ternarylogic_epi64, _mm512_maskz_ternarylogic_epi64,
10212 _mm512_ternarylogic_epi32, _mm512_mask_ternarylogic_epi32,
10213 _mm512_maskz_ternarylogic_epi32, _mm512_i32gather_ps,
10214 _mm512_mask_i32gather_ps, _mm512_i32gather_pd, _mm512_i64gather_ps,
10215 _mm512_i64gather_pd, _mm512_i32gather_epi32, _mm512_i32gather_epi64,
10216 _mm512_i64gather_epi32, _mm512_i64gather_epi64): Likewise.
10218 * config/i386/fxsrintrin.h (_fxsave): Remove return keyword in inlines
10220 (_fxrstor, _fxsave64, _fxrstor64): Likewise.
10221 * config/i386/xsaveintrin.h (_xsave, _xrstor, _xsave64, _xrstor64):
10223 * config/i386/xsaveoptintrin.h (_xsaveopt, _xsaveopt64): Likewise.
10224 * config/i386/pkuintrin.h (_wrpkru): Likewise. Add space after
10226 (_rdpkru_u32): Add space after function name.
10228 * config/i386/t-i386 (i386-c.o): Don't depend on
10229 i386-builtin-types.inc.
10230 (i386.o): Depend on i386-builtin-types.inc.
10232 2016-08-19 Matthew Wahab <matthew.wahab@arm.com>
10235 * config/arm/arm.c (neon_valid_immediate): Delete declaration.
10236 Use const_vec_duplicate to check for duplicated elements.
10238 2016-08-19 Richard Biener <rguenther@suse.de>
10240 PR tree-optimization/77290
10241 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
10242 Fix flag_tree_parallelize_loops check.
10244 2016-08-19 Richard Biener <rguenther@suse.de>
10246 * match.pd (x | 0 -> x): Add.
10248 2016-08-19 Richard Biener <rguenther@suse.de>
10250 PR tree-optimization/77286
10251 * tree-vect-loop-manip.c (slpeel_duplicate_current_defs_from_edges):
10252 Deal with virtual PHIs being out-of-order.
10254 2016-08-18 David Malcolm <dmalcolm@redhat.com>
10256 * doc/invoke.texi (fverbose-asm): Note that source code lines
10257 are emitted, and provide an example.
10258 * final.c (asm_show_source): New function.
10259 (final_scan_insn): Call asm_show_source.
10261 2016-08-18 David Malcolm <dmalcolm@redhat.com>
10263 * diagnostic-show-locus.c (colorizer::colorizer): Replace diagnostic
10264 param with diagnostic_kind.
10265 (class colorizer): Similarly replace field m_diagnostic with
10267 (colorizer::colorizer): Replace diagnostic
10268 param with diagnostic_kind.
10269 (colorizer::begin_state): Update for above field change.
10270 (layout::layout): Replace diagnostic param with rich_location *
10271 and diagnostic_kind.
10272 (diagnostic_show_locus): Replace diagnostic param with richloc
10273 and diagnostic_kind.
10274 (class selftest::test_diagnostic_context): New class.
10275 (selftest::test_diagnostic_show_locus_unknown_location): New
10277 (selftest::test_one_liner_simple_caret): New function.
10278 (selftest::test_one_liner_caret_and_range): New function.
10279 (selftest::test_one_liner_multiple_carets_and_ranges): New
10281 (selftest::test_one_liner_fixit_remove): New function.
10282 (selftest::test_one_liner_fixit_replace): New function.
10283 (selftest::test_diagnostic_show_locus_one_liner): New function.
10284 (selftest::diagnostic_show_locus_c_tests): Call the new test
10286 * diagnostic.c (diagnostic_initialize): Initialize
10287 colorize_source_p, show_ruler_p and parseable_fixits_p.
10288 (default_diagnostic_finalizer): Update for change to
10289 diagnostic_show_locus.
10290 (diagnostic_append_note): Likewise.
10291 * diagnostic.h (diagnostic_show_locus): Replace
10292 const diagnostic_info * param with location * and diagnostic_t.
10294 2016-08-18 David Malcolm <dmalcolm@redhat.com>
10296 * input.c (saved_line_table): New global.
10297 (class selftest::temp_line_table): Rename to line_table_test and
10298 move declaration to selftest.h, and drop field m_old_line_table.
10299 (selftest::temp_line_table::temp_line_table): Rename ctor to...
10300 (selftest::line_table_test::line_table_test): ...this. Add a
10301 default ctor. Store current value of line_table within
10303 (selftest::temp_line_table::~temp_line_table): Rename dtor to...
10304 (selftest::line_table_test::~line_table_test): ...this, and
10305 restore line_table from the saved_line_table, rather than
10307 (selftest::test_accessing_ordinary_linemaps): Update for above
10309 (selftest::test_lexer): Likewise.
10310 (struct selftest::lexer_test): Likewise.
10311 (selftest::lexer_test::lexer_test): Likewise.
10312 (selftest::input_c_tests): Move the looping over test cases from
10314 (selftest::for_each_line_table_case): New function.
10315 * input.h (saved_line_table): New decl.
10316 * selftest.h (struct selftest::line_table_case): New forward decl.
10317 (class selftest::line_table_test): New class, moved here from
10318 selftest::temp_line_table in input.c, and renamed.
10319 (selftest::for_each_line_table_case): New decl.
10321 2015-08-18 H.J. Lu <hongjiu.lu@intel.com>
10324 * config/i386/i386.c (lakemont_cost): Set MOVE_RATIO to 17.
10326 2016-08-18 Chung-Lin Tang <cltang@codesourcery.com>
10328 PR middle-end/70895
10329 * gimplify.c (omp_add_variable): Adjust/add variable mapping on
10330 enclosing parallel construct for reduction variables on OpenACC loop
10333 2016-08-18 Pierre-Marie de Rodat <derodat@adacore.com>
10335 * dwarf2out.c (copy_dwarf_procedure): Remove obsolete comment.
10336 (new_dwarf_proc_die): Emit DW_TAG_dwarf_procedure DIEs even for
10338 (function_to_dwarf_procedure): Update comment.
10340 2016-08-18 David Malcolm <dmalcolm@redhat.com>
10342 * input.c (diagnostics_file_cache_forcibly_evict_file): New
10344 * input.h (diagnostics_file_cache_forcibly_evict_file): New
10346 * selftest.c (selftest::temp_source_file::~temp_source_file):
10347 Evict m_filename from the diagnostic file cache.
10349 2016-08-18 Richard Biener <rguenther@suse.de>
10351 * tree-pass.h (make_pass_materialize_all_clones): Declare.
10352 * ipa.c (pass_data_materialize_all_clones, pass_materialize_all_clones,
10353 make_pass_materialize_all_clones): New simple IPA pass encapsulating
10354 clone materialization.
10355 * passes.def (all_late_ipa_passes): Start with
10356 pass_materialize_all_clones.
10357 * cgraphunit.c (symbol_table::compile): Remove call to
10358 materialize_all_clones.
10359 * tree-into-ssa.c: Include statistics.h.
10360 (update_ssa): Count number of times we do incremental/rewrite
10363 2016-08-18 Richard Biener <rguenther@suse.de>
10365 PR tree-optimization/77282
10366 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
10367 When doing auto-parallelizing also prevent use of PHIs that
10368 carry dependences across loop backedges.
10370 2016-08-18 Tamar Christina <tamar.christina@arm.com>
10371 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
10373 * varasm.c (default_use_anchors_for_symbol_p): Reject too large decls.
10375 2016-08-18 Richard Biener <rguenther@suse.de>
10377 * ssa-iterators.h (ssa_vuse_operand): New inline.
10378 * tree-if-conv.c (ifc_temp_var): Update virtual operand.
10379 (predicate_all_scalar_phis): Use remove_phi_node to remove
10380 phi nodes predicated. Delay removing virtual PHIs.
10381 (predicate_mem_writes): Update virtual operands.
10382 (combine_blocks): Likewise. Propagate out remaining virtual PHIs.
10383 (tree_if_conversion): Do not rewrite virtual SSA form.
10384 * tree-phinodes.c (release_phi_node): Make static.
10385 * tree-phinodes.h (release_phi_node): Remove.
10387 2016-08-18 Jakub Jelinek <jakub@redhat.com>
10389 * config/i386/i386.c (enum ix86_builtins): Remove IX86_BUILTIN_*
10390 codes that appear in bdesc_* arrays, instead include i386-builtin.def
10391 twice to define those.
10392 (bdesc_comi, bdesc_pcmpestr, bdesc_pcmpistr, bdesc_special_args,
10393 bdesc_args, bdesc_round_args, bdesc_mpx, bdesc_mpx_const,
10394 bdesc_multi_arg): Define by including i386-builtin.def the third time.
10395 * config/i386/i386-builtin.def: New file.
10397 2016-08-17 David Malcolm <dmalcolm@redhat.com>
10399 * input.c (get_source_range_for_char): Rename to...
10400 (selftest::get_source_range_for_char): ...this, and move within
10401 the #if CHECKING_P guard.
10402 (get_num_source_ranges_for_substring): Rename to...
10403 (selftest::get_num_source_ranges_for_substring): ...this, move
10404 within the #if CHECKING_P guard, and make static.
10405 (selftest::assert_num_substring_ranges): Initialize
10408 2016-08-18 Alan Modra <amodra@gmail.com>
10410 PR rtl-optimization/72771
10411 * reload.c (find_reloads): Don't assume that a subreg mem is OK
10412 when find_reloads_toplev returns address_reloaded==-1.
10413 (alternative_allows_const_pool_ref): Update comment.
10415 2015-08-17 Alan Hayward <alan.hayward@arm.com>
10417 PR tree-optimization/71752
10418 * tree-vect-loop.c (vectorizable_reduction): Keep SLP operand ordering.
10419 * tree-vect-slp.c (vect_get_slp_defs): Handle null operands.
10421 2016-08-17 Jakub Jelinek <jakub@redhat.com>
10423 * gimple-fold.c (gimple_fold_call): Use gimple_call_noreturn_p
10424 instead of testing ECF_NORETURN bit in gimple_call_flags.
10425 * tree-cfg.c (make_edges_bb, execute_fixup_cfg): Likewise.
10426 * predict.c (tree_bb_level_predictions): Likewise.
10427 * gimple-low.c (gimple_stmt_may_fallthru): Likewise.
10429 PR middle-end/77259
10430 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): If
10431 turning a call into __builtin_unreachable-like noreturn call, adjust
10432 gimple_call_set_fntype.
10433 * tree-cfgcleanup.c (fixup_noreturn_call): Remove lhs also if
10434 gimple_call_fntype has void return type.
10436 2016-08-17 Chung-Lin Tang <cltang@codesourcery.com>
10438 * omp-low.c (lower_oacc_reductions): Adjust variable lookup to use
10439 maybe_lookup_decl, to handle nested acc loop directives.
10441 2016-08-17 Richard Biener <rguenther@suse.de>
10443 PR tree-optimization/76490
10444 * tree-vrp.c (update_value_range): Preserve overflow infinities
10445 when intersecting with ranges from get_range_info.
10446 (operand_less_p): Handle overflow infinities correctly.
10447 (value_range_constant_singleton): Use vrp_operand_equal_p
10448 to handle overflow max/min correctly.
10449 (vrp_valueize): Likewise.
10450 (union_ranges): Likewise.
10451 (intersect_ranges): Likewise.
10452 (vrp_visit_phi_node): Improve iteration limitation to only
10453 apply when we'll possibly re-visit the PHI via a changed argument
10456 2016-08-17 Thomas Preud'homme <thomas.preudhomme@arm.com>
10458 * config/arm/t-aprofile (MULTILIB_EXCEPTIONS): Rewrite into ...
10459 (MULTILIB_REQUIRED): This by specifying multilib needing to be built
10460 rather than those that should not be built.
10462 2016-08-17 Stanislaw Halik <sthalik@misaki.pl>
10465 * config/i386/xm-mingw32.h (HOST_BITS_PER_PTR): Define if __x86_64__.
10467 2016-08-17 Richard Biener <rguenther@suse.de>
10469 * tree-ssa.c: Include tree-cfg.h and tree-dfa.h.
10470 (verify_vssa): New function verifying virtual SSA form.
10471 (verify_ssa): Call it.
10472 * tree-ssa-loop-manip.c (slpeel_update_phi_nodes_for_guard2):
10473 Do not apply loop-closed SSA handling to virtuals.
10474 * ssa-iterators.h (op_iter_init): Handle GIMPLE_TRANSACTION.
10475 * tree-into-ssa.c (prepare_use_sites_for): Skip virtual SSA names
10476 when rewriting their symbol.
10477 (prepare_def_site_for): Likewise.
10478 * tree-chkp-opt.c (chkp_reduce_bounds_lifetime): Clear virtual
10479 operands of moved stmts.
10481 2016-08-17 Richard Biener <rguenther@suse.de>
10483 PR tree-optimization/23855
10484 * tree-ssa-loop-unswitch.c: Include tree-ssa-loop-manip.h.
10485 (tree_unswitch_outer_loop): Iterate find_loop_guard as long as we
10486 find guards to hoist. Do not update SSA form but rewrite virtuals
10487 into loop closed SSA.
10488 (find_loop_guard): Adjust to skip already hoisted guards. Do
10489 not mark virtuals for renaming or update SSA form.
10491 2016-08-17 Martin Liska <mliska@suse.cz>
10493 * coverage.c (get_gcov_type): Replace GCOV_TYPE_SIZE with
10494 a LONG_LONG_TYPE_SIZE comparison.
10495 * gcov-io.h: Remove macro definitions.
10496 * tree-profile.c (gimple_gen_edge_profiler): Replace usage
10497 of GCOV_TYPE_ATOMIC_FETCH_ADD with a LONG_LONG_TYPE_SIZE
10500 2016-08-16 Jakub Jelinek <jakub@redhat.com>
10502 * config/i386/i386.c (enum ix86_builtins): Reorder enumerators, so
10503 that builtins not mentioned in bdesc_* arrays come first, then
10504 the ones mentioned in bdesc_* arrays in the order they appear in
10505 the arrays in between IX86_BUILTIN__BDESC_*_FIRST and
10506 IX86_BUILTIN__BDESC_*_LAST enumerator.
10507 (bdesc_mpx): Fix up a comment typo.
10508 (bdesc_multi_arg): Remove __builtin_ia32_vpcomne[bwdq] and
10509 __builtin_ia32_vpcomneu[bwdq] builtins.
10510 (BDESC_VERIFY, BDESC_VERIFYS): Define.
10511 (ix86_init_mmx_sse_builtins, ix86_init_mpx_builtins): Verify
10512 enum ix86_builtins ordering.
10513 (ix86_expand_builtin): Use enum ix86_builtins ordering assumption
10514 for direct bdesc_* array member access instead of searching all the
10515 arrays until an fcode match is found.
10517 2016-08-16 Uros Bizjak <ubizjak@gmail.com>
10519 * config/i386/i386.md (*ashl<mode>3_mask): Rewrite define_insn
10520 pattern as define_insn_and_split. Split insn before reload to
10522 (*<shift_insn><mode>3_mask): Ditto. Split insn before reload to
10523 <shift_insn><mode>3_1.
10524 (*<rotate_insn><mode>3_mask): Ditto. Split insn before reload to
10525 <rotate_insn><mode>3_1.
10527 2016-08-16 David Malcolm <dmalcolm@redhat.com>
10530 * input.c (get_source_range_for_substring): Rename to...
10531 (get_source_location_for_substring): ...this, adding param
10532 "caret_idx", and converting output param from source_range * to
10534 (get_source_range_for_char): New function.
10535 (get_num_source_ranges_for_substring): Update comment to reflect
10537 (assert_char_at_range): Update to use get_source_range_for_char
10538 rather than get_source_range_for_substring.
10539 (test_lexer_string_locations_concatenation_2): Likewise.
10540 * substring-locations.h (get_source_range_for_substring): Rename
10542 (get_source_location_for_substring): ...this, and adding param
10543 "caret_idx", and converting output param from source_range * to
10546 2016-08-16 David Malcolm <dmalcolm@redhat.com>
10548 * input.c (class selftest::temp_source_file): Move to
10550 (selftest::temp_source_file::temp_source_file): Move to
10552 (selftest::temp_source_file::~temp_source_file): Likewise.
10553 * selftest.c (selftest::temp_source_file::temp_source_file): Move
10555 (selftest::temp_source_file::~temp_source_file): Likewise.
10556 * selftest.h (class selftest::temp_source_file): Move here from
10559 2016-08-16 Jakub Jelinek <jakub@redhat.com>
10562 * tree-cfg.c (execute_fixup_cfg): Add node variable, use it. Before
10563 inlining, add cgraph edge for the added __builtin_unreachable call.
10565 PR middle-end/67485
10566 * expmed.c (expand_mult_const): Change val_so_far's type to UHWI,
10567 only cast it to SHWI for the final comparison.
10569 2016-08-16 Martin Liska <mliska@suse.cz>
10571 PR gcov-profile/36412
10572 * doc/gcov.texi: Document --hash-filenames(-x).
10573 * gcov.c (print_usage): Add the option.
10574 (process_args): Process the option, sort options alphabetically.
10575 (md5sum_to_hex): New function.
10576 (make_gcov_file_name): Do the md5sum and append it to a
10579 2016-08-16 Bin Cheng <bin.cheng@arm.com>
10581 PR tree-optimization/69848
10582 * config/aarch64/aarch64-simd.md (vcond<mode><mode>): Invert NE
10583 and swtich operands to avoid additional NOT instruction.
10584 (vcond<v_cmp_mixed><mode>): Ditto.
10585 (vcondu<mode><mode>, vcondu<mode><v_cmp_mixed>): Ditto.
10587 2016-08-16 Eric Botcazou <ebotcazou@adacore.com>
10589 * doc/install.texi (*-*-solaris2*): Adjust latest change.
10591 2016-08-16 Richard Biener <rguenther@suse.de>
10593 PR tree-optimization/76783
10594 * tree-ssa-propagate.c (ssa_prop_init): Use RPO order. Clear
10595 BB visited flags at start.
10597 2016-08-16 Bin Cheng <bin.cheng@arm.com>
10599 PR tree-optimization/72817
10600 PR tree-optimization/73450
10601 * tree-ssa-loop-niter.c (number_of_iterations_ne): Check
10602 multiple_of_p for adjusted IV.base.
10604 2016-08-15 Uros Bizjak <ubizjak@gmail.com>
10607 * config/i386/sse.md (<code><mode>3<mask_name><round_saeonly_name>):
10608 Emit ieee_<ieee_maxmin><mode>3<mask_name><round_saeonly_name>
10609 for !flag_finite_math_only or flag_signed_zeros.
10610 (*<code><mode>3<mask_name><round_saeonly_name>): Rename from
10611 *<code><mode>3_finite<mask_name><round_saeonly_name>. Do not
10612 depend on flag_finite_math_only.
10613 (ieee_<ieee_maxmin><mode>3<mask_name><round_saeonly_name>):
10615 (*<code><mode>3<mask_name><round_saeonly_name>): Remove.
10616 (*ieee_smin<mode>3): Ditto.
10617 (*ieee_smax<mode>3): Ditto.
10618 * config/i386/mmx.md (mmx_<code>v2sf3): Emit
10619 mmx_ieee_<ieee_maxmin>v2sf3 for !flag_finite_math_only or
10621 (*mmx_<code>v2sf3): Rename from *mmx_<code>v2sf3_finite. Do not
10622 depend on flag_finite_math_only.
10623 (mmx_ieee_<ieee_maxmin>v2sf3): New insn pattern.
10624 (*mmx_<code>v2sf3): Remove.
10625 * config/i386/subst.md (round_saeonly_mask_arg3): New subst attribute.
10626 * config/i386/i386.c (ix86_expand_sse_fp_mimnax): Check
10627 flag_signed_zeros instead of !flag_unsafe_math_optimizations.
10629 2016-08-15 Segher Boessenkool <segher@kernel.crashing.org>
10631 PR rtl-optimization/73650
10632 * lra-constraints.c (simple_move_p): If the insn is multiple_sets
10633 it is not a simple move.
10635 2016-08-15 Martin Liska <mliska@suse.cz>
10638 * gcc.c (do_spec_1): Call save_string with the right size.
10639 (save_string): Do an assert about string we copy.
10641 2016-08-15 Richard Biener <rguenther@suse.de>
10643 * ree.c (rest_of_handle_ree): Remove redundant timevar push/pop.
10644 * config/i386/i386.c (pass_data_insert_vzeroupper): Account to
10646 (pass_data_stv): Likewise.
10648 2016-08-15 Richard Biener <rguenther@suse.de>
10650 PR tree-optimization/73434
10651 * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Preserve
10652 TBAA info on the base when forwarding a non-invariant address.
10654 2016-08-15 Jakub Jelinek <jakub@redhat.com>
10656 * dwarf2out.c (struct checksum_attributes): Add
10657 at_string_length_bit_size and at_string_length_byte_size fields.
10658 (collect_checksum_attributes): Handle DW_AT_string_length_bit_size
10659 and DW_AT_string_length_byte_size.
10660 (die_checksum_ordered): Handle at_string_length_bit_size and
10661 at_string_length_byte_size.
10662 (gen_array_type_die): For dwarf_version >= 5 emit
10663 DW_AT_string_length_byte_size instead of DW_AT_byte_size.
10664 (adjust_string_types): For dwarf_version >= 5 remove
10665 DW_AT_string_length_byte_size instead of DW_AT_byte_size.
10666 (resolve_addr): Likewise.
10669 * dwarf2out.c (string_types): New variable.
10670 (gen_array_type_die): Change early_dwarf handling of
10671 DW_AT_string_length, create DW_OP_call4 referencing the
10672 length var temporarily. Handle parameters that are pointers
10674 (adjust_string_types): New function.
10675 (gen_subprogram_die): Temporarily set string_types to local var,
10676 call adjust_string_types if needed.
10677 (non_dwarf_expression, copy_deref_exprloc, optimize_string_length):
10679 (resolve_addr): Adjust DW_AT_string_length if it is DW_OP_call4.
10681 2016-08-15 Eric Botcazou <ebotcazou@adacore.com>
10683 * doc/install.texi (*-*-solaris2*): Fix version number and document
10684 requirement on GNU make for building libjava with the Solaris linker.
10686 2016-08-15 Martin Liska <mliska@suse.cz>
10687 Jakub Jelinek <jakub@redhat.com>
10689 PR tree-optimization/72824
10690 * tree-loop-distribution.c (const_with_all_bytes_same)
10691 <case VECTOR_CST>: Fix a typo.
10693 2016-08-14 Uros Bizjak <ubizjak@gmail.com>
10696 * config/i386/avx512fintrin.h (_mm512_undefined_epi32):
10697 Renamed from _mm512_undefined_si512.
10698 (_mm_undefined_si512): New definition.
10700 2016-08-13 Richard Biener <rguenther@suse.de>
10702 * tree-ssa-forwprop.c (pass_forwprop::execute): Propagate
10703 into PHIs and update the lattice for its def.
10705 2016-08-12 Jakub Jelinek <jakub@redhat.com>
10708 * ubsan.c (instrument_si_overflow): Pass true instead of false
10710 (pass_ubsan::execute): Call gimple_purge_dead_eh_edges at the end
10711 of bbs. Return TODO_cleanup_cfg if any returned true.
10713 2016-08-12 Michael Meissner <meissner@linux.vnet.ibm.com>
10715 * config/rs6000/vsx.md (vsx_concat_<mode>): Add support for the
10716 ISA 3.0 MTVSRDD instruction.
10717 (vsx_splat_<mode>): Change cpu type of MTVSRDD instruction to
10720 2016-08-12 Bernd Edlinger <bernd.edlinger@hotmail.de>
10722 PR tree-optimization/71083
10723 * tree-predcom.c (ref_at_iteration): Use a COMPONENT_REF for the
10724 bitfield access when possible.
10726 2016-08-12 Patrick Palka <ppalka@gcc.gnu.org>
10728 PR middle-end/71654
10729 * match.pd ((T)A CMP (T)B -> A CMP B): Allow (T)A to be a
10730 sign-changing cast from a shorter unsigned type to a wider
10733 2016-08-12 Jakub Jelinek <jakub@redhat.com>
10735 * config/i386/sse.md (avx512dq_vextract<shuffletype>64x2_1_maskm,
10736 vec_extract_hi_<mode>_mask, vec_extract_lo_<mode>_mask,
10737 vec_extract_hi_<mode>_mask): Use Yk constraint instead of k.
10739 2016-08-12 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
10741 * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost):
10742 Correct costs for vec_construct.
10744 2016-08-12 Bin Cheng <bin.cheng@arm.com>
10746 PR tree-optimization/69848
10747 * tree-vectorizer.h (enum vect_def_type): New condition reduction
10748 type CONST_COND_REDUCTION.
10749 * tree-vect-loop.c (vectorizable_reduction): Support new condition
10750 reudction type CONST_COND_REDUCTION.
10752 2016-08-12 Richard Biener <rguenther@suse.de>
10754 PR tree-optimization/57326
10755 * tree-ssa-pre.c (fully_constant_expression): Handle simplification
10756 returning an SSA name.
10757 (phi_translate_1): When fully_constant_expression returns a NAME
10758 make sure we have a leader for it.
10760 2016-08-12 Martin Liska <mliska@suse.cz>
10761 Adam Fineman <afineman@afineman.com>
10763 * gcov.c (process_file): Create .gcov file when .gcda
10766 2016-08-12 Marek Polacek <polacek@redhat.com>
10769 * alias.c (find_base_value): Adjust fall through comment.
10770 * cfgexpand.c (expand_debug_expr): Likewise.
10771 * combine.c (find_split_point): Likewise.
10772 (expand_compound_operation): Likewise. Add FALLTHRU.
10773 (make_compound_operation): Adjust fall through comment.
10774 (canon_reg_for_combine): Add FALLTHRU.
10775 (force_to_mode): Adjust fall through comment.
10776 (simplify_shift_const_1): Likewise.
10777 (simplify_comparison): Likewise.
10778 * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args): Add
10780 * config/aarch64/predicates.md: Likewise.
10781 * config/i386/i386.c (function_arg_advance_32): Likewise.
10782 (ix86_gimplify_va_arg): Likewise.
10783 (print_reg): Likewise.
10784 (ix86_print_operand): Likewise.
10785 (ix86_build_const_vector): Likewise.
10786 (ix86_expand_branch): Likewise.
10787 (ix86_sched_init_global): Adjust fall through comment.
10788 (ix86_expand_args_builtin): Add FALLTHRU.
10789 (ix86_expand_builtin): Likewise.
10790 (ix86_expand_vector_init_one_var): Likewise.
10791 * config/rs6000/rs6000.c (rs6000_emit_vector_compare_inner): Likewise.
10792 (rs6000_adjust_cost): Likewise.
10793 (insn_must_be_first_in_group): Likewise.
10794 * config/rs6000/rs6000.md: Likewise. Adjust fall through comment.
10795 * dbxout.c (dbxout_symbol): Adjust fall through comment.
10796 * df-scan.c (df_uses_record): Likewise.
10797 * dojump.c (do_jump): Add FALLTHRU.
10798 * dwarf2out.c (mem_loc_descriptor): Likewise. Adjust fall through
10800 (resolve_args_picking_1): Adjust fall through comment.
10801 (loc_list_from_tree_1): Likewise.
10802 * expmed.c (make_tree): Likewise.
10803 * expr.c (expand_expr_real_2): Add FALLTHRU.
10804 (expand_expr_real_1): Likewise. Adjust fall through comment.
10805 * fold-const.c (const_binop): Adjust fall through comment.
10806 (fold_truth_not_expr): Likewise.
10807 (fold_cond_expr_with_comparison): Add FALLTHRU.
10808 (fold_binary_loc): Likewise.
10809 (contains_label_1): Adjust fall through comment.
10810 (multiple_of_p): Likewise.
10811 * gcov-tool.c (process_args): Add FALLTHRU.
10812 * genattrtab.c (check_attr_test): Likewise.
10813 (write_test_expr): Likewise.
10814 * genconfig.c (walk_insn_part): Likewise.
10815 * genpreds.c (validate_exp): Adjust fall through comment.
10816 (needs_variable): Likewise.
10817 * gensupport.c (get_alternatives_number): Add FALLTHRU.
10818 (subst_dup): Likewise.
10819 * gimple-pretty-print.c (dump_gimple_assign): Likewise.
10820 * gimplify.c (gimplify_addr_expr): Adjust fall through comment.
10821 (gimplify_scan_omp_clauses): Add FALLTHRU.
10822 (goa_stabilize_expr): Likewise.
10823 * graphite-isl-ast-to-gimple.c (substitute_ssa_name): Adjust fall
10825 * hsa-gen.c (get_address_from_value): Likewise.
10826 * ipa-icf.c (sem_function::hash_stmt): Likewise.
10827 * ira.c (ira_setup_alts): Add FALLTHRU.
10828 * lra-eliminations.c (lra_eliminate_regs_1): Adjust fall through
10830 * lto-streamer-out.c (lto_output_tree_ref): Add FALLTHRU.
10831 * opts.c (common_handle_option): Likewise.
10832 * read-rtl.c (read_rtx_code): Likewise.
10833 * real.c (round_for_format): Likewise.
10834 * recog.c (asm_operand_ok): Likewise.
10835 * reginfo.c (reg_scan_mark_refs): Adjust fall through comment.
10836 * reload1.c (set_label_offsets): Likewise.
10837 (eliminate_regs_1): Likewise.
10838 (reload_reg_reaches_end_p): Likewise.
10839 * rtlanal.c (commutative_operand_precedence): Add FALLTHRU.
10840 (rtx_cost): Likewise.
10841 * sched-rgn.c (is_exception_free): Likewise.
10842 * simplify-rtx.c (simplify_rtx): Adjust fall through comment.
10843 * stor-layout.c (int_mode_for_mode): Likewise.
10844 * toplev.c (print_to_asm_out_file): Likewise.
10845 (print_to_stderr): Likewise.
10846 * tree-cfg.c (gimple_verify_flow_info): Likewise.
10847 * tree-chrec.c (chrec_fold_plus_1): Add FALLTHRU.
10848 (chrec_fold_multiply): Likewise.
10849 (evolution_function_is_invariant_rec_p): Likewise.
10850 (for_each_scev_op): Likewise.
10851 * tree-data-ref.c (siv_subscript_p): Likewise.
10852 (get_references_in_stmt): Likewise.
10853 * tree.c (find_placeholder_in_expr): Adjust fall through comment.
10854 (substitute_in_expr): Likewise.
10855 (type_cache_hasher::equal): Likewise.
10856 (walk_type_fields): Likewise.
10857 * var-tracking.c (adjust_mems): Add FALLTHRU.
10858 (set_dv_changed): Adjust fall through comment.
10859 * varasm.c (default_function_section): Add FALLTHRU.
10861 2016-08-12 Marek Polacek <polacek@redhat.com>
10864 * tree-complex.c (expand_complex_division): Add missing break.
10866 2016-08-12 Richard Biener <rguenther@suse.de>
10868 * passes.c (execute_todo): Do not push/pop TV_TODO.
10869 (execute_one_ipa_transform_pass): Move timevar push/pop TODO execution.
10870 (execute_one_pass): Likewise.
10871 * common.opt (ftime-report-details): New switch.
10872 * doc/invoke.texi (ftime-report-details): Document.
10873 * timevar.h (timer::print_row): Adjust signature.
10874 (timer::all_zero): New static helper.
10875 (timer::child_map_t): New typedef.
10876 (timer::time_var_def): Add children field.
10877 * timevar.c (timer::named_items::print): Adjust.
10878 (timer::~timer): Free timevar recorded children.
10879 (timer::pop_internal): When -ftime-report-details record
10880 time spent in sub-timevars.
10881 (timer::print_row): Adjust.
10882 (timer::print): Print sub-timevar stats, use all_zero.
10883 * timevar.def (TV_TODO): Remove.
10885 2016-08-12 Richard Biener <rguenther@suse.de>
10887 PR tree-optimization/72851
10888 * tree-ssa-propagate.c: Include cfganal.h. Rewrite block and stmt
10889 worklists to use bitmaps indexed in execution order.
10890 (executable_blocks, cfg_blocks_num, cfg_blocks_tail, cfg_blocks_head,
10891 bb_in_list, interesting_ssa_edges, varying_ssa_edges): Remove.
10892 (cfg_blocks): Make a bitmap.
10893 (bb_to_cfg_order, cfg_order_to_bb, ssa_edge_worklist, uid_to_stmt):
10895 (cfg_blocks_empty_p): Adjust.
10896 (cfg_blocks_add): Likewise.
10897 (cfg_blocks_get): Likewise.
10898 (add_ssa_edge): Likewise.
10899 (add_control_edge): Likewise.
10900 (simulate_stmt): Likewise.
10901 (process_ssa_edge_worklist): Likewise.
10902 (simulate_block): Likewise.
10903 (ssa_prop_init): Compute PRE order and stmt UIDs.
10904 (ssa_prop_fini): Adjust.
10905 (ssa_propagate): Adjust.
10907 2016-08-12 Richard Biener <rguenther@suse.de>
10909 * tree-vrp.c (vrp_visit_phi_node): Allow a last iteration if
10910 the currently executable edges have fixed ranges. Always
10911 go through update_value_range.
10913 2016-08-12 Alexandre Oliva <aoliva@redhat.com>
10917 (LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P): Const_tree-ify.
10918 (LANG_HOOKS_FUNCTION_DECL_DELETED_P): Likewise.
10919 (LANG_HOOKS_FUNCTION_DECL_DEFAULTED): Set default.
10920 (LANG_HOOKS_DECLS): Add it.
10921 * langhooks.h (struct lang_hooks_for_decls): Add
10922 function_decl_defaulted. Const_tree-ify
10923 function_decl_explicit_p and function_decl_deleted_p.
10924 * dwarf2out.c (gen_subprogram_die): Add DW_AT_defaulted
10925 attribute. Add DW_AT_deleted instead of DW_AT_GNU_deleted,
10926 also at strict DWARF v5.
10929 * dwarf2out.c (decl_quals): Don't map TREE_READONLY to
10930 TYPE_QUAL_CONST in reference-typed decls.
10933 * dwarf2out.c (loc_list_from_tree_1): Expand some CONSTRUCTORs
10934 in DW_OP_pieces, just enough to handle pointers to member
10936 (gen_remaining_tmpl_value_param_die_attribute): Use a location
10937 expression on DWARFv5 if a constant value doesn't work.
10939 2016-08-11 David Malcolm <dmalcolm@redhat.com>
10941 * selftest-run-tests.c (selftest::run_tests): Call selftest_c_tests.
10942 * selftest.c (selftest::test_assertions): New function.
10943 (selftest::selftest_c_tests): New function.
10944 * selftest.h (selftest::selftest_c_tests): New declaration.
10946 2016-08-11 Richard Biener <rguenther@suse.de>
10947 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
10949 PR rtl-optimization/72855
10950 * df-core.c (df_verify): Turn off DF_VERIFY_SCHEDULED at end.
10952 2016-08-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
10955 * vsx.md (vsx_load_<mode>): For P8LE, emit swaps at expand time.
10956 (vsx_store_<mode>): Likewise.
10958 2015-08-11 H.J. Lu <hongjiu.lu@intel.com>
10960 * config/i386/i386.c (timode_scalar_to_vector_candidate_p): Allow
10961 TImode CONST_WIDE_INT store.
10962 (timode_scalar_chain::convert_insn): Handle CONST_WIDE_INT store.
10964 2015-08-11 H.J. Lu <hongjiu.lu@intel.com>
10966 * config/i386/i386.h (MOVE_MAX_PIECES): Use TImode in 64-bit
10967 mode if unaligned SSE load and store are optimal.
10969 2016-08-11 Bernd Edlinger <bernd.edlinger@hotmail.de>
10971 PR tree-optimization/71083
10972 * tree-predcom.c (ref_at_iteration): Correctly align the
10975 2016-08-11 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
10977 * config/s390/s390-builtin-types.def: Add INT128 types.
10978 * config/s390/s390-builtins.def: Add INT128 variants for the add
10979 sub low-level builtins dealing with TImode.
10980 * config/s390/s390.c (s390_expand_builtin): Allow mode conversions
10981 via subreg when expanding a builtin.
10982 * config/s390/s390.md: Remove UNSPEC_VEC_ADDC_U128,
10983 UNSPEC_VEC_SUB_U128, and UNSPEC_VEC_SUBC_U128 constants.
10985 * config/s390/vecintrin.h: Adjust builtin names accordingly.
10986 * config/s390/vx-builtins.md ("vec_add_u128"): Remove expander.
10987 ("vec_addc<mode>", "vec_addc_u128"): Merge to
10988 "vacc<bhfgq>_<mode>".
10989 ("vec_adde_u128"): Rename to "vacq". Change mode to TImode.
10990 ("vec_addec_u128"): Rename to "vacccq". Change mode to TImode.
10991 ("vec_subc<mode>", "vec_subc_u128"): Merge to
10992 "vscbi<bhfgq>_<mode>".
10993 ("vec_sube_u128"): Rename to "vsbiq". Change mode to TImode.
10994 ("vec_subec_u128"): Rename to "vsbcbiq". Change mode to TImode.
10996 2016-08-11 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
10998 * config/s390/s390-builtins.def: Mark last operand of s390_vlvg*
11000 2016-08-11 Bin Cheng <bin.cheng@arm.com>
11002 * config/aarch64/aarch64-simd.md (vcond<mode><mode>): Delete
11003 unused declaration.
11004 (vcond<v_cmp_mixed><mode>): Ditto.
11005 (vcondu<mode><mode>, vcondu<mode><v_cmp_mixed>): Ditto.
11007 2016-08-11 Bin Cheng <bin.cheng@arm.com>
11009 * config/aarch64/aarch64-simd.md (vec_cmp<mode><v_cmp_result>): Init
11010 variable explicitly, also assert on it before use.
11012 2016-08-11 Richard Biener <rguenther@suse.de>
11014 PR tree-optimization/72772
11015 * cfgloopmanip.c (create_preheader): Use split_edge if there
11016 is a single loop entry, avoiding degenerate PHIs.
11018 2016-08-11 Richard Biener <rguenther@suse.de>
11020 * tree-ssa-threadbackward.c (pass_data_thread_jumps): Remove
11021 unconditional TODO_cleanup_cfg.
11022 (pass_thread_jumps::execute): Initialize loops, perform a CFG
11023 cleanup only if we threaded a jump.
11025 2016-08-11 Alan Modra <amodra@gmail.com>
11028 * lra-constraints.c (simplify_operand_subreg): Allow subreg
11029 mode for mem when SLOW_UNALIGNED_ACCESS if inner mode is also
11030 slow. Emit two reloads for slow mem case, first loading in
11031 fast innermode, then converting to required mode.
11033 2016-08-10 Kelvin Nilsen <kelvin@gcc.gnu.org>
11035 * config/rs6000/altivec.h (vec_extract_exp): New macro.
11036 (vec_extract_sig): New macro.
11037 (vec_insert_exp): New macro.
11038 (vec_test_data_class): New macro.
11039 (scalar_extract_exp): New macro.
11040 (scalar_extract_sig): New macro.
11041 (scalar_insert_exp): New macro.
11042 (scalar_test_data_class): New macro.
11043 (scalar_test_neg): New macro.
11044 (scalar_cmp_exp_gt): New macro.
11045 (scalar_cmp_exp_lt): New macro.
11046 (scalar_cmp_exp_eq): New macro.
11047 (scalar_cmp_exp_unordered): New macro.
11048 * config/rs6000/predicates.md (u7bit_cint_operand): New predicate
11049 to enforce constraint that operand is a 7-bit unsigned literal.
11050 * config/rs6000/rs6000-builtin.def (BU_P9V_64BIT_VSX_1): New macro
11051 for power9 built-ins.
11052 (BU_P9V_VSX_2): Likewise.
11053 (BU_P9V_64BIT_VSX_2): Likewise.
11054 (VSEEDP): Add scalar extract exponent support.
11055 (VSEESP): Add scalar extract signature support.
11056 (VSTDCNDP): Add scalar test negative support.
11057 (VSTDCNSP): Likewise.
11058 (VSIEDP): Add scalar insert exponent support.
11059 (VSCEDPGT): Add scalar compare exponent greater than support.
11060 (VSCEDPLT): Add scalar compare exponent less than support.
11061 (VSCEDPEQ): Add scalar compare exponent test-for-equality support.
11062 (VSCEDPUO): Add scalar compare exponent test-for-unordered support.
11063 (VSTDCDP): Add scalar test data class support.
11064 (VSTDCSP): Likewise.
11065 (VSEEDP): Add overload support for scalar extract exponent
11067 (VSESDP): Add overload support for scalar extract signature
11069 (VSTDCN): Add overload support for scalar test negative
11071 (VSTDCNDP): Add overload support for scalar test negative
11073 (VSTDCNSP): Add overload support for scalar test negative
11075 (VSIEDP): Add overload support for scalar insert exponent
11077 (VSTDC): Add overload support for scalar test data class
11079 (VSTDCDP): Add overload support for scalar test data class
11081 (VSTDCSP): Add overload support for scalar test data class
11083 (VSCEDPGT): Add overload support for scalar compare exponent
11084 greater than operation.
11085 (VSCEDPLT): Add overload support for scalar compare exponent
11086 less than operation.
11087 (VSCEDPEQ): Add overload support for scalar compare exponent
11088 test-for-equality operation.
11089 (VSCEDPUO): Add overload support for scalar compare exponent
11090 test-for-unordered operation.
11091 (VEEDP): Add vector extract exponent support.
11093 (VESDP): Add vector extract significand support.
11095 (VIEDP): Add vector insert exponent support.
11097 (VTDCDP): Add vector test data class support.
11098 (VTDCSP): Likewise.
11099 (VES): Add overload support for vector extract significand operation.
11102 (VEE): Add overload support for vector extract exponent operation.
11105 (VTDC): Add overload support for vector test data class operation.
11106 (VTDCDP): Likewise.
11107 (VTDCSP): Likewise.
11108 (VIE): Add overload support for vector insert exponent operation.
11111 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
11112 overloaded binary floating point functions.
11113 (altivec_resolve_overloaded_builtin): Improve error messages to
11114 distinguish between functions not supported in the current
11115 compiler configuration and functions that were invoked with an
11116 invalid parameter combination, and include the built-in function
11117 name in both error messages.
11118 * config/rs6000/rs6000-protos.h (rs6000_overloaded_builtin_name):
11120 * config/rs6000/rs6000.c (rs6000_overloaded_builtin_name): New
11122 (rs6000_expand_binop_builtin): Add check to enforce that argument
11123 2 of the test data class operations is a 7-bit unsigned literal.
11124 (rs6000_invalid_builtin): Add code to issue an error message if a
11125 built-in function that requires the power9_vector and -m32
11126 command-line options is compiled without these options.
11127 * config/rs6000/vsx.md (UNSPEC_VSX_SXEXPDP): New value.
11128 (UNSPEC_VSX_SXSIGDP): New value.
11129 (UNSPEC_VSX_SXSIGPDP): New value.
11130 (UNSPEC_VSX_SIEXPDP): New value.
11131 (UNSPEC_VSX_SCMPEXPDP): New value.
11132 (UNSPEC_VSX_STSTDC): New value.
11133 (UNSPEC_VSX_VXEXP): New value.
11134 (UNSPEC_VSX_VXSIG): New value.
11135 (UNSPEC_VSX_VIEXP): New value.
11136 (UNSPEC_VSX_VTSTDC): New value.
11137 (xsxexpdp): New insn for scalar extract exponent.
11138 (xsxsigdp): New insn for scalar extract significand.
11139 (xsiexpdp): New insn for scalar insert exponent.
11140 (xscmpexpdp_<code>): New expansion for scalar compare exponents.
11141 (*xscmpexpdp): New insn for scalar compare exponents.
11142 (xststdc<Fvsx): New expansion for both single- and
11143 double-precision scalar test data class operations.
11144 (xststdcneg<Fvsx>): New expansion for both single- and
11145 double-precision scalar test for negative value operations.
11146 (*xststdc<Fvsx>): New insn for scalar test data class
11148 (xvxexp<VSs>): New insn for single- and double-precision
11149 vector extract exponent operation.
11150 (xvxsig<VSs>): New insn for single- and double-precision
11151 vector extract significand operation.
11152 (xviexp<VSs>): New insn for single- and double-precision
11153 vector insert exponent operation.
11154 (xvtstdc<VSs>): New insn for single- and double-precision
11155 vector test data class operation.
11156 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
11157 built-in functions to represent the Power9 binary floating-point
11158 support instructions.
11160 2016-08-10 bin cheng <bin.cheng@arm.com>
11162 * doc/sourcebuild.texi (@item vect_cond_mixed): New item.
11164 2016-08-10 Alan Lawrence <alan.lawrence@arm.com>
11165 Renlin Li <renlin.li@arm.com>
11166 Bin Cheng <bin.cheng@arm.com>
11168 * config/aarch64/iterators.md (V_cmp_mixed, v_cmp_mixed): New.
11169 * config/aarch64/aarch64-simd.md (<su><maxmin>v2di3): Call
11170 gen_vcondv2div2di instead of gen_aarch64_vcond_internalv2div2di.
11171 (aarch64_vcond_internal<mode><mode>): Delete pattern.
11172 (aarch64_vcond_internal<VDQF_COND:mode><VDQF:mode>): Ditto.
11173 (vcond<v_cmp_result><mode>): Ditto.
11174 (vcond<mode><mode>): Re-implement using vec_cmp and vcond_mask.
11175 (vcondu<mode><mode>): Ditto.
11176 (vcond<v_cmp_mixed><mode>): New pattern.
11177 (vcondu<mode><v_cmp_mixed>): New pattern.
11178 (aarch64_cmtst<mode>): Revise comment using aarch64_vcond instead
11179 of aarch64_vcond_internal.
11181 2016-08-10 Alan Lawrence <alan.lawrence@arm.com>
11182 Renlin Li <renlin.li@arm.com>
11183 Bin Cheng <bin.cheng@arm.com>
11185 * config/aarch64/aarch64-simd.md (vec_cmp<mode><mode>): New pattern.
11186 (vec_cmp<mode><v_cmp_result>): New pattern.
11187 (vec_cmpu<mode><mode>): New pattern.
11188 (vcond_mask_<mode><v_cmp_result>): New pattern.
11190 2016-08-10 Yuri Rumyantsev <ysrumyan@gmail.com>
11192 PR tree-optimization/71734
11193 * tree-ssa-loop-im.c (ref_indep_loop_p): Add new argument
11194 REF_LOOP, invoke ref_indep_loop_p_1.
11195 (outermost_indep_loop): Pass LOOP argumnet where REF was defined
11196 to ref_indep_loop_p.
11197 (ref_indep_loop_p_1): Fix commentary, add argument REF_LOOP,
11198 combine it with ref_indep_lopp_p_2, update SAFELEN if only REF
11199 is inside LOOP, do not cache dpendence value for loops with
11201 (ref_indep_loop_p_2): Delete function.
11202 (can_sm_ref_p): Pass LOOP as additional argument to
11205 2016-08-10 Michael Meissner <meissner@linux.vnet.ibm.com>
11208 * config/rs6000/rs6000.c (mem_operand_ds_form): Add check for op
11209 being an offsettable address.
11211 2016-08-10 Martin Liska <mliska@suse.cz>
11213 PR gcov-profile/58306
11214 * tree-profile.c (gimple_init_edge_profiler): Create conditionally
11215 atomic variants of profile update functions.
11217 2016-08-10 Martin Liska <mliska@suse.cz>
11219 Cherry picked (and modified) from google-4_7 branch
11220 2012-12-26 Rong Xu <xur@google.com>
11221 * common.opt (fprofile-update): Add new flag.
11222 * coretypes.h: Define enum profile_update.
11223 * doc/invoke.texi: Document -fprofile-update.
11224 * gcov-io.h: Declare GCOV_TYPE_ATOMIC_FETCH_ADD and
11225 GCOV_TYPE_ATOMIC_FETCH_ADD_FN.
11226 * tree-profile.c (gimple_init_edge_profiler): Generate
11227 also atomic profiler update.
11228 (gimple_gen_edge_profiler): Likewise.
11230 2016-08-10 David Malcolm <dmalcolm@redhat.com>
11232 * toplev.c (finalize): Set aux_info_file, asm_out_file, and
11233 stack_usage_file to NULL after fclose calls.
11235 2016-08-10 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
11238 * reload.c (push_reload): Compute subreg_in_class for
11239 subregs of constants and plus expressions. Remove special
11240 handling of SYMBOL_REFs.
11242 2016-08-10 Alan Modra <amodra@gmail.com>
11245 * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Return
11246 SImode for TARGET_E500_DOUBLE when given SImode.
11248 2016-08-09 David Wohlferd <dw@LimeGreenSocks.com>
11250 * config/i3836/avx512fintrin.h (_mm512_cvtsepi64_epi32): Remove
11251 unused variable __O.
11253 2016-08-09 Martin Liska <mliska@suse.cz>
11255 * doc/gcov.texi: Change _gcov_dump to __gcov_dump and
11256 _gcov_reset to __gcov_reset.
11257 * doc/gcov-tool.texi: Fix typo.
11259 2016-08-09 Martin Liska <mliska@suse.cz>
11261 * value-prof.c (gimple_divmod_values_to_profile): Do not
11262 instrument MOD histogram if a value is not a SSA name.
11264 2016-08-09 Martin Liska <mliska@suse.cz>
11266 * value-prof.c (dump_histogram_value): Swap pow2 and non-pow2
11269 2016-08-09 Renlin Li <renlin.li@arm.com>
11271 PR middle-end/64971
11272 * calls.c (prepare_call_address): Convert funexp to Pmode when
11274 * config/aarch64/aarch64.md (sibcall): Remove fix for PR 64971.
11275 (sibcall_value): Likewise.
11277 2016-08-09 Marek Polacek <polacek@redhat.com>
11280 * cselib.c (cselib_expand_value_rtx_1): Add return.
11281 * gengtype.c (dbgprint_count_type_at): Likewise.
11282 * hsa-gen.c (gen_hsa_insn_for_internal_fn_call): Likewise.
11283 * reg-stack.c (get_true_reg): Restructure to avoid fallthrough warning.
11285 2016-08-09 Martin Jambor <mjambor@suse.cz>
11288 * ipa-polymorphic-call.c (get_dynamic_type): Bail out gracefully
11289 if instance is a MEM_REF.
11291 2016-08-09 Uros Bizjak <ubizjak@gmail.com>
11294 * config/i386/i386.md (*movtf_internal): Use
11295 lra_in_progress || reload_completed instead of !can_create_pseudo_p
11296 in the insn constraint.
11297 (*movxf_internal): Ditto.
11298 (*movdf_internal): Ditto.
11299 (*movsf_internal): Ditto.
11301 2016-08-09 Bin Cheng <bin.cheng@arm.com>
11303 PR tree-optimization/72772
11304 * tree-ssa-loop-niter.c (loop_exits_before_overflow): Check equality
11307 2016-08-09 Bin Cheng <bin.cheng@arm.com>
11309 PR tree-optimization/72772
11310 * tree-ssa-loop-niter.h (simplify_using_initial_conditions): Delete
11312 * tree-ssa-loop-niter.c (tree_simplify_using_condition_1): Delete
11313 parameter STOP and update calls. Move expand_simple_operations
11314 function call from here...
11315 (simplify_using_initial_conditions): ...to here. Delete parameter
11317 (tree_simplify_using_condition): Delete parameter STOP.
11318 * tree-scalar-evolution.c (simple_iv_with_niters): Update call to
11319 simplify_using_initial_conditions.
11321 2016-08-09 Matthew Fortune <matthew.fortune@imgtec.com>
11324 * config/mips/mips.c (mips_atomic_assign_expand_fenv):
11325 Use create_tmp_var_raw instead of create_tmp_var.
11327 2016-08-09 Richard Biener <rguenther@suse.de>
11329 * tree-ssa-threadbackward.c (profitable_jump_thread_path):
11330 Treat same SSA names related.
11332 2016-08-09 Jakub Jelinek <jakub@redhat.com>
11334 PR tree-optimization/72824
11335 * tree-loop-distribution.c (const_with_all_bytes_same): Verify
11336 real_zerop is not negative.
11338 2016-08-09 Richard Biener <rguenther@suse.de>
11340 PR tree-optimization/71802
11341 * tree-cfgcleanup.c (cleanup_tree_cfg_bb): Make sure to catch
11342 all merge opportunities with the predecessor.
11344 2016-08-09 Richard Biener <rguenther@suse.de>
11347 * ipa-prop.c (ipa_modify_formal_parameters): Build
11348 parameter types with natural alignment also for the
11351 2016-08-08 Andi Kleen <ak@linux.intel.com>
11353 * tree-vrp.c (get_single_symbol): Always initialize inv and neg.
11355 2016-08-08 David Malcolm <dmalcolm@redhat.com>
11358 * langhooks-def.h (LANG_HOOKS_RUN_LANG_SELFTESTS): New default
11359 do-nothing langhook.
11360 (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_RUN_LANG_SELFTESTS.
11361 * langhooks.h (struct lang_hooks): Add run_lang_selftests.
11362 * selftest-run-tests.c: Include "tree.h" and "langhooks.h".
11363 (selftest::run_tests): Call lang_hooks.run_lang_selftests.
11365 2016-08-08 David Malcolm <dmalcolm@redhat.com>
11368 * input.c: Ensure that HAVE_ICONV is defined.
11370 2016-08-08 Jakub Jelinek <jakub@redhat.com>
11372 PR middle-end/72781
11373 * omp-low.c (lower_lastprivate_clauses): Set TREE_NO_WARNING on the
11374 private vars for lastprivate and for linear iterator.
11376 PR middle-end/68762
11377 * omp-simd-clone.c: Include varasm.h.
11378 (simd_clone_create): Copy over DECL_COMDAT, DECL_WEAK, DECL_EXTERNAL,
11379 DECL_VISIBILITY, DECL_VISIBILITY_SPECIFIED, DECL_DLLIMPORT_P and for
11380 DECL_ONE_ONLY call make_decl_one_only. Fix up spelling in comment and
11381 update function name.
11383 2016-07-29 Pitchumani Sivanupandi <pitchumani.s@atmel.com>
11385 * config/avr/driver-avr.c (specfiles_doc_url): Remove.
11386 (avr_diagnose_devicespecs_error): Remove.
11387 (avr_devicespecs_file): Remove composing absolute path for specfile
11388 and its verbose info. Remove conditions to check specs-file,
11390 2016-08-08 Jakub Jelinek <jakub@redhat.com>
11392 PR rtl-optimization/72821
11393 * lra-spills.c (regno_in_use_p): Don't use BLOCK_FOR_INSN on barriers,
11394 just return false for them.
11396 2016-08-08 Alan Modra <amodra@gmail.com>
11399 * config/rs6000/rs6000.c (toc_relative_expr_p): Allow (lo_sum (high))
11400 toc refs created during reload. Update function comment.
11402 2016-08-08 Alan Modra <amodra@gmail.com>
11405 * config/rs6000/rs6000.md (mov<mode>_hardfloat): Sort
11406 alternatives. Put loads first, then stores, and reg/reg moves
11407 within same class later. Delete attr length.
11409 2016-08-08 Alan Modra <amodra@gmail.com>
11412 * config/rs6000/rs6000.c (mem_operand_gpr): Remove vsx dform test.
11413 (mem_operand_ds_form): New predicate.
11414 * config/rs6000/rs6000-protos.h (mem_operand_ds_form): Declare.
11415 * config/rs6000/constraints.md (wY): Use mem_operand_df_form.
11416 * config/rs6000/predicates.md (offsettable_mem_14bit_operand): Delete.
11417 * config/rs6000/rs6000.md (f32_lm2, f32_sm2): Use wY for SF.
11418 (extendsfdf2_fpr): Replace o constraint with wY.
11420 2016-08-07 Jan Hubicka <hubicka@ucw.cz>
11422 * tree-ssa-threadbackward.c: Include tree-inline.h
11423 (profitable_jump_thread_path): Use estimate_num_insns to estimate
11424 size of copied block; for cold paths reduce duplication.
11425 (find_jump_threads_backwards): Remove redundant tests.
11426 (pass_thread_jumps::gate): Enable for -Os.
11428 2016-08-07 Jakub Jelinek <jakub@redhat.com>
11431 * stor-layout.c (layout_decl): Fix up formatting.
11432 (relayout_decl): Allow DECL to be FIELD_DECL.
11434 2016-08-07 Alan Modra <amodra@gmail.com>
11436 * config/rs6000/rs6000.md (fix_trunc<mode>si2): Fix mode of reg.
11438 2016-08-07 Kugan Vivekanandarajah <kuganv@linaro.org>
11440 * data-streamer-in.c (streamer_read_wide_int): New.
11441 (streamer_read_widest_int): Renamed function.
11442 * data-streamer-out.c (streamer_write_wide_int): New
11443 (streamer_write_widest_int): Renamed function.
11444 * lto-streamer-in.c (streamer_read_wi): Renamed and moved to
11446 (input_cfg): Call renamed function.
11447 * lto-streamer-out.c (streamer_write_wi): Renamed and moved to
11449 (output_cfg): Call renamed function.
11450 * data-streamer.h: Add declarations.
11452 2016-08-08 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
11454 * tree-ssa-ccp.c (extend_mask): New param sgn.
11455 Remove ORing with wi::mask.
11456 (get_default_value): Adjust call to extend_mask to pass sign.
11457 (evaluate_stmt): Likewise.
11459 2016-08-06 Jakub Jelinek <jakub@redhat.com>
11461 * gcov.c (handle_cycle): Use INTTYPE_MAXIMUM (int64_t) instead of
11464 2016-08-06 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
11466 * match.pd ((intptr_t) x eq/ne CST to x eq/ne (typeof x) cst): Disable
11467 transform if operand's type is pointer to function or method.
11469 2016-08-05 Patrick Palka <ppalka@gcc.gnu.org>
11471 PR tree-optimization/18046
11472 * tree-ssa-threadedge.c: Include cfganal.h.
11473 (simplify_control_statement_condition): If simplifying a
11474 GIMPLE_SWITCH, replace the index operand of the GIMPLE_SWITCH
11475 with the dominating ASSERT_EXPR before handing it off to VRP.
11476 Mention that a CASE_LABEL_EXPR may be returned.
11477 (thread_around_empty_blocks): Adjust to handle
11478 simplify_control_statement_condition() returning a
11480 (thread_through_normal_block): Likewise.
11481 * tree-vrp.c (simplify_stmt_for_jump_threading): Simplify
11482 a switch statement by trying to determine which case label
11485 2016-08-05 Vladimir Makarov <vmakarov@redhat.com>
11487 PR rtl-optimization/69847
11488 * lra-constraints.c (process_invariant_for_inheritance): Save
11489 pattern instead of src.
11490 (remove_inheritance_pseudos): Use the pattern. Add assert.
11492 2016-08-05 David Malcolm <dmalcolm@redhat.com>
11494 * input.c (string_concat::string_concat): New constructor.
11495 (string_concat_db::string_concat_db): New constructor.
11496 (string_concat_db::record_string_concatenation): New method.
11497 (string_concat_db::get_string_concatenation): New method.
11498 (string_concat_db::get_key_loc): New method.
11499 (class auto_cpp_string_vec): New class.
11500 (get_substring_ranges_for_loc): New function.
11501 (get_source_range_for_substring): New function.
11502 (get_num_source_ranges_for_substring): New function.
11503 (class selftest::lexer_test_options): New class.
11504 (struct selftest::lexer_test): New struct.
11505 (class selftest::ebcdic_execution_charset): New class.
11506 (selftest::ebcdic_execution_charset::s_singleton): New variable.
11507 (selftest::lexer_test::lexer_test): New constructor.
11508 (selftest::lexer_test::~lexer_test): New destructor.
11509 (selftest::lexer_test::get_token): New method.
11510 (selftest::assert_char_at_range): New function.
11511 (ASSERT_CHAR_AT_RANGE): New macro.
11512 (selftest::assert_num_substring_ranges): New function.
11513 (ASSERT_NUM_SUBSTRING_RANGES): New macro.
11514 (selftest::assert_has_no_substring_ranges): New function.
11515 (ASSERT_HAS_NO_SUBSTRING_RANGES): New macro.
11516 (selftest::test_lexer_string_locations_simple): New function.
11517 (selftest::test_lexer_string_locations_ebcdic): New function.
11518 (selftest::test_lexer_string_locations_hex): New function.
11519 (selftest::test_lexer_string_locations_oct): New function.
11520 (selftest::test_lexer_string_locations_letter_escape_1): New function.
11521 (selftest::test_lexer_string_locations_letter_escape_2): New function.
11522 (selftest::test_lexer_string_locations_ucn4): New function.
11523 (selftest::test_lexer_string_locations_ucn8): New function.
11524 (selftest::uint32_from_big_endian): New function.
11525 (selftest::test_lexer_string_locations_wide_string): New function.
11526 (selftest::uint16_from_big_endian): New function.
11527 (selftest::test_lexer_string_locations_string16): New function.
11528 (selftest::test_lexer_string_locations_string32): New function.
11529 (selftest::test_lexer_string_locations_u8): New function.
11530 (selftest::test_lexer_string_locations_utf8_source): New function.
11531 (selftest::test_lexer_string_locations_concatenation_1): New
11533 (selftest::test_lexer_string_locations_concatenation_2): New
11535 (selftest::test_lexer_string_locations_concatenation_3): New
11537 (selftest::test_lexer_string_locations_macro): New function.
11538 (selftest::test_lexer_string_locations_stringified_macro_argument):
11540 (selftest::test_lexer_string_locations_non_string): New function.
11541 (selftest::test_lexer_string_locations_long_line): New function.
11542 (selftest::test_lexer_char_constants): New function.
11543 (selftest::input_c_tests): Call the new test functions once per
11544 case within the line_table test matrix.
11545 * input.h (struct string_concat): New struct.
11546 (struct location_hash): New struct.
11547 (class string_concat_db): New class.
11548 * substring-locations.h: New header.
11550 2016-08-05 Patrick Palka <ppalka@gcc.gnu.org>
11552 PR tree-optimization/72810
11553 * tree-vrp.c (simplify_switch_using_ranges): Avoid changing
11554 the type of the case labels when truncating.
11556 2016-08-05 James Greenhalgh <james.greenhalgh@arm.com>
11559 * config/aarch64/aarch64.h (aarch64_fp16_type_node): Declare.
11560 (aarch64_fp16_ptr_type_node): Likewise.
11561 * config/aarch64/aarch64-simd-builtins.c
11562 (aarch64_fp16_ptr_type_node): Define.
11563 (aarch64_init_fp16_types): New, refactored out of...
11564 (aarch64_init_builtins): ...here, update to call
11565 aarch64_init_fp16_types.
11566 * config/aarch64/aarch64.c (aarch64_gimplify_va_arg_expr): Handle
11568 (aapcs_vfp_sub_candidate): Likewise.
11570 2016-08-05 Martin Liska <mliska@suse.cz>
11571 Joshua Cranmer <Pidgeot18@gmail.com>
11573 * gcov.c (line_t::has_block): New function.
11574 (enum loop_type): New enum.
11575 (handle_cycle): New function.
11576 (unblock): Likewise.
11577 (circuit): Likewise.
11578 (get_cycles_count): Likewise.
11579 (accumulate_line_counts): Use new loop detection algorithm.
11581 2016-08-05 Martin Liska <mliska@suse.cz>
11583 * gcov.c (output_intermediate_file): Rename
11584 function_info::line_next to next_file_fn.
11585 (process_file): Likewise.
11586 (read_graph_file): Likewise.
11587 (accumulate_line_counts): Likewise.
11588 (output_lines): Likewise.
11590 2016-08-05 Richard Biener <rguenther@suse.de>
11592 * tree-ssa-threadupdate.c (thread_block_1): Remove unnecessary
11593 restriction on threading to a loop header.
11595 2016-08-05 Richard Biener <rguenther@suse.de>
11597 * tree-cfgcleanup.c (tree_forwarder_block_p): Use bb_loop_header_p.
11598 * cfghooks.c (force_nonfallthru): If we ended up splitting a latch
11599 adjust loop info accordingly.
11601 2016-08-05 Kugan Vivekanandarajah <kuganv@linaro.org>
11603 * tree-vrp.c (extract_range_basic): Check cfun->after_inlining
11604 before folding call to __builtin_constant_p with parameters to false.
11606 2016-08-05 Alan Modra <amodra@gmail.com>
11608 * config/rs6000/rs6000.c (rs6000_preferred_reload_class): Delete
11609 code accidentally committed 2016-05-02 providing class when given
11612 2016-08-04 Patrick Palka <ppalka@gcc.gnu.org>
11614 * tree-vrp.c (simplify_switch_using_ranges): Try to truncate
11615 the case label ranges that partially overlap with OP's value
11618 2016-08-04 Uros Bizjak <ubizjak@gmail.com>
11621 * config/i386/avx512fintrin.h (_mm512_cmp_epi32_mask) [!__OPTIMIZE__]:
11622 Cast builtin function result to __mmask16 instead of __mmask8.
11623 (_mm512_cmp_epu32_mask) [!__OPTIMIZE__]: Ditto.
11624 (_mm512_mask_cmp_epi32_mask) [!__OPTIMIZE__]: Ditto.
11625 (_mm512_mask_cmp_epu32_mask) [!__OPTIMIZE__]: Ditto.
11627 2016-08-04 David Malcolm <dmalcolm@redhat.com>
11629 * selftest.h (ASSERT_TRUE): Reimplement in terms of...
11630 (ASSERT_TRUE_AT): New macro.
11631 (ASSERT_FALSE): Reimplement in terms of...
11632 (ASSERT_FALSE_AT): New macro.
11633 (ASSERT_STREQ_AT): Fix typo in comment.
11635 2016-08-04 Patrick Palka <ppalka@gcc.gnu.org>
11637 * gimple.c (preprocess_case_label_vec_for_gimple): When the case
11638 labels are exhaustive, designate the label with the widest
11639 range to be the default label.
11641 2016-08-04 Andrew Pinski <apinski@cavium.com>
11643 * config/aarch64/aarch64.c (thunderx_vector_cost): New variable.
11644 (thunderx_tunings): Use thunderx_vector_cost instead of
11645 generic_vector_cost.
11647 2016-08-04 Martin Liska <mliska@suse.cz>
11649 * gcov.c (main): Fix GNU coding style.
11650 (output_intermediate_file): Likewise.
11651 (process_file): Likewise.
11652 (generate_results): Likewise.
11653 (release_structures): Likewise.
11654 (create_file_names): Likewise.
11655 (find_source): Likewise.
11656 (read_graph_file): Likewise.
11657 (find_exception_blocks): Likewise.
11658 (canonicalize_name): Likewise.
11659 (make_gcov_file_name): Likewise.
11660 (mangle_name): Likewise.
11661 (accumulate_line_counts): Likewise.
11662 (output_branch_count): Likewise.
11663 (read_line): Likewise.
11665 2016-08-04 Bernd Edlinger <bernd.edlinger@hotmail.de>
11667 PR rtl-optimization/71779
11668 * emit-rtl.c (set_reg_attrs_from_value): Only propagate REG_POINTER,
11669 if the value was sign-extended according to POINTERS_EXTEND_UNSIGNED
11670 or if it was truncated.
11672 PR rtl-optimization/70903
11673 * cse.c (cse_insn): If DEST is a paradoxical SUBREG, don't record DEST.
11675 2016-08-04 Kugan Vivekanandarajah <kuganv@linaro.org>
11677 * tree-inline.c (remap_ssa_name): Check for POINTER_TYPE_P before
11678 accessing SSA_NAME_PTR_INFO.
11680 2016-08-04 Georg-Johann Lay <avr@gjlay.de>
11683 * common/config/avr/avr-common.c (avr_option_optimization_table)
11684 [OPT_LEVELS_ALL]: Turn off -fcaller-saves.
11686 2016-08-04 Georg-Johann Lay <avr@gjlay.de>
11689 * config/avr/avr.md: New pattern to work around do_store_flag
11690 generating shift instructions for bit extractions.
11692 2016-08-04 Kugan Vivekanandarajah <kuganv@linaro.org>
11694 * tree-vrp.c (set_value_range): Use vrp_equiv_obstack with
11696 (add_equivalence): Likewise.
11697 (get_value_range): Allocate value range with vrp_value_range_pool.
11698 (vrp_initialize): Initialize vrp_equiv_obstack for equiv allocation.
11699 (vrp_finalize): Relase vrp_equiv_obstack and vrp_value_range_pool.
11701 2016-08-03 Peter Bergner <bergner@vnet.ibm.com>
11703 * config/rs6000/rs6000.c (rs6000_option_override_internal): Make LRA
11704 the default for the rs6000 port.
11706 2016-08-03 Bernd Edlinger <bernd.edlinger@hotmail.de>
11708 PR middle-end/71876
11709 * calls.c (special_function_p): Remove special handling of
11710 "setjmp_syscall", "qsetjmp", "longjmp", "siglongjmp" and the
11711 prefix "__x". Recognize "savectx", "vfork" and "getcontext" only
11712 without prefix. Remove potentially unsafe ECF_LEAF and ECF_NORETURN.
11714 2016-08-03 Vladimir Makarov <vmakarov@redhat.com>
11716 PR middle-end/72778
11717 * lra-spills.c (regno_in_use_p): Check bb and regno modification.
11718 Don't stop on regular insns.
11720 2016-08-03 Nathan Sidwell <nathan@codesourcery.com>
11722 * config/nvptx/nvptx.c (nvptx_declare_function_name): Round frame
11723 size to DImode boundary.
11724 (nvptx_propagate): Likewise.
11726 2016-08-03 Alan Modra <amodra@gmail.com>
11728 * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Make scalar
11729 float access depend on TARGET_EFFICIENT_UNALIGNED_VSX.
11730 * config/rs6000/rs6000.opt (-mefficient-unaligned-vsx): Renamed
11731 from -mefficient-unaligned-vector. Note that this affects fp too.
11733 2016-08-03 Alan Modra <amodra@gmail.com>
11735 * config/rs6000/rs6000.c (rs6000_rtx_costs): Make unaligned mem
11738 2016-08-03 Alan Modra <amodra@gmail.com>
11740 * config/rs6000/rs6000.md (fix_trunc<mode>si2): Force source operand
11741 to a reg. Localize vars.
11743 2016-08-03 Alan Modra <amodra@gmail.com>
11745 * config/rs6000/rs6000.opt: Remove negatives from help strings
11748 2016-08-03 Alan Modra <amodra@gmail.com>
11750 * config/rs6000/rs6000.c (rs6000_secondary_reload_direct_move):
11751 Delete duplicated code.
11753 2016-08-02 Vladimir Makarov <vmakarov@redhat.com>
11755 PR middle-end/72778
11756 * lra-spills.c (regno_in_use_p): New.
11757 (lra_final_code_change): Use it.
11759 2016-08-02 Vladimir Makarov <vmakarov@redhat.com>
11761 PR rtl-optimization/69847
11762 * lra-int.h (struct lra-reg): Use restore_rtx instead of
11764 (lra_rtx_hash): New.
11765 * lra.c (initialize_lra_reg_info_element): Use restore_rtx instead
11767 (lra_rtx_hash): Rename and move lra-remat.c::rtx_hash.
11768 * lra-remat.c (rtx_hash): Rename and Move to lra.c.
11769 * lra-spills.c (lra_final_code_change): Don't delete insn when the
11770 next insn is USE with the same reg as the current insn source.
11771 * lra-constraints.c (curr_insn_transform): Use restore_rtx instead
11773 (lra_constraints_init): Call initiate_invariants.
11774 (lra_constraints_finish): Call finish_invariants.
11775 (struct invariant, invariant_t, invariant_ptr_t): New.
11776 (const_invariant_ptr_t, invariants, invariants_pool): New.
11777 (invariant_table, invariant_hash, invariant_eq_p): New.
11778 (insert_invariant, initiate_invariants, finish_invariants): New.
11779 (clear_invariants, invalid_invariant_regs): New.
11780 (inherit_reload_reg, split_reg, fix_bb_live_info): Use restore_rtx
11781 instead of restore_regno.
11782 (invariant_p, process_invariant_for_inheritance): New.
11783 (inherit_in_ebb): Implement invariant inheritance.
11784 (lra_inheritance): Initialize and finalize invalid_invariant_regs.
11785 (remove_inheritance_pseudos): Implement undoing invariant
11787 (undo_optional_reloads, lra_undo_inheritance): Use restore_rtx
11788 instead of restore_regno.
11789 * lra-assigns.c (regno_live_length): New.
11790 (reload_pseudo_compare_func): Use regno_live_length.
11791 (assign_by_spills): Use restore_rtx instead of restore_regno.
11792 (lra_assign): Ditto. Initiate regno_live_length.
11794 2016-02-08 James Greenhalgh <james.greenhalgh@arm.com>
11796 * config/aarch64/arm_neon.h (vminnm_f64): Add back missing 'f' from
11797 __builtin_aarch64_fmindf.
11799 2016-08-02 Bin Cheng <bin.cheng@arm.com>
11801 PR tree-optimization/34114
11802 * tree-ssa-loop-niter.c (number_of_iterations_ne): Prove no-overflow
11803 information for more control IVs.
11805 2016-08-02 Bin Cheng <bin.cheng@arm.com>
11807 PR tree-optimization/34114
11808 * fold-const.c (multiple_of_p): Improve MULT_EXPR, PLUS_EXPR,
11809 PLUS_EXPR case. Handle SSA_NAME case.
11811 2016-08-02 Tamar Christina <tamar.christina@arm.com>
11813 * config/aarch64/aarch64-simd-builtins.def
11814 (__builtin_aarch64_fmindf): Change BUILTIN_VDQF to BUILTIN_VDQF_DF.
11815 (__builtin_aarch64_fmaxdf): Likewise.
11816 (__builtin_aarch64_smin_nandf): Likewise.
11817 (__builtin_aarch64_smax_nandf): Likewise.
11818 * config/aarch64/aarch64-simd.md (<fmaxmin><mode>3): Remove.
11819 * config/aarch64/aarch64.md (<fmaxmin><mode>3): Rename to...
11820 (<fmaxmin><mode>3): ...this.
11821 * config/aarch64/arm_neon.h (vmaxnm_f64): New.
11822 (vminnm_f64): Likewise.
11823 (vmin_f64): Likewise.
11824 (vmax_f64): Likewise.
11825 * config/aarch64/iterators.md (FMAXMIN): Merge with...
11826 (FMAXMIN_UNS): ...this.
11827 (fmaxmin): Merged with
11828 (fmaxmin_op): ...this...
11829 (maxmin_uns_op): ...in to this.
11831 2016-08-01 Michael Meissner <meissner@linux.vnet.ibm.com>
11833 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
11834 Add support for vec_extract on vector float, vector int, vector
11835 short, and vector char vector types.
11836 * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
11837 vector float, vector int, vector short, and vector char
11838 optimizations on 64-bit ISA 2.07 systems for both constant and
11839 variable element numbers.
11840 (rs6000_split_vec_extract_var): Likewise.
11841 * config/rs6000/vsx.md (vsx_xscvspdp_scalar2): Allow SFmode to be
11842 Altivec registers on ISA 2.07 and above.
11843 (vsx_extract_v4sf): Delete alternative that hard coded element 0,
11844 which never was matched due to the split occuring before register
11845 allocation (and the code would not have worked on little endian
11846 systems if it did match). Allow extracts to go to the Altivec
11847 registers if ISA 2.07 (power8). Change from using "" around the
11848 C++ code to using {}'s.
11849 (vsx_extract_v4sf_<mode>_load): New insn to optimize vector float
11850 vec_extracts when the vector is in memory.
11851 (vsx_extract_v4sf_var): New insn to optimize vector float
11852 vec_extracts when the element number is variable on 64-bit ISA
11854 (vsx_extract_<mode>, VSX_EXTRACT_I iterator): Add optimizations
11855 for 64-bit ISA 2.07 as well as ISA 3.0.
11856 (vsx_extract_<mode>_p9, VSX_EXTRACT_I iterator): Likewise.
11857 (vsx_extract_<mode>_p8, VSX_EXTRACT_I iterator): Likewise.
11858 (vsx_extract_<mode>_load, VSX_EXTRACT_I iterator): New insn to
11859 optimize vector int, vector short, and vector char vec_extracts
11860 when the vector is in memory.
11861 (vsx_extract_<mode>_var, VSX_EXTRACT_I iterator): New insn to
11862 optimize vector int, vector short, and vector char vec_extracts
11863 when the element number is variable.
11865 2016-08-01 Georg-Johann Lay <avr@gjlay.de>
11868 * config/avr/avr.c (AVR_SYMBOL_FLAG_TINY_PM): Use a value that
11869 does not overlap with other symbol flags.
11871 2016-08-01 Wilco Dijkstra <wdijkstr@arm.com>
11873 * config/aarch64/aarch64.h (aarch64_frame):
11874 Remove padding0 and hardfp_offset. Add locals_offset,
11875 initial_adjust, callee_adjust, callee_offset and final_adjust.
11876 * config/aarch64/aarch64.c (aarch64_layout_frame):
11877 Remove unused padding0 and hardfp_offset initializations.
11878 Choose frame layout and set frame variables accordingly.
11879 Use INVALID_REGNUM instead of FIRST_PSEUDO_REGISTER.
11880 (aarch64_push_regs): Use INVALID_REGNUM, not FIRST_PSEUDO_REGISTER.
11881 (aarch64_pop_regs): Likewise.
11882 (aarch64_expand_prologue): Remove all decision code, just emit
11883 prolog according to frame variables.
11884 (aarch64_expand_epilogue): Remove all decision code, just emit
11885 epilog according to frame variables.
11886 (aarch64_initial_elimination_offset): Use offset to local/arg area.
11888 2015-08-01 H.J. Lu <hongjiu.lu@intel.com>
11891 * config/i386/i386.c (timode_scalar_chain::convert_insn): Call
11892 fix_debug_reg_uses after changing source register mode to
11893 V1TImode if source register is undefined.
11895 2015-08-01 Alan Hayward <alan.hayward@arm.com>
11897 PR tree-optimization/71818
11898 * tree-vect-loop-manip.c (vect_can_advance_ivs_p): Don't advance IVs
11899 with non invariant evolutions
11901 2016-08-01 Georg-Johann Lay <avr@gjlay.de>
11904 * config/avr/avr.md (length) [branch]: Correct insn length
11905 attribute for forward branches.
11907 2016-08-01 Georg-Johann Lay <avr@gjlay.de>
11909 * doc/extend.texi (AVR Built-in Functions): Document
11910 __builtin_avr_nops.
11911 * config/avr/builtins.def (NOPS): New.
11912 * config/avr/avr.c (avr_expand_nops): New static function.
11913 (avr_expand_builtin): Use it to handle AVR_BUILTIN_NOPS.
11915 2016-08-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11917 * config/aarch64/aarch64.c (aarch64_classify_address): Use DImode when
11918 performing aarch64_offset_7bit_signed_scaled_p check for TImode LDP/STP
11921 2016-08-01 Virendra Pathak <virendra.pathak@broadcom.com>
11923 * config/aarch64/aarch64.c (vulcan_tunings): Update
11924 vulcan L1 cache_line_size.
11926 2016-07-30 Michael Meissner <meissner@linux.vnet.ibm.com>
11928 * config/rs6000/rs6000-protos.h (rs6000_adjust_vec_address): New
11929 function that takes a vector memory address, a hard register, an
11930 element number and a temporary base register, and recreates an
11931 address that points to the appropriate element within the vector.
11932 * config/rs6000/rs6000.c (rs6000_adjust_vec_address): Likewise.
11933 (rs6000_split_vec_extract_var): Add support for the target of a
11934 vec_extract with variable element number being a scalar memory
11936 (rtx_is_swappable_p): VLSO insns (UNSPEC_VSX_VSLOW) are not
11938 * config/rs6000/vsx.md (vsx_extract_<mode>_load): Replace
11939 vsx_extract_<mode>_load insn with a new insn that optimizes
11940 storing either element to a memory location, using scratch
11941 registers to pick apart the vector and reconstruct the address.
11942 (vsx_extract_<P:mode>_<VSX_D:mode>_load): Likewise.
11943 (vsx_extract_<mode>_store): Rework alternatives to more correctly
11944 support Altivec registers. Add support for ISA 3.0 Altivec d-form
11946 (vsx_extract_<mode>_var): Add support for extracting a variable
11947 element number from memory.
11949 2016-07-29 Georg-Johann Lay <avr@gjlay.de>
11951 * config/avr/avr.c (avr_out_compare): Use const0_rtx instead of 0
11952 when testing for compares against constants of the form 0xabab.
11954 2016-07-29 Bin Cheng <bin.cheng@arm.com>
11956 PR tree-optimization/57558
11957 * tree-vect-loop-manip.c (vect_create_cond_for_niters_checks): New
11959 (vect_loop_versioning): Support versioning with niter assumptions.
11960 * tree-vect-loop.c (tree-ssa-loop.h): Include header file.
11961 (vect_get_loop_niters): New parameter. Reimplement to support
11962 assumptions in loop niter info.
11963 (vect_analyze_loop_form_1, vect_analyze_loop_form): Ditto.
11964 (new_loop_vec_info): Init LOOP_VINFO_NITERS_ASSUMPTIONS.
11965 (vect_estimate_min_profitable_iters): Use LOOP_REQUIRES_VERSIONING.
11966 Support loop versioning for niters.
11967 * tree-vectorizer.c (tree-ssa-loop-niter.h): Include header file.
11968 (vect_free_loop_info_assumptions): New function.
11969 (vectorize_loops): Free loop niter info for loops with flag
11970 LOOP_F_ASSUMPTIONS set if vectorization failed.
11971 * tree-vectorizer.h (struct _loop_vec_info): New field
11972 num_iters_assumptions.
11973 (LOOP_VINFO_NITERS_ASSUMPTIONS): New macro.
11974 (LOOP_REQUIRES_VERSIONING_FOR_NITERS): New macro.
11975 (LOOP_REQUIRES_VERSIONING): New macro.
11976 (vect_free_loop_info_assumptions): New decl.
11978 2016-07-29 Bin Cheng <bin.cheng@arm.com>
11980 * cfgloop.h (struct loop): New field constraints.
11981 (LOOP_C_INFINITE, LOOP_C_FINITE): New macros.
11982 (loop_constraint_set, loop_constraint_clr, loop_constraint_set_p): New
11984 * cfgloop.c (alloc_loop): Initialize new field.
11985 * cfgloopmanip.c (copy_loop_info): Copy constraints.
11986 * tree-ssa-loop-niter.c (number_of_iterations_exit_assumptions):
11987 Adjust niter analysis wrto loop constraints.
11988 * doc/loop.texi (@node Number of iterations): Add description for loop
11991 2016-07-29 Marek Polacek <polacek@redhat.com>
11994 * config/i386/i386.c (ix86_expand_args_builtin): Add break.
11995 (ix86_expand_round_builtin): Likewise.
11997 2016-07-29 Segher Boessenkool <segher@kernel.crashing.org>
11998 Georg-Johann Lay <avr@gjlay.de>
12000 PR rtl-optimization/71976
12001 * combine.c (get_last_value): Return 0 if the argument for which
12002 the function is called has a wider mode than the recorded value.
12004 2016-07-29 Marek Polacek <polacek@redhat.com>
12007 * config/rs6000/rs6000.c (altivec_expand_ld_builtin): Add break.
12008 (altivec_expand_st_builtin): Likewise.
12010 2016-07-29 Georg-Johann Lay <avr@gjlay.de>
12012 * config/avr/avr.md (addqi3) [cc]: Revert glitch in insn attribute
12013 introduced in r238381.
12015 2016-07-29 Kugan Vivekanandarajah <kuganv@linaro.org>
12017 PR middle-end/68217
12018 * tree-vrp.c (extract_range_from_binary_expr_1): In case of signed
12019 & sign-bit-CST, generate [-INF, 0] instead of [-INF, INF].
12021 2016-07-28 Michael Meissner <meissner@linux.vnet.ibm.com>
12023 * config/rs6000/rs6000-protos.h (rs6000_split_vec_extract_var):
12025 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
12026 Add support for vec_extract of vector double or vector long having
12027 a variable element number on 64-bit ISA 2.07 systems or newer.
12028 * config/rs6000/rs6000.c (rs6000_expand_vector_extract):
12030 (rs6000_split_vec_extract_var): New function to split a
12031 vec_extract built-in function with variable element number.
12032 (rtx_is_swappable_p): Variable vec_extracts and shifts are not
12034 * config/rs6000/vsx.md (UNSPEC_VSX_VSLO): New unspec.
12035 (UNSPEC_VSX_EXTRACT): Likewise.
12036 (vsx_extract_<mode>, VSX_D iterator): Fix constraints to allow
12037 direct move instructions to be generated on 64-bit ISA 2.07
12038 systems and newer, and to take advantage of the ISA 3.0 MFVSRLD
12040 (vsx_vslo_<mode>): New insn to do VSLO on V2DFmode and V2DImode
12041 arguments for vec_extract variable element.
12042 (vsx_extract_<mode>_var, VSX_D iterator): New insn to support
12043 vec_extract with variable element on V2DFmode and V2DImode
12045 * config/rs6000/rs6000.h (TARGET_VEXTRACTUB): Remove
12046 -mupper-regs-df requirement, since it isn't needed.
12047 (TARGET_DIRECT_MOVE_64BIT): New macro to say whether we can
12048 do direct moves on 64-bit systems, which allows optimization of
12049 vec_extract on 64-bit ISA 2.07 systems and newer.
12051 2016-07-28 Kristina Martsenko <kristina.martsenko@arm.com>
12052 2016-07-28 Wilco Dijkstra <wdijkstr@arm.com>
12054 * config/aarch64/aarch64.md
12055 (zero_extend<SHORT:mode><GPI:mode>2_aarch64): Change output
12056 statement and type.
12057 (<optab>qihi2_aarch64): Likewise, and split into two.
12058 (extendqihi2_aarch64): New.
12059 (zero_extendqihi2_aarch64): New.
12060 * config/aarch64/iterators.md (ldrxt): Remove.
12061 * config/aarch64/aarch64.c (aarch64_rtx_costs): Change cost of
12064 2016-07-28 Kristina Martsenko <kristina.martsenko@arm.com>
12066 * config/aarch64/aarch64.c (aarch64_rtx_costs): Fix cost of zero extend.
12068 2016-07-28 Wilco Dijkstra <wdijkstr@arm.com>
12070 * config/aarch64/aarch64.c (aarch64_pushwb_pair_reg): Rename.
12071 (aarch64_push_reg): New function to push 1 or 2 registers.
12072 (aarch64_pop_reg): New function to pop 1 or 2 registers.
12073 (aarch64_expand_prologue): Use aarch64_push_regs.
12074 (aarch64_expand_epilogue): Use aarch64_pop_regs.
12076 2016-07-28 Yuri Rumyantsev <ysrumyan@gmail.com>
12078 PR tree-optimization/71734
12079 * tree-ssa-loop-im.c (ref_indep_loop_p_1): Pass value of safelen
12080 attribute instead of REF_LOOP and use it.
12081 (ref_indep_loop_p_2): Use SAFELEN argument instead of REF_LOOP and
12082 set it for Loops having non-zero safelen attribute.
12083 (ref_indep_loop_p): Pass zero as initial value for safelen.
12085 2016-07-28 Ilya Enkovich <ilya.enkovich@intel.com>
12087 PR middle-end/72657
12089 * tree-chkp.c (chkp_retbnd_call_by_val): Check for instrumentation
12090 call using chkp_gimple_call_builtin_p.
12091 (chkp_copy_bounds_for_assign): Likewise.
12093 2016-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
12095 * config/alpha/alpha.c (alpha_adjust_cost): Adjust.
12096 * config/arm/arm-protos.h (struct tune_params): Likewise.
12097 * config/arm/arm.c (xscale_sched_adjust_cost): Likewise.
12098 (cortex_a9_sched_adjust_cost): Likewise.
12099 (fa726te_sched_adjust_cost): Likewise.
12100 (arm_adjust_cost): Likewise.
12101 * config/bfin/bfin.c (bfin_adjust_cost): Likewise.
12102 * config/c6x/c6x.c (c6x_adjust_cost): Likewise.
12103 * config/epiphany/epiphany.c (epiphany_adjust_cost): Likewise.
12104 * config/i386/i386.c (ix86_adjust_cost): Likewise.
12105 * config/ia64/ia64.c: Likewise.
12106 * config/m68k/m68k.c: Likewise.
12107 * config/mep/mep.c (mep_adjust_cost): Likewise.
12108 * config/microblaze/microblaze.c (microblaze_adjust_cost):
12110 * config/mips/mips.c (mips_adjust_cost): Likewise.
12111 * config/mn10300/mn10300.c (mn10300_adjust_sched_cost):
12113 * config/pa/pa.c (pa_adjust_cost): Likewise.
12114 * config/rs6000/rs6000.c (rs6000_adjust_cost): Likewise.
12115 (rs6000_debug_adjust_cost): Likewise.
12116 * config/sh/sh.c (sh_adjust_cost): Likewise.
12117 * config/sparc/sparc.c (supersparc_adjust_cost): Likewise.
12118 (hypersparc_adjust_cost): Likewise.
12119 (sparc_adjust_cost): Likewise.
12120 * config/spu/spu.c (spu_sched_adjust_cost): Likewise.
12121 * config/tilegx/tilegx.c (tilegx_sched_adjust_cost): Likewise.
12122 * config/tilepro/tilepro.c (tilepro_sched_adjust_cost):
12124 * config/visium/visium.c (visium_adjust_cost): Likewise.
12125 * doc/tm.texi: Regenerate.
12126 * haifa-sched.c (dep_cost_1): Adjust.
12127 * target.def: Merge adjust_cost and adjust_cost_2.
12129 2016-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
12131 * haifa-sched.c (add_to_speculative_block): Make twins a vector.
12133 2016-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
12135 * store-motion.c (struct st_expr): Make pattern_regs a vector.
12136 (extract_mentioned_regs): Append to a vector instead of
12137 returning a rtx_expr_list.
12138 (st_expr_entry): Adjust.
12139 (free_st_expr_entry): Likewise.
12140 (store_ops_ok): Likewise.
12141 (store_killed_in_insn): Likewise.
12142 (find_moveable_store): Likewise.
12144 2016-07-28 Martin Liska <mliska@suse.cz>
12146 PR gcov-profile/68025
12147 * tree-profile.c (tree_profiling): Respect
12148 no_profile_instrument_function attribute.
12149 * doc/extend.texi: Document no_profile_instrument_function
12152 2016-07-28 Martin Liska <mliska@suse.cz>
12154 PR rtl-optimization/70944
12155 * combine.c (make_compound_operation):
12156 Do not allow make_compound_operation for vector mode
12158 2016-07-28 Kugan Vivekanandarajah <kuganv@linaro.org>
12160 PR middle-end/71994
12161 * tree-ssa-reassoc.c (maybe_optimize_range_tests): Check tcc_comparison
12162 before calling get_ops.
12164 2016-07-27 Bernd Edlinger <bernd.edlinger@hotmail.de>
12166 * defaults.h (LOG2_BITS_PER_UNIT): Move from here...
12167 * tree.h (LOG2_BITS_PER_UNIT): ...to here.
12168 (BITS_PER_UNIT_LOG): Remove.
12169 (int_bit_position): Use LOG2_BITS_PER_UNIT instead of BITS_PER_UNIT_LOG.
12170 * expr.c (expand_assignment): Likewise.
12171 * stor-layout.c (initialize_sizetypes): Likewise.
12173 2016-07-27 Michael Meissner <meissner@linux.vnet.ibm.com>
12175 * config/rs6000/vector.md (vec_extract<mode>): Change the calling
12176 signature of rs6000_expand_vector_extract so that the element
12177 number is a RTX instead of a constant integer.
12178 * config/rs6000/rs6000-protos.h (rs6000_expand_vector_extract):
12180 * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Likewise.
12181 (altivec_expand_vec_ext_builtin): Likewise.
12182 * config/rs6000/altivec.md (reduc_plus_scal_<mode>): Likewise.
12183 * config/rs6000/vsx.md (vsx_extract_<mode>): Fix spelling of the
12184 MFVSRLD instruction.
12186 2016-07-27 David Malcolm <dmalcolm@redhat.com>
12188 * input.c (get_pure_location): Move here from tree.c.
12189 (make_location): Likewise. Add header comment.
12190 (selftest::test_accessing_ordinary_linemaps): Verify
12191 pure_location_p, make_location, get_location_from_adhoc_loc and
12192 get_range_from_loc.
12193 * input.h (get_pure_location): Move declaration here from tree.h.
12194 (get_finish): Likewise for inline function.
12195 (make_location): Likewise for declaration.
12196 * tree.c (get_pure_location): Move to input.c.
12197 (make_location): Likewise.
12198 * tree.h (get_pure_location): Move declaration to tree.h.
12199 (get_finish): Likewise for inline function.
12200 (make_location): Likewise for declaration.
12202 2016-07-27 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
12204 PR middle-end/71078
12205 * match.pd (x / abs(x) -> copysign(1.0, x)): New pattern.
12207 2016-07-27 David Malcolm <dmalcolm@redhat.com>
12209 * system.h (STATIC_ASSERT): Use static_assert if building
12210 with C++11 onwards.
12212 2016-07-27 Richard Biener <rguenther@suse.de>
12214 PR tree-optimization/72517
12215 * tree-vect-data-refs.c (vect_analyze_data_ref_dependences):
12216 Revert change to not compute read-read dependences.
12218 2016-07-27 Richard Biener <rguenther@suse.de>
12220 * predict.c (set_even_probabilities): Make nedges unsigned.
12222 2016-07-27 Martin Liska <mliska@suse.cz>
12224 * predict.c (set_even_probabilities): Handle unlikely edges.
12225 (combine_predictions_for_bb): Likewise.
12227 2016-07-26 Michael Meissner <meissner@linux.vnet.ibm.com>
12230 * config/rs6000/rs6000.c (rs6000_generate_compare): Rework
12231 __float128 support when we don't have hardware support, so that
12232 the IEEE built-in functions like isgreater, first call __unordkf3
12233 to make sure neither operand is a NaN, and if both operands are
12234 ordered, do the normal comparison.
12236 2016-07-26 Patrick Palka <ppalka@gcc.gnu.org>
12238 * tree-vrp.c (dump_asserts_for): Print loc->expr instead of
12240 (extract_code_and_val_from_cond_with_ops): Verify that name is
12241 either cond_op0 or cond_op1.
12243 2016-07-26 Patrick Palka <ppalka@gcc.gnu.org>
12245 PR tree-optimization/18046
12246 * genmodes.c (emit_mode_size_inline): Emit an assert that
12247 verifies that mode is a valid array index.
12248 (emit_mode_nuinits_inline): Likewise.
12249 (emit_mode_inner_inline): Likewise.
12250 (emit_mode_unit_size_inline): Likewise.
12251 (emit_mode_unit_precision_inline): Likewise.
12252 * tree-vrp.c: Include params.h.
12253 (find_switch_asserts): Register edge assertions for the default
12254 label which correspond to the anti-ranges of each case label.
12255 * params.def (PARAM_MAX_VRP_SWITCH_ASSERTIONS): New.
12256 * doc/invoke.texi: Document it.
12258 2016-07-26 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12260 * gimple-ssa-strength-reduction.c (slsr_process_phi): Remove dead
12261 and unnecessary call to gimple_bb.
12263 2016-07-26 Richard Biener <rguenther@suse.de>
12265 PR rtl-optimization/71984
12266 * simplify-rtx.c (simplify_subreg): Use GET_MODE_SIZE and prepare
12269 2016-07-26 Richard Biener <rguenther@suse.de>
12271 PR middle-end/72517
12272 * expmed.c (extract_bit_field_1): Constrain the vector mode
12273 with element size matching the extraction mode size when
12274 choosing a better vector mode to do the extraction from.
12276 2016-07-26 Richard Biener <rguenther@suse.de>
12277 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
12279 PR middle-end/70920
12280 * match.pd ((intptr)x eq/ne CST to x eq/ne (typeof x) CST): New
12283 2016-07-26 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
12285 * tree-ssa-structalias.c (struct scc_info): Change types of
12286 members to auto_sbitmap and auto_vec.
12287 (scc_info::scc_info): New constructor.
12288 (scc_info::~scc_info): New destructor.
12289 (init_scc_info): Remove.
12290 (free_scc_info): Remove.
12291 (find_indirect_cycles): Adjust.
12292 (perform_var_substitution): Likewise.
12293 (free_var_substitution_info): Likewise.
12295 2016-07-26 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
12297 * tree-outof-ssa.c (struct elim_graph): Change type of members
12298 to auto_vec and auto_sbitmap.
12299 (elim_graph::elim_graph): New constructor.
12300 (delete_elim_graph): Remove.
12301 (expand_phi_nodes): Adjust.
12303 2016-07-26 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
12305 * tree-outof-ssa.c (struct elim_graph): Remove typedef.
12306 (new_elim_graph): Adjust.
12307 (clear_elim_graph): Likewise.
12308 (delete_elim_graph): Likewise.
12309 (elim_graph_size): Likewise.
12310 (elim_graph_add_node): Likewise.
12311 (elim_graph_add_edge): Likewise.
12312 (elim_graph_remove_succ_edge): Likewise.
12313 (eliminate_name): Likewise.
12314 (eliminate_build): Likewise.
12315 (elim_forward): Likewise.
12316 (elim_unvisited_predecessor): Likewise.
12317 (elim_backward): Likewise.
12318 (elim_create): Likewise.
12319 (eliminate_phi): Likewise.
12320 (expand_phi_nodes): Likewise.
12322 2016-07-26 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
12324 * bt-load.c (compute_out): Use auto_sbitmap class.
12325 (link_btr_uses): Likewise.
12326 * cfganal.c (mark_dfs_back_edges): Likewise.
12327 (post_order_compute): Likewise.
12328 (inverted_post_order_compute): Likewise.
12329 (pre_and_rev_post_order_compute_fn): Likewise.
12330 (single_pred_before_succ_order): Likewise.
12331 * cfgexpand.c (pass_expand::execute): Likewise.
12332 * cfgloop.c (verify_loop_structure): Likewise.
12333 * cfgloopmanip.c (fix_bb_placements): Likewise.
12334 (remove_path): Likewise.
12335 (update_dominators_in_loop): Likewise.
12336 * cfgrtl.c (break_superblocks): Likewise.
12337 * ddg.c (check_sccs): Likewise.
12338 (create_ddg_all_sccs): Likewise.
12339 * df-core.c (df_worklist_dataflow): Likewise.
12340 * dse.c (dse_step3): Likewise.
12341 * except.c (eh_region_outermost): Likewise.
12342 * function.c (thread_prologue_and_epilogue_insns): Likewise.
12343 * gcse.c (prune_expressions): Likewise.
12344 (prune_insertions_deletions): Likewise.
12345 * gimple-ssa-backprop.c (backprop::~backprop): Likewise.
12346 * graph.c (draw_cfg_nodes_no_loops): Likewise.
12347 * ira-lives.c (remove_some_program_points_and_update_live_ranges): Likewise.
12348 * lcm.c (compute_earliest): Likewise.
12349 (compute_farthest): Likewise.
12350 * loop-unroll.c (unroll_loop_constant_iterations): Likewise.
12351 (unroll_loop_runtime_iterations): Likewise.
12352 (unroll_loop_stupid): Likewise.
12353 * lower-subreg.c (decompose_multiword_subregs): Likewise.
12354 * lra-lives.c: Likewise.
12355 * lra.c (lra): Likewise.
12356 * modulo-sched.c (schedule_reg_moves): Likewise.
12357 (optimize_sc): Likewise.
12358 (get_sched_window): Likewise.
12359 (sms_schedule_by_order): Likewise.
12360 (check_nodes_order): Likewise.
12361 (order_nodes_of_sccs): Likewise.
12362 (order_nodes_in_scc): Likewise.
12363 * recog.c (split_all_insns): Likewise.
12364 * regcprop.c (pass_cprop_hardreg::execute): Likewise.
12365 * reload1.c (reload): Likewise.
12366 * sched-rgn.c (haifa_find_rgns): Likewise.
12367 (split_edges): Likewise.
12368 (compute_trg_info): Likewise.
12369 * sel-sched.c (init_seqno): Likewise.
12370 * store-motion.c (remove_reachable_equiv_notes): Likewise.
12371 * tree-into-ssa.c (update_ssa): Likewise.
12372 * tree-ssa-live.c (live_worklist): Likewise.
12373 * tree-ssa-loop-im.c (fill_always_executed_in): Likewise.
12374 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely):
12376 (try_peel_loop): Likewise.
12377 * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop):
12379 * tree-ssa-pre.c (compute_antic): Likewise.
12380 * tree-ssa-reassoc.c (undistribute_ops_list): Likewise.
12381 * tree-stdarg.c (reachable_at_most_once): Likewise.
12382 * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Likewise.
12383 * var-tracking.c (vt_find_locations): Likewise.
12385 2016-07-26 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
12387 * sbitmap.h (auto_sbitmap): New class.
12389 2016-07-26 Alan Modra <amodra@gmail.com>
12392 * config/rs6000/rs6000.c (rs6000_secondary_reload): Initialize
12395 2016-07-25 David Malcolm <dmalcolm@redhat.com>
12397 * input.c (selftest::temp_source_file::temp_source_file): Fix
12398 missing "%s" in fprintf.
12400 2016-07-25 John David Anglin <danglin@gcc.gnu.org>
12402 PR middle-end/71732
12403 * cselib.c (cselib_process_insn): Invalidate argument slots for
12406 2016-07-25 Jiong Wang <jiong.wang@arm.com>
12408 * config/aarch64/arm_neon.h (vfmah_lane_f16, vfmah_laneq_f16,
12409 vfmsh_lane_f16, vfmsh_laneq_f16, vmulh_lane_f16, vmulh_laneq_f16,
12410 vmulxh_lane_f16, vmulxh_laneq_f16): New.
12412 2016-07-25 Jiong Wang <jiong.wang@arm.com>
12414 * config/aarch64/aarch64-simd-builtins.def: Register new builtins.
12415 * config/aarch64/aarch64.md (fma, fnma): Support HF.
12416 * config/aarch64/arm_fp16.h (vfmah_f16, vfmsh_f16): New.
12418 2016-07-25 Jiong Wang <jiong.wang@arm.com>
12420 * config/aarch64/aarch64-simd-builtins.def: Register new builtins.
12421 * config/aarch64/aarch64.md (<FCVT_F2FIXED:fcvt_fixed_insn>hf<mode>3):
12423 (<FCVT_FIXED2F:fcvt_fixed_insn><mode>hf3): Likewise.
12424 (add<mode>3): Likewise.
12425 (sub<mode>3): Likewise.
12426 (mul<mode>3): Likewise.
12427 (div<mode>3): Likewise.
12428 (*div<mode>3): Likewise.
12429 (<fmaxmin><mode>3): Extend to HF.
12430 * config/aarch64/aarch64-simd.md (aarch64_rsqrts<mode>): Likewise.
12431 (fabd<mode>3): Likewise.
12432 (<FCVT_F2FIXED:fcvt_fixed_insn><VHSDF_HSDF:mode>3): Likewise.
12433 (<FCVT_FIXED2F:fcvt_fixed_insn><VHSDI_HSDI:mode>3): Likewise.
12434 (aarch64_fmulx<mode>): Likewise.
12435 (aarch64_fac<optab><mode>): Likewise.
12436 (aarch64_frecps<mode>): Likewise.
12437 (<FCVT_F2FIXED:fcvt_fixed_insn>hfhi3): New.
12438 (<FCVT_FIXED2F:fcvt_fixed_insn>hihf3): Likewise.
12439 * config/aarch64/iterators.md (VHSDF_SDF): Delete.
12440 (VSDQ_HSDI): Support HI.
12441 (fcvt_target, FCVT_TARGET): Likewise.
12442 * config/aarch64/arm_fp16.h (vaddh_f16, vsubh_f16, vabdh_f16,
12443 vcageh_f16, vcagth_f16, vcaleh_f16, vcalth_f16, vceqh_f16, vcgeh_f16,
12444 vcgth_f16, vcleh_f16, vclth_f16, vcvth_n_f16_s16, vcvth_n_f16_s32,
12445 vcvth_n_f16_s64, vcvth_n_f16_u16, vcvth_n_f16_u32, vcvth_n_f16_u64,
12446 vcvth_n_s16_f16, vcvth_n_s32_f16, vcvth_n_s64_f16, vcvth_n_u16_f16,
12447 vcvth_n_u32_f16, vcvth_n_u64_f16, vdivh_f16, vmaxh_f16, vmaxnmh_f16,
12448 vminh_f16, vminnmh_f16, vmulh_f16, vmulxh_f16, vrecpsh_f16,
12449 vrsqrtsh_f16): New.
12451 2016-07-25 Jiong Wang <jiong.wang@arm.com>
12453 * config.gcc (aarch64*-*-*): Install arm_fp16.h.
12454 * config/aarch64/aarch64-builtins.c (hi_UP): New.
12455 * config/aarch64/aarch64-simd-builtins.def: Register new builtins.
12456 * config/aarch64/aarch64-simd.md (aarch64_frsqrte<mode>): Extend to HF
12458 (aarch64_frecp<FRECP:frecp_suffix><mode>): Likewise.
12459 (aarch64_cm<optab><mode>): Likewise.
12460 * config/aarch64/aarch64.md (<frint_pattern><mode>2): Likewise.
12461 (l<fcvt_pattern><su_optab><GPF:mode><GPI:mode>2): Likewise.
12462 (fix_trunc<GPF:mode><GPI:mode>2): Likewise.
12463 (sqrt<mode>2): Likewise.
12464 (*sqrt<mode>2): Likewise.
12465 (abs<mode>2): Likewise.
12466 (<optab><mode>hf2): New pattern for HF mode.
12467 (<optab>hihf2): Likewise.
12468 * config/aarch64/arm_neon.h: Include arm_fp16.h.
12469 * config/aarch64/iterators.md (GPF_F16, GPI_F16, VHSDF_HSDF): New.
12470 (w1, w2, v, s, q, Vmtype, V_cmp_result, fcvt_iesize, FCVT_IESIZE):
12472 * config/aarch64/arm_fp16.h: New file.
12473 (vabsh_f16, vceqzh_f16, vcgezh_f16, vcgtzh_f16, vclezh_f16, vcltzh_f16,
12474 vcvth_f16_s16, vcvth_f16_s32, vcvth_f16_s64, vcvth_f16_u16,
12475 vcvth_f16_u32, vcvth_f16_u64, vcvth_s16_f16, vcvth_s32_f16,
12476 vcvth_s64_f16, vcvth_u16_f16, vcvth_u32_f16, vcvth_u64_f16,
12477 vcvtah_s16_f16, vcvtah_s32_f16, vcvtah_s64_f16, vcvtah_u16_f16,
12478 vcvtah_u32_f16, vcvtah_u64_f16, vcvtmh_s16_f16, vcvtmh_s32_f16,
12479 vcvtmh_s64_f16, vcvtmh_u16_f16, vcvtmh_u32_f16, vcvtmh_u64_f16,
12480 vcvtnh_s16_f16, vcvtnh_s32_f16, vcvtnh_s64_f16, vcvtnh_u16_f16,
12481 vcvtnh_u32_f16, vcvtnh_u64_f16, vcvtph_s16_f16, vcvtph_s32_f16,
12482 vcvtph_s64_f16, vcvtph_u16_f16, vcvtph_u32_f16, vcvtph_u64_f16,
12483 vnegh_f16, vrecpeh_f16, vrecpxh_f16, vrndh_f16, vrndah_f16, vrndih_f16,
12484 vrndmh_f16, vrndnh_f16, vrndph_f16, vrndxh_f16, vrsqrteh_f16,
12487 2016-07-25 Jiong Wang <jiong.wang@arm.com>
12489 * config/aarch64/aarch64-simd-builtins.def (reduc_smax_scal_,
12490 reduc_smin_scal_): Use VDQIF_F16.
12491 (reduc_smax_nan_scal_, reduc_smin_nan_scal_): Use VHSDF.
12492 * config/aarch64/aarch64-simd.md (reduc_<maxmin_uns>_scal_<mode>):
12494 (aarch64_reduc_<maxmin_uns>_internal<mode>): Likewise.
12495 * config/aarch64/iterators.md (VDQIF_F16): New.
12496 (vp): Support HF modes.
12497 * config/aarch64/arm_neon.h (vmaxv_f16, vmaxvq_f16, vminv_f16,
12498 vminvq_f16, vmaxnmv_f16, vmaxnmvq_f16, vminnmv_f16, vminnmvq_f16): New.
12500 2016-07-25 Jiong Wang <jiong.wang@arm.com>
12502 * config/aarch64/aarch64-simd.md (*aarch64_mulx_elt_to_64v2df): Rename to
12503 "*aarch64_mulx_elt_from_dup<mode>".
12504 (*aarch64_mul3_elt<mode>): Update schedule type.
12505 (*aarch64_mul3_elt_from_dup<mode>): Likewise.
12506 (*aarch64_fma4_elt_from_dup<mode>): Likewise.
12507 (*aarch64_fnma4_elt_from_dup<mode>): Likewise.
12508 * config/aarch64/iterators.md (VMUL): Supprt half precision float modes.
12509 (f, fp): Support HF modes.
12510 * config/aarch64/arm_neon.h (vfma_lane_f16, vfmaq_lane_f16,
12511 vfma_laneq_f16, vfmaq_laneq_f16, vfma_n_f16, vfmaq_n_f16, vfms_lane_f16,
12512 vfmsq_lane_f16, vfms_laneq_f16, vfmsq_laneq_f16, vfms_n_f16,
12513 vfmsq_n_f16, vmul_lane_f16, vmulq_lane_f16, vmul_laneq_f16,
12514 vmulq_laneq_f16, vmul_n_f16, vmulq_n_f16, vmulx_lane_f16,
12515 vmulxq_lane_f16, vmulx_laneq_f16, vmulxq_laneq_f16): New.
12517 2016-07-25 Jiong Wang <jiong.wang@arm.com>
12519 * config/aarch64/aarch64-simd-builtins.def: Register new builtins.
12520 * config/aarch64/aarch64-simd.md (fma<mode>4, fnma<mode>4): Extend to HF
12522 * config/aarch64/arm_neon.h (vfma_f16, vfmaq_f16, vfms_f16,
12525 2016-07-25 Jiong Wang <jiong.wang@arm.com>
12527 * config/aarch64/aarch64-simd-builtins.def: Register new builtins.
12528 * config/aarch64/aarch64-simd.md
12529 (aarch64_rsqrts<mode>): Extend to HF modes.
12530 (fabd<mode>3): Likewise.
12531 (<FCVT_F2FIXED:fcvt_fixed_insn><VHSDF_SDF:mode>3): Likewise.
12532 (<FCVT_FIXED2F:fcvt_fixed_insn><VHSDI_SDI:mode>3): Likewise.
12533 (aarch64_<maxmin_uns>p<mode>): Likewise.
12534 (<su><maxmin><mode>3): Likewise.
12535 (<maxmin_uns><mode>3): Likewise.
12536 (<fmaxmin><mode>3): Likewise.
12537 (aarch64_faddp<mode>): Likewise.
12538 (aarch64_fmulx<mode>): Likewise.
12539 (aarch64_frecps<mode>): Likewise.
12540 (*aarch64_fac<optab><mode>): Rename to aarch64_fac<optab><mode>.
12541 (add<mode>3): Extend to HF modes.
12542 (sub<mode>3): Likewise.
12543 (mul<mode>3): Likewise.
12544 (div<mode>3): Likewise.
12545 (*div<mode>3): Likewise.
12546 * config/aarch64/aarch64.c (aarch64_emit_approx_div): Return false for
12548 * config/aarch64/iterators.md (VDQ_HSDI, VSDQ_HSDI): New mode iterator.
12549 * config/aarch64/arm_neon.h (vadd_f16, vaddq_f16, vabd_f16, vabdq_f16,
12550 vcage_f16, vcageq_f16, vcagt_f16, vcagtq_f16, vcale_f16, vcaleq_f16,
12551 vcalt_f16, vcaltq_f16, vceq_f16, vceqq_f16, vcge_f16, vcgeq_f16,
12552 vcgt_f16, vcgtq_f16, vcle_f16, vcleq_f16, vclt_f16, vcltq_f16,
12553 vcvt_n_f16_s16, vcvtq_n_f16_s16, vcvt_n_f16_u16, vcvtq_n_f16_u16,
12554 vcvt_n_s16_f16, vcvtq_n_s16_f16, vcvt_n_u16_f16, vcvtq_n_u16_f16,
12555 vdiv_f16, vdivq_f16, vdup_lane_f16, vdup_laneq_f16, vdupq_lane_f16,
12556 vdupq_laneq_f16, vdups_lane_f16, vdups_laneq_f16, vmax_f16, vmaxq_f16,
12557 vmaxnm_f16, vmaxnmq_f16, vmin_f16, vminq_f16, vminnm_f16, vminnmq_f16,
12558 vmul_f16, vmulq_f16, vmulx_f16, vmulxq_f16, vpadd_f16, vpaddq_f16,
12559 vpmax_f16, vpmaxq_f16, vpmaxnm_f16, vpmaxnmq_f16, vpmin_f16, vpminq_f16,
12560 vpminnm_f16, vpminnmq_f16, vrecps_f16, vrecpsq_f16, vrsqrts_f16,
12561 vrsqrtsq_f16, vsub_f16, vsubq_f16): New.
12563 2016-07-25 Jiong Wang <jiong.wang@arm.com>
12565 * config/aarch64/aarch64-builtins.c (TYPES_BINOP_USS): New.
12566 * config/aarch64/aarch64-simd-builtins.def: Register new builtins.
12567 * config/aarch64/aarch64-simd.md (aarch64_rsqrte<mode>): Extend to HF modes.
12568 (neg<mode>2): Likewise.
12569 (abs<mode>2): Likewise.
12570 (<frint_pattern><mode>2): Likewise.
12571 (l<fcvt_pattern><su_optab><VDQF:mode><fcvt_target>2): Likewise.
12572 (<optab><VDQF:mode><fcvt_target>2): Likewise.
12573 (<fix_trunc_optab><VDQF:mode><fcvt_target>2): Likewise.
12574 (ftrunc<VDQF:mode>2): Likewise.
12575 (<optab><fcvt_target><VDQF:mode>2): Likewise.
12576 (sqrt<mode>2): Likewise.
12577 (*sqrt<mode>2): Likewise.
12578 (aarch64_frecpe<mode>): Likewise.
12579 (aarch64_cm<optab><mode>): Likewise.
12580 * config/aarch64/aarch64.c (aarch64_emit_approx_sqrt): Return false for
12582 * config/aarch64/iterators.md (VHSDF, VHSDF_DF, VHSDF_SDF): New.
12583 (VDQF_COND, fcvt_target, FCVT_TARGET, hcon): Extend mode attribute to HF modes.
12585 * config/aarch64/arm_neon.h (vdup_n_f16): New.
12586 (vdupq_n_f16): Likewise.
12587 (vld1_dup_f16): Use vdup_n_f16.
12588 (vld1q_dup_f16): Use vdupq_n_f16.
12589 (vabs_f16, vabsq_f16, vceqz_f16, vceqzq_f16, vcgez_f16, vcgezq_f16,
12590 vcgtz_f16, vcgtzq_f16, vclez_f16, vclezq_f16, vcltz_f16, vcltzq_f16,
12591 vcvt_f16_s16, vcvtq_f16_s16, vcvt_f16_u16, vcvtq_f16_u16, vcvt_s16_f16,
12592 vcvtq_s16_f16, vcvt_u16_f16, vcvtq_u16_f16, vcvta_s16_f16,
12593 vcvtaq_s16_f16, vcvta_u16_f16, vcvtaq_u16_f16, vcvtm_s16_f16,
12594 vcvtmq_s16_f16, vcvtm_u16_f16, vcvtmq_u16_f16, vcvtn_s16_f16,
12595 vcvtnq_s16_f16, vcvtn_u16_f16, vcvtnq_u16_f16, vcvtp_s16_f16,
12596 vcvtpq_s16_f16, vcvtp_u16_f16, vcvtpq_u16_f16, vneg_f16, vnegq_f16,
12597 vrecpe_f16, vrecpeq_f16, vrnd_f16, vrndq_f16, vrnda_f16, vrndaq_f16,
12598 vrndi_f16, vrndiq_f16, vrndm_f16, vrndmq_f16, vrndn_f16, vrndnq_f16,
12599 vrndp_f16, vrndpq_f16, vrndx_f16, vrndxq_f16, vrsqrte_f16, vrsqrteq_f16,
12600 vsqrt_f16, vsqrtq_f16): New.
12602 2016-07-25 Jiong Wang <jiong.wang@arm.com>
12604 * config/aarch64/aarch64-simd.md
12605 (aarch64_<PERMUTE:perm_insn><PERMUTE:perm_hilo><mode>): Use VALL_F16.
12606 (aarch64_ext<mode>): Likewise.
12607 (aarch64_rev<REVERSE:rev_op><mode>): Likewise.
12608 * config/aarch64/aarch64.c (aarch64_evpc_trn, aarch64_evpc_uzp,
12609 aarch64_evpc_zip, aarch64_evpc_ext, aarch64_evpc_rev): Support V4HFmode
12611 * config/aarch64/arm_neon.h (__INTERLEAVE_LIST): Support float16x4_t,
12613 (__aarch64_vdup_lane_f16, __aarch64_vdup_laneq_f16,
12614 __aarch64_vdupq_lane_f16, __aarch64_vdupq_laneq_f16, vbsl_f16,
12615 vbslq_f16, vdup_n_f16, vdupq_n_f16, vdup_lane_f16, vdup_laneq_f16,
12616 vdupq_lane_f16, vdupq_laneq_f16, vduph_lane_f16, vduph_laneq_f16,
12617 vext_f16, vextq_f16, vmov_n_f16, vmovq_n_f16, vrev64_f16, vrev64q_f16,
12618 vtrn1_f16, vtrn1q_f16, vtrn2_f16, vtrn2q_f16, vtrn_f16, vtrnq_f16,
12619 vuzp1_f16, vuzp1q_f16, vuzp2_f16, vuzp2q_f16, vzip1_f16, vzip2q_f16):
12621 (vmov_n_f16): Reimplement using vdup_n_f16.
12622 (vmovq_n_f16): Reimplement using vdupq_n_f16..
12624 2016-07-25 Jiong Wang <jiong.wang@arm.com>
12626 * config/aarch64/aarch64.c (aarch64_add_constant): New parameter
12627 "frame_related_p". Generate CFA annotation when it's necessary.
12628 (aarch64_expand_prologue): Use aarch64_add_constant.
12629 (aarch64_expand_epilogue): Likewise.
12630 (aarch64_output_mi_thunk): Pass "false" when calling
12631 aarch64_add_constant.
12633 2016-07-25 Jiong Wang <jiong.wang@arm.com>
12635 * config/aarch64/aarch64.c (aarch64_add_constant): Optimize instruction
12638 2016-07-25 Jiong Wang <jiong.wang@arm.com>
12640 * config/aarch64/aarch64.c (aarch64_add_constant): New parameter "mode".
12641 Use aarch64_internal_mov_immediate instead of aarch64_build_constant.
12642 (aarch64_output_mi_thunk): Pass Pmode when calling aarch64_add_constant.
12643 (aarch64_build_constant): Delete.
12645 2016-07-25 Alexander Monakov <amonakov@ispras.ru>
12648 2016-07-20 Alexander Monakov <amonakov@ispras.ru>
12650 * config/nvptx/nvptx.c (nvptx_option_override): Do not set
12651 flag_toplevel_reorder.
12653 2016-07-25 Richard Biener <rguenther@suse.de>
12655 * cgraph.c (cgraph_node::verify_node): Compare against builtin
12656 by using DECL_BUILT_IN_CLASS and DECL_FUNCTION_CODE.
12657 * tree-chkp.c (chkp_gimple_call_builtin_p): Likewise.
12658 * tree-streamer.h (streamer_handle_as_builtin_p): Remove.
12659 (streamer_get_builtin_tree): Likewise.
12660 (streamer_write_builtin): Likewise.
12661 * lto-streamer.h (LTO_builtin_decl): Remove.
12662 * lto-streamer-in.c (lto_read_tree_1): Remove assert.
12663 (lto_input_scc): Remove LTO_builtin_decl handling.
12664 (lto_input_tree_1): Liekwise.
12665 * lto-streamer-out.c (lto_output_tree_1): Remove special
12666 handling of builtins.
12667 (DFS::DFS): Likewise.
12668 * tree-streamer-in.c (streamer_get_builtin_tree): Remove.
12669 * tree-streamer-out.c (pack_ts_function_decl_value_fields): Remove
12671 (streamer_write_builtin): Remove.
12673 2016-07-25 Martin Liska <mliska@suse.cz>
12675 * lto-cgraph.c (input_symtab): Don't call get_working_sets
12676 if flag_auto_profile is set to true.
12678 2016-07-25 Martin Liska <mliska@suse.cz>
12680 PR gcov-profile/71868
12681 * cfgloopanal.c (expected_loop_iterations_unbounded): When we
12682 have a function with multiple latches, count them all.
12684 2016-07-25 Martin Liska <mliska@suse.cz>
12686 * tree-ssa-loop-niter.c (loop_only_exit_p): Release body array.
12688 2016-07-25 Martin Liska <mliska@suse.cz>
12690 PR tree-optimization/71987
12691 * tree-ssa-reassoc.c (maybe_optimize_range_tests): Call get_ops
12692 just for SSA_NAMEs. Fix GNU coding style.
12694 2016-07-25 Martin Liska <mliska@suse.cz>
12696 PR gcov-profile/64874
12697 * gcov-io.h: Update command about file format.
12698 * gcov-iov.c (main): Adapt the numbering scheme.
12700 2016-07-24 Kugan Vivekanandarajah <kuganv@linaro.org>
12702 PR middle-end/66726
12703 * tree-ssa-reassoc.c (optimize_vec_cond_expr): Handle tcc_compare stmt
12704 whose result is used in PHI.
12705 (final_range_test_p): Likewise.
12706 (maybe_optimize_range_tests): Likewise.
12708 2016-07-22 Michael Meissner <meissner@linux.vnet.ibm.com>
12710 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
12711 Reformat two multi-line strings.
12713 2016-07-22 Martin Sebor <msebor@redhat.com>
12715 * doc/extend.texi (Compound Literals): Add '@' missed in last commit.
12717 2016-07-22 Martin Sebor <msebor@redhat.com>
12720 * doc/extend.texi (Compound Literals): Correct and clarify.
12721 (Cast to Union): Same.
12723 2016-07-22 Kelvin Nilsen <kelvin@gcc.gnu.org>
12725 * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
12726 comments to explain why certain error messages make mention of
12727 undocumented options.
12728 (rs6000_invalid_builtin): Change error messages to replace mention
12729 of undocumented options with mention of the -mcpu=power9 option
12730 that enables those undocumented options.
12731 * config/rs6000/rs6000.h (MASK_FLOAT128): New macro.
12732 (RS6000_BTM_FLOAT128): Use the new MASK_FLOAT128 macro in the
12733 definition of this macro to correct an existing error.
12734 * config/rs6000/rs6000.opt: Add the Undocumented qualifier to the
12735 mpower9-fusion, mpower9-vector, mpower9-dform, and mmodulo entries.
12736 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Modify
12737 descriptions of built-in functions so that they depend on
12738 -mcpu=power9 instead of on the corresponding undocumented flags.
12739 * doc/invoke.texi (Option Summary): Remove all mention of newly
12740 undocumented flags.
12741 (IBM RS/6000 and PowerPC Options): Likewise.
12742 * doc/md.texi (Constraints for Particuliar Machines): Remove all
12743 mention of newly undocumented flags.
12745 2016-07-22 Evgeny Stupachenko <evstupac@gmail.com>
12747 * ipa-cp.c (determine_versionability): Do not create constprop clones,
12748 when target_clones attribute is set.
12750 2016-07-22 Bin Cheng <bin.cheng@arm.com>
12752 * common.opt (funsafe-loop-optimizations): Mark ignore.
12753 * doc/invoke.texi (funsafe-loop-optimizations): Remove.
12754 * loop-iv.c (get_simple_loop_desc): Remove unsafe-loop-optimizations
12756 * tree-ssa-loop-niter.c (finite_loop_p): Ditto.
12757 * config/bfin/bfin.c (bfin_can_use_doloop_p): Ditto.
12759 2016-07-22 Bin Cheng <bin.cheng@arm.com>
12761 * tree-ssa-loop-niter.h (number_of_iterations_exit_assumptions): New
12763 * tree-ssa-loop-niter.c (number_of_iterations_exit_assumptions): New
12765 (number_of_iterations_exit): Warn missed loop optimization for
12766 possible infinite loops.
12768 2016-07-22 Segher Boessenkool <segher@kernel.crashing.org>
12771 * config/rs6000/rs6000.c (rs6000_file_start): Fix condition for
12772 when to emit a ".machine" pseudo-op.
12774 2016-07-22 Martin Liska <mliska@suse.cz>
12776 PR gcov-profile/69028
12777 PR gcov-profile/62047
12778 * coverage.c (coverage_compute_lineno_checksum): Do not
12779 calculate checksum for fns w/o xloc.file.
12780 (coverage_compute_profile_id): Likewise.
12782 2016-07-22 Georg-Johann Lay <avr@gjlay.de>
12784 * config/avr/avr.c (TARGET_SECONDARY_RELOAD): Remove hook define...
12785 (avr_secondary_reload): ...and implementation.
12786 (avr_adjust_insn_length) [ADJUST_LEN_LPM]: Remove handling.
12787 * config/avr/avr.md (reload_in<mode>): Remove insns.
12788 (adjust_len) [lpm]: Remove insn attribute value.
12789 * config/avr/predicates.md (flash_operand): Remove insn predicate.
12791 2016-07-21 Bernd Edlinger <bernd.edlinger@hotmail.de>
12793 PR middle-end/71876
12794 * builtin-attrs.def (ATTR_RT_NOTHROW_LEAF_LIST): New return twice
12796 * builtins.def (BUILT_IN_SETJMP): Use ATTR_RT_NOTHROW_LEAF_LIST here.
12797 * calls.c (special_function_p): Remove the special handling of the
12798 "__builtin_" prefix.
12800 2016-07-21 Bernd Edlinger <bernd.edlinger@hotmail.de>
12802 PR middle-end/71876
12803 * calls.c (gimple_maybe_alloca_call_p): New function. Return true
12804 if STMT may be an alloca call.
12805 (gimple_alloca_call_p, alloca_call_p): Return only true for the
12806 builtin alloca call.
12807 * calls.h (gimple_maybe_alloca_call_p): New function.
12808 * tree-inline.c (inline_forbidden_p_stmt): Use
12809 gimple_maybe_alloca_call_p here.
12811 2016-07-21 David Malcolm <dmalcolm@redhat.com>
12813 * spellcheck-tree.c (best_macro_match::best_macro_match):
12814 Explictly specify the template arguments when invoking the base
12815 class constructor, to help older C++ compilers.
12817 2016-07-21 Jakub Jelinek <jakub@redhat.com>
12820 * asan.c (asan_dynamic_init_call): Call asan_init_shadow_ptr_types
12821 before builtin_decl_implicit.
12823 2016-07-21 James Greenhalgh <james.greenhalgh@arm.com>
12825 * optabs.c (emit_condiitonal_move): Short circuit for identical
12828 2016-07-21 James Greenhalgh <james.greenhalgh@arm.com>
12830 * ifcvt.c (noce_if_info): New fields: speed_p, original_cost,
12831 max_seq_cost. Removed fields: then_cost, else_cost, branch_cost.
12832 (noce_conversion_profitable_p): New.
12833 (noce_try_store_flag_constants): Use it.
12834 (noce_try_addcc): Likewise.
12835 (noce_try_store_flag_mask): Likewise.
12836 (noce_try_cmove): Likewise.
12837 (noce_try_cmove_arith): Likewise.
12838 (bb_valid_for_noce_process_p): Add to the cost parameter rather than
12840 (noce_convert_multiple_sets): Move cost model to here, from...
12841 (bb_ok_for_noce_convert_multiple_sets) ...here.
12842 (noce_process_if_block): Update calls for above changes.
12843 (noce_find_if_block): Record new noce_if_info parameters.
12845 2016-07-21 James Greenhalgh <james.greenhalgh@arm.com>
12847 * target.def (max_noce_ifcvt_seq_cost): New.
12848 * doc/tm.texi.in (TARGET_MAX_NOCE_IFCVT_SEQ_COST): Document it.
12849 * doc/tm.texi: Regenerate.
12850 * targhooks.h (default_max_noce_ifcvt_seq_cost): New.
12851 * targhooks.c (default_max_noce_ifcvt_seq_cost): New.
12852 * params.def (PARAM_MAX_RTL_IF_CONVERSION_PREDICTABLE_COST): New.
12853 (PARAM_MAX_RTL_IF_CONVERSION_UNPREDICTABLE_COST): Likewise.
12854 * doc/invoke.texi: Document new params.
12856 2016-07-21 Richard Biener <rguenther@suse.de>
12858 PR tree-optimization/71947
12859 * tree-vrp.c (extract_range_from_assert): Singleton symbolic
12860 ranges have useful limit_vr information.
12862 2016-07-21 Richard Biener <rguenther@suse.de>
12864 * function-tests.c (build_trivial_generic_function): Set
12865 BLOCK_SUPERCONTEXT of DECL_INITIAL.
12866 * omp-low.c (create_omp_child_function): Likewise.
12867 (grid_expand_target_grid_body): Likewise.
12868 * cgraphunit.c (init_lowered_empty_function): Likewise.
12869 (cgraph_node::expand_thunk): Likewise.
12870 * tree-parloops.c (create_loop_fn): Likewise.
12871 * ipa.c (cgraph_build_static_cdtor_1): Likewise.
12873 2016-07-21 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
12875 * tree-ssa-strlen.c (strlen_dom_walker::before_dom_children): Fix typo
12878 2016-07-21 Georg-Johann Lay <avr@gjlay.de>
12880 * config/avr/avr.md (any_extract, any_shiftrt): New code iterators.
12881 (*insv.extract, *insv.shiftrt, *insv.not-bit.0, *insv.not-bit.7)
12882 (*insv.xor-extract, *insv.xor1-bit.0): New insns.
12883 (adjust_len) [insv_notbit, insv_notbit_0, insv_notbit_7]: New
12884 values for insn attribute.
12885 * config/avr/avr.c (avr_out_insert_notbit): New function.
12886 (avr_adjust_insn_length): Handle ADJUST_LEN_INSV_NOTBIT,
12887 ADJUST_LEN_INSV_NOTBIT_0/_7.
12888 * config/avr/avr-protos.h (avr_out_insert_notbit): New proto.
12890 2016-07-21 Bin Cheng <bin.cheng@arm.com>
12892 * tree-chrec.c (convert_affine_scev): New parameter. Pass new arg.
12893 (chrec_convert_1, chrec_convert): Ditto.
12894 * tree-chrec.h (chrec_convert, convert_affine_scev): New parameter.
12895 * tree-scalar-evolution.c (interpret_rhs_expr): Pass new arg.
12896 * tree-vrp.c (adjust_range_with_scev): Ditto.
12897 * tree-ssa-loop-niter.c (idx_infer_loop_bounds): Ditto.
12898 (scev_var_range_cant_overflow): New function.
12899 (scev_probably_wraps_p): New parameter. Call above function.
12900 * tree-ssa-loop-niter.h (scev_probably_wraps_p): New parameter.
12902 2016-07-21 Bin Cheng <bin.cheng@arm.com>
12904 * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Clean up
12905 by removing computation of may_be_zero.
12907 2016-07-21 Jakub Jelinek <jakub@redhat.com>
12909 * tree-object-size.c (unknown): Use HOST_WIDE_INT_M1U instead of -1.
12911 2016-07-21 Andrew Sutton <andrew.n.sutton@gmail.com>
12913 Improving concepts performance and diagnostics.
12914 * timevar.def (TV_CONSTRAINT_SAT, TV_CONSTRAINT_SUB): New time vars
12915 for constraint satisfaction and subsumption.
12916 * timevar.h (auto_timevar): New constructor that matches the push/pop
12917 pattern of usage in pt.c.
12919 2016-07-20 Uros Bizjak <ubizjak@gmail.com>
12921 * hwint.h (HOST_WIDE_INT_0): New define.
12922 (HOST_WIDE_INT_0U): Ditto.
12923 * double-int.c: Use HOST_WIDE_INT_0 instead of (HOST_WIDE_INT) 0.
12924 * dse.c: Use HOST_WIDE_INT_0U instead of (unsigned HOST_WIDE_INT) 0.
12925 * simplify-rtx.c: Ditto.
12926 * tree-object-size.c: Ditto.
12928 2016-07-20 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
12930 * config/s390/s390.c (s390_encode_section_info): Remove mode size
12933 2016-07-20 Uros Bizjak <ubizjak@gmail.com>
12935 * cse.c: Use HOST_WIDE_INT_M1 instead of ~(HOST_WIDE_INT) 0.
12936 * combine.c: Use HOST_WIDE_INT_M1U instead of
12937 ~(unsigned HOST_WIDE_INT) 0.
12938 * double-int.h: Ditto.
12940 * dwarf2asm.c:Ditto.
12942 * genmodes.c: Ditto.
12944 * read-rtl.c: Ditto.
12945 * tree-ssa-loop-ivopts.c: Ditto.
12946 * tree-ssa-loop-prefetch.c: Ditto.
12947 * tree-vect-generic.c: Ditto.
12948 * tree-vect-patterns.c: Ditto.
12951 2016-07-20 Georg-Johann Lay <avr@gjlay.de>
12953 * config/avr.c (avr_legitimize_address) [AVR_TINY]: Force
12954 constant addresses outside [0,0xc0] into a register.
12955 (avr_out_movhi_r_mr_reg_no_disp_tiny): Pass insn. And handle
12956 cases where the base address register is unused after.
12957 (avr_out_movhi_r_mr_reg_disp_tiny): Same.
12958 (avr_out_movhi_mr_r_reg_disp_tiny): Same.
12959 (avr_out_store_psi_reg_disp_tiny): Same.
12961 2016-07-20 Georg-Johann Lay <avr@gjlay.de>
12963 Implement attribute progmem on reduced Tiny cores by adding
12964 flash offset 0x4000 to respective symbols.
12967 * doc/extend.texi (AVR Variable Attributes) [progmem]: Add
12968 documentation how it works on reduced Tiny cores.
12969 (AVR Named Address Spaces): No support for reduced Tiny.
12970 * config/avr/avr.c (AVR_SYMBOL_FLAG_TINY_PM): New macro.
12971 (avr_address_tiny_pm_p): New static function.
12972 (avr_print_operand_address) [AVR_TINY]: Add AVR_TINY_PM_OFFSET
12973 if the address is in progmem.
12974 (avr_assemble_integer): Same.
12975 (avr_encode_section_info) [AVR_TINY]: Set AVR_SYMBOL_FLAG_TINY_PM
12976 for symbol_ref in progmem.
12977 * config/avr/avr.h (AVR_TINY_PM_OFFSET): New macro.
12978 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Use it instead of
12979 magic 0x4000 when built-in def'ing __AVR_TINY_PM_BASE_ADDRESS__.
12981 2016-07-20 Patrick Palka <ppalka@gcc.gnu.org>
12983 * configure.ac (thin_archive_support): New variable. AC_SUBST it.
12984 * configure: Regenerate.
12985 * Makefile.in (THIN_ARCHIVE_SUPPORT): New variable.
12986 (USE_THIN_ARCHIVES): New variable.
12987 (libbackend.a): If USE_THIN_ARCHIVES then pass T to ar to build
12988 this archive as a thin archive.
12990 2016-07-20 David Malcolm <dmalcolm@redhat.com>
12992 * diagnostic-show-locus.c (diagnostic_show_locus): If this is the
12993 same location as last time, don't skip if we have fix-it hints.
12994 Clarify the skipping logic by converting it from one "if" clause
12995 to repeated "if" clauses.
12996 * spellcheck-tree.c: Include "cpplib.h".
12997 (find_closest_macro_cpp_cb): Move here from c/c-decl.c.
12998 (best_macro_match::best_macro_match): New constructor.
12999 * spellcheck-tree.h (struct edit_distance_traits<cpp_hashnode *>):
13000 Move here from c/c-decl.c.
13001 (class best_macro_match): Move here from c/c-decl.c, converting
13002 from a typedef to a subclass, gaining a ctor.
13004 2016-07-20 Georg-Johann Lay <avr@gjlay.de>
13006 * config/avr/avr-protos.h (avr_addr_space_supported_p): New prototype.
13007 * config/avr/avr.c (TARGET_ADDR_SPACE_DIAGNOSE_USAGE): New hook
13009 (avr_addr_space_diagnose_usage): ...and implementation.
13010 (avr_addr_space_supported_p): New function.
13011 (avr_nonconst_pointer_addrspace, avr_pgm_check_var_decl): Only
13012 report bad address space usage if that space is supported.
13013 (avr_insert_attributes): Same. No more complain about unsupported
13015 * config/avr/avr-c.c (tm_p.h): Include it.
13016 (avr_cpu_cpp_builtins): Only define addr-space related built-in
13017 macro if avr_addr_space_supported_p.
13019 2016-07-20 Alexander Monakov <amonakov@ispras.ru>
13021 * config/nvptx/nvptx.c (nvptx_option_override): Do not set
13022 flag_toplevel_reorder.
13024 2016-07-20 David Malcolm <dmalcolm@redhat.com>
13026 * gcc-rich-location.c
13027 (gcc_rich_location::add_fixit_misspelled_id): New overload, taking
13029 * gcc-rich-location.h
13030 (gcc_rich_location::add_fixit_misspelled_id): Likewise.
13032 2016-07-20 Georg-Johann Lay <avr@gjlay.de>
13034 * target.def (addr_space): Add new diagnose_usage to hook vector.
13035 * targhooks.c (default_addr_space_diagnose_usage): Add default
13036 implementation and...
13037 * targhooks.h (default_addr_space_diagnose_usage): ... its prototype.
13038 * c/c-parser.c (c_lex_one_token) [CPP_NAME]: If the token
13039 is some address space, call targetm.addr_space.diagnose_usage.
13040 * doc/tm.texi.in (Named Address Spaces): Add anchor for
13041 TARGET_ADDR_SPACE_DIAGNOSE_USAGE documentation.
13042 * doc/tm.texi: Regenerate.
13044 2016-07-20 Martin Liska <mliska@suse.cz>
13046 PR middle-end/71898
13047 * graphite-isl-ast-to-gimple.c (later_of_the_two):
13048 Properly handly PHI stmts.
13050 2016-07-20 Bin Cheng <bin.cheng@arm.com>
13052 PR tree-optimization/71503
13053 PR tree-optimization/71683
13054 * tree-if-conv.c (gen_phi_arg_condition): Record true predicate
13057 2016-07-20 Martin Liska <mliska@suse.cz>
13059 * doc/invoke.texi (-fipa-ra): Document when the option is
13060 disabled. Fix a typo.
13062 2016-07-20 Martin Liska <mliska@suse.cz>
13064 * Makefile.in: Include fibonacci_heap.c
13065 * fibonacci_heap.c: New file.
13066 * fibonacci_heap.h (fibonacci_heap::insert): Use insert_node.
13067 (fibonacci_heap::union_with): Fix deletion of the second heap.
13068 * selftest-run-tests.c (selftest::run_tests): Incorporate
13069 fibonacci heap tests.
13070 * selftest.h: Declare fibonacci_heap_c_tests.
13072 2016-07-20 Martin Liska <mliska@suse.cz>
13074 * selftest-run-tests.c (selftest::run_tests): New function.
13075 * selftest.h (sreal_c_tests): Declare.
13076 * sreal.c (sreal_verify_basics): New function.
13077 (verify_aritmetics): Likewise.
13078 (sreal_verify_arithmetics): Likewise.
13079 (verify_shifting): Likewise.
13080 (sreal_verify_shifting): Likewise.
13081 (void sreal_c_tests): Likewise.
13083 2016-07-19 Jakub Jelinek <jakub@redhat.com>
13085 PR rtl-optimization/71916
13086 * cfgrtl.c (contains_no_active_insn_p): Return false also for
13087 bb which have a single succ fake edge.
13089 2016-07-19 Aldy Hernandez <aldyh@redhat.com>
13092 * dwarf2out.c (gen_subprogram_die): Only call
13093 gen_unspecified_parameters_die while dumping early dwarf.
13095 2016-07-19 Jakub Jelinek <jakub@redhat.com>
13097 PR middle-end/71874
13098 * gimple-fold.c (fold_builtin_memory_op): Use
13099 get_addr_base_and_unit_offset instead of get_ref_base_and_extent.
13101 2016-07-19 Uros Bizjak <ubizjak@gmail.com>
13103 * builtins.c: Use HOST_WIDE_INT_1 instead of (HOST_WIDE_INT) 1,
13104 HOST_WIDE_INT_1U instead of (unsigned HOST_WIDE_INT) 1,
13105 HOST_WIDE_INT_M1 instead of (HOST_WIDE_INT) -1 and
13106 HOST_WIDE_INT_M1U instead of (unsigned HOST_WIDE_INT) -1.
13107 * combine.c: Ditto.
13110 * double-int.c: Ditto.
13112 * dwarf2out.c: Ditto.
13115 * fold-const.c: Ditto.
13116 * function.c: Ditto.
13118 * genmodes.c: Ditto.
13122 * loop-doloop.c: Ditto.
13123 * loop-invariant.c: Ditto.
13124 * loop-iv.c: Ditto.
13129 * rtlanal.c: Ditto.
13130 * simplify-rtx.c: Ditto.
13131 * stor-layout.c: Ditto.
13133 * tree-ssa-loop-ivopts.c: Ditto.
13134 * tree-vect-generic.c: Ditto.
13135 * tree-vect-patterns.c: Ditto.
13140 * wide-int-print.cc: Ditto.
13141 * wide-int.cc: Ditto.
13142 * wide-int.h: Ditto.
13144 2016-07-19 David Malcolm <dmalcolm@redhat.com>
13146 * selftest.c (selftest::assert_streq): Handle NULL values of
13147 val_actual and val_expected.
13149 2016-07-19 Martin Jambor <mjambor@suse.cz>
13152 * trans-decl.c (gfc_generate_function_code): Use cgraph_get_create_node
13153 rather than cgraph_create_node to get a call graph node.
13155 2016-07-19 Richard Biener <rguenther@suse.de>
13157 * gimple-fold.c (get_base_constructor): Add VIEW_CONVERT case,
13158 handle all tcc_constant bases and valueize SSA names.
13159 * tree-ssa-sccvn.c (fully_constant_vn_reference_p): Handle
13160 tcc_constant bases.
13162 2016-07-19 David Malcolm <dmalcolm@redhat.com>
13164 * function-tests.c (selftest::verify_three_block_rtl_cfg): Verify
13165 the flags of the exit block and bb2, not just the entry block.
13167 2016-07-19 Richard Biener <rguenther@suse.de>
13169 PR tree-optimization/71901
13170 * tree-ssa-sccvn.h (struct vn_reference_op_struct): Add
13171 align member, group stuff with the bitfield.
13172 (vn_ref_op_align_unit): New inline.
13173 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): For ARRAY_REFs
13174 record element alignment and operand 3 unchanged.
13175 (ao_ref_init_from_vn_reference): Adjust.
13176 (valueize_refs_1): Likewise.
13177 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
13179 2016-07-19 Richard Biener <rguenther@suse.de>
13181 PR tree-optimization/71908
13182 * tree-ssa-structalias.c (get_constraint_for_component_ref): Handle
13183 symbolic constants in a more reliable way.
13185 2016-07-19 Ilya Enkovich <ilya.enkovich@intel.com>
13187 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Update
13189 (vect_update_inits_of_drs): Likewise.
13190 (vect_create_cond_for_alias_checks): Likewise.
13191 * tree-vect-loop.c (vect_get_known_peeling_cost): Likewise.
13193 2016-07-19 Richard Biener <rguenther@suse.de>
13196 * lto-streamer-out.c (DFS::DFS_write_tree_body): For blocks
13197 with an abstract origin that is not an inlined function outer
13198 scope add a self-reference as abstract origin.
13199 * tree-streamer-out.c (write_ts_block_tree_pointers): Likewise.
13201 2016-07-18 Michael Meissner <meissner@linux.vnet.ibm.com>
13204 * config/rs6000/rs6000.c (rs6000_function_value): Fix
13205 unintentional System V.4 structure return breakage for structures
13206 with a single floating point element.
13208 2016-07-18 Yuri Rumyantsev <ysrumyan@gmail.com>
13210 PR tree-optimization/71734
13211 * tree-ssa-loop-im.c (ref_indep_loop_p_1): Add REF_LOOP argument which
13212 contains REF, use it to check safelen, assume that safelen value
13213 must be greater 1, fix style.
13214 (ref_indep_loop_p_2): Add REF_LOOP argument.
13215 (ref_indep_loop_p): Pass LOOP as additional argument to
13216 ref_indep_loop_p_2.
13218 2016-07-18 Dominik Vogt <vogt@linux.vnet.ibm.com>
13220 * cfgexpand.c (expand_stack_vars): Implement synamic stack space
13221 allocation in the prologue.
13222 * explow.c (get_dynamic_stack_base): New function to return an address
13223 expression for the dynamic stack base.
13224 (get_dynamic_stack_size): New function to do the required dynamic stack
13225 space size calculations.
13226 (allocate_dynamic_stack_space): Use new functions.
13227 (align_dynamic_address): Move some code from
13228 allocate_dynamic_stack_space to new function.
13229 * explow.h (get_dynamic_stack_base, get_dynamic_stack_size): Export.
13231 2016-07-18 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
13233 * config/s390/s390.c (s390_encode_section_info): Always set
13234 notaligned marker if mode size is 0 or no MEM_ALIGN info could be
13237 2016-07-18 Richard Biener <rguenther@suse.de>
13239 PR tree-optimization/71893
13240 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Compensate
13241 for sizetype cast added by array_ref_element_size.
13242 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
13244 2016-07-16 John David Anglin <danglin@gcc.gnu.org>
13246 * config/pa/pa.c (hppa_profile_hook): Allocate stack space for
13247 register parameters. Remove code to initialize argument pointer
13248 on TARGET_64BIT. Optimize call to _mcount when it can be reached
13249 using a pc-relative branch. Cleanup conditional code.
13250 * config/pa/pa.md (call_mcount): New expander.
13251 (call_mcount_nonpic): New insn.
13252 (call_mcount_pic): New insn and split.
13253 (call_mcount_pic_post_reload): New insn.
13254 (call_mcount_64bit): New insn and split.
13255 (call_mcount_64bit_post_reload): New insn.
13257 2016-07-15 Georg-Johann Lay <avr@gjlay.de>
13259 * config/avr/predicates.md (const_m255_to_m1_operand): New.
13260 * config/avr/constraints.md (Cn8, Ca1, Co1, Yx2): New constraints.
13261 * config/avr/avr.md (add<mode>3) <ALL1>: Fix set_vzn for +/-2.
13262 (*cmphi.zero-extend.0, *cmphi.zero-extend.1)
13263 (*usum_widenqihi3, *udiff_widenqihi3)
13264 (*addhi3_zero_extend.const): New combiner insns.
13265 (andqi3, iorqi3): Provide "l" (NO_LD_REGS) alternative if
13266 just 1 bit is affected.
13267 * config/avr/avr.c (avr_out_bitop) <QImode>: Don't access xop[3].
13268 (avr_out_compare) [EQ,NE]: Tweak comparing d-regs against -1.
13270 2016-07-15 Cesar Philippidis <cesar@codesourcery.com>
13272 * omp-low.c (lower_omp_target): Mark data clauses with
13273 GOMP_MAP_FORCE_{PRESENT,TO,FROM,TOFROM} as potentially having
13274 zero-length subarrays.
13276 2016-07-15 Richard Biener <rguenther@suse.de>
13278 PR tree-optimization/71881
13279 * tree-loop-distribution.c (destroy_loop): Remove blocks in
13280 reverse DOM order to make debug temp generation happy.
13282 2016-07-15 Richard Biener <rguenther@suse.de>
13284 PR tree-optimization/71887
13285 * tree-ssa-phiopt.c (absorbing_element_p): Add rhs arg and
13286 verify it is not zero for division / modulo handling.
13287 (value_replacement): Adjust.
13289 2016-07-15 Virendra Pathak <virendra.pathak@broadcom.com>
13290 Julian Brown <julian@codesourcery.com>
13292 * config/aarch64/aarch64-cores.def: Update vulcan COSTS.
13293 * config/aarch64/aarch64-cost-tables.h
13294 (vulcan_extra_costs): New variable.
13295 * config/aarch64/aarch64.c
13296 (vulcan_addrcost_table): Likewise.
13297 (vulcan_regmove_cost): Likewise.
13298 (vulcan_vector_cost): Likewise.
13299 (vulcan_branch_cost): Likewise.
13300 (vulcan_tunings): Likewise.
13302 2016-07-15 Alexander Monakov <amonakov@ispras.ru>
13304 * cgraphunit.c (cgraph_order_sort_kind): New entry ORDER_VAR_UNDEF.
13305 (output_in_order): Loop over undefined variables too. Output them
13306 via assemble_undefined_decl. Skip variables that correspond to hard
13307 registers or have value-exprs.
13308 * varpool.c (symbol_table::output_variables): Handle undefined
13309 variables together with defined ones.
13311 2016-07-15 Richard Biener <rguenther@suse.de>
13313 * tree-ssa-pre.c (get_representative_for): Make sure to return
13314 the value number of SSA names.
13315 (phi_translate_1): get_representative_for cannot return NULL.
13316 (do_pre_regular_insertion): Remove redundant call to
13317 fully_constant_expression.
13318 (do_pre_partial_partial_insertion): Likewise.
13320 2016-07-15 Bin Cheng <bin.cheng@arm.com>
13322 * tree-scalar-evolution.c (simple_iv_with_niters): New funcion.
13323 (derive_simple_iv_with_niters): New function.
13324 (simple_iv): Rewrite using simple_iv_with_niters.
13325 * tree-scalar-evolution.h (simple_iv_with_niters): New decl.
13326 * tree-ssa-loop-niter.c (number_of_iterations_exit_assumptions): New
13328 (number_of_iterations_exit): Rewrite using above function.
13329 * tree-ssa-loop-niter.h (number_of_iterations_exit_assumptions): New
13332 2016-07-15 Richard Biener <rguenther@suse.de>
13334 * config/i386/i386.c (ix86_builtin_vectorization_cost): Adjust
13335 vec_construct cost.
13337 2016-07-14 Jakub Jelinek <jakub@redhat.com>
13339 PR tree-optimization/71872
13340 * tree-data-ref.c (get_references_in_stmt): Ignore references
13341 with is_gimple_constant get_base_address.
13343 2016-07-14 Thomas Preud'homme <thomas.preudhomme@arm.com>
13345 * config/arm/arm.h (TARGET_HAVE_LDACQ): Enable for ARMv8-M Mainline.
13346 (TARGET_HAVE_LDACQD): New macro.
13347 * config/arm/sync.md (atomic_loaddi): Use TARGET_HAVE_LDACQD rather
13348 than TARGET_HAVE_LDACQ.
13349 (arm_load_acquire_exclusivedi): Likewise.
13350 (arm_store_release_exclusivedi): Likewise.
13352 2016-07-14 Thomas Preud'homme <thomas.preudhomme@arm.com>
13354 PR rtl-optimization/71878
13355 * lra-constraints.c (match_reload): Pass information about other
13356 output operands. Create new unique register value if matching input
13357 operand shares same register value as output operand being considered.
13358 (curr_insn_transform): Record output operands already processed.
13360 2016-07-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13363 PR tree-optimization/70923
13364 * tree-vect-patterns.c: Include mult-synthesis.h.
13365 (target_supports_mult_synth_alg): New function.
13366 (synth_lshift_by_additions): Likewise.
13367 (apply_binop_and_append_stmt): Likewise.
13368 (vect_synth_mult_by_constant): Likewise.
13369 (target_has_vecop_for_code): Likewise.
13370 (vect_recog_mult_pattern): Use above functions to synthesize vector
13371 multiplication by integer constants.
13373 2016-07-14 Alan Modra <amodra@gmail.com>
13375 * config/rs6000/altivec.md (altivec_mov<mode>): Disparage
13376 gpr alternatives. Correct '*' placement on Y,r alternative.
13377 Add '*' on operand 1 of r,r alternative.
13379 2016-07-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13381 * expmed.c (mult_variant, choose_mult_variant): Move declaration to...
13382 * expmed.h: ... Here.
13384 2016-07-14 Jan Hubicka <hubicka@ucw.cz>
13386 * gimple.h (stmt_can_terminate_bb_p): New function.
13387 * tree-cfg.c (need_fake_edge_p): Rename to ...
13388 (stmt_can_terminate_bb_p): ... this; return true if stmt can
13389 throw external; handle const and pure calls.
13390 * tree-ssa-loop-niter.c (loop_only_exit_p): Use it.
13392 2016-07-14 Richard Biener <rguenther@suse.de>
13394 PR tree-optimization/71866
13395 * tree-ssa-pre.c (get_constant_for_value_id): Remove.
13396 (do_hoist_insertion): Avoid endless recursion when we
13397 didn't insert anything because we managed to simplify
13398 things down to a constant or SSA name.
13399 (fully_constant_expression): Re-write in terms of ...
13400 * tree-ssa-sccvn.h (vn_nary_simplify): ... this. Declare.
13401 * tree-ssa-sccvn.c (vn_nary_simplify): New wrapper around
13402 vn_nary_build_or_lookup_1.
13403 (vn_nary_build_or_lookup_1): Added flag and renamed from ...
13404 (vn_nary_build_or_lookup): ... this which now wraps it.
13406 2016-07-14 Alan Modra <amodra@gmail.com>
13409 * config/rs6000/rs6000.c (rs6000_option_override_internal): Deal
13410 with p9_vector override before power9-dform override.
13412 2016-07-13 Andi Kleen <ak@linux.intel.com>
13414 * value-prof.c (gimple_value_profile_transformations): Don't run
13415 when auto_profile is on.
13417 2016-07-13 Andi Kleen <ak@linux.intel.com>
13419 * auto-profile.c (update_inlined_ind_target,
13420 afdo_indirect_call): Print information to dump file.
13422 2016-07-13 Andrew Burgess <andrew.burgess@embecosm.com>
13424 * genrecog.c (special_predicate_operand_p): New function.
13425 (predicate_name): Move function.
13426 (validate_pattern): Don't warn about missing mode for all
13427 define_special_predicate predicates.
13429 2016-07-13 Bin Cheng <bin.cheng@arm.com>
13431 * tree-vect-data-refs.c (vect_no_alias_p): New function.
13432 (vect_prune_runtime_alias_test_list): Call vect_no_alias_p to
13433 resolve alias checks which are known at compilation time.
13434 Truncate vector LOOP_VINFO_MAY_ALIAS_DDRS(loop_vinfo) if all
13435 alias checks are resolved. Move dump info for too many runtime
13436 alias checks to here...
13437 * tree-vect-loop.c (vect_analyze_loop_2): ...From here.
13439 2016-07-13 Richard Biener <rguenther@suse.de>
13441 PR tree-optimization/24574
13442 * tree-ssa-phiopt.c (absorbing_element_p): Pass in argument
13443 position and add shift, rotate, divison and modulo support
13445 (value_replacement): Pass in argument position to absorbing_element_p.
13447 2016-07-13 Ilya Enkovich <ilya.enkovich@intel.com>
13450 * ipa-inline-transform.c (inline_call): Support
13451 instrumented thunks.
13453 2016-07-13 Thomas Preud'homme <thomas.preudhomme@arm.com>
13455 * config/arm/arm.h (TARGET_HAVE_CBZ): Define.
13456 (TARGET_IDIV): Set for all Thumb targets provided they have hardware
13458 * config/arm/arm.md (divsi3): New unpredicable alternative for ARMv8-M
13459 Baseline. Make initial alternative TARGET_32BIT only.
13460 (udivsi3): Likewise.
13461 * config/arm/thumb1.md (thumb1_cbz): New define_insn.
13462 * doc/sourcebuild.texi (arm_thumb1_cbz_ok): Document new effective
13465 2016-07-13 Thomas Preud'homme <thomas.preudhomme@arm.com>
13467 * config/arm/arm.h (TARGET_HAVE_MOVT): Include ARMv8-M as having MOVT.
13468 * config/arm/arm.c (arm_arch_name): (const_ok_for_op): Check MOVT/MOVW
13469 availability with TARGET_HAVE_MOVT.
13470 (thumb_legitimate_constant_p): Strip the high part of a label_ref.
13471 (thumb1_rtx_costs): Also return 0 if setting a half word constant and
13472 MOVW is available and replace (unsigned HOST_WIDE_INT) INTVAL by
13474 (thumb1_size_rtx_costs): Make set of half word constant also cost 1
13475 extra instruction if MOVW is available. Use a cost variable
13476 incremented by COSTS_N_INSNS (1) when the condition match rather than
13477 returning an arithmetic expression based on COSTS_N_INSNS. Make
13478 constant with bottom half word zero cost 2 instruction if MOVW is
13480 * config/arm/arm.md (define_attr "arch"): Add v8mb.
13481 (define_attr "arch_enabled"): Set to yes if arch value is v8mb and
13482 target is ARMv8-M Baseline.
13483 (arm_movt): New unpredicable alternative for ARMv8-M Baseline.
13484 (arm_movtas_ze): Likewise.
13485 * config/arm/thumb1.md (thumb1_movdi_insn): Add ARMv8-M Baseline only
13486 alternative for constants satisfying j constraint.
13487 (thumb1_movsi_insn): Likewise.
13488 (movsi splitter for K alternative): Tighten condition to not trigger
13489 if movt is available and j constraint is satisfied.
13490 (Pe immediate splitter): Likewise.
13491 (thumb1_movhi_insn): Add ARMv8-M Baseline only alternative for
13492 constant fitting in an halfword to use MOVW.
13493 * doc/sourcebuild.texi (arm_thumb1_movt_ok): Document new ARM
13496 2016-07-13 Richard Biener <rguenther@suse.de>
13498 PR middle-end/71104
13499 * gimplify.c (gimplify_modify_expr): Gimplify the RHS before
13500 gimplifying the LHS. Make sure to gimplify a returning twice
13501 call LHS without using SSA names.
13503 2016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
13505 * tree-data-ref.c (find_data_references_in_stmt): Remove
13506 unnecessary call to vec::release.
13507 (graphite_find_data_references_in_stmt): Likewise.
13508 * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p): Likewise.
13509 * tree-vect-stmts.c (vectorizable_condition): Likewise.
13511 2016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
13513 * cfgexpand.c (expand_used_vars): Make the type of a local
13515 * genmatch.c (lower_for): Likewise.
13516 * haifa-sched.c (haifa_sched_init): Likewise.
13517 (add_to_speculative_block): Likewise.
13518 (create_check_block_twin): Likewise.
13519 * predict.c (handle_missing_profiles): Likewise.
13520 * tree-data-ref.c (loop_nest_has_data_refs): Likewise.
13521 * tree-diagnostic.c (maybe_unwind_expanded_macro_loc): Likewise.
13522 * tree-ssa-loop-niter.c (discover_iteration_bound_by_body_walk):
13524 (maybe_lower_iteration_bound): Likewise.
13525 * tree-ssa-sccvn.c (DFS): Likewise.
13526 * tree-stdarg.c (reachable_at_most_once): Likewise.
13527 * tree-vect-stmts.c (vectorizable_conversion): Likewise.
13528 (vectorizable_store): Likewise.
13530 2016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
13532 * tree-ssa-sccvn.c (sccvn_dom_walker::~sccvn_dom_walker): remove.
13533 (sccvn_dom_walker): make cond_stack an auto_vec.
13535 2016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
13537 * ree.c (struct ext_state): Make type of members auto_vec.
13538 (find_and_remove_re): Adjust.
13540 2016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
13542 * cfgexpand.c (struct stack_vars_data): Make type of fields
13544 (expand_used_vars): Adjust.
13546 2016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
13548 * ipa.c (record_cdtor_fn): Adjust.
13549 (build_cdtor_fns): Likewise.
13550 (ipa_cdtor_merge): Make static_ctors and static_dtors local
13553 2016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
13555 * genextract.c (struct accum_extract): Add constructor and make
13557 (gen_insn): Adjust.
13559 2016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
13561 * tree.c (struct free_lang_data_d): Add constructor and change
13562 types of members to ones that automatically manage resources.
13563 (fld_worklist_push): Adjust.
13564 (find_decls_types): Likewise.
13565 (find_decls_types_in_eh_region): Likewise.
13566 (free_lang_data_in_cgraph): Stop manually creating and
13567 destroying members of free_lang_data_d.
13569 2016-07-13 Uros Bizjak <ubizjak@gmail.com>
13571 PR rtl-optimization/68961
13572 * config/i386/sse.md (movsd/movhpd to movupd peephole2s): Add new
13573 peephole variant. Use sse_reg_operand predicates.
13575 2016-07-12 Uros Bizjak <ubizjak@gmail.com>
13577 * config/i386/predicates.md (x86_64_immediate_operand)
13578 <case CONST_INT>: Remove unneeded truncation to DImode.
13579 <case CONST>: Ditto.
13580 (x86_64_zext_immediate_operand) <case CONST>: Ditto.
13582 2016-07-12 Michael Meissner <meissner@linux.vnet.ibm.com>
13585 * config/rs6000/altivec.md (altivec_vperm_<mode>_internal):
13586 The xxperm and xxpermr instructions require that the 2nd input
13587 operand overlap with the output operand, and not the 1st.
13588 (altivec_vperm_v8hiv16qi): Likewise.
13589 (altivec_vperm_<mode>_uns_internal): Likewise.
13590 (altivec_vpermr_<mode>_internal): Likewise.
13591 (vperm_v8hiv4si): Likewise.
13592 (vperm_v16qiv8hi): Likewise.
13594 2016-07-12 Nathan Sidwell <nathan@acm.org>
13596 * config/arm/arm.c (arm_option_override): Set MASK_SINGLE_PIC_BASE
13597 when -mno-pic-data-is-text-relative is in effect, by default.
13598 * doc/invoke.texi (mpic-data-is-text-relative): Document new
13599 behavior and clarify.
13601 2016-07-12 Martin Liska <mliska@suse.cz>
13603 * params.def: Add avg-loop niter.
13604 * tree-ssa-loop-ivopts.c (avg_loop_niter): Use the param.
13605 * cfgloopanal.c (expected_loop_iterations_unbounded): Likewise.
13606 * doc/invoke.texi: Document the new parameter.
13608 2016-07-12 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13610 PR middle-end/71700
13611 * expr.c (store_constructor): Mask sign-extended bits when widening
13612 sub-word constructor element at the start of a word.
13614 2016-07-12 Martin Liska <mliska@suse.cz>
13616 * Makefile.in: Append rule for params-options.h.
13617 * params-options.h: New file.
13619 2016-07-12 Martin Liska <mliska@suse.cz>
13621 * ira-build.c (mark_loops_for_removal): Properly iterate
13624 2016-07-12 Steven Bosscher <steven@gcc.gnu.org>
13625 Richard Biener <rguenther@suse.de>
13627 PR tree-optimization/23286
13628 PR tree-optimization/70159
13629 * doc/invoke.texi: Document -fcode-hoisting.
13630 * common.opt (fcode-hoisting): New flag.
13631 * opts.c (default_options_table): Enable -fcode-hoisting at -O2+.
13632 * tree-ssa-pre.c (pre_stats): Add hoist_insert.
13633 (do_regular_insertion): Rename to ...
13634 (do_pre_regular_insertion): ... this and amend general comments
13635 on insertion strathegy.
13636 (do_partial_partial_insertion): Rename to ...
13637 (do_pre_partial_partial_insertion): ... this.
13638 (do_hoist_insertion): New function.
13639 (insert_aux): Take flags on whether to do PRE and/or hoist insertion
13640 and call do_hoist_insertion properly.
13642 (pass_pre::gate): Enable also if -fcode-hoisting is enabled.
13643 (pass_pre::execute): Register hoist_insert stats.
13645 2016-07-12 Jakub Jelinek <jakub@redhat.com>
13647 PR middle-end/71716
13648 * gimple-fold.c (optimize_atomic_compare_exchange_p): Return false
13649 for SCALAR_FLOAT_TYPE_P type of expected var, or if TYPE_PRECISION
13650 is different from mode's bitsize. Small cleanup.
13652 2016-07-12 Richard Biener <rguenther@suse.de>
13654 PR rtl-optimization/68961
13655 * fwprop.c (propagate_rtx): Allow SUBREGs of VEC_CONCAT and CONCAT
13656 to simplify to a non-constant.
13658 2016-07-11 Jakub Jelinek <jakub@redhat.com>
13660 PR middle-end/71758
13661 * omp-low.c (expand_omp_target): Gimplify device.
13663 PR tree-optimization/71823
13664 * tree-vect-stmts.c (vectorizable_operation): Use vect_get_vec_defs
13665 to get vec_oprnds2 from op2.
13667 2016-07-11 Uros Bizjak <ubizjak@gmail.com>
13669 * config/i386/predicates.md (x86_64_immediate_operand) <case CONST>:
13670 Hoist common subexpressions.
13671 (x86_64_zext_immediate_operand) <case CONST>: Ditto.
13673 2016-07-11 Pat Haugen <pthaugen@us.ibm.com>
13676 * config/rs6000/rs6000.md (stfiwx): Change constraint to 'wu' to
13677 prevent generation of 'stxsiwx' on pre Power8 hardware.
13679 2016-07-11 David Malcolm <dmalcolm@redhat.com>
13681 * input.c: Include cpplib.h.
13682 (selftest::temp_source_file): New class.
13683 (selftest::temp_source_file::temp_source_file): New ctor.
13684 (selftest::temp_source_file::~temp_source_file): New dtor.
13685 (selftest::should_have_column_data_p): New function.
13686 (selftest::test_should_have_column_data_p): New function.
13687 (selftest::temp_line_table): New class.
13688 (selftest::temp_line_table::temp_line_table): New ctor.
13689 (selftest::temp_line_table::~temp_line_table): New dtor.
13690 (selftest::test_accessing_ordinary_linemaps): Add case_ param; use
13691 it to create a temp_line_table.
13692 (selftest::assert_loceq): Only verify LOCATION_COLUMN for
13693 locations that are known to have column data.
13694 (selftest::line_table_case): New struct.
13695 (selftest::test_reading_source_line): Move tempfile handling
13696 to class temp_source_file.
13697 (ASSERT_TOKEN_AS_TEXT_EQ): New macro.
13698 (selftest::assert_token_loc_eq): New function.
13699 (ASSERT_TOKEN_LOC_EQ): New macro.
13700 (selftest::test_lexer): New function.
13701 (selftest::boundary_locations): New array.
13702 (selftest::input_c_tests): Call test_should_have_column_data_p.
13703 Loop over a test matrix of interesting values of location and
13704 default_range_bits, calling test_lexer on each case in the matrix.
13705 Move call to test_accessing_ordinary_linemaps into the matrix.
13706 * selftest.h (ASSERT_EQ): Reimplement in terms of...
13707 (ASSERT_EQ_AT): New macro.
13709 2016-07-11 H.J. Lu <hongjiu.lu@intel.com>
13712 * config/i386/i386.c (timode_scalar_chain::fix_debug_reg_uses):
13713 Don't convert TImode in debug insn.
13715 2016-07-11 Bernd Edlinger <bernd.edlinger@hotmail.de>
13717 Convert TYPE_ALIGN_OK to a TYPE_LANG_FLAG.
13718 * tree-core.h (tree_base::nothrow_flag): Adjust comment.
13719 (tree_type_common::lang_flag_7): New.
13720 (tree_type_common::spare): Reduce size.
13721 * tree.h (TYPE_ALIGN_OK): Remove.
13722 (TYPE_LANG_FLAG_7): New.
13723 (get_inner_reference): Adjust header.
13724 * print-tree.c (print_node): Adjust.
13725 * expr.c (get_inner_reference): Remove parameter keep_aligning.
13726 (get_bit_range, expand_assignment, expand_expr_addr_expr_1): Adjust
13727 calls to get_inner_reference.
13728 (expand_expr_real_1): Adjust call to get_inner_reference. Remove
13729 handling of TYPE_ALIGN_OK.
13730 * builtins.c (get_object_alignment_2): Adjust call to
13731 get_inner_reference. Remove handling of VIEW_CONVERT_EXPR.
13732 * emit-rtl.c (set_mem_attributes_minus_bitpos): Remove handling of
13734 * asan.c (instrument_derefs): Adjust calls to get_inner_reference.
13735 * cfgexpand.c (expand_debug_expr): Likewise.
13736 * dbxout.c (dbxout_expand_expr): Likewise.
13737 * dwarf2out.c (loc_list_for_address_of_addr_expr_of_indirect_ref,
13738 loc_list_from_tree, fortran_common): Likewise.
13739 * fold-const.c (optimize_bit_field_compare,
13740 decode_field_reference, fold_unary_loc, fold_comparison,
13741 split_address_to_core_and_offset): Likewise.
13742 * gimple-laddress.c (execute): Likewise.
13743 * gimple-ssa-strength-reduction.c (slsr_process_ref): Likewise.
13744 * gimplify.c (gimplify_scan_omp_clauses): Likewise.
13745 * hsa-gen.c (gen_hsa_addr): Likewise.
13746 * simplifx-rtx.c (delegitimize_mem_from_attrs): Likewise.
13747 * tsan.c (instrument_expr): Likewise.
13748 * ubsan.c (instrument_bool_enum_load, instrument_object_size): Likewise.
13749 * tree.c (verify_type_variant): Remove handling of TYPE_ALIGN_OK.
13750 * tree-affine.c (tree_to_aff_combination,
13751 get_inner_reference_aff): Adjust calls to get_inner_reference.
13752 * tree-data-ref.c (split_constant_offset_1,
13753 dr_analyze_innermost): Likewise.
13754 * tree-scalar-evolution.c (interpret_rhs_expr): Likewise.
13755 * tree-sra.c (ipa_sra_check_caller): Likewise.
13756 * tree-ssa-loop-ivopts.c (split_address_cost): Likewise.
13757 * tree-ssa-math-opts.c (find_bswap_or_nop_load,
13758 bswap_replace): Likewise.
13759 * tree-vect-data-refs.c (vect_check_gather,
13760 vect_analyze_data_refs): Likewise.
13761 * config/mips/mips.c (r10k_safe_mem_expr_p): Likewise.
13762 * config/pa/pa.c (pa_emit_move_sequence): Remove handling of
13765 2016-07-11 David Malcolm <dmalcolm@redhat.com>
13767 * Makefile.in (selftest-valgrind): New phony target.
13768 * function-tests.c (selftest::build_cfg): Delete pass instances
13769 created by the test.
13770 (selftest::convert_to_ssa): Likewise.
13771 (selftest::test_expansion_to_rtl): Likewise.
13772 * tree-cfg.c (selftest::test_linear_chain): Release dominator
13774 (selftest::test_diamond): Likewise.
13776 2016-07-11 Richard Biener <rguenther@suse.de>
13778 PR tree-optimization/71816
13779 * tree-ssa-pre.c (compute_avail): Adjust alignment of ref rather
13780 than replacing all of its operands.
13782 2016-07-11 Alan Modra <amodra@gmail.com>
13784 * config/rs6000/rs6000.md (UNSPEC_DOLOOP): New unspec.
13785 (ctr<mode>): Add unspec.
13786 (ctr<mode>_internal*): Likewise.
13788 2016-07-08 James Bowman <james.bowman@ftdichip.com>
13790 * config/ft32/ft32.c (ft32_elf_encode_section_info): New function.
13791 * config/ft32/ft32.h (ASM_OUTPUT_SYMBOL_REF): New function.
13793 2016-07-08 Vladimir Makarov <vmakarov@redhat.com>
13795 PR rtl-optimization/71621
13796 * lra-constraints.c (process_alt_operands): Check combination of
13797 reg class and mode.
13799 2016-07-08 Jason Merrill <jason@redhat.com>
13800 Richard Biener <rguenther@suse.de>
13802 P0145: Refining Expression Order for C++.
13803 * gimplify.c (initial_rhs_predicate_for): New.
13804 (gimplfy_modify_expr): Gimplify RHS before LHS.
13806 2016-07-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
13809 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
13810 Allow standard error handling to take over when a wrong number
13811 of arguments is presented to __builtin_vec_ld () or
13812 __builtin_vec_st ().
13814 2016-07-08 Jiong Wang <jiong.wang@arm.com>
13816 * config/aarch64/aarch64-simd-builtins.def (smax): Remove float
13821 * config/aarch64/arm_neon.h (vmaxnm_f32): Use
13822 __builtin_aarch64_fmaxv2sf.
13823 (vmaxnmq_f32): Likewise.
13824 (vmaxnmq_f64): Likewise.
13825 (vminnm_f32): Likewise.
13826 (vminnmq_f32): Likewise.
13827 (vminnmq_f64): Likewise.
13829 2016-07-08 Michael Meissner <meissner@linux.vnet.ibm.com>
13832 * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Do not
13833 enable -mfloat128-hardware by default.
13834 (ISA_3_0_MASKS_IEEE): New macro to give all of the VSX options
13835 that IEEE 128-bit hardware support needs.
13836 * config/rs6000/rs6000.c (rs6000_option_override_internal): If
13837 -mcpu=power9 -mfloat128, enable -mfloat128-hardware by default.
13838 Use ISA_3_0_MASKS_IEEE as the set of options that IEEE 128-bit
13839 floating point requires.
13840 * doc/invoke.texi (RS/6000 and PowerPC Options): Document
13841 -mfloat128 and -mfloat128-hardware changes.
13843 2016-07-08 Alan Hayward <alan.hayward@arm.com>
13845 PR tree-optimization/71667
13846 * tree-vect-loop.c (vectorizable_live_operation): ignore DEBUG stmts
13848 2016-07-08 Martin Liska <mliska@suse.cz>
13850 PR middle-end/71606
13851 * fold-const.c (fold_convertible_p): As COMPLEX_TYPE
13852 folding produces SAVE_EXPRs, thus return false for the type.
13854 2016-07-07 Martin Liska <mliska@suse.cz>
13856 * file-find.c (remove_prefix): New function.
13857 * file-find.h (remove_prefix): Declare the function.
13858 * gcc-ar.c (main): Skip a folder of the wrapper if
13859 a wrapped binary would point to the same file.
13861 2016-07-07 Jan Hubicka <jh@suse.cz>
13863 * tree-scalar-evolution.c (iv_can_overflow_p): export.
13864 * tree-scalar-evolution.h (iv_can_overflow_p): Declare.
13865 * tree-ssa-loop-ivopts.c (alloc_iv): Use it.
13867 2016-07-07 Ilya Enkovich <ilya.enkovich@intel.com>
13870 * ipa-inline-analysis.c (compute_inline_parameters): Set
13871 local.can_change_signature to false for intrumentation
13874 2016-07-07 Thomas Preud'homme <thomas.preudhomme@arm.com>
13876 * config/arm/arm.h (TARGET_USE_MOVT): Check MOVT/MOVW availability
13877 with TARGET_HAVE_MOVT.
13878 (TARGET_HAVE_MOVT): Define.
13879 * config/arm/arm.c (const_ok_for_op): Check MOVT/MOVW
13880 availability with TARGET_HAVE_MOVT.
13881 * config/arm/arm.md (arm_movt): Use TARGET_HAVE_MOVT to check MOVT
13883 (addsi splitter): Use TARGET_THUMB && TARGET_HAVE_MOVT rather than
13885 (symbol_refs movsi splitter): Remove TARGET_32BIT check.
13886 (arm_movtas_ze): Use TARGET_HAVE_MOVT to check MOVT availability.
13887 * config/arm/constraints.md (define_constraint "j"): Use
13888 TARGET_HAVE_MOVT to check MOVT availability.
13890 2016-07-07 Thomas Preud'homme <thomas.preudhomme@arm.com>
13892 * config/arm/arm-protos.h: Reindent FL_FOR_* macro definitions.
13894 2016-07-07 Thomas Preud'homme <thomas.preudhomme@arm.com>
13896 * config/arm/arm-arches.def (armv8-m.base): Define new architecture.
13897 (armv8-m.main): Likewise.
13898 (armv8-m.main+dsp): Likewise.
13899 * config/arm/arm-protos.h (FL_FOR_ARCH8M_BASE): Define.
13900 (FL_FOR_ARCH8M_MAIN): Likewise.
13901 * config/arm/arm-tables.opt: Regenerate.
13902 * config/arm/bpabi.h: Add armv8-m.base, armv8-m.main and
13903 armv8-m.main+dsp to BE8_LINK_SPEC.
13904 * config/arm/arm.h (TARGET_HAVE_LDACQ): Exclude ARMv8-M.
13905 (enum base_architecture): Add BASE_ARCH_8M_BASE and BASE_ARCH_8M_MAIN.
13906 * config/arm/arm.c (arm_arch_name): Increase size to work with ARMv8-M
13907 Baseline and Mainline.
13908 (arm_option_override_internal): Also disable arm_restrict_it when
13909 !arm_arch_notm. Update comment for -munaligned-access to also cover
13911 (arm_file_start): Increase buffer size for printing architecture name.
13912 * doc/invoke.texi: Document architectures armv8-m.base, armv8-m.main
13913 and armv8-m.main+dsp.
13914 (mno-unaligned-access): Clarify that this is disabled by default for
13915 ARMv8-M Baseline architectures as well.
13917 2016-07-07 Thomas Preud'homme <thomas.preudhomme@arm.com>
13919 * config/arm/elf.h: Use __ARM_ARCH_ISA_THUMB and __ARM_ARCH_ISA_ARM to
13920 decide whether to prevent some libgcc routines being included for some
13921 multilibs rather than __ARM_ARCH_6M__ and add comment to indicate the
13922 link between this condition and the one in
13923 libgcc/config/arm/lib1func.S.
13925 2016-07-07 Richard Biener <rguenther@suse.de>
13927 * tree-ssa-pre.c: Include alias.h.
13928 (compute_avail): If we have multiple VN_REFERENCEs with the
13929 same hashtable entry adjust that to make it a valid replacement
13930 for all of them with respect to alignment and aliasing
13931 when doing insertion.
13932 * tree-ssa-sccvn.h (vn_reference_operands_for_lookup): Declare.
13933 * tree-ssa-sccvn.c (vn_reference_operands_for_lookup): New function.
13935 2016-07-06 Segher Boessenkool <segher@kernel.crashing.org>
13939 * config/rs6000/rs6000.md (*ctr<mode>_internal1, *ctr<mode>_internal2,
13940 *ctr<mode>_internal5, *ctr<mode>_internal6): Add *wi to the output
13943 2016-07-06 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
13945 * var-tracking.c (struct adjust_mem_data): Make side_effects a vector.
13946 (adjust_mems): Adjust.
13947 (adjust_insn): Likewise.
13948 (prepare_call_arguments): Likewise.
13950 2016-07-06 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
13952 * gcse.c (struct ls_expr): Make stores field a vector.
13953 (ldst_entry): Adjust.
13954 (free_ldst_entry): Likewise.
13955 (print_ldst_list): Likewise.
13956 (compute_ld_motion_mems): Likewise.
13957 (update_ld_motion_stores): Likewise.
13959 2016-07-06 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
13961 * gcse.c (struct ls_expr): Remove loads field.
13962 (ldst_entry): Adjust.
13963 (free_ldst_entry): Likewise.
13964 (print_ldst_list): Likewise.
13965 (compute_ld_motion_mems): Likewise.
13967 2016-07-06 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
13969 * store-motion.c (struct st_expr): Make antic_stores a vector.
13970 (st_expr_entry): Adjust.
13971 (free_st_expr_entry): Likewise.
13972 (print_store_motion_mems): Likewise.
13973 (find_moveable_store): Likewise.
13974 (compute_store_table): Likewise.
13975 (remove_reachable_equiv_notes): Likewise.
13976 (replace_store_insn): Likewise.
13977 (build_store_vectors): Likewise.
13979 2016-07-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13981 * config/arm/driver-arm.c (arm_cpu_table): Add entries for cortex-a32,
13982 cortex-a35, cortex-a53, cortex-a57, cortex-a72, cortex-a73.
13984 2016-07-06 Yuri Rumyantsev <ysrumyan@gmail.com>
13986 PR tree-optimization/71518
13987 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Adjust
13988 misalign also for outer loops with negative step.
13990 2016-07-06 Wilco Dijkstra <wdijkstr@arm.com>
13992 * config/arm/cortex-a53.md: Use final_presence_set for in-order.
13993 (cortex_a53_shift): Add mov_shift.
13994 (cortex_a53_shift_reg): Add new reservation for register shifts.
13995 (cortex_a53_alu): Remove bfm.
13996 (cortex_a53_alu_shift): Add bfm, remove mov_shift.
13997 (cortex_a53_alu_extr): Add new reservation for EXTR.
13998 (bypasses): Improve bypass modelling.
14000 2016-07-06 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
14003 * config/avr/avr.c (avr_asm_select_section): Strip off
14004 SECTION_DECLARED from flags when calling get_section.
14006 2016-07-06 Richard Sandiford <richard.sandiford@arm.com>
14008 * tree-vectorizer.h (vect_memory_access_type): Add
14009 VMAT_INVARIANT, VMAT_CONTIGUOUS_DOWN and VMAT_CONTIGUOUS_REVERSED.
14010 * tree-vect-stmts.c (compare_step_with_zero): New function.
14011 (perm_mask_for_reverse): Move further up file.
14012 (get_group_load_store_type): Stick to VMAT_ELEMENTWISE if the
14014 (get_negative_load_store_type): New function.
14015 (get_load_store_type): Call it. Add an ncopies argument.
14016 (vectorizable_mask_load_store): Update call accordingly and
14017 remove tests for negative steps.
14018 (vectorizable_store, vectorizable_load): Likewise. Handle new
14019 memory_access_types.
14021 2016-07-06 Richard Sandiford <richard.sandiford@arm.com>
14023 * tree-vectorizer.h (vect_memory_access_type): New enum.
14024 (_stmt_vec_info): Add a memory_access_type field.
14025 (STMT_VINFO_MEMORY_ACCESS_TYPE): New macro.
14026 (vect_model_store_cost): Take an access type instead of a boolean.
14027 (vect_model_load_cost): Likewise.
14028 * tree-vect-slp.c (vect_analyze_slp_cost_1): Update calls to
14029 vect_model_store_cost and vect_model_load_cost.
14030 * tree-vect-stmts.c (vec_load_store_type): New enum.
14031 (vect_model_store_cost): Take an access type instead of a
14032 store_lanes_p boolean. Simplify tests.
14033 (vect_model_load_cost): Likewise, but for load_lanes_p.
14034 (get_group_load_store_type, get_load_store_type): New functions.
14035 (vectorizable_store): Use get_load_store_type. Record the access
14036 type in STMT_VINFO_MEMORY_ACCESS_TYPE.
14037 (vectorizable_load): Likewise.
14038 (vectorizable_mask_load_store): Likewise. Replace is_store
14039 variable with vls_type.
14041 2016-07-06 Richard Sandiford <richard.sandiford@arm.com>
14043 * tree-vectorizer.h (vect_grouped_load_supported): Add a
14044 single_element_p parameter.
14045 * tree-vect-data-refs.c (vect_grouped_load_supported): Likewise.
14046 Check the PR65518 case here rather than in vectorizable_load.
14047 * tree-vect-loop.c (vect_analyze_loop_2): Update call accordignly.
14048 * tree-vect-stmts.c (vectorizable_load): Likewise.
14050 2016-07-06 Richard Sandiford <richard.sandiford@arm.com>
14052 * tree-vectorizer.h (gather_scatter_info): New structure.
14053 (vect_check_gather_scatter): Return a bool rather than a decl.
14054 Replace return-by-pointer arguments with a single
14055 gather_scatter_info *.
14056 * tree-vect-data-refs.c (vect_check_gather_scatter): Likewise.
14057 (vect_analyze_data_refs): Update call accordingly.
14058 * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Likewise.
14059 (vectorizable_mask_load_store): Likewise. Also record the
14060 offset dt and vectype in the gather_scatter_info.
14061 (vectorizable_store): Likewise.
14062 (vectorizable_load): Likewise.
14064 2016-07-06 Richard Sandiford <richard.sandiford@arm.com>
14066 * tree-vect-stmts.c (vect_model_store_cost): For non-SLP
14067 strided groups, use the cost of N scalar accesses instead
14068 of ncopies vector accesses.
14069 (vect_model_load_cost): Likewise.
14071 2016-07-06 Richard Sandiford <richard.sandiford@arm.com>
14073 * tree-vect-stmts.c (vect_cost_group_size): Delete.
14074 (vect_model_store_cost): Avoid calling it. Use first_stmt_p
14075 variable to indicate when once-per-group costs are being used.
14076 (vect_model_load_cost): Likewise. Fix comment and misindented code.
14078 2016-07-06 Richard Sandiford <richard.sandiford@arm.com>
14080 * tree-vect-stmts.c (vectorizable_load): Remove unnecessary
14081 peeling-for-gaps condition.
14083 2016-07-06 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
14085 * config/s390/s390.c (s390_expand_vec_init): Force initializer
14086 element to register if it doesn't match general_operand.
14088 2016-07-05 Michael Meissner <meissner@linux.vnet.ibm.com>
14089 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
14091 * config/rs6000/rs6000-protos.h (rs6000_split_signbit): New
14093 * config/rs6000/rs6000.c (rs6000_split_signbit): New function.
14094 * config/rs6000/rs6000.md (UNSPEC_SIGNBIT): New constant.
14095 (SIGNBIT): New mode iterator.
14096 (Fsignbit): New mode attribute.
14097 (signbit<mode>2): Change operand1 to match FLOAT128 instead of
14098 IBM128; dispatch to gen_signbit{kf,tf}2_dm for __float128
14099 when direct moves are available.
14100 (signbit<mode>2_dm): New define_insn_and_split).
14101 (signbit<mode>2_dm2): New define_insn.
14103 2016-07-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14105 PR rtl-optimization/71594
14106 * ifcvt.c (noce_convert_multiple_sets): Wrap new_val or old_val
14107 into subregs of appropriate mode before trying to emit a conditional
14110 2016-07-05 Jan Hubicka <jh@suse.cz>
14112 * tree-scalar-evolution.c (iv_can_overflow_p): New function.
14113 (simple_iv): Use it.
14115 2016-07-05 Jan Hubicka <jh@suse.cz>
14117 * tree-ssa-loop-niter.c (nowrap_type_p): Use ANY_INTEGRAL_TYPE_P.
14119 2016-07-05 Jiong Wang <jiong.wang@arm.com>
14121 * lra-constraints.c (process_alt_operands): Don't add spilling cost for
14124 2016-07-05 Jan Hubicka <jh@suse.cz>
14126 * tree-scalar-evoluiton.c (simple_iv): Use nowrap_type to check if
14129 2016-07-05 Richard Biener <rguenther@suse.de>
14131 * gimple-ssa-split-paths.c (find_block_to_duplicate_for_splitting_pa):
14132 Handle empty else block.
14133 (is_feasible_trace): Likewise.
14134 (split_paths): Likewise.
14136 2016-07-05 Richard Biener <rguenther@suse.de>
14138 * tree-loop-distribution.c (distribute_loop): Fix issue with
14139 the cost model loop.
14141 2016-07-05 Christophe Lyon <christophe.lyon@linaro.org>
14143 * config/arm/neon-testgen.ml: Delete.
14144 * config/arm/neon.ml: Delete.
14146 2016-07-04 Jakub Jelinek <jakub@redhat.com>
14149 * tree.c (attribute_value_equal): Use get_attribute_name instead of
14150 directly using TREE_PURPOSE.
14152 2016-07-04 Jiong Wang <jiong.wang@arm.com>
14154 * config/aarch64/aarch64.h: Rename "ARMv8.1" to "ARMv8.1-A".
14155 * config/aarch64/aarch64_neon.h: Likewise.
14156 * config/aarch64/arm_neon.h: Likewise.
14157 * config/aarch64/atomics.md: Likewise.
14158 * config/aarch64/aarch64-simd-builtins.def: Likewise.
14159 * doc/invoke.texi: Likewise.
14161 2016-07-04 Dominik Vogt <vogt@linux.vnet.ibm.com>
14163 * config/s390/s390.md: Add "z13" cpu_facility.
14164 ("*mov<mode>cc"): Add support for z13 instructions lochi and locghi.
14165 * config/s390/predicates.md ("loc_operand"): New predicate for "load on
14166 condition" type instructions.
14168 2016-07-04 Dominik Vogt <vogt@linux.vnet.ibm.com>
14169 Jeff Law <law@redhat.com>
14171 * explow.c (allocate_dynamic_stack_space): Simplify knowing that
14172 MUST_ALIGN was always true and extra_align ist always BITS_PER_UNIT.
14174 2016-07-04 Yuri Rumyantsev <ysrumyan@gmail.com>
14176 * config/i386/i386.c (ix86_expand_vec_perm): Add handle one-operand
14177 permutation for TARGET_AVX512F.
14178 (ix86_expand_vec_one_operand_perm_avx512): New function.
14179 (expand_vec_perm_1): Invoke introduced function.
14180 * tree-vect-loop.c (vect_transform_loop): Clear-up safelen value since
14181 it may be not valid after vectorization.
14183 2016-07-04 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
14186 * config/aarch64/aarch64.c (aarch64_classify_symbol): Fix
14187 typo in comment. Only force to memory if it is a weak
14188 external reference.
14190 2016-07-04 Matthew Wahab <matthew.wahab@arm.com>
14191 Jiong Wang <jiong.wang@arm.com>
14193 * config/aarch64/aarch64-arches.def: Add "armv8.2-a".
14194 * config/aarch64/aarch64.h (AARCH64_FL_V8_2): New.
14195 (AARCH64_FL_F16): New.
14196 (AARCH64_FL_FOR_ARCH8_2): New.
14197 (AARCH64_ISA_8_2): New.
14198 (AARCH64_ISA_F16): New.
14199 (TARGET_FP_F16INST): New.
14200 (TARGET_SIMD_F16INST): New.
14201 * config/aarch64/aarch64-option-extensions.def ("fp16"): New entry.
14202 ("fp"): Disabling "fp" also disables "fp16".
14203 * config/aarch64/aarch64-c.c (arch64_update_cpp_builtins):
14204 Conditionally define __ARM_FEATURE_FP16_SCALAR_ARITHMETIC
14205 and __ARM_FEATURE_FP16_VECTOR_ARITHMETIC.
14206 * doc/invoke.texi (AArch64 Options): Document "armv8.2-a" and "fp16".
14208 2016-07-04 Jan Beulich <jbeulich@suse.com>
14210 * gcc.c (default_compilers["@c-header"]): Conditionalize "-o".
14212 2016-07-01 Michael Meissner <meissner@linux.vnet.ibm.com>
14215 * config/rs6000/vsx.md (vsx_splat_v4sf_internal): When splitting
14216 the insns, use an insn form that does not adjust the offset on
14217 little endian systems.
14219 2016-07-01 Jan Beulich <jbeulich@suse.com>
14221 * varasm.c (get_variable_section): Validate initializer in
14222 named .bss-like sections.
14224 2016-07-01 Kelvin Nilsen <kelvin@gcc.gnu.org>
14226 * config/rs6000/altivec.md (*altivec_vpermr_<mode>_internal):
14227 Exchange the order of the second and third operands in the vpermr
14228 instruction tmeplate.
14230 2016-07-01 Peter Bergner <bergner@vnet.ibm.com>
14233 * config/rs6000/rs6000.c (rs6000_secondary_reload_simple_move):
14234 Disallow TDmode values.
14236 2016-07-01 Alan Modra <amodra@gmail.com>
14238 PR rtl-optimization/71709
14239 * ira-lives.c (find_call_crossed_cheap_reg): Exit loop on arg reg
14240 being set, not referenced.
14242 2016-07-01 Yuri Rumyantsev <ysrumyan@gmail.com>
14244 PR tree-optimization/70729
14245 * tree-vectorizer.c (adjust_simduid_builtins): Nullify safelen field
14246 of loop since it can be not valid after transformation.
14248 2016-07-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14250 * config/arm/arm.c (thumb_reload_in_hi): Delete.
14251 * config/arm/arm-protos.h (thumb_reload_in_hi): Delete prototype.
14253 2016-07-01 Eric Botcazou <ebotcazou@adacore.com>
14255 * config/arm/arm.c (arm_function_ok_for_sibcall): Add another check
14258 2016-06-30 Michael Meissner <meissner@linux.vnet.ibm.com>
14261 * config/rs6000/constraints.md (wY constraint): New constraint to
14262 match the requirements for the LXSD and STXSD instructions.
14263 * config/rs6000/predicates.md (offsettable_mem_14bit_operand): New
14264 predicate to match the requirements for the LXSD and STXSD
14266 * config/rs6000/rs6000.md (mov<mode>_hardfloat32, FMOVE64 case):
14267 Use constaint wY for LXSD/STXSD instructions instead of 'o' or 'Y'
14268 to make sure that the bottom 2 bits of offset are 0, the address
14269 form is offsettable, and no updating is done in the address mode.
14270 (mov<mode>_hardfloat64, FMOVE64 case): Likewise.
14271 (movdi_internal32): Likewise
14272 (movdi_internal64): Likewise.
14274 2016-06-30 Jakub Jelinek <jakub@redhat.com>
14276 PR tree-optimization/71707
14277 * tree-ssa-strlen.c (get_stridx_plus_constant): Handle already present
14278 strinfo even for ADDR_EXPR ptr.
14280 2016-06-30 Kelvin Nilsen <kelvin@gcc.gnu.org>
14282 * config/rs6000/altivec.md (darn_32): Change the condition to
14283 TARGET_P9_MISC instead of TARGET_MODULO.
14284 (darn_raw): Replace TARGET_MODULO with TARGET_P9_MISC in the
14285 condition expression.
14286 (darn): Replace TARGET_MODULO with TARGET_P9_MISC in the
14287 condition expression.
14288 * config/rs6000/dfp.md (UNSPEC_DTSTSFI): New unspec constant.
14289 (DFP_TEST): New code iterator.
14290 (dfptstsfi_<code>_mode>): New define_expand.
14291 (*dfp_sgnfcnc_<mode>): New define_insn.
14292 * config/rs6000/rs6000-builtin.def (BU_P9_MISC_0): Move this macro
14293 definition next to BU_P9_MISC_1 definition and change the MASK
14294 value to RS6000_BTM_P9_MISC.
14295 (BU_P9_MISC_1): Change the MASK value to RS6000_BTM_P9_MISC.
14296 (BU_P9_64BIT_MISC_0): Likewise.
14297 (BU_P9_DFP_MISC_0): New macro definition.
14298 (BU_P9_DFP_MISC_1): New macro definition.
14299 (BU_P9_DFP_MISC_2): New macro definition.
14300 (BU_P9_DFP_OVERLOAD_1): New macro definition.
14301 (BU_P9_DFP_OVERLOAD_2): New macro definition.
14302 (BU_P9_DFP_OVERLOAD_3): New macro definition.
14303 (TSTSFI_LT_DD): New BU_P9_DFP_MISC_2.
14304 (TSTSFI_LT_TD): Likewise.
14305 (TSTSFI_EQ_DD): Likewise.
14306 (TSTSFI_EQ_TD): Likewise.
14307 (TSTSFI_GT_DD): Likewise.
14308 (TSTSFI_GT_TD): Likewise.
14309 (TSTSFI_OV_DD): Likewise.
14310 (TSTSFI_OV_TD): Likewise.
14311 (TSTSFI_LT): New BU_P9_DFP_OVERLOAD_2.
14312 (TSTSFI_LT_DD): Likewise.
14313 (TSTSFI_LT_TD): Likewise.
14314 (TSTSFI_EQ): Likewise.
14315 (TSTSFI_EQ_DD): Likewise.
14316 (TSTSFI_EQ_TD): Likewise.
14317 (TSTSFI_GT): Likewise.
14318 (TSTSFI_GT_DD): Likewise.
14319 (TSTSFI_GT_TD): Likewise.
14320 (TSTSFI_OV): Likewise.
14321 (TSTSFI_OV_DD): Likewise.
14322 (TSTSFI_OV_TD): Likewise.
14323 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
14324 overloaded test significance functions.
14325 * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Add
14326 OPTION_MASK_P9_MISC into the representation of this mask.
14327 (POWERPC_MASKS): Add OPTION_MASK_P9_MISC into the representation
14329 * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Set the
14330 RS6000_BTM_P9_MISC flag in the return value if TARGET_P9_MISC is
14332 (rs6000_expand_binop_builtin): Enforce that argument 0 of the exp
14333 argument is a 6-bit unsigned literal value if the icode argument
14334 represents a DFP test significance built-in call.
14335 (rs6000_invalid_builtin): Add support for the RS6000_BTM_P9_MISC
14336 flag used independently and in combination with the
14337 RS6000_BTM_64BIT flag.
14338 (rs6000_opt_masks): Add entry for power9-misc command-line option.
14339 (rs6000_builtin_mask_names): Add entry for power9-misc
14340 command-line option.
14341 * config/rs6000/rs6000.h: Redefine TARGET_P9_MISC as 0 if
14342 HAVE_AS_POWER9 is not a defined macro. Define MASK_P9_MISC and
14343 RS6000_BTM_P9_MISC macros.
14344 * config/rs6000/rs6000.opt: Add support for the -mpower9-misc
14345 option and change the description of the -mpower9-vector option to
14346 enable only vector instructions, removing its erroneously claimed
14347 support for scalar instructions.
14348 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
14349 the ISA 3.0 digital floating point test significance built-in
14352 2016-06-30 Wilco Dijkstra <wdijkstr@arm.com>
14354 * config/aarch64/aarch64.c (cortexa35_tunings):
14355 Enable AES fusion. Use cortexa57_branch_cost.
14356 (cortexa53_tunings): Use cortexa57_branch_cost.
14357 (cortexa72_tunings): Use cortexa57_branch_cost.
14358 Use AUTOPREFETCHER_WEAK.
14359 (cortexa73_tunings): Use cortexa57_branch_cost.
14361 2016-06-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14362 James Greenhalgh <james.greenhalgh@arm.com>
14364 * config/aarch64/arm_neon.h (vcopyq_lane_f32, vcopyq_lane_f64,
14365 vcopyq_lane_p8, vcopyq_lane_p16, vcopyq_lane_s8, vcopyq_lane_s16,
14366 vcopyq_lane_s32, vcopyq_lane_s64, vcopyq_lane_u8, vcopyq_lane_u16,
14367 vcopyq_lane_u32, vcopyq_lane_u64): Reimplement in C.
14368 (vcopy_lane_f32, vcopy_lane_f64, vcopy_lane_p8, vcopy_lane_p16,
14369 vcopy_lane_s8, vcopy_lane_s16, vcopy_lane_s32, vcopy_lane_s64,
14370 vcopy_lane_u8, vcopy_lane_u16, vcopy_lane_u32, vcopy_lane_u64,
14371 vcopy_laneq_f32, vcopy_laneq_f64, vcopy_laneq_p8, vcopy_laneq_p16,
14372 vcopy_laneq_s8, vcopy_laneq_s16, vcopy_laneq_s32, vcopy_laneq_s64,
14373 vcopy_laneq_u8, vcopy_laneq_u16, vcopy_laneq_u32, vcopy_laneq_u64,
14374 vcopyq_laneq_f32, vcopyq_laneq_f64, vcopyq_laneq_p8, vcopyq_laneq_p16,
14375 vcopyq_laneq_s8, vcopyq_laneq_s16, vcopyq_laneq_s32, vcopyq_laneq_s64,
14376 vcopyq_laneq_u8, vcopyq_laneq_u16, vcopyq_laneq_u32, vcopyq_laneq_u64):
14379 2016-06-30 James Greenhalgh <james.greenhalgh@arm.com>
14380 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14382 * config/aarch64/aarch64-simd.md (*aarch64_simd_vec_copy_lane<mode>):
14384 (*aarch64_simd_vec_copy_lane_<vswap_width_name><mode>): Likewise.
14386 2016-06-30 David Malcolm <dmalcolm@redhat.com>
14389 * gcc.c (driver::build_option_suggestions): Pass "option" to
14390 add_misspelling_candidates.
14391 * opts-common.c (add_misspelling_candidates): Add "option" param;
14392 use it to avoid adding negated forms for options marked with
14394 * opts.h (add_misspelling_candidates): Add "option" param.
14396 2016-06-30 Jakub Jelinek <jakub@redhat.com>
14398 PR middle-end/71693
14399 * fold-const.c (fold_binary_loc) <case RROTATE_EXPR>: Cast
14400 TREE_OPERAND (arg0, 0) and TREE_OPERAND (arg0, 1) to type
14401 first when permuting bitwise operation with rotate. Cast
14402 TREE_OPERAND (arg0, 0) to type when cancelling two rotations.
14404 2016-06-29 David Malcolm <dmalcolm@redhat.com>
14406 * opts.c (handle_param): Use find_param_fuzzy to offer suggestions
14407 for misspelled param names.
14408 * params.c: Include spellcheck.h.
14409 (find_param_fuzzy): New function.
14410 * params.h (find_param_fuzzy): New prototype.
14411 * spellcheck.c (struct edit_distance_traits<const char *>): Move to...
14412 * spellcheck.h (struct edit_distance_traits<const char *>):
14415 2016-06-29 Michael Meissner <meissner@linux.vnet.ibm.com>
14417 * config/rs6000/predicates.md (const_0_to_7_operand): New
14418 predicate, recognize 0..7.
14419 * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
14420 support for doing extracts from V16QImode, V8HImode, V4SImode
14422 * config/rs6000/vsx.md (VSX_EXTRACT_I): Mode iterator for ISA 3.0
14423 vector extract support.
14424 (VSX_EXTRACT_PREDICATE): Mode attribute to validate element number
14425 for ISA 3.0 vector extract.
14426 (VSX_EX): Constraints to use for ISA 3.0 vector extract.
14427 (vsx_extract_<mode>, VSX_EXTRACT_I): Add support for doing
14428 extracts of a constant element number from small integer vectors
14429 on 64-bit ISA 3.0 systems.
14430 (vsx_extract_<mode>_di): Likewise.
14431 * config/rs6000/rs6000.h (TARGET_VEXTRACTUB): New target macro to
14432 say when we can do ISA 3.0 vector extracts.
14433 * config/rs6000/rs6000.md (stfiwx): Allow DImode in Altivec
14434 registers, using the stxsiwx instruction.
14436 2016-06-29 Jim Wilson <jim.wilson@linaro.org>
14438 * config/aarch64/aarch64-cores.def (qdf24xx): Use qdf24xx tuning.
14439 * config/aarch64/aarch64.c (qdf24xx_addrcost_table,
14440 qdf24xx_regmove_cost, qdf24xx_tunings): New.
14441 * config/arm/aarch64-cost-tables.h (qdf24xx_extra_costs): New.
14442 * config/arm/arm-cores.def (qdf24xx): Use qdf24xx tuning.
14443 * config/arm/arm.c (arm_qdf24xx_tune): New.
14445 2016-06-29 Wilco Dijkstra <wdijkstr@arm.com>
14447 * config/aarch64/aarch64.c (cortexa53_tunings):
14448 Increase loop alignment to 8. Set function alignment to 16.
14449 (cortexa35_tunings): Likewise.
14450 (cortexa57_tunings): Increase loop alignment to 8.
14451 (cortexa72_tunings): Likewise.
14452 (cortexa73_tunings): Likewise.
14454 2016-06-29 Matthew Wahab <matthew.wahab@arm.com>
14456 * doc/sourcebuild.texi (Effective-Target keywords): Add entries
14457 for arm_fp16_ok and arm_fp16_hw.
14458 (Add Options): Add entries for arm_fp16, arm_fp16_ieee and
14459 arm_fp16_alternative.
14461 2016-06-29 Ilya Enkovich <ilya.enkovich@intel.com>
14463 PR tree-optimization/71655
14464 * tree-vect-stmts.c (vectorizable_comparison): Swap definition
14465 types when swapping operands.
14467 2016-06-29 Martin Liska <mliska@suse.cz>
14469 PR middle-end/71585
14470 * common.opt (flag_stack_protect): Mark the flag as optimization flag.
14471 * ipa-inline-transform.c (inline_call): Remove unnecessary call
14472 of build_optimization_node.
14474 2016-06-29 Yuri Rumyantsev <ysrumyan@gmail.com>
14476 PR tree-optimization/70729
14477 * tree-ssa-loop-im.c (ref_indep_loop_p_1): Consider memory reference as
14478 independent in loops having positive safelen value.
14479 * tree-vect-loop.c (vect_transform_loop): Clear-up safelen value since
14480 it may be not valid after vectorization.
14482 2016-06-29 Jakub Jelinek <jakub@redhat.com>
14484 PR tree-optimization/71625
14485 * tree-ssa-strlen.c (get_addr_stridx): Add PTR argument. Assume list
14486 is sorted by ascending list->offset. If PTR is non-NULL and there is
14487 previous strinfo, call get_stridx_plus_constant.
14488 (get_stridx): Pass exp as second argument to get_addr_stridx.
14489 (addr_stridxptr): Add missing list = list->next, so that there can be
14490 more than one entries in the list. Bump limit from 16 to 32. Ensure
14491 the list is sorted by ascending list->offset.
14492 (get_stridx_plus_constant): Adjust so that it can be also called with
14493 ADDR_EXPR instead of SSA_NAME as PTR.
14494 (handle_char_store): Pass NULL_TREE as second argument to
14497 2016-06-29 Richard Biener <rguenther@suse.de>
14499 PR rtl-optimization/68961
14500 * simplify-rtx.c (simplify_subreg): Handle VEC_CONCAT like CONCAT.
14502 2016-06-29 Richard Biener <rguenther@suse.de>
14504 PR middle-end/71002
14505 * alias.c (component_uses_parent_alias_set_from): Handle
14506 type punning through union accesses by using the union alias set.
14507 * gimple.c (gimple_get_alias_set): Remove union type punning case.
14509 2016-07-29 Richard Biener <rguenther@suse.de>
14511 * match.pd ((T)(T2)x -> (T)x): Remove restriction on final
14512 precision not matching mode precision.
14514 2016-06-28 John David Anglin <danglin@gcc.gnu.org>
14516 * config/pa/pa.md (call_symref_64bit_post_reload): Don't call
14517 pa_output_arg_descriptor.
14518 (call_val_symref_64bit_post_reload): Likewise.
14519 (call_val_powf_64bit_post_reload): Likewise.
14520 (sibcall_internal_symref_64bit): Likewise.
14521 (sibcall_value_internal_symref_64bit): Likewise.
14523 2016-06-28 Jakub Jelinek <jakub@redhat.com>
14525 PR middle-end/71626
14526 * config/i386/i386.c (ix86_expand_vector_move): For SUBREG of
14527 a constant, force its SUBREG_REG into memory or register instead
14530 2016-06-28 Pitchumani Sivanupandi <pitchumani.s@atmel.com>
14533 * config/avr/avr.opt (-mfract-convert-truncate): Update description.
14534 * doc/invoke.texi (AVR Options): Document it.
14536 2016-06-28 Walter Lee <walt@tilera.com>
14538 * config/tilegx/linux.h: Do not include arch/icache.h
14539 (CLEAR_INSN_CACHE): Provide inlined definition directly.
14540 * config/tilepro/linux.h: Do not include arch/icache.h
14541 (CLEAR_INSN_CACHE): Provide inlined definition directly.
14543 2016-06-28 Wilco Dijkstra <wdijkstr@arm.com>
14545 * tree-ssa-math-opts.c (find_bswap_or_nop_1): Adjust bitnumbering
14546 for big-endian BIT_FIELD_REF.
14548 2016-06-28 Pat Haugen <pthaugen@us.ibm.com>
14550 * config/rs6000/rs6000.md ('type' attribute): Add htmsimple/dfp types.
14551 ('size' attribute): Add '128'.
14553 (*mov<mode>_hardfloat32, *mov<mode>_hardfloat64, *movdi_internal32,
14554 *movdi_internal64, *movdf_update1): Set size attribute to '64'.
14555 (add<mode>3, sub<mode>3, mul<mode>3, div<mode>3, sqrt<mode>2,
14556 copysign<mode>3, neg<mode>2_hw, abs<mode>2_hw, *nabs<mode>2_hw,
14557 *fma<mode>4_hw, *fms<mode>4_hw, *nfma<mode>4_hw, *nfms<mode>4_hw,
14558 extend<SFDF:mode><IEEE128:mode>2_hw, trunc<mode>df2_hw,
14559 *xscvqp<su>wz_<mode>, *xscvqp<su>dz_<mode>, *xscv<su>dqp_<mode>,
14560 *trunc<mode>df2_odd): Set size attribute to '128'.
14561 (*cmp<mode>_hw): Change type to veccmp and set size attribute to '128'.
14562 * config/rs6000/power6.md (power6-fp): Include dfp type.
14563 * config/rs6000/power7.md (power7-fp): Likewise.
14564 * config/rs6000/power8.md (power8-fp): Likewise.
14565 * config/rs6000/power9.md: New file.
14566 * config/rs6000/t-rs6000 (MD_INCLUDES): Add power9.md.
14567 * config/rs6000/htm.md (*tabort, *tabort<wd>c, *tabort<wd>ci,
14568 *trechkpt, *treclaim, *tsr, *ttest): Change type attribute to
14570 * config/rs6000/dfp.md (extendsddd2, truncddsd2, extendddtd2,
14571 trunctddd2, adddd3, addtd3, subdd3, subtd3, muldd3, multd3, divdd3,
14572 divtd3, *cmpdd_internal1, *cmptd_internal1, floatdidd2, floatditd2,
14573 ftruncdd2, fixdddi2, ftrunctd2, fixtddi2, dfp_ddedpd_<mode>,
14574 dfp_denbcd_<mode>, dfp_dxex_<mode>, dfp_diex_<mode>, dfp_dscli_<mode>,
14575 dfp_dscri_<mode>): Change type attribute to dfp.
14576 * config/rs6000/crypto.md (crypto_vshasigma<CR_char>): Change type
14577 attribute to vecsimple.
14578 * config/rs6000/rs6000.c (power9_cost): Update costs, cache size
14579 and prefetch streams.
14580 (rs6000_option_override_internal): Remove temporary code setting
14581 tuning to power8. Don't set rs6000_sched_groups for power9.
14582 (last_scheduled_insn): Change to rtx_insn *.
14583 (divide_cnt, vec_load_pendulum): New variables.
14584 (rs6000_adjust_cost): Add Power9 to test for store->load separation.
14585 (rs6000_issue_rate): Set issue rate for Power9.
14586 (is_power9_pairable_vec_type): New.
14587 (power9_sched_reorder2): New.
14588 (rs6000_sched_reorder2): Call new function for Power9 specific
14590 (insn_must_be_first_in_group): Remove Power9.
14591 (insn_must_be_last_in_group): Likewise.
14592 (force_new_group): Likewise.
14593 (rs6000_sched_init): Fix initialization of last_scheduled_insn.
14594 Initialize divide_cnt/vec_load_pendulum.
14595 (_rs6000_sched_context, rs6000_init_sched_context,
14596 rs6000_set_sched_context): Handle context save/restore of new
14599 2016-06-28 Richard Biener <rguenther@suse.de>
14601 * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p):
14602 Properly handle DECL_BIT_FIELD_REPRESENTATIVE occuring as
14603 COMPONENT_REF operand.
14604 (nonoverlapping_component_refs_p): Likewise.
14605 * stor-layout.c (start_bitfield_representative): Mark
14606 DECL_BIT_FIELD_REPRESENTATIVE as DECL_NONADDRESSABLE_P.
14608 2016-06-28 Jakub Jelinek <jakub@redhat.com>
14610 * Makefile.in: Don't cat ../stage_current if it does not exist.
14612 * doc/extend.texi (__builtin_add_overflow_p): Clarify behavior when
14613 last argument is a bit-field.
14615 PR rtl-optimization/71673
14616 * internal-fn.c (expand_arith_overflow_result_store): Use
14617 OPTAB_LIB_WIDEN instead of OPTAB_DIRECT as last argument to
14618 expand_simple_binop.
14620 PR middle-end/66867
14621 * builtins.c (expand_ifn_atomic_compare_exchange_into_call,
14622 expand_ifn_atomic_compare_exchange): New functions.
14623 * internal-fn.c (expand_ATOMIC_COMPARE_EXCHANGE): New function.
14624 * tree.h (build_call_expr_internal_loc): Rename to ...
14625 (build_call_expr_internal_loc_array): ... this. Fix up type of
14627 * internal-fn.def (ATOMIC_COMPARE_EXCHANGE): New internal fn.
14628 * predict.c (expr_expected_value_1): Handle IMAGPART_EXPR of
14629 ATOMIC_COMPARE_EXCHANGE result.
14630 * builtins.h (expand_ifn_atomic_compare_exchange): New prototype.
14631 * gimple-fold.h (optimize_atomic_compare_exchange_p,
14632 fold_builtin_atomic_compare_exchange): New prototypes.
14633 * gimple-fold.c (optimize_atomic_compare_exchange_p,
14634 fold_builtin_atomic_compare_exchange): New functions..
14635 * tree-ssa.c (execute_update_addresses_taken): If
14636 optimize_atomic_compare_exchange_p, ignore &var in 2nd argument
14637 of call when finding addressable vars, and if such var becomes
14638 non-addressable, call fold_builtin_atomic_compare_exchange.
14640 2016-06-27 Segher Boessenkool <segher@kernel.crashing.org>
14643 * config/rs6000/rs6000.md (ashdi3_extswsli_dot): Use
14644 gen_ashdi3_extswsli_dot2 instead of gen_ashdi3_extswsli_dot.
14646 2016-06-27 Pat Haugen <pthaugen@us.ibm.com>
14648 * config/rs6000/rs6000.md ('type' attribute): Add
14649 veclogical,veccmpfx,vecexts,vecmove insn types.
14650 (*abs<mode>2_fpr, *nabs<mode>2_fpr, *neg<mode>2_fpr, *extendsfdf2_fpr,
14651 copysign<mode>3_fcpsgn, trunc<mode>df2_internal1, neg<mode>2_internal,
14652 p8_fmrgow_<mode>, pack<mode>): Change type to fpsimple.
14653 (*xxsel<mode>, copysign<mode>3_hard, neg<mode>2_hw, abs<mode>2_hw,
14654 *nabs<mode>2_hw): Change type to vecmove.
14655 (*and<mode>3_internal, *bool<mode>3_internal, *boolc<mode>3_internal,
14656 *boolcc<mode>3_internal, *eqv<mode>3_internal,
14657 *one_cmpl<mode>3_internal, *ieee_128bit_vsx_neg<mode>2_internal,
14658 *ieee_128bit_vsx_abs<mode>2_internal,
14659 *ieee_128bit_vsx_nabs<mode>2_internal, extendkftf2, trunctfkf2,
14660 *ieee128_mfvsrd_64bit, *ieee128_mfvsrd_32bit, *ieee128_mtvsrd_64bit,
14661 *ieee128_mtvsrd_32bit): Change type to veclogical.
14662 (mov<mode>_hardfloat, *mov<mode>_hardfloat32, *mov<mode>_hardfloat64,
14663 *movdi_internal32, *movdi_internal64): Update insn types.
14664 * config/rs6000/vsx.md (*vsx_le_undo_permute_<mode>,
14665 vsx_extract_<mode>): Change type to veclogical.
14666 (*vsx_xxsel<mode>, *vsx_xxsel<mode>_uns): Change type to vecmove.
14667 (vsx_sign_extend_qi_<mode>, *vsx_sign_extend_hi_<mode>,
14668 *vsx_sign_extend_si_v2di): Change type to vecexts.
14669 * config/rs6000/altivec.md (*altivec_mov<mode>, *altivec_movti): Change
14670 type to veclogical.
14671 (*altivec_eq<mode>, *altivec_gt<mode>, *altivec_gtu<mode>,
14672 *altivec_vcmpequ<VI_char>_p, *altivec_vcmpgts<VI_char>_p,
14673 *altivec_vcmpgtu<VI_char>_p): Change type to veccmpfx.
14674 (*altivec_vsel<mode>, *altivec_vsel<mode>_uns): Change type to vecmove.
14675 * config/rs6000/dfp.md (*negdd2_fpr, *absdd2_fpr, *nabsdd2_fpr,
14676 negtd2, *abstd2_fpr, *nabstd2_fpr): Change type to fpsimple.
14677 * config/rs6000/40x.md (ppc405-float): Add fpsimple.
14678 * config/rs6000/440.md (ppc440-fp): Add fpsimple.
14679 * config/rs6000/476.md (ppc476-fp): Add fpsimple.
14680 * config/rs6000/601.md (ppc601-fp): Add fpsimple.
14681 * config/rs6000/603.md (ppc603-fp): Add fpsimple.
14682 * config/rs6000/6xx.md (ppc604-fp): Add fpsimple.
14683 * config/rs6000/7xx.md (ppc750-fp): Add fpsimple.
14684 (ppc7400-vecsimple): Add veclogical, vecmove, veccmpfx.
14685 * config/rs6000/7450.md (ppc7450-fp): Add fpsimple.
14686 (ppc7450-vecsimple): Add veclogical, vecmove.
14687 (ppc7450-veccmp): Add veccmpfx.
14688 * config/rs6000/8540.md (ppc8540_simple_vector): Add veclogical,
14690 (ppc8540_vector_compare): Add veccmpfx.
14691 * config/rs6000/a2.md (ppca2-fp): Add fpsimple.
14692 * config/rs6000/cell.md (cell-fp): Add fpsimple.
14693 (cell-vecsimple): Add veclogical, vecmove.
14694 (cell-veccmp): Add veccmpfx.
14695 * config/rs6000/e300c2c3.md (ppce300c3_fp): Add fpsimple.
14696 * config/rs6000/e6500.md (e6500_vecsimple): Add veclogical, vecmove,
14698 * config/rs6000/mpc.md (mpccore-fp): Add fpsimple.
14699 * config/rs6000/power4.md (power4-fp): Add fpsimple.
14700 (power4-vecsimple): Add veclogical, vecmove.
14701 (power4-veccmp): Add veccmpfx.
14702 * config/rs6000/power5.md (power5-fp): Add fpsimple.
14703 * config/rs6000/power6.md (power6-fp): Add fpsimple.
14704 (power6-vecsimple): Add veclogical, vecmove.
14705 (power6-veccmp): Add veccmpfx.
14706 * config/rs6000/power7.md (power7-fp): Add fpsimple.
14707 (power7-vecsimple): Add veclogical, vecmove, veccmpfx.
14708 * config/rs6000/power8.md (power8-fp): Add fpsimple.
14709 (power8-vecsimple): Add veclogical, vecmove, veccmpfx.
14710 * config/rs6000/rs64.md (rs64a-fp): Add fpsimple.
14711 * config/rs6000/titan.md (titan_fp): Add fpsimple.
14712 * config/rs6000/xfpu.md (fp-default, fp-addsub-s, fp-addsub-d): Add
14714 * config/rs6000/rs6000.c (rs6000_adjust_cost): Add TYPE_FPSIMPLE.
14716 2016-06-27 Peter Bergner <bergner@vnet.ibm.com>
14719 * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Add
14720 OPTION_MASK_P9_DFORM_VECTOR.
14721 * config/rs6000/rs6000.c (rs6000_option_override_internal): Do not
14722 disable -mpower9-dform-vector when using reload.
14723 (quad_address_p): Remove 'gpr_p' argument and all associated code.
14724 New 'strict' argument. Update all callers. Add strict addressing
14726 (rs6000_legitimate_offset_address_p): Remove call to
14727 virtual_stack_registers_memory_p.
14728 (rs6000_legitimize_reload_address): Add quad address support.
14729 (rs6000_legitimate_address_p): Move call to quad_address_p above
14730 call to virtual_stack_registers_memory_p. Adjust quad_address_p args
14731 to account for new strict usage.
14732 (rs6000_output_move_128bit): Adjust quad_address_p args to account
14733 for new strict usage.
14734 * config/rs6000/predicates.md (quad_memory_operand): Likewise.
14736 2016-06-26 Uros Bizjak <ubizjak@gmail.com>
14743 * config/i386/i386.c (ix86_spill_class): Disable condition to
14744 always return NO_REGS.
14746 2016-06-26 Jan Hubicka <hubicka@ucw.cz>
14748 * predict.c: Include gimple-pretty-print.h
14749 (predicted_by_loop_heuristics_p): Check also
14750 PRED_LOOP_EXIT_WITH_RECURSION
14751 (predict_loops): Find self recursive calls and use special purpose
14752 predictors for them; dump log about decisions.
14753 (pass_profile::execute): Dump info about #of iterations.
14754 * predict.def (PRED_LOOP_EXIT_WITH_RECURSION,
14755 (PRED_LOOP_GUARD_WITH_RECURSION): New predictors.
14757 2016-06-26 John David Anglin <danglin@gcc.gnu.org>
14759 * config/pa/pa.c (pa_output_indirect_call): Rework to combine
14760 output_asm_insn calls and shorten long lines. Output .CALL
14761 argument descriptor using pa_output_arg_descriptor. Add various
14762 inline $$dyncall and other optimizations.
14763 (pa_attr_length_indirect_call): Adjust ordering and lengths.
14765 2016-06-25 Jakub Jelinek <jakub@redhat.com>
14767 PR tree-optimization/71643
14768 * tree-ssa-tail-merge.c (find_clusters_1): Ignore basic blocks with
14771 * tree-ssa-tail-merge.c (deps_ok_for_redirect_from_bb_to_bb): Don't
14772 leak a bitmap if dep_bb is NULL.
14774 PR tree-optimization/71631
14775 * tree-ssa-reassoc.c (reassociate_bb): Pass true as last argument
14776 to rewrite_expr_tree even if negate_result, move new_lhs var
14777 declaration and initialization earlier, for powi_result set afterwards
14778 new_lhs to lhs. For negate_result, use new_lhs instead of tmp
14779 if new_lhs != lhs, and don't shadow gsi var.
14781 2016-06-24 Jan Hubicka <hubicka@ucw.cz>
14783 * predict.c (predict_paths_leading_to, predict_paths_leading_to_edge):
14784 Add in_loop parameter.
14785 (predict_loops): Add loop guard heuristics.
14786 * predict.def (PRED_LOOP_GUARD): New heuristics.
14788 2016-06-24 Jan Hubicka <hubicka@ucw.cz>
14790 * predict.c: Include ipa-utils.h
14791 (tree_bb_level_prediction): Predict recursive calls.
14792 (tree_estimate_probability_bb): Skip inexpensive calls for call
14794 * predict.def (PRED_RECURSIVE_CALL): New.
14796 2016-06-24 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
14798 * config/rs6000/rs6000-builtin.def (BU_FLOAT128_2): New #define.
14799 (BU_FLOAT128_1): Likewise.
14801 (COPYSIGNQ): Likewise.
14802 (RS6000_BUILTIN_NANQ): Likewise.
14803 (RS6000_BUILTIN_NANSQ): Likewise.
14804 (RS6000_BUILTIN_INFQ): Likewise.
14805 (RS6000_BUILTIN_HUGE_VALQ): Likewise.
14806 * config/rs6000/rs6000.c (rs6000_fold_builtin): New prototype.
14807 (TARGET_FOLD_BUILTIN): New #define.
14808 (rs6000_builtin_mask_calculate): Add TARGET_FLOAT128 entry.
14809 (rs6000_invalid_builtin): Add handling for RS6000_BTM_FLOAT128.
14810 (rs6000_fold_builtin): New target hook implementation, handling
14811 folding of 128-bit NaNs and infinities.
14812 (rs6000_init_builtins): Initialize const_str_type_node; ensure all
14813 entries are filled in to avoid problems during bootstrap
14814 self-test; define builtins for 128-bit NaNs and infinities.
14815 (rs6000_opt_mask): Add entry for float128.
14816 * config/rs6000/rs6000.h (RS6000_BTM_FLOAT128): New #define.
14817 (RS6000_BTM_COMMON): Include RS6000_BTM_FLOAT128.
14818 (rs6000_builtin_type_index): Add RS6000_BTI_const_str.
14819 (const_str_type_node): New #define.
14820 * config/rs6000/rs6000.md (copysign<mode>3 for IEEE128): Convert
14821 to a define_expand that dispatches to either copysign<mode>3_soft
14822 or copysign<mode>3_hard.
14823 (copysign<mode>3_hard): Rename from copysign<mode>3.
14824 (copysign<mode>3_soft): New define_insn.
14825 * doc/extend.texi: Document new builtins.
14827 2016-06-24 Jakub Jelinek <jakub@redhat.com>
14829 * cfgloop.c (flow_loop_dump): Cast nit to uint64_t and print it using
14830 PRIu64 instead of lu.
14832 2016-06-24 Eric Botcazou <ebotcazou@adacore.com>
14835 * tree-inline.c (remap_decl): When fixing up DECL_ORIGINAL_TYPE, just
14836 copy the type name.
14838 2016-06-24 Jakub Jelinek <jakub@redhat.com>
14840 PR tree-optimization/71647
14841 * omp-low.c (lower_rec_input_clauses): Convert
14842 omp_clause_aligned_alignment (c) to size_type_node for the
14843 last argument of __builtin_assume_aligned.
14845 2016-06-24 H.J. Lu <hongjiu.lu@intel.com>
14847 * configure.ac (calling ___tls_get_addr via GOT): New
14848 assembler/linker check.
14849 (HAVE_AS_IX86_TLS_GET_ADDR_GOT): New. Defined to 1 if 32-bit
14850 assembler and linker supports calling ___tls_get_addr via GOT.
14851 Otherise, defined to 0.
14852 * config.in: Regenerated.
14853 * configure: Likewise.
14854 * config/i386/constraints.md (Yb): New constraint.
14855 * config/i386/i386.h (reg_class): Add TLS_GOTBASE_REGS.
14856 (REG_CLASS_NAMES): Likewise.
14857 (REG_CLASS_CONTENTS): Likewise.
14858 * config/i386/i386.md (*tls_global_dynamic_32_gnu): Replace
14859 the b constraint with the Yb constraint. Call ___tls_get_addr
14860 via GOT for GNU TLS with -fno-plt if HAVE_AS_IX86_TLS_GET_ADDR_GOT
14862 (*tls_local_dynamic_base_32_gnu): Likewise.
14863 (*tls_global_dynamic_64_<mode>): Call _tls_get_addr via GOT for
14864 GNU TLS with -fno-plt if HAVE_AS_IX86_TLS_GET_ADDR_GOT is 1.
14865 (*tls_local_dynamic_base_64_<mode>): Likewise.
14867 2016-06-24 Martin Liska <mliska@suse.cz>
14869 * cfgloop.c (flow_loop_dump): Dump average number of loop iterations.
14870 * cfgloop.h: Change 'struct loop' to 'const struct loop' for a
14872 * cfgloopanal.c (expected_loop_iterations_unbounded): Set a new
14873 argument to true if the expected number of iterations is
14876 2016-06-24 Uros Bizjak <ubizjak@gmail.com>
14878 * configure.ac (HAVE_AS_GOTOF_IN_DATA): Use $as_ix86_gas_32_opt to
14879 assemble for 32bit target.
14880 (HAVE_AS_IX86_TLSGDPLT): Use $as_ix86_gas_32_opt to assemble
14881 and $ld_ix86_gld_32_opt to link for 32bit target.
14882 (HAVE_AS_IX86_TLSLDMPLT): Ditto.
14883 * configure: Regenerate.
14885 2016-06-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14887 * config/arm/arm.c (int_log2): Delete definition and prototype.
14888 (shift_op): Use exact_log2 instead of int_log2.
14889 (vfp3_const_double_for_fract_bits): Likewise.
14891 2016-06-24 Jakub Jelinek <jakub@redhat.com>
14893 * internal-fn.c (expand_arith_set_overflow): New function.
14894 (expand_addsub_overflow, expand_neg_overflow, expand_mul_overflow):
14896 (expand_arith_overflow_result_store): Likewise. Handle precision
14897 smaller than mode precision.
14898 * tree-vrp.c (extract_range_basic): For imag part, handle
14899 properly signed 1-bit precision result.
14900 * doc/extend.texi (__builtin_add_overflow): Document that last
14901 argument can't be pointer to enumerated or boolean type.
14902 (__builtin_add_overflow_p): Document that last argument can't
14903 have enumerated or boolean type.
14905 2016-06-23 Michael Meissner <meissner@linux.vnet.ibm.com>
14906 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
14908 * config/rs6000/predicates.md (splat_input_operand): Rework.
14909 Don't allow constants, since the insns that use this predicate
14910 don't support constants. Constants are handled by other insns
14911 that are created via combine. During and after register
14912 allocation, only allow indexed or indirect addresses, and not
14913 general addresses. Only allow modes supported by the hardware.
14914 * config/rs6000/rs6000.c (xxsplitb_constant_p): Update usage
14915 comment. Move check for using VSPLTIS<x> to a common location,
14916 instead of doing it in two different places.
14918 2016-06-23 Jocelyn Mayer <l_indien@magic.fr>
14920 * config/i386/driver-i386.c (host_detect_local_cpu): Set
14921 PROCESSOR_PENTIUMPRO for signature_CENTAUR_ebx family >= 9.
14922 <case PROCESSOR_PENTIMUMPRO>: Pass c7 or nehemiah for
14923 signature_CENTAUR_ebx.
14925 2016-06-23 H.J. Lu <hongjiu.lu@intel.com>
14929 * configure.ac (as_ix86_tls_ldm_opt): Renamed to ...
14930 (as_ix86_gas_32_opt): This.
14931 (ld_ix86_tls_ldm_opt): Renamed to ...
14932 (ld_ix86_gld_32_opt): This.
14933 (R_386_TLS_LDM reloc): Updated.
14934 (R_386_GOT32X reloc): New assembler/linker check.
14935 (HAVE_AS_IX86_GOT32X): New. Defined to 1 if 32-bit assembler and
14936 linker support "jmp *_start@GOT" and "cmpl $0, bar@GOT". Otherise,
14938 * config.in: Regenerated.
14939 * configure: Likewise.
14940 * config/i386/i386.c (ix86_force_load_from_GOT_p): Return
14941 true if HAVE_AS_IX86_GOT32X is 1 in 32-bit mode.
14942 (ix86_legitimate_address_p): Allow UNSPEC_GOT for -fno-plt
14943 if ix86_force_load_from_GOT_p returns true.
14944 (ix86_print_operand_address_as): Also support UNSPEC_GOT if
14945 ix86_force_load_from_GOT_p returns true.
14946 (ix86_expand_move): Generate UNSPEC_GOT in 32-bit mode to load
14947 the external function address via the GOT slot.
14948 (ix86_nopic_noplt_attribute_p): Check both TARGET_64BIT and
14949 HAVE_AS_IX86_GOT32X before returning false.
14950 (ix86_output_call_insn): Generate "%!jmp/call\t*%p0@GOT" in
14951 32-bit mode if ix86_nopic_noplt_attribute_p returns true.
14953 2016-06-23 Eric Botcazou <ebotcazou@adacore.com>
14955 * tree-inline.c (remap_decl): Preserve DECL_ORIGINAL_TYPE invariant.
14957 2016-06-23 Andi Kleen <ak@linux.intel.com>
14959 * Makefile.in: Regenerate.
14960 * doc/install.texi: Document autoprofiledbootstrap.
14962 2016-06-23 Andi Kleen <ak@linux.intel.com>
14964 * config/i386/gcc-auto-profile: New file.
14966 2016-06-23 Martin Liska <mliska@suse.cz>
14968 PR middle-end/71619
14969 * predict.c (predict_loops): Revert the hunk that was removed
14972 2016-06-23 Jakub Sejdak <jakub.sejdak@phoesys.com>
14974 * config.gcc: Add support for arm*-*-phoenix* targets.
14975 * config/arm/t-phoenix: New.
14976 * config/phoenix.h: New.
14978 2016-06-23 Uros Bizjak <ubizjak@gmail.com>
14979 H.J. Lu <hongjiu.lu@intel.com>
14982 * config/i386/i386-protos.h (ix86_force_load_from_GOT_p): New.
14983 * config/i386/i386.c (ix86_force_load_from_GOT_p): New function.
14984 (ix86_legitimate_constant_p): Do not allow UNSPEC_GOTPCREL if
14985 ix86_force_load_from_GOT_p returns true.
14986 (ix86_legitimate_address_p): Allow UNSPEC_GOTPCREL if
14987 ix86_force_load_from_GOT_p returns true.
14988 (ix86_print_operand_address_as): Support UNSPEC_GOTPCREL if
14989 ix86_force_load_from_GOT_p returns true.
14990 (ix86_expand_move): Load the external function address via the
14991 GOT slot if ix86_force_load_from_GOT_p returns true.
14992 * config/i386/predicates.md (x86_64_immediate_operand): Return
14993 false for SYMBOL_REFs where ix86_force_load_from_GOT_p returns true.
14994 (x86_64_zext_immediate_operand): Ditto.
14996 2016-06-22 Uros Bizjak <ubizjak@gmail.com>
14998 * config/i386/i386.c (ix86_expand_move): Simplify SYMBOL_REF handling.
15000 2016-06-22 David Malcolm <dmalcolm@redhat.com>
15003 * diagnostic-core.h (pedwarn_at_rich_loc): New prototype.
15004 * diagnostic.c (pedwarn_at_rich_loc): New function.
15005 * spellcheck.h (best_match::best_match): Add a
15006 "best_distance_so_far" optional parameter.
15007 (best_match::set_best_so_far): New method.
15008 (best_match::get_best_distance): New accessor.
15009 (best_match::get_best_candidate_length): New accessor.
15011 2016-06-22 Nick Clifton <nickc@redhat.com>
15013 * dwarf2out.c (scompare_loc_descriptor): Use SCALAR_INT_MODE_P() in
15014 place of GET_MODE_CLASS() == MODE_INT, so that partial integer
15015 modes are accepted as well.
15016 (ucompare_loc_descriptor): Likewise.
15017 (minmax_loc_descriptor): Likewise.
15018 (clz_loc_descriptor): Likewise.
15019 (popcount_loc_descriptor): Likewise.
15020 (bswap_loc_descriptor): Likewise.
15021 (rotate_loc_descriptor): Likewise.
15022 (mem_loc_descriptor): Likewise.
15023 (loc_descriptor): Likewise.
15025 2016-06-22 David Malcolm <dmalcolm@redhat.com>
15027 * common.opt (fdiagnostics-parseable-fixits): New option.
15028 * diagnostic.c: Include "selftest.h".
15029 (print_escaped_string): New function.
15030 (print_parseable_fixits): New function.
15031 (diagnostic_report_diagnostic): Call print_parseable_fixits.
15032 (selftest::assert_print_escaped_string): New function.
15033 (ASSERT_PRINT_ESCAPED_STRING_STREQ): New macro.
15034 (selftest::test_print_escaped_string): New function.
15035 (selftest::test_print_parseable_fixits_none): New function.
15036 (selftest::test_print_parseable_fixits_insert): New function.
15037 (selftest::test_print_parseable_fixits_remove): New function.
15038 (selftest::test_print_parseable_fixits_replace): New function.
15039 (selftest::diagnostic_c_tests): New function.
15040 * diagnostic.h (struct diagnostic_context): Add field
15041 "parseable_fixits_p".
15042 * doc/invoke.texi (Diagnostic Message Formatting Options): Add
15043 -fdiagnostics-parseable-fixits.
15044 (-fdiagnostics-parseable-fixits): New option.
15045 * opts.c (common_handle_option): Handle
15046 -fdiagnostics-parseable-fixits.
15047 * selftest-run-tests.c (selftest::run_tests): Call
15048 selftest::diagnostic_c_tests.
15049 * selftest.h (selftest::diagnostic_c_tests): New prototype.
15051 2016-06-22 Ilya Enkovich <ilya.enkovich@intel.com>
15053 PR tree-optimization/71488
15054 * tree-vect-patterns.c (vect_recog_mask_conversion_pattern): Support
15055 comparison of boolean vectors.
15056 * tree-vect-stmts.c (vectorizable_comparison): Vectorize comparison
15057 of boolean vectors using bitwise operations.
15059 2016-06-22 Andreas Schwab <schwab@suse.de>
15061 * config/aarch64/aarch64-protos.h (aarch64_elf_asm_named_section):
15062 Remove declaration.
15064 2016-06-22 Eric Botcazou <ebotcazou@adacore.com>
15066 * function.c (assign_parm_setup_reg): Prevent sharing in another case.
15068 2016-06-22 Bernd Edlinger <bernd.edlinger@hotmail.de>
15070 * config/i386/i386.c (print_reg): Emit an error message on attempt to
15073 2016-06-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15075 * config/arm/arm.c (arm_cortex_a73_tune): New struct.
15076 * config/arm/arm-cores.def (cortex-a73): New entry.
15077 (cortex-a73.cortex-a35): Likewise.
15078 (cortex-a73.cortex-a53): Likewise.
15079 * config/arm/arm-tables.opt: Regenerate.
15080 * config/arm/arm-tune.md: Likewise.
15081 * config/arm/bpabi.h (BE8_LINK_SPEC): Handle mcpu=cortex-a73,
15082 mcpu=cortex-a73.cortex-a35 and mcpu=cortex-a73.cortex-a53.
15083 * config/arm/t-aprofile: Handle mcpu=cortex-a73,
15084 mcpu=cortex-a73.cortex-a35 and mcpu=cortex-a73.cortex-a53.
15085 * doc/invoke.texi (ARM Options): Document cortex-a73,
15086 cortex-a73.cortex-a35 and cortex-a73.cortex-a53.
15088 2016-06-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15090 * config/aarch64/aarch64.c (cortexa73_tunings): New struct.
15091 * config/aarch64/aarch64-cores.def (cortex-a73): New entry.
15092 (cortex-a73.cortex-a35): Likewise.
15093 (cortex-a73.cortex-a53): Likewise.
15094 * config/aarch64/aarch64-tune.md: Regenerate.
15095 * doc/invoke.texi (AArch64 Options): Document cortex-a73,
15096 cortex-a73.cortex-a35 and cortex-a73.cortex-a53 arguments to
15099 2016-06-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
15101 * configure.ac (gcc_cv_as_compress_debug): Remove
15102 --compress-debug-sections as extra as switch.
15103 Handle gas --compress-debug-sections=type.
15104 (gcc_cv_ld_compess_debug): Remove bogus ld_date check.
15105 Handle gld --compress-debug-sections=type.
15106 * configure: Regenerate.
15108 2016-06-21 Andrew Burgess <andrew.burgess@embecosm.com>
15110 * bb-reorder.c (pass_partition_blocks::gate): Update comment.
15112 2016-06-21 John David Anglin <danglin@gcc.gnu.org>
15114 * gcov-tool.c (profile_rewrite): Use int64_t instead of long long.
15115 (do_rewrite): likewise.
15117 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
15119 * common/config/mep/mep-common.c: Remove.
15120 * config.gcc: Remove mep-* support.
15121 * config/mep/constraints.md: Remove.
15122 * config/mep/default.h: Remove.
15123 * config/mep/intrinsics.h: Remove.
15124 * config/mep/intrinsics.md: Remove.
15125 * config/mep/ivc2-template.h: Remove.
15126 * config/mep/mep-c5.cpu: Remove.
15127 * config/mep/mep-core.cpu: Remove.
15128 * config/mep/mep-default.cpu: Remove.
15129 * config/mep/mep-ext-cop.cpu: Remove.
15130 * config/mep/mep-intrin.h: Remove.
15131 * config/mep/mep-ivc2.cpu: Remove.
15132 * config/mep/mep-pragma.c: Remove.
15133 * config/mep/mep-protos.h: Remove.
15134 * config/mep/mep.c: Remove.
15135 * config/mep/mep.cpu: Remove.
15136 * config/mep/mep.h: Remove.
15137 * config/mep/mep.md: Remove.
15138 * config/mep/mep.opt: Remove.
15139 * config/mep/predicates.md: Remove.
15140 * config/mep/t-mep: Remove.
15141 * doc/install.texi: Remove mep-* documentation.
15142 * doc/md.texi: Likewise.
15144 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
15146 * config.gcc: Remove support for avr-rtems.
15147 * config/avr/gen-avr-mmcu-specs.c: Likewise.
15148 * config/avr/rtems.h: Remove.
15149 * config/avr/t-rtems: Remove.
15151 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
15153 * config.gcc: Remove m32r-rtems support.
15154 * config/m32r/rtems.h: Remove.
15156 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
15158 * config.gcc: Remove h8300-rtems support.
15159 * config/h8300/rtems.h: Remove.
15160 * config/h8300/t-rtems: Remove.
15162 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
15164 * config.gcc: Remove support for knetbsd.
15165 * configure.ac: Likewise.
15166 * config/i386/knetbsd-gnu.h: Remove. * config/i386/knetbsd-gnu64.h: Remove.
15167 * config/knetbsd-gnu.h: Remove.
15168 * configure: Regenerate.
15170 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
15172 * config.gcc: Remove support for openbsd 2 and 3.
15173 * config/openbsd-oldgas.h: Remove.
15175 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
15177 * config.gcc: Remove interix support.
15178 * config/i386/i386-interix.h: Remove.
15179 * config/i386/interix.opt: Remove.
15180 * config/i386/t-interix: Remove.
15181 * configure: Regenerate.
15182 * configure.ac: Remove interix support.
15183 * doc/install.texi: Remove interix documentation.
15185 2016-06-21 Kelvin Nilsen <kelvin@gcc.gnu.org>
15187 * config/rs6000/rs6000.h: Add conditional preprocessing directives
15188 to disable Power9-specific compiler features if HAVE_AS_POWER9 is
15191 2016-06-21 Eric Botcazou <ebotcazou@adacore.com>
15193 * tree.c (verify_type_variant): Skip TYPE_SIZE and TYPE_SIZE_UNIT if
15194 they are both PLACEHOLDER_EXPRs.
15196 2016-06-21 Michael Meissner <meissner@linux.vnet.ibm.com>
15198 * stor-layout.c (layout_type): Move setting complex MODE to
15199 layout_type, instead of setting it ahead of time by the caller.
15200 * tree.c (build_complex_type): Likewise.
15202 2016-06-21 Martin Liska <mliska@suse.cz>
15204 * predict.c (force_edge_cold): Replace imposisble with
15207 2016-06-21 Ilya Verbin <ilya.verbin@intel.com>
15209 * config/i386/i386.c (ix86_emit_swsqrtsf): Emit vrsqrt28ps.
15210 * config/i386/sse.md (define_expand "rsqrtv16sf2"): New.
15212 2016-06-21 Ilya Verbin <ilya.verbin@intel.com>
15214 * config/i386/i386.c (ix86_emit_swdivsf): Emit vrcp28ps.
15216 2016-06-21 H.J. Lu <hongjiu.lu@intel.com>
15217 Ilya Enkovich <ilya.enkovich@intel.com>
15220 * config/i386/i386.c (timode_scalar_chain::fix_debug_reg_uses):
15221 New member function to convert V1TImode register to SUBREG
15222 TImode in debug insn.
15223 (timode_scalar_chain::convert_insn): Call fix_debug_reg_uses
15224 after changing register mode to V1TImode.
15226 2016-06-21 Virendra Pathak <virendra.pathak@broadcom.com>
15228 * config/aarch64/aarch64-cores.def (vulcan): New core.
15229 * config/aarch64/aarch64-tune.md: Regenerate.
15230 * doc/invoke.texi: Document vulcan as an available option.
15232 2016-06-21 Eric Botcazou <ebotcazou@adacore.com>
15234 * cse.c (canon_asm_operands): New function extracted from...
15235 (canonicalize_insn): ...here. Call it to canonicalize an ASM_OPERANDS
15236 either standalone or member of a PARALLEL.
15238 2016-06-21 Georg-Johann Lay <avr@gjlay.de>
15241 * config/avr/gen-avr-mmcu-specs.c (print_mcu):
15242 [*link_data_start]: Wrap -Tdata into %{!Tdata:...}.
15243 [*link_text_start]: Wrap -Ttext into %{!Ttext:...}.
15245 2016-06-21 Georg-Johann Lay <avr@gjlay.de>
15248 * config/avr/avr.md (movqi): Only handle loading subreg:qi of
15249 constant addresses if can_create_pseudo_p.
15251 2016-06-21 Jakub Jelinek <jakub@redhat.com>
15253 PR tree-optimization/71588
15254 * tree-ssa-strlen.c (valid_builtin_call): New function.
15255 (adjust_last_stmt, handle_builtin_memset, strlen_optimize_stmt): Use
15258 2016-06-20 Jakub Jelinek <jakub@redhat.com>
15260 PR middle-end/71581
15261 * tree-ssa-uninit.c (warn_uninit): If EXPR and VAR are NULL,
15262 see if T isn't anonymous SSA_NAME with COMPLEX_EXPR created
15263 for conversion of scalar user var to complex type and use the
15264 underlying SSA_NAME_VAR in that case. If EXPR is still NULL,
15267 PR rtl-optimization/71591
15268 * toplev.c (toplev::run_self_tests): If no_backend, complain and
15269 don't run any tests.
15271 2016-06-20 Hans-Peter Nilsson <hp@axis.com>
15274 * config/cris/cris.c (cris_asm_output_mi_thunk): Add missing "ba"
15275 delay-slot "nop" for PIC with CRIS v32. Also add missing leading
15276 space for PIC with non-v32 and the common non-PIC "jump".
15278 2016-06-20 Jakub Jelinek <jakub@redhat.com>
15281 * config/i386/i386.c (ix86_fp_cmp_code_to_pcmp_immediate): Fix up
15282 returned values and add UN*/LTGT/*ORDERED cases with values matching
15283 D operand modifier on vcmp for AVX.
15285 2016-06-20 Wilco Dijkstra <wdijkstr@arm.com>
15287 * config/aarch64/aarch64.opt
15288 (mpc-relative-literal-loads): Rename internal option name.
15289 * config/aarch64/aarch64.c
15290 (aarch64_nopcrelative_literal_loads): Rename to
15291 aarch64_pcrelative_literal_loads.
15292 (aarch64_expand_mov_immediate): Likewise.
15293 (aarch64_secondary_reload): Likewise.
15294 (aarch64_can_use_per_function_literal_pools_p): Likewise.
15295 (aarch64_override_options_after_change_1): Rename and simplify logic.
15296 (aarch64_classify_symbol): Merge large model checks into switch,
15297 remove pc-relative load check.
15299 2016-06-20 James Greenhalgh <james.greenhalgh@arm.com>
15301 * config/arm/aarch-cost-tables.h (cortexa53_extra_costs): Make FP
15302 costs relative to the cost of a register move.
15304 2016-06-20 James Greenhalgh <james.greenhalgh@arm.com>
15306 * config/aarch64/arm_neon.h (vcvt_n_f64_s64): New.
15307 (vcvt_n_f64_u64): Likewise.
15308 (vcvt_n_s64_f64): Likewise.
15309 (vcvt_n_u64_f64): Likewise.
15310 (vcvt_f64_s64): Likewise.
15311 (vrecpe_f64): Likewise.
15312 (vcvt_f64_u64): Likewise.
15313 (vrecps_f64): Likewise.
15315 2016-06-20 James Greenhalgh <james.greenhalgh@arm.com>
15317 * config/aarch64/aarch64.md
15318 (<FCVT_F2FIXED:fcvt_fixed_insn><GPF:mode>3): Add attributes to
15320 (<FCVT_FIXED2F:fcvt_fixed_insn><GPI:mode>3): Likewise. Correct
15322 * config/aarch64/aarch64-builtins.c
15323 (aarch64_types_binop_uss_qualifiers): Delete.
15324 (TYPES_BINOP_USS): Likewise.
15325 (aarch64_types_binop_sus_qualifiers): Likewise.
15326 (TYPES_BINOP_SUS): Likewise.
15327 (aarch64_types_fcvt_from_unsigned_qualifiers): New.
15328 (TYPES_FCVTIMM_SUS): Likewise.
15329 * config/aarch64/aarch64-simd-builtins.def (scvtf): Use SHIFTIMM
15331 (ucvtf): Use FCVTIMM_SUS rather than BINOP_SUS.
15332 (fcvtzs): Use SHIFTIMM rather than BINOP.
15333 (fcvtzu): Use SHIFTIMM_USS rather than BINOP_USS.
15335 2016-06-20 James Greenhalgh <james.greenhalgh@arm.com>
15337 * config/arm/aarch-cost-tables.h (cortexa57_extra_costs): Make FP
15338 costs relative to the cost of a register move.
15340 2016-06-20 Wilco Dijkstra <wdijkstr@arm.com>
15342 * config/aarch64/aarch64.c (aarch64_modes_tieable_p):
15343 Allow scalar/single vector modes to be tieable.
15345 2016-06-20 Wilco Dijkstra <wdijkstr@arm.com>
15347 * config/arm/cortex-a57.md (cortex_a57_fp_cpys): Add fcsel.
15349 2016-06-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15351 * params.def (PARAM_ALIGN_LOOP_ITERATIONS): Use "alignment" instead of
15353 * tree.h (TYPE_ALIGN): Likewise.
15355 2016-06-20 Georg-Johann Lay <avr@gjlay.de>
15358 * config/avr/avr.md (movqi): Handle loading subreg:qi (const).
15360 2016-06-20 Georg-Johann Lay <avr@gjlay.de>
15362 * config/avr/avr.c (avr_print_operand): Fix "format not a string
15363 literal" build warnings.
15364 (avr_print_operand_address): Dito.
15366 2016-06-19 David Edelsohn <dje.gcc@gmail.com>
15369 * config/rs6000/aix51.h (TARGET_EXTRA_BUILTINS): Define as 0.
15370 * config/rs6000/aix43.h (TARGET_EXTRA_BUILTINS): Same.
15372 2016-06-18 John David Anglin <danglin@gcc.gnu.org>
15374 * config/pa/pa.h (TARGET_LONG_PIC_PCREL_CALL): Remove.
15376 2016-06-18 Eric Botcazou <ebotcazou@adacore.com>
15379 * reload1.c (reload): Pass 0 to finish_spills when called because
15380 update_eliminables_and_spill returns true and remove did_spill.
15381 (finish_spills): Adjust comment and document GLOBAL parameter.
15383 2016-06-17 DJ Delorie <dj@redhat.com>
15386 * config/rl78/rl78-expand.c (umulqihi3): Enable for G10.
15387 * config/rl78/rl78-virtual.c (umulhi3_shift_virt): Likewise.
15388 (umulqihi3_virt): Likewise.
15389 * config/rl78/rl78-real.c (umulhi3_shift_real): Likewise.
15390 (umulqihi3_real): Likewise.
15392 2016-06-17 Martin Liska <mliska@suse.cz>
15394 * tree-ssa-reassoc.c (transform_add_to_multiply): Use auto_vec.
15396 2016-06-17 Martin Liska <mliska@suse.cz>
15398 * predict.def: PRED_LOOP_EXIT from 92 to 85.
15400 2016-06-17 James Greenhalgh <james.greenhalgh@arm.com>
15402 * config/arm/arm_neon.h (vadd_f32): replace __FAST_MATH with
15404 (vaddq_f32): Likewise.
15405 (vmul_f32): Likewise.
15406 (vmulq_f32): Likewise.
15407 (vsub_f32): Likewise.
15408 (vsubq_f32): Likewise.
15410 2016-06-17 Bin Cheng <bin.cheng@arm.com>
15412 PR tree-optimization/71347
15413 * tree-ssa-loop-ivopts.c (determine_group_iv_cost_address): Compute
15414 cost for all uses in group.
15416 2016-06-17 Bin Cheng <bin.cheng@arm.com>
15418 * tree-vect-loop.c (vect_create_epilog_for_reduction): Only
15419 insert gimple seq if it's not empty.
15421 2016-06-17 Bin Cheng <bin.cheng@arm.com>
15423 * tree-vectorizer.h (struct dr_with_seg_len): Remove class
15425 * tree-vect-data-refs.c (operator ==): Handle DR_OFFSET directly,
15426 rather than OFFSET.
15427 (comp_dr_with_seg_len_pair): Ditto.
15428 (vect_prune_runtime_alias_test_list): Ditto. Also Canonicalize
15429 struct dr_with_seg_len_pair against DR_OFFSET.
15430 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Handle
15431 DR_OFFSET directly.
15433 2016-06-17 Szabolcs Nagy <szabolcs.nagy@arm.com>
15435 * config/aarch64/geniterators.sh: Handle parenthesised conditions.
15437 2016-06-16 John David Anglin <danglin@gcc.gnu.org>
15439 * config/pa/pa.c (pa_output_pic_pcrel_sequence): New.
15440 (pa_output_lbranch): Use pa_output_pic_pcrel_sequence.
15441 (pa_output_millicode_call): Likewise.
15442 (pa_output_call): Likewise.
15443 (pa_output_indirect_call): Likewise.
15444 (pa_asm_output_mi_thunk): Likewise.
15446 2016-06-16 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
15448 * doc/invoke.texi (x86 Options): Fix -mno-fp-ret-in-387 typo.
15450 2016-06-16 Martin Liska <mliska@suse.cz>
15452 * predict.c (combine_predictions_for_insn): When we find a first
15453 match predictor, we should consider just predictors with
15454 PRED_FLAG_FIRST_MATCH. Print either first match (if any) or
15455 DS theory predictor.
15456 (combine_predictions_for_bb): Likewise.
15458 2016-06-16 Jakub Jelinek <jakub@redhat.com>
15460 * gimplify.c (gimplify_scan_omp_clauses): Handle COMPONENT_REFs
15461 with base of reference to struct.
15463 2016-06-16 Uros Bizjak <ubizjak@gmail.com>
15465 * doc/invoke.texi (x86 Options): Document -m80387 and -mhard-float.
15467 2016-06-16 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
15470 * config/avr/avr.c (avr_asm_init_sections): Remove setup of
15471 progmem_swtable_section.
15472 (progmem_swtable_section): Remove.
15473 (avr_asm_function_rodata_section): Remove.
15474 (TARGET_ASM_FUNCTION_RODATA_SECTION): Remove.
15475 * config/avr/avr.h (JUMP_TABLES_IN_TEXT_SECTION: Define to 1.
15477 2016-06-16 Jocelyn Mayer <l_indien@magic.fr>
15479 * config/i386/driver-i386.c (host_detect_local_cpu): Set
15480 PROCESSOR_K8 for signature_CENTAUR_ebx with has_longmode.
15481 <case PROCESSOR_K8>: Pass nano-3000, nano, eden-x2 or k8 for
15482 signature_CENTAUR_ebx.
15483 * config/i386/i386.c (ix86_option_override_internal): Add
15484 definitions for VIA c7, samuel-2, nehemiah, esther, eden-x2, eden-x4,
15485 nano, nano-1000, nano-2000, nano-3000, nano-x2 and nano-x4.
15486 * doc/invoke.texi (x86 Options): Document new VIA -march entries.
15488 2016-06-16 Martin Liska <mliska@suse.cz>
15490 * predict.def: Add fortran loop preheader predictor.
15491 * gimple-fold.c (gimple_fold_stmt_to_constant_1): Properly
15492 fold IFN_BUILTIN_EXPECT with a known constant argument.
15494 2016-06-16 Martin Liska <mliska@suse.cz>
15496 * predict.def: Add 'Fortran' to display text of all
15497 PRED_FORTRAN_* predictors.
15499 2016-06-16 Uros Bizjak <ubizjak@gmail.com>
15502 * config/ia64/ia64.c (enum ia64_builtins) [IA64_BUILTIN_NANQ]: New.
15503 [IA64_BUILTIN_NANSQ]: Ditto.
15504 (ia64_fold_builtin): New function.
15505 (TARGET_FOLD_BUILTIN): New define.
15506 (ia64_init_builtins) Declare const_string_type node.
15507 Add __builtin_nanq and __builtin_nansq builtin functions.
15508 (ia64_expand_builtin): Handle IA64_BUILTIN_NANQ and IA64_BUILTIN_NANSQ.
15510 2016-06-16 Nick Clifton <nickc@redhat.com>
15512 * config/msp430/msp430-opts.h (msp430_hwmult_types): Add
15513 MSP430_HWMULT_ prefix to enum values.
15514 (msp430_regions): Add MSP430_REGION_ prefix to enum values.
15515 * config/msp430/msp430.c: Update use of enum values.
15516 * config/msp430/msp430.md: Likewise.
15517 * config/msp430/msp430.opt: Likewise.
15519 2016-06-16 Jan Hubicka <hubicka@ucw.cz>
15521 * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Fix estimation
15522 of comparsions in the last iteration.
15524 2016-06-16 Claudiu Zissulescu <claziss@synopsys.com>
15525 Joern Rennecke <joern.rennecke@embecosm.com>
15527 * config/arc/arc.c (arc_print_operand_address): Handle pc-relative
15529 (arc_needs_pcl_p): Add GOTOFFPC.
15530 (arc_legitimate_pic_addr_p): Likewise.
15531 (arc_output_pic_addr_const): Likewise.
15532 (arc_legitimize_pic_address): Generate a pc-relative address using
15534 (arc_output_libcall): Use @pcl syntax.
15535 (arc_delegitimize_address_0): Delegitimize ARC_UNSPEC_GOTOFFPC.
15536 * config/arc/arc.md ("unspec"): Add ARC_UNSPEC_GOTOFFPC.
15537 (*movsi_insn): Use @pcl syntax.
15538 (doloop_begin_i): Likewise.
15540 2016-06-16 Martin Liska <mliska@suse.cz>
15542 * predict.def: Define a new predictor.
15544 2016-06-16 Claudiu Zissulescu <claziss@synopsys.com>
15546 * config/arc/arc.opt (mtp-regno): Update text.
15548 2016-06-16 Renlin Li <renlin.li@arm.com>
15550 * config/aarch64/aarch64.c (aarch64_legitimize_address): Fix a typo.
15552 2016-06-16 Jakub Jelinek <jakub@redhat.com>
15555 * config/i386/i386.md (setcc + movzbl peephole2): Use reg_set_p.
15556 (setcc + and peephole2): Likewise.
15558 PR rtl-optimization/71532
15559 * cse.c (cse_insn): For const/pure calls, invalidate argument passing
15562 2016-06-15 Michael Meissner <meissner@linux.vnet.ibm.com>
15564 * config/rs6000/vsx.md (VSINT_84): Add DImode to enable loading
15565 DImode constants with XXSPLTIB in vector registers.
15566 (vsx_extract_<mode>, V2DImode/V2DFmode): Combine both
15567 vsx_extract_<mode>_internal{1,2} into a single insn that handles
15568 direct move (both ISA 2.07 and ISA 3.0 versions), and optimizes
15569 extraction of the element at the top of the register as a scalar
15571 (vsx_extract_<mode>_internal1): Likewise.
15572 (vsx_extract_<mode>_internal2): Likewise.
15573 * config/rs6000/constraints.md (wi constraint): Remove a comment
15574 about DImode not being allowed in Altivec registers.
15575 (wB constraint): New constraint for constants that can be
15576 generated in Altivec registers with VSPLTISW/VUPKHSW.
15577 * config/rs6000/predicates.md (xxspltib_constant_split): Update
15579 (xxspltib_constant_nosplit): Likewise.
15580 * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Add
15581 support for -mupper-regs-di to enable DImode to go into Altivec
15583 (POWERPC_MASKS): Likewise.
15584 (power7 cpu): Likewise.
15585 * config/rs6000/rs6000.opt (-mupper-regs-di): Likewise.
15586 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Add support
15587 for DImode being allowed in Altivec registers. Update wi/wj
15588 constraints. Set scalar_in_vmx_p flag.
15589 (rs6000_option_override_internal): Add checks for -mupper-regs-di.
15590 (xxspltib_constant_p): Allow CONST_INT's with VOIDmode. Don't
15591 return true if we could use VSPLTISW/VUPKHSW instead of XXSPLTIB.
15592 (rs6000_opt_masks): Add -mupper-regs-di.
15593 * config/rs6000/rs6000.md (lfiwax): Update clobbers that don't use
15594 direct move to use wi and not wj.
15595 (lfiwzx): Likewise.
15596 (floatsi<mode>2_lfiwax_mem): Combine alternatives into a single
15598 (floatunssi<mode>2_lfiwzx_mem): Likewise.
15599 (fix_trunc<mode>di2_fctidz): Change second alternative to allow
15600 any VSX register, instead of just Altivec registers, to allow
15601 either operand to be an Altivec register or both.
15602 (fixuns_trunc<mode>di2_fctiduz): Likewise.
15603 (movdi_internal32): Add support for -mupper-regs-di. Add support
15604 to load constants via XXSPLTIB or VSPLTISW. Add spacing to allow
15605 the alternatives and attributes to be lined up to be easier to
15607 (movdi_internal64): Likewise.
15608 (64-bit DImode splitters): Change predicates to only split loading
15609 up GPR registers. Add splits for using XXSPLTIB or VSPLTISW to
15610 load constants in ISA 3.0 or ISA 2.07 respectively.
15611 * doc/invoke.texi (RS/6000 and PowerPC Options): Document
15612 -mupper-regs-di. Update -mupper-regs-df and -mupper-regs-sf to
15613 mention -mcpu=power9 sets these options.
15614 * doc/md.texi (PowerPC and IBM RS6000 constraints): Document the
15617 2016-06-15 Pitchumani Sivanupandi <pitchumani.s@atmel.com>
15620 * config/avr/avr.c (avr_set_current_function): Warn misspelled
15621 interrupt/ signal handler if -Wmisspelled-isr flag is enabled.
15622 * config/avr/avr.opt (Wmisspelled-isr): New warning flag. Enabled
15623 by default to warn misspelled interrupt/ signal handler.
15624 * doc/invoke.texi (AVR Options): Document it. Update description
15625 for -nodevicelib option.
15627 2016-06-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15629 * config/aarch64/aarch64-simd.md (aarch64_<sur>shll_n<mode>): Clean
15630 up parentheses. Use GET_MODE_UNIT_BITSIZE.
15631 (aarch64_<sur>shll2_n<mode>): Likewise.
15633 2016-06-15 Ilya Enkovich <ilya.enkovich@intel.com>
15635 PR middle-end/71529
15636 * ipa-chkp.c (chkp_build_instrumented_fndecl): Fix
15637 DECL_CONTEXT for copied arguments.
15639 2016-06-15 Alan Hayward <alan.hayward@arm.com>
15641 PR tree-optimization/71483
15642 * tree-vect-loop.c (vectorizable_live_operation): Pick correct index
15645 2016-06-15 Martin Liska <mliska@suse.cz>
15647 * predict.c (tree_predict_by_opcode): Call predict_edge_def
15648 instead of predict_edge w/o a probability.
15650 2016-06-15 Alan Hayward <alan.hayward@arm.com>
15652 PR tree-optimization/71439
15653 * tree-vect-loop.c (vect_analyze_loop_operations): Additional check for
15656 2016-06-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15658 * ifcvt.c (bb_ok_for_noce_multiple_sets): Allow simple lowpart
15659 register subregs in SET_SRC.
15661 2016-06-15 Richard Biener <rguenther@suse.de>
15663 * tree-vect-stmts.c (vectorizable_store): Remove strided grouped
15664 store restrictions.
15666 2016-06-15 Richard Biener <rguenther@suse.de>
15668 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Do
15669 not consider dependences between accesses that belong to the
15671 (vect_analyze_data_ref_dependences): Do not analyze read-read
15672 or self-dependences.
15674 2016-06-14 David Malcolm <dmalcolm@redhat.com>
15676 * spellcheck-tree.c: Include spellcheck-tree.h rather than
15678 (find_closest_identifier): Reimplement in terms of
15679 best_match<tree,tree>.
15680 * spellcheck-tree.h: New file.
15681 * spellcheck.c (struct edit_distance_traits<const char *>): New
15683 (find_closest_string): Reimplement in terms of
15684 best_match<const char *, const char *>.
15685 * spellcheck.h (levenshtein_distance): Move prototype of tree-based
15686 overload to spellcheck-tree.h.
15687 (find_closest_identifier): Likewise.
15688 (struct edit_distance_traits<T>): New template.
15689 (class best_match): New class.
15691 2016-06-14 David Malcolm <dmalcolm@redhat.com>
15693 * selftest-run-tests.c (selftest::run_tests): Call
15694 selftest::spellcheck_tree_c_tests.
15695 * selftest.h (selftest::spellcheck_tree_c_tests): New decl.
15696 * spellcheck-tree.c: Include selftest.h and stringpool.h.
15697 (selftest::test_find_closest_identifier): New function.
15698 (selftest::spellcheck_tree_c_tests): New function.
15699 * spellcheck.c (selftest::test_find_closest_string): Verify that
15700 the order of the vec does not affect the results for this case.
15701 (selftest::test_data): New array.
15702 (selftest::test_metric_conditions): New function.
15703 (selftest::spellcheck_c_tests): Add a test of case-comparison.
15704 Call selftest::test_metric_conditions.
15706 2016-06-14 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
15708 * config/rs6000/rs6000-builtin.def (commentary): Typo.
15709 (BU_P9_MISC_1): Likewise.
15710 (BU_P9_64BIT_MISC_0): Likewise.
15711 (BU_P9_MISC_0): Likewise.
15713 2016-06-14 David Malcolm <dmalcolm@redhat.com>
15715 * gcc-rich-location.c
15716 (gcc_rich_location::add_fixit_misspelled_id): New method.
15717 * gcc-rich-location.h
15718 (gcc_rich_location::add_fixit_misspelled_id): Add decl.
15720 2016-06-14 Andreas Tobler <andreast@gcc.gnu.org>
15722 * config/arm/freebsd.h: Only enable unaligned access for armv6 on
15723 FreeBSD 11 and above.
15725 2016-06-14 Uros Bizjak <ubizjak@gmail.com>
15727 * config/i386/i386.md (signbittf2): Emit sse_movmskps for TARGET_SSE.
15729 2016-06-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15731 * expmed.h: Close parenthesis in "at your option" in copyright
15733 * lower-subreg.h: Likewise.
15735 2016-06-14 Richard Biener <rguenther@suse.de>
15737 PR middle-end/71526
15738 * genmatch.c (expr::gen_transform): Use in_type for comparisons
15741 2015-06-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15743 * config/aarch64/aarch64.c (aarch64_mask_and_shift_for_ubfiz_p):
15745 (aarch64_rtx_costs): Use it. Rewrite CONST_INT_P (op1) case to handle
15746 mask+shift version.
15747 * config/aarch64/aarch64-protos.h (aarch64_mask_and_shift_for_ubfiz_p):
15749 * config/aarch64/aarch64.md (*andim_ashift<mode>_bfiz): Replace
15750 matching condition with aarch64_mask_and_shift_for_ubfiz_p.
15752 2016-06-14 Richard Biener <rguenther@suse.de>
15754 PR tree-optimization/71522
15755 * tree-ssa.c (non_rewritable_lvalue_p): Do not rewrite non-float
15756 copying into float copying.
15758 2016-06-14 Jakub Jelinek <jakub@redhat.com>
15760 PR tree-optimization/71520
15761 * tree-ssa-tail-merge.c (find_duplicate): Handle labels.
15762 (replace_block_by): Move user labels from bb1 to bb2.
15764 2016-06-14 Richard Biener <rguenther@suse.de>
15766 PR middle-end/71310
15768 * expr.h (get_bit_range): Declare.
15769 * expr.c (get_bit_range): Export.
15770 * fold-const.c (optimize_bit_field_compare): Use get_bit_range and
15771 word_mode again to constrain the bitfield access.
15773 2016-06-14 Richard Biener <rguenther@suse.de>
15775 PR tree-optimization/71521
15776 * tree-vrp.c (extract_range_from_binary_expr_1): Guard
15777 division int_const_binop against zero divisor.
15779 2016-06-13 Uros Bizjak <ubizjak@gmail.com>
15781 * config/i386/i386.md (signbittf2): New expander.
15782 * config/i386/sse.md (ptesttf2): New insn pattern.
15784 2016-06-13 David Malcolm <dmalcolm@redhat.com>
15787 * input.c (selftest::test_reading_source_line): Avoid reading from
15788 __FILE__ by creating a tempfile with known content and reading
15791 2016-06-13 David Malcolm <dmalcolm@redhat.com>
15793 * pretty-print.c (assert_pp_format_colored): Skip the test if
15795 (test_pp_format): Remove comment about GCC_COLORS.
15797 2016-06-13 David Malcolm <dmalcolm@redhat.com>
15799 * input.c (test_reading_source_line): Use SELFTEST_LOCATION.
15800 * pretty-print.c (assert_pp_format_va): Add location param and use
15801 it with ASSERT_STREQ_AT.
15802 (assert_pp_format): Add location param and pass it to
15803 assert_pp_format_va.
15804 (assert_pp_format_colored): Likewise.
15805 (ASSERT_PP_FORMAT_1): New.
15806 (ASSERT_PP_FORMAT_2): New.
15807 (ASSERT_PP_FORMAT_3): New.
15808 (test_pp_format): Provide SELFTEST_LOCATION throughout, either
15809 explicitly, or implicitly via the above macros.
15810 * selftest.c (selftest::pass): Use a selftest::location rather
15811 than file and line.
15812 (selftest::fail): Likewise. Print the function name.
15813 (selftest::fail_formatted): Likewise.
15814 (selftest::assert_streq): Use a selftest::location rather than
15816 * selftest.h (selftest::location): New struct.
15817 (SELFTEST_LOCATION): New macro.
15818 (selftest::pass): Accept a const location & rather than file
15820 (selftest::fail): Likewise.
15821 (selftest::fail_formatted): Likewise.
15822 (selftest::assert_streq): Likewise.
15823 (ASSERT_TRUE): Update for above changes, using SELFTEST_LOCATION.
15824 (ASSERT_FALSE): Likewise.
15825 (ASSERT_EQ): Likewise.
15826 (ASSERT_NE): Likewise.
15827 (ASSERT_STREQ): Likewise.
15828 (ASSERT_PRED1): Likewise.
15829 (ASSERT_STREQ_AT): New macro.
15831 2016-06-13 David Malcolm <dmalcolm@redhat.com>
15833 * selftest.c (selftest::fail_formatted): New function.
15834 (selftest::assert_streq): New function.
15835 * selftest.h (selftests::fail_formatted): New decl.
15836 (selftest::assert_streq): New decl.
15837 (ASSERT_STREQ): Reimplement in terms of selftest::assert_streq.
15839 2016-06-13 Jeff Law <law@redhat.com>
15841 PR tree-optimization/71403
15842 * tree-ssa-threadbackward.c
15843 (convert_and_register_jump_thread_path): No longer accept reference
15844 to path. Do not pop items off the path anymore.
15845 (fsm_find_control_statement_thread_paths): Do not allow threading
15846 to a deeper loop nest. Pop the last item off the path here rather
15847 than in convert_and_register_jump_thread_path.
15849 2016-06-13 Evandro Menezes <e.menezes@samsung.com>
15850 Wilco Dijkstra <Wilco.Dijkstra@arm.com>
15852 [AArch64] Emit division using the Newton series
15854 * config/aarch64/aarch64-protos.h
15855 (cpu_approx_modes): Add new member "division".
15856 (aarch64_emit_approx_div): Declare new function.
15857 * config/aarch64/aarch64.c
15858 (generic_approx_modes): New member "division".
15859 (exynosm1_approx_modes): Likewise.
15860 (xgene1_approx_modes): Likewise.
15861 (aarch64_emit_approx_div): Define new function.
15862 * config/aarch64/aarch64.md ("div<mode>3"): New expansion.
15863 * config/aarch64/aarch64-simd.md ("div<mode>3"): Likewise.
15864 * config/aarch64/aarch64.opt (-mlow-precision-div): Add new option.
15865 * doc/invoke.texi (-mlow-precision-div): Describe new option.
15867 2016-06-13 Evandro Menezes <e.menezes@samsung.com>
15868 Wilco Dijkstra <wilco.dijkstra@arm.com>
15870 [AArch64] Emit square root using the Newton series
15872 * config/aarch64/aarch64-protos.h
15873 (aarch64_emit_approx_rsqrt): Replace with new function
15874 "aarch64_emit_approx_sqrt".
15875 (cpu_approx_modes): New member "sqrt".
15876 * config/aarch64/aarch64.c
15877 (generic_approx_modes): New member "sqrt".
15878 (exynosm1_approx_modes): Likewise.
15879 (xgene1_approx_modes): Likewise.
15880 (aarch64_emit_approx_rsqrt): Replace with new function
15881 "aarch64_emit_approx_sqrt".
15882 (aarch64_override_options_after_change_1): Handle new option.
15883 * config/aarch64/aarch64-simd.md
15884 (rsqrt<mode>2): Use new function instead.
15885 (sqrt<mode>2): New expansion and insn definitions.
15886 * config/aarch64/aarch64.md: Likewise.
15887 * config/aarch64/aarch64.opt
15888 (mlow-precision-sqrt): Add new option description.
15889 * doc/invoke.texi (mlow-precision-sqrt): Likewise.
15891 2016-06-13 Evandro Menezes <e.menezes@samsung.com>
15893 [AArch64] Add more choices for the reciprocal square root approximation
15895 Allow a target to prefer such operation depending on the operation mode.
15897 * config/aarch64/aarch64-protos.h
15898 (AARCH64_APPROX_MODE): New macro.
15899 (AARCH64_APPROX_{NONE,ALL}): Likewise.
15900 (cpu_approx_modes): New structure.
15901 (tune_params): New member "approx_modes".
15902 * config/aarch64/aarch64-tuning-flags.def
15903 (AARCH64_EXTRA_TUNE_APPROX_RSQRT): Remove macro.
15904 * config/aarch64/aarch64.c
15905 (generic_approx_modes): New core "cpu_approx_modes" structure.
15906 (exynosm1_approx_modes): Likewise.
15907 (xgene1_approx_modes): Likewise.
15908 (generic_tunings): New member "approx_modes".
15909 (cortexa35_tunings): Likewise.
15910 (cortexa53_tunings): Likewise.
15911 (cortexa57_tunings): Likewise.
15912 (cortexa72_tunings): Likewise.
15913 (exynosm1_tunings): Likewise.
15914 (thunderx_tunings): Likewise.
15915 (xgene1_tunings): Likewise.
15916 (use_rsqrt_p): New argument for the mode and use new member from
15918 (aarch64_builtin_reciprocal): Devise mode from builtin.
15919 (aarch64_optab_supported_p): New argument for the mode.
15920 * doc/invoke.texi (-mlow-precision-recip-sqrt): Reword description.
15922 2016-06-13 Kelvin Nilsen <kelvin@gcc.gnu.org>
15924 * config/rs6000/rs6000.h (RS6000_BTM_COMMON): Add the
15925 RS6000_BTM_MODULO flag into the set of flags that are considered
15926 to be part of the common configuration.
15928 2016-06-13 Kelvin Nilsen <kelvin@gcc.gnu.org>
15930 * config/rs6000/altivec.h (vec_absd): New macro for vector absolute
15931 difference unsigned.
15932 (vec_absdb): New macro for vector absolute difference unsigned
15934 (vec_absdh): New macro for vector absolute difference unsigned
15936 (vec_absdw): New macro for vector absolute difference unsigned word.
15937 * config/rs6000/altivec.md (UNSPEC_VADU): New value.
15938 (vadu<mode>3): New insn.
15939 (*p9_vadu<mode>3): New insn.
15940 * config/rs6000/rs6000-builtin.def (vadub): New built-in
15942 (vaduh): New built-in definition.
15943 (vaduw): New built-in definition.
15944 (vadu): New overloaded built-in definition.
15945 (vadub): New overloaded built-in definition.
15946 (vaduh): New overloaded built-in definition.
15947 (vaduw): New overloaded built-in definition.
15948 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
15949 overloaded vector absolute difference unsigned functions.
15950 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
15951 the ISA 3.0 vector absolute difference unsigned built-in functions.
15953 2016-06-13 Eric Botcazou <ebotcazou@adacore.com>
15955 * tree-ssa-sccvn.c (vn_reference_lookup_3): Use a uniform test and
15956 update shared_lookup_references only once after changing operands.
15958 2016-06-13 Thomas Schwinge <thomas@codesourcery.com>
15960 PR middle-end/71373
15961 * tree-nested.c (convert_nonlocal_omp_clauses)
15962 (convert_local_omp_clauses): Document missing OMP_CLAUSE_*.
15964 * tree-cfg.c (edge_to_cases_cleanup): Fix CASE_CHAIN typo.
15965 * tree.def (CASE_LABEL_EXPR): Likewise.
15967 2016-06-13 Bernd Edlinger <bernd.edlinger@hotmail.de>
15970 * input.c (test_builtins): Fix an assertion.
15972 2016-06-13 Uros Bizjak <ubizjak@gmail.com>
15974 * config/i386/i386.md (paritydi2): Use ix86_expand_setcc.
15975 (paritysi2): Ditto.
15977 (isinf<mode>2): Ditto.
15979 2016-06-13 Uros Bizjak <ubizjak@gmail.com>
15981 * ggc-tests.c (test_finalization): Only test need_finalization_p
15982 for GCC_VERSION >= 4003.
15984 2016-06-13 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
15986 * config/s390/vecintrin.h: Fix file description in comment.
15988 2016-06-13 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
15990 * config/s390/s390-builtin-types.def: Change builtin type naming
15991 scheme to match builtin-types.def.
15993 2016-06-13 Marc Glisse <marc.glisse@inria.fr>
15995 * fold-const.c (optimize_minmax_comparison): Remove.
15996 (fold_comparison): Remove call to the above.
15997 * match.pd (MIN (X, Y) == X, MIN (X, 5) == 0, MIN (X, C1) < C2):
15998 New transformations.
16000 2016-06-13 Alan Hayward <alan.hayward@arm.com>
16002 PR tree-optimization/71416
16003 * tree-vect-loop.c (vectorizable_live_operation): Let worklist have
16006 2016-06-13 Martin Liska <mliska@suse.cz>
16008 * predict.c (enum predictor_reason): Prefix enum with REASON_.
16009 (combine_predictions_for_insn): Likewise.
16010 (prune_predictions_for_bb): Likewise.
16011 (combine_predictions_for_bb): Likewise.
16013 2016-06-13 Richard Biener <rguenther@suse.de>
16015 PR tree-optimization/71505
16016 * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Make
16017 assert match comment.
16019 2016-06-13 Marek Polacek <polacek@redhat.com>
16021 PR middle-end/71476
16022 * gimplify.c (maybe_warn_switch_unreachable): Factored out of
16023 gimplify_switch_expr.
16024 (warn_switch_unreachable_r): New function.
16026 2016-06-13 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
16029 * config/s390/s390.c (s390_expand_builtin): Increase MAX_ARGS by
16032 2016-06-13 Richard Biener <rguenther@suse.de>
16034 PR middle-end/64516
16035 * fold-const.c (fold_unary_loc): Preserve alignment when
16036 folding a VIEW_CONVERT_EXPR into a MEM_REF.
16038 2016-06-13 Martin Liska <mliska@suse.cz>
16041 * toplev.c (process_options): Do not enable -fcheck-pointer-bounds
16042 w/ -fsanitize=bounds.
16044 2016-06-12 Uros Bizjak <ubizjak@gmail.com>
16046 * config/i386/i386.c (ix86_init_builtins): Calculate
16047 FLOAT128_FTYPE_CONST_STRING function type only once.
16048 * doc/extend.texi (x86 Built-in Functions): Update text, __float128
16049 built-in functions are available for x86-32 and x86-64 targets.
16051 2016-06-12 Uros Bizjak <ubizjak@gmail.com>
16054 * config/i386/i386.i386-builtin-types.def (CONST_STRING):
16055 New primitive type.
16056 (FLOAT128_FTYPE_CONST_STRING): New function type.
16057 * config/i386/i386.c (enum ix86_builtins) [IX86_BUILTIN_NANQ]: New.
16058 [IX86_BUILTIN_NANSQ]: Ditto.
16059 (ix86_fold_builtin): Handle IX86_BUILTIN_NANQ and IX86_BUILTIN_NANSQ.
16060 (ix86_init_builtin_types): Declare const_string_type_node.
16061 (ix86_init_builtins): Add __builtin_nanq and __builtin_nansq
16063 (ix86_expand_builtin): Handle IX86_BUILTIN_NANQ and IX86_BUILTIN_NANSQ.
16064 * doc/extend.texi (x86 Built-in Functions): Document
16065 __builtin_nanq and __builtin_nansq.
16067 2016-06-11 Jiong Wang <jiong.wang@arm.com>
16070 * config/arm/arm-protos.h (arm_attr_length_pop_multi): New declaration.
16071 * config/arm/arm.c (arm_attr_length_pop_multi): New function to return
16072 length for pop patterns.
16073 (arm_attr_length_push_multi): Update comments.
16074 * config/arm/arm.md (*load_multiple_with_writeback): Set "length"
16076 (*pop_multiple_with_writeback_and_return): Likewise.
16077 (*pop_multiple_with_return): Likewise.
16079 2016-06-11 Segher Boessenkool <segher@kernel.crashing.org>
16081 PR middle-end/71310
16082 * fold-const.c (optimize_bit_field_compare): Don't try to use
16083 word_mode unconditionally for reading the bit field, look at
16084 DECL_BIT_FIELD_REPRESENTATIVE instead.
16086 2016-06-11 Kugan Vivekanandarajah <kuganv@linaro.org>
16088 PR middle-end/71478
16089 * tree-ssa-reassoc.c (reassociate_bb): Remove (-1) from ops list for
16090 vector integer type.
16092 2016-06-10 Jakub Jelinek <jakub@redhat.com>
16094 PR middle-end/71494
16095 * tree-nested.c (convert_nonlocal_reference_stmt): For GIMPLE_GOTO
16096 without LABEL_DECL, set *handled_ops_p to false instead of true.
16098 2016-06-10 Martin Sebor <msebor@redhat.com>
16101 * builtin-attrs.def (ATTR_NOTHROW_NONNULL_LEAF_LIST): New macro.
16102 (ATTR_NOTHROW_NONNULL_TYPEGENERIC_LEAF): Same.
16103 * builtins.def (BUILT_IN_SADD_OVERFLOW, BUILT_IN_SADDL_OVERFLOW): Use
16105 (BUILT_IN_SADDLL_OVERFLOW, BUILT_IN_SSUB_OVERFLOW): Same.
16106 (BUILT_IN_SSUBL_OVERFLOW, BUILT_IN_SSUBLL_OVERFLOW): Same.
16107 (BUILT_IN_SMUL_OVERFLOW, BUILT_IN_SMULL_OVERFLOW): Same.
16108 (BUILT_IN_SMULLL_OVERFLOW, BUILT_IN_UADD_OVERFLOW): Same.
16109 (BUILT_IN_UADDL_OVERFLOW, BUILT_IN_UADDLL_OVERFLOW): Same.
16110 (BUILT_IN_USUB_OVERFLOW, BUILT_IN_USUBL_OVERFLOW): Same.
16111 (BUILT_IN_USUBLL_OVERFLOW, BUILT_IN_UMUL_OVERFLOW): Same.
16112 (BUILT_IN_UMULL_OVERFLOW, BUILT_IN_UMULLL_OVERFLOW): Same.
16114 2016-06-10 Bernd Edlinger <bernd.edlinger@hotmail.de>
16116 * config/arm/arm.h (pool_vector_label,
16117 return_used_this_function): Remove.
16119 2016-06-10 Jeff Law <law@redhat.com>
16121 PR tree-optimization/71335
16122 * tree-ssa-threadbackward.c (profitable_jump_thread_path): Filter out
16123 zero length paths here.
16124 (convert_and_register_jump_thread_path): Remove hacks related to
16125 duplicated blocks in the jump thread path.
16126 (fsm_find_control_statement_thread_paths): Avoid putting the same
16127 block on the thread path twice, but ensure the thread path is
16128 unchanged from the caller's point of view.
16130 2016-06-10 Jan Hubicka <hubicka@ucw.cz>
16132 * predict.c (predict_loops): Remove PRED_LOOP_BRANCH.
16133 * predict.def (PRED_LOOP_BRANCH): Remove.
16135 2016-06-10 David Malcolm <dmalcolm@redhat.com>
16137 * Makefile.in (OBJS): Add ggc-tests.o.
16138 (GTFILES): Add ggc-tests.c.
16139 * ggc-tests.c: New file.
16140 * selftest-run-tests.c (selftest::run_tests): Call
16141 selftest::ggc_tests_c_tests.
16142 * selftest.h (selftest::ggc_tests_c_tests): New prototype.
16144 2016-06-10 Alexander Monakov <amonakov@ispras.ru>
16146 * match.pd (-1 / B < A): Use :c to avoid pattern duplication.
16148 2016-06-10 Maxim Ostapenko <m.ostapenko@samsung.com>
16151 * varasm.c (place_block_symbol): Adjust alignment for asan protected
16152 STRING_CSTs even if TREE_CONSTANT_POOL_ADDRESS_P.
16154 2016-06-10 Jan Hubicka <hubicka@ucw.cz>
16156 * profile.c: Include cfgloop.h.
16157 (branch_prob): Compute estimated number of iterations.
16158 * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop): Do not
16159 recompute estimate number of iterations from profile.
16161 2016-06-10 Bernd Edlinger <bernd.edlinger@hotmail.de>
16163 PR inline-asm/68843
16164 * reg-stack.c (check_asm_stack_operands): Explicit input arguments
16165 must be grouped on top of stack. Don't force early clobber
16166 on ordinary reg outputs.
16168 2016-06-10 Richard Biener <rguenther@suse.de>
16170 * targhooks.c (default_builtin_vectorization_cost): Adjust
16171 vec_construct cost.
16173 2016-06-10 Richard Biener <rguenther@suse.de>
16175 * gimple-fold.c (gimple_fold_builtin_memory_op): Make sure
16176 to fold the RHS to a constant if possible.
16178 2016-06-10 Thomas Schwinge <thomas@codesourcery.com>
16180 PR middle-end/71373
16181 * tree-nested.c (convert_nonlocal_omp_clauses)
16182 (convert_local_omp_clauses): Handle OMP_CLAUSE_ASYNC,
16183 OMP_CLAUSE_WAIT, OMP_CLAUSE_INDEPENDENT, OMP_CLAUSE_AUTO,
16184 OMP_CLAUSE__CACHE_, OMP_CLAUSE_TILE.
16186 * gimplify.c (gimplify_adjust_omp_clauses): Discard
16188 * omp-low.c (scan_sharing_clauses): Don't expect OMP_CLAUSE_TILE.
16190 * omp-low.c (scan_sharing_clauses): Don't expect
16191 OMP_CLAUSE__CACHE_.
16193 2016-06-10 Alan Hayward <alan.hayward@arm.com>
16195 PR tree-optimization/71407
16196 PR tree-optimization/71416
16197 * tree-vect-loop.c (vectorizable_live_operation): Use vectype for
16198 BIT_FIELD_REF type.
16200 2016-06-10 Richard Biener <rguenther@suse.de>
16202 PR middle-end/71477
16203 * cfgloop.c (alloc_loop): Initialize nb_iterations_likely_upper_bound.
16205 2016-06-09 Eric Botcazou <ebotcazou@adacore.com>
16207 * df-problems.c (df_note_bb_compute): Guard use of DF_INSN_INFO_GET.
16209 2016-06-09 Vladimir Makarov <vmakarov@redhat.com>
16210 Jiong Wang <jiong.wang@arm.com>
16212 PR rtl-optimization/70751
16213 * lra-constraints.c (process_alt_operands): Recognize Non-pseudo
16214 spilled into memory.
16216 2016-06-09 Jonathan Yong <10walls@gmail.com>
16219 2015-09-21 Jonathan Yong <10walls@gmail.com>
16221 * config/i386/cygwin.h (STARTFILE_SPEC): Explicitly search
16222 sysroot/usr/lib/32api for additional win32 libraries,
16223 fixes failing Cygwin bootstrapping.
16225 2016-06-09 Marcin Baczyński <marbacz@gmail.com>
16227 * diagnostic.h (diagnostic_line_cutoff, diagnostic_flush_buffer):
16230 2016-06-09 David Malcolm <dmalcolm@redhat.com>
16233 * pretty-print.c (pp_indent): Specify that %p is printed in a
16234 host-dependent manner.
16235 (test_pp_format): Remove the test for %p.
16237 2016-06-09 Maciej W. Rozycki <macro@imgtec.com>
16239 * config/mips/mips.c (mips_output_jump): Fix formatting.
16241 2016-06-09 Richard Biener <rguenther@suse.de>
16243 PR tree-optimization/71462
16244 * tree-ssa-loop-manip.c (find_uses_to_rename): Guard against
16247 2016-06-09 Martin Liska <mliska@suse.cz>
16249 * predict.c (dump_prediction): Add new argument.
16250 (enum predictor_reason): New enum.
16251 (struct predictor_hash): New struct.
16252 (predictor_hash::hash): New function.
16253 (predictor_hash::equal): Likewise.
16254 (not_removed_prediction_p): New function.
16255 (prune_predictions_for_bb): Likewise.
16256 (combine_predictions_for_bb): Prune predictions.
16258 2016-06-09 Martin Liska <mliska@suse.cz>
16260 * predict.c (filter_predictions): New function.
16261 (remove_predictions_associated_with_edge): Use the filter
16263 (equal_edge_p): New function.
16265 2016-06-09 Stefan Bruens <stefan.bruens@rwth-aachen.de>
16267 * doc/invoke.texi (ARM Options): Use lexicographical ordering.
16268 Correct usage of @samp vs @option, add @samp where appropriate.
16269 Add -march={armv6k,armv6z,arm6zk}, remove -march=ep9312.
16270 Add armv6s-m and document it, as it is no official ARM name.
16272 2016-06-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
16274 * ifcvt.c (struct noce_if_info): Add transform_name field.
16275 (noce_try_move): Set if_info->transform_name to the function name.
16276 (noce_try_ifelse_collapse): Likewise.
16277 (noce_try_store_flag): Likewise.
16278 (noce_try_inverse_constants): Likewise.
16279 (noce_try_store_flag_constants): Likewise.
16280 (noce_try_addcc): Likewise.
16281 (noce_try_store_flag_mask): Likewise.
16282 (noce_try_cmove): Likewise.
16283 (noce_try_cmove_arith): Likewise.
16284 (noce_try_minmax): Likewise.
16285 (noce_try_abs): Likewise.
16286 (noce_try_sign_mask): Likewise.
16287 (noce_try_bitop): Likewise.
16288 (noce_convert_multiple_sets): Likewise.
16289 (noce_process_if_block): Print if_info->transform_name to
16290 dump_file if transformation succeeded.
16292 2016-06-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
16294 * config/arm/cortex-a57.md (cortex_a57_alu):
16297 2016-06-08 Martin Sebor <msebor@redhat.com>
16298 Jakub Jelinek <jakub@redhat.com>
16302 * builtins.def (BUILT_IN_ADD_OVERFLOW_P, BUILT_IN_SUB_OVERFLOW_P,
16303 BUILT_IN_MUL_OVERFLOW_P): New builtins.
16304 * builtins.c: Include gimple-fold.h.
16305 (fold_builtin_arith_overflow): Handle
16306 BUILT_IN_{ADD,SUB,MUL}_OVERFLOW_P.
16307 (fold_builtin_3): Likewise.
16308 * doc/extend.texi (Integer Overflow Builtins): Document
16309 __builtin_{add,sub,mul}_overflow_p.
16311 2016-06-08 Jose E. Marchesi <jose.marchesi@oracle.com>
16313 * config/sparc/driver-sparc.c (cpu_names): Fix the entry for the
16314 SPARC-M7 and add an entry for SPARC-S7 cpus (Sonoma).
16316 2016-06-08 Alan Lawrence <alan.lawrence@arm.com>
16318 * config/aarch64/aarch64.c (aarch64_function_arg_alignment):
16319 Rewrite, looking one level down for records and arrays.
16321 2016-06-08 David Malcolm <dmalcolm@redhat.com>
16323 * pretty-print.c: Include "selftest.h".
16324 (pp_format): Fix comment.
16325 (identifier_to_locale): Likewise.
16326 (selftest::test_basic_printing): New function.
16327 (selftest::assert_pp_format): New function.
16328 (selftest::test_pp_format): New function.
16329 (selftest::pretty_print_c_tests): New function.
16330 * selftest-run-tests.c (selftest::run_tests): Call
16331 selftest::pretty_print_c_tests.
16332 * selftest.h (pretty_print_c_tests): New declaration.
16334 2016-06-07 Jan Hubicka <hubicka@ucw.cz>
16336 * invoke.texi (max-loop-headers-insns): Document.
16337 * params.def (PARAM_MAX_LOOP_HEADER_INSNS): New.
16338 * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Update comment.
16339 (ch_base::copy_headers): Use PARAM_MAX_LOOP_HEADER_INSNS.
16341 2016-06-08 Richard Biener <rguenther@suse.de>
16343 * tree-vect-stmts.c (vectorizable_load): Remove restrictions
16344 on strided SLP loads and fall back to scalar loads in case
16345 we can't chunk them.
16347 2016-06-08 Richard Biener <rguenther@suse.de>
16349 PR tree-optimization/71452
16350 * tree-ssa.c (non_rewritable_lvalue_p): Make sure that the
16351 type used for the SSA rewrite has enough precision to cover
16352 the dynamic type of the location.
16354 2016-06-08 Jakub Jelinek <jakub@redhat.com>
16355 Richard Biener <rguenther@suse.de>
16358 * fold-const.c (fold_comparison): Handle CONSTANT_CLASS_P (base0)
16359 the same as DECL_P (base0) for indirect_base0. Use equality_code
16360 in one further place.
16362 2016-06-08 Richard Sandiford <richard.sandiford@arm.com>
16364 * expmed.c (store_bit_field_1): Do not restrict a multiword op0
16365 to one word if the field is known to overlap other words.
16366 (extract_bit_field_1): Likewise.
16367 (store_split_bit_field): Remove compensating code.
16368 (extract_split_bit_field): Likewise.
16370 2016-06-08 Bernd Schmidt <bschmidt@redhat.com>
16374 * tree-ssa-strlen.c (handle_builtin_memcmp): Ignore debug insns.
16376 2016-06-08 Jiong Wang <jiong.wang@arm.com>
16378 * config/aarch64/aarch64-builtins.def (faddp): New builtins for modes in
16380 * config/aarch64/aarch64-simd.md (aarch64_faddp<mode>): New.
16381 (arch64_addpv4sf): Delete.
16382 (reduc_plus_scal_v4sf): Use "gen_aarch64_faddpv4sf" instead of
16383 "gen_aarch64_addpv4sf".
16384 * config/aarch64/arm_neon.h (vpadd_f32): Remove inline assembly. Use
16386 (vpadds_f32): Likewise.
16387 (vpaddq_f32): Likewise.
16388 (vpaddq_f64): Likewise.
16390 2016-06-08 Jiong Wang <jiong.wang@arm.com>
16392 * config/aarch64/aarch64-builtins.def (fabd): New builtins for modes
16394 * config/aarch64/aarch64-simd.md (fabd<mode>_3): Extend modes from VDQF
16395 to VALLF. Rename to "fabd<mode>3".
16396 "*fabd_scalar<mode>3): Delete.
16397 * config/aarch64/arm_neon.h (vabds_f32): Remove inline assembly.
16399 (vabdd_f64): Likewise.
16400 (vabd_f32): Likewise.
16401 (vabd_f64): Likewise.
16402 (vabdq_f32): Likewise.
16403 (vabdq_f64): Likewise.
16405 2016-06-08 Jiong Wang <jiong.wang@arm.com>
16407 * config/aarch64/aarch64-builtins.def (rsqrts): New builtins for modes
16409 * config/aarch64/aarch64-simd.md (aarch64_rsqrts_<mode>3): Rename to
16410 "aarch64_rsqrts<mode>".
16411 * config/aarch64/aarch64.c (get_rsqrts_type): Update gen* name.
16412 * config/aarch64/arm_neon.h (vrsqrtss_f32): Remove inline assembly. Use
16414 (vrsqrtsd_f64): Likewise.
16415 (vrsqrts_f32): Likewise.
16416 (vrsqrts_f64): Likewise.
16417 (vrsqrtsq_f32): Likewise.
16418 (vrsqrtsq_f64): Likewise.
16420 2016-06-08 Jiong Wang <jiong.wang@arm.com>
16422 * config/aarch64/aarch64-builtins.def (rsqrte): New builtins for modes
16424 * config/aarch64/aarch64-simd.md (aarch64_rsqrte_<mode>2): Rename to
16425 "aarch64_rsqrte<mode>".
16426 * config/aarch64/aarch64.c (get_rsqrte_type): Update gen* name.
16427 * config/aarch64/arm_neon.h (vrsqrts_f32): Remove inline assembly. Use
16429 (vrsqrted_f64): Likewise.
16430 (vrsqrte_f32): Likewise.
16431 (vrsqrte_f64): Likewise.
16432 (vrsqrteq_f32): Likewise.
16433 (vrsqrteq_f64): Likewise.
16435 2016-06-08 Jiong Wang <jiong.wang@arm.com>
16437 * config/aarch64/aarch64-builtins.def (scvtf): Register vector modes.
16439 (fcvtzs): Likewise.
16440 (fcvtzu): Likewise.
16441 * config/aarch64/aarch64-simd.md
16442 (<FCVT_F2FIXED:fcvt_fixed_insn><VDQF:mode>3): New.
16443 (<FCVT_FIXED2F:fcvt_fixed_insn><VDQ_SDI:mode>3): Likewise.
16444 * config/aarch64/arm_neon.h (vcvt_n_f32_s32): Remove inline assembly.
16446 (vcvt_n_f32_u32): Likewise.
16447 (vcvt_n_s32_f32): Likewise.
16448 (vcvt_n_u32_f32): Likewise.
16449 (vcvtq_n_f32_s32): Likewise.
16450 (vcvtq_n_f32_u32): Likewise.
16451 (vcvtq_n_f64_s64): Likewise.
16452 (vcvtq_n_f64_u64): Likewise.
16453 (vcvtq_n_s32_f32): Likewise.
16454 (vcvtq_n_s64_f64): Likewise.
16455 (vcvtq_n_u32_f32): Likewise.
16456 (vcvtq_n_u64_f64): Likewise.
16457 * config/aarch64/iterators.md (VDQ_SDI): New mode iterator.
16458 (VSDQ_SDI): Likewise.
16459 (fcvt_target): Support V4DI, V4SI and V2SI.
16460 (FCVT_TARGET): Likewise.
16462 2016-06-08 Jiong Wang <jiong.wang@arm.com>
16464 * config/aarch64/aarch64-builtins.c (TYPES_BINOP_USS): New
16465 (TYPES_BINOP_SUS): Likewise.
16466 (aarch64_simd_builtin_data): Update include file name.
16467 (aarch64_builtins): Likewise.
16468 * config/aarch64/aarch64-simd-builtins.def (scvtf): New entries
16469 for conversion between scalar float-point and fixed-point.
16471 (fcvtzs): Likewise.
16472 (fcvtzu): Likewise.
16473 * config/aarch64/aarch64.md
16474 (<FCVT_F2FIXED:fcvt_fixed_insn><GPF:mode>3: New
16475 pattern for conversion between scalar float to fixed-pointer.
16476 (<FCVT_FIXED2F:fcvt_fixed_insn><GPI:mode>: Likewise.
16477 (UNSPEC_FCVTZS): New UNSPEC enumeration.
16478 (UNSPEC_FCVTZU): Likewise.
16479 (UNSPEC_SCVTF): Likewise.
16480 (UNSPEC_UCVTF): Likewise.
16481 * config/aarch64/arm_neon.h (vcvtd_n_f64_s64): Remove inline assembly.
16483 (vcvtd_n_f64_u64): Likewise.
16484 (vcvtd_n_s64_f64): Likewise.
16485 (vcvtd_n_u64_f64): Likewise.
16486 (vcvtd_n_f32_s32): Likewise.
16487 (vcvts_n_f32_u32): Likewise.
16488 (vcvtd_n_s32_f32): Likewise.
16489 (vcvts_n_u32_f32): Likewise.
16490 * config/aarch64/iterators.md (fcvt_target): Support integer to float
16492 (FCVT_TARGET): Likewise.
16493 (FCVT_FIXED2F): New iterator.
16494 (FCVT_F2FIXED): Likewise.
16495 (fcvt_fixed_insn): New define_int_attr.
16497 2016-06-07 Jan Hubicka <hubicka@ucw.cz>
16499 * predict.c (pass_strip_predict_hints::execute): Cleanup CFG if
16500 some statements was removed.
16502 2016-06-08 Alan Hayward <alan.hayward@arm.com>
16504 * tree-vect-data-refs.c (vect_analyze_data_refs): Remove debug newline.
16505 * tree-vect-loop-manip.c (slpeel_make_loop_iterate_ntimes): likewise.
16506 (vect_can_advance_ivs_p): likewise.
16507 (vect_update_ivs_after_vectorizer): likewise.
16508 * tree-vect-loop.c (vect_determine_vectorization_factor): likewise.
16509 (vect_analyze_scalar_cycles_1): likewise.
16510 (vect_analyze_loop_operations): likewise.
16511 (report_vect_op): likewise.
16512 (vect_is_slp_reduction): likewise.
16513 (vect_is_simple_reduction): likewise.
16514 (get_initial_def_for_induction): likewise.
16515 (vect_transform_loop): likewise.
16516 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): likewise.
16517 (vect_recog_sad_pattern): likewise.
16518 (vect_recog_widen_sum_pattern): likewise.
16519 (vect_recog_widening_pattern): likewise.
16520 (vect_recog_divmod_pattern): likewise.
16521 * tree-vect-slp.c (vect-build-slp_tree_1): likewise.
16522 (vect_analyze_slp_instance): likewise.
16523 (vect_transform_slp_perm_load): likewise.
16524 (vect_schedule_slp_instance): likewise.
16526 2016-06-07 Jan Hubicka <hubicka@ucw.cz>
16528 * predict.c (predict_iv_comparison): Mention that heuristics is broken.
16529 (return_prediction): PRED_CONST_RETURN predict return as not taken.
16530 * predict.def (PRED_CONTINUE): Change hitrate 50->67
16531 (PRED_LOOP_BRANCH): Document predictor as broken.
16532 (PRED_LOOP_EXIT): Change hitrate 91->92.
16533 (PRED_LOOP_EXTRA_EXIT): Change hitrate 91->83.
16534 (PRED_POINTER, PRED_TREE_POINTER): Change hitrate 85->70.
16535 (PRED_OPCODE_POSITIVE): Change hitrate 79->64.
16536 (PRED_OPCODE_NONEQUAL): Change hitrate 91->66.
16537 (PRED_TREE_OPCODE_POSITIVE): Change hitrate 73->64
16538 (PRED_TREE_OPCODE_NONEQUAL): Chnage hitrate 72->66
16539 (PRED_CALL): Chane hitrate 71->67.
16540 (PRED_TREE_EARLY_RETURN): Document issues, change hitrate 61->54.
16541 (PRED_GOTO): Document as unused right now.
16542 (PRED_CONST_RETURN): Change hitrate 67->69
16543 (PRED_NEGATIVE_RETURN): Change hitrate 96->98
16544 (PRED_NULL_RETURN): Change hitrate 91->90.
16545 (PRED_LOOP_IV_COMPARE_GUESS): Change hitrate to 98.
16546 (PRED_FORTRAN_FAIL_ALLOC): Change hitrate to 62; document issues.
16547 (PRED_FORTRAN_SIZE_ZERO): Change hitrate to 99.
16549 2016-06-07 Bill Seurer <seurer@linux.vnet.ibm.com>
16551 * config/rs6000/altivec.h: Add __builtin_vec_mul.
16552 * config/rs6000/rs6000-builtin.def (vec_mul): Change vec_mul to a
16553 special case Altivec builtin.
16554 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove
16555 VSX_BUILTIN_VEC_MUL (replaced with special case code).
16556 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
16557 code for ALTIVEC_BUILTIN_VEC_MUL.
16558 * config/rs6000/rs6000.c (altivec_init_builtins): Add definition
16559 for __builtin_vec_mul.
16561 2016-06-07 Peter Bergner <bergner@vnet.ibm.com>
16563 * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mhtm and
16566 2016-06-07 David Malcolm <dmalcolm@redhat.com>
16568 * spellcheck.c (selftest::test_find_closest_string): New function.
16569 (spellcheck_c_tests): Call the above.
16571 2016-06-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
16573 * simplify-rtx.c (simplify_cond_clz_ctz): Delete 'mode' local variable.
16575 2016-06-07 Jakub Jelinek <jakub@redhat.com>
16577 * config/i386/sse.md (avx_vec_concat<mode>): Add v=v,vm and
16578 Yv=Yv,C alternatives.
16580 2016-06-07 Richard Biener <rguenther@suse.de>
16583 * common.opt (ffast-math): Make Optimization.
16585 2016-06-07 Simon Dardis <simon.dardis@imgtec.com>
16586 Prachi Godbole <prachi.godbole@imgtec.com>
16588 * config/mips/p5600.md (p5600_fpu_fadd): Remove checking for
16589 `fabs' and `fneg' type attributes.
16590 (p5600_fpu_fabs): Add `fmove' to the comment.
16592 2016-06-07 Jan Hubicka <hubicka@ucw.cz>
16594 * gimple.c: Include builtins.h
16595 (gimple_inexpensive_call_p): New function.
16596 * gimple.h (gimple_inexpensive_call_p): Declare.
16597 * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Use it.
16598 * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Likewise;
16601 2016-06-07 Paolo Carlini <paolo.carlini@oracle.com>
16603 * diagnostic.c (diagnostic_impl, diagnostic_n_impl): New.
16604 (inform, inform_at_rich_loc, inform_n, warning, warning_at,
16605 warning_at_rich_loc, warning_n, pedwarn, permerror,
16606 permerror_at_rich_loc, error, error_n, error_at, error_at_rich_loc,
16607 sorry, fatal_error, internal_error, internal_error_no_backtrace):
16610 2016-06-07 Richard Biener <rguenther@suse.de>
16612 PR tree-optimization/71428
16613 * tree-ssa-math-opts.c (perform_symbolic_merge): Properly distinguish
16614 BIT_FIELD_REF op vs. load.
16616 2016-06-07 Richard Biener <rguenther@suse.de>
16618 PR middle-end/71423
16619 * match.pd ((X | ~Y) -> Y <= X): Properly invert the comparison
16622 2016-06-06 John David Anglin <danglin@gcc.gnu.org>
16624 * config/pa/pa.md (call): Generate indirect long calls to non-local
16625 functions on TARGET_64BIT.
16626 (call_value): Likewise.
16628 2016-06-06 John David Anglin <danglin@gcc.gnu.org>
16630 * config/pa/pa.md (call_val_reg_64bit): Remove "reg: DI " clobber from
16631 pattern and subsequent splitters.
16632 (call_val_reg_64bit_post_reload): Likewise.
16634 2016-06-07 Kugan Vivekanandarajah <kuganv@linaro.org>
16636 PR middle-end/71408
16637 * tree-ssa-reassoc.c (zero_one_operation): Fix NEGATE_EXPR operand for
16638 propagate_op_to_single_use.
16640 2016-06-07 Kugan Vivekanandarajah <kuganv@linaro.org>
16642 PR middle-end/71281
16643 * tree-ssa-reassoc.c (reassociate_bb): Set uid for negate stmt.
16645 2016-06-07 Uros Bizjak <ubizjak@gmail.com>
16647 * config/i386/i386.h (enum ix86_enitity): Add X86_DIRFLAG.
16648 (enum x86_dirflag_state): New enum.
16649 (NUM_MODES_FOR_MODE_SWITCHING): Add X86_DIRFLAG_ANY.
16650 (machine_function): Remove needs_cld.
16651 (ix86_current_function_needs_cld): Remove.
16652 * config/i386/i386.c (ix86_set_func_type): Set
16653 ix86_optimize_mode_switching[X86_DIRFLAG] to 1.
16654 (ix86_expand_prologue): Do not emit CLD here.
16655 (ix86_dirflag_mode_needed): New function.
16656 (ix86_dirflag_mode_entry): Ditto.
16657 (ix86_mode_needed): Handle X86_DIRFLAG entity.
16658 (ix86_mode_after): Ditto.
16659 (ix86_mode_entry): Ditto.
16660 (ix86_mode_exit): Ditto.
16661 (ix86_emit_mode_set): Ditto.
16662 * config/i386/i386.md (strmov_singleop): Set
16663 ix86_optimize_mode_switching[X86_DIRFLAG] to 1 for TARGET_CLD.
16664 Do not set ix86_current_function_needs_cld.
16666 (strset_singleop): Ditto.
16668 (cmpstrnqi_nz_1): Ditto.
16669 (cmpstrnqi_1): Ditto.
16670 (strlenqi_1): Ditto.
16672 2016-06-06 Jakub Jelinek <jakub@redhat.com>
16674 PR tree-optimization/71259
16675 * tree-vect-slp.c (vect_get_constant_vectors): For
16676 VECTOR_BOOLEAN_TYPE_P, return all ones constant instead of
16677 one for constant op, and use COND_EXPR for non-constant.
16679 2016-06-06 David Malcolm <dmalcolm@redhat.com>
16681 * Makefile.in (OBJS): Add function-tests.o,
16682 hash-map-tests.o, hash-set-tests.o, rtl-tests.o,
16683 selftest-run-tests.o.
16684 (OBJS-libcommon): Add selftest.o.
16685 (OBJS-libcommon-target): Add selftest.o.
16686 (all.internal): Add "selftest".
16687 (all.cross): Likewise.
16688 (selftest): New phony target.
16689 (s-selftest): New target.
16690 (selftest-gdb): New phony target.
16691 (COLLECT2_OBJS): Add selftest.o.
16692 * bitmap.c: Include "selftest.h".
16693 (selftest::test_gc_alloc): New function.
16694 (selftest::test_set_range): New function.
16695 (selftest::test_clear_bit_in_middle): New function.
16696 (selftest::test_copying): New function.
16697 (selftest::test_bitmap_single_bit_set_p): New function.
16698 (selftest::bitmap_c_tests): New function.
16699 * common.opt (fself-test): New.
16700 * diagnostic-show-locus.c: Include "selftest.h".
16701 (make_range): New function.
16702 (test_range_contains_point_for_single_point): New function.
16703 (test_range_contains_point_for_single_line): New function.
16704 (test_range_contains_point_for_multiple_lines): New function.
16705 (assert_eq): New function.
16706 (test_get_line_width_without_trailing_whitespace): New function.
16707 (selftest::diagnostic_show_locus_c_tests): New function.
16708 * et-forest.c: Include "selftest.h".
16709 (selftest::test_single_node): New function.
16710 (selftest::test_simple_tree): New function.
16711 (selftest::test_disconnected_nodes): New function.
16712 (selftest::et_forest_c_tests): New function.
16713 * fold-const.c: Include "selftest.h".
16714 (selftest::assert_binop_folds_to_const): New function.
16715 (selftest::assert_binop_folds_to_nonlvalue): New function.
16716 (selftest::test_arithmetic_folding): New function.
16717 (selftest::fold_const_c_tests): New function.
16718 * function-tests.c: New file.
16719 * gimple.c: Include "selftest.h".
16720 Include "gimple-pretty-print.h".
16721 (selftest::verify_gimple_pp): New function.
16722 (selftest::test_assign_single): New function.
16723 (selftest::test_assign_binop): New function.
16724 (selftest::test_nop_stmt): New function.
16725 (selftest::test_return_stmt): New function.
16726 (selftest::test_return_without_value): New function.
16727 (selftest::gimple_c_tests): New function.
16728 * hash-map-tests.c: New file.
16729 * hash-set-tests.c: New file.
16730 * input.c: Include "selftest.h".
16731 (selftest::assert_loceq): New function.
16732 (selftest::test_accessing_ordinary_linemaps): New function.
16733 (selftest::test_unknown_location): New function.
16734 (selftest::test_builtins): New function.
16735 (selftest::test_reading_source_line): New function.
16736 (selftest::input_c_tests): New function.
16737 * rtl-tests.c: New file.
16738 * selftest-run-tests.c: New file.
16739 * selftest.c: New file.
16740 * selftest.h: New file.
16741 * spellcheck.c: Include "selftest.h".
16742 (selftest::levenshtein_distance_unit_test_oneway): New function,
16743 adapted from testsuite/gcc.dg/plugin/levenshtein_plugin.c.
16744 (selftest::levenshtein_distance_unit_test): Likewise.
16745 (selftest::spellcheck_c_tests): Likewise.
16746 * toplev.c: Include selftest.h.
16747 (toplev::run_self_tests): New.
16748 (toplev::main): Handle -fself-test.
16749 * toplev.h (toplev::run_self_tests): New.
16750 * tree.c: Include "selftest.h".
16751 (selftest::test_integer_constants): New function.
16752 (selftest::test_identifiers): New function.
16753 (selftest::test_labels): New function.
16754 (selftest::tree_c_tests): New function.
16755 * tree-cfg.c: Include "selftest.h".
16756 (selftest::push_fndecl): New function.
16757 (selftest::test_linear_chain): New function.
16758 (selftest::test_diamond): New function.
16759 (selftest::test_fully_connected): New function.
16760 (selftest::tree_cfg_c_tests): New function.
16761 * vec.c: Include "selftest.h".
16762 (selftest::safe_push_range): New function.
16763 (selftest::test_quick_push): New function.
16764 (selftest::test_safe_push): New function.
16765 (selftest::test_truncate): New function.
16766 (selftest::test_safe_grow_cleared): New function.
16767 (selftest::test_pop): New function.
16768 (selftest::test_safe_insert): New function.
16769 (selftest::test_ordered_remove): New function.
16770 (selftest::test_unordered_remove): New function.
16771 (selftest::test_block_remove): New function.
16772 (selftest::reverse_cmp): New function.
16773 (selftest::test_qsort): New function.
16774 (selftest::vec_c_tests): New function.c.
16775 * wide-int.cc: Include selftest.h and wide-int-print.h.
16776 (selftest::from_int <wide_int>): New function.
16777 (selftest::from_int <offset_int>): New function.
16778 (selftest::from_int <widest_int>): New function.
16779 (selftest::assert_deceq): New function.
16780 (selftest::assert_hexeq): New function.
16781 (selftest::test_printing <VALUE_TYPE>): New function template.
16782 (selftest::test_ops <VALUE_TYPE>): New function template.
16783 (selftest::test_comparisons <VALUE_TYPE>): New function template.
16784 (selftest::run_all_wide_int_tests <VALUE_TYPE>): New function
16786 (selftest::wide_int_cc_tests): New function.
16788 2016-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
16790 PR middle-end/37780
16791 * ifcvt.c (noce_try_ifelse_collapse): New function.
16793 (noce_process_if_block): Call noce_try_ifelse_collapse.
16794 * simplify-rtx.c (simplify_cond_clz_ctz): New function.
16795 (simplify_ternary_operation): Use the above to simplify
16796 conditional CLZ/CTZ expressions.
16798 2016-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
16800 PR middle-end/37780
16801 * config/aarch64/aarch64.md (ctz<mode>2): Convert to
16802 define_insn_and_split.
16804 2016-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
16806 PR middle-end/37780
16807 * config/arm/arm.md (ctzsi2): Convert to define_insn_and_split.
16809 2016-06-06 Bernd Edlinger <bernd.edlinger@hotmail.de>
16812 * cfgexpand.c (expand_asm_loc): Remove handling for ADDR_EXPR.
16813 Implicitly clobber memory for basic asm with non-empty assembler
16814 string. Use targetm.md_asm_adjust also here.
16815 * compare-elim.c (arithmetic_flags_clobber_p): Use asm_noperands here.
16816 * final.c (final_scan_insn): Handle basic asm in PARALLEL block.
16817 * gimple.c (gimple_asm_clobbers_memory_p): Handle basic asm with
16818 non-empty assembler string.
16819 * ira.c (compute_regs_asm_clobbered): Use asm_noperands here.
16820 * recog.c (asm_noperands): Handle basic asm in PARALLEL block.
16821 (decode_asm_operands): Handle basic asm in PARALLEL block.
16822 (extract_insn): Handle basic asm in PARALLEL block.
16823 * doc/extend.texi: Mention new behavior of basic asm.
16824 * config/ia64/ia64 (rtx_needs_barrier): Handle ASM_INPUT here.
16825 * config/pa/pa.c (branch_to_delay_slot_p, branch_needs_nop_p,
16826 branch_needs_nop_p): Use asm_noperands.
16828 2016-06-06 Jose E. Marchesi <jose.marchesi@oracle.com>
16830 * config/sparc/sparc.md (cpu): Add niagara7 cpu type.
16831 Include the M7 SPARC DFA scheduler.
16832 New attribute v3pipe.
16833 Annotate insns with v3pipe where appropriate.
16834 Define cpu_feature vis4.
16835 Add lzd instruction type and set it on clzdi_sp64 and clzsi_sp64.
16836 Add (V8QI "8") to vbits.
16837 Add insns {add,sub}v8qi3
16838 Add insns ss{add,sub}v8qi3
16839 Add insns us{add,sub}{v8qi,v4hi}3
16840 Add insns {min,max}{v8qi,v4hi,v2si}3
16841 Add insns {minu,maxu}{v8qi,v4hi,v2si}3
16842 Add insns fpcmp{le,gt,ule,ug,ule,ugt}{8,16,32}_vis.
16843 * config/sparc/niagara4.md: Add a comment explaining the
16844 discrepancy between the documented latenty numbers and the
16846 * config/sparc/niagara7.md: New file.
16847 * configure.ac (HAVE_AS_SPARC5_VIS4): Define if the assembler
16848 supports SPARC5 and VIS 4.0 instructions.
16849 * configure: Regenerate.
16850 * config.in: Likewise.
16851 * config.gcc: niagara7 is a supported cpu in sparc*-*-* targets.
16852 * config/sparc/sol2.h (ASM_CPU32_DEFAUILT_SPEC): Set for
16853 TARGET_CPU_niagara7.
16854 (ASM_CPU64_DEFAULT_SPEC): Likewise.
16855 (CPP_CPU_SPEC): Handle niagara7.
16856 (ASM_CPU_SPEC): Likewise.
16857 * config/sparc/sparc-opts.h (processor_type): Add
16858 PROCESSOR_NIAGARA7.
16859 (mvis4): New option.
16860 * config/sparc/sparc.h (TARGET_CPU_niagara7): Define.
16861 (AS_NIAGARA7_FLAG): Define.
16862 (ASM_CPU64_DEFAULT_SPEC): Set for niagara7.
16863 (CPP_CPU64_DEFAULT_SPEC): Likewise.
16864 (CPP_CPU_SPEC): Handle niagara7.
16865 (ASM_CPU_SPEC): Likewise.
16866 * config/sparc/sparc.c (niagara7_costs): Define.
16867 (sparc_option_override): Handle niagara7 and adjust cache-related
16868 parameters with better values for niagara cpus. Also support VIS4.
16869 (sparc32_initialize_trampoline): Likewise.
16870 (sparc_use_sched_lookahead): Likewise.
16871 (sparc_issue_rate): Likewise.
16872 (sparc_register_move_cost): Likewise.
16873 (dump_target_flag_bits): Support VIS4.
16874 (sparc_vis_init_builtins): Likewise.
16875 (sparc_builtins): Likewise.
16876 * config/sparc/sparc-c.c (sparc_target_macros): Define __VIS__ for
16878 * config/sparc/driver-sparc.c (cpu_names): Add SPARC-M7 and
16880 * config/sparc/sparc.opt (sparc_processor_type): New value
16882 * config/sparc/visintrin.h (__attribute__): Prototypes for the
16884 * doc/invoke.texi (SPARC Options): Document -mcpu=niagara7 and
16886 * doc/extend.texi (SPARC VIS Built-in Functions): Document the
16889 2016-06-06 Jonathan Wakely <jwakely@redhat.com>
16891 * doc/sourcebuild.texi (Directives): Remove extra closing braces.
16893 2016-06-06 Richard Biener <rguenther@suse.de>
16895 PR tree-optimization/71398
16896 * tree-ssa-loop-ivcanon.c (unloop_loops): First unloop, then
16899 2016-06-05 James Bowman <james.bowman@ftdichip.com>
16901 * config/ft32/ft32.c (ft32_setup_incoming_varargs,
16902 ft32_expand_prolog, ft32_expand_epilogue):
16903 Handle pretend_args.
16904 * config/ft32/ft32.h: Remove OUTGOING_REG_PARM_STACK_SPACE.
16905 * config/ft32/ft32.md: Add pretend_returner.
16907 2016-06-06 Uros Bizjak <ubizjak@gmail.com>
16910 * config/i386/i386.c (ix86_avx256_split_vector_move_misalign):
16911 Copy op1 RTX to avoid invalid sharing.
16912 (ix86_expand_vector_move_misalign): Ditto.
16914 2016-06-05 John David Anglin <danglin@gcc.gnu.org>
16916 * expr.c (move_by_pieces_d::generate): Mark mode parameter with
16919 2016-06-05 Jan Hubicka <hubicka@ucw.cz>
16921 * predict.c (predicted_by_loop_heuristics_p): New function.
16922 (predict_iv_comparison): Use it.
16923 (predict_loops): Walk from innermost loops; do not predict edges
16924 leaving multiple loops multiple times; implement
16925 PRED_LOOP_ITERATIONS_MAX heuristics.
16926 * predict.def (PRED_LOOP_ITERATIONS_MAX): New predictor.
16928 2016-06-05 Jan Hubicka <hubicka@ucw.cz>
16930 * cfg.c (check_bb_profile): Do not report mismatched profiles when
16931 only edges out of BB are EH edges.
16933 2016-06-04 Martin Sebor <msebor@redhat.com>
16934 Marcin Baczyński <marbacz@gmail.com>
16937 * doc/invoke.texi (-Wreturn-type): Mention not warning on return with
16938 a void expression in a void function.
16940 2016-06-03 Jan Hubicka <hubicka@ucw.cz>
16942 * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Do not check
16943 aux; dump reasons of decisions.
16944 (should_duplicate_loop_header_p): Likewise.
16945 (do_while_loop_p): Likewise.
16946 (ch_base::copy_headers): Dump asi num insns duplicated.
16948 2016-06-04 Jakub Jelinek <jakub@redhat.com>
16950 PR tree-optimization/71405
16951 * tree-ssa.c (execute_update_addresses_taken): For clobber with
16952 incompatible type, build a new clobber with the right type instead
16953 of building a VIEW_CONVERT_EXPR around it.
16955 2016-06-04 Oleg Endo <olegendo@gcc.gnu.org>
16957 PR tree-optimization/52171
16958 * config/sh/sh.c (sh_use_by_pieces_infrastructure_p): Use
16959 by_pieces_ninsns instead of move_by_pieces_ninsns.
16961 2016-06-04 Oleg Endo <olegendo@gcc.gnu.org>
16963 * config/sh/sh.c (sh_print_operand_address): Don't use hardcoded 'r0'
16964 for reg+reg addressing mode.
16966 2016-06-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
16968 * rs6000-c.c (c/c-tree.h): Add #include.
16969 (altivec_resolve_overloaded_builtin): Handle ARRAY_TYPE arguments
16970 in C++ when found in the base position of vec_ld or vec_st.
16972 2016-06-03 Jan Hubicka <hubicka@ucw.cz>
16974 * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop): Avoid
16975 use of profile unless profile status is PROFILE_READ.
16976 * profile.c (compute_branch_probabilities): Set profile status
16977 only after reporting predictor hitrates.
16979 2016-06-03 Joseph Myers <joseph@codesourcery.com>
16983 * common.opt (ffp-int-builtin-inexact): New option.
16984 * doc/invoke.texi (-fno-fp-int-builtin-inexact): Document.
16985 * doc/md.texi (floor@var{m}2, btrunc@var{m}2, round@var{m}2)
16986 (ceil@var{m}2): Document dependence on this option.
16987 * ipa-inline-transform.c (inline_call): Handle
16988 flag_fp_int_builtin_inexact.
16989 * ipa-inline.c (can_inline_edge_p): Likewise.
16990 * config/i386/i386.md (rintxf2): Do not test
16991 flag_unsafe_math_optimizations.
16992 (rint<mode>2_frndint): New define_insn.
16993 (rint<mode>2): Do not test flag_unsafe_math_optimizations for 387
16994 or !flag_trapping_math for SSE. Just use gen_rint<mode>2_frndint
16995 for 387 instead of extending and truncating.
16996 (frndintxf2_<rounding>): Test flag_fp_int_builtin_inexact ||
16997 !flag_trapping_math instead of flag_unsafe_math_optimizations.
16998 Change to frndint<mode>2_<rounding>.
16999 (frndintxf2_<rounding>_i387): Likewise. Change to
17000 frndint<mode>2_<rounding>_i387.
17001 (<rounding_insn>xf2): Likewise.
17002 (<rounding_insn><mode>2): Test flag_fp_int_builtin_inexact ||
17003 !flag_trapping_math instead of flag_unsafe_math_optimizations for
17004 x87. Test TARGET_ROUND || !flag_trapping_math ||
17005 flag_fp_int_builtin_inexact instead of !flag_trapping_math for
17006 SSE. Use ROUND_NO_EXC in constant operand of
17007 gen_sse4_1_round<mode>2. Just use gen_frndint<mode>2_<rounding>
17008 for 387 instead of extending and truncating.
17010 2016-06-03 H.J. Lu <hongjiu.lu@intel.com>
17011 Julia Koval <julia.koval@intel.com>
17023 * config/i386/i386-protos.h (ix86_epilogue_uses): New prototype.
17024 * config/i386/i386.c (ix86_conditional_register_usage): Preserve
17025 all registers, except for function return registers if there are
17026 no caller-saved registers.
17027 (ix86_set_func_type): New function.
17028 (ix86_set_current_function): Call ix86_set_func_type to set
17029 no_caller_saved_registers and func_type. Call reinit_regs if
17030 caller-saved registers are changed. Don't allow MPX, SSE, MMX
17031 nor x87 instructions in interrupt handler nor function with
17032 no_caller_saved_registers attribute.
17033 (ix86_function_ok_for_sibcall): Return false if there are no
17034 caller-saved registers.
17035 (type_natural_mode): Don't warn ABI change for MMX in interrupt
17037 (ix86_function_arg_advance): Skip for callee in interrupt handler.
17038 (ix86_function_arg): Return special arguments in interrupt handler.
17039 (ix86_promote_function_mode): Promote pointer to word_mode only
17040 for normal functions.
17041 (ix86_can_use_return_insn_p): Don't use `ret' instruction in
17043 (ix86_epilogue_uses): New function.
17044 (ix86_hard_regno_scratch_ok): Likewise.
17045 (ix86_save_reg): Preserve all registers in interrupt handler
17046 after reload. Preserve all registers, except for function return
17047 registers, if there are no caller-saved registers after reload.
17048 (find_drap_reg): Always use callee-saved register if there are
17049 no caller-saved registers.
17050 (ix86_minimum_incoming_stack_boundary): Return MIN_STACK_BOUNDARY
17051 for interrupt handler.
17052 (ix86_expand_prologue): Don't allow DRAP in interrupt handler.
17053 Emit cld instruction if stringops are used in interrupt handler
17054 or interrupt handler isn't a leaf function.
17055 (ix86_expand_epilogue): Generate interrupt return for interrupt
17056 handler and pop the 'ERROR_CODE' off the stack before interrupt
17057 return in exception handler.
17058 (ix86_expand_call): Disallow calling interrupt handler directly.
17059 If there are no caller-saved registers, mark all registers that
17060 are clobbered by the call which returns as clobbered.
17061 (ix86_handle_no_caller_saved_registers_attribute): New function.
17062 (ix86_handle_interrupt_attribute): Likewise.
17063 (ix86_attribute_table): Add interrupt and no_caller_saved_registers
17065 (TARGET_HARD_REGNO_SCRATCH_OK): Likewise.
17066 * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Use argument
17067 accumulation in interrupt function if stack may be realigned to
17069 (EPILOGUE_USES): New.
17070 (function_type): New enum.
17071 (machine_function): Add func_type and no_caller_saved_registers.
17072 * config/i386/i386.md (UNSPEC_INTERRUPT_RETURN): New.
17073 (interrupt_return): New pattern.
17074 * doc/extend.texi: Document x86 interrupt and
17075 no_caller_saved_registers attributes.
17077 2016-06-03 Bernd Schmidt <bschmidt@redhat.com>
17079 PR tree-optimization/52171
17080 * builtins.c (expand_cmpstrn_or_cmpmem): Delete, moved elsewhere.
17081 (expand_builtin_memcmp): New arg RESULT_EQ. All callers changed.
17082 Look for constant strings. Move some code to emit_block_cmp_hints
17084 * builtins.def (BUILT_IN_MEMCMP_EQ): New.
17085 * defaults.h (COMPARE_MAX_PIECES): New macro.
17086 * expr.c (move_by_pieces_d, store_by_pieces_d): Remove old structs.
17087 (move_by_pieces_1, store_by_pieces_1, store_by_pieces_2): Remvoe.
17088 (clear_by_pieces_1): Don't declare. Move definition before use.
17089 (can_do_by_pieces): New static function.
17090 (can_move_by_pieces): Use it. Return bool.
17091 (by_pieces_ninsns): Renamed from move_by_pieces_ninsns. New arg
17092 OP. All callers changed. Handle COMPARE_BY_PIECES.
17093 (class pieces_addr); New.
17094 (pieces_addr::pieces_addr, pieces_addr::decide_autoinc,
17095 pieces_addr::adjust, pieces_addr::increment_address,
17096 pieces_addr::maybe_predec, pieces_addr::maybe_postinc): New member
17098 (class op_by_pieces_d): New.
17099 (op_by_pieces_d::op_by_pieces_d, op_by_pieces_d::run): New member
17101 (class move_by_pieces_d, class compare_by_pieces_d,
17102 class store_by_pieces_d): New subclasses of op_by_pieces_d.
17103 (move_by_pieces_d::prepare_mode, move_by_pieces_d::generate,
17104 move_by_pieces_d::finish_endp, store_by_pieces_d::prepare_mode,
17105 store_by_pieces_d::generate, store_by_pieces_d::finish_endp,
17106 compare_by_pieces_d::generate, compare_by_pieces_d::prepare_mode,
17107 compare_by_pieces_d::finish_mode): New member functions.
17108 (compare_by_pieces, emit_block_cmp_via_cmpmem): New static
17110 (expand_cmpstrn_or_cmpmem): Moved here from builtins.c.
17111 (emit_block_cmp_hints): New function.
17112 (move_by_pieces, store_by_pieces, clear_by_pieces): Rewrite to just
17113 use the newly defined classes.
17114 * expr.h (by_pieces_constfn): New typedef.
17115 (can_store_by_pieces, store_by_pieces): Use it in arg declarations.
17116 (emit_block_cmp_hints, expand_cmpstrn_or_cmpmem): Declare.
17117 (move_by_pieces_ninsns): Don't declare.
17118 (can_move_by_pieces): Change return value to bool.
17119 * target.def (TARGET_USE_BY_PIECES_INFRASTRUCTURE_P): Update docs.
17120 (compare_by_pieces_branch_ratio): New hook.
17121 * target.h (enum by_pieces_operation): Add COMPARE_BY_PIECES.
17122 (by_pieces_ninsns): Declare.
17123 * targethooks.c (default_use_by_pieces_infrastructure_p): Handle
17125 (default_compare_by_pieces_branch_ratio): New function.
17126 * targhooks.h (default_compare_by_pieces_branch_ratio): Declare.
17127 * doc/tm.texi.in (STORE_MAX_PIECES, COMPARE_MAX_PIECES): Document.
17128 * doc/tm.texi: Regenerate.
17129 * tree-ssa-strlen.c: Include "builtins.h".
17130 (handle_builtin_memcmp): New static function.
17131 (strlen_optimize_stmt): Call it for BUILT_IN_MEMCMP.
17132 * tree.c (build_common_builtin_nodes): Create __builtin_memcmp_eq.
17134 2016-06-03 Alan Hayward <alan.hayward@arm.com>
17136 * tree-vect-stmts.c (vect_stmt_relevant_p): Do not vectorize non live
17137 relevant stmts which are simple and invariant.
17138 * tree-vect-loop.c (vectorizable_live_operation): Check relevance
17139 instead of simple and invariant
17141 2016-06-03 Alan Hayward <alan.hayward@arm.com>
17143 * tree-vect-loop.c (vect_analyze_loop_operations): Allow live stmts.
17144 (vectorizable_reduction): Check for new relevant state.
17145 (vectorizable_live_operation): vectorize live stmts using
17146 BIT_FIELD_REF. Remove special case for gimple assigns stmts.
17147 * tree-vect-stmts.c (is_simple_and_all_uses_invariant): New function.
17148 (vect_stmt_relevant_p): Check for stmts which are only used live.
17149 (process_use): Use of a stmt does not inherit it's live value.
17150 (vect_mark_stmts_to_be_vectorized): Simplify relevance inheritance.
17151 (vect_analyze_stmt): Check for new relevant state.
17152 * tree-vectorizer.h (vect_relevant): New entry for a stmt which is used
17153 outside the loop, but not inside it.
17155 2016-06-03 Alan Hayward <alan.hayward@arm.com>
17157 * tree-vectorizer.h (vect_get_vec_def_for_operand_1): New.
17158 * tree-vect-stmts.c (vect_get_vec_def_for_operand_1): New.
17159 (vect_get_vec_def_for_operand): Split out code.
17161 2016-06-03 Segher Boessenkool <segher@kernel.crashing.org>
17163 * config/rs6000/rs6000.md (define_peepholes for two mfcr's): Delete.
17165 2016-06-03 Alan Hayward <alan.hayward@arm.com>
17167 * tree-vect-stmts.c (vectorizable_call) Remove GOMP_SIMD_LANE code.
17169 2016-06-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17171 * config/arm/thumb1.md (*thumb1_mulsi3): Fix typos in comment.
17173 2016-06-03 Jakub Jelinek <jakub@redhat.com>
17175 PR middle-end/71387
17176 * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): If redirecting
17177 to noreturn e->callee->decl that has void return type and void
17178 arguments, adjust gimple_call_fntype and remove lhs even if it had
17179 previously addressable type.
17181 2016-06-02 Jeff Law <law@redhat.com>
17183 PR tree-optimization/71328
17184 * tree-ssa-threadupdate.c (duplicate_thread_path): Fix off-by-one
17185 error when checking for a jump back onto the copied path.
17187 2016-06-02 David Malcolm <dmalcolm@redhat.com>
17189 * config/microblaze/microblaze.c (get_branch_target): Add return
17190 NULL_RTX for the non-CALL_P case.
17191 (insert_wic_for_ilb_runout): Remove unused local "wic_addr1".
17192 (insert_wic): Remove unused local "j".
17194 2016-06-02 Martin Liska <mliska@suse.cz>
17196 * predict.def: Fix typo in PRED_FORTRAN_FAIL_IO display name.
17198 2016-06-02 H.J. Lu <hongjiu.lu@intel.com>
17199 Julia Koval <julia.koval@intel.com>
17201 * function.c (assign_parm_setup_stack): Force source into a
17202 register if needed.
17203 * target.def (function_incoming_arg): Update documentation to
17204 allow arbitrary address computation based on hard register.
17205 * doc/tm.texi: Regenerated.
17207 2016-06-02 Martin Liska <mliska@suse.cz>
17209 * predict.c (combine_predictions_for_bb): Fix first match in
17210 cases where a first predictor contains more than one occurence
17211 in list of predictors. Take the best value in such case.
17213 2016-06-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17215 PR rtl-optimization/71295
17216 * rtlanal.c (subreg_get_info): If taking a subreg at the requested
17217 offset would go over the size of the inner mode reject it.
17219 2016-06-02 Jakub Jelinek <jakub@redhat.com>
17221 * config/i386/sse.md (*vec_concatv4si): Use v=v,v instead of
17222 x=x,x and v=v,m instead of x=x,m.
17224 * config/i386/sse.md (*vec_concatv2si_sse4_1): Add avx512dq v=Yv,rm
17225 alternative. Change x=x,x alternative to v=Yv,Yv and x=rm,C
17226 alternative to v=rm,C.
17228 * config/i386/sse.md (*vec_concatv2di): Add x86_avx512dq v=Yv,rm
17229 alternative. Change x=xm,C alternative to v=vm,C, x=x,x alternative
17230 to v=Yv,Yv and x=x,m to v=v,m. Use maybe_evex prefix attribute
17231 instead of vex for the last two above mentioned alternatives.
17233 2016-06-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17236 * config/arm/arm.c (arm_output_multireg_pop): Guard "pop" on update.
17238 2016-06-02 Segher Boessenkool <segher@kernel.crashing.org>
17240 * config/rs6000/dfp.md (trunctddd2): Correct the "length" attribute.
17242 2016-06-01 David Malcolm <dmalcolm@redhat.com>
17244 * config/rl78/rl78.c (rl78_expand_prologue): Convert local
17245 from int to unsigned.
17247 2016-05-31 Michael Meissner <meissner@linux.vnet.ibm.com>
17249 * config/rs6000/vsx.md (vsx_splat_<mode>, V2DI/V2DF): Simplify
17250 alternatives, eliminating preferred register class. Add support
17251 for the MTVSRDD instruction in ISA 3.0.
17252 (vsx_splat_v4si_internal): Use splat_input_operand instead of
17253 reg_or_indexed_operand.
17254 (vsx_splat_v4sf_internal): Likewise.
17256 2016-05-31 Michael Meissner <meissner@linux.vnet.ibm.com>
17259 * config/rs6000/vsx.md (xxspltib_<mode>_nosplit): Add alternatives
17260 for loading up all 0's or all 1's.
17262 2016-06-01 Thomas Preud'homme <thomas.preudhomme@arm.com>
17264 * doc/sourcebuild.texi (arm_acq_rel): Document new effective target.
17266 2016-06-01 Eduard Sanou <dhole@openmailbox.org>
17268 * doc/cppenv.texi: Note that the `%s` in `date` is a non-standard
17270 * gcc.c (driver_handle_option): Call set_source_date_epoch_envvar.
17271 * gcc.c (set_source_date_epoch_envvar): New function, sets
17272 the SOURCE_DATE_EPOCH environment variable to the current time.
17274 2016-06-01 Eric Botcazou <ebotcazou@adacore.com>
17276 * tree-vect-loop.c (vect_determine_vectorization_factor): Also compute
17277 the factor for live Phi nodes.
17279 2016-06-01 Jan Hubicka <hubicka@ucw.cz>
17281 * loop-dolop.c (doloop_optimize): Us likely max iteration bound.
17282 * tree-parloops.c (parallelize_loops): likewise.
17283 * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop,
17284 tree_unswitch_outer_loop): likewise.
17286 2016-06-01 Jakub Jelinek <jakub@redhat.com>
17288 PR middle-end/71371
17289 * gimplify.c (gimplify_omp_for): Temporarily clear gimplify_omp_ctxp
17290 around creation of the temporary.
17292 2016-06-01 Richard Biener <rguenther@suse.de>
17294 PR tree-optimization/71366
17295 * tree-ssa-loop-ivcanon.c (edges_to_remove): New global.
17296 (unloop_loops): Move removing edges here ...
17297 (try_unroll_loop_completely): ... from here.
17298 (try_peel_loop): ... and here.
17299 (tree_unroll_loops_completely_1): Track parent loops via
17300 bitmap of header BBs.
17301 (tree_unroll_loops_completely): Adjust for that.
17303 2016-06-01 Kelvin Nilsen <kelvin@gcc.gnu.org>
17305 * config/rs6000/altivec.h (vec_slv): New macro.
17306 (vec_srv): New macro.
17307 * config/rs6000/altivec.md (UNSPEC_VSLV): New value.
17308 (UNSPEC_VSRV): New value.
17311 * config/rs6000/rs6000-builtin.def (vslv): New builtin definition.
17312 (vsrv): New builtin definition.
17313 * config/rs6000/rs6000-c.c (P9V_BUILTIN_VSLV): Macro expansion to
17314 define argument types for new builtin.
17315 (P9V_BUILTIN_VSRV): Macro expansion to define argument types for
17317 * doc/extend.texi: Document the new vec_vslv and vec_srv built-in
17320 2016-06-01 Uros Bizjak <ubizjak@gmail.com>
17321 Jocelyn Mayer <l_indien@magic.fr>
17324 * config/i386/driver-i386.c (host_detect_local_cpu): Correctly
17325 detect processor family for signature_CENTAUR_ebx.
17326 <case PROCESSOR_I486>: Pass c3, winchip2 or winchip-c6 for
17327 signature_CENTAUR_ebx.
17328 <case PROCESSOR _PENTIUMPRO>: Pass c3-2 for signature_CENTAUR_ebx.
17329 <default>: Pass x86-64 for has_longmode.
17331 2016-06-01 Nathan Sidwell <nathan@acm.org>
17333 * config/nvptx/nvptx.c (nvptx_assemble_undefined_decl): Reject
17336 2016-06-01 Richard Biener <rguenther@suse.de>
17338 PR tree-optimization/71261
17339 * tree-vect-patterns.c (check_bool_pattern): Gather a hash-set
17340 of stmts successfully put in the bool pattern. Remove
17341 single-use restriction.
17342 (adjust_bool_pattern_cast): Add cast at the use site via the
17343 pattern def sequence.
17344 (adjust_bool_pattern): Remove recursion, maintain a hash-map
17345 of patterned defs. Use the pattern def seqence instead of
17346 multiple independent patterns.
17347 (sort_after_uid): New qsort compare function.
17348 (adjust_bool_stmts): New function to process stmts in the bool
17349 pattern in IL order.
17350 (vect_recog_bool_pattern): Adjust.
17351 * tree-if-conv.c (ifcvt_split_def_stmt): Remove.
17352 (ifcvt_walk_pattern_tree): Likewise.
17353 (stmt_is_root_of_bool_pattern): Likewise.
17354 (ifcvt_repair_bool_pattern): Likewise.
17355 (tree_if_conversion): Do not call ifcvt_repair_bool_pattern.
17357 2016-06-01 Jan Hubicka <hubicka@ucw.cz>
17359 * loop-unroll.c (decide_unroll_constant_iterations,
17360 decide_unroll_runtime_iterations, decide_unroll_stupid): Use
17361 likely upper bounds.
17362 * loop-iv.c (find_simple_exit): Dump likely upper bounds.
17364 2016-06-01 Thomas Schwinge <thomas@codesourcery.com>
17366 * tree-core.h (enum omp_clause_code): Remove
17367 OMP_CLAUSE_DEVICE_RESIDENT. Adjust all users.
17369 2016-06-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17371 * config/arm/sync.md (arm_store_exclusive<mode>):
17372 Use 'H' output modifier on operands[2] rather than creating a new
17373 entry in out-of-bounds memory of the operands array.
17374 (arm_store_release_exclusivedi): Likewise.
17376 2016-06-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17378 * config/arm/arm.c (arm_fusion_enabled_p): New function.
17379 * config/arm/arm-protos.h (arm_fusion_enabled_p): Declare prototype.
17380 * config/arm/crypto.md (crypto_<crypto_pattern>, CRYPTO_UNARY):
17381 Add "=w,0" alternative. Enable it when AES/AESMC fusion is enabled.
17383 2016-06-01 Eric Botcazou <ebotcazou@adacore.com>
17385 * tree-vect-loop.c (vect_determine_vectorization_factor): Also take
17386 into account live statements for mask producers.
17388 2016-06-01 Richard Biener <rguenther@suse.de>
17390 PR tree-optimization/71311
17391 * match.pd (@0 < @1 && @0 < @2 -> @0 < min(@1,@2)): Add :c and
17392 restrict to non-INTEGER_CST @0.
17394 2016-06-01 Richard Biener <rguenther@suse.de>
17396 * match.pd ((A & B) - (A & ~B) -> B - (A ^ B)): Add missing :c.
17397 (relational patterns): Use :c to avoid pattern duplications.
17399 2016-06-01 Richard Biener <rguenther@suse.de>
17401 * genmatch.c (comparison_code_p): New predicate.
17402 (swap_tree_comparison): New function.
17403 (commutate): Add for_vec parameter to append new for entries.
17404 Support commutating relational operators by swapping it alongside
17406 (lower_commutative): Adjust.
17407 (dt_simplify::gen): Do not pass artificial operators to gen
17409 (decision_tree::gen): Do not add artificial operators as parameters.
17410 (parser::parse_expr): Verify operator commutativity when :c is
17411 applied. Allow :C to override this.
17412 * match.pd: Adjust patterns to use :C instead of :c where required.
17414 2016-06-01 Patrick Palka <ppalka@gcc.gnu.org>
17416 PR tree-optimization/71077
17417 * tree-ssa-threadedge.c (simplify_control_stmt_condition_1): In
17418 the combining step, use boolean_false_node and boolean_true_node
17419 as the designated false/true return values.
17421 2016-05-31 Jan Hubicka <hubicka@ucw.cz>
17423 * predict.def (PRED_LOOP_EXTRA_EXIT): Define.
17424 * predict.c (predict_iv_comparison): Also check PRED_LOOP_EXTRA_EXIT.
17425 (predict_extra_loop_exits): Use PRED_LOOP_EXTRA_EXIT instead of
17428 2016-05-31 Jan Hubicka <hubicka@ucw.cz>
17430 * doc/invoke.texi (-frename-registers): Drop -fpeel-loops from list
17431 of flags impliying the register renaming.
17432 * toplev.c (process_options): Do not imply flag_rename_registers with
17435 2016-05-31 Oleg Endo <olegendo@gcc.gnu.org>
17437 * config/sh/sh.h (ASM_OUTPUT_SYMBOL_REF): Remove macro and use the
17438 default implementation.
17440 2016-05-31 Nathan Sidwell <nathan@acm.org>
17442 * dwarf2out.c (cur_line_info_table): Add GTY marker.
17444 2016-05-31 Oleg Endo <olegendo@gcc.gnu.org>
17446 * config/sh/constraints.md (b): Remove constraint.
17447 * config/sh/predicates.md (arith_reg_operand): Remove
17449 * config/sh/sh-modes.def (PDI): Remove.
17450 * config/sh/sh.c (sh_target_reg_class,
17451 sh_optimize_target_register_callee_saved): Remove functions.
17452 (sh_option_override): Don't set MASK_SAVE_ALL_TARGET_REGS.
17453 (sh_expand_epilogue): Update comment.
17454 (sh_hard_regno_mode_ok, sh_register_move_cost, calc_live_regs,
17455 sh_secondary_reload): Remove TARGET_REGS related code.
17456 * config/sh/sh.h (FIRST_TARGET_REG, LAST_TARGET_REG,
17457 TARGET_REGISTER_P): Remove macros.
17458 (SH_DBX_REGISTER_NUMBER, REG_ALLOC_ORDER): Remove target regs.
17459 * config/sh/sh.md (PR_MEDIA_REG, T_MEDIA_REG, FR23_REG, TR0_REG,
17460 TR1_REG, TR2_REG): Remove constants.
17461 * config/sh/sh.opt (SAVE_ALL_TARGET_REGS): Remove.
17463 2016-05-31 Oleg Endo <olegendo@gcc.gnu.org>
17465 * config/sh/sh.md (adddi3, subdi3, negdi2, abs<mode>2): Remove
17466 define_expand patterns.
17467 (adddi3_compact): Rename to adddi3.
17468 (subdi3_compact): Rename to subdi3.
17469 (*negdi2): Rename to negdi2.
17470 (*abs<mode>2): Rename to abs<mode>2.
17472 2016-05-31 Oleg Endo <olegendo@gcc.gnu.org>
17474 * config/rx/rx.md (FETCHOP_NO_MINUS): New code iterator.
17475 (atomic_<fetchop_name>_fetchsi): Extract minus operator into ...
17476 (atomic_sub_fetchsi): ... this new pattern.
17477 (mvtc): Add CC_REG clobber.
17479 2016-05-31 Marek Polacek <polacek@redhat.com>
17481 * gimplify.c (gimplify_switch_expr): Also handle GIMPLE_TRY.
17483 2016-05-31 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17485 * config/aarch64/aarch64.c (aarch_macro_fusion_pair_p): Use
17486 aarch64_fusion_enabled_p to check for fusion capabilities.
17488 2016-05-31 Richard Biener <rguenther@suse.de>
17490 PR tree-optimization/71352
17491 * tree-ssa-reassoc.c (zero_one_operation): Handle op equal to
17492 minus one and a negate.
17494 2016-05-31 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17496 * config/aarch64/aarch64.c (aarch64_simd_attr_length_move): Delete.
17497 * config/aarch64/aarch64-protos.h (aarch64_simd_attr_length_move):
17499 * config/aarch64/iterators.md (insn_count): Add descriptive comment.
17500 * config/aarch64/aarch64-simd.md (*aarch64_mov<mode>, VSTRUCT modes):
17501 Remove use of aarch64_simd_attr_length_move, set length attribute
17503 (*aarch64_be_movoi): Likewise.
17504 (*aarch64_be_movci): Likewise.
17505 (*aarch64_be_movxi): Likewise.
17507 2016-05-31 Jan Hubicka <hubicka@ucw.cz>
17509 * loop-init.c (gate): Do not enale RTL loop unroller with -fpeel-loops.
17510 It no longer does that.
17511 * toplev.c (process_options): Do not enable flag_web with -fpeel-loops.
17513 2016-05-31 Wladimir J. van der Laan <laanwj@gmail.com>
17515 * config/aarch64/arm_neon.h (vdupb_laneq_s8): Remove spurious
17516 attribute __unused__.
17518 2016-05-31 Thomas Preud'homme <thomas.preudhomme@arm.com>
17520 * config/arm/arm-protos.h (arm_arch_thumb1): Declare.
17521 * config/arm/arm.c (arm_arch_thumb1): Define.
17522 (arm_option_override): Initialize arm_arch_thumb1.
17523 * config/arm/arm.h (arm_arch_thumb1): Declare.
17524 (TARGET_ARM_ARCH_ISA_THUMB): Use arm_arch_thumb to determine if target
17525 support Thumb-1 ISA.
17527 2016-05-31 Kirill Yukhin <kirill.yukhin@intel.com>
17530 * config/i386/sse.md (define_insn_and_split "*vec_extractv4sf_0"): Use
17531 `Yv' for scalar operand.
17533 2016-05-31 Tom de Vries <tom@codesourcery.com>
17535 PR tree-optimization/69068
17536 * graphite-isl-ast-to-gimple.c (copy_bb_and_scalar_dependences): Handle
17537 phis with more than two args.
17539 2016-05-30 Andreas Tobler <andreast@gcc.gnu.org>
17541 * config.gcc: Move hard float support for arm*hf*-*-freebsd* into
17542 armv6*-*-freebsd* for FreeBSD 11. Eliminate the arm*hf*-*-freebsd*
17545 2016-05-30 Jose E. Marchesi <jose.marchesi@oracle.com>
17547 * config.gcc (sparc*-*-*): Support cpu_32, cpu_64, tune_32 and
17549 * doc/install.texi (--with-cpu-32, --with-cpu-64): Document
17551 * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): Add entries for
17552 cpu_32, cpu_64, tune_32 and tune_64.
17553 * config/sparc/sol2.h (OPTION_DEFAULT_SPECS): Likewise.
17555 2016-05-30 Uros Bizjak <ubizjak@gmail.com>
17557 * config/i386/sync.md (mfence_nosse): Use "lock orl $0, -4(%esp)".
17559 2016-05-30 Andi Kleen <ak@linux.intel.com>
17561 * auto-profile.c (read_profile): Replace asserts with errors
17562 when file does not exist.
17563 * gcov-io.c (gcov_read_words): Dito.
17565 2016-05-30 Jan Hubicka <hubicka@ucw.cz>
17567 * tree-cfg.c (print_loop): Print likely upper bounds.
17569 2016-05-30 Jan Hubicka <hubicka@ucw.cz>
17571 * doc/invoke.texi (-fpeel-loops,-O3): Update documentation.
17572 * opts.c (default_options): Enable peel loops at -O3.
17573 * tree-ssa-loop-ivcanon.c (peeled_loops): New static var.
17574 (try_peel_loop): Do not re-peel already peeled loops;
17575 use likely upper bounds; fix profile updating.
17576 (pass_complete_unroll::execute): Initialize peeled_loops.
17578 2016-05-30 Martin Liska <mliska@suse.cz>
17580 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Scale
17581 computed costs by frequency of BB they belong to.
17582 (get_scaled_computation_cost_at): New function.
17584 2016-05-30 Alexander Monakov <amonakov@ispras.ru>
17585 Marc Glisse <marc.glisse@inria.fr>
17587 PR tree-optimization/71289
17588 * match.pd (-1 / B < A, A > -1 / B): New transformations.
17590 2016-05-30 Jan Hubicka <hubicka@ucw.cz>
17592 * tree-vect-loop.c (vect_transform_loop): Update likely bounds.
17594 2016-05-30 Jan Hubicka <hubicka@ucw.cz>
17596 * tree-ssa-loop-ivcanon.c (try_peel_loop): Correctly set wont_exit
17597 for peeled copies; avoid underflow when updating estimates; correctly
17598 scale loop profile.
17600 2016-05-30 Kugan Vivekanandarajah <kuganv@linaro.org>
17602 * tree-ssa-reassoc.ci (swap_ops_for_binary_stmt): Fix typo from commit
17603 r236875. Corrected oe3 to oe2 as obvious.
17605 2016-05-30 Kugan Vivekanandarajah <kuganv@linaro.org>
17607 PR middle-end/71269
17608 PR middle-end/71252
17609 * tree-ssa-reassoc.c (insert_stmt_before_use): Use find_insert_point so
17610 that inserted stmt will not dominate stmts that defines its operand.
17611 (rewrite_expr_tree): Add stmt_to_insert before adding the use stmt.
17612 (rewrite_expr_tree_parallel): Likewise.
17614 2016-05-30 Kugan Vivekanandarajah <kuganv@linaro.org>
17616 PR middle-end/71252
17617 * tree-ssa-reassoc.c (swap_ops_for_binary_stmt): Fix swap such that
17618 all fields including stmt_to_insert are swapped.
17620 2016-05-30 Jan Hubicka <hubicka@ucw.cz>
17622 * predict.h (force_edge_cold): Declare.
17623 * predict.c (force_edge_cold): New function.
17624 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Fix profile
17626 (canonicalize_loop_induction_variables): Fix formating.
17628 2016-05-30 Eric Botcazou <ebotcazou@adacore.com>
17630 * config/visium/visium.c (visium_split_double_add): Minor tweaks.
17631 (visium_expand_copysign): Use gen_int_mode directly.
17632 (visium_compute_frame_size): Minor tweaks.
17634 2016-05-30 Jan Hubicka <hubicka@ucw.cz>
17636 * tree-vect-loop.c (vect_analyze_loop_2): Use
17637 likely_max_stmt_executions_int.
17639 2016-05-30 Tom de Vries <tom@codesourcery.com>
17641 PR tree-optimization/69067
17642 * graphite-isl-ast-to-gimple.c (get_def_bb_for_const): Remove assert.
17644 2016-05-29 Uros Bizjak <ubizjak@gmail.com>
17647 * config/i386/sync.md (define_peephole2 atomic_storedi_fpu):
17648 New peepholes to remove unneeded fild/fistp pairs.
17649 (define_peephole2 atomic_loaddi_fpu): Ditto.
17651 2016-05-27 Jan Hubicka <hubicka@ucw.cz>
17653 * predict.c (maybe_hot_frequency_p): Avoid division.
17655 2016-05-28 Gerald Pfeifer <gerald@pfeifer.com>
17657 * doc/install.texi: Use https for shop.fsf.org.
17659 2016-05-27 Jan Hubicka <hubicka@ucw.cz>
17661 * tree-ssa-loop-ivopts.c (estimated_stmt_executions_int): Use
17662 likely_max_stmt_executions_int.
17664 2016-05-27 Jan Hubicka <hubicka@ucw.cz>
17666 * tree-ssa-loop-prefetch.c (loop_prefetch_arrays): Use
17667 likely_max_stmt_executions_int.
17669 2016-05-27 Jan Hubicka <hubicka@ucw.cz>
17671 * profile.c (compute_branch_probabilities): Do not report hitrates
17673 (branch_prob): Report hitrates here.
17674 * predict.c (gimple_predict_edge): Do not assert profile status;
17675 fix formatting issues.
17677 2016-05-27 Jan Hubicka <hubicka@ucw.cz>
17679 * predict.c (edge_predicted_by_p): New function.
17680 (predict_paths_for_bb): Do not put multiple predictions of the same type
17683 2016-05-27 Jan Hubicka <hubicka@ucw.cz>
17685 * tree-ssa-loop-niter.c (number_of_iterations_exit): Revert accidental
17688 2016-05-28 Alan Modra <amodra@gmail.com>
17690 * dominance.c (verify_dominators): Don't segfault on NULL imm_bb.
17692 2016-05-28 Alan Modra <amodra@gmail.com>
17694 PR rtl-optimization/71275
17695 * ira.c (ira): Free dominance info.
17697 2016-05-27 Gerald Pfeifer <gerald@pfeifer.com>
17699 * doc/sourcebuild.texi: New address for upstream Go repository.
17701 2016-05-27 Thomas Preud'homme <thomas.preudhomme@arm.com>
17703 * config/arm/arm.h (TARGET_ARM_V6M): Remove.
17704 (TARGET_ARM_V7M): Likewise.
17706 2016-05-26 Jeff Law <law@redhat.com>
17708 * tree-ssa-threadedge.c: Remove include of tree-ssa-threadbackward.h.
17709 (thread_across_edge): Remove calls to find_jump_threads_backwards.
17710 * passes.def: Add jump threading passes before DOM/VRP.
17711 * tree-ssa-threadbackward.c (find_jump_threads_backwards): Change
17712 argument to a basic block from an edge. Remove tests which are
17714 (pass_data_thread_jumps, class pass_thread_jumps): New.
17715 (pass_thread_jumps::gate, pass_thread_jumps::execute): New.
17716 (make_pass_thread_jumps): Likewise.
17717 * tree-pass.h (make_pass_thread_jumps): Declare.
17719 2016-05-27 Eric Botcazou <ebotcazou@adacore.com>
17721 * config/visium/visium-protos.h (split_double_move): Rename into...
17722 (visium_split_double_move): ...this.
17723 (visium_split_double_add): Declare.
17724 * config/visium/visium.c (split_double_move): Rename into...
17725 (visium_split_double_move): ...this.
17726 (visium_split_double_add): New function.
17727 (visium_expand_copysign): Renumber operands for consistency.
17728 * config/visium/visium.md (DImode move splitter): Adjust to renaming.
17729 (DFmode move splitter): Likewise.
17730 (*addi3_insn): Split by means of visium_split_double_add.
17731 (*adddi3_insn_flags): Delete.
17732 (*plus_plus_sltu<subst_arith>): New insn.
17733 (*subdi3_insn): Split by means of visium_split_double_add.
17734 (subdi3_insn_flags): Delete.
17735 (*minus_minus_sltu<subst_arith>): New insn.
17736 (*negdi2_insn): Split by means of visium_split_double_add.
17737 (*negdi2_insn_flags): Delete.
17739 2016-05-27 Ulrich Weigand <uweigand@de.ibm.com>
17741 * configure.ac: Treat a --with-headers option without argument
17742 the same as the default (i.e. consult sys-include directory).
17743 * configure: Regenerate.
17745 2016-05-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17747 * config/aarch64/aarch64.c (aarch64_fusion_enabled_p): New function.
17748 * config/aarch64/aarch64-protos.h (aarch64_fusion_enabled_p): Declare
17750 * config/aarch64/aarch64-simd.md (aarch64_crypto_aes<aesmc_op>v16qi):
17751 Add "=w,0" alternative. Enable it when AES/AESMC fusion is enabled.
17753 2016-05-27 Jiong Wang <jiong.wang@arm.com>
17756 * config/aarch64/aarch64.c (aarch64_expand_builtin_va_start): Honor
17757 tree-stdarg analysis results.
17758 (aarch64_setup_incoming_varargs): Likewise.
17760 2016-05-27 Jiong Wang <jiong.wang@arm.com>
17762 * config/aarch64/aarch64.c (aarch64_build_builtin_va_list): Initialize
17763 va_list_gpr_counter_field and va_list_fpr_counter_field.
17765 2016-05-27 Wilco Dijkstra <wdijkstr@arm.com>
17768 * config/aarch64/aarch64.h (CANNOT_CHANGE_MODE_CLASS): Remove.
17769 * config/aarch64/aarch64.c
17770 (aarch64_cannot_change_mode_class): Remove function.
17771 * config/aarch64/aarch64-protos.h
17772 (aarch64_cannot_change_mode_class): Remove.
17774 2016-05-27 Jan Hubicka <hubicka@ucw.cz>
17776 * cfgloop.c (record_niter_bound): Record likely upper bounds.
17777 (likely_max_stmt_executions_int, get_likely_max_loop_iterations,
17778 get_likely_max_loop_iterations_int): New.
17779 * cfgloop.h (struct loop): Add nb_iterations_likely_upper_bound,
17780 any_likely_upper_bound.
17781 (get_likely_max_loop_iterations_int, get_likely_max_loop_iterations):
17783 * cfgloopmanip.c (copy_loop_info): Copy likely upper bounds.
17784 * loop-unroll.c (unroll_loop_constant_iterations): Update likely
17786 (unroll_loop_constant_iterations): Likewise.
17787 (unroll_loop_runtime_iterations): Likewise.
17788 * lto-streamer-in.c (input_cfg): Stream likely upper bounds.
17789 * lto-streamer-out.c (output_cfg): Likewise.
17790 * tree-ssa-loop-ivcanon.c (try_peel_loop): Update likely upper
17792 (canonicalize_loop_induction_variables): Dump likely upper bounds.
17793 * tree-ssa-loop-niter.c (record_estimate): Record likely upper bounds.
17794 (likely_max_loop_iterations): New.
17795 (likely_max_loop_iterations_int): New.
17796 (likely_max_stmt_executions): New.
17797 * tree-ssa-loop-niter.h (likely_max_loop_iterations,
17798 likely_max_loop_iterations_int, likely_max_stmt_executions_int,
17799 likely_max_stmt_executions): Declare.
17801 2016-05-27 Marek Polacek <polacek@redhat.com>
17803 PR middle-end/71308
17804 * gimple-fold.c (gimple_fold_call): Check that LHS is not null.
17806 2016-05-27 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
17808 * config/s390/s390.md (2x risbg splitters): Use
17809 reg_overlap_mentioned_p instead of rtx_equal_p.
17811 2016-05-27 Dominik Vogt <vogt@linux.vnet.ibm.com>
17813 * combine.c (make_compound_operation): Take known zero bits into
17814 account when checking for possible zero_extend.
17816 2016-05-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17818 * config/aarch64/aarch64.md (ashl<mode>3, SHORT modes):
17819 Use const_int_operand for operand 2 predicate. Simplify expand code
17822 2016-05-27 Ilya Enkovich <ilya.enkovich@intel.com>
17824 PR middle-end/71279
17825 * fold-const.c (fold_ternary_loc): Don't fold VEC_COND_EXPR
17828 2016-05-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17830 * config/aarch64/aarch64-modes.def (CC_ZESWP, CC_SESWP): Delete.
17831 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Remove condition
17832 that returns CC_SESWPmode and CC_ZESWPmode.
17833 (aarch64_get_condition_code_1): Remove handling of CC_SESWPmode
17835 (aarch64_rtx_costs): Likewise.
17837 2016-05-26 Michael Meissner <meissner@linux.vnet.ibm.com>
17839 * config/rs6000/rs6000.c (rs6000_emit_p9_fp_minmax): New function
17840 for ISA 3.0 min/max support.
17841 (rs6000_emit_p9_fp_cmove): New function for ISA 3.0 floating point
17842 conditional move support.
17843 (rs6000_emit_cmove): Call rs6000_emit_p9_fp_minmax and
17844 rs6000_emit_p9_fp_cmove if the ISA 3.0 instructions are
17846 * config/rs6000/rs6000.md (SFDF2): New iterator to allow doing
17847 conditional moves where the comparison type is different from move
17849 (fp_minmax): New code iterator for smin/smax.
17850 (minmax): New code attributes for min/max.
17851 (SMINMAX): Likewise.
17852 (smax<mode>3): Combine min, max insns into one insn using the
17853 fp_minmax code iterator. Add support for ISA 3.0 min/max
17854 instructions that don't need -ffast-math.
17855 (s<minmax><mode>3): Likewise.
17856 (smax<mode>3_vsx): Likewise.
17857 (smin<mode>3): Likewise.
17858 (s<minmax><mode>3_vsx): Likewise.
17859 (smin<mode>3_vsx): Likewise.
17860 (pre-VSX min/max splitters): Likewise.
17861 (s<minmax><mode>3_fpr): Likewise.
17862 (movsfcc): Rewrite floating point conditional moves to combine
17863 SFmode/DFmode into a single insn.
17864 (mov<mode>cc): Likewise.
17865 (movdfcc): Likewise.
17866 (fselsfsf4): Combine FSEL cases into a single insn, using SFDF and
17867 SFDF2 iterators to handle all combinations.
17868 (fseldfsf4): Likewise.
17869 (fsel<SFDF:mode><SFDF2:mode>4): Likewise.
17870 (fseldfdf4): Likewise.
17871 (fselsfdf4): Likewise.
17872 (mov<SFDF:mode><SFDF2:mode>cc_p9): Add support for the ISA 3.0
17873 comparison instructions that set a 0/-1 mask, and use it for
17874 floating point conditional move via XXSEL.
17875 (fpmask<mode>): Likewise.
17876 (xxsel<mode>): Likewise.
17877 * config/rs6000/predicates.md (min_max_operator): Delete, no
17879 (fpmask_comparison_operaton): New insn for ISA 3.0 comparison
17880 instructions that generate a 0/-1 mask for use with XXSEL.
17881 * config/rs6000/rs6000.h (TARGET_MINMAX_SF): New helper macros to
17882 say whether floating point min/max is available, either through
17883 FSEL, ISA 2.06 min/max, and ISA 3.0 min/max instrucitons.
17884 (TARGET_MINMAX_DF): Likewise.
17886 2016-05-27 Alan Modra <amodra@gmail.com>
17888 PR rtl-optimization/71275
17889 * ira.c (ira): Call loop_optimizer_init to set up bb_loop_depth
17890 for update_equiv_regs and combine_and_move_insns.
17892 2016-05-26 Uros Bizjak <ubizjak@gmail.com>
17894 * config/i386/i386.md (*movqi_internal) <attr "isa">: Use
17895 if_then_else or cond RTXes to calculate attribute value.
17896 * config/i386/mmx.md (*vec_extractv2sf_1) <attr "prefix_rep">: Ditto.
17897 <attr "length_immediate>: Ditto.
17898 (*vec_extractv2sf_1) <attr "length_immediate">: Ditto.
17899 * config/i386/sse.md (sse_loadlps) <attr "length_immediate">: Ditto.
17900 (*vec_concatv2sf_sse4_1) <attr "isa">: Ditto.
17901 <attr "type">: Ditto.
17902 <attr "prefix_data16">: Ditto.
17903 <attr "prefix_extra">: Ditto.
17904 <attr "length_immediate">: Ditto.
17905 <attr "prefix">: Ditto.
17906 (vec_set<mode>_0) <attr "isa">: Ditto.
17907 <attr "prefix_extra">: Ditto.
17908 <attr "length_immediate">: Ditto.
17909 <attr "prefix">: Ditto.
17910 (*vec_interleave_highv2df) <attr "prefix_data16">: Ditto.
17911 (*vec_interleave_lowv2df) <attr "prefix_data16">: Ditto.
17912 (sse2_storelpd) <attr "prefix_data16">: Ditto.
17913 (sse2_loadhpd) <attr "prefix_data16">: Ditto.
17914 (sse2_loadlpd) <attr "prefix_data16">: Ditto.
17915 <attr "length_immediate">: Ditto.
17916 <attr "prefix">: Ditto.
17917 (sse2_movsd) <attr "length_immediate">: Ditto.
17918 <attr "prefix">: Ditto.
17919 (vec_concatv2df) <attr "isa">: Ditto.
17920 <attr "prefix">: Ditto.
17921 (*vec_extractv4si) <attr "prefix_extra">: Ditto.
17922 (*vec_extractv2di_1) <attr "isa">: Ditto.
17923 <attr "type">: Ditto.
17924 <attr "length_immediate">: Ditto.
17925 <attr "prefix_rex">: Ditto.
17926 <attr "prefix_extra">: Ditto.
17927 (*vec_concatv2si_sse4_1) <attr "type">: Ditto.
17928 <attr "prefix_extra">: Ditto.
17929 <attr "length_immediate">: Ditto.
17930 (vec_concatv2di) <attr "isa">: Ditto.
17931 <attr "prefix_extra">: Ditto.
17932 <attr "length_immediate">: Ditto.
17933 <attr "prefix">: Ditto.
17935 2016-05-26 Martin Liska <mliska@suse.cz>
17937 * tree-ssa-loop-ivopts.c (comp_cost::infinite_cost_p): New
17939 (operator+): Likewise.
17940 (operator-): Likewise.
17941 (comp_cost::operator+=): Likewise.
17942 (comp_cost::operator-=): Likewise.
17943 (comp_cost::operator/=): Likewise.
17944 (comp_cost::operator*=): Likewise.
17945 (operator<): Likewise.
17946 (operator==): Likewise.
17947 (operator<=): Likewise.
17948 (new_cost): Remove.
17949 (infinite_cost_p): Likewise.
17950 (add_costs): Likewise.
17951 (sub_costs): Likewise.
17952 (compare_costs): Likewise.
17953 (set_group_iv_cost): Use the newly introduced functions.
17954 (get_address_cost): Likewise.
17955 (get_shiftadd_cost): Likewise.
17956 (force_expr_to_var_cost): Likewise.
17957 (split_address_cost): Likewise.
17958 (ptr_difference_cost): Likewise.
17959 (difference_cost): Likewise.
17960 (get_computation_cost_at): Likewise.
17961 (determine_group_iv_cost_generic): Likewise.
17962 (determine_group_iv_cost_address): Likewise.
17963 (determine_group_iv_cost_cond): Likewise.
17964 (autoinc_possible_for_pair): Likewise.
17965 (determine_group_iv_costs): Likewise.
17966 (cheaper_cost_pair): Likewise.
17967 (iv_ca_recount_cost): Likewise.
17968 (iv_ca_set_no_cp): Likewise.
17969 (iv_ca_set_cp): Likewise.
17970 (iv_ca_cost): Likewise.
17971 (iv_ca_new): Likewise.
17972 (iv_ca_dump): Likewise.
17973 (iv_ca_narrow): Likewise.
17974 (iv_ca_prune): Likewise.
17975 (iv_ca_replace): Likewise.
17976 (try_add_cand_for): Likewise.
17977 (try_improve_iv_set): Likewise.
17978 (find_optimal_iv_set): Likewise.
17980 2016-05-26 Richard Sandiford <richard.sandiford@arm.com>
17982 * tree-ssa-loop-ivopts.c (loop_body_includes_call): Don't assume
17983 that internal functions will clobber all caller-saved registers.
17985 2016-05-26 Wilco Dijkstra <wdijkstr@arm.com>
17987 * config/aarch64/aarch64.c (aarch64_case_values_threshold):
17988 Return a better case_values_threshold when optimizing.
17990 2016-05-26 Wilco Dijkstra <wdijkstr@arm.com>
17992 * config/aarch64/aarch64-simd.md (aarch64_combinez):
17993 Add ? to integer variant.
17994 (aarch64_combinez_be): Likewise.
17996 2016-05-26 Jakub Jelinek <jakub@redhat.com>
17998 * config/i386/sse.md (*vcvtps2ph_store<mask_name>): Use v constraint
17999 instead of x constraint.
18000 (vcvtps2ph256<mask_name>): Likewise.
18002 * config/i386/sse.md (*ssse3_palignr<mode>_perm): Add avx512bw
18003 alternative. Formatting fix.
18005 * config/i386/sse.md
18006 (<mask_codefor>avx512vl_shuf_<shuffletype>32x4_1<mask_name>): Rename
18008 (avx512vl_shuf_<shuffletype>32x4_1<mask_name>): ... this.
18009 (*avx_vperm_broadcast_v4sf): Use v constraint instead of x. Use
18010 maybe_evex prefix instead of vex.
18011 (*avx_vperm_broadcast_<mode>): Use v constraint instead of x. Handle
18012 EXT_REX_SSE_REG_P (op0) case in the splitter.
18014 2016-05-25 Jeff Law <law@redhat.com>
18016 PR tree-optimization/71272
18017 * tree-ssa-threadbackward.c (convert_and_register_jump_thread_path):
18018 Update comments. Add test for empty path.
18020 2016-05-25 Bill Seurer <seurer@linux.vnet.ibm.com>
18022 * config/rs6000/altivec.h (vec_cmpne): Add #define for vec_cmpne.
18023 * config/rs6000/rs6000-builtin.def (vec_cmpne): Add vec_cmpne as a
18024 special case builtin.
18025 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
18026 code for ALTIVEC_BUILTIN_VEC_CMPNE.
18027 * config/rs6000/rs6000.c (altivec_init_builtins): Add definition
18028 for __builtin_vec_cmpne.
18030 2016-05-25 Eric Botcazou <ebotcazou@adacore.com>
18032 * tree-ssa-phiopt.c (factor_out_conditional_conversion): Remove
18033 redundant test and bail out if the type of the new operand is not
18034 a GIMPLE register type after stripping a VIEW_CONVERT_EXPR.
18036 2016-05-25 Uros Bizjak <ubizjak@gmail.com>
18038 * config/i386/i386.opt (ix86_target_flags_explicit): Remove.
18039 (x_ix86_target_flags_explicit): Remove.
18040 * config/i386/i386.c (ix86_function_specific_save): Do not copy
18041 x_ix86_target_flags_explicit.
18042 (ix86_function_specific_restore): Ditto.
18044 2016-05-25 Uros Bizjak <ubizjak@gmail.com>
18045 H.J. Lu <hongjiu.lu@intel.com>
18048 * common/config/i386/i386-common.c
18049 (OPTION_MASK_ISA_GENERAL_REGS_ONLY_UNSET): New.
18050 (ix86_handle_option) <case OPT_mgeneral_regs_only>: Disable
18051 MPX, MMX, SSE and x87 instructions for -mgeneral-regs-only.
18052 * config/i386/i386.opt (ix86_target_flags): Add new Variable.
18053 (-mgeneral-regs-only): Add new option.
18054 * config/i386/i386.c (ix86_option_override_internal): Don't enable
18055 x87 instructions if only general registers are allowed.
18056 (ix86_target_string): Add ix86_flags argument. Handle additional
18057 flags options through ix86_flags argument. Update all callers.
18058 * doc/invoke.texi (x86 Options): Document -mgeneral-regs-only.
18060 2016-05-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18062 PR rtl-optimization/66940
18063 * ifcvt.c (noce_get_alt_condition): Check that incrementing or
18064 decrementing desired_val will not overflow before performing these
18067 2016-05-25 Ilya Verbin <ilya.verbin@intel.com>
18069 * config/i386/i386-builtin-types.def: Add V16SI_FTYPE_V16SF,
18070 V8DF_FTYPE_V8DF_ROUND, V16SF_FTYPE_V16SF_ROUND, V16SI_FTYPE_V16SF_ROUND.
18071 * config/i386/i386.c (enum ix86_builtins): Add
18072 IX86_BUILTIN_CVTPS2DQ512_MASK, IX86_BUILTIN_FLOORPS512,
18073 IX86_BUILTIN_FLOORPD512, IX86_BUILTIN_CEILPS512, IX86_BUILTIN_CEILPD512,
18074 IX86_BUILTIN_TRUNCPS512, IX86_BUILTIN_TRUNCPD512,
18075 IX86_BUILTIN_CVTPS2DQ512, IX86_BUILTIN_VEC_PACK_SFIX512,
18076 IX86_BUILTIN_FLOORPS_SFIX512, IX86_BUILTIN_CEILPS_SFIX512,
18077 IX86_BUILTIN_ROUNDPS_AZ_SFIX512.
18078 (builtin_description bdesc_args): Add __builtin_ia32_floorps512,
18079 __builtin_ia32_ceilps512, __builtin_ia32_truncps512,
18080 __builtin_ia32_floorpd512, __builtin_ia32_ceilpd512,
18081 __builtin_ia32_truncpd512, __builtin_ia32_cvtps2dq512,
18082 __builtin_ia32_vec_pack_sfix512, __builtin_ia32_roundps_az_sfix512,
18083 __builtin_ia32_floorps_sfix512, __builtin_ia32_ceilps_sfix512.
18084 Change IX86_BUILTIN_CVTPS2DQ512 to IX86_BUILTIN_CVTPS2DQ512_MASK for
18085 __builtin_ia32_cvtps2dq512_mask.
18086 (ix86_expand_args_builtin): Handle V8DF_FTYPE_V8DF_ROUND,
18087 V16SF_FTYPE_V16SF_ROUND, V16SI_FTYPE_V16SF_ROUND, V16SI_FTYPE_V16SF.
18088 (ix86_builtin_vectorized_function): Handle builtins mentioned above.
18089 * config/i386/sse.md
18090 (<mask_codefor>avx512f_fix_notruncv16sfv16si<mask_name><round_name>):
18092 (avx512f_fix_notruncv16sfv16si<mask_name><round_name>): ... this.
18093 (<mask_codefor>avx512f_cvtpd2dq512<mask_name><round_name>): Rename
18095 (avx512f_cvtpd2dq512<mask_name><round_name>): ... this.
18096 (avx512f_vec_pack_sfix_v8df): New define_expand.
18097 (avx512f_roundpd512): Rename to ...
18098 (avx512f_round<castmode>512): ... this. Change iterator.
18099 (avx512f_roundps512_sfix): New define_expand.
18100 (round<mode>2_sfix): Change iterator.
18102 2016-05-25 Nick Clifton <nickc@redhat.com>
18104 * config/msp430/msp430.c (msp430_attr): Produce an error if a
18105 static interrupt handler is detected.
18106 * config/msp430/msp430.h (LIB_SPEC): Do not use msp430.ld as the
18107 default linker script.
18108 * config/msp430/msp430.md (movpsihi2_lo): New pattern for loading
18109 the low part of a symbolic pointer.
18111 2016-05-25 Richard Biener <rguenther@suse.de>
18113 PR tree-optimization/71261
18114 * tree-if-conv.c (ifcvt_split_def_stmt): Walk uses on the
18115 interesting stmt instead of immediate uses when looking
18116 for the use operand to replace.
18118 2016-05-25 Martin Liska <mliska@suse.cz>
18120 * ipa-inline.c (edge_badness): Use 'w/' instead of 'w'.
18122 2016-05-25 Richard Biener <rguenther@suse.de>
18124 PR tree-optimization/71264
18125 * tree-vect-stmts.c (vect_init_vector): Properly deal with
18128 2016-05-25 Martin Liska <mliska@suse.cz>
18130 PR tree-optimization/71239
18131 * tree.c (array_at_struct_end_p): Do not call operand_equal_p
18132 if DECL_SIZE is NULL.
18134 2016-05-25 Richard Biener <rguenther@suse.de>
18136 * timevar.def (TV_TREE_LOOP_IFCVT): Add.
18137 * tree-if-conv.c (pass_data_if_conversion): Use it.
18139 2016-05-25 Bernd Edlinger <bernd.edlinger@hotmail.de>
18141 * cgraph.c (cgraph_node::get_availability): Fix typo in comment.
18142 * symtab.c (symtab_node::binds_to_current_def_p): Likewise.
18143 * varpool.c (varpool_node::get_availability): Likewise.
18145 2016-05-24 Michael Meissner <meissner@linux.vnet.ibm.com>
18147 * config/rs6000/altivec.md (VNEG iterator): New iterator for
18148 VNEGW/VNEGD instructions.
18149 (p9_neg<mode>2): New insns for ISA 3.0 VNEGW/VNEGD.
18150 (neg<mode>2): Add expander for V2DImode added in ISA 2.07, and
18151 support for ISA 3.0 VNEGW/VNEGD instructions.
18153 2016-05-24 Cesar Philippidis <cesar@codesourcery.com>
18155 * gimplify.c (omp_notice_variable): Use zero-length arrays for data
18156 pointers inside OACC_DATA regions.
18157 (gimplify_scan_omp_clauses): Prune firstprivate clause associated
18158 with OACC_DATA, OACC_ENTER_DATA and OACC_EXIT data regions.
18159 (gimplify_adjust_omp_clauses): Fix typo in comment.
18161 2016-05-24 Michael Meissner <meissner@linux.vnet.ibm.com>
18163 * config/rs6000/altivec.md (VParity): New mode iterator for vector
18164 parity built-in functions.
18165 (p9v_ctz<mode>2): Add support for ISA 3.0 vector count trailing
18167 (p9v_parity<mode>2): Likewise.
18168 * config/rs6000/vector.md (VEC_IP): New mode iterator for vector
18170 (ctz<mode>2): ISA 3.0 expander for vector count trailing zeros.
18171 (parity<mode>2): ISA 3.0 expander for vector parity.
18172 * config/rs6000/rs6000-builtin.def (BU_P9_MISC_1): New macros for
18174 (BU_P9_64BIT_MISC_0): Likewise.
18175 (BU_P9_MISC_0): Likewise.
18176 (BU_P9V_AV_1): Likewise.
18177 (BU_P9V_AV_2): Likewise.
18178 (BU_P9V_AV_3): Likewise.
18179 (BU_P9V_AV_P): Likewise.
18180 (BU_P9V_VSX_1): Likewise.
18181 (BU_P9V_OVERLOAD_1): Likewise.
18182 (BU_P9V_OVERLOAD_2): Likewise.
18183 (BU_P9V_OVERLOAD_3): Likewise.
18184 (VCTZB): Add vector count trailing zeros support.
18188 (VPRTYBD): Add vector parity support.
18189 (VPRTYBQ): Likewise.
18190 (VPRTYBW): Likewise.
18191 (VCTZ): Add overloaded vector count trailing zeros support.
18192 (VPRTYB): Add overloaded vector parity support.
18193 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
18194 overloaded vector count trailing zeros and parity instructions.
18195 * config/rs6000/rs6000.md (wd mode attribute): Add V1TI and TI for
18196 vector parity support.
18197 * config/rs6000/altivec.h (vec_vctz): Add ISA 3.0 vector count
18198 trailing zeros support.
18199 (vec_cntlz): Likewise.
18200 (vec_vctzb): Likewise.
18201 (vec_vctzd): Likewise.
18202 (vec_vctzh): Likewise.
18203 (vec_vctzw): Likewise.
18204 (vec_vprtyb): Add ISA 3.0 vector parity support.
18205 (vec_vprtybd): Likewise.
18206 (vec_vprtybw): Likewise.
18207 (vec_vprtybq): Likewise.
18208 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
18209 the ISA 3.0 vector count trailing zeros and vector parity built-in
18212 2016-05-24 Kugan Vivekanandarajah <kuganv@linaro.org>
18214 * tree-ssa-reassoc.c (sort_by_operand_rank): Skip checking gimple_bb
18215 when there is stmt_to_insert.
18217 2016-05-24 Martin Sebor <msebor@redhat.com>
18220 * tree.h (complete_or_array_type_p): New inline function.
18222 2016-05-24 Jakub Jelinek <jakub@redhat.com>
18224 * config/i386/i386.h (TARGET_AVOID_4BYTE_PREFIXES): Define.
18225 * config/i386/constraints.md (Yr): Test TARGET_AVOID_4BYTE_PREFIXES
18226 rather than X86_TUNE_AVOID_4BYTE_PREFIXES.
18228 * config/i386/sse.md (<sse4_1>_round<ssemodesuffix><avxsizesuffix>):
18229 Limit 1st alternative to noavx isa, split 2nd alternative into one
18230 noavx and one avx alternative, use *x and Bm in the former and
18231 x and m in the latter.
18233 * config/i386/sse.md (vec_set<mode>_0): Use sse4_noavx isa instead
18234 of sse4 for the first alternative, drop %v from the template
18235 and d operand modifier. Split second alternative into one sse4_noavx
18236 and one avx alternative, use *x instead of *v in the former and v
18237 instead of *v in the latter.
18238 (*sse4_1_extractps): Use noavx isa instead of * for the first
18239 alternative, drop %v from the template. Split second alternative into
18240 one noavx and one avx alternative, use *x instead of *v in the
18241 former and v instead of *v in the latter.
18242 (<vi8_sse4_1_avx2_avx512>_movntdqa): Guard the first 2 alternatives
18243 with noavx and the last one with avx.
18244 (sse4_1_phminposuw): Guard first alternative with noavx isa,
18245 split the second one into one noavx and one avx alternative,
18246 use *x and Bm in the former and x and m in the latter one.
18247 (<sse4_1>_ptest<mode>): Use noavx instead of * for the first two
18250 * config/i386/sse.md (sse4_1_<code>v8qiv8hi2<mask_name>): Limit
18251 first two alternatives to noavx, use *x instead of *v in the second
18252 one, add avx alternative without *.
18253 (sse4_1_<code>v4qiv4si2<mask_name>, sse4_1_<code>v4hiv4si2<mask_name>,
18254 sse4_1_<code>v2qiv2di2<mask_name>, sse4_1_<code>v2hiv2di2<mask_name>,
18255 sse4_1_<code>v2siv2di2<mask_name>): Likewise.
18257 2016-05-24 Jeff Law <law@redhat.com>
18259 * tree-ssa-threadbackwards.c (convert_and_register_jump_thread_path):
18260 New function, extracted from...
18261 (fsm_find_control_statement_thread_paths): Here. Use the new function.
18262 Allow simple copies and constant initializations in the SSA chain.
18264 2016-05-24 Marek Polacek <polacek@redhat.com>
18267 * gimplify.c (gimplify_switch_expr): Look into the innermost lexical
18270 2016-05-24 Jakub Jelinek <jakub@redhat.com>
18273 * tree-vect-stmts.c (vectorizable_simd_clone_call): Handle
18274 SIMD_CLONE_ARG_TYPE_LINEAR_REF_CONSTANT_STEP like
18275 SIMD_CLONE_ARG_TYPE_LINEAR_CONSTANT_STEP. Add
18276 SIMD_CLONE_ARG_TYPE_LINEAR_VAL_CONSTANT_STEP and
18277 SIMD_CLONE_ARG_TYPE_LINEAR_UVAL_CONSTANT_STEP cases explicitly.
18279 2016-05-24 Richard Biener <rguenther@suse.de>
18281 PR tree-optimization/71240
18282 * tree-ssa-math-opts.c (init_symbolic_number): Verify the source
18285 2016-05-24 Richard Biener <rguenther@suse.de>
18287 PR tree-optimization/71230
18288 * tree-ssa-reassoc.c (zero_one_operation): Handle negate special ops.
18290 2016-05-24 Richard Sandiford <richard.sandiford@arm.com>
18292 * tree-vectorizer.h (vectorizable_comparison): Delete.
18293 * tree-vect-loop.c (vectorizable_reduction): Remove redundant
18294 PURE_SLP_STMT check.
18295 * tree-vect-stmts.c (vectorizable_call): Likewise.
18296 (vectorizable_simd_clone_call): Likewise.
18297 (vectorizable_conversion): Likewise.
18298 (vectorizable_assignment): Likewise.
18299 (vectorizable_shift): Likewise.
18300 (vectorizable_operation): Likewise.
18301 (vectorizable_load): Likewise.
18302 (vectorizable_condition): Likewise.
18303 (vectorizable_store): Likewise. Assert that we don't have
18305 (vectorizable_comparison): Make static. Remove redundant
18306 PURE_SLP_STMT check.
18307 (vect_transform_stmt): Assert that we always have an slp_node
18310 2016-05-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18312 * config/arm/neon.md (ashldi3_neon): Replace comparison of INTVAL of
18313 operands[2] against 1 with comparison against CONST1_RTX.
18314 (<shift>di3_neon): Likewise.
18315 * config/arm/predicates.md (const0_operand): Replace with comparison
18316 against CONST0_RTX.
18318 2016-05-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18320 * config/arm/arm.md (ashldi3): Replace comparison of INTVAL of
18321 operands[2] against 1 with comparison against CONST1_RTX.
18322 (ashrdi3): Likewise.
18323 (lshrdi3): Likewise.
18324 (ashlsi3): Replace cast of INTVAL to unsigned HOST_WIDE_INT with
18326 (ashrsi3): Likewise.
18327 (lshrsi3): Likewise.
18328 (rotrsi3): Likewise.
18329 (define_split above *compareqi_eq0): Likewise.
18330 (define_split above "prologue"): Likewise.
18331 * config/arm/arm.c (thumb1_size_rtx_costs): Likewise.
18332 * config/arm/predicates.md (shift_operator): Likewise.
18333 (shift_nomul_operator): Likewise.
18334 (sat_shift_operator): Likewise.
18335 (thumb1_cmp_operand): Likewise.
18336 (const_neon_scalar_shift_amount_operand): Replace manual range
18337 check with IN_RANGE.
18338 * config/arm/thumb1.md (define_peephole2 above *thumb_subdi3):
18339 Replace cast of INTVAL to unsigned HOST_WIDE_INT with UINTVAL.
18341 2016-05-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18343 * config/arm/arm.md (andsi3): Replace cast of 1 to HOST_WIDE_INT
18344 with HOST_WIDE_INT_1.
18346 * config/arm/arm.c (optimal_immediate_sequence): Replace cast of
18347 1 to unsigned HOST_WIDE_INT with HOST_WIDE_INT_1U.
18348 (arm_canonicalize_comparison): Likewise.
18349 (thumb1_rtx_costs): Replace cast of 1 to HOST_WIDE_INT with
18351 (thumb1_size_rtx_costs): Likewise.
18352 (vfp_const_double_index): Replace cast of 1 to unsigned
18353 HOST_WIDE_INT with HOST_WIDE_INT_1U.
18354 (get_jump_table_size): Replace cast of 1 to HOST_WIDE_INT with
18356 (arm_asan_shadow_offset): Replace cast of 1 to unsigned
18357 HOST_WIDE_INT with HOST_WIDE_INT_1U.
18358 * config/arm/neon.md (vec_set<mode>): Replace cast of 1 to
18359 HOST_WIDE_INT with HOST_WIDE_INT_1.
18361 2016-05-24 Marek Polacek <polacek@redhat.com>
18363 * tree-cfg.h (should_remove_lhs_p): New predicate.
18364 * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Use it.
18365 * gimplify.c (gimplify_modify_expr): Likewise.
18366 * tree-cfg.c (verify_gimple_call): Likewise.
18367 * tree-cfgcleanup.c (fixup_noreturn_call): Likewise.
18368 * gimple-fold.c: Include "tree-cfg.h".
18369 (gimple_fold_call): Use should_remove_lhs_p.
18371 2016-05-24 Richard Biener <rguenther@suse.de>
18373 PR tree-optimization/71253
18374 * cfganal.h (control_dependences): Make robust against edge
18376 (control_dependences::control_dependences): Remove edge_list argument.
18377 (control_dependences::get_edge): Remove.
18378 (control_dependences::get_edge_src): Add.
18379 (control_dependences::get_edge_dest): Likewise.
18380 (control_dependences::m_el): Make a vector of edge src/dest index.
18381 * cfganal.c (control_dependences::find_control_dependence): Adjust.
18382 (control_dependences::control_dependences): Likewise.
18383 (control_dependences::~control_dependence): Likewise.
18384 (control_dependences::get_edge): Remove.
18385 (control_dependences::get_edge_src): Add.
18386 (control_dependences::get_edge_dest): Likewise.
18387 * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Use
18389 (perform_tree_ssa_dce): Adjust.
18390 * tree-loop-distribution.c (create_edge_for_control_dependence): Use
18392 (pass_loop_distribution::execute): Adjust. Do loop destroying
18393 conditional on changed.
18395 2016-05-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18398 * config/arm/arm.c (gen_operands_ldrd_strd): Remove bogus early
18399 return. Reindent transformation comment and mention the ARM state
18402 2016-05-24 Kugan Vivekanandarajah <kuganv@linaro.org>
18404 PR middle-end/71252
18405 * tree-ssa-reassoc.c (rewrite_expr_tree_parallel): Add stmt_to_insert
18406 after build_and_add_sum creates new use stmt.
18408 2016-05-24 Richard Sandiford <richard.sandiford@arm.com>
18410 * tree-vect-stmts.c (vectorizable_load): Reorder checks so that
18411 load_lanes/grouped_load classification comes first. Don't check
18412 whether the vectorization factor is a multiple of the group size
18415 2016-05-24 Richard Sandiford <richard.sandiford@arm.com>
18417 * tree-vect-data-refs.c (vect_analyze_group_access_1): Set
18418 GROUP_GAP for single-element interleaving.
18419 * tree-vect-stmts.c (vectorizable_load): Remove force_peeling
18422 2016-05-24 Richard Biener <rguenther@suse.de>
18424 PR middle-end/70434
18426 * tree-ssa.c (non_rewritable_mem_ref_base): Make sure to mark
18427 bases which are accessed with non-invariant indices.
18428 * gimple-fold.c (maybe_canonicalize_mem_ref_addr): Re-write
18429 constant index ARRAY_REFs of vectors into BIT_FIELD_REFs.
18431 2016-05-24 Kugan Vivekanandarajah <kuganv@linaro.org>
18433 PR middle-end/71170
18434 * tree-ssa-reassoc.c (struct operand_entry): Add field stmt_to_insert.
18435 (add_to_ops_vec): Add stmt_to_insert.
18436 (add_repeat_to_ops_vec): Init stmt_to_insert.
18437 (insert_stmt_before_use): New.
18438 (transform_add_to_multiply): Remove mult_stmt insertion and add it
18440 (get_ops): Init stmt_to_insert.
18441 (maybe_optimize_range_tests): Likewise.
18442 (rewrite_expr_tree): Insert stmt_to_insert before use stmt.
18443 (rewrite_expr_tree_parallel): Likewise.
18444 (reassociate_bb): Likewise.
18446 2016-05-23 Michael Meissner <meissner@linux.vnet.ibm.com>
18449 * config/rs6000/altivec.md (altivec_vperm_<mode>_internal): Drop
18450 ISA 3.0 xxperm fusion alternative.
18451 (altivec_vperm_v8hiv16qi): Likewise.
18452 (altivec_vperm_<mode>_uns_internal): Likewise.
18453 (vperm_v8hiv4si): Likewise.
18454 (vperm_v16qiv8hi): Likewise.
18456 2016-05-23 Michael Meissner <meissner@linux.vnet.ibm.com>
18457 Kelvin Nilsen <kelvin@gcc.gnu.org>
18459 * config/rs6000/rs6000.c (rs6000_expand_vector_set): Generate
18460 vpermr/xxpermr on ISA 3.0.
18461 (altivec_expand_vec_perm_le): Likewise.
18462 * config/rs6000/altivec.md (UNSPEC_VPERMR): New unspec.
18463 (altivec_vpermr_<mode>_internal): Add VPERMR/XXPERMR support for
18466 2016-05-23 Uros Bizjak <ubizjak@gmail.com>
18468 * config/i386/i386.h (IS_STACK_MODE): Enable for
18469 TARGET_MIX_SSE_I387. Rewrite using X87_FLOAT_MODE_P and
18470 SSE_FLOAT_MODE_P macros.
18471 * config/i386/i386.c (ix86_preferred_reload_class): Use
18472 IS_STACK_MODE, INTEGER_CLASS_P, FLOAT_CLASS_P and Q_CLASS_P macros.
18473 Cleanup regclass processing for CONST_DOUBLE_P.
18474 (ix86_preferred_output_reload_class): Use IS_STACK_MODE macro.
18475 (ix86_rtx_costs): Remove redundant TARGET_80387 check
18476 with IS_STACK_MODE macro.
18477 * config/i386/i386.md: Replace SSE_FLOAT_MODE_P (DFmode)
18479 (*movdf_internal): Use IS_STACK_MODE macro.
18480 (*movsf_internal): Ditto.
18482 2016-05-23 Marc Glisse <marc.glisse@inria.fr>
18484 * match.pd (a * (1 << b), ~x & ~y, ~X ^ ~Y, (X ^ Y) ^ Y, ~ (-A),
18485 ~ (A - 1), ~(~X >> Y), ~(~X >>r Y)): Relax constraints.
18487 2016-05-23 Jeff Law <law@redhat.com>
18489 * tree-ssa-threadbackward.c (profitable_jump_thread_path): New function
18491 (fsm_find_control_statement_thread_paths): Call it.
18493 2016-05-23 Martin Jambor <mjambor@suse.cz>
18496 * ipa-cp.c (ipa_get_indirect_edge_target_1): Only check value of
18497 from_global_constant if t is not NULL.
18499 2016-05-23 Marek Polacek <polacek@redhat.com>
18502 * common.opt (Wswitch-unreachable): New option.
18503 * doc/invoke.texi: Document -Wswitch-unreachable.
18504 * gimplify.c (gimplify_switch_expr): Implement the -Wswitch-unreachable
18507 2016-05-23 Bin Cheng <bin.cheng@arm.com>
18509 * tree-ssa-address.c (copy_ref_info): Check NULL TMR_STEP when
18510 TMR_INDEX is non-NULL.
18512 2016-05-23 Richard Biener <rguenther@suse.de>
18514 PR tree-optimization/71230
18515 * tree-ssa-reassoc.c (acceptable_pow_call): Move initial condition...
18516 (try_special_add_to_ops): ... here. Always test for single-use.
18518 2016-05-23 Martin Jambor <mjambor@suse.cz>
18520 * hsa-gen.c (gen_hsa_insns_for_switch_stmt): Create an empty
18521 default block if a PHI node in the original one would be resized.
18523 2016-05-23 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
18525 PR tree-optimization/58135
18526 * tree-vect-slp.c: When group size is not multiple
18527 of vector size, allow splitting of store group at
18530 2016-05-23 Christophe Lyon <christophe.lyon@linaro.org>
18532 * config/arm/arm_neon.h (vtst_p16, vtstq_p16): New.
18534 2016-05-22 Jakub Jelinek <jakub@redhat.com>
18536 * config/i386/sse.md (vec_set_lo_<mode><mask_name>,
18537 vec_set_hi_<mode><mask_name>): Add && <mask_avx512dq_condition>
18538 condition. For !TARGET_AVX512DQ, emit 32x4 instruction instead
18541 * config/i386/sse.md (vec_set_lo_v16hi, vec_set_hi_v16hi,
18542 vec_set_lo_v32qi, vec_set_hi_v32qi): Add alternative with
18543 v constraint instead of x and vinserti32x4 insn.
18545 * config/i386/sse.md (i128vldq): New mode iterator.
18546 (avx2_vbroadcasti128_<mode>, avx_vbroadcastf128_<mode>): Add
18547 avx512dq and avx512vl alternatives.
18549 * config/i386/sse.md (avx2_vec_dupv4df): Use v instead of x
18550 constraint, use maybe_evex prefix instead of vex.
18551 (vec_dupv4sf): Use v constraint instead of x for output
18552 operand except for noavx alternative, use Yv constraint
18553 instead of x for input. Use maybe_evex prefix instead of vex.
18554 (*vec_dupv4si): Likewise.
18555 (*vec_dupv2di): Likewise.
18557 2016-05-22 Kugan Vivekanandarajah <kuganv@linaro.org>
18559 PR middle-end/40921
18560 * tree-ssa-reassoc.c (try_special_add_to_ops): New.
18561 (linearize_expr_tree): Call try_special_add_to_ops.
18562 (reassociate_bb): Convert MULT_EXPR by (-1) to NEGATE_EXPR.
18564 2016-05-21 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
18566 * config/avr/avr.c (avr_expand_prologue): Add INCOMING_FRAME_SP_OFFSET
18567 to computed stack_usage.
18569 2016-05-21 Pitchumani Sivanupandi <pitchumani.s@atmel.com>
18572 * config/avr/avr.md (define_expand "mov<mode>"): If the source
18573 operand is subreg (symbol_ref) then move the symbol ref to register.
18575 2016-05-21 Jan Hubicka <hubicka@ucw.cz>
18577 * tree.c (array_at_struct_end_p): Look through MEM_REF.
18579 2016-05-21 Kugan Vivekanandarajah <kuganv@linaro.org>
18581 PR middle-end/71179
18582 * tree-ssa-reassoc.c (transform_add_to_multiply): Disallow float
18585 2016-05-20 Eric Botcazou <ebotcazou@adacore.com>
18587 * tree-vrp.c (compare_values_warnv): Simplify handling of symbolic
18588 ranges by calling get_single_symbol and tidy up. Look more closely
18589 into NAME + CST1 vs CST2 comparisons if type overflow is undefined.
18591 2016-05-20 Jeff Law <law@redhat.com>
18593 * bitmap.c (bitmap_find_bit): Remove useless test.
18595 2016-05-20 Segher Boessenkool <segher@kernel.crashing.org>
18597 * function.c (thread_prologue_and_epilogue_insns): Commit the
18598 insertion of the epilogue.
18600 2016-05-20 Martin Jambor <mjambor@suse.cz>
18602 PR tree-optimization/70884
18603 * tree-sra.c (initialize_constant_pool_replacements): Do not check
18604 should_scalarize_away_bitmap and cannot_scalarize_away_bitmap bits.
18605 (sort_and_splice_var_accesses): Do not consider multiple scalar reads
18606 of constant pool data as a reason for scalarization.
18608 2016-05-20 Eric Botcazou <ebotcazou@adacore.com>
18610 * config/arm/arm.c (arm_expand_prologue): Set the stack usage to 0
18611 for naked functions.
18612 (thumb1_expand_prologue): Likewise.
18614 2016-05-20 Nathan Sidwell <nathan@acm.org>
18616 * config/nvptx/nptx.c (nvptx_option_override): Only set
18617 flag_toplevel_reorder, if not explicitly specified. Set
18618 flag_no_common, unless explicitly specified.
18620 2016-05-20 David Malcolm <dmalcolm@redhat.com>
18622 * calls.c (can_implement_as_sibling_call_p): Mark param
18623 reg_parm_stack_space with ATTRIBUTE_UNUSED.
18625 2016-05-20 Uros Bizjak <ubizjak@gmail.com>
18627 * config/i386/i386.c (ix86_rtx_costs) <case CONST_DOUBLE>:
18628 Use IS_STACK_MODE when calculating cost of standard 80387 constants.
18629 Fallthru to CONST_VECTOR case to calculate cost of standard SSE
18631 <case CONST_WIDE_INT>: Calculate cost of (MEM (SYMBOL_REF)).
18632 (ix86_legitimate_constant_p): Use CASE_CONST_SCALAR_INT
18633 and CASE_CONST_ANY.
18635 2016-05-20 Cesar Philippidis <cesar@codesourcery.com>
18637 * config/nvptx/nvptx.md (sincossf3): New pattern.
18639 2016-05-20 David Malcolm <dmalcolm@redhat.com>
18641 * calls.c (maybe_complain_about_tail_call): New function.
18642 (initialize_argument_information): Call
18643 maybe_complain_about_tail_call when clearing *may_tailcall.
18644 (can_implement_as_sibling_call_p): Call
18645 maybe_complain_about_tail_call when returning false.
18646 (expand_call): Read CALL_EXPR_MUST_TAIL_CALL and, if set,
18647 ensure try_tail_call is set. Call maybe_complain_about_tail_call
18648 if tail-call optimization fails.
18649 * cfgexpand.c (expand_call_stmt): Initialize
18650 CALL_EXPR_MUST_TAIL_CALL from gimple_call_must_tail_p.
18651 * gimple-pretty-print.c (dump_gimple_call): Dump
18652 gimple_call_must_tail_p.
18653 * gimple.c (gimple_build_call_from_tree): Call
18654 gimple_call_set_must_tail with the value of
18655 CALL_EXPR_MUST_TAIL_CALL.
18656 * gimple.h (enum gf_mask): Add GF_CALL_MUST_TAIL_CALL.
18657 (gimple_call_set_must_tail): New function.
18658 (gimple_call_must_tail_p): New function.
18659 * print-tree.c (print_node): Update printing of TREE_STATIC
18660 to reflect its use for CALL_EXPR_MUST_TAIL_CALL.
18661 * tree-core.h (struct tree_base): Add MUST_TAIL_CALL to the
18662 trailing comment listing applicable flags.
18663 * tree.h (CALL_EXPR_MUST_TAIL_CALL): New macro.
18665 2016-05-20 David Malcolm <dmalcolm@redhat.com>
18667 * calls.c (expand_call): Move "Rest of purposes for tail call
18668 optimizations to fail" to...
18669 (can_implement_as_sibling_call_p): ...this new function, and
18670 split into multiple "if" statements.
18672 2016-05-20 Jan Hubicka <hubicka@ucw.cz>
18674 * cfgloop.h (expected_loop_iterations_unbounded,
18675 expected_loop_iterations): Unconstify.
18676 * cfgloopanal.c (expected_loop_iterations_unbounded): Sanity check the
18677 profile with known upper bound; return 3 when profile is absent.
18678 (expected_loop_iterations): Update.
18680 2016-05-20 Jan Hubicka <hubicka@ucw.cz>
18682 * loop-doloop.c (doloop_optimize): Use get_estimated_loop_iterations_int
18683 and get_max_loop_iterations_int.
18685 2016-05-20 Jan Hubicka <hubicka@ucw.cz>
18687 * tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can not produce
18688 realistic upper bounds here.
18690 2016-05-20 Jakub Jelinek <jakub@redhat.com>
18693 * gimple-fold.c (gimple_fold_call): Do not remove lhs of noreturn
18694 calls if the LHS is variable length or has addressable type.
18695 If targets[0]->decl is a noreturn call with void return type and
18696 zero arguments, adjust fntype and remove lhs in that case.
18698 2016-05-20 Marc Glisse <marc.glisse@inria.fr>
18700 PR tree-optimization/71079
18701 PR tree-optimization/71206
18702 * match.pd ((X ^ Y) ^ (X ^ Z)): Convert the arguments.
18704 2016-05-20 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
18706 * tree-vectorizer.c (get_vec_alignment_for_decl): New static function.
18707 (get_vec_alignment_for_array_decl): Likewise.
18708 (get_vec_alignment_for_record_decl): Likewise.
18709 (increase_alignment::execute): Move code to find alignment to
18710 get_vec_alignment_for_array_decl and call get_vec_alignment_for_decl.
18711 (type_align_map): New hash_map.
18713 2016-05-20 Richard Guenther <rguenther@suse.de>
18715 PR tree-optimization/29756
18716 * tree.def (BIT_INSERT_EXPR): New tcc_expression tree code.
18717 * expr.c (expand_expr_real_2): Handle BIT_INSERT_EXPR.
18718 * fold-const.c (operand_equal_p): Likewise.
18719 (fold_ternary_loc): Add constant folding of BIT_INSERT_EXPR.
18720 * gimplify.c (gimplify_expr): Handle BIT_INSERT_EXPR.
18721 * tree-inline.c (estimate_operator_cost): Likewise.
18722 * tree-pretty-print.c (dump_generic_node): Likewise.
18723 * tree-ssa-operands.c (get_expr_operands): Likewise.
18724 * cfgexpand.c (expand_debug_expr): Likewise.
18725 * gimple-pretty-print.c (dump_ternary_rhs): Likewise.
18726 * gimple.c (get_gimple_rhs_num_ops): Handle BIT_INSERT_EXPR.
18727 * tree-cfg.c (verify_gimple_assign_ternary): Verify BIT_INSERT_EXPR.
18728 * tree-ssa.c (non_rewritable_lvalue_p): We can rewrite
18729 vector inserts using BIT_FIELD_REF or MEM_REF on the lhs.
18730 (execute_update_addresses_taken): Do it.
18732 2016-05-20 Richard Biener <rguenther@suse.de>
18734 PR tree-optimization/71185
18735 * tree-ssa-loop-prefetch.c (gather_memory_references): Drop
18736 register operations.
18738 2016-05-20 Richard Biener <rguenther@suse.de>
18740 * tree-if-conv.c (add_bb_predicate_gimplified_stmts): Use
18741 gimple_seq_add_seq_without_update.
18742 (release_bb_predicate): Assert we have no operands to free.
18743 (if_convertible_loop_p_1): Calculate post dominators later.
18744 Do not free BB predicates here.
18745 (combine_blocks): Do not recompute BB predicates.
18746 (version_loop_for_if_conversion): Save BB predicates around
18749 2016-05-19 Segher Boessenkool <segher@kernel.crashing.org>
18751 * function.c (make_epilogue_seq): Remove epilogue_end parameter.
18752 (thread_prologue_and_epilogue_insns): Remove bb_flags. Restructure
18753 code. Ignore sibcalls on EDGE_IGNORE edges.
18754 * shrink-wrap.c (handle_simple_exit): New function. Set EDGE_IGNORE
18755 on edges for sibcalls that run without prologue. The rest of the
18756 function is combined from...
18757 (fix_fake_fallthrough_edge): ... this, and ...
18758 (try_shrink_wrapping): ... a part of this. Remove the bb_with
18759 function argument, make it a local variable.
18761 2016-05-19 Sandra Loosemore <sandra@codesourcery.com>
18763 * config/i386/cygming.h (DWARF2_UNWIND_INFO): Allow
18764 --disable-sjlj-exceptions for TARGET_BI_ARCH to select DWARF-2 EH
18765 for 32-bit mode and SEH for 64-bit.
18766 * config/i386/mingw32.h (SHARED_LIBGCC_UNDEFS_SPEC): Handle
18767 TARGET_64BIT_DEFAULT.
18769 2016-05-19 Ryan Burn <contact@rnburn.com>
18771 * Makefile.in (GTFILES): Add cilk.h and cilk-common.c.
18772 * gengtype.c (open_base_files): Add cilk.h to ifiles.
18774 2016-05-19 Uros Bizjak <ubizjak@gmail.com>
18776 * sched-deps.c (sched_analyze_2) <case TRAP_IF>: Also
18777 force pending loads from memory.
18779 2016-05-19 Kelvin Nilsen <kelvin@gcc.gnu.org>
18781 * config/rs6000/altivec.md (UNSPEC_DARN): New unspec constant.
18782 (UNSPEC_DARN_32): New unspec constant.
18783 (UNSPEC_DARN_RAW): New unspec constant.
18784 (darn_32): New instruction.
18785 (darn_raw): New instruction.
18786 (darn): New instruction.
18787 * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_0): Add
18788 support and documentation for this macro.
18789 (BU_P9_MISC_1): New macro definition.
18790 (BU_P9_64BIT_MISC_0): New macro definition.
18791 (BU_P9_MISC_0): New macro definition.
18792 (darn_32): New builtin definition.
18793 (darn_raw): New builtin definition.
18794 (darn): New builtin definition.
18795 * config/rs6000/rs6000.c: Add #define RS6000_BUILTIN_0 and #undef
18796 RS6000_BUILTIN_0 directives to surround each occurrence of
18797 #include "rs6000-builtin.def".
18798 (rs6000_builtin_mask_calculate): Add in the RS6000_BTM_MODULO and
18799 RS6000_BTM_64BIT flags to the returned mask, depending on
18801 (def_builtin): Correct an error in the assignments made to the
18802 debugging variable attr_string.
18803 (rs6000_expand_builtin): Add support for no-operand built-in
18805 (builtin_function_type): Remove fatal_error assertion that is no
18807 (rs6000_common_init_builtins): Add support for no-operand built-in
18809 * config/rs6000/rs6000.h (RS6000_BTM_MODULO): New macro
18811 (RS6000_BTM_PURE): Enhance comment to clarify intent of this flag
18813 (RS6000_BTM_64BIT): New macro definition.
18814 * doc/extend.texi: Document __builtin_darn (void),
18815 __builtin_darn_raw (void), and __builtin_darn_32 (void) built-in
18818 2016-05-19 Jan Hubicka <hubicka@ucw.cz>
18820 * tree-vect-loop.c (vect_analyze_loop_2): Use also
18821 max_loop_iterations_int.
18823 2016-05-19 Marek Polacek <polacek@redhat.com>
18825 PR tree-optimization/71031
18826 * tree-vrp.c (extract_range_from_binary_expr_1): Turn assert into a
18827 condition and adjust the code a bit.
18829 2016-05-19 Martin Liska <mliska@suse.cz>
18831 * tree-vect-stmts.c (vectorizable_simd_clone_call): Utilize
18832 auto_vec instead of vec.
18834 2016-05-19 Martin Liska <mliska@suse.cz>
18836 * tree-parloops.c (oacc_entry_exit_ok): Release a vector.
18838 2016-05-19 Martin Liska <mliska@suse.cz>
18840 * tree-if-conv.c (ifcvt_repair_bool_pattern): Utilize auto_vecs.
18842 2016-05-19 Martin Liska <mliska@suse.cz>
18844 * ipa-pure-const.c (set_function_state): Remove an existing
18846 (remove_node_data): Do not free it as it's released
18847 in set_function_state.
18849 2016-05-19 Martin Liska <mliska@suse.cz>
18851 * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Release
18854 2016-05-19 Martin Liska <mliska@suse.cz>
18856 * omp-simd-clone.c (simd_clone_adjust): Release vector.
18858 2016-05-19 Martin Liska <mliska@suse.cz>
18860 * tree-ssa-reassoc.c (eliminate_duplicate_pair): Truncate
18861 an auto_vec instead of re-creating it.
18863 2016-05-19 Martin Liska <mliska@suse.cz>
18865 * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Use
18866 auto_vec instead of vec.
18868 2016-05-19 Martin Liska <mliska@suse.cz>
18870 * lto-section-in.c (lto_get_section_data): Call
18871 lto_check_version with additional argument.
18872 * lto-streamer.c (lto_check_version): Add new argument.
18873 * lto-streamer.h (lto_check_version): Likewise.
18875 2016-05-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18877 * config/arm/arm.c (arm_new_rtx_costs, SIGN_EXTEND case):
18878 Don't add cost of inner memory when handling sign-extended loads.
18880 2016-05-19 Ilya Enkovich <ilya.enkovich@intel.com>
18882 PR rtl-optimization/71148
18883 * cse.c (cse_main): Free dominance info.
18884 (rest_of_handle_cse): Don't free dominance info.
18885 (rest_of_handle_cse2): Likewise.
18886 (rest_of_handle_cse_after_global_opts): Likewise.
18888 2016-05-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18891 * config/arm/arm-builtins.c (arm_builtin_vectorized_function): Return
18892 NULL_TREE early if NEON is not available. Remove now redundant check
18893 in ARM_CHECK_BUILTIN_MODE.
18895 2016-05-19 Maxim Ostapenko <m.ostapenko@samsung.com>
18898 * cppbuiltin.c (define_builtin_macros_for_compilation_flags): Add new
18899 builtin __SANITIZE_THREAD__ macros for fsanitize=thread switch.
18900 * doc/cpp.texi: Document new macros.
18902 2016-05-19 Bin Cheng <bin.cheng@arm.com>
18904 PR tree-optimization/69848
18905 * tree-vect-loop.c (vectorizable_reduction): Don't factor
18906 comparison expr out of VEC_COND_EXPR for COND_REDUCTION.
18908 2016-05-19 Segher Boessenkool <segher@kernel.crashing.org>
18910 * function.c (thread_prologue_and_epilogue_insn): Move the
18911 "goto epilogue_done" one block later.
18913 2016-05-19 Richard Biener <rguenther@suse.de>
18915 PR tree-optimization/70729
18916 * passes.def: Move LIM pass before PRE. Remove no longer
18917 required copyprop and move first DCE out of the loop pipeline.
18919 2016-05-18 David Malcolm <dmalcolm@redhat.com>
18922 * Makefile.in (GCC_OBJS): Move spellcheck.o to...
18923 (OBJS-libcommon-target): ...here.
18924 * opts-common.c: Include spellcheck.h.
18925 (cmdline_handle_error): Build a vec of valid options and use it
18926 to suggest provide hints for misspelled arguments.
18928 2016-05-18 Jakub Jelinek <jakub@redhat.com>
18931 * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Don't drop
18932 lhs if it has TREE_ADDRESSABLE type.
18934 2016-05-18 Uros Bizjak <ubizjak@gmail.com>
18937 * config/alpha/alpha.md (trap): Add (use (reg:DI 29)).
18938 (*exception_receiver_1): Return "#" for TARGET_EXPLICIT_RELOCS.
18940 2016-05-18 Martin Jambor <mjambor@suse.cz>
18943 * ipa-cp.c (ipa_get_jf_pass_through_result): Allow non-ip constant
18944 input for NOP_EXPR pass-through functions.
18945 * ipa-prop.c (ipa_compute_jump_functions_for_edge): Allow
18946 aggregate global constant VAR_DECLs in constant jump functions.
18948 2016-05-18 Martin Jambor <mjambor@suse.cz>
18951 * ipa-prop.c (parm_preserved_before_stmt_p): Return true for loads
18952 from TREE_READONLY parameters.
18954 2016-05-18 Martin Jambor <mjambor@suse.cz>
18957 * cgraph.h (cgraph_indirect_call_info): New field
18958 guaranteed_unmodified.
18959 * ipa-cp.c (ipa_get_indirect_edge_target_1): Also pass parameter value
18960 to ipa_find_agg_cst_for_param, check guaranteed_unmodified when
18962 * ipa-inline-analysis.c (evaluate_conditions_for_known_args): Also
18963 pass the parameter value to ipa_find_agg_cst_for_param.
18964 * ipa-prop.c (ipa_load_from_parm_agg): New parameter
18965 guaranteed_unmodified, store AA results there instead of bailing out
18967 (ipa_note_param_call): Also initialize guaranteed_unmodified flag.
18968 (ipa_analyze_indirect_call_uses): Also set guaranteed_unmodified flag.
18969 (find_constructor_constant_at_offset): New function.
18970 (ipa_find_agg_cst_from_init): Likewise.
18971 (ipa_find_agg_cst_for_param): Also seearch for aggregate values in
18972 static initializers of contants, report back through a new paameter
18973 from_global_constant if that was the case.
18974 (try_make_edge_direct_simple_call): Also pass parameter value to
18975 ipa_find_agg_cst_for_param, check guaranteed_unmodified when
18977 (ipa_write_indirect_edge_info): Stream new flag guaranteed_unmodified.
18978 (ipa_read_indirect_edge_info): Likewise.
18979 * ipa-prop.h (ipa_find_agg_cst_for_param): Update declaration.
18980 (ipa_load_from_parm_agg): Likewise.
18982 2016-05-18 Jiong Wang <jiong.wang@arm.com>
18984 PR rtl-optimization/71150
18985 * lra-constraint (process_addr_reg): Guard "in_class_p" with REG_P
18988 2016-05-18 Michael Meissner <meissner@linux.vnet.ibm.com>
18991 * config/rs6000/constraints.md (wE constraint): New constraint
18992 for a vector constant that can be loaded with XXSPLTIB.
18993 (wM constraint): New constraint for a vector constant of a 1's.
18994 (wS constraint): New constraint for a vector constant that can be
18995 loaded with XXSPLTIB and a vector sign extend instruction.
18996 * config/rs6000/predicates.md (xxspltib_constant_split): New
18997 predicates for wE/wS constraints.
18998 (xxspltib_constant_nosplit): Likewise.
18999 (easy_vector_constant): Add support for constants that can be
19000 loaded via XXSPLTIB.
19001 (all_ones_constant): New predicate for vector constant with all
19003 (splat_input_operand): Add support for ISA 3.0 word splat operations.
19004 * config/rs6000/rs6000.c (xxspltib_constant_p): New function to
19005 return if a constant can be loaded with the ISA 3.0 XXSPLTIB
19006 instruction and possibly with a sign extension.
19007 (output_vec_const_move): Add support for XXSPLTIB. If we are
19008 loading up 0/-1 into Altivec registers, prefer using VSPLTISW
19009 instead of XXLXOR/XXLORC.
19010 (rs6000_expand_vector_init): Add support for ISA 3.0 word splat
19012 (rs6000_legitimize_reload_address): Likewise.
19013 (rs6000_output_move_128bit): Use output_vec_const_move to emit
19015 * config/rs6000/vsx.md (VSX_M): Add TImode (if -mvsx-timode) and
19016 combine VSX_M and VSX_M2 into one iterator.
19017 (VSX_M2): Likewise.
19018 (VSINT_84): New iterators for loading constants with XXSPLTIB.
19019 (VSINT_842): Likewise.
19020 (UNSPEC_VSX_SIGN_EXTEND): New UNSPEC.
19021 (xxspltib_v16qi): New insns to load up constants with the ISA 3.0
19022 XXSPLTIB instruction.
19023 (xxspltib_<mode>_nosplit): Likewise.
19024 (xxspltib_<mode>_split): New insn to load up constants with
19025 XXSPLTIB and a sign extend instruction.
19026 (vsx_mov<mode>): Replace single move that handled all vector types
19027 with separate 32-bit and 64-bit moves. Combine the movti_<bit>
19028 moves (when -mvsx-timode is in effect) into the main vector
19029 moves. Eliminate separate moves for <VSr> <VSa>, where the
19030 preferred register class (<VSr>) is listed first, and the
19031 secondary register class (<VSa>) is listed second with a '?' to
19032 discourage use. Prefer loading 0/-1 in any VSX register for ISA
19033 3.0, and Altivec registers for ISA 2.06/2.07 (PR target/70915) so
19034 that if the register was involved in a slow operation, the
19035 clear/set operation does not wait for the slow operation to
19036 finish. Adjust the length attributes for 32-bit mode. Use
19037 rs6000_output_move_128bit and drop the use of the string
19038 instructions for 32-bit movti when -mvsx-timode is in effect. Use
19039 spacing so that the alternatives and attributes don't generate
19040 long lines, and put things in columns, so that it is easier to
19041 match up the operands and attributes with the insn alternatives.
19042 (vsx_mov<mode>_64bit): Likewise.
19043 (vsx_mov<mode>_32bit): Likewise.
19044 (vsx_movti_64bit): Fold movti into normal vector moves.
19045 (vsx_movti_32bit): Likewise.
19046 (vsx_splat_<mode>, V4SI/V4SF modes): Add support for ISA 3.0 word
19047 splat instructions.
19048 (vsx_splat_v4si_internal): Likewise.
19049 (vsx_splat_v4sf_internal): Likewise.
19050 (vector fusion peepholes): Use VSX_M instead of VSX_M2.
19051 (vsx_sign_extend_qi_<mode>): New ISA 3.0 instructions to sign
19052 extend vector elements.
19053 (vsx_sign_extend_hi_<mode>): Likewise.
19054 (vsx_sign_extend_si_v2di): Likewise.
19055 * config/rs6000/rs6000-protos.h (xxspltib_constant_p): Add
19057 * doc/md.texi (PowerPC constraints): Document the wE, wM, and wS
19058 constraints. Add trailing period to wL documentation.
19060 2016-05-18 Richard Sandiford <richard.sandiford@arm.com>
19062 PR middle-end/71020
19063 * tree-dfa.h (replace_abnormal_ssa_names): Declare.
19064 * tree-dfa.c (replace_abnormal_ssa_names): New function.
19065 * tree-call-cdce.c: Include tree-dfa.h.
19066 (can_guard_call_p): New function, extracted from...
19067 (can_use_internal_fn): ...here.
19068 (shrink_wrap_one_built_in_call_with_conds): Remove failure path
19070 (shrink_wrap_one_built_in_call): Likewise.
19071 (use_internal_fn): Likewise.
19072 (shrink_wrap_conditional_dead_built_in_calls): Update accordingly
19073 and return void. Call replace_abnormal_ssa_names.
19074 (pass_call_cdce::execute): Check can_guard_call_p during the
19075 initial walk. Assume shrink_wrap_conditional_dead_built_in_calls
19076 will always change something.
19078 2016-05-18 Martin Jambor <mjambor@suse.cz>
19081 * ipa-prop.c (determine_locally_known_aggregate_parts): Bail out early
19082 if parameter PARAM_IPA_MAX_AGG_ITEMS is zero.
19084 2016-05-18 Martin Jambor <mjambor@suse.cz>
19087 * ipa-inline.h (condition): New field size.
19088 * ipa-inline-analysis.c (add_condition): New parameter SIZE, use it
19089 for comaprison and store it into the new condition.
19090 (evaluate_conditions_for_known_args): Use condition size to check
19091 access sizes for all but CHANGED conditions.
19092 (unmodified_parm_1): New parameter size_p, store access size into it.
19093 (unmodified_parm): Likewise.
19094 (unmodified_parm_or_parm_agg_item): Likewise.
19095 (eliminated_by_inlining_prob): Pass NULL to unmodified_parm as size_p.
19096 (set_cond_stmt_execution_predicate): Extract access sizes and store
19097 them to conditions.
19098 (set_switch_stmt_execution_predicate): Likewise.
19099 (will_be_nonconstant_expr_predicate): Likewise.
19100 (will_be_nonconstant_predicate): Likewise.
19101 (inline_read_section): Stream condition size.
19102 (inline_write_summary): Likewise.
19104 2016-05-18 Richard Biener <rguenther@suse.de>
19106 * tree-ssa-loop-im.c (determine_max_movement): Properly add
19107 condition cost to PHI cost instead of total_cost.
19109 2016-05-18 Martin Liska <mliska@suse.cz>
19112 * ipa-icf.c (sem_variable::merge): Set DECL_PT_UID for
19115 2016-05-18 Richard Biener <rguenther@suse.de>
19117 * lto-streamer.h (LTO_major_version): Bump to 6.
19119 2016-05-18 Segher Boessenkool <segher@kernel.crashing.org>
19121 * function.c (make_split_prologue_seq, make_prologue_seq,
19122 make_epilogue_seq): New functions, factored out from...
19123 (thread_prologue_and_epilogue_insns): Here.
19125 2016-05-18 Segher Boessenkool <segher@kernel.crashing.org>
19127 * function.c (rest_of_handle_thread_prologue_and_epilogue): Call
19128 cleanup_cfg with CLEANUP_EXPENSIVE after shrink-wrapping instead
19129 of before. Add a comment.
19131 2016-05-18 Bin Cheng <bin.cheng@arm.com>
19133 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Check invariant
19134 expression pointer, not pointer to the pointer.
19136 2016-05-18 Jakub Jelinek <jakub@redhat.com>
19138 * config/i386/sse.md (pbroadcast_evex_isa): New mode attr.
19139 (avx2_pbroadcast<mode>): Add another alternative with v instead
19140 of x constraints in it, using <pbroadcast_evex_isa> isa.
19141 (avx2_pbroadcast<mode>_1): Similarly, add two such alternatives.
19143 * config/i386/sse.md (<ssse3_avx2>_palignr<mode>): Use
19144 constraint x instead of v in second alternative, add avx512bw
19147 * config/i386/sse.md (<ssse3_avx2>_pshufb<mode>3<mask_name>): Use
19148 constraint x instead of v in second alternative, add avx512bw
19151 * config/i386/sse.md (*<ssse3_avx2>_pmulhrsw<mode>3<mask_name>): Use
19152 constraint x instead of v in second alternative, add avx512bw
19155 * config/i386/sse.md (avx2_pmaddubsw256, ssse3_pmaddubsw128): Add
19156 avx512bw alternative.
19158 2016-05-18 Kirill Yukhin <kirill.yukhin@intel.com>
19160 * config/i386/sse.md (define_insn "*andnot<mode>3"): Extend static
19161 array to 128 chars.
19162 (define_insn "*andnottf3"): Ditto.
19163 (define_insn "*<code><mode>3"/any_logic): Ditto.
19164 (define_insn "*<code>tf3"/any_logic): Ditto.
19165 (define_insn "sse2_storehpd"): Use Yv constraint for scalar
19166 operand to block AVX-512VL insn variant emit when it is not enabled.
19168 2016-05-18 Kirill Yukhin <kirill.yukhin@intel.com>
19170 * config/i386/sse.md (define_insn "*vec_concatv2sf_sse4_1"): Use 'Yv'
19171 constraint fot SF mode.
19173 2016-05-18 Petr Murzin <petr.murzin@intel.com>
19174 Kirill Yukhin <kirill.yukhin@intel.com>
19176 * config/i386/sse.md (define_insn "srcp14<mode>"): Use proper operand
19178 (define_insn "rsqrt14<mode>"): Ditto.
19179 (define_insn "<mask_codefor>avx512dq_cvtps2qqv2di<mask_name>"): Ditto.
19180 (define_insn "<fixsuffix>fix_truncv2sfv2di2<mask_name>"): Ditto.
19181 (define_insn "avx512f_<code>v8div16qi2_mask_store"): Ditto.
19182 (define_insn "vec_set_hi_<mode><mask_name>"): Ditto.
19183 (define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>"):
19185 (define_insn "*avx512f_gatherdi<mode>"): Ditto.
19186 (define_insn "*avx512f_scatterdi<mode>"): Ditto.
19187 * config/i386/i386.c (ix86_print_operand): Expand check for size
19188 override codes for Intel syntax.
19190 2016-05-18 Richard Biener <rguenther@suse.de>
19192 PR tree-optimization/71168
19193 * tree-loop-distribution.c (distribute_loop): Move *destroy_p
19194 initialization earlier.
19196 2016-05-18 James Greenhalgh <james.greenhalgh@arm.com>
19198 * config/aarch64/aarch64-simd.md
19199 (aarch64_reduc_plus_internal<mode>): Rename to...
19200 (reduc_plus_scal): ...This, and remove previous implementation.
19202 2016-05-18 Richard Biener <rguenther@suse.de>
19204 * passes.def: Put late dse and cd_dce in canonical order.
19206 2016-05-17 Jan Hubicka <hubicka@ucw.cz>
19208 * ipa-inline-transform.c (preserve_function_body_p): Look for
19209 first non-thunk clone.
19210 (save_function_body): Save into first non-thunk.
19211 * lto-cgraph.c (lto_output_edge): When streaming thunk do not look
19213 (lto_output_node): Inline thunks don't need body in every
19215 * lto-streamer-in.c: Do not fixup thunk clones.
19216 * cgraphclones.c (cgraph_node::create_edge_including_clone): Skip
19218 * tree-inline.c (copy_bb): Be prepared for target node to be new after
19221 2016-05-17 Kugan Vivekanandarajah <kuganv@linaro.org>
19223 PR middle-end/63586
19224 * tree-ssa-reassoc.c (transform_add_to_multiply): New.
19225 (reassociate_bb): Call transform_add_to_multiply.
19227 2016-05-17 Kugan Vivekanandarajah <kuganv@linaro.org>
19229 * config/aarch64/aarch64.c (all_extensions): Removed unused
19232 2016-05-17 Nathan Sidwell <nathan@acm.org>
19234 * config/nvptx/nvptx.c (nvptx_function_arg_boundary): New.
19235 (TARGET_FUNCTION_ARG_BOUNDARY): Override.
19237 2016-05-17 Mikhail Maltsev <maltsevm@gmail.com>
19239 PR tree-optimization/54579
19240 PR middle-end/55299
19241 * match.pd (~(~X >> Y), ~(~X >>r Y), ~(~X <<r Y)): New patterns.
19243 2016-05-17 Marek Polacek <polacek@redhat.com>
19246 * tree-inline.c (expand_call_inline): Call
19247 maybe_remove_unused_call_args.
19249 2016-05-17 Jim Wilson <jim.wilson@linaro.org>
19251 * doc/cpp.texi (__GNUC__): Major version changes are no longer rare.
19252 * doc/invoke.texi (-mnan=2008): Change signalling to signaling.
19253 * doc/md.texi (fmin@var{m}3): Likewise.
19255 2016-05-17 Marc Glisse <marc.glisse@inria.fr>
19257 * match.pd (X & C): New transformation.
19259 2016-05-17 Marc Glisse <marc.glisse@inria.fr>
19261 * match.pd (~X & Y): New transformation.
19263 2016-05-17 Marc Glisse <marc.glisse@inria.fr>
19265 * tree-vrp.c (simplify_truth_ops_using_ranges): Set range
19266 information for new SSA_NAME.
19267 (simplify_conversion_using_ranges): Get range through get_range_info
19268 instead of get_value_range.
19270 2016-05-17 Jiong Wang <jiong.wang@arm.com>
19272 * config/aarch64/arm_neon.h (vmvn_s8): Reimplement using C operator.
19273 Remove inline assembly.
19274 (vmvn_s16): Likewise.
19275 (vmvn_s32): Likewise.
19276 (vmvn_u8): Likewise.
19277 (vmvn_u16): Likewise.
19278 (vmvn_u32): Likewise.
19279 (vmvnq_s8): Likewise.
19280 (vmvnq_s16): Likewise.
19281 (vmvnq_s32): Likewise.
19282 (vmvnq_u8): Likewise.
19283 (vmvnq_u16): Likewise.
19284 (vmvnq_u32): Likewise.
19285 (vmvn_p8): Likewise.
19286 (vmvnq_p16): Likewise.
19288 2016-05-17 Jiong Wang <jiong.wang@arm.com>
19290 * config/aarch64/aarch64-simd.md (vmul_n_f32): Remove inline assembly.
19292 (vmul_n_s16): Likewise.
19293 (vmul_n_s32): Likewise.
19294 (vmul_n_u16): Likewise.
19295 (vmul_n_u32): Likewise.
19296 (vmulq_n_f32): Likewise.
19297 (vmulq_n_f64): Likewise.
19298 (vmulq_n_s16): Likewise.
19299 (vmulq_n_s32): Likewise.
19300 (vmulq_n_u16): Likewise.
19301 (vmulq_n_u32): Likewise.
19303 2016-05-17 Jiong Wang <jiong.wang@arm.com>
19305 * config/aarch64/aarch64-simd.md (*aarch64_mul3_elt_to_128df): Extend
19306 to all supported modes. Rename to "*aarch64_mul3_elt_from_dup".
19308 2016-05-17 Jiong Wang <jiong.wang@arm.com>
19310 * config/aarch64/aarch64-simd.md (*aarch64_fma4_elt_to_128df): Rename
19311 to *aarch64_fma4_elt_from_dup<mode>.
19312 (*aarch64_fnma4_elt_to_128df): Rename to
19313 *aarch64_fnma4_elt_from_dup<mode>.
19314 * config/aarch64/arm_neon.h (vfma_n_f64): New.
19315 (vfms_n_f32): Likewise.
19316 (vfms_n_f64): Likewise.
19317 (vfmsq_n_f32): Likewise.
19318 (vfmsq_n_f64): Likewise.
19320 2016-05-17 Gerald Pfeifer <gerald@pfeifer.com>
19322 * wide-int.h: Change fixed_wide_int_storage from class to struct.
19324 2016-05-17 Richard Biener <rguenther@suse.de>
19326 PR tree-optimization/71132
19327 * tree-loop-distribution.c (create_rdg_cd_edges): Pass in loop.
19328 Only add control dependences for blocks in the loop.
19329 (build_rdg): Adjust.
19330 (generate_code_for_partition): Return whether loop should
19331 be destroyed and delay that.
19332 (distribute_loop): Likewise.
19333 (pass_loop_distribution::execute): Record loops to be destroyed
19334 and perform delayed destroying of loops.
19336 2016-05-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
19339 * config/aarch64/aarch64-simd.md (aarch64_vmls<mode>): Delete.
19341 2016-05-17 James Greenhalgh <james.greenhalgh@arm.com>
19343 * config/aarch64/aarch64-elf.h (ASM_OUTPUT_DEF): Delete.
19345 2016-05-17 Ilya Enkovich <ilya.enkovich@intel.com>
19348 * config/i386/i386.c (dimode_scalar_chain::convert_op): Fix
19349 insertion point for instructions generated by validize_mem.
19351 2016-05-17 James Greenhalgh <james.greenhalgh@arm.com>
19353 * config/aarch64/aarch64.c (SHIFT_COUNT_TRUNCATED): Wrap definition
19356 2016-05-17 James Greenhalgh <james.greenhalgh@arm.com>
19358 * config/aarch64/aarch64.c
19359 (aarch64_output_simd_mov_immediate): Make "buf_size" a variable
19360 rather than a macro.
19362 2016-05-16 Wilco Dijkstra <wdijkstr@arm.com>
19364 * doc/invoke.texi (AArch64 Options): Various updates.
19366 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
19368 * ipa-inline-analysis.c (compute_inline_parameters): Disable inlinig
19369 into instrumentation thunks.
19370 * cif-code.def (CIF_CHKP): New.
19372 2016-05-16 Uros Bizjak <ubizjak@gmail.com>
19374 * config/i386/xopintrin.h: Correct "unsinged" typo in the comments.
19376 2016-05-16 Martin Jambor <mjambor@suse.cz>
19378 * hsa-gen.c (fillup_for_decl): Increase alignment to natural one.
19379 (get_symbol_for_decl): Sorry if a global symbol in under-aligned.
19381 2016-05-16 Marek Polacek <polacek@redhat.com>
19383 * gimple.c (maybe_remove_unused_call_args): Fix typos in the
19386 2016-05-16 Martin Jambor <mjambor@suse.cz>
19389 * omp-low.c (grid_expand_target_grid_body): Copy RESULT_DECL of
19390 the outlined kernel function.
19392 2016-05-16 Robert Suchanek <robert.suchanek@imgtec.com>
19394 * config/mips/mips.h (ISA_HAS_LSA): Enable for -mmsa.
19395 (ISA_HAS_DLSA): Ditto.
19397 2016-05-16 Matthew Fortune <matthew.fortune@imgtec.com>
19399 * config/mips/m5100.md (m51_int_load): Update the latency to 2.
19401 2016-05-16 Nathan Sidwell <nathan@acm.org>
19403 * config/nvptx/nvptx.c (nvptx_mangle_decl_assembler_name): Revert.
19404 (nvptx_name_replacement): Restore. Add comment.
19405 (write_fn_proto, write_fn_proto_from_insn,
19406 nvptx_output_call_insn): Restore
19407 (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Delete.
19409 2016-05-16 Wilco Dijkstra <wdijkstr@arm.com>
19411 * config/aarch64/aarch64.md
19412 (add<mode>3_compareC_cconly_imm): Remove use of %w.
19413 (add<mode>3_compareC_imm): Likewise.
19414 (<optab>si3_uxtw): Split into register and immediate variants.
19415 (andsi3_compare0_uxtw): Likewise.
19416 (and<mode>3_compare0): Likewise.
19417 (and<mode>3nr_compare0): Likewise.
19418 (stack_protect_test_<mode>): Don't use %x for memory operands.
19420 2016-05-16 Matthew Fortune <matthew.fortune@imgtec.com>
19422 * config/mips/mips-cpus.def (p5600): Add multi-line brackets.
19424 2016-05-16 Wilco Dijkstra <wdijkstr@arm.com>
19426 * config/aarch64/aarch64.md (aarch64_ashl_sisd_or_int_<mode>3):
19427 Split integer shifts into shift_reg and bfm.
19428 (aarch64_lshr_sisd_or_int_<mode>3): Likewise.
19429 (aarch64_ashr_sisd_or_int_<mode>3): Likewise.
19430 (ror<mode>3_insn): Likewise.
19431 (<optab>si3_insn_uxtw): Likewise.
19432 (<optab><mode>3_insn): Change to rotate_imm.
19433 (extr<mode>5_insn_alt): Likewise.
19434 (extrsi5_insn_uxtw): Likewise.
19435 (extrsi5_insn_uxtw_alt): Likewise.
19437 2016-05-16 Matthew Wahab <matthew.wahab@arm.com>
19439 * doc/tm.texi: Regenerate.
19440 * doc/tm.texi.in (TARGET_INVALID_PARAMETER_TYPE): Remove.
19441 (TARGET_INVALID_RETURN_TYPE): Remove.
19442 * system.h: Poison TARGET_INVALID_PARAMETER_TYPE and
19443 TARGET_INVALID_RETURN_TYPE.
19444 * target.def (invalid_parameter_type): Remove.
19445 (invalid_return_type): Remove.
19447 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
19449 * ipa-inline-analysis.c (compute_inline_parameters): Be more reailistic
19450 on estimating thunk bodies; do not set inline_failed to CIF_THUNK for
19452 * ipa-inline-transform.c (inline_call): When inlining into thunk produce
19454 (preserve_function_body_p): No need to preserve function body
19455 * cif-codes.def (CIF_THUNK): Remove.
19456 * cgraphclones.c (duplicate_thunk_for_node): Thunks calls are inlinable.
19458 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
19460 * tree-inline.c (expand_call_inline): recurse after inlining thunk.
19462 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
19464 * tree.c (free_lang_data_in_decl): Also set target/optimization flags
19467 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
19469 * ipa-inline.c (report_inline_failed_reason): Look into thunks, too
19470 (inline_small_functions): Do not look for function symbol when
19473 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
19475 * lto-cgraph.c (compute_ltrans_boundary, output_symtab): Fix handling
19478 2016-05-16 Matthew Wahab <matthew.wahab@arm.com>
19479 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
19480 Jiong Wang <jiong.wang@arm.com>
19482 * config/arm/arm-c.c (arm_cpu_builtins): Use def_or_undef_macro
19483 for __ARM_FP16_FORMAT_IEEE and __ARM_FP16_FORMAT_ALTERNATIVE.
19484 Define __ARM_FP16_ARGS when appropriate.
19485 * config/arm/arm.c (arm_invalid_parameter_type): Remove
19487 (arm_invalid_return_type): Likewise.
19488 (TARGET_INVALID_PARAMETER_TYPE): Remove.
19489 (TARGET_INVALID_RETURN_TYPE): Remove.
19490 (aapcs_vfp_sub_candidate): Allow HFmode.
19491 (aapcs_vfp_allocate): Add comment. Support HFmode.
19492 (aapcs_vfp_allocate_return_reg): Likewise.
19493 (struct aapcs_cp_arg_layout): Slightly reword comments for
19494 is_return_candidate and allocate_return_reg.
19495 (output_mov_vfp): Update assert.
19496 (arm_hard_regno_mode_ok): Remove comment, update HF-mode
19498 (arm_invalid_parameter_type): Remove.
19499 (amr_invalid_return_type): Remove.
19500 * config/arm/arm.h (TARGET_NEON_FP16): Fix definition.
19501 * config/arm/arm.md (*arm32_movhf): Disable for TARGET_VFP.
19502 * config/arm/vfp.md (*movhf_vfp): Enable for TARGET_VFP.
19504 2016-05-16 Matthew Wahab <matthew.wahab@arm.com>
19506 * config/aarch64/aarch64.h (LEGITIMIZE_RELOAD_ADDRESS): Remove.
19507 * config/aarch64/arch64-protos.h
19508 (aarch64_legitimize_reload_address): Remove.
19509 * config/aarch64/aarch64.c (aarch64_legitimize_reload_address):
19512 2016-05-16 Eric Botcazou <ebotcazou@adacore.com>
19514 * configure.ac: Add ACX_NONCANONICAL_HOST.
19515 * configure: Regenerate.
19516 * Makefile.in: Set host_noncanonical.
19518 2016-05-14 Uros Bizjak <ubizjak@gmail.com>
19521 * config/i386/i386.md (*movtf_internal): Before register allocation,
19522 do not allow FP constants for CM_MEDIUM memory model, allow only
19523 standard FP constants for CM_LARGE and CM_LARGE_PIC models.
19524 (*movxf_internal): Ditto.
19525 (*movdf_internal): Ditto.
19526 (*movsf_internal): Ditto.
19528 2016-05-13 Segher Boessenkool <segher@kernel.crashing.org>
19530 PR rtl-optimization/67483
19531 * combine.c (make_compound_operation): Don't call extract_left_shift
19532 with negative shift amounts.
19534 2016-05-13 Jakub Jelinek <jakub@redhat.com>
19537 * fold-const.c (fold_checksum_tree): Allow modification
19538 of TYPE_ALIAS_SET during folding.
19540 * config/i386/i386.c (ix86_compute_frame_layout, ix86_expand_prologue,
19541 ix86_expand_split_stack_prologue): Use HOST_WIDE_INT_C macro.
19542 (ix86_split_to_parts): Likewise. Fix up formatting.
19544 2016-05-13 H.J. Lu <hongjiu.lu@intel.com>
19546 * tree-ssa-loop-ivopts.c (create_new_ivs): Cast to
19547 unsigned HOST_WIDE_INT with HOST_WIDE_INT_PRINT_UNSIGNED in
19550 2016-05-13 Nathan Sidwell <nathan@acm.org>
19552 * config/nvptx/nvptx.c (nvptx_mangle_decl_assembler_name): New.
19553 (nvptx_name_replacement): Delete.
19554 (write_fn_proto, write_fn_proto_from_insn,
19555 nvptx_output_call_insn): Remove nvptx_name_replacement call.
19556 (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Override.
19557 * langhooks.c (add_builtin_funcction_common): Call
19558 targetm.mangle_decl_assembler_name.
19560 * config/nvptx/nvptx.c (write_fn_proto): Handle
19561 BUILT_IN_ATOMIC_COMPARE_EXCHANGE_n oddity.
19563 2016-05-13 Martin Liska <mliska@suse.cz>
19565 * tree-ssa-loop-ivopts.c (create_new_ivs): Use HOST_WIDE_INT_PRINT_DEC
19566 and PRIu64 in printf format.
19568 2016-05-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
19570 * tree-ssa-loop-ivanon.c (try_unroll_loop_completely): Typo fix in
19573 2016-05-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
19575 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely):
19576 Change --param max-completely-peeled-times to
19577 --param max-completely-peel-times in dump file printing.
19579 2016-05-13 Richard Biener <rguenther@suse.de>
19581 PR tree-optimization/42587
19582 * tree-ssa-math-opts.c (perform_symbolic_merge): Handle BIT_FIELD_REF.
19583 (find_bswap_or_nop_1): Likewise.
19584 (bswap_replace): Likewise.
19586 2016-05-13 Martin Liska <mliska@suse.cz>
19588 * tree-vect-patterns.c (vect_recog_mask_conversion_pattern):
19589 Initialize a variable with default value.
19591 2016-05-13 Martin Liska <mliska@suse.cz>
19593 * doc/invoke.texi: Enhance explanation of error recovery
19596 2016-05-13 Martin Liska <mliska@suse.cz>
19598 * tree-ssa-loop-ivopts.c (avg_loop_niter): Fix coding style.
19599 (struct cost_pair): Change inv_expr_id (int) to inv_expr
19600 (iv_inv_expr_ent *).
19601 (struct iv_inv_expr_ent): Comment struct fields.
19602 (sort_iv_inv_expr_ent): New function.
19603 (struct ivopts_data): Rename inv_expr_id to max_inv_expr_id.
19604 (struct iv_ca): Replace used_inv_expr and num_used_inv_expr with
19605 a hash_map between iv_inv_expr_ent and number of usages.
19606 (niter_for_exit): Fix coding style.
19607 (tree_ssa_iv_optimize_init): Use renamed variable.
19608 (determine_base_object): Fix coding style.
19609 (alloc_iv): Likewise.
19610 (find_interesting_uses_outside): Likewise.
19611 (add_candidate_1): Likewise.
19612 (add_standard_iv_candidates): Likewise.
19613 (set_group_iv_cost): Replace inv_expr_id with inv_expr.
19614 (prepare_decl_rtl): Fix coding style.
19615 (get_address_cost): Likewise.
19616 (get_shiftadd_cost): Likewise.
19617 (force_expr_to_var_cost): Likewise.
19618 (compare_aff_trees): Likewise.
19619 (get_expr_id): Restructure the function.
19620 (get_loop_invariant_expr_id): Renamed to
19621 get_loop_invariant_expr.
19622 (get_computation_cost_at): Replace usage of inv_expr_id with
19624 (get_computation_cost): Likewise.
19625 (determine_group_iv_cost_generic): Likewise.
19626 (determine_group_iv_cost_address): Likewise.
19627 (iv_period): Fix coding style.
19628 (iv_elimination_compare_lt): Likewise.
19629 (may_eliminate_iv): Likewise.
19630 (determine_group_iv_cost_cond): Replace usage of inv_expr_id with
19632 (determine_group_iv_costs): Dump invariant expressions.
19633 (iv_ca_recount_cost): Use the newly added hash_map.
19634 (iv_ca_set_remove_invariants): Fix coding style.
19635 (iv_ca_set_add_invariants): Fix coding style.
19636 (iv_ca_set_no_cp): Utilize the newly added hash_map for used
19638 (iv_ca_set_cp): Likewise.
19639 (iv_ca_new): Initialize the newly added hash_map and remove
19640 initialization of fields.
19641 (iv_ca_free): Delete the hash_map.
19642 (iv_ca_dump): Dump invariant expressions.
19643 (iv_ca_extend): Fix coding style.
19644 (try_add_cand_for): Likewise.
19645 (create_new_ivs): Dump information about # of avg iterations and
19646 # of used invariant expressions.
19647 (rewrite_use_compare): Fix coding style.
19648 (free_loop_data): Set default value for max_inv_expr_id.
19650 2016-05-13 Ilya Enkovich <ilya.enkovich@intel.com>
19652 * cse.c (rest_of_handle_cse): Use cleanup_cfg
19653 returned value cse_cfg_altered computation.
19654 (rest_of_handle_cse2): Likewise.
19655 (rest_of_handle_cse_after_global_opts): Likewise.
19657 2016-05-13 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
19660 * config/arm/arm.c (arm32_output_mi_thunk): New.
19661 (arm_output_mi_thunk): Rename to arm_thumb1_mi_thunk. Rework
19662 to split Thumb1 vs TARGET_32BIT functionality.
19663 (arm_thumb1_mi_thunk): New.
19665 2016-05-13 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
19667 * config/aarch64/aarch64.c (TARGET_OMIT_STRUCT_RETURN_REG): Set
19670 2016-05-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
19673 * config/i386/i386.c (ix86_in_large_data_p): Guard against NULL exp.
19675 2016-05-13 Eric Botcazou <ebotcazou@adacore.com>
19677 * builtins.c (expand_builtin_memcmp): Do not emit the call here.
19678 (expand_builtin_trap): Emit a regular call.
19679 (set_builtin_user_assembler_name): Remove obsolete cases.
19680 * dse.c (scan_insn): Adjust.
19681 * except.c: Include calls.h.
19682 (sjlj_emit_function_enter): If DONT_USE_BUILTIN_SETJMP is defined,
19683 emit a regular call to setjmp.
19684 * expr.c (emit_block_move_hints): Call emit_block_copy_via_libcall.
19685 (block_move_libcall_safe_for_call_parm): Use memcpy builtin.
19686 (emit_block_move_via_libcall): Delete.
19687 (block_move_fn): Delete.
19688 (init_block_move_fn): Likewise.
19689 (emit_block_move_libcall_fn): Likewise.
19690 (emit_block_op_via_libcall): New function.
19691 (set_storage_via_libcall): Tidy up and use memset builtin.
19692 (block_clear_fn): Delete.
19693 (init_block_clear_fn): Likewise.
19694 (clear_storage_libcall_fn): Likewise.
19695 (expand_assignment): Call emit_block_move_via_libcall.
19696 Do not include gt-expr.h.
19697 * expr.h (emit_block_op_via_libcall): Declare.
19698 (emit_block_copy_via_libcall): New inline function.
19699 (emit_block_move_via_libcall): Likewise.
19700 (emit_block_comp_via_libcall): Likewise.
19701 (block_clear_fn): Delete.
19702 (init_block_move_fn): Likewise.
19703 (init_block_clear_fn): Likewise.
19704 (emit_block_move_via_libcall): Likewise.
19705 (set_storage_via_libcall): Add default parameter value.
19706 * libfuncs.h (enum libfunc_index): Remove obsolete values.
19707 (abort_libfunc): Delete.
19708 (memcpy_libfunc): Likewise.
19709 (memmove_libfunc): Likewise.
19710 (memcmp_libfunc): Likewise.
19711 (memset_libfunc): Likewise.
19712 (setbits_libfunc): Likewise.
19713 (setjmp_libfunc): Likewise.
19714 (longjmp_libfunc): Likewise.
19715 (profile_function_entry_libfunc): Likewise.
19716 (profile_function_exit_libfunc): Likewise.
19717 (gcov_flush_libfunc): Likewise.
19718 * optabs-libfuncs.c (build_libfunc_function): Set DECL_ARTIFICIAL
19719 and DECL_VISIBILITY on the declaration.
19720 (init_optabs): Do not initialize obsolete libfuncs.
19721 * optabs.c (prepare_cmp_insn): Call emit_block_comp_via_libcall.
19722 * tree-core.h (ECF_RET1): Define.
19723 (ECF_TM_PURE): Adjust.
19724 (ECF_TM_BUILTIN): Likewise.
19725 * tree.c (set_call_expr_flags): Deal with ECF_RET1.
19726 (build_common_builtin_nodes): Initialize abort builtin.
19727 Add ECF_RET1 on memcpy, memmove and memset builtins.
19728 Pass final flags for alloca and alloca_with_align builtins.
19729 * config/alpha/alpha.c (alpha_init_libfuncs): Do not initialize
19731 * config/ia64/ia64.c (ia64_vms_init_libfuncs): Likewise.
19732 * config/i386/i386.c (ix86_expand_set_or_movmem): Adjust call to
19733 set_storage_via_libcall and call emit_block_copy_via_libcall.
19735 2016-05-12 Uros Bizjak <ubizjak@gmail.com>
19737 * config/i386/i386.md (*call_got_x32): Change operand 0 to
19738 DImode before it is passed to ix86_output_call_operand.
19739 (*call_value_got_x32): Ditto for operand 1.
19741 2016-05-12 Jiong Wang <jiong.wang@arm.com>
19743 PR rtl-optimization/70904
19744 * lra-constraint.c (process_addr_reg): Relax the restriction on subreg
19745 reload for wide mode.
19747 2016-05-12 Marek Polacek <polacek@redhat.com>
19750 * langhooks-def.h (lhd_incomplete_type_error): Adjust declaration.
19751 * langhooks.c (lhd_incomplete_type_error): Add location parameter.
19752 * langhooks.h (incomplete_type_error): Likewise.
19753 * tree.c (size_in_bytes_loc): Renamed from size_in_bytes. Add location
19754 parameter, pass it down to incomplete_type_error.
19755 * tree.h (size_in_bytes): New inline overload.
19756 (size_in_bytes_loc): Renamed from size_in_bytes.
19758 2016-05-12 Richard Biener <rguenther@suse.de>
19760 PR tree-optimization/71059
19761 * tree-ssa-pre.c (phi_translate_1): Fully fold translated
19762 nary before looking up or entering the expression into the VN
19764 * tree-ssa-sccvn.c (vn_nary_build_or_lookup): Fix comment typo.
19765 Make sure to re-use NARYs without result as inserted by
19768 2016-05-12 Richard Biener <rguenther@suse.de>
19770 PR tree-optimization/71062
19771 * tree-ssa-alias.h (struct pt_solution): Add vars_contains_restrict
19773 * tree-ssa-structalias.c (set_uids_in_ptset): Set
19774 vars_contains_restrict if the var is a restrict tag.
19775 * tree-ssa-alias.c (ptrs_compare_unequal): If vars_contains_restrict
19776 do not disambiguate pointers against it.
19777 (dump_points_to_solution): Re-structure and adjust for new
19778 vars_contains_restrict flag.
19779 * gimple-pretty-print.c (pp_points_to_solution): Likewise.
19781 2016-05-12 Martin Liska <mliska@suse.cz>
19783 * doc/invoke.texi: Explain connection between
19784 -fsanitize-recover=address and ASAN_OPTIONS="halt_on_error=1".
19786 2016-05-12 Ilya Enkovich <ilya.enkovich@intel.com>
19788 PR tree-optimization/71006
19789 * tree-vect-loop.c (vect_determine_vectorization_factor): Don't
19790 consider COND_EXPR as a mask producer.
19792 2016-05-12 Marek Polacek <polacek@redhat.com>
19795 * opts.c (common_handle_option): Detect missing argument for --help^.
19797 2016-05-12 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
19800 * config/arm/arm.c (arm_output_multireg_pop): Avoid POP instruction
19801 when popping the PC and within an interrupt handler routine.
19802 Add missing tab to output of "ldmfd".
19803 (output_return_instruction): Output LDMFD with SP update rather
19804 than POP when returning from interrupt handler.
19806 2016-05-12 Jakub Jelinek <jakub@redhat.com>
19808 * config/i386/i386.md (isa): Add x64_avx512dq, enable if
19809 TARGET_64BIT && TARGET_AVX512DQ.
19810 * config/i386/sse.md (*vec_extract<mode>): Add avx512bw alternatives.
19811 (*vec_extract<PEXTR_MODE12:mode>_zext): Add avx512bw alternative.
19812 (*vec_extract<ssevecmodelower>_0, *vec_extractv4si_0_zext,
19813 *vec_extractv2di_0_sse): Use v constraint instead of x constraint.
19814 (*vec_extractv4si): Add avx512dq and avx512bw alternatives.
19815 (*vec_extractv4si_zext): Add avx512dq alternative.
19816 (*vec_extractv2di_1): Add x64_avx512dq and avx512bw alternatives,
19817 use v instead of x constraint in other alternatives where possible.
19819 * config/i386/sse.md (sse2_loadld): Use v instead of x
19820 constraint in alternatives 0,1,4.
19822 * config/i386/sse.md (pinsr_evex_isa): New mode attr.
19823 (<sse2p4_1>_pinsr<ssemodesuffix>): Add 2 alternatives with
19824 v constraints instead of x and <pinsr_evex_isa> isa attribute.
19827 * config/i386/sse.md (<sse2_avx2>_packssdw<mask_name>,
19828 <sse4_1_avx2>_packusdw<mask_name>): Make sure EVEX encoded insn
19829 is not emitted unless TARGET_AVX512BW.
19830 (<sse2_avx2>_packuswb<mask_name>, <sse2_avx2>_packsswb<mask_name>):
19831 Likewise. For TARGET_AVX512BW, use "=v" constraint instead of "=x"
19832 for the result operand.
19834 * config/i386/sse.md (*vec_setv4sf_sse4_1, sse4_1_insertps): Use v
19835 constraint instead of x in avx alternatives. Use maybe_evex instead
19838 * config/i386/constraints.md (Yv): New constraint.
19839 * config/i386/i386.h (VALID_AVX512VL_128_REG_MODE): Allow
19840 TFmode and V1TImode in xmm16+ registers for TARGET_AVX512VL.
19841 * config/i386/i386.md (avx512fvecmode): New mode attr.
19842 (*pushtf): Use v constraint instead of x.
19843 (*movtf_internal): Likewise. For TARGET_AVX512VL and
19844 xmm16+ registers, use vmovdqu64 or vmovdqa64 instructions.
19845 (*absneg<mode>2): Use Yv constraint instead of x constraint.
19846 (*absnegtf2_sse): Likewise.
19847 (copysign<mode>3_const, copysign<mode>3_var): Likewise.
19848 * config/i386/sse.md (*andnot<mode>3): Add avx512vl and
19849 avx512f alternatives.
19850 (*andnottf3, *<code><mode>3, *<code>tf3): Likewise.
19852 2016-05-12 Richard Biener <rguenther@suse.de>
19854 PR tree-optimization/71060
19855 * tree-data-ref.c (initialize_data_dependence_relation): Do not
19856 require exact match of DR_BASE_OBJECT but only matching address and
19859 2016-05-12 Richard Biener <rguenther@suse.de>
19861 PR tree-optimization/70986
19862 * cfganal.c: Include cfgloop.h.
19863 (dfs_find_deadend): Prefer to take edges exiting loops.
19865 2016-05-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
19867 * gcc.target/powerpc/pr70963.c: Require at least power8 at both
19868 compile and run time.
19870 2016-05-11 Mikhail Maltsev <maltsevm@gmail.com>
19873 * doc/invoke.texi (Wduplicate-decl-specifier): Document new option.
19875 2016-05-11 Uros Bizjak <ubizjak@gmail.com>
19877 * config/i386/i386.c (legitimize_pic_address): Use
19878 copy_to_suggested_reg instead of gen_movsi.
19880 2016-05-11 Michael Meissner <meissner@linux.vnet.ibm.com>
19882 * config/rs6000/predicates.md (quad_memory_operand): Move most of
19883 the code into quad_address_p and call it to share code with
19884 vsx_quad_dform_memory_operand.
19885 (vsx_quad_dform_memory_operand): New predicate for ISA 3.0 vector
19887 * config/rs6000/rs6000.opt (-mlra): Switch to being an option mask
19888 bit instead of being a separate word. Split -mpower9-dform into
19889 two switches, -mpower9-dform-scalar and -mpower9-dform-vector.
19890 * config/rs6000/rs6000.c (RELOAD_REG_QUAD_OFFSET): New addr_mask
19891 for the register class supporting 128-bit quad word memory offsets.
19892 (mode_supports_vsx_dform_quad): Helper function to return if the
19893 register class uses quad word memory offsets.
19894 (rs6000_debug_addr_mask): Add support for quad word memory offsets.
19895 (rs6000_debug_reg_global): Always print if we are using LRA or not.
19896 (rs6000_setup_reg_addr_masks): If ISA 3.0 vector d-form
19897 instructions are enabled, set up the appropriate addr_masks for
19899 (rs6000_init_hard_regno_mode_ok): wb constraint is now based on
19900 -mpower9-dform-scalar, instead of -mpower9-dform.
19901 (rs6000_option_override_internal): Split -mpower9-dform into two
19902 switches, -mpower9-dform-scalar and -mpower9-dform-vector. The
19903 -mpower9-dform switch sets or clears both. If we are not using
19904 the LRA register allocator, do not enable -mpower9-dform-vector by
19905 default. If we are using LRA, enable -mpower9-dform-vector and
19906 -mvsx-timode if it is appropriate. Issue a warning if either
19907 -mpower9-dform-vector or -mvsx-timode are explicitly used without
19909 (quad_address_offset_p): New helper function to return if the
19910 offset is legal for quad word memory instructions.
19911 (quad_address_p): New function to determin if GPR or vector
19912 register quad word memory addresses are legal.
19913 (mem_operand_gpr): Validate quad word address offsets.
19914 (reg_offset_addressing_ok_p): Add support for ISA 3.0 vector
19915 d-form (register + offset) instructions.
19916 (offsettable_ok_by_alignment): Likewise.
19917 (rs6000_legitimate_offset_address_p): Likewise.
19918 (legitimate_lo_sum_address_p): Likewise.
19919 (rs6000_legitimize_address): Likewise.
19920 (rs6000_legitimize_reload_address): Add more debug statements for
19922 (rs6000_legitimate_address_p): Add support for ISA 3.0 vector
19923 d-form instructions.
19924 (rs6000_secondary_reload_memory): Add support for ISA 3.0 vector
19925 d-form instructions. Distinguish different cases in debug
19926 output. (rs6000_secondary_reload_inner): Add support for ISA 3.0 vector
19927 d-form instructions.
19928 (rs6000_preferred_reload_class): Likewise.
19929 (rs6000_output_move_128bit): Add support for ISA 3.0 d-form
19930 instructions. If ISA 3.0 is available, generate lxvx/stxvx instead
19931 of the ISA 2.06 indexed memory instructions.
19932 (rs6000_emit_prologue): If we have ISA 3.0 d-form instructions,
19933 use them to save/restore the saved vector registers instead of
19934 using Altivec instructions.
19935 (rs6000_emit_epilogue): Likewise.
19936 (rs6000_lra_p): Use TARGET_LRA instead of the old option word.
19937 (rs6000_opt_masks): Split -mpower9-dform into
19938 -mpower9-dform-scalar and -mpower9-dform-vector.
19939 (rs6000_print_options_internal): Print -mno-<switch> if <switch>
19941 * config/rs6000/vsx.md (p9_vecload_<mode>): Delete hack to emit
19942 ISA 3.0 vector indexed memory instructions, and fold the code into
19943 the normal mov<mode> patterns.
19944 (p9_vecstore_<mode>): Likewise.
19945 (vsx_mov<mode>): Add support for ISA 3.0 vector d-form
19947 (vsx_movti_64bit): Likewise.
19948 (vsx_movti_32bit): Likewise.
19949 * config/rs6000/constraints.md (wO constraint): New constraint for
19950 ISA 3.0 vector d-form support.
19951 * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Use
19952 -mpower9-dform-scalar instead of -mpower9-dform. Add note not to
19953 include -mpower9-dform-vector until we switch over to LRA.
19954 (POWERPC_MASKS): Add -mlra. Split -mpower9-dform into two.
19955 switches, -mpower9-dform-scalar and -mpower9-dform-vector.
19956 * config/rs6000/rs6000-protos.h (quad_address_p): Add declaration.
19957 * doc/invoke.texi (RS/6000 and PowerPC Options): Add documentation
19958 for -mpower9-dform and -mlra.
19959 * doc/md.texi (wO constraint): Document wO constraint.
19961 2016-05-11 Alexander Monakov <amonakov@ispras.ru>
19963 * genattr.c (main): Change 'rtx' to 'rtx_insn *' in prototypes of
19964 'insn_latency', 'maximal_insn_latency', 'min_insn_conflict_delay'.
19965 * genautomata.c (output_internal_insn_code_evaluation): Simplify.
19966 Move handling of non-insn arguments inline into the sole user:
19967 (output_trans_func): ...here.
19968 (output_min_insn_conflict_delay_func): Change 'rtx' to 'rtx_insn *'
19969 in emitted function prototype.
19970 (output_internal_insn_latency_func): Ditto. Simplify.
19971 (output_internal_maximal_insn_latency_func): Ditto. Delete
19972 always-unused argument.
19973 (output_insn_latency_func): Ditto.
19974 (output_maximal_insn_latency_func): Ditto.
19976 2016-05-11 Richard Biener <rguenther@suse.de>
19978 PR tree-optimization/71055
19979 * tree-ssa-sccvn.c (vn_reference_lookup_3): When native-interpreting
19980 sth with precision not equal to access size verify we don't chop
19983 2016-05-11 Richard Biener <rguenther@suse.de>
19986 * dwarf2out.c (retry_incomplete_types): Set early_dwarf.
19987 (dwarf2out_finish): Move retry_incomplete_types call ...
19988 (dwarf2out_early_finish): ... here.
19990 2016-05-11 Richard Biener <rguenther@suse.de>
19992 PR middle-end/71002
19993 * alias.c (reference_alias_ptr_type): Preserve alias-set zero
19994 if the langhook insists on it.
19995 * fold-const.c (make_bit_field_ref): Add arg for the original
19996 reference and preserve its alias-set.
19997 (decode_field_reference): Take exp by reference and adjust it
19998 to the original memory reference.
19999 (optimize_bit_field_compare): Adjust callers.
20000 (fold_truth_andor_1): Likewise.
20001 * gimplify.c (gimplify_expr): Adjust in-SSA form test.
20003 2016-05-11 Ilya Enkovich <ilya.enkovich@intel.com>
20005 PR middle-end/70807
20006 * cfgrtl.h (delete_insn_and_edges): Now return bool.
20007 * cfgrtl.c (delete_insn_and_edges): Likewise.
20008 * config/i386/i386.c (convert_scalars_to_vector): Remove
20010 * cse.c (cse_insn): Compute cse_cfg_altered.
20011 (delete_trivially_dead_insns): Likewise.
20012 (cse_cc_succs): Likewise.
20013 (rest_of_handle_cse): Free dominance info if required.
20014 (rest_of_handle_cse2): Likewise.
20015 (rest_of_handle_cse_after_global_opts): Likewise.
20017 2016-05-11 Alan Modra <amodra@gmail.com>
20019 * config/rs6000/rs6000.c (is_complex_IBM_long_double,
20020 abi_v4_pass_in_fpr): New functions.
20021 (rs6000_function_arg_boundary): Exclude complex IBM long double
20022 from 64-bit alignment when ABI_V4.
20023 (rs6000_function_arg, rs6000_function_arg_advance_1,
20024 rs6000_gimplify_va_arg): Use abi_v4_pass_in_fpr.
20026 2016-05-10 Segher Boessenkool <segher@kernel.crashing.org>
20028 PR rtl-optimization/71028
20029 * cfgcleanup.c (try_optimize_cfg): Do not flip a conditional
20030 jump with just a return in the fallthrough block if the branch
20031 block contains just a return as well.
20033 2016-05-10 Marc Glisse <marc.glisse@inria.fr>
20035 * fold-const.c (fold_binary_loc) [(X ^ Y) & Y]: Remove and merge with...
20036 * match.pd ((X & Y) ^ Y): ... this.
20037 ((X & Y) & Y, (X | Y) | Y, (X ^ Y) ^ Y, (X & Y) & (X & Z), (X | Y)
20038 | (X | Z), (X ^ Y) ^ (X ^ Z)): New transformations.
20040 2016-05-10 David Malcolm <dmalcolm@redhat.com>
20042 * read-md.c (require_char_ws): New function.
20043 (read_string): Simplify using require_char_ws.
20044 (handle_constants): Likewise.
20045 (handle_enum): Likewise.
20046 (handle_file): Likewise.
20047 * read-md.h (require_char_ws): New declaration.
20048 * read-rtl.c (read_conditions): Simplify using require_char_ws.
20049 (read_mapping): Likewise.
20050 (read_rtx_code): Likewise.
20051 (read_nested_rtx): Likewise.
20053 2016-05-10 James Norris <jnorris@codesourcery.com>
20055 * config/rs6000/sysv4.h (CRTOFFLOADBEGIN): Define. Add crtoffloadbegin.o
20056 if offloading is enabled and -fopenacc or -fopenmp is specified.
20057 (CRTOFFLOADEND): Likewise.
20058 (STARTFILE_LINUX_SPEC): Add CRTOFFLOADBEGIN.
20059 (ENDFILE_LINUX_SPEC): Add CRTOFFLOADEND.
20061 2016-05-10 Uros Bizjak <ubizjak@gmail.com>
20063 * config/i386/i386.c (legitimize_pic_address): Merge 64-bit and 32-bit
20064 gotoff_operand code paths. Use copy_to_suggested_regs and
20065 expand_simple_binop where appropriate. Cleanup.
20067 2016-05-10 Ilya Enkovich <ilya.enkovich@intel.com>
20070 * config/i386/i386.c (dimode_scalar_to_vector_candidate_p): Allow
20072 (dimode_scalar_chain::vector_const_cost): New.
20073 (dimode_scalar_chain::compute_convert_gain): Handle constants.
20074 (dimode_scalar_chain::convert_op): Likewise.
20075 (dimode_scalar_chain::convert_insn): Likewise.
20077 2016-05-10 Pierre-Marie de Rodat <derodat@adacore.com>
20079 * dwarf2out.c (resolve_args_picking_1): Consider DW_OP_neg as an
20080 unary operation, not a binary one.
20082 2016-05-10 Ilya Enkovich <ilya.enkovich@intel.com>
20084 PR middle-end/70877
20085 * tree-chkp.c (chkp_add_bounds_to_call_stmt): Handle
20086 calls with type casted fndecl.
20088 2016-05-10 Ilya Enkovich <ilya.enkovich@intel.com>
20090 PR tree-optimization/70786
20091 * tree-chkp.c (chkp_find_bounds_1): Support WITH_SIZE_EXPR.
20092 * calls.c (initialize_argument_information): Bind bounds
20093 with corresponding args passed by reference.
20095 2016-05-10 Jakub Jelinek <jakub@redhat.com>
20098 * config/i386/sse.md (<sse>_andnot<mode>3<mask_name>),
20099 *<code><mode>3<mask_name>): For !TARGET_AVX512DQ and EVEX encoding,
20100 use vp*[dq] instead of v*p[sd] instructions and adjust mode attribute
20103 2016-05-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
20106 * config/rs6000/vsx.md (vsx_xvcvdpsxds_scale): Generate correct
20107 code for a zero scale factor.
20108 (vsx_xvcvdpuxds_scale): Likewise.
20110 2016-05-10 David Malcolm <dmalcolm@redhat.com>
20112 * diagnostic-show-locus.c (layout::layout): Call show_ruler
20113 if show_ruler_p was set on the context.
20114 (layout::show_ruler): New method.
20115 * diagnostic.h (struct diagnostic_context): Add field
20118 2016-05-10 Richard Biener <rguenther@suse.de>
20120 PR tree-optimization/71039
20121 * tree-ssa-phiprop.c: Include tree-ssa-loop.h.
20122 (chk_uses): New function.
20123 (propagate_with_phi): Verify we can safely replicate the lhs of an
20124 aggregate assignment on all incoming edges.
20126 2016-05-10 Oleg Endo <olegendo@gcc.gnu.org>
20128 * config/rx/rx-protos.h (is_interrupt_func, is_fast_interrupt_func):
20130 (rx_atomic_sequence): New class.
20131 * config/rx/rx.c (rx_print_operand): Use symbolic names for PSW bits.
20132 (is_interrupt_func, is_fast_interrupt_func): Make non-static and
20134 (rx_atomic_sequence::rx_atomic_sequence,
20135 rx_atomic_sequence::~rx_atomic_sequence): New functions.
20136 * config/rx/rx.md (CTRLREG_PSW, CTRLREG_USP, CTRLREG_FPSW, CTRLREG_CPEN,
20137 CTRLREG_BPSW, CTRLREG_BPC, CTRLREG_ISP, CTRLREG_FINTV,
20138 CTRLREG_INTB): New constants.
20139 (FETCHOP): New code iterator.
20140 (fethcop_name, fetchop_name2): New iterator code attributes.
20141 (QIHI): New mode iterator.
20142 (atomic_exchange<mode>, atomic_exchangesi, xchg_mem<mode>,
20143 atomic_fetch_<fetchop_name>si, atomic_fetch_nandsi,
20144 atomic_<fetchop_name>_fetchsi, atomic_nand_fetchsi): New patterns.
20146 2016-05-10 Martin Liska <mliska@suse.cz>
20148 * tree-inline.c (remap_dependence_clique): Do not remap
20149 debugging statements.
20151 2016-05-10 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
20153 * config/s390/s390.md ("*vec_cmp<insn_cmp>df_cconly")
20154 ("*fixuns_truncdfdi2_z13")
20155 ("*fixuns_trunc<FP:mode><GPR:mode>2_z196")
20156 ("*fix_truncdfdi2_bfp_z13", "*floatunsdidf2_z13")
20157 ("*extendsfdf2_z13"): Replace TARGET_Z13 with TARGET_VX.
20159 2016-05-10 Richard Biener <rguenther@suse.de>
20161 PR tree-optimization/70497
20162 PR tree-optimization/28367
20163 * tree-ssa-sccvn.c (vn_nary_build_or_lookup): New function
20165 (visit_reference_op_load): ... here.
20166 (vn_reference_lookup_3): Use it to handle subreg-like accesses
20167 with simplified BIT_FIELD_REFs.
20168 * tree-ssa-pre.c (eliminate_insert): Handle inserting BIT_FIELD_REFs.
20169 * tree-complex.c (extract_component): Handle BIT_FIELD_REFs
20172 2016-05-10 Pierre-Marie de Rodat <derodat@adacore.com>
20174 * dwarf2out.c (add_abstract_origin_attribute): Adjust
20175 documentation comment. For BLOCK nodes, add a
20176 DW_AT_abstract_origin attribute that points to the DIE generated
20177 for the origin BLOCK.
20178 (gen_lexical_block_die): Call add_abstract_origin_attribute for
20179 blocks from inlined functions.
20181 2016-05-10 Alan Modra <amodra@gmail.com>
20184 * config/rs6000/rs6000.c (rs6000_expand_split_stack_prologue): Stop
20185 regrename modifying insns saving lr before __morestack call.
20186 * config/rs6000/rs6000.md (split_stack_return): Similarly for
20187 insns restoring lr after __morestack call.
20189 2016-05-09 Jakub Jelinek <jakub@redhat.com>
20191 * config/i386/i386.md (set_got, set_got_labelled, lwp_llwpcb,
20192 lwp_lwpval<mode>3, lwp_lwpins<mode>3): Remove constraints from
20194 * config/i386/sse.md (vec_interleave_high<mode>,
20195 vec_interleave_low<mode>, <avx512>_vpermi2var<mode>3_maskz,
20196 <avx512>_vpermt2var<mode>3_maskz): Likewise.
20198 2016-05-04 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
20200 * config/rs6000/rs6000.c (rs6000_reassociation_width): Add
20201 function for TARGET_SCHED_REASSOCIATION_WIDTH to enable
20202 parallel reassociation for power8 and forward.
20204 2016-05-09 Uros Bizjak <ubizjak@gmail.com>
20206 * config/i386/i386.md (absneg splitters with general regs): Use
20207 general_reg_operand predicate.
20208 (btsq peephole2): Use x86_64_immediate_operand to check if new
20209 value is suitable for immediate operand. Generate emitted insn
20210 using RTL expressions.
20211 (btcq peephole2): Ditto.
20212 (btrq peephole2): Ditto. Generate correct immediate operand
20215 2016-05-09 Richard Sandiford <richard.sandiford@arm.com>
20217 * cfgexpand.c (expand_debug_expr): Fix address offset for negative
20220 2016-05-09 Richard Sandiford <richard.sandiford@arm.com>
20222 * tree-affine.c (wide_int_constant_multiple_p): Add missing
20223 pointer dereference.
20225 2016-05-09 Richard Biener <rguenther@suse.de>
20227 PR tree-optimization/70985
20228 * match.pd (BIT_FIELD_REF -> (type)): Disable on GIMPLE when
20229 op0 isn't a gimple register.
20231 2016-05-09 Prachi Godbole <prachi.godbole@imgtec.com>
20233 * config/mips/i6400.md (i6400_fpu_intadd, i6400_fpu_logic)
20234 (i6400_fpu_div, i6400_fpu_cmp, i6400_fpu_float, i6400_fpu_store)
20235 (i6400_fpu_long_pipe, i6400_fpu_logic_l, i6400_fpu_float_l)
20236 (i6400_fpu_mult): New cpu units.
20237 (i6400_msa_add_d, i6400_msa_int_add, i6400_msa_short_logic3)
20238 (i6400_msa_short_logic2, i6400_msa_short_logic, i6400_msa_move)
20239 (i6400_msa_cmp, i6400_msa_short_float2, i6400_msa_div_d)
20240 (i6400_msa_div_w, i6400_msa_div_h, i6400_msa_div_b)
20241 (i6400_msa_copy, i6400_msa_branch, i6400_fpu_msa_store)
20242 (i6400_fpu_msa_load, i6400_fpu_msa_move, i6400_msa_long_logic1)
20243 (i6400_msa_long_logic2, i6400_msa_mult, i6400_msa_long_float2)
20244 (i6400_msa_long_float4, i6400_msa_long_float5)
20245 (i6400_msa_long_float8, i6400_msa_fdiv_df)
20246 (i6400_msa_fdiv_sf): New reservations.
20247 * config/mips/p5600.md (p5600_fpu_intadd, p5600_fpu_cmp)
20248 (p5600_fpu_float, p5600_fpu_logic_a, p5600_fpu_logic_b)
20249 (p5600_fpu_div, p5600_fpu_logic, p5600_fpu_float_a)
20250 (p5600_fpu_float_b, p5600_fpu_float_c, p5600_fpu_float_d)
20251 (p5600_fpu_mult, p5600_fpu_fdiv, p5600_fpu_load): New cpu units.
20252 (msa_short_int_add, msa_short_logic, msa_short_logic_move_v)
20253 (msa_short_cmp, msa_short_float2, msa_short_logic3)
20254 (msa_short_store4, msa_long_load, msa_short_store)
20255 (msa_long_logic, msa_long_float2, msa_long_float4)
20256 (msa_long_float5, msa_long_float8, msa_long_mult)
20257 (msa_long_fdiv, msa_long_div): New reservations.
20259 2016-05-09 Robert Suchanek <robert.suchanek@imgtec.com>
20260 Sameera Deshpande <sameera.deshpande@imgtec.com>
20261 Matthew Fortune <matthew.fortune@imgtec.com>
20262 Graham Stott <graham.stott@imgtec.com>
20263 Chao-ying Fu <chao-ying.fu@imgtec.com>
20265 * config.gcc: Add MSA header file for mips*-*-* target.
20266 * config/mips/constraints.md (YI, YC, YZ, Unv5, Uuv5, Usv5, Uuv6)
20267 (Ubv8i, Urv8): New constraints.
20268 * config/mips/mips-ftypes.def: Add function types for MSA
20270 * config/mips/mips-modes.def (V16QI, V8HI, V4SI, V2DI, V4SF)
20271 (V2DF, V32QI, V16HI, V8SI, V4DI, V8SF, V4DF): New modes.
20272 * config/mips/mips-msa.md: New file.
20273 * config/mips/mips-protos.h
20274 (mips_split_128bit_const_insns): New prototype.
20275 (mips_msa_idiv_insns): Likewise.
20276 (mips_split_128bit_move): Likewise.
20277 (mips_split_128bit_move_p): Likewise.
20278 (mips_split_msa_copy_d): Likewise.
20279 (mips_split_msa_insert_d): Likewise.
20280 (mips_split_msa_fill_d): Likewise.
20281 (mips_expand_msa_branch): Likewise.
20282 (mips_const_vector_same_val_p): Likewise.
20283 (mips_const_vector_same_bytes_p): Likewise.
20284 (mips_const_vector_same_int_p): Likewise.
20285 (mips_const_vector_shuffle_set_p): Likewise.
20286 (mips_const_vector_bitimm_set_p): Likewise.
20287 (mips_const_vector_bitimm_clr_p): Likewise.
20288 (mips_msa_vec_parallel_const_half): Likewise.
20289 (mips_msa_output_division): Likewise.
20290 (mips_ldst_scaled_shift): Likewise.
20291 (mips_expand_vec_cond_expr): Likewise.
20292 * config/mips/mips.c (enum mips_builtin_type): Add
20293 MIPS_BUILTIN_MSA_TEST_BRANCH.
20294 (mips_gen_const_int_vector_shuffle): New prototype.
20295 (mips_const_vector_bitimm_set_p): New function.
20296 (mips_const_vector_bitimm_clr_p): Likewise.
20297 (mips_const_vector_same_val_p): Likewise.
20298 (mips_const_vector_same_bytes_p): Likewise.
20299 (mips_const_vector_same_int_p): Likewise.
20300 (mips_const_vector_shuffle_set_p): Likewise.
20301 (mips_symbol_insns): Forbid loading symbols via immediate for
20303 (mips_valid_offset_p): Limit offset to 10-bit for MSA loads and
20305 (mips_valid_lo_sum_p): Forbid loadings symbols via %lo(base) for
20307 (mips_lx_address_p): Add support load indexed address for MSA.
20308 (mips_address_insns): Add calculation of instructions needed for
20309 stores and loads for MSA.
20310 (mips_const_insns): Move CONST_DOUBLE below CONST_VECTOR. Handle
20311 CONST_VECTOR for MSA and let it fall through.
20312 (mips_ldst_scaled_shift): New function.
20313 (mips_subword_at_byte): Likewise.
20314 (mips_msa_idiv_insns): Likewise.
20315 (mips_legitimize_move): Validate MSA moves.
20316 (mips_rtx_costs): Add UNGE, UNGT, UNLE, UNLT cases. Add
20317 calculation of costs for MSA division.
20318 (mips_split_move_p): Check if MSA moves need splitting.
20319 (mips_split_move): Split MSA moves if necessary.
20320 (mips_split_128bit_move_p): New function.
20321 (mips_split_128bit_move): Likewise.
20322 (mips_split_msa_copy_d): Likewise.
20323 (mips_split_msa_insert_d): Likewise.
20324 (mips_split_msa_fill_d): Likewise.
20325 (mips_output_move): Handle MSA moves.
20326 (mips_expand_msa_branch): New function.
20327 (mips_print_operand): Add 'E', 'B', 'w', 'v' and 'V' modifiers.
20328 Reinstate 'y' modifier.
20329 (mips_file_start): Add MSA .gnu_attribute.
20330 (mips_hard_regno_mode_ok_p): Allow TImode and 128-bit vectors in
20332 (mips_hard_regno_nregs): Always return 1 for MSA supported mode.
20333 (mips_class_max_nregs): Add register size for MSA supported mode.
20334 (mips_cannot_change_mode_class): Allow conversion between MSA
20335 vector modes and TImode.
20336 (mips_mode_ok_for_mov_fmt_p): Allow MSA to use move.v
20338 (mips_secondary_reload_class): Force MSA loads/stores via memory.
20339 (mips_preferred_simd_mode): Add preffered modes for MSA.
20340 (mips_vector_mode_supported_p): Add MSA supported modes.
20341 (mips_autovectorize_vector_sizes): New function.
20342 (mips_msa_output_division): Likewise.
20343 (MSA_BUILTIN, MIPS_BUILTIN_DIRECT_NO_TARGET)
20344 (MSA_NO_TARGET_BUILTIN, MSA_BUILTIN_TEST_BRANCH): New macros.
20345 (CODE_FOR_msa_adds_s_b, CODE_FOR_msa_adds_s_h)
20346 (CODE_FOR_msa_adds_s_w, CODE_FOR_msa_adds_s_d)
20347 (CODE_FOR_msa_adds_u_b, CODE_FOR_msa_adds_u_h)
20348 (CODE_FOR_msa_adds_u_w, CODE_FOR_msa_adds_u_du
20349 (CODE_FOR_msa_addv_b, CODE_FOR_msa_addv_h, CODE_FOR_msa_addv_w)
20350 (CODE_FOR_msa_addv_d, CODE_FOR_msa_and_v, CODE_FOR_msa_bmnz_v)
20351 (CODE_FOR_msa_bmnzi_b, CODE_FOR_msa_bmz_v, CODE_FOR_msa_bmzi_b)
20352 (CODE_FOR_msa_bnz_v, CODE_FOR_msa_bz_v, CODE_FOR_msa_bsel_v)
20353 (CODE_FOR_msa_bseli_b, CODE_FOR_msa_ceqi_h, CODE_FOR_msa_ceqi_w)
20354 (CODE_FOR_msa_ceqi_d, CODE_FOR_msa_clti_s_b)
20355 (CODE_FOR_msa_clti_s_h, CODE_FOR_msa_clti_s_w)
20356 (CODE_FOR_msa_clti_s_d, CODE_FOR_msa_clti_u_b)
20357 (CODE_FOR_msa_clti_u_h, CODE_FOR_msa_clti_u_w)
20358 (CODE_FOR_msa_clti_u_d, CODE_FOR_msa_clei_s_b)
20359 (CODE_FOR_msa_clei_s_h, CODE_FOR_msa_clei_s_w)
20360 (CODE_FOR_msa_clei_s_d, CODE_FOR_msa_clei_u_b)
20361 (CODE_FOR_msa_clei_u_h, CODE_FOR_msa_clei_u_w)
20362 (CODE_FOR_msa_clei_u_d, CODE_FOR_msa_div_s_b)
20363 (CODE_FOR_msa_div_s_h, CODE_FOR_msa_div_s_w)
20364 (CODE_FOR_msa_div_s_d, CODE_FOR_msa_div_u_b)
20365 (CODE_FOR_msa_div_u_h, CODE_FOR_msa_div_u_w)
20366 (CODE_FOR_msa_div_u_d, CODE_FOR_msa_fadd_w, CODE_FOR_msa_fadd_d)
20367 (CODE_FOR_msa_fexdo_w, CODE_FOR_msa_ftrunc_s_w)
20368 (CODE_FOR_msa_ftrunc_s_d, CODE_FOR_msa_ftrunc_u_w)
20369 (CODE_FOR_msa_ftrunc_u_d, CODE_FOR_msa_ffint_s_w)
20370 (CODE_FOR_msa_ffint_s_d, CODE_FOR_msa_ffint_u_w)
20371 (CODE_FOR_msa_ffint_u_d, CODE_FOR_msa_fsub_w)
20372 (CODE_FOR_msa_fsub_d, CODE_FOR_msa_fmsub_d, CODE_FOR_msa_fmadd_w)
20373 (CODE_FOR_msa_fmadd_d, CODE_FOR_msa_fmsub_w, CODE_FOR_msa_fmul_w)
20374 (CODE_FOR_msa_fmul_d, CODE_FOR_msa_fdiv_w, CODE_FOR_msa_fdiv_d)
20375 (CODE_FOR_msa_fmax_w, CODE_FOR_msa_fmax_d, CODE_FOR_msa_fmax_a_w)
20376 (CODE_FOR_msa_fmax_a_d, CODE_FOR_msa_fmin_w, CODE_FOR_msa_fmin_d)
20377 (CODE_FOR_msa_fmin_a_w, CODE_FOR_msa_fmin_a_d)
20378 (CODE_FOR_msa_fsqrt_w, CODE_FOR_msa_fsqrt_d)
20379 (CODE_FOR_msa_max_s_b, CODE_FOR_msa_max_s_h)
20380 (CODE_FOR_msa_max_s_w, CODE_FOR_msa_max_s_d)
20381 (CODE_FOR_msa_max_u_b, CODE_FOR_msa_max_u_h)
20382 (CODE_FOR_msa_max_u_w, CODE_FOR_msa_max_u_d)
20383 (CODE_FOR_msa_min_s_b, CODE_FOR_msa_min_s_h)
20384 (CODE_FOR_msa_min_s_w, CODE_FOR_msa_min_s_d)
20385 (CODE_FOR_msa_min_u_b, CODE_FOR_msa_min_u_h)
20386 (CODE_FOR_msa_min_u_w, CODE_FOR_msa_min_u_d)
20387 (CODE_FOR_msa_mod_s_b, CODE_FOR_msa_mod_s_h)
20388 (CODE_FOR_msa_mod_s_w, CODE_FOR_msa_mod_s_d)
20389 (CODE_FOR_msa_mod_u_b, CODE_FOR_msa_mod_u_h)
20390 (CODE_FOR_msa_mod_u_w, CODE_FOR_msa_mod_u_d)
20391 (CODE_FOR_msa_mod_s_b, CODE_FOR_msa_mod_s_h)
20392 (CODE_FOR_msa_mod_s_w, CODE_FOR_msa_mod_s_d)
20393 (CODE_FOR_msa_mod_u_b, CODE_FOR_msa_mod_u_h)
20394 (CODE_FOR_msa_mod_u_w, CODE_FOR_msa_mod_u_d)
20395 (CODE_FOR_msa_mulv_b, CODE_FOR_msa_mulv_h, CODE_FOR_msa_mulv_w)
20396 (CODE_FOR_msa_mulv_d, CODE_FOR_msa_nlzc_b, CODE_FOR_msa_nlzc_h)
20397 (CODE_FOR_msa_nlzc_w, CODE_FOR_msa_nlzc_d, CODE_FOR_msa_nor_v)
20398 (CODE_FOR_msa_or_v, CODE_FOR_msa_ori_b, CODE_FOR_msa_nori_b)
20399 (CODE_FOR_msa_pcnt_b, CODE_FOR_msa_pcnt_h, CODE_FOR_msa_pcnt_w)
20400 (CODE_FOR_msa_pcnt_d, CODE_FOR_msa_xor_v, CODE_FOR_msa_xori_b)
20401 (CODE_FOR_msa_sll_b, CODE_FOR_msa_sll_h, CODE_FOR_msa_sll_w)
20402 (CODE_FOR_msa_sll_d, CODE_FOR_msa_slli_b, CODE_FOR_msa_slli_h)
20403 (CODE_FOR_msa_slli_w, CODE_FOR_msa_slli_d, CODE_FOR_msa_sra_b)
20404 (CODE_FOR_msa_sra_h, CODE_FOR_msa_sra_w, CODE_FOR_msa_sra_d)
20405 (CODE_FOR_msa_srai_b, CODE_FOR_msa_srai_h, CODE_FOR_msa_srai_w)
20406 (CODE_FOR_msa_srai_d, CODE_FOR_msa_srl_b, CODE_FOR_msa_srl_h)
20407 (CODE_FOR_msa_srl_w, CODE_FOR_msa_srl_d, CODE_FOR_msa_srli_b)
20408 (CODE_FOR_msa_srli_h, CODE_FOR_msa_srli_w, CODE_FOR_msa_srli_d)
20409 (CODE_FOR_msa_subv_b, CODE_FOR_msa_subv_h, CODE_FOR_msa_subv_w)
20410 (CODE_FOR_msa_subv_d, CODE_FOR_msa_subvi_b, CODE_FOR_msa_subvi_h)
20411 (CODE_FOR_msa_subvi_w, CODE_FOR_msa_subvi_d, CODE_FOR_msa_move_v)
20412 (CODE_FOR_msa_vshf_b, CODE_FOR_msa_vshf_h, CODE_FOR_msa_vshf_w)
20413 (CODE_FOR_msa_vshf_d, CODE_FOR_msa_ilvod_d, CODE_FOR_msa_ilvev_d)
20414 (CODE_FOR_msa_pckod_d, CODE_FOR_msa_pckdev_d, CODE_FOR_msa_ldi_b)
20415 (CODE_FOR_msa_ldi_hi, CODE_FOR_msa_ldi_w)
20416 (CODE_FOR_msa_ldi_d): New code_aliasing macros.
20417 (mips_builtins): Add MSA sll_b, sll_h, sll_w, sll_d, slli_b,
20418 slli_h, slli_w, slli_d, sra_b, sra_h, sra_w, sra_d, srai_b,
20419 srai_h, srai_w, srai_d, srar_b, srar_h, srar_w, srar_d, srari_b,
20420 srari_h, srari_w, srari_d, srl_b, srl_h, srl_w, srl_d, srli_b,
20421 srli_h, srli_w, srli_d, srlr_b, srlr_h, srlr_w, srlr_d, srlri_b,
20422 srlri_h, srlri_w, srlri_d, bclr_b, bclr_h, bclr_w, bclr_d,
20423 bclri_b, bclri_h, bclri_w, bclri_d, bset_b, bset_h, bset_w,
20424 bset_d, bseti_b, bseti_h, bseti_w, bseti_d, bneg_b, bneg_h,
20425 bneg_w, bneg_d, bnegi_b, bnegi_h, bnegi_w, bnegi_d, binsl_b,
20426 binsl_h, binsl_w, binsl_d, binsli_b, binsli_h, binsli_w,
20427 binsli_d, binsr_b, binsr_h, binsr_w, binsr_d, binsri_b, binsri_h,
20428 binsri_w, binsri_d, addv_b, addv_h, addv_w, addv_d, addvi_b,
20429 addvi_h, addvi_w, addvi_d, subv_b, subv_h, subv_w, subv_d,
20430 subvi_b, subvi_h, subvi_w, subvi_d, max_s_b, max_s_h, max_s_w,
20431 max_s_d, maxi_s_b, maxi_s_h, maxi_s_w, maxi_s_d, max_u_b,
20432 max_u_h, max_u_w, max_u_d, maxi_u_b, maxi_u_h, maxi_u_w,
20433 maxi_u_d, min_s_b, min_s_h, min_s_w, min_s_d, mini_s_b, mini_s_h,
20434 mini_s_w, mini_s_d, min_u_b, min_u_h, min_u_w, min_u_d, mini_u_b,
20435 mini_u_h, mini_u_w, mini_u_d, max_a_b, max_a_h, max_a_w, max_a_d,
20436 min_a_b, min_a_h, min_a_w, min_a_d, ceq_b, ceq_h, ceq_w, ceq_d,
20437 ceqi_b, ceqi_h, ceqi_w, ceqi_d, clt_s_b, clt_s_h, clt_s_w,
20438 clt_s_d, clti_s_b, clti_s_h, clti_s_w, clti_s_d, clt_u_b,
20439 clt_u_h, clt_u_w, clt_u_d, clti_u_b, clti_u_h, clti_u_w,
20440 clti_u_d, cle_s_b, cle_s_h, cle_s_w, cle_s_d, clei_s_b, clei_s_h,
20441 clei_s_w, clei_s_d, cle_u_b, cle_u_h, cle_u_w, cle_u_d, clei_u_b,
20442 clei_u_h, clei_u_w, clei_u_d, ld_b, ld_h, ld_w, ld_d, st_b, st_h,
20443 st_w, st_d, sat_s_b, sat_s_h, sat_s_w, sat_s_d, sat_u_b, sat_u_h,
20444 sat_u_w, sat_u_d, add_a_b, add_a_h, add_a_w, add_a_d, adds_a_b,
20445 adds_a_h, adds_a_w, adds_a_d, adds_s_b, adds_s_h, adds_s_w,
20446 adds_s_d, adds_u_b, adds_u_h, adds_u_w, adds_u_d, ave_s_b,
20447 ave_s_h, ave_s_w, ave_s_d, ave_u_b, ave_u_h, ave_u_w, ave_u_d,
20448 aver_s_b, aver_s_h, aver_s_w, aver_s_d, aver_u_b, aver_u_h,
20449 aver_u_w, aver_u_d, subs_s_b, subs_s_h, subs_s_w, subs_s_d,
20450 subs_u_b, subs_u_h, subs_u_w, subs_u_d, subsuu_s_b, subsuu_s_h,
20451 subsuu_s_w, subsuu_s_d, subsus_u_b, subsus_u_h, subsus_u_w,
20452 subsus_u_d, asub_s_b, asub_s_h, asub_s_w, asub_s_d, asub_u_b,
20453 asub_u_h, asub_u_w, asub_u_d, mulv_b, mulv_h, mulv_w, mulv_d,
20454 maddv_b, maddv_h, maddv_w, maddv_d, msubv_b, msubv_h, msubv_w,
20455 msubv_d, div_s_b, div_s_h, div_s_w, div_s_d, div_u_b, div_u_h,
20456 div_u_w, div_u_d, hadd_s_h, hadd_s_w, hadd_s_d, hadd_u_h,
20457 hadd_u_w, hadd_u_d, hsub_s_h, hsub_s_w, hsub_s_d, hsub_u_h,
20458 hsub_u_w, hsub_u_d, mod_s_b, mod_s_h, mod_s_w, mod_s_d, mod_u_b,
20459 mod_u_h, mod_u_w, mod_u_d, dotp_s_h, dotp_s_w, dotp_s_d,
20460 dotp_u_h, dotp_u_w, dotp_u_d, dpadd_s_h, dpadd_s_w, dpadd_s_d,
20461 dpadd_u_h, dpadd_u_w, dpadd_u_d, dpsub_s_h, dpsub_s_w, dpsub_s_d,
20462 dpsub_u_h, dpsub_u_w, dpsub_u_d, sld_b, sld_h, sld_w, sld_d,
20463 sldi_b, sldi_h, sldi_w, sldi_d, splat_b, splat_h, splat_w,
20464 splat_d, splati_b, splati_h, splati_w, splati_d, pckev_b,
20465 pckev_h, pckev_w, pckev_d, pckod_b, pckod_h, pckod_w, pckod_d,
20466 ilvl_b, ilvl_h, ilvl_w, ilvl_d, ilvr_b, ilvr_h, ilvr_w, ilvr_d,
20467 ilvev_b, ilvev_h, ilvev_w, ilvev_d, ilvod_b, ilvod_h, ilvod_w,
20468 ilvod_d, vshf_b, vshf_h, vshf_w, vshf_d, and_v, andi_b, or_v,
20469 ori_b, nor_v, nori_b, xor_v, xori_b, bmnz_v, bmnzi_b, bmz_v,
20470 bmzi_b, bsel_v, bseli_b, shf_b, shf_h, shf_w, bnz_v, bz_v,
20471 fill_b, fill_h, fill_w, fill_d, pcnt_b, pcnt_h, pcnt_w,
20472 pcnt_d, nloc_b, nloc_h, nloc_w, nloc_d, nlzc_b, nlzc_h, nlzc_w,
20473 nlzc_d, copy_s_b, copy_s_h, copy_s_w, copy_s_d, copy_u_b,
20474 copy_u_h, copy_u_w, copy_u_d, insert_b, insert_h, insert_w,
20475 insert_d, insve_b, insve_h, insve_w, insve_d, bnz_b, bnz_h,
20476 bnz_w, bnz_d, bz_b, bz_h, bz_w, bz_d, ldi_b, ldi_h, ldi_w, ldi_d,
20477 fcaf_w, fcaf_d, fcor_w, fcor_d, fcun_w, fcun_d, fcune_w, fcune_d,
20478 fcueq_w, fcueq_d, fceq_w, fceq_d, fcne_w, fcne_d, fclt_w, fclt_d,
20479 fcult_w, fcult_d, fcle_w, fcle_d, fcule_w, fcule_d, fsaf_w,
20480 fsaf_d, fsor_w, fsor_d, fsun_w, fsun_d, fsune_w, fsune_d,
20481 fsueq_w, fsueq_d, fseq_w, fseq_d, fsne_w, fsne_d, fslt_w,
20482 fslt_d, fsult_w, fsult_d, fsle_w, fsle_d, fsule_w, fsule_d,
20483 fadd_w, fadd_d, fsub_w, fsub_d, fmul_w, fmul_d, fdiv_w, fdiv_d,
20484 fmadd_w, fmadd_d, fmsub_w, fmsub_d, fexp2_w, fexp2_d, fexdo_h,
20485 fexdo_w, ftq_h, ftq_w, fmin_w, fmin_d, fmin_a_w, fmin_a_d,
20486 fmax_w, fmax_d, fmax_a_w, fmax_a_d, mul_q_h, mul_q_w, mulr_q_h,
20487 mulr_q_w, madd_q_h, madd_q_w, maddr_q_h, maddr_q_w, msub_q_h,
20488 msub_q_w, msubr_q_h, msubr_q_w, fclass_w, fclass_d, fsqrt_w,
20489 fsqrt_d, frcp_w, frcp_d, frint_w, frint_d, frsqrt_w, frsqrt_d,
20490 flog2_w, flog2_d, fexupl_w, fexupl_d, fexupr_w, fexupr_d, ffql_w,
20491 ffql_d, ffqr_w, ffqr_d, ftint_s_w, ftint_s_d, ftint_u_w,
20492 ftint_u_d, ftrunc_s_w, ftrunc_s_d, ftrunc_u_w, ftrunc_u_d,
20493 ffint_s_w, ffint_s_d, ffint_u_w, ffint_u_d, ctcmsa, cfcmsa,
20495 (mips_get_builtin_decl_index): New array.
20496 (MIPS_ATYPE_QI, MIPS_ATYPE_HI, MIPS_ATYPE_V2DI, MIPS_ATYPE_V4SI)
20497 (MIPS_ATYPE_V8HI, MIPS_ATYPE_V16QI, MIPS_ATYPE_V2DF)
20498 (MIPS_ATYPE_V4SF, MIPS_ATYPE_UV2DI, MIPS_ATYPE_UV4SI)
20499 (MIPS_ATYPE_UV8HI, MIPS_ATYPE_UV16QI): New.
20500 (mips_init_builtins): Initialize mips_get_builtin_decl_index
20502 (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Define target
20504 (mips_expand_builtin_insn): Prepare operands for
20505 CODE_FOR_msa_addvi_b, CODE_FOR_msa_addvi_h, CODE_FOR_msa_addvi_w,
20506 CODE_FOR_msa_addvi_d, CODE_FOR_msa_clti_u_b,
20507 CODE_FOR_msa_clti_u_h, CODE_FOR_msa_clti_u_w,
20508 CODE_FOR_msa_clti_u_d, CODE_FOR_msa_clei_u_b,
20509 CODE_FOR_msa_clei_u_h, CODE_FOR_msa_clei_u_w,
20510 CODE_FOR_msa_clei_u_d, CODE_FOR_msa_maxi_u_b,
20511 CODE_FOR_msa_maxi_u_h, CODE_FOR_msa_maxi_u_w,
20512 CODE_FOR_msa_maxi_u_d, CODE_FOR_msa_mini_u_b,
20513 CODE_FOR_msa_mini_u_h, CODE_FOR_msa_mini_u_w,
20514 CODE_FOR_msa_mini_u_d, CODE_FOR_msa_subvi_b,
20515 CODE_FOR_msa_subvi_h, CODE_FOR_msa_subvi_w, CODE_FOR_msa_subvi_d,
20516 CODE_FOR_msa_ceqi_b, CODE_FOR_msa_ceqi_h, CODE_FOR_msa_ceqi_w,
20517 CODE_FOR_msa_ceqi_d, CODE_FOR_msa_clti_s_b,
20518 CODE_FOR_msa_clti_s_h, CODE_FOR_msa_clti_s_w,
20519 CODE_FOR_msa_clti_s_d, CODE_FOR_msa_clei_s_b,
20520 CODE_FOR_msa_clei_s_h, CODE_FOR_msa_clei_s_w,
20521 CODE_FOR_msa_clei_s_d, CODE_FOR_msa_maxi_s_b,
20522 CODE_FOR_msa_maxi_s_h, CODE_FOR_msa_maxi_s_w,
20523 CODE_FOR_msa_maxi_s_d, CODE_FOR_msa_mini_s_b,
20524 CODE_FOR_msa_mini_s_h, CODE_FOR_msa_mini_s_w,
20525 CODE_FOR_msa_mini_s_d, CODE_FOR_msa_andi_b, CODE_FOR_msa_ori_b,
20526 CODE_FOR_msa_nori_b, CODE_FOR_msa_xori_b, CODE_FOR_msa_bmzi_b,
20527 CODE_FOR_msa_bmnzi_b, CODE_FOR_msa_bseli_b, CODE_FOR_msa_fill_b,
20528 CODE_FOR_msa_fill_h, CODE_FOR_msa_fill_w, CODE_FOR_msa_fill_d,
20529 CODE_FOR_msa_ilvl_b, CODE_FOR_msa_ilvl_h, CODE_FOR_msa_ilvl_w,
20530 CODE_FOR_msa_ilvl_d, CODE_FOR_msa_ilvr_b, CODE_FOR_msa_ilvr_h,
20531 CODE_FOR_msa_ilvr_w, CODE_FOR_msa_ilvr_d, CODE_FOR_msa_ilvev_b,
20532 CODE_FOR_msa_ilvev_h, CODE_FOR_msa_ilvev_w, CODE_FOR_msa_ilvod_b,
20533 CODE_FOR_msa_ilvod_h, CODE_FOR_msa_ilvod_w, CODE_FOR_msa_pckev_b,
20534 CODE_FOR_msa_pckev_h, CODE_FOR_msa_pckev_w, CODE_FOR_msa_pckod_b,
20535 CODE_FOR_msa_pckod_h, CODE_FOR_msa_pckod_w, CODE_FOR_msa_slli_b,
20536 CODE_FOR_msa_slli_h, CODE_FOR_msa_slli_w, CODE_FOR_msa_slli_d,
20537 CODE_FOR_msa_srai_b, CODE_FOR_msa_srai_h, CODE_FOR_msa_srai_w,
20538 CODE_FOR_msa_srai_d, CODE_FOR_msa_srli_b, CODE_FOR_msa_srli_h,
20539 CODE_FOR_msa_srli_w, CODE_FOR_msa_srli_d, CODE_FOR_msa_insert_b,
20540 CODE_FOR_msa_insert_h, CODE_FOR_msa_insert_w,
20541 CODE_FOR_msa_insert_d, CODE_FOR_msa_insve_b,
20542 CODE_FOR_msa_insve_h, CODE_FOR_msa_insve_w, CODE_FOR_msa_insve_d,
20543 CODE_FOR_msa_shf_b, CODE_FOR_msa_shf_h, CODE_FOR_msa_shf_w,
20544 CODE_FOR_msa_shf_w_f, CODE_FOR_msa_vshf_b, CODE_FOR_msa_vshf_h,
20545 CODE_FOR_msa_vshf_w, CODE_FOR_msa_vshf_d.
20546 (mips_expand_builtin): Add case for MIPS_BULTIN_MSA_TEST_BRANCH.
20547 (mips_set_compression_mode): Disallow MSA with MIPS16 code.
20548 (mips_option_override): -mmsa requires -mfp64 and -mhard-float.
20549 These are set implicitly and an error is reported if overridden.
20550 (mips_expand_builtin_msa_test_branch): New function.
20551 (mips_expand_msa_shuffle): Likewise.
20552 (MAX_VECT_LEN): Increase maximum length of a vector to 16 bytes.
20553 (TARGET_SCHED_REASSOCIATION_WIDTH): Define target hook.
20554 (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Likewise.
20555 (mips_expand_vec_unpack): Add support for MSA.
20556 (mips_expand_vector_init): Likewise.
20557 (mips_expand_vi_constant): Use CONST0_RTX (element_mode)
20558 instead of const0_rtx.
20559 (mips_msa_vec_parallel_const_half): New function.
20560 (mips_gen_const_int_vector): Likewise.
20561 (mips_gen_const_int_vector_shuffle): Likewise.
20562 (mips_expand_msa_cmp): Likewise.
20563 (mips_expand_vec_cond_expr): Likewise.
20564 * config/mips/mips.h
20565 (TARGET_CPU_CPP_BUILTINS): Add __mips_msa and __mips_msa_width.
20566 (OPTION_DEFAULT_SPECS): Ignore --with-fp-32 if -mmsa is
20568 (ASM_SPEC): Pass mmsa and mno-msa to the assembler.
20569 (ISA_HAS_MSA): New macro.
20570 (UNITS_PER_MSA_REG): Likewise.
20571 (BITS_PER_MSA_REG): Likewise.
20572 (BIGGEST_ALIGNMENT): Redefine using ISA_HAS_MSA.
20573 (MSA_REG_FIRST): New macro.
20574 (MSA_REG_LAST): Likewise.
20575 (MSA_REG_NUM): Likewise.
20576 (MSA_REG_P): Likewise.
20577 (MSA_REG_RTX_P): Likewise.
20578 (MSA_SUPPORTED_MODE_P): Likewise.
20579 (HARD_REGNO_CALL_PART_CLOBBERED): Redefine using TARGET_MSA.
20580 (ADDITIONAL_REGISTER_NAMES): Add named registers $w0-$w31.
20581 * config/mips/mips.md: Include mips-msa.md.
20582 (alu_type): Add simd_add.
20583 (mode): Add V2DI, V4SI, V8HI, V16QI, V2DF, V4SF.
20584 (type): Add simd_div, simd_fclass, simd_flog2, simd_fadd,
20585 simd_fcvt, simd_fmul, simd_fmadd, simd_fdiv, simd_bitins,
20586 simd_bitmov, simd_insert, simd_sld, simd_mul, simd_fcmp,
20587 simd_fexp2, simd_int_arith, simd_bit, simd_shift, simd_splat,
20588 simd_fill, simd_permute, simd_shf, simd_sat, simd_pcnt,
20589 simd_copy, simd_branch, simd_cmsa, simd_fminmax, simd_logic,
20590 simd_move, simd_load, simd_store. Choose "multi" for moves
20592 (qword_mode): New attribute.
20593 (insn_count): Add instruction count for quad moves.
20594 Increase the count for MIPS SIMD division.
20595 (UNITMODE): Add UNITMODEs for vector types.
20596 (addsub): New code iterator.
20597 * config/mips/mips.opt (mmsa): New option.
20598 * config/mips/msa.h: New file.
20599 * config/mips/mti-elf.h: Don't infer -mfpxx if -mmsa is
20601 * config/mips/mti-linux.h: Likewise.
20602 * config/mips/predicates.md
20603 (const_msa_branch_operand): New constraint.
20604 (const_uimm3_operand): Likewise.
20605 (const_uimm4_operand): Likewise.
20606 (const_uimm5_operand): Likewise.
20607 (const_uimm8_operand): Likewise.
20608 (const_imm5_operand): Likewise.
20609 (aq10b_operand): Likewise.
20610 (aq10h_operand): Likewise.
20611 (aq10w_operand): Likewise.
20612 (aq10d_operand): Likewise.
20613 (const_m1_operand): Likewise.
20614 (reg_or_m1_operand): Likewise.
20615 (const_exp_2_operand): Likewise.
20616 (const_exp_4_operand): Likewise.
20617 (const_exp_8_operand): Likewise.
20618 (const_exp_16_operand): Likewise.
20619 (const_vector_same_val_operand): Likewise.
20620 (const_vector_same_simm5_operand): Likewise.
20621 (const_vector_same_uimm5_operand): Likewise.
20622 (const_vector_same_uimm6_operand): Likewise.
20623 (const_vector_same_uimm8_operand): Likewise.
20624 (par_const_vector_shf_set_operand): Likewise.
20625 (reg_or_vector_same_val_operand): Likewise.
20626 (reg_or_vector_same_simm5_operand): Likewise.
20627 (reg_or_vector_same_uimm6_operand): Likewise.
20628 * doc/extend.texi (MIPS SIMD Architecture Functions): New
20630 * doc/invoke.texi (-mmsa): Document new option.
20632 2016-05-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
20634 * configure.ac (enable_vtable_verify): Handle --enable-vtable-verify.
20635 * configure: Regenerate.
20636 * config.in: Regenerate.
20637 * gcc.c (VTABLE_VERIFICATION_SPEC) [!ENABLE_VTABLE_VERIFY]: Error
20638 on -fvtable-verify.
20639 * config/sol2.h [!ENABLE_VTABLE_VERIFY] (STARTFILE_VTV_SPEC): Define.
20640 (ENDFILE_VTV_SPEC): Define.
20642 2016-05-09 Kaushik Phatak <kaushik.phatak@kpit.com>
20644 * config/rl78/rl78.c (rl78_expand_prologue): Save the MDUC related
20645 registers in all interrupt handlers if necessary.
20646 (rl78_option_override): Add warning.
20647 (MUST_SAVE_MDUC_REGISTERS): New macro.
20648 (rl78_expand_epilogue): Restore the MDUC registers if necessary.
20649 * config/rl78/rl78.c (check_mduc_usage): New function.
20650 (mduc_regs): New structure to hold MDUC register data.
20651 * config/rl78/rl78.md (is_g13_muldiv_insn): New attribute.
20652 (mulsi3_g13): Add is_g13_muldiv_insn attribute.
20653 (udivmodsi4_g13): Add is_g13_muldiv_insn attribute.
20654 (mulhi3_g13): Add is_g13_muldiv_insn attribute.
20655 * config/rl78/rl78.opt (msave-mduc-in-interrupts): New option.
20656 * doc/invoke.texi (RL78 Options): Add -msave-mduc-in-interrupts.
20658 2016-05-09 Bin Cheng <bin.cheng@arm.com>
20660 * tree-if-conv.c (tree-ssa-loop.h): Include header file.
20661 (tree-ssa-loop-niter.h): Ditto.
20662 (idx_within_array_bound, ref_within_array_bound): New functions.
20663 (ifcvt_memrefs_wont_trap): Check if array ref is within bound.
20664 Factor out check on writable base object to ...
20665 (base_object_writable): ... here.
20667 2016-05-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20669 * config/arm/arm.md (probe_stack): Add modes to set source
20672 2016-05-09 Bernd Schmidt <bschmidt@redhat.com>
20674 * regrename.c (base_reg_class_for_rename): New static function.
20675 (scan_rtx_address, scan_rtx): Use it instead of base_reg_class.
20677 2016-05-08 Jan Hubicka <hubicka@ucw.cz>
20679 * cgraph.c (thunk_adjust): Export.
20680 * cgraphclones.c (cgraph_node::create_clone): Clone thunk info.
20681 * cgraphunit.c (thunk_adjust): Export.
20682 (cgraph_node::assemble_thunks_and_aliases): Do not assemble inlined
20684 * ipa-inline-analyssi.c (compute_inline_parameters): Thunks are
20686 * tree-inline.c (expand_call_inline): Expand thunks inline.
20688 2016-05-08 Uros Bizjak <ubizjak@gmail.com>
20691 * config/i386/sse.md (*sse2_vd_cvtsd2ss): New insn pattern.
20692 (*sse2_vd_cvtss2sd): Ditto.
20693 * config/i386/i386.md
20694 (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_truncate df->sf splitter):
20695 Generate *sse2_vd_cvtsd2ss pattern.
20696 (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_extend sf->df splitter):
20697 Generate *sse2_vd_cvtss2sd pattern.
20699 2016-05-08 Oleg Endo <olegendo@gcc.gnu.org>
20701 * config/sh/sh.h (GET_SH_ARG_CLASS): Convert macro into ...
20702 * config/sh/sh.c (get_sh_arg_class): ... this new function. Update its
20705 2016-05-08 Oleg Endo <olegendo@gcc.gnu.org>
20707 * config/sh/sh-protos.h (sh_media_register_for_return): Remove.
20708 * config/sh/sh.c: Define and declare variables on first use throughout
20710 (current_function_interrupt): Change to bool type.
20711 (frame_insn): Rename to emit_frame_insn and update users.
20712 (push_regs): Use bool for 'interrupt_handler' argument.
20713 (save_schedule_s): Remove.
20714 (TARGET_ASM_UNALIGNED_DI_OP, TARGET_ASM_ALIGNED_DI_OP): Remove.
20715 (sh_option_override): Don't nullify targetm.asm_out.aligned_op.di and
20716 targetm.asm_out.unaligned_op.di.
20717 (gen_far_branch): Remove redundant forward declaration.
20718 (sh_media_register_for_return, MAX_SAVED_REGS, save_entry_s, save_entry,
20719 MAX_TEMPS, save_schedule_ssave_schedule): Remove.
20720 (sh_set_return_address, sh_function_ok_for_sibcall,
20721 scavenge_reg): Update comments.
20722 (sh_builtin_saveregs): Use TRAGET_FPU_ANY condition.
20723 (sh2a_get_function_vector_number, sh2a_function_vector_p): Use for loop.
20724 (sh_attr_renesas_p): Remove unnecessary parentheses.
20725 (branch_dest): Simplify.
20726 * config/sh/sh.h (sh_args): Remove byref, byref_regs, stack_regs fields.
20727 Change force_mem, prototype_p, outgoing, renesas_abi fields to bool.
20728 (CUMULATIVE_ARGS): Change macro to typedef.
20729 (current_function_interrupt): Change to bool type.
20730 (sh_arg_class, sh_args, CUMULATIVE_ARGS, current_function_interrupt):
20731 Surround with __cplusplus ifdef.
20732 (sh_compare_op0, sh_compare_op1): Remove.
20733 (EPILOGUE_USES): Use TARGET_FPU_ANY condition.
20735 2016-05-07 Jim Wilson <jim.wilson@linaro.org>
20737 * config/arm/arm.md: (arch): Add neon.
20738 (arch_enabled): Return yes for arch neon when TARGET_NEON.
20739 * config/arm/vfp.md (movdf_vfp): Add w/G as alternative 3. Add
20740 neon_move as type for alt 3. Add arch attr enabling alt 3 for neon.
20741 Emit vmov.i64 for alt 3. Renumber alternatives 3 to 8. Adjust
20742 attributes for alt renumbering. Mark alt 3 as non-predicable.
20743 (thumb2_movdf_vfp): Likewise.
20745 2016-05-07 Uros Bizjak <ubizjak@gmail.com>
20747 * config/i386/i386.md (*addqi_1): Add preferred_for_speed attribute
20748 to disparage alternatives 3 and 4 for TARGET_PARTIAL_REG_STALL targets.
20749 (*andqi_1): Add preferred_for_speed attribute to disparage
20750 alternative 2 for TARGET_PARTIAL_REG_STALL targets.
20751 (*<code>qi_1): Ditto.
20752 (*one_cmplqi2_1): Add preferred_for_speed attribute to disparage
20753 alternative 1 for TARGET_PARTIAL_REG_STALL targets.
20754 (*ashlqi3_1): Ditto.
20755 (*swap<mode>): Merge from *swap<mode>_1 and *swap<mode>_2 patterns.
20756 Add preferred_for_size attribute to disparage alternative 0 and
20757 preferred_for_speed attribute to disparage alternative 1 for
20758 TARGET_PARTIAL_REG_STALL targets.
20760 2016-05-07 Tom de Vries <tom@codesourcery.com>
20762 PR tree-optimization/70956
20763 * graphite-scop-detection.c (build_cross_bb_scalars_def): Handle NULL
20766 2016-05-07 Oleg Endo <olegendo@gcc.gnu.org>
20768 * config/sh/sh-protos.h (sh_cbranch_distance): Declare new function.
20769 * config/sh/sh.c (sh_cbranch_distance): Implement it.
20770 * config/sh/sh.md (branch_zero): Remove define_attr.
20771 (define_delay): Disable delay slot if branch distance is one insn.
20773 2016-05-06 Uros Bizjak <ubizjak@gmail.com>
20775 * config/i386/i386.md (LEAMODE): New mode attribute.
20776 (plus to LEA splitter): Rewrite splitter using LEAMODE mode attribute.
20777 (ashift to LEA splitter): Rewrte splitter using SWI mode iterator
20778 and LEAMODE mode attribute. Use VOIDmode const_0_to_3_operand as
20779 operand 2 predicate.
20780 (*lea<mode>_general_2): Use VOIDmode for const248_operand.
20781 (*lea<mode>_general_3): Ditto.
20782 (*lea<mode>_general_4): Use VOIDmode for const_0_to_3_operand.
20784 2016-05-06 Jakub Jelinek <jakub@redhat.com>
20786 * genmddump.c (main): Convert argv from char ** to const char **.
20788 2016-05-06 David Malcolm <dmalcolm@redhat.com>
20790 * coretypes.h (OVERRIDE): New macro.
20791 (FINAL): New macro.
20793 2016-05-06 Eric Botcazou <ebotcazou@adacore.com>
20795 * tree-ssa-coalesce.c (gimple_can_coalesce_p): In the optimized case,
20796 allow coalescing if the types are compatible.
20798 2016-05-06 David Malcolm <dmalcolm@redhat.com>
20800 * pass_manager.h (pass_manager::register_pass_name): New method.
20801 (pass_manager::get_pass_by_name): New method.
20802 (pass_manager::create_pass_tab): New method.
20803 (pass_manager::m_name_to_pass_map): New field.
20804 * passes.c (name_to_pass_map): Delete global in favor of field
20805 "m_name_to_pass_map" of pass_manager.
20806 (register_pass_name): Rename from a function to...
20807 (pass_manager::register_pass_name): ...this method, updating
20808 for renaming of global "name_to_pass_map" to field
20809 "m_name_to_pass_map".
20810 (create_pass_tab): Rename from a function to...
20811 (pass_manager::create_pass_tab): ...this method, updating
20812 for renaming of global "name_to_pass_map" to field.
20813 (get_pass_by_name): Rename from a function to...
20814 (pass_manager::get_pass_by_name): ...this method.
20815 (enable_disable_pass): Convert use of get_pass_by_name to
20816 a method call, locating the pass_manager singleton.
20818 2016-05-06 David Malcolm <dmalcolm@redhat.com>
20820 * genattr-common.c (main): Convert argv from char ** to const char **.
20821 * genattr.c (main): Likewise.
20822 * genattrtab.c (main): Likewise.
20823 * genautomata.c (initiate_automaton_gen): Likewise.
20825 * gencodes.c (main): Likewise.
20826 * genconditions.c (main): Likewise.
20827 * genconfig.c (main): Likewise.
20828 * genconstants.c (main): Likewise.
20829 * genemit.c (main): Likewise.
20830 * genenums.c (main): Likewise.
20831 * genextract.c (main): Likewise.
20832 * genflags.c (main): Likewise.
20833 * genmddeps.c (main): Likewise.
20834 * genopinit.c (main): Likewise.
20835 * genoutput.c (main): Likewise.
20836 * genpeep.c (main): Likewise.
20837 * genpreds.c (main): Likewise.
20838 * genrecog.c (main): Likewise.
20839 * gensupport.c (init_rtx_reader_args_cb): Likewise.
20840 (init_rtx_reader_args): Likewise.
20841 * gensupport.h (init_rtx_reader_args_cb): Likewise.
20842 (init_rtx_reader_args): Likewise.
20843 * gentarget-def.c (main): Likewise.
20844 * read-md.c (read_md_files): Likewise.
20845 * read-md.h (read_md_files): Likewise.
20847 2016-05-06 Uros Bizjak <ubizjak@gmail.com>
20849 * config/i386/i386.md (int cmove peephole2s): Use general_reg_operand
20850 instead of register_and_not_any_fp_reg_operand as operand 0 predicate.
20851 * config/i386/predicates.md (register_and_not_any_fp_reg_operand):
20852 Remove unused predicate.
20853 (register_and_not_fp_reg_operand): Ditto.
20855 2016-05-06 Martin Liska <mliska@suse.cz>
20857 * tree-if-conv.c (ifcvt_split_critical_edges): Use auto_vec
20858 instead of vec as the vector is local to the function.
20860 2016-05-06 Jakub Jelinek <jakub@redhat.com>
20862 * config/i386/sse.md (*<code>v8hi3, *<code>v16qi3): Add
20863 avx512bw alternative.
20865 * config/i386/sse.md (<mask_codefor>ashr<mode>3<mask_name>): Move
20866 before the ashr<mode>3 pattern.
20868 * config/i386/sse.md (*avx2_pmaddwd, *sse2_pmaddwd): Use
20869 v instead of x in vex or maybe_vex alternatives, use
20870 maybe_evex instead of vex in prefix.
20872 * config/i386/sse.md (*vec_extractv4sf_0, *sse4_1_extractps,
20873 *vec_extractv4sf_mem, vec_extract_lo_v16hi, vec_extract_hi_v16hi,
20874 vec_extract_lo_v32qi, vec_extract_hi_v32qi): Use v instead of x
20875 in vex or maybe_vex alternatives, use maybe_evex instead of vex
20878 * config/i386/sse.md (*vec_concatv2sf_sse4_1, *vec_concatv4sf): Use
20879 v instead of x in vex or maybe_vex alternatives, use
20880 maybe_evex instead of vex in prefix.
20882 * config/i386/sse.md (sse_shufps_<mode>, sse_storehps, sse_loadhps,
20883 sse_storelps, sse_movss, avx2_vec_dup<mode>, avx2_vec_dupv8sf_1,
20884 sse2_shufpd_<mode>, sse2_storehpd, sse2_storelpd, sse2_loadhpd,
20885 sse2_loadlpd, sse2_movsd): Use v instead of x in vex or maybe_vex
20886 alternatives, use maybe_evex instead of vex in prefix.
20888 * config/i386/sse.md (vec_interleave_lowv4sf,
20889 *vec_interleave_highv2df, *vec_interleave_lowv2df): Use
20890 v instead of x in vex or maybe_vex alternatives, use
20891 maybe_evex instead of vex in prefix.
20893 * config/i386/sse.md (sse_movhlps, sse_movlhps): Use
20894 v instead of x in vex or maybe_vex alternatives, use
20895 maybe_evex instead of vex in prefix.
20897 * config/i386/sse.md (*avx_cvtpd2dq256_2, *avx_cvtps2pd256_2): Use
20898 v constraint instead of x.
20900 2016-05-06 Nathan Sidwell <nathan@codesourcery.com>
20902 * gimple.c (gimple_call_same_target_p): Unique functions are eq.
20903 * tree-ssa-tail-merge.c (same_succ::equal): Check pointer eq
20906 2016-05-06 Richard Biener <rguenther@suse.de>
20908 PR tree-optimization/70948
20909 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
20910 Properly clobber all fields of va_list for __builtin_va_start.
20912 2016-05-06 Yuri Rumyantsev <ysrumyan@gmail.com>
20915 * tree-ssa-loop-unswitch.c (find_loop_guard): Reject guard edge with
20916 loop latch destination.
20918 2016-05-06 Martin Liska <mliska@suse.cz>
20920 * tree-ssa-uninit.c: Apply manual changes
20921 to the GNU coding style.
20922 (prune_uninit_phi_opnds): Rename from
20923 prune_uninit_phi_opnds_in_unrealizable_paths.
20925 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
20927 * config/sh/sh.opt (madjust-unroll, minvalid-symbols, msoft-atomic,
20928 mspace): Remove deprecated options.
20929 * doc/invoke.texi (SH options): Remove -mspace.
20931 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
20933 * config/sh/sh.md (ic_invalidate_line_sh4a): Fix insn length.
20935 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
20937 * config/sh/sh.md (*cmpeqsi_t): Remove combine insn pattern and similar
20938 corresponding combine split pattern.
20940 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
20943 * config/sh/predicates.md (long_displacement_mem_operand): New.
20944 * config/sh/sh.md (movsi_i): Allow for SH2A, disallow for any FPU.
20945 Add movi20, movi20s alternatives. Adjust length attribute for
20947 (movsi_ie): Allow for any FPU. Adjust length attribute for
20949 (movsi_i_lowpart): Add movi20, movi20s alternatives. Adjust length
20950 attribute for alternatives.
20951 (*mov<mode>): Use long_displacement_mem_operand for length attribute.
20952 (*movdi_i, movdf_k, movdf_i4, movsf_i, movsf_ie, movsf_ie_ra): Adjust
20953 length attribute for alternatives.
20955 2016-05-06 Richard Biener <rguenther@suse.de>
20957 PR tree-optimization/70960
20958 * tree-if-conv.c (ifcvt_walk_pattern_tree): Handle non-SSA ops.
20960 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
20963 * config/sh/sh.md (*cmp_div0s_7, *cmp_div0s_8): Add div0s variants.
20964 * config/sh/sh.c (sh_rtx_costs): Add another div0s case.
20966 2016-05-06 Marek Polacek <polacek@redhat.com>
20969 * ubsan.c (get_ubsan_type_info_for_type): Remove assert.
20971 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
20974 * config/sh/sh.md (*rotcr): Add another variant.
20976 2016-05-06 Richard Biener <rguenther@suse.de>
20978 PR middle-end/70931
20979 * dwarf2out.c (native_encode_initializer): Skip zero-sized fields.
20981 2016-05-06 Richard Biener <rguenther@suse.de>
20983 PR middle-end/70941
20984 * fold-const.c (split_tree): Always convert to the original type
20987 2016-05-06 Richard Biener <rguenther@suse.de>
20989 * fwprop.c (fwprop): Remove duplicate cleanup_cfg call.
20990 (fwprop_addr): Likewise.
20992 2016-05-06 Uros Bizjak <ubizjak@gmail.com>
20995 * config/i386/i386-protos.h (ix86_standard_x87sse_constant_load_p):
20997 * config/i386/i386.c (ix86_standard_x87sse_constant_load_p): New.
20998 * config/i386/i386.md (push mem splitter): Use find_constant_src in
20999 the splitter condition.
21000 (FP load splitter): Use ix86_standard_x87sse_constant_load_p in
21001 the splitter condition.
21002 (FP float_extend load splitter): Ditto.
21004 2016-05-05 Uros Bizjak <ubizjak@gmail.com>
21006 * config/i386/i386.md (peehole2 patterns): Change true_regnum
21007 to REGNO in all peephole2 patterns.
21008 (post-reload splitters): Change true_regnum to REGNO in
21009 post-reload splitters.
21010 (zero_extend splitters): Use general_reg_operand and
21011 nonimmediate_gr_operand predicates.
21013 2016-05-05 Jakub Jelinek <jakub@redhat.com>
21015 * config/i386/sse.md (<avx512>_fmadd_<mode>_mask3<round_name>): Use
21016 v constraint instead of x.
21018 2016-05-05 Alan Modra <amodra@gmail.com>
21021 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Don't
21022 set OPTION_MASK_RELOCATABLE when flag_pic == 2. Set
21023 TARGET_NO_FP_IN_TOC for -mrelocatable.
21024 (MINIMAL_TOC_SECTION_ASM_OP): Remove redundant
21025 TARGET_RELOCATABLE test.
21026 (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
21027 (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
21028 * config/rs6000/linux64.h (MINIMAL_TOC_SECTION_ASM_OP): Likewise.
21029 (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
21030 (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
21031 * config/rs6000/freebsd64.h (MINIMAL_TOC_SECTION_ASM_OP): Likewise.
21032 (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
21033 (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
21034 * config/rs6000/predicates.md (easy_fp_constant): Likewise.
21035 * config/rs6000/rs6000.c (rs6000_elf_output_toc_section_asm_op):
21037 (rs6000_assemble_integer): Update TARGET_RELOCATABLE test.
21038 (rs6000_stack_info): Likewise.
21039 (rs6000_elf_asm_out_constructor): Likewise.
21040 (rs6000_elf_asm_out_destructor): Likewise.
21041 (rs6000_elf_declare_function_name): Likewise.
21042 * config/rs6000/rs6000.md (load_toc_aix_di): Likewise.
21043 * config/rs6000/rs6000.h (MASK_RELOCATABLE, MASK_MINIMAL_TOC):
21046 2016-05-05 Alan Modra <amodra@gmail.com>
21048 * config/rs6000/rs6000.c (rs6000_frame_related): Rewrite.
21050 2016-05-05 Alan Modra <amodra@gmail.com>
21052 * config/rs6000/rs6000.c (rs6000_savres_strategy): Don't use
21053 out-of-line gpr restore for one or two regs if that would add
21056 2016-05-04 Uros Bizjak <ubizjak@gmail.com>
21059 * config/i386/i386.md
21060 (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_extend sf->df peephole2):
21061 Change to post-epilogue_completed late splitter. Use sse_reg_operand
21062 as operand 0 predicate.
21063 (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_truncate df->sf peephole2):
21065 (TARGET_SSE_PARTIAL_REG_DEPENDENCY float {si,di}->{sf,df} peephole2):
21066 Ditto. Emit the pattern using RTX.
21068 (TARGET_USE_VECTOR_FP_CONVERTS float_extend sf->df splitter):
21069 Use sse_reg_opreand as operand 0 predicate. Do not use true_regnum in
21070 the post-reload splitter. Use lowpart_subreg instead of gen_rtx_REG.
21071 (TARGET_USE_VECTOR_FP_CONVERTS float_truncate df->sf splitter):
21073 (TARGET_USE_VECTOR_CONVERTS float si->{sf,df} splitter): Use
21074 sse_reg_operand as operand 0 predicate.
21076 (TARGET_SPLIT_MEM_OPND_FOR_FP_CONVERTS float_extend sf->df peephole2):
21077 Use sse_reg_opreand as operand 0 predicate. Use lowpart_subreg
21078 instead of gen_rtx_REG.
21079 (TARGET_SPLIT_MEM_OPND_FOR_FP_CONVERTS float_truncate sf->df peephole2):
21082 2016-05-04 Segher Boessenkool <segher@kernel.crashing.org>
21084 * function.c (emit_use_return_register_into_block): Delete.
21085 (gen_return_pattern): Delete.
21086 (emit_return_into_block): Delete.
21087 (active_insn_between): Delete.
21088 (convert_jumps_to_returns): Delete.
21089 (emit_return_for_exit): Delete.
21090 (thread_prologue_and_epilogue_insns): Delete all code dealing with
21091 simple_return for shrink-wrapped blocks.
21092 * shrink-wrap.c (try_shrink_wrapping): Insert simple_return at the
21093 end of blocks that need one.
21094 (get_unconverted_simple_return): Delete.
21095 (convert_to_simple_return): Delete.
21096 * shrink-wrap.c (get_unconverted_simple_return): Delete declaration.
21097 (convert_to_simple_return): Ditto.
21099 2016-05-04 Segher Boessenkool <segher@kernel.crashing.org>
21101 * cfgcleanup.c (bb_is_just_return): New function.
21102 (try_optimize_cfg): Simplify jumps to return, branches to return,
21103 and branches around return.
21105 2016-05-04 Segher Boessenkool <segher@kernel.crashing.org>
21107 * cfgcleanup.c (try_simplify_condjump): Don't try to simplify a
21108 branch to a return.
21110 2016-05-04 Jakub Jelinek <jakub@redhat.com>
21114 * tree-core.h (enum operand_equal_flag): Add OEP_HASH_CHECK.
21115 * tree.c (inchash::add_expr): If !IS_EXPR_CODE_CLASS (tclass),
21116 assert flags & OEP_HASH_CHECK, instead of asserting it
21117 never happens. Handle TARGET_EXPR.
21118 * fold-const.c (operand_equal_p): For hash verification,
21119 or in OEP_HASH_CHECK into flags.
21121 2016-05-04 Eric Botcazou <ebotcazou@adacore.com>
21123 * tree-ssa-coalesce.c (gimple_can_coalesce_p): Fix reference in head
21125 (compute_samebase_partition_bases): Fix typo.
21127 2016-05-04 Jakub Jelinek <jakub@redhat.com>
21129 * config/i386/sse.md (vec_interleave_highv8sf,
21130 vec_interleave_lowv8sf, vec_interleave_highv4df,
21131 vec_interleave_lowv4df): Remove constraints from expanders.
21133 * config/i386/sse.md (sse2_movq128): Use v constraint instead of x.
21135 2016-05-04 Jan Hubicka <hubicka@ucw.cz>
21137 * tree-inline.c (expand_call_inline): Fix path dealing with
21138 making lhs of call statement undefined.
21140 2016-05-04 Jan Hubicka <hubicka@ucw.cz>
21142 * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases):
21143 Check availability on NODE, too.
21144 * cgraph.h (symtab_node::call_for_symbol_and_aliases): Likewise.
21145 (cgraph_node::call_for_symbol_and_aliases): Likewise.
21146 (varpool_node::call_for_symbol_and_aliase): Likewise.
21147 * ipa-pure-const.c (add_new_function): Analyze all bodies.
21148 (propagate_pure_const): Propagate across interposable functions, too.
21149 (skip_function_for_local_pure_const): Do not skip interposable bodies
21151 (pass_local_pure_const::execute): Update.
21153 2016-05-04 Marek Polacek <polacek@redhat.com>
21155 * doc/invoke.texi: Document -Wdangling-else.
21157 2016-05-04 Thomas Preud'homme <thomas.preudhomme@arm.com>
21159 * config.gcc: Error out when conflicting multilib is detected. Do not
21160 loop over multilibs since no combination is legal.
21162 2016-05-04 Alan Modra <amodra@gmail.com>
21164 * config/rs6000/rs6000.h (PIC_OFFSET_TABLE_REGNUM): Correct.
21165 * config/rs6000/sysv4.h (TARGET_TOC): Simplify.
21166 * config/rs6000/rs6000.c (rs6000_elf_output_toc_section_asm_op):
21169 2016-05-04 Matthew Fortune <matthew.fortune@imgtec.com>
21171 * config/mips/mips-cpus.def (p5600): Avoid IMADD by default.
21172 Clean up p5600 comments.
21174 2016-05-04 Richard Biener <rguenther@suse.de>
21176 * match.pd: Add BIT_FIELD_REF canonicalizations and vector
21177 constructor simplifications.
21178 * fold-const.c (fold_ternary_loc): Remove duplicate functionality here.
21180 2016-05-04 Oleg Endo <olegendo@gcc.gnu.org>
21182 * config/sh/predicates (post_inc_mem, pre_dec_mem): New predicates.
21183 * config/sh/sh-protos.h (sh_find_set_of_reg): Return null result if
21184 result.set_rtx is null instead of aborting.
21185 * config/sh/sh.h (USE_LOAD_POST_INCREMENT, USE_STORE_PRE_DECREMENT):
21187 (USE_LOAD_PRE_DECREMENT, USE_STORE_POST_INCREMENT): Enable for SH2A.
21188 * config/sh/sh.md (*extend<mode>si2_predec, *mov<mode>_load_predec,
21189 *mov<mode>_store_postinc): New patterns.
21191 2016-05-04 Marc Glisse <marc.glisse@inria.fr>
21193 * match.pd ((A | B) & (A | C)): Generalize to BIT_XOR_EXPR. Mark
21194 as commutative. Check both conversions are NOP.
21195 ((A & B) OP (C & B)): Remove.
21197 2016-05-04 Alan Modra <amodra@gmail.com>
21199 * combine.c (simplify_set): Correct WORD_REGISTER_OPERATIONS test.
21201 2016-05-04 Alan Modra <amodra@gmail.com>
21204 * config/rs6000/rs6000.c (rs6000_stack_info): Don't set cr_save_p
21205 when cr2,3,4 are all fixed regs.
21207 2016-05-04 Bernd Schmidt <bschmidt@redhat.com>
21209 PR rtl-optimization/57193
21210 * opts.c (default_options_table): Revert OPT_frename_registers change.
21211 * doc/invoke.texi (-frename-registers, -O2): Likewise.
21213 2016-05-03 Martin Sebor <msebor@redhat.com>
21216 * builtins.c (fold_builtin_FILE): New function.
21217 (fold_builtin_FUNCTION, fold_builtin_LINE): New functions.
21218 (fold_builtin_0): Call them.
21219 * gimplify.c (gimplify_call_expr): Remove the handling of
21220 BUILT_IN_FILE, BUILT_IN_FUNCTION, and BUILT_IN_LINE.
21223 * doc/extend.texi (Other Builtins): Update __builtin_FILE,
21224 __builtin_FUNCTION, and __builtin_LINE to reflect they yield
21228 * doc/extend.texi (Function Names as Strings): Update __func__,
21229 __FUNCTION__, __PRETTY_FUNCTION__ to reflect they evaluate to
21232 2016-05-03 Jakub Jelinek <jakub@redhat.com>
21233 Richard Biener <rguenther@suse.de>
21235 PR tree-optimization/70916
21236 * tree-if-conv.c: Include cfganal.h.
21237 (pass_if_conversion::execute): Call connect_infinite_loops_to_exit
21238 and remove_fake_exit_edges around the optimization pass.
21240 2016-05-03 Jan Hubicka <hubicka@ucw.cz>
21242 * cgraph.c (symbol_table::create_edge): Set inline_failed.
21243 (cgraph_edge::make_direct): Likewise.
21244 (cgraph_edge::dump_edge_flags): Dump call_stmt_cannot_inline_p.
21245 * cgraphclones.c (duplicate_thunk_for_node): Set inline_failed.
21246 * cif-code.def (CIF_LTO_MISMATCHED_DECLARATIONS): New code
21247 (CIF_THUNK): New code.
21248 * ipa-inline-analysis.c (initialize_inline_failed): Preserve
21249 CIF_FINAL_ERROR codes; do not deal with call_stmt_cannot_inline_p.
21250 (compute_inline_parameters): Set inline_failed for thunks.
21251 (inline_analyze_function): Cleanup.
21252 * ipa-inline.c (can_inline_edge_p): Do not deal with
21253 call_stmt_cannot_inline_p.
21254 (can_early_inline_edge_p): Likewise.
21255 (early_inliner): Initialize inline_failed.
21256 * lto-cgraph.c (lto_output_edge): Sanity check inline_failed.
21258 2016-05-03 Uros Bizjak <ubizjak@gmail.com>
21260 * config/i386/predicates.md (x87nonimm_ssenomem_operand): Rename
21261 from nonimm_ssenomem_operand.
21262 (nonimm_ssenomem_operand): New predicate.
21263 * config/i386/i386.md (extendsfdf2): Use nonimm_ssenomem_operand
21264 as operand 0 predicate.
21265 (*extendsfdf2): Merge from *extendsfdf2_mixed and *extendsfdf2_i387.
21266 Disable unsupported alternatives using "enabled" attribute.
21267 Use register_ssemem_operand as operand 0 predicate.
21268 (*fop_<mode>_1): Use x87nonimm_ssenomem_operand as operand 1 predicate.
21270 2016-05-03 Marek Polacek <polacek@redhat.com>
21273 * input.c (expansion_point_location): New function.
21274 * input.h (expansion_point_location): Declare.
21276 2016-05-03 Pierre-Marie de Rodat <derodat@adacore.com>
21278 * dwarf2out.c (resolve_args_picking_1): Replace the frame_offset
21279 occurence with frame_offset_ ones.
21281 2016-05-03 Alan Modra <amodra@gmail.com>
21283 PR rtl-optimization/70890
21284 * ira.c (combine_and_move_insns): When moving def_insn, remove
21285 equivs on use_insn.
21287 2016-05-03 Dominik Vogt <vogt@linux.vnet.ibm.com>
21289 * config/s390/s390.md ("*r<noxa>sbg_<mode>_sll")
21290 ("*r<noxa>sbg_<mode>_srl"): New define_insns.
21291 ("*r<noxa>sbg_<mode>_srl_bitmask"): Rename by adding "_bitmask".
21292 ("*r<noxa>sbg_<mode>_sll_bitmask"): Likewise.
21294 2016-05-03 Alan Modra <amodra@gmail.com>
21296 * config/rs6000/rs6000.c (rs6000_savres_strategy): Correct condition
21297 for SAVE_MULTIPLE/STORE_MULTIPLE.
21299 2016-05-03 Jakub Jelinek <jakub@redhat.com>
21301 * config/i386/i386.md (*truncdfsf_mixed, *truncdfsf_i387,
21302 *truncxfsf2_mixed, *truncxfdf2_mixed): Use v constraint instead of x.
21304 2016-05-03 Richard Biener <rguenther@suse.de>
21306 * gimplify.h (get_initialized_tmp_var): Add allow_ssa parameter
21308 (gimplify_arg): Likewise.
21309 * gimplify.c (gimplify_expr): Add overload with allow_ssa parameter,
21310 re-writing the result to a decl if required.
21311 (internal_get_tmp_var): Add allow_ssa parameter
21312 and override into_ssa with it.
21313 (get_formal_tmp_var): Adjust.
21314 (get_initialized_tmp_var): Add allow_ssa parameter.
21315 (gimplify_arg): Add allow_ssa parameter and avoid generating
21316 SSA names for the result false.
21317 (gimplify_call_expr): If the call may return twice do not
21318 gimplify parameters into SSA.
21319 (prepare_gimple_addressable): Do not allow an SSA name as temporary.
21320 (gimplify_modify_expr): Adjust assert. For noreturn calls
21321 with a SSA name LHS adjust its def.
21322 (gimplify_save_expr): Do not allow an SSA name as save-expr result.
21323 (gimplify_one_sizepos): Do not allow an SSA name as a sizepos.
21324 (gimplify_body): Init GIMPLE SSA data structures and gimplify into-SSA.
21325 (gimplify_scan_omp_clauses): Make sure OMP_CLAUSE_SIZE is not
21326 an SSA name. Likewise for OMP_CLAUSE_REDUCTION operands.
21327 (gimplify_omp_for): Likewise for OMP_CLAUSE_DECL. Likewise
21328 for OMP_FOR_COND, OMP_FOR_INCR and OMP_CLAUSE_LINEAR_STEP.
21329 (optimize_target_teams): Do not allow SSA names for clause operands.
21330 (gimplify_expr): Likewise for where we mark the result addressable.
21331 * passes.def (pass_init_datastructures): Remove.
21332 * tree-into-ssa.c (mark_def_sites): Ignore existing SSA names.
21333 (rewrite_stmt): Likewise.
21334 * tree-inline.c (initialize_cfun): Properly transfer SSA state.
21335 (replace_locals_op): Replace SSA names.
21336 (copy_gimple_seq_and_replace_locals): Init src_cfun.
21337 * gimple-low.c (lower_builtin_setjmp): Deal with SSA.
21338 * cgraph.c (release_function_body): Free CFG annotations only
21339 when we have a CFG. Simplify.
21340 * gimple-fold.c (gimplify_and_update_call_from_tree): Use
21341 force_gimple_operand instead of get_initialized_tmp_var.
21342 * tree-pass.h (make_pass_init_datastructures): Remove.
21343 * tree-ssa.c (execute_init_datastructures): Remove.
21344 (pass_data_init_datastructures): Likewise.
21345 (class pass_init_datastructures): Likewise.
21346 (make_pass_init_datastructures): Likewise.
21347 * omp-low.c (create_omp_child_function): Init SSA data structures.
21348 (grid_expand_target_grid_body): Likewise.
21349 * tree-cfg.c (move_block_to_fn): Double-check the DEF is an SSA
21350 name before adding it to names_to_release.
21351 (remove_bb): Always release SSA defs.
21352 * tree-ssa-ccp.c (get_default_value): Check SSA_NAME_VAR
21353 before dereferencing it.
21354 * cgraphunit.c (init_lowered_empty_function): Always
21355 int SSA data structures.
21356 * tree-ssanames.c (release_defs): Remove assert that we are in
21358 * trans-mem.c (diagnose_tm_1): Handle SSA name function.
21360 2016-05-03 Jakub Jelinek <jakub@redhat.com>
21361 Uros Bizjak <ubizjak@gmail.com>
21363 PR rtl-optimization/70467
21364 * config/i386/predicates.md (x86_64_hilo_int_operand,
21365 x86_64_hilo_general_operand): New predicates.
21366 * config/i386/constraints.md (Wd): New constraint.
21367 * config/i386/i386.md (mode attr di): Use Wd instead of e.
21368 (general_hilo_operand): New mode attr.
21369 (add<mode>3, sub<mode>3): Use <general_hilo_operand>
21370 instead of <general_operand>.
21371 (*add<dwi>3_doubleword, *sub<dwi>3_doubleword): Use
21372 x86_64_hilo_general_operand instead of <general_operand>.
21374 2016-05-03 Jakub Jelinek <jakub@redhat.com>
21376 PR tree-optimization/70916
21377 * tree-if-conv.c (constant_or_ssa_name): Removed.
21378 (fold_build_cond_expr): Use is_gimple_val instead of
21379 constant_or_ssa_name.
21381 PR tree-optimization/70916
21382 * tree-vect-patterns.c (vect_recog_mask_conversion_pattern): Give up
21383 if COND_EXPR rhs1 is neither SSA_NAME nor COMPARISON_CLASS_P.
21386 * tree-ssa-ccp.c: Include stor-layout.h and optabs-query.h.
21387 (optimize_atomic_bit_test_and): New function.
21388 (pass_fold_builtins::execute): Use it.
21389 * optabs.def (atomic_bit_test_and_set_optab,
21390 atomic_bit_test_and_complement_optab,
21391 atomic_bit_test_and_reset_optab): New optabs.
21392 * internal-fn.def (ATOMIC_BIT_TEST_AND_SET,
21393 ATOMIC_BIT_TEST_AND_COMPLEMENT, ATOMIC_BIT_TEST_AND_RESET): New ifns.
21394 * builtins.h (expand_ifn_atomic_bit_test_and): New prototype.
21395 * builtins.c (expand_ifn_atomic_bit_test_and): New function.
21396 * internal-fn.c (expand_ATOMIC_BIT_TEST_AND_SET,
21397 expand_ATOMIC_BIT_TEST_AND_COMPLEMENT,
21398 expand_ATOMIC_BIT_TEST_AND_RESET): New functions.
21399 * doc/md.texi (atomic_bit_test_and_set@var{mode},
21400 atomic_bit_test_and_complement@var{mode},
21401 atomic_bit_test_and_reset@var{mode}): Document.
21402 * config/i386/sync.md (atomic_bit_test_and_set<mode>,
21403 atomic_bit_test_and_complement<mode>,
21404 atomic_bit_test_and_reset<mode>): New expanders.
21405 (atomic_bit_test_and_set<mode>_1,
21406 atomic_bit_test_and_complement<mode>_1,
21407 atomic_bit_test_and_reset<mode>_1): New insns.
21409 2016-05-03 Richard Sandiford <richard.sandiford@arm.com>
21411 PR rtl-optimization/70687
21412 * combine.c (change_zero_ext): Check for scalar modes. Use wide_int
21413 instead of unsigned HOST_WIDE_INT.
21415 2016-05-03 Bernd Schmidt <bschmidt@redhat.com>
21417 PR rtl-optimization/44281
21418 * hard-reg-set.h (struct target_hard_regs): New field
21419 x_fixed_nonglobal_reg_set.
21420 (fixed_nonglobal_reg_set): New macro.
21421 * reginfo.c (init_reg_sets_1): Initialize it.
21422 * ira.c (setup_alloc_regs): Use fixed_nonglobal_reg_set instead
21424 * df-scan.c (df_insn_refs_collect): Asms may reference global regs.
21426 2016-05-03 Bin Cheng <bin.cheng@arm.com>
21428 PR tree-optimization/56541
21429 * doc/invoke.texi (@item max-tree-if-conversion-phi-args): New item.
21430 * params.def (PARAM_MAX_TREE_IF_CONVERSION_PHI_ARGS): new param.
21431 * tree-if-conv.c (MAX_PHI_ARG_NUM): new macro.
21432 (any_complicated_phi): new static variable.
21433 (aggressive_if_conv): delete.
21434 (if_convertible_phi_p): support phis with more than two arguments.
21435 (if_convertible_bb_p): remvoe check on aggressive_if_conv and
21436 critical pred edges.
21437 (ifcvt_split_critical_edges): support phis with more than two
21438 arguments by checking new parameter. only split critical edges
21440 (tree_if_conversion): handle simd pragma marked loop using new
21441 local variable aggressive_if_conv. check any_complicated_phi.
21443 2016-05-03 Bin Cheng <bin.cheng@arm.com>
21445 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Check depends_on
21448 2016-05-03 Bin Cheng <bin.cheng@arm.com>
21450 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Don't clobber
21453 2016-05-03 Oleg Endo <olegendo@gcc.gnu.org>
21455 * config/sh/sh.md (udivsi3, divsi3, mulsi3): Simplify.
21456 (mulhisi3, umulhisi3, (smulsi3_highpart, umulsi3_highpart): Convert to
21457 define_insn_and_split.
21458 (mulsi3_i): New define_insn_and_split.
21459 (mulsi3_call): Convert to define_insn.
21460 (mulsidi3, mulsidi3_compact, umulsidi3, umulsidi3_compact):
21461 Remove constraints.
21463 2016-05-02 Michael Meissner <meissner@linux.vnet.ibm.com>
21465 * machmode.h (mode_complex): Add support to give the complex mode
21467 (GET_MODE_COMPLEX_MODE): Likewise.
21468 * stor-layout.c (layout_type): For COMPLEX_TYPE, use the mode
21469 stored by build_complex_type and gfc_build_complex_type instead of
21470 trying to figure out the appropriate mode based on the size. Raise
21471 an assertion error, if the type was not set.
21472 * genmodes.c (struct mode_data): Add field for the complex type of
21474 (blank_mode): Likewise.
21475 (make_complex_modes): Remember the complex mode created in the
21477 (emit_mode_complex): Write out the mode_complex array to map a
21478 type mode to the complex version.
21479 (emit_insn_modes_c): Likewise.
21480 * tree.c (build_complex_type): Set the complex type to use before
21481 calling layout_type.
21482 * config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Add
21483 support for __float128 complex datatypes.
21484 (rs6000_hard_regno_mode_ok): Likewise.
21485 (rs6000_setup_reg_addr_masks): Likewise.
21486 (rs6000_complex_function_value): Likewise.
21487 * config/rs6000/rs6000.h (FLOAT128_IEEE_P): Likewise.
21488 __float128 and __ibm128 complex.
21489 (FLOAT128_IBM_P): Likewise.
21490 (ALTIVEC_ARG_MAX_RETURN): Likewise.
21491 * doc/extend.texi (Additional Floating Types): Document that
21492 -mfloat128 must be used to enable __float128. Document complex
21493 __float128 and __ibm128 support.
21495 2016-05-02 Jakub Jelinek <jakub@redhat.com>
21498 * gimple.c (gimple_builtin_call_types_compatible_p): Allow
21499 char/short arguments promoted to int because of promote_prototypes.
21501 2016-05-02 Uros Bizjak <ubizjak@gmail.com>
21503 * config/i386/predicates.md (register_ssemem_operand): New predicate.
21504 * config/i386/i386.md (*cmpi<FPCMP:unord><MODEF:mode>): Merge from
21505 *cmpi<FPCMP:unord><MODEF:mode>_mixed and
21506 *cmpi<FPCMP:unord><X87MODEF:mode>_i387. Disable unsupported
21507 alternatives using "enabled" attribute. Use register_ssemem_operand
21508 as operand 1 predicate.
21509 (*cmpi<unord>xf_i387): Split XFmode pattern from
21510 *cmpi<FPCMP:unord><X87MODEF:mode>_i387.
21511 (*absneg<mode>2): Merge from *absneg<mode>2_mixed and
21512 *absneg<mode>2_i387. Disable unsupported alternatives using
21513 "enabled" attribute.
21514 (*absnegxf2_i387): Split XFmode pattern from *absneg<mode>2_i387.
21516 2016-05-02 Nathan Sidwell <nathan@codesourcery.com>
21518 * omp-low.c (lower_oacc_head_tail): Assert there is at least one
21520 (oacc_loop_process): Check mask for loop termination.
21522 2016-05-02 Jan Hubicka <hubicka@ucw.cz>
21524 * cif-code.def (CIF_THUNK): Add.
21525 * ipa-inline-analsysis.c (evaluate_conditions_for_known_args): Revert
21528 2016-05-02 Jan Hubicka <hubicka@ucw.cz>
21530 * ipa-inline-analysis.c (reset_inline_summary): Clear fp_expressions
21531 (dump_inline_summary): Dump it.
21532 (fp_expression_p): New predicate.
21533 (estimate_function_body_sizes): Use it.
21534 (inline_merge_summary): Merge fp_expressions.
21535 (inline_read_section): Read fp_expressions.
21536 (inline_write_summary): Write fp_expressions.
21537 * ipa-inline.c (can_inline_edge_p): Permit inlining across fp math
21538 codegen boundary if either caller or callee is !fp_expressions.
21539 * ipa-inline.h (inline_summary): Add fp_expressions.
21540 * ipa-inline-transform.c (inline_call): When inlining !fp_expressions
21541 to fp_expressions be sure the fp generation flags are updated.
21543 2016-05-02 Jakub Jelinek <jakub@redhat.com>
21545 PR rtl-optimization/70467
21546 * cse.c (cse_insn): Handle no-op MEM moves after folding.
21548 PR rtl-optimization/70467
21549 * ipa-pure-const.c (check_call): Handle internal calls even in
21550 ipa mode like in local mode.
21552 2016-05-02 Bernd Edlinger <bernd.edlinger@hotmail.de>
21554 * doc/install.texi: Document supported in-tree gmp/mpfr/mpc versions.
21556 2016-05-02 Marc Glisse <marc.glisse@inria.fr>
21558 * match.pd (X u< X, X u> X): New transformations.
21560 2016-05-02 Marc Glisse <marc.glisse@inria.fr>
21562 * flag-types.h (enum warn_strict_overflow_code): Move ...
21563 * coretypes.h: ... here.
21564 * fold-const.h (fold_overflow_warning): Declare.
21565 * fold-const.c (fold_overflow_warning): Make non-static.
21566 (fold_comparison): Move the transformation of X +- C1 CMP C2
21567 into X CMP C2 -+ C1 ...
21568 * match.pd: ... here.
21569 * gimple-fold.c (fold_stmt_1): Protect with
21570 fold_defer_overflow_warnings.
21572 2016-05-02 Nathan Sidwell <nathan@codesourcery.com>
21574 * omp-low.c (struct oacc_loop): Add 'inner' field.
21575 (new_oacc_loop_raw): Initialize it to zero.
21576 (oacc_loop_fixed_partitions): Initialize it.
21577 (oacc_loop_auto_partitions): Partition outermost loop to outermost
21578 available partitioning.
21580 2016-05-02 Claudiu Zissulescu <claziss@synopsys.com>
21582 * config/arc/arc.md (mulsidi3): Change operand 0 predicate to
21584 (umulsidi3): Likewise.
21585 (indirect_jump): Fix jump instruction assembly patterns.
21587 2016-05-02 Thomas Schwinge <thomas@codesourcery.com>
21590 * config/nvptx/nvptx.c (nvptx_libcall_value): Handle NULL cfun.
21591 (nvptx_function_value): Assert non-NULL cfun.
21593 2016-05-02 Eric Botcazou <ebotcazou@adacore.com>
21595 PR rtl-optimization/70886
21596 * sched-deps.c (estimate_dep_weak): Canonicalize cselib values.
21598 * cselib.h (rtx_equal_for_cselib_1): Declare.
21599 (rtx_equal_for_cselib_p: New inline function.
21600 * cselib.c (rtx_equal_for_cselib_p): Delete.
21601 (rtx_equal_for_cselib_1): Make public.
21603 2016-05-02 Uros Bizjak <ubizjak@gmail.com>
21605 * config/i386/predicates.md (nonimm_ssenomem_operand): New predicate.
21606 (register_mixssei387nonimm_operand): Remove predicate.
21607 * config/i386/i386.md (*fop_<mode>_comm): Merge from
21608 *fop_<mode>_comm_mixed and *fop_<mode>_comm_i387. Disable unsupported
21609 alternatives using "enabled" attribute. Also check X87_ENABLE_ARITH
21610 for TARGET_MIX_SSE_I387 alternatives.
21611 (*fop_<mode>_1): Merge from *fop_<mode>_1_mixed and *fop_<mode>_1_i387.
21612 Disable unsupported alternatives using "enabled" attribute. Use
21613 nonimm_ssenomem_operand as operand 1 predicate. Also check
21614 X87_ENABLE_ARITH for TARGET_MIX_SSE_I387 alternatives.
21616 2016-05-02 Richard Sandiford <richard.sandiford@arm.com>
21618 * tree.c (cst_and_fits_in_hwi): Simplify.
21620 2016-05-02 Richard Sandiford <richard.sandiford@arm.com>
21622 * tree.h (wi::to_wide): New function.
21623 * expr.c (expand_expr_real_1): Use wi::to_wide.
21624 * fold-const.c (int_const_binop_1): Likewise.
21625 (extract_muldiv_1): Likewise.
21627 2016-05-02 Richard Sandiford <richard.sandiford@arm.com>
21629 * wide-int.h: Update offset_int and widest_int documentation.
21630 (WI_SIGNED_SHIFT_RESULT): New macro.
21631 (wi::binary_shift): Define signed_shift_result_type for
21632 shifts on offset_int- and widest_int-like types.
21633 (generic_wide_int): Support <<= and >>= if << and >> are supported.
21634 * tree.h (int_bit_position): Use shift operators instead of wi::
21636 * alias.c (adjust_offset_for_component_ref): Likewise.
21637 * expr.c (get_inner_reference): Likewise.
21638 * fold-const.c (fold_comparison): Likewise.
21639 * gimple-fold.c (fold_nonarray_ctor_reference): Likewise.
21640 * gimple-ssa-strength-reduction.c (restructure_reference): Likewise.
21641 * tree-dfa.c (get_ref_base_and_extent): Likewise.
21642 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Likewise.
21643 (stmt_kills_ref_p): Likewise.
21644 * tree-ssa-ccp.c (bit_value_binop_1): Likewise.
21645 * tree-ssa-math-opts.c (find_bswap_or_nop_load): Likewise.
21646 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
21647 (ao_ref_init_from_vn_reference): Likewise.
21649 2016-05-02 Richard Sandiford <richard.sandiford@arm.com>
21651 * wide-int.h: Update offset_int and widest_int documentation.
21652 (WI_SIGNED_BINARY_PREDICATE_RESULT): New macro.
21653 (wi::binary_traits): Allow ordered comparisons between offset_int and
21654 offset_int, between widest_int and widest_int, and between either
21655 of these types and basic C types.
21656 (operator <, <=, >, >=): Define for the same combinations.
21657 * tree.h (tree_int_cst_lt): Use comparison operators instead
21658 of wi:: comparisons.
21659 (tree_int_cst_le): Likewise.
21660 * gimple-fold.c (fold_array_ctor_reference): Likewise.
21661 (fold_nonarray_ctor_reference): Likewise.
21662 * gimple-ssa-strength-reduction.c (record_increment): Likewise.
21663 * tree-affine.c (aff_comb_cannot_overlap_p): Likewise.
21664 * tree-parloops.c (try_transform_to_exit_first_loop_alt): Likewise.
21665 * tree-sra.c (completely_scalarize): Likewise.
21666 * tree-ssa-alias.c (stmt_kills_ref_p): Likewise.
21667 * tree-ssa-reassoc.c (extract_bit_test_mask): Likewise.
21668 * tree-vrp.c (extract_range_from_binary_expr_1): Likewise.
21669 (check_for_binary_op_overflow): Likewise.
21670 (search_for_addr_array): Likewise.
21671 * ubsan.c (ubsan_expand_objsize_ifn): Likewise.
21673 2016-05-02 Claudiu Zissulescu <claziss@synopsys.com>
21675 * config/arc/arc.c (arc_preferred_simd_mode): Remove enum keyword.
21676 (arc_save_restore): Likewise.
21677 (arc_dwarf_register_span): Likewise.
21678 (arc_output_pic_addr_const): Initialize suffix variable.
21680 2016-05-02 Martin Liska <mliska@suse.cz>
21682 * symbol-summary.h (function_summary::function_summary):
21683 Remove checking assert for all cgraph nodes.
21684 (function_summary::get): Check summary_uid.
21685 (symtab_insertion): Check summary_uid.
21687 2016-05-02 Claudiu Zissulescu <claziss@synopsys.com>
21689 * config/arc/arc-protos.h (compact_memory_operand_p): Declare.
21690 * config/arc/arc.c (arc_output_commutative_cond_exec): Consider
21691 bmaskn instruction.
21692 (arc_dwarf_register_span): Remove enum keyword.
21693 (compact_memory_operand_p): New function.
21694 * config/arc/arc.h (reg_class): Add code density register classes.
21695 (REG_CLASS_NAMES): Likewise.
21696 (REG_CLASS_CONTENTS): Likewise.
21697 * config/arc/arc.md (*movqi_insn): Add code density instructions.
21698 (*movhi_insn, *movsi_insn, *movsf_insn): Likewise.
21699 (*extendhisi2_i, andsi3_i, cmpsi_cc_insn_mixed): Likewise.
21700 (*cmpsi_cc_c_insn, *movsi_ne): Likewise.
21701 * config/arc/constraints.md (C2p, Uts, Cm1, Cm3, Ucd): New
21703 (h, Rcd, Rsd, Rzd): New register constraints.
21704 (T): Use compact_memory_operand_p function.
21705 * config/arc/predicates.md (compact_load_memory_operand): Remove.
21707 2016-05-02 Oleg Endo <olegendo@gcc.gnu.org>
21709 * config/sh/sh.md (*negnegt, *movtt): Remove.
21711 2016-05-02 Marek Polacek <polacek@redhat.com>
21712 Tom de Vries <tom@codesourcery.com>
21714 PR tree-optimization/70700
21715 * tree-ssa-structalias.c (dump_pred_graph): Fix getting varinfo for ids
21716 bigger than FIRST_REF_NODE.
21718 2016-05-02 Oleg Endo <olegendo@gcc.gnu.org>
21721 * config/sh/sh.c (sh_option_override): Remove TARGET_CBRANCHDI4,
21723 (prepare_cbranch_operands): Don't use scratch register. Assume that
21724 function is used when pseudos can be created.
21725 (expand_cbranchdi4): Likewise. Remove unused TARGET_CMPEQDI_T paths.
21726 * config/sh/sh.md (cbranchsi4): Allow only when pseudos can be created.
21727 (cbranchdi4, cbranchdi4_i): Simplify to single cbranchdi4
21728 define_expand. Allow it only when pseudos can be created.
21729 * config/sh/sh.opt (mcbranchdi, mcmpeqdi): Delete.
21731 2016-05-01 Uros Bizjak <ubizjak@gmail.com>
21733 * config/i386/constraints.md (BC): Only allow -1 operands.
21734 * config/i386/sse.md (mov<mode>_internal): Add (v,C) alternative.
21735 Add "enabled" attribute. Update XI mode attribute calculation.
21736 * config/i386/i386.md (*movxi_internal_avx512f): Add (v,C) alternative.
21737 (*movoi_internal_avx): Update XI mode attribute calculation.
21738 (*movti_internal): Ditto.
21740 2016-05-01 Oleg Endo <olegendo@gcc.gnu.org>
21742 * config/sh/sh.md (push, pop, ic_invalidate_line, cstoresi4, cstoredi4,
21743 cstoresf4, cstoredf4, fix_truncsfsi2): Remove constraints.
21745 2016-05-01 Eric Botcazou <ebotcazou@adacore.com>
21747 * config/rs6000/rs6000.c (altivec_expand_lv_builtin): Do not use switch
21748 statement on instruction code. Remove trailing spaces.
21749 (altivec_expand_stv_builtin): Likewise.
21751 2016-05-01 Oleg Endo <olegendo@gcc.gnu.org>
21753 * config/sh/sh.h (TARGET_SH4): Remove and use default implementation.
21754 (TARGET_FPU_DOUBLE): Simplify.
21755 (BASE_ARG_REG, DOUBLE_TYPE_SIZE, OPTIMIZE_MODE_SWITCHING): Replace
21756 'TARGET_SH4 || TARGET_SH2A_DOUBLE' conditions with 'TARGET_FPU_DOUBLE'.
21757 * config/sh/sh.c: Replace 'TARGET_SH4 || TARGET_SH2A_DOUBLE' conditions
21758 with 'TARGET_FPU_DOUBLE'.
21759 * config/sh/sh.md: Likewise.
21761 2016-05-01 Yoshinori Sato <ysato@users.sourceforge.jp>
21763 * config/sh/linux.h (SH_DIV_STRATEGY_DEFAULT,
21764 SH_DIV_STR_FOR_SIZE): Remove.
21765 * config/sh/netbsd-elf.h (SH_DIV_STRATEGY_DEFAULT,
21766 SH_DIV_STR_FOR_SIZE): Remove.
21768 2016-05-01 Oleg Endo <olegendo@gcc.gnu.org>
21770 * config/sh/predicates.md (any_register_operand, zero_extend_operand,
21771 logical_reg_operand): Delete.
21772 (arith_operand, arith_reg_dest, arith_or_int_operand, cmpsi_operand,
21773 arith_reg_or_0_operand, arith_reg_or_0_or_1_operand, logical_operand,
21774 logical_and_operand, movsrc_no_disp_mem_operand): Rewrite using
21775 match_operand and match_test.
21776 (sh_const_vec, sh_1el_vec): Remove redundant checks. Declare local
21777 variables on their first use. Return bool values.
21778 * config/sh/sh.h (LOAD_EXTEND_OP): Update comment.
21779 * config/sh/sh.md (andsi3, iorsi3): Use arith_reg_dest for result and
21780 arith_reg_operand for input operand. Remove empty constraints.
21782 (*xorsi3_compact): Rename to xorsi3.
21783 (zero_extend<mode>si2): Use arith_reg_operand for input operand.
21784 (*zero_extend<mode>si2_disp_mem): Update comment.
21787 2016-04-30 Oleg Endo <olegendo@gcc.gnu.org>
21789 * config/sh/t-sh: Remove SH5 support.
21790 * config.gcc: Likewise.
21791 * configure: Likewise.
21793 2016-04-30 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
21795 * config/darwin.h (LINK_COMMAND_SPEC_A): Handle -fcilkplus.
21797 2016-04-30 Oleg Endo <olegendo@gcc.gnu.org>
21799 * config/sh/sh.c (register_sh_passes, sh_option_override,
21800 sh_print_operand, prepare_move_operands,
21801 sh_can_follow_jump): Remove TARGET_SH1 checks.
21802 * config/sh/sh.h (TARGET_VARARGS_PRETEND_ARGS, VALID_REGISTER_P,
21803 PROMOTE_MODE): Likewise.
21804 * config/sh/sh.md (adddi3, addsi3, subdi3, subsi3, andsi3,
21807 2016-04-30 Alan Modra <amodra@gmail.com>
21809 * config/rs6000/rs6000.c (rs6000_savres_strategy): Force inline
21810 restoring when fixed_reg_p, but allow out-of-line or stmw save.
21811 Check for user regs later to avoid unnecessary looping over regs.
21812 Merge user reg check with non-saved reg check. Don't force
21813 inline VR restore when static chain used.
21814 (rs6000_frame_related): Omit eh_frame info for user regs when
21816 (fixed_regs_p): Delete.
21818 2016-04-30 Alan Modra <amodra@gmail.com>
21820 * config/rs6000/rs6000.c (SAVRES_MULTIPLE): Replace with..
21821 (SAVE_STRATEGY, REST_STRATEGY): ..this. Renumber and sort enum.
21824 2016-04-30 Alan Modra <amodra@gmail.com>
21827 * config/rs6000/rs6000.c (fixed_reg_p): New function.
21828 (fixed_regs_p): Rename from global_regs_p. Call fixed_reg_p.
21831 2016-04-30 Alan Modra <amodra@gmail.com>
21833 * config/rs6000/rs6000.c (rs6000_conditional_register_usage):
21834 Remove redundant PIC_OFFSET_TABLE_REGNUM test. Replace with
21835 flag_pic test for Darwin.
21837 2016-04-30 Alan Modra <amodra@gmail.com>
21839 * regs.h (struct reg_info_t): Delete freq_calls_crossed and
21840 throw_calls_crossed.
21841 (REG_FREQ_CALLS_CROSSED): Delete.
21842 (REG_N_THROWING_CALLS_CROSSED): Delete.
21843 * regstat.c (regstat_bb_compute_ri): Don't calculate
21844 REG_FREQ_CALLS_CROSSED and REG_N_THROWING_CALLS_CROSSED.
21845 (dump_reg_info): Don't print call cross frequency.
21846 * ira.c (combine_and_move_insns): Don't set REG_FREQ_CALLS_CROSSED
21847 and REG_N_THROWING_CALLS_CROSSED.
21849 2016-04-30 Alan Modra <amodra@gmail.com>
21851 * regs.h (struct reg_info_t): Delete live_length.
21852 (REG_LIVE_LENGTH): Delete macro.
21853 * regstat.c (regstat_bb_compute_ri): Delete artificial_uses,
21854 local_live, local_processed and local_live_last_luid params.
21855 Replace bb_index param with bb. Don't set REG_LIVE_LENGTH.
21857 (regstat_compute_ri): Adjust for above. Don't set
21859 (dump_reg_info): Don't print live length.
21860 * ira.c (update_equiv_regs): Replace test of REG_LIVE_LENGTH
21861 with test of setjmp_crosses. Don't set REG_LIVE_LENGTH.
21862 Localize loop_depth var.
21864 2016-04-30 Alan Modra <amodra@gmail.com>
21866 * ira.c (enum valid_equiv): New.
21867 (validate_equiv_mem): Return enum.
21868 (update_equiv_mem): Create replacement in more cases.
21869 (add_store_equivs): Update validate_equiv_mem call.
21871 2016-04-30 Alan Modra <amodra@gmail.com>
21873 * ira.c (combine_and_move_insns): Rather than scanning insns,
21874 use DF infrastucture to find use and def insns.
21876 2016-04-30 Alan Modra <amodra@gmail.com>
21878 ira.c (combine_and_move_insns): Move invariant conditions..
21879 (ira.c): ..to here. Call combine_and_move_insns before
21880 add_store_equivs. Call grow_reg_equivs later. Allocate
21881 req_equiv later using max_reg_num() rather than global max_regno.
21882 (contains_replace_regs): Delete.
21883 (add_store_equivs): Remove contains_replace_regs test.
21885 2016-04-30 Alan Modra <amodra@gmail.com>
21887 * ira.c (struct equiv_mem_data): New.
21888 (equiv_mem, equiv_mem_modified): Delete static vars.
21889 (validate_equiv_mem_from_store): Use "data" param to communicate..
21890 (validate_equiv_mem): ..from here.
21892 2016-04-30 Alan Modra <amodra@gmail.com>
21894 * ira.c (add_store_equivs, combine_and_move_insns): New functions,
21896 (update_reg_equivs): ..here. Move allocation and freeing of
21897 reg_equiv, and calls to grow_reg_equivs, init_alias_analysis,
21898 end_alias_analysis to..
21901 2016-04-30 Alan Modra <amodra@gmail.com>
21903 * ira.c (pdx_subregs): Delete.
21904 (struct equivalence): Add pdx_subregs field.
21905 (set_paradoxical_subreg): Remove pdx_subregs param. Update
21906 pdx_subregs access.
21907 (update_equiv_regs): Don't create or free pdx_subregs. Update
21908 pdx_subregs access.
21910 2016-04-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
21912 * config/rs6000/altivec.h: Change definitions of vec_xl and
21914 * config/rs6000/rs6000-builtin.def (LD_ELEMREV_V2DF): New.
21915 (LD_ELEMREV_V2DI): New.
21916 (LD_ELEMREV_V4SF): New.
21917 (LD_ELEMREV_V4SI): New.
21918 (LD_ELEMREV_V8HI): New.
21919 (LD_ELEMREV_V16QI): New.
21920 (ST_ELEMREV_V2DF): New.
21921 (ST_ELEMREV_V2DI): New.
21922 (ST_ELEMREV_V4SF): New.
21923 (ST_ELEMREV_V4SI): New.
21924 (ST_ELEMREV_V8HI): New.
21925 (ST_ELEMREV_V16QI): New.
21928 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
21929 descriptions for VSX_BUILTIN_VEC_XL and VSX_BUILTIN_VEC_XST.
21930 * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Map from
21931 TARGET_P9_VECTOR to RS6000_BTM_P9_VECTOR.
21932 (altivec_expand_builtin): Add handling for
21933 VSX_BUILTIN_ST_ELEMREV_<MODE> and VSX_BUILTIN_LD_ELEMREV_<MODE>.
21934 (rs6000_invalid_builtin): Add error-checking for
21935 RS6000_BTM_P9_VECTOR.
21936 (altivec_init_builtins): Define builtins used to implement vec_xl
21938 (rs6000_builtin_mask_names): Define power9-vector.
21939 * config/rs6000/rs6000.h (MASK_P9_VECTOR): Define.
21940 (RS6000_BTM_P9_VECTOR): Define.
21941 (RS6000_BTM_COMMON): Include RS6000_BTM_P9_VECTOR.
21942 * config/rs6000/vsx.md (vsx_ld_elemrev_v2di): New define_insn.
21943 (vsx_ld_elemrev_v2df): Likewise.
21944 (vsx_ld_elemrev_v4sf): Likewise.
21945 (vsx_ld_elemrev_v4si): Likewise.
21946 (vsx_ld_elemrev_v8hi): Likewise.
21947 (vsx_ld_elemrev_v16qi): Likewise.
21948 (vsx_st_elemrev_v2df): Likewise.
21949 (vsx_st_elemrev_v2di): Likewise.
21950 (vsx_st_elemrev_v4sf): Likewise.
21951 (vsx_st_elemrev_v4si): Likewise.
21952 (vsx_st_elemrev_v8hi): Likewise.
21953 (vsx_st_elemrev_v16qi): Likewise.
21954 * doc/extend.texi: Add prototypes for vec_xl and vec_xst. Correct
21957 2016-04-29 Patrick Palka <ppalka@gcc.gnu.org>
21959 * tree-ssa-threadedge.c (simplify_control_stmt_condition): Split
21961 (simplify_control_stmt_condition_1): ... here. Recurse into
21962 BIT_AND_EXPRs and BIT_IOR_EXPRs.
21964 2016-04-29 David Edelsohn <dje.gcc@gmail.com>
21967 * config/rs6000/rs6000.md (EXTQI): Don't allow extension to HImode.
21968 (zero_extendqi<mode>2_dot): Revert earlier conversion from
21969 define_insn_and_split to define_insn.
21970 (zero_extendqi<mode>2_dot2): Same.
21971 (extendqi<mode>2_dot): Same.
21972 (extendqi<mode>2_dot2): Same.
21974 2016-04-29 Uros Bizjak <ubizjak@gmail.com>
21976 * config/i386/i386.md (unspec): Add UNSPEC_PROBE_STACK.
21977 (probe_stack): New expander.
21978 (probe_stack_<mode>): New insn pattern.
21980 2016-04-29 Uros Bizjak <ubizjak@gmail.com>
21982 * config/i386/i386.md
21983 (operations with memory inputs setting flags peephole2):
21984 Remove uneeded REG_P checks. Cleanup pattern generation.
21986 2016-04-29 Ilya Enkovich <ilya.enkovich@intel.com>
21988 * tree-vect-loop.c (vect_transform_loop): Fix
21989 nb_iterations_upper_bound computation for vectorized loop.
21991 2016-04-29 Marek Polacek <polacek@redhat.com>
21992 Jakub Jelinek <jakub@redhat.com>
21995 * fold-const.c (tree_single_nonzero_warnv_p): For TARGET_EXPR, use
21996 TARGET_EXPR_SLOT as a base.
21998 2016-04-29 Andrew Burgess <andrew.burgess@embecosm.com>
22000 * config/arc/arc.md (*loadqi_update): Replace use of 'rI' constraint
22001 with 'rCm2' constraints to limit possible immediate size.
22002 (*load_zeroextendqisi_update): Likewise.
22003 (*load_signextendqisi_update): Likewise.
22004 (*loadhi_update): Likewise.
22005 (*load_zeroextendhisi_update): Likewise.
22006 (*load_signextendhisi_update): Likewise.
22007 (*loadsi_update): Likewise.
22008 (*loadsf_update): Likewise.
22010 2016-04-29 Uros Bizjak <ubizjak@gmail.com>
22012 * config/i386/predicates.md (constm1_operand): Fix comparison.
22014 2016-04-29 Claudiu Zissulescu <claziss@synopsys.com>
22016 * testsuite/gcc.target/arc/ieee_eq.c: New test.
22018 2016-04-29 Oleg Endo <olegendo@gcc.gnu.org>
22020 * common/config/sh/sh-common.c (sh_option_optimization_table): Remove
22021 remaining SH5 related settings.
22022 * config/sh/sh-protos.h (shmedia_cleanup_truncate,
22023 shmedia_prepare_call_address): Delete.
22024 * config/sh/sh.c (sh_print_operand, output_stack_adjust,
22025 DWARF_CIE_DATA_ALIGNMENT, LOCAL_ALIGNMENT): Update comments.
22026 * config/sh/sh.h (SUBTARGET_ASM_RELAX_SPEC,
22027 UNSUPPORTED_SH2A): Remove m5 checks.
22028 (sh_divide_strategy_e): Remove SH5 division strategies.
22029 (TARGET_PTRMEMFUNC_VBIT_LOCATION): Remove and use default.
22030 * config/sh/sh.md (divsf3): Reinstate define_expand pattern.
22032 2016-04-29 Dominik Vogt <vogt@linux.vnet.ibm.com>
22034 * config/s390/s390.c (s390_rtx_costs): Update documentation.
22036 2016-04-29 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
22038 * config/s390/2964.md ("z13_unit_fxu", "z13_0"): Remove lder.
22039 * config/s390/s390.md ("movsi_larl", "*movsi_esa", "mov<mode>"):
22040 Change lder to ldr.
22041 * config/s390/vector.md ("mov<mode>"): Likewise.
22043 2016-04-29 Ulrich Weigand <uweigand@de.ibm.com>
22045 * config/s390/constraints.md ("U", "W"): Invoke
22046 s390_mem_constraint with "ZR" and "ZT".
22047 * config/s390/s390.c (s390_check_qrst_address): Reject invalid
22048 addresses when using LRA. Accept also short displacements for S
22049 and T constraints. Do not check for long displacement target for
22050 S and T constraints.
22051 (s390_mem_constraint): Remove handling of U and W constraints.
22052 * config/s390/s390.md (various patterns): Remove the short
22053 displacement constraints (Q and R) if a long displacement
22054 constraint is present. Add longdisp as required CPU capability.
22055 * config/s390/vector.md: Likewise.
22056 * config/s390/vx-builtins.md: Likewise.
22058 2016-04-29 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
22061 * reload1.c (reload): Call finish_spills before
22062 restarting reload loop. Skip select_reload_regs
22063 if update_eliminables_and_spill returns true.
22065 2016-04-29 Claudiu Zissulescu <claziss@synopsys.com>
22067 * config/arc/arc.h (UNSIGNED_INT12, UNSIGNED_INT16): Define.
22068 * config/arc/arc.md (umulhisi3): Use arc_short_operand predicate.
22069 (umulhisi3_imm): Update predicates and constraint letters.
22070 (umulhisi3_reg): Declare instruction as commutative.
22071 * config/arc/constraints.md (J12, J16): New constraints.
22072 * config/arc/predicates.md (short_unsigned_const_operand): New
22074 (arc_short_operand): Likewise.
22075 * testsuite/gcc.target/arc/umulsihi3_z.c: New file.
22077 2016-04-29 Richard Biener <rguenther@suse.de>
22079 PR tree-optimization/13962
22080 PR tree-optimization/65686
22081 * tree-ssa-alias.h (ptrs_compare_unequal): Declare.
22082 * tree-ssa-alias.c (ptrs_compare_unequal): New function
22083 using PTA to compare pointers.
22084 * match.pd: Add pattern for pointer equality compare simplification
22085 using ptrs_compare_unequal.
22087 2016-04-29 Richard Biener <rguenther@suse.de>
22089 * stor-layout.c (layout_type): Do not build a pointer-to-element
22092 2016-04-29 Uros Bizjak <ubizjak@gmail.com>
22094 * config/i386/i386.md (Load+RegOp to Mov+MemOp peephole2):
22095 Use SWI mode iterator. Use general_reg_operand predicate.
22096 (Load+RegOp to Mov+MemOp peephole2 with vector regs): Split
22097 peephole to MMX and SSE part. Use mmx_reg_operand and sse_reg_operand
22100 2016-04-29 Jakub Jelinek <jakub@redhat.com>
22102 PR middle-end/70843
22103 * fold-const.c (operand_equal_p): Don't verify hash value equality
22105 * tree.c (inchash::add_expr): Handle STATEMENT_LIST. Ignore BLOCK
22108 2016-04-28 Jakub Jelinek <jakub@redhat.com>
22111 * config/i386/i386.c (bdesc_special_args): Add | OPTION_MASK_ISA_64BIT
22112 to __builtin_ia32_lwpval64 and __builtin_ia32_lwpins64.
22113 (bdesc_args): Add | OPTION_MASK_ISA_64BIT to __builtin_ia32_bextr_u64,
22114 __builtin_ia32_bextri_u64, __builtin_ia32_bzhi_di,
22115 __builtin_ia32_pdep_di and __builtin_ia32_pext_di.
22117 2016-04-28 Segher Boessenkool <segher@kernel.crashing.org>
22119 * config/rs6000/rs6000.c (compute_save_world_info): Rename info_ptr
22120 to info. Don't initialize separate fields to 0. Clean up
22123 2016-04-28 Uros Bizjak <ubizjak@gmail.com>
22125 * config/i386/i386.md (peephole2s for operations with memory inputs):
22126 Use SWI mode iterator.
22127 (peephole2s for operations with memory outputs): Ditto.
22128 Do not check for stack checking probe.
22130 (probe_stack): Remove expander.
22132 2016-04-28 Joern Rennecke <joern.rennecke@embecosm.com>
22133 Andrew Burgess <andrew.burgess@embecosm.com>
22135 * config/arc/arc.c (arc_print_operand): Print integer 'H' / 'L'
22136 operands as 32-bits.
22138 2016-04-28 Jason Merrill <jason@redhat.com>
22140 * gdbinit.in: Skip line-map.h.
22142 2016-04-28 Joern Rennecke <joern.rennecke@embecosm.com>
22143 Andrew Burgess <andrew.burgess@embecosm.com>
22145 * config/arc/arc.c (arc_conditional_register_usage): Take
22146 TARGET_RRQ_CLASS into account.
22147 (arc_print_operand): Support printing 'p' and 's' operands.
22148 * config/arc/arc.h (TARGET_NPS_BITOPS_DEFAULT): Provide default
22150 (TARGET_RRQ_CLASS): Define.
22151 (IS_POWEROF2_OR_0_P): Define.
22152 * config/arc/arc.md (*movsi_insn): Add w/Clo, w/Chi, and w/Cbi
22154 (*tst_movb): New define_insn.
22155 (*tst): Avoid recognition if it could prevent '*tst_movb'
22156 combination; replace c/CnL with c/Chs alternative.
22157 (*tst_bitfield_tst): New define_insn.
22158 (*tst_bitfield_asr): New define_insn.
22159 (*tst_bitfield): New define_insn.
22160 (andsi3_i): Add Rrq variant.
22161 (extzv): New define_expand.
22162 (insv): New define_expand.
22163 (*insv_i): New define_insn.
22164 (*movb): New define_insn.
22165 (*movb_signed): New define_insn.
22166 (*movb_high): New define_insn.
22167 (*movb_high_signed): New define_insn.
22168 (*movb_high_signed + 1): New define_split pattern.
22169 (*mrgb): New define_insn.
22170 (*mrgb + 1): New define_peephole2 pattern.
22171 (*mrgb + 2): New define_peephole2 pattern.
22172 * config/arc/arc.opt (mbitops): New option for nps400, uses
22173 TARGET_NPS_BITOPS_DEFAULT.
22174 * config/arc/constraints.md (q): Make register class conditional.
22175 (Rrq): New register constraint.
22176 (Chs): New constraint.
22177 (Clo): New constraint.
22178 (Chi): New constraint.
22179 (Cbf): New constraint.
22180 (Cbn): New constraint.
22181 (C18): New constraint.
22182 (Cbi): New constraint.
22184 2016-04-28 Segher Boessenkool <segher@kernel.crashing.org>
22186 * cfganal.c (bitmap_intersection_of_succs): Delete assert checking
22188 (bitmap_intersection_of_preds): Ditto.
22189 (bitmap_union_of_succs): Ditto.
22190 (bitmap_union_of_preds): Ditto.
22191 * sbitmap.c (do_popcount): Delete.
22192 (BITMAP_DEBUGGING): Delete.
22193 (sbitmap_verify_popcount): Delete.
22194 (sbitmap_alloc): Don't initialize the popcount field.
22195 (sbitmap_alloc_with_popcount): Delete.
22196 (sbitmap_resize): Don't resize the popcount array.
22197 (sbitmap_vector_alloc): Don't initialize the popcount field.
22198 (bitmap_copy): Don't copy the popcount array.
22199 (bitmap_clear): Don't clear the popcount array.
22200 (bitmap_clear): Delete the popcount array handling.
22201 (bitmap_ior_and_compl): Delete the popcount assert.
22202 (bitmap_not): Ditto.
22203 (bitmap_and_compl): Ditto.
22204 (bitmap_and): Delete the popcount array handling.
22205 (bitmap_xor): Ditto.
22206 (bitmap_ior): Ditto.
22207 (bitmap_or_and): Delete the popcount assert.
22208 (bitmap_and_or): Ditto.
22209 (popcount_table): Delete.
22210 (sbitmap_elt_popcount): Delete.
22211 * sbitmap.h (simple_bitmap_def): Delete the popcount field.
22212 (bitmap_set_bit): Delete the popcount assert.
22213 (bitmap_clear_bit): Ditto.
22214 (sbitmap_free): Don't free the popcount array.
22215 (sbitmap_alloc_with_popcount): Delete declaration.
22216 (sbitmap_popcount): Ditto.
22218 2016-04-28 Joern Rennecke <joern.rennecke@embecosm.com>
22219 Andrew Burgess <andrew.burgess@embecosm.com>
22221 * config/arc/arc.h (SYMBOL_FLAG_CMEM): Define.
22222 (TARGET_NPS_CMEM_DEFAULT): Provide default definition.
22223 * config/arc/arc.c (arc_address_cost): Return 0 for cmem_address.
22224 (arc_encode_section_info): Set SYMBOL_FLAG_CMEM where indicated.
22225 * config/arc/arc.opt (mcmem): New option.
22226 * config/arc/arc.md (*extendqihi2_i): Add r/Uex alternative,
22227 supply length for r/m alternative.
22228 (*extendqisi2_ac): Likewise.
22229 (*extendhisi2_i): Add r/Uex alternative, supply length for r/m and
22231 (movqi_insn): Add r/Ucm and Ucm/?Rac alternatives.
22232 (movhi_insn): Likewise.
22233 (movsi_insn): Add r/Ucm,Ucm/w alternatives.
22234 (*zero_extendqihi2_i): Add r/Ucm alternative.
22235 (*zero_extendqisi2_ac): Likewise.
22236 (*zero_extendhisi2_i): Likewise.
22237 * config/arc/constraints.md (Uex): New memory constraint.
22238 (Ucm): New define_constraint.
22239 * config/arc/predicates.md (long_immediate_loadstore_operand):
22240 Return 0 for MEM with cmem_address address.
22241 (cmem_address_0): New predicates.
22242 (cmem_address_1): Likewise.
22243 (cmem_address_2): Likewise.
22244 (cmem_address): Likewise.
22246 2016-04-28 Segher Boessenkool <segher@kernel.crashing.org>
22248 * config/rs6000/rs6000.c (machine_function): Rename
22249 insn_chain_scanned_p to spe_insn_chain_scanned_p.
22250 (rs6000_stack_info): Adjust.
22252 2016-04-28 Joern Rennecke <joern.rennecke@embecosm.com>
22253 Andrew Burgess <andrew.burgess@embecosm.com>
22255 * config/arc/constraints.md (Usd): Convert to define_constraint.
22259 2016-04-28 Jakub Jelinek <jakub@redhat.com>
22262 * config/i386/sync.md (define_peephole2 *atomic_fetch_add_cmp<mode>):
22263 Add new peephole2 where the first insn is *mov<mode>_or instead of
22264 *mov<mode>_internal.
22266 2016-04-28 Segher Boesssenkool <segher@kernel.crashing.org>
22268 * tracer.c (bb_seen): Make static.
22270 2016-04-28 Andrew Burgess <andrew.burgess@embecosm.com>
22272 * common/config/arc/arc-common.c (arc_handle_option): Add NPS400
22273 support, setup defaults.
22274 * config/arc/arc-opts.h (enum processor_type): Add NPS400.
22275 * config/arc/arc.c (arc_init): Add NPS400 support.
22276 * config/arc/arc.h (CPP_SPEC): Add NPS400 defines.
22277 (TARGET_ARC700): NPS400 is also an ARC700.
22278 * config/arc/arc.opt: Add NPS400 options to -mcpu=.
22280 2016-04-28 Segher Boessenkool <segher@kernel.crashing.org>
22283 * config/nds32/nds32.md (casesi): Don't access the operands array
22286 2016-04-28 Uros Bizjak <ubizjak@gmail.com>
22288 * config/i386/i386.md (zeroing peephole2): Use general_reg_operand.
22289 (or $-1,reg peephole2): Ditto.
22290 (strict_low_part zeroing peephole2): Use SWI12 mode iterator.
22292 2016-04-28 Markus Trippelsdorf <markus@trippelsdorf.de>
22294 * doc/extend.texi (Common Function Attributes) [optimize]:
22295 Discourage use of the optimize attribute.
22297 2016-04-28 Bill Seurer <seurer@linux.vnet.ibm.com>
22299 * config/rs6000/rs6000-builtin.def (vec_adde): Change vec_adde to a
22300 special case builtin.
22301 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove
22302 ALTIVEC_BUILTIN_VEC_ADDE.
22303 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
22304 support for ALTIVEC_BUILTIN_VEC_ADDE.
22305 * config/rs6000/rs6000.c (altivec_init_builtins): Add definition
22306 for __builtin_vec_adde.
22308 2016-04-28 Jakub Jelinek <jakub@redhat.com>
22310 * config/i386/i386.md (sse4_1_round<mode>2): Add avx512f alternative.
22311 * config/i386/sse.md (sse4_1_round<ssescalarmodesuffix>): Likewise.
22313 2016-04-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
22316 * doc/sourcebuild.texi (Effective-Target Keywords, Other
22317 attributes): Document cilkplus_runtime.
22319 2016-04-28 Martin Jambor <mjambor@suse.cz>
22321 * tree-cfg.c (verify_expr): Verify that local declarations belong to
22322 this function. Call verify_expr on MEM_REFs and bases of other
22323 handled_components.
22325 2016-04-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
22327 * internal-fn.c (expand_arith_overflow): Convert preprocessor check
22328 for WORD_REGISTER_OPERATIONS to runtime check.
22330 2016-04-28 Claudiu Zissulescu <claziss@synopsys.com>
22332 * config/arc/arc.h (ASM_SPEC): Pass mfpuda to assembler.
22334 2016-04-28 Claudiu Zissulescu <claziss@synopsys.com>
22336 * config/arc/arc.c (arc_process_double_reg_moves): Fix for
22337 big-endian compilation.
22338 * config/arc/arc.md (addf3): Likewise.
22339 (subdf3): Likewise.
22340 (muldf3): Likewise.
22342 2016-04-28 Richard Biener <rguenther@suse.de>
22344 PR tree-optimization/70840
22345 * match.pd: powi(-x, y) and powi(|x|,y) -> powi(x,y) if y is even;
22346 Fix pow(copysign(x, y), z) -> pow(x, z) and add powi variant;
22347 Mark x * pow(x,c) -> pow(x,c+1) commutative.
22348 Add powi(x,y) * powi(z,y) -> powi(x*z,y).
22350 2015-04-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
22352 * config/aarch64/aarch64.h (WORD_REGISTER_OPERATIONS): Define to 0
22353 and explain why in a comment.
22355 2016-04-28 Claudiu Zissulescu <claziss@synopsys.com>
22357 * config/arc/arc.md (cpu_facility): Add fpx variant.
22358 (subdf3): Prohibit use reverse sub when assist operations option
22360 * config/arc/fpx.md (subdf3_insn, *dsubh_peep2_insn): Allow drsub
22361 instructions only when FPX is enabled.
22362 * testsuite/gcc.target/arc/trsub.c: New test.
22364 2016-04-28 Uros Bizjak <ubizjak@gmail.com>
22366 * config/i386/i386.md (*fop_<mode>_1_mixed): Do not check for
22367 mult_operator when calculating "type" attribute.
22368 (*fop_<mode>_1_i387): Ditto.
22369 (*fop_xf_1_i387): Ditto.
22370 (x87 stack loads peephole2): Add "reg = op (mem, reg)" peephole2.
22371 Use std::swap to swap operands. Use RTL expressions to generate
22374 2016-04-28 Claudiu Zissulescu <claziss@synopsys.com>
22375 Joern Rennecke <joern.rennecke@embecosm.com>
22377 * config/arc/arc-protos.h (arc_legitimize_pic_address): Remove
22379 (emit_pic_move): Remove.
22380 (arc_eh_uses, insn_is_tls_gd_dispatch): Declare.
22381 * config/arc/arc.c (emit_pic_move): Removed.
22382 (TARGET_HAVE_TLS): Define.
22383 (arc_conditional_register_usage): Test for arc_tp_regno.
22384 (arc_print_operand, arc_print_operand_address): Handle TLS
22386 (arc_needs_pcl_p): New function.
22387 (arc_legitimate_pc_offset_p): Use arc_needs_pcl_p.
22388 (arc_legitimate_pic_addr_p): Handle TLS unspecs.
22389 (arc_raw_symbolic_reference_mentioned_p): Likewise.
22390 (arc_get_tp, arc_emit_call_tls_get_addr): New function.
22391 (arc_legitimize_tls_address): Likewise.
22392 (DTPOFF_ZERO_SYM): Define.
22393 (arc_legitimize_pic_address): Make it static, handle TLS cases.
22394 (arc_output_pic_addr_const): Print TLS unspecs.
22395 (prepare_pic_move): New function, replaces emit_pic_move.
22396 (arc_legitimate_constant_p): Handle TLS unspecs.
22397 (arc_legitimate_address_p): Likewise.
22398 (arc_rewrite_small_data_p): Use assert for TLS constants.
22399 (prepare_move_operands): Use prepare_pic_move.
22400 (arc_legitimize_address): Legitimize tls addresses.
22401 (arc_epilogue_uses): Check for arc_tp_regno.
22402 (arc_eh_uses, insn_is_tls_gd_dispatch): New function.
22403 * config/arc/arc.h [DEFAULT_LIBC != LIBC_UCLIBC] (EXTRA_SPECS):
22405 [DEFAULT_LIBC != LIBC_UCLIBC] (ARC_TLS_EXTRA_START_SPEC):
22407 [DEFAULT_LIBC != LIBC_UCLIBC] (STARTFILE_SPEC): Add
22408 %(arc_tls_extra_start_spec).
22409 (TARGET_CPU_CPP_BUILTINS): Define __ARC_TLS_REGNO__.
22410 (REGNO_OK_FOR_BASE_P): Check for arc_tp_regno.
22412 (INSN_REFERENCES_ARE_DELAYED): Use insn_is_tls_gd_dispatch.
22413 * config/arc/arc.md (UNSPEC_TLS_GD, UNSPEC_TLS_LD, UNSPEC_TLS_IE)
22414 (UNSPEC_TLS_OFF): Add.
22416 (tls_load_tp_soft, tls_gd_load, tls_gd_get_addr, tls_gd_dispatch)
22417 (get_thread_pointersi): New patterns.
22418 * config/arc/arc.opt (mtp-regno): New option.
22419 * config/arc/predicates.md (move_src_operand): Handle TLS symbols.
22420 (move_dest_operand): Likewise.
22421 * configure: Regenerate.
22422 * configure.ac: Add arc*-*-* case to test for tls.
22423 * doc/invoke.texi (ARC options): Document mtp-regno.
22425 2016-04-28 Claudiu Zissulescu <claziss@synopsys.com>
22427 * config/arc/arc.c (arc_vector_mode_supported_p): Add support for
22428 the new ARC HS SIMD instructions.
22429 (arc_preferred_simd_mode): New function.
22430 (arc_autovectorize_vector_sizes): Likewise.
22431 (TARGET_VECTORIZE_PREFERRED_SIMD_MODE)
22432 (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
22433 (arc_init_reg_tables): Accept new ARC HS SIMD modes.
22434 (arc_init_builtins): Add new SIMD builtin types.
22435 (arc_split_move): Handle 64 bit vector moves.
22436 * config/arc/arc.h (TARGET_PLUS_DMPY, TARGET_PLUS_MACD)
22437 (TARGET_PLUS_QMACW): Define.
22438 * config/arc/builtins.def (QMACH, QMACHU, QMPYH, QMPYHU, DMACH)
22439 (DMACHU, DMPYH, DMPYHU, DMACWH, DMACWHU, VMAC2H, VMAC2HU, VMPY2H)
22440 (VMPY2HU, VADDSUB2H, VSUBADD2H, VADDSUB, VSUBADD, VADDSUB4H)
22441 (VSUBADD4H): New builtins.
22442 * config/arc/simdext.md: Add new ARC HS SIMD instructions.
22443 * testsuite/gcc.target/arc/builtin_simdarc.c: New file.
22445 2016-04-28 Eduard Sanou <dhole@openmailbox.org>
22446 Matthias Klose <doko@debian.org>
22448 * doc/cppenv.texi: Document SOURCE_DATE_EPOCH environment variable.
22450 2016-04-28 Richard Biener <rguenther@suse.de>
22452 PR middle-end/70777
22453 * fold-const.c (fold_binary_loc): Remove x*x to pow(x,2.0)
22456 2016-04-28 Oleg Endo <olegendo@gcc.gnu.org>
22458 * common/config/sh/sh-common.c: Remove SH5 support.
22459 * config/sh/constraints.md: Likewise.
22460 * config/sh/config/sh/elf.h: Likewise.
22461 * config/sh/linux.h: Likewise.
22462 * config/sh/netbsd-elf.h: Likewise.
22463 * config/sh/predicates.md: Likewise.
22464 * config/sh/sh-c.c: Likewise.
22465 * config/sh/sh-protos.h: Likewise.
22466 * config/sh/sh.c: Likewise.
22467 * config/sh/sh.h: Likewise.
22468 * config/sh/sh.md: Likewise.
22469 * config/sh/sh.opt: Likewise.
22470 * config/sh/sync.md: Likewise.
22471 * config/sh/sh64.h: Delete.
22472 * config/sh/shmedia.h: Likewise.
22473 * config/sh/shmedia.md: Likewise.
22474 * config/sh/sshmedia.h: Likewise.
22475 * config/sh/t-netbsd-sh5-64: Likewise.
22476 * config/sh/t-sh64: Likewise.
22477 * config/sh/ushmedia.h: Likewise.
22479 2016-04-28 Uros Bizjak <ubizjak@gmail.com>
22481 * config/i386/i386.md (sign_extend to memory peephole2s): Use
22482 general_reg_operand instead of register_operand predicate.
22484 2016-04-27 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
22486 * params.def (MIN_PARTITION_SIZE): Set default value to 10000.
22488 2016-04-27 Marc Glisse <marc.glisse@inria.fr>
22490 * match.pd (A - B > A, A + B < A): New transformations.
22492 2016-04-27 Patrick Palka <ppalka@gcc.gnu.org>
22494 * genattrtab.c (write_test_expr): New parameter EMIT_PARENS
22495 which defaults to true. Emit an outer pair of parentheses only if
22496 EMIT_PARENS. When continuing a chain of && or || (or & or |),
22497 don't emit parentheses for the right-hand operand.
22499 2016-04-27 Jeff Law <law@redhat.com>
22501 * tree-ssa-dom.c (record_temporary_equivalences): Fix typo in comment.
22503 2016-04-27 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
22505 * config/rs6000/altivec.md (altivec_lvx_<mode>): Remove.
22506 (altivec_lvx_<mode>_internal): Document.
22507 (altivec_lvx_<mode>_2op): New define_insn.
22508 (altivec_lvx_<mode>_1op): Likewise.
22509 (altivec_lvx_<mode>_2op_si): Likewise.
22510 (altivec_lvx_<mode>_1op_si): Likewise.
22511 (altivec_stvx_<mode>): Remove.
22512 (altivec_stvx_<mode>_internal): Document.
22513 (altivec_stvx_<mode>_2op): New define_insn.
22514 (altivec_stvx_<mode>_1op): Likewise.
22515 (altivec_stvx_<mode>_2op_si): Likewise.
22516 (altivec_stvx_<mode>_1op_si): Likewise.
22517 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
22518 Expand vec_ld and vec_st during parsing.
22519 * config/rs6000/rs6000.c (altivec_expand_lvx_be): Commentary
22521 (altivec_expand_stvx_be): Likewise.
22522 (altivec_expand_lv_builtin): Expand lvx built-ins to expose the
22523 address-masking behavior in RTL.
22524 (altivec_expand_stv_builtin): Expand stvx built-ins to expose the
22525 address-masking behavior in RTL.
22526 (altivec_expand_builtin): Change builtin code arguments for calls
22527 to altivec_expand_stv_builtin and altivec_expand_lv_builtin.
22528 (insn_is_swappable_p): Avoid incorrect swap optimization in the
22529 presence of lvx/stvx patterns.
22530 (alignment_with_canonical_addr): New function.
22531 (alignment_mask): Likewise.
22532 (find_alignment_op): Likewise.
22533 (recombine_lvx_pattern): Likewise.
22534 (recombine_stvx_pattern): Likewise.
22535 (recombine_lvx_stvx_patterns): Likewise.
22536 (rs6000_analyze_swaps): Perform a pre-pass to recognize lvx and
22537 stvx patterns from expand.
22538 * config/rs6000/vector.md (vector_altivec_load_<mode>): Use new
22540 (vector_altivec_store_<mode>): Likewise.
22542 2016-04-26 Evandro Menezes <e.menezes@samsung.com>
22544 * config/aarch64/aarch64.md
22545 (*movhf_aarch64): Add "movi %0, #0" to zero up register and
22546 remove the "fp" attributes.
22547 (*movsf_aarch64): Add "movi %0, #0" to zero up register and
22548 add the "simd" attributes.
22549 (*movdf_aarch64): Likewise.
22550 (*movtf_aarch64): Remove the "fp" attributes.
22551 * testsuite/gcc.target/aarch64/fmovf-zero-reg.c: Update accordingly.
22552 * testsuite/gcc.target/aarch64/fmovd-zero-reg.c: Likewise.
22554 2016-04-27 David Malcolm <dmalcolm@redhat.com>
22556 * emit-rtl.c (maybe_set_first_label_num): Strengthen param from
22557 rtx to rtx_code_label *.
22558 * rtl.h (maybe_set_first_label_num): Likewise.
22560 2016-04-27 David Malcolm <dmalcolm@redhat.com>
22562 * df-core.c (df_add_problem): Make the problem param be const.
22563 (df_remove_problem): Make local "problem" be const.
22564 * df-problems.c (problem_RD): Make const.
22565 (problem_LR): Likewise.
22566 (problem_LIVE): Likewise.
22567 (problem_MIR): Likewise.
22568 (problem_CHAIN): Likewise.
22569 (problem_WORD_LR): Likewise.
22570 (problem_NOTE): Likewise.
22571 (problem_MD): Likewise.
22572 * df-scan.c (problem_SCAN): Likewise.
22573 * df.h (struct df_problem): Make field "dependent_problem" be
22575 (struct dataflow): Likewise for field "problem".
22576 (df_add_problem): Make param const.
22578 2016-04-27 Uros Bizjak <ubizjak@gmail.com>
22580 * config/i386/i386.c (ix86_spill_class): Enable for TARGET_SSE2 when
22581 inter-unit moves to/from vector registers are enabled. Do not disable
22584 2016-04-27 David Malcolm <dmalcolm@redhat.com>
22586 * df.h (DF_SCAN, DF_LR, DF_LIVE, DF_RD, DF_CHAIN, DF_WORD_LR,
22587 DF_NOTE, DF_MD, DF_MIR, DF_LAST_PROBLEM_PLUS1): Convert from
22589 (enum df_problem_id): ...this new enum.
22590 (struct df_problem): Convert field "id" from "int" to
22591 enum df_problem_id.
22593 2016-04-27 David Malcolm <dmalcolm@redhat.com>
22595 * rtl.def: Update comment for "things in the instruction chain" to
22596 reflect the removal of the leading "i" field for INSN_UID in
22597 r210360. Fix bogus apostrophe.
22599 2016-04-27 Uros Bizjak <ubizjak@gmail.com>
22601 * config/i386/i386.md
22602 (lea arith with mem operand + setcc peephole2): Set operator mode.
22604 2016-04-27 H.J. Lu <hongjiu.lu@intel.com>
22607 * config/i386/i386.c (scalar_to_vector_candidate_p): Renamed to ...
22608 (dimode_scalar_to_vector_candidate_p): This.
22609 (timode_scalar_to_vector_candidate_p): New function.
22610 (scalar_to_vector_candidate_p): Likewise.
22611 (timode_check_non_convertible_regs): Likewise.
22612 (timode_remove_non_convertible_regs): Likewise.
22613 (remove_non_convertible_regs): Likewise.
22614 (remove_non_convertible_regs): Renamed to ...
22615 (dimode_remove_non_convertible_regs): This.
22616 (scalar_chain::~scalar_chain): Make it virtual.
22617 (scalar_chain::compute_convert_gain): Make it pure virtual.
22618 (scalar_chain::mark_dual_mode_def): Likewise.
22619 (scalar_chain::convert_insn): Likewise.
22620 (scalar_chain::convert_registers): Likewise.
22621 (scalar_chain::add_to_queue): Make it protected.
22622 (scalar_chain::emit_conversion_insns): Likewise.
22623 (scalar_chain::replace_with_subreg): Likewise.
22624 (scalar_chain::replace_with_subreg_in_insn): Likewise.
22625 (scalar_chain::convert_op): Likewise.
22626 (scalar_chain::convert_reg): Likewise.
22627 (scalar_chain::make_vector_copies): Likewise.
22628 (scalar_chain::convert_registers): New pure virtual function.
22629 (class dimode_scalar_chain): New class.
22630 (class timode_scalar_chain): Likewise.
22631 (scalar_chain::mark_dual_mode_def): Renamed to ...
22632 (dimode_scalar_chain::mark_dual_mode_def): This.
22633 (timode_scalar_chain::mark_dual_mode_def): New function.
22634 (timode_scalar_chain::convert_insn): Likewise.
22635 (dimode_scalar_chain::convert_registers): Likewise.
22636 (scalar_chain::compute_convert_gain): Renamed to ...
22637 (dimode_scalar_chain::compute_convert_gain): This.
22638 (scalar_chain::replace_with_subreg): Renamed to ...
22639 (dimode_scalar_chain::replace_with_subreg): This.
22640 (scalar_chain::replace_with_subreg_in_insn): Renamed to ...
22641 (dimode_scalar_chain::replace_with_subreg_in_insn): This.
22642 (scalar_chain::make_vector_copies): Renamed to ...
22643 (dimode_scalar_chain::make_vector_copies): This.
22644 (scalar_chain::convert_reg): Renamed to ...
22645 (dimode_scalar_chain::convert_reg ): This.
22646 (scalar_chain::convert_op): Renamed to ...
22647 (dimode_scalar_chain::convert_op): This.
22648 (scalar_chain::convert_insn): Renamed to ...
22649 (dimode_scalar_chain::convert_insn): This.
22650 (scalar_chain::convert): Call convert_registers.
22651 (convert_scalars_to_vector): Change to scalar_chain pointer to
22652 use timode_scalar_chain in 64-bit mode and dimode_scalar_chain
22653 in 32-bit mode. Delete scalar_chain pointer. Call
22654 free_dominance_info in 64-bit mode.
22655 (pass_stv::gate): Remove TARGET_64BIT check.
22656 (ix86_option_override): Put the 64-bit STV pass before the CSE
22659 2016-04-27 Pierre-Marie de Rodat <derodat@adacore.com>
22661 * dwarf2out.h (struct dw_loc_descr_node): Remove the
22662 dw_loc_frame_offset field.
22663 * dwarf2out.c (new_loc_descr): Likewise.
22664 (resolve_args_picking_1): Turn the VISITED hash set into a
22665 FRAME_OFFSET hash map. Use it to associate a frame offset to
22666 visited nodes. Remove uses of the CHECKING_P macro.
22667 (resolve_args_picking): Update call to resolve_args_picking_1.
22669 2016-04-27 Martin Liska <mliska@suse.cz>
22671 * tree-ssa-loop-ivopts.c (iv_ca_dump): Fix level of indentation.
22672 (free_loop_data): Release vuses of groups.
22674 2016-04-27 Bin Cheng <bin.cheng@arm.com>
22676 * tree-ssa-loop-ivopts.c (struct iv): Use pointer to struct iv_use
22677 instead of redundant use_id and boolean have_use_for.
22678 (struct iv_use): Change sub_id into group_id. Remove field next.
22679 Move fields: related_cands, n_map_members, cost_map and selected
22681 (struct iv_group): ... here. New structure.
22682 (struct iv_common_cand): Use structure declaration directly.
22683 (struct ivopts_data, iv_ca, iv_ca_delta): Rename fields.
22684 (MAX_CONSIDERED_USES): Rename macro to ...
22685 (MAX_CONSIDERED_GROUPS): ... here.
22686 (n_iv_uses, iv_use, n_iv_cands, iv_cand): Delete.
22687 (dump_iv, dump_use, dump_cand): Refactor format of dump information.
22688 (dump_uses): Rename to ...
22689 (dump_groups): ... here. Update all uses.
22690 (tree_ssa_iv_optimize_init, alloc_iv): Update all uses.
22691 (find_induction_variables): Refactor format of dump information.
22692 (record_sub_use): Delete.
22693 (record_use): Update all uses.
22694 (record_group): New function.
22695 (record_group_use, find_interesting_uses_op): Call above functions.
22697 (find_interesting_uses_cond): Ditto.
22698 (group_compare_offset): New function.
22699 (split_all_small_groups): Rename to ...
22700 (split_small_address_groups_p): ... here. Update all uses.
22701 (split_address_groups): Update all uses.
22702 (find_interesting_uses): Refactor format of dump information.
22703 (add_candidate_1): Update all uses. Remove redundant check on iv,
22705 (add_candidate, record_common_cand): Remove redundant assert.
22706 (add_iv_candidate_for_biv): Update use.
22707 (add_iv_candidate_derived_from_uses): Update all uses.
22708 (add_iv_candidate_for_groups, record_important_candidates): Ditto.
22709 (alloc_use_cost_map): Ditto.
22710 (set_use_iv_cost, get_use_iv_cost): Rename to ...
22711 (set_group_iv_cost, get_group_iv_cost): ... here. Update all uses.
22712 (determine_use_iv_cost_generic): Ditto.
22713 (determine_group_iv_cost_generic): Ditto.
22714 (determine_use_iv_cost_address): Ditto.
22715 (determine_group_iv_cost_address): Ditto.
22716 (determine_use_iv_cost_condition): Ditto.
22717 (determine_group_iv_cost_cond): Ditto.
22718 (determine_use_iv_cost): Ditto.
22719 (determine_group_iv_cost): Ditto.
22720 (set_autoinc_for_original_candidates): Update all uses.
22721 (find_iv_candidates): Update all uses. Refactor dump information.
22722 (determine_use_iv_costs): Ditto.
22723 (determine_iv_costs): Ditto.
22724 (iv_ca_cand_for_use): Rename to ...
22725 (iv_ca_cand_for_group): ... here. Update all uses.
22726 (iv_ca_add_use, iv_ca_add_group): Ditto.
22727 (iv_ca_set_cp, iv_ca_cost, iv_ca_delta_add): Update all uses.
22728 (iv_ca_delta_join, iv_ca_delta_reverse, iv_ca_delta_free): Ditto.
22729 (iv_ca_new, iv_ca_dump, iv_ca_extend, iv_ca_narrow): Ditto.
22730 (iv_ca_prune, cheaper_cost_with_cand, iv_ca_replace): Ditto.
22731 (try_add_cand_for, try_improve_iv_set, find_optimal_iv_set): Ditto.
22732 (create_new_iv, adjust_iv_update_pos): Ditto.
22733 (rewrite_use_address): Delete.
22734 (rewrite_use_address_1): Rename to ...
22735 (rewrite_use_address): ... here.
22736 (rewrite_use_compare): Update all uses.
22737 (rewrite_use): Delete.
22738 (rewrite_uses): Rename to ...
22739 (rewrite_groups): ... here. Update all uses.
22740 (remove_unused_ivs, free_loop_data): Update all uses.
22741 (tree_ssa_iv_optimize_finalize, tree_ssa_iv_optimize_loop): Ditto.
22743 2016-04-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
22745 * rtlanal.c (nonzero_bits1): Convert preprocessor check
22746 for WORD_REGISTER_OPERATIONS to runtime check.
22748 2016-04-27 Richard Biener <rguenther@suse.de>
22751 * tree-ssa-structalias.c (find_func_aliases_for_call): Use
22752 aggregate_value_p to determine if a function result is
22753 returned by reference.
22754 (ipa_pta_execute): Functions having their address taken are
22755 not automatically nonlocal.
22757 2016-04-27 Jakub Jelinek <jakub@redhat.com>
22760 * tree-core.h (enum operand_equal_flag): Add OEP_NO_HASH_CHECK.
22761 * fold-const.c (operand_equal_p): If flag_checking and
22762 OEP_NO_HASH_CHECK is not set in flag, recurse with OEP_NO_HASH_CHECK
22763 and if it returns non-zero, assert iterative_hash_expr on both
22766 2016-04-27 Bernd Schmidt <bschmidt@redhat.com>
22768 * doc/invoke.texi (-frename-registers): Also enabled at -Os.
22770 2016-04-27 Nick Clifton <nickc@redhat.com>
22772 PR middle-end/49889
22773 * varasm.c (merge_weak): Generate an error if an attempt is made
22774 to convert a non-weak static function into a weak, public function.
22776 2016-04-27 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
22778 * params.def (MAX_PARTITION_SIZE): New param.
22779 * doc/invoke.texi: Document lto-max-partition.
22781 2016-04-27 Richard Biener <rguenther@suse.de>
22784 * tree-ssa-structalias.c (refered_from_nonlocal_fn): New
22785 function cummulating used_from_other_partition, externally_visible
22786 and force_output from aliases.
22787 (refered_from_nonlocal_var): Likewise.
22788 (ipa_pta_execute): Use call_for_symbol_and_aliases to cummulate
22789 node flags properly.
22791 2016-04-27 Bernd Schmidt <bschmidt@redhat.com>
22793 * doc/invoke.texi (Warning Options): Add -Wmemset-elt-size.
22794 (-Wmemset-elt-size): New item.
22796 2016-04-27 Eric Botcazou <ebotcazou@adacore.com>
22799 * stor-layout.h (internal_reference_types): Delete.
22800 * stor-layout.c (reference_types_internal): Likewise.
22801 (internal_reference_types): Likewise.
22802 (layout_type) <REFERENCE_TYPE>: Adjust.
22804 2016-04-27 Jakub Jelinek <jakub@redhat.com>
22807 * tree.h (inchash::add_expr): Add FLAGS argument.
22808 * tree.c (inchash::add_expr): Likewise. If not OEP_ADDRESS_OF,
22809 use STRIP_NOPS first. For INTEGER_CST assert not OEP_ADDRESS_OF.
22810 For REAL_CST and !HONOR_SIGNED_ZEROS (t) hash +/- 0 the same.
22811 Formatting fix. Adjust recursive calls. For tcc_comparison,
22812 if swap_tree_comparison (code) is smaller than code, hash that
22813 and arguments in the other order. Hash CONVERT_EXPR the same
22814 as NOP_EXPR. For OEP_ADDRESS_OF hash MEM_REF with 0 offset
22815 of ADDR_EXPR of decl as the decl itself. Add or remove
22816 OEP_ADDRESS_OF from recursive flags as needed. For
22817 FMA_EXPR, WIDEN_MULT_{PLUS,MINUS}_EXPR hash the first two
22818 operands commutatively and only the third one normally.
22819 For internal CALL_EXPR hash in CALL_EXPR_IFN.
22821 2016-04-27 Sebastian Huber <sebastian.huber@embedded-brains.de>
22823 * config/rtems.h (LIB_SPEC): Add -latomic.
22825 2016-04-27 Joel Sherrill <joel@rtems.org>
22827 * config/microblaze/rtems.h: Redefine LINK_SPEC to avoid
22828 xilink.ld and flags not relevant to RTEMS.
22830 2016-04-26 Zhouyi Zhou <yizhouzhou@ict.ac.cn>
22832 * toplev.c (backend_init_target): Avoid calling init_reload when using
22835 2016-04-26 Jakub Jelinek <jakub@redhat.com>
22837 * reorg.c (try_merge_delay_insns): Declare i and j inside the
22838 for loops rather than one for the whole function.
22840 2016-04-26 Marc Glisse <marc.glisse@inria.fr>
22842 * match.pd (X + CST CMP X): New transformation.
22844 2016-04-26 Marc Glisse <marc.glisse@inria.fr>
22846 * genmatch.c (write_predicate): Add ATTRIBUTE_UNUSED.
22847 * fold-const.c (fold_binary_loc): Remove 2 transformations
22848 superseded by match.pd.
22849 * match.pd (x+x -> x*2): Generalize to integers.
22851 2016-04-26 Bernd Schmidt <bschmidt@redhat.com>
22853 * config/i386/i386.md (operation on memory peephole): Duplicate an
22854 existing peephole and adapt it to match lea rather than an operation
22857 PR rtl-optimization/57193
22858 * opts.c (default_options_table): Add OPT_frename_registers at -O2
22860 * doc/invoke.texi (-frename-registers, -O2): Update documentation.
22862 2016-04-26 Bin Cheng <bin.cheng@arm.com>
22864 * tree-if-conv.c (any_pred_load_store): New static variable.
22865 (if_convertible_gimple_assign_stmt_p): Remove parameter. Use
22866 any_pred_load_store instead of and_mask_load_store.
22867 (if_convertible_stmt_p, if_convertible_loop_p_1): Ditto.
22868 (if_convertible_loop_p, insert_gimplified_predicates): Ditto.
22869 (combine_blocks, tree_if_conversion): Ditto.
22871 2016-04-26 Bin Cheng <bin.cheng@arm.com>
22873 PR tree-optimization/70771
22874 PR tree-optimization/70775
22875 * tree-if-conv.c (if_convertible_phi_p): Remove check on special
22876 virtual PHI nodes. Delete parameter.
22877 (if_convertible_loop_p_1): Delete argument to above function.
22878 (predicate_all_scalar_phis): Delete code handling single-argument
22880 (tree_if_conversion): Mark and update virtual SSA.
22882 2016-04-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
22885 * config/i386/i386.c (LARGECOMM_SECTION_ASM_OP): Define default.
22886 (x86_elf_aligned_common): Rename to ...
22887 (x86_elf_aligned_decl_common): ... this.
22888 Add decl arg. Switch to .lbss for largecomm object. Use
22889 LARGECOMM_SECTION_ASM_OP.
22890 * config/i386/i386-protos.h (x86_elf_aligned_common): Reflect
22892 * config/i386/x86-64.h (ASM_OUTPUT_ALIGNED_COMMON): Rename to ...
22893 (ASM_OUTPUT_ALIGNED_DECL_COMMON): ... this.
22895 * config/i386/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
22896 [!USE_GAS] (LARGECOMM_SECTION_ASM_OP): Define.
22898 2016-04-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
22901 * config/i386/i386.c (SECTION_LARGE): Define.
22902 (x86_64_elf_select_section): Set it for large data/bss sections.
22903 Only clear SECTION_WRITE for .lrodata.
22904 (x86_64_elf_section_type_flags): Set SECTION_LARGE for large
22906 * config/i386/sol2.h (MACH_DEP_SECTION_ASM_FLAG): Define.
22907 * varasm.c (default_elf_asm_named_section): Grow flagchars.
22908 [MACH_DEP_SECTION_ASM_FLAG] Emit MACH_DEP_SECTION_ASM_FLAG for
22910 * doc/tm.texi.in (Sections, MACH_DEP_SECTION_ASM_FLAG): Describe.
22911 * doc/tm.texi: Regenerate.
22913 2016-04-26 Jakub Jelinek <jakub@redhat.com>
22916 * configure.ac (--enable-checking): Document extra flag, for
22917 non-release builds default to --enable-checking=yes,extra.
22918 If misc checking and extra checking, define CHECKING_P to 2 instead
22920 * common.opt (fchecking=): Add.
22921 * doc/invoke.texi (-fchecking=): Document.
22922 * doc/install.texi: Document --enable-checking changes.
22923 * configure: Regenerated.
22924 * config.in: Regenerated.
22926 2016-04-25 Uros Bizjak <ubizjak@gmail.com>
22928 * config/i386/i386.md (*movxi_internal_avx512f): Use insn type
22929 attribute instead of which_alternative.
22930 * config/i386/sse.md (*mov<mode>_internal): Ditto.
22931 Use EXT_REX_SSE_REG_P where appropriate.
22933 2016-04-25 Uros Bizjak <ubizjak@gmail.com>
22935 * config/i386/predicates.md (const0_operand): Do not match
22936 const_wide_int code.
22937 (const1_operand): Ditto.
22939 2016-04-25 Uros Bizjak <ubizjak@gmail.com>
22941 * config/i386/i386.md (*movoi_internal_avx): Set mode attribute to XI
22942 for SSE constm1 operands and TARGET_AVX512VL.
22943 (*movti_internal): Ditto.
22944 (*mov<mode>_or): Use constm1_operand predicate.
22945 * config/i386/sse.md (*mov<mode>_internal): Set mode attribute to XI
22946 for SSE vector_all_ones operands and TARGET_AVX512VL.
22947 * config/i386/predicates.md (constm1_operand): New predicate.
22948 * config/i386/i386.c (standard_sse_constant_opcode): Simplify
22949 emission of constant -1 load.
22951 2016-04-25 Jason Merrill <jason@redhat.com>
22953 * gdbinit.in: Skip is-a.h.
22955 * attribs.c (register_scoped_attributes): Fix logic.
22956 * attribs.h: Declare register_scoped_attributes.
22958 2016-04-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
22960 * config/rs6000/rs6000-builtin.def: Correct pasto error for
22961 stxvd2x and stxvw4x built-in functions.
22963 2016-04-25 DJ Delorie <dj@redhat.com>
22965 * config/msp430/msp430.md (ashlhi3): Optimize one bit shifts.
22966 (ashrhi3): Likewise.
22967 (lshrhi3): Likewise.
22969 2016-04-25 Richard Biener <rguenther@suse.de>
22971 PR tree-optimization/70780
22972 * tree-ssa-pre.c (compute_antic_aux): Also return true if the block
22973 wasn't visited yet.
22974 (compute_antic): Mark blocks with abnormal preds as visited as
22975 they have a final empty antic-in solution already.
22977 2016-04-25 Michael Collison <michael.collison@linaro.org>
22979 * ChangeLog(2016-04-25): Fix ChangeLog formatting.
22981 2016-04-25 Michael Collison <michael.collison@linaro.org>
22983 * config/arm/neon.md (widen_<us>sum<mode>): New patterns where
22984 mode is VQI to improve mixed mode vectorization.
22985 * config/arm/neon.md (vec_sel_widen_ssum_lo<VQI:mode><VW:mode>3): New
22986 define_insn to match low half of signed vaddw.
22987 * config/arm/neon.md (vec_sel_widen_ssum_hi<VQI:mode><VW:mode>3): New
22988 define_insn to match high half of signed vaddw.
22989 * config/arm/neon.md (vec_sel_widen_usum_lo<VQI:mode><VW:mode>3): New
22990 define_insn to match low half of unsigned vaddw.
22991 * config/arm/neon.md (vec_sel_widen_usum_hi<VQI:mode><VW:mode>3): New
22992 define_insn to match high half of unsigned vaddw.
22993 * config/arm/arm.c (arm_simd_vect_par_cnst_half): New function.
22994 (arm_simd_check_vect_par_cnst_half_p): Likewise.
22995 * config/arm/arm-protos.h (arm_simd_vect_par_cnst_half): Prototype
22997 (arm_simd_check_vect_par_cnst_half_p): Likewise.
22998 * config/arm/predicates.md (vect_par_constant_high): Support
22999 big endian and simplify by calling
23000 arm_simd_check_vect_par_cnst_half
23001 (vect_par_constant_low): Likewise.
23003 2016-04-25 Uros Bizjak <ubizjak@gmail.com>
23005 * config/i386/i386.md (*lea<mode>_general_4): Use const_0_to_3_operand
23006 predicate for operand 2.
23008 2016-04-24 Uros Bizjak <ubizjak@gmail.com>
23009 H.J. Lu <hongjiu.lu@intel.com>
23011 * config/i386/i386-protos.h (standard_sse_constant_p): Add
23012 machine_mode argument.
23013 * config/i386/i386.c (standard_sse_constant_p): Return 2 for
23014 constm1_rtx operands. For VOIDmode constants, get mode from
23015 pred_mode. Check mode size if the mode is supported by ABI.
23016 (standard_sse_constant_opcode): Do not use standard_constant_p.
23017 Strictly check ABI support for all-ones operands.
23018 (ix86_legitimate_constant_p): Handle TImode, OImode and XImode
23019 immediates. Update calls to standard_sse_constant_p.
23020 (ix86_expand_vector_move): Update calls to standard_sse_constant_p.
23021 (ix86_rtx_costs): Ditto.
23022 * config/i386/i386.md (*movxi_internal_avx512f): Use
23023 nonimmediate_or_sse_const_operand instead of vector_move_operand.
23024 Use (v,BC) alternative instead of (v,C). Use register_operand
23025 checks instead of MEM_P.
23026 (*movoi_internal_avx): Use nonimmediate_or_sse_const_operand instead
23027 of vector_move_operand. Add (v,BC) alternative and corresponding avx2
23028 isa attribute. Use register_operand checks instead of MEM_P.
23029 (*movti_internal): Use nonimmediate_or_sse_const_operand for
23030 TARGET_SSE. Improve TARGET_SSE insn constraint. Add (v,BC)
23031 alternative and corresponding sse2 isa attribute.
23032 (*movtf_internal, *movdf_internal, *movsf_interal): Update calls
23033 to standard_sse_constant_p.
23034 (FP constant splitters): Ditto.
23035 * config/i386/constraints.md (BC): Do not use standard_sse_constant_p.
23037 * config/i386/predicates.md (constm1_operand): Remove.
23038 (nonimmediate_or_sse_const_operand): Rewrite using RTX.
23039 * config/i386/sse.md (*<avx512>_cvtmask2<ssemodesuffix><mode>): Use
23040 vector_all_ones_operand instead of constm1_operand.
23042 2016-04-24 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
23044 * print-rtl.c (print_rtx_insn_vec): New function.
23045 * print-rtl.h: New prototype.
23046 * store-motion.c (struct st_expr): Make avail_stores a vector.
23047 (st_expr_entry): Adjust.
23048 (free_st_expr_entry): Likewise.
23049 (print_store_motion_mems): Likewise.
23050 (find_moveable_store): Likewise.
23051 (compute_store_table): Likewise.
23052 (delete_store): Likewise.
23053 (build_store_vectors): Likewise.
23055 2016-04-24 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
23057 * reorg.c (try_merge_delay_insns): Make merged_insns a vector.
23059 2016-04-24 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
23061 * vec.h (vec_safe_contains): New function.
23062 (vec::contains): Likewise.
23063 (vec::begin): Likewise.
23064 (vec::end): Likewise.
23066 2016-04-23 Jakub Jelinek <jakub@redhat.com>
23069 * cfgexpand.c (expand_stack_vars): Fix typo.
23071 2016-04-22 Szabolcs Nagy <szabolcs.nagy@arm.com>
23073 * system.h (list, map, set, vector): Include conditionally.
23074 * auto-profile.c (INCLUDE_MAP, INCLUDE_SET): Define.
23075 * graphite-isl-ast-to-gimple.c (INCLUDE_MAP): Define.
23076 * ipa-icf.c (INCLUDE_LIST): Define.
23077 * config/aarch64/cortex-a57-fma-steering.c (INCLUDE_LIST): Define.
23078 * config/sh/sh.c (INCLUDE_VECTOR): Define.
23079 * config/sh/sh_treg_combine.cc (INCLUDE_ALGORITHM): Define.
23080 (INCLUDE_LIST, INCLUDE_VECTOR): Define.
23081 * cp/logic.cc (INCLUDE_LIST): Define.
23082 * fortran/trans-common.c (INCLUDE_MAP): Define.
23084 2016-04-22 Szabolcs Nagy <szabolcs.nagy@arm.com>
23086 * auto-profile.c: Remove <string.h> include.
23087 * ipa-icf-gimple.c: Remove <list> include.
23088 * diagnostic.c: Remove <new> include.
23089 * genmatch.c: Likewise.
23090 * pretty-print.c: Likewise.
23091 * toplev.c: Likewise
23092 * c/c-objc-common.c: Likewise.
23093 * cp/error.c: Likewise.
23094 * fortran/error.c: Likewise.
23096 2016-04-22 Richard Biener <rguenther@suse.de>
23098 * lto-streamer-in.c (input_ssa_names): Do not allocate
23099 GIMPLE_NOP for all SSA names.
23100 * lto-streamer-out.c (output_ssa_names): Do not output
23101 SSA names that should have been released.
23103 2016-04-22 Richard Biener <rguenther@suse.de>
23105 PR tree-optimization/70740
23106 * tree-ssa-phiprop.c (propagate_with_phi): Handle inserted
23109 2016-04-21 H.J. Lu <hongjiu.lu@intel.com>
23112 * config/i386/predicates.md (call_insn_operand): Replace
23113 sibcall_memory_operand with memory_operand.
23115 2016-04-21 Patrick Palka <ppalka@gcc.gnu.org>
23117 * tree-vrp.c (register_edge_assert_for_2): Remove redundant
23118 has_single_use() tests.
23119 (register_edge_assert_for_1): Likewise.
23120 (find_assert_locations_1): Check the liveness bitmap instead of
23121 checking has_single_use().
23123 2016-04-21 Kirill Yukhin <kirill.yukhin@intel.com>
23126 * config/i386/sse.md (define_insn "<shift_insn><mode>3<mask_name>"):
23127 Extract AVX-512BW constraint from AVX.
23129 2016-04-21 Richard Biener <rguenther@suse.de>
23131 PR tree-optimization/70725
23132 * tree-if-conv.c (if_convertible_phi_p): Adjust guard
23133 for phi_convertible_by_degenerating_args.
23134 (predicate_all_scalar_phis): Handle single-argument PHIs.
23136 2016-04-21 Richard Biener <rguenther@suse.de>
23138 PR middle-end/70747
23139 * fold-const.c (fold_comparison): Return properly typed
23142 2016-04-21 Bin Cheng <bin.cheng@arm.com>
23144 PR tree-optimization/70715
23145 * tree-ssa-loop-niter.c (loop_exits_before_overflow): Check equality
23146 after expanding BASE using expand_simple_operations.
23148 2016-04-21 Marc Glisse <marc.glisse@inria.fr>
23150 * match.pd (min(-x, -y), max(-x, -y), min(~x, ~y), max(~x, ~y)):
23151 New transformations.
23153 2016-04-21 Marc Glisse <marc.glisse@inria.fr>
23155 * match.pd (min(int_max, x), max(int_min, x)): New transformations.
23157 2016-04-20 Jan Hubicka <jh@suse.cz>
23159 * ipa-inline.c (can_inline_edge_p): Pass caller info to
23160 ultiimate_alias_target.
23161 (update_callee_keys): Likewise.
23162 (lookup_recursive_calls): Likewise.
23163 (speculation_useful_p): Likewise.
23165 2016-04-20 Jan Hubicka <jh@suse.cz>
23168 * cgraph.c (cgraph_set_nothrow_flag_1): Rename to ...
23169 (set_nothrow_flag_1): ... this; handle interposition correctly;
23170 recurse on aliases and thunks.
23171 (cgraph_node::set_nothrow_flag): New.
23172 * ipa-pure-const.c (ignore_edge_for_nothrow): Ignore calls to
23173 functions compiled with non-call exceptions that binds to current
23175 (propagate_nothrow): Be safe WRT interposition.
23176 * cgraph.h (set_nothrow_flag): Update prototype.
23178 2016-04-18 Jan Hubicka <jh@suse.cz>
23180 * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also
23181 max_loop_iterations_int.
23182 (tree_unswitch_outer_loop): Likewise.
23184 2016-04-20 Bin Cheng <bin.cheng@arm.com>
23186 PR tree-optimization/69489
23187 * tree-if-conv.c (phi_convertible_by_degenerating_args): New.
23188 (if_convertible_phi_p): Call phi_convertible_by_degenerating_args.
23189 Revise dump message.
23190 (if_convertible_bb_p): Remove check on edge count of basic block's
23193 2016-04-20 Bin Cheng <bin.cheng@arm.com>
23195 PR tree-optimization/56625
23196 PR tree-optimization/69489
23197 * tree-data-ref.h (DR_INNERMOST): New macro.
23198 * tree-if-conv.c (innermost_loop_behavior_hash): New class for
23199 hashing struct innermost_loop_behavior.
23200 (ref_DR_map): Remove.
23201 (innermost_DR_map): New map.
23202 (baseref_DR_map): Revise comment.
23203 (hash_memrefs_baserefs_and_store_DRs_read_written_info): Store DR
23204 to innermost_DR_map accroding to its innermost loop behavior.
23205 (ifcvt_memrefs_wont_trap): Get DR from innermost_DR_map according
23206 to its innermost loop behavior.
23207 (if_convertible_loop_p_1): Remove intialization for ref_DR_map.
23208 Add initialization for innermost_DR_map. Record memory reference
23209 in DR_BASE_ADDRESS if the reference is compound one or it doesn't
23210 have innermost loop behavior.
23211 (if_convertible_loop_p): Remove release for ref_DR_map. Release
23214 2016-04-20 Uros Bizjak <ubizjak@gmail.com>
23216 * config/i386/i386.md (*lea<mode>_general_1): Rename from
23217 *lea_general_1. Use explicit SWI12 mode interator.
23218 (*lea<mode>_general_2): Rename from *lea_general_2.
23219 Use explicit SWI12 mode interator.
23220 (*lea<mode>_general_3): Rename from *lea_general_3.
23221 Use explicit SWI12 mode interator.
23222 (*lea<SWI12:mode>_general_4): Split from *lea_general_4.
23223 Use explicit SWI12 mode interator.
23224 (*lea<SWI48:mode>_general_4): Split from *lea_general_4.
23225 Use explicit SWI48 mode interator.
23227 2016-04-20 H.J. Lu <hongjiu.lu@intel.com>
23229 * config/i386/i386.c (ix86_avx256_split_vector_move_misalign):
23230 Short-cut unaligned load and store cases. Handle all integer
23232 (ix86_expand_vector_move_misalign): Short-cut unaligned load
23233 and store cases. Call ix86_avx256_split_vector_move_misalign
23234 directly without checking mode class.
23236 2016-04-20 Andrew Pinski <apinski@cavium.com>
23237 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
23240 * config/aarch64/aarch64.md (sibcall): Force call
23241 address to be DImode for ILP32.
23242 (sibcall_value): Likewise.
23244 2016-04-20 H.J. Lu <hongjiu.lu@intel.com>
23246 * doc/invoke.texi: Replace -skip-rax-setup with -mskip-rax-setup.
23248 2016-04-20 Richard Biener <rguenther@suse.de>
23250 * gimple-match.h (maybe_build_generic_op): Adjust prototype.
23251 * gimple-match-head.c (maybe_build_generic_op): Pass all ops
23252 by reference, clear op1 and op2 when GENERICizing BIT_FIELD_REF.
23253 (maybe_push_res_to_seq): Adjust.
23254 * gimple-fold.c (maybe_build_generic_op): Likewise.
23256 2016-04-20 Marek Polacek <polacek@redhat.com>
23258 * tree-if-conv.c (is_false_predicate): For NULL_TREE return false
23261 2016-04-20 Ilya Enkovich <ilya.enkovich@intel.com>
23263 * config/i386/sse.md (vec_unpacks_lo_hi): Always
23264 use kmovw to support AVX512F target.
23266 2016-04-20 Bin Cheng <bin.cheng@arm.com>
23268 * tree-scalar-evolution.c (interpret_rhs_expr): Handle BIT_AND_EXPR.
23270 2016-04-20 Marek Polacek <polacek@redhat.com>
23272 PR tree-optimization/70725
23273 * tree-if-conv.c (is_false_predicate): New function.
23274 (predicate_mem_writes): Use it.
23276 2016-04-20 Richard Biener <rguenther@suse.de>
23278 PR tree-optimization/70726
23279 * tree-vect-stmts.c (vectorizable_shift): Do not use scalar
23280 shift amounts from a pattern stmt operand.
23282 2016-04-20 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
23285 * config/s390/s390.c (s390_restore_gprs_from_fprs): Pick the new
23286 stack_restore_from_fpr pattern when restoring r15.
23287 (s390_optimize_prologue): Strip away the memory barrier in the
23288 parallel when trying to get rid of restore insns.
23289 * config/s390/s390.md ("stack_restore_from_fpr"): New insn
23290 definition for loading the stack pointer from an FPR. Compared to
23291 the normal move insn this pattern includes a full memory barrier.
23293 2016-04-19 Jakub Jelinek <jakub@redhat.com>
23295 PR middle-end/70680
23296 * gimplify.c (gimplify_omp_for): Call omp_notice_variable for
23297 implicitly linear or lastprivate iterator on the outer context.
23299 2016-04-19 H.J. Lu <hongjiu.lu@intel.com>
23301 * config/i386/i386.c (ix86_legitimate_combined_insn): Remove
23303 * config/i386/i386.md (ssememalign): Removed.
23304 * config/i386/sse.md: Remove ssememalign attribute from patterns.
23306 2016-04-19 H.J. Lu <hongjiu.lu@intel.com>
23309 * config/i386/avx512bwintrin.h (_mm512_mask_loadu_epi16): Pass
23310 const short * to __builtin_ia32_loaddquhi512_mask.
23311 (_mm512_maskz_loadu_epi16): Likewise.
23312 (_mm512_mask_storeu_epi16): Pass short * to
23313 __builtin_ia32_storedquhi512_mask.
23314 (_mm512_mask_loadu_epi8): Pass const char * to
23315 __builtin_ia32_loaddquqi512_mask.
23316 (_mm512_maskz_loadu_epi8): Likewise.
23317 (_mm512_mask_storeu_epi8): Pass char * to
23318 __builtin_ia32_storedquqi512_mask.
23319 * config/i386/avx512fintrin.h (_mm512_loadu_pd): Pass
23320 const double * to __builtin_ia32_loadupd512_mask.
23321 (_mm512_mask_loadu_pd): Likewise.
23322 (_mm512_maskz_loadu_pd): Likewise.
23323 (_mm512_storeu_pd): Pass double * to
23324 __builtin_ia32_storeupd512_mask.
23325 (_mm512_mask_storeu_pd): Likewise.
23326 (_mm512_loadu_ps): Pass const float * to
23327 __builtin_ia32_loadups512_mask.
23328 (_mm512_mask_loadu_ps): Likewise.
23329 (_mm512_maskz_loadu_ps): Likewise.
23330 (_mm512_storeu_ps): Pass float * to
23331 __builtin_ia32_storeups512_mask.
23332 (_mm512_mask_storeu_ps): Likewise.
23333 (_mm512_mask_loadu_epi64): Pass const long long * to
23334 __builtin_ia32_loaddqudi512_mask.
23335 (_mm512_maskz_loadu_epi64): Likewise.
23336 (_mm512_mask_storeu_epi64): Pass long long *
23337 to __builtin_ia32_storedqudi512_mask.
23338 (_mm512_loadu_si512): Pass const int * to
23339 __builtin_ia32_loaddqusi512_mask.
23340 (_mm512_mask_loadu_epi32): Likewise.
23341 (_mm512_maskz_loadu_epi32): Likewise.
23342 (_mm512_storeu_si512): Pass int * to
23343 __builtin_ia32_storedqusi512_mask.
23344 (_mm512_mask_storeu_epi32): Likewise.
23345 * config/i386/avx512vlbwintrin.h (_mm256_mask_storeu_epi8): Pass
23346 char * to __builtin_ia32_storedquqi256_mask.
23347 (_mm_mask_storeu_epi8): Likewise.
23348 (_mm256_mask_loadu_epi16): Pass const short * to
23349 __builtin_ia32_loaddquhi256_mask.
23350 (_mm256_maskz_loadu_epi16): Likewise.
23351 (_mm_mask_loadu_epi16): Pass const short * to
23352 __builtin_ia32_loaddquhi128_mask.
23353 (_mm_maskz_loadu_epi16): Likewise.
23354 (_mm256_mask_loadu_epi8): Pass const char * to
23355 __builtin_ia32_loaddquqi256_mask.
23356 (_mm256_maskz_loadu_epi8): Likewise.
23357 (_mm_mask_loadu_epi8): Pass const char * to
23358 __builtin_ia32_loaddquqi128_mask.
23359 (_mm_maskz_loadu_epi8): Likewise.
23360 (_mm256_mask_storeu_epi16): Pass short * to.
23361 __builtin_ia32_storedquhi256_mask.
23362 (_mm_mask_storeu_epi16): Pass short * to.
23363 __builtin_ia32_storedquhi128_mask.
23364 * config/i386/avx512vlintrin.h (_mm256_mask_loadu_pd): Pass
23365 const double * to __builtin_ia32_loadupd256_mask.
23366 (_mm256_maskz_loadu_pd): Likewise.
23367 (_mm_mask_loadu_pd): Pass onst double * to
23368 __builtin_ia32_loadupd128_mask.
23369 (_mm_maskz_loadu_pd): Likewise.
23370 (_mm256_mask_storeu_pd): Pass double * to
23371 __builtin_ia32_storeupd256_mask.
23372 (_mm_mask_storeu_pd): Pass double * to
23373 __builtin_ia32_storeupd128_mask.
23374 (_mm256_mask_loadu_ps): Pass const float * to
23375 __builtin_ia32_loadups256_mask.
23376 (_mm256_maskz_loadu_ps): Likewise.
23377 (_mm_mask_loadu_ps): Pass const float * to
23378 __builtin_ia32_loadups128_mask.
23379 (_mm_maskz_loadu_ps): Likewise.
23380 (_mm256_mask_storeu_ps): Pass float * to
23381 __builtin_ia32_storeups256_mask.
23382 (_mm_mask_storeu_ps): ass float * to
23383 __builtin_ia32_storeups128_mask.
23384 (_mm256_mask_loadu_epi64): Pass const long long * to
23385 __builtin_ia32_loaddqudi256_mask.
23386 (_mm256_maskz_loadu_epi64): Likewise.
23387 (_mm_mask_loadu_epi64): Pass const long long * to
23388 __builtin_ia32_loaddqudi128_mask.
23389 (_mm_maskz_loadu_epi64): Likewise.
23390 (_mm256_mask_storeu_epi64): Pass long long * to
23391 __builtin_ia32_storedqudi256_mask.
23392 (_mm_mask_storeu_epi64): Pass long long * to
23393 __builtin_ia32_storedqudi128_mask.
23394 (_mm256_mask_loadu_epi32): Pass const int * to
23395 __builtin_ia32_loaddqusi256_mask.
23396 (_mm256_maskz_loadu_epi32): Likewise.
23397 (_mm_mask_loadu_epi32): Pass const int * to
23398 __builtin_ia32_loaddqusi128_mask.
23399 (_mm_maskz_loadu_epi32): Likewise.
23400 (_mm256_mask_storeu_epi32): Pass int * to
23401 __builtin_ia32_storedqusi256_mask.
23402 (_mm_mask_storeu_epi32): Pass int * to
23403 __builtin_ia32_storedqusi128_mask.
23404 * config/i386/i386-builtin-types.def (PCSHORT): New.
23405 (PINT64): Likewise.
23406 (V64QI_FTYPE_PCCHAR_V64QI_UDI): Likewise.
23407 (V32HI_FTYPE_PCSHORT_V32HI_USI): Likewise.
23408 (V32QI_FTYPE_PCCHAR_V32QI_USI): Likewise.
23409 (V16SF_FTYPE_PCFLOAT_V16SF_UHI): Likewise.
23410 (V8DF_FTYPE_PCDOUBLE_V8DF_UQI): Likewise.
23411 (V16SI_FTYPE_PCINT_V16SI_UHI): Likewise.
23412 (V16HI_FTYPE_PCSHORT_V16HI_UHI): Likewise.
23413 (V16QI_FTYPE_PCCHAR_V16QI_UHI): Likewise.
23414 (V8SF_FTYPE_PCFLOAT_V8SF_UQI): Likewise.
23415 (V8DI_FTYPE_PCINT64_V8DI_UQI): Likewise.
23416 (V8SI_FTYPE_PCINT_V8SI_UQI): Likewise.
23417 (V8HI_FTYPE_PCSHORT_V8HI_UQI): Likewise.
23418 (V4DF_FTYPE_PCDOUBLE_V4DF_UQI): Likewise.
23419 (V4SF_FTYPE_PCFLOAT_V4SF_UQI): Likewise.
23420 (V4DI_FTYPE_PCINT64_V4DI_UQI): Likewise.
23421 (V4SI_FTYPE_PCINT_V4SI_UQI): Likewise.
23422 (V2DF_FTYPE_PCDOUBLE_V2DF_UQI): Likewise.
23423 (V2DI_FTYPE_PCINT64_V2DI_UQI): Likewise.
23424 (VOID_FTYPE_PDOUBLE_V8DF_UQI): Likewise.
23425 (VOID_FTYPE_PDOUBLE_V4DF_UQI): Likewise.
23426 (VOID_FTYPE_PDOUBLE_V2DF_UQI): Likewise.
23427 (VOID_FTYPE_PFLOAT_V16SF_UHI): Likewise.
23428 (VOID_FTYPE_PFLOAT_V8SF_UQI): Likewise.
23429 (VOID_FTYPE_PFLOAT_V4SF_UQI): Likewise.
23430 (VOID_FTYPE_PINT64_V8DI_UQI): Likewise.
23431 (VOID_FTYPE_PINT64_V4DI_UQI): Likewise.
23432 (VOID_FTYPE_PINT64_V2DI_UQI): Likewise.
23433 (VOID_FTYPE_PINT_V16SI_UHI): Likewise.
23434 (VOID_FTYPE_PINT_V8SI_UHI): Likewise.
23435 (VOID_FTYPE_PINT_V4SI_UHI): Likewise.
23436 (VOID_FTYPE_PSHORT_V32HI_USI): Likewise.
23437 (VOID_FTYPE_PSHORT_V16HI_UHI): Likewise.
23438 (VOID_FTYPE_PSHORT_V8HI_UQI): Likewise.
23439 (VOID_FTYPE_PCHAR_V64QI_UDI): Likewise.
23440 (VOID_FTYPE_PCHAR_V32QI_USI): Likewise.
23441 (VOID_FTYPE_PCHAR_V16QI_UHI): Likewise.
23442 (V64QI_FTYPE_PCV64QI_V64QI_UDI): Removed.
23443 (V32HI_FTYPE_PCV32HI_V32HI_USI): Likewise.
23444 (V32QI_FTYPE_PCV32QI_V32QI_USI): Likewise.
23445 (V16HI_FTYPE_PCV16HI_V16HI_UHI): Likewise.
23446 (V16QI_FTYPE_PCV16QI_V16QI_UHI): Likewise.
23447 (V8HI_FTYPE_PCV8HI_V8HI_UQI): Likewise.
23448 (VOID_FTYPE_PV32HI_V32HI_USI): Likewise.
23449 (VOID_FTYPE_PV16HI_V16HI_UHI): Likewise.
23450 (VOID_FTYPE_PV8HI_V8HI_UQI): Likewise.
23451 (VOID_FTYPE_PV64QI_V64QI_UDI): Likewise.
23452 (VOID_FTYPE_PV32QI_V32QI_USI): Likewise.
23453 (VOID_FTYPE_PV16QI_V16QI_UHI): Likewise.
23454 * config/i386/i386.c (ix86_emit_save_reg_using_mov): Don't
23456 (ix86_emit_restore_sse_regs_using_mov): Don't use UNSPEC_LOADU.
23457 (ix86_avx256_split_vector_move_misalign): Don't use unaligned
23459 (ix86_expand_vector_move_misalign): Likewise.
23460 (bdesc_special_args): Use CODE_FOR_movvNXY_internal and pointer
23461 to scalar function prototype for unaligned load/store builtins.
23462 (ix86_expand_special_args_builtin): Updated.
23463 * config/i386/sse.md (UNSPEC_LOADU): Removed.
23464 (UNSPEC_STOREU): Likewise.
23465 (VI_ULOADSTORE_BW_AVX512VL): Likewise.
23466 (VI_ULOADSTORE_F_AVX512VL): Likewise.
23467 (ssescalarsize): Handle V4TI, V2TI and V1TI.
23468 (<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>): Likewise.
23469 (*<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>): Likewise.
23470 (<sse>_storeu<ssemodesuffix><avxsizesuffix>): Likewise.
23471 (<avx512>_storeu<ssemodesuffix><avxsizesuffix>_mask): Likewise.
23472 (<sse2_avx_avx512f>_loaddqu<mode><mask_name>): Likewise.
23473 (*<sse2_avx_avx512f>_loaddqu<mode><mask_name>"): Likewise.
23474 (sse2_avx_avx512f>_storedqu<mode>): Likewise.
23475 (<avx512>_storedqu<mode>_mask): Likewise.
23476 (*sse4_2_pcmpestr_unaligned): Likewise.
23477 (*sse4_2_pcmpistr_unaligned): Likewise.
23478 (*mov<mode>_internal): Renamed to ...
23479 (mov<mode>_internal): This. Remove check of AVX and IAMCU on
23480 misaligned operand. Replace vmovdqu64 with vmovdqu<ssescalarsize>.
23481 (movsd/movhpd to movupd peephole): Don't use UNSPEC_LOADU.
23482 (movlpd/movhpd to movupd peephole): Don't use UNSPEC_STOREU.
23484 2016-04-19 Richard Biener <rguenther@suse.de>
23486 PR tree-optimization/70171
23487 * tree-ssa-phiprop.c: Include stor-layout.h.
23488 (phiprop_insert_phi): Handle the aggregate copy case.
23489 (propagate_with_phi): Likewise.
23491 2016-04-19 Uros Bizjak <ubizjak@gmail.com>
23493 * config/i386/i386.c (ix86_decompose_address): Use lowpart_subreg
23494 instead of simplify_gen_subreg (... , 0).
23495 (ix86_delegitimize_address): Ditto.
23496 (ix86_split_divmod): Ditto.
23497 (ix86_split_copysign_const): Ditto.
23498 (ix86_split_copysign_var): Ditto.
23499 (ix86_expand_args_builtin): Ditto.
23500 (ix86_expand_round_builtin): Ditto.
23501 (ix86_expand_special_args_builtin): Ditto.
23502 * config/i386/i386.md (TARGET_USE_VECTOR_FP_CONVERTS splitters): Ditto.
23503 (TARGET_SSE_PARTIAL_REG_DEPENDENCY splitters and peephole2s): Ditto.
23504 (udivmodqi4): Ditto.
23505 (absneg splitters): Ditto.
23506 (*jcc_bt<mode>_1): Ditto.
23508 2016-04-19 Richard Biener <rguenther@suse.de>
23510 PR tree-optimization/70724
23511 * tree-ssa-sccvn.c (scc_vn_restore_ssa_info): Split SSA info
23512 restoring out from ...
23513 (free_scc_vn): ... here.
23514 * tree-ssa-sccvn.h (scc_vn_restore_ssa_info): Declare.
23515 * tres-ssa-pre.c (pass_pre::execute): Restore SSA info before
23517 (pass_fre::execute): Restore SSA info.
23519 2016-04-19 Richard Biener <rguenther@suse.de>
23521 * gimple-walk.h (struct walk_stmt_info): Add stmt member.
23522 * gimple-walk.c (walk_gimple_op): Initialize it.
23523 (walk_gimple_asm): Set wi->is_lhs before each callback invocation.
23524 * tree-inline.c (remap_gimple_op_r): Set SSA_NAME_DEF_STMT when
23525 remapping SSA names of defs.
23526 (copy_bb): Remove walk over all SSA defs and SSA_NAME_DEF_STMT
23529 2016-04-18 Vladimir Makarov <vmakarov@redhat.com>
23531 PR middle-end/70689
23532 * lra-constraints.c (equiv_substition_p): New.
23533 (process_alt_operands): Use it.
23534 (swap_operands): Swap it.
23535 (curr_insn_transform): Update it.
23537 2016-04-18 Michael Matz <matz@suse.de>
23539 * tree.h (TYPE_ALIGN, DECL_ALIGN): Return shifted amount.
23540 (SET_TYPE_ALIGN, SET_DECL_ALIGN): New.
23541 * tree-core.h (tree_type_common.align): Use bit-field.
23542 (tree_type_common.spare): New.
23543 (tree_decl_common.off_align): Make smaller.
23544 (tree_decl_common.align): Use bit-field.
23546 * expr.c (expand_expr_addr_expr_1): Use SET_TYPE_ALIGN.
23547 * omp-low.c (install_var_field): Use SET_DECL_ALIGN.
23548 (scan_sharing_clauses): Ditto.
23549 (finish_taskreg_scan): Use SET_DECL_ALIGN and SET_TYPE_ALIGN.
23550 (omp_finish_file): Ditto.
23551 * stor-layout.c (do_type_align): Use SET_DECL_ALIGN.
23552 (layout_decl): Ditto.
23553 (relayout_decl): Ditto.
23554 (finalize_record_size): Use SET_TYPE_ALIGN.
23555 (finalize_type_size): Ditto.
23556 (finish_builtin_struct): Ditto.
23557 (layout_type): Ditto.
23558 (initialize_sizetypes): Ditto.
23559 * targhooks.c (std_gimplify_va_arg_expr): Use SET_TYPE_ALIGN.
23560 * tree-nested.c (insert_field_into_struct): Use SET_TYPE_ALIGN.
23561 (lookup_field_for_decl): Use SET_DECL_ALIGN.
23562 (get_chain_field): Ditto.
23563 (get_trampoline_type): Ditto.
23564 (get_nl_goto_field): Ditto.
23565 * tree-streamer-in.c (unpack_ts_decl_common_value_fields): Use
23567 (unpack_ts_type_common_value_fields): Use SET_TYPE_ALIGN.
23568 * gimple-expr.c (copy_var_decl): Use SET_DECL_ALIGN.
23569 * tree.c (make_node_stat): Use SET_DECL_ALIGN and SET_TYPE_ALIGN.
23570 (build_qualified_type): Use SET_TYPE_ALIGN.
23571 (build_aligned_type, build_range_type_1): Ditto.
23572 (build_atomic_base): Ditto.
23573 (build_common_tree_nodes): Ditto.
23574 * cfgexpand.c (align_local_variable): Use SET_DECL_ALIGN.
23575 (expand_one_stack_var_at): Ditto.
23576 * coverage.c (build_var): Use SET_DECL_ALIGN.
23577 * except.c (init_eh): Ditto.
23578 * function.c (assign_parm_setup_block): Ditto.
23579 * symtab.c (increase_alignment_1): Ditto.
23580 * tree-ssa-ccp.c (fold_builtin_alloca_with_align): Ditto.
23581 * tree-vect-stmts.c (ensure_base_align): Ditto.
23582 * varasm.c (align_variable): Ditto.
23583 (assemble_variable): Ditto.
23584 (build_constant_desc): Ditto.
23585 (output_constant_def_contents): Ditto.
23587 * config/arm/arm.c (arm_relayout_function): Use SET_DECL_ALIGN.
23588 * config/avr/avr.c (avr_adjust_type_node): Use SET_TYPE_ALIGN.
23589 * config/mips/mips.c (mips_std_gimplify_va_arg_expr): Ditto.
23590 * config/msp430/msp430.c (msp430_gimplify_va_arg_expr): Ditto.
23591 * config/spu/spu.c (spu_build_builtin_va_list): Use SET_DECL_ALIGN.
23593 2016-04-18 H.J. Lu <hongjiu.lu@intel.com>
23596 * config/i386/sse.md (sse2_loadlpd): Accept load from "xm" and
23597 replace %vmovsd with "%vmovq".
23598 (vec_concatv2df): Likewise.
23600 2016-04-18 Uros Bizjak <ubizjak@gmail.com>
23602 * config/i386/mmx.md (*vec_extractv2sf_0): Use gen_lowpart.
23603 (*vec_extractv2si_0): Ditto.
23604 * config/i386/sse.md (*vec_extractv4sf_0): Ditto.
23605 (zero_extended_scalar_load_operand splitters): Ditto.
23606 (vec_extract splitters): Ditto.
23607 (*vec_extractv4si_0_zext): Ditto.
23608 (avx_<castmode><avxsizesuffix>_<castmode>): Use gen_lowpart
23609 and lowpart_subreg.
23610 (avx512f_<castmode><avxsizesuffix>_<castmode>): Ditto.
23611 (avx512f_<castmode><avxsizesuffix>_256<castmode>): Ditto.
23612 (*sse4_1_extractps): Use lowpart_subreg.
23613 * config/i386/i386.md (x87 floatsplitter): Use gen_lowpart.
23615 2016-04-18 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
23617 * doc/install.texi (Specific, i?86-*-solaris2.10): Update gas and
23619 (Specific, *-*-solaris2*): Update Solaris 11 bundled gcc versions.
23620 Mention Solaris 11 packaging changes.
23621 Update gas and gld requirements.
23622 Remove reference to pre-Solaris 10 bug.
23623 (Specific, sparc-sun-solaris2*): Remove reference to pre-Solaris 10
23625 (Specific, sparc64-*-solaris2*): Remove reference to bootstrap
23628 2016-04-17 Jan Hubicka <jh@suse.cz>
23630 * tree-ssa-loop-ivopts.c (avg_loop_niter): Use also
23631 max_loop_iterations_int.
23633 2016-04-18 Richard Biener <rguenther@suse.de>
23635 PR tree-optimization/43434
23636 * tree-ssa-structalias.c (struct vls_data): New.
23637 (visit_loadstore): Handle all pointer-based accesses.
23638 (compute_dependence_clique): Compute a bitmap of restrict tags
23639 assigned bases and pass it to visit_loadstore.
23641 2016-04-18 Matthew Wahab <matthew.wahab@arm.com>
23644 * config/arm/bpabi.h (BE8_LINK_SPEC): Add entries for armv8+crc,
23645 armv8.1-a and armv8.1-a+crc.
23647 2016-04-18 Richard Biener <rguenther@suse.de>
23649 PR tree-optimization/70701
23650 * tree-ssa-sccvn.c (vn_reference_lookup_3): Resolve fully constant
23651 references after translating through a memcpy.
23653 2016-04-18 Richard Biener <rguenther@suse.de>
23655 * tree-ssa-pre.c (postorder, postorder_num): Make locals ...
23656 (compute_antic): ... here. For partial antic use regular
23657 postorder and scrap iteration.
23658 (compute_partial_antic_aux): Remove unused return value.
23659 (init_pre): Do not allocate postorder.
23660 (fini_pre): Do not free postorder.
23662 2016-04-18 Richard Biener <rguenther@suse.de>
23664 PR middle-end/37870
23665 * expmed.c (extract_bit_field_1): Remove broken case
23666 using a wider MODE_INT mode.
23668 2016-04-18 Segher Boessenkool <segher@kernel.crashing.org>
23670 * has-brig.c (lendian16): Don't try to use __builtin_bswap16
23671 unless compiling with at least GCC-4.8.
23673 2016-04-17 Jan Hubicka <jh@suse.cz>
23676 * graphite.c (graphite_finalize): Update call to
23677 tree_estimate_probability.
23678 * predict.h (tree_estimate_probability): Update prototype.
23680 2016-04-17 Jan Hubicka <jh@suse.cz>
23682 * predict.c (combine_predictions_for_bb): Add dry_run parmaeter.
23683 (tree_estimate_probability): Likewise.
23684 (pass_profile::execute): Update.
23685 (report_predictor_hitrates): New function.
23686 * profile.c (compute_branch_probabilities): Use it.
23687 * predict.h (report_predictor_hitrates): Declare.
23689 2016-04-17 Jan Hubicka <jh@suse.cz>
23692 * cgraph.h (cgraph_node::set_const_flag,
23693 cgraph_node::set_pure_flag): Update prototype to return bool;
23695 * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases): Thunks
23696 of interposable symbol are interposable, too.
23697 (cgraph_set_const_flag_1): Rename to ...
23698 (set_const_flag_1): ... this one; change to self recursive function
23699 instead of call_for_symbol_thunks_and_aliases. Handle correctly
23700 clearnig the flag in all variants and also virtual thunks of const
23701 functions are pure; track if any change was done.
23702 (cgraph_node::set_const_flag): Update.
23703 (struct set_pure_flag_info): New struct.
23704 (cgraph_set_pure_flag_1): Rename to ...
23705 (set_pure_flag_1): ... this one; take set_pure_flag_info parameter
23706 rather than pointer encoded flags; track if any changes was done;
23707 handle correctly clearning flag and setting flag of aliases already
23709 (cgraph_node::set_pure_flag): Update.
23710 (cgraph_node::set_nothrow_flag): Handle correctly clearning the flag.
23712 2016-04-17 Tom de Vries <tom@codesourcery.com>
23715 * pretty-print.c (pp_write_text_as_dot_label_to_stream): Escape
23716 backslash in label.
23718 2016-04-17 Tom de Vries <tom@codesourcery.com>
23720 * pretty-print.c (pp_write_text_as_dot_label_to_stream): Classify chars
23721 '{}<> ' as escape-for-record.
23723 2016-04-17 Tom de Vries <tom@codesourcery.com>
23725 * pretty-print.c (pp_write_text_as_dot_label_to_stream): Simplify loop
23728 2016-04-17 Tom de Vries <tom@codesourcery.com>
23731 * tree-pass.h (class opt_pass): Remove graph_dump_initialized member.
23732 * dumpfile.h (struct dump_file_info): Add graph_dump_initialized field.
23733 * dumpfile.c (dump_files): Initialize graph_dump_initialized field.
23734 * passes.c (finish_optimization_passes): Only call
23735 finish_graph_dump_file if dfi->graph_dump_initialized.
23736 (execute_function_dump, pass_init_dump_file): Use
23737 dfi->graph_dump_initialized instead of pass->graph_dump_initialized.
23739 2016-04-17 Tom de Vries <tom@codesourcery.com>
23741 PR tree-optimization/70256
23742 * tree-ssa-structalias.c (dump_varinfo, debug_varinfo, dump_varmap)
23743 (debug_varmap): New function.
23745 2016-04-17 Tom de Vries <tom@codesourcery.com>
23748 * passes.c (pass_manager::register_pass): Propagate pflags.
23750 2016-04-17 Tom de Vries <tom@codesourcery.com>
23753 * pass_manager.h (TERMINATE_PASS_LIST): Add pass argument.
23754 * passes.c (pass_manager::pass_manager): Declare and init p_start in
23755 INSERT_PASSES_AFTER. Add pass parameter to TERMINATE_PASS_LIST, and
23756 check if it's equal to p_start.
23757 * passes.def: Add arguments to TERMINATE_PASS_LISTs.
23759 2016-04-15 Jan Hubicka <jh@suse.cz>
23762 * cgraph.c (cgraph_set_const_flag_1): Only set as pure if
23763 function does not bind to current def.
23764 * ipa-pure-const.c (worse_state): Add FROM and TO parameters;
23765 handle conservatively calls to functions that does not need to bind
23767 (check_call): Update call of worse_state.
23768 (ignore_edge_for_nothrow): Update.
23769 (ignore_edge_for_pure_const): Likewise.
23770 (propagate_pure_const): Update calls to worse_state.
23771 (skip_function_for_local_pure_const): Reformat comments.
23773 2016-04-15 Jan Hubicka <jh@suse.cz>
23776 * cgraph.c (cgraph_node::get_availability): Add REF parameter.
23777 (cgraph_node::function_symbol): Likewise.
23778 (cgraph_node::function_or_virtual_thunk_symbol): Likewise.
23779 * cgraph.h (symtab_node::get_availabbility): Add REF parameter.
23780 (symtab_node::ultimate_alias_target): Add REF parameter.
23781 (symtab_node::binds_to_current_def_p): Declare.
23782 (symtab_node;:ultimate_alias_target_1): Add REF parameter.
23783 (cgraph_node::function_symbol): Likewise.
23784 (cgraph_node::function_or_virtual_thunk_symbol): Likewise.
23785 (cgraph_node::get_availability): Likewise.
23786 (cgraph_edge::binds_to_current_def_p): New inline function.
23787 (varpool_node::get_availability): Add REF parameter.
23788 (varpool_node::ultimate_alias_target): Likewise.
23789 * symtab.c (symtab_node::ultimate_alias_target_1): Likewise.
23790 (symtab_node::binds_to_current_def_p): Likewise.
23791 * varpool.c (varpool_node::get_availability): Likewise.
23793 2016-04-15 Kirill Yukhin <kirill.yukhin@intel.com>
23796 * config/i386/sse.md(define_insn "<avx512>_vec_dup<mode><mask_name>"):
23797 Fix mode size check.
23799 2016-04-15 Jakub Jelinek <jakub@redhat.com>
23801 * BASE-VER: Set to 7.0.0.
23803 2016-04-15 Alexander Monakov <amonakov@ispras.ru>
23805 * config/nvptx/nvptx.opt (moptimize): Add a period at end of help text.
23807 2016-04-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
23809 * doc/invoke.texi (ARM Options): Add note on deprecation of pre-ARMv4T
23810 architecture revisions.
23812 2016-04-15 Bernd Schmidt <bschmidt@redhat.com>
23814 * config/i386/i386-protos.h (ix86_using_red_zone): Declare.
23815 * config/i386/i386.c (ix86_using_red_zone): No longer static.
23816 * config/i386/i386.md (stack decrement to push peepholes): Guard
23817 with !x86_using_red_zone ().
23819 2016-04-15 Jakub Jelinek <jakub@redhat.com>
23822 * tree-pretty-print.c (do_niy): Add FLAGS argument, pass it down
23823 to dump_generic_node.
23824 (NIY): Pass also flags to do_niy.
23826 2016-04-15 Thomas Schwinge <thomas@codesourcery.com>
23828 * omp-low.c (simd_clone_struct_alloc, simd_clone_struct_copy)
23829 (simd_clone_vector_of_formal_parm_types)
23830 (simd_clone_clauses_extract, simd_clone_compute_base_data_type)
23831 (simd_clone_mangle, simd_clone_create)
23832 (simd_clone_adjust_return_type, create_tmp_simd_array)
23833 (simd_clone_adjust_argument_types, simd_clone_init_simd_arrays)
23834 (struct modify_stmt_info, ipa_simd_modify_stmt_ops)
23835 (ipa_simd_modify_function_body, simd_clone_linear_addend)
23836 (simd_clone_adjust, expand_simd_clones, ipa_omp_simd_clone)
23837 (pass_data_omp_simd_clone, class pass_omp_simd_clone)
23838 (pass_omp_simd_clone::gate, make_pass_omp_simd_clone): Move into...
23839 * omp-simd-clone.c: ... this new file.
23840 (simd_clone_vector_of_formal_parm_types): Make it static.
23841 * Makefile.in (OBJS): Add omp-simd-clone.o.
23843 2016-04-15 Kirill Yukhin <kirill.yukhin@intel.com>
23846 * config/i386/sse.md: Use proper memory operand modifiers.
23849 2016-04-15 Richard Biener <rguenther@suse.de>
23850 Alan Modra <amodra@gmail.com>
23852 PR tree-optimization/70130
23853 * tree-vect-data-refs.c (vect_supportable_dr_alignment): Detect
23854 when alignment stays not the same and no not use the realign
23857 2016-04-14 Michael Meissner <meissner@linux.vnet.ibm.com>
23860 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
23861 direct move handlers for KFmode. Change TFmode handlers test from
23862 FLOAT128_IEEE_P to FLOAT128_VECTOR_P.
23864 2016-04-14 Jakub Jelinek <jakub@redhat.com>
23867 * ipa-utils.h (polymorphic_ctor_dtor_p): New prototype.
23868 * ipa-polymorphic-call.c (polymorphic_ctor_dtor_p): New function.
23869 (inlined_polymorphic_ctor_dtor_block_p): Use it.
23870 * tree-ssa-live.c (remove_unused_scope_block_p): When
23871 in_ctor_dtor_block, avoid discarding not just BLOCKs with
23872 BLOCK_ABSTRACT_ORIGIN being FUNCTION_DECL, but even when
23873 block_ultimate_origin is FUNCTION_DECL.
23874 (remove_unused_locals): If current_function_decl is
23875 polymorphic_ctor_dtor_p, pass initial true to
23876 remove_unused_scope_block_p' is_ctor_dtor_block.
23878 2016-04-14 Martin Sebor <msebor@redhat.com>
23883 * doc/extend.texi (Variable Length): Revert.
23885 2016-04-14 Marek Polacek <polacek@redhat.com>
23886 Jan Hubicka <hubicka@ucw.cz>
23889 * tree.c (verify_type): Disable the canonical type of main variant
23892 2016-04-14 Jason Merrill <jason@redhat.com>
23894 * cfgexpand.c, expr.c: Revert previous change.
23896 2016-04-14 Cesar Philippidis <cesar@codesourcery.com>
23898 PR middle-end/70643
23899 * omp-low.c (lower_oacc_reductions): Check for TREE_CONSTANT
23900 when building a mem ref for the incoming reduction variable.
23902 2016-04-14 Richard Biener <rguenther@suse.de>
23904 PR tree-optimization/70614
23905 * tree-scalar-evolution.c (analyze_evolution_in_loop): Terminate
23906 loop if the evolution dropped to chrec_dont_know.
23907 (interpret_condition_phi): Likewise.
23909 2016-04-14 Richard Biener <rguenther@suse.de>
23911 PR tree-optimization/70623
23912 * tree-ssa-pre.c (changed_blocks): Make global ...
23913 (compute_antic): ... local here. Move and fix worklist
23914 handling here. Do not clear EDGE_DFS_BACK or call mark_dfs_back_edges.
23915 (compute_antic_aux): Add dumping for MAX assumed succs. Remove
23916 worklist handling, dump when ANTIC_IN changed.
23917 (compute_partial_antic_aux): Remove worklist handling.
23918 (init_pre): Do not compute post dominators. Add a comment about
23919 the CFG order chosen.
23920 (fini_pre): Do not free post dominators.
23922 2016-04-13 Martin Sebor <msebor@redhat.com>
23927 * doc/extend.texi (Variable Length): Document C++ specifics.
23929 2016-04-13 Jakub Jelinek <jakub@redhat.com>
23932 * ipa-pure-const.c (pass_nothrow::execute): Call maybe_clean_eh_stmt
23933 on all recursive call stmts. Return TODO_cleanup_cfg if any dead
23934 eh edges have been purged.
23937 * tree-sra.c (create_access_replacement,
23938 get_replaced_param_substitute): Set DECL_NAMELESS on repl if it
23940 * tree-pretty-print.c (dump_fancy_name): New function.
23941 (dump_decl_name, dump_generic_node): Use it.
23943 2016-04-13 Jason Merrill <jason@redhat.com>
23945 * cfgexpand.c (pass_expand::execute): Handle attribute "abi warning".
23946 * expr.c (expand_expr_real_1): Likewise.
23948 2016-04-13 Ilya Enkovich <ilya.enkovich@intel.com>
23950 * config/i386/i386.md (kunpckhi): Swap operands.
23951 (kunpcksi): Likewise.
23952 (kunpckdi): Likewise.
23953 * config/i386/sse.md (vec_pack_trunc_qi): Likewise.
23954 (vec_pack_trunc_<mode>): Likewise.
23956 2016-04-13 Jakub Jelinek <jakub@redhat.com>
23959 * explow.c (convert_memory_address_addr_space_1): Formatting fix.
23961 PR middle-end/70633
23962 * gimplify.c (gimplify_init_constructor): Clear TREE_STATIC if
23963 gimplification turns some element into non-constant.
23966 * rtl.h (convert_memory_address_addr_space_1): New prototype.
23967 * explow.c (convert_memory_address_addr_space_1): No longer static,
23968 add NO_EMIT argument and don't call convert_modes if true, pass
23969 it down recursively, remove break after return.
23970 (convert_memory_address_addr_space): Adjust caller.
23971 * simplify-rtx.c (simplify_unary_operation_1): Call
23972 convert_memory_address_addr_space_1 instead of convert_memory_address,
23973 if it returns NULL, don't simplify.
23975 2016-04-12 Eric Botcazou <ebotcazou@adacore.com>
23978 * config/sparc/sparc.c (sparc_compute_frame_size): Add parentheses.
23980 2016-04-12 Jakub Jelinek <jakub@redhat.com>
23982 * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
23983 Bump the upper SIMDLEN limits, so that if the return type or
23984 characteristic type if the return type is void can be passed in
23985 all available SSE2/AVX/AVX2/AVX512-F registers, the SIMDLEN is
23988 2016-04-12 Michael Meissner <meissner@linux.vnet.ibm.com>
23991 * config/rs6000/rs6000.md (ieee_128bit_vsx_neg<mode>2_internal):
23992 Do not use "=" constraint on an input constraint.
23993 (ieee_128bit_vsx_abs<mode>2_internal): Likewise.
23994 (ieee_128bit_vsx_nabs<mode>2_internal): Likewise.
23995 (ieee_128bit_vsx_nabs<mode>2): Correct splitter so that it
23996 generates (neg (abs ...)) instead of (abs ...).
23998 2016-04-12 Jakub Jelinek <jakub@redhat.com>
24000 PR rtl-optimization/70596
24001 * lra-spills.c (spill_pseudos): Don't delete debug insns, instead
24002 just invalidate LRA data and reset them. Adjust dump wording.
24004 2016-04-12 Martin Liska <mliska@suse.cz>
24007 2016-03-30 Jan Hubicka <hubicka@ucw.cz>
24009 * tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can't get realistic
24011 * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also
24012 max_loop_iterations_int.
24013 (tree_unswitch_outer_loop): Likewise.
24014 * tree-ssa-loop-ivopts.c (avg_loop_niter): Likewise.
24015 * tree-vect-loop.c (vect_analyze_loop_2): Likewise.
24017 2016-04-12 Tom de Vries <tom@codesourcery.com>
24019 PR tree-optimization/68756
24020 * graphite-isl-ast-to-gimple.c (copy_cond_phi_args): Use new_expr
24021 instead of new_name.
24023 2016-04-12 Jakub Jelinek <jakub@redhat.com>
24025 PR tree-optimization/70602
24026 * tree-sra.c (generate_subtree_copies): Don't write anything into
24027 constant pool decls.
24029 * omp-low.c (lower_omp_target): Use GOMP_MAP_FIRSTPRIVATE_INT
24030 regardless whether there are depend clauses or not.
24032 2016-04-11 Michael Meissner <meissner@linux.vnet.ibm.com>
24035 * config/rs6000/rs6000.c (rs6000_opt_masks): Disable using the
24036 target attribute and pragma from changing the -mfloat128
24037 and -mfloat128-hardware options.
24039 * doc/extend.texi (Additional Floating Types): Document PowerPC
24040 __float128 restrictions.
24042 2016-04-11 James Greenhalgh <james.greenhalgh@arm.com>
24045 * config/aarch64/driver-aarch64.c
24046 (aarch64_get_extension_string_for_isa_flags): New.
24047 (arch_extension): Rename to...
24048 (aarch64_arch_extension): ...This.
24049 (ext_to_feat_string): Rename to...
24050 (aarch64_extensions): ...This.
24051 (aarch64_core_data): Keep track of architecture extension flags.
24052 (cpu_data): Rename to...
24053 (aarch64_cpu_data): ...This.
24054 (aarch64_arch_driver_info): Keep track of architecture extension
24056 (get_arch_name_from_id): Rename to...
24057 (get_arch_from_id): ...This, change return type.
24058 (host_detect_local_cpu): Update and reformat for renames, handle
24059 extensions through common infrastructure.
24061 2016-04-11 James Greenhalgh <james.greenhalgh@arm.com>
24064 * config/aarch64/aarch64-common.c (aarch64_option_extension): Keep
24065 track of a canonical flag name.
24066 (all_extensions): Likewise.
24067 (arch_to_arch_name): Also track extension flags enabled by the arch.
24068 (all_architectures): Likewise.
24069 (aarch64_parse_extension): Move to here.
24070 (aarch64_get_extension_string_for_isa_flags): Take a new argument,
24072 (aarch64_rewrite_selected_cpu): Update for above change.
24073 * config/aarch64/aarch64-option-extensions.def: Rework the way flags
24074 are handled, such that the single explicit value enabled by an
24075 extension is kept seperate from the implicit values it also enables.
24076 * config/aarch64/aarch64-protos.h (aarch64_parse_opt_result): Move
24078 (aarch64_parse_extension): New.
24079 * config/aarch64/aarch64.c (aarch64_parse_opt_result): Move from
24080 here to config/aarch64/aarch64-protos.h.
24081 (aarch64_parse_extension): Move from here to
24082 common/config/aarch64/aarch64-common.c.
24083 (aarch64_option_print): Update.
24084 (aarch64_declare_function_name): Likewise.
24085 (aarch64_start_file): Likewise.
24086 * config/aarch64/driver-aarch64.c (arch_extension): Keep track of
24087 the canonical flag for extensions.
24088 * config.gcc (aarch64*-*-*): Extend regex for capturing extension
24091 2016-04-11 James Greenhalgh <james.greenhalgh@arm.com>
24093 * config/aarch64/aarch64.h (AARCH64_FL_FOR_ARCH8_1): Also add
24096 2016-04-09 Tom de Vries <tom@codesourcery.com>
24098 PR tree-optimization/68953
24099 * graphite-sese-to-poly.c (pdr_add_memory_accesses): Order accesses from
24100 first to last subscript.
24102 2016-04-09 Jakub Jelinek <jakub@redhat.com>
24104 PR tree-optimization/70586
24105 * tree-ssa-ifcombine.c (bb_no_side_effects_p): Return false
24108 2016-04-08 Cesar Philippidis <cesar@codesourcery.com>
24112 PR tree-optimization/70373
24113 PR middle-end/70533
24114 PR middle-end/70534
24115 PR middle-end/70535
24116 * gimplify.c (gimplify_adjust_omp_clauses): Add or adjust data
24117 clauses for acc parallel reductions as necessary. Error on those
24119 * omp-low.c (scan_sharing_clauses): Don't install variables which
24120 are used in acc parallel reductions.
24121 (lower_rec_input_clauses): Remove dead code.
24122 (lower_oacc_reductions): Add support for reference reductions.
24123 (lower_reduction_clauses): Remove dead code.
24124 (lower_omp_target): Don't remap variables appearing in acc parallel
24126 * tree.h (OMP_CLAUSE_MAP_IN_REDUCTION): New macro.
24128 2016-04-08 Jakub Jelinek <jakub@redhat.com>
24130 PR middle-end/70593
24131 * tree-ssa-coalesce.c (build_ssa_conflict_graph): For stmt
24132 with multiple SSA_NAME defs, force the outputs other than first
24133 to be live before calling live_track_process_def on each output.
24135 PR rtl-optimization/70574
24136 * fwprop.c (forward_propagate_and_simplify): Don't add
24137 REG_EQUAL note if DF_REF_REG (use) is a paradoxical subreg.
24138 (try_fwprop_subst): Don't add REG_EQUAL note if there are any
24139 paradoxical subregs within *loc.
24141 2016-04-08 Thomas Schwinge <thomas@codesourcery.com>
24143 * config/arc/arc.h (LINK_COMMAND_SPEC): Use gt to ignore
24144 -ftree-parallelize-loops={0,1}.
24145 * config/darwin.h (LINK_COMMAND_SPEC_A): Likewise.
24146 * config/i386/mingw32.h (GOMP_SELF_SPECS): Likewise.
24147 * config/ia64/hpux.h (LIB_SPEC): Likewise.
24148 * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
24149 * config/pa/pa64-hpux.h (LIB_SPEC): Likewise.
24151 2016-04-08 Maxim Ostapenko <m.ostapenko@samsung.com>
24154 * asan.c (instrument_derefs): If we get unknown location, extract it
24155 with EXPR_LOCATION.
24156 (maybe_instrument_call): Instrument gimple_call's arguments if needed.
24158 2016-04-08 Tom de Vries <tom@codesourcery.com>
24160 * omp-low.c (lower_omp_target): Set TREE_NO_WARNING for oacc
24161 implicit firstprivate clause.
24163 2016-04-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
24166 * config/arm/thumb2.md (tst + branch-> lsls + branch
24167 peephole below *orsi_not_shiftsi_si): Require that condition
24168 register is dead after the peephole.
24169 (second peephole after the above): Likewise.
24171 2016-04-08 Alan Modra <amodra@gmail.com>
24174 * builtins.c (fold_builtin_classify): For IBM extended precision,
24175 look at just the high-order double to test for NaN.
24176 (fold_builtin_interclass_mathfn): Similarly for Inf. For isnormal
24177 test just the high double for Inf but both doubles for subnormal
24180 2016-04-07 Jakub Jelinek <jakub@redhat.com>
24182 * cgraph.h (struct cgraph_simd_clone): Add mask_mode field.
24183 * omp-low.c (simd_clone_init_simd_arrays, simd_clone_adjust): Handle
24184 node->simdclone->mask_mode != VOIDmode masks.
24185 (simd_clone_adjust_argument_types): Likewise. Move sc var definition
24186 earlier, use it instead of node->simdclone.
24187 * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
24188 Set clonei->mask_mode.
24190 2016-04-06 Patrick Palka <ppalka@gcc.gnu.org>
24193 * parser.c (cp_parser_iteration_statement): New parameter IF_P.
24194 Pass it through to cp_parser_already_scoped_statement.
24195 (cp_parser_already_scoped_statement): New parameter IF_P. Pass
24196 it through to cp_parser_statement.
24197 (cp_parser_statement): Pass IF_P through to
24198 cp_parser_iteration_statement.
24199 (cp_parser_pragma): Adjust call to
24200 cp_parser_iteration_statement.
24202 2016-04-06 Patrick Palka <ppalka@gcc.gnu.org>
24205 * gimplify.c (gimplify_omp_ordered): Add explicit braces to
24206 resolve a future -Wparentheses warning.
24207 * omp-low.c (scan_sharing_clauses): Likewise.
24208 * tree-parloops.c (eliminate_local_variables): Likewise.
24210 2016-04-06 Vladimir Makarov <vmakarov@redhat.com>
24212 PR rtl-optimization/70398
24213 * lra-constraints.c (process_address_1): Check zero scale and code
24214 for reloading with zero scale.
24216 2016-04-06 Uros Bizjak <ubizjak@gmail.com>
24218 * config/i386/sse.md (shuffletype): Add V32HI and V4TI modes.
24219 (ssescalarsize): Add V8SF, V4SF, V4DF and V2DF modes.
24221 2016-04-06 Jakub Jelinek <jakub@redhat.com>
24223 * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
24224 Add support for AVX512F clones, include them by default for
24225 exported OpenMP declare simd functions. For AVX2 allow simdlen 32
24226 and use it if charasteric type is 8-bit, for AVX512F allow simdlen
24229 PR middle-end/70550
24230 * tree.h (OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT): Define.
24231 * gimplify.c (gimplify_adjust_omp_clauses_1): Set it for implicit
24232 firstprivate clauses.
24233 * omp-low.c (lower_send_clauses): Set TREE_NO_WARNING for
24234 OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT !by_ref vars in task contexts.
24235 (lower_omp_target): Set TREE_NO_WARNING for
24236 non-addressable possibly uninitialized vars which are copied into
24237 addressable temporaries or copied for GOMP_MAP_FIRSTPRIVATE_INT.
24239 2016-04-05 John David Anglin <danglin@gcc.gnu.org>
24241 * config/pa/predicates.md (integer_store_memory_operand): Accept
24242 REG+D operands with a large offset when reload_in_progress is true.
24243 (floating_point_store_memory_operand): Likewise.
24245 2016-04-05 Jakub Jelinek <jakub@redhat.com>
24248 * match.pd (nested int casts): Limit to GIMPLE.
24250 2016-04-05 Jan Hubicka <hubicka@ucw.cz>
24253 * ipa-devirt.c (maybe_record_node): Fix comment; use
24254 SANITIZE_UNREACHABLE instead of SANITIZE_UNDEFINED.
24256 2016-04-05 Jakub Jelinek <jakub@redhat.com>
24258 PR rtl-optimization/70542
24259 * ree.c (add_removable_extension): For VECTOR_MODE_P punt
24260 if there are any uses other than insn or debug insns.
24262 2016-04-05 Marc Glisse <marc.glisse@inria.fr>
24263 Jakub Jelinek <jakub@redhat.com>
24265 PR tree-optimization/70509
24266 * simplify-rtx.c (simplify_binary_operation_1) <case VEC_SELECT>:
24267 Shift HOST_WIDE_INT_1U instead of 1.
24269 2016-04-05 Zdenek Sojka <zsojka@seznam.cz>
24271 PR tree-optimization/70509
24272 * tree-ssa-forwprop.c (simplify_bitfield_ref): Use bitsize_int instead
24273 of the vector base type for index.
24275 2016-04-05 Uros Bizjak <ubizjak@gmail.com>
24278 * config/i386/sse.md (iptr): Add V64QI, V32HI, V16SI and V8DI modes.
24280 2016-04-05 Richard Biener <rguenther@suse.de>
24282 PR tree-optimization/70526
24283 * tree-sra.c (build_ref_for_offset): Use prev_base to
24284 extract the alias pointer type.
24286 2016-04-05 Richard Biener <rguenther@suse.de>
24288 * dse.c (struct store_info): Remove alias_set member.
24289 (struct read_info_type): Likewise.
24290 (clear_alias_group, clear_alias_mode_table, clear_alias_mode_holder,
24291 spill_deleted, clear_alias_set_lookup): Remove.
24292 (get_group_info): Remove dead base == NULL_RTX case.
24293 (dse_step0): Remove initialization of removed variables.
24294 (delete_dead_store_insn): Reomve alias set dumping.
24295 (free_read_records): Remove alias_set handling.
24296 (canon_address): Remove alias_set_out parameter.
24297 (record_store): Remove spill_alias_set, it's always zero.
24298 (check_mem_read_rtx): Likewise.
24299 (dse_step2): Rename from ...
24300 (dse_step2_nospill): ... this. Adjust.
24301 (scan_stores): Rename from ...
24302 (scan_stores_nospill): ... this.
24303 (scan_reads): Rename from ...
24304 (scan_reads_nospill): ... this.
24305 (scan_stores_spill, scan_reads_spill): Remove.
24306 (dse_step3_scan): Remove for_spills argument which is always false.
24307 (dse_step3): Likewise.
24308 (dse_step5): Rename from ...
24309 (dse_step5_nospill): ... this. Remove alias_set handling.
24310 (rest_of_handle_dse): Adjust.
24312 2016-04-05 Jakub Jelinek <jakub@redhat.com>
24315 * config/i386/sse.md (*andnot<mode>3): Simplify assertions.
24316 Use vpandn<ssemodesuffix> for V16SI/V8DImode, vpandnq for
24317 V32HI/V64QImode, don't use <mask_operand3_1>, fix up formatting.
24318 (*andnot<mode>3_mask): Remove insn with VI12_AVX512VL iterator.
24320 2016-04-05 Richard Biener <rguenther@suse.de>
24322 PR middle-end/70499
24323 * gimplify-me.c (gimple_regimplify_operands): Do not rewrite
24324 non-register type temporaries into SSA.
24326 2016-04-04 Jan Hubicka <hubicka@ucw.cz>
24329 * ipa-devirt.c (maybe_record_node): Do not optimize cxa_pure_virtual
24330 calls when sanitizing.
24331 (possible_polymorphic_call_target_p): Fix formatting.
24333 2016-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
24334 Jakub Jelinek <jakub@redhat.com>
24336 PR middle-end/70457
24337 * tree-inline.c (estimate_num_insn): Use gimple_call_builtin_p
24338 to ensure a call statement is compatible with a built-in's
24340 * tree-ssa-math-opts.c (pass_optimize_windening_mul::execute):
24343 2016-04-04 Richard Biener <rguenther@suse.de>
24345 PR rtl-optimization/70484
24346 * rtl.h (canon_output_dependence): Declare.
24347 * alias.c (canon_output_dependence): New function.
24348 * dse.c (record_store): Use canon_output_dependence rather
24349 than canon_true_dependence.
24351 2016-03-30 Jan Hubicka <hubicka@ucw.cz>
24354 * cgraph.h (symtab_node::copy_visibility_from): New function.
24355 * symtab.c (symtab_node::copy_visibility_from): New function.
24356 * ipa-visibility.c (optimize_weakref): New function.
24357 (function_and_variable_visibility): Use it.
24359 2016-04-04 Martin Liska <mliska@suse.cz>
24362 * hsa-gen.c (gen_hsa_insns_for_switch_stmt): Guard index
24363 value that is really in range handled by SBR instruction.
24364 * hsa-brig.c (emit_switch_insn): Do not emit unconditional jump.
24365 * hsa-dump.c (dump_hsa_insn_1): Do not dump default BB.
24366 * hsa.h (hsa_insn_sbr::m_default_bb): Remove field.
24368 2016-04-03 Oleg Endo <olegendo@gcc.gnu.org>
24372 * config/sh/sh.md (*addsi3): Allow pattern when reload_in_progress is
24373 set, but not for SP_REG operands.
24375 2016-04-02 Martin Sebor <msebor@redhat.com>
24378 * fold-const.c (maybe_nonzero_address): New function.
24379 (fold_comparison): Call it. Fold equality and relational
24380 expressions involving null pointers.
24381 (tree_single_nonzero_warnv_p): Call maybe_nonzero_address.
24383 2016-03-31 Evandro Menezes <e.menezes@samsung.com>
24385 Fix the predicate "aarch64_simd_reg_or_zero" to correctly validate
24386 the "Y" constraint (scalar FP 0.0 immediate).
24388 * config/aarch64/predicates.md (aarch64_simd_reg_or_zero):
24389 Add the "const_double" to the list of operand constraints.
24391 2016-04-01 Jakub Jelinek <jakub@redhat.com>
24393 PR rtl-optimization/70467
24394 * config/i386/i386.md (*add<dwi>3_doubleword, *sub<dwi>3_doubleword):
24395 If low word of the last operand is 0, just emit addition/subtraction
24398 2016-04-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
24401 * config/s390/s390.c (s390_expand_insv): Check for everything
24402 constant instead of just VOIDmode stuff.
24404 2016-04-01 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
24407 * config/arm/arm.h (ASM_APP_OFF): Handle TARGET_ARM and TARGET_THUMB.
24409 2016-04-01 Nathan Sidwell <nathan@acm.org>
24411 * tree.def (TRY_CATCH_EXPR): Correct documentation.
24413 2016-03-31 Vladimir Makarov <vmakarov@redhat.com>
24415 PR rtl-optimization/70461
24416 * ira-color.c (allocno_copy_cost_saving): Use allocno class if it
24419 2016-03-31 Martin Liska <mliska@suse.cz>
24422 * hsa-brig.c (hsa_op_immed::emit_to_buffer): Emit either
24423 a tree value or an immediate integer value to a buffer
24424 that is eventually copied to a BRIG section.
24425 (emit_immediate_operand): Call the function here.
24426 * hsa-dump.c (dump_hsa_immed): Remove checking assert.
24427 * hsa-gen.c (hsa_op_immed::hsa_op_immed): Remove initialization
24428 of class' fields that are removed.
24429 (hsa_op_immed::~hsa_op_immed): Remove deinitialization.
24430 * hsa.h (class hsa_op_immed): Remove m_brig_repr and
24431 m_brig_repr_size fields.
24433 2016-03-31 Martin Liska <mliska@suse.cz>
24436 * hsa-gen.c (hsa_function_representation::update_dominance): New
24438 (convert_addr_to_flat_segment): Likewise.
24439 (gen_hsa_memory_set): New alignment argument.
24440 (gen_hsa_ctor_assignment): Likewise.
24441 (gen_hsa_insns_for_single_assignment): Provide alignment
24442 to gen_hsa_ctor_assignment.
24443 (gen_hsa_insns_for_direct_call): Add new argument.
24444 (expand_lhs_of_string_op): New function.
24445 (expand_string_operation_builtin): Likewise.
24446 (expand_memory_copy): New function.
24447 (expand_memory_set): New function.
24448 (gen_hsa_insns_for_call): Use HOST_WIDE_INT.
24449 (convert_switch_statements): Change signature.
24450 (generate_hsa): Use a return value of the function.
24451 (pass_gen_hsail::execute): Do not call
24452 convert_switch_statements here.
24453 * hsa-regalloc.c (hsa_regalloc): Call update_dominance.
24454 * hsa.h (hsa_function_representation::m_modified_cfg): New flag.
24455 (hsa_function_representation::update_dominance): New function.
24457 2016-03-31 Martin Liska <mliska@suse.cz>
24460 * hsa-brig.c (emit_directive_variable): Emit alignment
24461 according to hsa_symbol::m_align.
24462 * hsa-dump.c (hsa_byte_alignment): Move the function to another file.
24463 (dump_hsa_symbol): Dump alignment of HSA symbols.
24464 * hsa-gen.c (get_symbol_for_decl): Set-up alignment of a symbol.
24465 (gen_hsa_addr_with_align): New function.
24466 (hsa_bitmemref_alignment): Use newly added function.
24467 (gen_hsa_insns_for_load): Likewise.
24468 (gen_hsa_insns_for_store): Likewise.
24469 (gen_hsa_memory_copy): New argument added.
24470 (gen_hsa_insns_for_single_assignment): Respect
24471 alignment for assignments processed via gen_hsa_memory_copy.
24472 (gen_hsa_insns_for_direct_call): Likewise.
24473 (gen_hsa_insns_for_return): Likewise.
24474 (gen_function_def_parameters): Set default alignment.
24475 * hsa.c (hsa_object_alignment): New function.
24476 (hsa_byte_alignment): Pasted function.
24477 * hsa.h (hsa_symbol::m_align): New field.
24479 2016-03-31 Bin Cheng <bin.cheng@arm.com>
24481 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Initialize
24482 scratch field for goto case.
24484 2016-03-31 James Greenhalgh <james.greenhalgh@arm.com>
24486 * config/arm/linux-elf.h (ASM_OUTPUT_DEF): Delete.
24488 2016-03-31 Ilya Enkovich <enkovich.gnu@gmail.com>
24491 * config/i386/i386.c (scalar_chain::convert_op): Fix description.
24492 (scalar_chain::convert_insn): Call convert_op for reg
24493 moves to handle undefined registers.
24495 2016-03-31 Nathan Sidwell <nathan@acm.org>
24498 * varasm.c (output_constructor_regular_field): Flush bitfield earlier.
24499 Assert we don't want to move backwards.
24501 2016-03-31 Kirill Yukhin <kirill.yukhin@intel.com>
24504 * config/i386/sse.md (define_mode_attr shuffletype): Fix typo.
24506 2016-03-31 Jakub Jelinek <jakub@redhat.com>
24508 PR rtl-optimization/70460
24509 * ira.c (indirect_jump_optimize): Don't substitute LABEL_REF
24510 with operand from REG_LABEL_OPERAND, instead substitute
24511 SET_SRC or REG_EQUAL note content if it is a LABEL_REF.
24512 Don't do anything for REG_NON_LOCAL_GOTO jumps.
24514 2016-03-31 Martin Liska <mliska@suse.cz>
24516 * passes.c (execute_one_pass): Do not call
24517 todo_after for a discarded function.
24519 2016-03-31 Bin Cheng <bin.cheng@arm.com>
24521 * tree-ssa-loop-ivopts.c (struct comp_cost): New scrach field.
24522 (no_cost, infinite_cost): Initialize the new field.
24523 (get_computation_cost_at): Record setup cost.
24524 (determine_use_iv_cost_address): Skip cost computation for sub
24525 uses if we can estimate it without losing accuracy.
24527 2016-03-30 Jan Hubicka <hubicka@ucw.cz>
24529 * tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can't get realistic
24531 * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also
24532 max_loop_iterations_int.
24533 (tree_unswitch_outer_loop): Likewise.
24534 * tree-ssa-loop-ivopts.c (avg_loop_niter): Likewise.
24535 * tree-vect-loop.c (vect_analyze_loop_2): Likewise.
24537 2016-03-30 Richard Biener <rguenther@suse.de>
24539 PR middle-end/70450
24540 * fold-const.c (extract_muldiv_1): Fix thinko in wide_int::from usage.
24542 2016-03-30 Jakub Jelinek <jakub@redhat.com>
24545 * config/i386/i386.c (ix86_expand_vector_set): Fix up argument order
24546 in gen_blendm expander.
24548 2016-03-30 Nick Clifton <nickc@redhat.com>
24551 * config/arm/arm.c (arm_reload_out_hi): Add code to handle the
24552 case where we are already provided with an SImode SUBREG.
24554 2016-03-30 H.J. Lu <hongjiu.lu@intel.com>
24557 * config/i386/i386.c (ix86_expand_epilogue): Properly check
24558 conflict between DRAP register and __builtin_eh_return.
24560 2016-03-30 Michael Matz <matz@suse.de>
24561 Richard Biener <rguenther@suse.de>
24564 * ipa-polymorphic-call.c (struct type_change_info): Change
24565 speculative to an unsigned allowing to limit the work we do.
24566 (csftc_abort_walking_p): New inline function..
24567 (check_stmt_for_type_change): Limit the number of may-defs
24568 skipped for speculative devirtualization to
24569 max-speculative-devirt-maydefs.
24570 * params.def (max-speculative-devirt-maydefs): New param.
24571 * doc/invoke.texi (--param max-speculative-devirt-maydefs): Document.
24573 2016-03-30 Mike Stump <mrs@gcc.gnu.org>
24576 * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Use when profiling
24579 2016-03-30 Patrick Palka <ppalka@gcc.gnu.org>
24581 PR tree-optimization/59124
24582 * tree-vrp.c (register_edge_assert_for_2): For NAME != CST1
24583 where NAME = A +- CST2 add the assertion A != (CST1 -+ CST2).
24585 2016-03-29 Jeff Law <law@redhat.com>
24587 * tree-ssa-coalesce.c (struct ssa_conflicts): Fix typo in comment.
24589 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
24591 * tree-ssa-loop-ivcanon.c (try_peel_loop): Change type of peel
24594 2016-03-29 Thomas Schwinge <thomas@codesourcery.com>
24596 * config/gnu.h (CPP_SPEC, LIB_SPEC): Don't override.
24597 * config/i386/gnu.h (STARTFILE_SPEC): Use gcrt1.o instead of
24598 gcrt0.o if linking dynamically.
24600 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
24603 * ipa-devirt.c (methods_equal_p): New function.
24604 (compare_virtual_tables): Use it.
24605 * cgraph.h (symbol_table::symbol_suffix_separator): Declare.
24606 * cgraphclones.c (clone_function_name_1): Use
24607 symbol_table::symbol_suffix_separator.
24608 * coverage.c (build_var): Likewise.
24609 * symtab.c (symbol_table::symbol_suffix_separator): New.
24611 2016-03-29 Jakub Jelinek <jakub@redhat.com>
24613 PR rtl-optimization/70429
24614 * combine.c (simplify_shift_const_1): For ASHIFTRT don't optimize
24615 (cst1 >> count) >> cst2 into (cst1 >> cst2) >> count if
24616 mode != result_mode.
24619 * tree-inline.c (remap_decls): Don't add_local_decl if cfun is null.
24621 PR tree-optimization/70405
24622 * ssa-iterators.h (num_imm_uses): Add missing braces.
24624 2016-03-29 Vladimir Makarov <vmakarov@redhat.com>
24626 PR rtl-optimization/68695
24627 * ira-color.c (allocno_copy_cost_saving): New.
24628 (improve_allocation): Use it.
24630 2016-03-29 Richard Henderson <rth@redhat.com>
24632 PR middle-end/70355
24633 * lower-subreg.c (simplify_subreg_concatn): Reject paradoxical subregs.
24635 2016-03-29 Richard Biener <rguenther@suse.de>
24637 PR middle-end/70424
24638 * ipa-prop.c (ipa_compute_jump_functions_for_edge): Always
24639 use alignment returned by get_pointer_alignment_1 if it is
24640 bigger than BITS_PER_UNIT.
24641 * builtins.c (get_pointer_alignment_1): Do not return true
24642 for alignment extracted from SSA info.
24644 2016-03-28 James Bowman <james.bowman@ftdichip.com>
24646 * config/ft32/ft32.opt (mnodiv): New.
24647 * config/ft32/ft32.md (*divsi3, *modsi3): Qualify with TARGET_NODIV.
24648 * doc/invoke.texi (FT32 Options -mnodiv): New.
24650 2016-03-28 Kirill Yukhin <kirill.yukhin@intel.com>
24653 * config/i386/i386.md (define_split, andn): Fix modes.
24655 2016-03-26 Richard Biener <rguenther@suse.de>
24656 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
24659 * ipa-inline-transform.c (inline_call): Pass opts_for_fn (to->decl)
24661 TREE_OPTIMIZATION (DECL_FUNCTION_SPECIFIC_OPTIMIZATION (to->decl))
24662 as 2nd argument to cl_optimization_restore().
24664 2016-03-25 Richard Henderson <rth@redhat.com>
24667 * config/aarch64/aarch64.c (aarch64_asm_output_pool_epilogue): New.
24668 * config/aarch64/aarch64-protos.h: Declare it.
24669 * config/aarch64/aarch64.h (ASM_OUTPUT_POOL_EPILOGUE): New.
24671 2016-03-25 Alan Modra <amodra@gmail.com>
24674 * config/rs6000/constraints.md (j): Simplify.
24675 * config/rs6000/predicates.md (easy_fp_constant): Exclude
24677 * config/rs6000/rs6000.md (zero_fp): New mode_attr.
24678 (mov<mode>_hardfloat, mov<mode>_hardfloat32, mov<mode>_hardfloat64,
24679 mov<mode>_64bit_dm, mov<mode>_32bit): Use zero_fp in place of j
24680 in all constraint alternatives.
24681 (movtd_64bit_nodm): Delete "j" constraint alternative.
24683 2016-03-24 Aldy Hernandez <aldyh@redhat.com>
24685 * tree-ssa-propagate.c: Enhance docs for
24686 SSA_PROP_NOT_INTERESTING.
24688 2016-03-24 Aldy Hernandez <aldyh@redhat.com>
24690 * doc/extend.texi: Fix typo in documentation to pure attribute.
24692 2016-03-24 John David Anglin <danglin@gcc.gnu.org>
24695 * config/pa/pa.md (bswapdi2): Use a scratch register.
24697 2016-03-24 Richard Henderson <rth@redhat.com>
24699 PR middle-end/69845
24700 * fold-const.c (extract_muldiv_1): Correct test for multiplication
24703 2016-03-24 Uros Bizjak <ubizjak@gmail.com>
24705 * config/i386/i386.md (*anddi3_doubleword): Generate AND insn
24706 using ix86_expand_binary_operator instead of gen_andsi3.
24708 2016-03-24 Richard Biener <rguenther@suse.de>
24710 PR tree-optimization/70396
24711 * tree-vect-stmts.c (vectorizable_comparison): Use
24712 get_vectype_for_scalar_type.
24714 2016-03-24 Richard Biener <rguenther@suse.de>
24716 PR middle-end/70370
24717 * gimplify.c (gimplify_asm_expr): Handle !allows_mem outputs
24718 with register bases.
24720 2016-03-24 Richard Biener <rguenther@suse.de>
24722 PR tree-optimization/70372
24723 * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Use
24724 build_all_ones_cst to also handle vector types correctly.
24726 2016-03-23 Michael Meissner <meissner@linux.vnet.ibm.com>
24729 * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Do not set
24732 2016-03-23 Marek Polacek <polacek@redhat.com>
24735 * doc/invoke.texi: Document -Wignored-attributes.
24737 2016-03-23 Bin Cheng <bin.cheng@arm.com>
24739 PR tree-optimization/69042
24740 * params.def (PARAM_IV_CONSIDER_ALL_CANDIDATES_BOUND): Increase the
24741 parameter from 30 to 40.
24743 2016-03-23 Bin Cheng <bin.cheng@arm.com>
24745 PR tree-optimization/69042
24746 * tree-ssa-loop-ivopts.c (add_iv_candidate_for_use): Add IV cand
24747 for use with constant offset stripped in base.
24749 2016-03-23 Richard Biener <rguenther@suse.de>
24751 PR middle-end/70251
24752 * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Adjust
24753 mode compatibility check.
24754 (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise.
24756 2016-03-23 Jeff Law <law@redhat.com>
24758 PR tree-optimization/64058
24759 * tree-ssa-coalesce.c (struct coalesce_pair): Add new field
24761 (struct ssa_conflicts): Move up earlier in the file.
24762 (conflicts_, var_map_): New static variables.
24763 (initialize_conflict_count): New function to initialize the
24764 CONFLICT_COUNT field for each conflict pair.
24765 (compare_pairs): Lazily initialize the conflict count and use it
24766 as the first tie-breaker.
24767 (sort_coalesce_list): Add new arguments conflicts, map. Initialize
24768 and wipe conflicts_ and map_ around the call to qsort. Remove
24769 special case for 2 coalesce pairs.
24770 * bitmap.c (bitmap_count_unique_bits): New function.
24771 (bitmap_count_bits_in_word): New function, extracted from
24773 (bitmap_count_bits): Use bitmap_count_bits_in_word.
24774 * bitmap.h (bitmap_count_unique_bits): Declare it.
24776 2016-03-23 Ilya Enkovich <enkovich.gnu@gmail.com>
24779 * config/i386/sol2.h (ASM_OUTPUT_DEF_FROM_DECLS): Follow
24780 transparent alias chain for decl assembler name.
24781 * config/sol2.c (solaris_assemble_visibility): Likewise.
24783 2016-03-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
24785 * config/arm/arm1020e.md (1020call_op): Reduce reservation
24787 (v10_fdivs): Likewise.
24788 (v10_fdivd): Likewise.
24790 2016-03-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
24793 * config/arm/driver-arm.c (host_detect_local_cpu): Reorder exit logic
24794 to not call fclose twice on file.
24796 2016-03-23 Jakub Jelinek <jakub@redhat.com>
24798 PR tree-optimization/70354
24799 * tree-vect-patterns.c (vect_recog_vector_vector_shift_pattern): If
24800 oprnd0 is wider than oprnd1 and there is a cast from the wider
24801 type to oprnd1, mask it with the mask of the narrower type.
24804 * config/i386/i386.md (*anddi3_doubleword, *<code>di3_doubleword):
24805 Optimize TARGET_STV splitters, if high or low word of last argument
24808 2016-03-22 Jeff Law <law@redhat.com>
24811 tree-ssa-threadbackward.c
24812 (fsm_find_control_statement_thread_paths): Correctly distinguish
24813 between old style jump threads vs FSM jump threads.
24815 2016-03-22 Ilya Enkovich <enkovich.gnu@gmail.com>
24818 * config/i386/i386.c (scalar_chain::convert_op): Support
24819 uninitialized register usage case.
24821 2016-03-22 Richard Biener <rguenther@suse.de>
24823 PR middle-end/70251
24824 * genmatch.c (gen_transform): Adjust last parameter to a three-state
24826 (capture::gen_transform): ... to change behavior when substituting
24827 a condition into cond or not-cond expr context.
24828 (dt_simplify::gen_1): Adjust.
24829 * gimple-match-head.c: Include gimplify.h for unshare_expr.
24830 * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Revert
24831 last change and instead change to
24832 A + (B vcmp C ? 1 : 0) -> A - (B vcmp C ? -1 : 0).
24833 (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise.
24835 2016-03-22 Anthony Green <green@moxielogic.com>
24837 * config/moxie/moxiebox.h (CC1_SPEC): Define. Fix endianness
24838 issue for moxiebox targets.
24839 (CC1PLUS_SPEC): Ditto.
24841 2016-03-22 Richard Biener <rguenther@suse.de>
24843 PR middle-end/70333
24844 * fold-const.c (extract_muldiv_1): Properly perform multiplication
24847 2016-03-22 Kirill Yukhin <kirill.yukhin@intel.com>
24849 * config/i386/i386.c (def_builtin): Remove duplicated functionality.
24851 2016-03-22 Kirill Yukhin <kirill.yukhin@intel.com>
24854 * config/i386/i386.c (def_builtin): Handle
24855 OPTION_MASK_ISA_AVX512VL to be and-ed with other
24857 (const struct builtin_description bdesc_special_args[]):
24858 Remove duplicate ISA bits.
24860 2016-03-22 Jakub Jelinek <jakub@redhat.com>
24863 * config/i386/i386.c (ix86_expand_vecop_qihi): Don't bother computing
24864 d.perm[i] for i >= d.nelt. If not full_interleave, compute d.perm[i]
24865 in a way that works also for AVX512BW.
24868 * config/i386/i386.md (cvtsd2ss splitter): Unpack in destination
24869 instead of source if operands[1] is xmm16 and above and
24870 !TARGET_AVX512VL. Use avx512f_vec_dupv16sf_1 instead of
24871 vec_interleave_lowv4sf if we need to unpack xmm16 and above.
24874 * gimplify.c (gimplify_modify_expr): Call gimple_set_no_warning
24875 on assign if (*from_p) is a comparison, set it to
24876 TREE_NO_WARNING (*from_p).
24878 2016-03-21 Jakub Jelinek <jakub@redhat.com>
24880 PR middle-end/70326
24881 * lra.c (restore_scratches): Ignore deleted insns.
24883 2016-03-21 Marc Glisse <marc.glisse@inria.fr>
24884 Jakub Jelinek <jakub@redhat.com>
24886 PR tree-optimization/70317
24887 * match.pd (cmp @0 @0): Pass @0 instead of TYPE_MODE (TREE_TYPE (@0))
24890 2016-03-21 Uros Bizjak <ubizjak@gmail.com>
24893 * config/i386/i386.md (movxi): Use ix86_expand_vector_move instead
24894 of ix86_expand_move.
24896 (movti): Use general_operand for operand 1 predicate.
24898 2016-03-21 Martin Liska <mliska@suse.cz>
24900 * hsa-dump.c (dump_hsa_insn_1): dump default branch of SBR
24902 (dump_hsa_symbol): Dump BRIG offset of hsa_symbols.
24904 2016-03-21 Martin Liska <mliska@suse.cz>
24907 * ipa-icf.c (sem_function::parse): Skip static
24908 constructors and destructors.
24910 2016-03-21 Jakub Jelinek <jakub@redhat.com>
24913 * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If IDENT is
24914 function-like macro, peek following token(s) if it is followed
24915 by CPP_OPEN_PAREN token with optional padding in between, and
24916 if not, don't treat it like a macro.
24918 2016-03-21 Thomas Schwinge <thomas@codesourcery.com>
24919 Alexander Monakov <amonakov@ispras.ru>
24921 * config/nvptx/nvptx.c (nvptx_option_override): Don't emit sorry
24922 for the stabs debug format.
24924 2016-03-21 Richard Biener <rguenther@suse.de>
24926 PR tree-optimization/70310
24927 * tree-vect-generic.c (expand_vector_condition): Fold the built
24930 2016-03-21 Kirill Yukhin <kirill.yukhin@intel.com>
24933 * config/i386/sse.md: (define_insn "*vec_dup<mode>"/AVX2):
24934 Block third alternative for AVX-512VL target,
24936 2016-03-21 Martin Liska <mliska@suse.cz>
24939 * hsa-brig.c (emit_function_directives): Mark unemitted
24940 global variables for emission.
24941 * hsa-gen.c (hsa_symbol::hsa_symbol): Initialize a new flag.
24942 (get_symbol_for_decl): Likewise.
24943 * hsa.h (struct hsa_symbol): New flag.
24945 2016-03-21 Richard Biener <rguenther@suse.de>
24947 PR tree-optimization/70288
24948 * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Make sure
24949 we do not estimate unsimplified all-constant conditionals or
24950 switches as optimized away.
24952 2016-03-21 Andrey Belevantsev <abel@ispras.ru>
24954 PR rtl-optimization/69102
24955 * sched-deps.c (sched_analyze_insn): Do not set last_args_size field
24956 when we have a readonly dependency context.
24958 2016-03-18 Jeff Law <law@redhat.com>
24960 PR rtl-optimization/70263
24961 * ira.c (memref_used_between_p): Assert we found END in the insn chain.
24962 (update_equiv_regs): When trying to move a store to after the insn
24963 that sets the source of the store, make sure the store occurs after
24964 the insn that sets the source of the store. When successful note
24965 the REG_EQUIV note created in the dump file.
24967 2016-03-16 David Wohlferd <dw@LimeGreenSocks.com>
24968 Bernd Schmidt <bschmidt@redhat.com>
24970 * doc/extend.texi: Document more potential problems with basic asms.
24972 2016-03-18 Bernd Schmidt <bschmidt@redhat.com>
24974 PR rtl-optimization/70278
24975 * lra-constraints.c (split_reg): Handle the case where biggest_mode is
24978 2016-03-18 Jason Merrill <jason@redhat.com>
24980 * calls.c (load_register_parameters): Fix zero size sibcall logic.
24982 2016-03-18 Kirill Yukhin <kirill.yukhin@intel.com>
24984 * config/i386/sse.md: Use vpbroadcastq for broadcasting DF
24985 values to 128b regs.
24987 2016-03-18 Ilya Enkovich <enkovich.gnu@gmail.com>
24989 PR tree-optimization/70252
24990 * tree-vect-stmts.c (supportable_widening_operation): Check resulting
24991 boolean vector has a proper number of elements.
24992 (supportable_narrowing_operation): Likewise.
24994 2016-03-18 Tom de Vries <tom@codesourcery.com>
24997 * cgraph.c (cgraph_node::get_body): Set dump_file to NULL after save.
24999 2016-03-18 Jakub Jelinek <jakub@redhat.com>
25001 * reload1.c (emit_input_reload_insns): Use simplify_replace_rtx
25002 instead of replace_rtx for DEBUG_INSNs.
25004 2016-03-18 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
25006 * config/i386/znver1.md : Fix latencies of FP/SSE/AVX
25007 load type reservations.
25009 2016-03-17 John David Anglin <danglin@gcc.gnu.org>
25012 * config/pa/constraints.md: Revert 2015-02-13 change. Use
25013 define_constraint for "Q" and "T" constraints.
25015 2016-03-17 Evandro Menezes <e.menezes@samsung.com>
25017 Tweak the pipeline model for Exynos M1
25019 * config/aarch64/aarch64.c (exynosm1_tunings): Enable weak prefetching
25022 2016-03-17 David Malcolm <dmalcolm@redhat.com>
25025 * diagnostic-show-locus.c (compatible_locations_p): Handle the case
25026 where one or both locations aren't within a line_map.
25028 2016-03-17 H.J. Lu <hongjiu.lu@intel.com>
25031 * opts.c (finish_options): Don't set flag_pie to the default if
25032 -fpic, -fPIC, -fno-pic or -fno-PIC is used. Set flag_pic to 0
25035 2016-03-17 Joern Rennecke <joern.rennecke@embecosm.com>
25037 * config/i386/i386.md (*movv4qicc_insn+1..36): Pass
25038 true as ALL_REGS argument to replace_rtx.
25040 2016-03-17 Richard Biener <rguenther@suse.de>
25043 * dwarf2out.c (dwarf2out_early_finish): Process deferred_asm_name
25046 2016-03-17 Jakub Jelinek <jakub@redhat.com>
25049 * rtl.h (replace_rtx): Add ALL_REGS argument.
25050 * rtlanal.c (replace_rtx): Likewise. If true, use REGNO
25051 equality and assert mode is the same, instead of just rtx pointer
25053 * config/i386/i386.md (mov + arithmetics with load peephole): Pass
25054 true as ALL_REGS argument to replace_rtx.
25056 2016-03-17 Ilya Enkovich <enkovich.gnu@gmail.com>
25058 * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Apply
25059 for boolean vector with vector mode only.
25060 (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise.
25062 2016-03-17 Nick Clifton <nickc@redhat.com>
25065 * config/rx/rx.c (rx_print_integer): Print negative constants in
25068 2016-03-17 Jakub Jelinek <jakub@redhat.com>
25071 * rtlanal.c (replace_rtx): Revert 2016-03-16 change.
25073 2016-03-16 Richard Henderson <rth@redhat.com>
25074 Richard Biener <rguenth@suse.de>
25076 PR middle-end/70240
25077 PR middle-end/68215
25079 * gimplify.c (gimplify_expr) [VEC_COND_EXPR]: Gimplify the
25080 first operand as is_gimple_condexpr.
25082 PR middle-end/70240
25083 PR middle-end/68215
25085 2015-12-11 Eric Botcazou <ebotcazou@adacore.com>
25086 * tree-vect-generic.c (tree_vec_extract): Remove GSI parameter.
25087 Do not gimplify the result.
25088 (do_unop): Adjust call to tree_vec_extract.
25089 (do_binop): Likewise.
25090 (do_compare): Likewise.
25091 (do_plus_minus): Likewise.
25092 (do_negate): Likewise.
25093 (expand_vector_condition): Likewise.
25094 (do_cond): Likewise.
25096 2016-03-16 Richard Henderson <rth@redhat.com>
25099 * config/aarch64/aarch64.c (virt_or_elim_regno_p): New.
25100 (aarch64_classify_address): Use it.
25101 (aarch64_legitimize_address): Force all subexpressions of PLUS
25102 into registers. Simplify as (sfp+const)+reg or (reg+reg)+const.
25104 2016-03-16 Jakub Jelinek <jakub@redhat.com>
25105 Richard Biener <rguenth@suse.de>
25108 * rtlanal.c (replace_rtx): For REG, if from is a REG,
25109 return to even if only REGNO is equal, and assert
25112 2016-03-11 Jeff Law <law@redhat.com>
25114 PR rtl-optimization/70224
25115 * reorg.c (relax_delay_slots): Pass right argument to CROSSING_JUMP_P.
25117 2016-03-16 Richard Henderson <rth@redhat.com>
25119 PR middle-end/70199
25120 * function.h (struct function): Add has_forced_label_in_static.
25121 * gimplify.c (force_labels_r): Set it.
25122 * lto-streamer-in.c (input_struct_function_base): Read it.
25123 * lto-streamer-out.c (output_struct_function_base): Write it.
25124 * tree-inline.c (has_label_address_in_static_1): Remove.
25125 (copy_forbidden): Remove fndecl parameter; test
25126 has_forced_label_in_static.
25127 (inline_forbidden_p): Update call to copy_forbidden.
25128 (tree_versionable_function_p): Likewise.
25129 * ipa-chkp.c (chkp_instrumentable_p): Likewise.
25130 (chkp_versioning): Likewise.
25131 * tree-inline.h (copy_forbidden): Update decl.
25133 2016-03-16 Marek Polacek <polacek@redhat.com>
25136 * cgraphunit.c (cgraph_node::expand_thunk): Also build call to the
25137 function being thunked if the result type doesn't have fixed size.
25138 * gimplify.c (gimplify_modify_expr): Also set LHS if the result type
25139 doesn't have fixed size.
25141 2016-03-16 Bin Cheng <bin.cheng@arm.com>
25143 * tree-vect-loop.c (vect_analyze_loop_2): Fix wrong dump info by
25144 reporting malformed loop nest.
25146 2016-03-16 Tom de Vries <tom@codesourcery.com>
25149 * ipa-devirt.c (possible_polymorphic_call_targets): Move
25150 nodes.length () == 1 test to before first nodes[0] access.
25152 2016-03-16 Tom de Vries <tom@codesourcery.com>
25154 PR tree-optimization/68715
25155 * graphite-scop-detection.c (scop_detection::merge_sese): Add missing
25156 single_pred_p test.
25158 2016-03-16 Tom de Vries <tom@codesourcery.com>
25160 PR tree-optimization/68809
25161 * graphite-scop-detection.c (same_close_phi_node): Test if result types
25164 2016-03-16 Carlos O'Donell <carlos@redhat.com>
25165 Sandra Loosemore <sandra@codesourcery.com>
25167 * doc/extend.texi (Common Function Attributes): Describe ifunc impact
25168 on leaf attribute. Mention ELF interposition problems.
25170 2016-03-16 Alan Modra <amodra@gmail.com>
25172 PR rtl-optimization/69195
25173 PR rtl-optimization/47992
25174 * ira.c (indirect_jump_optimize): Ignore artificial defs.
25177 2016-03-15 Eric Botcazou <ebotcazou@adacore.com>
25180 * dwarf2out.c (flush_limbo_die_list): Really flush the limbo list.
25182 2016-03-15 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
25184 * config/avr/avr.md (rotl<mode>3): Set mode for operand 2.
25186 2016-03-15 Jakub Jelinek <jakub@redhat.com>
25188 PR rtl-optimization/70222
25189 * combine.c (simplify_shift_const_1): For A >> B >> C LSHIFTRT
25190 optimization if mode is different from result_mode, queue up masking
25191 of the result in outer_op. Formatting fix.
25193 PR middle-end/70239
25194 * tree-ssa-sccvn.c (VN_INFO_GET): Use safe_grow_cleared instead
25197 2016-03-15 Andrey Belevantsev <abel@ispras.ru>
25199 PR rtl-optimization/69032
25200 * sel-sched-ir.c (get_seqno_by_preds): Include both insn and head when
25201 looping backwards over basic block insns.
25203 2016-03-15 Andrey Belevantsev <abel@ispras.ru>
25206 * sel-sched-ir.c (merge_expr): Avoid changing the speculative pattern
25207 to non-speculative when propagating trap bits.
25209 2016-03-15 Andrey Belevantsev <abel@ispras.ru>
25211 PR rtl-optimization/63384
25212 * sel-sched.c (invoke_aftermath_hooks): Do not decrease issue_more on
25213 DEBUG_INSN_P insns.
25215 2016-03-15 Andrey Belevantsev <abel@ispras.ru>
25218 * sched-deps.c (get_implicit_reg_pending_clobbers): New function,
25219 factored out from ...
25220 (sched_analyze_insn): ... here.
25221 * sched-int.h (get_implicit_reg_pending_clobbers): Declare it.
25222 * sel-sched-ir.c (setup_id_implicit_regs): New function, use
25223 get_implicit_reg_pending_clobbers in it.
25224 (setup_id_reg_sets): Use setup_id_implicit_regs.
25225 (deps_init_id): Ditto.
25227 2016-03-15 Tom de Vries <tom@codesourcery.com>
25230 * cgraph.c (cgraph_node::get_body): Save, reset and restore
25232 * passes.c (execute_one_ipa_transform_pass): Add missing argument to
25233 execute_function_dump.
25234 (execute_one_pass): Don't dump function if it will be dumped after ipa
25237 2016-03-15 Segher Boessenkool <segher@kernel.crashing.org>
25239 * genrecog.c (match_pattern_2): If pred is NULL don't call
25240 safe_predicate_mode on it.
25242 2016-03-14 Jakub Jelinek <jakub@redhat.com>
25244 PR middle-end/70219
25245 * lra-constraints.c (delete_move_and_clobber): Change assertion
25246 to also allow dregno == 0.
25248 2016-03-14 Richard Henderson <rth@redhat.com>
25251 * tree-ssa-reassoc.c (ovce_extract_ops, optimize_vec_cond_expr): New.
25252 (can_reassociate_p): Allow ANY_INTEGRAL_TYPE_P.
25253 (reassociate_bb): Use optimize_vec_cond_expr; avoid
25254 optimize_range_tests, attempt_builtin_copysign and attempt_builtin_powi
25257 2016-03-14 Bernd Schmidt <bschmidt@redhat.com>
25260 * lra-lives.c (process_bb_lives): Also update biggest mode for hard
25262 (lra_create_live_ranges_1): initialize hard register biggest_mode to
25264 * lra-constraints.c (split_reg): For hard regs, try to find the
25265 biggest single-register mode used in the function.
25267 2016-03-14 Richard Biener <rguenther@suse.de>
25269 PR tree-optimization/56365
25270 * tree-ssa-phiopt.c (minmax_replacement): Handle alternate
25271 constants to compare against.
25273 2016-03-14 Segher Boessenkool <segher@kernel.crashing.org>
25276 * config/rs6000/rs6000.md (*ctr<mode>_internal1, *ctr<mode>_internal2,
25277 *ctr<mode>_internal5, *ctr<mode>_internal6): Also allow "d" as output.
25278 (define_split for the GPR case): Use int_reg_operand instead of
25279 gpc_reg_operand for the output.
25281 2016-03-14 Tom de Vries <tom@codesourcery.com>
25283 PR tree-optimization/70045
25284 * graphite-isl-ast-to-gimple.c (graphite_create_new_loop_guard): Unshare
25285 create_empty_if_region_on_edge argument.
25287 2016-03-13 Eric Botcazou <ebotcazou@adacore.com>
25289 * config/arm/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Define.
25290 (STACK_CHECK_PROTECT): Likewise.
25291 * config/i386/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise
25292 (STACK_CHECK_PROTECT): Likewise.
25293 * config/rs6000/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise
25294 (STACK_CHECK_PROTECT): Likewise.
25295 * config/rs6000/vxworksae.h (STACK_CHECK_PROTECT): Likewise.
25296 * config/sparc/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
25297 (STACK_CHECK_PROTECT): Likewise.
25299 2016-03-12 Andrey Belevantsev <abel@ispras.ru>
25301 PR rtl-optimization/69307
25302 * sel-sched.c (choose_best_pseudo_reg): Properly check for hard
25303 registers in modes that span more than one register.
25305 2016-03-12 Vladimir Makarov <vmakarov@redhat.com>
25308 * lra-constraints.c (delete_move_and_clobber): New.
25309 (remove_inheritance_pseudos): Use it.
25311 2016-03-12 Eric Botcazou <ebotcazou@adacore.com>
25314 * calls.c (emit_library_call_value_1): Clear the ECF_NOTHROW flag if
25315 the libcall is LCT_THROW.
25316 * explow.c (probe_stack_range): Pass LCT_THROW to emit_library_call
25317 for the checking routine.
25319 2016-03-11 Michael Meissner <meissner@linux.vnet.ibm.com>
25322 * config/rs6000/rs6000.md (round32<mode>2_fprs): Do not do the
25323 optimization if we have direct move.
25324 (roundu32<mode>2_fprs): Likewise.
25326 2016-03-11 Bernd Schmidt <bschmidt@redhat.com>
25329 * lra-remat.c (operand_to_remat): Disallow hard regs in the value t
25331 (reg_overlap_for_remat_p): Renamed from input_regno_present_p.
25332 Arguments swapped. All callers changed. Take reg_renumber into
25333 account, and Calculate and compare register ranges for hard regs.
25335 2016-03-11 Jeff Law <law@redhat.com>
25337 PR tree-optimization/70190
25338 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
25339 Handle cases where we can not extract the taken edge, even though we
25340 found a constant value.
25342 PR tree-optimization/64058
25343 * tree-ssa-coalesce.c (struct coalesce_pair): Add new field INDEX.
25344 (num_coalesce_pairs): Move up earlier in file.
25345 (find_coalesce_pair): Initialize the INDEX field for each pair
25347 (compare_pairs): No longer sort on the elements in each pair.
25348 Instead break ties with the index of the coalesce pair.
25350 2016-03-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
25353 * config/aarch64/aarch64-protos.h
25354 (aarch64_save_restore_target_globals): New prototype.
25355 * config/aarch64/aarch64-c.c (aarch64_pragma_target_parse):
25356 Call the above when popping pragma.
25357 * config/aarch64/aarch64.c (aarch64_save_restore_target_globals):
25359 (aarch64_set_current_function): Rewrite using the above.
25361 2016-03-11 Jakub Jelinek <jakub@redhat.com>
25363 PR tree-optimization/70177
25364 * gimple-expr.h (extract_ops_from_tree_1): Renamed to ...
25365 (extract_ops_from_tree): ... this. In the 2 argument
25366 overload remove _1 suffix.
25367 * gimple-expr.c (extract_ops_from_tree_1): Renamed to ...
25368 (extract_ops_from_tree): ... this.
25369 * gimple.c (gimple_build_assign, gimple_assign_set_rhs_from_tree):
25371 * tree-ssa-loop-niter.c (derive_constant_upper_bound): Likewise.
25372 * tree-ssa-forwprop.c (defcodefor_name): Call 3 operand
25373 extract_ops_from_tree instead of 2 operand one.
25375 2016-03-11 Alan Lawrence <alan.lawrence@arm.com>
25377 PR tree-optimization/70013
25378 * tree-sra.c (analyze_access_subtree): Also set grp_unscalarized_data
25379 for constant-pool entries.
25381 2016-03-11 Jakub Jelinek <jakub@redhat.com>
25383 PR rtl-optimization/70174
25384 * expmed.c (store_bit_field_using_insv): Use gen_lowpart_if_possible
25385 followed by gen_lowpart on force_reg instead of just gen_lowpart.
25387 PR tree-optimization/70169
25388 * tree-ssa-loop.c (gen_lsm_tmp_name): Handle FUNCTION_DECL and
25389 LABEL_DECL like VAR_DECL. Emit nothing instead of gcc_unreachable
25392 2016-03-11 Ilya Enkovich <enkovich.gnu@gmail.com>
25393 Jakub Jelinek <jakub@redhat.com>
25396 * config/i386/i386.c (scalar_chain::convert_reg): Skip uses
25397 of uninitialized values.
25399 2016-03-11 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
25401 * config/s390/s390.md ("trunctddd2"): Turn former define_insn into
25403 ("*trunctddd2"): New pattern definition.
25404 ("trunctdsd2"): Set prep_for_short_prec rounding mode for the
25407 2016-03-11 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
25409 * config/s390/s390.md (BFP_RND_*, DFP_RND_*): Add new constant
25410 definitions for BFP and DFP rounding modes.
25411 ("fixuns_truncdddi2", "fixuns_trunctddi2")
25412 ("fixuns_trunc<BFP:mode><GPR:mode>2", "fixuns_trunc<mode>si2")
25413 ("fix_trunc<DSF:mode><GPR:mode>2", "fix_trunc<mode>di2")
25414 ("fix_trunctf<mode>2"): Use the new constants instead of magic
25417 2016-03-11 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
25419 * config/s390/constraints.md: Adjust comment.
25420 ("Y"): Adjust comment. Rename s390_decompose_shift_count to
25421 s390_decompose_addrstyle_without_index.
25422 * config/s390/predicates.md (shift_count_or_setmem_operand):
25423 Rename to setmem_operand.
25424 * config/s390/s390-protos.h
25425 (s390_decompose_shift_count): Rename to
25426 s390_decompose_addrstyle_without_index.
25427 * config/s390/s390.c (s390_decompose_shift_count)
25428 (s390_mem_constraint, print_shift_count_operand)
25429 (print_operand_address, print_operand): Rename
25430 s390_decompose_shift_count to
25431 s390_decompose_addrstyle_without_index and rename
25432 print_shift_count_operand to print_addrstyle_operand troughout the
25434 * config/s390/s390.md ("setmem_long_<P:mode>", "*setmem_long")
25435 ("*setmem_long_and", "*setmem_long_31z", "*setmem_long_and_31z"):
25436 Rename shift_count_or_setmem_operand to setmem_operand.
25437 * config/s390/vx-builtins.md ("vec_insert<mode>")
25438 ("vec_promote<mode>"): Replace shift_count_or_setmem_operand with
25441 2016-03-10 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
25444 * config/rs6000/rs6000.c (rs6000_expand_atomic_compare_and_swap):
25445 Handle overlapping retval and newval.
25447 2016-03-10 Nick Clifton <nickc@redhat.com>
25450 * config/aarch64/aarch64.c
25451 (aarch64_override_options_after_change_1): When forcing
25452 flag_omit_frame_pointer to be true, use a special value that can
25453 be detected if this function is called again, thus preventing
25454 flag_omit_leaf_frame_pointer from being forced to be false.
25456 2016-03-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
25458 * common/config/aarch64/aarch64-common.c (aarch64_handle_option):
25459 Set x_flag_omit_leaf_frame_pointer when handling
25460 -momit-leaf-frame-pointer.
25462 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
25465 * cgraph.c (cgraph_node::dump): Dump split_part and
25466 indirect_call_target.
25467 * cgraph.h (cgraph_node): Add indirect_call_target flag.
25468 * ipa.c (has_addr_references_p): Cleanup.
25469 (is_indirect_call_target_p): New.
25470 (walk_polymorphic_call_targets): Do not mark virtuals that may be
25471 called indirectly as local.
25472 (symbol_table::remove_unreachable_nodes): Compute indirect_call_target.
25474 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
25477 * ipa-devirt.c (possible_polymorphic_call_targets): Do not ICE
25478 on cxa_pure_virtual.
25480 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
25483 * tree.c (free_lang_data_in_decl): Clear visibility of TYPE_DECL.
25485 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
25488 * tree.c (need_assembler_name_p): Only record main variant type names.
25490 2016-03-10 Christophe Lyon <christophe.lyon@linaro.org>
25493 * config/aarch64/aarch64.h (TARGET_FIX_ERR_A53_843419_DEFAULT):
25494 Always define to 0 or 1.
25495 (TARGET_FIX_ERR_A53_843419): New macro.
25496 * config/aarch64/aarch64-elf-raw.h
25497 (TARGET_FIX_ERR_A53_843419_DEFAULT): Update for above changes.
25498 * config/aarch64/aarch64-linux.h: Likewise.
25499 * config/aarch64/aarch64.c
25500 (aarch64_override_options_after_change_1): Do not default
25501 aarch64_nopcrelative_literal_loads to true if Cortex-A53 erratum
25503 (aarch64_attributes): Handle fix-cortex-a53-843419.
25504 (aarch64_can_inline_p): Likewise.
25505 * config/aarch64/aarch64.opt (aarch64_fix_a53_err843419): Save.
25507 2016-03-10 Alan Lawrence <alan.lawrence@arm.com>
25508 Jakub Jelinek <jakub@redhat.com>
25510 * common.opt (funconstrained-commons, flag_unconstrained_commons): New.
25511 * tree.c (array_at_struct_end_p): Do not limit to size of decl for
25512 DECL_COMMONS if flag_unconstrained_commons is set.
25513 * tree-dfa.c (get_ref_base_and_extent): Likewise.
25514 * doc/invoke.texi (Optimize Options): Add -funconstrained-commons.
25515 (funconstrained-commons): Document.
25517 2016-03-10 Christophe Lyon <christophe.lyon@linaro.org>
25519 * config/aarch64/t-aarch64 (OPTIONS_H_EXTRA): Add
25520 aarch64-fusion-pairs.def and aarch64-tuning-flags.def
25522 2016-03-10 Ilya Enkovich <enkovich.gnu@gmail.com>
25524 * tree-vect-stmts.c (vectorizable_mask_load_store): Check mask
25525 has a proper number of elements.
25527 2016-03-10 Alan Modra <amodra@gmail.com>
25529 PR rtl-optimization/69195
25530 PR rtl-optimization/47992
25531 * ira.c (recorded_label_ref): Delete.
25532 (update_equiv_regs): Return void.
25533 (indirect_jump_optimize): New function.
25534 (ira): Call indirect_jump_optimize and delete_trivially_dead_insns
25535 before regstat_compute_ri. Don't rebuild_jump_labels here.
25536 Delete update_regstat.
25538 2016-03-10 Richard Biener <rguenther@suse.de>
25540 PR tree-optimization/70128
25541 * tree-ssa-structalias.c (set_uids_in_ptset): Set
25542 vars_contains_nonlocal for any FUNCTION_DECL or LABEL_DECL.
25544 2016-03-09 Jakub Jelinek <jakub@redhat.com>
25546 PR tree-optimization/70152
25547 * tree-sra.c (replace_removed_params_ssa_names): Copy over
25548 SSA_NAME_OCCURS_IN_ABNORMAL_PHI from old_name to new_name.
25551 * config/i386/i386.md (truncdfsf2 splitter): Use gen_vec_concatv2df
25552 instead of gen_sse2_loadlpd.
25553 * config/i386/sse.md (*vec_concatv2df): Rename to...
25554 (vec_concatv2df): ... this.
25556 PR tree-optimization/70127
25557 * fold-const.c (operand_equal_p): Revert the 2015-10-28 change.
25559 2016-03-09 David Malcolm <dmalcolm@redhat.com>
25563 * diagnostic-show-locus.c (compatible_locations_p): New function.
25564 (layout::layout): Sanitize ranges using compatible_locations_p.
25566 2016-03-09 David Malcolm <dmalcolm@redhat.com>
25570 * diagnostic-show-locus.c (layout_range::layout_range): Replace
25571 location_range param with three const expanded_locations * and a
25573 (layout::layout): Replace call to
25574 rich_location::lazily_expand_location with get_expanded_location.
25575 Extract the range and perform location expansion here, passing
25576 the results to the layout_range ctor.
25577 * diagnostic.c (source_range::debug): Delete.
25578 * diagnostic.h (diagnostic_expand_location): Reimplement in terms
25579 of rich_location::get_expanded_location.
25580 * gcc-rich-location.c (get_range_for_expr): Delete.
25581 (gcc_rich_location::add_expr): Reimplement to avoid the
25582 rich_location::add_range overload that took a location_range,
25583 passing a location_t instead.
25585 2016-03-09 Richard Biener <rguenther@suse.de>
25586 Jakub Jelinek <jakub@redhat.com>
25588 PR tree-optimization/70138
25589 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
25590 Also skip vect_double_reduction_def.
25592 2016-03-09 Jakub Jelinek <jakub@redhat.com>
25595 * config/i386/sse.md (*vec_extract<mode>): Use %0 instead of %k0
25596 if the operand is "m".
25598 2016-03-09 Nathan Sidwell <nathan@acm.org>
25600 * config/nvptx/nvptx.c (nvptx_option_override): Don't kill debug level.
25602 2016-03-09 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
25604 * config/i386/i386.c (processor_target_table): Fix cost table
25605 intialization order for znver1.
25607 2016-03-08 Jakub Jelinek <jakub@redhat.com>
25609 * ipa-polymorphic-call.c (walk_ssa_copies): Fix spelling
25610 - becuase -> because.
25611 * ipa-reference.c (ignore_module_statics): Likewise.
25612 * cgraph.c (cgraph_node::get_body): Likewise.
25613 * ipa-inline.c (early_inliner): Likewise.
25614 * ipa-devirt.c (types_same_for_odr): Likewise.
25615 * tree-streamer-out.c (pack_ts_type_common_value_fields): Likewise.
25616 * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Likewise.
25618 2016-03-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
25620 * tree-ssa-math-opts.c: Fix typo in comment.
25622 2016-03-08 Jakub Jelinek <jakub@redhat.com>
25625 * config/i386/i386.c (scalar_chain::make_vector_copies,
25626 scalar_chain::convert_reg): Call end_sequence in between
25627 get_insns and emit_conversion_insns rather than after both
25630 2016-03-07 Uros Bizjak <ubizjak@gmail.com>
25633 * config/i386/i386.h (machine_function): Add
25634 pc_thunk_call_expanded flag.
25635 (ix86_pc_thunk_call_expanded): New define.
25636 * config/i386/i386.md (set_got, set_got_labelled): New expanders.
25637 (*set_got): Rename insn pattern from set_got.
25638 (*set_got_labelled): Rename inst pattern from set_got_labelled.
25639 * config/i386/i386.c (ix86_compute_frame_layout): Use
25640 ix86_pc_thunk_call_expanded to prevent red-zone.
25642 2016-03-07 Martin Jambor <mjambor@suse.cz>
25644 * hsa.h (hsa_get_ctor_statements): Declare.
25645 (hsa_get_dtor_statements): Likewise.
25646 (hsa_get_kernel_dispatch_type): Likewise.
25647 * hsa.c (hsa_get_ctor_statements): New function.
25648 (hsa_get_dtor_statements): Likewise.
25649 (hsa_get_kernel_dispatch_type): Likewise.
25650 * hsa-brig.c (hsa_cdtor_statements): Removed.
25651 (hsa_output_libgomp_mapping): Use hsa_get_ctor_statements and
25652 hsa_get_dtor_statements.
25653 * hsa-gen.c (hsa_kernel_dispatch_type): Removed.
25654 (get_hsa_kernel_dispatch_offset): Use hsa_get_kernel_dispatch_type.
25656 2016-03-07 Andre Vieira <andre.simoesdiasvieira@arm.com>
25658 * config/arm/arm-cores.def (cortex-r8): New.
25659 * config/arm/arm-tables.opt (cortex-r8): Regenerate.
25660 * config/arm/arm-tune.md: Likewise.
25661 * doc/invoke.texi: Add cortex-r8 to list of cpu values.
25663 2016-03-07 Martin Sebor <msebor@redhat.com>
25665 PR rtl-optimization/19705
25666 * doc/invoke.texi (Options That Control Optimization): Clarify
25667 -fno-branch-count-reg.
25669 2016-02-26 Richard Biener <rguenther@suse.de>
25670 Jeff Law <law@redhat.com>
25672 PR tree-optimization/69740
25673 * cfghooks.c (remove_edge): Request loop fixups if we delete
25674 an edge that might turn an irreducible loop into a natural
25676 * cfgloop.h (check_verify_loop_structure): Clear LOOPS_NEED_FIXUP.
25677 Move after definition of loops_state_clear.
25679 2016-03-07 Bin Cheng <bin.cheng@arm.com>
25681 PR rtl-optimization/69052
25682 * rtlanal.c (commutative_operand_precedence): Set higher precedence
25685 2016-03-07 Tom de Vries <tom@codesourcery.com>
25687 PR tree-optimization/70116
25688 * tree-ssa-tail-merge.c (merge_stmts_p): New function, handling
25689 is_tm_ending stmts and ubsan/asan internal functions.
25690 (find_duplicate): Use it. Don't test is_tm_ending here.
25692 2016-03-07 Richard Biener <rguenther@suse.de>
25694 PR tree-optimization/70115
25695 * tree-ssa-loop-ivcanon.c (propagate_into_all_uses): Remove.
25696 (propagate_constants_for_unrolling): Use replace_uses_by.
25698 2016-03-07 Nathan Sidwell <nathan@codesourcery.com>
25700 PR middle-end/69916
25701 * omp-low.c (struct oacc_loop): Add ifns.
25702 (new_oacc_loop_raw): Initialize it.
25703 (finish_oacc_loop): Clear mask & flags if no ifns.
25704 (oacc_loop_discover_walk): Count IFN_GOACC_LOOP calls.
25705 (oacc_loop_xform_loop): Add ifns arg & adjust.
25706 (oacc_loop_process): Adjust oacc_loop_xform_loop call.
25708 2016-03-07 Richard Henderson <rth@redhat.com>
25711 * tree-outofssa.c (emit_partition_copy): Flush pending stack adjust.
25712 (insert_value_copy_on_edge): Likewise.
25714 2016-03-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
25716 * config/arm/arm_neon.h: Show error if using with soft-float ABI.
25718 2016-03-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
25721 * config/i386/sol2.h (STACK_REALIGN_DEFAULT): Define.
25723 2016-03-05 Venkataramanan Kumar <Venkataramanan.kumar@amd.com>
25725 * config/i386/i386.c (znver1_cost): Fix Multiply cost.
25727 2016-03-05 Venkataramanan Kumar <Venkataramanan.kumar@amd.com>
25729 Fix sseimul type attribute.
25730 * config/i386/znver1.md
25731 (znver1_sseimul, znver1_sseimul_avx256, znver1_sseimul_load,
25732 znver1_sseimul_avx256_load) : Fix the type attribute.
25733 (znver1_sseimul_di, znver1_sseimul_load_di): Fix type attribute,
25734 pipe usage and latency.
25736 2016-03-05 Jakub Jelinek <jakub@redhat.com>
25739 * tree-inline.c (copy_tree_body_r): When cancelling ADDR_EXPR
25740 of INDIRECT_REF and ADDR_EXPR changed type, fold_convert it
25743 2016-03-04 Bernd Schmidt <bschmidt@redhat.com>
25746 * targhooks.c (default_vector_alignment): Limit to MAX_OFILE_ALIGNMENT.
25748 PR rtl-optimization/69941
25749 * postreload.c (reload_combine_recognize_pattern): Ensure all uses of
25750 the reg share its mode.
25752 2016-03-04 Jeff Law <law@redhat.com>
25754 PR tree-optimization/69196
25755 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
25756 If the both SSA_NAMEs are anonymous, then consider them unassociated
25757 and include the PHI in the statement count.
25759 2016-03-05 Tom de Vries <tom@codesourcery.com>
25761 * omp-low.c (check_omp_nesting_restrictions): Check for non-oacc
25762 construct in oacc routine. Check for oacc region in oacc routine.
25764 2016-03-04 Jakub Jelinek <jakub@redhat.com>
25767 * config/i386/i386.c (decide_alg): Add RECUR argument. Revert
25768 2016-02-22 changes, instead don't recurse if RECUR is already true.
25769 Don't change *dynamic_check if RECUR. Adjust recursive caller
25770 to pass true to the new argument.
25771 (ix86_expand_set_or_movmem): Adjust decide_alg caller.
25774 * config/i386/sse.md (vec_set_lo_<mode><mask_name>,
25775 <extract_type_2>_vinsert<shuffletype><extract_suf_2>_mask): Formatting
25777 (vec_set_hi_<mode><mask_name>): Likewise. Swap VEC_CONCAT operands.
25779 2016-03-04 Bernd Schmidt <bschmidt@redhat.com>
25781 PR rtl-optimization/57676
25782 * lra-assigns.c (lra_assign): Guard test for maximum iterations
25783 with flag_checking.
25785 2016-03-04 Ilya Enkovich <enkovich.gnu@gmail.com>
25787 * tree-vect-patterns.c (search_type_for_mask): Handle
25788 comparison of booleans.
25790 2016-03-04 Jakub Jelinek <jakub@redhat.com>
25792 * doc/extend.texi (__builtin_alloca, __builtin_alloca_with_align):
25796 * dwarf2out.c (prune_unused_types_walk_loc_descr): Handle
25797 all other ops that have dw_val_class_die_ref operands,
25798 and DW_OP_GNU_entry_value.
25800 2016-03-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
25802 PR rtl-optimization/69904
25803 * config/arm/arm.c (arm_cannot_copy_insn_p):
25804 Return true for load-exclusive instructions.
25806 2016-03-03 Jakub Jelinek <jakub@redhat.com>
25809 * tree-vect-stmts.c (vect_mark_relevant): Remove USED_IN_PATTERN
25810 argument, if STMT_VINFO_IN_PATTERN_P (stmt_info), always mark
25811 the pattern no matter if it is used just by non-pattern, pattern
25813 (process_use, vect_mark_stmts_to_be_vectorized): Adjust callers.
25814 * tree-vect-patterns.c (vect_recog_vector_vector_shift_pattern): If
25815 oprnd1 def_stmt is in pattern, don't look through it.
25817 2016-03-03 Marek Polacek <polacek@redhat.com>
25819 PR middle-end/70050
25820 * match.pd (X % -Y): Add INTEGRAL_TYPE_P check.
25822 2016-03-03 Martin Liska <mliska@suse.cz>
25824 PR tree-optimization/70043
25825 * tree-vect-loop.c (optimize_mask_stores): Move iterator to
25826 previous statement if we see a debug statement.
25828 2016-03-03 Richard Biener <rguenther@suse.de>
25830 PR tree-optimization/55936
25831 * tree-vrp.c (compare_name_with_value): Add use_equiv_p
25832 parameter and guard unsafe equivalence use.
25833 (vrp_evaluate_conditional_warnv_with_ops): Always use
25834 safe equivalences but not via the quadratic compare_names
25837 2016-03-03 Michael Collison <michael.collison@linaro.org>
25840 * config/arm/arm.md (*subsi3_carryin_const): Change predicate
25841 for operand 1 to s_register_operand. Change predicate for operand
25842 2 to arm_not_immediate_operand.
25844 2016-03-02 H.J. Lu <hongjiu.lu@intel.com>
25846 * doc/tm.texi: Regenerated.
25848 2016-03-02 Richard Henderson <rth@redhat.com>
25851 * simplify-rtx.c (simplify_plus_minus): Allow reassoc without
25852 simplification when all args are positive non-fixed registers.
25854 2016-03-02 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
25856 * target.def (lra_p): Specify that new ports should use LRA.
25858 2016-03-02 Jakub Jelinek <jakub@redhat.com>
25861 * gimplify.c (gimplify_decl_expr): For decls with REFERENCE_TYPE, also
25862 gimplify_type_sizes the type they refer to.
25863 (omp_notice_variable): Handle reference vars to VLAs.
25864 * omp-low.c (lower_omp_target): Emit setup of OMP_CLAUSE_PRIVATE
25865 reference to VLA decls in the second pass instead of first pass.
25867 2016-03-02 Tom de Vries <tom@codesourcery.com>
25869 PR tree-optimization/68659
25870 * graphite-isl-ast-to-gimple.c (collect_all_ssa_names): Handle
25871 new_expr == NULL_TREE.
25872 (get_new_name): Handle ADDR_EXPR.
25874 2016-03-02 Bin Cheng <bin.cheng@arm.com>
25876 PR rtl-optimization/69052
25877 * loop-invariant.c (canonicalize_address): New function.
25878 (inv_can_prop_to_addr_use): Check validity of address expression
25879 which is canonicalized by above function.
25881 2016-03-02 Alan Modra <amodra@gmail.com>
25884 * ipa-icf.c (sem_variable::merge): Do not merge an alias with
25887 2016-03-02 Jakub Jelinek <jakub@redhat.com>
25890 * config/i386/i386.md (kmovw): Move m constraint to 2nd alternative.
25891 (*movhi_internal): Put mask moves from and to memory separately
25892 from moves from/to GPRs.
25894 2016-03-02 Richard Biener <rguenther@suse.de>
25896 * genmatch.c (dt_node::gen_kids): Fix match code-gen for embedded
25897 GENERIC expressions in GIMPLE.
25899 2016-03-02 Richard Biener <rguenther@suse.de>
25901 * config/i386/i386.c (type_natural_mode): Fix typo.
25903 2016-03-02 Nick Clifton <nickc@redhat.com>
25905 * config.gcc (mep-*-elf): Add newlib-stdint.h to tm_file.
25907 2016-03-02 Richard Biener <rguenther@suse.de>
25908 Uros Bizjak <ubizjak@gmail.com>
25911 * config/i386/i386.c (type_natural_mode): Handle XFmode vectors.
25913 2016-03-02 Richard Biener <rguenther@suse.de>
25915 PR middle-end/67278
25916 * tree-cfg.c (verify_expr): Adjust BIT_FIELD_REF case.
25918 2016-03-02 Marek Polacek <polacek@redhat.com>
25921 * gimplify.c (gimplify_va_arg_expr): Use expanded location for the
25922 "is promoted to" warning.
25924 2016-03-01 DJ Delorie <dj@redhat.com>
25926 * config.gcc: Deprecate mep-*.
25928 2016-03-01 Vladimir Makarov <vmakarov@redhat.com>
25930 PR middle-end/70025
25931 * lra-constraints.c (regno_val_use_in): New.
25932 (match_reload): Use it instead of regno_use_in.
25934 2016-03-01 Eric Botcazou <ebotcazou@adacore.com>
25936 PR rtl-optimization/70007
25937 * gcse.c (compute_ld_motion_mems): Tidy up and also invalidate memory
25938 references present in REG_EQUAL notes attached to non-SET patterns.
25940 2016-03-01 Jeff Law <law@redhat.com>
25942 PR tree-optimization/69196
25943 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
25944 Appropriately clamp the number of statements to copy when the
25945 thread path does not traverse a loop backedge.
25947 PR tree-optimization/69196
25948 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
25949 Do count some PHIs in the thread path against the insn count. Decrease
25950 final statement count by one as the control statement in the last
25951 block will get removed. Remove special cased code for handling PHIs
25954 2016-03-01 Uros Bizjak <ubizjak@gmail.com>
25957 * config/i386/i386.c (ix86_output_call_insn): Add -masm=intel
25958 asm dialect alternatives to explicit GOTPCREL calls.
25960 2016-03-01 Eric Botcazou <ebotcazou@adacore.com>
25963 * ira.c (do_reload): Issue warning for generic stack checking here...
25964 * reload1.c (reload): ...instead of here and streamline it.
25966 2016-03-01 Nick Clifton <nickc@redhat.com>
25968 * config.gcc (cr16-*-elf): Add newlib-stdint.h to tm_file.
25970 2016-03-01 Richard Biener <rguenther@suse.de>
25972 PR tree-optimization/69983
25973 * tree-chrec.c (eq_evolutions_p): Handle conversions, compare
25974 types and fall back to operand_equal_p.
25976 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
25979 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
25981 * config/s390/constraints.md ("jm8"): New constraint.
25982 * config/s390/predicates.md ("const_int_8bitset_operand"): New
25984 * config/s390/s390.md ("*setmem_long", "*setmem_long_and"): Merge
25986 ("*setmem_long<setmem_and>"): New pattern.
25987 ("*setmem_long_31z", "*setmem_long_and_31z"): Merge
25989 ("*setmem_long_31z<setmem_and>"): New pattern.
25990 * config/s390/subst.md ("setmem_31z_subst", "setmem_and_subst"):
25991 New substitution rules with the required attributes.
25994 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
25997 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
25999 * gensupport.c (process_substs_on_one_elem): Split loop to
26000 complete mark_operands_used_in_match_dup on all expressions in the
26002 (adjust_operands_numbers): Inline into process_substs_on_one_elem
26003 and remove function.
26005 2016-03-01 Richard Biener <rguenther@suse.de>
26007 PR middle-end/70022
26008 * fold-const.c (fold_indirect_ref_1): Fix range checking for
26009 vector BIT_FIELD_REF extract.
26011 2016-03-01 Richard Biener <rguenther@suse.de>
26013 PR tree-optimization/69994
26014 * tree-ssa-reassoc.c (ops_equal_values_p): Handle missing case.
26016 2016-03-01 Ilya Enkovich <enkovich.gnu@gmail.com>
26018 PR tree-optimization/69956
26019 * tree-vect-stmts.c (supportable_widening_operation): Support
26020 multi-step conversion of boolean vectors.
26021 (supportable_narrowing_operation): Likewise.
26023 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
26025 * config/s390/s390.c (s390_decompose_address): Don't accept SImode
26028 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
26030 * config/s390/subst.md (DSI_VI): New mode iterator.
26031 ("addr_style_op_subst"): Use DSI_VI instead of DSI.
26032 * config/s390/vector.md ("vec_set<mode>"): Move expander before
26033 the insn definition.
26034 ("*vec_set<mode>"): Change predicate and add alternative to
26035 support only either register or const_int operands as element
26037 ("*vec_set<mode>_plus"): New pattern to support reg + const_int
26039 ("vec_extract<mode>"): New expander.
26040 ("*vec_extract<mode>"): New insn definition supporting reg and
26041 const_int element selectors.
26042 ("*vec_extract<mode>_plus"): New insn definition supporting
26043 reg+const_int element selectors.
26044 ("rotl<mode>3", "ashl<mode>3", "ashr<mode>3"): Merge into the
26045 following expander+insn definition.
26046 ("<vec_shifts_name><mode>3"): New expander.
26047 ("*<vec_shifts_name><mode>3<addr_style_op>"): New insn definition.
26049 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
26051 * config/s390/s390.md ("*tabort_1"): Change predicate to
26052 nonmemory_operand. Add a second alternative to cover
26053 register as well as const int operands.
26054 ("*tabort_1_plus"): New pattern definition.
26056 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
26058 * config/s390/s390.md ("*ashrdi3_cc_31")
26059 ("*ashrdi3_cconly_31""*ashrdi3_cc_31_and")
26060 ("*ashrdi3_cconly_31_and", "*ashrdi3_31_and", "*ashrdi3_31"):
26061 Merge insn definitions into ...
26062 ("*ashrdi3_31<addr_style_op_cc><masked_op_cc><setcc><cconly>"):
26063 New pattern definition.
26064 ("*ashr<mode>3_cc", "*ashr<mode>3_cconly", "ashr<mode>3", )
26065 ("*ashr<mode>3_cc_and", "*ashr<mode>3_cconly_and")
26066 ("*ashr<mode>3_and"): Merge insn definitions into ...
26067 ("*ashr<mode>3<addr_style_op_cc><masked_op_cc><setcc><cconly>"):
26068 New pattern definition.
26069 * config/s390/subst.md ("addr_style_op_cc_subst")
26070 ("masked_op_cc_subst", "setcc_subst", "cconly_subst"): New
26071 substitutions patterns plus attributes.
26072 Add ashiftrt to SUBST iterator.
26074 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
26076 * config/s390/s390.md ("<shift><mode>3"): Change predicate of
26077 op2 to nonmemory_operand.
26078 ("*<shift>di3_31", "*<shift>di3_31_and"):
26079 Merge into single pattern definition ...
26080 ("*<shift>di3_31<addr_style_op><masked_op>"): New pattern.
26081 ("*<shift><mode>3", "*<shift><mode>3_and"): Merge into single
26082 pattern definition ...
26083 ("*<shift><mode>3<addr_style_op><masked_op>"): New pattern.
26084 * config/s390/subst.md: Add ashift and lshiftrt to SUBST
26087 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
26089 * config/s390/predicates.md (const_int_6bitset_operand): New
26091 * config/s390/s390.md: Include subst.md.
26092 ("rotl<mode>3"): New expander.
26093 ("rotl<mode>3", "*rotl<mode>3_and"): Merge insn definitions into
26095 ("*rotl<mode>3<addr_style_op><masked_op>"): New insn definition.
26096 * config/s390/subst.md: New file.
26098 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
26100 * config/s390/s390.md ("op_type", "atype", "length" attributes):
26101 Remove RRR type. It doesn't really exist.
26102 ("RRer", "f0", "v0", "vf", "vd", "op1", "Rf"): Remove mode
26104 ("BFP", "DFP", "nDSF", "nDFDI"): Add mode attributes.
26105 ("*cmp<mode>_ccs", "floatdi<mode>2", "add<mode>3")
26106 ("*add<mode>3_cc", "*add<mode>3_cconly", "sub<mode>3")
26107 ("*sub<mode>3_cc", "*sub<mode>3_cconly", "mul<mode>3")
26108 ("fma<mode>4", "fms<mode>4", "div<mode>3", "*neg<mode>2")
26109 ("*abs<mode>2", "*negabs<mode>2", "sqrt<mode>2"): Override
26110 `enabled' attribute.
26112 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
26114 * gensupport.c (process_substs_on_one_elem): Split loop to
26115 complete mark_operands_used_in_match_dup on all expressions in the
26117 (adjust_operands_numbers): Inline into process_substs_on_one_elem
26118 and remove function.
26120 2016-02-29 Eric Botcazou <ebotcazou@adacore.com>
26123 * config/sparc/sparc.c (NWORDS_UP): Rename to...
26124 (CEIL_NWORDS): ...this. Use CEIL macro.
26125 (compute_fp_layout): Adjust to above renaming.
26126 (function_arg_union_value): Likewise.
26127 (sparc_arg_partial_bytes): Likewise.
26128 (sparc_function_arg_advance): Likewise.
26130 2016-02-29 Jeff Law <law@redhat.com>
26132 PR tree-optimization/70005
26133 * tree-ssa-uncprop.c (associate_equivalences_with_edges): Handle case
26134 where an object with a boolean range is compared against a value
26137 PR tree-optimization/69999
26138 * gimple-ssa-split-paths.c (split_paths): When duplicating a block
26139 with an outgoing edge marked with EDGE_IRREDUCIBLE_LOOP, schedule
26142 2016-02-29 Richard Biener <rguenther@suse.de>
26144 PR tree-optimization/69994
26145 * tree-ssa-reassoc.c (gimple_nop_conversion_p): New function.
26146 (get_unary_op): Look through nop conversions.
26147 (ops_equal_values_p): New function, look for equality diregarding
26149 (eliminate_plus_minus_pair): Use ops_equal_values_p
26150 (repropagate_negates): Do not use get_unary_op here.
26152 2016-02-29 Martin Liska <mliska@suse.cz>
26154 * system.h: Poison ENABLE_CHECKING macro.
26156 2016-02-29 Martin Liska <mliska@suse.cz>
26158 * hsa-gen.c (gen_body_from_gimple): Dump only if TDF_DETAILS
26159 is presented in dump flags.
26160 * hsa-regalloc.c (linear_scan_regalloc): Likewise.
26161 (hsa_regalloc): Likewise.
26163 2016-02-19 Richard Biener <rguenther@suse.de>
26165 PR tree-optimization/69980
26166 * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Update
26167 permutation of those we need to keep.
26169 2016-02-29 Eric Botcazou <ebotcazou@adacore.com>
26172 * config/sparc/sparc.c (ROUND_ADVANCE): Rename to...
26173 (NWORDS_UP): ...this
26174 (init_cumulative_args): Minor tweaks.
26175 (sparc_promote_function_mode): Likewise.
26176 (scan_record_type): Delete.
26177 (traverse_record_type): New function template.
26178 (classify_data_t): New structure type.
26179 (classify_registers): New inline function.
26180 (function_arg_slotno): In 64-bit mode, bail out early if FP slots are
26181 exhausted. Instantiate traverse_record_type on classify_registers and
26182 deal with the case of a structure passed in slot #15 with no FP field
26184 (assign_data_t): New structure type.
26185 (compute_int_layout): New static function.
26186 (compute_fp_layout): Likewise.
26187 (count_registers): New inline function.
26188 (assign_int_registers): New static function.
26189 (assign_fp_registers): Likewise.
26190 (assign_registers): New inline function.
26191 (function_arg_record_value_1): Delete.
26192 (function_arg_record_value_2): Likewise.
26193 (function_arg_record_value_3): Likewise.
26194 (function_arg_record_value): Adjust to above changes. Instantiate
26195 traverse_record_type on count_registers to first count the number of
26196 registers to be used and then on assign_registers to assign them.
26197 (function_arg_union_value): Adjust to above renaming.
26198 (sparc_function_arg_1); Minor tweaks. Remove commented out code.
26199 (sparc_arg_partial_bytes): Adjust to above renaming. Deal with the
26200 case of a structure passed in slot #15
26201 (sparc_function_arg_advance): Likewise.
26202 (function_arg_padding): Minor tweak.
26204 2016-02-29 Richard Biener <rguenther@suse.de>
26206 PR tree-optimization/69720
26207 * tree-vect-loop.c (get_initial_def_for_reduction): Avoid
26208 the adjustment_def path for possibly vectorized defs.
26209 (vect_create_epilog_for_reduction): Handle vectorized initial
26212 2016-02-28 Eric Botcazou <ebotcazou@adacore.com>
26214 * config/i386/cygming.h (STACK_REALIGN_DEFAULT): Define.
26216 2016-02-27 Jeff Law <law@redhat.com>
26219 2016-02-26 Richard Biener <rguenther@suse.de>
26220 Jeff Law <law@redhat.com>
26222 PR tree-optimization/69740
26223 * cfghooks.c (remove_edge): Request loop fixups if we delete
26224 an edge that might turn an irreducible loop into a natural
26227 2016-02-27 Jakub Jelinek <jakub@redhat.com>
26229 PR rtl-optimization/69896
26230 * tree-vect-generic.c (get_compute_type): Avoid single element
26233 2016-02-26 Evandro Menezes <e.menezes@samsung.com>
26235 Rename the AArch64 tuning option and related functions to enable the
26236 Newton series for the reciprocal square root to reflect its
26237 approximative characteristic.
26239 * config/aarch64/aarch64-protos.h (aarch64_emit_swrsqrt): Rename
26240 function to "aarch64_emit_approx_rsqrt".
26241 * config/aarch64/aarch64-tuning-flags.def: Rename tuning flag to
26242 AARCH64_EXTRA_TUNE_APPROX_RSQRT.
26243 * config/aarch64/aarch64.c (exynosm1_tunigs): Use new flag name.
26244 (xgene1_tunings): Likewise.
26245 (use_rsqrt_p): Likewise.
26246 (aarch64_emit_swrsqrt): Use new function name.
26247 * config/aarch64/aarch64-simd.md (aarch64_rsqrts_*): Likewise.
26248 * config/aarch64/aarch64.opt (mlow-precision-recip-sqrt): Reword the
26249 text explaining this option.
26250 * doc/invoke.texi (-mlow-precision-recip-sqrt): Likewise.
26252 2016-02-26 Jakub Jelinek <jakub@redhat.com>
26255 * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
26256 complain about -mallow-movmisalign without -mvsx if
26257 TARGET_ALLOW_MOVMISALIGN was not set explicitly.
26259 2016-02-26 Joel Sherrill <joel@rtems.org>
26261 * config.gcc: Add x86_64-*-rtems*.
26262 * config/i386/rtems-64.h: New file.
26264 2016-02-26 Joel Sherrill <joel@rtems.org>
26266 * config.gcc: Add aarch64-*-rtems*.
26267 * config/aarch64/rtems.h: New file.
26269 2016-02-26 Segher Boessenkool <segher@kernel.crashing.org>
26272 * config/rs6000/rs6000.c (rs6000_insn_for_shift_mask): Print rlwinm
26273 shift amount using %h. Add comment.
26275 2016-02-26 Richard Biener <rguenther@suse.de>
26276 Jeff Law <law@redhat.com>
26278 PR tree-optimization/69740
26279 * cfghooks.c (remove_edge): Request loop fixups if we delete
26280 an edge that might turn an irreducible loop into a natural
26283 2016-02-26 Martin Jambor <mjambor@suse.cz>
26285 PR middle-end/69920
26286 * tree-sra.c (sra_modify_assign): Do not remove loads of
26287 uninitialized aggregates to SSA_NAMEs.
26289 2016-02-26 Richard Henderson <rth@redhat.com>
26292 * config/s390/s390.md (risbg and risbgn splitters): Allocate new
26293 pseudo in case the target rtx matches the source of the left
26296 2016-02-26 Martin Jambor <mjambor@suse.cz>
26299 * hsa.h (hsa_type_packed_p): Declare.
26300 * hsa.c (hsa_type_packed_p): New function.
26301 * hsa-gen.c (mem_type_for_type): Use unsigned type for packed
26303 (gen_hsa_insns_for_store): Use hsa_type_packed_p.
26304 * hsa-brig.c (emit_basic_insn): Likewise.
26306 2016-02-26 Martin Jambor <mjambor@suse.cz>
26309 * hsa-gen.c (gen_hsa_phi_from_gimple_phi): Use proper hsa type for
26311 (gen_hsa_addr): Allow integer constants in TMR_INDEX2.
26313 2016-02-26 Martin Jambor <mjambor@suse.cz>
26315 * hsa.h (is_a_helper): New overload for hsa_op_immed for
26316 hsa_op_with_type operands.
26317 (hsa_unsigned_type_for_type): Declare.
26318 * hsa.c (hsa_unsigned_type_for_type): New function.
26319 * hsa-gen.c (gen_hsa_binary_operation): Use hsa_unsigned_type_for_type.
26320 (gen_hsa_insns_for_operation_assignment): Satisfy constrains of
26321 the finalizer. Do not emit extra move.
26323 2016-02-26 Martin Jambor <mjambor@suse.cz>
26325 * hsa-gen.c (gen_hsa_ternary_atomic_for_builtin): Fail in presence of
26326 atomic operations in private segment.
26328 2016-02-26 Martin Jambor <mjambor@suse.cz>
26330 * omp-low.c (grid_find_ungridifiable_statement): Store problematic
26331 statements to wi->info. Also disallow omp simd constructs.
26332 (grid_target_follows_gridifiable_pattern): Use wi.info to dump reason
26333 for not gridifying. Dump special string for omp_for.
26335 2016-02-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
26338 * config/aarch64/aarch64.c (aarch64_set_current_function):
26339 Save/restore target globals when switching to
26340 target_option_default_node.
26342 2016-02-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
26345 * config/aarch64/aarch64.c (aarch64_shift_truncation_mask):
26346 Return 0 if !SHIFT_COUNT_TRUNCATED.
26348 2016-02-26 Jakub Jelinek <jakub@redhat.com>
26349 Eric Botcazou <ebotcazou@adacore.com>
26351 PR rtl-optimization/69891
26352 * dse.c (scan_insn): If we can't figure out memset arguments
26353 or they are non-constant, call clear_rhs_from_active_local_stores.
26355 2016-02-26 Martin Liska <mliska@suse.cz>
26357 * doc/extend.texi: Mention clog10, clog10f an clog10l
26358 in Builtins section.
26360 2016-02-26 Martin Liska <mliska@suse.cz>
26362 * dwarf2out.c (new_loc_descr): Replace ENABLE_CHECKING with
26364 (resolve_args_picking_1): Likewise.
26365 * dwarf2out.h (struct GTY): Likewise.
26367 2016-02-26 Martin Liska <mliska@suse.cz>
26369 * hsa-gen.c (generate_hsa): Replace ENABLE_CHECKING macro
26370 with flag_checking.
26371 * hsa-regalloc.c (linear_scan_regalloc): Likewise.
26373 2016-02-26 Markus Trippelsdorf <markus@trippelsdorf.de>
26374 Martin Liska <mliska@suse.cz>
26376 * doc/install.texi: Mention --enable-valgrind-annotations.
26378 2016-02-26 Richard Biener <rguenther@suse.de>
26380 PR tree-optimization/69551
26381 * tree-ssa-structalias.c (get_constraint_for_ssa_var): When
26382 looking through aliases adjust DECL_PT_UID to refer to the
26383 ultimate alias target.
26385 2016-02-25 Martin Liska <mliska@suse.cz>
26387 PR middle-end/69919
26388 * alloc-pool.c (after_memory_report): New variable.
26389 * alloc-pool.h (base_pool_allocator ::release): Do not use
26390 the infrastructure if after_memory_report.
26391 * toplev.c (toplev::main): Mark after memory report.
26393 2016-02-25 Richard Biener <rguenther@suse.de>
26395 PR tree-optimization/48795
26396 * tree-vrp.c (check_array_ref): Use array_at_struct_end_p.
26398 2016-02-25 Ilya Verbin <ilya.verbin@intel.com>
26401 * config/gnu-user.h (CRTOFFLOADBEGIN): Define. Add crtoffloadbegin.o if
26402 offloading is enabled and -fopenacc or -fopenmp is specified.
26403 (CRTOFFLOADEND): Likewise.
26404 (GNU_USER_TARGET_STARTFILE_SPEC): Add CRTOFFLOADBEGIN.
26405 (GNU_USER_TARGET_ENDFILE_SPEC): Add CRTOFFLOADEND.
26406 * lto-wrapper.c (offloadbegin, offloadend): Remove static vars.
26407 (offload_objects_file_name): New static var.
26408 (tool_cleanup): Remove offload_objects_file_name file.
26409 (find_offloadbeginend): Replace with ...
26410 (find_crtoffloadtable): ... this.
26411 (run_gcc): Remove offload_argc and offload_argv.
26412 Get offload_objects_file_name from -foffload-objects=... option.
26413 Read names of object files with offload from this file, pass them to
26414 compile_images_for_offload_targets. Don't call find_offloadbeginend and
26415 don't pass offloadbegin and offloadend to the linker. Don't pass
26416 offload non-LTO files to the linker, because now they're not claimed.
26418 2016-02-25 Jan Hubicka <hubicka@ucw.cz>
26421 * ipa-devirt.c (possible_polymorphic_call_targets): Do not ICE
26422 on builtin_unreachable.
26424 2016-02-25 Jakub Jelinek <jakub@redhat.com>
26426 PR rtl-optimization/69896
26427 * regcprop.c: Include cfgrtl.h.
26428 (copyprop_hardreg_forward_1): If noop_p insn uses narrower
26429 than remembered mode, either delete it (if noop_move_p), or
26430 treat like copy_p but not noop_p instruction.
26432 2016-02-24 Jakub Jelinek <jakub@redhat.com>
26435 * dwarf2out.c (gen_variable_die): Work around buggy LTO
26436 - allow NULL decl for Fortran DW_TAG_common_block variables.
26438 2016-02-24 Jason Merrill <jason@redhat.com>
26440 * common.opt (flifetime-dse): Add -flifetime-dse=1.
26442 2016-02-24 Richard Biener <rguenther@suse.de>
26443 Jakub Jelinek <jakub@redhat.com>
26445 PR middle-end/69760
26446 * tree-scalar-evolution.c (interpret_rhs_expr): Re-write
26447 conditionally executed ops to well-defined overflow behavior.
26449 2016-02-24 Jakub Jelinek <jakub@redhat.com>
26451 PR middle-end/69915
26452 * tree.c (build_vector_from_ctor): Fix handling of VECTOR_CST
26455 2016-02-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
26457 PR rtl-optimization/69886
26458 * gcse.c (can_assign_to_reg_without_clobbers_p): Accept mode
26459 argument. Use it when checking validity of set instructions.
26460 (want_to_gcse_p): Pass mode to can_assign_to_reg_without_clobbers_p.
26461 (compute_ld_motion_mems): Update can_assign_to_reg_without_clobbers_p
26463 * rtl.h (can_assign_to_reg_without_clobbers_p): Update prototype.
26464 * store-motion.c (find_moveable_store): Update
26465 can_assign_to_reg_without_clobbers_p callsite.
26467 2016-02-24 Richard Biener <rguenther@suse.de>
26469 PR middle-end/68963
26470 * tree-ssa-loop-niter.c (derive_constant_upper_bound_ops): Fix
26472 (record_nonwrapping_iv): Do not fall back to the low/high bound
26473 for non-constant IV bases if the stmt is not always executed.
26475 2016-02-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
26477 * config/arm/arm-cores.def (cortex-a32): New entry.
26478 * config/arm/arm-tables.opt: Regenerate.
26479 * config/arm/arm-tune.md: Regenerate.
26480 * config/arm/bpabi.h (BE8_LINK_SPEC): Add mcpu=cortex-a32.
26481 * config/arm/t-aprofile: Handle mcpu=cortex-a32.
26482 * doc/invoke.texi (ARM Options): Document cortex-a32 as value
26483 for -mcpu and -mtune.
26485 2016-02-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
26488 * config/arm/arm.h (TARGET_HAVE_LPAE): Define.
26489 * config/arm/unspecs.md (VUNSPEC_LDRD_ATOMIC): New value.
26490 * config/arm/sync.md (arm_atomic_loaddi2_ldrd): New pattern.
26491 (atomic_loaddi_1): Delete.
26492 (atomic_loaddi): Rewrite expander using the above changes.
26494 2016-02-24 Jakub Jelinek <jakub@redhat.com>
26497 * params.def (PARAM_MAX_SSA_NAME_QUERY_DEPTH): Bump default from
26500 2016-02-24 Jakub Jelinek <jakub@redhat.com>
26501 Richard Biener <rguenth@suse.de>
26503 PR middle-end/69909
26504 * expr.c (expand_expr_real_1) <normal_inner_ref>: Avoid
26505 set_mem_attributes if tem is SSA_NAME which got expanded
26508 2016-02-24 Richard Biener <rguenther@suse.de>
26510 PR tree-optimization/69907
26511 * tree-vect-stmts.c (vectorizable_load): Check for gaps at the
26512 end of permutations for BB vectorization.
26514 2016-02-24 Christian Bruel <christian.bruel@st.com>
26516 * config/arm/arm-c.c (arm_option_override): Initialize
26517 target_option_current_node.
26518 * config/arm/arm.c (arm_pragma_target_parse): Replace
26519 build_target_option_node call by target_option_current_node.
26520 Set target_option_current_node.
26523 2016-02-23 David Edelsohn <dje.gcc@gmail.com>
26526 * config/rs6000/rs6000.md (zero_extendqi<mode>2_dot): Convert from
26527 define_insn_and_split to define_insn.
26528 (zero_extendqi<mode>2_dot2): Same.
26529 (extendqi<mode>2_dot): Same.
26530 (extendqi<mode>2_dot2): Same.
26532 2016-02-23 Evandro Menezes <e.menezes@samsung.com>
26534 * config/arm/exynos-m1.md: Change cost of STP, fix bypass for stores
26535 and add bypass for AES{D,E} and AESMC pairs.
26536 * config/aarch64/aarch64.c (exynosm1_tunings): Enable fusion of AES{D,E}
26539 2016-02-23 Evandro Menezes <e.menezes@samsung.com>
26541 * config/aarch64/aarch64.c (exynosm1_tunings): Enable the Newton
26542 series for reciprocal square root in Exynos M1.
26544 2016-02-23 Martin Sebor <msebor@redhat.com>
26547 * doc/extend.texi (Other Builtins): Document __builtin_alloca and
26548 __builtin_alloca_with_align.
26550 2016-02-23 Richard Henderson <rth@redhat.com>
26552 * config/i386/i386-c.c (ix86_target_macros): Remove __SEG_TLS.
26553 (ix86_register_pragmas): Remove __seg_tls.
26554 * config/i386/i386-protos.h (ADDR_SPACE_SEG_TLS): Remove.
26555 * config/i386/i386.c (ix86_print_operand_address_as): Don't handle it.
26556 (ix86_addr_space_subset_p, TARGET_ADDR_SPACE_SUBSET_P): Remove.
26557 (ix86_addr_space_convert, TARGET_ADDR_SPACE_CONVERT): Remove.
26558 (ix86_addr_space_debug, TARGET_ADDR_SPACE_DEBUG): Remove.
26559 * doc/extend.texi (__seg_tls): Remove item.
26561 2016-02-23 Richard Biener <rguenther@suse.de>
26563 * alloc-pool.h (struct allocation_object): Make id member
26564 conditional on CHECKING_P again.
26565 (get_instance): Adjust.
26566 (base_pool_allocator): Likewise.
26568 2016-02-23 Thomas Schwinge <thomas@codesourcery.com>
26570 * tree-parloops.c (create_parallel_loop, gen_parallel_loop)
26571 (parallelize_loops): In OpenACC kernels mode, set n_threads to
26573 (pass_parallelize_loops::gate): In OpenACC kernels mode, gate on
26575 * tree-ssa-loop.c (gate_oacc_kernels): Likewise.
26577 2016-02-23 Richard Biener <rguenther@suse.de>
26579 * mem-stats.h (struct mem_usage): Use PRIu64 for printing size_t.
26580 * bitmap.h (struct bitmap_usage): Likewise.
26581 (bitmap_move): Declare.
26582 * bitmap.c (register_overhead): Take size_t argument.
26583 (bitmap_move): New function.
26584 * df-problems.c (df_rd_transfer_function): Use bitmap_move
26585 to properly account overhead.
26586 * tree.c (free_node): Use tree_size.
26588 2016-02-23 Jakub Jelinek <jakub@redhat.com>
26591 * fold-const.c (fold_truth_not_expr): Propagate TREE_NO_WARNING
26592 when inverting comparison.
26595 * common.opt (Wunreachable-code): Add Warning flag.
26597 2016-02-23 Mark Wielaard <mjw@redhat.com>
26598 Jakub Jelinek <jakub@redhat.com>
26601 * cgraphunit.c (check_global_declaration): Check main_input_filename
26602 and DECL_SOURCE_FILE are not NULL.
26604 2016-02-23 Martin Jambor <mjambor@suse.cz>
26606 PR tree-optimization/69666
26607 * tree-sra.c (sra_modify_assign): Do not attempt to create
26608 default_def replacements for unscalarizable regions.
26610 2016-02-20 Mark Wielaard <mjw@redhat.com>
26613 * cgraphunit.c (check_global_declaration): Check level of
26614 warn_unused_const_variable and main_input_filename.
26615 * doc/invoke.texi (Warning Options): Add -Wunused-const-variable=.
26616 (-Wunused-variable): For C implies -Wunused-const-variable=1.
26617 (-Wunused-const-variable): Explain levels 1 and 2.
26619 2016-02-22 Jakub Jelinek <jakub@redhat.com>
26622 * config/i386/i386.c (decide_alg): Ensure we don't recurse with
26623 identical arguments. Formatting and spelling fixes.
26626 * doc/md.texi (ashl@var{m}3): Document that mode of operand 2 must
26631 * config/m68k/t-opts (OPTIONS_H_EXTRA): Add m68k-microarchs.def
26632 and m68k-devices.def.
26633 * config/c6x/t-c6x (OPTIONS_H_EXTRA): Add c6x-isas.def.
26634 * config/aarch64/t-aarch64 (OPTIONS_H_EXTRA): Add aarch64-arches.def.
26636 2016-02-22 Cesar Philippidis <cesar@codesourcery.com>
26638 * config/nvptx/nvptx.c (nvptx_gen_shuffle): Add support for QImode
26639 and HImode registers.
26641 2016-02-22 Richard Biener <rguenther@suse.de>
26643 PR tree-optimization/69882
26644 * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Properly
26645 preserve permutations present because of gaps.
26646 (vect_supported_load_permutation_p): Always continue checking
26647 permutations after vect_attempt_slp_rearrange_stmts.
26649 2016-02-22 Bin Cheng <bin.cheng@arm.com>
26651 * tree-vect-loop.c (vect_estimate_min_profitable_iters): Dump
26652 min_profitable_estimate, rather than min_profitable_iters.
26654 2016-02-22 Jakub Jelinek <jakub@redhat.com>
26657 * config/m68k/m68k.md (ashldi3, ashrdi3, lshrdi3): Use
26658 SImode for last match_operand.
26660 2016-02-22 Martin Liska <mliska@suse.cz>
26662 * hsa-gen.c (gen_hsa_clrsb): In case of zero value,
26663 return bitsize - 1 as the return value.
26665 2016-02-22 Oleg Endo <olegendo@gcc.gnu.org>
26669 * config/sh/sh.c (sh_lshrsi_clobbers_t_reg_p, sh_dynamicalize_shift_p):
26670 Handle negative shift counts.
26671 * config/sh/sh.md (ashlsi3, lshrsi3_n, lshrsi3_n_clobbers_t): Don't use
26672 force_reg on the shift constant.
26673 (lshrsi3): Likewise. Expand into lshrsi3_n* instead of lshrsi3_d.
26674 (lshrsi3_d): Handle negative shift counts.
26676 2016-02-22 Richard Biener <rguenther@suse.de>
26677 Tom de Vries <tom@codesourcery.com>
26679 * graph.c: Include dumpfile.h.
26680 (print_graph_cfg): Split into three overloads.
26681 * gdbhooks.py (class DotFn): Add and instantiate, adding command dot-fn.
26683 2016-02-22 Tom de Vries <tom@codesourcery.com>
26685 * gdbhooks.py (class DumpFn): Add and instantiate, adding command
26688 2016-02-22 Richard Biener <rguenther@suse.de>
26691 * ipa-inline-transform.c (inline_call): When not updating
26692 overall summaries adjust self size by the growth estimate.
26693 * ipa-inline.c (inline_to_all_callers_1): Add to the callers
26694 hash-set, do not update overall summaries here. Renamed from ...
26695 (inline_to_all_callers): ... this which is now wrapping the
26696 above and performing delayed overall summary update.
26697 (early_inline_small_functions): Delay updating of the overall
26700 2016-02-21 Markus Trippelsdorf <markus@trippelsdorf.de>
26702 * tree-chkp.c (chkp_mark_invalid_bounds_walker): Initialize
26705 2016-02-19 Jakub Jelinek <jakub@redhat.com>
26708 * gcc.c (LINK_COMMAND_SPEC, GOMP_SELF_SPECS): Use
26709 :%* in %:gt() argument.
26710 (greater_than_spec_func): Adjust for expecting only numbers,
26711 if there are more than two numbers, compare the last two.
26713 2016-02-19 Jonathan Wakely <jwakely@redhat.com>
26715 * doc/invoke.texi (C++ Dialect Options): Clarify interaction of
26716 -Wnarrowing with -std.
26718 2016-02-19 Jakub Jelinek <jakub@redhat.com>
26721 * expr.c (store_field): Don't use bit-field path if exp is
26722 COMPONENT_REF with TREE_ADDRESSABLE type, where TYPE_SIZE is
26723 different from bitsize, but DECL_SIZE of FIELD_DECL is bitsize
26724 and the assignment can be performed by bitwise copy. Formatting
26727 PR middle-end/69838
26728 * lra.c (lra_process_new_insns): If non-call exceptions are enabled,
26729 call copy_reg_eh_region_note_forward on before and/or after sequences
26730 and remove note from insn if it no longer can throw.
26733 * config/i386/sse.md (VI_512): Only include V64QImode and V32HImode
26734 if TARGET_AVX512BW.
26736 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
26738 * config/s390/vector.md: Add missing commutative operand markers
26739 to the patterns which qualify for one.
26740 * config/s390/vx-builtins.md: Likewise.
26742 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
26744 * config/s390/vector.md (VI, VI_QHS): Add single element vector
26745 types to mode iterators.
26746 (vec_double): ... and mode attribute.
26747 * config/s390/vx-builtins.md (non_vec_int): Likewise.
26749 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
26751 * config/s390/vector.md ("<ti*>add<mode>3", "<ti*>sub<mode>3"):
26752 Change the predicate of op2 from nonimmediate to general and let
26753 reload fix it if necessary.
26755 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
26757 * config/s390/vecintrin.h (vec_sub_u128): Define missing macro.
26759 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
26761 * config/s390/s390.c (s390_expand_vcond): Use the compare operand
26764 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
26766 * config/s390/s390-protos.h: Add s390_expand_vec_movstr prototype.
26767 * config/s390/s390.c (s390_expand_vec_movstr): New function.
26768 * config/s390/s390.md ("movstr<P:mode>"): Call
26769 s390_expand_vec_movstr.
26771 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
26773 * config/s390/s390.md: Add missing output modifier for operand 1
26774 to print it as address properly.
26776 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
26778 * config/s390/2827.md: Rename ooo_* insn attributes to zEC12_*.
26779 * config/s390/2964.md: New file.
26780 * config/s390/s390.c (s390_get_sched_attrmask): Use the right set
26781 of insn grouping attributes depending on the CPU level.
26782 (s390_get_unit_mask): New function.
26783 (s390_sched_score): Remove the OOO from the scheduling macros.
26784 Add loop to calculate a score for the instruction mix.
26785 (s390_sched_reorder): Likewise plus improve debug output.
26786 (s390_sched_variable_issue): Rename macros as above. Calculate
26787 the unit distances after actually scheduling an insn. Improve
26789 (s390_sched_init): Clear last_scheduled_unit_distance array.
26790 * config/s390/s390.md: Include 2964.md.
26792 2016-02-18 Jakub Jelinek <jakub@redhat.com>
26795 * config/i386/sse.md (*<floatsuffix>floatv2div2sf2_mask_1,
26796 *avx512vl_<code>v2div2qi2_mask_1, *avx512vl_<code><mode>v4qi2_mask_1,
26797 *avx512vl_<code><mode>v8qi2_mask_1, *avx512vl_<code><mode>v4hi2_mask_1,
26798 *avx512vl_<code>v2div2hi2_mask_1, *avx512vl_<code>v2div2si2_mask_1,
26799 *avx512f_<code>v8div16qi2_mask_1): New insns.
26801 2016-02-18 Michael Meissner <meissner@linux.vnet.ibm.com>
26804 * config/rs6000/predicates.md (fusion_gpr_addis): Revert
26807 * config/rs6000/rs6000.md (fusion_gpr_load_<mode>): Remove
26808 earlyclobber from target. Use wF constraint for fused memory
26810 (fusion_gpr_<P:mode>_<GPR_FUSION:mode>_load): Likewise.
26812 2016-02-18 Jakub Jelinek <jakub@redhat.com>
26813 Martin Liska <mliska@suse.cz>
26816 * cfgexpand.c (asan_sanitize_stack_p): New function.
26817 (partition_stack_vars): Use the function.
26818 (expand_stack_vars): Likewise.
26819 (defer_stack_allocation): Likewise.
26820 (expand_used_vars): Likewise.
26822 2016-02-18 Richard Biener <rguenther@suse.de>
26824 PR middle-end/69553
26825 * fold-const.c (operand_equal_p): Properly compare offsets for
26826 IMAGPART_EXPR and ARRAY_REF.
26828 2016-02-18 Nick Clifton <nickc@redhat.com>
26832 * config/arm/arm.c (arm_option_override_internal): Disable
26833 interworking if the target does not support thumb instructions.
26834 (arm_reload_in_hi): Handle the case where a register to register
26835 move needs reloading because there is no simple pattern to handle
26837 (arm_reload_out_hi): Likewise.
26839 2016-02-18 Richard Biener <rguenther@suse.de>
26841 PR middle-end/69854
26842 * match.pd: Don't use fold_binary or fold_unary for folding
26845 2016-02-17 Jakub Jelinek <jakub@redhat.com>
26848 * gimplify.c (gimplify_cond_expr): Call gimple_set_no_warning
26849 on the cond_stmt from TREE_NO_WARNING on COND_EXPR_COND.
26850 * gimple-ssa-nonnull-compare.c (do_warn_nonnull_compare): Don't
26851 warn on gimple_no_warning_p statements.
26853 2016-02-17 Jonathan Wakely <jwakely@redhat.com>
26855 * doc/extend.texi (C++ Attributes): Correct description of
26856 warn_unused type attribute.
26858 2016-02-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
26860 * config/rs6000/altivec.md (*altivec_lvxl_<mode>_internal): Output
26861 correct instruction.
26863 2016-02-17 Richard Biener <rguenther@suse.de>
26865 PR rtl-optimization/69609
26866 * bb-reorder.c (struct bbro_basic_block_data): Add priority member.
26867 (find_traces_1_round): When ending a trace update cached priority
26869 (bb_to_key): Use cached priority when available.
26870 (copy_bb): Initialize cached priority.
26871 (reorder_basic_blocks_software_trace_cache): Likewise.
26873 2016-02-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
26876 * config/aarch64/predicates.md (aarch64_comparison_operator_mode):
26878 (aarch64_comparison_operator): Break overly long line into two.
26879 (aarch64_comparison_operation): Likewise.
26880 * config/aarch64/aarch64.md (cstorecc4): Use
26881 aarch64_comparison_operator_mode instead of
26882 aarch64_comparison_operator.
26883 (cstore<mode>4): Likewise.
26884 (aarch64_cstore<mode>): Likewise.
26885 (*cstoresi_insn_uxtw): Likewise.
26886 (cstore<mode>_neg): Likewise.
26887 (*cstoresi_neg_uxtw): Likewise.
26889 2016-02-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
26892 * config/arm/predicates.md (arm_comparison_operator_mode):
26894 * config/arm/arm.md (*mov_scc): Use arm_comparison_operator_mode
26895 instead of arm_comparison_operator.
26896 (*mov_negscc): Likewise.
26897 (*mov_notscc): Likewise.
26898 * config/arm/thumb2.md (*thumb2_mov_scc): Likewise.
26899 (*thumb2_mov_negscc): Likewise.
26900 (*thumb2_mov_negscc_strict_it): Likewise.
26901 (*thumb2_mov_notscc): Likewise.
26902 (*thumb2_mov_notscc_strict_it): Likewise.
26904 2016-02-17 Wilco Dijkstra <wdijkstr@arm.com>
26906 * config/aarch64/aarch64.c (aarch64_internal_mov_immediate):
26907 Add missing return.
26909 2016-02-17 Eric Botcazou <ebotcazou@adacore.com>
26911 * config/visium/visium.c (machine_libfunc_index): New enum.
26912 (machine_libfuncs): New structure.
26913 (visium_libfuncs): New static variable.
26914 (TARGET_INIT_LIBFUNCS): Define to...
26915 (visium_init_libfuncs): ...this. New function.
26916 (expand_block_move_4): Use the appropriate libfunc.
26917 (expand_block_move_2): Likewise.
26918 (expand_block_move_1): Likewise.
26919 (expand_block_set_4): Likewise.
26920 (expand_block_set_2): Likewise.
26921 (expand_block_set_1): Likewise.
26922 (visium_trampoline_init): Likewise.
26924 2016-02-17 Nick Clifton <nickc@redhat.com>
26926 * config/msp430/msp430.c (msp430_mcu_data): Sync with data from
26927 TI's devices.csv file as of March 2016.
26929 2016-02-16 Kelvin Nilsen <kelvin@gcc.gnu.org>
26932 * opts-global.c (handle_common_deferred_options): Introduce and
26933 initialize two global variables to remember command-line options
26934 specifying a stack-limiting register.
26935 * opts.h: Add extern declarations of the two new global variables.
26936 * emit-rtl.c (init_emit_once): Initialize the stack_limit_rtx
26937 variable based on the values of the two new global variables.
26939 2016-02-16 Jakub Jelinek <jakub@redhat.com>
26942 * common.opt (Wnonnull-compare): New warning.
26943 * doc/invoke.texi (-Wnonnull): Remove text about comparison
26944 of arguments against NULL.
26945 (-Wnonnull-compare): Document.
26946 * Makefile.in (OBJS): Add gimple-ssa-nonnull-compare.o.
26947 * tree-pass.h (make_pass_warn_nonnull_compare): Declare.
26948 * passes.def (pass_warn_nonnull_compare): Add.
26949 * gimple-ssa-nonnull-compare.c: New file.
26951 2016-02-16 James Greenhalgh <james.greenhalgh@arm.com>
26953 * config/aarch64/aarch64.c (cortexa57_tunings): Remove
26954 AARCH64_EXTRA_TUNE_RECIP_SQRT.
26956 2016-02-16 James Greenhalgh <james.greenhalgh@arm.com>
26958 * config/aarch64/aarch64.c (use_rsqrt_p): Always use software
26959 reciprocal sqrt for -mlow-precision-recip-sqrt.
26961 2016-02-16 James Greenhalgh <james.greenhalgh@arm.com>
26962 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
26964 * config/aarch64/aarch64.c (aarch64_expand_vector_init): Refactor,
26965 always use lane loads to construct non-constant vectors.
26967 2016-02-16 James Greenhalgh <james.greenhalgh@arm.com>
26969 * config/aarch64/aarch64.md
26970 (arch64_sqrdml<SQRDMLH_AS:rdma_as>h_lane<mode>): Fix register
26971 constraints for operand 3.
26972 (aarch64_sqrdml<SQRDMLH_AS:rdma_as>h_laneq<mode>): Likewise.
26974 2016-02-16 Jakub Jelinek <jakub@redhat.com>
26975 Richard Biener <rguenther@suse.de>
26977 PR tree-optimization/69820
26978 * tree-vect-patterns.c (type_conversion_p): Return false if
26979 *orig_type is unsigned single precision or boolean.
26980 (vect_recog_dot_prod_pattern, vect_recog_widen_mult_pattern):
26983 2016-02-16 Jakub Jelinek <jakub@redhat.com>
26985 PR rtl-optimization/69764
26986 PR rtl-optimization/69771
26987 * optabs.c (expand_binop): Ensure for shift optabs invalid CONST_INT
26988 op1 is valid for GET_MODE_INNER (mode) and force it into a reg.
26990 2016-02-16 Richard Biener <rguenther@suse.de>
26992 PR tree-optimization/69776
26993 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Get alias
26995 (indirect_refs_may_alias_p): Likewise.
26996 (refs_may_alias_p_1): Pass alias sets as from ao_ref.
26997 * tree-ssa-sccvn.c (vn_reference_lookup): Also adjust vr alias-set
26998 according to tbaa_p.
26999 * tree-ssa-dom.c (lookup_avail_expr): Add tbaa_p flag.
27000 (optimize_stmt): For redundant store discovery do not allow tbaa.
27002 2016-02-16 Bernd Schmidt <bschmidt@redhat.com>
27004 PR tree-optimization/69714
27005 * tree-ssa-math-opts.c (find_bswap_or_nop): Revert previous change.
27006 Return NULL if we have irrelevant high bytes on BIG_ENDIAN.
27008 2016-02-16 Claudiu Zissulescu <claziss@synopsys.com>
27010 * config/arc/arc-modes.def (CC_FPU, CC_FPU_UNEQ): New modes.
27011 * config/arc/arc-opts.h (FPU_SP, FPU_SF, FPU_SC, FPU_SD, FPU_DP)
27012 (FPU_DF, FPU_DC, FPU_DD, FXP_DP): Define.
27013 * config/arc/arc.c (arc_init): Check FPU options.
27014 (get_arc_condition_code): Handle new CC_FPU* modes.
27015 (arc_select_cc_mode): Likewise.
27016 (arc_conditional_register_usage): Allow 64 bit datum into even-odd
27017 register pair only. Allow access for ARCv2 accumulator.
27018 (gen_compare_reg): Whenever we have FPU support use FPU compare
27020 (arc_reorg): Don't generate brcc insns when FPU compare
27021 instructions are involved.
27022 * config/arc/arc.h (TARGET_DPFP): Add TARGET_FP_DPAX condition.
27023 (TARGET_OPTFPE): Add condition when ARC EM can use optimized
27024 floating point emulation.
27025 (ACC_REG_FIRST, ACC_REG_LAST, ACCL_REGNO, ACCH_REGNO): Define.
27026 (REVERSE_CONDITION): Add new CC_FPU* modes.
27027 (TARGET_FP_SP_BASE): Define.
27028 (TARGET_FP_DP_BASE): Likewise.
27029 (TARGET_FP_SP_FUSED): Likewise.
27030 (TARGET_FP_DP_FUSED): Likewise.
27031 (TARGET_FP_SP_CONV): Likewise.
27032 (TARGET_FP_DP_CONV): Likewise.
27033 (TARGET_FP_SP_SQRT): Likewise.
27034 (TARGET_FP_DP_SQRT): Likewise.
27035 (TARGET_FP_DP_AX): Likewise.
27036 * config/arc/arc.md (ARCV2_ACC): New constant.
27037 (type): New fpu type attribute.
27038 (SDF): Conditional iterator.
27039 (cstore<mode>, cbranch<mode>): Change expand condition.
27040 (addsf3, subsf3, mulsf3, adddf3, subdf3, muldf3): New expands,
27041 handles FPU/FPX cases as well.
27042 * config/arc/arc.opt (mfpu): New option.
27043 * config/arc/fpx.md (addsf3_fpx, subsf3_fpx, mulsf3_fpx):
27045 (adddf3, muldf3, subdf3): Removed.
27046 * config/arc/predicates.md (proper_comparison_operator): Recognize
27048 * config/arc/fpu.md: New file.
27049 * doc/invoke.texi (ARC Options): Document mfpu option.
27051 2016-02-16 Richard Biener <rguenther@suse.de>
27053 PR rtl-optimization/69291
27054 * ifcvt.c (noce_try_store_flag_constants): Re-instantiate
27055 noce_operand_ok check.
27057 2016-02-16 Tom de Vries <tom@codesourcery.com>
27060 * omp-low.c (simd_clone_create): Remove call to
27061 symtab->call_cgraph_insertion_hooks.
27063 2016-02-16 Jakub Jelinek <jakub@redhat.com>
27065 PR tree-optimization/69802
27066 * tree-ssa-reassoc.c (update_range_test): If op is
27067 SSA_NAME_IS_DEFAULT_DEF, give up unless tem is a positive
27068 op == 1 test of precision 1 integral op, otherwise handle
27069 that case as op itself. Fix up formatting.
27070 (optimize_range_tests_to_bit_test, optimize_range_tests): Fix
27073 2016-02-16 Richard Biener <rguenther@suse.de>
27075 PR tree-optimization/69586
27076 * tree-vrp.c (register_edge_assert_for_2): Handle all integral
27077 types for conversion sources.
27079 2016-02-16 Richard Biener <rguenther@suse.de>
27081 PR middle-end/69801
27082 * fold-const.c (operand_equal_p): For COND_EXPR zero operand
27083 mask OEP_ADDRESS_OF.
27085 2016-02-16 Alan Modra <amodra@gmail.com>
27088 * config/rs6000/rs6000.md (reload_vsx_from_gprsf): Rewrite splitter.
27089 (p8_mtvsrd_df, p8_mtvsrd_sf): New.
27090 (p8_mtvsrd_1, p8_mtvsrd_2): Delete.
27092 (p8_mtvsrwz_1, p8_mtvsrwz_2): Delete.
27093 (p8_xxpermdi_<mode>): Take two DF inputs rather than one TF.
27094 (p8_fmrgow_<mode>): Likewise.
27095 (reload_vsx_from_gpr<mode>): Make clobber IF. Adjust for above
27097 (reload_fpr_from_gpr<mode>): Similarly. Use "d" for op0 constraint.
27098 (reload_vsx_from_gprsf): Use p8_mtvsrd_sf rather than attempting
27099 to use movdi_internal64. Remove op0_di.
27100 * config/rs6000/vsx.md (vsx_xscvspdpn_directmove): Make op1 SFmode.
27102 2016-02-15 Evandro Menezes <e.menezes@samsung.com>
27104 Add support for the FCCMP insn types
27106 * config/aarch64/aarch64.md (fccmp): Change insn type.
27107 (fccmpe): Likewise.
27108 * config/aarch64/thunderx.md (thunderx_fcmp): Add "fccmp{s,d}" types.
27109 * config/arm/cortex-a53.md (cortex_a53_fpalu): Likewise.
27110 * config/arm/cortex-a57.md (cortex_a57_fp_cmp): Likewise.
27111 * config/arm/xgene1.md (xgene1_fcmp): Likewise.
27112 * config/arm/exynos-m1.md (exynos_m1_fp_ccmp): New insn reservation.
27113 * config/arm/types.md (fccmps): Add new insn type.
27114 (fccmpd): Likewise.
27116 2016-02-15 Bernd Edlinger <bernd.edlinger@hotmail.de>
27118 * alias.c (get_alias_set): Fix a typo in comment.
27120 2016-02-15 Richard Biener <rguenther@suse.de>
27122 PR tree-optimization/69595
27123 * match.pd: Complete range test simplification to true.
27125 2016-02-15 Bernd Schmidt <bschmidt@redhat.com>
27127 PR rtl-optimization/69648
27128 * lra-constraints.c (update_ebb_live_info): Don't remove sets of
27129 pic_offset_table_rtx.
27131 PR rtl-optimization/69752
27132 * ira.c (update_equiv_regs): When looking for more than a single SET,
27133 also take other side effects into account.
27135 2016-02-15 Marcin Kościelnicki <koriakin@0x04.net>
27137 * config/s390/s390.c (s390_function_profiler): Add a new sequence
27138 for z900+ CPUs in 31-bit mode.
27140 2016-02-15 Marcin Kościelnicki <koriakin@0x04.net>
27142 * common/config/s390/s390-common.c (s390_supports_split_stack):
27144 (TARGET_SUPPORTS_SPLIT_STACK): New macro.
27145 * config/s390/s390-protos.h: Add s390_expand_split_stack_prologue.
27146 * config/s390/s390.c (struct machine_function): New field
27147 split_stack_varargs_pointer.
27148 (s390_register_info): Mark r12 as clobbered if it'll be used as temp
27149 in s390_emit_prologue.
27150 (s390_emit_prologue): Use r12 as temp if r1 is taken by split-stack
27152 (morestack_ref): New global.
27153 (SPLIT_STACK_AVAILABLE): New macro.
27154 (s390_expand_split_stack_prologue): New function.
27155 (s390_live_on_entry): New function.
27156 (s390_va_start): Use split-stack vararg pointer if appropriate.
27157 (s390_asm_file_end): Emit the split-stack note sections.
27158 (TARGET_EXTRA_LIVE_ON_ENTRY): New macro.
27159 * config/s390/s390.md (UNSPEC_STACK_CHECK): New unspec.
27160 (UNSPECV_SPLIT_STACK_CALL): New unspec.
27161 (UNSPECV_SPLIT_STACK_DATA): New unspec.
27162 (split_stack_prologue): New expand.
27163 (split_stack_space_check): New expand.
27164 (split_stack_data): New insn.
27165 (split_stack_call): New expand.
27166 (split_stack_call_*): New insn.
27167 (split_stack_cond_call): New expand.
27168 (split_stack_cond_call_*): New insn.
27170 2016-02-15 Richard Biener <rguenther@suse.de>
27172 PR tree-optimization/69783
27173 * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
27174 Add trivially correct cases.
27176 2016-02-15 Tom de Vries <tom@codesourcery.com>
27179 * lto-cgraph.c (input_offload_tables): Add and handle bool parameter
27181 * lto-streamer.h (input_offload_tables): Add and handle bool parameter.
27183 2016-02-15 Richard Biener <rguenther@suse.de>
27185 PR tree-optimization/69776
27186 * tree-ssa-sccvn.h (vn_reference_lookup): Adjust prototype.
27187 * tree-ssa-sccvn.c (vn_reference_lookup): Add parameter to
27188 indicate whether we can use TBAA to disambiguate against stores.
27189 Use alias-set zero if not.
27190 (visit_reference_op_store): Do not use TBAA when looking up
27192 * tree-ssa-pre.c (compute_avail): Use TBAA here.
27193 (eliminate_dom_walker::before_dom_children): But not when looking
27194 up redundant stores.
27196 2016-02-14 John David Anglin <danglin@gcc.gnu.org>
27198 * config/pa/pa.md (absqi2, absghi2, bswaphi2, bswapsi2, bswapdi2): New.
27200 2016-02-14 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
27202 * config/i386/znver1.md
27203 (znver1_pop, znver1_pop_mem,
27204 znver1_load_imov_double_store,
27205 znver1_load_imov_direct_store,
27206 znver1_load_imov_direct_load,
27207 znver1_load_imov_double_load): Add new.
27208 (znver1_insn, znver1_insn_load): Add icmov type.
27209 (znver1_sseavx_fma,
27210 znver1_sseavx_fma_load,
27212 znver1_avx256_fma_load): Fix pipe usage.
27214 2016-02-14 Alan Modra <amodra@gmail.com>
27217 * reload.c (find_reloads_address_1): For pre/post-inc/dec
27218 with an invalid hard reg, reload just the reg not the entire
27219 pre/post-inc/dec address expression.
27221 2016-02-13 Oleg Endo <olegendo@gcc.gnu.org>
27224 * config/sh/sh.md (sibcall_value_pcrel): Replace =&k scratch reg with
27225 fixed R1_REG scratch reg.
27226 (sibcall_value_pcrel_fdpic): Likewise.
27228 2016-02-13 Oleg Endo <olegendo@gcc.gnu.org>
27232 * config/sh/sh.md (*zero_extract_3): New insn_and_split pattern.
27234 2016-02-12 Walter Lee <walt@tilera.com>
27236 * config/tilepro/t-tilepro: Replace CC_FOR_BUILD with CXX_FOR_BUILD.
27237 * config/tilegx/t-tilegx: Likewise.
27239 2016-02-12 David Malcolm <dmalcolm@redhat.com>
27242 * diagnostic-show-locus.c (struct line_span): New struct.
27243 (layout::get_first_line): Delete.
27244 (layout::get_last_line): Delete.
27245 (layout::get_num_line_spans): New member function.
27246 (layout::get_line_span): Likewise.
27247 (layout::print_heading_for_line_span_index_p): Likewise.
27248 (layout::get_expanded_location): Likewise.
27249 (layout::calculate_line_spans): Likewise.
27250 (layout::m_first_line): Delete.
27251 (layout::m_last_line): Delete.
27252 (layout::m_line_spans): New field.
27253 (layout::layout): Update comment. Replace m_first_line and
27254 m_last_line with m_line_spans, replacing their initialization
27255 with a call to calculate_line_spans.
27256 (diagnostic_show_locus): When printing source lines and
27257 annotations, rather than looping over a single span
27258 of lines, instead loop over each line_span within
27259 the layout, with an inner loop over the lines within them.
27260 Call the context's start_span callback when changing line spans.
27261 * diagnostic.c (diagnostic_initialize): Initialize start_span.
27262 (diagnostic_build_prefix): Break out the building of the location
27263 part of the string into...
27264 (diagnostic_get_location_text): ...this new function, rewriting
27265 it from nested ternary expressions to a sequence of "if"
27267 (default_diagnostic_start_span_fn): New function.
27268 * diagnostic.h (diagnostic_start_span_fn): New typedef.
27269 (diagnostic_context::start_span): New field.
27270 (default_diagnostic_start_span_fn): New prototype.
27272 2016-02-12 David Malcolm <dmalcolm@redhat.com>
27275 * gcc.c (driver::finalize): Fix cleanup of "specs".
27277 2016-02-12 David Malcolm <dmalcolm@redhat.com>
27281 * gcc.c (driver::driver): Initialize m_option_suggestions.
27282 (driver::~driver): Clean up m_option_suggestions.
27283 (suggest_option): Convert to...
27284 (driver::suggest_option): ...this, and split out into
27285 driver::build_option_suggestions and find_closest_string.
27286 (driver::build_option_suggestions): New function, from
27287 first half of suggest_option. Special-case
27288 OPT_fsanitize_ and OPT_fsanitize_recover_, making use of
27289 the sanitizer_opts array. For options of enum types, add the
27290 various enum values to the candidate strings.
27291 (driver::handle_unrecognized_options): Remove "const".
27292 * gcc.h (driver::handle_unrecognized_options): Likewise.
27293 (driver::build_option_suggestions): New decl.
27294 (driver::suggest_option): New decl.
27295 (driver::m_option_suggestions): New field.
27296 * opts-common.c (add_misspelling_candidates): New function.
27297 * opts.c (sanitizer_opts): Remove decl of struct sanitizer_opts_s
27298 and make non-static.
27299 * opts.h (sanitizer_opts): New array decl.
27300 (add_misspelling_candidates): New function decl.
27301 * spellcheck.c (find_closest_string): New function.
27302 * spellcheck.h (find_closest_string): New function decl.
27304 2016-02-12 Jakub Jelinek <jakub@redhat.com>
27306 PR rtl-optimization/69764
27307 PR rtl-optimization/69771
27308 * optabs.c (expand_binop_directly): For shift_optab_p, force
27309 convert_modes with VOIDmode if xop1 has VOIDmode.
27311 2016-02-12 Ilya Enkovich <enkovich.gnu@gmail.com>
27314 * lto-streamer-out.c (lto_output): Use thunk.add_pointer_bounds_args
27315 to correctly determine instrumentation thunks.
27317 2016-02-12 Jakub Jelinek <jakub@redhat.com>
27320 * ipa-split.c (split_function): If split part returns TREE_ADDRESSABLE
27321 type by reference, force lhs on the call.
27324 * ipa-split.c (split_function): Don't compute/use main_part_return_p.
27325 Compute retval and retbnd early in all cases if split_part_return_p
27326 and return_bb is not EXIT. Remove all clobber stmts and reset
27327 all debug stmts that refer to SSA_NAMEs defined in split part,
27328 except if it is retval, in that case replace the old retval with the
27329 lhs of the call to the split part.
27331 2016-02-12 Kugan Vivekanandarajah <kuganv@linaro.org>
27334 2016-02-12 Kugan Vivekanandarajah <kuganv@linaro.org>
27336 PR middle-end/66726
27337 * tree-ssa-reassoc.c (optimize_range_tests): Handle tcc_compare stmt
27338 whose result is used in PHI.
27339 (maybe_optimize_range_tests): Likewise.
27340 (final_range_test_p): Likweise.
27342 2016-02-12 Kugan Vivekanandarajah <kuganv@linaro.org>
27344 PR middle-end/66726
27345 * tree-ssa-reassoc.c (optimize_range_tests): Handle tcc_compare stmt
27346 whose result is used in PHI.
27347 (maybe_optimize_range_tests): Likewise.
27348 (final_range_test_p): Likweise.
27350 2016-02-12 Jakub Jelinek <jakub@redhat.com>
27352 * cgraph.c: Spelling fixes - behaviour -> behavior and
27353 neighbour -> neighbor.
27354 * target.def: Likewise.
27355 * sel-sched.c: Likewise.
27356 * config/mips/mips.c: Likewise.
27357 * config/arc/arc.md: Likewise.
27358 * config/arm/cortex-a57.md: Likewise.
27359 * config/arm/arm.c: Likewise.
27360 * config/arm/neon.md: Likewise.
27361 * config/arm/arm-c.c: Likewise.
27362 * config/vms/vms-c.c: Likewise.
27363 * config/s390/s390.c: Likewise.
27364 * config/i386/znver1.md: Likewise.
27365 * config/i386/i386.c: Likewise.
27366 * config/ia64/hpux-unix2003.h: Likewise.
27367 * config/msp430/msp430.md: Likewise.
27368 * config/rx/rx.c: Likewise.
27369 * config/rx/rx.md: Likewise.
27370 * config/aarch64/aarch64-simd.md: Likewise.
27371 * config/aarch64/aarch64.c: Likewise.
27372 * config/nvptx/nvptx.c: Likewise.
27373 * config/bfin/bfin.c: Likewise.
27374 * config/cris/cris.opt: Likewise.
27375 * config/rs6000/rs6000.c: Likewise.
27376 * target.h: Likewise.
27377 * spellcheck.c: Likewise.
27378 * ira-build.c: Likewise.
27379 * tree-inline.c: Likewise.
27380 * builtins.c: Likewise.
27381 * lra-constraints.c: Likewise.
27382 * explow.c: Likewise.
27383 * hwint.h: Likewise.
27384 * targhooks.c: Likewise.
27385 * tree-vect-data-refs.c: Likewise.
27386 * expr.c: Likewise.
27387 * doc/tm.texi: Likewise.
27388 * doc/extend.texi: Likewise.
27389 * doc/install.texi: Likewise.
27390 * doc/md.texi: Likewise.
27391 * tree-ssa-tail-merge.c: Likewise.
27392 * sched-int.h: Likewise.
27393 * match.pd: Likewise.
27394 * sched-ebb.c: Likewise.
27395 * target.def (omit_struct_return_reg): Likewise.
27396 * gimple-ssa-isolate-paths.c: Likewise.
27397 (find_implicit_erroneous_behaviour): Renamed to...
27398 (find_implicit_erroneous_behavior): ... this.
27399 (find_explicit_erroneous_behaviour): Renamed to...
27400 (find_explicit_erroneous_behavior): ... this.
27401 (gimple_ssa_isolate_erroneous_paths): Adjust caller.
27403 2016-02-11 Segher Boessenkool <segher@kernel.crashing.org>
27405 PR rtl-optimization/64682
27406 PR rtl-optimization/69567
27407 PR rtl-optimization/69737
27408 * combine.c (distribute_notes) <REG_DEAD>: If the register is set
27409 in I2 as well, just lose it.
27411 2016-02-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
27413 * config/aarch64/aarch64.c (aarch64_last_printed_arch_string):
27415 (aarch64_last_printed_tune_string): Likewise.
27416 (aarch64_declare_function_name): Only output .arch assembler
27417 directive if it will be different from the previously output
27418 directive. Same for .tune comment but only if -dA is set.
27419 (aarch64_start_file): New function.
27420 (TARGET_ASM_FILE_START): Define.
27422 2016-02-11 David Malcolm <dmalcolm@redhat.com>
27425 * Makefile.in (PLUGIN_HEADERS): Add params.list.
27427 2016-02-11 Jakub Jelinek <jakub@redhat.com>
27430 * tree-vect-slp.c (vect_schedule_slp_instance): Avoid
27431 -Wmaybe-uninitialized warning.
27433 2016-02-11 Oleg Endo <olegendo@gcc.gnu.org>
27436 * config/sh/sh.md (casesi_worker_0): Add T_REG use.
27438 2016-02-11 Richard Biener <rguenther@suse.de>
27440 PR rtl-optimization/69291
27441 * ifcvt.c (noce_try_store_flag_constants): Do not allow
27442 subexpressions affected by changing the result.
27444 2016-02-10 Vladimir Makarov <vmakarov@redhat.com>
27447 * lra-constraints.c (curr_insn_transform): Find in/out operands
27448 for secondary memory moves. Update dups.
27450 2016-02-10 Yuri Rumyantsev <ysrumyan@gmail.com>
27452 PR tree-optimization/69652
27453 * tree-vect-loop.c (optimize_mask_stores): Move declaration of STMT1
27454 to nested loop, did source re-formatting, skip debug statements,
27455 add check on statement with volatile operand, remove dead scalar
27458 2016-02-10 Jakub Jelinek <jakub@redhat.com>
27459 Patrick Palka <ppalka@gcc.gnu.org>
27463 * gimplify.c (gimplify_modify_expr): Set lhs even for noreturn
27464 calls if the return type is TREE_ADDRESSABLE.
27465 * cgraphunit.c (cgraph_node::expand_thunk): Likewise.
27466 * ipa-split.c (split_function): Fix doubled "we" in comment.
27467 Use void return type for the split part even if
27468 !split_point->split_part_set_retval.
27470 2016-02-10 Bin Cheng <bin.cheng@arm.com>
27472 PR tree-optimization/68021
27473 * tree-ssa-loop-ivopts.c (get_computation_aff): Set ratio to 1 if
27474 when computing the value of biv cand by itself.
27476 2016-02-10 Wilco Dijkstra <wdijkstr@arm.com>
27478 * config/aarch64/aarch64.c (cortexa53_tunings): Enable AES fusion.
27479 (cortexa57_tunings): Likewise.
27480 (cortexa72_tunings): Likewise.
27481 (arch_macro_fusion_pair_p): Add support for AES fusion.
27482 * config/aarch64/aarch64-fusion-pairs.def: Add AES_AESMC entry.
27483 * config/arm/aarch-common.c (aarch_crypto_can_dual_issue):
27484 Allow virtual registers before reload so early scheduling works.
27485 * config/arm/cortex-a57.md (cortex_a57_crypto_simple): Use
27486 correct latency and pipeline.
27487 (cortex_a57_crypto_complex): Likewise.
27488 (cortex_a57_crypto_xor): Likewise.
27489 (define_bypass): Add AES bypass.
27491 2016-02-10 Richard Biener <rguenther@suse.de>
27493 PR tree-optimization/69726
27494 * passes.def: Add DCE pass before late uninit.
27495 * match.pd: Add A ? B : (!A ? C : X) -> A ? B : C patterns to
27496 really fixup if-conversions job.
27498 2016-02-10 Wilco Dijkstra <wdijkstr@arm.com>
27500 * config/arm/arm.c (arm_cortex_a53_tune): Enable AES fusion.
27501 (arm_cortex_a57_tune): Likewise.
27502 (aarch_macro_fusion_pair_p): Add support for AES fusion.
27503 * config/arm/arm-protos.h (fuse_ops): Add FUSE_AES_AESMC.
27505 2016-02-10 Eric Botcazou <ebotcazou@adacore.com>
27507 * timevar.def (TV_PHASE_DBGINFO): Delete.
27508 (TV_PHASE_CHECK_DBGINFO): Likewise.
27509 * varpool.c (varpool_node::assemble_decl): Do not change timevar.
27511 2016-02-10 Richard Biener <rguenther@suse.de>
27513 PR tree-optimization/69719
27514 * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
27515 Adjust previous fix by ensuring that dr_a1 is left of dr_a2.
27517 2016-02-09 Andrew Pinski <apinski@cavium.com>
27520 * optabs-tree.c (expand_vec_cond_expr_p): Don't early return if
27521 get_vcond_mask_icode returns false.
27523 2016-02-09 Michael Meissner <meissner@linux.vnet.ibm.com>
27526 * config/rs6000/predicates.md (fusion_gpr_addis): Prevent fusing
27527 an ADDIS that adds a pointer to a large constant that sets the
27528 upper16 bits with a load operation.
27530 2016-02-09 Charles Baylis <charles.baylis@linaro.org>
27533 * config/arm/arm.c (arm_evpc_neon_vzip): Allow for big endian lane
27535 * config/arm/arm_neon.h (vzipq_s8): Adjust shuffle patterns for big
27537 (vzipq_s16): Likewise.
27538 (vzipq_s32): Likewise.
27539 (vzipq_f32): Likewise.
27540 (vzipq_u8): Likewise.
27541 (vzipq_u16): Likewise.
27542 (vzipq_u32): Likewise.
27543 (vzipq_p8): Likewise.
27544 (vzipq_p16): Likewise.
27546 2016-02-09 Charles Baylis <charles.baylis@linaro.org>
27549 * config/arm/arm.c (neon_endian_lane_map): New function.
27550 (neon_vector_pair_endian_lane_map): New function.
27551 (arm_evpc_neon_vuzp): Allow for big endian lane order.
27552 * config/arm/arm_neon.h (vuzpq_s8): Adjust shuffle patterns for big
27554 (vuzpq_s16): Likewise.
27555 (vuzpq_s32): Likewise.
27556 (vuzpq_f32): Likewise.
27557 (vuzpq_u8): Likewise.
27558 (vuzpq_u16): Likewise.
27559 (vuzpq_u32): Likewise.
27560 (vuzpq_p8): Likewise.
27561 (vuzpq_p16): Likewise.
27563 2016-02-11 Alexandre Oliva <aoliva@redhat.com>
27566 * regstat.c (regstat_bb_compute_calls_crossed): Disregard
27569 2016-02-09 Uros Bizjak <ubizjak@gmail.com>
27571 * config/i386/i386.md (insv<mode>_1): Use gen_int_mode to
27572 truncate const_int operand 1 to QImode.
27574 2016-02-09 Eric Botcazou <ebotcazou@adacore.com>
27576 * gimple-ssa-backprop.c (optimize_phi): Do not replace an argument
27577 corresponding to an abnormal edge.
27579 2016-02-09 Tom de Vries <tom@codesourcery.com>
27581 PR tree-optimization/69599
27582 * tree-ssa-structalias.c (fndecl_maybe_in_other_partition): New
27584 (find_func_aliases_for_builtin_call, find_func_clobbers)
27585 (ipa_pta_execute): Handle case that foo and foo._0 are not in same lto
27588 2016-02-09 Richard Biener <rguenther@suse.de>
27590 PR tree-optimization/69715
27591 * tree-ssa.c (execute_update_addresses_taken): Mark non-decl
27592 LHS on calls as non-rewritable.
27594 2016-02-09 Tom de Vries <tom@codesourcery.com>
27597 * lto-wrapper.c (append_diag_options): New function.
27598 (compile_offload_image): Call append_diag_options.
27600 2016-02-08 Sandra Loosemore <sandra@codesourcery.com>
27603 * doc/extend.texi (Flag Output Operands): Correct sectioning.
27604 Minor copy-edit to fix verb tenses.
27606 2016-02-08 Jakub Jelinek <jakub@redhat.com>
27608 PR tree-optimization/69209
27609 * ipa-split.c (split_function): If split part is not
27610 returning retval, retval has gimple type but is not
27611 gimple value, force it into a SSA_NAME first.
27613 2016-02-08 Nicklas Bo Jensen <nbjensen@gmail.com>
27615 * doc/tree-ssa.texi (Preserving the virtual SSA form): Remove
27618 2016-02-08 Jason Merrill <jason@redhat.com>
27621 * convert.c (convert_to_integer_1): Check dofold on truncation
27623 (convert_to_pointer_maybe_fold, convert_to_real_maybe_fold)
27624 (convert_to_integer_maybe_fold, convert_to_complex_maybe_fold):
27625 Rename from *_nofold.
27626 * convert.h (convert_to_pointer_nofold, convert_to_integer_nofold)
27627 (convert_to_real_nofold, convert_to_complex_nofold): New inlines.
27629 2016-02-08 Bernd Schmidt <bschmidt@redhat.com>
27632 * tree.c (build_common_tree_nodes): Remove short_double argument.
27633 All callers changed.
27634 * tree.h (build_common_tree_nodes): Adjust declaration.
27635 * doc/invoke.texi (-fshort-double): Remove documentation.
27636 * config/mips/t-img-elf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
27637 MULTILIB_EXCEPTIONS): Remove -fshort-double variant.
27638 * lto-wrapper.c (merge_and_complain, append_compiler_options)
27639 (append_linker_options): Don't handle OPT_fshort_double.
27641 PR rtl-optimization/68730
27642 * lra-remat.c (insn_to_cand_activation): New static variable.
27643 (lra_remat): Allocate and free it.
27644 (create_cand): New arg activation. Initialize a field in
27645 insn_to_cand_activation if it is nonnull.
27646 (create_cands): Pass the activation insn to create_cand when making
27647 a candidate involving an output reload. Reorganize code a little.
27648 (do_remat): Keep track of active status of candidates in a separate
27651 2016-02-08 Richard Biener <rguenther@suse.de>
27653 PR tree-optimization/69719
27654 * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
27655 Properly use absolute of the difference of the two offsets to
27656 compare or adjust the segment length.
27658 2016-02-08 Richard Biener <rguenther@suse.de>
27659 Jeff Law <law@redhat.com>
27662 * tree-ssanames.c (make_ssa_name_fn): Always use unqualified
27663 types for anonymous SSA names.
27665 2016-02-08 Richard Biener <rguenther@suse.de>
27667 PR rtl-optimization/69274
27668 * ira.c (ira_setup_alts): Do not change recog_data.operand order.
27670 2016-02-08 Jeff Law <law@redhat.com>
27672 PR tree-optimization/65917
27673 * tree-ssa-dom.c (record_temporary_equivalences): Record both
27674 equivalences from if (x == y) style conditionals.
27675 (loop_depth_of_name): Remove.
27676 (record_equality): Remove loop depth check.
27677 * tree-ssa-scopedtables.h (const_and_copies): Refine comments.
27678 (const_and_copies::record_const_or_copy_raw): New member function.
27679 * tree-ssa-scopedtables.c
27680 (const_and_copies::record_const_or_copy_raw): New, factored out of
27681 (const_and_copies::record_const_or_copy): Call new member function.
27683 2016-02-05 Jeff Law <law@redhat.com>
27685 PR tree-optimization/68541
27686 * gimple-ssa-split-paths.c: Include tree-cfg.h and params.h.
27687 (count_stmts_in_block): New function.
27688 (poor_ifcvt_candidate_code): Likewise.
27689 (is_feasible_trace): Add some heuristics to determine when path
27690 splitting is profitable.
27691 (find_block_to_duplicate_for_splitting_paths): Make sure the graph
27692 is a diamond with a single exit.
27694 2016-02-05 Martin Sebor <msebor@redhat.com>
27697 * doc/invoke.texi: Update -Wplacement-new to take an optional
27700 2016-02-06 Richard Henderson <rth@redhat.com>
27703 * tree.c (tree_nop_conversion_p): Do not strip casts into or
27704 out of non-standard address spaces.
27706 2016-02-05 Jakub Jelinek <jakub@redhat.com>
27708 PR rtl-optimization/69691
27709 * lra-eliminations.c (move_plus_up): Don't add the addend twice.
27711 2016-02-05 Pat Haugen <pthaugen@us.ibm.com>
27713 * config/rs6000/crypto.md (crypto_vpermxor_<mode>): Correct insn type.
27714 * config/rs6000/rs6000.md (mov<mode>_hardfloat): Likewise.
27715 (*ieee128_mfvsrd_64bit): Likewise.
27716 (*ieee128_mfvsrd_32bit): Likewise.
27718 2016-02-05 Ilya Enkovich <enkovich.gnu@gmail.com>
27722 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
27724 * cgraphunit.c (cgraph_node::reset): Clear thunk info and
27725 instrumented_version.
27727 2016-01-05 Jeremy Bennett <jeremy.bennett@embecosm.com>
27729 * doc/invoke.texi (Optimize Options): In table of --param options
27730 rename second occurrence of tracer-min-branch-ratio to
27731 tracer-min-branch-probability, rename
27732 tracer-min-branch-ratio-feedback to
27733 tracer-min-branch-probability-feedback and clarify description,
27734 rename sched-spec-state-edge-prob-cutoff to
27735 sched-state-edge-prob-cutoff, rename selsched-max-insns-to-rename
27736 to selsched-insns-to-rename, rename lto-minpartition to
27737 lto-min-partition, delete reorder-blocks-duplicate and
27738 reorder-blocks-duplicate-feedback.
27740 2016-02-05 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
27742 * config/s390/s390.c (s390_register_info_set_ranges): Remove
27745 2016-02-05 Dominik Vogt <vogt@linux.vnet.ibm.com>
27747 * doc/extend.texi: S/390: Correct some typos.
27749 2016-02-05 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
27751 * config/s390/s390.c (s390_emit_call): Add missing 64 bit check.
27753 2016-02-05 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
27756 * config/s390/s390.c (SAVE_SLOT_NONE, SAVE_SLOT_STACK): New defines.
27757 (s390_register_info_gprtofpr): Use new macros above.
27758 (s390_register_info_stdarg_fpr): Adjust max_fpr to better match
27760 (s390_register_info_stdarg_gpr): Adjust max_gpr to better match
27761 its name. Adjust restore and save gpr ranges.
27762 (s390_register_info_set_ranges): New function.
27763 (s390_register_info): Use new macros above. Call
27764 s390_register_info_set_ranges.
27765 (s390_optimize_register_info): Likewise.
27766 (s390_hard_regno_rename_ok): Use new macros.
27767 (s390_hard_regno_scratch_ok): Likewise.
27768 (s390_emit_epilogue): Likewise.
27769 (s390_can_use_return_insn): Likewise.
27770 (s390_optimize_prologue): Likewise.
27771 * config/s390/s390.md (GPR2_REGNUM, GPR6_REGNUM): New constants.
27773 2016-02-05 Jakub Jelinek <jakub@redhat.com>
27776 * config/i386/i386.c (convert_scalars_to_vector): Readd stack
27778 (ix86_option_override_internal): Disable TARGET_STV even for
27779 -m{incoming,preferred}-stack-boundary=3.
27781 2016-02-03 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
27783 * config.gcc: Mark deprecated rtems targets as obsolete.
27785 2016-02-04 Segher Boessenkool <segher@kernel.crashing.org>
27787 PR rtl-optimization/64682
27788 PR rtl-optimization/69567
27789 * combine.c (distribute_notes) <REG_DEAD>: Place the death note
27790 before I2 only if the register is both used and set in I2.
27792 2016-02-04 DJ Delorie <dj@redhat.com>
27794 * config/msp430/msp430.c (msp430_start_function): Add function type.
27796 2016-02-04 Jakub Jelinek <jakub@redhat.com>
27799 * tree-dfa.c (get_ref_base_and_extent): Remove unreachable code.
27801 2016-02-04 Uros Bizjak <ubizjak@gmail.com>
27803 PR rtl-optimization/69577
27805 2015-10-29 Richard Henderson <rth@redhat.com>
27809 * config/i386/i386.c (ix86_cannot_change_mode_class): Tighten
27810 sse check to the exact conditions of PR 67609.
27812 2016-02-04 Michael Meissner <meissner@linux.vnet.ibm.com>
27815 * config/rs6000/rs6000.md (mov<mode>_64bit_dm): Use 'd' constraint
27816 instead of 'ws', and 'wh' instead of 'wm' since TFmode/IFmode are
27817 not allowed into the traditional Altivec registers.
27818 (movtd_64bit_nodm): Likewise.
27819 (mov<mode>_32bit, FMOVE128_FPR iterator): Likewise.
27821 2016-02-04 David Malcolm <dmalcolm@redhat.com>
27823 * config/aarch64/cortex-a57-fma-steering.c
27824 (aarch64_register_fma_steering): Remove "static" from arguments
27827 2016-02-04 Wilco Dijkstra <wdijkstr@arm.com>
27830 * ccmp.c (expand_ccmp_expr_1): Avoid evaluating gs0/gs1
27831 twice when complex.
27833 2016-02-04 Mike Frysinger <vapier@gentoo.org>
27835 * doc/invoke.texi: Delete -mno-fma4.
27837 2016-02-04 Richard Sandiford <richard.sandiford@arm.com>
27839 PR rtl-optimization/69577
27840 * reginfo.c (record_subregs_of_mode): Add a partial_def parameter.
27841 (find_subregs_of_mode): Update accordingly. Iterate over partial
27844 2016-02-04 Alan Lawrence <alan.lawrence@arm.com>
27846 * config/arm/arm-protos.h (neon_reinterpret): Remove.
27847 * config/arm/arm.c (neon_reinterpret): Remove.
27848 * config/arm/arm_neon_builtins.def (vreinterpretv8qi, vreinterpretv4hi,
27849 vreinterpretv2si, vreinterpretv2sf, vreinterpretdi, vreinterpretv16qi,
27850 vreinterpretv8hi, vreinterpretv4si, vreinterpretv4sf, vreinterpretv2di,
27851 vreinterpretti): Remove.
27852 * config/arm/neon.md (neon_vreinterpretv8qi<mode>,
27853 neon_vreinterpretv4hi<mode>, neon_vreinterpretv2si<mode>,
27854 neon_vreinterpretv2sf<mode>, neon_vreinterpretdi<mode>,
27855 neon_vreinterpretti<mode>, neon_vreinterpretv16qi<mode>,
27856 neon_vreinterpretv8hi<mode>, neon_vreinterpretv4si<mode>,
27857 neon_vreinterpretv4sf<mode>, neon_vreinterpretv2di<mode>): Remove.
27858 * config/arm/arm_neon.h (vreinterpret_p8_p16, vreinterpret_p8_f32,
27859 vreinterpret_p8_p64, vreinterpret_p8_s64, vreinterpret_p8_u64,
27860 vreinterpret_p8_s8, vreinterpret_p8_s16, vreinterpret_p8_s32,
27861 vreinterpret_p8_u8, vreinterpret_p8_u16, vreinterpret_p8_u32,
27862 vreinterpret_p16_p8, vreinterpret_p16_f32, vreinterpret_p16_p64,
27863 vreinterpret_p16_s64, vreinterpret_p16_u64, vreinterpret_p16_s8,
27864 vreinterpret_p16_s16, vreinterpret_p16_s32, vreinterpret_p16_u8,
27865 vreinterpret_p16_u16, vreinterpret_p16_u32, vreinterpret_f32_p8,
27866 vreinterpret_f32_p16, vreinterpret_f32_p64, vreinterpret_f32_s64,
27867 vreinterpret_f32_u64, vreinterpret_f32_s8, vreinterpret_f32_s16,
27868 vreinterpret_f32_s32, vreinterpret_f32_u8, vreinterpret_f32_u16,
27869 vreinterpret_f32_u32, vreinterpret_p64_p8, vreinterpret_p64_p16,
27870 vreinterpret_p64_f32, vreinterpret_p64_s64, vreinterpret_p64_u64,
27871 vreinterpret_p64_s8, vreinterpret_p64_s16, vreinterpret_p64_s32,
27872 vreinterpret_p64_u8, vreinterpret_p64_u16, vreinterpret_p64_u32,
27873 vreinterpret_s64_p8, vreinterpret_s64_p16, vreinterpret_s64_f32,
27874 vreinterpret_s64_p64, vreinterpret_s64_u64, vreinterpret_s64_s8,
27875 vreinterpret_s64_s16, vreinterpret_s64_s32, vreinterpret_s64_u8,
27876 vreinterpret_s64_u16, vreinterpret_s64_u32, vreinterpret_u64_p8,
27877 vreinterpret_u64_p16, vreinterpret_u64_f32, vreinterpret_u64_p64,
27878 vreinterpret_u64_s64, vreinterpret_u64_s8, vreinterpret_u64_s16,
27879 vreinterpret_u64_s32, vreinterpret_u64_u8, vreinterpret_u64_u16,
27880 vreinterpret_u64_u32, vreinterpret_s8_p8, vreinterpret_s8_p16,
27881 vreinterpret_s8_f32, vreinterpret_s8_p64, vreinterpret_s8_s64,
27882 vreinterpret_s8_u64, vreinterpret_s8_s16, vreinterpret_s8_s32,
27883 vreinterpret_s8_u8, vreinterpret_s8_u16, vreinterpret_s8_u32,
27884 vreinterpret_s16_p8, vreinterpret_s16_p16, vreinterpret_s16_f32,
27885 vreinterpret_s16_p64, vreinterpret_s16_s64, vreinterpret_s16_u64,
27886 vreinterpret_s16_s8, vreinterpret_s16_s32, vreinterpret_s16_u8,
27887 vreinterpret_s16_u16, vreinterpret_s16_u32, vreinterpret_s32_p8,
27888 vreinterpret_s32_p16, vreinterpret_s32_f32, vreinterpret_s32_p64,
27889 vreinterpret_s32_s64, vreinterpret_s32_u64, vreinterpret_s32_s8,
27890 vreinterpret_s32_s16, vreinterpret_s32_u8, vreinterpret_s32_u16,
27891 vreinterpret_s32_u32, vreinterpret_u8_p8, vreinterpret_u8_p16,
27892 vreinterpret_u8_f32, vreinterpret_u8_p64, vreinterpret_u8_s64,
27893 vreinterpret_u8_u64, vreinterpret_u8_s8, vreinterpret_u8_s16,
27894 vreinterpret_u8_s32, vreinterpret_u8_u16, vreinterpret_u8_u32,
27895 vreinterpret_u16_p8, vreinterpret_u16_p16, vreinterpret_u16_f32,
27896 vreinterpret_u16_p64, vreinterpret_u16_s64, vreinterpret_u16_u64,
27897 vreinterpret_u16_s8, vreinterpret_u16_s16, vreinterpret_u16_s32,
27898 vreinterpret_u16_u8, vreinterpret_u16_u32, vreinterpret_u32_p8,
27899 vreinterpret_u32_p16, vreinterpret_u32_f32, vreinterpret_u32_p64,
27900 vreinterpret_u32_s64, vreinterpret_u32_u64, vreinterpret_u32_s8,
27901 vreinterpret_u32_s16, vreinterpret_u32_s32, vreinterpret_u32_u8,
27902 vreinterpret_u32_u16, vreinterpretq_p8_p16, vreinterpretq_p8_f32,
27903 vreinterpretq_p8_p64, vreinterpretq_p8_p128, vreinterpretq_p8_s64,
27904 vreinterpretq_p8_u64, vreinterpretq_p8_s8, vreinterpretq_p8_s16,
27905 vreinterpretq_p8_s32, vreinterpretq_p8_u8, vreinterpretq_p8_u16,
27906 vreinterpretq_p8_u32, vreinterpretq_p16_p8, vreinterpretq_p16_f32,
27907 vreinterpretq_p16_p64, vreinterpretq_p16_p128, vreinterpretq_p16_s64,
27908 vreinterpretq_p16_u64, vreinterpretq_p16_s8, vreinterpretq_p16_s16,
27909 vreinterpretq_p16_s32, vreinterpretq_p16_u8, vreinterpretq_p16_u16,
27910 vreinterpretq_p16_u32, vreinterpretq_f32_p8, vreinterpretq_f32_p16,
27911 vreinterpretq_f32_p64, vreinterpretq_f32_p128, vreinterpretq_f32_s64,
27912 vreinterpretq_f32_u64, vreinterpretq_f32_s8, vreinterpretq_f32_s16,
27913 vreinterpretq_f32_s32, vreinterpretq_f32_u8, vreinterpretq_f32_u16,
27914 vreinterpretq_f32_u32, vreinterpretq_p64_p8, vreinterpretq_p64_p16,
27915 vreinterpretq_p64_f32, vreinterpretq_p64_p128, vreinterpretq_p64_s64,
27916 vreinterpretq_p64_u64, vreinterpretq_p64_s8, vreinterpretq_p64_s16,
27917 vreinterpretq_p64_s32, vreinterpretq_p64_u8, vreinterpretq_p64_u16,
27918 vreinterpretq_p64_u32, vreinterpretq_p128_p8, vreinterpretq_p128_p16,
27919 vreinterpretq_p128_f32, vreinterpretq_p128_p64, vreinterpretq_p128_s64,
27920 vreinterpretq_p128_u64, vreinterpretq_p128_s8, vreinterpretq_p128_s16,
27921 vreinterpretq_p128_s32, vreinterpretq_p128_u8, vreinterpretq_p128_u16,
27922 vreinterpretq_p128_u32, vreinterpretq_s64_p8, vreinterpretq_s64_p16,
27923 vreinterpretq_s64_f32, vreinterpretq_s64_p64, vreinterpretq_s64_p128,
27924 vreinterpretq_s64_u64, vreinterpretq_s64_s8, vreinterpretq_s64_s16,
27925 vreinterpretq_s64_s32, vreinterpretq_s64_u8, vreinterpretq_s64_u16,
27926 vreinterpretq_s64_u32, vreinterpretq_u64_p8, vreinterpretq_u64_p16,
27927 vreinterpretq_u64_f32, vreinterpretq_u64_p64, vreinterpretq_u64_p128,
27928 vreinterpretq_u64_s64, vreinterpretq_u64_s8, vreinterpretq_u64_s16,
27929 vreinterpretq_u64_s32, vreinterpretq_u64_u8, vreinterpretq_u64_u16,
27930 vreinterpretq_u64_u32, vreinterpretq_s8_p8, vreinterpretq_s8_p16,
27931 vreinterpretq_s8_f32, vreinterpretq_s8_p64, vreinterpretq_s8_p128,
27932 vreinterpretq_s8_s64, vreinterpretq_s8_u64, vreinterpretq_s8_s16,
27933 vreinterpretq_s8_s32, vreinterpretq_s8_u8, vreinterpretq_s8_u16,
27934 vreinterpretq_s8_u32, vreinterpretq_s16_p8, vreinterpretq_s16_p16,
27935 vreinterpretq_s16_f32, vreinterpretq_s16_p64, vreinterpretq_s16_p128,
27936 vreinterpretq_s16_s64, vreinterpretq_s16_u64, vreinterpretq_s16_s8,
27937 vreinterpretq_s16_s32, vreinterpretq_s16_u8, vreinterpretq_s16_u16,
27938 vreinterpretq_s16_u32, vreinterpretq_s32_p8, vreinterpretq_s32_p16,
27939 vreinterpretq_s32_f16, vreinterpretq_s32_f32, vreinterpretq_s32_p64,
27940 vreinterpretq_s32_p128, vreinterpretq_s32_s64, vreinterpretq_s32_u64,
27941 vreinterpretq_s32_s8, vreinterpretq_s32_s16, vreinterpretq_s32_u8,
27942 vreinterpretq_s32_u16, vreinterpretq_s32_u32, vreinterpretq_u8_p8,
27943 vreinterpretq_u8_p16, vreinterpretq_u8_f32, vreinterpretq_u8_p64,
27944 vreinterpretq_u8_p128, vreinterpretq_u8_s64, vreinterpretq_u8_u64,
27945 vreinterpretq_u8_s8, vreinterpretq_u8_s16, vreinterpretq_u8_s32,
27946 vreinterpretq_u8_u16, vreinterpretq_u8_u32, vreinterpretq_u16_p8,
27947 vreinterpretq_u16_p16, vreinterpretq_u16_f32, vreinterpretq_u16_p64,
27948 vreinterpretq_u16_p128, vreinterpretq_u16_s64, vreinterpretq_u16_u64,
27949 vreinterpretq_u16_s8, vreinterpretq_u16_s16, vreinterpretq_u16_s32,
27950 vreinterpretq_u16_u8, vreinterpretq_u16_u32, vreinterpretq_u32_p8,
27951 vreinterpretq_u32_p16, vreinterpretq_u32_f32, vreinterpretq_u32_p64,
27952 vreinterpretq_u32_p128, vreinterpretq_u32_s64, vreinterpretq_u32_u64,
27953 vreinterpretq_u32_s8, vreinterpretq_u32_s16, vreinterpretq_u32_s32,
27954 vreinterpretq_u32_u8, vreinterpretq_u32_u16): Rewrite using casts.
27956 2016-02-04 Martin Liska <mliska@suse.cz>
27959 * asan.c (has_stmt_been_instrumented_p): Instrument gimple calls
27960 that are gimple_store_p.
27961 (maybe_instrument_call): Likewise.
27963 2016-02-04 Bin Cheng <bin.cheng@arm.com>
27965 * config/aarch64/aarch64.c (aarch64_legitimize_address): Force
27966 register scaling out of memory reference and comment why.
27968 2016-02-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
27972 * cse.c (cse_insn): Pass NULL to fold_rtx when initially
27973 folding the source of a SET.
27975 2016-02-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
27979 * config/arm/arm.c (arm_new_rtx_costs, MULT case): Properly extract
27980 the operands of the SIGN_EXTENDs from a SMUL[TB][TB] rtx.
27982 2016-02-04 Jim Wilson <jim.wilson@linaro.org>
27986 * config/arm/arm.h (PROMOTE_MODE): Don't set UNSIGNEDP for QImode and
27989 2016-02-04 Christian Bruel <christian.bruel@st.com>
27991 * config/arm/arm-c.c (arm_reset_previous_fndecl): Style fix and typo.
27992 * config/arm/arm.c (arm_set_current_function): Likewise.
27994 2016-02-04 Jakub Jelinek <jakub@redhat.com>
27995 Ilya Enkovich <enkovich.gnu@gmail.com>
27996 H.J. Lu <hongjiu.lu@intel.com>
27999 * config/i386/i386.c (convert_scalars_to_vector): Remove
28000 stack alignment fixes.
28001 (ix86_option_override_internal): Disable TARGET_STV if stack
28002 might not be aligned enough.
28003 (ix86_minimum_alignment): Assert that TARGET_STV is false.
28005 2016-02-04 Victoria Stepanyan <victoria.stepanyan@amd.com>
28007 * config/i386/x86-tune.def: Disable default prefetching
28010 2016-02-03 Michael Meissner <meissner@linux.vnet.ibm.com>
28011 Vladimir Makarov <vmakarov@redhat.com>
28014 * config/rs6000/rs6000.c (rs6000_legitimate_address_p): Fix thinko
28015 in validating fused toc addresses.
28017 2016-02-03 Jakub Jelinek <jakub@redhat.com>
28020 * diagnostic-show-locus.c (layout::get_state_at_point): Don't read
28021 range->m_caret fields if range->m_show_caret_p is false.
28024 * config/rs6000/rs6000.c (rs6000_expand_atomic_compare_and_swap):
28025 Force oldval into register if it does not satisfy reg_or_short_operand
28026 predicate. Fix up formatting.
28028 2016-02-03 Vladimir Makarov <vmakarov@redhat.com>
28029 Alexandre Oliva <aoliva@redhat.com>
28032 * lra-constraints.c (simplify_operand_subreg): Check additionally
28033 address validity after potential reloading.
28034 (process_address_1): Check insns validity. In case of failure do
28037 2016-02-03 Kirill Yukhin <kirill.yukhin@intel.com>
28040 * config/i386/sse.md (define_insn "avx512f_maskcmp<mode>3"):
28043 2016-02-02 Jakub Jelinek <jakub@redhat.com>
28045 * wide-int.cc (canonize_uhwi): New function.
28046 (wi::divmod_internal): Use it.
28048 2016-02-02 James Norris <jnorris@codesourcery.com>
28050 * gimplify.c (omp_notice_variable): Add usage check.
28052 2016-02-02 Alexander Monakov <amonakov@ispras.ru>
28054 * config/nvptx/nvptx.c (nvptx_print_operand): Treat LEU, GEU, LTU, GTU
28055 like LE, GE, LT, GT when emitting relational operator.
28057 2016-02-02 Wilco Dijkstra <wdijkstr@arm.com>
28059 * ira-costs.c (find_costs_and_classes): Add extra argument.
28060 * target.def (ira_change_pseudo_allocno_class): Add parameter.
28061 * targhooks.h (ira_change_pseudo_allocno_class): Likewise.
28062 * targhooks.c (ira_change_pseudo_allocno_class): Likewise.
28063 * config/aarch64/aarch64.c (aarch64_ira_change_pseudo_allocno_class)
28064 Add best_class parameter, and return it if not ALL_REGS.
28065 * config/mips/mips.c (mips_ira_change_pseudo_allocno_class):
28067 * doc/tm.texi (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS):
28068 Update target hook.
28070 2016-02-02 Wilco Dijkstra <wdijkstr@arm.com>
28072 * config/aarch64/aarch64.c
28073 (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS): New define.
28074 (aarch64_ira_change_pseudo_allocno_class): New function.
28076 2016-02-02 Uros Bizjak <ubizjak@gmail.com>
28079 * config/i386/i386.c (geode_cost): Increase cost of MMX and SSE moves.
28081 2016-02-02 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
28083 * config/avr/avr.c (avr_option_override): Set
28084 PARAM_ALLOW_STORE_DATA_RACES to 1.
28086 2016-02-02 Richard Biener <rguenther@suse.de>
28088 PR tree-optimization/69595
28089 * match.pd: Add range test simplifications to true/false.
28091 2016-02-02 Thomas Schwinge <thomas@codesourcery.com>
28093 * omp-builtins.def (BUILT_IN_GOACC_HOST_DATA): Remove.
28094 * omp-low.c (expand_omp_target): Use BUILT_IN_GOACC_DATA_START
28097 2016-02-02 Richard Biener <rguenther@suse.de>
28099 PR tree-optimization/69606
28100 * tree-ssa-math-opts.c (bswap_replace): Clear flow sensitive
28101 info on the result before moving a stmt.
28103 2016-02-02 Yuri Rumyantsev <ysrumyan@gmail.com>
28105 PR middle-end/68542
28106 * config/i386/i386.c (ix86_expand_branch): Add support for conditional
28107 branch with vector comparison.
28108 * config/i386/sse.md (VI48_AVX): New mode iterator.
28109 (define_expand "cbranch<mode>4): Add support for conditional branch
28110 with vector comparison.
28111 * tree-vect-loop.c (optimize_mask_stores): New function.
28112 * tree-vect-stmts.c (vectorizable_mask_load_store): Initialize
28113 has_mask_store field of vect_info.
28114 * tree-vectorizer.c (vectorize_loops): Invoke optimaze_mask_stores for
28115 vectorized loops having masked stores after vec_info destroy.
28116 * tree-vectorizer.h (loop_vec_info): Add new has_mask_store field and
28117 correspondent macros.
28118 (optimize_mask_stores): Add prototype.
28120 2016-02-02 Alan Modra <amodra@gmail.com>
28123 * config/rs6000/predicates.md (quad_int_reg_operand): Don't
28126 2016-02-02 Alan Modra <amodra@gmail.com>
28129 * config/rs6000/rs6000.c (need_toc_init): New var, set it
28130 whenever toc_label_name used.
28131 (rs6000_file_start): Don't set up toc section here,
28132 (rs6000_output_function_epilogue): do so here instead,
28133 (rs6000_xcoff_file_start): and here.
28134 * config/rs6000/rs6000.md (load_toc_aix_si): Set need_toc_init.
28135 (load_toc_aix_di): Likewise.
28137 2016-02-01 Jakub Jelinek <jakub@redhat.com>
28139 PR rtl-optimization/69592
28140 * rtlanal.c (nonzero_bits_binary_arith_p): New inline function.
28141 (cached_nonzero_bits): Use it instead of ARITHMETIC_P.
28142 (num_sign_bit_copies_binary_arith_p): New inline function.
28143 (cached_num_sign_bit_copies): Use it instead of ARITHMETIC_P.
28145 2016-02-01 Jeff Law <law@redhat.com>
28147 PR tree-optimization/69580
28148 * params.def (FSM_MAXIMUM_PHI_ARGUMENTS): New param.
28149 * tree-ssa-threadbackward.c
28150 (fsm_find_control_statement_thread_paths): Do not try to walk
28151 through large PHI nodes.
28153 2016-02-01 Jakub Jelinek <jakub@redhat.com>
28155 * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Return false
28156 when count is incremented above limit, don't analyze further
28159 * omp-low.c (oacc_parse_default_dims): Avoid
28160 -Wsign-compare warning, make sure value fits into int
28161 rather than just unsigned int.
28163 2016-02-01 Bin Cheng <bin.cheng@arm.com>
28165 PR tree-optimization/67921
28166 * fold-const.c (split_tree): New parameters. Convert pointer
28167 type variable part to proper type before negating.
28168 (fold_binary_loc): Pass new arguments to split_tree.
28170 2016-02-01 Nathan Sidwell <nathan@codesourcery.com>
28172 * config/nvptx/nvptx.c (PTX_GANG_DEFAULT): New.
28173 (nvptx_goacc_validate_dims): Extend to handle global defaults.
28174 * target.def (OACC_VALIDATE_DIMS): Extend documentation.
28175 * doc/tm.texti: Rebuilt.
28176 * doc/invoke.texi (fopenacc-dim): Document.
28177 * lto-wrapper.c (merge_and_complain): Add OPT_fopenacc_dim_ case.
28178 (append_compiler_options): Likewise.
28179 * omp-low.c (oacc_default_dims, oacc_min_dims): New.
28180 (oacc_parse_default_dims): New.
28181 (oacc_validate_dims): Add USED arg. Select non-unity default when
28183 (oacc_loop_fixed_partitions): Return mask of used partitions.
28184 (oacc_loop_auto_partitions): Emit dump info.
28185 (oacc_loop_partition): Return mask of used partitions.
28186 (execute_oacc_device_lower): Parse default dimension arg. Adjust
28187 loop partitioning and validation calls.
28189 2016-02-01 Richard Biener <rguenther@suse.de>
28191 PR middle-end/69556
28192 * match.pd: Guard (C1/X)*C2 -> (C1*C2)/X with single_use.
28194 2016-02-01 Richard Biener <rguenther@suse.de>
28196 PR tree-optimization/69574
28197 * tree-chrec.c (hide_evolution_in_other_loops_than_loop): Instead
28198 of asserting return chrec_dont_know.
28200 2016-02-01 Martin Liska <mliska@suse.cz>
28202 * mem-stats-traits.h: Add copyright header.
28203 * mem-stats.h: Likewise.
28205 2016-02-01 Richard Biener <rguenther@suse.de>
28207 PR tree-optimization/69579
28208 * tree-ssa-loop-ivcanon.c (propagate_constants_for_unrolling):
28209 Do not propagate through abnormal PHI results.
28211 2016-02-01 Eric Botcazou <ebotcazou@adacore.com>
28213 * postreload.c (reload_cse_simplify): Remove dead code.
28215 2016-02-01 Jakub Jelinek <jakub@redhat.com>
28217 PR rtl-optimization/69570
28218 * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Return true only
28219 if there is more than one set, not if there is a single set.
28221 2016-02-01 Richard Henderson <rth@redhat.com>
28224 * combine.c (make_compound_operation): When looking through a
28225 subreg, make sure to re-extend to the width of the outer mode.
28227 2016-01-30 Jakub Jelinek <jakub@redhat.com>
28229 PR tree-optimization/69546
28230 * wide-int.cc (wi::divmod_internal): For unsigned division
28231 where both operands fit into uhwi, if o1 is 1 and o0 has
28232 msb set, if divident_prec is larger than bits per hwi,
28233 clear another quotient word and return 2 instead of 1.
28234 Similarly for remainder with msb in HWI set, if dividend_prec
28235 is larger than bits per hwi.
28237 2016-01-29 Martin Jambor <mjambor@suse.cz>
28239 * hsa-gen.c (get_memory_order_name): Mask with MEMMODEL_BASE_MASK.
28240 Use short lowercase names.
28241 (get_memory_order): Mask with MEMMODEL_BASE_MASK. Support
28242 MEMMODEL_CONSUME with acquire semantics and MEMMODEL_SEQ_CST with
28243 acq_rel one. Protect warning agains segfaults if
28244 get_memory_order_name returns NULL.
28245 (gen_hsa_ternary_atomic_for_builtin): Support with MEMMODEL_SEQ_CST
28246 with release semantics. Do not warn if get_memory_order already did.
28247 (gen_hsa_insns_for_call): Support with MEMMODEL_SEQ_CST with acquire
28248 semantics. Fix check for relaxed or acquire semantics. Do not warn
28249 if get_memory_order already did.
28251 2016-01-29 Sebastian Pop <s.pop@samsung.com>
28253 * doc/install.texi: Document that isl-0.16 is supported.
28255 2016-01-29 Vladimir Makarov <vmakarov@redhat.com>
28258 * config/i386/constraints.md (Bm): Describe as special memory
28260 * doc/md.texi (DEFINE_SPECIAL_MEMORY_CONSTRAINT): Describe it.
28261 * genoutput.c (main): Process DEFINE_SPECIAL_MEMORY_CONSTRAINT.
28262 * genpreds.c (struct constraint_data): Add is_special_memory.
28263 (have_special_memory_constraints, special_memory_start): New
28265 (special_memory_end): Ditto.
28266 (add_constraint): Add new arg is_special_memory. Add code to
28267 process its true value. Update have_special_memory_constraints.
28268 (process_define_constraint): Pass the new arg.
28269 (process_define_register_constraint): Ditto.
28270 (choose_enum_order): Process special memory.
28271 (write_tm_preds_h): Generate enum const CT_SPECIAL_MEMORY and
28272 function insn_extra_special_memory_constraint.
28273 (main): Process DEFINE_SPECIAL_MEMORY_CONSTRAINT.
28274 * gensupport.c (process_rtx): Process
28275 DEFINE_SPECIAL_MEMORY_CONSTRAINT.
28276 * ira-costs.c (record_reg_classes): Process CT_SPECIAL_MEMORY.
28277 * ira-lives.c (single_reg_class): Use
28278 insn_extra_special_memory_constraint.
28279 * ira.c (ira_setup_alts): Process CT_SPECIAL_MEMORY.
28280 * lra-constraints.c (process_alt_operands): Ditto.
28281 (curr_insn_transform): Use insn_extra_special_memory_constraint.
28282 * recog.c (asm_operand_ok, preprocess_constraints): Process
28284 * reload.c (find_reloads): Ditto.
28285 * rtl.def (DEFINE_SPECIFAL_MEMORY_CONSTRAINT): New.
28286 * stmt.c (parse_input_constraint): Use
28287 insn_extra_special_memory_constraint.
28289 2016-01-29 H.J. Lu <hongjiu.lu@intel.com>
28292 * lra-splill.c (lra_final_code_change): Revert r229087 by
28293 removing all sub-registers.
28295 2016-01-29 Steve Ellcey <sellcey@imgtec.com>
28298 * config/mips/mips.c (mips_output_division): Check flag_delayed_branch.
28300 2016-01-29 Jakub Jelinek <jakub@redhat.com>
28303 * config/i386/i386.c (ix86_expand_vector_set) <case V4SImode>: For
28304 SSE1, copy target into the temporary reg first before recursing
28307 2016-01-29 H.J. Lu <hongjiu.lu@intel.com>
28309 * config/i386/sse.md (sse2_cvtps2pd<mask_name>): Replace vBm
28312 2016-01-29 Jonathan Wakely <jwakely@redhat.com>
28314 * ginclude/stdarg.h: Test __cplusplus instead of
28315 __GXX_EXPERIMENTAL_CXX0X__.
28317 2016-01-29 Richard Biener <rguenther@suse.de>
28319 PR tree-optimization/69547
28320 * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1):
28321 Do not mark clobbers necessary.
28322 (mark_all_reaching_defs_necessary_1): Likewise.
28324 2016-01-29 Dominik Vogt <vogt@linux.vnet.ibm.com>
28326 * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Format
28327 declaration name with %qs and print it in both error messages.
28328 Also fix indentation.
28330 2016-01-29 Dominik Vogt <vogt@linux.vnet.ibm.com>
28333 * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Remove
28334 trailing blank line from error message.
28336 2016-01-29 Jonathan Wakely <jwakely@redhat.com>
28339 * ginclude/float.h: Also provide FLT_EVAL_METHOD and DECIMAL_DIG
28342 2016-01-29 Richard Biener <rguenther@suse.de>
28344 PR middle-end/69537
28345 * match.pd: Allow all integral types when simplifying a
28346 widening or sign-changing conversion.
28348 2016-01-28 Sebastian Pop <s.pop@samsung.com>
28350 * graphite-isl-ast-to-gimple.c (get_rename_from_scev): Revert assert
28351 back to setting codegen_error to fail codegen.
28353 2016-01-28 Uros Bizjak <ubizjak@gmail.com>
28356 * config/i386/constraints.md (C): Only accept constant zero operand.
28357 (BC): New constraint.
28358 * config/i386/sse.md (*mov<mode>_internal): Use BC constraint
28359 instead of C constraint.
28360 * doc/md.texi (Machine Constraints): Update description
28363 2016-01-28 Steve Ellcey <sellcey@imgtec.com>
28366 * config/mips/mips.c (and_operands_ok): Add MIPS16 check.
28368 2016-01-28 Jakub Jelinek <jakub@redhat.com>
28370 PR middle-end/69542
28371 * lra-remat.c (calculate_local_reg_remat_bb_data): Only consider
28374 2016-01-28 Pat Haugen <pthaugen@us.ibm.com>
28376 * config/rs6000/rs6000.c (output_cbranch): Don't statically predict
28377 branches if using guessed profile.
28379 2016-01-28 H.J. Lu <hongjiu.lu@intel.com>
28381 * graphite-optimize-isl.c (optimize_isl): Fix dump.
28383 2016-01-28 Richard Henderson <rth@redhat.com>
28386 * config/aarch64/aarch64-modes.def (CC_Cmode): New
28387 * config/aarch64/aarch64-protos.h: Update.
28388 * config/aarch64/aarch64.c (aarch64_zero_extend_const_eq): New.
28389 (aarch64_select_cc_mode): Add check for use of CC_Cmode.
28390 (aarch64_get_condition_code_1): Handle CC_Cmode.
28391 * config/aarch64/aarch64.md (addti3): Use adddi3_compareC.
28392 (*add<mode>3_compareC_cconly_imm): New.
28393 (*add<mode>3_compareC_cconly): New.
28394 (*add<mode>3_compareC_imm): New.
28395 (add<mode>3_compareC): New.
28396 (add<mode>3_carryin, *addsi3_carryin_uxtw): Sort compare operand
28397 to be first. Use aarch64_carry_operation.
28398 (*add<mode>3_carryin_alt1, *addsi3_carryin_alt1_uxtw): Remove.
28399 (*add<mode>3_carryin_alt2, *addsi3_carryin_alt2_uxtw): Remove.
28400 (*add<mode>3_carryin_alt3, *addsi3_carryin_alt3_uxtw): Remove.
28401 (subti3): Use subdi3_compare1.
28402 (*sub<mode>3_compare0): Rename from sub<mode>3_compare0.
28403 (sub<mode>3_compare1): New.
28404 (*sub<mode>3_carryin0, *subsi3_carryin_uxtw): New.
28405 (*sub<mode>3_carryin): Use aarch64_borrow_operation.
28406 (*subsi3_carryin_uxtw): Likewise.
28407 (*ngc<mode>, *ngcsi_uxtw): Likewise.
28408 (*sub<mode>3_carryin_alt, *subsi3_carryin_alt_uxtw): New.
28409 * config/aarch64/iterators.md (DWI): New.
28410 * config/aarch64/predicates.md (aarch64_carry_operation): New.
28411 (aarch64_borrow_operation): New.
28413 2016-01-28 Abderrazek Zaafrani <a.zaafrani@samsung.com>
28415 * graphite-optimize-isl.c (optimize_isl): Print a different debug
28416 message when isl does not return a valid schedule.
28418 2016-01-28 Sebastian Pop <s.pop@samsung.com>
28420 * graphite-isl-ast-to-gimple.c (class translate_isl_ast_to_gimple):
28421 Remove comments from class declarations: they are already in the code
28424 2016-01-28 Sebastian Pop <s.pop@samsung.com>
28426 * graphite-isl-ast-to-gimple.c (binary_op_to_tree): Call
28428 (ternary_op_to_tree): Same.
28429 (unary_op_to_tree): Same.
28430 (nary_op_to_tree): Same.
28431 (gcc_expression_from_isl_expr_op): Same.
28432 (gcc_expression_from_isl_expression): Same.
28433 (graphite_create_new_loop): Same.
28434 (graphite_create_new_loop_guard): Same.
28435 (build_iv_mapping): Same.
28436 (graphite_create_new_guard): Same.
28437 (translate_isl_ast_to_gimple::copy_loop_phi_nodes): Same.
28438 (translate_isl_ast_to_gimple::translate_pending_phi_nodes): Same.
28440 2016-01-28 Sebastian Pop <s.pop@samsung.com>
28442 * graphite-isl-ast-to-gimple.c (get_rename_from_scev): Assert
28443 instead of setting codegen_error to fail codegen.
28445 2016-01-28 Jason Merrill <jason@redhat.com>
28447 * tree.h (BINFO_FLAG_0): Rename from BINFO_MARKED.
28449 2016-01-28 Wilco Dijkstra <wdijkstr@arm.com>
28451 * config/aarch64/aarch64.c (aarch64_if_then_else_costs):
28452 Remove CONST_INT_P check in CCMP cost calculation.
28454 2016-01-28 Wilco Dijkstra <wdijkstr@arm.com>
28456 * config/aarch64/aarch64.c (generic_vector_cost):
28457 Set vec_permute_cost.
28458 (cortexa57_vector_cost): Likewise.
28459 (exynosm1_vector_cost): Likewise.
28460 (xgene1_vector_cost): Likewise.
28461 (aarch64_builtin_vectorization_cost): Use vec_permute_cost.
28462 * config/aarch64/aarch64-protos.h (cpu_vector_cost):
28463 Add vec_permute_cost entry.
28465 2016-01-28 Wilco Dijkstra <wdijkstr@arm.com>
28467 * config/aarch64/aarch64.md (ccmp<mode>): Disassemble
28469 (add<mode>3_compare0): Likewise.
28470 (addsi3_compare0_uxtw): Likewise.
28471 (add<mode>3nr_compare0): Likewise.
28472 (compare_neg<mode>): Likewise.
28473 (<optab><mode>3): Likewise.
28475 2016-01-28 Ilya Enkovich <enkovich.gnu@gmail.com>
28477 * tree-vect-stmts.c (vectorizable_comparison): Add
28478 NULL check for vectype.
28480 2016-01-28 Richard Biener <rguenther@suse.de>
28482 PR tree-optimization/69466
28483 * tree-vect-loop-manip.c (slpeel_duplicate_current_defs_from_edges):
28484 Account for PHIs we couldn't duplicate.
28486 2016-01-28 Martin Liska <mliska@suse.cz>
28489 * ggc-common.c (gt_pch_save): Use ENABLE_VALGRIND_ANNOTATIONS macro
28490 instead of ENABLE_VALGRIND_CHECKING.
28492 2016-01-27 Richard Henderson <rth@redhat.com>
28495 * lra-remat.c (subreg_regs): New.
28496 (dump_candidates_and_remat_bb_data): Dump it.
28497 (operand_to_remat): Reject if operand in subreg_regs.
28498 (set_bb_regs): Collect subreg_regs.
28499 (lra_remat): Init and free subreg_regs. Compute
28500 calculate_local_reg_remat_bb_data before create_cands.
28502 2016-01-27 H.J. Lu <hongjiu.lu@intel.com>
28505 * config/i386/i386.c (ix86_update_stack_boundary): Don't
28506 change stack_alignment_needed for __tls_get_addr call.
28508 2016-01-27 Segher Boessenkool <segher@kernel.crashing.org>
28510 * config/rs6000/rs6000.c (print_operand): Rollback 's' removal.
28512 2016-01-27 Jeff Law <law@redhat.com>
28514 PR tree-optimization/68398
28515 PR tree-optimization/69196
28516 * params.def (PARAM_FSM_SCALE_PATH_STMTS): New parameter.
28517 (PARAM_FSM_SCALE_PATH_BLOCKS): Likewise.
28518 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
28519 Only count PHIs in the last block in the path. The others will
28520 const/copy propagate away. Add heuristic to allow more irreducible
28521 subloops to be created when it is likely profitable to do so.
28523 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
28524 Fix typo in comment. Use gsi_after_labels and remove the GIMPLE_LABEL
28525 check from within the loop. Use gsi_next_nondebug rather than gsi_next.
28527 2016-01-27 Jakub Jelinek <jakub@redhat.com>
28530 * sanitizer.def: Add BEGIN_SANITIZER_BUILTINS and
28531 END_SANITIZER_BUILTINS markers using DEF_BUILTIN_STUB.
28532 * asan.c (DEF_BUILTIN_STUB): Temporarily define.
28533 * tree-streamer-in.c: Include asan.h.
28534 (streamer_get_builtin_tree): For builtins in sanitizer
28535 range call initialize_sanitizer_builtins and retry.
28537 2016-01-27 Ian Lance Taylor <iant@google.com>
28539 * common.opt (fkeep-gc-roots-live): New undocumented option.
28540 * tree-ssa-loop-ivopts.c (add_candidate_1): If
28541 -fkeep-gc-roots-live, skip pointers.
28542 (add_iv_candidate_for_biv): Handle add_candidate_1 returning
28545 2016-01-27 Uros Bizjak <ubizjak@gmail.com>
28548 * config/i386/i386.md (*zext<mode>_doubleword_and): New pattern.
28549 (*zext<mode>_doubleword): Disable for TARGET_ZERO_EXTEND_WITH_AND.
28551 2016-01-27 Thomas Klausner <wiz@NetBSD.org>
28554 * configure.ac: NetBSD provides SSP in its C library.
28555 * configure: Updated.
28557 2016-01-27 Richard Biener <rguenther@suse.de>
28559 PR tree-optimization/69166
28560 * tree-vect-loop.c (vect_is_simple_reduction): Always check
28561 reduction code for commutativity / associativity.
28563 2016-01-27 Martin Jambor <mjambor@suse.cz>
28565 PR tree-optimization/69355
28566 * tree-sra.c (analyze_access_subtree): Correct hole detection when
28567 total_scalarization fails.
28569 2016-01-27 David Edelsohn <dje.gcc@gmail.com>
28571 * config/rs6000/driver-rs6000.c (detect_processor_aix): Add
28574 2016-01-27 Christian Bruel <christian.bruel@st.com>
28577 * config/arm/arm-c.c (arm_pragma_target_parse): Add comments.
28578 Move arm_reset_previous_fndecl and set_target_option_current_node in
28579 the conditional part. Call save_restore_target_globals.
28580 * config/arm/arm.c (arm_set_current_function):
28581 Refactor to better support #pragma target and attribute mix.
28582 Call save_restore_target_globals.
28583 * config/arm/arm-protos.h (save_restore_target_globals): New function.
28585 2016-01-27 Martin Liska <mliska@suse.cz>
28587 * hsa.c (hsa_summary_t::link_functions): Create IPA_REF_ADDR
28588 reference for an HSA kernel and its host function.
28590 2016-01-27 Jakub Jelinek <jakub@redhat.com>
28592 PR tree-optimization/69399
28593 * wide-int.h (wi::lrshift): For larger precisions, only
28594 use fast path if shift is known to be < HOST_BITS_PER_WIDE_INT.
28596 2016-01-27 Claudiu Zissulescu <claziss@synopsys.com>
28598 * config/arc/predicates.md (proper_comparison_operator): Reject
28599 constant-constant comparison.
28601 2016-01-26 Tom de Vries <tom@codesourcery.com>
28603 PR tree-optimization/69110
28604 * tree-data-ref.c (initialize_data_dependence_relation): Handle
28605 DR_NUM_DIMENSIONS == 0.
28607 2016-01-26 Abderrazek Zaafrani <a.zaafrani@samsung.com>
28608 Sebastian Pop <s.pop@samsung.com>
28610 * graphite-isl-ast-to-gimple.c (ternary_op_to_tree): Handle
28611 isl_ast_op_cond and isl_ast_op_select.
28612 (gcc_expression_from_isl_expr_op): Same.
28614 2016-01-26 Jason Merrill <jason@redhat.com>
28617 * tree.c (recompute_constructor_flags): Split out from
28619 (verify_constructor_flags): New.
28620 * tree.h: Declare them.
28622 2016-01-26 Iain Buclaw <ibuclaw@gdcproject.org>
28624 PR rtl-optimization/69217
28625 * var-tracking.c (tracked_record_parameter_p): Don't segfault if there
28626 are no TYPE_FIELDS set for the record type.
28628 2016-01-26 Jakub Jelinek <jakub@redhat.com>
28631 * config/rs6000/rs6000.c (rs6000_option_override_internal): Initialize
28632 toc_label_name unconditionally.
28633 (rs6000_emit_load_toc_table): Call ggc_strdup on toc_label_name for
28634 SYMBOL_REF string. Use toc_label_name instead of constructing
28636 (rs6000_elf_declare_function_name): Use toc_label_name instead of
28637 constructing LCTOC1.
28639 2016-01-26 Martin Sebor <msebor@redhat.com>
28642 * doc/extend.texi (Common Type Attributes): Move text that talks about
28643 attribute packed from attribute aligned to the section discussing
28644 the former attribute for clarity.
28646 2016-01-26 Richard Henderson <rth@redhat.com>
28648 PR middle-end/60908
28649 * trans-mem.c (tm_region_init): Mark entry block as visited.
28651 2016-01-26 David Malcolm <dmalcolm@redhat.com>
28654 * diagnostic-show-locus.c (layout::print_source_line): Replace
28655 call to pp_newline with call to layout::print_newline.
28656 (layout::print_annotation_line): Likewise.
28657 (layout::move_to_column): Likewise.
28658 (layout::print_any_fixits): After printing any fixits, print a
28659 trailing newline, if necessary.
28660 (layout::print_newline): New method, resetting any colorization
28662 (diagnostic_show_locus): Move the pp_newline to before the
28663 early bailout. Remove dummy block enclosing the layout instance.
28664 * diagnostic.c (default_diagnostic_finalizer): Replace invocation
28665 of pp_newline_and_flush with pp_flush.
28666 (diagnostic_append_note): Delete use of pp_newline.
28667 (diagnostic_append_note_at_rich_loc): Delete.
28668 * diagnostic.h (diagnostic_append_note_at_rich_loc): Delete.
28669 * pretty-print.h (output_buffer_append_r): Reset buff->line_length
28670 when newline characters are added to the buffer.
28672 2016-01-26 Michael Matz <matz@suse.de>
28674 * configure.ac (ac_cv_std_swap_in_utility): New test.
28675 * system.h (<algorithm>): Check HAVE_SWAP_IN_UTILITY as well.
28676 * configure: Regenerate.
28677 * config.in: Regenerate.
28679 2016-01-26 Claudiu Zissulescu <claziss@synopsys.com>
28681 * config/arc/arc.md (cstoresi4): Force operand into register.
28682 (arcset<code>): Fix predicate.
28683 (arcsetltu): Likewise.
28684 (arcsetgeu): Likewise.
28685 (arcsethi): Likewise.
28686 (arcsetls): Likewise.
28688 2016-01-26 Jakub Jelinek <jakub@redhat.com>
28690 PR tree-optimization/69483
28691 * gimple-fold.c (canonicalize_constructor_val): Return NULL
28692 if base has error_mark_node type.
28694 2016-01-26 Christophe Lyon <christophe.lyon@linaro.org>
28697 * config/arm/arm.c (neon_valid_immediate): Handle FP16 vectors.
28698 * config/arm/arm_neon.h (__ARM_NUM_LANES, __arm_lane, arm_lanq):
28700 (vget_lane_f16): Handle big-endian.
28701 (vgetq_lane_f16): Likewise.
28702 (vset_lane_f16): Likewise.
28703 (vsetq_lane_f16): Likewise.
28704 * config/arm/iterators.md (VQXMOV): Add V8HF.
28705 (VDQ): Add V4HF and V8HF.
28706 (V_reg): Handle V4HF and V8HF.
28707 (Is_float_mode): Likewise.
28708 * config/arm/neon.md (movv4hf, movv8hf, neon_vdup_nv4hf,
28709 neon_vdup_nv8hf): New patterns.
28710 (vec_set<mode>_internal, vec_extract<mode>, neon_vld1_dup<mode>):
28711 Use VD_LANE iterator.
28712 (neon_vld1_dup<mode>): Use VQ2 iterator.
28714 2016-01-26 Nathan Sidwell <nathan@acm.org>
28716 * omp-low.h (oacc_fn_attrib_kernels_p): Declare.
28717 (set_oacc_fn_attrib): Add IS_KERNEL arg.
28718 * omp-low.c (set_oacc_fn_attrib): Add IS_KERNEL arg.
28719 (oacc_fn_attrib_kernels_p, oacc_fn_attrib_level): New.
28720 (expand_omp_target): Pass is_kernel to set_oacc_fn_attrib.
28721 (oacc_validate_dims): Add LEVEL arg, don't return level.
28722 (new_oacc_loop_routine): Use oacc_fn_attrib_level, not
28723 oacc_validate_dims.
28724 (execute_oacc_device_lower): Adjust, add more dump output.
28725 * tree-ssa-loop.c (gate_oacc_kernels): Use
28726 oacc_fn_attrib_kernels_p.
28727 * tree-parloops.c (create_parallel_loop): Adjust
28728 set_oacc_fn_attrib call.
28730 2016-01-26 Jakub Jelinek <jakub@redhat.com>
28733 * lto-wrapper.c (merge_and_complain): Handle -fcilkplus.
28734 (append_compiler_options): Handle -fcilkplus.
28735 (append_linker_options): Ignore -fno-{openmp,openacc,cilkplus}.
28737 2016-01-26 Nick Clifton <nickc@redhat.com>
28740 * config/i386/winnt.c (i386_pe_binds_local_p): If a function has
28741 been marked as DECL_ONE_ONLY but we do not the means to make it
28742 so, then do not allow it to bind locally.
28744 2016-01-26 Jakub Jelinek <jakub@redhat.com>
28747 * opts.h (parse_sanitizer_options): New prototype.
28748 * opts.c (sanitizer_opts): New array.
28749 (parse_sanitizer_options): New function.
28750 (common_handle_option): Use parse_sanitizer_options.
28752 2016-01-26 H.J. Lu <hongjiu.lu@intel.com>
28755 * config/i386/i386.c (ix86_compute_frame_layout): Move stack
28756 alignment adjustment to ...
28757 (ix86_update_stack_boundary): Here. Don't over-align stack for
28759 (ix86_finalize_stack_realign_flags): Use stack_alignment_needed
28760 if __tls_get_addr is called.
28762 2016-01-26 Christian Bruel <christian.bruel@st.com>
28764 * doc/sourcebuild.texi (arm_crypto_pragma_ok): Remove.
28766 2016-01-26 Eric Botcazou <ebotcazou@adacore.com>
28768 * config/ia64/ia64.c (ia64_expand_vecint_compare): Use gen_int_mode.
28770 2016-01-26 Richard Biener <rguenther@suse.de>
28772 PR middle-end/69467
28773 * match.pd: Guard X * CST CMP 0 pattern with single_use.
28775 2016-01-26 Richard Biener <rguenther@suse.de>
28777 PR tree-optimization/69452
28778 * tree-ssa-loop-im.c (move_computations_dom_walker): Remove.
28779 (move_computations_dom_walker::before_dom_children): Rename
28781 (move_computations_worker): This.
28782 (move_computations): Perform an RPO rather than a DOM walk.
28784 2016-01-26 Jakub Jelinek <jakub@redhat.com>
28787 * combine.c (combine_instructions): For REG_EQUAL note with
28788 SET_DEST being ZERO_EXTRACT, also temporarily set SET_DEST
28789 to the underlying register.
28790 * doc/rtl.texi (REG_EQUAL): Document the behavior of
28791 REG_EQUAL/REG_EQUIV notes if SET_DEST is ZERO_EXTRACT.
28793 2016-01-26 Roger Ferrer Ibáñez <rofirrim@gmail.com>
28796 * config/aarch64/aarch64-builtins.c
28797 (aarch64_init_simd_builtin_types): Do not set structural
28798 equality to __Poly{8,16,64,128}_t types.
28800 2016-01-26 Richard Sandiford <richard.sandiford@arm.com>
28802 PR tree-optimization/69400
28803 * wide-int.cc (wi_pack): Take the precision as argument and
28804 perform canonicalization here rather than in the callers.
28805 Use the main loop to handle all full-width HWIs. Add a
28806 zero HWI if in_len isn't a full result.
28807 (wi::divmod_internal): Update accordingly.
28808 (wi::mul_internal): Likewise. Simplify.
28810 2016-01-25 Aditya Kumar <aditya.k7@samsung.com>
28811 Sebastian Pop <s.pop@samsung.com>
28813 * graphite-poly.c (apply_poly_transforms): Simplify.
28814 (print_isl_set): Use more readable format: ISL_YAML_STYLE_BLOCK.
28815 (print_isl_map): Same.
28816 (print_isl_union_map): Same.
28817 (print_isl_schedule): New.
28818 (debug_isl_schedule): New.
28819 * graphite-dependences.c (scop_get_reads): Do not call
28820 isl_union_map_add_map that is undocumented isl functionality.
28821 (scop_get_must_writes): Same.
28822 (scop_get_may_writes): Same.
28823 (scop_get_original_schedule): Remove.
28824 (scop_get_dependences): Do not call isl_union_map_compute_flow that
28825 is deprecated in isl 0.15. Instead, use isl_union_access_* interface.
28826 (compute_deps): Remove.
28827 * graphite-isl-ast-to-gimple.c (print_schedule_ast): New.
28828 (debug_schedule_ast): New.
28829 (translate_isl_ast_to_gimple::scop_to_isl_ast): Call
28830 set_separate_option.
28831 (graphite_regenerate_ast_isl): Add dump.
28832 (translate_isl_ast_to_gimple::scop_to_isl_ast): Generate code
28833 from scop->transformed_schedule.
28834 (graphite_regenerate_ast_isl): Add more dump.
28835 * graphite-optimize-isl.c (optimize_isl): Set
28836 scop->transformed_schedule. Check whether schedules are equal.
28837 (apply_poly_transforms): Move here.
28838 * graphite-poly.c (apply_poly_transforms): ... from here.
28839 (free_poly_bb): Static.
28840 (free_scop): Static.
28841 (pbb_number_of_iterations_at_time): Remove.
28842 (print_isl_ast): New.
28843 (debug_isl_ast): New.
28844 (debug_scop_pbb): New.
28845 * graphite-scop-detection.c (print_edge): Move.
28846 (print_sese): Move.
28847 * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Remove.
28848 (build_scop_scattering): Remove.
28849 (create_pw_aff_from_tree): Assert instead of bailing out.
28850 (add_condition_to_pbb): Remove unused code, do not fail.
28851 (add_conditions_to_domain): Same.
28852 (add_conditions_to_constraints): Remove.
28853 (build_scop_context): New.
28854 (add_iter_domain_dimension): New.
28855 (build_iteration_domains): Initialize pbb->iterators.
28856 Call add_conditions_to_domain.
28859 (index_outermost_in_loop): New.
28860 (index_pbb_in_loop): New.
28861 (outermost_pbb_in): New.
28862 (add_in_sequence): New.
28863 (add_outer_projection): New.
28864 (outer_projection_mupa): New.
28865 (add_loop_schedule): New.
28866 (build_schedule_pbb): New.
28867 (build_schedule_loop): New.
28868 (embed_in_surrounding_loops): New.
28869 (build_schedule_loop_nest): New.
28870 (build_original_schedule): New.
28871 (build_poly_scop): Call build_original_schedule.
28872 * graphite.h: Declare print_isl_schedule and debug_isl_schedule.
28873 (free_poly_dr): Remove.
28874 (struct poly_bb): Add iterators. Remove schedule, transformed, saved.
28875 (free_poly_bb): Remove.
28876 (debug_loop_vec): Remove.
28877 (print_isl_ast): Declare.
28878 (debug_isl_ast): Declare.
28879 (scop_do_interchange): Remove.
28880 (scop_do_strip_mine): Remove.
28881 (scop_do_block): Remove.
28882 (flatten_all_loops): Remove.
28883 (optimize_isl): Remove.
28884 (pbb_number_of_iterations_at_time): Remove.
28885 (debug_scop_pbb): Declare.
28886 (print_schedule_ast): Declare.
28887 (debug_schedule_ast): Declare.
28888 (struct scop): Remove schedule. Add original_schedule,
28889 transformed_schedule.
28890 (free_gimple_poly_bb): Remove.
28891 (print_generated_program): Remove.
28892 (debug_generated_program): Remove.
28893 (unify_scattering_dimensions): Remove.
28894 * sese.c (print_edge): ... here.
28895 (print_sese): ... here.
28896 (debug_edge): ... here.
28897 (debug_sese): ... here.
28898 * sese.h (print_edge): Declare.
28899 (print_sese): Declare.
28900 (dump_edge): Declare.
28901 (dump_sese): Declare.
28903 2016-01-25 Aditya Kumar <aditya.k7@samsung.com>
28904 Sebastian Pop <s.pop@samsung.com>
28906 * Makefile.in: Set ISLVER in site.exp.
28908 2016-01-25 Jakub Jelinek <jakub@redhat.com>
28910 * omp-low.c (lower_omp_target) <case USE_DEVICE_PTR>: Set
28911 DECL_VALUE_EXPR of new_var even for the non-array case. Look
28912 through DECL_VALUE_EXPR for expansion.
28914 2016-01-25 Bernd Edlinger <bernd.edlinger@hotmail.de>
28916 * config/mips/mips.c (mips_compute_frame_info): Skip re-computing
28917 the frame info after reload completed.
28919 2016-01-25 Jeff Law <law@redhat.com>
28921 PR tree-optimization/69196
28922 PR tree-optimization/68398
28923 * tree-ssa-threadupdate.h (enum bb_dom_status): Moved here from
28924 tree-ssa-threadupdate.c.
28925 (determine_bb_domination_status): Prototype
28926 * tree-ssa-threadupdate.c (enum bb_dom_status): Remove
28927 (determine_bb_domination_status): No longer static.
28928 (valid_jump_thread_path): Remove code to detect characteristics
28929 of the jump thread path not associated with correctness.
28930 * tree-ssa-threadbackward.c (fsm_find_control_statment_thread_paths):
28931 Correct test for thread path length. Count PHIs for real operands as
28932 statements that need to be copied. Do not count ASSERT_EXPRs.
28933 Look at all the blocks in the thread path. Compute and selectively
28934 filter thread paths based on threading through the latch, threading
28935 a multiway branch or crossing a multiway branch.
28937 2016-01-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
28939 * config/rs6000/rs6000.c (rs6000_keep_leaf_when_profiled): Add
28940 decl with __attribute__ ((unused)) annotation.
28942 2016-01-25 Ilya Enkovich <enkovich.gnu@gmail.com>
28945 * tree-vect-stmts.c (vectorizable_condition): Check vectype
28946 of operands is compatible with a statement vectype.
28948 2016-01-25 Eric Botcazou <ebotcazou@adacore.com>
28950 * doc/extend.texi (scalar_storage_order type attribute): Fix typo and
28951 improve wording for mixed storage order support.
28953 2016-01-25 Bilyan Borisov <bilyan.borisov@arm.com>
28955 * config/aarch64/arm_neon.h (vcvt_s64_f64): New intrinsic.
28956 (vcvt_u64_f64): Likewise.
28957 (vcvta_s64_f64): Likewise.
28958 (vcvta_u64_f64): Likewise.
28959 (vcvtm_s64_f64): Likewise.
28960 (vcvtm_u64_f64): Likewise.
28961 (vcvtn_s64_f64): Likewise.
28962 (vcvtn_u64_f64): Likewise.
28963 (vcvtp_s64_f64): Likewise.
28964 (vcvtp_u64_f64): Likewise.
28966 2016-01-25 Claudiu Zissulescu <claziss@synopsys.com>
28968 * config/arc/arc.c (TARGET_DWARF_REGISTER_SPAN): Define.
28969 (arc_init): Check validity mll64 option.
28970 (arc_save_restore): Use double load/store instruction.
28971 (arc_expand_movmem): Likewise.
28972 (arc_split_move): Don't split if we have double load/store
28973 instructions. Returns a boolean.
28974 (arc_process_double_reg_moves): Change function to return boolean
28975 instead of a sequence of instructions.
28976 (arc_dwarf_register_span): New function.
28977 * config/arc/arc-protos.h (arc_split_move): Change prototype.
28978 * config/arc/arc.h (TARGET_CPU_CPP_BUILTINS): Define __ARC_LL64__.
28979 * config/arc/arc.md (*movdi_insn): Emit ldd/std instructions.
28980 (*movdf_insn): Likewise.
28981 * config/arc/arc.opt (mll64): New option.
28982 * config/arc/predicates.md (even_register_operand): New predicate.
28983 * doc/invoke.texi (ARC Options): Add mll64 documentation.
28985 2016-01-25 Richard Biener <rguenther@suse.de>
28988 * dwarf2out.c (is_naming_typedef_decl): Not when DECL_NAMELESS.
28989 * tree-streamer-out.c (pack_ts_base_value_fields): Stream
28991 * tree-streamer-in.c (unpack_ts_base_value_fields): Likewise.
28993 2016-01-25 Richard Biener <rguenther@suse.de>
28995 PR tree-optimization/69376
28996 * tree-ssa-sccvn.h (struct vn_ssa_aux): Add range_info_anti_range_p
28998 (VN_INFO_ANTI_RANGE_P): New inline.
28999 (VN_INFO_RANGE_TYPE): Likewise.
29000 * tree-ssa-sccvn.c (set_ssa_val_to): Also record and copy
29001 SSA_NAME_ANTI_RANGE_P.
29002 (free_scc_vn): Restore SSA_NAME_ANTI_RANGE_P.
29003 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
29004 Properly query VN_INFO_RANGE_TYPE.
29006 2016-01-25 Nick Clifton <nickc@redhat.com>
29009 * config/i386/cygming.h (MAKE_DECL_ONE_ONLY): Remove definition.
29011 2016-01-23 Tom de Vries <tom@codesourcery.com>
29013 PR tree-optimization/69426
29014 * tree-parloops.c (eliminate_local_variables_stmt): Handle vdef of
29017 2016-01-23 Jakub Jelinek <jakub@redhat.com>
29019 * tree-ssanames.c (release_free_names_and_compact_live_names): Replace
29020 "the the" with "the" in the comments.
29021 * ipa-devirt.c (build_type_inheritance_graph,
29022 update_type_inheritance_graph): Likewise.
29023 * tree.c (build_function_type_list_1): Likewise.
29024 * cfgloopmanip.c (scale_loop_profile): Likewise.
29025 * tree-ssa-loop-ivopts.c (get_shiftadd_cost): Likewise.
29026 * gimple-ssa-split-paths.c
29027 (find_block_to_duplicate_for_splitting_paths): Likewise.
29028 * tree-sra.c (init_subtree_with_zero, clobber_subtree): Likewise.
29029 * expr.c (convert_move): Likewise.
29030 * var-tracking.c (vt_stack_adjustments): Likewise.
29031 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise.
29032 * tree-vrp.c (test_for_singularity): Likewise.
29034 * tree-vect-stmts.c (vectorizable_condition): Build a VEC_COND_EXPR
29035 directly instead of building a temporary tree.
29038 * genrecog.c: Define INCLUDE_ALGORITHM before including system.h,
29039 remove <algorithm> include.
29041 2016-01-22 Jakub Jelinek <jakub@redhat.com>
29044 * config/i386/i386.c: Include dojump.h.
29045 (expand_small_movmem_or_setmem,
29046 expand_set_or_movmem_prologue_epilogue_by_misaligned_moves): Spelling
29048 (ix86_expand_set_or_movmem): Call do_pending_stack_adjust () early
29049 if dynamic_check != -1.
29051 2016-01-21 Jeff Law <law@redhat.com>
29053 PR middle-end/69347
29054 * tree-ssa-dom.c (back_propagate_equivalences): Factored out of
29055 record_temporary_equivalences. Rewritten to avoid unnecessary calls
29056 into dominated_by_p.
29057 (cprop_into_successor_phis): Avoid unnecessary tests.
29059 2016-01-22 Richard Henderson <rth@redhat.com>
29062 * config/aarch64/aarch64.md (UNSPEC_NZCV): New.
29063 (ccmp<mode>, fccmp<mode>, fccmpe<mode>): Use it.
29065 2016-01-22 Michael Matz <matz@suse.de>
29067 * system.h (string, algorithm): Include only conditionally.
29068 (new): Include always under C++.
29069 * bb-reorder.c (toplevel): Define INCLUDE_ALGORITHM.
29070 * final.c (toplevel): Ditto.
29071 * ipa-chkp.c (toplevel): Define INCLUDE_STRING.
29072 * genconditions.c (write_header): Make gencondmd.c define
29074 * mem-stats.h (mem_usage::print_dash_line): Don't use std::string.
29076 * config/aarch64/aarch64.c (toplevel): Define INCLUDE_STRING.
29077 * common/config/aarch64/aarch64-common.c (toplevel): Ditto.
29079 2016-01-22 Christian Bruel <christian.bruel@st.com>
29082 * expr.c (expand_expr_real_1): Reset DECL_MODE if VECTOR_TYPE_P changed.
29084 2016-01-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
29087 * config/arm/thumb2.md (*thumb2_ior_scc_strict_it): Convert to
29088 define_insn_and_split. Ensure operands[1] and operands[0] do not
29089 get assigned the same register.
29091 2016-01-22 Kugan Vivekanandarajah <kuganv@linaro.org>
29093 * ipa-prop.c (ipa_set_jf_constant): Remove redundant unshare_expr.
29095 2016-01-22 Christian Bruel <christian.bruel@st.com>
29097 * config/arm/arm-c.c (arm_pragma_target_parse):
29098 Remove warn_builtin_macro_redefined overwrite.
29100 2016-01-22 Eric Botcazou <ebotcazou@adacore.com>
29102 * ipa-inline.c (can_inline_edge_p): Back out overzealous check on
29103 flag_non_call_exceptions compatibility.
29105 2016-01-22 Jakub Jelinek <jakub@redhat.com>
29108 * dwarf2out.c (add_child_die_after): New function.
29109 (dwarf_qual_info_t): New type.
29110 (dwarf_qual_info): New variable.
29111 (qualified_die_p): New function.
29112 (modified_type_die): For -fdebug-types-section, ensure
29113 canonical order of qualifiers. Put qualified DIEs adjacent
29114 to the corresponding non-qualified type DIE and search there
29115 for existing qualified DIEs.
29117 2016-01-22 Eric Botcazou <ebotcazou@adacore.com>
29119 * doc/extend.texi (scalar_storage_order type attribute): Document
29120 restriction on type punning and aliasing, and remove future tense.
29122 2016-01-21 Roman Zhuykov <zhroma@ispras.ru>
29125 * modulo-sched.c (optimize_sc): Allow branch-scheduling to add a new
29128 2016-01-21 Jeff Law <law@redhat.com>
29130 PR middle-end/69347
29131 * tree-ssa-dom.c (dom_opt_dom_walker::thread_across_edge): Avoid
29132 useless call to record_temporary_equivalences.
29133 * tree-ssa-threadbackward.c (find_jump_threads_backwards): Just
29134 allocate 10 slots in the bb_path vector and let it grow as needed.
29135 (fsm_find_control_statement_thread_paths): Similarly for the next_path
29138 2016-01-21 David Edelsohn <dje.gcc@gmail.com>
29140 * configure.ac (gcc_cv_as_powerpc_mfcrf, gcc_cv_as_machine_directive):
29142 * configure: Regenerate.
29144 2016-01-21 Pat Haugen <pthaugen@us.ibm.com>
29146 * config/rs6000/aix71.h (ASM_CPU_SPEC): Add entry for Power9.
29147 * config/rs6000/driver-rs6000.c (struct asm_names): Likewise.
29149 2016-01-21 Bernd Schmidt <bschmidt@redhat.com>
29151 PR middle-end/66178
29152 * expr.c (expand_expr_real_2) [PLUS_EXPR, MINUS_EXPR]: Don't
29153 drop EXPAND_INITIALIZER.
29154 * rtl.h (contains_symbolic_reference_p): Declare.
29155 * rtlanal.c (contains_symbolic_reference_p): New function.
29156 * simplify-rtx.c (simplify_binary_operation_1): Don't turn
29157 a subtraction into a NOT if symbolic constants are involved.
29159 2016-01-21 Anton Blanchard <anton@samba.org>
29160 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
29163 * config/rs6000/linux64.h (TARGET_KEEP_LEAF_WHEN_PROFILED): New
29165 * config/rs6000/rs6000.c (rs6000_keep_leaf_when_profiled): New
29168 2016-01-21 Ajit Agarwal <ajitkum@xilinx.com>
29170 * config/microblaze/microblaze.c
29171 (get_branch_target): New.
29172 (insert_wic_for_ilb_runout): New.
29174 (microblaze_machine_dependent_reorg): New.
29175 (TARGET_MACHINE_DEPENDENT_REORG): Define macro.
29176 * config/microblaze/microblaze.md
29177 (UNSPEC_IPREFETCH): Define.
29178 (iprefetch): New pattern
29179 * config/microblaze/microblaze.opt
29180 (mxl-prefetch): New flag.
29182 2016-01-21 Ajit Agarwal <ajitkum@xilinx.com>
29184 * config/microblaze/microblaze.h
29185 (FIXED_REGISTERS): Update in macro.
29186 (CALL_USED_REGISTERS): Update in macro.
29188 2016-01-21 Yuri Rumyantsev <ysrumyan@gmail.com>
29190 PR rtl-optimization/68920
29191 * ifcvt.c (cond_move_process_if_block): Limit number of conditional
29194 2016-01-21 Vladimir Makarov <vmakarov@redhat.com>
29196 PR rtl-optimization/68990
29197 * lra-coalesce.c (lra_coalesce): Invalidate value for the result
29198 pseudo instead of inheritance ones.
29200 2016-01-21 Bernd Edlinger <bernd.edlinger@hotmail.de>
29201 Nick Clifton <nickc@redhat.com>
29205 * config/mips/mips.c (mips_compute_frame_info): Initialise
29206 args_size and hard_frame_pointer_offset fields of the frame
29207 structure before calling mips_global_pointer.
29209 2016-01-21 David Edelsohn <dje.gcc@gmail.com>
29211 * configure.ac (gcc_cv_as_dwloc): Test support for debug frame section
29213 * configure: Regenerate.
29215 2016-01-21 Richard Biener <rguenther@suse.de>
29217 * graphite-optimize-isl.c (get_schedule_map): Fix typo.
29219 2016-01-21 Marcin Kościelnicki <koriakin@0x04.net>
29221 * config/s390/s390.c (s390_asm_declare_function_size): Add code
29222 to actually emit the .size directive.
29224 2016-01-21 Stefan Sørensen <stefan.sorensen@spectralink.com>
29225 Jakub Jelinek <jakub@redhat.com>
29229 * config/arm/arm-builtins.c (arm_expand_neon_builtin): Increase
29230 args array size by one to avoid buffer overflow.
29232 2016-01-21 Marcin Kościelnicki <koriakin@0x04.net>
29234 * config/s390/s390.md (pool_section_start): Use switch_to_section
29235 to select proper read-only data section instead of hardcoding
29237 (pool_section_end): Use switch_to_section to match the above.
29239 2016-01-21 Richard Biener <rguenther@suse.de>
29241 PR tree-optimization/69378
29242 * tree-ssa-sccvn.c (dominated_by_p_w_unex): New function.
29243 (set_ssa_val_to): Use it for dominance checks taking into
29244 account not executable edges.
29246 2016-01-21 Jakub Jelinek <jakub@redhat.com>
29249 * tree-dfa.c (get_ref_base_and_extent): Use GET_MODE_BITSIZE (mode)
29250 for bitsize instead of GET_MODE_PRECISION (mode).
29252 2016-01-20 Martin Sebor <msebor@redhat.com>
29255 * extend.texi (__sync Builtins): Clarify the semantics of
29256 __sync_fetch_and_OP built-ins on pointers.
29257 (__atomic Builtins): Same.
29259 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
29260 Sebastian Pop <s.pop@samsung.com>
29262 * graphite-isl-ast-to-gimple.c (enum phi_node_kind): New.
29263 (class translate_isl_ast_to_gimple): Use phi_node_kind instead of bool.
29264 (is_valid_rename): Same.
29265 (translate_isl_ast_to_gimple::get_rename): Same.
29266 (translate_isl_ast_to_gimple::rename_all_uses): Same.
29267 (translate_isl_ast_to_gimple::rename_uses): Same.
29268 (get_new_name): Check for close_phi nodes.
29269 (copy_loop_phi_args): Use phi_node_kind.
29270 (translate_isl_ast_to_gimple::copy_loop_close_phi_args): Same.
29271 (translate_isl_ast_to_gimple::copy_cond_phi_args): Same.
29273 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
29274 Sebastian Pop <s.pop@samsung.com>
29276 Revert commit r229783.
29277 * graphite-isl-ast-to-gimple.c (gcc_expression_from_isl_ast_expr_id):
29278 Remove use of parameter_rename_map.
29279 (copy_def): Remove.
29280 (copy_internal_parameters): Remove.
29281 (graphite_regenerate_ast_isl): Remove call to copy_internal_parameters.
29282 * sese.c (new_sese_info): Do not initialize parameter_rename_map.
29283 (free_sese_info): Do not free parameter_rename_map.
29284 (set_rename): Do not use parameter_rename_map.
29285 (rename_uses): Update call to set_rename.
29286 (graphite_copy_stmts_from_block): Do not use parameter_rename_map.
29287 * sese.h (parameter_rename_map_t): Remove.
29288 (struct sese_info_t): Remove field parameter_rename_map.
29290 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
29291 Sebastian Pop <s.pop@samsung.com>
29293 * graphite-isl-ast-to-gimple.c: Fix comment.
29294 * graphite-scop-detection.c (defined_in_loop_p): New.
29295 (canonicalize_loop_closed_ssa): Do not add close phi nodes for SSA
29296 names defined in loop.
29298 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
29299 Sebastian Pop <s.pop@samsung.com>
29301 * graphite-scop-detection.c (scop_detection::harmful_loop_in_region):
29302 Discard unstructured if-then-else regions.
29304 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
29305 Sebastian Pop <s.pop@samsung.com>
29307 * graphite-sese-to-poly.c (set_scop_parameter_dim): Remove.
29308 (cleanup_loop_iter_dom): Remove.
29309 (build_loop_iteration_domains): Remove.
29310 (build_scop_context): Remove.
29311 (build_scop_iteration_domain): Remove.
29312 (add_loop_constraints): New.
29313 (build_iteration_domains): New.
29314 (build_poly_scop): Call build_iteration_domains.
29316 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
29317 Sebastian Pop <s.pop@samsung.com>
29319 * graphite-scop-detection.c
29320 (scop_detection::harmful_loop_in_region): Free dom and loops.
29321 (scop_detection::loop_body_is_valid_scop): Free bbs.
29323 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
29324 Sebastian Pop <s.pop@samsung.com>
29326 * graphite-scop-detection.c (record_loop_in_sese): New.
29327 (gather_bbs::before_dom_children): Call record_loop_in_sese.
29328 (build_scops): Remove call to build_sese_loop_nests.
29329 * sese.c (sese_record_loop): Remove.
29330 (build_sese_loop_nests): Remove.
29331 (new_sese_info): Remove region->loops.
29332 (free_sese_info): Same.
29333 * sese.h (sese_contains_loop): Same.
29334 (build_sese_loop_nests): Remove.
29335 (sese_contains_loop): Remove.
29337 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
29338 Sebastian Pop <s.pop@samsung.com>
29340 * graphite-scop-detection.c (loop_is_valid_scop): Renamed
29341 loop_is_valid_in_scop.
29342 (scop_detection::harmful_stmt_in_region): Renamed
29343 harmful_loop_in_region.
29344 Call loop_is_valid_in_scop.
29346 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
29347 Sebastian Pop <s.pop@samsung.com>
29349 * graphite-isl-ast-to-gimple.c (translate_isl_ast): Also handle
29352 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
29353 Sebastian Pop <s.pop@samsung.com>
29355 * graphite-poly.c (new_poly_bb): Remove use of PBB_IS_REDUCTION.
29356 * graphite.h (struct poly_bb): Remove field is_reduction.
29357 (PBB_IS_REDUCTION): Remove.
29359 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
29360 Sebastian Pop <s.pop@samsung.com>
29362 * graphite-dependences.c (constrain_domain): Add call to isl_*_coalesce.
29363 (add_pdr_constraints): Same.
29364 (scop_get_reads): Same.
29365 (scop_get_must_writes): Same.
29366 (scop_get_may_writes): Same.
29367 (scop_get_original_schedule): Same.
29368 (extend_schedule): Same.
29369 (apply_schedule_on_deps): Same.
29370 (carries_deps): Same.
29371 (compute_deps): Same.
29372 (scop_get_dependences): Same.
29373 * graphite-isl-ast-to-gimple.c
29374 (translate_isl_ast_to_gimple::generate_isl_schedule): Same.
29375 * graphite-optimize-isl.c (get_schedule_for_band): Same.
29376 (get_schedule_for_band_list): Same.
29377 (get_schedule_map): Same.
29378 (apply_schedule_map_to_scop): Same.
29379 * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
29380 (build_loop_iteration_domains): Same.
29381 (add_condition_to_pbb): Same.
29382 (add_param_constraints): Same.
29383 (pdr_add_memory_accesses): Same.
29384 (pdr_add_data_dimensions): Same.
29386 2016-01-20 Sandra Loosemore <sandra@codesourcery.com>
29388 * doc/invoke.texi (Instrumentation Options): Clarify -mmpx linking
29391 2016-01-20 Sandra Loosemore <sandra@codesourcery.com>
29393 * common.opt (feliminate-dwarf2-dups): Replace references to
29394 "DWARF 2" with just "DWARF".
29395 * config/ia64/ia64.opt (mdwarf2-asm): Likewise.
29396 * doc/extend.texi: Likewise.
29397 * doc/cpp.texi: Likewise.
29398 * doc/invoke.texi: Likewise.
29399 (Option Summary): Add -gdwarf to list of Debugging Options.
29400 (Debugging Options): Document -gdwarf.
29401 * doc/contrib.texi: Spell "DWARF" like that.
29403 2016-01-21 Jakub Jelinek <jakub@redhat.com>
29405 * omp-low.c (expand_omp_target): Avoid -Wmaybe-uninitialized
29406 warning. Fix up formatting.
29408 PR middle-end/67653
29409 * gimplify.c (gimplify_asm_expr): Warn if it is too late to
29410 attempt to mark memory input operand addressable and
29411 call prepare_gimple_addressable in that case. Don't adjust
29412 input_location for diagnostics, use error_at instead.
29414 2016-01-20 Peter Bergner <bergner@vnet.ibm.com>
29416 * config/rs6000/ppc-auxv.h: New file.
29417 * config/rs6000/rs6000-builtin.def (cpu_init): Add new builtin.
29418 (cpu_is): Likewise.
29419 (cpu_supports): Likewise.
29420 * config/rs6000/rs6000.c: include "ppc-auxv.h".
29421 (cpu_is_info): New variable.
29422 (cpu_supports_info): Likewise.
29423 (tcb_verification_symbol): Likewise.
29424 (cpu_builtin_p): Likewise.
29425 (cpu_expand_builtin): New function.
29426 (rs6000_expand_ternop_builtin): Add support for CPU builtin functions.
29427 (rs6000_init_builtins): Likewise.
29428 (rs6000_elf_file_end): Emit HWCAP in TCB verification symbol.
29429 * config/rs6000/rs6000.h (TLS_REGNUM): New define.
29430 * configure.ac (gcc_cv_libc_provides_hwcap_in_tcb): New test.
29431 * configure: Regenerate.
29432 * config.in: Likewise.
29433 * doc/extend.texi (PowerPC Built-in Functions): Document
29434 __builtin_cpu_init, __builtin_cpu_is and __builtin_cpu_supports.
29436 2016-01-20 David Edelsohn <dje.gcc@gmail.com>
29439 * config/rs6000/rs6000.c (rs6000_emit_swsqrt): Add vector sqrt
29441 * config/rs6000/vector.md (sqrt<mode>2): Call rs6000_emit_swsqrt
29444 2016-01-20 Richard Henderson <rth@redhat.com>
29450 * tree.c (tm_define_builtin): New.
29451 (find_tm_vector_type): New.
29452 (build_tm_vector_builtins): New.
29453 (build_common_builtin_nodes): Call it.
29455 2016-01-20 Christophe Lyon <christophe.lyon@linaro.org>
29457 * doc/sourcebuild.texi (arm_crypto_pragma_ok): Document new entry.
29458 (arm_fp_ok): Likewise.
29459 (arm_fp): Likewise.
29460 (arm_crypto): Likewise.
29462 2016-01-20 Ilya Enkovich <enkovich.gnu@gmail.com>
29463 Richard Biener <rguenther@suse.de>
29465 PR tree-optimization/69328
29466 * tree-vect-stmts.c (vect_is_simple_cond): Check compared
29467 vectors have same number of elements.
29468 (vectorizable_condition): Fix masked version recognition.
29470 2016-01-20 Richard Biener <rguenther@suse.de>
29472 PR tree-optimization/69345
29473 * tree-ssa-sccvn.h (VN_INFO_RANGE_INFO): New inline function.
29474 (VN_INFO_PTR_INFO): Likewise.
29475 * tree-ssa-sccvn.c (set_ssa_val_to): Avoid clearing points-to
29476 info when it is equal between non-dominating SSA names.
29477 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
29478 Make sure to look at original SSA infos.
29480 2016-01-20 Jeff Law <law@redhat.com>
29483 * config/m68k/predicates.md (pow2_m1_operand): New predicate
29485 (reg_or_pow2_m1_operand): Call pow2_m1_operand.
29486 (pc_or_label_operand): New predicate.
29487 * config/m68k/m68k.md: Add new peephole2 patterns for GTU/LEU
29488 tests for small integers that are 2^n - 1.
29490 2016-01-20 Jonathan Wakely <jwakely@redhat.com>
29492 * doc/invoke.texi (Options Summary): Add '.' after @xref.
29494 2016-01-19 Jeff Law <law@redhat.com>
29496 PR middle-end/69347
29497 * tree-ssa-threadbackwards.c
29498 (fsm_find_control_statement_thread_paths): Do not try to lookup
29499 FSM paths for SSA_NAMEs appearing in abnormal PHIs.
29501 2016-01-20 Kugan Vivekanandarajah <kuganv@linaro.org>
29503 * doc/lto.texi: Remove text that says only Gold has linker plugin
29506 2016-01-19 Eric Botcazou <ebotcazou@adacore.com>
29508 * dwarf2out.c (need_endianity_attribute_p): New inline predicate.
29509 (base_type_die): Add REVERSE parameter and attach DW_AT_endianity to
29510 the DIE accordingly.
29511 (modified_type_die): Add REVERSE parameter and pass it recursively,
29512 as well as to base_type_die. Adjust presence check accordingly.
29513 (base_type_for_mode): Adjust call to modified_type_die.
29514 (add_type_attribute): Add REVERSE parameter and pass it to
29516 (generic_parameter_die): Adjust call to add_type_attribute.
29517 (add_scalar_info): Likewise.
29518 (add_subscript_info): Likewise.
29519 (gen_array_type_die): Likewise.
29520 (gen_descr_array_type_die): Likewise.
29521 (gen_entry_point_die): Likewise.
29522 (gen_enumeration_type_die): Likewise.
29523 (gen_formal_parameter_die): Likewise.
29524 (gen_subprogram_die): Likewise.
29525 (gen_variable_die ): Likewise.
29526 (gen_const_die): Likewise.
29527 (gen_field_die): Likewise.
29528 (gen_pointer_type_die): Likewise.
29529 (gen_reference_type_die): Likewise.
29530 (gen_ptr_to_mbr_type_die): Likewise.
29531 (gen_inheritance_die): Likewise.
29532 (gen_subroutine_type_die): Likewise.
29533 (gen_typedef_die): Likewise.
29534 (force_type_die): Adjust call to modified_type_die.
29536 2016-01-19 Sandra Loosemore <sandra@codesourcery.com>
29538 * doc/standards.texi: Copy-editing for grammar, markup, and sentence
29539 flow throughout the file. Fix broken link to Objective-C 2.0
29541 * doc/invoke.texi: More copy-editing; fix numerous typos and spelling
29544 2016-01-19 Wilco Dijkstra <wdijkstr@arm.com>
29546 * ccmp.c (expand_ccmp_expr_1): Avoid spurious unused warnings.
29548 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
29551 * ipa-devirt.c (is_cxa_pure_virtual_p): New function.
29552 (maybe_record_node): Record cxa_pure_virtual as the only possible
29553 target if there are not ohter candidates.
29554 (possible_polymorphic_call_target_p): Accept cxa_pure_virtual.
29556 2016-01-19 Richard Biener <rguenther@suse.de>
29558 * hsa-gen.c (get_memory_order_name): Use MEMMODEL_ constants.
29559 (get_memory_order): Likewise.
29561 2016-01-19 Kirill Yukhin <kirill.yukhin@intel.com>
29563 * tree-vect-stmts.c (vectorizable_store): Check
29566 2016-01-19 David Malcolm <dmalcolm@redhat.com>
29569 * gcc.c (driver::decode_argv): Add call to
29570 init_opts_obstack before init_options_struct.
29571 * opts.c (init_opts_obstack): Remove idempotency.
29572 (init_options_struct): Replace call to init_opts_obstack
29573 with a gcc_assert to verify that it has already been called.
29574 * toplev.c (toplev::main): Add call to init_opts_obstack before
29575 calls to init_options_struct.
29576 (toplev::finalize): Move cleanup of opts_obstack next to
29577 cleanup of save_decoded_options, clearing the latter, and
29578 save_decoded_options_count.
29580 2016-01-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
29583 * config/arm/vfp.md (l<vrint_pattern><su_optab><mode>si2): Set "conds"
29584 attribute to unconditional. Remove %? from output template.
29586 2015-01-19 Wilco Dijkstra <wdijkstr@arm.com>
29587 Jiong Wang <jiong.wang@arm.com>
29589 * ccmp.c (expand_ccmp_expr_1): Cost the instruction sequences
29590 generated from different expand order.
29592 2015-01-19 Wilco Dijkstra <wdijkstr@arm.com>
29594 * /config/aarch64/aarch64.c (aarch64_if_then_else_costs):
29595 Add support for CCMP costing.
29597 2015-01-19 Wilco Dijkstra <wdijkstr@arm.com>
29599 * ccmp.c (ccmp_candidate_p): Remove integer-only restriction.
29600 * config/aarch64/aarch64.md (fccmp<mode>): New pattern.
29601 (fccmpe<mode>): Likewise.
29602 (fcmp): Rename to fcmp and globalize pattern.
29604 * config/aarch64/aarch64.c (aarch64_gen_ccmp_first): Add FP support.
29605 (aarch64_gen_ccmp_next): Add FP support.
29607 2015-01-19 Wilco Dijkstra <wdijkstr@arm.com>
29609 * target.def (gen_ccmp_first): Update documentation.
29610 (gen_ccmp_next): Likewise.
29611 * doc/tm.texi (gen_ccmp_first): Update documentation.
29612 (gen_ccmp_next): Likewise.
29613 * ccmp.c (expand_ccmp_expr): Extract cmp_code from return value of
29614 expand_ccmp_expr_1. Improve comments.
29615 * config/aarch64/aarch64.md (ccmp_and): Use if_then_else for ccmp.
29616 (ccmp_ior<mode>): Remove pattern.
29617 (cmp<mode>): Remove expand.
29618 (cmp): Globalize pattern.
29619 (cstorecc4): Use cc_register.
29620 (mov<mode>cc): Remove ccmp_cc_register check.
29621 * config/aarch64/aarch64.c (aarch64_get_condition_code_1):
29622 Simplify after removal of CC_DNE/* modes.
29623 (aarch64_ccmp_mode_to_code): Remove.
29624 (aarch64_print_operand): Remove 'K' case. Merge 'm' and 'M' cases.
29625 In 'k' case use integer as condition.
29626 (aarch64_nzcv_codes): Remove inverted cases.
29627 (aarch64_code_to_ccmode): Remove.
29628 (aarch64_gen_ccmp_first): Use cmp pattern directly. Return the correct
29629 comparison with CC register to be used in folowing CCMP/branch/CSEL.
29630 (aarch64_gen_ccmp_next): Use previous comparison and mode in CCMP
29631 pattern. Return the comparison with CC register. Invert conditions
29632 when bitcode is OR.
29633 * config/aarch64/aarch64-modes.def: Remove CC_DNE/* modes.
29634 * config/aarch64/predicates.md (ccmp_cc_register): Remove.
29636 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
29638 * cgraphunit.c (cgraph_node::reset): Clear thunk info and
29639 instrumented_version.
29641 2016-01-19 Richard Biener <rguenther@suse.de>
29643 PR tree-optimization/69336
29644 * tree-ssa-scopedtables.c (avail_expr_hash): Handle all
29645 handled components with get_ref_base_and_extent.
29646 (equal_mem_array_ref_p): Adjust.
29648 2016-01-19 Jakub Jelinek <jakub@redhat.com>
29651 * shrink-wrap.c: Include valtrack.h.
29652 (move_insn_for_shrink_wrap): Add DEBUG argument. If
29653 MAY_HAVE_DEBUG_INSNS, call dead_debug_add on DEBUG_INSNs
29654 in between insn and where it will be moved to. Call
29655 dead_debug_insert_temp.
29656 (prepare_shrink_wrap): Adjust caller. Call dead_debug_local_init
29657 first and dead_debug_local_finish at the end.
29658 For uses and defs bitmap, handle all regs in between REGNO and
29659 END_REGNO, not just the first one.
29661 2016-01-19 Richard Biener <rguenther@suse.de>
29663 PR tree-optimization/69352
29664 * tree-ssa-scopedtables.c (avail_expr_hash): Check for size == -1.
29665 (equal_mem_array_ref_p): Constrain size and max size properly.
29666 Compare the reverse flag.
29668 2016-01-19 Bernd Schmidt <bschmidt@redhat.com>
29670 * ira.c (ira): Update regstat data if we deleted insns.
29672 2016-01-19 Jakub Jelinek <jakub@redhat.com>
29674 PR rtl-optimization/68955
29675 PR rtl-optimization/64557
29676 * dse.c (record_store, check_mem_read_rtx): Don't call get_addr
29677 here. Fix up formatting.
29678 * alias.c (get_addr): Handle VALUE +/- CONST_SCALAR_INT_P.
29680 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
29683 * cgraphunit.c (cgraph_node::expand_thunk): When forcing gimple
29684 assume that the node has body.
29685 * cgraph.c (cgraph_node::get_untransformed_body): Use gimple_body_p
29688 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
29690 * lto-streamer-out.c (lto_output): Do not stream instrumentation
29693 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
29695 * symtab.c (symtab_node::asm_name): Do not call printable name directly.
29696 (symtab_node::name): Report name as unnamed if DECL_NAME is not set.
29698 2016-01-19 Martin Jambor <mjambor@suse.cz>
29699 Martin Liska <mliska@suse.cz>
29700 Michael Matz <matz@suse.de>
29702 * Makefile.in (OBJS): Add new source files.
29703 (GTFILES): Add hsa.c.
29704 * common.opt (disable_hsa): New variable.
29705 (-Whsa): New warning.
29706 * config.in (ENABLE_HSA): New.
29707 * configure.ac: Treat hsa differently from other accelerators.
29708 (OFFLOAD_TARGETS): Define ENABLE_OFFLOADING according to
29709 $enable_offloading.
29710 (ENABLE_HSA): Define ENABLE_HSA according to $enable_hsa.
29711 * doc/install.texi (Configuration): Document --with-hsa-runtime,
29712 --with-hsa-runtime-include, --with-hsa-runtime-lib and
29713 --with-hsa-kmt-lib.
29714 * doc/invoke.texi (-Whsa): Document.
29715 (hsa-gen-debug-stores): Likewise.
29716 * lto-wrapper.c (compile_images_for_offload_targets): Do not attempt
29717 to invoke offload compiler for hsa acclerator.
29718 * opts.c (common_handle_option): Determine whether HSA offloading
29719 should be performed.
29720 * params.def (PARAM_HSA_GEN_DEBUG_STORES): New parameter.
29721 * builtin-types.def (BT_FN_VOID_UINT_PTR_INT_PTR): New.
29722 (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_INT_INT): Removed.
29723 (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_PTR): New.
29724 * gimple-low.c (lower_stmt): Also handle GIMPLE_OMP_GRID_BODY.
29725 * gimple-pretty-print.c (dump_gimple_omp_for): Also handle
29726 GF_OMP_FOR_KIND_GRID_LOOP.
29727 (dump_gimple_omp_block): Also handle GIMPLE_OMP_GRID_BODY.
29728 (pp_gimple_stmt_1): Likewise.
29729 * gimple-walk.c (walk_gimple_stmt): Likewise.
29730 * gimple.c (gimple_build_omp_grid_body): New function.
29731 (gimple_copy): Also handle GIMPLE_OMP_GRID_BODY.
29732 * gimple.def (GIMPLE_OMP_GRID_BODY): New.
29733 * gimple.h (enum gf_mask): Added GF_OMP_PARALLEL_GRID_PHONY,
29734 GF_OMP_FOR_KIND_GRID_LOOP, GF_OMP_FOR_GRID_PHONY and
29735 GF_OMP_TEAMS_GRID_PHONY.
29736 (gimple_statement_omp_single_layout): Updated comments.
29737 (gimple_build_omp_grid_body): New function.
29738 (gimple_has_substatements): Also handle GIMPLE_OMP_GRID_BODY.
29739 (gimple_omp_for_grid_phony): New function.
29740 (gimple_omp_for_set_grid_phony): Likewise.
29741 (gimple_omp_parallel_grid_phony): Likewise.
29742 (gimple_omp_parallel_set_grid_phony): Likewise.
29743 (gimple_omp_teams_grid_phony): Likewise.
29744 (gimple_omp_teams_set_grid_phony): Likewise.
29745 (gimple_return_set_retbnd): Also handle GIMPLE_OMP_GRID_BODY.
29746 * omp-builtins.def (BUILT_IN_GOMP_OFFLOAD_REGISTER): New.
29747 (BUILT_IN_GOMP_OFFLOAD_UNREGISTER): Likewise.
29748 (BUILT_IN_GOMP_TARGET): Updated type.
29749 * omp-low.c: Include symbol-summary.h, hsa.h and params.h.
29750 (adjust_for_condition): New function.
29751 (get_omp_for_step_from_incr): Likewise.
29752 (extract_omp_for_data): Moved parts to adjust_for_condition and
29753 get_omp_for_step_from_incr.
29754 (build_outer_var_ref): Handle GIMPLE_OMP_GRID_BODY.
29755 (fixup_child_record_type): Bail out if receiver_decl is NULL.
29756 (scan_sharing_clauses): Handle OMP_CLAUSE__GRIDDIM_.
29757 (scan_omp_parallel): Do not create child functions for phony
29759 (check_omp_nesting_restrictions): Handle GIMPLE_OMP_GRID_BODY.
29760 (scan_omp_1_op): Checking assert we are not remapping to
29761 ERROR_MARK. Also also handle GIMPLE_OMP_GRID_BODY.
29762 (parallel_needs_hsa_kernel_p): New function.
29763 (expand_parallel_call): Register apprpriate parallel child
29764 functions as HSA kernels.
29765 (grid_launch_attributes_trees): New type.
29766 (grid_attr_trees): New variable.
29767 (grid_create_kernel_launch_attr_types): New function.
29768 (grid_insert_store_range_dim): Likewise.
29769 (grid_get_kernel_launch_attributes): Likewise.
29770 (get_target_argument_identifier_1): Likewise.
29771 (get_target_argument_identifier): Likewise.
29772 (get_target_argument_value): Likewise.
29773 (push_target_argument_according_to_value): Likewise.
29774 (get_target_arguments): Likewise.
29775 (expand_omp_target): Call get_target_arguments instead of looking
29776 up for teams and thread limit.
29777 (grid_expand_omp_for_loop): New function.
29778 (grid_arg_decl_map): New type.
29779 (grid_remap_kernel_arg_accesses): New function.
29780 (grid_expand_target_kernel_body): New function.
29781 (expand_omp): Call it.
29782 (lower_omp_for): Do not emit phony constructs.
29783 (lower_omp_taskreg): Do not emit phony constructs but create for them
29784 a temporary variable receiver_decl.
29785 (lower_omp_taskreg): Do not emit phony constructs.
29786 (lower_omp_teams): Likewise.
29787 (lower_omp_grid_body): New function.
29788 (lower_omp_1): Call it.
29789 (grid_reg_assignment_to_local_var_p): New function.
29790 (grid_seq_only_contains_local_assignments): Likewise.
29791 (grid_find_single_omp_among_assignments_1): Likewise.
29792 (grid_find_single_omp_among_assignments): Likewise.
29793 (grid_find_ungridifiable_statement): Likewise.
29794 (grid_target_follows_gridifiable_pattern): Likewise.
29795 (grid_remap_prebody_decls): Likewise.
29796 (grid_copy_leading_local_assignments): Likewise.
29797 (grid_process_kernel_body_copy): Likewise.
29798 (grid_attempt_target_gridification): Likewise.
29799 (grid_gridify_all_targets_stmt): Likewise.
29800 (grid_gridify_all_targets): Likewise.
29801 (execute_lower_omp): Call grid_gridify_all_targets.
29802 (make_gimple_omp_edges): Handle GIMPLE_OMP_GRID_BODY.
29803 * tree-core.h (omp_clause_code): Added OMP_CLAUSE__GRIDDIM_.
29804 (tree_omp_clause): Added union field dimension.
29805 * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE__GRIDDIM_.
29806 * tree.c (omp_clause_num_ops): Added number of arguments of
29807 OMP_CLAUSE__GRIDDIM_.
29808 (omp_clause_code_name): Added name of OMP_CLAUSE__GRIDDIM_.
29809 (walk_tree_1): Handle OMP_CLAUSE__GRIDDIM_.
29810 * tree.h (OMP_CLAUSE_GRIDDIM_DIMENSION): New.
29811 (OMP_CLAUSE_SET_GRIDDIM_DIMENSION): Likewise.
29812 (OMP_CLAUSE_GRIDDIM_SIZE): Likewise.
29813 (OMP_CLAUSE_GRIDDIM_GROUP): Likewise.
29814 * passes.def: Schedule pass_ipa_hsa and pass_gen_hsail.
29815 * tree-pass.h (make_pass_gen_hsail): Declare.
29816 (make_pass_ipa_hsa): Likewise.
29817 * ipa-hsa.c: New file.
29818 * lto-section-in.c (lto_section_name): Add hsa section name.
29819 * lto-streamer.h (lto_section_type): Add hsa section.
29820 * timevar.def (TV_IPA_HSA): New.
29821 * hsa-brig-format.h: New file.
29822 * hsa-brig.c: New file.
29823 * hsa-dump.c: Likewise.
29824 * hsa-gen.c: Likewise.
29827 * toplev.c (compile_file): Call hsa_output_brig.
29828 * hsa-regalloc.c: New file.
29830 2016-01-18 Jeff Law <law@redhat.com>
29832 PR tree-optimization/69320
29833 * tree-ssa-dom.c (record_edge_info): For comparisons against a boolean
29834 ranged object, do nothing if the RHS constant is not [0..1].
29835 (optimize_stmt): Comparing a boolean ranged object against a
29836 constant outside [0..1] results in a compile-time constant.
29838 * tree-ssanames.c (ssa_name_has_boolean_range): Remove unnecessary
29841 2016-01-18 Sandra Loosemore <sandra@codesourcery.com>
29843 * doc/invoke.texi (Invoking GCC): Add new section to menu.
29844 (Option Summary): Update to reflect new section and moved options.
29845 (C++ Dialect Options): Move -fstats to new section.
29846 (Debugging Options): Move all dump, statistics, and other GCC
29847 developer options to new section. Rewrite section introduction
29848 and re-order remaining options to put the more basic ones first.
29849 (Optimization Options): Move -fira-verbose and -flto-report* to
29851 (Developer Options): New section incorporating moved options.
29852 * doc/cppopts.texi (-dM): Update cross-reference.
29854 2016-01-18 Richard Henderson <rth@redhat.com>
29857 * config/aarch64/aarch64.md (add<GPI>3): Move long immediate
29858 operands to pseudo only if CSE is expected. Split long immediate
29859 operands only after reload, and for the stack pointer.
29860 (*add<GPI>3_pluslong): Remove.
29861 (*addsi3_aarch64, *adddi3_aarch64): Merge into...
29862 (*add<GPI>3_aarch64): ... here. Add r/rk/Upl alternative.
29863 (*addsi3_aarch64_uxtw): Add r/rk/Upl alternative.
29864 (*add<GPI>3 peepholes): New.
29865 (*add<GPI>3 splitters): New.
29866 * config/aarch64/constraints.md (Upl): New.
29867 * config/aarch64/predicates.md (aarch64_pluslong_strict_immedate): New.
29869 2016-01-18 Richard Biener <rguenther@suse.de>
29871 PR tree-optimization/69297
29872 * tree-vect-slp.c (vect_bb_slp_scalar_cost): Count each scalar
29874 (vect_bb_vectorization_profitable_p): Clear visited flag again.
29876 2016-01-18 Yuri Rumyantsev <ysrumyan@gmail.com>
29878 PR middle-end/68542
29879 * fold-const.c (fold_binary_op_with_conditional_arg): Bail out for case
29880 of mixind vector and scalar types.
29881 (fold_relational_const): Add handling of vector
29882 comparison with boolean result.
29883 * tree-cfg.c (verify_gimple_comparison): Add argument CODE, allow
29884 comparison of vector operands with boolean result for EQ/NE only.
29885 (verify_gimple_assign_binary): Adjust call for verify_gimple_comparison.
29886 (verify_gimple_cond): Likewise.
29887 * tree-vrp.c (extract_code_and_val_from_cond_with_ops): Modify check on
29890 2016-01-18 Joseph Myers <joseph@codesourcery.com>
29892 * config/mips/mips.h (ISA_HAS_PAIRED_SINGLE): Require
29895 2016-01-18 Richard Biener <rguenther@suse.de>
29897 PR middle-end/69308
29898 * gimple.c (gimple_could_trap_p_1): Handle GIMPLE_COND.
29900 2016-01-18 Tom de Vries <tom@codesourcery.com>
29902 * passes.def: Add pass_parallelize_loops to pass_oacc_kernels.
29904 2016-01-18 Tom de Vries <tom@codesourcery.com>
29906 * omp-low.c (set_oacc_fn_attrib): Make extern.
29907 * omp-low.h (set_oacc_fn_attrib): Declare.
29908 * tree-parloops.c (struct reduction_info): Add reduc_addr field.
29909 (create_call_for_reduction_1): Handle case that reduc_addr is non-NULL.
29910 (create_parallel_loop, gen_parallel_loop, try_create_reduction_list):
29911 Add and handle function parameter oacc_kernels_p.
29912 (find_reduc_addr, get_omp_data_i_param): New function.
29913 (ref_conflicts_with_region, oacc_entry_exit_ok_1)
29914 (oacc_entry_exit_single_gang, oacc_entry_exit_ok): New function.
29915 (parallelize_loops): Add and handle function parameter oacc_kernels_p.
29916 Calculate dominance info. Skip loops that are not in a kernels region
29917 in oacc_kernels_p mode. Skip inner loops of parallelized loops.
29918 (pass_parallelize_loops::execute): Call parallelize_loops with
29919 oacc_kernels_p argument.
29920 (pass_parallelize_loops::clone, pass_parallelize_loops::set_pass_param):
29921 New member function.
29922 (pass_parallelize_loops::bool oacc_kernels_p): New member var.
29923 * passes.def: Add argument to pass_parallelize_loops instantation.
29925 2016-01-18 Tom de Vries <tom@codesourcery.com>
29927 * tree-parloops.c (pass_parallelize_loops::execute): Allow
29928 pass_parallelize_loops to be run outside the loop pipeline.
29930 2016-01-18 Alan Lawrence <alan.lawrence@arm.com>
29932 * tree-scalar-evolution.c (follow_copies_to_constant): New.
29933 (analyze_initial_condition, analyze_scalar_evolution_1): Call previous.
29935 2016-01-18 Alan Lawrence <alan.lawrence@arm.com>
29938 * tree-ssa-scopedtables.c (avail_expr_hash): Hash MEM_REF and ARRAY_REF
29939 using get_ref_base_and_extent.
29940 (equal_mem_array_ref_p): New.
29941 (hashable_expr_equal_p): Add call to previous.
29943 2016-01-18 Alan Lawrence <alan.lawrence@arm.com>
29946 * tree-sra.c (disqualified_constants, constant_decl_p): New.
29947 (sra_initialize): Allocate disqualified_constants.
29948 (sra_deinitialize): Free disqualified_constants.
29949 (disqualify_candidate): Update disqualified_constants when appropriate.
29950 (create_access): Scan for constant-pool entries as we go along.
29951 (scalarizable_type_p): Add check against type_contains_placeholder_p.
29952 (maybe_add_sra_candidate): Allow constant-pool entries.
29953 (load_assign_lhs_subreplacements): Bind debug for constant pool vars.
29954 (initialize_constant_pool_replacements): New.
29955 (sra_modify_assign): Avoid mangling assignments created by previous,
29956 and don't generate writes into constant pool.
29957 (sra_modify_function_body): Call initialize_constant_pool_replacements.
29959 2016-01-18 Ilya Enkovich <enkovich.gnu@gmail.com>
29961 * config/i386/i386.c (scalar_to_vector_candidate_p): Support
29962 andnot instruction.
29963 (scalar_chain::convert_op): Likewise.
29964 * config/i386/i386.md (*andndi3_doubleword): New.
29966 2016-01-18 Richard Biener <rguenther@suse.de>
29968 PR tree-optimization/69170
29969 * tree-vect-slp.c (vect_build_slp_tree): Verify we are not
29970 building a vector from scalar results of a pattern stmt.
29972 2016-01-18 Jakub Jelinek <jakub@redhat.com>
29974 * haifa-sched.c (autopref_multipass_init): Work around
29975 -Wmaybe-uninitialized warning.
29977 2016-01-18 Thomas Preud'homme <thomas.preudhomme@arm.com>
29979 * config/arm/arm.c (thumb1_reorg): Check that the comparison is
29980 against the constant 0.
29982 2016-01-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
29984 PR tree-optimization/68799
29985 * gimple-ssa-strength-reduction.c (create_phi_basis): Directly
29986 look up phi candidates in the statement-candidate map.
29987 (phi_add_costs): Likewise.
29988 (record_phi_increments): Likewise.
29989 (phi_incr_cost): Likewise.
29990 (ncd_with_phi): Likewise.
29991 (all_phi_incrs_profitable): Likewise.
29993 2016-01-17 Jakub Jelinek <jakub@redhat.com>
29995 * omp-low.c (mark_loops_in_oacc_kernels_region): Work around
29996 -Wmaybe-uninitialized warning.
29998 2016-01-16 Sandra Loosemore <sandra@codesourcery.com>
30000 * doc/invoke.texi (Invoking GCC): Add new section to menu.
30001 (Option Summary): Update to reflect new section and moved options.
30002 (C++ Dialect Options): Move -fvtable-verify and related options.
30003 (Debugging Options): Move Sanitizer, Pointer Bounds Checker,
30004 and profiling-related options.
30005 (Optimization Options): Move profile generation options and
30006 -fstack-protector and related options.
30007 (Instrumentation Options): New section incorporating moved options.
30008 (Code Generation Options): Move -finstrument-functions and
30009 related options, -fstack-check, -fstack-limit*, and -fbounds-check.
30011 2016-01-16 Tom de Vries <tom@codesourcery.com>
30013 * passes.def: Move pass_expand_omp_ssa out of pass_parallelize_loops.
30015 2016-01-16 Tom de Vries <tom@codesourcery.com>
30017 * omp-low.c (expand_omp_atomic_fetch_op): Release defs of update stmt.
30019 2016-01-16 Richard Sandiford <richard.sandiford@arm.com>
30021 * hash-table.h (hash_table::empty): Turn into an inline wrapper
30022 that checks whether the table is already empty. Rename the
30023 original implementation to...
30024 (hash_table::empty_slot): ...this new private function.
30026 2016-01-15 David Malcolm <dmalcolm@redhat.com>
30028 PR diagnostic/68899
30029 * diagnostic-show-locus.c (layout::print_source_line): Move x
30030 offset of line until after call to
30031 get_line_width_without_trailing_whitespace.
30033 2016-01-15 Jeff Law <law@redhat.com>
30035 PR tree-optimization/69270
30036 * tree-ssanames.c (ssa_name_has_boolean_range): Moved here from
30037 tree-ssa-dom.c. Improve test for [0..1] ranve from VRP.
30038 * tree-ssa-dom.c (ssa_name_has_boolean_range): Remove.
30039 * tree-ssanames.h (ssa_name_has_boolean_range): Prototype.
30040 * tree-ssa-uncprop.c (associate_equivalences_with_edges): Use
30041 ssa_name_has_boolean_range and constant_boolean_node.
30043 2016-01-15 Vladimir Makarov <vmakarov@redhat.com>
30045 PR rtl-optimization/69030
30046 * lra-spills.c (remove_pseudos): Check nrefs and make the function
30048 (spill_pseudos): Delete debug insn for dead pseudo.
30049 (lra_spill): Initiate spill_hard_reg and slots memory separately.
30051 2016-01-15 Jiong Wang <jiong.wang@arm.com>
30053 * config/aarch64/aarch64-builtins.c (aarch64_types_unopus_qualifiers):
30055 (TYPES_UNOPUS): Likewise.
30056 * config/aarch64/aarch64-simd-builtins.def (lbtruncuv2sf): Correct
30057 builtin type, from UNOP to UNOPUS.
30058 (lbtruncuv4sf): Likewise.
30059 (lbtruncuv2df): Likewise.
30060 (lrounduv2sf): Likewise.
30061 (lrounduv4sf): Likewise.
30062 (lrounduv2df): Likewise.
30063 (lroundusf): Likewise.
30064 (lroundusf): Likewise.
30065 (lceiluv2sf): Likewise.
30066 (lceiluv4sf): Likewise.
30067 (lceiluv2df): Likewise.
30068 (lceilusf): Likewise.
30069 (lceiludf): Likewise.
30070 (lflooruv2sf): Likewise.
30071 (lflooruv4sf): Likewise.
30072 (lflooruv2df): Likewise.
30073 (lfloorusf): Likewise.
30074 (lfloorudf): Likewise.
30075 (lfrintnuv2sf): Likewise.
30076 (lfrintnuv4sf): Likewise.
30077 (lfrintnuv2df): Likewise.
30078 (lfrintnusf): Likewise.
30079 (lfrintnudf): Likewise.
30080 * config/aarch64/arm_neon.h (vcvt_u32_f32): Remove unncessary type
30082 (vcvtq_u32_f32): Likewise.
30083 (vcvtq_u64_f64): Likewise.
30084 (vcvta_u32_f32): Likewise.
30085 (vcvtaq_u32_f32): Likewise.
30086 (vcvtaq_u64_f64): Likewise.
30087 (vcvtm_u32_f32): Likewise.
30088 (vcvtmq_u32_f32): Likewise.
30089 (vcvtmq_u64_f64): Likewise.
30090 (vcvtn_u32_f32): Likwise.
30091 (vcvtnq_u32_f32): Likewise.
30092 (vcvtnq_u64_f64): Likewise.
30093 (vcvtp_u32_f32): Likewise.
30094 (vcvtpq_u32_f32): Likewise.
30095 (vcvtpq_u64_f64): Likewise.
30096 (vcvtmd_u64_f64): Likewise.
30097 (vcvtms_u32_f32): Likewise.
30098 (vcvtad_u64_f64): Likewise.
30099 (vcvtas_u32_f32): Likewise.
30100 (vcvtnd_u64_f64): Likewise.
30101 (vcvtns_u32_f32): Likewise.
30102 (vcvtpd_u64_f64): Likewise.
30103 (vcvtps_u32_f32): Likewise.
30105 2016-01-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
30107 * config/aarch64/aarch64.c (aarch64_if_then_else_costs): Handle
30108 CSEL of zero_extended registers.
30110 2016-01-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
30112 * config/aarch64/aarch64.c (aarch64_rtx_costs, COMPARE case):
30113 Handle COMPARE of ZERO_EXTRACT against zero form of TST-immediate.
30115 2016-01-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
30117 * config/aarch64/aarch64.c (aarch64_process_one_target_attr): Return
30118 false when argument string is not found in the attributes table
30121 2016-01-15 David Edelsohn <dje.gcc@gmail.com>
30124 * config/rs6000/rs6000.c (rs6000_emit_msub): Delete.
30125 (rs6000_emit_swsqrt): Convert to Goldschmidt's Algorithm
30126 * config/rs6000/rs6000.md (sqrt<mode>2): Limit swsqrt to high
30127 precision estimate.
30129 2016-01-15 Richard Biener <rguenther@suse.de>
30131 PR tree-optimization/66856
30132 * tree-vect-loop.c (vect_transform_loop): Free SLP instances here.
30133 * tree-vect-slp.c (vect_free_slp_tree): Decrement stmt reference count.
30134 (vect_create_new_slp_node): Increment stmt reference count.
30135 (vect_get_and_check_slp_defs): Make sure stmts are nor already in
30136 an SLP tree before swapping operands.
30137 (vect_build_slp_tree): Likewise.
30138 (destroy_bb_vec_info): Free stmt info after SLP instances.
30139 * tree-vect-stmts.c (new_stmt_vec_info): Initialize reference count.
30140 * tree-vectorizer.h (struct _stmt_vec_info): Add num_slp_uses field.
30141 (STMT_VINFO_NUM_SLP_USES): New macro.
30143 2016-01-15 Richard Biener <rguenther@suse.de>
30146 * dwarf2out.c (add_linkage_name_raw): New function split out from ...
30147 (add_linkage_name): ... here.
30148 (gen_typedef_die): Use add_linkage_name_raw instead of
30149 add_linkage_attr to delay DECL_ASSEMBLER_NAME computation
30152 2016-01-15 Cesar Philippidis <cesar@codesourcery.com>
30154 * gimplify.c (oacc_default_clause): Decode reference and pointer
30155 types for both kernels and parallel regions.
30157 2016-01-15 Richard Sandiford <richard.sandiford@arm.com>
30159 PR middle-end/69246
30160 * calls.c (emit_call_1): Force n_popped to zero for sibcalls.
30162 2016-01-15 Ilya Enkovich <enkovich.gnu@gmail.com>
30164 * config/i386/i386.c (scalar_chain::compute_convert_gain): Fix typo.
30165 (convert_scalars_to_vector): Likewise.
30167 2016-01-15 Jonathan Wakely <jwakely@redhat.com>
30169 * doc/extend.texi (Type Traits): Fix grammar.
30171 2016-01-15 Martin Jambor <mjambor@suse.cz>
30173 * tree-inline.c (remap_decl): Use existing dclarations if
30174 remapping a type and prevent_decl_creation_for_types.
30175 (replace_locals_stmt): Do an initial remapping of non-VLA typed
30176 decls first. Do real remapping with
30177 prevent_decl_creation_for_types set.
30178 * tree-inline.h (copy_body_data): New field
30179 prevent_decl_creation_for_types, moved remap_var_for_cilk to avoid
30182 2016-01-15 Dominik Vogt <vogt@linux.vnet.ibm.com>
30184 * config/s390/s390.opt (mmvcle): More verbose help text.
30186 2016-01-15 Dominik Vogt <vogt@linux.vnet.ibm.com>
30188 * config/s390/s390.opt: Add period to -mzvector option text.
30190 2016-01-15 Richard Biener <rguenther@suse.de>
30192 PR tree-optimization/68961
30193 * tree-vect-slp.c (vect_analyze_slp_cost_1): Consider cost
30194 of invariants in stores again.
30196 2016-01-15 Sebastian Huber <sebastian.huber@embedded-brains.de>
30198 * config/arm/t-rtems: Add cortex-m7/fpv5-d16 multilib.
30200 2016-01-15 Ilya Enkovich <enkovich.gnu@gmail.com>
30202 * config/i386/i386.c (ix86_expand_branch): Don't split
30203 DI mode xor instruction to SI mode.
30205 2016-01-15 Jan Hubicka <hubicka@ucw.cz>
30208 * ipa-icf.c (sem_function::merge): Virtual functions may become
30209 reachable even if they address is not taken and there are no
30212 2016-01-15 Jan Hubicka <hubicka@ucw.cz>
30214 * lto-streamer-out.c (subtract_estimated_size): New function.
30215 (get_symbol_initial_value): Use it.
30217 2016-01-15 Christian Bruel <christian.bruel@st.com>
30220 * config/arm/arm-builtins.c (ARM_BUILTIN_CRYPTO_BASE): New enum tag.
30221 (arm_init_neon_builtins_internal): Rename arm_init_neon_builtins,
30222 (arm_init_crypto_builtins_internal): Rename arm_init_crypto_builtins.
30223 use add_builtin_function_ext_scope instead of add_builtin_function.
30224 (neon_set_p, neon_crypto_set_p): Remove.
30225 (arm_init_builtins): Always call arm_init_neon_builtins and
30226 arm_init_crypto_builtins.
30227 (arm_expand_builtin): Check that builtins are allowed for the arch.
30228 * config/arm/arm-protos.h (arm_init_neon_builtins): Remove prototype.
30229 * config/arm/arm.c (arm_valid_target_attribute_tree): Remove
30230 arm_init_neon_builtins call.
30232 2016-01-15 Richard Biener <rguenther@suse.de>
30234 PR tree-optimization/69117
30235 * tree-ssa-sccvn.h (struct vn_ssa_aux): Add info member.
30236 * tree-ssa-sccvn.c (set_ssa_val_to): Save and adjust SSA name info
30237 of the leader conservatively.
30238 (free_scc_vn): Restore original SSA name infos.
30240 2016-01-14 Jeff Law <law@redhat.com>
30242 PR tree-optimization/69270
30243 * tree-ssa-dom.c (ssa_name_has_boolean_range): If the type has a
30244 single bit of precision, verify it's also unsigned.
30245 (record_edge_info): Use constant_boolean_node rather than fold_convert
30246 to convert boolean_true/boolean_false to the right type.
30248 2016-01-14 Richard Henderson <rth@redhat.com>
30251 * loop-doloop.c (record_reg_sets): New.
30252 (doloop_optimize): Reject the transform if the sequence
30253 clobbers registers live at the end of the loop block.
30254 (doloop_optimize_loops): Enable df_live if needed.
30256 2016-01-14 Michael Meissner <meissner@linux.vnet.ibm.com>
30258 * config/rs6000/rs6000-builtin.def: Revert 2016-01-13 change.
30259 * config/rs6000/rs6000.c: Likewise.
30260 * config/rs6000/rs6000.h: Likewise.
30261 * config/rs6000/rs6000.md: Likewise.
30262 * doc/extend.texi: Likewsie.
30264 2016-01-14 Jeff Law <law@redhat.com>
30266 * tree-ssa-dom.c (ssa_name_has_boolean_range): Fix comment
30269 2016-01-14 Richard Henderson <rth@redhat.com>
30273 * trans-mem.c (tm_log_emit_stmt): Fix unit size to bit size.
30274 * tree.c (build_tm_vector_builtins): Use builtin_decl_explicit_p
30275 instead of builtin_decl_declared_p to test for declaration.
30277 2016-01-14 Nicklas Bo Jensen <nbjensen@gmail.com>
30279 * doc/loop.texi (Loop Analysis and Representation): Document
30280 loop_depth function.
30282 2016-01-14 Tom de Vries <tom@codesourcery.com>
30284 PR tree-optimization/68773
30285 * omp-low.c (expand_omp_target): Don't set force_output.
30286 * varpool.c (varpool_node::get_create): Same.
30287 * lto-cgraph.c (input_offload_tables): Mark entries in offload_vars and
30288 offload_funcs with force_output.
30290 2016-01-14 Jakub Jelinek <jakub@redhat.com>
30293 * lra-eliminations.c (move_plus_up): Don't change anything if either
30294 the outer or inner subreg mode is not MODE_INT.
30295 * dwarf2out.c (mem_loc_descriptor): For SUBREG, if outer mode is
30296 integral <= DWARF2_ADDR_SIZE, convert to untyped afterwards.
30298 2016-01-14 Alan Lawrence <alan.lawrence@arm.com>
30300 * doc/md.texi (reduc_smin_@var{m}, reduc_smax_@var{m},
30301 reduc_umin_@var{m}, reduc_umax_@var{m}, reduc_splus_@var{m},
30302 reduc_uplus_@var{m}): Remove.
30303 * expr.c (expand_expr_real_2): Remove expansion path for
30304 reduc_[us](min|max|plus) optabs.
30305 * optabs-tree.c (scalar_reduc_to_vector): Remove.
30306 * optabs-tree.h (scalar_reduc_to_vector): Remove.
30307 * optabs.def (reduc_smax_optab, reduc_smin_optab, reduc_splus_optab,
30308 reduc_umax_optab, reduc_umin_optab, reduc_uplus_optab): Remove.
30309 * tree-vect-loop.c (vectorizable_reduction): Remove test for
30310 reduc_[us](min|max|plus) optabs.
30312 2016-01-14 Alan Lawrence <alan.lawrence@arm.com>
30314 * config/mips/mips-ps-3d.md (reduc_splus_v2sf): Remove.
30315 (reduc_plus_scal_v2sf): New.
30316 (reduc_smax_v2sf): Rename to...
30317 (reduc_smax_scal_v2sf): ...here, make result SFmode, add vec_extract.
30318 (reduc_smin_v2sf): Rename to...
30319 (reduc_smin_scal_v2sf): ...here, make result SFmode, add vec_extract.
30321 2016-01-14 Jan Hubicka <hubicka@ucw.cz>
30323 * alias.c (compare_base_symbol_refs): New function.
30324 (rtx_equal_for_memref_p, base_alias_check, memrefs_conflict_p): Use
30327 2016-01-14 Jakub Jelinek <jakub@redhat.com>
30329 PR middle-end/68146
30330 PR tree-optimization/69155
30331 * tree-complex.c: Include cfganal.h.
30332 (phis_to_revisit): New variable.
30333 (extract_component): Add phiarg_p argument. Assert that returned
30334 SSA_NAME has non-NULL SSA_NAME_DEF_STMT unless phiarg_p is true.
30335 (update_phi_components): Partly rewrite to use loop over real/imag
30336 components instead of code duplication. If extract_component returns
30337 SSA_NAME with NULL SSA_NAME_DEF_STMT, store SSA_NAME_VAR or
30338 create_tmp_reg into the PHI node instead, and mention the phi triplet
30339 in phis_to_revisit.
30340 (tree_lower_complex): Walk bbs in rpo order. Adjust phis recorded
30341 in phis_to_revisit at the end.
30343 2016-01-14 Richard Biener <rguenther@suse.de>
30345 PR tree-optimization/68060
30346 * tree-vect-loop.c (vect_is_simple_reduction): Check the
30347 outer loop reduction is only used in the inner loop before
30348 detecting a double reduction.
30350 2016-01-14 Jakub Jelinek <jakub@redhat.com>
30353 * combine.c (expand_field_assignment): Punt if compute_mode is
30354 unsupported scalar mode.
30356 2016-01-14 Richard Biener <rguenther@suse.de>
30358 PR tree-optimization/66856
30359 * tree-vect-slp.c (vect_build_slp_tree): Refactor to build
30360 SLP node only if it built successfully.
30361 (vect_analyze_slp_instance): Adjust.
30363 2016-01-14 Jeff Law <law@redhat.com>
30365 PR tree-optimization/69270
30366 * tree-ssa-dom.c (ssa_name_has_boolean_range): New function.
30367 (record_edge_info): Use it. Convert boolean_{true,false}_node
30368 to the type of op0.
30370 2016-01-13 Jan Hubicka <hubicka@ucw.cz>
30373 * ipa-polymorphic-call.c (inlined_polymorphic_ctor_dtor_block_p):
30374 use block_ultimate_origin
30375 (noncall-stmt_may_be_vtbl_ptr_store): Likewise.
30377 2016-01-13 Sandra Loosemore <sandra@codesourcery.com>
30379 * doc/invoke.texi (Submodel Options): Rename section to
30380 "Machine-Dependent Options" to better reflect its content.
30381 Rewrite introductory text to remove archaic CPU names.
30384 2016-01-13 Sandra Loosemore <sandra@codesourcery.com>
30386 * doc/invoke.texi (Code Gen Options): Move section up in file,
30387 before target-specific options. Update menu and option summary
30388 to reflect the new section ordering.
30390 2016-01-13 Jonathan Wakely <jwakely@redhat.com>
30392 * doc/invoke.texi (C Dialect Options): Adjust -std default for C++.
30393 (C++ Dialect Options): Add cross-reference to -std option.
30394 * doc/standards.texi (C++ Language): Document C++14 support.
30396 2016-01-13 Michael Meissner <meissner@linux.vnet.ibm.com>
30398 * config/rs6000/rs6000-builtin.def (BU_FLOAT128_2): Add support
30399 for pack/unpack functions for __ibm128.
30400 (PACK_IF): Likewise.
30401 (UNPACK_IF): Likewise.
30403 * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
30404 support for __ibm128 pack/unpack functions.
30405 (rs6000_invalid_builtin): Likewise.
30406 (rs6000_init_builtins): Likewise.
30407 (rs6000_opt_masks): Likewise.
30409 * config/rs6000/rs6000.h (MASK_FLOAT128): Add short name.
30410 (RS6000_BTM_FLOAT128): Add support for __ibm128 pack/unpack
30412 (RS6000_BTM_COMMON): Likewise.
30414 * config/rs6000/rs6000.md (f128_vsx): New mode attribute.
30415 (unpack<mode>): Use FMOVE128_FPR iterator instead of FMOVE128, to
30416 disallow __builtin_{pack,unpack}_longdouble if long double is IEEE
30417 128-bit floating point. Add support for the double values to be
30418 in Altivec registers for TF/IF packing and unpacking, but restrict
30419 TD packing sub-fields to be FPR registers. Don't allow overlapped
30420 register support for packing. Allow pack inputs to be memory
30421 locations. Don't build generator functions for unpack<mode>_dm
30422 and unpack<mode>_nodm.
30423 (unpack<mode>_dm): Likewise.
30424 (unpack<mode>_nodm): Likewise.
30425 (pack<mode>): Likewise.
30427 * config/rs6000/rs6000-builtin.def (__builtin_pack_ibm128): Add
30428 built-in functions to pack/unpack explicit __ibm128 values.
30429 (__builtin_unpack_ibm128): Likewise.
30431 * doc/extend.texi (PowerPC Built-in Functions): Document
30432 __builtin_pack_ibm128 and __builtin_unpack_ibm128.
30434 2016-01-13 Bernd Schmidt <bschmidt@redhat.com>
30437 * c-common.c (check_function_nonnull): Remove unnecessary declaration.
30438 Add new arg loc and pass it down as context.
30439 (check_nonnull_arg): Don't mark ctx arg as unused. Use it as a pointer
30440 to the location to use for the warning.
30441 (check_function_arguments): New arg loc. All callers changed. Pass
30442 it to check_function_nonnull.
30443 * c-common.h (check_function_arguments): Adjust declaration.
30445 2016-01-13 Jakub Jelinek <jakub@redhat.com>
30447 PR tree-optimization/69156
30448 * gimple.c (validate_type): Removed.
30449 (gimple_builtin_call_types_compatible_p): Use
30450 useless_type_conversion_p instead of validate_type.
30451 * value-prof.c (gimple_stringop_fixed_value): Fold
30452 icall_size to correct type.
30454 2016-01-13 Jonathan Wakely <jwakely@redhat.com>
30456 * doc/extend.texi (__atomic Builtins): Clarify compare_exchange
30459 2016-01-13 Richard Henderson <rth@redhat.com>
30462 * target.def (builtin_tm_load, builtin_tm_store): Remove.
30463 * config/i386/i386.c (ix86_builtin_tm_load): Remove.
30464 (ix86_builtin_tm_store): Remove.
30465 (TARGET_VECTORIZE_BUILTIN_TM_LOAD): Remove.
30466 (TARGET_VECTORIZE_BUILTIN_TM_STORE): Remove.
30467 * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_TM_LOAD): Remove.
30468 (TARGET_VECTORIZE_BUILTIN_TM_STORE): Remove.
30469 * doc/tm.texi: Rebuild.
30471 * gtm-builtins.def (BUILT_IN_TM_MEMCPY_RNWT): New.
30472 (BUILT_IN_TM_MEMCPY_RTWN): New.
30473 * trans-mem.c (tm_log_emit_stmt): Rearrange code for better
30474 fallback from vector to integer helpers.
30475 (build_tm_load): Handle vector types directly, instead of
30477 (build_tm_store): Likewise.
30478 (expand_assign_tm): Prepare for register types not handled by
30479 the above. Copy them to memory and use memcpy.
30480 * tree.c (tm_define_builtin): New.
30481 (find_tm_vector_type): New.
30482 (build_tm_vector_builtins): New.
30483 (build_common_builtin_nodes): Call it.
30485 2016-01-13 Uros Bizjak <ubizjak@gmail.com>
30487 * config/i386/i386.h (TARGET_FLT_EVAL_METHOD): Return -1 for
30488 TARGET_SSE_MATH without TARGET_SSE2. Rewrite.
30490 2016-01-13 Tom de Vries <tom@codesourcery.com>
30492 PR tree-optimization/69169
30493 * tree-ssa-structalias.c (create_variable_info_for_1): Add and handle
30494 handled_struct_type param.
30495 (create_variable_info_for, intra_create_variable_infos): Call
30496 create_variable_info_for_1 with extra arg.
30498 2016-01-13 Yvan Roux <yvan.roux@linaro.org>
30500 * config/arm/arm-arches.def: Remove spurious whitespace in "armv8.1-a"
30501 and "armv8.1-a+crc" entries.
30503 2016-01-13 Alexander Fomin <alexander.fomin@intel.com>
30506 * config/i386/sse.md (define_expand "avx512pf_gatherpf<mode>sf"):
30507 Change first operand predicate from register_or_constm1_operand
30508 to register_operand.
30509 (define_expand "avx512pf_gatherpf<mode>df"): Likewise.
30510 (define_expand "avx512pf_scatterpf<mode>sf"): Likewise.
30511 (define_expand "avx512pf_scatterpf<mode>df"): Likewise.
30512 (define_insn "*avx512pf_gatherpf<mode>sf"): Remove.
30513 (define_insn "*avx512pf_gatherpf<mode>df"): Likewise.
30514 (define_insn "*avx512pf_scatterpf<mode>sf"): Likewise.
30515 (define_insn "*avx512pf_scatterpf<mode>df"): Likewise.
30516 * config/i386/i386.c (ix86_expand_builtin): Remove first operand
30517 comparison with constm1_rtx from vec_prefetch_gen part.
30519 2016-01-13 Richard Biener <rguenther@suse.de>
30521 PR tree-optimization/69013
30522 * tree-ssa-uninit.c (prune_uninit_phi_opnds_in_unrealizable_paths):
30523 Exchange assert for a test.
30525 2016-01-13 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
30528 * config/s390/s390.md (bswaphi splitter): Use simplify_gen_subreg.
30530 2016-01-13 Richard Biener <rguenther@suse.de>
30532 PR tree-optimization/69242
30533 * tree-ssa-sccvn.c (visit_reference_op_load): Replace bogus
30534 assert with a check.
30536 2016-01-13 Richard Biener <rguenther@suse.de>
30538 PR tree-optimization/69186
30539 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
30540 Properly guard vect_update_misalignment_for_peel call.
30542 2016-01-12 Jeff Law <law@redhat.com>
30544 PR tree-optimization/pr67755
30545 * tree-ssa-threadupdate.c (struct ssa_local_info_t): Add new field
30546 "need_profile_correction".
30547 (thread_block_1): Initialize new field to false by default. If we
30548 have multiple thread paths through a common joiner to different
30549 final targets, then set new field to true.
30550 (compute_path_counts): Only do count adjustment when it's really
30553 2016-01-12 Sandra Loosemore <sandra@codesourcery.com>
30555 * doc/invoke.texi (Spec Files): Move section down in file, past
30556 all command-line option descriptions.
30558 2016-01-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
30560 PR middle-end/54809
30561 * doc/gty.texi: Remove documentation of mark_hook.
30562 * gengtype.c (struct write_types_data): Remove code to support
30563 mark_hook attribute.
30564 (walk_type): Likewise.
30565 (write_func_for_structure): Likewise.
30567 2016-01-12 Sandra Loosemore <sandra@codesourcery.com>
30569 * doc/invoke.texi (Option Summary) Move -no-canonical-prefixes to
30570 Directory Options, and -specs= to Overall Options.
30571 (Overall Options): Adjust similarly. Reorder to group related
30572 options together. Make -specs= cross-reference the spec file details.
30573 (Directory Options): Adjust similarly.
30575 2016-01-12 Jeff Law <law@redhat.com>
30577 * tree-ssa-threadupdate.c: Various whitespace and typo fixes.
30579 2016-01-12 Olivier Hainque <hainque@adacore.com>
30581 * gcc.c (spec_undefvar_allowed): New global.
30582 (process_command): Set to true when running for --version or --help,
30584 (getenv_spec_function): When the variable is not defined, use the
30585 variable name as the variable value if we're allowed not to issue
30588 2016-01-12 Bin Cheng <bin.cheng@arm.com>
30590 PR tree-optimization/68911
30591 * tree-vrp.c (adjust_range_with_scev): Check overflow in range
30592 information computed for expression "init + nit * step".
30594 2016-01-12 Sandra Loosemore <sandra@codesourcery.com>
30596 * doc/invoke.texi (Invoking GCC): Copy-edit. Incorporate information
30597 about name of GCC executable. Remove deleted node from menu.
30598 (Directory Options) <-B>: Remove cross-reference to deleted node.
30599 (Target Options): Delete section.
30601 2016-01-12 Christian Bruel <christian.bruel@st.com>
30604 * config/arm/arm-c.c (arm_pragma_target_parse): Set NODE_CONDITIONAL
30605 for __ARM_NEON_FP, __ARM_FP, _ARM_FEATURE_LDREX.
30607 2016-01-12 Jakub Jelinek <jakub@redhat.com>
30610 * config/i386/i386.c (ix86_expand_special_args_builtin): Ensure
30611 aligned_mem is properly set for AVX512-VL floating point masked
30615 * ifcvt.c (cond_exec_process_if_block): When removing the last
30616 insn from then_bb, remove also any possible barriers that follow it.
30618 2016-01-12 H.J. Lu <hongjiu.lu@intel.com>
30622 * config/i386/iamcu.h (SIZE_TYPE): New macro.
30623 (PTRDIFF_TYPE): Likewise.
30624 (WCHAR_TYPE): Likewise.
30625 (WCHAR_TYPE_SIZE): Likewise.
30626 (STDINT_LONG32): Likewise.
30628 2016-01-12 Richard Biener <rguenther@suse.de>
30630 PR tree-optimization/69053
30631 * tree-vect-loop.c (get_initial_def_for_reduction): Properly
30632 convert initial value for cond reductions.
30634 2016-01-12 Richard Biener <rguenther@suse.de>
30636 PR tree-optimization/69007
30637 * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Move
30638 widen_sum after dot_prod and sad.
30640 2016-01-12 Richard Biener <rguenther@suse.de>
30642 PR tree-optimization/69168
30643 * tree-vect-loop.c (vect_analyze_loop_2): Reset both main and
30644 pattern stmt SLP type.
30645 * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Patterns may
30646 end up unused so cope with that case.
30648 2016-01-12 Richard Biener <rguenther@suse.de>
30650 PR tree-optimization/69157
30651 * tree-vect-stmts.c (vectorizable_mask_load_store): Check
30652 stmts def type only during analyze phase.
30653 (vectorizable_call): Likewise.
30654 (vectorizable_simd_clone_call): Likewise.
30655 (vectorizable_conversion): Likewise.
30656 (vectorizable_assignment): Likewise.
30657 (vectorizable_shift): Likewise.
30658 (vectorizable_operation): Likewise.
30659 (vectorizable_store): Likewise.
30660 (vectorizable_load): Likewise.
30662 2016-01-12 Richard Biener <rguenther@suse.de>
30664 PR tree-optimization/69174
30665 * tree-vect-stmts.c (vect_mark_relevant): Remove excessive vertical
30667 (vectorizable_load): Properly compute the number of loads needed
30668 for permuted strided SLP loads and do not spuriously assign
30669 to SLP_TREE_VEC_STMTS.
30671 2016-01-12 Andris Pavenis <andris.pavenis@iki.fi>
30673 * config/i386/djgpp.h (PREFERRED_DEBUGGING_TYPE): Define to DWARF2
30674 (TARGET_ASM_OUTPUT_IDENT): Define to default_asm_output_ident_directive
30675 (MD_EXEC_PREFIX): Remove.
30676 (MD_STARTFILE_PREFIX) Removee.
30677 (FILE_NAME_ABSOLUTE_P): Remove.
30678 (CPP_SPEC): Do not read macros from sys/version.h.
30679 (LINK_COMMAND_SPEC): Remove.
30680 (LOCAL_INCLUDE_DIR): Remove.
30681 (TARGET_ASM_NAMED_SECTION): Define to i386_djgpp_asm_named_section
30682 (TARGET_OS_CPP_BUILTINS): Add DJGPP (non ISO only), __DJGPP, __DJGPP__, unix.
30683 (POST_LINK_SPEC): Define to invoke stubify after linker
30684 (LIBSTDCXX): Remove define
30685 (DBX_REGISTER_NUMBER): Define to svr4_dbx_register_map.
30686 (DEFAULT_PCC_STRUCT_RETURN): Define to 1.
30687 (SUBTARGET_OVERRIDE_OPTIONS): Remove warning about -mbnu2210.
30688 (SUBTARGET_OVERRIDE_OPTIONS): Ignore -fPIC and generate message.
30689 (SUBTARGET_OVERRIDE_OPTIONS): Default to DWARF2 debugging info.
30690 (IX86_MAYBE_NO_LIBGCC_TFMODE): Remove.
30691 (i386_djgpp_asm_named_section): Add propotype of new procedure
30693 * config/i386/xm-djgpp.h (NATIVE_SYSTEM_HEADER_DIR): Define.
30694 (MD_EXEC_PREFIX): Define (moved from config/i386/djgpp.h).
30695 (STANDARD_STARTFILE_PREFIX_1): Define (moved from MD_STARTFILE_PREFIX
30696 in config/i386/djgpp.h).
30697 (STANDARD_STARTFILE_PREFIX_2): Define identical to
30698 STANDARD_STARTFILE_PREFIX_1.
30699 (LOCAL_INCLUDE_DIR): Define (moved from config/i386/djgpp.h).
30700 (GCC_DRIVER_HOST_INITIALIZATION): Fix reporting fatal
30701 installation errors.
30702 (MAX_OFILE_ALIGNMENT): Define to 128.
30703 (HAVE_FTW_H): Undefine as DJGPP do not have nftw, but have ftw.h.
30705 * config/i386/djgpp.c: New file. Add implementation of
30706 i386_djgpp_asm_named_section.
30708 * config/i386/djgpp.opt: Remove obsolete option -mbnu210.
30710 * config/i386/t-djgpp: New file. Add djgpp.o to EXTRA_OBJS.
30711 Add rule for building djgpp.o.
30713 2016-01-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
30715 * config/rs6000/rs6000.c (v2df_reduction_p): New function.
30716 (rtx_is_swappable_p): Reductions are swappable.
30717 (insn_is_swappable_p): V2DF reductions are swappable.
30719 2016-01-11 John David Anglin <danglin@gcc.gnu.org>
30721 * config/pa/pa.c (pa_emit_move_sequence): Handle floating point
30722 reloads for other unsupported memory operands.
30724 2016-01-12 Kugan Vivekanandarajah <kuganv@linaro.org>
30725 Jim Wilson <jim.wilson@linaro.org>
30728 * config/arm/arm-builtins.c (arm_expand_neon_args): Call
30729 copy_to_mode_reg instead of force_reg.
30731 2016-01-11 H.J. Lu <hongjiu.lu@intel.com>
30734 * config/i386/i386.h (TARGET_FLT_EVAL_METHOD): Set to 2 only if
30735 TARGET_80387 is true.
30737 2016-01-11 Jakub Jelinek <jakub@redhat.com>
30740 * lra-eliminations.c (move_plus_up): Only move plus up
30741 if subreg of the constant can be simplified into constant
30742 and use the simplified subreg of the constant instead of
30743 the original constant.
30745 * fold-const.c (fold_convertible_p): Don't return true
30746 for conversion of VECTOR_TYPE to same sized integral type.
30747 (fold_convert_loc): Fix up formatting. Fold conversion of
30748 VECTOR_TYPE to same sized integral type using VIEW_CONVERT_EXPR
30749 instead of NOP_EXPR.
30751 PR tree-optimization/69214
30752 * tree-vrp.c (simplify_cond_using_ranges): Don't propagate
30753 innerop into a comparison if SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
30756 PR tree-optimization/69207
30757 * tree-vect-slp.c (vect_get_constant_vectors): For
30758 VECTOR_BOOLEAN_TYPE_P, assert op has integral type instead of
30759 fold_convertible_p to vector_type's element type, and always
30760 use VCE for non-VECTOR_BOOLEAN_TYPE_P.
30762 2016-01-11 Richard Biener <rguenther@suse.de>
30764 PR tree-optimization/69173
30765 * tree-vect-loop.c (vect_fixup_scalar_cycles_with_patterns): Only
30766 fixup the cycle if all stmts are in a pattern.
30768 2016-01-11 Uros Bizjak <ubizjak@gmail.com>
30770 PR middle-end/68999
30771 * alias.c (base_alias_check): Move check for addresses with
30772 alignment ANDs before the call for compare_base_decls.
30773 (memrefs_conflict_p): Return -1 for different decls
30774 that went through alignment adjustments.
30776 2016-01-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
30778 PR rtl-optimization/68796
30779 * config/aarch64/aarch64.md (*and<mode>_compare0): New pattern.
30780 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Handle HImode
30781 and QImode comparisons against zero with CC_NZmode.
30782 * config/aarch64/iterators.md (short_mask): New mode_attr.
30784 2016-01-11 H.J. Lu <hongjiu.lu@intel.com>
30786 * config/i386/sse.md (<avx512>_load<mode>_mask): Remove snprintf.
30787 (<avx512>_store<mode>_mask): Likewise.
30789 2016-01-11 Bernd Schmidt <bschmidt@redhat.com>
30790 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
30792 PR rtl-optimization/68841
30793 * ifcvt.c (struct noce_if_info): Add orig_x field.
30794 (bbs_ok_for_cmove_arith): Add to_rename parameter.
30795 Don't record conflicts on to_rename if it's present.
30796 Allow memory destinations in sets.
30797 (noce_try_cmove_arith): Call bbs_ok_for_cmove_arith even on simple
30798 blocks, passing orig_x to the checks.
30799 (noce_process_if_block): Set if_info->orig_x appropriately.
30801 2016-01-11 Tom de Vries <tom@codesourcery.com>
30803 PR tree-optimization/69069
30804 * tree-parloops.c (create_parallel_loop): Add missing phi args.
30806 2016-01-11 Yuri Rumyantsev <ysrumyan@gmail.com>
30808 PR rtl-optimization/68920
30809 * config/i386/i386.c (ix86_option_override_internal): Restrict number
30810 of conditional moves for RTL if-conversion to 1 for
30811 TARGET_ONE_IF_CONV_INSN.
30812 * config/i386/i386.h (TARGET_ONE_IF_CONV_INSN): New macros.
30813 * config/i386/x86-tune.def (X86_TUNE_ONE_IF_CONV_INSN): New macros.
30814 * params.def (PARAM_MAX_RTL_IF_CONVERSION_INSNS) : Introduce new
30815 parameter to restirct number of conditional moves for
30817 * doc/invoke.texi (max-rtl-if-conversion-insns): Document it.
30818 * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Limit number of
30821 2016-01-11 Alexandre Oliva <aoliva@redhat.com>
30824 * var-tracking.c (drop_overlapping_mem_locs): Operate on all
30825 onepart vars. Fix typo in comment. Fix reversed condition in
30827 (dataflow_set_remove_mem_locs): Operate on all onepart vars.
30830 * var-tracking.c (dump_onepart_variable_differences): New.
30831 (dataflow_set_different): If a detailed dump is requested,
30832 delay early returns and dump differences between onepart
30833 variables present before and after, and added variables.
30835 2016-01-11 Ilya Enkovich <enkovich.gnu@gmail.com>
30838 * expr.c (expand_expr_real_1): For boolean vector constants
30839 with a scalar mode use const_scalar_mask_from_tree.
30840 (const_scalar_mask_from_tree): New.
30841 * optabs.c (expand_vec_cond_mask_expr): Use mask mode
30842 assigned to a mask type to handle constants.
30844 2016-01-11 Martin Jambor <mjambor@suse.cz>
30847 * ipa-cp.c (estimate_local_effects): Do not clone for removal of
30848 useless parameters if we cannot change function signature.
30850 2016-01-11 Martin Jambor <mjambor@suse.cz>
30853 * cgraphclones.c (duplicate_thunk_for_node): Copy can_change_signature
30856 2016-01-11 Tom de Vries <tom@codesourcery.com>
30858 PR tree-optimization/69109
30859 * tree-parloops.c (try_transform_to_exit_first_loop_alt): Don't allow
30862 2016-01-11 Tom de Vries <tom@codesourcery.com>
30864 PR tree-optimization/69108
30865 * tree-parloops.c (gather_scalar_reductions): Handle case that outer phi
30866 res is not used in a phi.
30868 2016-01-11 Yury Gribov <y.gribov@samsung.com>
30871 * common.opt (frandom-seed): Fix parameter name.
30872 * doc/invoke.texi (frandom-seed): Ditto and describe parameter.
30874 2016-01-11 Tom de Vries <tom@codesourcery.com>
30876 PR tree-optimization/69058
30877 * tree-parloops.c (pass_parallelize_loops::execute): Return 0 if libgomp
30880 2016-01-11 Andrew Burgess <andrew.burgess@embecosm.com>
30882 * config/arc/arc.opt (mdiv-rem): Add period to the end.
30883 (mcode-density): Likewise.
30885 2016-01-10 Tom de Vries <tom@codesourcery.com>
30887 PR tree-optimization/69062
30888 * tree-parloops.c (loop_has_phi_with_address_arg): New function.
30889 (parallelize_loops): Don't paralelize loop that has phi with address
30892 2016-01-10 Tom de Vries <tom@codesourcery.com>
30894 PR tree-optimization/69039
30895 * tree-parloops.c (try_create_reduction_list): Only allow single exit
30898 2016-01-09 John David Anglin <danglin@gcc.gnu.org>
30900 PR middle-end/68743
30901 * match.pd: Require target has function_c99_misc before doing
30902 truncl(extend(x)) and trunc(extend(x)) -> extend(truncf(x)), etc.
30904 2016-01-09 Gerald Pfeifer <gerald@pfeifer.com>
30906 * configure.ac (isl_options_set_schedule_serialize_sccs): Also
30908 * configure: Regenerate.
30910 2016-01-09 Jakub Jelinek <jakub@redhat.com>
30912 PR middle-end/50865
30913 PR tree-optimization/69097
30914 * fold-const.h (expr_not_equal_to): New prototype.
30915 * fold-const.c: Include stringpool.h and tree-ssanames.h.
30916 (expr_not_equal_to): New function.
30917 * match.pd (X % -Y is the same as X % Y): Don't optimize
30918 unless X is known not to be equal to minimum or Y is known
30919 not to be equal to -1.
30920 * tree-vrp.c (simplify_div_or_mod_using_ranges): Add GSI argument.
30921 fold TRUNC_MOD_EXPR if the second argument is not a power of two.
30922 (simplify_stmt_using_ranges): Adjust caller.
30923 (vrp_finalize): Call set_value_range on SSA_NAMEs before calling
30924 substitute_and_fold.
30926 2016-01-09 Jan Hubicka <hubicka@ucw.cz>
30928 * ipa-icf.c (sem_item_optimizer::merge_classes): Do not ICE on VAR_DECL
30931 2016-01-08 Jakub Jelinek <jakub@redhat.com>
30933 PR tree-optimization/69167
30934 * gimple-fold.c (replace_stmt_with_simplification): Also punt if
30935 new SSA_NAME_OCCURS_IN_ABNORMAL_PHI SSA_NAMEs appear in operands of
30937 * gimple-match-head.c (maybe_push_res_to_seq): Likewise.
30939 2016-01-08 Alan Lawrence <alan.lawrence@arm.com>
30940 Richard Biener <rguenther@suse.de>
30942 PR tree-optimization/68707
30943 * tree-vect-slp.c (vect_analyze_slp_instance): Cancel permuted SLP
30944 instances that can be handled via vect_load_lanes.
30946 2016-01-08 Uros Bizjak <ubizjak@gmail.com>
30948 * symtab.c (symtab_node::equal_address_to): Return -1 instead of 2
30949 if we can't determine address equivalence.
30950 * alias.c (compare_base_decl): Update for changed return value of
30951 symtab_node::equal_address_to.
30953 2016-01-08 Jason Merrill <jason@redhat.com>
30957 * function.c (assign_temp): Guard against TREE_ADDRESSABLE types here.
30958 * expr.c (store_field): Not here.
30959 * tree-cfgcleanup.c (fixup_noreturn_call): Don't clear LHS of a
30960 call with TREE_ADDRESSABLE type.
30961 * tree-cfg.c (verify_gimple_call): Adjust.
30963 2016-01-08 Olivier Hainque <hainque@adacore.com>
30965 * config/vxworks.h (VXWORKS_LIBGCC_SPEC): Don't link shared RTPs with
30968 2016-01-08 Alan Lawrence <alan.lawrence@arm.com>
30970 * gcc.target/rs6000/paired.md (reduc_smax_v2sf): Rename to...
30971 (reduc_smax_scal_v2sf): ...here, make result SFmode, extract element.
30972 (reduc_smin_v2sf): Rename to...
30973 (reduc_smin_scal_v2sf): ...here, make result SFmode, extract element.
30974 (reduc_splus_v2sf): Rename to...
30975 (reduc_plus_scal_v2sf): ...here, make result SFmode, extract element.
30977 2016-01-08 Jakub Jelinek <jakub@redhat.com>
30979 PR tree-optimization/69162
30980 * gimplify.c (gimplify_va_arg_expr): Encode original type of
30981 valist argument in another argument.
30982 (gimplify_modify_expr): Adjust for the above change. Cleanup.
30983 * tree-stdarg.c (expand_ifn_va_arg_1): Use new 3rd argument
30984 to determine the va_list type, build a MEM_REF instead of
30985 build_fold_indirect_ref.
30987 PR tree-optimization/69172
30988 * gimple-fold.c (gimple_fold_builtin_memory_chk): Pass type to
30991 2016-01-08 Thomas Preud'homme <thomas.preudhomme@arm.com>
30993 PR tree-optimization/67781
30994 * tree-ssa-math-opts.c (find_bswap_or_nop): Zero out bytes in cmpxchg
30995 and cmpnop in two steps: first the ones not accessed in original
30996 gimple expression in a endian independent way and then the ones not
30997 accessed in the final result in an endian-specific way.
30999 2016-01-08 Jakub Jelinek <jakub@redhat.com>
31001 PR tree-optimization/69083
31002 * tree-vect-slp.c (vect_get_constant_vectors): For
31003 VECTOR_BOOLEAN_TYPE_P assert op is fold_convertible_p to vector_type's
31004 element type. If op is fold_convertible_p to vector_type's element
31005 type, use NOP_EXPR instead of VCE.
31007 2016-01-08 Segher Boessenkool <segher@kernel.crashing.org>
31009 PR rtl-optimization/67778
31010 PR rtl-optimization/68634
31011 PR rtl-optimization/68909
31012 * shrink-wrap.c (try_shrink_wrapping): Add comment. Don't pop
31013 block from the stack until done with it. Remove a superfluous
31014 bitmap set. Remove a superfluous bitmap test.
31016 2016-01-07 Martin Sebor <msebor@redhat.com>
31019 * doc/extend.texi (__atomic Builtins, __sync Builtins): Document
31020 constraint on the type of arguments.
31022 2016-01-07 Andreas Tobler <andreast@gcc.gnu.org>
31024 * config/arm/freebsd.h: Rename SUBTARGET_OVERRIDE_OPTIONS to
31025 SUBTARGET_OVERRIDE_INTERNAL_OPTIONS. Adjust to check
31026 unaligned_access on the gcc_options set.
31027 * config/arm/arm.c (arm_option_override_internal): Use
31028 SUBTARGET_OVERRIDE_INTERNAL_OPTIONS.
31030 2016-01-07 Uros Bizjak <ubizjak@gmail.com>
31033 * config/i386/i386.c (ix86_frame_pointer_required): Enable
31034 frame pointer for TARGET_64BIT_MS_ABI when stack is misaligned.
31036 2016-01-07 Uros Bizjak <ubizjak@gmail.com>
31039 2016-01-06 Uros Bizjak <ubizjak@gmail.com>
31042 * config/i386/i386.c (ix86_expand_prologue): Declare fs.sp_valid
31043 depending on frame_pointer_needed before remaining integer and SSE
31044 registers are saved.
31046 2016-01-07 Sandra Loosemore <sandra@codesourcery.com>
31049 * doc/extend.texi (Nvidia PDX Function Attributes): New section.
31051 2016-01-07 H.J. Lu <hongjiu.lu@intel.com>
31054 * config/i386/sse.md (<sse>_sqrt<mode>2<mask_name><round_name>):
31055 Use the "xBm" constraint.
31056 (float<sseintvecmodelower><mode>2<mask_name><round_name):
31058 (sse_cvtsi2ss<round_name>): Use round_nimm_scalar_predicate.
31059 (sse_cvtsi2ssq<round_name>): Likewise.
31060 (sse_cvtss2si<round_name>): Likewise.
31061 (sse_cvtss2siq<round_name>): Likewise.
31062 (sse2_cvtsi2sdq<round_name>): Likewise.
31063 (sse2_cvtsd2si<round_name>): Likewise.
31064 (sse2_cvtsd2siq<round_name>): Likewise.
31065 * config/i386/subst.md (round_nimm_scalar_predicate): New
31068 2015-12-15 Bernd Schmidt <bschmidt@redhat.com>
31070 PR middle-end/67639
31071 * varasm.c (make_decl_rtl): Mark invalid register vars as
31074 PR rtl-optimization/66206
31075 * bt-load.c (find_btr_use): Change first arg to be a pointer to an rtx.
31076 All callers changed.
31078 2016-01-07 Jakub Jelinek <jakub@redhat.com>
31080 PR tree-optimization/69141
31081 * tree-ssa-pre.c: Include langhooks.h.
31082 (eliminate_dom_walker::before_dom_children): Use
31083 lang_hooks.decl_printable_name instead of
31084 cgraph_node::get ()->name ().
31086 PR middle-end/68960
31087 * gimple-expr.c (copy_var_decl): If var has DECL_USER_ALIGN set, copy
31088 it and DECL_ALIGN too.
31090 2016-01-06 Robert Suchanek <robert.suchanek@imgtec.com>
31092 * config/mips/mips-ftypes.def: Sort to lexicographical order.
31094 2016-01-06 Uros Bizjak <ubizjak@gmail.com>
31097 * config/i386/i386.c (ix86_expand_prologue): Declare fs.sp_valid
31098 depending on frame_pointer_needed before remaining integer and SSE
31099 registers are saved.
31101 2015-01-06 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
31103 * config/rs6000/vsx.md (*p9_vecload_<mode>): Replace VSX_M
31104 mode iterator with VSX_M2.
31105 (*p9_vecstore_<mode>): Likewise.
31106 (*vsx_le_permute_<mode>): Restrict to !TARGET_P9_VECTOR.
31107 (*vsx_le_perm_load_<mode> for VSX_LE_128): Likewise.
31108 (*vsx_le_perm_store_<mode> for VSX_LE_128): Likewise.
31109 (define_split for VSX_LE128 stores): Likewise.
31110 (define_peephole2 for TImode LE swaps): Likewise.
31111 (define_split for VSX_LE128 post-reload stores): Likewise.
31113 2016-01-06 Marek Polacek <polacek@redhat.com>
31116 * convert.c (convert_to_integer_1): Adjust call to
31117 ubsan_instrument_float_cast. Use NULL_TREE instead of NULL.
31118 * ubsan.c (ubsan_instrument_float_cast): Drop the ARG parameter. Use
31119 EXPR instead of ARG.
31120 * ubsan.h (ubsan_instrument_float_cast): Adjust declaration.
31122 2016-01-05 Sandra Loosemore <sandra@codesourcery.com>
31125 * doc/extend.texi (RL78 Variable Attributes): New section.
31127 2016-01-05 Marek Polacek <polacek@redhat.com>
31130 * builtins.c (get_memmodel): Use expansion point location rather than
31131 the input location. Call warning_at rather than warning.
31132 (expand_builtin_atomic_compare_exchange): Likewise.
31133 (expand_builtin_atomic_load): Likewise.
31134 (expand_builtin_atomic_store): Likewise.
31135 (expand_builtin_atomic_clear): Likewise.
31137 2016-01-05 H.J. Lu <hongjiu.lu@intel.com>
31140 * config/i386/i386.c (ix86_expand_vector_logical_operator):
31141 Replace nonimmediate_operand with vector_operand.
31142 * config/i386/predicates.md (vector_operand): New predicate.
31143 (general_vector_operand): Replace nonimmediate_operand with
31145 * config/i386/sse.md: Replace nonimmediate_operand with
31146 vector_operand and m constraint with Bm constraint on SSE
31147 patterns with 16-byte memory operand.
31148 * config/i386/subst.md (round_nimm_predicate): Replace
31149 nonimmediate_operand with vector_operand.
31150 (round_saeonly_nimm_predicate): Likewise.
31151 (round_saeonly_nimm_scalar_predicate): New.
31153 2016-01-05 H.J. Lu <hongjiu.lu@intel.com>
31156 * config/i386/constraints.md (Bm): New constraint.
31157 * config/i386/predicates.md (vector_memory_operand): New
31159 * config/i386/sse.md: Replace xm with xBm in plusminus and
31160 any_logic patterns.
31162 2016-01-05 Sandra Loosemore <sandra@codesourcery.com>
31165 * doc/extend.texi (V850 Function Attributes): New section.
31166 (V850 Variable Attributes): New section.
31168 2016-01-05 Sandra Loosemore <sandra@codesourcery.com>
31171 * doc/extend.texi (MicroBlaze Function Attributes): Document
31172 interrupt_handler and fast_interrupt attributes.
31174 2016-01-05 Sergei Trofimovich <siarheit@google.com>
31177 * config/ia64/ia64.c (ia64_expand_load_address): Use gprel64
31178 for local symbolic operands.
31179 * config/ia64/predicates.md (local_symbolic_operand64): New
31182 2016-01-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
31184 PR rtl-optimization/68651
31185 * combine.c (combine_simplify_rtx): Canonicalize x + x into
31188 2016-01-05 Nathan Sidwell <nathan@acm.org>
31190 * alias.c (compare_base_decls): Use symtab_node::get.
31192 2016-01-05 Nick Clifton <nickc@redhat.com>
31195 * ira-costs.c (copy_cost): Initialise the t_icode field of the
31196 secondary_reload_info structure.
31199 * config/i386/cygming.h (MAKE_DECL_ONE_ONLY): Define to use weak
31200 decls if weak support is available.
31202 2016-01-04 Martin Sebor <msebor@redhat.com>
31204 * doc/invoke.texi (Warning Options): Document -Winvalid-memory-model.
31206 2016-01-04 Michael Meissner <meissner@linux.vnet.ibm.com>
31208 * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Add
31209 OPTION_MASK_P9_DFORM.
31211 * config/rs6000/constraints.md (wo constraint): New constraint for
31214 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Add support
31216 (rs6000_init_hard_regno_mode_ok): Likewise.
31218 * config/rs6000/rs6000.h (r6000_reg_class_enum): Add support for
31221 * config/rs6000/altivec.md (altivec_vperm_<mode>): Clean up vperm
31222 expanders not to have constraints. Add support for ISA 3.0 xxperm
31223 instruction. Add support for fusing xxlor with xxperm.
31224 (altivec_vperm_<mode>_internal): Likewise.
31225 (altivec_vperm_v8hiv16qi): Likewise.
31226 (altivec_vperm_<mode>v16q): Likewise.
31227 (altivec_vperm_<mode>_uns): Likewise.
31228 (vperm_v8hiv4si): Likewise.
31229 (vperm_v16qiv8hi): Likewise.
31231 * doc/md.texi (RS/6000 constraints): Document wo constraint.
31233 2016-01-04 Jakub Jelinek <jakub@redhat.com>
31235 Update copyright years.
31237 * gcc.c (process_command): Update copyright notice dates.
31238 * gcov-dump.c (print_version): Ditto.
31239 * gcov.c (print_version): Ditto.
31240 * gcov-tool.c (print_version): Ditto.
31241 * gengtype.c (create_file): Ditto.
31242 * doc/cpp.texi: Bump @copying's copyright year.
31243 * doc/cppinternals.texi: Ditto.
31244 * doc/gcc.texi: Ditto.
31245 * doc/gccint.texi: Ditto.
31246 * doc/gcov.texi: Ditto.
31247 * doc/install.texi: Ditto.
31248 * doc/invoke.texi: Ditto.
31250 2016-01-04 Eric Botcazou <ebotcazou@adacore.com>
31252 * config/arm/arm.c (aapcs_vfp_allocate_return_reg): Treat all integer
31253 modes larger than TImode as TImode if NEON is not enabled.
31255 2016-01-04 Eric Botcazou <ebotcazou@adacore.com>
31258 * config/sparc/sparc.h (FUNCTION_ARG_REGNO_P): Return true in 64-bit
31259 mode for %f0-%f31 only if TARGET_FPU.
31261 2016-01-04 Eric Botcazou <ebotcazou@adacore.com>
31264 * config/sparc/sparc.c (scan_record_type): Take into account subfields
31265 to compute the PACKED_P predicate.
31266 (function_arg_record_value): Minor tweaks.
31268 2016-01-04 Thomas Preud'homme <thomas.preudhomme@arm.com>
31270 * doc/install.texi (--with-multilib-list): Describe the meaning of the
31271 option for arm*-*-* targets.
31273 2016-01-03 Sandra Loosemore <sandra@codesourcery.com>
31275 * doc/extend.texi (Common Function Attributes): Move docs for
31276 MSP430-specific attributes to....
31277 (MSP430 Function Attributes): ...here. Delete the redundant
31278 entries and copy-edit the remaining text.
31279 (MSP430 Variable Attributes): Use uniform format for index
31280 entries and add a cross-reference to the corresponding function
31283 2016-01-03 Vladimír Čunát <vcunat@gmail.com>
31285 * doc/invoke.texi (RS/6000 and PowerPC Options): Fix
31287 (x86 Options): Likewise.
31289 2016-01-01 Sandra Loosemore <sandra@codesourcery.com>
31293 * extend.texi (Common Function Attributes) <no_stack_limit>: New.
31294 * invoke.texi (Code Gen Options) <-fno-stack-limit>: Add pointer
31295 to corresponding attribute.
31297 2016-01-01 Sandra Loosemore <sandra@codesourcery.com>
31299 * doc/extend.texi (Common Function Attributes) <noplt>: Move
31300 to correct alphabetization of table. Copy-edit and correct
31302 <stack_protect>: Likewise.
31303 <target_clones>: Likewise.
31305 * doc/invoke.texi (Optimize Options) <-fstack-protector-explicit>:
31306 Correct punctuation.
31307 (Code Gen Options) <-fno-plt>: Copy-edit.
31309 2016-01-01 Bernd Edlinger <bernd.edlinger@hotmail.de>
31312 * config/tilegx/tilegx.md (clzsi2): Don't create DI subregs of
31313 SI values. Explicitly convert SI to DI and vice-versa.
31315 2016-01-01 Jakub Jelinek <jakub@redhat.com>
31317 PR tree-optimization/69070
31318 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Only test
31319 REAL_VALUE_ISSIGNALING_NAN on arg0 if arg0 is a REAL_CST.
31322 * ubsan.c (ubsan_instrument_float_cast): Call
31323 initialize_sanitizer_builtins.
31326 * ifcvt.c (find_cond_trap): Give up if returnjump_p (jump).
31328 Copyright (C) 2016 Free Software Foundation, Inc.
31330 Copying and distribution of this file, with or without modification,
31331 are permitted in any medium without royalty provided the copyright
31332 notice and this notice are preserved.