1 2016-11-01 Bilyan Borisov <bilyan.borisov@arm.com>
2 Tamar Christina <tamar.christina@arm.com>
4 * config/arm/arm-c.c (arm_cpu_builtins): New macro definition.
5 * config/arm/arm_neon.h (vmaxnm_f32): New intrinsinc.
6 (vmaxnmq_f32): Likewise.
7 (vminnm_f32): Likewise.
8 (vminnmq_f32): Likewise.
9 * config/arm/arm_neon_builtins.def (vmaxnm): New builtin.
11 * config/arm/neon.md (neon_<fmaxmin_op><mode>, VCVTF): New
14 2016-10-31 Michael Meissner <meissner@linux.vnet.ibm.com>
16 * config/rs6000/vsx.md (VSX_EXTRACT_FL): New iterator for all
17 binary floating point types supported by the hardware except for
19 (vsx_xvcvsxwdp_df): Provide scalar result alternative to the
20 vector instruction for optimizing extracting a SImode from a
21 V4SImode vector and converting it to floating point.
22 (vsx_xvcvuxwdp_df): Likewise.
23 (vsx_extract_si): On ISA 3.0, allow extract target and temporary
24 registers to be any VSX register. Move stores to the end of the
26 (vsx_extract_si_<uns>float_df): New combiner pattern and splitter
27 to optimize extracting a SImode from a V4SImode vector and
28 converting it to a binary floating point type supported by the
29 hardware. Use the vector converts instead of extracting the
30 element, sign extending it, and then converting it to double.
31 Other floating point types than double first convert to double,
32 then the double is converted to that type.
33 (vsx_extract_si_<uns>float_<mode>): Likewise.
35 2016-10-31 Andrew Pinski <apinski@cavium.com>
37 * config/aarch64/driver-aarch64.c (host_detect_local_cpu):
38 Rewrite handling of part num to handle the case where
39 multiple implementers share the same part num.
41 2016-10-31 Jan Kratochvil <jan.kratochvil@redhat.com>
42 Jakub Jelinek <jakub@redhat.com>
44 * dwarf2out.c (DWARF_COMPILE_UNIT_HEADER_SIZE): Adjust for -gdwarf-5.
45 (DWARF_COMDAT_TYPE_UNIT_HEADER_SIZE): Likewise.
47 2016-10-31 Jakub Jelinek <jakub@redhat.com>
49 * dwarf2out.c (dwarf_AT): Handle DW_AT_dwo_name.
50 (use_debug_types): Adjust comment for DWARF5 DW_UT_type units.
51 (new_die): Handle DW_TAG_skeleton_unit like DW_TAG_compile_unit.
52 (is_cu_die, is_unit_die): Likewise.
53 (should_move_die_to_comdat, break_out_comdat_types): Adjust
54 comments for DWARF5 DW_UT_type units.
55 (output_compilation_unit_header): Add UT argument, output
56 start of DWARF5 .debug_info section header.
57 (output_comp_unit): Add dwo_id argument. Adjust
58 output_compilation_unit_header caller, for DW_UT_split_compile
59 emit dwo_id field, otherwise padding1. Emit padding2 field.
60 (add_top_level_skeleton_die_attrs): Add DW_AT_dwo_name
61 rather than DW_AT_GNU_dwo_name attr for -gdwarf-5.
62 (output_skeleton_debug_sections): Add dwo_id argument, for
63 -gdwarf-5 emit DWARF 5 DW_UT_skeleton header.
64 (output_comdat_type_unit): For -gdwarf-5 emit .debug_info
65 DW_UT_type or DW_UT_split_type units rather than .debug_types.
66 (dwarf2out_finish): Use DW_TAG_skeleton_unit rather than
67 DW_TAG_compile_unit for skeleton unit die. Don't add
68 DW_AT_GNU_dwo_id attributes for -gdwarf-5, instead pass checksum
69 address to output_comp_unit and output_skeleton_debug_sections.
71 * dwarf2out.c (debug_line_str_section): New variable.
72 (debug_line_str_hash): Likewise.
73 (DEBUG_LINE_STR_SECTION): Define.
74 (set_indirect_string): Handle DW_FORM_line_strp like
76 (find_string_form): Fix up formatting.
77 (size_of_die): Handle DW_FORM_line_strp like DW_FORM_strp.
79 (output_die): Handle DW_FORM_line_strp.
80 (DWARF5_USE_DEBUG_LINE_STR): Define.
81 (output_line_string): New function.
82 (output_file_names): Add -gdwarf-5 support.
83 (output_line_info): Likewise.
84 (init_sections_and_labels): Initialize debug_line_str_section.
85 (output_indirect_string): Change 2nd argument from void *
86 to enum dwarf_form form, compare with form rather than
88 (output_indirect_strings): Pass DW_FORM_strp to
89 output_indirect_string traversion.
90 (dwarf2out_finish): Output .debug_line_str strings.
91 (dwarf2out_c_finalize): Clear debug_line_str_section and
94 2016-10-31 Tom Tromey <tom@tromey.com>
97 * dwarf2out.c (mem_loc_descriptor): Use DW_OP_form_tls_address.
98 (resolve_args_picking_1): Move DW_OP_form_tls_address case next to
99 DW_OP_GNU_push_tls_address case.
100 (loc_list_from_tree_1): Use DW_OP_form_tls_address.
102 2016-10-31 Jakub Jelinek <jakub@redhat.com>
104 * dwarf2out.h (struct dw_loc_descr_node): Adjust comment
105 for frame_offset_rel bit.
106 (struct array_descr_info): Add rank field.
107 * dwarf2out.c (struct loc_descr_context): Add placeholder_arg
108 and placeholder_seen fields.
109 (resolve_args_picking_1): Handle also frame_offset_rel DW_OP_dup
110 and DW_OP_over. Optimize DW_OP_pick 0 into DW_OP_dup and
111 DW_OP_pick 1 into DW_OP_over.
112 (function_to_dwarf_procedure, type_byte_size, field_byte_offset,
113 gen_variant_part): Clear placeholder_{arg,seen}.
114 (loc_list_from_tree_1): Drop const from context argument.
115 Handle integral PLACEHOLDER_EXPR if context->placeholder_arg.
116 (loc_list_for_address_of_addr_expr_of_indirect_ref,
117 loc_list_from_tree, loc_descriptor_from_tree): Drop const from
119 (add_scalar_info): Drop const from context argument. Handle
120 context->placeholder_arg.
121 (add_bound_info): Drop const from context argument.
122 (gen_descr_array_type_die): Drop const from ctx variable.
123 Initialize placeholder_arg and placeholder_seen. Add DW_AT_rank
124 attribute and use a single DW_TAG_generic_subrange instead of
125 7 DW_TAG_subrange_type for assumed rank arrays.
127 * dwarf2out.h (enum dw_val_class): Add dw_val_class_loclistsptr.
128 * dwarf2out.c (struct dw_loc_list_struct): Change emitted field
129 from bool to 1-bit uchar bitfield. Add num_assigned and
130 offset_emitted bitfields.
131 (dw_val_equal_p): Compare v.val_lbl_id rather than v.val_unsigned
132 for dw_val_class_lineptr and dw_val_class_macptr. Handle
133 dw_val_class_loclistsptr.
134 (new_addr_loc_descr): Fix up formatting.
135 (DEBUG_LOCLISTS_SECTION, DEBUG_DWO_LOCLISTS_SECTION): Define.
136 (add_AT_low_high_pc): Fix up formatting.
137 (add_AT_loclistsptr): New function.
138 (AT_lbl): Allow dw_val_class_loclistsptr.
139 (print_dw_val, attr_checksum, attr_checksum_ordered, same_dw_val_p):
140 Handle dw_val_class_loclistsptr.
141 (loc_list_idx): New variable.
142 (output_loclists_offsets, assign_location_list_indexes): New
144 (size_of_die): For dw_val_class_loc_list -gsplit-dwarf -gdwarf-5
145 add size_of_uleb128 of the index. Drop never used
146 dwarf_split_debug_info AT_index handling. Handle
147 dw_val_class_loclistsptr.
148 (value_format): Return DW_FORM_loclistsx for dw_val_class_loc_list
149 if -gsplit-dwarf -gdwarf-5. Handle dw_val_class_loclistsptr.
150 (output_loc_list): Handle DWARF 5 .debug_loclists* format.
151 (output_loc_list_offset): Handle -gsplit-dwarf -gdwarf-5
152 DW_FORM_loclistx indexes.
153 (output_attr_index_or_value): Fix up formatting. Don't handle
154 dw_val_class_loc_list here.
155 (output_die): Formatting fixes. Handle dw_val_class_loclistsptr.
156 For dw_val_class_loc_list call output_loc_list_offset rather than
157 output_attr_index_or_value.
158 (init_sections_and_labels): For -gdwarf-5 use .debug_loclists
159 or .debug_loclists.dwo section name for debug_loc_section.
160 (resolve_addr_in_expr): Formatting fix.
161 (index_location_lists): Likewise.
162 (dwarf2out_finish): If there are any location lists, for
163 -gsplit-dwarf -gdwarf-5 add DW_AT_loclists_base attribute. Call
164 index_location_lists only if have_location_lists. Call
165 assign_location_list_indexes for -gsplit-dwarf -gdwarf-5. Emit
166 .debug_loclists{,.dwo} section header for -gdwarf-5, for -gdwarf-5
167 -gsplit-dwarf also emit offset table.
169 * dwarf2out.c (DWARF_LARGEST_DATA_FORM_BITS): Define.
170 (size_of_die, value_format, output_die): Use
171 DW_FORM_data16 for 128-bit dw_val_class_const_double or
172 dw_val_class_wide_int.
174 * dwarf2out.c (dwarf_op): Renamed to ...
175 (dwarf_OP): ... this.
176 (convert_descriptor_to_mode, scompare_loc_descriptor,
177 minmax_loc_descriptor, typed_binop, mem_loc_descriptor,
178 implicit_ptr_descriptor, optimize_one_addr_into_implicit_ptr): Adjust
180 (dwarf_AT, dwarf_TAG): New functions.
181 (check_die): Disallow DW_AT_call_all_calls next to
182 DW_AT_GNU_all_call_sites.
183 (gen_call_site_die): Use dwarf_TAG and dwarf_AT with DWARF 5 tag
184 and attributes instead of the corresponding GNU tag and attributes.
185 (gen_subprogram_die): Likewise. Emit call site information even
186 for -gdwarf-5 -gstrict-dwarf. Replace DW_AT_GNU_defaulted with
187 DW_AT_defaulted in comment.
188 (resolve_addr): Handle DW_AT_call_origin attribute on
189 DW_TAG_call_site DIE like DW_AT_abstract_origin on
190 DW_TAG_GNU_call_site DIE.
192 * dwarf2out.c (dwarf_op): New function.
193 (size_of_loc_descr): Handle DW_OP_{implicit_pointer,entry_value},
194 DW_OP_{const,regval,deref}_type and DW_OP_{convert,reinterpret}.
195 (output_loc_operands, output_loc_operands_raw): Likewise.
196 (resolve_args_picking_1, prune_unused_types_walk_loc_descr,
197 mark_base_types, hash_loc_operands, compare_loc_operands): Likewise.
198 (resolve_addr_in_expr): Likewise. Only punt for !dwarf_strict
199 if dwarf_version < 5.
200 (convert_descriptor_to_mode): Use dwarf_op (DW_OP_xxx) instead of
202 (scompare_loc_descriptor, ucompare_loc_descriptor,
203 minmax_loc_descriptor, typed_binop, mem_loc_descriptor,
204 implicit_ptr_descriptor, optimize_one_addr_into_implicit_ptr,
205 optimize_location_into_implicit_ptr): Likewise. Only punt for
206 !dwarf_strict if dwarf_version < 5.
207 (string_cst_pool_decl): Adjust comment.
208 (non_dwarf_expression): Handle DW_OP_implicit_pointer.
210 * dwarf2out.h (enum dw_val_class): Add dw_val_class_const_implicit,
211 dw_val_class_unsigned_const_implicit and dw_val_class_file_implicit.
212 (struct dw_val_node): Add val_file_implicit field.
213 * dwarf2out.c (dw_val_equal_p, print_dw_val, attr_checksum,
214 attr_checksum_ordered, same_dw_val_p, size_of_die, value_format,
215 output_die): Handle dw_val_class_const_implicit,
216 dw_val_class_unsigned_const_implicit and dw_val_class_file_implicit.
217 (abbrev_die_table): Change into va_gc vec.
218 (abbrev_die_table_allocated, abbrev_die_table_in_use,
219 ABBREV_DIE_TABLE_INCREMENT): Remove.
220 (AT_int, AT_unsigned, AT_file): Allow dw_val_class_*_implicit.
221 (abbrev_opt_start, abbrev_usage_count, sorted_abbrev_dies): New
223 (build_abbrev_table): Adjust for abbrev_die_table being a va_gc vec.
224 If abbrev_opt_start, fill in abbrev_usage_count and abbrev_dies
226 (die_abbrev_cmp, optimize_implicit_const, optimize_abbrev_table): New
228 (output_die_abbrevs): For DW_FORM_implicit_const emit sleb128 with
230 (output_abbrev_section): Adjust for abbrev_die_table being a va_gc
232 (output_comp_unit): Initialize abbrev_opt_start if emitting the main
233 unit. Call optimize_abbrev_table.
234 (dwarf2out_init, dwarf2out_finish, dwarf2out_c_finalize): Adjust for
235 abbrev_die_table being a va_gc vec.
237 PR tree-optimization/77860
238 * tree-ssa-reassoc.c (eliminate_using_constants): Handle
239 also integral complex and vector constants.
241 * dwarf2out.c (dwarf2out_define, dwarf2out_undef, output_macinfo_op,
242 optimize_macinfo_range, save_macinfo_strings): Replace
243 DW_MACRO_GNU_* constants with corresponding DW_MACRO_* constants.
244 (output_macinfo): Likewise. Emit .debug_macro* rather than
245 .debug_macinfo* even for -gstrict-dwarf -gdwarf-5.
246 (init_sections_and_labels): Use .debug_macro* labels rather than
247 .debug_macinfo* labels even for -gstrict-dwarf -gdwarf-5.
248 (dwarf2out_finish): Use DW_AT_macros instead of DW_AT_macro_info
249 or DW_AT_GNU_macros for -gdwarf-5.
251 2016-10-31 Waldemar Brodkorb <wbx@openadk.org>
253 * config/microblaze/linux.h (UCLIBC_DYNAMIC_LINKER): Define.
255 2016-09-11 Le-Chun Wu <lcwu@google.com>
256 Mark Wielaard <mjw@redhat.com>
258 * common.opt (Wshadow=global): New option. Default for -Wshadow.
259 (Wshadow=local): New option.
260 (Wshadow-local): Hidden alias for -Wshadow=local.
261 (Wshadow=compatible-local): New option.
262 (Wshadow-compatible-local): Hidden alias for
263 -Wshadow=compatible-local.
264 * doc/invoke.texi: Document Wshadow=global, Wshadow=local and
265 Wshadow=compatible-local.
267 2016-10-31 Bin Cheng <bin.cheng@arm.com>
269 * tree-vect-slp.c (vect_get_and_check_slp_defs): New parameter SWAP.
270 Check slp defs for COND_EXPR by swapping/inverting operands if the
271 new parameter SWAP indicates so.
272 (vect_build_slp_tree_1): New parameter SWAP. Check COND_EXPR stmt
273 is isomorphic to the first stmt via swapping/inverting. Store swap
274 information in the new parameter SWAP.
275 (vect_build_slp_tree): New local array SWAP and pass it to function
276 vect_build_slp_tree_1. Cleanup result handling code for function
277 call to vect_get_and_check_slp_defs. Skip operand swapping if the
278 order of operands has been fixed as indicated by SWAP[i].
280 2016-10-31 Bin Cheng <bin.cheng@arm.com>
282 * tree-vect-data-refs.c (vect_slp_analyze_node_dependences): Skip
283 unnecessary data dependence check after visited store stmt.
285 2016-10-30 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
287 PR tree-optimization/71915
288 PR tree-optimization/71490
289 * gimple-ssa-strength-reduction.c (struct slsr_cand_d): Add
291 (find_basis_for_base_expr): Require stride types to match when
293 (alloc_cand_and_find_basis): Record the stride type.
294 (slsr_process_phi): Pass stride type to alloc_cand_and_find_basis.
295 (backtrace_base_for_ref): Pass types to legal_cast_p_1 rather than
296 the expressions having those types.
297 (slsr_process_ref): Pass stride type to alloc_cand_and_find_basis.
298 (create_mul_ssa_cand): Likewise.
299 (create_mul_imm_cand): Likewise.
300 (create_add_ssa_cand): Likewise.
301 (create_add_imm_cand): Likewise.
302 (legal_cast_p_1): Change interface to accept types rather than the
303 expressions having those types.
304 (legal_cast_p): Pass types to legal_cast_p_1.
305 (slsr_process_cast): Pass stride type to
306 alloc_cand_and_find_basis.
307 (slsr_process_copy): Likewise.
308 (dump_candidate): Display stride type when a cast exists.
309 (create_add_on_incoming_edge): Introduce a cast when necessary for
311 (analyze_increments): Change the code checking for invalid casts
312 to rely on the stride type, and update the documentation and
313 example. Change the code checking for pointer multiplies to rely
315 (insert_initializers): Introduce a cast when necessary for the
316 stride type. Use the stride type for the type of the initializer.
318 2016-10-30 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
320 * config/arm/arm.c (arm_const_not_ok_for_debug_p): Use VAR_P.
322 2016-10-29 Jakub Jelinek <jakub@redhat.com>
324 PR rtl-optimization/77919
325 * expr.c (expand_expr_real_1) <normal_inner_ref>: Only avoid forcing
326 into memory if both modes are complex and their inner modes have the
327 same precision. If the two modes are different complex modes, convert
328 each part separately and generate a new CONCAT.
330 2016-10-29 John David Anglin <danglin@gcc.gnu.org>
332 * config/pa/pa64-hpux.h (FINI_SECTION_ASM_OP): Define to null string.
334 2016-10-29 Jakub Jelinek <jakub@redhat.com>
337 * gimple-ssa-store-merging.c
338 (imm_store_chain_info::output_merged_store): Use build_aligned_type
339 instead of SET_TYPE_ALIGN on shared integral type.
341 2016-10-29 John David Anglin <danglin@gcc.gnu.org>
343 * config/pa/pa.h (BIGGEST_ALIGNMENT): Adjust comment.
344 (MALLOC_ABI_ALIGNMENT): Define to 128 on all targets except SOM.
347 2016-10-28 Jeff Law <law@redhat.com>
349 * config/vax/vax.h (REGNO_REG_CLASS): Access the REGNO argument.
350 * config/spu/spu.h (REGNO_REG_CLASS): Likewise.
352 2016-10-28 Eric Botcazou <ebotcazou@adacore.com>
354 * doc/sourcebuild.texi (Ada Tests): Remove mention of gcc chapter.
356 2016-10-28 Eric Botcazou <ebotcazou@adacore.com>
358 * target.def (min_arithmetic_precision): New hook.
359 * doc/tm.texi.in (Misc): Add TARGET_MIN_ARITHMETIC_PRECISION.
360 * doc/tm.texi: Regenerate.
361 * internal-fn.c (expand_arith_overflow): Adjust handling of target
362 dependent support by means of TARGET_MIN_ARITHMETIC_PRECISION.
363 * targhooks.c (default_min_arithmetic_precision): New function.
364 * targhooks.h (default_min_arithmetic_precision): Declare.
365 * config/sparc/sparc.c (TARGET_MIN_ARITHMETIC_PRECISION): Define.
366 (sparc_min_arithmetic_precision): New function.
368 2016-10-28 Segher Boessenkool <segher@kernel.crashing.org>
371 * combine.c (change_zero_ext): Handle zero_ext of hard registers.
372 Swap commutative operands in new RTL if needed. Handle zero_ext
374 (recog_for_combine): Pass *pnewpat to change_zero_ext instead of
377 2016-10-28 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
378 Kugan Vivekanandarajah <kuganv@linaro.org>
379 Jim Wilson <jim.wilson@linaro.org>
381 PR tree-optimization/43721
382 * target.def: New hook expand_divmod_libfunc.
383 * doc/tm.texi.in: Add hook for TARGET_EXPAND_DIVMOD_LIBFUNC.
384 * doc/tm.texi: Regenerate.
385 * internal-fn.def: Add new entry for DIVMOD ifn.
386 * internal-fn.c (expand_DIVMOD): New.
387 * tree-ssa-math-opts.c: Include optabs-libfuncs.h, tree-eh.h,
389 (widen_mul_stats): Add new field divmod_calls_inserted.
390 (target_supports_divmod_p): New.
391 (divmod_candidate_p): Likewise.
392 (convert_to_divmod): Likewise.
393 (pass_optimize_widening_mul::execute): Call calculate_dominance_info,
394 renumber_gimple_stmt_uids at beginning of function. Call
395 convert_to_divmod and record stats for divmod.
396 * config/arm/arm.c (arm_expand_divmod_libfunc): Override hook
397 TARGET_EXPAND_DIVMOD_LIBFUNC.
398 * doc/sourcebuild.texi: Add items for arm_divmod_simode, divmod,
401 2016-10-28 Eric Botcazou <ebotcazou@adacore.com>
402 Segher Boessenkool <segher@kernel.crashing.org>
404 * dojump.c (do_jump_by_parts_greater_rtx): Invert probability when
405 swapping the arms of the branch.
406 * internal-fn.c (expand_addsub_overflow): Use a straight-line code
407 sequence for the generic signed-signed-signed case.
409 2016-10-28 Jeff Law <law@redhat.com>
411 * config/bfin/bfin.c (bfin_legitimate_address_p): Add missing
413 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Likewise.
415 2016-10-28 Segher Boessenkool <segher@kernel.crashing.org>
417 PR rtl-optimization/78029
418 * function.c (prologue_contains, epilogue_contains): New functions.
419 (record_prologue_seq, record_epilogue_seq): New functions.
420 * function.h (prologue_contains, epilogue_contains,
421 record_prologue_seq, record_epilogue_seq): New declarations.
422 * sched-deps.c (sched_analyze_insn): Make dependencies to prevent
423 mixing prologue and epilogue insns.
424 (init_deps): Initialize the new fields in struct deps_desc.
425 * sched-int.h (struct deps_desc): New fields last_prologue,
426 last_epilogue, and last_logue_was_epilogue.
427 * shrink-wrap.c (emit_common_heads_for_components): Record all
428 emitted prologue and epilogue insns.
429 (emit_common_tails_for_components): Ditto.
430 (insert_prologue_epilogue_for_components): Ditto.
432 2016-10-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
435 * Makefile.in (OBJS): Add gimple-ssa-store-merging.o.
436 * common.opt (fstore-merging): New Optimization option.
437 * opts.c (default_options_table): Add entry for
438 OPT_ftree_store_merging.
439 * fold-const.h (can_native_encode_type_p): Declare prototype.
440 * fold-const.c (can_native_encode_type_p): Define.
441 * params.def (PARAM_STORE_MERGING_ALLOW_UNALIGNED): Define.
442 (PARAM_MAX_STORES_TO_MERGE): Likewise.
443 * timevar.def (TV_GIMPLE_STORE_MERGING): New timevar.
444 * passes.def: Insert pass_tree_store_merging.
445 * tree-pass.h (make_pass_store_merging): Declare extern
447 * gimple-ssa-store-merging.c: New file.
448 * doc/invoke.texi (Optimization Options): Document
450 (--param documentation): Document store-merging-allow-unaligned
451 and max-stores-to-merge.
453 2016-10-28 Will Schmidt <will_schmidt@vnet.ibm.com>
456 * gimplify.c (gimplify_init_constructor): Move emit of constructor
457 assignment to earlier in the if/else logic.
459 2016-10-28 Richard Biener <rguenther@suse.de>
463 * fold-const.c (make_bit_field_ref): Only adjust alias set
464 when the original alias set was zero.
466 2016-10-28 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
468 * config/s390/s390.c (s390_adjust_loop_scan_osc): New function.
469 (s390_adjust_loops): New function.
470 (s390_reorg): Invoke s390_adjust_loops.
471 * config/s390/s390.md: (UNSPEC_OSC_BREAK): New constant.
472 ("osc_break"): New insn definition.
474 2016-10-28 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
476 * config/s390/s390.opt: Support alternate cpu level naming (archXX).
477 * config.gcc: Support alternate archXX cpu levels with
478 --with-arch= and --with-tune=.
479 * config/s390/linux.h: Translate new archXX cpu levels to the
480 original names when calling GAS.
481 * config/s390/tpf.h: Likewise.
482 * doc/invoke.texi: Document the alternate cpu level names.
484 2016-10-28 Jakub Jelinek <jakub@redhat.com>
486 PR rtl-optimization/77919
487 * expr.c (expand_expr_real_1) <normal_inner_ref>: Force CONCAT into
488 MEM if mode1 is not a complex mode.
490 PR rtl-optimization/78132
491 * ree.c (combine_reaching_defs): Give up if copy_needed and
492 !HARD_REGNO_MODE_OK (REGNO (src_reg), dst_mode).
494 2016-10-27 Eric Botcazou <ebotcazou@adacore.com>
496 * config/sparc/sparc.md (<*vlop:code><VL:mode>3): Remove leading '*'.
498 2016-10-27 Michael Meissner <meissner@linux.vnet.ibm.com>
500 * config/rs6000/constraints.md (wH constraint): Add new
501 constraints for allowing 32-bit integers (and eventually 8/16-bit
502 integers) into the vector registers.
503 (wI constraint): Likewise.
504 (wJ constraint): Likewise.
505 (wK constraint): Likewise.
506 * config/rs6000/rs6000-cpus.def (ISA_2_7_MASKS_SERVER): Add
507 -mvsx-small-integer as a default option for ISA 2.07
509 (POWERPC_MASKS): Likewise.
510 * config/rs6000/rs6000.opt (-mvsx-small-integer): Add new debug
511 switch to turn off small integer support in vector registers.
512 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Eliminate
513 test for -mupper-regs-di, since it is already done with the
514 reg_add[mode].scalar_in_vsx_p. Add support for the switch
516 (rs6000_debug_reg_global): Add support for wH, wI, wJ, and wK
518 (rs6000_setup_reg_addr_masks): Likewise.
519 (rs6000_init_hard_regno_mode_ok): Likewise.
520 (rs6000_option_override_internal): Add consistency checks for
522 (rs6000_secondary_reload_simple_move): SImode is a simple move if
524 (rs6000_secondary_reload): Use std::swap.
525 (rs6000_preferred_reload_class): Don't prefer FLOAT_REGS over
526 VSX_REGS for small integers in vector registers, since there is no
527 D-FORM address mode for such types.
528 (rs6000_register_move_cost): Use FIRST_FPR_REGNO instead of 32.
529 (rs6000_opt_masks): Add -mvsx-small-integer.
530 * config/rs6000/vsx.md (VSINT_84): Add SImode for small integer
532 (VSX_EXTRACT_I2): Clone VSX_EXTRACT_I, but drop V4SI since SImode
533 extracts can be done on ISA 2.07.
534 (vsx_extract_<mode>): Add support for small integers in vsx
536 (vsx_extract_<mode>_p9): Use 'v' instead of VSX_EX, since we no
537 longer support V4SImode in this pattern.
538 (vsx_extract_si): New insn to support extraction of SImode in ISA
539 2.07 using either xxextractuw or vspltw.
540 (vsx_extract_<mode>_p8): Use 'v' instead of VSX_EX, since we no
541 longer support V4SImode in this pattern.
542 * config/rs6000/rs6000.h (enum rs6000_reg_class_enum): Add wH, wI,
543 wJ, and wK constraints.
544 * config/rs6000/rs6000.md (f32_sv): Use correct instruction for
545 storing SDmode with VSX instructions.
546 (zero_extendsi<mode>2): Reorder pattern, so RLDICL comes after the
547 GPR load and before the FPR and VSX loads. Remove ??, ! from the
548 constraints. Add MFVSRWZ and XXEXTRACTUW instructions to support
549 small integers in vector registers.
550 (extendsi<mode>2): Reorder pattern, so EXTSW comes after the GPR
551 load and before the FPR and VSX loads. Remove ??, ! from the
552 constraints. Add VEXTSW2D support for small integers in vector
554 (lfiwax): Remove ! constraint. Add VEXTSW2D support for small
555 integers in vector registers.
556 (floatsi<mode>2_lfiwax): If -mvsx-small-integer issue a normal
557 move instead of using an UNSPEC.
558 (lfiwzx): Remove ! constraint. Add XXEXTRACTUW support for small
559 integers in vector registers.
560 (floatunssi<mode>2_lfiwzx): If -mvsx-small-integer issue a normal
561 move instead of using an UNSPEC.
562 (movsi_internal1): Add support for -mvsx-small-integer. Align
563 columns so that it is more readable.
564 (SImode splitter for ISA 3.0 constants): Add splitter for
565 -128..127 constants that can easily be constructed on ISA 3.0.
566 * doc/md.texi (PowerPC Constraints): Document wH, wI, wJ, and wK
569 2016-10-27 Jakub Jelinek <jakub@redhat.com>
572 * omp-simd-clone.c (simd_clone_adjust): Handle noreturn declare simd
575 2016-10-27 Aldy Hernandez <aldyh@redhat.com>
577 * builtins.c (expand_builtin_nonlocal_goto): Avoid evaluating
578 PIC_OFFSET_TABLE_REGNUM twice.
580 2016-10-27 Bin Cheng <bin.cheng@arm.com>
582 * match.pd ((convert (op:s (convert@2 @0) (convert?@3 @1)))): Add
583 support for constant operand for OP.
585 2016-10-27 Jakub Jelinek <jakub@redhat.com>
587 * dwarf2out.c (gen_member_die): Only reparent_child instead of
588 splice_child_die if child doesn't have DW_AT_specification attribute.
590 2016-10-27 Thomas Preud'homme <thomas.preudhomme@arm.com>
592 * config/arm/arm.h (TARGET_HAVE_LDREX): Define for ARMv8-M Baseline.
593 (TARGET_HAVE_LDREXBH): Likewise.
594 (TARGET_HAVE_LDACQ): Likewise.
596 2016-10-27 Thomas Preud'homme <thomas.preudhomme@arm.com>
598 * config/arm/arm.c (arm_split_atomic_op): Add function comment. Add
599 logic to to decide whether to copy over old value to register for new
601 * config/arm/sync.md: Add comments explaning why mode and code
602 attribute are not defined in iterators.md
603 (thumb1_atomic_op_str): New code attribute.
604 (thumb1_atomic_newop_str): Likewise.
605 (thumb1_atomic_fetch_op_str): Likewise.
606 (thumb1_atomic_fetch_newop_str): Likewise.
607 (thumb1_atomic_fetch_oldop_str): Likewise.
608 (atomic_exchange<mode>): Add new ARMv8-M Baseline only alternatives to
609 mirror the more restrictive constraints of the Thumb-1 insns after
610 split compared to Thumb-2 counterpart insns.
611 (atomic_<sync_optab><mode>): Likewise. Add comment to keep constraints
612 in sync with non atomic version.
613 (atomic_nand<mode>): Likewise.
614 (atomic_fetch_<sync_optab><mode>): Likewise.
615 (atomic_fetch_nand<mode>): Likewise.
616 (atomic_<sync_optab>_fetch<mode>): Likewise.
617 (atomic_nand_fetch<mode>): Likewise.
618 * config/arm/thumb1.md (thumb1_addsi3): Add comment to keep contraint
619 in sync with atomic version.
620 (thumb1_subsi3_insn): Likewise.
621 (thumb1_andsi3_insn): Likewise.
622 (thumb1_iorsi3_insn): Likewise.
623 (thumb1_xorsi3_insn): Likewise.
625 2016-10-27 Nick Clifton <nickc@redhat.com>
627 * plugin.c (register_plugin_info): Produce an error message if the
628 plugin is not found in the hash table.
630 2016-10-27 Bin Cheng <bin.cheng@arm.com>
632 * match.pd ((convert1 (minmax ((convert2 (x) c)))) -> minmax (x c)):
635 2016-10-26 Kelvin Nilsen <kelvin@gcc.gnu.org>
638 * config/rs6000/rs6000.c (spe_init_builtins): Modify loops to not
639 define builtin functions from the bdesc_spe_predicates or
640 bdesc_spe_evsel arrays if the builtin mask is not compatible with
641 the current compiler configuration.
642 (paired_init_builtins): Modify loop to not define define builtin
643 functions from the bdesc_paried_preds array if the builtin mask is
644 not compatible with the current compiler configuration.
645 (altivec_init_builtins): Modify loops to not define the
646 __builtin_altivec_stxvl function nor the builtin functions from
647 the bdesc_dst or bdesc_altivec_preds, or bdesc_abs arrays if the
648 builtin mask is not compatible with the current compiler
651 2016-10-26 Jeff Law <law@redhat.com>
653 * config/sh/sh.c (output_branch): Add missing fallthru comments.
654 (gen_shl_and): Likewise.
655 * config/sh/sh.md (movsicc): Add missing fallthru comments.
657 * config/mips/mips.c (mips16_constant_cost): Add missing
659 (mips16_build_call_stub): Increase buffer size. Adjust
662 2016-10-26 David Malcolm <dmalcolm@redhat.com>
664 * print-rtl.c (rtx_writer::print_rtx_operand_code_u): Print
665 INSN_UIDs for all insns in compact mode.
666 (rtx_writer::print_rtx): Likewise.
667 * print-rtl.h (rtx_writer::flag_compact): Update comment.
668 * rtl-tests.c (selftest::test_dumping_insns): Update expected
669 output to include INSN_UID.
670 (selftest::test_uncond_jump): Likewise.
672 2016-10-26 Pat Haugen <pthaugen@us.ibm.com>
674 * haifa-sched.c (call_used_regs_num): Rename to...
675 (call_saved_regs_num): ...this.
676 (fixed_regs_num): New variable.
677 (sched_pressure_start_bb): Subtract out fixed_regs. Scale call_saved
679 (alloc_global_sched_pressure_data): Compute call_saved and fixed regs.
681 2016-10-26 David Malcolm <dmalcolm@redhat.com>
683 * print-rtl-function.c (print_rtx_function): Rewrite in terms of
685 * print-rtl.c (outfile): Delete global.
686 (sawclose): Likewise.
688 (in_call_function_usage): Likewise.
689 (flag_compact): Likewise.
690 (flag_simple): Likewise.
691 (rtx_writer::rtx_writer): New ctor.
692 (print_rtx_operand_code_0): Convert to...
693 (rtx_writer::print_rtx_operand_code_0): ...this.
694 (print_rtx_operand_code_e): Convert to...
695 (rtx_writer::print_rtx_operand_code_e): ...this.
696 (print_rtx_operand_codes_E_and_V): Convert to...
697 (rtx_writer::print_rtx_operand_codes_E_and_V): ...this.
698 (print_rtx_operand_code_i): Convert to...
699 (rtx_writer::print_rtx_operand_code_i): ...this.
700 (print_rtx_operand_code_r): Convert to...
701 (rtx_writer::print_rtx_operand_code_r): ...this.
702 (print_rtx_operand_code_u): Convert to...
703 (rtx_writer::print_rtx_operand_code_u): ...this.
704 (print_rtx_operand): Convert to...
705 (rtx_writer::print_rtx_operand): ...this.
706 (print_rtx): Convert to...
707 (rtx_writer::print_rtx): ...this.
708 (print_inline_rtx): Rewrite in terms of class rtx_writer.
709 (debug_rtx): Likewise.
710 (print_rtl): Convert to...
711 (rtx_writer::print_rtl): ...this.
712 (print_rtl): Reimplement in terms of class rtx_writer.
713 (print_rtl_single): Rewrite in terms of class rtx_writer.
714 (print_rtl_single_with_indent): Convert to..
715 (rtx_writer::print_rtl_single_with_indent): ...this.
716 (print_simple_rtl): Rewrite in terms of class rtx_writer.
717 * print-rtl.h (flag_compact): Delete decl.
718 (class rtx_writer): New class.
719 * rtl-tests.c (selftest::assert_rtl_dump_eq): Rewrite in terms of
722 2016-10-26 Jeff Law <law@redhat.com>
724 * config/microblaze/microblaze.c (tls_mentioned_p): Avoid
727 * config/arc/arc.c (acr_print_operand): Adjust fallthru comment.
728 (check_if_valid_sleep_operand): Add missing fallthru comment.
729 (arc_register_move_cost): Increase buffer size.
730 * config/arc/arc.md (cbranch4si_scratch): Add missing fallthru
732 * config/arc/predicates.md (move_str_operand): Avoid fallthru.
734 * config/cr16/cr16.c (cr16_print_operand): Add missing fallthru
735 comment. Add gcc_unreachable for path that should never happen.
737 * config/epiphany/epiphany.c (epiphany_print_operand): Adjust
740 2016-10-26 Jakub Jelinek <jakub@redhat.com>
741 Martin Liska <mliska@suse.cz>
744 * gimplify.c (gimplify_adjust_omp_clauses_1): For all added map
745 clauses with OMP_CLAUSE_SIZE being a decl, call omp_notice_variable
746 on outer context if any.
748 2016-10-26 Jakub Jelinek <jakub@redhat.com>
750 * gen-pass-instances.awk (adjust_linenos): Increment pass_lines[p]
751 by increment rather than double it.
752 (insert_remove_pass): Strip leading whitespace from args[3]. Don't
753 emit a space before args[4].
754 (END): Don't emit a space before with_arg.
756 2016-10-26 Thomas Preud'homme <thomas.preudhomme@arm.com>
758 * config/arm/sync.md (atomic_compare_and_swap<mode>_1): Add new ARMv8-M
759 Baseline only alternatives to (i) hold store atomic success value in a
760 return register rather than a scratch register, (ii) use a low register
761 for it and to (iii) ensure the cbranchsi insn generated by the split
762 respect the constraints of Thumb-1 cbranchsi4_insn and
764 * config/arm/thumb1.md (cbranchsi4_insn): Add comment to indicate
765 constraints must match those in atomic_compare_and_swap.
766 (cbranchsi4_scratch): Likewise.
768 2016-10-26 Thomas Preud'homme <thomas.preudhomme@arm.com>
770 * config/arm/arm.c (arm_expand_compare_and_swap): Add new bdst local
771 variable. Add the new parameter to the insn generator. Set that
772 parameter to be CC flag for 32-bit targets, bval otherwise. Set the
773 return value from the negation of that parameter for Thumb-1, keeping
774 the logic unchanged otherwise except for using bdst as the destination
775 register of the compare_and_swap insn.
776 (arm_split_compare_and_swap): Add explanation about how is the value
777 returned to the function comment. Rename scratch variable to
778 neg_bval. Adapt initialization of variables holding operands to the
779 new operand numbers. Use return register to hold result of store
780 exclusive for Thumb-1, scratch register otherwise. Construct the
781 appropriate cbranch for Thumb-1 targets, keeping the logic unchanged
782 for 32-bit targets. Guard Z flag setting to restrict to 32bit targets.
783 Use gen_cbranchsi4 rather than hand-written conditional branch to loop
784 for strongly ordered compare_and_swap.
785 * config/arm/predicates.md (cc_register_operand): New predicate.
786 * config/arm/sync.md (atomic_compare_and_swap<mode>_1): Use a
787 match_operand with the new predicate to accept either the CC flag or a
788 destination register for the boolean return value, restricting it to
789 CC flag only via constraint. Adapt operand numbers accordingly.
791 2016-10-26 Jeff Law <law@redhat.com>
793 * config/fr30/fr30.c (fr30_print_operand): Adjust fallthru comment.
795 * config/frv/frv.c (comparison_string): Do not fall through after
798 * config/iq2000/iq2000.c (iq2000_function_arg): Adjust fallthru
800 (expand_one_builtin): Add missing break.
802 * config/m32c/m32c.c (encode_pattern_1): Add fallthru comment.
803 (m32c_legitimate_address_p): Likewise.
805 * config/m32r/m32r.c (m32r_print_operand): Adjust fallthru comment.
807 * config/mcore/mcore.c (mcore_gen_compare): Adjust fallthru comments.
809 * config/microblaze/microblaze.c (microblaze_function_arg): Adjust
812 * config/msp430/msp430.c (msp430_legitimate_address_p): Adjust
815 * config/nios2/nios2.c (nios2_rtx_costs): Avoid fallthru.
817 * config/rl78/rl78.c (rl78_calculate_death_notes): Add fallthru
819 (rl78_asm_ctor_dtor): Increase buffer size.
821 * config/stormy16/stormy16.c (xstormy16_asm_output_destrutor): Increase
823 (xstormy16_asm_output_constructor): Likewise.
825 * config/pa/pa.c (pa_asm_output_mi_thunk): Increase buffer
828 * config/h8300/h8300.c (h8300_print_operand): Adjust FALLTHRU
829 comment to silence warning.
831 * config/spu/spu.c (spu_sched_reorder): Add missing fallthru comment.
832 (spu_legitimate_address_p): Fix logic error and add missing fallthru
835 2016-10-26 Michael Matz <matz@suse.de>
837 PR tree-optimization/78060
838 PR tree-optimization/78061
839 PR tree-optimization/78088
840 * tree-ssa-loop-split.c (easy_exit_values): New function.
841 (tree_ssa_split_loops): Use it.
842 (compute_new_first_bound): Change order of operations,
843 fix invalid use of types.
845 2016-10-26 Georg-Johann Lay <avr@gjlay.de>
847 gen-pass-instances.awk is sensitive to the order in which
848 passes are added; passes that appear later have to be added first.
852 * config/avr/avr-passes.def: Swap order of directives for
853 gen-pass-instances.awk.
855 2016-10-25 Jeff Law <law@redhat.com>
857 * config/vax/vax.c (vad_address_cost_1): Add missing FALLTHRU comment.
858 (vax_notice_update_cc): Likewise.
860 2016-10-25 Eric Botcazou <ebotcazou@adacore.com>
862 * config.gcc (sparc*-*-solaris2*): Adjust.
863 (sparc64-*-linux*): Likewise.
864 * config/sparc/default-64.h: Rename to...
865 * config/sparc/default64.h: ...this.
866 * config/sparc/sparc.c (sparc_option_override): Replace TARGET_64BIT
868 (sparc_mangle_type): Replace !TARGET_64BIT with TARGET_ARCH32.
869 * config/sparc/sparc.h: Minor tweaks.
870 * config/sparc/sparc.md: Replace !TARGET_64BIT and !TARGET_ARCH64 with
871 TARGET_ARCH32 throughout. Minor various tweaks throughout.
873 2016-10-25 David Malcolm <dmalcolm@redhat.com>
875 * input.c (fcache::file_patch): Add comment about lifetime.
876 (selftest::cpp_reader_ptr): New class.
877 (selftest::lexer_test): Convert m_parser from cpp_reader *
878 to a cpp_reader_ptr, and move m_tempfile to after it.
879 (selftest::lexer_test::lexer_test): Update for above reordering.
880 (lexer_test::~lexer_test): Move cleanup of m_parser to
881 cpp_reader_ptr's dtor.
883 2016-10-25 David Malcolm <dmalcolm@redhat.com>
885 * toplev.c (toplev::main): Remove call to
886 location_adhoc_data_fini.
888 2016-10-25 Eric Botcazou <ebotcazou@adacore.com>
890 * tree.h (wi::fits_to_tree_p): Accept only 0 and 1 for boolean types.
891 * tree.c (int_fits_type_p): Likewise. Adjust head comment.
893 2016-10-25 David Malcolm <dmalcolm@redhat.com>
895 * ggc-tests.c (forcibly_ggc_collect): Rename to...
896 (selftest::forcibly_ggc_collect): ...this, and remove "static".
897 (test_basic_struct): Update for above renaming.
898 (test_length): Likewise.
899 (test_union): Likewise.
900 (test_finalization): Likewise.
901 (test_deletable_global): Likewise.
902 (test_inheritance): Likewise.
903 (test_chain_next): Likewise.
904 (test_user_struct): Likewise.
905 (test_tree_marking): Likewise.
906 * selftest-run-tests.c (selftest::run_tests): Call
907 selftest::forcibly_ggc_collect at the end of the selftests.
908 * selftest.h (selftest::forcibly_ggc_collect): New decl.
910 2016-10-25 Jakub Jelinek <jakub@redhat.com>
913 * optabs.def (vcondeq_optab, vec_cmpeq_optab): New optabs.
914 * optabs.c (expand_vec_cond_expr): For comparison codes
915 EQ_EXPR and NE_EXPR, attempt vcondeq_optab as fallback.
916 (expand_vec_cmp_expr): For comparison codes
917 EQ_EXPR and NE_EXPR, attempt vec_cmpeq_optab as fallback.
918 * optabs-tree.h (expand_vec_cmp_expr_p, expand_vec_cond_expr_p):
919 Add enum tree_code argument.
920 * optabs-query.h (get_vec_cmp_eq_icode, get_vcond_eq_icode): New
922 * optabs-tree.c (expand_vec_cmp_expr_p): Add CODE argument. For
923 CODE EQ_EXPR or NE_EXPR, attempt to use vec_cmpeq_optab as
925 (expand_vec_cond_expr_p): Add CODE argument. For CODE EQ_EXPR or
926 NE_EXPR, attempt to use vcondeq_optab as fallback.
927 * tree-vect-generic.c (expand_vector_comparison,
928 expand_vector_divmod, expand_vector_condition): Adjust
929 expand_vec_cmp_expr_p and expand_vec_cond_expr_p callers.
930 * tree-vect-stmts.c (vectorizable_condition,
931 vectorizable_comparison): Likewise.
932 * tree-vect-patterns.c (vect_recog_mixed_size_cond_pattern,
933 check_bool_pattern, search_type_for_mask_1): Likewise.
934 * expr.c (do_store_flag): Likewise.
935 * doc/md.texi (@code{vec_cmpeq@var{m}@var{n}},
936 @code{vcondeq@var{m}@var{n}}): Document.
937 * config/i386/sse.md (vec_cmpeqv2div2di, vcondeq<VI8F_128:mode>v2di):
940 2016-10-25 Jeff Law <law@redhat.com>
942 * config/v850/v850.c (v850_handle_data_area_attribute): Fix fallthru
944 (v850_output_aligned_bss): Add missing break.
946 * config/m68k/m68k.c (m68k_get_reloc_decoration): Add gcc_unreachable.
948 2016-10-25 Martin Liska <mliska@suse.cz>
951 * sanopt.c (imm_dom_path_with_freeing_call): Handle gasm
952 statements as they can also contain possibly a freeing call.
954 2016-10-25 H.J. Lu <hongjiu.lu@intel.com>
955 Martin Liska <mliska@suse.cz>
958 * common.opt: Mark flag_ipa_icf_variables as Optimization flag.
959 * ipa-icf.c (sem_function::get_hash): Add target optimization
962 2016-10-25 Wilco Dijkstra <wdijkstr@arm.com>
965 * config/arm/neon.md (ashldi3_neon): Add "r 0 i" and "&r r i" variants.
966 Remove partial overlap check for shift by 1.
967 (ashldi3_neon): Likewise.
969 2016-10-25 Thomas Preud'homme <thomas.preudhomme@arm.com>
971 * config/arm/constraints.md (Q constraint): Document its use for
973 (Pf constraint): New constraint for relaxed, consume or relaxed memory
975 * config/arm/sync.md (atomic_load<mode>): Add new ARMv8-M Baseline only
976 alternatives to allow any register when memory model matches Pf and
977 thus lda is used, but only low registers otherwise. Use unpredicated
978 output template for Thumb-1 targets.
979 (atomic_store<mode>): Likewise for stl.
980 (arm_load_exclusive<mode>): Add new ARMv8-M Baseline only alternative
981 whose output template does not have predication.
982 (arm_load_acquire_exclusive<mode>): Likewise.
983 (arm_load_exclusivesi): Likewise.
984 (arm_load_acquire_exclusivesi): Likewise.
985 (arm_store_release_exclusive<mode>): Likewise.
986 (arm_store_exclusive<mode>): Use unpredicated output template for
989 2016-10-25 Jakub Jelinek <jakub@redhat.com>
991 * internal-fn.def (LAUNDER): New internal function.
992 * internal-fn.c (expand_LAUNDER): New function.
994 2016-10-25 Georg-Johann Lay <avr@gjlay.de>
995 Pitchumani Sivanupandi <pitchumani.sivanupandi@microchip.com>
997 New avr target pass to work around performance loss by PR fix.
1001 * config/avr/avr.md (casesi_<mode>_sequence) [qi,hi]: New insn.
1002 (*cmp<mode>) [qi,qq,uqq,hi,hq,uhq,ha,uha]: Rename to cmp<mode>3.
1003 * config/avr/predicates.md (extend_operator): New.
1004 * config/avr/avr-passes.def (avr_pass_casesi): Register new pass.
1005 * config/avr/avr-protos.h (avr_casei_sequence_check_operands)
1006 (make_avr_pass_casesi): New prototypes.
1007 * config/avr/avr.c (print-rtl.h): Include it.
1008 (pass_data avr_pass_data_casesi): Data for new pass.
1009 (avr_pass_casesi): New class implementing rtl_opt_pass .avr-casesi.
1010 (make_avr_pass_casesi, avr_parallel_insn_from_insns)
1011 (avr_is_casesi_sequence, avr_casei_sequence_check_operands)
1012 (avr_optimize_casesi): New functions.
1014 2016-10-25 Georg-Johann Lay <avr@gjlay.de>
1015 Pitchumani Sivanupandi <pitchumani.sivanupandi@microchip.com>
1019 * config/avr/avr.md (casesi): Rewrite avoiding subregs of SI.
1021 2016-10-24 Jakub Jelinek <jakub@redhat.com>
1023 * dwarf2out.c (gen_subprogram_die): Add DW_AT_reference or
1024 DW_AT_rvalue_reference attributes.
1026 2016-10-24 Bernd Edlinger <bernd.edlinger@hotmail.de>
1028 * doc/invoke.text (Wint-in-bool-context): Update documentation.
1029 * value-prof.c (stringop_block_profile): Fix a warning.
1031 2016-10-24 Martin Sebor <msebor@redhat.com>
1034 * builtins.c (string_length): New function.
1035 (c_strlen): Use string_length. Correctly handle wide strings.
1036 * gimple-ssa-sprintf.c (target_max_value, target_size_max): New
1038 (target_int_max): Call target_max_value.
1039 (format_result::knownrange): New data member.
1040 (fmtresult::fmtresult): Define default constructor.
1041 (format_integer): Use it and set format_result::knownrange.
1042 Handle global constants.
1043 (format_floating_max): Add third argument.
1044 (format_floating): Recompute maximum value for %a for each argument.
1045 (get_string_length): Use fmtresult default ctor.
1046 (format_string): Set format_result::knownrange.
1047 (format_directive): Check format_result::knownrange.
1048 (add_bytes): Same. Correct caret placement in diagnostics.
1049 (pass_sprintf_length::compute_format_length): Set
1050 format_result::knownrange.
1051 (pass_sprintf_length::handle_gimple_call): Use target_size_max.
1053 2016-10-24 Jakub Jelinek <jakub@redhat.com>
1055 * config/i386/i386.c (ix86_in_large_data_p, ix86_expand_builtin): Use
1056 VAR_P (x) instead of TREE_CODE (x) == VAR_DECL.
1058 2016-10-24 Ximin Luo <infinity0@pwned.gg>
1061 * dwarf2out.c (file_table_relative_p): Remove.
1062 (gen_compile_unit_die, dwarf2out_early_finish): Emit DW_AT_comp_dir
1063 also for absolute paths.
1064 * doc/tm.texi: Update.
1065 * doc/tm.texi.in (SDB and DWARF) <TARGET_FORCE_AT_COMP_DIR>: Remove.
1066 * target.def (force_at_comp_dir): Remove hook.
1067 * config/darwin.h (TARGET_FORCE_AT_COMP_DIR): Remove define.
1069 2016-10-24 Richard Biener <rguenther@suse.de>
1071 * tree-vrp.c (evrp_dom_walker::before_dom_children): Ignore
1072 backedges when identifying the single predecessor to take
1073 conditional info from. Use SCEV to get at ranges for loop IVs.
1074 * lto-streamer-out.c (lto_write_mode_table): CSE inner mode to
1075 avoid false warning.
1077 2016-10-24 Georg-Johann Lay <avr@gjlay.de>
1080 * doc/extend.texi (AVR Variable Attributes) [absdata]: Document it.
1081 * config/avr/avr.c (AVR_SYMBOL_FLAG_TINY_ABSDATA): New macro.
1082 (avr_address_tiny_absdata_p): New static function.
1083 (avr_legitimate_address_p, avr_legitimize_address) [AVR_TINY]: Use
1084 it to determine validity of constant addresses.
1085 (avr_attribute_table) [absdata]: New variable attribute...
1086 (avr_handle_absdata_attribute): ...and handler.
1087 (avr_decl_absdata_p): New static function.
1088 (avr_encode_section_info) [AVR_TINY]: Use it to add flag
1089 AVR_SYMBOL_FLAG_TINY_ABSDATA to respective symbols_refs.
1090 (avr_address_cost) [AVR_TINY]: absdata addresses cost 2.
1092 2016-10-24 Richard Biener <rguenther@suse.de>
1094 PR tree-optimization/78076
1095 * tree-ssa-loop-split.c (tree_ssa_split_loops): Reset aux
1096 also on the loop tree root.
1098 2016-10-24 Jakub Jelinek <jakub@redhat.com>
1100 * config/i386/i386.c (ix86_fold_builtin): Handle
1101 IX86_BUILTIN_BEXTR{,I}{32,64}, IX86_BUILTIN_BZHI{32,64},
1102 IX86_BUILTIN_PDEP{32,64} and IX86_BUILTIN_PEXT{32,64}.
1103 (ix86_gimple_fold_builtin): Handle IX86_BUILTIN_BZHI{32,64},
1104 IX86_BUILTIN_PDEP{32,64} and IX86_BUILTIN_PEXT{32,64}.
1106 2016-10-24 Martin Liska <mliska@suse.cz>
1109 * opts.c (finish_options): Skip conditionally.
1111 2016-10-23 Martin Sebor <msebor@redhat.com>
1114 * config/rs6000/linux.h (TARGET_PRINTF_POINTER_FORMAT): Define.
1115 * config/rs6000/linux64.h (TARGET_PRINTF_POINTER_FORMAT): Likewise.
1117 2016-10-23 Eric Botcazou <ebotcazou@adacore.com>
1119 * config/sparc/sparc.md (cpu_feature): Minor tweak.
1120 (enabled): Likewise.
1121 (movsi_insn, movdi_insn_sp32, movdi_insn_sp64, movsf_insn,
1122 movdf_insn_sp32, movdf_insn_sp64, zero_extendsidi2_insn_sp64,
1123 sign_extendsidi2_insn, mov<VM32:mode>_insn, mov<VM64:mode>_insn_sp64,
1124 mov<VM64:mode>_insn_sp32, not_<code><mode>, nand<mode>_vis,
1125 <code>_not1<mode>_vi, <code>_not2<mode>_vis, one_cmpl<mode>2,
1126 fcmp<code><GCM:gcm_name>, pdistn<mode>_vis): Likewise.
1128 2016-10-23 Eric Botcazou <ebotcazou@adacore.com>
1130 * config/sparc/sparc-c.c (sparc_target_macros): Replace TARGET_64BIT
1131 with TARGET_ARCH64. Define __VIS to 0x400 if TARGET_VIS4.
1133 2016-10-21 Andrew Pinski <apinski@cavium.com>
1135 * config/aarch64/aarch64-cores.def: Rewrite so IMP and PART are
1137 * config/aarch64/driver-aarch64.c (struct aarch64_core_data): Change
1138 implementer_id to unsigned char.
1139 Change part_no to unsigned int.
1140 (AARCH64_BIG_LITTLE): New define.
1141 (INVALID_IMP): New define.
1142 (INVALID_CORE): New define.
1143 (cpu_data): Change the last element's implementer_id and part_no to
1145 (valid_bL_string_p): Rewrite to ..
1146 (valid_bL_core_p): this for integers instead of strings.
1147 (parse_field): New function.
1148 (contains_string_p): Rewrite to ...
1149 (contains_core_p): this for integers and only for the part_no.
1150 (host_detect_local_cpu): Rewrite handling of implementation and
1151 par num to be integers; simplifying the code.
1153 2016-10-21 Kugan Vivekanandarajah <kuganv@linaro.org>
1155 * ipa-prop.c (ipa_compute_jump_functions_for_edge): Create nonzero
1156 value range for pointers in more cases.
1158 2016-10-21 Wilco Dijkstra <wdijkstr@arm.com>
1160 * config/aarch64/aarch64.c (aarch64_add_constant_internal):
1161 Add extra argument to allow emitting the move immediate.
1162 Use add/sub with positive immediate.
1163 (aarch64_add_constant): Add inline function.
1164 (aarch64_add_sp): Likewise.
1165 (aarch64_sub_sp): Likewise.
1166 (aarch64_expand_prologue): Call aarch64_sub_sp.
1167 (aarch64_expand_epilogue): Call aarch64_add_sp.
1168 Decide when to leave out move.
1169 (aarch64_output_mi_thunk): Call aarch64_add_constant.
1171 2016-10-21 Wilco Dijkstra <wdijkstr@arm.com>
1173 * config/aarch64/aarch64.c (aarch64_layout_frame):
1174 Align FP callee-saves.
1176 2016-10-21 Jakub Jelinek <jakub@redhat.com>
1178 * config/i386/adxintrin.h (_subborrow_u32, _addcarry_u32,
1179 _addcarryx_u32, _subborrow_u64, _addcarry_u64, _addcarryx_u64):
1181 * config/i386/rdseedintrin.h (_rdseed16_step, _rdseed32_step,
1182 _rdseed64_step): Likewise.
1183 * config/i386/tbmintrin.h (__bextri_u32): Likewise.
1186 * config/i386/i386.c: Include fold-const-call.h, tree-vrp.h
1187 and tree-ssanames.h.
1188 (ix86_fold_builtin): Fold IX86_BUILTIN_[LT]ZCNT{16,32,64}
1189 with INTEGER_CST argument.
1190 (ix86_gimple_fold_builtin): New function.
1191 (TARGET_GIMPLE_FOLD_BUILTIN): Define.
1193 * dwarf2out.c (ranges_table): Change into vec<dw_ranges, va_gc> *.
1194 (ranges_by_label): Change into vec<dw_ranges_by_label, va_gc> *.
1195 (ranges_table_allocated, ranges_table_in_use,
1196 ranges_by_label_allocated, ranges_by_label_in_use,
1197 RANGES_TABLE_INCREMENT): Removed.
1198 (add_ranges_num): Use vec_safe_push into ranges_table.
1199 (add_ranges_by_labels): Use vec_safe_push into ranges_by_label.
1200 (output_ranges): Adjust for ranges_table and ranges_by_label
1201 conversion from arrays to vec.
1202 (add_high_low_attributes, dwarf2out_finish): Adjust for range_table
1203 conversion from arrays to vec.
1204 (dwarf2out_c_finalize): Don't clear ranges_table_allocated,
1205 ranges_table_in_use, ranges_by_label_allocated and
1206 ranges_by_label_in_use. Set ranges_by_label to NULL instead of 0.
1208 * dwarf2out.c (gen_variable_die): Emit DW_AT_const_expr attribute
1209 if needed. Re-add origin_die variable and its initialization.
1211 * gimplify.c (gimplify_bind_expr): Handle oacc_declare_returns
1212 even for -fstack-reuse=none, or for volatile vars etc.
1214 2016-10-21 David Malcolm <dmalcolm@redhat.com>
1216 * print-rtl-function.c (flag_compact): Move extern decl to...
1217 * print-rtl.h (flag_compact): ...here.
1218 * rtl-tests.c (selftests::assert_rtl_dump_eq): New function.
1219 (ASSERT_RTL_DUMP_EQ): New macro.
1220 (selftest::test_dumping_regs): New function.
1221 (selftest::test_dumping_insns): New function.
1222 (selftest::test_uncond_jump): Add uses of ASSERT_RTL_DUMP_EQ on
1224 (selftest::rtl_tests_c_tests): Call the new test functions.
1226 2016-10-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
1228 * cfgcleanup.c (merge_blocks_move_successor_nojumps): Adjust.
1229 (outgoing_edges_match): Likewise.
1230 (try_crossjump_to_edge): Likewise.
1231 * cfgrtl.c (try_redirect_by_replacing_jump): Likewise.
1232 (rtl_tidy_fallthru_edge): Likewise.
1233 * rtl.h (tablejump_p): Adjust prototype.
1234 * rtlanal.c (tablejump_p): Return the label as a rtx_insn *.
1236 2016-10-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
1238 * rtl.h (label_ref_label): New function.
1239 (set_label_ref_label): New function.
1240 (LABEL_REF_LABEL): Delete.
1241 * alias.c (rtx_equal_for_memref_p): Adjust.
1242 * cfgbuild.c (make_edges): Likewise.
1243 (purge_dead_tablejump_edges): Likewise.
1244 * cfgexpand.c (convert_debug_memory_address): Likewise.
1245 * cfgrtl.c (patch_jump_insn): Likewise.
1246 * combine.c (distribute_notes): Likewise.
1247 * cse.c (hash_rtx_cb): Likewise.
1248 (exp_equiv_p): Likewise.
1249 (fold_rtx): Likewise.
1250 (check_for_label_ref): Likewise.
1251 * cselib.c (rtx_equal_for_cselib_1): Likewise.
1252 (cselib_hash_rtx): Likewise.
1253 * emit-rtl.c (mark_label_nuses): Likewise.
1254 * explow.c (convert_memory_address_addr_space_1): Likewise.
1255 * final.c (output_asm_label): Likewise.
1256 (output_addr_const): Likewise.
1257 * gcse.c (add_label_notes): Likewise.
1258 * genconfig.c (walk_insn_part): Likewise.
1259 * genrecog.c (validate_pattern): Likewise.
1260 * ifcvt.c (cond_exec_get_condition): Likewise.
1261 (noce_emit_store_flag): Likewise.
1262 (noce_get_alt_condition): Likewise.
1263 (noce_get_condition): Likewise.
1264 * jump.c (maybe_propagate_label_ref): Likewise.
1265 (mark_jump_label_1): Likewise.
1266 (redirect_exp_1): Likewise.
1267 (rtx_renumbered_equal_p): Likewise.
1268 * lra-constraints.c (operands_match_p): Likewise.
1269 * print-rtl.c (print_value): Likewise.
1270 * reload.c (find_reloads): Likewise.
1271 * reload1.c (set_label_offsets): Likewise.
1272 * reorg.c (get_branch_condition): Likewise.
1273 * rtl-tests.c (test_uncond_jump): Likewise.
1274 * rtl.c (rtx_equal_p_cb): Likewise.
1275 (rtx_equal_p): Likewise.
1276 * rtlanal.c (reg_mentioned_p): Likewise.
1277 (rtx_referenced_p): Likewise.
1278 (get_condition): Likewise.
1279 * varasm.c (const_hash_1): Likewise.
1280 (compare_constant): Likewise.
1281 (const_rtx_hash_1): Likewise.
1282 (output_constant_pool_1): Likewise.
1284 2016-10-21 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
1287 * reload.c (find_valid_class_1): Allow regclass if atleast one
1288 regno in regclass is ok. Compute and use rclass size based on
1289 actually available regnos for mode in rclass.
1291 2016-10-21 Eric Botcazou <ebotcazou@adacore.com>
1293 * config/sparc/sparc-modes.def (CCV): New.
1295 * config/sparc/predicates.md (v_comparison_operator): New.
1296 (icc_comparison_operator): Add support for CCV/CCXV.
1297 (xcc_comparison_operator): Likewise.
1298 * config/sparc/sparc.c (output_cbranch): Likewise.
1299 (sparc_print_operand): Likewise.
1300 * config/sparc/sparc.md (UNSPEC_{ADD,SUB,NEG}V): New constants.
1301 (uaddvdi4): New expander.
1302 (addvdi4): Likewise.
1303 (uaddvdi4_sp32): New instruction.
1304 (addvdi4_sp32): Likewise.
1305 (uaddvsi4): New expander.
1306 (addvsi4): Likewise.
1307 (cmp_ccc_plus_sltu_set): New instruction.
1308 (cmp_ccv_plus): Likewise.
1309 (cmp_ccxv_plus): Likewise.
1310 (cmp_ccv_plus_set): Likewise.
1311 (cmp_ccxv_plus_set): Likewise.
1312 (cmp_ccv_plus_sltu_set): Likewise.
1313 (uaddvdi4): New expander.
1314 (subvdi4): Likewise.
1315 (usubdi4_sp32): New instruction.
1316 (subvdi4_sp32): Likewise.
1317 (usubvsi4): New expander.
1318 (subvsi4): Likewise.
1319 (cmpsi_minus_sltu_set): New instruction.
1320 (cmp_ccv_minus): Likewise.
1321 (cmp_ccxv_minus): Likewise.
1322 (cmp_ccv_minus_set): Likewise.
1323 (cmp_ccxv_minus_set): Likewise.
1324 (cmp_ccv_minus_sltu_set): Likewise.
1325 (unegvdi3): New expander.
1326 (negvdi3): Likewise.
1327 (unegdi3_sp32): New instruction.
1328 (negvdi3_sp32): Likewise.
1329 (unegvsi3): New expander.
1330 (negvsi3): Likewise.
1331 (cmp_ccc_neg_sltu_set): New instruction.
1332 (cmp_ccv_neg): Likewise.
1333 (cmp_ccxv_neg): Likewise.
1334 (cmp_ccv_neg_set): Likewise.
1335 (cmp_ccxv_neg_set): Likewise.
1336 (cmp_ccv_neg_sltu_set): Likewise.
1338 * tree-ssa-loop-split.c: Remove trailing spaces.
1339 * match.pd: Likewise.
1341 2016-10-21 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1343 PR rtl-optimization/78038
1344 * ree.c (get_defs): Return NULL if a defining insn for REG cannot
1345 be deduced to set REG through the RTL structure.
1346 (make_defs_and_copies_lists): Return false on a failing get_defs call.
1348 2016-10-21 Richard Biener <rguenther@suse.de>
1350 PR tree-optimization/78051
1351 * tree-vrp.c (evrp_dom_walker::before_dom_children): Update stmt
1352 and mark replaced if folding did something.
1354 2016-10-21 David Edelsohn <dje.gcc@gmail.com>
1356 * config/rs6000/rs6000.c (rs6000_assemble_visibility): Swap "internal"
1357 and "protected" in visibility types.
1358 (rs6000_xcoff_declare_function_name): Fix formatting.
1359 (rs6000_xcoff_declare_object_name): Fix formatting.
1361 2016-10-21 Uros Bizjak <ubizjak@gmail.com>
1363 * config/i386/i386.c (ix86_fold_builtin): Handle IX86_BUILTIN_INFQ
1364 and IX86_BUILTIN_HUGE_VALQ here ...
1365 (ix86_expand_builtin): ... not here.
1367 2016-10-20 Jakub Jelinek <jakub@redhat.com>
1369 * doc/gty.texi (for_user): Use @item next to @findex.
1371 2016-10-20 Uros Bizjak <ubizjak@gmail.com>
1374 * config/i386/bmiintrin.h (__tzcnt_u16): Call __builtin_ia32_tzcnt_u16.
1375 (__tzcnt_u32, _tzcnt_u32): Call __builtin_ia32_tzcnt_u32.
1376 (__tzcnt_u64, _tzcnt_u64): Call __builtin_ia32_tzcnt_u64.
1377 * config/i386/lzcntintrin.h (__lzcnt_u16): Call
1378 __builtin_ia32_lzcnt_u16.
1379 (__lzcnt_u32, _lzcnt_u32): Call __builtin_ia32_lzcnt_u32.
1380 (__lzcnt_u64, _lzcnt_u64): Call __builtin_ia32_lzcnt_u64.
1381 * config/i386/i386.md (UNSPEC_LZCNT, UNSPEC_TZCNT): New unspecs.
1382 (ctz<mode>2, *ctz<mode>2): Use SWI48 mode iterator.
1383 (bmi_tzcnt_<mode>): New expander.
1384 (*bmi_tzcnt_<mode>_falsedep_1): New define_insn_and_split pattern.
1385 (*bmi_tzcnt_<mode>_falsedep, *bmi_tzcnt_<mode>): New insn patterns.
1386 (clz<mode>2_lzcnt, *clz<mode>2_lzcnt): Use SWI48 mode iterator.
1387 (lzcnt_<mode>): New expander.
1388 (*lzcnt_<mode>_falsedep_1): New define_insn_and_split pattern.
1389 (*lzcnt_<mode>_falsedep, *lzcnt_<mode>): New insn patterns.
1390 * config/i386/i386-builtin-types.def (UINT_FTYPE_UINT): New.
1391 (UINT64_FTYPE_UINT64): New.
1392 * config/i386/i386-builtin.def (__builtin_clzs): Remove description.
1393 (__builtin_ia32_lzcnt_u16): New description.
1394 (__builtin_ia32_lzcnt_u32): Ditto.
1395 (__builtin_ia32_lzcnt_u64): Ditto.
1396 (__builtin_ctzs): Remove description.
1397 (__builtin_ia32_tzcnt_u16): New description.
1398 (__builtin_ia32_tzcnt_u32): Ditto.
1399 (__builtin_ia32_tzcnt_u64): Ditto.
1400 * config/i386/i386.c (ix86_expand_args_builtin): Handle
1401 UINT_FTYPE_UINT and UINT64_FTYPE_UINT64.
1403 2016-10-20 Martin Liska <mliska@suse.cz>
1406 * lto-streamer-in.c (fixup_call_stmt_edges_1): Replace value
1407 comparison with STMT_UID_NOT_IN_RANGE.
1408 (fixup_call_stmt_edges): Do not fixup edges of a thunk in
1411 2016-10-20 Eric Botcazou <ebotcazou@adacore.com>
1413 * compare-elim.c (conforming_compare): Accept UNSPECs.
1414 (find_comparison_dom_walker::before_dom_children): Deal with
1415 instructions both using and killing the flags register.
1416 (equivalent_reg_at_start): New function extracted from...
1417 (try_eliminate_compare): ...here. Use it and add support for
1418 registers and UNSPECs as second operand of the compare.
1419 * config/visium/visium-modes.def (CCV): New.
1420 * config/visium/predicates.md (visium_v_comparison_operator): New.
1421 (visium_branch_operator): Deal with CCV mode.
1422 * config/visium/visium.c (visium_select_cc_mode): Likewise.
1423 (output_cbranch): Likewise.
1424 * config/visium/visium.md (UNSPEC_{ADD,SUB,NEG}V): New constants.
1425 (uaddv<mode>4): New expander.
1426 (addv<mode>4): Likewise.
1427 (add<mode>3_insn_set_carry): New instruction.
1428 (add<mode>3_insn_set_overflow): Likewise.
1429 (addsi3_insn_set_overflow): Likewise.
1430 (usubv<mode>4): New expander.
1431 (subv<mode>4): Likewise.
1432 (sub<mode>3_insn_set_carry): New instruction.
1433 (sub<mode>3_insn_set_overflow): Likewise.
1434 (subsi3_insn_set_overflow): Likewise.
1435 (unegv<mode>3): New expander.
1436 (negv<mode>3): Likewise.
1437 (neg<mode>2_insn_set_overflow): New instruction.
1438 (addv_tst<mode>): Likewise.
1439 (subv_tst<mode>): Likewise.
1440 (negv_tst<mode>): Likewise.
1441 (cbranch<mode>4_addv_insn): New splitter and instruction.
1442 (cbranch<mode>4_subv_insn): Likewise.
1443 (cbranch<mode>4_negv_insn): Likewise.
1445 2016-10-20 Richard Biener <rguenther@suse.de>
1447 * tree-ssa-alias.c (ptrs_compare_unequal): Remove code duplication.
1448 Handle decls possibly not bound.
1449 * tree-ssa-structalias.c (get_constraint_for_ssa_var): Add
1450 nothing_id for decls that might not be bound if we are interested
1452 (get_constraint_for_component_ref): Deal with that.
1454 2016-10-20 Michael Matz <matz@suse.de>
1457 * common.opt (-fsplit-loops): New flag.
1458 * passes.def (pass_loop_split): Add.
1459 * opts.c (default_options_table): Add OPT_fsplit_loops entry at -O3.
1460 (enable_fdo_optimizations): Add loop splitting.
1461 * timevar.def (TV_LOOP_SPLIT): Add.
1462 * tree-pass.h (make_pass_loop_split): Declare.
1463 * tree-ssa-loop-manip.h (rewrite_into_loop_closed_ssa_1): Declare.
1464 * tree-ssa-loop-unswitch.c: Include tree-ssa-loop-manip.h,
1465 * tree-ssa-loop-split.c: New file.
1466 * Makefile.in (OBJS): Add tree-ssa-loop-split.o.
1467 * doc/invoke.texi (fsplit-loops): Document.
1468 * doc/passes.texi (Loop optimization): Add paragraph about loop
1471 2016-10-20 Richard Biener <rguenther@suse.de>
1473 * cgraphunit.c (analyze_functions): Set node->definition to
1474 false to signal symbol removal to debug_hooks->late_global_decl.
1475 * ipa.c (symbol_table::remove_unreachable_nodes): When not in
1476 WPA signal symbol removal to the debuginfo machinery.
1477 * dwarf2out.c (dwarf2out_late_global_decl): Instead of
1478 using early_finised to guard the we're called for symbol
1479 removal case look at the symtabs definition flag.
1480 (gen_variable_die): Remove redundant check.
1482 2016-10-20 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
1484 * config/s390/s390.md ("prefetch"): Add fallthrough comment.
1486 2016-10-20 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
1488 PR tree-optimization/53979
1489 * match.pd ((a ^ b) | a -> a | b): New pattern.
1491 2016-10-19 John David Anglin <danglin@gcc.gnu.org>
1493 * config/pa/pa64-hpux.h (PA_INIT_FRAME_DUMMY_ASM_OP): Move to
1494 config/pa/pa64-hpux-lib.h.
1495 (PA_CRTBEGIN_HACK): Likewise.
1496 (DTOR_LIST_BEGIN): Likewise.
1498 2016-10-19 Bernd Edlinger <bernd.edlinger@hotmail.de>
1500 * config/arm/arm.c (arm_emit_coreregs_64bit_shift): Clear the result
1501 register only if "in" and "out" are different registers.
1503 2016-10-19 Eric Botcazou <ebotcazou@adacore.com>
1505 * omp-low.c (pass_oacc_device_lower::gate): New method.
1506 (execute): Always call execute_oacc_device_lower.
1508 2016-10-19 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1510 PR tree-optimization/77916
1511 PR tree-optimization/77937
1512 * gimple-ssa-strength-reduction.c (analyze_increments): Remove
1514 (insert_initializers): Requirement of initializer for -1 should be
1515 based on pointer-typedness of the candidate basis.
1517 2016-10-19 Bin Cheng <bin.cheng@arm.com>
1519 PR tree-optimization/78005
1520 * tree-vect-loop-manip.c (vect_gen_prolog_loop_niters): Compute
1521 upper (included) bound for niters of prolog loop.
1522 (vect_gen_scalar_loop_niters): Change parameter VF to VFM1.
1523 Compute niters of scalar loop above which vectorized loop is
1524 preferred, as well as the upper (included) bound for the niters.
1525 (vect_do_peeling): Record niter bound for loops accordingly.
1527 2016-10-19 Thomas Schwinge <thomas@codesourcery.com>
1530 * tree-core.h (enum tree_index): Put the complex types after their
1532 * tree-streamer.c (verify_common_node_recorded): New function.
1533 (preload_common_nodes) <TREE_CODE (node) == COMPLEX_TYPE>: Use it.
1535 2016-10-19 Martin Liska <mliska@suse.cz>
1537 * cgraph.h (cgraph_edge::binds_to_current_def_p):
1538 Replace NULL with false as a return value.
1540 2016-10-19 Thomas Schwinge <thomas@codesourcery.com>
1542 PR tree-optimization/78024
1543 * omp-low.c (oacc_loop_discovery): Call clear_bb_flags before, and
1544 don't clear BB_VISITED after processing.
1546 2016-10-19 Richard Biener <rguenther@suse.de>
1548 * domwalk.c (dom_walker::walk): Use RPO order.
1550 2016-10-19 Richard Biener <rguenther@suse.de>
1552 * tree-vrp.c (evrp_dom_walker::evrp_dom_walker): Initialize
1554 (evrp_dom_walker::~evrp_dom_walker): Free it.
1555 (evrp_dom_walker::stmts_to_remove): Add.
1556 (evrp_dom_walker::before_dom_children): Mark PHIs and stmts
1557 whose output we fully propagate for removal. Propagate
1558 into BB destination PHI arguments.
1559 (execute_early_vrp): Remove queued stmts. Dump value ranges
1560 before stmt removal.
1562 2016-10-18 Aldy Hernandez <aldyh@redhat.com>
1564 * Makefile.in (OBJS): Add gimple-ssa-warn-alloca.o.
1565 * passes.def: Add two instances of pass_walloca.
1566 * tree-pass.h (make_pass_walloca): New.
1567 * gimple-ssa-warn-alloca.c: New file.
1568 * doc/invoke.texi: Document -Walloca, -Walloca-larger-than=, and
1569 -Wvla-larger-than= options.
1571 2016-10-18 Thomas Schwinge <thomas@codesourcery.com>
1573 * cfg.c (clear_bb_flags): Use FOR_ALL_BB_FN.
1574 * config/nvptx/nvptx.c (nvptx_find_sese): Likewise.
1576 2016-10-18 Kelvin Nilsen <kelvin@gcc.gnu.org>
1578 * config/rs6000/altivec.h (vec_xl_len): New macro.
1579 (vec_xst_len): New macro.
1580 (vec_cmpnez): New macro.
1581 (vec_cntlz_lsbb): New macro.
1582 (vec_cnttz_lsbb): New macro.
1583 (vec_xlx): New macro.
1584 (vec_xrx): New macro.
1585 (vec_all_nez): New C++ predicate template.
1586 (vec_any_eqz): New C++ predicate template.
1587 (vec_all_ne): Revised C++ predicate template under _ARCH_PWR9
1588 conditional compilation.
1589 (vec_any_eq): Revised C++ predicate template under _ARCH_PWR9
1590 conditional compilation.
1591 (vec_all_nez): New macro.
1592 (vec_any_eqz): New macro.
1593 (vec_all_ne): Revised macro under _ARCH_PWR9 conditional
1595 (vec_any_eq): Revised macro under _ARCH_PWR9 conditional
1597 * config/rs6000/vector.md (VI): Moved this mode iterator
1598 definition from altivec.md to vector.md.
1599 (UNSPEC_NEZ_P): New value.
1600 (vector_ne_<mode>_p): New expansion for implementation of
1601 vec_all_ne and vec_any_eq built-in functions.
1602 (vector_nez_<mode>_p): New expansion for implementation of
1603 vec_all_nez and vec_any_eqz built-in functions.
1604 (vector_ne_v2di_p): New expansion for implementation of vec_all_ne
1605 and vec_any_eq built-in function.
1606 (cr6_test_for_zero): New commentary to explain this expansion.
1607 (cr6_test_for_zero_reverse): New commentary to explain this expansion.
1608 (cr6_test_for_lt): New commentary to explain this expansion.
1609 (cr6_test_for_lt_reverse): New commentary to explain this
1611 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
1612 overloaded function prototypes for vec_all_ne, vec_all_nez,
1613 vec_any_eq, vec_any_eqz, vec_cmpnez, vec_cntlz_lsbb,
1614 vec_cnttz_lsbb, vec_xl_len, vec_xst_len, vec_xlx, and vec_xrx
1616 (altivec_resolve_overloaded_builtin): Modify the handling of
1617 ALTIVEC_BUILTIN_VEC_CMPNE to use the Power9 instructions when
1618 the compiler is configured to support TARGET_P9_VECTOR.
1619 * config/rs6000/rs6000-builtin.def (BU_ALTIVEC_P): Add commentary
1620 to explain the special processing that is given to predicate
1621 built-ins introduced using this macro.
1622 (BU_ALTIVEC_OVERLOAD_P): Add commentary to alert maintainers to
1623 the special processing given to predicate built-ins introduced
1625 (BU_VSX_P): Likewise.
1626 (BU_P8V_AV_P): Likewise.
1627 (BU_P9V_AV_P): Likewise.
1628 (BU_P9V_AV_X): New macro.
1629 (BU_P9V_64BIT_AV_X): New macro.
1630 (BU_P9V_VSX_3): New macro.
1631 (BU_P9V_OVERLOAD_P): New macro.
1632 (LXVL): New BU_P9V_64BIT_VSX_2.
1633 (VEXTUBLX): New BU_P9V_AV_2.
1634 (VEXTUBRX): Likewise.
1635 (VEXTUHLX): Likewise.
1636 (VEXTUHRX): Likewise.
1637 (VEXTUWLX): Likewise.
1638 (VEXTUWRX): Likewise.
1639 (STXVL): New BU_P9V_64BIT_AV_X.
1640 (VCLZLSBB): New BU_P9V_AV_1.
1641 (VCTZLSBB): Likewise.
1642 (CMPNEB): New BU_P9V_AV_2.
1647 (VCMPNEB_P): New BU_P9V_AV_P.
1648 (VCMPNEH_P): Likewise.
1649 (VCMPNEW_P): Likewise.
1650 (VCMPNED_P): Likewise.
1651 (VCMPNEFP_P): Likewise.
1652 (VCMPNEDP_P): Likewise.
1653 (CMPNEZB): New BU_P9V_AV_2.
1654 (CMPNEZH): Likewise.
1655 (CMPNEZW): Likewise.
1656 (VCMPNEZB_P): New BU_P9V_AV_P.
1657 (VCMPNEZH_P): Likewise.
1658 (VCMPNEZW_P): Likewise.
1659 (LXVL): New BU_P9V_OVERLOAD_2.
1660 (STXVL): New BU_P9V_OVERLOAD_3.
1661 (VEXTULX): New BU_P9V_OVERLOAD_2.
1662 (VEXTURX): Likewise.
1664 (VCMPNEZ_P): New BU_P9V_OVERLOAD_P.
1665 (VCMPNE_P): Likewise.
1666 (VCLZLSBB): New BU_P9V_OVERLOAD_1.
1667 (VCTZLSBB): Likewise.
1668 * config/rs6000/rs6000.c (altivec_expand_predicate_builtin): Add
1669 comment to explain mode used for scratch register.
1670 (altivec_expand_stxvl_builtin): New function.
1671 (altivec_expand_builtin): Add case for new constant P9V_BUILTIN_STXVL.
1672 (altivec_init_builtins): Add initialized variable
1673 void_ftype_v16qi_pvoid_long and use this type to define the
1674 built-in function __builtin_altivec_stxvl.
1675 * config/rs6000/vsx.md (UNSPEC_LXVL): New value.
1676 (UNSPEC_STXVL): New value.
1677 (UNSPEC_VCLZLSBB): New value.
1678 (UNSPEC_VCTZLSBB): New value.
1679 (UNSPEC_VEXTUBLX): New value.
1680 (UNSPEC_VEXTUHLX): New value.
1681 (UNSPEC_VEXTUWLX): New value.
1682 (UNSPEC_VEXTUBRX): New value.
1683 (UNSPEC_VEXTUHRX): New value.
1684 (UNSPEC_VEXTUWRX): New value.
1685 (UNSPEC_VCMPNEB): New value.
1686 (UNSPEC_VCMPNEZB): New value.
1687 (UNSPEC_VCMPNEH): New value.
1688 (UNSPEC_VCMPNEZH): New value.
1689 (UNSPEC_VCMPNEW): New value.
1690 (UNSPEC_VCMPNEZW): New value.
1691 (*vsx_ne_<mode>_p): New insn for vector test all not equal with
1692 vector of integer modes.
1693 (*vsx_ne_<mode>_p): New insn for vector test all not equal with
1694 vector of float or double modes.
1695 (*vector_nez_<mode>_p): New insn for vector test all not equal or
1697 (lxvl): New expand for load VSX vector with length.
1698 (*lxvl): New insn for load VSX vector with length.
1699 (stxvl): New expand for store VSX vector with length.
1700 (*stxvl): New insn for store VSX vector with length.
1701 (vcmpneb): New insn for vector of byte compare not equal.
1702 (vcmpnezb): New insn for vector of byte compare not equal or zero.
1703 (vcmpneh): New insn for vector of half word compare not equal.
1704 (vcmpnezh): New insn for vector of half word compare not equal or
1706 (vcmpnew): New insn for vector of word compare not equal.
1707 (vcmpne<VSs>): New insn for vector of float or double compare not
1709 (vcmpnezw): New insn for vector of word compare not equal or zero.
1710 (vclzlsbb): New insn for vector count leading zero
1711 least-significant bits byte.
1712 (vctzlsbb): New insn for vector count trailing zero least
1713 signficant bits byte.
1714 (vextublx): New insn for vector extract unsigned byte left
1716 (vextubrx): New insn for vector extract unsigned byte right
1718 (vextuhlx): New insn for vector extract unsigned half word left
1720 (vextuhrx): New insn for vector extract unsigned half word right
1722 (vextuwlx): New insn for vector extract unsigned word left
1724 (vextuwrx): New insn for vector extract unsigned word right
1726 * config/rs6000/rs6000.h (RS6000_BTC_CONST): Enhance comment to
1727 clarify intent of this constant.
1728 * config/rs6000/altivec.md (VI): Move this mode iterator to vsx.md.
1729 * doc/extend.texi (PowerPC Altivec Built-in Functions): Add
1730 documentation for vec_all_nez, vec_any_eqz, vec_cmpnez,
1731 vec_cntlz_lsbb, vec_cnttz_lsbb, vec_xl_len, vec_xst_len, vec_xlx,
1732 and vec_xrx functions.
1734 2016-10-18 Andrew Pinski <apinski@cavium.com>
1737 * predict.c (is_exit_with_zero_arg): New function.
1738 (tree_bb_level_predictions): Don't consider paths leading to exit(0)
1741 2016-10-18 Uros Bizjak <ubizjak@gmail.com>
1744 * config/i386/i386.c (legitimize_tls_address)
1745 <case TLS_MODEL_INITIAL_EXEC>: For TARGET_64BIT || TARGET_ANY_GNU_TLS
1746 convert dest to Pmode if different than Pmode.
1748 2016-10-18 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1750 PR tree-optimization/77916
1751 * gimple-ssa-strength-reduction.c (analyze_increments): Reinstate
1752 stopgap fix, as pointers with -1 increment are still broken.
1754 2016-10-18 David Edelsohn <dje.gcc@gmail.com>
1756 * config/rs6000/rs6000.c (rs6000_output_symbol_ref): Move storage
1757 mapping class decoration from here...
1758 (rs6000_xcoff_encode_section): ...to here.
1760 (rs6000_savres_strategy) [AIX,ELFv2]: Inline FPR save and restore
1761 if shrink-wrapping and optimizing for speed.
1763 2016-10-18 Richard Biener <rguenther@suse.de>
1765 * tree-vrp.c (evrp_dom_walker::before_dom_children): Handle
1766 not visited but non-executable predecessors. Return taken edge.
1767 Simplify conditions and refactor propagation vs. folding step.
1769 2016-10-18 Segher Boessenkool <segher@kernel.crashing.org>
1771 * config/rs6000/rs6000.c (rs6000_savres_strategy): Do not select
1772 {SAVE,REST}_MULTIPLE if shrink-wrapping separate components.
1773 (rs6000_get_separate_components): Assert we do not have those
1774 strategies selected.
1776 2016-10-18 Richard Biener <rguenther@suse.de>
1778 * tree-ssa-propagate.h (substitute_and_fold): Adjust prototype.
1779 * tree-ssa-propagate.c (ssa_prop_fini): Remove final BB_VISITED
1781 (substitute_and_fold_dom_walker): Adjust constructor.
1782 (substitute_and_fold_dom_walker::before_dom_children): Remove
1783 do_dce flag and handling (always true).
1784 (substitute_and_fold): Likewise.
1785 * tree-vrp.c (vrp_finalize): Adjust.
1786 (execute_early_vrp): Remove final BB_VISITED clearing.
1787 * tree-ssa-ccp.c (ccp_finalize): Adjust.
1788 * tree-ssa-copy.c (fini_copy_prop): Likewise.
1789 * ira.c (ira): Call clear_bb_flags.
1791 2016-10-18 Richard Biener <rguenther@suse.de>
1793 * genmatch.c (dt_operand::gen_gimple_expr): Use get_name to
1794 get at the operand to look at with TREE_OPERAND for generic
1797 2016-10-18 David Malcolm <dmalcolm@redhat.com>
1799 * genattrtab.c (attr_string): Use rtx_reader_ptr for call to
1801 (gen_attr): Use rtx_reader_ptr for lookup_enum_type call.
1802 (write_test_expr): Use rtx_reader_ptr for calls to
1804 (write_attr_value): Likewise.
1805 * genconditions.c (write_one_condition): Use rtx_reader_ptr for
1806 call to print_md_ptr_loc.
1807 (write_one_condition): Likewise for calls to print_c_condition.
1808 * genconstants.c: Include "statistics.h" and "vec.h".
1809 (main): Update for conversion to member functions.
1810 * genemit.c (emit_c_code): Use rtx_reader_ptr for
1811 call to print_md_ptr_loc.
1812 * genenums.c: Include "statistics.h" and "vec.h".
1813 (main): Update for conversion of traverse_enum_types to a method.
1814 * genmddeps.c: Include "statistics.h" and "vec.h".
1815 * genoutput.c (process_template): Use rtx_reader_ptr for call to
1817 * genpreds.c (write_predicate_subfunction): Likewise.
1818 (write_predicate_expr): Likewise for calls to print_c_condition.
1819 * genrecog.c (print_test): Likewise.
1820 * gensupport.c (process_rtx): Likewise for calls to
1821 copy_md_ptr_loc and join_c_conditions.
1822 (alter_test_for_insn): Likewise for call to join_c_conditions.
1823 (process_substs_on_one_elem): Likewise.
1824 (gen_mnemonic_setattr): Update for move of string_obstack to a
1825 field of rtx_reader.
1826 (mnemonic_htab_callback): Likewise. Fix formatting.
1827 (gen_mnemonic_attr): Likewise.
1828 * gentarget-def.c (def_target_insn): Use rtx_reader_ptr for calls
1829 to print_c_condition.
1830 * read-md.c: Include "statistics.h" and "vec.h".
1831 (string_obstack): Convert this global to field "m_string_obstack"
1832 of class rtx_reader.
1833 (ptr_locs): Likewise, as "m_ptr_locs".
1834 (ptr_loc_obstack): Likewise, as "m_ptr_loc_obstack".
1835 (joined_conditions): Likewise, as "m_joined_conditions".
1836 (joined_conditions_obstack): Likewise, as "m_joined_conditions_obstack".
1837 (md_constants): Likewise, as "m_md_constants".
1838 (enum_types): Likewise, as "m_enum_types".
1839 (set_md_ptr_loc): Convert to...
1840 (rtx_reader::set_md_ptr_loc): ...member function.
1841 (get_md_ptr_loc): Convert to...
1842 (rtx_reader::get_md_ptr_loc): ...member function.
1843 (copy_md_ptr_loc): Convert to...
1844 (rtx_reader::copy_md_ptr_loc): ...member function.
1845 (fprint_md_ptr_loc): Convert to...
1846 (rtx_reader::fprint_md_ptr_loc): ...member function.
1847 (print_md_ptr_loc): Convert to...
1848 (rtx_reader::print_md_ptr_loc): ...member function.
1849 (join_c_conditions): Convert to...
1850 (rtx_reader::join_c_conditions): ...member function.
1851 (fprint_c_condition): Convert to...
1852 (rtx_reader::fprint_c_condition): ...member function.
1853 (print_c_condition): Convert to...
1854 (rtx_reader::print_c_condition): ...member function.
1855 (read_name): Convert to...
1856 (rtx_reader::read_name): ...member function.
1857 (read_escape): Convert to...
1858 (rtx_reader::read_escape): ...member function.
1859 (read_quoted_string): Convert to...
1860 (rtx_reader::read_quoted_string): ...member function.
1861 (read_braced_string): Convert to...
1862 (rtx_reader::read_braced_string): ...member function.
1863 (read_string): Convert to...
1864 (rtx_reader::read_string): ...member function.
1865 (read_skip_construct): Convert to...
1866 (rtx_reader::read_skip_construct): ...member function.
1867 (handle_constants): Convert to...
1868 (rtx_reader::handle_constants): ...member function.
1869 (traverse_md_constants): Convert to...
1870 (rtx_reader::traverse_md_constants): ...member function.
1871 (handle_enum): Convert to...
1872 (rtx_reader::handle_enum): ...member function.
1873 (lookup_enum_type): Convert to...
1874 (rtx_reader::lookup_enum_type): ...member function.
1875 (traverse_enum_types): Convert to...
1876 (rtx_reader::traverse_enum_types): ...member function.
1877 (rtx_reader::rtx_reader): Move initializations
1878 of various former global data from rtx_reader::read_md_files to
1879 here, as fields, along with the call to unlock_std_streams.
1880 (rtx_reader::~rtx_reader): Clean up m_base_dir, and clean up
1882 (rtx_reader::read_md_files): Move initializations of various
1883 global data from here to the ctor.
1884 * read-md.h (read_name): Convert to...
1885 (rtx_reader::read_name): ...member function.
1886 (rtx_reader::read_escape): New method decl.
1887 (read_quoted_string): Convert to...
1888 (rtx_reader::read_quoted_string): ...member function.
1889 (rtx_reader::read_braced_string): New method decl.
1890 (read_string): Convert to...
1891 (rtx_reader::read_string): ...member function.
1892 (rtx_reader::read_skip_construct): New method decl.
1893 (rtx_reader::set_md_ptr_loc): New method decl.
1894 (rtx_reader::get_md_ptr_loc): New method decl.
1895 (copy_md_ptr_loc): Convert to...
1896 (rtx_reader::copy_md_ptr_loc): ...member function.
1897 (fprint_md_ptr_loc): Convert to...
1898 (rtx_reader::fprint_md_ptr_loc): ...member function.
1899 (print_md_ptr_loc): Convert to...
1900 (rtx_reader::print_md_ptr_loc): ...member function.
1901 (rtx_reader::lookup_enum_type): New method decl.
1902 (rtx_reader::traverse_enum_types): New method decl.
1903 (rtx_reader::handle_constants): New method decl.
1904 (traverse_md_constants): Convert to...
1905 (rtx_reader::traverse_md_constants): ...member function.
1906 (rtx_reader::handle_enum): New method decl.
1907 (rtx_reader::join_c_conditions): New method decl.
1908 (fprint_c_condition): Convert to...
1909 (rtx_reader::fprint_c_condition): ...member function.
1910 (print_c_condition): Convert to...
1911 (rtx_reader::print_c_condition): ...member function.
1912 (rtx_reader::apply_iterator_to_string): New method decl.
1913 (rtx_reader::copy_rtx_for_iterators): New method decl.
1914 (rtx_reader::read_conditions): New method decl.
1915 (rtx_reader::record_potential_iterator_use): New method decl.
1916 (rtx_reader::read_mapping): New method decl.
1917 (rtx_reader::read_rtx): New method decl.
1918 (rtx_reader::read_rtx_code): New method decl.
1919 (rtx_reader::read_rtx_operand): New method decl.
1920 (rtx_reader::read_nested_rtx): New method decl.
1921 (rtx_reader::read_rtx_variadic): New method decl.
1922 (rtx_reader::get_string_obstack): New method.
1923 (rtx_reader::get_md_constants): New method.
1924 (string_obstack): Convert global variable decl to...
1925 (rtx_reader::m_string_obstack): ...this new field.
1926 (rtx_reader::m_ptr_locs): New field.
1927 (rtx_reader::m_ptr_loc_obstack): New field.
1928 (rtx_reader::m_joined_conditions): New field.
1929 (rtx_reader::m_joined_conditions_obstack): New field.
1930 (rtx_reader::m_md_constants): New field.
1931 (rtx_reader::m_enum_types): New field.
1932 * read-rtl.c (apply_iterator_to_string): Convert to...
1933 (rtx_reader::apply_iterator_to_string): ...member function.
1934 (copy_rtx_for_iterators): Convert to...
1935 (rtx_reader::copy_rtx_for_iterators): ...member function.
1936 (add_condition_to_string): Use rtx_reader_ptr for
1937 calls join_c_conditions.
1938 (apply_iterators): Use rtx_reader_ptr for calls to
1939 join_c_conditions and copy_rtx_for_iterators.
1940 (read_conditions): Convert to...
1941 (rtx_reader::read_conditions): ...member function.
1942 (record_potential_iterator_use): Convert to...
1943 (rtx_reader::record_potential_iterator_use): ...member function.
1944 (read_mapping): Convert to...
1945 (rtx_reader::read_mapping): ...member function.
1946 (read_subst_mapping): Use rtx_reader_ptr for read_string call.
1947 (read_rtx): Convert to...
1948 (rtx_reader::read_rtx): ...member function.
1949 (read_rtx_code): Convert to...
1950 (rtx_reader::read_rtx_code): ...member function.
1951 (read_rtx_operand): Convert to...
1952 (rtx_reader::read_rtx_operand): ...member function. Update for move
1953 of string_obstack to a field.
1954 (read_nested_rtx): Convert to..
1955 (rtx_reader::read_nested_rtx): ...member function.
1956 (read_rtx_variadic): Convert to..
1957 (rtx_reader::read_rtx_variadic): ...member function.
1959 2016-10-18 Kugan Vivekanandarajah <kuganv@linaro.org>
1961 * tree-vrp.c (get_value_range): Check get_ptr_nonnull.
1963 2016-10-18 Kugan Vivekanandarajah <kuganv@linaro.org>
1965 * ipa-prop.c (ipa_compute_jump_functions_for_edge): Set value range
1966 for pointer type too.
1967 (ipcp_update_vr): set_ptr_nonnull for pointer.
1969 2016-10-18 Kugan Vivekanandarajah <kuganv@linaro.org>
1971 * tree-ssa-alias.h (pt_solution_singleton_or_null_p): Renamed from
1972 pt_solution_singleton_p.
1973 * tree-ssa-ccp.c (fold_builtin_alloca_with_align): Use renamed
1974 pt_solution_singleton_or_null_p from pt_solution_singleton_p.
1975 * tree-ssa-structalias.c (find_what_p_points_to): Preserve
1976 pointer nonnull computed by VRP.
1977 Also Conservatively set pt.null to 1.
1978 (pt_solution_reset): Conservatively set pt.null to 1.
1979 (pt_solution_singleton_or_null_p): Renamed from
1980 pt_solution_singleton_p.
1981 * tree-ssanames.h (set_ptr_nonnull): Declare.
1982 (get_ptr_nonnull): Likewise.
1983 * tree-ssanames.c (set_ptr_nonnull): New.
1984 (get_ptr_nonnull): Likewise.
1985 * tree-vrp.c (vrp_finalize): Set ptr that are nonnull.
1986 (evrp_dom_walker::before_dom_children): Likewise.
1988 2016-10-17 Eric Botcazou <ebotcazou@adacore.com>
1990 * config/i386/i386.h (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Move to...
1991 * config/i386/i386.c (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): ...here.
1992 * config/ia64/ia64.h (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Move to...
1993 * config/ia64/ia64.c (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): ...here.
1994 * config/rs6000/rs6000.h (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Move to.
1995 * config/rs6000/rs6000.c (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): ...here.
1996 (rs6000_option_override_internal): Clear it if ABI_AIX.
1997 * config/sparc/sparc.h (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Move to...
1998 * config/sparc/sparc.c (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): ... here.
2000 2016-10-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2002 * gimple-ssa-strength-reduction.c (record_increment): Remove
2005 2016-10-17 Eric Botcazou <ebotcazou@adacore.com>
2007 * expmed.c (expand_shift_1): Add MAY_FAIL parameter and do not assert
2008 that the result is non-zero if it is true.
2009 (maybe_expand_shift): New wrapper around expand_shift_1.
2010 (emit_store_flag): Call maybe_expand_shift in lieu of expand_shift.
2012 2016-10-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2014 PR tree-optimization/77916
2015 * gimple-ssa-strength-reduction.c (create_add_on_incoming_edge):
2016 Don't allow a MINUS_EXPR for pointer arithmetic for either known
2018 (record_increment): Increments of -1 for unknown strides just use
2019 a multiply initializer like other negative values.
2020 (analyze_increments): Remove stopgap solution for -1 increment
2021 applied to pointer arithmetic.
2023 2016-10-17 Yuri Rumyantsev <ysrumyan@gmail.com>
2025 * dominance.c (dom_info::dom_info): Add new constructor for region
2026 which is vector of basic blocks.
2027 (dom_init): New method to initialize members common for both
2029 (dom_info::dom_info): Invoke dom_init for partial initialization.
2030 (dom_info::get_idom): Add check to corner cases on basic blocks which
2032 (dom_info::calc_dfs_tree): Check M_FAKE_EXIT_EDGE instead of M_REVERSE
2033 to detect unreachable bbs.
2034 (dom_info::calc_idoms): Likewise.
2035 (compute_dom_fast_query_in_region): New function.
2036 (calculate_dominance_info_for_region): Likewise.
2037 (free_dominance_info_for_region): Likewise.
2038 * dominance.h: Add prototypes for introduced region-based functions
2039 tree-if-conv.c: (build_region): New function.
2040 (if_convertible_loop_p_1): Invoke local version of post-dominators
2041 calculation before basic block predication with subsequent freeing
2042 post-dominator info.
2043 (tree_if_conversion): Remove free of post-dominator info
2044 (pass_if_conversion::execute): Delete detection of infinite loops
2045 and fake edges to exit block since post-dominator calculation is
2046 performed per if-converted loop only.
2048 2016-10-17 Bernd Edlinger <bernd.edlinger@hotmail.de>
2051 * config/arm/arm.c (arm_emit_coreregs_64bit_shift): Clear the result
2052 register explicitly.
2053 * config/arm/arm.md (ashldi3, ashrdi3, lshrdi3): Don't FAIL if
2054 optimizing for size.
2056 2016-10-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2058 * config/aarch64/aarch64.c: Delete inclusion of
2059 cortex-a57-fma-steering.h.
2060 (aarch64_override_options): Delete call
2061 to aarch64_register_fma_steering.
2062 * config/aarch64/aarch64-protos.h (make_pass_fma_steering): Declare.
2063 * config/aarch64/cortex-a57-fma-steering.h: Delete.
2064 * config/aarch64/aarch64-passes.def: New file.
2065 * config/aarch64/cortex-a57-fma-steering.c
2066 (aarch64_register_fma_steering): Delete definition.
2067 (make_pass_fma_steering): Remove static qualifier.
2068 * config/aarch64/t-aarch64 (PASSES_EXTRA): New directive.
2069 (cortex-a57-fma-steering.o): Remove dependency on
2070 cortex-a57-fma-steering.h.
2072 2016-10-17 Eric Botcazou <ebotcazou@adacore.com>
2074 * explow.c (validize_mem): Do not modify the argument in-place.
2076 2016-10-17 Thomas Schwinge <thomas@codesourcery.com>
2078 * tree-streamer.c (record_common_node): Explicitly list expected
2081 2016-10-17 Richard Biener <rguenther@suse.de>
2083 PR tree-optimization/77988
2084 * tree-vrp.c (remove_range_assertions): Use replace_uses_by.
2086 2016-10-17 Marek Polacek <polacek@redhat.com>
2088 * Makefile.in (C_COMMON_OBJS): Add c-family/c-attribs.o.
2090 2016-10-17 Richard Biener <rguenther@suse.de>
2092 * bb-reorder.c (reorder_basic_blocks_simple): Clear BB_VISITED
2095 2016-10-17 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
2097 PR tree-optimization/71636
2098 * match.pd (x & ((1 << b) - 1) -> x & ~(~0 << b)): New pattern.
2100 2016-10-17 Richard Biener <rguenther@suse.de>
2102 * gimplify.c (gimplify_function_tree): Do not move the outer
2105 2016-10-17 Jakub Jelinek <jakub@redhat.com>
2107 * langhooks.h (struct lang_hooks_for_decls): Remove
2108 function_decl_explicit_p, function_decl_deleted_p and
2109 function_decl_defaulted hooks. Add decl_dwarf_attribute hook.
2110 * langhooks-def.h (lhd_decl_dwarf_attribute): Declare.
2111 (LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P,
2112 LANG_HOOKS_FUNCTION_DECL_DELETED_P,
2113 LANG_HOOKS_FUNCTION_DECL_DEFAULTED): Remove.
2114 (LANG_HOOKS_DECL_DWARF_ATTRIBUTE): Define.
2115 (LANG_HOOKS_DECLS): Remove LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P,
2116 LANG_HOOKS_FUNCTION_DECL_DELETED_P and
2117 LANG_HOOKS_FUNCTION_DECL_DEFAULTED. Add
2118 LANG_HOOKS_DECL_DWARF_ATTRIBUTE.
2119 * langhooks.c (lhd_decl_dwarf_attribute): New function.
2120 * dwarf2out.c (gen_subprogram_die): Use
2121 lang_hooks.decls.decl_dwarf_attribute instead of
2122 lang_hooks.decls.function_decl_*.
2124 2016-10-16 Eric Botcazou <ebotcazou@adacore.com>
2128 * common.opt (-ftrampolines): New option.
2129 * doc/invoke.texi (Code Gen Options): Document it.
2130 * doc/tm.texi.in (Trampolines): Add TARGET_CUSTOM_FUNCTION_DESCRIPTORS.
2131 * doc/tm.texi: Regenerate.
2132 * builtins.def: Add init_descriptor and adjust_descriptor.
2133 * builtins.c (expand_builtin_init_trampoline): Do not issue a warning
2134 on platforms with descriptors.
2135 (expand_builtin_init_descriptor): New function.
2136 (expand_builtin_adjust_descriptor): Likewise.
2137 (expand_builtin) <BUILT_IN_INIT_DESCRIPTOR>: New case.
2138 <BUILT_IN_ADJUST_DESCRIPTOR>: Likewise.
2139 * calls.c (prepare_call_address): Remove SIBCALLP parameter and add
2140 FLAGS parameter. Deal with indirect calls by descriptor and adjust.
2141 Set STATIC_CHAIN_REG_P on the static chain register, if any.
2142 (call_expr_flags): Set ECF_BY_DESCRIPTOR for calls by descriptor.
2143 (expand_call): Likewise. Move around call to prepare_call_address
2144 and pass all flags to it.
2145 * cfgexpand.c (expand_call_stmt): Reinstate CALL_EXPR_BY_DESCRIPTOR.
2146 * gimple.h (enum gf_mask): New GF_CALL_BY_DESCRIPTOR value.
2147 (gimple_call_set_by_descriptor): New setter.
2148 (gimple_call_by_descriptor_p): New getter.
2149 * gimple.c (gimple_build_call_from_tree): SetCALL_EXPR_BY_DESCRIPTOR.
2150 (gimple_call_flags): Deal with GF_CALL_BY_DESCRIPTOR.
2151 * langhooks.h (struct lang_hooks): Add custom_function_descriptors.
2152 * langhooks-def.h (LANG_HOOKS_CUSTOM_FUNCTION_DESCRIPTORS): Define.
2153 (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_CUSTOM_FUNCTION_DESCRIPTORS.
2154 * rtl.h (STATIC_CHAIN_REG_P): New macro.
2155 * rtlanal.c (find_first_parameter_load): Skip static chain registers.
2156 * target.def (custom_function_descriptors): New POD hook.
2157 * tree.h (FUNC_ADDR_BY_DESCRIPTOR): New flag on ADDR_EXPR.
2158 (CALL_EXPR_BY_DESCRIPTOR): New flag on CALL_EXPR.
2159 * tree-core.h (ECF_BY_DESCRIPTOR): New mask.
2160 Document FUNC_ADDR_BY_DESCRIPTOR and CALL_EXPR_BY_DESCRIPTOR.
2161 * tree.c (make_node_stat) <tcc_declaration>: Use FUNCTION_ALIGNMENT.
2162 (build_common_builtin_nodes): Initialize init_descriptor and
2164 * tree-nested.c: Include target.h.
2165 (struct nesting_info): Add 'any_descr_created' field.
2166 (get_descriptor_type): New function.
2167 (lookup_element_for_decl): New function extracted from...
2168 (create_field_for_decl): Likewise.
2169 (lookup_tramp_for_decl): ...here. Adjust.
2170 (lookup_descr_for_decl): New function.
2171 (convert_tramp_reference_op): Deal with descriptors.
2172 (build_init_call_stmt): New function extracted from...
2173 (finalize_nesting_tree_1): ...here. Adjust and deal with descriptors.
2174 * defaults.h (FUNCTION_ALIGNMENT): Define.
2175 (TRAMPOLINE_ALIGNMENT): Set to above instead of FUNCTION_BOUNDARY.
2176 * config/i386/i386.h (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Define.
2177 * config/ia64/ia64.h (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Likewise.
2178 * config/rs6000/rs6000.h (TARGET_CUSTOM_FUNCTION_DESCRIPTORS):Likewise.
2179 * config/sparc/sparc.h (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Likewise.
2181 2016-10-16 Eric Botcazou <ebotcazou@adacore.com>
2183 * config/sparc/sparc.c (sparc_expand_vector_init): Only accept literal
2184 constants in CONST_VECTORs.
2186 2016-10-15 Eric Botcazou <ebotcazou@adacore.com>
2188 * config/sparc/sparc.c (sparc_expand_vec_perm_bmask): Use a scratch
2189 register as destination of bmask.
2190 (vector_init_bshuffle): Likewise.
2191 * config/sparc/sparc.md (vec_perm_constv8qi): Likewise.
2192 (bmaskdi_vis): Enable only in 64-bit mode.
2194 2016-10-15 Segher Boessenkool <segher@kernel.crashing.org>
2196 * config/rs6000/rs6000.c (rs6000_get_separate_components): Do not
2197 make LR a separately shrink-wrapped component unless savres_strategy
2198 contains all of {SAVE,REST}_INLINE_{GPRS,FPRS,VRS}. Do not wrap
2199 GPRs unless both {SAVE,REST}_INLINE_GPRS. Do not disallow all
2200 wrapping when not both {SAVE,REST}_INLINE_GPRS.
2202 2016-10-15 Eric Botcazou <ebotcazou@adacore.com>
2204 * optabs.c (expand_parity): Fix mode mismatch, add final conversion
2205 and keep looping on failure.
2207 2016-10-14 David Malcolm <dmalcolm@redhat.com>
2209 * print-rtl-function.c (print_edge): Omit "(flags)" when none are
2211 (print_rtx_function): Update example in comment for...
2212 * print-rtl.c (print_rtx_operand_code_r): In compact mode, print
2213 non-virtual pseudos with a '%' sigil followed by the regno, offset
2214 by (LAST_VIRTUAL_REGISTER + 1), so that the first non-virtual
2215 pseudo is dumped as "%0".
2217 2016-10-14 Jakub Jelinek <jakub@redhat.com>
2220 * expr.c (expand_expr_real_1) <case CONST_DECL>: For EXPAND_WRITE
2223 2016-10-14 Eric Botcazou <ebotcazou@adacore.com>
2225 * config/sparc/sparc-passes.def: New file.
2226 * config/sparc/t-sparc (PASSES_EXTRA): Add sparc-passes.def.
2227 * config/sparc/sparc-protos.h (make_pass_work_around_errata): New.
2228 * config/sparc/sparc.c (sparc_option_override): Don't register passes.
2230 2016-10-14 Pat Haugen <pthaugen@us.ibm.com>
2232 * loop-unroll.c (unroll_loop_runtime_iterations): Condition initial
2233 loop peel to loops with exit test at the beginning.
2235 2016-10-14 Pat Haugen <pthaugen@us.ibm.com>
2237 PR rtl-optimization/68212
2238 * cfgloopmanip.c (duplicate_loop_to_header_edge): Use preheader edge
2239 frequency when computing scale factor for peeled copies.
2240 * loop-unroll.c (unroll_loop_runtime_iterations): Fix freq/count
2241 values for switch/peel blocks/edges.
2243 2016-10-14 Pedro Alves <palves@redhat.com>
2245 * coretypes.h (OVERRIDE, FINAL): Delete, moved to include/ansidecl.h.
2247 2016-10-14 Catherine Moore <clm@codesourcery.com>
2249 * gcc/config/mips/mips.c (mips_prepare_pch_save): Initialize
2250 micromips_globals to zero.
2252 2016-10-14 Richard Biener <rguenther@suse.de>
2254 PR tree-optimization/77979
2255 * tree-vrp.c (compare_name_with_value): Handle released SSA names
2256 in the equivalency sets.
2257 (compare_names): Likewise.
2259 2016-10-14 Martin Liska <mliska@suse.cz>
2261 * builtins.h(target_char_cst_p): Declare the function.
2262 * builtins.c (fold_builtin_memchr): Remove.
2263 (target_char_cst_p): Move the function from gimple-fold.c.
2264 (fold_builtin_3): Do not call the function.
2265 * gimple-fold.c (gimple_fold_builtin_memchr): New function.
2266 (gimple_fold_builtin): Call the function.
2267 * fold-const-call.c (fold_const_call_1): Handle CFN_BUILT_IN_MEMCHR.
2269 2016-10-14 Martin Liska <mliska@suse.cz>
2271 * builtins.c (fold_builtin_strcmp): Remove function.
2272 (fold_builtin_strncmp): Likewise.
2273 (fold_builtin_2): Remove call of the function.
2274 (fold_builtin_3): Likewise.
2275 * fold-const-call.c (fold_const_call): Add constant folding
2276 for CFN_BUILT_IN_STRCASECMP and CFN_BUILT_IN_STRNCASECMP.
2277 * fold-const-call.h (build_cmp_result): Declare the function.
2278 * gimple-fold.c (gimple_load_first_char): New function.
2279 (gimple_fold_builtin_string_compare): Likewise.
2280 (gimple_fold_builtin): Call the function.
2282 2016-10-14 Nathan Sidwell <nathan@acm.org>
2284 * gcov-io.c (gcov_open): Deconstify 'mode'.
2286 2016-10-14 Martin Liska <mliska@suse.cz>
2288 * fold-const.c (c_getstr): Support of properly \0-terminated
2289 string constants. New argument is added.
2290 * fold-const.h: New argument is added.
2292 2016-10-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2294 * config/aarch64/aarch64.c (aarch64_print_hint_for_core_or_arch):
2296 (aarch64_print_hint_for_core): Likewise.
2297 (aarch64_print_hint_for_arch): Likewise.
2298 (aarch64_validate_march): Use it. Fix indentation in type signature.
2299 (aarch64_validate_mcpu): Use aarch64_print_hint_for_core_or_arch.
2300 (aarch64_validate_mtune): Likewise.
2301 (aarch64_handle_attr_arch): Likewise.
2302 (aarch64_handle_attr_cpu): Likewise.
2303 (aarch64_handle_attr_tune): Likewise.
2305 2016-10-14 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
2307 * optabs.def: Remove optab function gen_int_libfunc for sdivmod_optab
2310 2016-10-13 Andreas Schwab <schwab@linux-m68k.org>
2312 * config/m68k/m68k.c (m68k_option_override): Check
2313 opt_fstack_limit_symbol_arg and opt_fstack_limit_register_no
2314 instead of stack_limit_rtx.
2316 2016-10-13 Jakub Jelinek <jakub@redhat.com>
2318 * dwarf2out.c (gen_member_die): Handle inline static data member
2321 2016-10-13 Nathan Sidwell <nathan@acm.org>
2323 * gcov-io.c (gcov_open): Fix documentation. Simplify setting
2324 gcov_var.mode. Remove unnecessary fstat.
2326 2016-10-13 Segher Boessenkool <segher@kernel.crashing.org>
2329 * function.c (thread_prologue_and_epilogue_insns): Call all
2330 make_*logue_seq in the same order as traditional. Call them
2331 all a second time if shrink_wrapped_separate.
2333 2016-10-13 Marek Polacek <polacek@redhat.com>
2335 * Makefile.in (insn-attrtab.o-warn, insn-dfatab.o-warn,
2336 insn-latencytab.o-warn, insn-output.o-warn, insn-emit.o-warn): Don't
2339 2016-10-13 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2341 PR tree-optimization/77937
2342 * gimple-ssa-strength-reduction.c (analyze_increments): Set cost
2343 to infinite when we have a pointer with an increment of -1.
2345 2016-10-13 Thomas Preud'homme <thomas.preudhomme@arm.com>
2347 * coretypes.h: Move MEMMODEL_* macros and enum memmodel definition
2349 * memmodel.h: This file.
2350 * alias.c, asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c,
2351 caller-save.c, calls.c, ccmp.c, cfgbuild.c, cfgcleanup.c,
2352 cfgexpand.c, cfgloopanal.c, cfgrtl.c, cilk-common.c, combine.c,
2353 combine-stack-adj.c, common/config/aarch64/aarch64-common.c,
2354 common/config/arm/arm-common.c, common/config/bfin/bfin-common.c,
2355 common/config/c6x/c6x-common.c, common/config/i386/i386-common.c,
2356 common/config/ia64/ia64-common.c, common/config/nvptx/nvptx-common.c,
2357 compare-elim.c, config/aarch64/aarch64-builtins.c,
2358 config/aarch64/aarch64-c.c, config/aarch64/cortex-a57-fma-steering.c,
2359 config/arc/arc.c, config/arc/arc-c.c, config/arm/arm-builtins.c,
2360 config/arm/arm-c.c, config/avr/avr.c, config/avr/avr-c.c,
2361 config/avr/avr-log.c, config/bfin/bfin.c, config/c6x/c6x.c,
2362 config/cr16/cr16.c, config/cris/cris.c, config/darwin-c.c,
2363 config/darwin.c, config/epiphany/epiphany.c,
2364 config/epiphany/mode-switch-use.c,
2365 config/epiphany/resolve-sw-modes.c, config/fr30/fr30.c,
2366 config/frv/frv.c, config/ft32/ft32.c, config/h8300/h8300.c,
2367 config/i386/i386-c.c, config/i386/winnt.c, config/iq2000/iq2000.c,
2368 config/lm32/lm32.c, config/m32c/m32c.c, config/m32r/m32r.c,
2369 config/m68k/m68k.c, config/mcore/mcore.c,
2370 config/microblaze/microblaze.c, config/mmix/mmix.c,
2371 config/mn10300/mn10300.c, config/moxie/moxie.c,
2372 config/msp430/msp430.c, config/nds32/nds32-cost.c,
2373 config/nds32/nds32-intrinsic.c, config/nds32/nds32-md-auxiliary.c,
2374 config/nds32/nds32-memory-manipulation.c,
2375 config/nds32/nds32-predicates.c, config/nds32/nds32.c,
2376 config/nios2/nios2.c, config/nvptx/nvptx.c, config/pa/pa.c,
2377 config/pdp11/pdp11.c, config/rl78/rl78.c, config/rs6000/rs6000-c.c,
2378 config/rx/rx.c, config/s390/s390-c.c, config/s390/s390.c,
2379 config/sh/sh.c, config/sh/sh-c.c, config/sh/sh-mem.cc,
2380 config/sh/sh_treg_combine.cc, config/sol2.c, config/spu/spu.c,
2381 config/stormy16/stormy16.c, config/tilegx/tilegx.c,
2382 config/tilepro/tilepro.c, config/v850/v850.c, config/vax/vax.c,
2383 config/visium/visium.c, config/vms/vms-c.c, config/xtensa/xtensa.c,
2384 coverage.c, cppbuiltin.c, cprop.c, cse.c, cselib.c, dbxout.c, dce.c,
2385 df-core.c, df-problems.c, df-scan.c, dojump.c, dse.c, dwarf2asm.c,
2386 dwarf2cfi.c, dwarf2out.c, emit-rtl.c, except.c, explow.c, expmed.c,
2387 expr.c, final.c, fold-const.c, function.c, fwprop.c, gcse.c,
2388 ggc-page.c, haifa-sched.c, hsa-brig.c, hsa-gen.c, hw-doloop.c,
2389 ifcvt.c, init-regs.c, internal-fn.c, ira-build.c, ira-color.c,
2390 ira-conflicts.c, ira-costs.c, ira-emit.c, ira-lives.c, ira.c, jump.c,
2391 loop-doloop.c, loop-invariant.c, loop-iv.c, loop-unroll.c,
2392 lower-subreg.c, lra.c, lra-assigns.c, lra-coalesce.c,
2393 lra-constraints.c, lra-eliminations.c, lra-lives.c, lra-remat.c,
2394 lra-spills.c, mode-switching.c, modulo-sched.c, omp-low.c, passes.c,
2395 postreload-gcse.c, postreload.c, predict.c, print-rtl-function.c,
2396 recog.c, ree.c, reg-stack.c, regcprop.c, reginfo.c, regrename.c,
2397 reload.c, reload1.c, reorg.c, resource.c, rtl-chkp.c, rtl-tests.c,
2398 rtlanal.c, rtlhooks.c, sched-deps.c, sched-rgn.c, sdbout.c,
2399 sel-sched-ir.c, sel-sched.c, shrink-wrap.c, simplify-rtx.c,
2400 stack-ptr-mod.c, stmt.c, stor-layout.c, target-globals.c,
2401 targhooks.c, toplev.c, tree-nested.c, tree-outof-ssa.c,
2402 tree-profile.c, tree-ssa-coalesce.c, tree-ssa-ifcombine.c,
2403 tree-ssa-loop-ivopts.c, tree-ssa-loop.c, tree-ssa-reassoc.c,
2404 tree-ssa-sccvn.c, tree-vect-data-refs.c, ubsan.c, valtrack.c,
2405 var-tracking.c, varasm.c: Include memmodel.h.
2406 * genattrtab.c (write_header): Include memmodel.h in generated file.
2407 * genautomata.c (main): Likewise.
2408 * gengtype.c (open_base_files): Likewise.
2409 * genopinit.c (main): Likewise.
2410 * genconditions.c (write_header): Include memmodel.h earlier in
2412 * genemit.c (main): Likewise.
2413 * genoutput.c (output_prologue): Likewise.
2414 * genpeep.c (main): Likewise.
2415 * genpreds.c (write_insn_preds_c): Likewise.
2416 * genrecog.c (write_header): Likewise.
2417 * Makefile.in (PLUGIN_HEADERS): Include memmodel.h
2419 2016-10-13 David Malcolm <dmalcolm@redhat.com>
2421 * function-tests.c (selftest::test_expansion_to_rtl): Add "true"
2422 for new "compact" param of print_rtx_function. Check for "cinsn"
2424 * print-rtl-function.c (flag_compact): New decl.
2425 (print_rtx_function): Add param "compact" and use it to set
2426 flag_compact, adding a description of the effect to the leading
2427 comment, and updating the example output.
2428 * print-rtl.c (flag_compact): New variable.
2429 (print_rtx_operand_code_0): Omit the JUMP_LABEL reference in compact
2431 (print_rtx_operand_code_i): When printing source locations, wrap
2432 xloc.file in quotes. Don't print INSN_CODEs in compact mode.
2433 (print_rtx_operand_code_r): Don't print regnos for hard regs and
2434 virtuals in compact mode.
2435 (print_rtx_operand_code_u): Don't print insn UIDs in compact mode,
2436 apart from in LABEL_REFs.
2437 (print_rtx_operand): In case 'w', don't print in hex in compact mode.
2438 Don't print basic block ids in compact mode.
2439 (print_rtx): In compact mode, prefix the code of insns with "c",
2440 only print the INSN_UID of CODE_LABELs, and omit their LABEL_NUSES.
2441 * print-rtl.h (print_rtx_function): Add "compact" param.
2443 2016-10-13 Richard Earnshaw <rearnsha@arm.com>
2445 * arm.h (TARGET_VFP): Delete.
2446 (TARGET_VFPD32): Remove references to TARGET_VFP.
2447 (TARGET_VFP3, TARGET_VFP5): Likewise.
2448 (TARGET_VFP_SINGLE, TARGET_VFP_DOUBLE): Likewise.
2449 (TARGET_NEON_FP16): Likewise.
2450 (TARGET_FMA): Likewise.
2451 (TARGET_CRYPTO): Likewise.
2452 (TARGET_NEON): Likewise.
2453 (SECONDARY_OUTPUT_RELOAD_CLASS): Likewise.
2454 (FUNCTION_ARG_REGNO_P): Likewise.
2455 * arm.c (arm_option_check_internal): Likewise.
2456 (arm_option_override): Likewise.
2457 (use_return_insn): Likewise.
2458 (arm_function_value_regno_p): Likewise.
2459 (arm_apply_result_size): Likewise.
2460 (use_vfp_abi): Likewise.
2461 (arm_legitimate_address_outer_p): Likewise.
2462 (thumb2_legitimate_address_p): Likewise.
2463 (arm_legitimate_index_p): Likewise.
2464 (thumb2_legitimate_index_p): Likewise.
2465 (arm_legitimate_address): Likewise.
2466 (arm_get_vfp_saved_size): Likewise.
2467 (arm_emit_vfp_multi_reg_pop): Likewise.
2468 (arm_get_frame_offsets): Likewise.
2469 (arm_save_coproc_regs): Likewise.
2470 (arm_hard_regno_mode_ok): Likewise.
2471 (arm_expand_epilogue_apcs_frame): Likewise.
2472 (arm_expand_epilogue): Likewise.
2473 (arm_file_start): Likewise.
2474 (arm_conditional_register_usage): Likewise.
2475 (arm_validize_comparison): Use vfp_compare_operand directly.
2476 * arm-builtins.c (arm_init_builtins): Remove references to TARGET_VFP.
2477 (arm_expand_vfp_builtin): Use TARGET_HARD_FLOAT for detecting
2479 (arm_atomic_assign_expand_fenv): Likewise.
2480 * arm.md (divsf3): Likewise.
2481 (arm_negsi2): Likewise.
2483 (arm_movdi): Likewise.
2484 (arm_movt): Likewise.
2485 (cbranchsf4): Change predicate to vfp_compare_operand.
2486 (cbranchdf4): Change predicate to vfp_compare_operand.
2487 (cstorehf4): Change predicate to vfp_compare_operand.
2488 (cstoresf4): Change predicate to vfp_compare_operand.
2489 (cstoredf4): Change predicate to vfp_compare_operand.
2490 (vfp_pop_multiple_with_writeback): Remove references to TARGET_VFP.
2491 (movhi_insn_arch4, movhi_bytes): Likewise.
2492 * constraints.md (Dt): Likewise.
2494 * iterators.md (SDF): Likewise.
2495 * predicates.md (arm_float_compare_operand): Delete.
2496 (const_double_vcvt_power_of_two_reciprocal): Remove references to
2498 (const_double_vcvt_power_of_two): Likewise.
2499 * thumb2.md thumb2_movsi_insn): Likewise.
2500 * vfp.md (arm_movhi_vfp, thumb2_movhi_vfp): Likewise.
2501 (movhf_vfp): Likewise.
2502 (arm_movsi_vfp, thumb2_movsi_vfp): Likewise.
2503 (movdi_vfp, movdi_vfp_cortexa8): Likewise.
2504 (movsf_vfp, thumb2_movsf_vfp): Likewise.
2505 (movdf_vfp, thumb2_movdf_vfp): Likewise.
2506 (movsfcc_vfp, abssf2_vfp, negsf2_vfp, addsf3_vfp): Likewise.
2507 (subsf3_vfp, divsf3_vfp): Likewise.
2508 (mulsf3_vfp, mulsf3negsf_vfp, negmulsf3_vfp): Likewise.
2509 (mulsf3addsf_vfp, (mulsf3subsf_vfp, mulsf3negsfaddsf_vfp): Likewise.
2510 (mulsf3negsfsubsf_vfp): Likewise.
2511 (truncsisf2_vfp, fixuns_truncsfsi2, floatsisf2_vfp): Likewise.
2512 (floatunssisf2, sqrtsf2_vfp): Likewise.
2513 (movcc_vfp): Likewise.
2514 (cmpsf_split_vfp, cmpsf_trap_split_vfp): Likewise.
2515 (cmpsf_vfp, cmpsf_trap_vfp): Likewise.
2516 (push_multi_vfp): Likewise.
2517 (set_fpscr, get_fpscr): Likewise.
2518 * arm-c.c (arm_cpu_builtins): Unconditionally define __VFP_FP__.
2520 2016-10-13 Richard Earnshaw <rearnsha@arm.com>
2522 * arm.h (TARGET_VFP): Unconditionally define to 1.
2523 (arm_fpu_desc): Remove 'model' field.
2524 (TARGET_FPU_MODEL): Delete.
2525 * arm.c (all_fpus): Don't initialize the model field.
2526 (arm_can_inline_p): Don't check the FPU model.
2527 * arm-fpus.def: Remove redundant model field from all FPU
2530 2016-10-13 Richard Biener <rguenther@suse.de>
2533 * genmatch.c (struct capture): Add value_match member.
2534 (commutate): Preserve value_match.
2535 (lower_opt_convert): Likewise.
2536 (lower_cond): Likewise.
2537 (replace_id): Likewise.
2538 (struct dt_operand): Add value_match member.
2539 (decision_tree::cmp_node): Compare it.
2540 (decision_tree::insert_operand): Honor it when finding and
2541 when appending a DT_MATCH.
2542 (dt_operand::gen_match_op): Generate a type check after
2543 operand_equal_p if ! value_match for both GENERIC and GIMPLE.
2544 (parser::get_internal_capture_id): New helper.
2545 (parser::finish_match_operand): New function lowering @@<id>.
2546 (parser::parse_capture): Parse @@<id> as value-match.
2547 (parser::parse_expr): Use get_internal_capture_id.
2548 (parser::parse_simplify): Call finish_match_operand.
2549 (walk_captures): New helper.
2550 * match.pd (X - (X / Y) * Y -> X % Y): Use value-matching instead
2552 ((X /[ex] A) * A -> X): Likewise.
2553 ((X | Y) ^ X -> Y & ~ X): Handle constants properly by using
2554 convert[12] and value-matching.
2555 ((A | B) & (A | C) -> A | (B & C)): Likewise.
2556 ((X | Y) | Y -> X | Y): Likewise.
2557 ((X ^ Y) ^ Y -> X): Likewise.
2558 (A - (A & B) -> ~B & A): Likewise.
2559 ((T)(P + A) - (T)P -> (T) A): Likewise.
2560 ((T)P - (T)(P + A) -> -(T) A): Likewise.
2561 ((T)(P + A) - (T)(P + B) -> (T)A - (T)B): Likewise.
2562 * doc/match-and-simplify.texi: Amend capture section.
2564 2016-10-13 Claudiu Zissulescu <claziss@synopsys.com>
2566 * config/arc/arc.md (umul_600): Remove predicated variant.
2567 (umul64_600): Likewise.
2569 2016-10-13 Claudiu Zissulescu <claziss@synopsys.com>
2571 * config/arc/arc.h (INSN_LENGTH_ALIGNMENT): Change.
2573 2016-10-13 Bin Cheng <bin.cheng@arm.com>
2575 * tree-vect-loop.c (loop_niters_no_overflow): New func.
2576 (vect_transform_loop): Call loop_niters_no_overflow. Pass the
2577 no-overflow information to vect_do_peeling_for_loop_bound and
2578 vect_gen_vector_loop_niters.
2580 2016-10-13 Bin Cheng <bin.cheng@arm.com>
2582 * tree-predcom.c (tree_predictive_commoning_loop): Skip loop that only
2585 2016-10-13 Bin Cheng <bin.cheng@arm.com>
2587 * tree-vect-loop-manip.c (adjust_vec_debug_stmts): Don't release
2588 adjust_vec automatically.
2589 (slpeel_add_loop_guard): Remove param cond_expr_stmt_list. Rename
2590 param exit_bb to guard_to.
2591 (slpeel_checking_verify_cfg_after_peeling):
2592 (set_prologue_iterations):
2593 (create_lcssa_for_virtual_phi): New func which is factored out from
2594 slpeel_tree_peel_loop_to_edge.
2595 (slpeel_tree_peel_loop_to_edge):
2596 (iv_phi_p): New func.
2597 (vect_can_advance_ivs_p): Call iv_phi_p.
2598 (vect_update_ivs_after_vectorizer): Call iv_phi_p. Directly insert
2599 new gimple stmts in basic block.
2600 (vect_gen_niters_for_prolog_loop): Rename to...
2601 (vect_gen_prolog_loop_niters): ...Rename from. Change parameters and
2602 adjust implementation.
2603 (vect_update_inits_of_drs): Fix code style issue. Convert niters to
2604 sizetype if necessary.
2605 (vect_build_loop_niters): Move to here from tree-vect-loop.c. Change
2606 it to external function.
2607 (vect_gen_scalar_loop_niters, vect_gen_vector_loop_niters): New.
2608 (vect_gen_vector_loop_niters_mult_vf): New.
2609 (slpeel_update_phi_nodes_for_loops): New.
2610 (slpeel_update_phi_nodes_for_guard1): Reimplement.
2611 (find_guard_arg, slpeel_update_phi_nodes_for_guard2): Reimplement.
2612 (slpeel_update_phi_nodes_for_lcssa, vect_do_peeling): New.
2613 * tree-vect-loop.c (vect_build_loop_niters): Move to file
2614 tree-vect-loop-manip.c
2615 (vect_generate_tmps_on_preheader): Delete.
2616 (vect_transform_loop): Rename vectorization_factor to vf. Call
2617 vect_do_peeling instead of vect_do_peeling-* functions.
2618 * tree-vectorizer.h (vect_do_peeling): New decl.
2619 (vect_build_loop_niters, vect_gen_vector_loop_niters): New decls.
2620 (vect_do_peeling_for_loop_bound): Delete.
2621 (vect_do_peeling_for_alignment): Delete.
2623 2016-10-13 Bin Cheng <bin.cheng@arm.com>
2625 * tree-vect-loop-manip.c (slpeel_tree_duplicate_loop_to_edge_cfg): Put
2626 duplicated loop after its preheader and after the original loop.
2628 2016-10-13 Bin Cheng <bin.cheng@arm.com>
2630 * tree-vect-loop.c (vect_analyze_loop_2): Check and skip loop if it
2631 has no enough iterations for LOOP_VINFO_PEELING_FOR_GAPS.
2633 2016-10-13 Bin Cheng <bin.cheng@arm.com>
2635 * tree-vect-loop.c (vectorizable_live_operation): Support handling
2636 for live variable outside loop but not in lcssa form.
2638 2016-10-13 Bin Cheng <bin.cheng@arm.com>
2640 * cfg.c (reset_original_copy_tables): New func.
2641 * cfg.h (reset_original_copy_tables): New decl.
2643 2016-10-13 Jakub Jelinek <jakub@redhat.com>
2646 * tree.h (FALLTHROUGH_LABEL_P): Use private_flag instead of
2648 * varasm.c (default_binds_local_p_3): Formatting fix.
2650 2016-10-13 Bin Cheng <bin.cheng@arm.com>
2652 * tree-vect-loop-manip.c (slpeel_can_duplicate_loop_p): Fix code
2654 (vect_do_peeling_for_loop_bound, vect_do_peeling_for_alignment):
2655 Remove useless code.
2657 2016-10-13 Martin Liska <mliska@suse.cz>
2659 PR tree-optimization/77943
2660 * tree-ssa-tail-merge.c (merge_stmts_p): Do not merge BBs with
2661 a different EH landing pads.
2663 2016-10-13 Jakub Jelinek <jakub@redhat.com>
2666 * hooks.h (hook_tree_void_null): Declare.
2667 * hooks.c (hook_tree_void_null): New function.
2668 * langhooks.c (lhd_return_null_tree_v): Remove.
2669 * langhooks-def.h (lhd_return_null_tree_v): Remove.
2670 * cfgexpand.c (stack_protect_prologue): If guard_decl is NULL,
2671 set y to const0_rtx.
2672 * function.c (stack_protect_epilogue): Likewise.
2673 * config/tilepro/tilepro.c (TARGET_STACK_PROTECT_GUARD): Redefine
2674 if TARGET_THREAD_SSP_OFFSET is defined.
2675 * config/s390/s390.c (TARGET_STACK_PROTECT_GUARD): Likewise.
2676 * config/sparc/sparc.c (TARGET_STACK_PROTECT_GUARD): Likewise.
2677 * config/tilegx/tilegx.c (TARGET_STACK_PROTECT_GUARD): Likewise.
2678 * config/rs6000/rs6000.c (TARGET_STACK_PROTECT_GUARD): Likewise.
2679 * config/i386/i386.c (TARGET_STACK_PROTECT_GUARD): Likewise.
2680 (ix86_stack_protect_guard): New function.
2682 2016-10-13 Richard Biener <rguenther@suse.de>
2684 * dwarf2out.c (tree_add_const_value_attribute): Do not try
2685 rtl_for_decl_init during early phase.
2686 (gen_variable_die): Do not create locations during early phase.
2687 (gen_label_die): Likewise.
2688 (decls_for_scope): Do not waste time handling BLOCK_NONLOCALIZED_VARs
2691 2016-10-12 Richard Biener <rguenther@suse.de>
2693 * tree-vrp.c (evrp_dom_walker::try_find_new_range): Renamed from
2694 try_add_new_range and made to eturn new range.
2695 (evrp_dom_walker::before_dom_children): Push op1 value range before
2696 pushing op0 value range.
2698 2016-10-12 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2700 PR tree-optimization/77937
2701 * gimple-ssa-strength-reduction.c (analyze_increments): Use
2702 POINTER_TYPE_P on the candidate type to determine whether
2703 candidates in this chain require pointer arithmetic.
2705 2016-10-12 Eric Botcazou <ebotcazou@adacore.com>
2707 * config/visium/visium.c (visium_gimplify_va_arg): Emit a big-endian
2708 correction if the type is smaller than a word.
2709 (visium_select_cc_mode): Add ... fall through ... comment.
2711 2016-10-12 Segher Boessenkool <segher@kernel.crashing.org>
2713 * config/rs6000/rs6000.c (machine_function): Add new fields
2714 gpr_is_wrapped_separately and lr_is_wrapped_separately.
2715 (TARGET_SHRINK_WRAP_GET_SEPARATE_COMPONENTS,
2716 TARGET_SHRINK_WRAP_COMPONENTS_FOR_BB,
2717 TARGET_SHRINK_WRAP_DISQUALIFY_COMPONENTS,
2718 TARGET_SHRINK_WRAP_EMIT_PROLOGUE_COMPONENTS,
2719 TARGET_SHRINK_WRAP_EMIT_EPILOGUE_COMPONENTS,
2720 TARGET_SHRINK_WRAP_SET_HANDLED_COMPONENTS): Define.
2721 (rs6000_get_separate_components): New function.
2722 (rs6000_components_for_bb): New function.
2723 (rs6000_disqualify_components): New function.
2724 (rs6000_emit_prologue_components): New function.
2725 (rs6000_emit_epilogue_components): New function.
2726 (rs6000_set_handled_components): New function.
2727 (rs6000_emit_prologue): Don't emit LR save if lr_is_wrapped_separately.
2728 Don't emit GPR saves if gpr_is_wrapped_separately for that register.
2729 (restore_saved_lr): Don't restore LR if lr_is_wrapped_separately.
2730 (rs6000_emit_epilogue): Don't emit GPR restores if
2731 gpr_is_wrapped_separately for that register. Don't make a
2732 REG_CFA_RESTORE note for registers we did not restore, either.
2734 2016-10-12 Segher Boessenkool <segher@kernel.crashing.org>
2736 * function.c (thread_prologue_and_epilogue_insns): Call
2737 try_shrink_wrapping_separate. Compute the prologue_seq afterwards,
2738 if it has possibly changed. Compute the split_prologue_seq and
2739 epilogue_seq later, too.
2740 * shrink-wrap.c: #include cfgbuild.h and insn-config.h.
2741 (dump_components): New function.
2742 (struct sw): New struct.
2744 (init_separate_shrink_wrap): New function.
2745 (fini_separate_shrink_wrap): New function.
2746 (place_prologue_for_one_component): New function.
2747 (spread_components): New function.
2748 (disqualify_problematic_components): New function.
2749 (emit_common_heads_for_components): New function.
2750 (emit_common_tails_for_components): New function.
2751 (insert_prologue_epilogue_for_components): New function.
2752 (try_shrink_wrapping_separate): New function.
2753 * shrink-wrap.h: Declare try_shrink_wrapping_separate.
2755 2016-10-12 Segher Boessenkool <segher@kernel.crashing.org>
2757 * regrename.c (build_def_use): Invalidate chains that have a
2758 REG_CFA_RESTORE on some instruction.
2760 2016-10-12 Segher Boessenkool <segher@kernel.crashing.org>
2762 * dce.c (delete_unmarked_insns): Don't delete instructions with
2763 a REG_CFA_RESTORE note.
2765 2016-10-12 Segher Boessenkool <segher@kernel.crashing.org>
2767 * common.opt (-fshrink-wrap-separate): New flag.
2768 * doc/invoke.texi: Document it.
2769 * doc/tm.texi.in (Shrink-wrapping separate components): New subsection.
2770 * doc/tm.texi: Regenerate.
2771 * emit-rtl.h (struct rtl_data): New field shrink_wrapped_separate.
2772 * target.def (shrink_wrap): New hook vector.
2773 (get_separate_components, components_for_bb, disqualify_components,
2774 emit_prologue_components, emit_epilogue_components,
2775 set_handled_components): New hooks.
2777 2016-10-12 Segher Boessenkool <segher@kernel.crashing.org>
2779 * config/rs6000/rs6000.c (rs6000_return_in_memory): Warn for
2780 vector return by reference only if -Wpsabi.
2781 (rs6000_pass_by_reference): Similarly, for argument passing.
2783 2016-10-12 David Malcolm <dmalcolm@redhat.com>
2785 * function-tests.c: Include "print-rtl.h".
2786 (selftest::test_expansion_to_rtl): Call print_rtx_function on the
2787 function, and verify what is dumped.
2788 * print-rtl-function.c (print_edge): New function.
2789 (begin_any_block): New function.
2790 (end_any_block): New function.
2791 (can_have_basic_block_p): New function.
2792 (print_rtx_function): Track the basic blocks of insns in the
2793 chain, wrapping those that are within blocks within "(block)"
2794 directives. Remove the "(cfg)" directive.
2796 2016-10-12 David Malcolm <dmalcolm@redhat.com>
2798 * selftest.c (selftest::read_file): New function.
2799 (selftest::test_read_file): New function.
2800 (selftest::selftest_c_tests): Call test_read_file.
2801 * selftest.h (selftest::read_file): New decl.
2803 2016-10-12 Richard Biener <rguenther@suse.de>
2806 * cgraphunit.c (analyze_functions): Preserve cgraph nodes
2809 2016-10-12 Thomas Schwinge <thomas@codesourcery.com>
2811 * lto-streamer.c: Fix LTO_STREAMER_DEBUG build.
2813 * dwarf2out.c (dwarf2_lineno_debug_hooks): Use
2814 dwarf2out_assembly_start.
2816 * Makefile.in (SELFTEST_FLAGS): Add -nostdinc.
2818 * Makefile.in (SELFTEST_FLAGS): New variable.
2819 (s-selftest, selftest-gdb, selftest-valgrind): Use it.
2821 * vmsdbgout.c (vmsdbg_debug_hooks): Add filename parameter to
2824 2016-10-12 Georg-Johann Lay <avr@gjlay.de>
2826 * rtl.h (struct rtx_def): Comment how RTX_FLAGS will be
2827 dumped in RTL dumps.
2829 2016-10-12 Martin Liska <mliska@suse.cz>
2831 * gimple-fold.c (create_tmp_reg_or_ssa_name): New function.
2832 (gimple_fold_builtin_memory_op): Use the function.
2833 (gimple_fold_builtin_strchr): Likewise.
2834 (gimple_fold_builtin_strcat): Likewise.
2835 (gimple_build): Likewise.
2837 2016-10-12 Nathan Sidwell <nathan@acm.org>
2839 * diagnostic.c (diagnostc_report_diagnostic): Fix formatting.
2841 2016-10-12 Pierre-Marie de Rodat <derodat@adacore.com>
2843 * dwarf2out.c (int_loc_descriptor): Generate opcodes for another
2844 equivalent 32-bit constant (modulo 2**32) when that yields
2845 smaller instructions.
2846 (size_of_int_loc_descriptor): Update accordingly.
2848 2016-10-12 Pierre-Marie de Rodat <derodat@adacore.com>
2850 * dwarf2out.c (dwarf2out_early_global_decl): For nested
2851 functions, call dwarf2out_decl on the parent function first.
2853 2016-10-12 Richard Biener <rguenther@suse.de>
2855 * match.pd ((X /[ex] A) * A -> X): Remove unnecessary constraint
2858 2016-10-12 Richard Biener <rguenther@suse.de>
2860 * tree-ssa-propagate.c
2861 (substitute_and_fold_dom_walker::before_dom_children): Do not
2862 ignore ASSERT_EXPRs but only preserve them.
2863 * tree-vrp.c (remove_range_assertions): Deal with ASSERT_EXPRs
2864 that have been propagated into.
2865 (vrp_finalize): Enable DCE for substitute_and_fold.
2867 2016-10-12 Richard Biener <rguenther@suse.de>
2869 PR tree-optimization/77920
2870 * tree-vrp.c (simplify_div_or_mod_using_ranges): Simplify.
2871 (simplify_min_or_max_using_ranges): Pass in gsi and use it.
2872 (simplify_abs_using_ranges): Likewise.
2873 (simplify_conversion_using_ranges): Likewise.
2874 (simplify_stmt_using_ranges): Adjust.
2876 2016-10-12 Jakub Jelinek <jakub@redhat.com>
2878 PR tree-optimization/77929
2879 * tree-ssa-reassoc.c (optimize_range_tests_var_bound): Handle
2880 (*ops)[ranges[i].idx]->op != ranges[i].exp case.
2882 2016-10-12 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
2885 * config/rs6000/vmx.md (vsx_concat_<mode>): The mtvsrdd instruction
2886 needs a base register for arg 1.
2888 2016-10-12 Jakub Jelinek <jakub@redhat.com>
2890 * common.opt (Wimplicit-fallthrough) Turn into alias to
2891 -Wimplicit-fallthrough=3. Remove EnabledBy.
2892 (Wimplicit-fallthrough=): New option.
2893 * gimplify.c (warn_implicit_fallthrough_r): Use
2894 OPT_Wimplicit_fallthrough_ instead of OPT_Wimplicit_fallthrough.
2895 * doc/invoke.texi (-Wimplicit-fallthrough): Document as alias
2896 to -Wimplicit-fallthrough=3.
2897 (-Wimplicit-fallthrough=): Document.
2899 2016-10-11 Eric Botcazou <ebotcazou@adacore.com>
2901 * config/sparc/sparc.c (emit_scc_insn): Remove direct support for EQ
2902 and GEU in DImode if TARGET_SUBXC.
2903 * config/sparc/sparc.md (seqdi<W:mode>_zero): Remove TARGET_SUBXC.
2904 (seqdi<W:mode>_zero_subxc): Delete.
2905 (neg_seqdi<W:mode>_zero): Remove TARGET_VIS3.
2906 (neg_seqdi<W:mode>_zero_vis3): Delete.
2907 (plus_seqdi<W:mode>_zero): Likewise.
2908 (minus_seqdi<W:mode>_zero): Likewise.
2909 (plus_plus_sltu<W:mode>): Accept only register.
2910 (addx<W:mode>): Likewise.
2911 (plus_sltu<W:mode>_vis3): Likewise.
2912 (plus_plus_sltu<W:mode>_vis3): Likewise.
2913 (neg_sgeu<W:mode>_vis3): Delete.
2914 (minus_sgeu<W:mode>_vis3): Likewise.
2915 (addxc<W:mode>): Accept only registers.
2916 (neg_sltu<W:mode>_subxc): Write %%g0 instead of 0.
2917 (minus_neg_sltu<W:mode>_subxc): Accept only register.
2918 (neg_plus_sltu<W:mode>_subxc): Likewise.
2919 (minus_sltu<W:mode>_subxc): Write %%g0 instead of 0.
2920 (minus_minus_sltu<W:mode>_subxc): Accept only register.
2921 (sgeu<W:mode>_insn_subxc): Delete.
2922 (plus_sgeu<W:mode>_subxc): Likewise.
2923 (subxc<W:mode>): Accept only register.
2924 (scc splitter): Split always GEU again.
2926 2016-10-11 Jeff Law <law@redhat.com>
2928 PR tree-optimization/77424
2929 * tree-ssa-threadupdate.c (thread_through_all_blocks): Remove
2930 dead conditionals. Assert that all e->aux fields are NULL.
2932 2016-10-11 David Malcolm <dmalcolm@redhat.com>
2934 * print-rtl.c (print_rtx): Rename "i" to "idx". Split out the
2935 operand-printing "switch" statement into...
2936 (print_rtx_operand_code_0): ...this new function, ...
2937 (print_rtx_operand_code_e): ...this new function, ...
2938 (print_rtx_operand_codes_E_and_V): ...this new function, ...
2939 (print_rtx_operand_code_i): ...this new function, ...
2940 (print_rtx_operand_code_r): ...this new function, ...
2941 (print_rtx_operand_code_u): ...this new function, ...
2942 (print_rtx_operand): ...and this new function.
2944 2016-10-11 Uros Bizjak <ubizjak@gmail.com>
2946 * config/alpha/alpha-passes.def: New file.
2947 * config/alpha/t-alpha: New file.
2948 * config/alpha/alpha-protos.h (gcc::context, rtl_opt_pass): Declare.
2949 (make_pass_handle_trap_shadows): New prototype.
2950 (make_pass_align_insns): Ditto.
2951 * config/alpha/alpha.c (alpha_option_override): Don't register
2953 * config.gcc (alpha*-*-*) Add alpha/t-alpha to tmake_file.
2955 2016-10-11 Michael Meissner <meissner@linux.vnet.ibm.com>
2958 * config/rs6000/rs6000.c (rs6000_init_builtins): Only create the
2959 distinct __ibm128 IBM extended double type if long doubles are
2960 128-bits and the default format for long double is IEEE 128-bit.
2962 2016-10-11 Richard Biener <rguenther@suse.de>
2964 * dwarf2out.c (DEBUG_STR_OFFSETS_SECTION): Remove conditional.
2965 (init_sections_and_labels): Use DEBUG_DWO_STR_OFFSETS_SECTION.
2966 (verify_die): New function.
2967 (dwarf2out_finish): Call it.
2968 (output_line_info): Handle case of -gsplit-dwarf without
2969 DWARF2_ASM_LINE_DEBUG_INFO.
2971 2016-10-11 Richard Biener <rguenther@suse.de>
2974 * gimple-low.c (lower_gimple_bind): Handle arbitrary common
2975 sub-chains of BLOCK_VARS and gimple_bind_vars.
2977 2016-10-11 Venkataramanan Kumar <Venkataramanan.kumar@amd.com>
2979 * config/i386/znver1.md : Fix imov/imovx load type reservations.
2981 2016-10-11 Eric Botcazou <ebotcazou@adacore.com>
2983 * config/sparc/sparc.opt (msubxc): New option.
2984 * doc/invoke.texi (SPARC options): Document it and tidy up.
2985 * doc/tm.texi.in (Condition Codes): Adjust SPARC example.
2986 * doc/tm.texi: Regenerate.
2987 * config/sparc/sparc-modes.def (CC_NOOV): Rename into...
2989 (CCX_NOOV): Rename into...
2993 * config/sparc/predicates.m (fcc_register_operand): Simplify.
2994 (fcc0_register_operand): Likewise.
2995 (icc_register_operand): New.
2996 (icc_or_fcc_register_operand): Simplify.
2997 (nz_comparison_operator): New.
2998 (c_comparison_operator): Likewise.
2999 (noov_compare_operator): Rename into...
3000 (icc_comparison_operator): ...this. Use above predicates.
3001 (noov_compare64_operator): Rename into...
3002 (v9_comparison_operator): ...this and tidy up.
3003 (fcc_comparison_operator): New.
3004 (icc_or_fcc_comparison_operator): Likewise.
3005 (v9_register_compare_operator): Rename info...
3006 (v9_register_comparison_operator): ...this.
3007 * config/sparc/sparc.c (TARGET_FIXED_CONDITION_CODE_REGS): Define.
3008 (sparc_option_override): Remove redundant VIS masks and add MASK_SUBXC
3010 (sparc_fixed_condition_code_regs): New function.
3011 (select_cc_mode): Remove ATTRIBUTE_UNUSED. Adjust for CCNZ/CCXNZ
3012 renaming and add support for CCC/CCXC.
3013 (output_cbranch): Likewise.
3014 (sparc_print_operand): Likewise.
3015 (gen_v9_scc): Remove obsolete assertion.
3016 (emit_scc_insn): Emit RTL directly for EQ and NE. Add direct support
3017 for EQ in DImode if TARGET_SUBXC. Remove test on TARGET_VIS3 for GEU.
3018 (output_cbcond): Remove bogus handling of CC modes.
3019 (sparc_register_move_cost): Return 100 for NO_REGS.
3020 * config/sparc/sparc.md (W): New mode iterator.
3021 (length): Adjust for noov_compare64_operator renaming.
3022 (cmpsi_sne): New instruction.
3023 (cmpdi_sne): Likewise.
3024 (seqdi_special): Delete.
3025 (seqdi_special): Likewise.
3026 (snesi<P:mode>_special): Likewise.
3027 (snedi_special): Likewise.
3028 (snedi_special_vis3): Likewise.
3029 (snesi patterns): Use W iterator.
3030 (snedi patterns): Likewise. Add TARGET_SUBXC patterns.
3031 (sltu patterns): Likewise.
3032 (sgeu patterns): Likewise.
3033 (scc splitter): Do not split GEU in DImode if TARGET_SUBXC.
3034 (normal_branch): Use icc_comparison_operator predicate.
3035 (inverted_branch): Likewise.
3036 (cbcond_sp32): Use comparison_operator predicate.
3037 (cbcond_sp64): Likewise.
3038 (normal_int_branch_sp64): Adjust for renaming
3039 (inverted_int_branch_sp64): Likewise.
3040 (mov<I:mode>_cc_reg_sp64): Likewise.
3041 (movsf_cc_reg_sp6): Likewise.
3042 (movdf_cc_reg_sp64): Likewise.
3043 (movtf_cc_reg_hq_sp64): Likewise.
3044 (movtf_cc_reg_sp64): Likewise.
3045 (mov<I:mode>_cc_v9): Use icc_or_fcc_comparison_operator predicate.
3046 (movsf_cc_v9): Likewise.
3047 (movdf_cc_v9): Likewise.
3048 (movtf_cc_hq_v9): Likewise.
3049 (movtf_cc_v9): Likewise.
3050 (adddi3): Call gen_adddi3_sp32.
3051 (adddi3_insn_sp32): Rename to...
3052 (adddi3_sp32): ...this. Accept only register_operand as operand #1
3053 and use CCCmode for the carry.
3054 (addx_extend_sp32): Use CCCmode for the carry.
3055 (addx_extend_sp64): Delete.
3056 (adddi3_extend_sp32): Use CCCmode for the carry.
3057 (cmp_plus patterns): Use CCNZ/CCXNZ mode and add C variants.
3058 (subdi3): Call gen_subdi3_sp32.
3059 (subdi3_insn_sp32): Rename to...
3060 (subdi3_sp32): ...this and use CCmode for the carry.
3061 (subx_extend_sp32): Use CCCmode for the carry.
3062 (subx_extend_sp64): Delete.
3063 (subdi3_extend_sp32): Use CCmode for the carry.
3064 (cmp_minus patterns): Use CCNZ/CCXNZ mode and add C variants.
3065 (negdi3): Call gen_negdi3_sp32.
3066 (negdi3_sp32): Use CCCmode for the carry.
3067 (cmp_neg patterns): Use CCNZ/CCXNZ mode and add C variants.
3068 (cmp_nz_ashift_1): Use CCNZ mode.
3069 (cmp_nz_set_ashift_1): Likewise.
3070 (ctrapsi4): Use comparison_operator predicate.
3071 (ctrapdi4): Likewise.
3072 (trapsi_insn): Use icc_comparison_operator predicate.
3073 (trapdi_insn): Likewise.
3074 (edge8 patterns): Use CCNZmode.
3075 (edge16 patterns): Likewise.
3076 (edge32 patterns): Likewise.
3078 2016-10-11 Eric Botcazou <ebotcazou@adacore.com>
3080 * config/visium/visium-modes.def (CC_NOOV): Rename into...
3082 (CC_BTST): Rename into...
3084 * config/visium/predicates.md (real_add_operand): New.
3085 (visium_btst_operator): Rename into...
3086 (visium_equality_comparison_operator): ...this.
3087 (visium_noov_operator): Rename into...
3088 (visium_nz_comparison_operator): ...this.
3089 (visium_c_comparison_operator): New.
3090 (visium_branch_operator): Adjust and deal with all CC modes.
3091 * config/visium/visium.c (visium_adjust_cost): Adjust.
3092 (visium_split_double_add): Use the *_set_carry patterns.
3093 (visium_select_cc_mode): Add support for CCC mode and adjust.
3094 (output_cbranch): Adjust and use the carry-based operators for
3095 floating-point comparisons.
3096 * config/visium/visium.md (flags_subst_arith): Adjust.
3097 (addsi3_insn_set_carry): New instruction.
3098 (subsi3_insn_set_carry): Likewise.
3099 (negsi2_insn_set_carry): Likewise.
3101 (cmp<mode>_sne): Likewise.
3102 (cbranch<mode>4): Use ordered_comparison_operator.
3103 (cbranch<mode>4_insn): Likewise.
3104 (cbranchsi4_btst_insn): Adjust.
3106 2016-10-11 Tom de Vries <tom@codesourcery.com>
3109 * builtins.c (std_canonical_va_list_type): Remove RECORD_TYPE
3112 2016-10-11 Eric Botcazou <ebotcazou@adacore.com>
3114 * tree.h (build_complex_type): Add second parameter with default.
3115 * tree.c (build_complex_type): Add NAMED second parameter and adjust
3116 recursive call. Create a TYPE_DECL only if NAMED is true.
3117 (build_common_tree_nodes): Pass true in calls to build_complex_type.
3119 2016-10-11 Georg-Johann Lay <avr@gjlay.de>
3121 New avr-passes.def to register AVR specific passes.
3123 * config/avr/avr-passes.def: New file.
3124 * config/avr/t-avr (PASSES_EXTRA): Add avr-passes.def.
3125 * config/avr/avr-protos.h (gcc::context, rtl_opt_pass): Declare.
3126 (make_avr_pass_recompute_note): New proto.
3127 * config/avr/avr.c (make_avr_pass_recompute_notes): New function.
3128 (avr_pass_recompute_notes): Use anonymous namespace.
3129 (avr_register_passes): Remove function...
3130 (avr_option_override): ...and its call.
3132 2016-10-11 Robert Suchanek <robert.suchanek@imgtec.com>
3134 * config/mips/mips-cpus.def: Replace PTF_AVOID_BRANCHLIKELY with
3135 PTF_AVOID_BRANCHLIKELY_ALWAYS for generic architecture and with
3136 PTF_AVOID_BRANCHLIKELY_SPEED for others.
3137 (mips2, mips3, mips4): Add PTF_AVOID_BRANCHLIKELY_SIZE to tune
3139 * config/mips/mips.c (mips_option_override): Enable the branch
3140 likely depending on the tune flags and optimization level.
3141 * config/mips/mips.h (PTF_AVOID_BRANCHLIKELY): Remove.
3142 (PTF_AVOID_BRANCHLIKELY_SPEED): Define.
3143 (PTF_AVOID_BRANCHLIKELY_SIZE): Likewise.
3144 (PTF_AVOID_BRANCHLIKELY_ALWAYS): Likewise.
3146 2016-10-11 Richard Biener <rguenther@suse.de>
3148 * lto-streamer-out.c (collect_block_tree_leafs): New helper.
3149 (output_function): Properly stream the whole block tree.
3150 * lto-streamer-in.c (input_function): Likewise.
3152 2016-10-11 Marek Polacek <polacek@redhat.com>
3154 * Makefile.in (C_COMMON_OBJS): Add c-family/c-warn.o.
3156 2016-10-11 Kugan Vivekanandarajah <kuganv@linaro.org>
3158 * tree-vrp.c (evrp_dom_walker::try_add_new_range): New.
3159 (evrp_dom_walker::before_dom_children): Infer and push new value
3160 ranges for x in y < x.
3162 2016-10-10 Joseph Myers <joseph@codesourcery.com>
3165 * config/ia64/ia64.c (ia64_libgcc_floating_mode_supported_p)
3166 (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P): Remove.
3167 * config/ia64/elf.h (IA64_NO_LIBGCC_TFMODE): Likewise.
3168 * config/ia64/freebsd.h (IA64_NO_LIBGCC_TFMODE): Likewise.
3169 * config/ia64/vms.h (IA64_NO_LIBGCC_XFMODE)
3170 (IA64_NO_LIBGCC_TFMODE): Likewise.
3172 2016-10-11 Kugan Vivekanandarajah <kuganv@linaro.org>
3174 * tree-vrp.c (vrp_intersect_ranges_1): Allocate bitmap before
3177 2016-10-10 Andreas Tobler <andreast@gcc.gnu.org>
3179 * config.gcc: Add aarch64-*-freebsd* support.
3180 * config.host: Likewise.
3181 * config/aarch64/aarch64-freebsd.h: New file.
3182 * config/aarch64/t-aarch64-freebsd: Ditto.
3184 2016-10-10 Jeff Law <law@redhat.com>
3186 PR tree-optimization/71947
3187 * tree-ssa-dom.c (cprop_into_stmt): Avoid replacing A with B, then
3188 B with A within a single statement.
3190 2016-10-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
3192 PR tree-optimization/77824
3193 * gimple-ssa-strength-reduction.c (stmt_cost): Explicitly return
3194 zero cost for copies.
3195 (find_candidates_dom_walker::before_dom_children): Replace
3196 MODIFY_EXPR with SSA_NAME.
3197 (replace_mult_candidate): Likewise.
3198 (replace_profitable_candidates): Likewise.
3200 2016-10-10 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
3202 * config/s390/s390.h: Wrap more macros args in brackets and fix
3204 2016-10-10 Georg-Johann Lay <avr@gjlay.de>
3206 * config/avr/gen-avr-mmcu-texi.c (string.h): Include.
3208 2016-10-10 Andreas Schwab <schwab@suse.de>
3211 * config/ia64/ia64.md ("doloop_end"): Reject if mode of loop
3212 pseudo is not DImode.
3214 2016-10-10 Claudiu Zissulescu <claziss@synopsys.com>
3216 * common/config/arc/arc-common.c (arc_option_optimization_table):
3217 Remove compact casesi option.
3218 * config/arc/arc.c (arc_override_options): Use compact casesi
3219 option only for pre-ARCv2 cores.
3220 * doc/invoke.texi (mcompact-casesi): Update text.
3222 2016-10-09 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
3224 * config/rs6000/rs6000.h (TARGET_EFFICIENT_OVERLAPPING_UNALIGNED):
3225 Add macro to say we can efficiently handle overlapping unaligned
3227 * config/rs6000/rs6000.c (expand_block_compare): Avoid generating
3228 poor code for processors older than p8.
3230 2016-10-09 Eric Botcazou <ebotcazou@adacore.com>
3232 * gen-pass-instances.awk: Remove GNUism.
3234 2016-10-09 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
3236 * ipa-prop.c (ipcp_transform_function): Set fields m_vr and bits to
3237 NULL of (*ipcp_transformations)][node->uid].
3239 2016-10-09 John David Anglin <danglin@gcc.gnu.org>
3241 * config/pa/pa.h (BIGGEST_ALIGNMENT): Adjust comment.
3242 (MALLOC_ABI_ALIGNMENT): Define.
3244 2016-10-09 Jakub Jelinek <jakub@redhat.com>
3246 * tree-ssa.c (target_for_debug_bind, verify_phi_args,
3247 ssa_undefined_value_p, maybe_optimize_var): Use VAR_P and/or
3248 VAR_OR_FUNCTION_DECL_P macros.
3249 * tree-chkp.c (chkp_register_var_initializer, chkp_make_static_bounds,
3250 chkp_get_bounds_for_decl_addr, chkp_parse_array_and_component_ref,
3251 chkp_find_bounds_1): Likewise.
3252 * ipa-polymorphic-call.c (decl_maybe_in_construction_p): Likewise.
3253 * hsa-gen.c (get_symbol_for_decl): Likewise.
3254 * cgraphunit.c (check_global_declaration, analyze_functions,
3255 handle_alias_pairs, thunk_adjust, cgraph_node::expand_thunk):
3257 * gimple-fold.c (can_refer_decl_in_current_unit_p,
3258 canonicalize_constructor_val, gimple_get_virt_method_for_vtable):
3260 * tree.c (set_decl_section_name, copy_node_stat,
3261 need_assembler_name_p, free_lang_data_in_decl, find_decls_types_r,
3262 merge_dllimport_decl_attributes, handle_dll_attribute,
3263 decl_init_priority_insert, auto_var_in_fn_p, array_at_struct_end_p,
3264 verify_type): Likewise.
3265 * gimple-ssa-isolate-paths.c (find_implicit_erroneous_behavior,
3266 find_explicit_erroneous_behavior): Likewise.
3267 * sdbout.c (sdbout_toplevel_data, sdbout_late_global_decl): Likewise.
3268 * ipa.c (process_references): Likewise.
3269 * tree-chkp-opt.c (chkp_get_check_result): Likewise.
3270 * varasm.c (get_block_for_decl, use_blocks_for_decl_p, make_decl_rtl,
3271 notice_global_symbol, assemble_variable, mark_decl_referenced,
3272 build_constant_desc, output_constant_def_contents, do_assemble_alias,
3273 make_decl_one_only, default_section_type_flags,
3274 categorize_decl_for_section, default_encode_section_info): Likewise.
3275 * trans-mem.c (requires_barrier): Likewise.
3276 * gimple-expr.c (mark_addressable): Likewise.
3277 * cfgexpand.c (add_scope_conflicts_1, expand_one_var,
3278 expand_used_vars_for_block, clear_tree_used, stack_protect_decl_p,
3279 expand_debug_expr): Likewise.
3280 * tree-dump.c (dequeue_and_dump): Likewise.
3281 * ubsan.c (instrument_bool_enum_load): Likewise.
3282 * tree-pretty-print.c (print_declaration): Likewise.
3283 * simplify-rtx.c (delegitimize_mem_from_attrs): Likewise.
3284 * tree-ssa-uninit.c (warn_uninitialized_vars): Likewise.
3285 * asan.c (asan_protect_global, instrument_derefs): Likewise.
3286 * tree-into-ssa.c (rewrite_stmt, maybe_register_def,
3287 pass_build_ssa::execute): Likewise.
3288 * var-tracking.c (var_debug_decl, track_expr_p): Likewise.
3289 * tree-ssa-loop-ivopts.c (force_expr_to_var_cost, split_address_cost):
3291 * ipa-split.c (test_nonssa_use, consider_split, mark_nonssa_use):
3293 * tree-inline.c (insert_debug_decl_map, remap_ssa_name,
3294 can_be_nonlocal, remap_decls, copy_debug_stmt,
3295 initialize_inlined_parameters, add_local_variables,
3296 reset_debug_binding, replace_locals_op): Likewise.
3297 * dse.c (can_escape): Likewise.
3298 * ipa-devirt.c (compare_virtual_tables, referenced_from_vtable_p):
3300 * tree-diagnostic.c (default_tree_printer): Likewise.
3301 * tree-streamer-in.c (unpack_ts_decl_common_value_fields,
3302 unpack_ts_decl_with_vis_value_fields,
3303 lto_input_ts_decl_common_tree_pointers): Likewise.
3304 * builtins.c (builtin_save_expr, fold_builtin_expect,
3305 readonly_data_expr): Likewise.
3306 * tree-ssa-structalias.c (new_var_info, get_constraint_for_ssa_var,
3307 create_variable_info_for, set_uids_in_ptset, visit_loadstore):
3309 * gimple-streamer-out.c (output_gimple_stmt): Likewise.
3310 * gimplify.c (force_constant_size, gimplify_bind_expr,
3311 gimplify_decl_expr, gimplify_var_or_parm_decl,
3312 gimplify_compound_lval, gimplify_init_constructor,
3313 gimplify_modify_expr, gimplify_asm_expr, gimplify_oacc_declare,
3314 gimplify_type_sizes): Likewise.
3315 * cgraphbuild.c (record_reference, record_type_list, mark_address,
3316 mark_load, mark_store, pass_build_cgraph_edges::execute): Likewise.
3317 * tree-ssa-live.c (mark_all_vars_used_1, remove_unused_scope_block_p,
3318 remove_unused_locals): Likewise.
3319 * tree-ssa-alias.c (ptr_deref_may_alias_decl_p, ptrs_compare_unequal,
3320 ref_maybe_used_by_call_p_1, call_may_clobber_ref_p_1): Likewise.
3321 * function.c (instantiate_expr, instantiate_decls_1,
3322 setjmp_vars_warning, add_local_decl): Likewise.
3323 * alias.c (ao_ref_from_mem, get_alias_set, compare_base_symbol_refs):
3325 * tree-stdarg.c (find_va_list_reference, va_list_counter_struct_op,
3326 va_list_ptr_read, va_list_ptr_write, check_all_va_list_escapes,
3327 optimize_va_list_gpr_fpr_size): Likewise.
3328 * tree-nrv.c (pass_nrv::execute): Likewise.
3329 * tsan.c (instrument_expr): Likewise.
3330 * tree-ssa-dce.c (remove_dead_stmt): Likewise.
3331 * vtable-verify.c (verify_bb_vtables): Likewise.
3332 * tree-dfa.c (ssa_default_def, set_ssa_default_def,
3333 get_ref_base_and_extent): Likewise.
3334 * toplev.c (wrapup_global_declaration_1, wrapup_global_declaration_2):
3336 * tree-sra.c (static bool constant_decl_p, find_var_candidates,
3337 analyze_all_variable_accesses): Likewise.
3338 * tree-nested.c (get_nonlocal_debug_decl,
3339 convert_nonlocal_omp_clauses, note_nonlocal_vla_type,
3340 note_nonlocal_block_vlas, convert_nonlocal_reference_stmt,
3341 get_local_debug_decl, convert_local_omp_clauses,
3342 convert_local_reference_stmt, nesting_copy_decl, remap_vla_decls):
3344 * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Likewise.
3345 * stmt.c (decl_overlaps_hard_reg_set_p): Likewise.
3346 * dbxout.c (dbxout_late_global_decl, dbxout_type_fields,
3347 dbxout_symbol, dbxout_common_check): Likewise.
3348 * expr.c (expand_assignment, expand_expr_real_2, expand_expr_real_1,
3349 string_constant): Likewise.
3350 * hsa.c (hsa_get_declaration_name): Likewise.
3351 * passes.c (rest_of_decl_compilation): Likewise.
3352 * tree-ssanames.c (make_ssa_name_fn): Likewise.
3353 * tree-streamer-out.c (pack_ts_decl_common_value_fields,
3354 pack_ts_decl_with_vis_value_fields,
3355 write_ts_decl_common_tree_pointers): Likewise.
3356 * stor-layout.c (place_field): Likewise.
3357 * symtab.c (symtab_node::maybe_create_reference,
3358 symtab_node::verify_base, symtab_node::make_decl_local,
3359 symtab_node::copy_visibility_from,
3360 symtab_node::can_increase_alignment_p): Likewise.
3361 * dwarf2out.c (add_var_loc_to_decl, tls_mem_loc_descriptor,
3362 decl_by_reference_p, reference_to_unused, rtl_for_decl_location,
3363 fortran_common, add_location_or_const_value_attribute,
3364 add_scalar_info, add_linkage_name, set_block_abstract_flags,
3365 local_function_static, gen_variable_die, dwarf2out_late_global_decl,
3366 optimize_one_addr_into_implicit_ptr,
3367 optimize_location_into_implicit_ptr): Likewise.
3368 * gimple-low.c (record_vars_into): Likewise.
3369 * ipa-visibility.c (update_vtable_references): Likewise.
3370 * tree-ssa-address.c (fixed_address_object_p, copy_ref_info):
3372 * lto-streamer-out.c (tree_is_indexable, get_symbol_initial_value,
3373 DFS::DFS_write_tree_body, write_symbol): Likewise.
3374 * langhooks.c (lhd_warn_unused_global_decl,
3375 lhd_set_decl_assembler_name): Likewise.
3376 * attribs.c (decl_attributes): Likewise.
3377 * except.c (output_ttype): Likewise.
3378 * varpool.c (varpool_node::get_create, ctor_for_folding,
3379 varpool_node::assemble_decl, varpool_node::create_alias): Likewise.
3380 * fold-const.c (fold_unary_loc): Likewise.
3381 * ipa-prop.c (ipa_compute_jump_functions_for_edge,
3382 ipa_find_agg_cst_from_init): Likewise.
3383 * omp-low.c (expand_omp_regimplify_p, expand_omp_taskreg,
3384 expand_omp_target, lower_omp_regimplify_p,
3385 grid_reg_assignment_to_local_var_p, grid_remap_prebody_decls,
3386 find_link_var_op): Likewise.
3387 * tree-chrec.c (chrec_contains_symbols): Likewise.
3388 * tree-cfg.c (verify_address, verify_expr, verify_expr_location_1,
3389 gimple_duplicate_bb, move_stmt_op, replace_block_vars_by_duplicates,
3390 execute_fixup_cfg): Likewise.
3392 PR tree-optimization/77901
3393 * tree-ssa-reassoc.c (optimize_range_tests_var_bound): Only optimize
3394 if ranges[i].exp is SSA_NAME when looking for >= and only when
3395 ranges[i].exp is NULL or SSA_NAME when looking for the other
3398 2016-10-09 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
3400 * ipa-cp.c (ipcp_alignment_lattice): Remove.
3401 (ipcp_param_lattices): Remove field alignment.
3402 (print_all_lattices): Remove call to ipcp_alignment_lattice::print.
3403 (set_all_contains_variable): Remove call to
3404 ipcp_alignment_lattice::set_to_bottom.
3405 (initialize_node_lattices): Likewise.
3406 (propagate_alignment_accross_jump_function): Remove.
3407 (propagate_constants_accross_call): Remove call to
3408 propagate_alignment_accross_jump_function.
3409 (ipcp_store_alignment_results): Remove.
3410 (ipcp_driver): Remove call to ipcp_store_alignment_results.
3411 (propagate_bits_accross_jump_function): Handle ancestor jump function.
3412 * ipa-prop.c (ipa_print_node_jump_functions_for_edge): Remove
3413 pretty-printing of alignment jump function.
3414 (ipa_set_jf_unknown): Remove assignment to jfunc->alignment.known.
3415 (ipa_compute_jump_functions_for_edge): Adjust ipa_bits jump function for
3416 alignments and remove computing ipa_alignment jump function.
3417 (ipa_node_params_t::duplicate): Remove copying of src_trans->alignments.
3418 (ipa_write_jump_functions): Remove streaming for ipa_alignment.
3419 (ipa_read_jump_function): Remove reading of ipa_alignment.
3420 (write_ipcp_transformation_info): Remove streaming for alignment
3421 propagation summary.
3422 (read_ipcp_transformation_info): Remove reading of alignment
3423 propagation summary.
3424 (ipcp_update_alignments): Remove.
3425 (ipcp_update_bits): Adjust to set alignment for parameters of pointer
3427 (ipcp_transform_function): Remove call to ipcp_update_alignments()
3428 and remove assignment to (*ipcp_transformations)[node->uid].alignments.
3429 * ipa-prop.h (ipa_alignment): Remove.
3430 (ipa_jump_func): Remove field alignment.
3431 (ipcp_transformation_summary): Remove field alignments.
3432 * doc/invoke.texi: Mark fipa-cp-alignment as obsolete.
3433 * opts.c (default_options_table): Remove entry for fipa-cp-alignment.
3434 (enable_fdo_optimizations): Remove checking for fipa-cp-alignment.
3436 2016-10-08 Eric Botcazou <ebotcazou@adacore.com>
3438 * config/sparc/sparc.h (FIXED_REGISTERS): Add %icc.
3440 * config/visium/visium.c (visium_expand_int_cstore): Revert latest
3442 (visium_expand_fp_cstore): Likewise.
3444 2016-10-08 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
3446 * diagnostic-core.h (warning_at_rich_loc_n): Declare.
3447 * diagnostic.c (warning_at_rich_loc_n): New function.
3448 (diagnostic_n_impl_richloc): Likewise.
3449 (diagnostic_n_impl): Move most of the function to
3450 diagnostic_n_impl_richloc and call it.
3452 2016-10-08 Jakub Jelinek <jakub@redhat.com>
3454 * gen-pass-instances.awk: Rewritten.
3455 * Makefile.in (pass-instances.def): Depend on $(PASSES_EXTRA), pass
3456 $(PASSES_EXTRA) after passes.def to the script.
3457 * config/i386/t-i386 (PASSES_EXTRA): Add i386-passes.def.
3458 * config/i386/i386-passes.def: New file.
3459 * config/i386/i386-protos.h (make_pass_insert_vzeroupper,
3460 make_pass_stv): Declare.
3461 * config/i386/i386.c (pass_stv::pass_stv): Initialize timode_p to
3463 (pass_stv::gate): Depending on timode_p member require TARGET_64BIT
3465 (pass_stv::clone, pass_stv::set_pass_param): New methods.
3466 (pass_stv::timode_p): New non-static data member.
3467 (ix86_option_override): Don't register passes here.
3469 * doc/invoke.texi: Document accepting Else, fallthrough.
3471 * doc/invoke.texi (-Wimplicit-fallthrough): Document FALLTHRU comment
3474 * doc/invoke.texi (-Wimplicit-fallthrough): Document the accepted
3475 FALLTHRU comment styles.
3477 2016-10-07 Andrew Pinski <apinski@cavium.com>
3479 * config/aarch64/aarch64-arches.def (AARCH64_ARCH): #undef at the end.
3480 * config/aarch64/aarch64-cores.def (AARCH64_CORE): Likewise.
3481 * config/aarch64/aarch64-fusion-pairs.def (AARCH64_FUSION_PAIR):
3483 * config/aarch64/aarch64-option-extensions.def (AARCH64_OPT_EXTENSION):
3485 * config/aarch64/aarch64-tuning-flags.def (AARCH64_EXTRA_TUNING_OPTION):
3487 * config/aarch64/aarch64-opts.h (AARCH64_CORE): Don't #undef here.
3488 (AARCH64_ARCH): Likewise.
3489 * common/config/aarch64/aarch64-common.c (AARCH64_OPT_EXTENSION):
3491 (AARCH64_CORE): Likewise.
3492 (AARCH64_ARCH): Likewise.
3493 * config/aarch64/aarch64-protos.h (AARCH64_FUSION_PAIR): Likewise.
3494 (AARCH64_EXTRA_TUNING_OPTION): Likewise.
3495 * config/aarch64/aarch64.c (AARCH64_FUION_PAIR): Likewise.
3496 (AARCH64_EXTRA_TUNING_OPTION): Likewise.
3497 (AARCH64_ARCH): Likewise.
3498 (AARCH64_CORE): Likewise.
3499 * config/aarch64/aarch64.h (AARCH64_CORE): Likewise.
3500 * config/aarch64/driver-aarch64.c (AARCH64_OPT_EXTENSION): Likewise.
3501 (AARCH64_CORE): Likewise.
3502 (AARCH64_ARCH): Likewise.
3504 2016-10-06 Michael Meissner <meissner@linux.vnet.ibm.com>
3506 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Split
3507 -mfloat128 into -mfloat128-type that enables the IEEE 128-bit
3508 floating point type infrastructre, and -mfloat128 that enables the
3509 keyword. Define __FLOAT128__ if -mfloat128, and __FLOAT128_TYPE__
3510 if -mfloat128-type. Define __ibm128 to be long double by default.
3511 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print whether
3512 the IEEE 128-bit floating point type infrastructure should
3513 automatically be enabled.
3514 (rs6000_init_hard_regno_mode_ok): Switch to use -mfloat128-type
3515 instead of -mfloat128 to enable KFmode.
3516 (rs6000_option_override_internal): Split the option -mfloat128
3517 into -mfloat128-type and -mfloat128. On Linux PowerPC 64-bit
3518 systems, automatically set -mfloat128-type, but don't enable it on
3519 other operating systems. Move setting the long double size and
3520 IEEE quad support before the IEEE 128-bit floating point changes.
3521 (rs6000_init_builtins): Do not create a unique type for __ibm128
3522 if long double is IBM extended double, instead rely on __ibm128
3523 being defined as 'long double'. If -mfloat128-type and not
3524 -mfloat128, create the KFmode type with an undocumented __ieee128
3526 (rs6000_init_libfuncs): Use -mfloat128-type instead of
3527 -mfloat128 for tests about the types, but keep tests for
3528 -mfloat128 to enable the keyword support.
3529 (rs6000_complex_function_value): Likewise.
3530 (rs6000_scalar_mode_supported_p): Likewise.
3531 (rs6000_floatn_mode): Likewise.
3532 (rs6000_c_mode_for_suffix): Likewise.
3533 (rs6000_opt_masks): Add -mfloat128-type.
3534 * config/rs6000/rs6000-cpus.def (POWERPC_MASKS): Add support for
3535 -mfloat128-type being split from -mfloat128. Add
3536 -mfloat128-hardware, which was missing.
3537 * config/rs6000/rs6000.opt (-mfloat128): Split -mfloat128 into
3538 -mfloat128 and -mfloat128-type:
3539 (-mfloat128-type): Likewise.
3540 * config/rs6000/linux64.h (TARGET_FLOAT128_ENABLE_TYPE): Define so
3541 that 64-bit Linux systems with enable -mfloat128-type by default
3543 * config/rs6000/rs6000.h (TARGET_FLOAT128_ENABLE_TYPE): Likewise.
3544 (FLOAT128_VECTOR_P): Switch IEEE 128-bit floating points to use
3545 -mfloat128-type instead of -mfloat128.
3546 (FLOAT128_2REG_P): Likewise.
3547 (MASK_FLOAT128_TYPE): Likewise.
3548 (ALTIVEC_ARG_MAX_RETURN): Likewise.
3549 (RS6000_BTM_FLOAT128): Likewise.
3550 (TARGET_FLOAT128): Poison old identifiers.
3551 (OPTION_MASK_FLOAT128): Likewise.
3552 (MASK_FLOAT128): Likewise.
3553 * config/rs6000/rs6000.md (FP): Likewise.
3554 (FLOAT128): Likewise.
3555 (fix_trunc<mode>di2): Likewise.
3556 (fixuns_trunc<IEEE128:mode><SDI:mode>2): Likewise.
3557 (floatdi<mode>2): Likewise.
3558 (floatuns<SDI:mode><IEEE128:mode>2): Likewise.
3559 (neg<mode>2, FLOAT128 iterator): Likewise.
3560 (abs<mode>2, FLOAT128 iterator): Likewise.
3561 (ieee_128bit_negative_zero): Likewise.
3562 (ieee_128bit_vsx_neg<mode>2): Likewise.
3563 (ieee_128bit_vsx_neg<mode>2_internal): Likewise.
3564 (ieee_128bit_vsx_abs<mode>2): Likewise.
3565 (ieee_128bit_vsx_abs<mode>2_internal): Likewise.
3566 (ieee_128bit_vsx_nabs<mode>2): Likewise.
3567 (ieee_128bit_vsx_nabs<mode>2_internal): Likewise.
3568 (extendiftf2): Likewise.
3569 (extendifkf2): Likewise.
3570 (extendtfkf2): Likewise.
3571 (trunciftf2): Likewise.
3572 (truncifkf2): Likewise.
3573 (trunckftf2): Likewise.
3574 (trunctfif2): Likewise.
3575 (extendkftf2): Likewise.
3576 (trunctfkf2): Likewise.
3578 2016-10-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3580 * simplify-rtx.c (simplify_immed_subreg): Zero-initialize tmp array
3581 before merging in bytes to pass down to real_from_target.
3583 2016-10-07 Richard Biener <rguenther@suse.de>
3585 * tree-ssa-propagate.c (replace_phi_args_in): Remove no longer
3587 (substitute_and_fold_dom_walker::before_dom_children):
3588 Substitute and fold before pass specific folding to avoid
3589 feeding that with SSA names that will be later released.
3590 * tree-ssa-ccp.c (get_value_for_expr): Guard for new SSA names
3591 introduced by folding and visited by evaluate_stmt called during
3593 (likely_value): Likewise.
3594 (evaluate_stmt): Likewise.
3595 * tree-vrp.c (simplify_truth_ops_using_ranges): Fold modified stmt.
3596 (simplify_div_or_mod_using_ranges): Likewise.
3597 (simplify_min_or_max_using_ranges): Likewise.
3598 (simplify_abs_using_ranges): Likewise.
3599 (simplify_conversion_using_ranges): Likewise.
3600 (simplify_float_conversion_using_ranges): Likewise.
3601 (simplify_stmt_using_ranges): Likewise.
3603 2016-10-07 Marek Polacek <polacek@redhat.com>
3605 * gimplify.c (should_warn_for_implicit_fallthrough): Check for
3606 FALLTHROUGH_LABEL_P here...
3607 (warn_implicit_fallthrough_r): ...not here.
3609 2016-10-07 Bernd Schmidt <bschmidt@redhat.com>
3611 PR tree-optimization/77880
3612 * expr.c (by_pieces_ninsns): Use unsigned HOST_WIDE_INT where
3615 2016-10-07 Marek Polacek <polacek@redhat.com>
3618 * gimplify.c (last_stmt_in_scope): Add check for FALLTHROUGH ().
3620 2016-10-07 Richard Biener <rguenther@suse.de>
3622 * bitmap.h: Document constraints on bitmap modification while
3625 2016-10-07 Richard Biener <rguenther@suse.de>
3627 * bitmap.c (bitmap_elem_to_freelist): Set indx to -1.
3628 * bitmap.h (bmp_iter_set): When advancing to the next element
3629 check that we didn't remove the current one.
3630 (bmp_iter_and): Likewise.
3631 (bmp_iter_and_compl): Likewise.
3632 * tree-ssa.c (release_defs_bitset): Do not remove worklist bit
3633 we currently iterate on but keep a one-level queue.
3634 * sched-deps.c (remove_from_deps): Do not clear current bit
3635 but keep a one-level queue.
3637 2016-10-07 Jakub Jelinek <jakub@redhat.com>
3639 PR tree-optimization/77664
3640 * tree-ssa-reassoc.c (update_range_test): Also clear low and high
3641 for the other ranges.
3642 (optimize_range_tests_diff): Fix up formatting.
3643 (optimize_range_tests_var_bound): New function.
3644 (optimize_range_tests): Use it.
3646 2016-10-07 Martin Liska <mliska@suse.cz>
3648 * coverage.c (build_gcov_exit_decl): Fix priority what
3649 should be really 99.
3651 2016-10-07 Richard Biener <rguenther@suse.de>
3653 * gimple-low.c (lower_gimple_bind): Clear DECL_CHAIN of
3654 vars in gimple_bind_vars but not in BLOCK_VARS.
3656 2016-10-07 Richard Biener <rguenther@suse.de>
3658 PR tree-optimization/77879
3659 * tree-ssa-structalias.c (handle_const_call): Properly handle
3661 (handle_pure_call): Likewise.
3663 2016-10-06 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
3665 * config/rs6000/rs6000.c (rs6000_elf_asm_out_constructor)
3666 (rs6000_elf_asm_out_destructor): increase size of buf to avoid
3669 2016-10-06 Andrew Pinski <apinski@cavium.com>
3671 * config/aarch64/aarch64-cores.def: Add a comment before each
3674 2016-10-06 Kugan Vivekanandarajah <kuganv@linaro.org>
3676 PR tree-optimization/77862
3677 * tree-vrp.c (add_equivalence): Use get_value_range so that
3678 num_vr_values is checked before accessing vr_values.
3680 2016-10-06 Kugan Vivekanandarajah <kuganv@linaro.org>
3682 * tree-vrp.c (evrp_dom_walker::before_dom_children): Handle
3685 2016-10-05 Jeff Law <law@redhat.com>
3687 PR tree-optimization/71661
3688 * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Handle case when
3689 removal of a forwarder exposes a new natural loop.
3691 2016-10-06 Uros Bizjak <ubizjak@gmail.com>
3693 * config/i386/sse.md (andnot<mode>3): Add FALLTHRU comments.
3694 Introduce ssesuffix variable.
3695 (<mask_codefor><code><mode>3<mask_name>): Ditto.
3696 (*<code><mode>3): Ditto.
3698 2016-10-06 Jan Hubicka <hubicka@ucw.cz>
3700 * postreload.c (reload_cse_simplify): Skip also USE when detecting
3703 2016-10-06 Richard Biener <rguenther@suse.de>
3705 PR tree-optimization/77855
3706 * tree-ssa-pre.c (prune_clobbered_mems): Queue exprs to remove
3707 instead of removing the current item while iterating over the set
3710 2016-10-06 James Clarke <jrtc27@jrtc27.com>
3711 Eric Botcazou <ebotcazou@adacore.com>
3714 * config/sparc/sparc.c (classify_data_t): Remove int_regs field.
3715 (classify_registers): Don't set it
3716 (function_arg_slotno): Don't initialize and test it. Tidy up.
3718 2016-10-06 Richard Biener <rguenther@suse.de>
3720 PR tree-optimization/77839
3721 * tree-ssa-sccvn.c (set_ssa_val_to): Forbid value -> constant value
3724 2016-10-06 Martin Liska <mliska@suse.cz>
3726 * gcc.c: Set -fprofile-update=atomic when profiling is
3727 enabled and -pthread is set. Warn when one combines
3728 -pthread and -fprofile-update=single for an app using
3731 2016-10-06 Martin Liska <mliska@suse.cz>
3734 * expmed.h (mul_highpart_cost_ptr): Add an gcc_assert.
3735 * gimple-ssa-strength-reduction.c (slsr_process_cast):
3736 Initialize a pointer to NULL.
3737 (slsr_process_copy): Likewise.
3738 * input.c (location_get_source_line): Likewise.
3739 * tree-ssa-ccp.c (optimize_atomic_bit_test_and): Likewise.
3741 2016-10-05 Andrew Senkevich <andrew.senkevich@intel.com>
3743 * common/config/i386/i386-common.c (OPTION_MASK_ISA_PCOMMIT_UNSET,
3744 OPTION_MASK_ISA_PCOMMIT_SET): Deleted definitions.
3745 (ix86_handle_option): Deleted handle of OPT_mpcommit.
3746 * config.gcc: Deleted pcommitintrin.h
3747 * config/i386/pcommitintrin.h: Deleted file.
3748 * config/i386/cpuid.h (bit_PCOMMIT): Deleted.
3749 * config/i386/driver-i386.c (host_detect_local_cpu): Deleted pcommit
3751 * config/i386/i386-c.c (ix86_target_macros_internal): Deleted define
3753 * config/i386/i386.c (ix86_target_string): Deleted -mpcommit.
3754 (PTA_PCOMMIT): Deleted define.
3755 (ix86_option_override_internal): Deleted handle of option.
3756 (ix86_valid_target_attribute_inner_p): Deleted pcommit.
3757 * config/i386/i386-builtin.def (IX86_BUILTIN_PCOMMIT,
3758 __builtin_ia32_pcommit): Deleted.
3759 * config/i386/i386.h (TARGET_PCOMMIT, TARGET_PCOMMIT_P): Deleted.
3760 * config/i386/i386.md (unspecv): Deleted UNSPECV_PCOMMIT.
3761 (pcommit): Deleted instruction.
3762 * config/i386/i386.opt: Mention -mpcommit deprecation.
3763 * config/i386/x86intrin.h: Deleted inclusion of pcommitintrin.h.
3765 2016-10-05 Uros Bizjak <ubizjak@gmail.com>
3768 * config/i386/sse.md (<mask_codefor><code><mode>3<mask_name>):
3769 Remove wrong assert.
3770 (<floatsuffix>float<sseintvecmodelower><mode>2<mask_name><round_name>:
3771 Use <round_constraint> as operand 1 constraint.
3773 2016-10-05 Jakub Jelinek <jakub@redhat.com>
3776 * ubsan.c (ubsan_create_data): Call initialize_sanitizer_builtins here.
3777 (ubsan_instrument_float_cast): And not here.
3780 * ubsan.c (ubsan_ids): New GTY(()) array.
3781 (ubsan_type_descriptor, ubsan_create_data): Use ubsan_ids
3782 instead of static local counters.
3784 2016-10-05 Martin Sebor <msebor@redhat.com>
3787 * config/linux.h (TARGET_PRINTF_POINTER_FORMAT): Define macro.
3788 * config/linux.c (gnu_libc_printf_pointer_format): Remove.
3789 * targhooks.c [DEFAULT_LIBC == LIBC_UCLIBC) && SINGLE_LIBC]
3790 (default_printf_pointer_format): Define function.
3791 * targhooks.c (linux_printf_pointer_format): Define new function.
3792 * targhooks.h (linux_printf_pointer_format): Declare.
3793 (gnu_libc_printf_pointer_format): Remove declaration.
3795 2016-10-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3797 * fold-const.c (native_encode_real): Fix logic for selecting offset
3798 to write to when BYTES_BIG_ENDIAN.
3800 2016-10-05 Wilco Dijkstra <wdijkstr@arm.com>
3802 * builtins.c (fold_builtin_strchr): Remove function.
3803 (fold_builtin_strrchr): Likewise.
3804 (fold_builtin2): Remove strchr, index, strrchr, rindex cases.
3805 * gimple-fold.c (target_char_cst_p): New function.
3806 (gimple_fold_builtin_strchr) Add more foldings.
3807 (gimple_fold_builtin): Add index, strrchr, rindex cases.
3809 2016-10-05 Richard Biener <rguenther@suse.de>
3812 * genmatch.c (capture_info::walk_c_expr): Diagnose unknown
3813 capture ids in c-exprs.
3815 2016-10-05 Richard Biener <rguenther@suse.de>
3818 * genmatch.c (dt_operand::gen_match_op): Amend operand_equal_p
3819 with types_match for GIMPLE code gen to handle type mismatched
3821 (dt_operand::gen): Adjust.
3822 * match.pd ((X /[ex] A) * A -> X): Properly handle converted
3825 2016-10-05 Richard Biener <rguenther@suse.de>
3827 * match.pd (copysign(x, CST) -> [-]abs (x)): New pattern.
3829 2016-10-05 Richard Biener <rguenther@suse.de>
3832 * genmatch.c (parser::parse_c_expr): Handle premature EOF.
3834 2016-10-05 Pierre-Marie de Rodat <derodat@adacore.com>
3836 * dwarf2out.c (dwarf2out_imported_module_or_decl): Move DWARF
3837 version check to protect only DW_TAG_imported_module generation.
3839 2016-10-05 Richard Biener <rguenther@suse.de>
3842 * match.pd (min(a,-a) -> -abs(a)): New pattern.
3844 2016-10-04 Ian Lance Taylor <iant@golang.org>
3846 * explow.c (allocate_dynamic_stack_space): Call
3847 do_pending_stack_adjust before handling flag_split_stack.
3849 2016-10-04 David Malcolm <dmalcolm@redhat.com>
3851 * genattrtab.c (make_internal_attr): Supply dummy column number to
3854 * genoutput.c (init_insn_for_nothing): Likewise.
3855 * gensupport.c (add_define_attr): Likewise.
3856 * read-md.c (message_at_1): Print column number.
3857 (fatal_with_file_and_line): Likewise.
3858 (rtx_reader::read_char): Track column numbers.
3859 (rtx_reader::unread_char): Likewise.
3860 (rtx_reader::rtx_reader): Initialize m_read_md_colno.
3861 (rtx_reader::handle_include): Stash and restore m_read_md_colno.
3862 (rtx_reader::handle_file): Initialize m_read_md_colno.
3863 (rtx_reader::get_current_location): Supply column number to
3865 * read-md.h (struct file_location): Add field "colno".
3866 (file_location::file_location): Likewise.
3867 (rtx_reader::get_colno): New accessor.
3868 (rtx_reader::m_read_md_colno): New field.
3869 (rtx_reader::m_last_line_colno): New field.
3871 2016-10-04 Jakub Jelinek <jakub@redhat.com>
3873 * doc/extend.texi (Java Exceptions): Remove.
3874 (java_interface): Remove.
3876 2016-10-04 Doug Gilmore <doug.gilmore@imgtec.com>
3878 PR tree-optimization/77808
3879 * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Check base_addr
3880 and addr are different before copying points-to information.
3882 2016-10-04 Uros Bizjak <ubizjak@gmail.com>
3884 * config/i386/x86-tune.def (X86_TUNE_VECTORIZE_DOUBLE): Remove.
3885 * config/i386/i386.h (TARGET_VECTORIZE_DOUBLE): Remove.
3886 * config/i386/i386.c (ix86_add_stmt_cost): Use TARGET_BONNEL instead
3887 of !TARGET_VECTORIZE_DOUBLE when penalizing DFmode vector ops.
3889 2016-10-04 Richard Biener <rguenther@suse.de>
3891 PR tree-optimization/77399
3892 * tree-ssa-forwprop.c (simplify_vector_constructor): Properly
3893 verify the target can convert.
3895 2016-10-04 Richard Biener <rguenther@suse.de>
3898 * explow.c (plus_constant): Verify the mode of the constant
3899 pool offset before calling plus_constant.
3901 2016-10-04 Richard Biener <rguenther@suse.de>
3904 * match.pd (X / abs (X) -> X < 0 ? -1 : 1): Drop vector
3905 type support, mark with :C.
3906 (X / -X -> -1): Mark with :C.
3908 2016-10-04 Jakub Jelinek <jakub@redhat.com>
3910 * defaults.h (JCR_SECTION_NAME, TARGET_USE_JCR_SECTION): Remove.
3911 * system.h (JCR_SECTION_NAME, TARGET_USE_JCR_SECTION): Poison.
3912 * doc/tm.texi.in (TARGET_USE_JCR_SECTION): Remove.
3913 * doc/tm.texi: Regenerated.
3914 * config/i386/mingw32.h (TARGET_USE_JCR_SECTION): Remove.
3915 * config/i386/cygming.h (TARGET_USE_JCR_SECTION): Remove.
3916 * config/darwin.h (JCR_SECTION_NAME): Remove.
3917 * config/pa/pa64-hpux.h (JCR_SECTION_NAME): Remove.
3918 * config/rs6000/aix71.h (TARGET_USE_JCR_SECTION): Remove.
3919 * config/rs6000/aix51.h (TARGET_USE_JCR_SECTION): Remove.
3920 * config/rs6000/aix52.h (TARGET_USE_JCR_SECTION): Remove.
3921 * config/rs6000/aix53.h (TARGET_USE_JCR_SECTION): Remove.
3922 * config/rs6000/aix61.h (TARGET_USE_JCR_SECTION): Remove.
3924 2016-10-03 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
3926 * ipa-cp.c (propagate_bits_accross_jump_function): Introduce space
3927 between "because" and "param" in dump message in call to fprintf.
3929 2016-10-03 Jeff Law <law@redhat.com>
3931 PR tree-optimization/71550
3932 PR tree-optimization/71403
3933 * tree-ssa-threadbackward.c: Include tree-vectorizer.h
3934 (profitable_jump_thread_path): Also return boolean indicating if
3935 the realized path will create an irreducible loop.
3936 Remove loop depth tests from 71403.
3937 (fsm_find_control_statement_thread_paths): Remove loop depth tests
3938 from 71403. If threading will create an irreducible loop, then
3939 throw away loop iteration and related information.
3941 2016-10-03 Uros Bizjak <ubizjak@gmail.com>
3943 * configure.ac (strict_warn): Merge -Wmissing-format-attribute and
3944 -Woverloaded-virtual checks for warning options.
3945 * configure: Regenerate.
3947 2016-10-03 Bernd Edlinger <bernd.edlinger@hotmail.de>
3949 PR preprocessor/77699
3950 * input.c (maybe_grow): Don't allocate one byte extra headroom.
3951 (get_next_line): Return false on error.
3952 (read_next_line): Removed, use get_next_line instead.
3953 (read_line_num): Don't copy the line.
3954 (location_get_source_line): Don't use static data.
3955 (selftest::test_reading_source_line): Add more test cases.
3957 2016-10-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3960 2016-09-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3962 * ifcvt.c (noce_try_avoid_const_materialization): New function.
3963 (noce_process_if_block): Use it.
3965 2016-10-03 Bernd Edlinger <bernd.edlinger@hotmail.de>
3967 * doc/invoke.texi: Update -Wint-in-bool-context.
3969 2016-10-02 Jakub Jelinek <jakub@redhat.com>
3971 * dwarf2out.c (output_fde, output_call_frame_info,
3972 dwarf2out_do_cfi_startproc, set_indirect_string,
3973 gen_internal_sym, output_die, output_line_info): Use
3974 MAX_ARTIFICIAL_LABEL_BYTES as char array sizes for
3975 ASM_GENERATE_INTERNAL_LABEL output.
3977 2016-10-01 Richard Biener <rguenther@suse.de>
3980 * genmatch.c (get_operand_type): Add operand position arg
3981 and handle COND_EXPR comparison operand with fixed boolean_type_node.
3982 (expr::gen_transform): Adjust.
3983 (dt_simplify::gen_1): Likewise.
3985 2016-10-01 Jakub Jelinek <jakub@redhat.com>
3987 * config/i386/sse.md (<mask_codefor><code><mode>): Add FALLTHRU
3988 comments. Simplify asserts, remove unnecessary conditions.
3990 (*<code><mode>3): Likewise.
3992 2016-09-30 Jakub Jelinek <jakub@redhat.com>
3994 * doc/invoke.texi (-Wregister): Document.
3996 2016-09-30 Bernd Edlinger <bernd.edlinger@hotmail.de>
3998 * configure.ac: Split CHECKING_P into CHECKING_P and
3999 ENABLE_EXTRA_CHECKING.
4000 * configure: Regenerated.
4001 * config.in: Adjust commment of CHECKING_P. Add ENABLE_EXTRA_CHECKING.
4002 * common.opt (flag_checking): Use CHECKING_P and ENABLE_EXTRA_CHECKING.
4004 2016-09-30 Prasad Ghangal <prasad.ghangal@gmail.com>
4007 * gcc.c (process_command): For @filename handling, output
4008 the correct name if the file does not exist.
4010 2016-09-30 Marek Polacek <polacek@redhat.com>
4012 * config/aarch64/aarch64-simd.md: Adjust fall through comments.
4013 * config/alpha/predicates.md: Likewise.
4015 2016-09-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4017 * ifcvt.c (noce_try_avoid_const_materialization): New function.
4018 (noce_process_if_block): Use it.
4020 2016-09-30 Martin Liska <mliska@suse.cz>
4022 * doc/invoke.texi: Document asan-use-after-return that
4023 it's disabled by default in runtime.
4025 2016-09-30 Richard Biener <rguenther@suse.de>
4027 * tree-vrp.c (intersect_ranges): If we failed to handle
4028 the intersection choose a constant singleton range if available.
4030 2016-09-30 Richard Biener <rguenther@suse.de>
4032 PR tree-optimization/77399
4033 * tree-ssa-forwprop.c (simplify_vector_constructor): Handle
4034 float <-> int conversions.
4036 2016-09-30 Alan Modra <amodra@gmail.com>
4038 * config/rs6000/rs6000.c (rs6000_opt_vars): Revert last change.
4040 2016-09-29 Uros Bizjak <ubizjak@gmail.com>
4042 * config/i386/driver-i386.c (host_detect_local_cpu): Check maximum
4043 ext_level before calling CPUID with 0x80000008.
4044 Simplify xgetbv checks.
4046 2016-09-29 David Malcolm <dmalcolm@redhat.com>
4048 * Makefile.in (OBJS): Add print-rtl-function.o.
4049 * print-rtl-function.c: New file.
4050 * print-rtl.h (print_rtx_function): New decl.
4052 2016-09-29 Uros Bizjak <ubizjak@gmail.com>
4055 * config/i386/cpuid.h (__get_cpuid_count): New.
4056 (__get_cpuid): Rename __level to __leaf.
4058 2016-09-29 Marek Polacek <polacek@redhat.com>
4060 * genattrtab.c (write_attr_case): Also emit FALLTHRU marker.
4062 2016-09-29 Bernd Schmidt <bschmidt@redhat.com>
4064 * builtins.c (expand_builtin_memcmp): don't swap args unless
4065 result is only being compared with zero.
4067 2016-09-29 Marek Polacek <polacek@redhat.com>
4069 * dwarf2out.c (loc_descriptor): Add fall through comment.
4070 (add_const_value_attribute): Likewise.
4072 2016-09-29 Matthew Wahab <matthew.wahab@arm.com>
4074 * config/arm/arm.md (*arm_movsi_insn): Replace "t2" arch attribute
4075 with "v6t2". Move "arch" attribute above "pool_range".
4076 * config/arm/vfp.md (*arm_movhi_vfp): Replace "t2" arch attribute
4078 (*thumb2_movhi_vfp): Likewise.
4079 (*arm_movhi_fp16): Likewise.
4080 (*thumb2_movhi_fp16): Likewise.
4081 (*arm_movsi_vfp): Remove "arch" attribute.
4082 (*thumb2_movsi_vfp): Likewise.
4084 2016-09-29 Martin Liska <mliska@suse.cz>
4086 * doc/extend.texi: Remove limitation of Objective C for
4087 __attribute__((constructor)) and __attribute__((destructor)).
4089 2016-09-29 Richard Biener <rguenther@suse.de>
4091 PR tree-optimization/77768
4092 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
4093 Handle stores to readonly memory when removing redundant stores.
4095 2016-09-29 Richard Biener <rguenther@suse.de>
4098 * match.pd: Add X / abs (X) -> X < 0 ? -1 : 1 and
4099 X / -X -> -1 simplifications.
4101 2016-09-29 Richard Biener <rguenther@suse.de>
4104 * match.pd: Add max(a,-a) -> abs(a) pattern.
4105 * tree-ssa-phiopt.c (minmax_replacement): Disable for
4106 HONOR_SIGNED_ZEROS types.
4108 2016-09-29 James Greenhalgh <james.greenhalgh@arm.com>
4110 * defaults.h (TARGET_FLT_EVAL_METHOD_NON_DEFAULT): Remove.
4111 * system.h (TARGET_FLT_EVAL_METHOD_NON_DEFAULT): Poison.
4113 2016-09-29 Richard Biener <rguenther@suse.de>
4115 * tree-vrp.c (set_defs_to_varying): New helper avoiding
4116 writing to vr_const_varying.
4117 (vrp_initialize): Call it.
4118 (vrp_visit_stmt): Likewise.
4119 (evrp_dom_walker::before_dom_children): Likewise.
4121 2016-09-29 Richard Biener <rguenther@suse.de>
4123 * tree-vect-stmts.c (vectorizable_load): Avoid emitting vector
4124 constructors with vector elements.
4126 2016-09-29 Richard Biener <rguenther@suse.de>
4128 PR tree-optimization/77768
4129 * tree-ssa-sccvn.c (visit_reference_op_store): Properly deal
4130 with stores to a place we know has a constant value.
4132 2016-09-29 Alan Modra <amodra@gmail.com>
4134 * config/rs6000/sysv4.opt (mgnu-attribute): New option.
4135 * doc/invoke.texi: Document it.
4136 * config/rs6000/rs6000.c (HAVE_LD_PPC_GNU_ATTR_LONG_DOUBLE): Define.
4137 (rs6000_passes_float): Comment.
4138 (rs6000_passes_long_double): New static var.
4139 (call_ABI_of_interest): Return false unless rs6000_gnu_attr is set.
4140 (init_cumulative_args): Set up to emit fp .gnu_attribute for
4141 ELF 64-bit ABIs as well as 32-bit ELF. Correct rs6000_passes_float
4142 to include fp values returned in vectors.
4143 Set rs6000_passes_long_double.
4144 (rs6000_function_arg_advance_1): Likewise for function args.
4145 (rs6000_elf_file_end): Emit fp .gnu_attribute for ELF 64-bit ABIs,
4146 and SPE. Emit long double tag value too.
4147 (rs6000_opt_vars): Add gnu-attr.
4148 * configure.ac (HAVE_LD_PPC_GNU_ATTR_LONG_DOUBLE): New ppc32 test.
4149 * configure: Regenerate.
4150 * config.in: Regenerate.
4152 2016-09-28 Jakub Jelinek <jakub@redhat.com>
4154 * gimple-ssa-sprintf.c (pass_sprintf_length::gate): Use x > 0 instead
4156 (format_floating, format_string, format_directive,
4157 get_destination_size, pass_sprintf_length::handle_gimple_call):
4160 2016-09-28 Jakub Jelinek <jakub@redhat.com>
4162 * gimple-ssa-sprintf.c: Fix comment formatting.
4163 (format_integer): Use is_gimple_assign.
4164 (pass_sprintf_length::handle_gimple_call): Use gimple_call_builtin_p
4165 and gimple_call_fndecl. Reorder case BUILT_IN_SPRINTF_CHK. Fix up
4166 BUILT_IN_SNPRINTF_CHK comment. Replace "to to" with "to" in comment.
4167 (pass_sprintf_length::execute): Use is_gimple_call.
4169 2016-09-28 Wilco Dijkstra <wdijkstr@arm.com>
4171 * gimple-fold.c (gimple_fold_builtin): After failing to fold
4172 strchr, also try the generic folding.
4174 2016-09-28 Martin Sebor <msebor@redhat.com>
4177 * gimple-ssa-sprintf.c (pass_sprintf_length::handle_gimple_call):
4180 2016-09-28 Martin Sebor <msebor@redhat.com>
4183 * gimple-ssa-sprintf.c (format_integer): Fail gracefully when
4184 length modifier is not expected.
4185 (format_floating): Ignore l length modifier and fail gracefuly
4186 when it isn't one of the other expected ones.
4188 2016-09-28 Martin Sebor <msebor@redhat.com>
4191 * varasm.c (assemble_addr_to_section): Increase local buffer size.
4193 2016-09-27 Richard Biener <rguenther@suse.de>
4195 * dwarf2out.c (cu_die_list): New global.
4196 (dwarf2out_finish): Walk cu_die_list instead of limbo DIEs. Add
4197 main_comp_unit_die to cu_die_list if we created it.
4198 Move break_out_includes ...
4199 (dwarf2out_early_finish): ... here. Push created CU DIEs onto
4202 2016-09-28 Richard Biener <rguenther@suse.de>
4204 * dwarf2out.c (struct die_struct): Add removed flag.
4205 (lookup_type_die): If the DIE is marked as removed, clear
4206 TYPE_SYMTAB_DIE and return NULL.
4207 (lookup_decl_die): If the DIE is marked as removed, remove it
4208 from the hash and return NULL.
4209 (mark_removed): New helper.
4210 (prune_unused_types_prune): Call it for removed DIEs.
4211 (gen_subprogram_die): Move the premark_used_types call to after
4212 DIEs for the functions scopes are generated.
4213 (process_scope_var): Do not re-create pruned types or type decls.
4214 Make sure to also re-parent type decls.
4215 (dwarf2out_finish): Move unused type pruning and debug_types
4217 (dwarf2out_early_finish): ... here.
4219 2016-09-29 Claudiu Zissulescu <claziss@synopsys.com>
4221 * config/arc/arc-c.c: New file.
4222 * config/arc/arc-c.def: Likewise.
4223 * config/arc/t-arc: Likewise.
4224 * config.gcc: Include arc-c.o as c and cpp object.
4225 * config/arc/arc-protos.h (arc_cpu_cpp_builtins): Add prototype.
4226 * config/arc/arc.h (TARGET_CPU_CPP_BUILTINS): Use
4227 arc_cpu_cpp_builtins.
4229 2016-09-29 Claudiu Zissulescu <claziss@synopsys.com>
4231 * config/arc/arc.md (*rotrsi3_cnt1): New pattern.
4232 (*ashlsi2_cnt1, *lshrsi3_cnt1, *ashrsi3_cnt1): Likewise.
4234 2016-09-28 Nathan Sidwell <nathan@acm.org>
4236 * gimple-pretty-print.c (dump_gimple_call_args): Simplify "' "
4239 2016-09-28 Wilco Dijkstra <wdijkstr@arm.com>
4241 PR tree-optimization/61056
4242 * gimple-fold.c (gimple_fold_builtin_strchr):
4243 New function to optimize strchr (s, 0) to strlen.
4244 (gimple_fold_builtin): Add BUILT_IN_STRCHR case.
4246 2016-09-27 Robin Dapp <rdapp@linux.vnet.ibm.com>
4248 PR tree-optimization/77724
4249 * tree-vect-loop-manip.c (create_intersect_range_checks_index):
4250 Add tree_fits_shwi_p check.
4252 2016-09-27 Jakub Jelinek <jakub@redhat.com>
4254 * auto-inc-dec.c (try_merge): Remove break after return.
4255 * cselib.c (autoinc_split): Likewise.
4256 * explow.c (promote_mode): Likewise.
4257 * fixed-value.c (fixed_arithmetic): Likewise.
4258 * hsa.c (hsa_internal_fn::get_arity): Likewise.
4259 * rtlanal.c (modified_between_p, modified_in_p): Likewise.
4260 * trans-mem.c (get_attrs_for): Likewise.
4261 * tree-if-conv.c (if_convertible_stmt_p): Likewise.
4262 * tree-vrp.c (simplify_stmt_using_ranges): Likewise.
4263 * config/aarch64/aarch64-builtins.c (aarch64_fold_builtin): Likewise.
4264 * config/aarch64/aarch64.c (aarch64_get_condition_code_1): Likewise.
4265 * config/c6x/c6x.c (c6x_get_unit_specifier): Likewise.
4266 * config/cr16/cr16.c (legitimate_pic_operand_p): Likewise.
4267 * config/cris/cris.c (cris_op_str): Likewise.
4268 * config/mn10300/mn10300.c (cc_flags_for_code): Likewise.
4269 * config/tilepro/tilepro.c (tilepro_emit_setcc_internal_di): Likewise.
4271 2016-09-27 Nathan Sidwell <nathan@codesourcery.com>
4273 * internal-fn.h (IFN_UNIQUE_CODES, IFN_GOACC_LOOP_CODES,
4274 IFN_GOACC_REDUCTION_CODES): New.
4275 (enum ifn_unique_kind, enum ifn_goacc_loop_kind, enum
4276 ifn_goacc_reduction_kind): Use them.
4277 * gimple-pretty-print.c (dump_gimple_call_args): Decode first arg
4278 of internal functions, when applicable.
4280 2016-09-27 Maciej W. Rozycki <macro@imgtec.com>
4282 * config/mips/constraints.md (d): Fix documentation.
4283 * doc/md.texi (Machine Constraints): Update accordingly.
4285 2016-09-27 Richard Biener <rguenther@suse.de>
4287 * dwarf2out.c (dwarf2out_init): Move text_section_line_info,
4288 cur_line_info_table initialization ...
4289 (dwarf2out_assembly_start): ... here.
4291 2016-09-27 Matthew Wahab <matthew.wahab@arm.com>
4293 * config/arm/arm.md (*arm_movsi_insn): Add "arch" attribute.
4294 * config/arm/vfp.md (*arm_movhi_vfp): Likewise.
4295 (*thumb2_movhi_vfp): Likewise.
4296 (*arm_movhi_fp16): Remove predication operand from VMOV.F16
4297 template. Expand predicable attribute to mark VMOV.F16 as not
4298 predicable. Add "arch" attribute.
4299 (*thumb2_movhi_fp16): Likewise.
4300 (*arm_movsi_vfp): Break a long line. Add "arch" attribute.
4301 (*thumb2_movsi_vfp): Add "arch" attribute.
4303 2016-09-27 David Edelsohn <dje.gcc@gmail.com>
4305 * config/rs6000/rs6000.c (rs6000_output_symbol): Don't modify
4308 2016-09-27 Marek Polacek <polacek@redhat.com>
4310 * config/ia64/ia64.c (ia64_print_operand): Adjust fall through
4313 * config/c6x/c6x.h: Adjust fall through comment.
4314 * config/sh/sh.c (final_prescan_insn): Likewise.
4315 * config/visium/visium.c (visium_expand_int_cstore): Likewise.
4316 (visium_expand_fp_cstore): Likewise.
4318 2016-09-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4320 * config/arm/arm.c (const_ok_for_op): Use "Fall through" comment form
4321 expected by -Wimplicit-fallthrough.
4322 (thumb1_size_rtx_costs): Likewise.
4323 (thumb2_reorg): Likewise.
4324 (tls_mentioned_p): Add "Fall through" comment.
4325 (thumb2_reorg): Likewise.
4326 * config/arm/arm-builtins.c (arm_expand_neon_args): Use "Fall through"
4327 comment form expected by -Wimplicit-fallthrough.
4329 2016-09-27 Martin Liska <mliska@suse.cz>
4331 PR gcov-profile/46266
4332 * input.h (RESERVED_LOCATION_P): New macro.
4333 * profile.c (branch_prob): Use RESERVED_LOCATION_P and
4334 instread of comparison with UNKNOWN_LOCATION.
4336 2016-09-27 Richard Biener <rguenther@suse.de>
4338 PR tree-optimization/77745
4339 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
4340 When removing redundant stores make sure to check compatibility
4341 of the TBAA state for downstream accesses.
4342 * tree-ssa-sccvn.c (visit_reference_op_store): Likewise for when
4343 value-numbering virtual operands for store matches.
4345 2016-09-27 Oleg Endo <olegendo@gcc.gnu.org>
4348 * config/sh/sh.c (sh_rtx_costs): Fix return value of SET of movt and
4349 movrt patterns. Match them before anything else in the SET case.
4351 2016-09-27 Martin Liska <mliska@suse.cz>
4353 PR gcov-profile/7970
4354 PR gcov-profile/16855
4355 PR gcov-profile/44779
4356 * coverage.c (build_gcov_exit_decl): New function.
4357 (coverage_obj_init): Call the function and generate __gcov_exit
4359 * doc/gcov.texi: Document when __gcov_exit function is called.
4361 2016-09-27 Marek Polacek <polacek@redhat.com>
4364 * Makefile.in (insn-attrtab.o-warn, insn-dfatab.o-warn,
4365 insn-latencytab.o-warn, insn-output.o-warn, insn-emit.o-warn): Use
4366 -Wno-error instead of -Wno-implicit-fallthrough.
4368 2016-09-27 Martin Liska <mliska@suse.cz>
4371 * gcov-counter.def: Remove GCOV_COUNTER_V_DELTA.
4373 2016-09-27 Jakub Jelinek <jakub@redhat.com>
4375 * combine.c (simplify_comparison): Add canonical FALLTHROUGH comments.
4376 * config/i386/i386.c (ix86_dep_by_shift_count_body): Add FALLTHROUGH
4377 comments. Remove break after return.
4378 (ix86_fp_compare_code_to_integer, has_dispatch,
4379 ix86_simd_clone_usable): Remove break after return.
4381 2016-09-27 Bernd Edlinger <bernd.edlinger@hotmail.de>
4383 PR rlt-optimization/77714
4384 * lra-eliminations.c (eliminate_regs_in_insn): Avoid alias on
4387 2016-09-27 Kugan Vivekanandarajah <kuganv@linaro.org>
4390 * ipa-prop.c (ipa_compute_jump_functions_for_edge): Use
4391 extract_range_from_unary_expr to convert value_range.
4392 * tree-vrp.c (extract_range_from_unary_expr_1): Rename to.
4393 (extract_range_from_unary_expr): This.
4394 * tree-vrp.h (extract_range_from_unary_expr): Declare.
4396 2016-09-27 Segher Boessenkool <segher@kernel.crashing.org>
4398 * config/rs6000/rs6000.md (movcc_internal1): Disparage using CTR or LR.
4400 2016-09-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4402 * config/i386/i386.c (ix86_print_operand)
4403 [HAVE_AS_IX86_CMOV_SUN_SYNTAX]: Add gcc_fallthrough.
4404 * config/sparc/sparc.c (check_pic): Add fallthrough comment.
4405 (epilogue_renumber): Likewise.
4407 2016-09-26 Kugan Vivekanandarajah <kuganv@linaro.org>
4410 * tree-ssa-reassoc.c (make_new_ssa_for_def): Use gimple_get_lhs
4411 to get lhs instead of gimple_assign_lhs as stmt can be builtins too.
4413 2016-09-26 Thomas Preud'homme <thomas.preudhomme@arm.com>
4415 * tree.h (memmodel_from_int, memmodel_base, is_mm_relaxed,
4416 is_mm_consume, is_mm_acquire, is_mm_release, is_mm_acq_rel,
4417 is_mm_seq_cst, is_mm_sync): Move to ...
4418 * memmodel.h: This. New file.
4419 * builtins.c: Include memmodel.h.
4420 * optabs.c: Likewise.
4422 * config/aarch64/aarch64.c: Likewise.
4423 * config/alpha/alpha.c: Likewise.
4424 * config/arm/arm.c: Likewise.
4425 * config/i386/i386.c: Likewise.
4426 * config/ia64/ia64.c: Likewise.
4427 * config/mips/mips.c: Likewise.
4428 * config/rs6000/rs6000.c: Likewise.
4429 * config/sparc/sparc.c: Likewise.
4430 * genconditions.c: Include memmodel.h in generated file.
4431 * genemit.c: Likewise.
4432 * genoutput.c: Likewise.
4433 * genpeep.c: Likewise.
4434 * genpreds.c: Likewise.
4435 * genrecog.c: Likewise.
4437 2016-09-26 David Malcolm <dmalcolm@redhat.com>
4439 * read-rtl.c (read_rtx_code): Rename local "i" to "idx", and use
4440 "c" instead when parsing characters. Move operand parsing into...
4441 (read_rtx_operand): ...this new function, renaming "i" to "idx",
4442 and tightening the scope of various locals.
4444 2016-09-26 Liu Hao <lh_mouse@126.com>
4446 * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Fix typo.
4448 2016-09-26 Marek Polacek <polacek@redhat.com>
4450 * system.h: Use __has_attribute to check whether the fallthrough
4451 attribute is supported.
4453 2016-09-26 Marek Polacek <polacek@redhat.com>
4455 * ipa-inline-analysis.c (find_foldable_builtin_expect): Use
4456 gimple_call_internal_p.
4457 * ipa-split.c (find_return_bb): Likewise.
4458 (execute_split_functions): Likewise.
4459 * omp-low.c (dump_oacc_loop_part): Likewise.
4460 (oacc_loop_xform_head_tail): Likewise.
4461 * predict.c (predict_loops): Likewise.
4462 * sanopt.c (pass_sanopt::execute): Likewise.
4463 * tree-cfg.c (get_abnormal_succ_dispatcher): Likewise.
4464 * tree-parloops.c (oacc_entry_exit_ok_1): Likewise.
4465 * tree-stdarg.c (gimple_call_ifn_va_arg_p): Remove function.
4466 (expand_ifn_va_arg_1): Use gimple_call_internal_p.
4467 (expand_ifn_va_arg): Likewise.
4468 * tree-vect-loop.c (vect_determine_vectorization_factor): Likewise.
4469 (optimize_mask_stores): Likewise.
4470 * tree-vect-stmts.c (vect_simd_lane_linear): Likewise.
4471 (vect_transform_stmt): Likewise.
4472 * tree-vectorizer.c (vect_loop_vectorized_call): Likewise.
4473 * tsan.c (instrument_memory_accesses): Likewise.
4475 2016-09-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4476 Alexander Monakov <amonakov@ispras.ru>
4478 * regrename.c (rename_chains): Check
4479 HARD_FRAME_POINTER_IS_FRAME_POINTER rather than
4480 HARD_FRAME_POINTER_REGNUM when picking unavailable registers.
4481 * sel-sched.c (mark_unavailable_hard_regs): Likewise.
4483 2016-09-26 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
4485 * config/s390/s390.c (s390_rtx_costs): Add /* fallthrough */.
4486 (s390_sched_score): Likewise.
4488 2016-09-26 Martin Liska <mliska@suse.cz>
4490 * doc/gcov.texi: Update program output of gcov tool.
4492 2016-09-26 Martin Liska <mliska@suse.cz>
4494 PR gcov-profile/23332
4495 * profile.c (instrument_values): Do not handle HIST_TYPE_CONST_DELTA.
4496 * tree-profile.c (gimple_gen_const_delta_profiler): Remove.
4497 * value-prof.c (dump_histogram_value): Do not handle
4498 HIST_TYPE_CONST_DELTA.
4499 (stream_in_histogram_value): Likewise.
4500 (gimple_find_values_to_profile): Likewise.
4501 * value-prof.h (enum hist_type): Likewise.
4503 2016-09-26 Martin Liska <mliska@suse.cz>
4505 * common.opt: Exclude SANITIZE_UNREACHABLE and SANITIZE_RETURN
4506 from default sanitize recover values.
4507 * doc/invoke.texi: Fix documentation related to -fsanitize=leak,
4508 -fsanitize=address, -fsanitize=thread and -fsanitize-recover.
4509 * flag-types.h: Replace couple of 1 << x to 1UL << x, make it
4511 * opts.c (finish_options): Do a generic loop over options
4512 that can be recovered.
4513 (parse_sanitizer_options): Exclude SANITIZE_UNREACHABLE and
4515 (common_handle_option): Likewise.
4516 * opts.h: Declare can_recover to sanitizer_opts_s.
4518 2016-09-26 Andre Vieira <andre.simoesdiasvieira@arm.com>
4520 * target.def(elf_flags_numeric): Change documentation to present tense.
4521 * doc/tm.texi: Regenerate.
4523 2016-09-26 Marek Polacek <polacek@redhat.com>
4526 * Makefile.in (insn-attrtab.o-warn, insn-dfatab.o-warn,
4527 insn-latencytab.o-warn, insn-output.o-warn, insn-emit.o-warn): Add
4528 -Wno-switch-fallthrough.
4529 * builtins.c (expand_builtin_int_roundingfn_2): Add gcc_fallthrough.
4530 (expand_builtin): Likewise.
4531 * config/rs6000/rs6000.c (rs6000_builtin_vectorized_libmass): Likewise.
4532 * convert.c (convert_to_real_1): Likewise.
4533 (convert_to_integer_1): Likewise.
4534 * final.c (output_alternate_entry_point): Likewise.
4535 * genattrtab.c (make_canonical): Likewise.
4536 (write_test_expr): Likewise.
4537 * genpreds.c (validate_exp): Likewise.
4538 * gimple-ssa-strength-reduction.c
4539 (find_candidates_dom_walker::before_dom_children): Likewise.
4540 * godump.c (go_format_type): Likewise.
4541 * reload1.c (elimination_effects): Likewise.
4542 * resource.c (mark_referenced_resources): Likewise.
4543 (mark_set_resources): Likewise.
4544 * tree-ssa-loop-ivopts.c (find_deriving_biv_for_expr): Likewise.
4545 * varasm.c (output_addressed_constants): Likewise.
4547 2016-09-26 Marek Polacek <polacek@redhat.com>
4550 * common.opt (Wimplicit-fallthrough): New option.
4551 * doc/extend.texi: Document statement attributes and the fallthrough
4553 * doc/invoke.texi: Document -Wimplicit-fallthrough.
4554 * gimple.h (gimple_call_internal_p): New function.
4555 * gimplify.c (struct gimplify_ctx): Add in_switch_expr.
4556 (struct label_entry): New struct.
4557 (find_label_entry): New function.
4558 (case_label_p): New function.
4559 (collect_fallthrough_labels): New function.
4560 (last_stmt_in_scope): New function.
4561 (should_warn_for_implicit_fallthrough): New function.
4562 (warn_implicit_fallthrough_r): New function.
4563 (maybe_warn_implicit_fallthrough): New function.
4564 (expand_FALLTHROUGH_r): New function.
4565 (expand_FALLTHROUGH): New function.
4566 (gimplify_switch_expr): Call maybe_warn_implicit_fallthrough and
4567 expand_FALLTHROUGH for the innermost GIMPLE_SWITCH.
4568 (gimplify_label_expr): New function.
4569 (gimplify_case_label_expr): Set location.
4570 (gimplify_expr): Call gimplify_label_expr.
4571 * internal-fn.c (expand_FALLTHROUGH): New function.
4572 * internal-fn.def (FALLTHROUGH): New internal function.
4573 * langhooks.c (lang_GNU_OBJC): New function.
4574 * langhooks.h (lang_GNU_OBJC): Declare.
4575 * system.h (gcc_fallthrough): Define.
4576 * tree-core.h: Add FALLTHROUGH_LABEL_P comment.
4577 * tree.h (FALLTHROUGH_LABEL_P): Define.
4579 2016-09-26 Richard Biener <rguenther@suse.de>
4581 * dwarf2out.c (stripattributes): Remove unused function.
4582 (DEBUG_NORM_MACINFO_SECTION): Rename to DEBUG_MACINFO_SECTION.
4583 Push dwarf_split_debug_info handling into init_sections_and_labels.
4584 (DEBUG_NORM_MACRO_SECTION): Likewise to DEBUG_MACRO_SECTION.
4585 (DEBUG_MACRO_SECTION_FLAGS): Remove.
4586 (debug_macinfo_section_name): New global.
4587 (output_macinfo): Use debug_macinfo_section_name.
4588 (init_sections_and_labels): Split out section and label generation
4589 from dwarf2out_init. Set debug_macinfo_section_name.
4590 (dwarf2out_init): Move text section label generation and emission
4592 (dwarf2out_assembly_start): ... here.
4593 (dwarf2out_finish): Call init_sections_and_labels before DWARF
4596 2016-09-26 Richard Biener <rguenther@suse.de>
4599 * cgraphunit.c (analyze_functions): Before early removing
4600 global vars calls the late_global_decl debug handler mark
4601 the variable as readonly.
4603 2016-09-25 Oleg Endo <olegendo@gcc.gnu.org>
4606 * config/sh/sh.c (sh_movt_set_dest, sh_movrt_set_dest): Add overloads.
4607 (sh_rtx_costs): Handle SET of movt and movrt patterns.
4608 * cnofig/sh/sh-protos.h (sh_movt_set_dest, sh_movrt_set_dest): Forward
4609 declare new overloads.
4610 * config/sh/sh.md (*cset_zero): Add variant that takes a treg_set_expr
4613 2016-09-24 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
4615 * config/rs6000/rs6000.c (expand_block_compare, do_load_for_compare):
4616 Change TARGET_LITTLE_ENDIAN to !BYTES_BIG_ENDIAN.
4618 2016-09-24 David Edelsohn <dje.gcc@gmail.com>
4620 * configure.ac (gcc_cv_as_aix_dwloc): Fix typo in assembly fragment.
4621 * configure: Regenerate.
4623 2016-09-24 Marek Polacek <polacek@redhat.com>
4626 * doc/invoke.texi: Document -Wbool-operation.
4628 2016-09-23 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
4630 * config/rs6000/rs6000.md (cmpmemsi): New define_expand.
4631 * config/rs6000/rs6000.c (expand_block_compare): New function used by
4632 cmpmemsi pattern to do builtin expansion of memcmp ().
4633 (compute_current_alignment): Add helper function for
4634 expand_block_compare used to compute alignment as the compare proceeds.
4635 (select_block_compare_mode): Used by expand_block_compare to select
4636 the mode used for reading the next chunk of bytes in the compare.
4637 (do_load_for_compare): Used by expand_block_compare to emit the load
4638 insns for the compare.
4639 (rs6000_emit_dot_insn): Moved this function to avoid a forward
4640 reference from expand_block_compare ().
4641 * config/rs6000/rs6000-protos.h (expand_block_compare): Add a
4642 prototype for this function.
4643 * config/rs6000/rs6000.opt (mblock-compare-inline-limit): Add a new
4644 target option for controlling how much code inline expansion of
4645 memcmp() will be allowed to generate.
4647 2016-09-23 Jakub Jelinek <jakub@redhat.com>
4649 * hooks.c (hook_bool_bool_false, hook_bool_bool_gcc_optionsp_false,
4650 hook_bool_mode_false, hook_bool_mode_true,
4651 hook_bool_mode_const_rtx_false, hook_bool_mode_const_rtx_true,
4652 hook_bool_mode_rtx_false, hook_bool_mode_rtx_true,
4653 hook_bool_const_rtx_insn_const_rtx_insn_true,
4654 hook_bool_mode_uhwi_false, hook_void_FILEptr_constcharptr,
4655 hook_bool_FILEptr_rtx_false, hook_bool_gsiptr_false,
4656 hook_bool_const_tree_hwi_hwi_const_tree_false,
4657 hook_bool_const_tree_hwi_hwi_const_tree_true,
4658 default_can_output_mi_thunk_no_vcall, hook_int_uint_mode_1,
4659 hook_int_const_tree_0, hook_int_const_tree_const_tree_1,
4660 hook_int_rtx_0, hook_int_rtx_bool_0, hook_void_tree,
4661 hook_void_constcharptr, hook_void_tree_treeptr, hook_void_int_int,
4662 hook_bool_tree_false, hook_bool_const_tree_false, hook_bool_tree_true,
4663 hook_bool_const_tree_true, hook_bool_tree_tree_false,
4664 hook_bool_tree_tree_true, hook_bool_tree_bool_false,
4665 hook_bool_rtx_insn_true, hook_bool_rtx_false,
4666 hook_bool_uintp_uintp_false,
4667 hook_bool_rtx_mode_int_int_intp_bool_false, hook_rtx_rtx_null,
4668 hook_rtx_tree_int_null, hook_uint_mode_0,
4669 hook_constcharptr_const_tree_null, hook_tree_tree_int_treep_bool_null,
4670 hook_tree_tree_tree_null, hook_tree_tree_tree_tree_null,
4671 hook_constcharptr_const_rtx_insn_null,
4672 hook_constcharptr_const_tree_const_tree_null,
4673 hook_constcharptr_int_const_tree_null,
4674 hook_constcharptr_int_const_tree_const_tree_null,
4675 hook_tree_const_tree_null, hook_bool_rtx_insn_int_false,
4676 hook_void_rtx_insn_int, hook_void_gcc_optionsp): For arguments with
4677 ATTRIBUTE_UNUSED, remove parameter name as well as ATTRIBUTE_UNUSED.
4679 * vec.h (vNULL): Extend comment to say = vNULL initialization
4680 isn't needed for static vars.
4682 * sel-sched-ir.c (sel_global_bb_info, sel_region_bb_info,
4683 loop_nests, s_i_d, last_added_blocks): Remove unnecessary
4684 = vNULL initialization of file scope vec.
4685 * passes.c (pass_tab, enabled_pass_uid_range_tab,
4686 disabled_pass_uid_range_tab): Likewise.
4687 * haifa-sched.c (sched_luids, h_i_d): Likewise.
4688 * tree-chkp-opt.c (check_infos): Likewise.
4689 * sel-sched.c (vec_av_set, vec_temp_moveop_nops): Likewise.
4691 * vec.h (vnull::operator vec): Add constexpr keyword for
4694 2016-09-23 Doug Gilmore <doug.gilmore@imgtec.com>
4696 PR tree-optimization/77654
4697 * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Add call
4698 to duplicate_ssa_name_ptr_info.
4700 2016-09-23 David Malcolm <dmalcolm@redhat.com>
4702 PR preprocessor/77672
4703 * input.c (selftest::test_lexer_string_locations_simple): Update
4704 test to expect location information of the terminator character
4705 at the location of the final closing quote.
4706 (selftest::test_lexer_string_locations_hex): Likewise.
4707 (selftest::test_lexer_string_locations_oct): Likewise.
4708 (selftest::test_lexer_string_locations_letter_escape_1): Likewise.
4709 (selftest::test_lexer_string_locations_letter_escape_2): Likewise.
4710 (selftest::test_lexer_string_locations_ucn4): Likewise.
4711 (selftest::test_lexer_string_locations_ucn8): Likewise.
4712 (selftest::test_lexer_string_locations_u8): Likewise.
4713 (selftest::test_lexer_string_locations_utf8_source): Likewise.
4714 (selftest::test_lexer_string_locations_concatenation_1): Likewise.
4715 (selftest::test_lexer_string_locations_concatenation_2): Likewise.
4716 (selftest::test_lexer_string_locations_concatenation_3): Likewise.
4717 (selftest::test_lexer_string_locations_macro): Likewise.
4718 (selftest::test_lexer_string_locations_long_line): Likewise.
4720 2016-09-23 Richard Biener <rguenther@suse.de>
4722 * tree-ssa-sccvn.c (visit_reference_op_call): Value number
4723 virtual definition to virtual use if the call devirtualizes
4724 to a const or pure function.
4725 (visit_use): Also visit calls we can devirtualize to a
4726 const or pure function.
4728 2016-09-23 Richard Biener <rguenther@suse.de>
4730 PR tree-optimization/77697
4731 * tree-ssa-forwprop.c (defcodefor_name): Remove bogus code,
4732 signal error if we have sth ternary or unhandled.
4734 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
4736 * config/arm/arm_neon.h (vabd_f16): New.
4770 (vcvt_f16_s16): New.
4771 (vcvt_f16_u16): New.
4772 (vcvt_s16_f16): New.
4773 (vcvt_u16_f16): New.
4774 (vcvtq_f16_s16): New.
4775 (vcvtq_f16_u16): New.
4776 (vcvtq_s16_f16): New.
4777 (vcvtq_u16_f16): New.
4778 (vcvta_s16_f16): New.
4779 (vcvta_u16_f16): New.
4780 (vcvtaq_s16_f16): New.
4781 (vcvtaq_u16_f16): New.
4782 (vcvtm_s16_f16): New.
4783 (vcvtm_u16_f16): New.
4784 (vcvtmq_s16_f16): New.
4785 (vcvtmq_u16_f16): New.
4786 (vcvtn_s16_f16): New.
4787 (vcvtn_u16_f16): New.
4788 (vcvtnq_s16_f16): New.
4789 (vcvtnq_u16_f16): New.
4790 (vcvtp_s16_f16): New.
4791 (vcvtp_u16_f16): New.
4792 (vcvtpq_s16_f16): New.
4793 (vcvtpq_u16_f16): New.
4794 (vcvt_n_f16_s16): New.
4795 (vcvt_n_f16_u16): New.
4796 (vcvtq_n_f16_s16): New.
4797 (vcvtq_n_f16_u16): New.
4798 (vcvt_n_s16_f16): New.
4799 (vcvt_n_u16_f16): New.
4800 (vcvtq_n_s16_f16): New.
4801 (vcvtq_n_u16_f16): New.
4815 (vmul_lane_f16): New.
4818 (vmulq_lane_f16): New.
4840 (vrsqrteq_f16): New.
4844 (vrsqrtsq_f16): New.
4848 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
4850 * config.gcc (extra_headers): Add arm_fp16.h
4851 * config/arm/arm_fp16.h: New.
4852 * config/arm/arm_neon.h: Include "arm_fp16.h".
4854 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
4856 * config/arm/arm_neon_builtins.def (vadd): New (v8hf, v4hf
4858 (vmulf): New (v8hf, v4hf variants).
4859 (vfma): New (v8hf, v4hf variants).
4860 (vfms): New (v8hf, v4hf variants).
4861 (vsub): New (v8hf, v4hf variants).
4862 (vcage): New (v8hf, v4hf variants).
4863 (vcagt): New (v8hf, v4hf variants).
4864 (vcale): New (v8hf, v4hf variants).
4865 (vcalt): New (v8hf, v4hf variants).
4866 (vceq): New (v8hf, v4hf variants).
4867 (vcgt): New (v8hf, v4hf variants).
4868 (vcge): New (v8hf, v4hf variants).
4869 (vcle): New (v8hf, v4hf variants).
4870 (vclt): New (v8hf, v4hf variants).
4871 (vceqz): New (v8hf, v4hf variants).
4872 (vcgez): New (v8hf, v4hf variants).
4873 (vcgtz): New (v8hf, v4hf variants).
4874 (vcltz): New (v8hf, v4hf variants).
4875 (vclez): New (v8hf, v4hf variants).
4876 (vabd): New (v8hf, v4hf variants).
4877 (vmaxf): New (v8hf, v4hf variants).
4878 (vmaxnm): New (v8hf, v4hf variants).
4879 (vminf): New (v8hf, v4hf variants).
4880 (vminnm): New (v8hf, v4hf variants).
4881 (vpmaxf): New (v4hf variant).
4882 (vpminf): New (v4hf variant).
4883 (vpadd): New (v4hf variant).
4884 (vrecps): New (v8hf, v4hf variants).
4885 (vrsqrts): New (v8hf, v4hf variants).
4886 (vabs): New (v8hf, v4hf variants).
4887 (vneg): New (v8hf, v4hf variants).
4888 (vrecpe): New (v8hf, v4hf variants).
4889 (vrnd): New (v8hf, v4hf variants).
4890 (vrnda): New (v8hf, v4hf variants).
4891 (vrndm): New (v8hf, v4hf variants).
4892 (vrndn): New (v8hf, v4hf variants).
4893 (vrndp): New (v8hf, v4hf variants).
4894 (vrndx): New (v8hf, v4hf variants).
4895 (vrsqrte): New (v8hf, v4hf variants).
4896 (vmul_lane): Add v4hf and v8hf variants.
4897 (vmul_n): Add v4hf and v8hf variants.
4898 (vext): New (v8hf, v4hf variants).
4899 (vcvts): New (v8hi, v4hi variants).
4900 (vcvts): New (v8hf, v4hf variants).
4901 (vcvtu): New (v8hi, v4hi variants).
4902 (vcvtu): New (v8hf, v4hf variants).
4903 (vcvts_n): New (v8hf, v4hf variants).
4904 (vcvtu_n): New (v8hi, v4hi variants).
4905 (vcvts_n): New (v8hi, v4hi variants).
4906 (vcvtu_n): New (v8hf, v4hf variants).
4907 (vbsl): New (v8hf, v4hf variants).
4908 (vcvtas): New (v8hf, v4hf variants).
4909 (vcvtau): New (v8hf, v4hf variants).
4910 (vcvtms): New (v8hf, v4hf variants).
4911 (vcvtmu): New (v8hf, v4hf variants).
4912 (vcvtns): New (v8hf, v4hf variants).
4913 (vcvtnu): New (v8hf, v4hf variants).
4914 (vcvtps): New (v8hf, v4hf variants).
4915 (vcvtpu): New (v8hf, v4hf variants).
4917 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
4919 * config/arm/arm-builtins.c (hf_UP): New.
4921 (vfp_builtin_data): New. Update comment.
4922 (enum arm_builtins): Include "arm_vfp_builtins.def".
4923 (ARM_BUILTIN_VFP_PATTERN_START): New.
4924 (arm_init_vfp_builtins): New.
4925 (arm_init_builtins): Add arm_init_vfp_builtins.
4926 (arm_expand_vfp_builtin): New.
4927 (arm_expand_builtins): Update for arm_expand_vfp_builtin. Fix
4929 * config/arm/arm_vfp_builtins.def: New file.
4930 * config/arm/t-arm (arm.o): Add arm_vfp_builtins.def.
4931 (arm-builtins.o): Likewise.
4933 2016-09-23 Kugan Vivekanandarajah <kuganv@linaro.org>
4936 * ipa-cp.c (propagate_vr_accross_jump_function): Drop TREE_OVERFLOW
4937 from constant while creating value range.
4939 2016-09-23 Renlin Li <renlin.li@arm.com>
4941 * ira.c (ira): Move ira_use_lra_p initialization code to ...
4942 (ira_init_once): Here.
4944 2016-09-23 Uros Bizjak <ubizjak@gmail.com>
4945 Jakub Jelinek <jakub@redhat.com>
4947 * hooks.h (hook_uint_uintp_false): Rename to...
4948 (hook_bool_uint_uintp_false): ... this.
4949 * hooks.c (hook_uint_uintp_false): Rename to...
4950 (hook_bool_uint_uintp_false): ... this.
4951 * target.def (elf_flags_numeric): Use hook_bool_uint_uintp_false
4952 instead of hook_uint_uintp_false.
4954 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
4956 * config/arm/arm-builtins.c (arm_init_neon_builtin): New.
4957 (arm_init_builtins): Move body of a loop to the standalone
4958 function arm_init_neon_builtin.
4959 (arm_expand_neon_builtin_1): New. Update comment. Function body
4960 moved from arm_neon_builtin with some white-space fixes.
4961 (arm_expand_neon_builtin): Move code into the standalone function
4962 arm_expand_neon_builtin_1.
4964 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
4966 * config/arm/iterators.md (VCVTHI): New.
4967 (NEON_VCMP): Add UNSPEC_VCLT and UNSPEC_VCLE. Fix a long line.
4971 (V_reg): Add HF, V4HF and V8HF. Fix white-space.
4972 (V_HALF): Add V4HF. Fix white-space.
4973 (V_if_elem): Add HF, V4HF and V8HF. Fix white-space.
4974 (V_s_elem): Likewise.
4975 (V_sz_elem): Fix white-space.
4976 (V_elem_ch): Likewise.
4978 (scalar_mul_constraint): Add V8HF and V4HF.
4979 (Is_float_mode): Fix white-space.
4980 (Is_d_reg): Add V4HF and V8HF. Fix white-space.
4981 (q): Add HF. Fix white-space.
4984 (cmp_op_unsp): Add UNSPEC_VCALE and UNSPEC_VCALT.
4985 (neon_vfm_lane_as): New.
4986 * config/arm/neon.md (add<mode>3_fp16): New.
4987 (sub<mode>3_fp16): New.
4988 (mul<mode>3add<mode>_neon): New.
4989 (fma<VH:mode>4_intrinsic): New.
4990 (fmsub<VCVTF:mode>4_intrinsic): Fix white-space.
4991 (fmsub<VH:mode>4_intrinsic): New.
4992 (<absneg_str><mode>2): New.
4993 (neon_v<absneg_str><mode>): New.
4994 (neon_v<fp16_rnd_str><mode>): New.
4995 (neon_vrsqrte<mode>): New.
4996 (neon_vpaddv4hf): New.
4997 (neon_vadd<mode>): New.
4998 (neon_vsub<mode>): New.
4999 (neon_vmulf<mode>): New.
5000 (neon_vfma<VH:mode>): New.
5001 (neon_vfms<VH:mode>): New.
5002 (neon_vc<cmp_op><mode>): New.
5003 (neon_vc<cmp_op><mode>_fp16insn): New
5004 (neon_vc<cmp_op_unsp><mode>_fp16insn_unspec): New.
5005 (neon_vca<cmp_op><mode>): New.
5006 (neon_vca<cmp_op><mode>_fp16insn): New.
5007 (neon_vca<cmp_op_unsp><mode>_fp16insn_unspec): New.
5008 (neon_vc<cmp_op>z<mode>): New.
5009 (neon_vabd<mode>): New.
5010 (neon_v<maxmin>f<mode>): New.
5011 (neon_vp<maxmin>fv4hf: New.
5012 (neon_<fmaxmin_op><mode>): New.
5013 (neon_vrecps<mode>): New.
5014 (neon_vrsqrts<mode>): New.
5015 (neon_vrecpe<mode>): New (VH variant).
5016 (neon_vdup_lane<mode>_internal): New.
5017 (neon_vdup_lane<mode>): New.
5018 (neon_vcvt<sup><mode>): New (VCVTHI variant).
5019 (neon_vcvt<sup><mode>): New (VH variant).
5020 (neon_vcvt<sup>_n<mode>): New (VH variant).
5021 (neon_vcvt<sup>_n<mode>): New (VCVTHI variant).
5022 (neon_vcvt<vcvth_op><sup><mode>): New.
5023 (neon_vmul_lane<mode>): New.
5024 (neon_vmul_n<mode>): New.
5025 * config/arm/unspecs.md (UNSPEC_VCALE): New
5026 (UNSPEC_VCALT): New.
5027 (UNSPEC_VFMA_LANE): New.
5028 (UNSPECS_VFMS_LANE): New.
5030 2016-09-23 Dominik Vogt <vogt@linux.vnet.ibm.com>
5032 * config/s390/s390.md ("*extzv<mode>_zEC12", "*extzv<mode>_z10")
5033 ("*extzv<mode><clobbercc_or_nocc>"):
5034 Correct a typo in a comment.
5036 ("*insv<mode>_zEC12", "*insv<mode>_z10")
5037 ("*insv<mode><clobbercc_or_nocc>"): Ditto.
5038 ("*insv<mode>_zEC12_appendbitsleft")
5039 ("*insv<mode><clobbercc_or_nocc>_appendbitsleft")
5040 ("*insv<mode>_z10_appendbitsleft"): Ditto.
5041 ("*insv<mode>_zEC12_noshift", "*insv<mode>_z10_noshift")
5042 ("*insv<mode><clobbercc_or_nocc>_noshift"): Ditto.
5043 Provide pattern with operands switched.
5044 ("*pre_z10_extv<mode>"):
5045 Use new subst patterns.
5046 ("*extzvdi<clobbercc_or_nocc>_lshiftrt", "*<risbg_n>_ior_and_sr_ze")
5047 ("*extvsidi<clobbercc_or_nocc>", "*<risbg_n>_and_subregdi_rotr")
5048 ("*<risbg_n>_and_subregdi_rotl", "*<risbg_n>_di_and_rot")
5049 ("*insv_z10_noshift_cc", "*insv_z10_noshift_cconly")
5050 ("*<risbg_n>_<mode>_ior_and_lshiftrt")
5051 ("*<risbg_n>_sidi_ior_and_lshiftrt")
5052 ("*trunc_sidi_and_subreg_lshrt<clobbercc_or_nocc>"):
5054 ("*extzv_<mode>_sll", "*extzv_<mode>_srl")
5055 ("*extzv_<mode>_srl<clobbercc_or_nocc>")
5056 ("*extzv_<mode>_sll<clobbercc_or_nocc>"): Renamed patterns, use risbgn
5058 ("SINT"): New mode_iterator with SI, HI, QI.
5059 * config/s390/subst.md ("clobbercc_or_nocc_subst", "z10_or_zEC12_cond")
5060 ("clobbercc_or_nocc", "risbg_n"): New constructs for risbg pattern
5063 2016-09-23 Dominik Vogt <vogt@linux.vnet.ibm.com>
5065 * config/s390/predicates.md ("contiguous_bitmask_operand"): Adapt to
5066 new interface of s390_contiguous_bitmask_p.
5067 ("contiguous_bitmask_nowrap_operand"): New predicate.
5068 ("*anddi3_cc", "*anddi3_cconly", "*anddi3"): Replace NxxDq with NxxDw.
5069 * config/s390/constraints.md ("NxxDw", "NxxSq"): Adapt to new interface
5070 of s390_contiguous_bitmask_p.
5071 ("NxxDw"): Rename NxxDq constraint to NxxDw.
5072 ("NxxSw"): New constraint.
5073 * config/s390/s390.md ("*andsi3_zarch"): Enable bitmask wraparound.
5074 * config/s390/s390-protos.h (s390_contiguous_bitmask_p): Updated
5076 (s390_contiguous_bitmask_nowrap_p): Export.
5077 * config/s390/s390.c (s390_contiguous_bitmask_nowrap_p): New name of
5078 former s390_contiguous_bitmask_p.
5079 (s390_contiguous_bitmask_p): Use s390_contiguous_bitmask_nowrap_p to
5080 detect contiguous bit ranges with wraparound. Change signature to
5081 return START and END position instead of POS and LENGTH.
5082 (s390_contiguous_bitmask_vector_p): Remove extra code for continous bit
5083 ranges with wraparound.
5084 (s390_extzv_shift_ok): Use s390_contiguous_bitmask_nowrap_p.
5085 (s390_contiguous_bitmask_vector_p,s390_extzv_shift_ok,print_operand):
5086 Adapt to new signature of s390_contiguous_bitmask_p.
5088 2016-09-23 Bin Cheng <bin.cheng@arm.com>
5090 * tree-vect-loop-manip.c (create_intersect_range_checks_index): New.
5091 (create_intersect_range_checks): New.
5092 (vect_create_cond_for_alias_checks): Call above function.
5094 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
5096 * config/arm/iterators.md (Code iterators): Fix some white-space
5100 (FCVT): Moved from vfp.md.
5101 (VCVT_HF_US_N): New.
5102 (VCVT_SI_US_N): New.
5107 (FCVTI32typename): Moved from vfp.md.
5108 (sup): Add UNSPEC_VCVTA_S, UNSPEC_VCVTA_U, UNSPEC_VCVTM_S,
5109 UNSPEC_VCVTM_U, UNSPEC_VCVTN_S, UNSPEC_VCVTN_U, UNSPEC_VCVTP_S,
5110 UNSPEC_VCVTP_U, UNSPEC_VCVT_HF_S_N, UNSPEC_VCVT_HF_U_N,
5111 UNSPEC_VCVT_SI_S_N, UNSPEC_VCVT_SI_U_N, UNSPEC_VCVTH_S_N,
5112 UNSPEC_VCVTH_U_N, UNSPEC_VCVTH_S and UNSPEC_VCVTH_U.
5114 (fp16_rnd_str): New.
5115 (fp16_rnd_insn): New.
5116 * config/arm/unspecs.md (UNSPEC_VCVT_HF_S_N): New.
5117 (UNSPEC_VCVT_HF_U_N): New.
5118 (UNSPEC_VCVT_SI_S_N): New.
5119 (UNSPEC_VCVT_SI_U_N): New.
5120 (UNSPEC_VCVTH_S): New.
5121 (UNSPEC_VCVTH_U): New.
5122 (UNSPEC_VCVTA_S): New.
5123 (UNSPEC_VCVTA_U): New.
5124 (UNSPEC_VCVTM_S): New.
5125 (UNSPEC_VCVTM_U): New.
5126 (UNSPEC_VCVTN_S): New.
5127 (UNSPEC_VCVTN_U): New.
5128 (UNSPEC_VCVTP_S): New.
5129 (UNSPEC_VCVTP_U): New.
5130 (UNSPEC_VCVTP_S): New.
5131 (UNSPEC_VCVTP_U): New.
5133 (UNSPEC_VRNDA): New.
5134 (UNSPEC_VRNDI): New.
5135 (UNSPEC_VRNDM): New.
5136 (UNSPEC_VRNDN): New.
5137 (UNSPEC_VRNDP): New.
5138 (UNSPEC_VRNDX): New.
5139 * config/arm/vfp.md (<absneg_str>hf2): New.
5141 (neon_v<fp16_rnd_str>hf): New.
5142 (neon_vrndihf): New.
5147 (*mulsf3neghf_vfp): New.
5148 (*negmulhf3_vfp): New.
5149 (*mulsf3addhf_vfp): New.
5150 (*mulhf3subhf_vfp): New.
5151 (*mulhf3neghfaddhf_vfp): New.
5152 (*mulhf3neghfsubhf_vfp): New.
5155 (fmsubhf4_fp16): New.
5159 (neon_vsqrthf): New.
5160 (neon_vrsqrtshf): New.
5161 (FCVT): Move to iterators.md.
5162 (FCVTI32typename): Likewise.
5163 (neon_vcvth<sup>hf): New.
5164 (neon_vcvth<sup>si): New.
5165 (neon_vcvth<sup>_nhf_unspec): New.
5166 (neon_vcvth<sup>_nhf): New.
5167 (neon_vcvth<sup>_nsi_unspec): New.
5168 (neon_vcvth<sup>_nsi): New.
5169 (neon_vcvt<vcvth_op>h<sup>si): New.
5170 (neon_<fmaxmin_op>hf): New.
5172 2016-09-23 Dominik Vogt <vogt@linux.vnet.ibm.com>
5174 * config/s390/s390.md (bitoff, bitoff_plus): Neq mode attributes.
5175 ("*extzv<mode>_zEC12", "*insv<mode>_zEC12", "*insv<mode>_z10")
5176 ("*insv<mode>_zEC12_appendbitsleft")
5177 ("*insv<mode>_z10_appendbitsleft", "*r<noxa>sbg_<mode>_sll")
5178 ("*r<noxa>sbg_<mode>_srl"): Use new attributes.
5180 2016-09-23 Jakub Jelinek <jakub@redhat.com>
5182 * ipa-cp.c (ipcp_store_vr_results): Avoid static local var zero.
5183 * sreal.h (sreal::min, sreal::max): Avoid static local vars,
5184 construct values without normalization.
5185 * tree-ssa-sccvn.c (vn_reference_lookup_3): Don't initialize
5186 static local lhs_ops to vNULL.
5188 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
5189 Jiong Wang <jiong.wang@arm.com>
5191 * config/arm/arm.c (coproc_secondary_reload_class): Make HFmode
5192 available when FP16 instructions are available.
5193 (output_move_vfp): Add support for 16-bit data moves.
5194 (arm_validize_comparison): Fix some white-space. Support HFmode
5195 by conversion to SFmode.
5196 * config/arm/arm.md (truncdfhf2): Fix a comment.
5197 (extendhfdf2): Likewise.
5199 (movsicc): Fix some white-space.
5201 (movsfcc): Fix some white-space.
5203 * config/arm/vfp.md (*arm_movhi_vfp): Disable when VFP FP16
5204 instructions are available.
5205 (*thumb2_movhi_vfp): Likewise.
5206 (*arm_movhi_fp16): New.
5207 (*thumb2_movhi_fp16): New.
5208 (*movhf_vfp_fp16): New.
5209 (*movhf_vfp_neon): Disable when VFP FP16 instructions are available.
5210 (*movhf_vfp): Likewise.
5211 (extendhfsf2): Enable when VFP FP16 instructions are available.
5212 (truncsfhf2): Enable when VFP FP16 instructions are available.
5214 2016-09-23 Martin Liska <mliska@suse.cz>
5216 * config/s390/vx-builtins.md: Replace 'adress' with 'address'.
5218 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
5220 * config/arm/arm.c (arm_evpc_neon_vuzp): Add support for V8HF and
5222 (arm_evpc_neon_vtrn): Likewise.
5223 (arm_evpc_neon_vrev): Likewise.
5224 (arm_evpc_neon_vext): Likewise.
5225 * config/arm/arm_neon.h (vbsl_f16): New.
5229 (vdup_lane_f16): New.
5230 (vdupq_lane_f16): New.
5243 * config/arm/arm_neon_buillins.def (vdup_n): New (v8hf, v4hf variants).
5244 (vdup_lane): New (v8hf, v4hf variants).
5245 (vext): New (v8hf, v4hf variants).
5246 (vbsl): New (v8hf, v4hf variants).
5247 * config/arm/iterators.md (VDQWH): New.
5249 (V_double_vector_mode): Add V8HF and V4HF. Fix white-space.
5250 (Scalar_mul_8_16): Fix white-space.
5251 (Is_d_reg): Add V4HF and V8HF.
5252 * config/arm/neon.md (neon_vdup_lane<mode>_internal): New.
5253 (neon_vdup_lane<mode>): New.
5254 (neon_vtrn<mode>_internal): Replace VDQW with VDQWH.
5255 (*neon_vtrn<mode>_insn): Likewise.
5256 (neon_vzip<mode>_internal): Likewise. Also fix white-space.
5257 (*neon_vzip<mode>_insn): Likewise
5258 (neon_vuzp<mode>_internal): Likewise.
5259 (*neon_vuzp<mode>_insn): Likewise
5260 * config/arm/vec-common.md (vec_perm_const<mode>): New.
5262 2016-09-23 Jiong Wang <jiong.wang@arm.com>
5263 Matthew Wahab <matthew.wahab@arm.com>
5265 * config/arm/arm.c (output_move_vfp): Weaken assert to allow HImode.
5266 (arm_hard_regno_mode_ok): Allow HImode values in VFP registers.
5267 * config/arm/arm.md (*movhi_bytes): Disable when VFP registers are
5268 available. Also fix some white-space.
5269 * config/arm/vfp.md (*arm_movhi_vfp): New.
5270 (*thumb2_movhi_vfp): New.
5272 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
5274 * config/arm/arm-c.c (arm_cpu_builtins): Define
5275 "__ARM_FEATURE_FP16_SCALAR_ARITHMETIC" and
5276 "__ARM_FEATURE_FP16_VECTOR_ARITHMETIC".
5278 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
5280 * doc/sourcebuild.texi (ARM-specific attributes): Add anchor for
5281 arm_v8_1a_neon_ok. Add entries for arm_v8_2a_fp16_scalar_ok,
5282 arm_v8_2a_fp16_scalar_hw, arm_v8_2a_fp16_neon_ok and
5283 arm_v8_2a_fp16_neon_hw.
5284 (Add options): Add entries for arm_v8_1a_neon, arm_v8_2a_scalar,
5287 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
5289 * doc/sourcebuild.texi (ARM-specific attributes): Add entries for
5290 arm_fp16_alternative_ok and arm_fp16_none_ok.
5292 2016-09-23 Martin Liska <mliska@suse.cz>
5294 * ipa-icf.c (sem_variable::merge): Replace adress with address.
5296 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
5298 * config/arm/arm-arches.def ("armv8.1-a"): Add FL_CRC32.
5300 ("armv8.2-a+fp16"): New.
5301 * config/arm/arm-protos.h (FL2_ARCH8_2): New.
5302 (FL2_FP16INST): New.
5303 (FL2_FOR_ARCH8_2A): New.
5304 * config/arm/arm-tables.opt: Regenerate.
5305 * config/arm/arm.c (arm_arch8_2): New.
5306 (arm_fp16_inst): New.
5307 (arm_option_override): Set arm_arch8_2 and arm_fp16_inst. Check
5308 for incompatible fp16-format settings.
5309 * config/arm/arm.h (TARGET_VFP_FP16INST): New.
5310 (TARGET_NEON_FP16INST): New.
5311 (arm_arch8_2): Declare.
5312 (arm_fp16_inst): Declare.
5313 * config/arm/bpabi.h (BE8_LINK_SPEC): Add entries for
5314 march=armv8.2-a and march=armv8.2-a+fp16.
5315 * config/arm/t-aprofile (Arch Matches): Add entries for armv8.2-a
5317 * doc/invoke.texi (ARM Options): Add "-march=armv8.1-a",
5318 "-march=armv8.2-a" and "-march=armv8.2-a+fp16".
5320 2016-09-23 Martin Liska <mliska@suse.cz>
5322 * doc/extend.texi: Remove fused-madd from i386 target options.
5324 2016-09-23 Martin Liska <mliska@suse.cz>
5326 * config/i386/i386.c (ix86_valid_target_attribute_inner_p):
5329 2016-09-23 Martin Liska <mliska@suse.cz>
5331 * config/i386/i386.c (ix86_valid_target_attribute_inner_p):
5334 2016-09-23 Martin Liska <mliska@suse.cz>
5337 * config/i386/i386.c (ix86_option_override_internal): Change
5338 signature and return false when there's an error related to
5340 (release_options_strings): New function.
5341 (ix86_valid_target_attribute_tree): Call the function.
5343 2016-09-23 Jakub Jelinek <jakub@redhat.com>
5345 * hsa-gen.c (hsa_op_immed::hsa_op_immed Use CONSTRUCTOR_NELTS (...)
5346 instead of vec_safe_length (CONSTRUCTOR_ELTS (...)).
5347 (gen_hsa_ctor_assignment): Likewise.
5348 * print-tree.c (print_node): Likewise.
5349 * tree-dump.c (dequeue_and_dump): Likewise.
5350 * tree-sra.c (sra_modify_constructor_assign): Likewise.
5351 * expr.c (store_constructor): Likewise.
5352 * fold-const.c (operand_equal_p): Likewise.
5353 * tree-pretty-print.c (dump_generic_node): Likewise.
5354 * hsa-brig.c (hsa_op_immed::emit_to_buffer): Likewise.
5355 * ipa-icf-gimple.c (func_checker::compare_operand): Likewise.
5357 2016-09-23 Richard Biener <rguenther@suse.de>
5359 * hooks.h (hook_uint_uintp_false): Declare.
5361 2016-09-22 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
5363 * config/avr/avr.c (avr_rtx_costs_1): Handle DImode MULT.
5364 (avr_address_cost): Replace 61 with MAX_LD_OFFSET(mode).
5366 2016-09-22 Martin Sebor <msebor@redhat.com>
5369 * gimple-ssa-sprintf.c (target_int_min, target_int_max): Use
5370 HOST_BITS_PER_WIDE_INT, make a static local variable auto.
5371 (target_int_min): Correct computation.
5372 (format_integer): Use long long as the argument for the ll length
5374 (format_floating): Use target_int_max().
5375 (get_string_length): Same.
5376 (format_string): Avoid setting the bounded flag for strings
5378 (try_substitute_return_value): Avoid setting range info when
5379 the result isn't bounded.
5380 * varasm.c (assemble_name): Increase buffer size.
5382 2016-09-22 Andre Vieira <andre.simoesdiasvieira@arm.com>
5383 Terry Guo <terry.guo@arm.com>
5385 * target.def (elf_flags_numeric): New target hook.
5386 * targhooks.h (default_asm_elf_flags_numeric): New.
5387 * varasm.c (default_asm_elf_flags_numeric): New.
5388 (default_elf_asm_named_section): Use new target hook.
5389 * config/arm/arm.opt (mpure-code): New.
5390 * config/arm/arm.h (SECTION_ARM_PURECODE): New.
5391 * config/arm/arm.c (arm_asm_init_sections): Add section
5392 attribute to default text section if -mpure-code.
5393 (arm_option_check_internal): Diagnose use of option with
5394 non supported targets and/or options.
5395 (arm_asm_elf_flags_numeric): New.
5396 (arm_function_section): New.
5397 (arm_elf_section_type_flags): New.
5398 * config/arm/elf.h (JUMP_TABLES_IN_TEXT_SECTION): Disable
5400 * gcc/doc/texi (TARGET_ASM_ELF_FLAGS_NUMERIC): New.
5401 * gcc/doc/texi.in (TARGET_ASM_ELF_FLAGS_NUMERIC): Likewise.
5403 2016-09-22 Jan Hubicka <hubicka@ucw.cz>
5405 * regcprop.c (copyprop_hardreg_forward_1): Remove noop moves.
5407 2016-09-22 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
5409 * emit-rtl.c (next_cc0_user): Make argument type rtx_insn *.
5410 * rtl.h: Adjust prototype.
5412 2016-09-22 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
5414 * emit-rtl.c (next_active_insn): Change argument type to rtx_insn *.
5415 (prev_active_insn): Likewise.
5416 (active_insn_p): Likewise.
5417 * rtl.h: Adjust prototypes.
5418 * cfgcleanup.c (merge_blocks_move_successor_nojumps): Adjust.
5419 * config/arc/arc.md: Likewise.
5420 * config/pa/pa.c (branch_to_delay_slot_p): Likewise.
5421 (branch_needs_nop_p): Likewise.
5422 (use_skip_p): Likewise.
5423 * config/sh/sh.c (gen_block_redirect): Likewise.
5424 (split_branches): Likewise.
5425 * reorg.c (optimize_skip): Likewise.
5426 (fill_simple_delay_slots): Likewise.
5427 (fill_slots_from_thread): Likewise.
5428 (relax_delay_slots): Likewise.
5429 * resource.c (mark_target_live_regs): Likewise.
5431 2016-09-22 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
5433 * config/cris/cris.c (cris_asm_output_case_end): Change argument
5435 * emit-rtl.c (next_nonnote_nondebug_insn): Likewise.
5436 (prev_nonnote_nondebug_insn): Likewise.
5437 * config/cris/cris-protos.h: Adjust prototype.
5439 * jump.c (rtx_renumbered_equal_p): Adjust.
5441 2016-09-22 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
5443 * emit-rtl.c (prev_real_insn): Change argument type to rtx_insn *.
5444 * rtl.h: Adjust prototype.
5445 * config/sh/sh.md: Adjust.
5446 * dwarf2out.c (add_var_loc_to_decl): Likewise.
5448 2016-09-22 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
5450 * emit-rtl.c (next_nondebug_insn): Change argument type to rtx_insn *.
5451 (prev_nondebug_insn): Likewise.
5452 * loop-doloop.c (doloop_condition_get): Likewise.
5453 * rtl.h: Adjust prototype.
5454 * cfgloop.h: Likewise.
5456 2016-09-22 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
5458 * emit-rtl.c (next_nonnote_insn): Change argument type to rtx_insn *.
5459 (prev_nonnote_insn): Likewise.
5460 * jump.c (reversed_comparison_code_parts): Likewise.
5461 (reversed_comparison): Likewise.
5462 * rtl.h: Adjust prototypes.
5463 * config/arc/arc.md: Adjust.
5464 * cse.c (find_comparison_args): Likewise.
5465 * reorg.c (redundant_insn): Change return type to rtx_insn *.
5466 (fix_reg_dead_note): Change argument type to rtx_insn *.
5467 (delete_prior_computation): Likewise.
5468 (delete_computation): Likewise.
5469 (fill_slots_from_thread): Adjust.
5470 (relax_delay_slots): Likewise.
5471 * simplify-rtx.c (simplify_unary_operation_1): Likewise.
5472 (simplify_relational_operation_1): Likewise.
5473 (simplify_ternary_operation): Likewise.
5475 2016-09-22 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
5477 * config/arc/arc-protos.h (arc_label_align): Change type of
5478 variables from rtx to rtx_insn *.
5479 * config/arc/arc.c (arc_label_align): Likewise.
5480 * config/arm/arm.c (any_sibcall_could_use_r3): Likewise.
5481 * config/bfin/bfin.c (workaround_speculation): Likewise.
5482 * config/c6x/c6x.c (find_next_cycle_insn): Likewise.
5483 (find_last_same_clock): Likewise.
5484 (reorg_split_calls): Likewise.
5485 * config/cris/cris-protos.h (cris_cc0_user_requires_cmp): Likewise.
5486 * config/cris/cris.c (cris_cc0_user_requires_cmp): Likewise.
5487 * config/h8300/h8300-protos.h (same_cmp_preceding_p): Likewise.
5488 (same_cmp_following_p): Likewise.
5489 * config/h8300/h8300.c (same_cmp_preceding_p): Likewise.
5490 (same_cmp_following_p): Likwise.
5491 * config/m32r/m32r.c (m32r_expand_epilogue): Likewise.
5492 * config/nds32/nds32-protos.h (nds32_target_alignment): Likewise.
5493 * config/nds32/nds32.c (nds32_target_alignment): Likewise.
5494 * config/rl78/rl78.c (rl78_alloc_physical_registers_op2): Likewise.
5495 (rl78_alloc_physical_registers_cmp): Likewise.
5496 (rl78_alloc_physical_registers_umul): Likewise.
5497 (rl78_calculate_death_notes): Likewise.
5498 * config/s390/s390-protos.h (s390_label_align): Likewise.
5499 * config/s390/s390.c (s390_label_align): Likewise.
5500 * config/sh/sh.c (barrier_align): Likewise.
5501 * config/sparc/sparc-protos.h (emit_cbcond_nop): Likewise.
5502 * config/sparc/sparc.c (sparc_asm_function_epilogue): Likewise.
5503 (emit_cbcond_nop): Likewise.
5505 2016-09-22 Martin Liska <mliska@suse.cz>
5508 * ipa-icf.c (sem_variable::merge): Yield merge operation if
5509 alias address matters, not necessarily address of original.
5511 2016-09-22 Richard Biener <rguenther@suse.de>
5514 * gimple-fold.c (fold_array_ctor_reference): Turn asserts into
5517 2016-09-22 Richard Biener <rguenther@suse.de>
5520 * gimple-match-head.c (gimple_resimplify1): Drop TREE_OVERFLOW
5521 from constant folding results.
5522 (gimple_resimplify2): Likewise.
5523 (gimple_resimplify3): Likewise.
5525 2016-09-22 Richard Biener <rguenther@suse.de>
5528 * expr.c (expand_expr_real_1): Guard array access against negative
5531 2016-09-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5533 * gimple-ssa-sprintf.c (format_floating_max): Use GMP_RNDN instead
5535 (format_floating): Likewise.
5537 2016-09-22 Jakub Jelinek <jakub@redhat.com>
5540 * tree-inline.c (remap_gimple_stmt): Set has_simduid_loops
5541 for all IFN_GOMP_SIMD_* internal fns, not just for
5542 IFN_GOMP_SIMD_ORDERED_*.
5544 2016-09-21 Michael Meissner <meissner@linux.vnet.ibm.com>
5547 * config/rs6000/predicates.md (invert_fpmask_comparison_operator):
5548 New predicate that matches the ISA 3.0 XSCMP{EQ,GT,GE}DP
5549 instructions when you want to invert the test.
5550 * config/rs6000/rs6000.md (fpmask<mode>): Use the arguments in the
5551 correct order for XXSEL.
5552 (mov<SFDF:mode><SFDF2:mode>cc_invert_p9): Define the inverted test
5553 for using XSCMP{EQ,GT,GE}DP.
5555 2016-09-21 David Malcolm <dmalcolm@redhat.com>
5557 * genconstants.c (main): Introduce noop_reader and convert call
5558 to read_md_files to a method call.
5559 * genenums.c (main): Likewise.
5560 * genmddeps.c (main): Likewise.
5561 * genpreds.c (write_tm_constrs_h): Replace use of "in_fname" with
5562 rtx_reader_ptr->get_top_level_filename ().
5563 (write_tm_preds_h): Likewise.
5564 (write_insn_preds_c): Likewise.
5565 * gensupport.c (class gen_reader): New subclass of rtx_reader.
5566 (rtx_handle_directive): Convert to...
5567 (gen_reader::handle_unknown_directive): ...this.
5568 (init_rtx_reader_args_cb): Convert return type from bool to
5569 rtx_reader *. Create a gen_reader instance, using it for the
5570 call to read_md_files. Return it if no errors occur.
5571 (init_rtx_reader_args): Convert return type from bool to
5573 * gensupport.h (init_rtx_reader_args_cb): Likewise.
5574 (init_rtx_reader_args_cb): Likewise.
5575 * read-md.c (struct file_name_list): Move to class rtx_reader.
5576 (read_md_file): Delete in favor of rtx_reader::m_read_md_file.
5577 (read_md_filename): Delete in favor of
5578 rtx_reader::m_read_md_filename.
5579 (read_md_lineno): Delete in favor of rtx_reader::m_read_md_lineno.
5580 (in_fname): Delete in favor of rtx_reader::m_toplevel_fname.
5581 (base_dir): Delete in favor of rtx_reader::m_base_dir.
5582 (first_dir_md_include): Delete in favor of
5583 rtx_reader::m_first_dir_md_include.
5584 (last_dir_md_include_ptr): Delete in favor of
5585 rtx_reader::m_last_dir_md_include_ptr.
5586 (max_include_len): Delete.
5587 (rtx_reader_ptr): New.
5588 (fatal_with_file_and_line): Use get_filename and get_lineno
5589 accessors of rtx_reader_ptr.
5590 (require_char_ws): Likewise.
5591 (rtx_reader::read_char): New method, based on ::read_char.
5592 (rtx_reader::unread_char): New method, based on ::unread_char.
5593 (read_escape): Use get_filename and get_lineno accessors of
5595 (read_braced_string): Use get_lineno accessor of rtx_reader_ptr.
5596 (read_string): Use get_filename and get_lineno accessors of
5598 (rtx_reader::rtx_reader): New ctor.
5599 (rtx_reader::~rtx_reader): New dtor.
5600 (handle_include): Convert from a function to...
5601 (rtx_reader::handle_include): ...this method, converting
5602 handle_directive from a callback to a virtual function.
5603 (handle_file): Likewise, converting to...
5604 (rtx_reader::handle_file): ...this method.
5605 (handle_toplevel_file): Likewise, converting to...
5606 (rtx_reader::handle_toplevel_file): ...this method.
5607 (rtx_reader::get_current_location): New method.
5608 (parse_include): Convert from a function to...
5609 (rtx_reader::add_include_path): ...this method, dropping redundant
5610 update to unused max_include_len.
5611 (read_md_files): Convert from a function to...
5612 (rtx_reader::read_md_files): ...this method, converting
5613 handle_directive from a callback to a virtual function.
5614 (noop_reader::handle_unknown_directive): New method.
5615 * read-md.h (directive_handler_t): Delete this typedef.
5617 (read_md_file): Delete.
5618 (read_md_lineno): Delete.
5619 (read_md_filename): Delete.
5620 (class rtx_reader): New class.
5621 (rtx_reader_ptr): New decl.
5622 (class noop_reader): New subclass of rtx_reader.
5623 (read_char): Reimplement in terms of rtx_reader::read_char.
5624 (unread_char): Reimplement in terms of rtx_reader::unread_char.
5625 (read_md_files): Delete.
5626 * read-rtl.c (read_rtx_code): Update for deletion of globals
5627 read_md_filename and read_md_lineno.
5629 2016-09-21 Jason Merrill <jason@redhat.com>
5631 * input.h (from_macro_definition_at): New.
5633 2016-09-21 Segher Boessenkool <segher@kernel.crashing.org>
5635 * doc/rtl.texi (JUMP_LABEL): Document RETURN and SIMPLE_RETURN values.
5637 2016-09-21 Bernd Edlinger <bernd.edlinger@hotmail.de>
5639 PR tree-optimization/77550
5640 * tree-vect-stmts.c (create_array_ref): Change parameters.
5641 (get_group_alias_ptr_type): New function.
5642 (vectorizable_store, vectorizable_load): Use get_group_alias_ptr_type.
5644 2016-09-21 Marek Polacek <polacek@redhat.com>
5646 * gimple-ssa-sprintf.c (pass_sprintf_length::compute_format_length):
5647 Add falls through comment.
5649 2016-09-21 Richard Biener <rguenther@suse.de>
5651 * dwarf2out.c (remove_child_with_prev): Clear child->die_sib.
5652 (replace_child): Likewise.
5653 (remove_child_TAG): Adjust.
5654 (move_marked_base_types): Likewise.
5655 (prune_unused_types_prune): Clear die_sib of removed children.
5657 2016-09-21 Georg-Johann Lay <avr@gjlay.de>
5660 * config/avr/avr.c (avr_notice_update_cc) [CC_NONE]: If insn
5661 touches some regs mentioned in cc_status, do CC_STATUS_INIT.
5663 2016-09-21 Richard Biener <rguenther@suse.de>
5665 PR tree-optimization/77648
5666 * tree-ssa-structalias.c (process_constraint): Handle all DEREF
5668 (make_transitive_closure_constraints): Adjust comment.
5669 (make_any_offset_constraints): New function.
5670 (handle_rhs_call): Make sure to first expand a pointer to all
5671 subfields before transitively closing it.
5672 (handle_const_call): Likewise. Properly expand returned
5674 (handle_pure_call): Likewise.
5676 2016-09-21 Richard Biener <rguenther@suse.de>
5677 Jakub Jelinek <jakub@redhat.com>
5679 PR tree-optimization/77621
5680 * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Split
5681 group at non-vectorizable stmts.
5683 2016-09-21 Kugan Vivekanandarajah <kuganv@linaro.org>
5685 PR tree-optimization/72835
5686 * tree-ssa-reassoc.c (make_new_ssa_for_def): New.
5687 (make_new_ssa_for_all_defs): Likewise.
5688 (zero_one_operation): Replace all SSA_NAMEs defined in the chain.
5690 2016-09-20 Martin Sebor <msebor@redhat.com>
5693 * Makefile.in (OBJS): Add gimple-ssa-sprintf.o.
5694 * config/linux.h (TARGET_PRINTF_POINTER_FORMAT): Redefine.
5695 * config/linux.c (gnu_libc_printf_pointer_format): New function.
5696 * config/sol2.h (TARGET_PRINTF_POINTER_FORMAT): Same.
5697 * config/sol2.c (solaris_printf_pointer_format): New function.
5698 * doc/invoke.texi (-Wformat-length, -fprintf-return-value): New
5700 * doc/tm.texi.in (TARGET_PRINTF_POINTER_FORMAT): Document.
5701 * doc/tm.texi: Regenerate.
5702 * gimple-fold.h (get_range_strlen): New function.
5703 (get_maxval_strlen): Declare existing function.
5704 * gimple-fold.c (get_range_strlen): Add arguments and compute both
5705 maximum and minimum.
5706 (get_range_strlen): Define overload.
5707 (get_maxval_strlen): Adjust.
5708 * gimple-ssa-sprintf.c: New file and pass.
5709 * passes.def (pass_sprintf_length): Add new pass.
5710 * targhooks.h (default_printf_pointer_format): Declare new function.
5711 (gnu_libc_printf_pointer_format): Same.
5712 (solaris_libc_printf_pointer_format): Same.
5713 * targhooks.c (default_printf_pointer_format): Define new function.
5714 * tree-pass.h (make_pass_sprintf_length): Declare new function.
5715 * print-tree.c: Increase buffer size.
5717 2016-09-21 Kugan Vivekanandarajah <kuganv@linaro.org>
5719 * tree-vrp.c (get_value_range): Teach PARM_DECL to use ipa-vrp results.
5721 2016-09-21 Kugan Vivekanandarajah <kuganv@linaro.org>
5723 * common.opt: New option -fipa-vrp.
5724 * ipa-cp.c (ipa_get_vr_lat): New.
5725 (ipcp_vr_lattice::print): Likewise.
5726 (print_all_lattices): Call ipcp_vr_lattice::print.
5727 (ipcp_vr_lattice::meet_with): New.
5728 (ipcp_vr_lattice::meet_with_1): Likewise.
5729 (ipcp_vr_lattice::top_p): Likewise.
5730 (ipcp_vr_lattice::bottom_p): Likewsie.
5731 (ipcp_vr_lattice::set_to_bottom): Likewise.
5732 (set_all_contains_variable): Call VR set_to_bottom.
5733 (initialize_node_lattices): Init VR lattices.
5734 (propagate_vr_accross_jump_function): New.
5735 (propagate_constants_accross_call): Call
5736 propagate_vr_accross_jump_function.
5737 (ipcp_store_vr_results): New.
5738 (ipcp_driver): Handle VR.
5739 * ipa-prop.c (ipa_print_node_jump_functions_for_edge): Handle VR.
5740 (ipa_set_jf_unknown): Likewise.
5741 (ipa_compute_jump_functions_for_edge): Likewise.
5742 (ipa_node_params_t::duplicate): Likewise.
5743 (ipa_write_jump_function): Likewise.
5744 (ipa_read_jump_function): Likewise.
5745 (write_ipcp_transformation_info): Likewise.
5746 (read_ipcp_transformation_info): Likewise.
5747 (ipcp_update_vr): New.
5748 (ipcp_transform_function): Handle VR.
5749 * ipa-prop.h (struct ipa_vr): New.
5750 * cgraph.c: Include tree-vrp.h.
5751 * cgraphunit.c: Likewise.
5752 * ipa-utils.c: Likewise.
5755 * toplev.c: Likewise.
5756 * ipa-devirt.c: Likewise.
5757 * ipa-inline-transform.c: Likewise.
5758 * ipa-inline.c: Likewise.
5759 * ipa-profile.c: Likewise.
5761 2016-09-21 Kugan Vivekanandarajah <kuganv@linaro.org>
5763 * doc/invoke.texi: Document -fdump-tree-evrp.
5764 * passes.def: Define new pass_early_vrp.
5765 * timevar.def: Define new TV_TREE_EARLY_VRP.
5766 * tree-pass.h (make_pass_early_vrp): New.
5767 * tree-ssa-propagate.c: Make replace_uses_in non static.
5768 * tree-ssa-propagate.h: Export replace_uses_in.
5769 * tree-vrp.c (extract_range_for_var_from_comparison_expr): New.
5770 (extract_range_from_assert): Factor out
5771 extract_range_for_var_from_comparison_expr.
5772 (vrp_initialize_lattice): New.
5773 (vrp_initialize): Factor out vrp_initialize_lattice.
5774 (vrp_valueize): Fix it to reject complex value ranges.
5775 (vrp_free_lattice): New.
5776 (evrp_dom_walker::before_dom_children): Likewise.
5777 (evrp_dom_walker::after_dom_children): Likewise.
5778 (evrp_dom_walker::push_value_range): Likewise.
5779 (evrp_dom_walker::pop_value_range): Likewise.
5780 (execute_early_vrp): Likewise.
5781 (execute_vrp): Call vrp_initialize_lattice and vrp_free_lattice.
5782 (make_pass_early_vrp): New.
5784 2016-09-20 Uros Bizjak <ubizjak@gmail.com>
5786 * config/i386/i386.md (mult->ashift peephole2s): Use pow2p_hwi
5787 instead of exact_log2.
5789 2016-09-20 Uros Bizjak <ubizjak@gmail.com>
5792 * config/i386/i386.c (ix86_preferred_simd_mode) <case DFmode>:
5793 Don't return word_mode for !TARGET_VECTORIZE_DOUBLE.
5794 (ix86_add_stmt_cost): Penalize DFmode vector operations
5795 for !TARGET_VECTORIZE_DOUBLE.
5797 2016-09-20 Gerald Pfeifer <gerald@pfeifer.com>
5799 * doc/invoke.texi (Warning Options): Simplify language.
5800 (Optimize Options): Complete sentence.
5802 2016-09-20 David Edelsohn <dje.gcc@gmail.com>
5804 * dbxout.c (xcoff_debug_hooks): Add filename parameter to
5807 2016-09-20 Michael Meissner <meissner@linux.vnet.ibm.com>
5810 * config/rs6000/rs6000.c (rs6000_expand_vector_init): For V4SF
5811 inits on power8 and above, use the VMRGEW instruction instead of a
5814 * config/rs6000/altivec.md (UNSPEC_VMRGEW_DIRECT): New unspec.
5815 (p8_vmrgew_v4sf_direct): New VMRGEW insn for V4SF floating
5818 2016-09-20 Tamar Christina <tamar.christina@arm.com>
5820 * config/aarch64/arm_neon.h
5821 (vst2_s64, vst2_u64, vst2_f64, vst2_s8): Add missing attributes.
5822 (vst3_s64, vst3_u64, vst3_f64, vst3_s8): Likewise.
5823 (vst4_s64, vst4_u64, vst4_f64, vst4_s8): Likewise.
5825 2016-09-20 Bernd Edlinger <bernd.edlinger@hotmail.de>
5827 * config/var/vax.h (ELIMINABLE_REGS): Define.
5828 (INITIAL_ELIMINATION_OFFSET): Define.
5830 2016-09-20 Jakub Jelinek <jakub@redhat.com>
5833 * builtins.c (fold_builtin_atomic_always_lock_free): Only look through
5834 cast to void * if the cast is from some other pointer type.
5836 2016-09-20 Richard Biener <rguenther@suse.de>
5838 PR tree-optimization/77646
5839 * tree-ssa-sccvn.c (visit_reference_op_call): Always value-number
5842 2016-09-20 Tamar Christina <tamar.christina@arm.com>
5844 * config/aarch64/arm_neon.h: Add gnu_inline and artificial
5845 attributes to all inlined functions and make them extern.
5847 2016-09-20 Richard Biener <rguenther@suse.de>
5849 * debug.h (gcc_debug_hooks): Add filename parameter to early_finish
5851 * debug.c (do_nothing_debug_hooks): Adjust.
5852 * dbxout.c (dbx_debug_hooks): Likewise.
5853 * sdbout.c (sdb_debug_hooks): Likewise.
5854 * dwarf2out.c (dwarf2_lineno_debug_hooks): Likewise.
5855 (dwarf2out_finish): Move producer, filename and
5857 (dwarf2out_early_finish): ... here. Remove in_lto_p special-casing.
5858 * cgraphunit.c (symbol_table::finalize_compilation_unit): Adjust.
5860 2016-09-19 Bernd Edlinger <bernd.edlinger@hotmail.de>
5863 * doc/invoke.texi: Document -Wint-in-bool-context.
5866 * dwarf2out.c (output_loc_operands): Fix an assertion.
5868 2016-09-19 Joseph Myers <joseph@codesourcery.com>
5870 * ginclude/float.h [__STDC_WANT_IEC_60559_BFP_EXT__]
5871 (CR_DECIMAL_DIG): New macro.
5873 2016-09-19 Joseph Myers <joseph@codesourcery.com>
5875 * ginclude/stddef.h (max_align_t) [__i386__]: Add __float128
5878 2016-09-19 Vladimir Makarov <vmakarov@redhat.com>
5880 PR rtl-optimization/77416
5881 * lra-remat.c (operand_to_remat): Process hard coded insn
5884 2016-09-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5886 * simplify-rtx.c (simplify_relational_operation_1): Add transformation
5887 (GTU (PLUS a C) (C - 1)) --> (LTU a -C).
5889 2016-09-19 Segher Boessenkool <segher@kernel.crashing.org>
5891 * target.def (lra_p): Wordsmithing.
5892 * doc/tm.texi: Regenerate.
5894 2016-09-19 Jakub Jelinek <jakub@redhat.com>
5895 Jan Hubicka <jh@suse.cz>
5898 * cgraph.c (cgraph_node::rtl_info): Pass &avail to
5899 ultimate_alias_target call, return NULL if avail < AVAIL_AVAILABLE.
5900 Call ultimate_alias_target just once, not up to 4 times.
5902 2016-09-19 Richard Biener <rguenther@suse.de>
5904 * dwarf2out.c (early_dwarf_finished): New global.
5905 (set_early_dwarf::set_early_dwarf): Assert early_dwarf_finished
5907 (dwarf2out_early_finish): Set early_dwarf_finished at the end,
5908 if called from LTO exit early.
5909 (dwarf2out_late_global_decl): When being during the early
5910 debug phase do not add locations but only const value attributes.
5911 Adjust the way we generate early DIEs for LTO.
5913 2016-09-19 Richard Biener <rguenther@suse.de>
5916 * tree-data-ref.c (analyze_subscript_affine_affine): Use the
5917 proper niter to bound the loops.
5919 2016-09-19 Richard Biener <rguenther@suse.de>
5921 PR tree-optimization/77514
5922 * tree-ssa-pre.c (create_expression_by_pieces): Optimize
5923 search for folded stmt.
5925 2016-09-17 Jan Hubicka <hubicka@ucw.cz>
5927 * passes.def (pass_early_thread_jumps): Schedule after forwprop.
5928 * tree-pass.h (make_pass_early_thread_jumps): Declare.
5929 * tree-ssa-threadbackward.c (fsm_find_thread_path,
5930 fsm_find_thread_path, profitable_jump_thread_path,
5931 fsm_find_control_statement_thread_paths,
5932 find_jump_threads_backwards): Add speed_p parameter.
5933 (pass_data_early_thread_jumps): New pass.
5934 (make_pass_early_thread_jumps): New function.
5936 2016-09-17 Andreas Schwab <schwab@suse.de>
5938 * config/ia64/ia64.h (ASM_OUTPUT_DWARF_OFFSET): Add cast.
5939 * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Likewise.
5941 2016-09-16 Eric Botcazou <ebotcazou@adacore.com>
5943 * recog.c (rest_of_handle_split_after_reload): Delete.
5944 (pass_split_after_reload::gate): New method.
5945 (pass_split_after_reload::execute): Call split_all_insns directly.
5947 2016-09-16 Jonathan Wakely <jwakely@redhat.com>
5949 * doc/extend.texi (Integer Overflow Builtins): Fix type of out
5950 parameters for functions taking long long arguments.
5952 2016-09-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
5955 * config/rs6000/rs6000.c (rtx_is_swappable_p): Add support for
5956 splat with truncate.
5958 2016-09-16 Jason Merrill <jason@redhat.com>
5960 * hwint.h (least_bit_hwi, pow2_or_zerop, pow2p_hwi, ctz_or_zero):
5962 * hwint.c (exact_log2): Use pow2p_hwi.
5963 (ctz_hwi, ffs_hwi): Use least_bit_hwi.
5964 * alias.c (memrefs_conflict_p): Use pow2_or_zerop.
5965 * builtins.c (get_object_alignment_2, get_object_alignment)
5966 (get_pointer_alignment, fold_builtin_atomic_always_lock_free): Use
5968 * calls.c (compute_argument_addresses, store_one_arg): Use
5970 * cfgexpand.c (expand_one_stack_var_at): Use least_bit_hwi.
5971 * combine.c (force_to_mode): Use least_bit_hwi.
5972 (contains_muldiv, find_split_point, combine_simplify_rtx)
5973 (simplify_if_then_else, simplify_set, force_to_mode)
5974 (if_then_else_cond, simplify_and_const_int_1)
5975 (simplify_compare_const): Use pow2p_hwi.
5976 * cse.c (fold_rtx): Use pow2p_hwi.
5977 * emit-rtl.c (set_mem_attributes_minus_bitpos, adjust_address_1):
5979 * expmed.c (synth_mult, expand_divmod): Use ctz_or_zero, ctz_hwi.
5980 (init_expmed_one_conv): Use pow2p_hwi.
5981 * expr.c (is_aligning_offset): Use pow2p_hwi.
5982 * fold-const.c (round_up_loc, round_down_loc): Use pow2_or_zerop.
5983 (fold_binary_loc): Use pow2p_hwi.
5984 * function.c (assign_parm_find_stack_rtl): Use least_bit_hwi.
5985 * gimple-fold.c (gimple_fold_builtin_memory_op): Use pow2p_hwi.
5986 * gimple-ssa-strength-reduction.c (replace_ref): Use least_bit_hwi.
5987 * hsa-gen.c (gen_hsa_addr_with_align, hsa_bitmemref_alignment):
5989 * ifcvt.c (noce_try_store_flag_constants): Use pow2p_hwi.
5990 * ipa-cp.c (ipcp_alignment_lattice::meet_with_1): Use least_bit_hwi.
5991 * ipa-prop.c (ipa_modify_call_arguments): Use least_bit_hwi.
5992 * omp-low.c (oacc_loop_fixed_partitions)
5993 (oacc_loop_auto_partitions): Use least_bit_hwi.
5994 * rtlanal.c (nonzero_bits1): Use ctz_or_zero.
5995 * stor-layout.c (place_field): Use least_bit_hwi.
5996 * tree-pretty-print.c (dump_generic_node): Use pow2p_hwi.
5997 * tree-sra.c (build_ref_for_offset): Use least_bit_hwi.
5998 * tree-ssa-ccp.c (ccp_finalize): Use least_bit_hwi.
5999 * tree-ssa-math-opts.c (bswap_replace): Use least_bit_hwi.
6000 * tree-ssa-strlen.c (handle_builtin_memcmp): Use pow2p_hwi.
6001 * tree-vect-data-refs.c (vect_analyze_group_access_1)
6002 (vect_grouped_store_supported, vect_grouped_load_supported)
6003 (vect_permute_load_chain, vect_shift_permute_load_chain)
6004 (vect_transform_grouped_load): Use pow2p_hwi.
6005 * tree-vect-generic.c (expand_vector_divmod): Use ctz_or_zero.
6006 * tree-vect-patterns.c (vect_recog_divmod_pattern): Use ctz_or_zero.
6007 * tree-vect-stmts.c (vectorizable_mask_load_store): Use
6009 * tsan.c (instrument_expr): Use least_bit_hwi.
6010 * var-tracking.c (negative_power_of_two_p): Use pow2_or_zerop.
6012 2016-09-16 Andreas Schwab <schwab@suse.de>
6014 * config/ia64/ia64.h (ASM_OUTPUT_DWARF_OFFSET): Use parameter
6016 * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Likewise.
6018 2016-09-16 Jakub Jelinek <jakub@redhat.com>
6021 * combine.c (rest_of_handle_combine): If any edges have been purged,
6022 free dominators if available.
6024 2016-09-16 Jakub Jelinek <jakub@redhat.com>
6025 Eric Botcazou <ebotcazou@adacore.com>
6028 * internal-fn.c (expand_arith_overflow) <case MINUS_EXPR>: Don't fall
6029 through into expand_addsub_overflow after expand_neg_overflow.
6031 2016-09-15 David Malcolm <dmalcolm@redhat.com>
6033 * diagnostic-show-locus.c
6034 (selftest::test_fixit_insert_containing_newline): New function.
6035 (selftest::test_fixit_replace_containing_newline): New function.
6036 (selftest::diagnostic_show_locus_c_tests): Call the above.
6038 2016-09-15 Bin Cheng <bin.cheng@arm.com>
6040 PR tree-optimization/77503
6041 * tree-vect-loop.c (vectorizable_reduction): Record reduction
6042 code for CONST_COND_REDUCTION at analysis stage and use it at
6044 * tree-vectorizer.h (struct _stmt_vec_info): New field.
6045 (STMT_VINFO_VEC_CONST_COND_REDUC_CODE): New macro.
6046 * tree-vect-stmts.c (new_stmt_vec_info): Initialize above new
6049 2016-09-15 Richard Biener <rguenther@suse.de>
6052 * fold-const.c (split_tree): Do not split constant ~X.
6054 2016-09-15 Jakub Jelinek <jakub@redhat.com>
6056 PR rtl-optimization/77425
6057 * sched-int.h (sd_iterator_cond): Don't update it_ptr->linkp if list
6061 * config/i386/i386.c (ix86_parse_stringop_strategy_string): Simplify,
6062 use %qs instead of %s where desirable, use argument instead of arg in
6063 the diagnostic wording, add list of supported strategies and
6065 (ix86_option_override_internal): Emit target("m...") instead of
6066 option("m...") in the diagnostic. Use %qs instead of %s in invalid
6067 -march/-mtune option diagnostic. Add list of supported arches/tunings
6068 and spellcheck hint. Remove prefix, suffix and sw variables, use
6069 main_args_p ? "..." : "..." in diagnostics to make translation
6072 2016-09-15 Richard Biener <rguenther@suse.de>
6074 * dwarf2asm.h (dw2_asm_output_offset): Add overload with
6075 extra offset argument.
6076 * dwarf2asm.c (dw2_asm_output_offset): Implement that.
6077 * doc/tm.texi.in (ASM_OUTPUT_DWARF_OFFSET): Adjust documentation
6078 to reflect new offset parameter.
6079 * doc/tm.texi: Regenerate.
6080 * config/darwin.h (ASM_OUTPUT_DWARF_OFFSET): Adjust.
6081 * config/darwin-protos.h (darwin_asm_output_dwarf_delta): Add
6083 (darwin_asm_output_dwarf_offset): Likewise.
6084 * config/darwin.c (darwin_asm_output_dwarf_delta): Add offset
6086 (darwin_asm_output_dwarf_offset): Pass offset argument through.
6087 * config/ia64/ia64.h (ASM_OUTPUT_DWARF_OFFSET): Adjust.
6088 * config/i386/cygmin.h (ASM_OUTPUT_DWARF_OFFSET): Likewise.
6090 2016-09-15 Chung-Lin Tang <cltang@codesourcery.com>
6093 * ipa-icf.c (set_alias_uids): New function.
6094 (sem_variable::merge): Use set_alias_uids to set DECL_PT_UID of
6095 all the merged variable's referring aliases.
6097 2016-09-15 Richard Biener <rguenther@suse.de>
6099 PR tree-optimization/77514
6100 * tree-ssa-pre.c (create_expression_by_pieces): Handle garbage
6101 only forced_stmts sequence.
6103 2016-09-15 Kugan Vivekanandarajah <kuganv@linaro.org>
6105 * tree-ssanames.h (FOR_EACH_SSA_NAME): New.
6106 * cfgexpand.c (update_alias_info_with_stack_vars): Use
6107 FOR_EACH_SSA_NAME to iterate over SSA variables.
6108 (pass_expand::execute): Likewise.
6109 * omp-simd-clone.c (ipa_simd_modify_function_body): Likewise.
6110 * tree-cfg.c (dump_function_to_file): Likewise.
6111 * tree-into-ssa.c (pass_build_ssa::execute): Likewise.
6112 (update_ssa): Likewise.
6113 * tree-ssa-alias.c (dump_alias_info): Likewise.
6114 * tree-ssa-ccp.c (ccp_finalize): Likewise.
6115 * tree-ssa-coalesce.c (build_ssa_conflict_graph): Likewise.
6116 (create_outofssa_var_map): Likewise.
6117 (coalesce_ssa_name): Likewise.
6118 * tree-ssa-operands.c (dump_immediate_uses): Likewise.
6119 * tree-ssa-pre.c (compute_avail): Likewise.
6120 * tree-ssa-sccvn.c (init_scc_vn): Likewise.
6121 (scc_vn_restore_ssa_info): Likewise.
6122 (free_scc_vn): Likwise.
6123 (run_scc_vn): Likewise.
6124 * tree-ssa-structalias.c (compute_points_to_sets): Likewise.
6125 * tree-ssa-ter.c (new_temp_expr_table): Likewise.
6126 * tree-ssa-copy.c (fini_copy_prop): Likewise.
6127 * tree-ssa.c (verify_ssa): Likewise.
6129 2016-09-14 Matthew Fortune <matthew.fortune@imgtec.com>
6131 * config.gcc (mips*-mti-elf*, mips*-mti-linux*): Set mips32r2
6132 and mips64r2 as default 32-bit and 64-bit architectures.
6133 (mips*-img-elf*, mips*-img-linux*): Set mips32r6 and mips64r6
6134 as default 32-bit and 64-bit architectures.
6136 2016-09-14 Pat Haugen <pthaugen@us.ibm.com>
6138 * loop-unroll.c (unroll_loop_runtime_iterations): Set probability
6141 2016-09-14 Segher Boessenkool <segher@kernel.crashing.org>
6143 * target.def (lra_p): Change commentary (for the manual) for the
6145 * doc/tm.texi: Regenerate.
6147 2016-09-14 Segher Boessenkool <segher@kernel.crashing.org>
6149 * config/aarch64/aarch64.c (TARGET_LRA_P): Delete macro.
6150 * config/arm/arm.c (TARGET_LRA_P): Delete macro.
6151 * config/i386/i386.c (TARGET_LRA_P): Delete macro.
6152 * config/nds32/nds32.c (TARGET_LRA_P): Delete macro.
6154 2016-09-14 Segher Boessenkool <segher@kernel.crashing.org>
6156 * targhooks.c (default_lra_p): Return true instead of false.
6158 2016-09-14 Segher Boessenkool <segher@kernel.crashing.org>
6160 * config/alpha/alpha.c (TARGET_LRA_P): New macro, defined to
6161 hook_bool_void_false.
6162 * config/avr/avr.c: Ditto.
6163 * config/bfin/bfin.c: Ditto.
6164 * config/c6x/c6x.c: Ditto.
6165 * config/cr16/cr16.c: Ditto.
6166 * config/cris/cris.c: Ditto.
6167 * config/epiphany/epiphany.c: Ditto.
6168 * config/fr30/fr30.c: Ditto.
6169 * config/frv/frv.c: Ditto.
6170 * config/h8300/h8300.c: Ditto.
6171 * config/ia64/ia64.c: Ditto.
6172 * config/iq2000/iq2000.c: Ditto.
6173 * config/lm32/lm32.c: Ditto.
6174 * config/m32c/m32c.c: Ditto.
6175 * config/m32r/m32r.c: Ditto.
6176 * config/m68k/m68k.c: Ditto.
6177 * config/mcore/mcore.c: Ditto.
6178 * config/microblaze/microblaze.c: Ditto.
6179 * config/mmix/mmix.c: Ditto.
6180 * config/mn10300/mn10300.c: Ditto.
6181 * config/moxie/moxie.c: Ditto.
6182 * config/msp430/msp430.c: Ditto.
6183 * config/nios2/nios2.c: Ditto.
6184 * config/nvptx/nvptx.c: Ditto.
6185 * config/pa/pa.c: Ditto.
6186 * config/pdp11/pdp11.c: Ditto.
6187 * config/rl78/rl78.c: Ditto.
6188 * config/sparc/sparc.c: Ditto.
6189 * config/spu/spu.c: Ditto.
6190 * config/stormy16/stormy16.c: Ditto.
6191 * config/tilegx/tilegx.c: Ditto.
6192 * config/tilepro/tilepro.c: Ditto.
6193 * config/v850/v850.c: Ditto.
6194 * config/vax/vax.c: Ditto.
6195 * config/visium/visium.c: Ditto.
6196 * config/xtensa/xtensa.c: Ditto.
6198 2016-09-14 Jakub Jelinek <jakub@redhat.com>
6201 * tsan.c: Include target.h.
6202 (enum tsan_atomic_action): Add bool_clear and bool_test_and_set.
6203 (BOOL_CLEAR, BOOL_TEST_AND_SET): Define.
6204 (tsan_atomic_table): Add BUILT_IN_ATOMIC_CLEAR and
6205 BUILT_IN_ATOMIC_TEST_AND_SET entries.
6206 (instrument_builtin_call): Handle bool_clear and bool_test_and_set.
6208 2016-09-14 Bernd Edlinger <bernd.edlinger@hotmail.de>
6209 Martin Liska <mliska@suse.cz>
6212 * predict.c (force_edge_cold): Add braces to a condition.
6214 2016-09-13 Bernd Edlinger <bernd.edlinger@hotmail.de>
6216 PR rtl-optimization/77289
6217 * lra-constraints.c (get_final_hard_regno): Removed.
6218 (get_hard_regno): Add new parameter final_p.
6219 (get_reg_class): Directly call lra_get_elimination_hard_regno.
6220 (operands_match_p): Adjust call to get_hard_regno.
6221 (uses_hard_regs_p): Likewise.
6222 (process_alt_operands): Likewise.
6224 2016-09-13 Joe Seymour <joe.s@somniumtech.com>
6227 * config/msp430/msp430.c (msp430_start_function): Emit an error
6228 if a function is both weak and specifies an interrupt number.
6230 2016-09-13 Jakub Jelinek <jakub@redhat.com>
6232 PR tree-optimization/77454
6233 * tree-ssa-dom.c (optimize_stmt): Set modified flag on stmt after
6234 changing GIMPLE_COND. Move update_stmt_if_modified call after this.
6237 2016-09-13 Tamar Christina <tamar.christina@arm.com>
6239 * config/aarch64/aarch64-builtins.c
6240 (aarch64_init_simd_builtins): Fix builtin type signature printing.
6242 2016-09-13 Uros Bizjak <ubizjak@gmail.com>
6244 * config/alpha/alpha.c (alpha_pass_by_reference): Pass un-named
6245 SFmode and SCmode arguments by reference.
6247 2016-09-13 David Malcolm <dmalcolm@redhat.com>
6249 * diagnostic-show-locus.c (selftest::test_one_liner_fixit_insert):
6251 (selftest::test_one_liner_fixit_insert_before): ...this, and update
6252 for renaming of add_fixit_insert to add_fixit_insert_before.
6253 (selftest::test_one_liner_fixit_insert_after): New function.
6254 (selftest::test_one_liner_fixit_validation_adhoc_locations):
6255 Update for renaming of add_fixit_insert to add_fixit_insert_before.
6256 (selftest::test_one_liner_many_fixits): Likewise.
6257 (selftest::test_diagnostic_show_locus_one_liner): Update for
6258 renaming, call new test function.
6259 (selftest::test_diagnostic_show_locus_fixit_lines): Update for
6260 renaming of add_fixit_insert to add_fixit_insert_before.
6261 (selftest::test_fixit_consolidation): Likewise.
6262 * diagnostic.c (selftest::test_print_parseable_fixits_insert):
6264 * edit-context.c (selftest::test_applying_fixits_insert): Rename to...
6265 (selftest::test_applying_fixits_insert_before): ...this.
6266 (selftest::test_applying_fixits_insert): Update for renaming of
6267 add_fixit_insert to add_fixit_insert_before.
6268 (selftest::test_applying_fixits_insert_after): New function.
6269 (selftest::test_applying_fixits_insert_after_at_line_end): New
6271 (selftest::test_applying_fixits_insert_after_failure): New function.
6272 (selftest::test_applying_fixits_multiple): Update for renaming of
6273 add_fixit_insert to add_fixit_insert_before.
6274 (selftest::change_line): Likewise.
6275 (selftest::test_applying_fixits_unreadable_file): Likewise.
6276 (selftest::test_applying_fixits_line_out_of_range): Likewise.
6277 (selftest::test_applying_fixits_column_validation): Likewise.
6278 (selftest::test_applying_fixits_column_validation): Likewise.
6279 (selftest::edit_context_c_tests): Update for renamed test function;
6280 call new test functions.
6282 2016-09-13 Pat Haugen <pthaugen@us.ibm.com>
6284 PR tree-optimization/77536
6285 PR rtl-optimization/68212
6286 * config/rs6000/rs6000.md (div->recip splitter): Remove
6287 optimize_insn_for_speed_p condition.
6289 2016-09-13 Maciej W. Rozycki <macro@imgtec.com>
6291 * optabs.c (prepare_cmp_insn): Update documentation comment.
6293 2016-09-13 Jakub Jelinek <jakub@redhat.com>
6294 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
6297 * opts.h (candidates_list_and_hint): Declare.
6298 * opts-common.c (candidates_list_and_hint): New function.
6299 (cmdline_handle_error): Use it.
6301 2016-09-12 David Malcolm <dmalcolm@redhat.com>
6303 * edit-context.c (edited_line::get_len): New accessor.
6304 (edited_file::print_diff): Split out hunk-printing into...
6305 (edited_file::print_diff_hunk): New method.
6306 (edited_file::print_diff_line): New method.
6308 2016-09-12 Andrew Pinski <apinski@cavium.com>
6310 * config/aarch64/aarch64-tuning-flags.def (SLOW_UNALIGNED_LDPW):
6312 * config/aarch64/aarch64.c (thunderx_tunings): Enable
6313 AARCH64_EXTRA_TUNE_SLOW_UNALIGNED_LDPW.
6314 (aarch64_operands_ok_for_ldpstp): Return false if
6315 AARCH64_EXTRA_TUNE_SLOW_UNALIGNED_LDPW and the mode
6316 was SImode and the alignment is less than 8 byte.
6317 (aarch64_operands_adjust_ok_for_ldpstp): Likewise.
6319 2016-09-12 Orlando Arias <oarias@knights.ucf.edu>
6322 * config/msp430/msp430.md (delay_cycles_32x): Fix pushm/popm.
6324 2016-09-12 Marek Polacek <polacek@redhat.com>
6326 * doc/extend.texi: Use lowercase "boolean".
6327 * doc/invoke.texi: Likewise.
6328 * doc/md.texi: Likewise.
6329 * target.def: Likewise.
6330 * doc/tm.texi: Regenerated.
6332 2016-09-12 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6335 * expmed.c (synth_mult): Delete duplicate mode check.
6337 2016-09-10 Tom de Vries <tom@codesourcery.com>
6340 * builtins.c (std_canonical_va_list_type): Strictly return non-null for
6342 * config/i386/i386.c (ix86_canonical_va_list_type): Same.
6343 * gimplify.c (gimplify_va_arg_expr): Handle &va_list.
6345 2016-09-09 Peter Bergner <bergner@vnet.ibm.com>
6347 PR rtl-optimization/77289
6348 * lra-constraints.c (get_final_hard_regno): Add support for non hard
6349 register numbers. Remove support for subregs.
6350 (get_hard_regno): Use SUBREG_P. Don't call get_final_hard_regno().
6351 (get_reg_class): Delete removed get_final_hard_regno() argument.
6352 (uses_hard_regs_p): Call get_final_hard_regno().
6354 2016-09-09 Martin Sebor <msebor@redhat.com>
6358 * pretty-print.c (pp_quoted_string): New function.
6359 (pp_format): Call it for %c and %s directives.
6361 2016-09-10 Bernd Edlinger <bernd.edlinger@hotmail.de>
6363 * doc/tm.texi.in (INITIAL_FRAME_POINTER_OFFSET): Remove.
6364 (ELIMINABLE_REGS, TARGET_CAN_ELIMINATE,
6365 INITIAL_ELIMINATION_OFFSET) : Update documentation.
6366 * target.def (frame_pointer_required, can_eliminate): Likewise.
6367 * doc/tm.texi: Regenerated.
6368 * builtins.c (expand_builtin_setjmp_receiver): Remove #ifdef
6370 * df-scan.c (df_hard_reg_init): Likewise.
6371 * ira.c (ira_setup_eliminable_regset): Likewise.
6372 * lra-eliminations.c (reg_eliminate_1, (update_reg_eliminate,
6373 init_elim_table): Likewise.
6374 * reload1.c (reg_eliminate_1, verify_initial_elim_offsets,
6375 set_initial_elim_offsets, update_eliminables,
6376 init_elim_table): Likewise.
6377 * rtlanal.c (get_initial_register_offset): Likewise.
6378 * config/ft32/ft32.h (INITIAL_FRAME_POINTER_OFFSET): Remove.
6379 * config/m32r/m32r.h (INITIAL_FRAME_POINTER_OFFSET): Likewise.
6380 * config/moxie/moxie.h (INITIAL_FRAME_POINTER_OFFSET): Likewise.
6381 * config/vax/vax.h (INITIAL_FRAME_POINTER_OFFSET): Likewise.
6382 * config/fr30/fr30.h: Fix comment.
6383 * config/frv/frv.c: Likewise.
6384 * config/frv/frv.h: Likewise.
6385 * config/ft32/ft32.h: Likewise.
6386 * config/visium/visium.h: Likewise.
6387 * config/pa/pa64-linux.h: Likewise.
6388 * config/v850/v850.h: Likewise.
6389 * config/cris/cris.c: Likewise.
6390 * config/ia64/ia64.h: Likewise.
6391 * config/moxie/moxie.h: Likewise.
6392 * config/m32r/m32r.h: Likewise.
6394 2016-09-10 Alexander Ivchenko <alexander.ivchenko@intel.com>
6397 * config.in: Regenerate.
6398 * config/i386/linux-common.h (MPX_LD_AS_NEEDED_GUARD_PUSH):
6400 (MPX_LD_AS_NEEDED_GUARD_PUSH): Ditto.
6401 (LIBMPXWRAPPERS_SPEC): Remove "--no-whole-archive" from
6402 static-libmpxwrappers case.
6403 (LIBMPX_SPEC): Add guards with MPX_LD_AS_NEEDED_GUARD_PUSH and
6404 MPX_LD_AS_NEEDED_GUARD_POP.
6405 * configure: Regenerate.
6406 * configure.ac (HAVE_LD_PUSHPOPSTATE_SUPPORT): New variable.
6407 defined if linker support "--push-state"/"--pop-state".
6409 2016-09-09 Bernd Edlinger <bernd.edlinger@hotmail.de>
6411 * doc/cpp.texi (__*_WIDTH__): Small wording fixes.
6413 2016-09-09 Joseph Myers <joseph@codesourcery.com>
6415 * doc/cpp.texi (__SCHAR_WIDTH__, __SHRT_WIDTH__, __INT_WIDTH__)
6416 (__LONG_WIDTH__, __LONG_LONG_WIDTH__, __PTRDIFF_WIDTH__)
6417 (__SIG_ATOMIC_WIDTH__, __SIZE_WIDTH__, __WCHAR_WIDTH__)
6418 (__WINT_WIDTH__, __INT_LEAST8_WIDTH__, __INT_LEAST16_WIDTH__)
6419 (__INT_LEAST32_WIDTH__, __INT_LEAST64_WIDTH__)
6420 (__INT_FAST8_WIDTH__, __INT_FAST16_WIDTH__, __INT_FAST32_WIDTH__)
6421 (__INT_FAST64_WIDTH__, __INTPTR_WIDTH__, __INTMAX_WIDTH__):
6423 * ginclude/stdint-gcc.h [__STDC_WANT_IEC_60559_BFP_EXT__]: Define
6424 width macros from TS 18661-1.
6425 * glimits.h [__STDC_WANT_IEC_60559_BFP_EXT__]: Likewise.
6427 2016-09-08 Jakub Jelinek <jakub@redhat.com>
6430 * omp-low.c (lower_rec_simd_input_clauses): Use max_vf for non-positive
6431 OMP_CLAUSE_SAFELEN_EXPR.
6433 2016-09-07 David Malcolm <dmalcolm@redhat.com>
6435 * Makefile.in (OBJS): Add substring-locations.o.
6436 * langhooks-def.h (class substring_loc): New forward decl.
6437 (lhd_get_substring_location): New decl.
6438 (LANG_HOOKS_GET_SUBSTRING_LOCATION): New macro.
6439 (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_GET_SUBSTRING_LOCATION.
6440 * langhooks.c (lhd_get_substring_location): New function.
6441 * langhooks.h (class substring_loc): New forward decl.
6442 (struct lang_hooks): Add field get_substring_location.
6443 * substring-locations.c: New file, taking definition of
6444 format_warning_va and format_warning_at_substring from
6445 c-family/c-format.c, making them non-static.
6446 * substring-locations.h (class substring_loc): Move class here
6447 from c-family/c-common.h. Add and rewrite comments.
6448 (format_warning_va): New decl.
6449 (format_warning_at_substring): New decl.
6450 (get_source_location_for_substring): Add comment.
6452 2016-09-07 Eric Gallager <egall@gwmail.gwu.edu>
6454 * config/i386/i386.c: Add 'U' suffix to processor feature bits
6455 to avoid -Wnarrowing warning.
6456 * config/i386/x86-tune.def: Likewise for DEF_TUNE selector bitmasks.
6457 * opts.c: Likewise for SANITIZER_OPT bitmasks.
6459 2016-09-07 Wilco Dijkstra <wdijkstr@arm.com>
6461 * config/aarch64/aarch64.c (aarch64_legitimize_address):
6462 Avoid use of base_offset if offset already in range.
6464 2016-09-07 Kaz Kojima <kkojima@gcc.gnu.org>
6466 * config/sh/sh-protos.h (struct sh_atomic_model,
6467 selected_atomic_model, TARGET_ATOMIC_ANY, TARGET_ATOMIC_STRICT,
6468 TARGET_ATOMIC_SOFT_GUSA, TARGET_ATOMIC_HARD_LLCS,
6469 TARGET_ATOMIC_SOFT_TCB, TARGET_ATOMIC_SOFT_IMASK): Move to...
6470 * config/sh/sh.h (struct sh_atomic_model,
6471 selected_atomic_model, TARGET_ATOMIC_ANY, TARGET_ATOMIC_STRICT,
6472 TARGET_ATOMIC_SOFT_GUSA, TARGET_ATOMIC_HARD_LLCS,
6473 TARGET_ATOMIC_SOFT_TCB, TARGET_ATOMIC_SOFT_IMASK): ...here.
6474 Guard with __cplusplus.
6476 2016-09-06 Jakub Jelinek <jakub@redhat.com>
6479 * config/i386/i386.c (ix86_expand_builtin): For builtin with
6480 unsupported or unknown ISA, use expand_call.
6482 2016-09-06 Martin Liska <mliska@suse.cz>
6484 PR gcov-profile/77378
6485 PR gcov-profile/77466
6486 * tree-profile.c (tree_profiling): Detect whether target can use
6487 -fprofile-update=atomic.
6489 2016-09-06 Richard Biener <rguenther@suse.de>
6491 PR tree-optimization/77479
6492 * tree-vrp.c (update_value_range): Extend overflow handling to
6495 2016-09-05 Jakub Jelinek <jakub@redhat.com>
6498 * config/i386/i386.md (isa): Add x64_avx512bw.
6499 (*zero_extendsidi2): For alternative 11 use x64_avx512bw isa.
6500 (kmov_isa): New mode attr.
6501 (zero_extend<mode>di2): Use <kmov_isa> isa for the last alternative.
6502 (*zero_extend<mode>si2): Likewise.
6503 (*zero_extendqihi2): Use avx512dq isa for the last alternative.
6505 2016-09-05 Gerald Pfeifer <gerald@pfeifer.com>
6507 * doc/invoke.texi (SPU Options): nops -> NOPs.
6508 (x86 Options): Ditto.
6510 2016-09-05 Jakub Jelinek <jakub@redhat.com>
6513 * toplev.c (process_options): Temporarily set input_location
6514 to UNKNOWN_LOCATION around targetm.target_option.override () call.
6516 2016-09-05 Uros Bizjak <ubizjak@gmail.com>
6518 PR rtl-optimization/77452
6519 * explow.c (plus_constant) <case MEM>: Extract scalar constant from
6520 inner-mode reference to a CONST_VECTOR constant in the constant pool.
6522 2016-09-05 Marek Polacek <polacek@redhat.com>
6525 * doc/invoke.texi: Update -Wlogical-not-parentheses documentation.
6527 2016-09-05 Jakub Jelinek <jakub@redhat.com>
6530 * gensupport.c (alter_output_for_subst_insn): Remove redundant
6531 *insn_out == '*' test. Don't copy unnecessary to yet another
6532 memory buffer, and don't leak it.
6534 PR rtl-optimization/77425
6535 * ipa-devirt.c (get_odr_type): Set val->id unconditionally.
6537 2016-09-03 Kirill Yukhin <kirill.yukhin@intel.com>
6539 * ubsan.c (ubsan_use_new_style_p): Fix check for empty string.
6541 2016-09-02 David Malcolm <dmalcolm@redhat.com>
6543 * common.opt (fdiagnostics-generate-patch): New option.
6544 * diagnostic.c: Include "edit-context.h".
6545 (diagnostic_initialize): Initialize context->edit_context_ptr.
6546 (diagnostic_finish): Delete context->edit_context_ptr.
6547 (diagnostic_report_diagnostic): Add fix-it hints from the
6548 diagnostic to context->edit_context_ptr, if any.
6549 * diagnostic.h (class edit_context): Add forward decl.
6550 (struct diagnostic_context): Add field "edit_context_ptr".
6551 * doc/invoke.texi (Diagnostic Message Formatting Options): Add
6552 -fdiagnostics-generate-patch.
6553 (-fdiagnostics-generate-patch): New item.
6554 * toplev.c: Include "edit-context.h".
6555 (process_options): Set global_dc->edit_context_ptr to a new
6556 edit_context if the options need one.
6557 (toplev::main): Handle -fdiagnostics-generate-patch by using
6558 global_dc->edit_context_ptr.
6560 2016-09-02 Jakub Jelinek <jakub@redhat.com>
6563 * gimplify.c (gimplify_adjust_omp_clauses_1): Diagnose implicit
6564 map and firstprivate clauses on target construct for _Atomic
6566 (gimplify_adjust_omp_clauses): Diagnose explicit firstprivate clauses
6567 on target construct for _Atomic qualified decls.
6568 * omp-low.c (use_pointer_for_field): Return true for _Atomic qualified
6570 * omp-simd-clone.c (simd_clone_clauses_extract): Warn and give up for
6571 _Atomic qualified arguments not mentioned in uniform clause.
6573 2016-09-02 David Malcolm <dmalcolm@redhat.com>
6575 * Makefile.in (OBJS-libcommon): Add edit-context.o.
6576 * diagnostic-color.c (color_dict): Add "diff-filename",
6577 "diff-hunk", "diff-delete", and "diff-insert".
6578 (parse_gcc_colors): Update default value of GCC_COLORS in comment
6579 to reflect above changes.
6580 * doc/invoke.texi (-fdiagnostics-color): Update description of
6581 default GCC_COLORS, and of the supported capabilities.
6582 * edit-context.c: New file.
6583 * edit-context.h: New file.
6584 * input.c (struct fcache): Add field "missing_trailing_newline".
6585 (diagnostics_file_cache_forcibly_evict_file): Initialize it to
6587 (add_file_to_cache_tab): Likewise.
6588 (fcache::fcache): Likewise.
6589 (get_next_line): Update c->missing_trailing_newline.
6590 (location_missing_trailing_newline): New function.
6591 * input.h (location_missing_trailing_newline): New decl.
6592 * selftest-run-tests.c (selftest::run_tests): Call
6593 edit_context_c_tests.
6594 * selftest.h (edit_context_c_tests): New decl.
6596 2016-09-02 Jakub Jelinek <jakub@redhat.com>
6597 Richard Biener <rguenth@suse.de>
6599 PR tree-optimization/77444
6600 * tree-ssa-loop-ivopts.c (cand_value_at): For pointers use sizetype
6601 as steptype, remove redundant initialization.
6603 2016-09-02 Jakub Jelinek <jakub@redhat.com>
6606 * sanopt.c: Include gimple-ssa.h, tree-phinodes.h and ssa-iterators.h.
6607 (sanopt_optimize_walker): Optimize away
6608 __asan_before_dynamic_init (...) followed by
6609 __asan_after_dynamic_init () without intervening memory loads/stores.
6610 * ipa-pure-const.c (special_builtin_state): Handle
6611 BUILT_IN_ASAN_BEFORE_DYNAMIC_INIT and
6612 BUILT_IN_ASAN_AFTER_DYNAMIC_INIT.
6614 2016-09-02 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
6616 * cfg.c (free_original_copy_tables): Replace second assignment of
6617 bb_copy = NULL by bb_original = NULL.
6619 2016-09-02 Jakub Jelinek <jakub@redhat.com>
6622 * config/i386/i386.c (ix86_expanded_args_builtin): Remove redundant
6623 assignment added in r216794.
6625 2016-09-02 David Malcolm <dmalcolm@redhat.com>
6627 * Makefile.in (OBJS): Add typed-splay-tree.o.
6628 * selftest-run-tests.c (selftest::run_tests): Call
6629 typed_splay_tree_c_tests.
6630 * selftest.h (typed_splay_tree_c_tests): New decl.
6631 * typed-splay-tree.c: New file.
6632 * typed-splay-tree.h (typed_splay_tree::foreach_fn): New typedef.
6633 (typed_splay_tree::max): New method.
6634 (typed_splay_tree::min): New method.
6635 (typed_splay_tree::foreach): New method.
6636 (typed_splay_tree::closure): New struct.
6637 (typed_splay_tree::inner_foreach_fn): New function.
6639 2016-09-02 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
6641 * ipa-cp.c (ipcp_store_bits_results): Change option name from
6642 -fipa-cp-bit to -fipa-bit-cp.
6644 2016-09-01 Martin Sebor <msebor@redhat.com>
6646 PR tree-optimization/71831
6647 * tree-object-size.h: Return bool instead of the size and add
6648 argument for the size.
6649 * tree-object-size.c (compute_object_offset): Update signature.
6650 (addr_object_size): Same.
6651 (compute_builtin_object_size): Return bool instead of the size
6652 and add argument for the size. Handle POINTER_PLUS_EXPR when
6653 optimization is disabled.
6654 (expr_object_size): Adjust.
6655 (plus_stmt_object_size): Adjust.
6656 (pass_object_sizes::execute): Adjust.
6657 * builtins.c (fold_builtin_object_size): Adjust.
6658 * doc/extend.texi (Object Size Checking): Update.
6659 * ubsan.c (instrument_object_size): Adjust.
6661 2016-09-01 Martin Sebor <msebor@redhat.com>
6663 * genmatch.c (parser::parse_expr): Increase buffer size to guarantee
6664 it fits the output of the formatted function regardless of its
6666 * gcc/genmodes.c (parser::parse_expr): Same.
6667 * gimplify.c (gimplify_asm_expr): Same.
6668 * passes.c (pass_manager::register_one_dump_file): Same.
6669 * print-tree.c (print_node): Same.
6671 2016-09-01 Segher Boessenkool <segher@kernel.crashing.org>
6673 * config/rs6000/altivec.md: Use VSCR_REGNO instead of 110 throughout.
6675 2016-09-01 Segher Boessenkool <segher@kernel.crashing.org>
6677 * config/rs6000/altivec.md: Use VRSAVE_REGNO instead of 109 throughout.
6679 2016-09-01 Segher Boessenkool <segher@kernel.crashing.org>
6681 * config/rs6000/altivec.md: Use CR6_REGNO instead of 74 throughout.
6682 * config/rs6000/vector.md: Ditto.
6683 * config/rs6000/vsx.md: Ditto.
6685 2016-09-01 Eric Botcazou <ebotcazou@adacore.com>
6687 * ipa-inline-analysis.c (param_change_prob): Get to the base object
6690 2016-09-01 Segher Boessenkool <segher@kernel.crashing.org>
6692 * config/rs6000/rs6000.md (*restore_gpregs_<mode>_r11,
6693 *restore_gpregs_<mode>_r12, *restore_gpregs_<mode>_r1,
6694 *return_and_restore_gpregs_<mode>_r11,
6695 *return_and_restore_gpregs_<mode>_r12,
6696 *return_and_restore_gpregs_<mode>_r1,
6697 *return_and_restore_fpregs_<mode>_r11,
6698 *return_and_restore_fpregs_<mode>_r12,
6699 *return_and_restore_fpregs_<mode>_r1): Use the hard register LR_REGNO
6700 directly instead of via the "l" constraint. Renumber operands.
6703 2016-09-01 Segher Boessenkool <segher@kernel.crashing.org>
6705 * config/rs6000/altivec.md (*save_world, *save_vregs_<mode>_r11,
6706 save_vregs_<mode>_r12, *restore_vregs_<mode>_r11,
6707 *restore_vregs_<mode>_r12): Use LR_REGNO instead of 65.
6708 * config/rs6000/darwin.md (load_macho_picbase, load_macho_picbase_si,
6709 load_macho_picbase_di, *call_indirect_nonlocal_darwin64,
6710 *call_nonlocal_darwin64, *call_value_indirect_nonlocal_darwin64,
6711 *call_value_nonlocal_darwin64, reload_macho_picbase,
6712 reload_macho_picbase_si, reload_macho_picbase_di): Ditto.
6713 * config/rs6000/rs6000.h (RETURN_ADDR_IN_PREVIOUS_FRAME): Ditto.
6714 * config/rs6000/rs6000.md (*save_gpregs_<mode>_r11,
6715 *save_gpregs_<mode>_r12, *save_gpregs_<mode>_r1,
6716 *save_fpregs_<mode>_r11, *save_fpregs_<mode>_r12,
6717 *save_fpregs_<mode>_r1): Ditto.
6718 * config/rs6000/spe.md (*save_gpregs_spe, *restore_gpregs_spe,
6719 *return_and_restore_gpregs_spe): Ditto.
6721 2016-09-01 Segher Boessenkool <segher@kernel.crashing.org>
6723 * config/rs6000/rs6000.md
6724 (define_insn "*return_and_restore_fpregs_aix_<mode>_r11"): Delete
6725 the use of the link register.
6726 (define_insn "*return_and_restore_fpregs_aix_<mode>_r1"): Ditto.
6728 2016-09-01 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
6729 Michael Meissner <meissner@linux.vnet.ibm.com>
6732 * config/rs6000/rs6000.c (rs6000_legitimize_address): Avoid
6733 reg+reg addressing for TImode.
6734 (rs6000_legitimate_address_p): Only allow register indirect
6735 addressing for TImode, even without TARGET_QUAD_MEMORY.
6737 2016-09-01 Richard Biener <rguenther@suse.de>
6740 * tree-chrec.c (tree_fold_binomial): Use widest_int, properly
6741 check whether the result fits the desired result type.
6743 2016-09-01 Nathan Sidwell <nathan@acm.org>
6745 * config/nvptx/nvptx.md (cbranch<mode>4): Op 2 can be const.
6747 2016-09-01 Wilco Dijkstra <wdijkstr@arm.com>
6749 * config/aarch64/aarch64.c (aarch64_legitimize_address_displacement):
6751 (TARGET_LEGITIMIZE_ADDRESS_DISPLACEMENT): Define.
6753 2016-09-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6755 * config/aarch64/aarch64.md (*ands<mode>_compare0): New pattern.
6756 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Return CC_NZmode
6757 for comparisons of integer ZERO_EXTEND against zero.
6759 2016-09-01 Eric Botcazou <ebotcazou@adacore.com>
6761 * config/i386/i386.c (ix86_option_override_internal): Also disable the
6762 STV pass if -mstackrealign is enabled.
6764 2016-08-31 Ilya Verbin <iverbin@gmail.com>
6766 * config/i386/driver-i386.c (host_detect_local_cpu): Fix detection of
6769 2016-08-31 David Malcolm <dmalcolm@redhat.com>
6771 * diagnostic-show-locus.c (class layout): Add field m_fixit_hints.
6772 (layout_range::intersects_line_p): New method.
6773 (test_range_contains_point_for_single_point): Rename to...
6774 (test_layout_range_for_single_point): ...this, and add testing
6775 for layout_range::intersects_line_p.
6776 (test_range_contains_point_for_single_line): Rename to...
6777 (test_layout_range_for_single_line): ...this, and add testing
6778 for layout_range::intersects_line_p.
6779 (test_range_contains_point_for_multiple_lines): Rename to...
6780 (test_layout_range_for_multiple_lines): ...this, and add testing
6781 for layout_range::intersects_line_p.
6782 (layout::layout): Populate m_fixit_hints.
6783 (layout::get_expanded_location): Handle the case of a line-span
6785 (layout::validate_fixit_hint_p): New method.
6786 (get_line_span_for_fixit_hint): New function.
6787 (layout::calculate_line_spans): Add spans for fixit-hints.
6788 (layout::should_print_annotation_line_p): New method.
6789 (layout::print_any_fixits): Drop param "richloc", instead using
6790 validated fixits in m_fixit_hints. Add "const" to hint pointers.
6791 (diagnostic_show_locus): Avoid printing blank annotation lines.
6792 (selftest::test_diagnostic_context::test_diagnostic_context):
6793 Initialize show_column and start_span.
6794 (selftest::test_diagnostic_context::start_span_cb): New static
6796 (selftest::test_diagnostic_show_locus_fixit_lines): New function.
6797 (selftest::diagnostic_show_locus_c_tests): Update for function
6798 renamings. Call test_diagnostic_show_locus_fixit_lines.
6800 2016-08-31 Marc Glisse <marc.glisse@inria.fr>
6802 PR tree-optimization/73714
6803 * match.pd (a * (1 << b)): Revert change from 2016-05-23.
6805 2016-08-31 David Malcolm <dmalcolm@redhat.com>
6807 * selftest.c: Move "namespace selftest {" to top of file,
6808 removing explicit "selftest::" qualifiers throughout.
6810 2016-08-31 Marc Glisse <marc.glisse@inria.fr>
6812 * config/i386/avx512fintrin.h (__m512_u, __m512i_u, __m512d_u):
6814 (_mm512_loadu_pd, _mm512_storeu_pd, _mm512_loadu_ps,
6815 _mm512_storeu_ps, _mm512_loadu_si512, _mm512_storeu_si512):
6816 Replace builtin with vector extension.
6817 * config/i386/avxintrin.h (__m256_u, __m256i_u, __m256d_u):
6819 (_mm256_loadu_pd, _mm256_storeu_pd, _mm256_loadu_ps,
6820 _mm256_storeu_ps, _mm256_loadu_si256, _mm256_storeu_si256):
6821 Replace builtin with vector extension.
6822 * config/i386/emmintrin.h (__m128i_u, __m128d_u): New types.
6823 (_mm_loadu_pd, _mm_storeu_pd, _mm_loadu_si128, _mm_storeu_si128):
6824 Replace builtin with vector extension.
6825 * config/i386/xmmintrin.h (__m128_u): New type.
6826 (_mm_loadu_ps, _mm_storeu_ps): Replace builtin with vector extension.
6827 (_mm_load_ps, _mm_store_ps): Simplify.
6829 2016-08-31 Eric Botcazou <ebotcazou@adacore.com>
6831 * config/arm/arm.c (thumb1_size_rtx_costs) <SET>: Add missing guard.
6833 2016-08-30 David Malcolm <dmalcolm@redhat.com>
6835 * diagnostic-show-locus.c (colorizer::begin_state): Support more
6836 than 3 ranges per diagnostic by alternating between color 1 and
6838 (layout::layout): Replace use of rich_location::MAX_RANGES
6839 with richloc->get_num_locations ().
6840 (layout::calculate_line_spans): Replace use of
6841 rich_location::MAX_RANGES with m_layout_ranges.length ().
6842 (layout::print_annotation_line): Handle arbitrary numbers of
6843 ranges in caret-printing by defaulting to '^'.
6844 (selftest::test_one_liner_many_fixits): New function.
6845 (test_diagnostic_show_locus_one_liner): Call it.
6846 * diagnostic.c (diagnostic_initialize): Update for renaming
6847 of rich_location::MAX_RANGES to
6848 rich_location::STATICALLY_ALLOCATED_RANGES.
6849 * diagnostic.h (struct diagnostic_context): Likewise.
6851 2016-08-30 David Malcolm <dmalcolm@redhat.com>
6853 * selftest.c (selftest::named_temp_file::named_temp_file): New
6855 (selftest::temp_source_file::~temp_source_file): Move to...
6856 (selftest::named_temp_file::~named_temp_file): ...here.
6857 (selftest::test_named_temp_file): New function.
6858 (selftest::selftest_c_tests): Call test_named_temp_file.
6859 * selftest.h (class named_temp_file): New class.
6860 (class temp_source_file): Convert to a subclass of named_temp_file.
6862 2016-08-30 Segher Boessenkool <segher@kernel.crashing.org>
6864 * config/rs6000/rs6000.c (rs6000_emit_epilogue): Do not emit
6865 USEs of LR_REGNO in returns and sibcalls.
6866 (rs6000_output_mi_thunk): Similar.
6867 (rs6000_sibcall_aix): Similar.
6868 * config/rs6000/rs6000.md (sibcall, sibcall_value, sibcall_local32,
6869 sibcall_local64, sibcall_value_local32, sibcall_value_local64,
6870 sibcall_nonlocal_sysv<mode>, sibcall_value_nonlocal_sysv<mode>):
6871 Remove the USE of LR_REGNO from the patterns as well. Delete an
6873 (return_internal_<mode>): Delete.
6875 2016-08-30 Tamar Christina <tamar.christina@arm.com>
6877 * gcc/config/aarch64/aarch64-simd.md
6878 (aarch64_ld2<mode>_dreg_le): New.
6879 (aarch64_ld2<mode>_dreg_be): New.
6880 (aarch64_ld2<mode>_dreg): Removed.
6881 (aarch64_ld3<mode>_dreg_le): New.
6882 (aarch64_ld3<mode>_dreg_be): New.
6883 (aarch64_ld3<mode>_dreg): Removed.
6884 (aarch64_ld4<mode>_dreg_le): New.
6885 (aarch64_ld4<mode>_dreg_be): New.
6886 (aarch64_ld4<mode>_dreg): Removed.
6887 (aarch64_ld<VSTRUCT:nregs><VDC:mode>): Wrapper around _le, _be.
6889 2016-08-30 David Malcolm <dmalcolm@redhat.com>
6891 * diagnostic-show-locus.c (test_one_liner_fixit_insert): Remove
6892 redundant location param.
6893 (test_one_liner_fixit_remove): Likewise.
6894 (test_one_liner_fixit_replace): Likewise.
6895 (test_one_liner_fixit_replace_equal_secondary_range): Likewise.
6896 * gcc-rich-location.c
6897 (gcc_rich_location::add_fixit_misspelled_id): Eliminate call to
6898 get_range_from_loc. Drop overload taking a const char *.
6899 * gcc-rich-location.h
6900 (gcc_rich_location::add_fixit_misspelled_id): Drop overload taking
6903 2016-08-30 Szabolcs Nagy <szabolcs.nagy@arm.com>
6905 * config/linux.c (linux_libc_has_function): Return true on musl.
6907 2016-08-30 Szabolcs Nagy <szabolcs.nagy@arm.com>
6909 * config.gcc (*-*-*musl*): Disable gnu-indirect-function.
6911 2016-08-30 Eric Botcazou <ebotcazou@adacore.com>
6913 * postreload-gcse.c (bb_has_well_behaved_predecessors): Tweak criterion
6914 used for abnormal egdes.
6916 2016-08-30 Jakub Jelinek <jakub@redhat.com>
6918 PR tree-optimization/72866
6919 * tree-vect-patterns.c (search_type_for_mask): Turn into
6920 a small wrapper, move all code to ...
6921 (search_type_for_mask_1): ... this new function. Add caching
6922 and adjust recursive calls.
6925 * dwarf2out.c (modified_type_die): Use lookup_type_die (type)
6926 instead of lookup_type_die (type_main_variant (type)) even for array
6930 * simplify-rtx.c (avoid_constant_pool_reference): For out of bounds
6931 constant pool reference return x instead of c.
6933 2016-08-29 Segher Boessenkool <segher@kernel.crashing.org>
6935 * config/rs6000/rs6000.h (CALL_REALLY_USED_REGISTERS): Do not
6938 2016-08-29 David Malcolm <dmalcolm@redhat.com>
6941 (selftest::test_make_location_nonpure_range_endpoints): Fix
6944 2016-08-29 David Malcolm <dmalcolm@redhat.com>
6946 * diagnostic-show-locus.c
6947 (selftest::test_one_liner_fixit_validation_adhoc_locations): New
6949 (selftest::test_diagnostic_show_locus_one_liner): Call it.
6950 * input.c (get_pure_location): Move to libcpp/line-map.c.
6951 * input.h (get_pure_location): Convert decl to an inline function
6952 calling implementation in libcpp.
6954 2016-08-29 Uros Bizjak <ubizjak@gmail.com>
6957 * config/i386/sse.md (vec_set_lo_<mode><mask_name>): Fix assembler
6958 template for intel asm dialect.
6959 (vec_set_hi_<mode><mask_name>): Ditto.
6961 2016-08-29 David Malcolm <dmalcolm@redhat.com>
6963 * selftest.h (selftest::fail): Add ATTRIBUTE_NORETURN.
6964 (selftest::fail_formatted): Likewise.
6966 2016-08-29 David Malcolm <dmalcolm@redhat.com>
6968 * input.c (make_location): Call get_start and get_finish
6969 on the endpoints to avoid storing packed ranges or ad-hoc
6971 (selftest::test_make_location_nonpure_range_endpoints): New function.
6972 (selftest::input_c_tests): Call it.
6973 * input.h (get_start): New inline function.
6975 2016-08-29 Tom de Vries <tom@codesourcery.com>
6978 * gimplify.c (gimplify_va_arg_expr): Replace first argument type error
6981 2016-08-29 Eric Botcazou <ebotcazou@adacore.com>
6983 * Makefile.in (gcov-iov.h): Add dummy recipe.
6985 2016-08-29 Nathan Sidwell <nathan@acm.org>
6987 * config/nvptx/nvptx.c: #include tree-vrp.h.
6989 2016-08-28 Eric Botcazou <ebotcazou@adacore.com>
6992 * config/sparc/sparc.c (sparc_legitimate_address_p): Accept special
6993 HIGH+LO construct during reload.
6995 2016-08-28 Tom de Vries <tom@codesourcery.com>
6998 * config/i386/i386.c (ix86_build_builtin_va_list_64): Tag type with
6999 'sysv_abi va_list' attribute.
7000 (ix86_build_builtin_va_list): Tag type with 'ms_abi va_list' attribute.
7001 (ix86_canonical_va_list_type): Handle 'sysv_abi/ms_abi va_list'
7004 2016-08-27 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
7006 * emit-rtl.h (struct rtl_data): Make stack_slot_list a vector.
7007 * emit-rtl.c (unshare_all_rtl_1): Adjust.
7008 (unshare_all_rtl_again): Likewise.
7009 * function.c (assign_stack_local_1): Likewise.
7010 (assign_stack_temp_for_type): Likewise.
7012 2016-08-27 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
7014 * cfgbuild.c (make_edges): Adjust.
7015 * cfgrtl.c (can_delete_label_p): Likewise.
7016 * dwarf2cfi.c (create_trace_edges): Likewise.
7017 * except.c (sjlj_emit_dispatch_table): Likewise.
7018 * function.h (struct expr_status): make x_forced_labels a vector.
7019 * jump.c (rebuild_jump_labels_1): Adjust.
7020 * reload1.c (set_initial_label_offsets): Likewise.
7021 * stmt.c (force_label_rtx): Likewise.
7022 (expand_label): Likewise.
7024 2016-08-27 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
7026 * haifa-sched.c (fix_recovery_deps): Make ready_list a vector.
7028 2016-08-27 Patrick Palka <ppalka@gcc.gnu.org>
7030 PR tree-optimization/71077
7031 PR tree-optimization/68542
7032 * fold-const.c (fold_relational_const): Fix folding of
7033 VECTOR_CST comparisons that have a scalar boolean result type.
7034 (selftest::test_vector_folding): New static function.
7035 (selftest::fold_const_c_tests): Call it.
7037 2016-08-27 Gerald Pfeifer <gerald@pfeifer.com>
7039 * doc/extend.texi (SPU Built-in Functions): Remove stale
7040 references to material formerly at IBM and Sony.
7042 2016-08-26 David Edelsohn <dje.gcc@gmail.com>
7045 * config/rs6000/xcoff.h (DWARF_OFFSET_SIZE): Define as PTR_SIZE.
7047 2016-08-26 David Malcolm <dmalcolm@redhat.com>
7049 * diagnostic-show-locus.c
7050 (selftest::test_fixit_consolidation): New function.
7051 (selftest::diagnostic_show_locus_c_tests): Call it.
7052 * gcc-rich-location.h (gcc_rich_location): Eliminate unused
7053 constructor based on source_range.
7055 2016-08-26 David Malcolm <dmalcolm@redhat.com>
7057 * diagnostic-color.c (color_dict): Add "fixit-insert" and
7059 (parse_gcc_colors): Update description of default GCC_COLORS.
7060 * diagnostic-show-locus.c (colorizer::set_fixit_hint): Delete.
7061 (colorizer::set_fixit_insert): New method.
7062 (colorizer::set_fixit_delete): New method.
7063 (colorizer::get_color_by_name): New method.
7064 (colorizer::STATE_FIXIT_INSERT): New constant.
7065 (colorizer::STATE_FIXIT_DELETE): New constant.
7066 (class colorizer): Drop "_cs" suffix from fields. Delete "_ce"
7067 fields in favor of new field "m_stop_color". Add fields
7068 "m_fixit_insert" and "m_fixit_delete".
7069 (colorizer::colorizer): Update for above changes. Replace
7070 colorize_start calls with calls to get_color_by_name.
7071 (colorizer::begin_state): Handle STATE_FIXIT_INSERT and
7072 STATE_FIXIT_DELETE. Update for field renamings.
7073 (colorizer::finish_state): Simplify by using m_stop_color,
7074 rather than multiple identical "*_ce" fields.
7075 (colorizer::get_color_by_name): New method.
7076 (layout::print_any_fixits): Print insertions and replacements
7077 using the "fixit-insert" color, and deletions using the
7078 "fixit-delete" color.
7079 * doc/invoke.texi (-fdiagnostics-color): Update description of
7080 default GCC_COLORS, and of the supported capabilities.
7082 2016-08-26 Max Filippov <jcmvbkbc@gmail.com>
7084 * config/xtensa/xtensa.c (xtensa_expand_prologue): Update
7085 current_function_static_stack_size variable with the static
7086 stack frame size of the current function when
7087 flag_stack_usage_info is enabled.
7089 2016-08-26 Nathan Sidwell <nathan@acm.org>
7091 * ipa-inline-analysis.c (inline_write_summary): Remove unnecessary
7092 assignment inside if condition.
7094 2016-08-26 Richard Biener <rguenther@suse.de>
7096 PR tree-optimization/69047
7097 * tree-ssa.c (maybe_rewrite_mem_ref_base): Handle general bitfield
7098 extracts similar to what FRE does.
7099 (non_rewritable_mem_ref_base): Likewise.
7101 2016-08-26 Joseph Myers <joseph@codesourcery.com>
7103 * config/i386/i386.c (ix86_libgcc_floating_mode_supported_p)
7104 (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P): Remove.
7105 * config/i386/i386elf.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Likewise.
7106 * config/i386/lynx.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Likewise.
7107 * config/i386/netbsd-elf.h (IX86_MAYBE_NO_LIBGCC_TFMODE):
7109 * config/i386/netbsd64.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Likewise.
7110 * config/i386/nto.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Likewise.
7111 * config/i386/openbsd.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Likewise.
7112 * config/i386/rtemself.h (IX86_NO_LIBGCC_TFMODE): Likewise.
7113 * config/i386/vxworks.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Likewise.
7115 2016-08-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7118 * config/arm/cortex-a8-neon.md (cortex_a8_vfp_muld): Reduce
7119 reservation duration to 15 cycles.
7120 (cortex_a8_vfp_macs): Likewise.
7121 (cortex_a8_vfp_macd): Likewise.
7122 (cortex_a8_vfp_divs): Likewise.
7123 (cortex_a8_vfp_divd): Likewise.
7125 2016-08-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7127 * config/arm/arm.c (arm_sets_movw_movt_fusible_p): New function.
7128 (aarch_macro_fusion_pair_p): Use above to avoid early return.
7130 2016-08-26 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
7131 Martin Jambhor <mjambor@suse.cz>
7133 * common.opt: New option -fipa-bit-cp.
7134 * doc/invoke.texi: Document -fipa-bit-cp.
7135 * opts.c (default_options_table): Add entry for -fipa-bit-cp.
7136 (enable_fdo_optimizations): Check for flag_ipa_bit_cp.
7137 * tree-ssa-ccp.h: New header file.
7138 * tree-ssa-ccp.c: Include tree-ssa-ccp.h
7139 (bit_value_binop_1): Change to bit_value_binop_1 and export it.
7140 Replace all occurences of tree parameter by two new params: signop, int.
7141 (bit_value_unop_1): Change to bit_value_unop and export it.
7142 Replace all occurences of tree parameter by two new params: signop,
7144 (bit_value_binop): Change call from bit_value_binop_1 to
7146 (bit_value_assume_aligned): Likewise.
7147 (bit_value_unop): Change call from bit_value_unop_1 to bit_value_unop.
7148 (do_ssa_ccp): Pass nonzero_p || flag_ipa_cp_bit instead of nonzero_p
7150 (ccp_finalize): Skip processing if val->mask == 0.
7151 * ipa-cp.c: Include tree-ssa-ccp.h
7152 (ipcp_bits_lattice): New class.
7153 (ipcp_param_lattice (bits_lattice): New member.
7154 (print_all_lattices): Call ipcp_bits_lattice::print.
7155 (set_all_contains_variable): Call ipcp_bits_lattice::set_to_bottom.
7156 (initialize_node_lattices): Likewise.
7157 (propagate_bits_accross_jump_function): New function.
7158 (propagate_constants_accross_call): Call
7159 propagate_bits_accross_jump_function.
7160 (ipcp_propagate_stage): Store parameter types when in_lto_p is true.
7161 (ipcp_store_bits_results): New function.
7162 (ipcp_driver): Call ipcp_store_bits_results.
7163 * ipa-prop.h (ipa_bits): New struct.
7164 (ipa_jump_func): Add new member bits of type ipa_bits.
7165 (ipa_param_descriptor): Change decl to decl_or_type.
7166 (ipa_get_param): Change decl to decl_or_type and assert on
7168 (ipa_get_type): New function.
7169 (ipcp_transformation_summary): New member bits.
7170 * ipa-prop.c (ipa_get_param_decl_index_1): s/decl/decl_or_type.
7171 (ipa_populate_param_decls): Likewise.
7172 (ipa_dump_param): Likewise.
7173 (ipa_print_node_jump_functions_for_edge): Pretty-print ipa_bits jump
7175 (ipa_set_jf_unknown): Set ipa_bits::known to false.
7176 (ipa_compute_jump_functions_for_edge): Compute jump function for bits
7178 (ipa_node_params_t::duplicate): Copy src->bits into dst->bits.
7179 (ipa_write_jump_function): Add streaming for ipa_bits.
7180 (ipa_read_jump_function): Add support for reading streamed ipa_bits.
7181 (write_ipcp_transformation_info): Add streaming for ipa_bits
7183 (read_ipcp_transfomration_info): Add support for reading streamed
7185 (ipcp_update_bits): New function.
7186 (ipcp_transform_function): Call ipcp_update_bits.
7188 2016-08-25 Szabolcs Nagy <szabolcs.nagy@arm.com>
7190 * config/mips/linux.h (MUSL_DYNAMIC_LINKER32): Update.
7191 (MUSL_DYNAMIC_LINKER64, MUSL_DYNAMIC_LINKERN32): Update.
7193 2016-08-25 David Edelsohn <dje.gcc@gmail.com>
7195 * multiple_target.c (pass_data_dispatcher_calls): Fix typo.
7197 2016-08-25 Richard Biener <rguenther@suse.de>
7199 * dwarf2out.c (gen_remaining_tmpl_value_param_die_attributes):
7200 Only add locations in late dwarf.
7201 (gen_scheduled_generic_parms_dies): Do not set early dwarf here.
7202 (dwarf2out_early_finish): But do it here.
7204 2016-08-24 Michael Collison <michael.collison@linaro.org>
7205 Michael Collison <michael.collison@arm.com>
7207 * config/arm/arm-modes.def: Add new condition code mode CC_V
7208 to represent the overflow bit.
7209 * config/arm/arm.c (maybe_get_arm_condition_code):
7210 Add support for CC_Vmode.
7211 (arm_gen_unlikely_cbranch): New function to generate common
7212 rtl conditional branches for overflow patterns.
7213 * config/arm/arm-protos.h: Add prototype for
7214 arm_gen_unlikely_cbranch.
7215 * config/arm/arm.md (addv<mode>4, add<mode>3_compareV,
7216 addsi3_compareV_upper): New patterns to support signed
7217 builtin overflow add operations.
7218 (uaddv<mode>4, add<mode>3_compareC, addsi3_compareV_upper):
7219 New patterns to support unsigned builtin add overflow operations.
7220 (subv<mode>4, sub<mode>3_compare1): New patterns to support signed
7221 builtin overflow subtract operations,
7222 (usubv<mode>4): New patterns to support unsigned builtin subtract
7223 overflow operations.
7224 (negvsi3, negvdi3, negdi2_compare, negsi2_carryin_compare): New patterns
7225 to support builtin overflow negate operations.
7227 2016-08-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
7230 2016-08-23 Dominik Vogt <vogt@linux.vnet.ibm.com>
7232 * explow.c (get_dynamic_stack_size): Take known alignment of stack
7233 pointer + STACK_DYNAMIC_OFFSET into account when calculating the size
7236 2016-08-24 Thomas Preud'homme <thomas.preudhomme@arm.com>
7238 * doc/fragments.texi (MULTILIB_REUSE): Mention that only options in
7239 MULTILIB_OPTIONS should be used. Small wording fixes.
7240 * genmultilib: Memorize set of all option combinations in
7241 combination_space. Detect if RHS of MULTILIB_REUSE uses an option not
7242 found in MULTILIB_OPTIONS by checking if option set is listed in
7243 combination_space. Output new and existing error message to stderr.
7245 2016-08-24 Thomas Preud'homme <thomas.preudhomme@arm.com>
7247 * config/arm/t-aprofile (MULTILIB_MATCHES): Add mapping for
7248 -mcpu=cortex-a7, -mfpu=neon-fp16, -mfpu=fpv5-d16 and -mfpu=fp-armv8.
7249 Fix typo in -mfpu=vfpv3-d16-fp16 mapping.
7250 (MULTILIB_REUSE): Remove reuse rules for option set including
7251 -mfpu=fp-armv8 and -mfpu=vfpv4
7253 2016-08-24 Sebastian Huber <sebastian.huber@embedded-brains.de>
7255 * config/arm/t-rtems: Add vfp multilib.
7257 2016-08-23 Ian Lance Taylor <iant@golang.org>
7259 * config/s390/s390.c (s390_asm_file_start): Call
7262 2016-08-23 Michael Meissner <meissner@linux.vnet.ibm.com>
7264 * config/rs6000/rs6000.c (rs6000_expand_vector_init): Set
7265 initialization of all 0's to the 0 constant, instead of directly
7266 generating XOR. Add support for V4SImode vector initialization on
7267 64-bit systems with direct move, and rework the ISA 3.0 V4SImode
7268 initialization. Change variables used in V4SFmode vector
7269 intialization. For V4SFmode vector splat on ISA 3.0, make sure
7270 any memory addresses are in index form. Add support for using
7271 VSPLTH/VSPLTB to initialize vector short and vector char vectors
7272 with all of the same element.
7273 (regno_or_subregno): New helper function to return a register
7274 number for either REG or SUBREG.
7275 (rs6000_adjust_vec_address): Do not generate ADDI <reg>,R0,<num>.
7276 Use regno_or_subregno where possible.
7277 (rs6000_split_v4si_init_di_reg): New helper function to build up a
7278 DImode value from two SImode values in order to generate V4SImode
7279 vector initialization on 64-bit systems with direct move.
7280 (rs6000_split_v4si_init): Split up the insns for a V4SImode vector
7282 (rtx_is_swappable_p): V4SImode vector initialization insn is not
7284 * config/rs6000/rs6000-protos.h (rs6000_split_v4si_init): Add
7286 * config/rs6000/vsx.md (VSX_SPLAT_I): New mode iterators and
7287 attributes to initialize V8HImode and V16QImode vectors with the
7289 (VSX_SPLAT_COUNT): Likewise.
7290 (VSX_SPLAT_SUFFIX): Likewise.
7291 (UNSPEC_VSX_VEC_INIT): New unspec.
7292 (vsx_concat_v2sf): Eliminate using 'preferred' register classes.
7293 Allow SFmode values to come from Altivec registers.
7294 (vsx_init_v4si): New insn/split for V4SImode vector initialization
7295 on 64-bit systems with direct move.
7296 (vsx_splat_<mode>, VSX_W iterator): Rework V4SImode and V4SFmode
7297 vector initializations, to allow V4SImode vector initializations
7298 on 64-bit systems with direct move.
7299 (vsx_splat_v4si): Likewise.
7300 (vsx_splat_v4si_di): Likewise.
7301 (vsx_splat_v4sf): Likewise.
7302 (vsx_splat_v4sf_internal): Likewise.
7303 (vsx_xxspltw_<mode>, VSX_W iterator): Eliminate using 'preferred'
7305 (vsx_xxspltw_<mode>_direct, VSX_W iterator): Likewise.
7306 (vsx_vsplt<VSX_SPLAT_SUFFIX>_di): New insns to support
7307 initializing V8HImode and V16QImode vectors with the same
7309 * config/rs6000/rs6000.h (TARGET_DIRECT_MOVE_64BIT): Disallow
7310 optimization if -maltivec=be.
7312 2016-08-23 Christophe Lyon <christophe.lyon@linaro.org>
7314 * config/arm/arm.md (arm_movqi_insn): Swap predicable_short_it
7315 attribute for alternatives 3 and 4.
7317 2016-08-23 David Malcolm <dmalcolm@redhat.com>
7319 * selftest.c (selftest::assert_str_contains): New function.
7320 (selftest::test_assertions): Verify ASSERT_STR_CONTAINS.
7321 * selftest.h (selftest::assert_str_contains): New decl.
7322 (ASSERT_STR_CONTAINS): New macro.
7324 2016-08-23 Richard Biener <rguenther@suse.de>
7326 PR tree-optimization/77286
7327 * tree-vect-loop.c (vect_analyze_loop_form_1): Do not modify
7329 (vect_transform_loop): Split exit edges of loop and scalar
7330 loop if required and at the appropriate time.
7332 2016-08-23 Dominik Vogt <vogt@linux.vnet.ibm.com>
7334 * explow.c (get_dynamic_stack_size): Take known alignment of stack
7335 pointer + STACK_DYNAMIC_OFFSET into account when calculating the size
7337 Correct a typo in a comment.
7339 2016-08-23 Dominik Vogt <vogt@linux.vnet.ibm.com>
7341 * config/s390/s390.md ("*andc_split"): New splitter for and with
7344 2016-08-23 Richard Biener <rguenther@suse.de>
7346 PR tree-optimization/27336
7347 * tree-vrp.c (infer_value_range): Handle stmts that can throw
7348 by looking for a non-EH edge.
7349 (process_assert_insertions_for): Likewise.
7351 2016-08-23 Richard Biener <rguenther@suse.de>
7354 * statistics.c (statistics_counter_event): Robustify against
7357 2016-08-23 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
7359 * config/i386/i386.c (processor_alias_table): Enable PTA_PRFCHW
7360 for targets amdfam10 and barcelona.
7362 2016-08-22 Uros Bizjak <ubizjak@gmail.com>
7364 * config/i386/i386.md (*zero_extendsidi2): Add (*r,*k) alternative.
7365 (zero_extend<mode>di2): Ditto.
7366 (*zero_extend<mode>si2): Ditto.
7367 (*zero_extendqihi2): Ditto.
7369 2016-08-22 Joseph Myers <joseph@codesourcery.com>
7372 * builtins.c (fold_builtin_classify): Use builtin_decl_explicit
7373 (BUILT_IN_SIGNBIT) to expand __builtin_isinf_sign.
7375 2016-08-22 Patrick Palka <ppalka@gcc.gnu.org>
7377 * print-tree.c (print_node) [VECTOR_CST]: Coalesce the output of
7378 identical consecutive elements.
7379 [SSA_NAME]: Print the name's def stmt on its own line. When printing
7380 the node's def stmt, avoid printing an unwanted trailing newline by
7381 replacing the call to print_gimple_stmt() with its inlined body and
7382 adjusting it to not set pp_needs_newline and to call pp_flush()
7383 instead of pp_newline_and_flush().
7385 2016-08-22 Joseph Myers <joseph@codesourcery.com>
7387 * tree.h (CASE_FLT_FN_FLOATN_NX, float16_type_node)
7388 (float32_type_node, float64_type_node, float32x_type_node)
7389 (float128x_type_node): New macros.
7390 * builtin-types.def (BT_FLOAT16, BT_FLOAT32, BT_FLOAT64)
7391 (BT_FLOAT128, BT_FLOAT32X, BT_FLOAT64X, BT_FLOAT128X)
7392 (BT_FN_FLOAT16, BT_FN_FLOAT32, BT_FN_FLOAT64, BT_FN_FLOAT128)
7393 (BT_FN_FLOAT32X, BT_FN_FLOAT64X, BT_FN_FLOAT128X)
7394 (BT_FN_FLOAT16_FLOAT16, BT_FN_FLOAT32_FLOAT32)
7395 (BT_FN_FLOAT64_FLOAT64, BT_FN_FLOAT128_FLOAT128)
7396 (BT_FN_FLOAT32X_FLOAT32X, BT_FN_FLOAT64X_FLOAT64X)
7397 (BT_FN_FLOAT128X_FLOAT128X, BT_FN_FLOAT16_CONST_STRING)
7398 (BT_FN_FLOAT32_CONST_STRING, BT_FN_FLOAT64_CONST_STRING)
7399 (BT_FN_FLOAT128_CONST_STRING, BT_FN_FLOAT32X_CONST_STRING)
7400 (BT_FN_FLOAT64X_CONST_STRING, BT_FN_FLOAT128X_CONST_STRING)
7401 (BT_FN_FLOAT16_FLOAT16_FLOAT16, BT_FN_FLOAT32_FLOAT32_FLOAT32)
7402 (BT_FN_FLOAT64_FLOAT64_FLOAT64, BT_FN_FLOAT128_FLOAT128_FLOAT128)
7403 (BT_FN_FLOAT32X_FLOAT32X_FLOAT32X)
7404 (BT_FN_FLOAT64X_FLOAT64X_FLOAT64X)
7405 (BT_FN_FLOAT128X_FLOAT128X_FLOAT128X): New type definitions.
7406 * builtins.def (DEF_GCC_FLOATN_NX_BUILTINS): New macro.
7407 (copysign, fabs, huge_val, inf, nan, nans): Use it.
7408 * builtins.c (expand_builtin): Use CASE_FLT_FN_FLOATN_NX for fabs
7410 (fold_builtin_0): Use CASE_FLT_FN_FLOATN_NX for inf and huge_val.
7411 (fold_builtin_1): Use CASE_FLT_FN_FLOATN_NX for fabs.
7412 * doc/extend.texi (Other Builtins): Document these built-in
7414 * fold-const-call.c (fold_const_call): Use CASE_FLT_FN_FLOATN_NX
7417 2016-08-22 Gerald Pfeifer <gerald@pfeifer.com>
7419 * doc/install.texi (Binaries): www.opencsw.org now uses https.
7421 2016-08-22 Richard Biener <rguenther@suse.de>
7423 * tree-ssa-forwprop.c (pass_forwprop::execute): Use RPO order.
7425 2016-08-21 Uros Bizjak <ubizjak@gmail.com>
7428 * config/i386/i386.md (prefetch): When TARGET_PRFCHW or
7429 TARGET_PREFETCHWT1 are disabled, emit 3dNOW! write prefetches for
7430 non-SSE2 athlons only, otherwise prefer SSE prefetches.
7432 2016-08-20 Kugan Vivekanandarajah <kuganv@linaro.org>
7434 * tree-vrp.c (vrp_visit_assignment_or_call): Changed to Return VR.
7435 (vrp_visit_cond_stmt): Just sets TAKEN_EDGE_P.
7436 (vrp_visit_switch_stmt): Likewise.
7437 (extract_range_from_stmt): Factored out from vrp_visit_stmt.
7438 (extract_range_from_phi_node): Factored out from vrp_visit_phi_stmt.
7439 (vrp_visit_stmt): Use extract_range_from_stmt.
7440 (vrp_visit_phi_node): Use extract_range_from_phi_node.
7442 2016-08-20 Kugan Vivekanandarajah <kuganv@linaro.org>
7444 * Makefile.in: Add tree-vrp.h to GTFILES.
7445 * gengtype.c (open_base_files): Add tree-vrp.h.
7446 * asan.c: Add tree-vrp.h which now has the definition value_range_type.
7447 * builtins.c: Likewise.
7448 * fold-const.c: Likewise.
7449 * gimple-builder.c: Likewise.
7450 * gimple-laddress.c: Likewise.
7451 * hsa-gen.c: Likewise.
7452 * internal-fn.c: Likewise.
7454 * targhooks.c: Liewise,
7455 * tree-ssa-address.c: Likewise.
7456 * tree-ssanames.h (value_range_type: Move to tree-vrp.h.
7457 * tree-vrp.c (struct value_range): Move to tree-vrp.h
7458 * tree-vrp.h: New file.
7460 2016-08-20 Kugan Vivekanandarajah <kuganv@linaro.org>
7462 PR tree-optimization/61839
7463 * tree-vrp.c (two_valued_val_range_p): New.
7464 (simplify_stmt_using_ranges): Convert CST BINOP VAR where VAR is
7465 two-valued to VAR == VAL1 ? (CST BINOP VAL1) : (CST BINOP VAL2).
7466 Also Convert VAR BINOP CST where VAR is two-valued to
7467 VAR == VAL1 ? (VAL1 BINOP CST) : (VAL2 BINOP CST).
7469 2016-08-19 David Malcolm <dmalcolm@redhat.com>
7471 * diagnostic-show-locus.c
7472 (layout::annotation_line_showed_range_p): New method.
7473 (layout::print_any_fixits): Remove case fixit_hint::REMOVE.
7474 Reimplement case fixit_hint::REPLACE to cover removals, and
7475 replacements where the range of the replacement isn't one
7476 of the ranges in the rich_location.
7477 (test_one_liner_fixit_replace): Likewise.
7478 (selftest::test_one_liner_fixit_replace_non_equal_range): New
7480 (selftest::test_one_liner_fixit_replace_equal_secondary_range):
7482 (selftest::test_diagnostic_show_locus_one_liner): Call the new
7484 * diagnostic.c (print_parseable_fixits): Remove case
7487 2016-08-19 Uros Bizjak <ubizjak@gmail.com>
7490 * config/i386/i386.c (ix86_option_override_internal): Remove
7491 PTA_PRFCHW from entries that also have PTA_3DNOW flag.
7492 Enable SSE prefetch also for TARGET_PREFETCHWT1.
7493 Do not try to enable TARGET_PRFCHW ISA flag here.
7494 * config/i386/i386.md (prefetch): Enable also for TARGET_3DNOW.
7495 Rewrite expander function body.
7496 (*prefetch_3dnow): Enable for TARGET_3DNOW and TARGET_PREFETCHWT1.
7498 2016-08-19 Joseph Myers <joseph@codesourcery.com>
7501 * tree-core.h (TI_COMPLEX_FLOAT16_TYPE)
7502 (TI_COMPLEX_FLOATN_NX_TYPE_FIRST, TI_COMPLEX_FLOAT32_TYPE)
7503 (TI_COMPLEX_FLOAT64_TYPE, TI_COMPLEX_FLOAT128_TYPE)
7504 (TI_COMPLEX_FLOAT32X_TYPE, TI_COMPLEX_FLOAT64X_TYPE)
7505 (TI_COMPLEX_FLOAT128X_TYPE, TI_FLOAT16_TYPE, TI_FLOATN_TYPE_FIRST)
7506 (TI_FLOATN_NX_TYPE_FIRST, TI_FLOAT32_TYPE, TI_FLOAT64_TYPE)
7507 (TI_FLOAT128_TYPE, TI_FLOATN_TYPE_LAST, TI_FLOAT32X_TYPE)
7508 (TI_FLOATNX_TYPE_FIRST, TI_FLOAT64X_TYPE, TI_FLOAT128X_TYPE)
7509 (TI_FLOATNX_TYPE_LAST, TI_FLOATN_NX_TYPE_LAST): New enum
7511 (NUM_FLOATN_TYPES, NUM_FLOATNX_TYPES, NUM_FLOATN_NX_TYPES): New
7513 (struct floatn_type_info): New structure type.
7514 (floatn_nx_types): New variable declaration.
7515 * tree.h (FLOATN_TYPE_NODE, FLOATN_NX_TYPE_NODE)
7516 (FLOATNX_TYPE_NODE, float128_type_node, float64x_type_node)
7517 (COMPLEX_FLOATN_NX_TYPE_NODE): New macros.
7518 * tree.c (floatn_nx_types): New variable.
7519 (build_common_tree_nodes): Initialize _FloatN, _FloatNx and
7520 corresponding complex types.
7521 * target.def (floatn_mode): New hook.
7522 * targhooks.c: Include "real.h".
7523 (default_floatn_mode): New function.
7524 * targhooks.h (default_floatn_mode): New prototype.
7525 * doc/extend.texi (Floating Types): Document _FloatN and _FloatNx
7527 * doc/sourcebuild.texi (float@var{n}, float@var{n}x): Document new
7528 effective-target and dg-add-options keywords.
7529 (float@var{n}_runtime, float@var{n}x_runtime, floatn_nx_runtime):
7530 Document new effective-target keywords.
7531 * doc/tm.texi.in (TARGET_FLOATN_MODE): New @hook.
7532 * doc/tm.texi: Regenerate.
7533 * ginclude/float.h (LDBL_DECIMAL_DIG): Define to
7534 __LDBL_DECIMAL_DIG__, not __DECIMAL_DIG__.
7535 [__STDC_WANT_IEC_60559_TYPES_EXT__]: Define macros from TS
7537 * real.h (struct real_format): Add field ieee_bits.
7538 * real.c (ieee_single_format, mips_single_format)
7539 (motorola_single_format, spu_single_format, ieee_double_format)
7540 (mips_double_format, motorola_double_format)
7541 (ieee_extended_motorola_format, ieee_extended_intel_96_format)
7542 (ieee_extended_intel_128_format)
7543 (ieee_extended_intel_96_round_53_format, ibm_extended_format)
7544 (mips_extended_format, ieee_quad_format, mips_quad_format)
7545 (vax_f_format, vax_d_format, vax_g_format, decimal_single_format)
7546 (decimal_double_format, decimal_quad_format, ieee_half_format)
7547 (arm_half_format, real_internal_format: Initialize ieee_bits
7549 * config/i386/i386.c (ix86_init_builtin_types): Do not initialize
7550 float128_type_node. Set float80_type_node to float64x_type_node
7551 if appropriate and long_double_type_node not appropriate.
7552 * config/ia64/ia64.c (ia64_init_builtins): Likewise.
7553 * config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format):
7554 Initialize ieee_bits field.
7555 * config/rs6000/rs6000.c (TARGET_FLOATN_MODE): New macro.
7556 (rs6000_init_builtins): Set ieee128_float_type_node to
7558 (rs6000_floatn_mode): New function.
7560 2016-08-19 Jakub Jelinek <jakub@redhat.com>
7562 * config/i386/rdseedintrin.h (_rdseed16_step, _rdseed32_step,
7563 _rdseed64_step): Uglify argument names and/or local variable names
7564 in inline functions.
7565 * config/i386/rtmintrin.h (_xabort): Likewise.
7566 * config/i386/avx512vlintrin.h (_mm256_ternarylogic_epi64,
7567 _mm256_mask_ternarylogic_epi64, _mm256_maskz_ternarylogic_epi64,
7568 _mm256_ternarylogic_epi32, _mm256_mask_ternarylogic_epi32,
7569 _mm256_maskz_ternarylogic_epi32, _mm_ternarylogic_epi64,
7570 _mm_mask_ternarylogic_epi64, _mm_maskz_ternarylogic_epi64,
7571 _mm_ternarylogic_epi32, _mm_mask_ternarylogic_epi32,
7572 _mm_maskz_ternarylogic_epi32): Likewise.
7573 * config/i386/lwpintrin.h (__llwpcb, __lwpval32, __lwpval64,
7574 __lwpins32, __lwpins64): Likewise.
7575 * config/i386/avx2intrin.h (_mm_i32gather_pd, _mm_mask_i32gather_pd,
7576 _mm256_i32gather_pd, _mm256_mask_i32gather_pd, _mm_i64gather_pd,
7577 _mm_mask_i64gather_pd, _mm256_i64gather_pd, _mm256_mask_i64gather_pd,
7578 _mm_i32gather_ps, _mm_mask_i32gather_ps, _mm256_i32gather_ps,
7579 _mm256_mask_i32gather_ps, _mm_i64gather_ps, _mm_mask_i64gather_ps,
7580 _mm256_i64gather_ps, _mm256_mask_i64gather_ps, _mm_i32gather_epi64,
7581 _mm_mask_i32gather_epi64, _mm256_i32gather_epi64,
7582 _mm256_mask_i32gather_epi64, _mm_i64gather_epi64,
7583 _mm_mask_i64gather_epi64, _mm256_i64gather_epi64,
7584 _mm256_mask_i64gather_epi64, _mm_i32gather_epi32,
7585 _mm_mask_i32gather_epi32, _mm256_i32gather_epi32,
7586 _mm256_mask_i32gather_epi32, _mm_i64gather_epi32,
7587 _mm_mask_i64gather_epi32, _mm256_i64gather_epi32,
7588 _mm256_mask_i64gather_epi32): Likewise.
7589 * config/i386/pmm_malloc.h (_mm_malloc, _mm_free): Likewise.
7590 * config/i386/ia32intrin.h (__writeeflags): Likewise.
7591 * config/i386/pkuintrin.h (_wrpkru): Likewise.
7592 * config/i386/avx512pfintrin.h (_mm512_mask_prefetch_i32gather_pd,
7593 _mm512_mask_prefetch_i32gather_ps, _mm512_mask_prefetch_i64gather_pd,
7594 _mm512_mask_prefetch_i64gather_ps, _mm512_prefetch_i32scatter_pd,
7595 _mm512_prefetch_i32scatter_ps, _mm512_mask_prefetch_i32scatter_pd,
7596 _mm512_mask_prefetch_i32scatter_ps, _mm512_prefetch_i64scatter_pd,
7597 _mm512_prefetch_i64scatter_ps, _mm512_mask_prefetch_i64scatter_pd,
7598 _mm512_mask_prefetch_i64scatter_ps): Likewise.
7599 * config/i386/gmm_malloc.h (_mm_malloc, _mm_free): Likewise.
7600 * config/i386/avx512fintrin.h (_mm512_ternarylogic_epi64,
7601 _mm512_mask_ternarylogic_epi64, _mm512_maskz_ternarylogic_epi64,
7602 _mm512_ternarylogic_epi32, _mm512_mask_ternarylogic_epi32,
7603 _mm512_maskz_ternarylogic_epi32, _mm512_i32gather_ps,
7604 _mm512_mask_i32gather_ps, _mm512_i32gather_pd, _mm512_i64gather_ps,
7605 _mm512_i64gather_pd, _mm512_i32gather_epi32, _mm512_i32gather_epi64,
7606 _mm512_i64gather_epi32, _mm512_i64gather_epi64): Likewise.
7608 * config/i386/fxsrintrin.h (_fxsave): Remove return keyword in inlines
7610 (_fxrstor, _fxsave64, _fxrstor64): Likewise.
7611 * config/i386/xsaveintrin.h (_xsave, _xrstor, _xsave64, _xrstor64):
7613 * config/i386/xsaveoptintrin.h (_xsaveopt, _xsaveopt64): Likewise.
7614 * config/i386/pkuintrin.h (_wrpkru): Likewise. Add space after
7616 (_rdpkru_u32): Add space after function name.
7618 * config/i386/t-i386 (i386-c.o): Don't depend on
7619 i386-builtin-types.inc.
7620 (i386.o): Depend on i386-builtin-types.inc.
7622 2016-08-19 Matthew Wahab <matthew.wahab@arm.com>
7625 * config/arm/arm.c (neon_valid_immediate): Delete declaration.
7626 Use const_vec_duplicate to check for duplicated elements.
7628 2016-08-19 Richard Biener <rguenther@suse.de>
7630 PR tree-optimization/77290
7631 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
7632 Fix flag_tree_parallelize_loops check.
7634 2016-08-19 Richard Biener <rguenther@suse.de>
7636 * match.pd (x | 0 -> x): Add.
7638 2016-08-19 Richard Biener <rguenther@suse.de>
7640 PR tree-optimization/77286
7641 * tree-vect-loop-manip.c (slpeel_duplicate_current_defs_from_edges):
7642 Deal with virtual PHIs being out-of-order.
7644 2016-08-18 David Malcolm <dmalcolm@redhat.com>
7646 * doc/invoke.texi (fverbose-asm): Note that source code lines
7647 are emitted, and provide an example.
7648 * final.c (asm_show_source): New function.
7649 (final_scan_insn): Call asm_show_source.
7651 2016-08-18 David Malcolm <dmalcolm@redhat.com>
7653 * diagnostic-show-locus.c (colorizer::colorizer): Replace diagnostic
7654 param with diagnostic_kind.
7655 (class colorizer): Similarly replace field m_diagnostic with
7657 (colorizer::colorizer): Replace diagnostic
7658 param with diagnostic_kind.
7659 (colorizer::begin_state): Update for above field change.
7660 (layout::layout): Replace diagnostic param with rich_location *
7661 and diagnostic_kind.
7662 (diagnostic_show_locus): Replace diagnostic param with richloc
7663 and diagnostic_kind.
7664 (class selftest::test_diagnostic_context): New class.
7665 (selftest::test_diagnostic_show_locus_unknown_location): New
7667 (selftest::test_one_liner_simple_caret): New function.
7668 (selftest::test_one_liner_caret_and_range): New function.
7669 (selftest::test_one_liner_multiple_carets_and_ranges): New
7671 (selftest::test_one_liner_fixit_remove): New function.
7672 (selftest::test_one_liner_fixit_replace): New function.
7673 (selftest::test_diagnostic_show_locus_one_liner): New function.
7674 (selftest::diagnostic_show_locus_c_tests): Call the new test
7676 * diagnostic.c (diagnostic_initialize): Initialize
7677 colorize_source_p, show_ruler_p and parseable_fixits_p.
7678 (default_diagnostic_finalizer): Update for change to
7679 diagnostic_show_locus.
7680 (diagnostic_append_note): Likewise.
7681 * diagnostic.h (diagnostic_show_locus): Replace
7682 const diagnostic_info * param with location * and diagnostic_t.
7684 2016-08-18 David Malcolm <dmalcolm@redhat.com>
7686 * input.c (saved_line_table): New global.
7687 (class selftest::temp_line_table): Rename to line_table_test and
7688 move declaration to selftest.h, and drop field m_old_line_table.
7689 (selftest::temp_line_table::temp_line_table): Rename ctor to...
7690 (selftest::line_table_test::line_table_test): ...this. Add a
7691 default ctor. Store current value of line_table within
7693 (selftest::temp_line_table::~temp_line_table): Rename dtor to...
7694 (selftest::line_table_test::~line_table_test): ...this, and
7695 restore line_table from the saved_line_table, rather than
7697 (selftest::test_accessing_ordinary_linemaps): Update for above
7699 (selftest::test_lexer): Likewise.
7700 (struct selftest::lexer_test): Likewise.
7701 (selftest::lexer_test::lexer_test): Likewise.
7702 (selftest::input_c_tests): Move the looping over test cases from
7704 (selftest::for_each_line_table_case): New function.
7705 * input.h (saved_line_table): New decl.
7706 * selftest.h (struct selftest::line_table_case): New forward decl.
7707 (class selftest::line_table_test): New class, moved here from
7708 selftest::temp_line_table in input.c, and renamed.
7709 (selftest::for_each_line_table_case): New decl.
7711 2015-08-18 H.J. Lu <hongjiu.lu@intel.com>
7714 * config/i386/i386.c (lakemont_cost): Set MOVE_RATIO to 17.
7716 2016-08-18 Chung-Lin Tang <cltang@codesourcery.com>
7719 * gimplify.c (omp_add_variable): Adjust/add variable mapping on
7720 enclosing parallel construct for reduction variables on OpenACC loop
7723 2016-08-18 Pierre-Marie de Rodat <derodat@adacore.com>
7725 * dwarf2out.c (copy_dwarf_procedure): Remove obsolete comment.
7726 (new_dwarf_proc_die): Emit DW_TAG_dwarf_procedure DIEs even for
7728 (function_to_dwarf_procedure): Update comment.
7730 2016-08-18 David Malcolm <dmalcolm@redhat.com>
7732 * input.c (diagnostics_file_cache_forcibly_evict_file): New
7734 * input.h (diagnostics_file_cache_forcibly_evict_file): New
7736 * selftest.c (selftest::temp_source_file::~temp_source_file):
7737 Evict m_filename from the diagnostic file cache.
7739 2016-08-18 Richard Biener <rguenther@suse.de>
7741 * tree-pass.h (make_pass_materialize_all_clones): Declare.
7742 * ipa.c (pass_data_materialize_all_clones, pass_materialize_all_clones,
7743 make_pass_materialize_all_clones): New simple IPA pass encapsulating
7744 clone materialization.
7745 * passes.def (all_late_ipa_passes): Start with
7746 pass_materialize_all_clones.
7747 * cgraphunit.c (symbol_table::compile): Remove call to
7748 materialize_all_clones.
7749 * tree-into-ssa.c: Include statistics.h.
7750 (update_ssa): Count number of times we do incremental/rewrite
7753 2016-08-18 Richard Biener <rguenther@suse.de>
7755 PR tree-optimization/77282
7756 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
7757 When doing auto-parallelizing also prevent use of PHIs that
7758 carry dependences across loop backedges.
7760 2016-08-18 Tamar Christina <tamar.christina@arm.com>
7761 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
7763 * varasm.c (default_use_anchors_for_symbol_p): Reject too large decls.
7765 2016-08-18 Richard Biener <rguenther@suse.de>
7767 * ssa-iterators.h (ssa_vuse_operand): New inline.
7768 * tree-if-conv.c (ifc_temp_var): Update virtual operand.
7769 (predicate_all_scalar_phis): Use remove_phi_node to remove
7770 phi nodes predicated. Delay removing virtual PHIs.
7771 (predicate_mem_writes): Update virtual operands.
7772 (combine_blocks): Likewise. Propagate out remaining virtual PHIs.
7773 (tree_if_conversion): Do not rewrite virtual SSA form.
7774 * tree-phinodes.c (release_phi_node): Make static.
7775 * tree-phinodes.h (release_phi_node): Remove.
7777 2016-08-18 Jakub Jelinek <jakub@redhat.com>
7779 * config/i386/i386.c (enum ix86_builtins): Remove IX86_BUILTIN_*
7780 codes that appear in bdesc_* arrays, instead include i386-builtin.def
7781 twice to define those.
7782 (bdesc_comi, bdesc_pcmpestr, bdesc_pcmpistr, bdesc_special_args,
7783 bdesc_args, bdesc_round_args, bdesc_mpx, bdesc_mpx_const,
7784 bdesc_multi_arg): Define by including i386-builtin.def the third time.
7785 * config/i386/i386-builtin.def: New file.
7787 2016-08-17 David Malcolm <dmalcolm@redhat.com>
7789 * input.c (get_source_range_for_char): Rename to...
7790 (selftest::get_source_range_for_char): ...this, and move within
7791 the #if CHECKING_P guard.
7792 (get_num_source_ranges_for_substring): Rename to...
7793 (selftest::get_num_source_ranges_for_substring): ...this, move
7794 within the #if CHECKING_P guard, and make static.
7795 (selftest::assert_num_substring_ranges): Initialize
7798 2016-08-18 Alan Modra <amodra@gmail.com>
7800 PR rtl-optimization/72771
7801 * reload.c (find_reloads): Don't assume that a subreg mem is OK
7802 when find_reloads_toplev returns address_reloaded==-1.
7803 (alternative_allows_const_pool_ref): Update comment.
7805 2015-08-17 Alan Hayward <alan.hayward@arm.com>
7807 PR tree-optimization/71752
7808 * tree-vect-loop.c (vectorizable_reduction): Keep SLP operand ordering.
7809 * tree-vect-slp.c (vect_get_slp_defs): Handle null operands.
7811 2016-08-17 Jakub Jelinek <jakub@redhat.com>
7813 * gimple-fold.c (gimple_fold_call): Use gimple_call_noreturn_p
7814 instead of testing ECF_NORETURN bit in gimple_call_flags.
7815 * tree-cfg.c (make_edges_bb, execute_fixup_cfg): Likewise.
7816 * predict.c (tree_bb_level_predictions): Likewise.
7817 * gimple-low.c (gimple_stmt_may_fallthru): Likewise.
7820 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): If
7821 turning a call into __builtin_unreachable-like noreturn call, adjust
7822 gimple_call_set_fntype.
7823 * tree-cfgcleanup.c (fixup_noreturn_call): Remove lhs also if
7824 gimple_call_fntype has void return type.
7826 2016-08-17 Chung-Lin Tang <cltang@codesourcery.com>
7828 * omp-low.c (lower_oacc_reductions): Adjust variable lookup to use
7829 maybe_lookup_decl, to handle nested acc loop directives.
7831 2016-08-17 Richard Biener <rguenther@suse.de>
7833 PR tree-optimization/76490
7834 * tree-vrp.c (update_value_range): Preserve overflow infinities
7835 when intersecting with ranges from get_range_info.
7836 (operand_less_p): Handle overflow infinities correctly.
7837 (value_range_constant_singleton): Use vrp_operand_equal_p
7838 to handle overflow max/min correctly.
7839 (vrp_valueize): Likewise.
7840 (union_ranges): Likewise.
7841 (intersect_ranges): Likewise.
7842 (vrp_visit_phi_node): Improve iteration limitation to only
7843 apply when we'll possibly re-visit the PHI via a changed argument
7846 2016-08-17 Thomas Preud'homme <thomas.preudhomme@arm.com>
7848 * config/arm/t-aprofile (MULTILIB_EXCEPTIONS): Rewrite into ...
7849 (MULTILIB_REQUIRED): This by specifying multilib needing to be built
7850 rather than those that should not be built.
7852 2016-08-17 Stanislaw Halik <sthalik@misaki.pl>
7855 * config/i386/xm-mingw32.h (HOST_BITS_PER_PTR): Define if __x86_64__.
7857 2016-08-17 Richard Biener <rguenther@suse.de>
7859 * tree-ssa.c: Include tree-cfg.h and tree-dfa.h.
7860 (verify_vssa): New function verifying virtual SSA form.
7861 (verify_ssa): Call it.
7862 * tree-ssa-loop-manip.c (slpeel_update_phi_nodes_for_guard2):
7863 Do not apply loop-closed SSA handling to virtuals.
7864 * ssa-iterators.h (op_iter_init): Handle GIMPLE_TRANSACTION.
7865 * tree-into-ssa.c (prepare_use_sites_for): Skip virtual SSA names
7866 when rewriting their symbol.
7867 (prepare_def_site_for): Likewise.
7868 * tree-chkp-opt.c (chkp_reduce_bounds_lifetime): Clear virtual
7869 operands of moved stmts.
7871 2016-08-17 Richard Biener <rguenther@suse.de>
7873 PR tree-optimization/23855
7874 * tree-ssa-loop-unswitch.c: Include tree-ssa-loop-manip.h.
7875 (tree_unswitch_outer_loop): Iterate find_loop_guard as long as we
7876 find guards to hoist. Do not update SSA form but rewrite virtuals
7877 into loop closed SSA.
7878 (find_loop_guard): Adjust to skip already hoisted guards. Do
7879 not mark virtuals for renaming or update SSA form.
7881 2016-08-17 Martin Liska <mliska@suse.cz>
7883 * coverage.c (get_gcov_type): Replace GCOV_TYPE_SIZE with
7884 a LONG_LONG_TYPE_SIZE comparison.
7885 * gcov-io.h: Remove macro definitions.
7886 * tree-profile.c (gimple_gen_edge_profiler): Replace usage
7887 of GCOV_TYPE_ATOMIC_FETCH_ADD with a LONG_LONG_TYPE_SIZE
7890 2016-08-16 Jakub Jelinek <jakub@redhat.com>
7892 * config/i386/i386.c (enum ix86_builtins): Reorder enumerators, so
7893 that builtins not mentioned in bdesc_* arrays come first, then
7894 the ones mentioned in bdesc_* arrays in the order they appear in
7895 the arrays in between IX86_BUILTIN__BDESC_*_FIRST and
7896 IX86_BUILTIN__BDESC_*_LAST enumerator.
7897 (bdesc_mpx): Fix up a comment typo.
7898 (bdesc_multi_arg): Remove __builtin_ia32_vpcomne[bwdq] and
7899 __builtin_ia32_vpcomneu[bwdq] builtins.
7900 (BDESC_VERIFY, BDESC_VERIFYS): Define.
7901 (ix86_init_mmx_sse_builtins, ix86_init_mpx_builtins): Verify
7902 enum ix86_builtins ordering.
7903 (ix86_expand_builtin): Use enum ix86_builtins ordering assumption
7904 for direct bdesc_* array member access instead of searching all the
7905 arrays until an fcode match is found.
7907 2016-08-16 Uros Bizjak <ubizjak@gmail.com>
7909 * config/i386/i386.md (*ashl<mode>3_mask): Rewrite define_insn
7910 pattern as define_insn_and_split. Split insn before reload to
7912 (*<shift_insn><mode>3_mask): Ditto. Split insn before reload to
7913 <shift_insn><mode>3_1.
7914 (*<rotate_insn><mode>3_mask): Ditto. Split insn before reload to
7915 <rotate_insn><mode>3_1.
7917 2016-08-16 David Malcolm <dmalcolm@redhat.com>
7920 * input.c (get_source_range_for_substring): Rename to...
7921 (get_source_location_for_substring): ...this, adding param
7922 "caret_idx", and converting output param from source_range * to
7924 (get_source_range_for_char): New function.
7925 (get_num_source_ranges_for_substring): Update comment to reflect
7927 (assert_char_at_range): Update to use get_source_range_for_char
7928 rather than get_source_range_for_substring.
7929 (test_lexer_string_locations_concatenation_2): Likewise.
7930 * substring-locations.h (get_source_range_for_substring): Rename
7932 (get_source_location_for_substring): ...this, and adding param
7933 "caret_idx", and converting output param from source_range * to
7936 2016-08-16 David Malcolm <dmalcolm@redhat.com>
7938 * input.c (class selftest::temp_source_file): Move to
7940 (selftest::temp_source_file::temp_source_file): Move to
7942 (selftest::temp_source_file::~temp_source_file): Likewise.
7943 * selftest.c (selftest::temp_source_file::temp_source_file): Move
7945 (selftest::temp_source_file::~temp_source_file): Likewise.
7946 * selftest.h (class selftest::temp_source_file): Move here from
7949 2016-08-16 Jakub Jelinek <jakub@redhat.com>
7952 * tree-cfg.c (execute_fixup_cfg): Add node variable, use it. Before
7953 inlining, add cgraph edge for the added __builtin_unreachable call.
7956 * expmed.c (expand_mult_const): Change val_so_far's type to UHWI,
7957 only cast it to SHWI for the final comparison.
7959 2016-08-16 Martin Liska <mliska@suse.cz>
7961 PR gcov-profile/36412
7962 * doc/gcov.texi: Document --hash-filenames(-x).
7963 * gcov.c (print_usage): Add the option.
7964 (process_args): Process the option, sort options alphabetically.
7965 (md5sum_to_hex): New function.
7966 (make_gcov_file_name): Do the md5sum and append it to a
7969 2016-08-16 Bin Cheng <bin.cheng@arm.com>
7971 PR tree-optimization/69848
7972 * config/aarch64/aarch64-simd.md (vcond<mode><mode>): Invert NE
7973 and swtich operands to avoid additional NOT instruction.
7974 (vcond<v_cmp_mixed><mode>): Ditto.
7975 (vcondu<mode><mode>, vcondu<mode><v_cmp_mixed>): Ditto.
7977 2016-08-16 Eric Botcazou <ebotcazou@adacore.com>
7979 * doc/install.texi (*-*-solaris2*): Adjust latest change.
7981 2016-08-16 Richard Biener <rguenther@suse.de>
7983 PR tree-optimization/76783
7984 * tree-ssa-propagate.c (ssa_prop_init): Use RPO order. Clear
7985 BB visited flags at start.
7987 2016-08-16 Bin Cheng <bin.cheng@arm.com>
7989 PR tree-optimization/72817
7990 PR tree-optimization/73450
7991 * tree-ssa-loop-niter.c (number_of_iterations_ne): Check
7992 multiple_of_p for adjusted IV.base.
7994 2016-08-15 Uros Bizjak <ubizjak@gmail.com>
7997 * config/i386/sse.md (<code><mode>3<mask_name><round_saeonly_name>):
7998 Emit ieee_<ieee_maxmin><mode>3<mask_name><round_saeonly_name>
7999 for !flag_finite_math_only or flag_signed_zeros.
8000 (*<code><mode>3<mask_name><round_saeonly_name>): Rename from
8001 *<code><mode>3_finite<mask_name><round_saeonly_name>. Do not
8002 depend on flag_finite_math_only.
8003 (ieee_<ieee_maxmin><mode>3<mask_name><round_saeonly_name>):
8005 (*<code><mode>3<mask_name><round_saeonly_name>): Remove.
8006 (*ieee_smin<mode>3): Ditto.
8007 (*ieee_smax<mode>3): Ditto.
8008 * config/i386/mmx.md (mmx_<code>v2sf3): Emit
8009 mmx_ieee_<ieee_maxmin>v2sf3 for !flag_finite_math_only or
8011 (*mmx_<code>v2sf3): Rename from *mmx_<code>v2sf3_finite. Do not
8012 depend on flag_finite_math_only.
8013 (mmx_ieee_<ieee_maxmin>v2sf3): New insn pattern.
8014 (*mmx_<code>v2sf3): Remove.
8015 * config/i386/subst.md (round_saeonly_mask_arg3): New subst attribute.
8016 * config/i386/i386.c (ix86_expand_sse_fp_mimnax): Check
8017 flag_signed_zeros instead of !flag_unsafe_math_optimizations.
8019 2016-08-15 Segher Boessenkool <segher@kernel.crashing.org>
8021 PR rtl-optimization/73650
8022 * lra-constraints.c (simple_move_p): If the insn is multiple_sets
8023 it is not a simple move.
8025 2016-08-15 Martin Liska <mliska@suse.cz>
8028 * gcc.c (do_spec_1): Call save_string with the right size.
8029 (save_string): Do an assert about string we copy.
8031 2016-08-15 Richard Biener <rguenther@suse.de>
8033 * ree.c (rest_of_handle_ree): Remove redundant timevar push/pop.
8034 * config/i386/i386.c (pass_data_insert_vzeroupper): Account to
8036 (pass_data_stv): Likewise.
8038 2016-08-15 Richard Biener <rguenther@suse.de>
8040 PR tree-optimization/73434
8041 * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Preserve
8042 TBAA info on the base when forwarding a non-invariant address.
8044 2016-08-15 Jakub Jelinek <jakub@redhat.com>
8046 * dwarf2out.c (struct checksum_attributes): Add
8047 at_string_length_bit_size and at_string_length_byte_size fields.
8048 (collect_checksum_attributes): Handle DW_AT_string_length_bit_size
8049 and DW_AT_string_length_byte_size.
8050 (die_checksum_ordered): Handle at_string_length_bit_size and
8051 at_string_length_byte_size.
8052 (gen_array_type_die): For dwarf_version >= 5 emit
8053 DW_AT_string_length_byte_size instead of DW_AT_byte_size.
8054 (adjust_string_types): For dwarf_version >= 5 remove
8055 DW_AT_string_length_byte_size instead of DW_AT_byte_size.
8056 (resolve_addr): Likewise.
8059 * dwarf2out.c (string_types): New variable.
8060 (gen_array_type_die): Change early_dwarf handling of
8061 DW_AT_string_length, create DW_OP_call4 referencing the
8062 length var temporarily. Handle parameters that are pointers
8064 (adjust_string_types): New function.
8065 (gen_subprogram_die): Temporarily set string_types to local var,
8066 call adjust_string_types if needed.
8067 (non_dwarf_expression, copy_deref_exprloc, optimize_string_length):
8069 (resolve_addr): Adjust DW_AT_string_length if it is DW_OP_call4.
8071 2016-08-15 Eric Botcazou <ebotcazou@adacore.com>
8073 * doc/install.texi (*-*-solaris2*): Fix version number and document
8074 requirement on GNU make for building libjava with the Solaris linker.
8076 2016-08-15 Martin Liska <mliska@suse.cz>
8077 Jakub Jelinek <jakub@redhat.com>
8079 PR tree-optimization/72824
8080 * tree-loop-distribution.c (const_with_all_bytes_same)
8081 <case VECTOR_CST>: Fix a typo.
8083 2016-08-14 Uros Bizjak <ubizjak@gmail.com>
8086 * config/i386/avx512fintrin.h (_mm512_undefined_epi32):
8087 Renamed from _mm512_undefined_si512.
8088 (_mm_undefined_si512): New definition.
8090 2016-08-13 Richard Biener <rguenther@suse.de>
8092 * tree-ssa-forwprop.c (pass_forwprop::execute): Propagate
8093 into PHIs and update the lattice for its def.
8095 2016-08-12 Jakub Jelinek <jakub@redhat.com>
8098 * ubsan.c (instrument_si_overflow): Pass true instead of false
8100 (pass_ubsan::execute): Call gimple_purge_dead_eh_edges at the end
8101 of bbs. Return TODO_cleanup_cfg if any returned true.
8103 2016-08-12 Michael Meissner <meissner@linux.vnet.ibm.com>
8105 * config/rs6000/vsx.md (vsx_concat_<mode>): Add support for the
8106 ISA 3.0 MTVSRDD instruction.
8107 (vsx_splat_<mode>): Change cpu type of MTVSRDD instruction to
8110 2016-08-12 Bernd Edlinger <bernd.edlinger@hotmail.de>
8112 PR tree-optimization/71083
8113 * tree-predcom.c (ref_at_iteration): Use a COMPONENT_REF for the
8114 bitfield access when possible.
8116 2016-08-12 Patrick Palka <ppalka@gcc.gnu.org>
8119 * match.pd ((T)A CMP (T)B -> A CMP B): Allow (T)A to be a
8120 sign-changing cast from a shorter unsigned type to a wider
8123 2016-08-12 Jakub Jelinek <jakub@redhat.com>
8125 * config/i386/sse.md (avx512dq_vextract<shuffletype>64x2_1_maskm,
8126 vec_extract_hi_<mode>_mask, vec_extract_lo_<mode>_mask,
8127 vec_extract_hi_<mode>_mask): Use Yk constraint instead of k.
8129 2016-08-12 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
8131 * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost):
8132 Correct costs for vec_construct.
8134 2016-08-12 Bin Cheng <bin.cheng@arm.com>
8136 PR tree-optimization/69848
8137 * tree-vectorizer.h (enum vect_def_type): New condition reduction
8138 type CONST_COND_REDUCTION.
8139 * tree-vect-loop.c (vectorizable_reduction): Support new condition
8140 reudction type CONST_COND_REDUCTION.
8142 2016-08-12 Richard Biener <rguenther@suse.de>
8144 PR tree-optimization/57326
8145 * tree-ssa-pre.c (fully_constant_expression): Handle simplification
8146 returning an SSA name.
8147 (phi_translate_1): When fully_constant_expression returns a NAME
8148 make sure we have a leader for it.
8150 2016-08-12 Martin Liska <mliska@suse.cz>
8151 Adam Fineman <afineman@afineman.com>
8153 * gcov.c (process_file): Create .gcov file when .gcda
8156 2016-08-12 Marek Polacek <polacek@redhat.com>
8159 * alias.c (find_base_value): Adjust fall through comment.
8160 * cfgexpand.c (expand_debug_expr): Likewise.
8161 * combine.c (find_split_point): Likewise.
8162 (expand_compound_operation): Likewise. Add FALLTHRU.
8163 (make_compound_operation): Adjust fall through comment.
8164 (canon_reg_for_combine): Add FALLTHRU.
8165 (force_to_mode): Adjust fall through comment.
8166 (simplify_shift_const_1): Likewise.
8167 (simplify_comparison): Likewise.
8168 * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args): Add
8170 * config/aarch64/predicates.md: Likewise.
8171 * config/i386/i386.c (function_arg_advance_32): Likewise.
8172 (ix86_gimplify_va_arg): Likewise.
8173 (print_reg): Likewise.
8174 (ix86_print_operand): Likewise.
8175 (ix86_build_const_vector): Likewise.
8176 (ix86_expand_branch): Likewise.
8177 (ix86_sched_init_global): Adjust fall through comment.
8178 (ix86_expand_args_builtin): Add FALLTHRU.
8179 (ix86_expand_builtin): Likewise.
8180 (ix86_expand_vector_init_one_var): Likewise.
8181 * config/rs6000/rs6000.c (rs6000_emit_vector_compare_inner): Likewise.
8182 (rs6000_adjust_cost): Likewise.
8183 (insn_must_be_first_in_group): Likewise.
8184 * config/rs6000/rs6000.md: Likewise. Adjust fall through comment.
8185 * dbxout.c (dbxout_symbol): Adjust fall through comment.
8186 * df-scan.c (df_uses_record): Likewise.
8187 * dojump.c (do_jump): Add FALLTHRU.
8188 * dwarf2out.c (mem_loc_descriptor): Likewise. Adjust fall through
8190 (resolve_args_picking_1): Adjust fall through comment.
8191 (loc_list_from_tree_1): Likewise.
8192 * expmed.c (make_tree): Likewise.
8193 * expr.c (expand_expr_real_2): Add FALLTHRU.
8194 (expand_expr_real_1): Likewise. Adjust fall through comment.
8195 * fold-const.c (const_binop): Adjust fall through comment.
8196 (fold_truth_not_expr): Likewise.
8197 (fold_cond_expr_with_comparison): Add FALLTHRU.
8198 (fold_binary_loc): Likewise.
8199 (contains_label_1): Adjust fall through comment.
8200 (multiple_of_p): Likewise.
8201 * gcov-tool.c (process_args): Add FALLTHRU.
8202 * genattrtab.c (check_attr_test): Likewise.
8203 (write_test_expr): Likewise.
8204 * genconfig.c (walk_insn_part): Likewise.
8205 * genpreds.c (validate_exp): Adjust fall through comment.
8206 (needs_variable): Likewise.
8207 * gensupport.c (get_alternatives_number): Add FALLTHRU.
8208 (subst_dup): Likewise.
8209 * gimple-pretty-print.c (dump_gimple_assign): Likewise.
8210 * gimplify.c (gimplify_addr_expr): Adjust fall through comment.
8211 (gimplify_scan_omp_clauses): Add FALLTHRU.
8212 (goa_stabilize_expr): Likewise.
8213 * graphite-isl-ast-to-gimple.c (substitute_ssa_name): Adjust fall
8215 * hsa-gen.c (get_address_from_value): Likewise.
8216 * ipa-icf.c (sem_function::hash_stmt): Likewise.
8217 * ira.c (ira_setup_alts): Add FALLTHRU.
8218 * lra-eliminations.c (lra_eliminate_regs_1): Adjust fall through
8220 * lto-streamer-out.c (lto_output_tree_ref): Add FALLTHRU.
8221 * opts.c (common_handle_option): Likewise.
8222 * read-rtl.c (read_rtx_code): Likewise.
8223 * real.c (round_for_format): Likewise.
8224 * recog.c (asm_operand_ok): Likewise.
8225 * reginfo.c (reg_scan_mark_refs): Adjust fall through comment.
8226 * reload1.c (set_label_offsets): Likewise.
8227 (eliminate_regs_1): Likewise.
8228 (reload_reg_reaches_end_p): Likewise.
8229 * rtlanal.c (commutative_operand_precedence): Add FALLTHRU.
8230 (rtx_cost): Likewise.
8231 * sched-rgn.c (is_exception_free): Likewise.
8232 * simplify-rtx.c (simplify_rtx): Adjust fall through comment.
8233 * stor-layout.c (int_mode_for_mode): Likewise.
8234 * toplev.c (print_to_asm_out_file): Likewise.
8235 (print_to_stderr): Likewise.
8236 * tree-cfg.c (gimple_verify_flow_info): Likewise.
8237 * tree-chrec.c (chrec_fold_plus_1): Add FALLTHRU.
8238 (chrec_fold_multiply): Likewise.
8239 (evolution_function_is_invariant_rec_p): Likewise.
8240 (for_each_scev_op): Likewise.
8241 * tree-data-ref.c (siv_subscript_p): Likewise.
8242 (get_references_in_stmt): Likewise.
8243 * tree.c (find_placeholder_in_expr): Adjust fall through comment.
8244 (substitute_in_expr): Likewise.
8245 (type_cache_hasher::equal): Likewise.
8246 (walk_type_fields): Likewise.
8247 * var-tracking.c (adjust_mems): Add FALLTHRU.
8248 (set_dv_changed): Adjust fall through comment.
8249 * varasm.c (default_function_section): Add FALLTHRU.
8251 2016-08-12 Marek Polacek <polacek@redhat.com>
8254 * tree-complex.c (expand_complex_division): Add missing break.
8256 2016-08-12 Richard Biener <rguenther@suse.de>
8258 * passes.c (execute_todo): Do not push/pop TV_TODO.
8259 (execute_one_ipa_transform_pass): Move timevar push/pop TODO execution.
8260 (execute_one_pass): Likewise.
8261 * common.opt (ftime-report-details): New switch.
8262 * doc/invoke.texi (ftime-report-details): Document.
8263 * timevar.h (timer::print_row): Adjust signature.
8264 (timer::all_zero): New static helper.
8265 (timer::child_map_t): New typedef.
8266 (timer::time_var_def): Add children field.
8267 * timevar.c (timer::named_items::print): Adjust.
8268 (timer::~timer): Free timevar recorded children.
8269 (timer::pop_internal): When -ftime-report-details record
8270 time spent in sub-timevars.
8271 (timer::print_row): Adjust.
8272 (timer::print): Print sub-timevar stats, use all_zero.
8273 * timevar.def (TV_TODO): Remove.
8275 2016-08-12 Richard Biener <rguenther@suse.de>
8277 PR tree-optimization/72851
8278 * tree-ssa-propagate.c: Include cfganal.h. Rewrite block and stmt
8279 worklists to use bitmaps indexed in execution order.
8280 (executable_blocks, cfg_blocks_num, cfg_blocks_tail, cfg_blocks_head,
8281 bb_in_list, interesting_ssa_edges, varying_ssa_edges): Remove.
8282 (cfg_blocks): Make a bitmap.
8283 (bb_to_cfg_order, cfg_order_to_bb, ssa_edge_worklist, uid_to_stmt):
8285 (cfg_blocks_empty_p): Adjust.
8286 (cfg_blocks_add): Likewise.
8287 (cfg_blocks_get): Likewise.
8288 (add_ssa_edge): Likewise.
8289 (add_control_edge): Likewise.
8290 (simulate_stmt): Likewise.
8291 (process_ssa_edge_worklist): Likewise.
8292 (simulate_block): Likewise.
8293 (ssa_prop_init): Compute PRE order and stmt UIDs.
8294 (ssa_prop_fini): Adjust.
8295 (ssa_propagate): Adjust.
8297 2016-08-12 Richard Biener <rguenther@suse.de>
8299 * tree-vrp.c (vrp_visit_phi_node): Allow a last iteration if
8300 the currently executable edges have fixed ranges. Always
8301 go through update_value_range.
8303 2016-08-12 Alexandre Oliva <aoliva@redhat.com>
8307 (LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P): Const_tree-ify.
8308 (LANG_HOOKS_FUNCTION_DECL_DELETED_P): Likewise.
8309 (LANG_HOOKS_FUNCTION_DECL_DEFAULTED): Set default.
8310 (LANG_HOOKS_DECLS): Add it.
8311 * langhooks.h (struct lang_hooks_for_decls): Add
8312 function_decl_defaulted. Const_tree-ify
8313 function_decl_explicit_p and function_decl_deleted_p.
8314 * dwarf2out.c (gen_subprogram_die): Add DW_AT_defaulted
8315 attribute. Add DW_AT_deleted instead of DW_AT_GNU_deleted,
8316 also at strict DWARF v5.
8319 * dwarf2out.c (decl_quals): Don't map TREE_READONLY to
8320 TYPE_QUAL_CONST in reference-typed decls.
8323 * dwarf2out.c (loc_list_from_tree_1): Expand some CONSTRUCTORs
8324 in DW_OP_pieces, just enough to handle pointers to member
8326 (gen_remaining_tmpl_value_param_die_attribute): Use a location
8327 expression on DWARFv5 if a constant value doesn't work.
8329 2016-08-11 David Malcolm <dmalcolm@redhat.com>
8331 * selftest-run-tests.c (selftest::run_tests): Call selftest_c_tests.
8332 * selftest.c (selftest::test_assertions): New function.
8333 (selftest::selftest_c_tests): New function.
8334 * selftest.h (selftest::selftest_c_tests): New declaration.
8336 2016-08-11 Richard Biener <rguenther@suse.de>
8337 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
8339 PR rtl-optimization/72855
8340 * df-core.c (df_verify): Turn off DF_VERIFY_SCHEDULED at end.
8342 2016-08-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
8345 * vsx.md (vsx_load_<mode>): For P8LE, emit swaps at expand time.
8346 (vsx_store_<mode>): Likewise.
8348 2015-08-11 H.J. Lu <hongjiu.lu@intel.com>
8350 * config/i386/i386.c (timode_scalar_to_vector_candidate_p): Allow
8351 TImode CONST_WIDE_INT store.
8352 (timode_scalar_chain::convert_insn): Handle CONST_WIDE_INT store.
8354 2015-08-11 H.J. Lu <hongjiu.lu@intel.com>
8356 * config/i386/i386.h (MOVE_MAX_PIECES): Use TImode in 64-bit
8357 mode if unaligned SSE load and store are optimal.
8359 2016-08-11 Bernd Edlinger <bernd.edlinger@hotmail.de>
8361 PR tree-optimization/71083
8362 * tree-predcom.c (ref_at_iteration): Correctly align the
8365 2016-08-11 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
8367 * config/s390/s390-builtin-types.def: Add INT128 types.
8368 * config/s390/s390-builtins.def: Add INT128 variants for the add
8369 sub low-level builtins dealing with TImode.
8370 * config/s390/s390.c (s390_expand_builtin): Allow mode conversions
8371 via subreg when expanding a builtin.
8372 * config/s390/s390.md: Remove UNSPEC_VEC_ADDC_U128,
8373 UNSPEC_VEC_SUB_U128, and UNSPEC_VEC_SUBC_U128 constants.
8375 * config/s390/vecintrin.h: Adjust builtin names accordingly.
8376 * config/s390/vx-builtins.md ("vec_add_u128"): Remove expander.
8377 ("vec_addc<mode>", "vec_addc_u128"): Merge to
8378 "vacc<bhfgq>_<mode>".
8379 ("vec_adde_u128"): Rename to "vacq". Change mode to TImode.
8380 ("vec_addec_u128"): Rename to "vacccq". Change mode to TImode.
8381 ("vec_subc<mode>", "vec_subc_u128"): Merge to
8382 "vscbi<bhfgq>_<mode>".
8383 ("vec_sube_u128"): Rename to "vsbiq". Change mode to TImode.
8384 ("vec_subec_u128"): Rename to "vsbcbiq". Change mode to TImode.
8386 2016-08-11 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
8388 * config/s390/s390-builtins.def: Mark last operand of s390_vlvg*
8390 2016-08-11 Bin Cheng <bin.cheng@arm.com>
8392 * config/aarch64/aarch64-simd.md (vcond<mode><mode>): Delete
8394 (vcond<v_cmp_mixed><mode>): Ditto.
8395 (vcondu<mode><mode>, vcondu<mode><v_cmp_mixed>): Ditto.
8397 2016-08-11 Bin Cheng <bin.cheng@arm.com>
8399 * config/aarch64/aarch64-simd.md (vec_cmp<mode><v_cmp_result>): Init
8400 variable explicitly, also assert on it before use.
8402 2016-08-11 Richard Biener <rguenther@suse.de>
8404 PR tree-optimization/72772
8405 * cfgloopmanip.c (create_preheader): Use split_edge if there
8406 is a single loop entry, avoiding degenerate PHIs.
8408 2016-08-11 Richard Biener <rguenther@suse.de>
8410 * tree-ssa-threadbackward.c (pass_data_thread_jumps): Remove
8411 unconditional TODO_cleanup_cfg.
8412 (pass_thread_jumps::execute): Initialize loops, perform a CFG
8413 cleanup only if we threaded a jump.
8415 2016-08-11 Alan Modra <amodra@gmail.com>
8418 * lra-constraints.c (simplify_operand_subreg): Allow subreg
8419 mode for mem when SLOW_UNALIGNED_ACCESS if inner mode is also
8420 slow. Emit two reloads for slow mem case, first loading in
8421 fast innermode, then converting to required mode.
8423 2016-08-10 Kelvin Nilsen <kelvin@gcc.gnu.org>
8425 * config/rs6000/altivec.h (vec_extract_exp): New macro.
8426 (vec_extract_sig): New macro.
8427 (vec_insert_exp): New macro.
8428 (vec_test_data_class): New macro.
8429 (scalar_extract_exp): New macro.
8430 (scalar_extract_sig): New macro.
8431 (scalar_insert_exp): New macro.
8432 (scalar_test_data_class): New macro.
8433 (scalar_test_neg): New macro.
8434 (scalar_cmp_exp_gt): New macro.
8435 (scalar_cmp_exp_lt): New macro.
8436 (scalar_cmp_exp_eq): New macro.
8437 (scalar_cmp_exp_unordered): New macro.
8438 * config/rs6000/predicates.md (u7bit_cint_operand): New predicate
8439 to enforce constraint that operand is a 7-bit unsigned literal.
8440 * config/rs6000/rs6000-builtin.def (BU_P9V_64BIT_VSX_1): New macro
8441 for power9 built-ins.
8442 (BU_P9V_VSX_2): Likewise.
8443 (BU_P9V_64BIT_VSX_2): Likewise.
8444 (VSEEDP): Add scalar extract exponent support.
8445 (VSEESP): Add scalar extract signature support.
8446 (VSTDCNDP): Add scalar test negative support.
8447 (VSTDCNSP): Likewise.
8448 (VSIEDP): Add scalar insert exponent support.
8449 (VSCEDPGT): Add scalar compare exponent greater than support.
8450 (VSCEDPLT): Add scalar compare exponent less than support.
8451 (VSCEDPEQ): Add scalar compare exponent test-for-equality support.
8452 (VSCEDPUO): Add scalar compare exponent test-for-unordered support.
8453 (VSTDCDP): Add scalar test data class support.
8454 (VSTDCSP): Likewise.
8455 (VSEEDP): Add overload support for scalar extract exponent
8457 (VSESDP): Add overload support for scalar extract signature
8459 (VSTDCN): Add overload support for scalar test negative
8461 (VSTDCNDP): Add overload support for scalar test negative
8463 (VSTDCNSP): Add overload support for scalar test negative
8465 (VSIEDP): Add overload support for scalar insert exponent
8467 (VSTDC): Add overload support for scalar test data class
8469 (VSTDCDP): Add overload support for scalar test data class
8471 (VSTDCSP): Add overload support for scalar test data class
8473 (VSCEDPGT): Add overload support for scalar compare exponent
8474 greater than operation.
8475 (VSCEDPLT): Add overload support for scalar compare exponent
8476 less than operation.
8477 (VSCEDPEQ): Add overload support for scalar compare exponent
8478 test-for-equality operation.
8479 (VSCEDPUO): Add overload support for scalar compare exponent
8480 test-for-unordered operation.
8481 (VEEDP): Add vector extract exponent support.
8483 (VESDP): Add vector extract significand support.
8485 (VIEDP): Add vector insert exponent support.
8487 (VTDCDP): Add vector test data class support.
8489 (VES): Add overload support for vector extract significand operation.
8492 (VEE): Add overload support for vector extract exponent operation.
8495 (VTDC): Add overload support for vector test data class operation.
8498 (VIE): Add overload support for vector insert exponent operation.
8501 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
8502 overloaded binary floating point functions.
8503 (altivec_resolve_overloaded_builtin): Improve error messages to
8504 distinguish between functions not supported in the current
8505 compiler configuration and functions that were invoked with an
8506 invalid parameter combination, and include the built-in function
8507 name in both error messages.
8508 * config/rs6000/rs6000-protos.h (rs6000_overloaded_builtin_name):
8510 * config/rs6000/rs6000.c (rs6000_overloaded_builtin_name): New
8512 (rs6000_expand_binop_builtin): Add check to enforce that argument
8513 2 of the test data class operations is a 7-bit unsigned literal.
8514 (rs6000_invalid_builtin): Add code to issue an error message if a
8515 built-in function that requires the power9_vector and -m32
8516 command-line options is compiled without these options.
8517 * config/rs6000/vsx.md (UNSPEC_VSX_SXEXPDP): New value.
8518 (UNSPEC_VSX_SXSIGDP): New value.
8519 (UNSPEC_VSX_SXSIGPDP): New value.
8520 (UNSPEC_VSX_SIEXPDP): New value.
8521 (UNSPEC_VSX_SCMPEXPDP): New value.
8522 (UNSPEC_VSX_STSTDC): New value.
8523 (UNSPEC_VSX_VXEXP): New value.
8524 (UNSPEC_VSX_VXSIG): New value.
8525 (UNSPEC_VSX_VIEXP): New value.
8526 (UNSPEC_VSX_VTSTDC): New value.
8527 (xsxexpdp): New insn for scalar extract exponent.
8528 (xsxsigdp): New insn for scalar extract significand.
8529 (xsiexpdp): New insn for scalar insert exponent.
8530 (xscmpexpdp_<code>): New expansion for scalar compare exponents.
8531 (*xscmpexpdp): New insn for scalar compare exponents.
8532 (xststdc<Fvsx): New expansion for both single- and
8533 double-precision scalar test data class operations.
8534 (xststdcneg<Fvsx>): New expansion for both single- and
8535 double-precision scalar test for negative value operations.
8536 (*xststdc<Fvsx>): New insn for scalar test data class
8538 (xvxexp<VSs>): New insn for single- and double-precision
8539 vector extract exponent operation.
8540 (xvxsig<VSs>): New insn for single- and double-precision
8541 vector extract significand operation.
8542 (xviexp<VSs>): New insn for single- and double-precision
8543 vector insert exponent operation.
8544 (xvtstdc<VSs>): New insn for single- and double-precision
8545 vector test data class operation.
8546 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
8547 built-in functions to represent the Power9 binary floating-point
8548 support instructions.
8550 2016-08-10 bin cheng <bin.cheng@arm.com>
8552 * doc/sourcebuild.texi (@item vect_cond_mixed): New item.
8554 2016-08-10 Alan Lawrence <alan.lawrence@arm.com>
8555 Renlin Li <renlin.li@arm.com>
8556 Bin Cheng <bin.cheng@arm.com>
8558 * config/aarch64/iterators.md (V_cmp_mixed, v_cmp_mixed): New.
8559 * config/aarch64/aarch64-simd.md (<su><maxmin>v2di3): Call
8560 gen_vcondv2div2di instead of gen_aarch64_vcond_internalv2div2di.
8561 (aarch64_vcond_internal<mode><mode>): Delete pattern.
8562 (aarch64_vcond_internal<VDQF_COND:mode><VDQF:mode>): Ditto.
8563 (vcond<v_cmp_result><mode>): Ditto.
8564 (vcond<mode><mode>): Re-implement using vec_cmp and vcond_mask.
8565 (vcondu<mode><mode>): Ditto.
8566 (vcond<v_cmp_mixed><mode>): New pattern.
8567 (vcondu<mode><v_cmp_mixed>): New pattern.
8568 (aarch64_cmtst<mode>): Revise comment using aarch64_vcond instead
8569 of aarch64_vcond_internal.
8571 2016-08-10 Alan Lawrence <alan.lawrence@arm.com>
8572 Renlin Li <renlin.li@arm.com>
8573 Bin Cheng <bin.cheng@arm.com>
8575 * config/aarch64/aarch64-simd.md (vec_cmp<mode><mode>): New pattern.
8576 (vec_cmp<mode><v_cmp_result>): New pattern.
8577 (vec_cmpu<mode><mode>): New pattern.
8578 (vcond_mask_<mode><v_cmp_result>): New pattern.
8580 2016-08-10 Yuri Rumyantsev <ysrumyan@gmail.com>
8582 PR tree-optimization/71734
8583 * tree-ssa-loop-im.c (ref_indep_loop_p): Add new argument
8584 REF_LOOP, invoke ref_indep_loop_p_1.
8585 (outermost_indep_loop): Pass LOOP argumnet where REF was defined
8586 to ref_indep_loop_p.
8587 (ref_indep_loop_p_1): Fix commentary, add argument REF_LOOP,
8588 combine it with ref_indep_lopp_p_2, update SAFELEN if only REF
8589 is inside LOOP, do not cache dpendence value for loops with
8591 (ref_indep_loop_p_2): Delete function.
8592 (can_sm_ref_p): Pass LOOP as additional argument to
8595 2016-08-10 Michael Meissner <meissner@linux.vnet.ibm.com>
8598 * config/rs6000/rs6000.c (mem_operand_ds_form): Add check for op
8599 being an offsettable address.
8601 2016-08-10 Martin Liska <mliska@suse.cz>
8603 PR gcov-profile/58306
8604 * tree-profile.c (gimple_init_edge_profiler): Create conditionally
8605 atomic variants of profile update functions.
8607 2016-08-10 Martin Liska <mliska@suse.cz>
8609 Cherry picked (and modified) from google-4_7 branch
8610 2012-12-26 Rong Xu <xur@google.com>
8611 * common.opt (fprofile-update): Add new flag.
8612 * coretypes.h: Define enum profile_update.
8613 * doc/invoke.texi: Document -fprofile-update.
8614 * gcov-io.h: Declare GCOV_TYPE_ATOMIC_FETCH_ADD and
8615 GCOV_TYPE_ATOMIC_FETCH_ADD_FN.
8616 * tree-profile.c (gimple_init_edge_profiler): Generate
8617 also atomic profiler update.
8618 (gimple_gen_edge_profiler): Likewise.
8620 2016-08-10 David Malcolm <dmalcolm@redhat.com>
8622 * toplev.c (finalize): Set aux_info_file, asm_out_file, and
8623 stack_usage_file to NULL after fclose calls.
8625 2016-08-10 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
8628 * reload.c (push_reload): Compute subreg_in_class for
8629 subregs of constants and plus expressions. Remove special
8630 handling of SYMBOL_REFs.
8632 2016-08-10 Alan Modra <amodra@gmail.com>
8635 * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Return
8636 SImode for TARGET_E500_DOUBLE when given SImode.
8638 2016-08-09 David Wohlferd <dw@LimeGreenSocks.com>
8640 * config/i3836/avx512fintrin.h (_mm512_cvtsepi64_epi32): Remove
8641 unused variable __O.
8643 2016-08-09 Martin Liska <mliska@suse.cz>
8645 * doc/gcov.texi: Change _gcov_dump to __gcov_dump and
8646 _gcov_reset to __gcov_reset.
8647 * doc/gcov-tool.texi: Fix typo.
8649 2016-08-09 Martin Liska <mliska@suse.cz>
8651 * value-prof.c (gimple_divmod_values_to_profile): Do not
8652 instrument MOD histogram if a value is not a SSA name.
8654 2016-08-09 Martin Liska <mliska@suse.cz>
8656 * value-prof.c (dump_histogram_value): Swap pow2 and non-pow2
8659 2016-08-09 Renlin Li <renlin.li@arm.com>
8662 * calls.c (prepare_call_address): Convert funexp to Pmode when
8664 * config/aarch64/aarch64.md (sibcall): Remove fix for PR 64971.
8665 (sibcall_value): Likewise.
8667 2016-08-09 Marek Polacek <polacek@redhat.com>
8670 * cselib.c (cselib_expand_value_rtx_1): Add return.
8671 * gengtype.c (dbgprint_count_type_at): Likewise.
8672 * hsa-gen.c (gen_hsa_insn_for_internal_fn_call): Likewise.
8673 * reg-stack.c (get_true_reg): Restructure to avoid fallthrough warning.
8675 2016-08-09 Martin Jambor <mjambor@suse.cz>
8678 * ipa-polymorphic-call.c (get_dynamic_type): Bail out gracefully
8679 if instance is a MEM_REF.
8681 2016-08-09 Uros Bizjak <ubizjak@gmail.com>
8684 * config/i386/i386.md (*movtf_internal): Use
8685 lra_in_progress || reload_completed instead of !can_create_pseudo_p
8686 in the insn constraint.
8687 (*movxf_internal): Ditto.
8688 (*movdf_internal): Ditto.
8689 (*movsf_internal): Ditto.
8691 2016-08-09 Bin Cheng <bin.cheng@arm.com>
8693 PR tree-optimization/72772
8694 * tree-ssa-loop-niter.c (loop_exits_before_overflow): Check equality
8697 2016-08-09 Bin Cheng <bin.cheng@arm.com>
8699 PR tree-optimization/72772
8700 * tree-ssa-loop-niter.h (simplify_using_initial_conditions): Delete
8702 * tree-ssa-loop-niter.c (tree_simplify_using_condition_1): Delete
8703 parameter STOP and update calls. Move expand_simple_operations
8704 function call from here...
8705 (simplify_using_initial_conditions): ...to here. Delete parameter
8707 (tree_simplify_using_condition): Delete parameter STOP.
8708 * tree-scalar-evolution.c (simple_iv_with_niters): Update call to
8709 simplify_using_initial_conditions.
8711 2016-08-09 Matthew Fortune <matthew.fortune@imgtec.com>
8714 * config/mips/mips.c (mips_atomic_assign_expand_fenv):
8715 Use create_tmp_var_raw instead of create_tmp_var.
8717 2016-08-09 Richard Biener <rguenther@suse.de>
8719 * tree-ssa-threadbackward.c (profitable_jump_thread_path):
8720 Treat same SSA names related.
8722 2016-08-09 Jakub Jelinek <jakub@redhat.com>
8724 PR tree-optimization/72824
8725 * tree-loop-distribution.c (const_with_all_bytes_same): Verify
8726 real_zerop is not negative.
8728 2016-08-09 Richard Biener <rguenther@suse.de>
8730 PR tree-optimization/71802
8731 * tree-cfgcleanup.c (cleanup_tree_cfg_bb): Make sure to catch
8732 all merge opportunities with the predecessor.
8734 2016-08-09 Richard Biener <rguenther@suse.de>
8737 * ipa-prop.c (ipa_modify_formal_parameters): Build
8738 parameter types with natural alignment also for the
8741 2016-08-08 Andi Kleen <ak@linux.intel.com>
8743 * tree-vrp.c (get_single_symbol): Always initialize inv and neg.
8745 2016-08-08 David Malcolm <dmalcolm@redhat.com>
8748 * langhooks-def.h (LANG_HOOKS_RUN_LANG_SELFTESTS): New default
8749 do-nothing langhook.
8750 (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_RUN_LANG_SELFTESTS.
8751 * langhooks.h (struct lang_hooks): Add run_lang_selftests.
8752 * selftest-run-tests.c: Include "tree.h" and "langhooks.h".
8753 (selftest::run_tests): Call lang_hooks.run_lang_selftests.
8755 2016-08-08 David Malcolm <dmalcolm@redhat.com>
8758 * input.c: Ensure that HAVE_ICONV is defined.
8760 2016-08-08 Jakub Jelinek <jakub@redhat.com>
8763 * omp-low.c (lower_lastprivate_clauses): Set TREE_NO_WARNING on the
8764 private vars for lastprivate and for linear iterator.
8767 * omp-simd-clone.c: Include varasm.h.
8768 (simd_clone_create): Copy over DECL_COMDAT, DECL_WEAK, DECL_EXTERNAL,
8769 DECL_VISIBILITY, DECL_VISIBILITY_SPECIFIED, DECL_DLLIMPORT_P and for
8770 DECL_ONE_ONLY call make_decl_one_only. Fix up spelling in comment and
8771 update function name.
8773 2016-07-29 Pitchumani Sivanupandi <pitchumani.s@atmel.com>
8775 * config/avr/driver-avr.c (specfiles_doc_url): Remove.
8776 (avr_diagnose_devicespecs_error): Remove.
8777 (avr_devicespecs_file): Remove composing absolute path for specfile
8778 and its verbose info. Remove conditions to check specs-file,
8780 2016-08-08 Jakub Jelinek <jakub@redhat.com>
8782 PR rtl-optimization/72821
8783 * lra-spills.c (regno_in_use_p): Don't use BLOCK_FOR_INSN on barriers,
8784 just return false for them.
8786 2016-08-08 Alan Modra <amodra@gmail.com>
8789 * config/rs6000/rs6000.c (toc_relative_expr_p): Allow (lo_sum (high))
8790 toc refs created during reload. Update function comment.
8792 2016-08-08 Alan Modra <amodra@gmail.com>
8795 * config/rs6000/rs6000.md (mov<mode>_hardfloat): Sort
8796 alternatives. Put loads first, then stores, and reg/reg moves
8797 within same class later. Delete attr length.
8799 2016-08-08 Alan Modra <amodra@gmail.com>
8802 * config/rs6000/rs6000.c (mem_operand_gpr): Remove vsx dform test.
8803 (mem_operand_ds_form): New predicate.
8804 * config/rs6000/rs6000-protos.h (mem_operand_ds_form): Declare.
8805 * config/rs6000/constraints.md (wY): Use mem_operand_df_form.
8806 * config/rs6000/predicates.md (offsettable_mem_14bit_operand): Delete.
8807 * config/rs6000/rs6000.md (f32_lm2, f32_sm2): Use wY for SF.
8808 (extendsfdf2_fpr): Replace o constraint with wY.
8810 2016-08-07 Jan Hubicka <hubicka@ucw.cz>
8812 * tree-ssa-threadbackward.c: Include tree-inline.h
8813 (profitable_jump_thread_path): Use estimate_num_insns to estimate
8814 size of copied block; for cold paths reduce duplication.
8815 (find_jump_threads_backwards): Remove redundant tests.
8816 (pass_thread_jumps::gate): Enable for -Os.
8818 2016-08-07 Jakub Jelinek <jakub@redhat.com>
8821 * stor-layout.c (layout_decl): Fix up formatting.
8822 (relayout_decl): Allow DECL to be FIELD_DECL.
8824 2016-08-07 Alan Modra <amodra@gmail.com>
8826 * config/rs6000/rs6000.md (fix_trunc<mode>si2): Fix mode of reg.
8828 2016-08-07 Kugan Vivekanandarajah <kuganv@linaro.org>
8830 * data-streamer-in.c (streamer_read_wide_int): New.
8831 (streamer_read_widest_int): Renamed function.
8832 * data-streamer-out.c (streamer_write_wide_int): New
8833 (streamer_write_widest_int): Renamed function.
8834 * lto-streamer-in.c (streamer_read_wi): Renamed and moved to
8836 (input_cfg): Call renamed function.
8837 * lto-streamer-out.c (streamer_write_wi): Renamed and moved to
8839 (output_cfg): Call renamed function.
8840 * data-streamer.h: Add declarations.
8842 2016-08-08 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
8844 * tree-ssa-ccp.c (extend_mask): New param sgn.
8845 Remove ORing with wi::mask.
8846 (get_default_value): Adjust call to extend_mask to pass sign.
8847 (evaluate_stmt): Likewise.
8849 2016-08-06 Jakub Jelinek <jakub@redhat.com>
8851 * gcov.c (handle_cycle): Use INTTYPE_MAXIMUM (int64_t) instead of
8854 2016-08-06 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
8856 * match.pd ((intptr_t) x eq/ne CST to x eq/ne (typeof x) cst): Disable
8857 transform if operand's type is pointer to function or method.
8859 2016-08-05 Patrick Palka <ppalka@gcc.gnu.org>
8861 PR tree-optimization/18046
8862 * tree-ssa-threadedge.c: Include cfganal.h.
8863 (simplify_control_statement_condition): If simplifying a
8864 GIMPLE_SWITCH, replace the index operand of the GIMPLE_SWITCH
8865 with the dominating ASSERT_EXPR before handing it off to VRP.
8866 Mention that a CASE_LABEL_EXPR may be returned.
8867 (thread_around_empty_blocks): Adjust to handle
8868 simplify_control_statement_condition() returning a
8870 (thread_through_normal_block): Likewise.
8871 * tree-vrp.c (simplify_stmt_for_jump_threading): Simplify
8872 a switch statement by trying to determine which case label
8875 2016-08-05 Vladimir Makarov <vmakarov@redhat.com>
8877 PR rtl-optimization/69847
8878 * lra-constraints.c (process_invariant_for_inheritance): Save
8879 pattern instead of src.
8880 (remove_inheritance_pseudos): Use the pattern. Add assert.
8882 2016-08-05 David Malcolm <dmalcolm@redhat.com>
8884 * input.c (string_concat::string_concat): New constructor.
8885 (string_concat_db::string_concat_db): New constructor.
8886 (string_concat_db::record_string_concatenation): New method.
8887 (string_concat_db::get_string_concatenation): New method.
8888 (string_concat_db::get_key_loc): New method.
8889 (class auto_cpp_string_vec): New class.
8890 (get_substring_ranges_for_loc): New function.
8891 (get_source_range_for_substring): New function.
8892 (get_num_source_ranges_for_substring): New function.
8893 (class selftest::lexer_test_options): New class.
8894 (struct selftest::lexer_test): New struct.
8895 (class selftest::ebcdic_execution_charset): New class.
8896 (selftest::ebcdic_execution_charset::s_singleton): New variable.
8897 (selftest::lexer_test::lexer_test): New constructor.
8898 (selftest::lexer_test::~lexer_test): New destructor.
8899 (selftest::lexer_test::get_token): New method.
8900 (selftest::assert_char_at_range): New function.
8901 (ASSERT_CHAR_AT_RANGE): New macro.
8902 (selftest::assert_num_substring_ranges): New function.
8903 (ASSERT_NUM_SUBSTRING_RANGES): New macro.
8904 (selftest::assert_has_no_substring_ranges): New function.
8905 (ASSERT_HAS_NO_SUBSTRING_RANGES): New macro.
8906 (selftest::test_lexer_string_locations_simple): New function.
8907 (selftest::test_lexer_string_locations_ebcdic): New function.
8908 (selftest::test_lexer_string_locations_hex): New function.
8909 (selftest::test_lexer_string_locations_oct): New function.
8910 (selftest::test_lexer_string_locations_letter_escape_1): New function.
8911 (selftest::test_lexer_string_locations_letter_escape_2): New function.
8912 (selftest::test_lexer_string_locations_ucn4): New function.
8913 (selftest::test_lexer_string_locations_ucn8): New function.
8914 (selftest::uint32_from_big_endian): New function.
8915 (selftest::test_lexer_string_locations_wide_string): New function.
8916 (selftest::uint16_from_big_endian): New function.
8917 (selftest::test_lexer_string_locations_string16): New function.
8918 (selftest::test_lexer_string_locations_string32): New function.
8919 (selftest::test_lexer_string_locations_u8): New function.
8920 (selftest::test_lexer_string_locations_utf8_source): New function.
8921 (selftest::test_lexer_string_locations_concatenation_1): New
8923 (selftest::test_lexer_string_locations_concatenation_2): New
8925 (selftest::test_lexer_string_locations_concatenation_3): New
8927 (selftest::test_lexer_string_locations_macro): New function.
8928 (selftest::test_lexer_string_locations_stringified_macro_argument):
8930 (selftest::test_lexer_string_locations_non_string): New function.
8931 (selftest::test_lexer_string_locations_long_line): New function.
8932 (selftest::test_lexer_char_constants): New function.
8933 (selftest::input_c_tests): Call the new test functions once per
8934 case within the line_table test matrix.
8935 * input.h (struct string_concat): New struct.
8936 (struct location_hash): New struct.
8937 (class string_concat_db): New class.
8938 * substring-locations.h: New header.
8940 2016-08-05 Patrick Palka <ppalka@gcc.gnu.org>
8942 PR tree-optimization/72810
8943 * tree-vrp.c (simplify_switch_using_ranges): Avoid changing
8944 the type of the case labels when truncating.
8946 2016-08-05 James Greenhalgh <james.greenhalgh@arm.com>
8949 * config/aarch64/aarch64.h (aarch64_fp16_type_node): Declare.
8950 (aarch64_fp16_ptr_type_node): Likewise.
8951 * config/aarch64/aarch64-simd-builtins.c
8952 (aarch64_fp16_ptr_type_node): Define.
8953 (aarch64_init_fp16_types): New, refactored out of...
8954 (aarch64_init_builtins): ...here, update to call
8955 aarch64_init_fp16_types.
8956 * config/aarch64/aarch64.c (aarch64_gimplify_va_arg_expr): Handle
8958 (aapcs_vfp_sub_candidate): Likewise.
8960 2016-08-05 Martin Liska <mliska@suse.cz>
8961 Joshua Cranmer <Pidgeot18@gmail.com>
8963 * gcov.c (line_t::has_block): New function.
8964 (enum loop_type): New enum.
8965 (handle_cycle): New function.
8966 (unblock): Likewise.
8967 (circuit): Likewise.
8968 (get_cycles_count): Likewise.
8969 (accumulate_line_counts): Use new loop detection algorithm.
8971 2016-08-05 Martin Liska <mliska@suse.cz>
8973 * gcov.c (output_intermediate_file): Rename
8974 function_info::line_next to next_file_fn.
8975 (process_file): Likewise.
8976 (read_graph_file): Likewise.
8977 (accumulate_line_counts): Likewise.
8978 (output_lines): Likewise.
8980 2016-08-05 Richard Biener <rguenther@suse.de>
8982 * tree-ssa-threadupdate.c (thread_block_1): Remove unnecessary
8983 restriction on threading to a loop header.
8985 2016-08-05 Richard Biener <rguenther@suse.de>
8987 * tree-cfgcleanup.c (tree_forwarder_block_p): Use bb_loop_header_p.
8988 * cfghooks.c (force_nonfallthru): If we ended up splitting a latch
8989 adjust loop info accordingly.
8991 2016-08-05 Kugan Vivekanandarajah <kuganv@linaro.org>
8993 * tree-vrp.c (extract_range_basic): Check cfun->after_inlining
8994 before folding call to __builtin_constant_p with parameters to false.
8996 2016-08-05 Alan Modra <amodra@gmail.com>
8998 * config/rs6000/rs6000.c (rs6000_preferred_reload_class): Delete
8999 code accidentally committed 2016-05-02 providing class when given
9002 2016-08-04 Patrick Palka <ppalka@gcc.gnu.org>
9004 * tree-vrp.c (simplify_switch_using_ranges): Try to truncate
9005 the case label ranges that partially overlap with OP's value
9008 2016-08-04 Uros Bizjak <ubizjak@gmail.com>
9011 * config/i386/avx512fintrin.h (_mm512_cmp_epi32_mask) [!__OPTIMIZE__]:
9012 Cast builtin function result to __mmask16 instead of __mmask8.
9013 (_mm512_cmp_epu32_mask) [!__OPTIMIZE__]: Ditto.
9014 (_mm512_mask_cmp_epi32_mask) [!__OPTIMIZE__]: Ditto.
9015 (_mm512_mask_cmp_epu32_mask) [!__OPTIMIZE__]: Ditto.
9017 2016-08-04 David Malcolm <dmalcolm@redhat.com>
9019 * selftest.h (ASSERT_TRUE): Reimplement in terms of...
9020 (ASSERT_TRUE_AT): New macro.
9021 (ASSERT_FALSE): Reimplement in terms of...
9022 (ASSERT_FALSE_AT): New macro.
9023 (ASSERT_STREQ_AT): Fix typo in comment.
9025 2016-08-04 Patrick Palka <ppalka@gcc.gnu.org>
9027 * gimple.c (preprocess_case_label_vec_for_gimple): When the case
9028 labels are exhaustive, designate the label with the widest
9029 range to be the default label.
9031 2016-08-04 Andrew Pinski <apinski@cavium.com>
9033 * config/aarch64/aarch64.c (thunderx_vector_cost): New variable.
9034 (thunderx_tunings): Use thunderx_vector_cost instead of
9035 generic_vector_cost.
9037 2016-08-04 Martin Liska <mliska@suse.cz>
9039 * gcov.c (main): Fix GNU coding style.
9040 (output_intermediate_file): Likewise.
9041 (process_file): Likewise.
9042 (generate_results): Likewise.
9043 (release_structures): Likewise.
9044 (create_file_names): Likewise.
9045 (find_source): Likewise.
9046 (read_graph_file): Likewise.
9047 (find_exception_blocks): Likewise.
9048 (canonicalize_name): Likewise.
9049 (make_gcov_file_name): Likewise.
9050 (mangle_name): Likewise.
9051 (accumulate_line_counts): Likewise.
9052 (output_branch_count): Likewise.
9053 (read_line): Likewise.
9055 2016-08-04 Bernd Edlinger <bernd.edlinger@hotmail.de>
9057 PR rtl-optimization/71779
9058 * emit-rtl.c (set_reg_attrs_from_value): Only propagate REG_POINTER,
9059 if the value was sign-extended according to POINTERS_EXTEND_UNSIGNED
9060 or if it was truncated.
9062 PR rtl-optimization/70903
9063 * cse.c (cse_insn): If DEST is a paradoxical SUBREG, don't record DEST.
9065 2016-08-04 Kugan Vivekanandarajah <kuganv@linaro.org>
9067 * tree-inline.c (remap_ssa_name): Check for POINTER_TYPE_P before
9068 accessing SSA_NAME_PTR_INFO.
9070 2016-08-04 Georg-Johann Lay <avr@gjlay.de>
9073 * common/config/avr/avr-common.c (avr_option_optimization_table)
9074 [OPT_LEVELS_ALL]: Turn off -fcaller-saves.
9076 2016-08-04 Georg-Johann Lay <avr@gjlay.de>
9079 * config/avr/avr.md: New pattern to work around do_store_flag
9080 generating shift instructions for bit extractions.
9082 2016-08-04 Kugan Vivekanandarajah <kuganv@linaro.org>
9084 * tree-vrp.c (set_value_range): Use vrp_equiv_obstack with
9086 (add_equivalence): Likewise.
9087 (get_value_range): Allocate value range with vrp_value_range_pool.
9088 (vrp_initialize): Initialize vrp_equiv_obstack for equiv allocation.
9089 (vrp_finalize): Relase vrp_equiv_obstack and vrp_value_range_pool.
9091 2016-08-03 Peter Bergner <bergner@vnet.ibm.com>
9093 * config/rs6000/rs6000.c (rs6000_option_override_internal): Make LRA
9094 the default for the rs6000 port.
9096 2016-08-03 Bernd Edlinger <bernd.edlinger@hotmail.de>
9099 * calls.c (special_function_p): Remove special handling of
9100 "setjmp_syscall", "qsetjmp", "longjmp", "siglongjmp" and the
9101 prefix "__x". Recognize "savectx", "vfork" and "getcontext" only
9102 without prefix. Remove potentially unsafe ECF_LEAF and ECF_NORETURN.
9104 2016-08-03 Vladimir Makarov <vmakarov@redhat.com>
9107 * lra-spills.c (regno_in_use_p): Check bb and regno modification.
9108 Don't stop on regular insns.
9110 2016-08-03 Nathan Sidwell <nathan@codesourcery.com>
9112 * config/nvptx/nvptx.c (nvptx_declare_function_name): Round frame
9113 size to DImode boundary.
9114 (nvptx_propagate): Likewise.
9116 2016-08-03 Alan Modra <amodra@gmail.com>
9118 * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Make scalar
9119 float access depend on TARGET_EFFICIENT_UNALIGNED_VSX.
9120 * config/rs6000/rs6000.opt (-mefficient-unaligned-vsx): Renamed
9121 from -mefficient-unaligned-vector. Note that this affects fp too.
9123 2016-08-03 Alan Modra <amodra@gmail.com>
9125 * config/rs6000/rs6000.c (rs6000_rtx_costs): Make unaligned mem
9128 2016-08-03 Alan Modra <amodra@gmail.com>
9130 * config/rs6000/rs6000.md (fix_trunc<mode>si2): Force source operand
9131 to a reg. Localize vars.
9133 2016-08-03 Alan Modra <amodra@gmail.com>
9135 * config/rs6000/rs6000.opt: Remove negatives from help strings
9138 2016-08-03 Alan Modra <amodra@gmail.com>
9140 * config/rs6000/rs6000.c (rs6000_secondary_reload_direct_move):
9141 Delete duplicated code.
9143 2016-08-02 Vladimir Makarov <vmakarov@redhat.com>
9146 * lra-spills.c (regno_in_use_p): New.
9147 (lra_final_code_change): Use it.
9149 2016-08-02 Vladimir Makarov <vmakarov@redhat.com>
9151 PR rtl-optimization/69847
9152 * lra-int.h (struct lra-reg): Use restore_rtx instead of
9154 (lra_rtx_hash): New.
9155 * lra.c (initialize_lra_reg_info_element): Use restore_rtx instead
9157 (lra_rtx_hash): Rename and move lra-remat.c::rtx_hash.
9158 * lra-remat.c (rtx_hash): Rename and Move to lra.c.
9159 * lra-spills.c (lra_final_code_change): Don't delete insn when the
9160 next insn is USE with the same reg as the current insn source.
9161 * lra-constraints.c (curr_insn_transform): Use restore_rtx instead
9163 (lra_constraints_init): Call initiate_invariants.
9164 (lra_constraints_finish): Call finish_invariants.
9165 (struct invariant, invariant_t, invariant_ptr_t): New.
9166 (const_invariant_ptr_t, invariants, invariants_pool): New.
9167 (invariant_table, invariant_hash, invariant_eq_p): New.
9168 (insert_invariant, initiate_invariants, finish_invariants): New.
9169 (clear_invariants, invalid_invariant_regs): New.
9170 (inherit_reload_reg, split_reg, fix_bb_live_info): Use restore_rtx
9171 instead of restore_regno.
9172 (invariant_p, process_invariant_for_inheritance): New.
9173 (inherit_in_ebb): Implement invariant inheritance.
9174 (lra_inheritance): Initialize and finalize invalid_invariant_regs.
9175 (remove_inheritance_pseudos): Implement undoing invariant
9177 (undo_optional_reloads, lra_undo_inheritance): Use restore_rtx
9178 instead of restore_regno.
9179 * lra-assigns.c (regno_live_length): New.
9180 (reload_pseudo_compare_func): Use regno_live_length.
9181 (assign_by_spills): Use restore_rtx instead of restore_regno.
9182 (lra_assign): Ditto. Initiate regno_live_length.
9184 2016-02-08 James Greenhalgh <james.greenhalgh@arm.com>
9186 * config/aarch64/arm_neon.h (vminnm_f64): Add back missing 'f' from
9187 __builtin_aarch64_fmindf.
9189 2016-08-02 Bin Cheng <bin.cheng@arm.com>
9191 PR tree-optimization/34114
9192 * tree-ssa-loop-niter.c (number_of_iterations_ne): Prove no-overflow
9193 information for more control IVs.
9195 2016-08-02 Bin Cheng <bin.cheng@arm.com>
9197 PR tree-optimization/34114
9198 * fold-const.c (multiple_of_p): Improve MULT_EXPR, PLUS_EXPR,
9199 PLUS_EXPR case. Handle SSA_NAME case.
9201 2016-08-02 Tamar Christina <tamar.christina@arm.com>
9203 * config/aarch64/aarch64-simd-builtins.def
9204 (__builtin_aarch64_fmindf): Change BUILTIN_VDQF to BUILTIN_VDQF_DF.
9205 (__builtin_aarch64_fmaxdf): Likewise.
9206 (__builtin_aarch64_smin_nandf): Likewise.
9207 (__builtin_aarch64_smax_nandf): Likewise.
9208 * config/aarch64/aarch64-simd.md (<fmaxmin><mode>3): Remove.
9209 * config/aarch64/aarch64.md (<fmaxmin><mode>3): Rename to...
9210 (<fmaxmin><mode>3): ...this.
9211 * config/aarch64/arm_neon.h (vmaxnm_f64): New.
9212 (vminnm_f64): Likewise.
9213 (vmin_f64): Likewise.
9214 (vmax_f64): Likewise.
9215 * config/aarch64/iterators.md (FMAXMIN): Merge with...
9216 (FMAXMIN_UNS): ...this.
9217 (fmaxmin): Merged with
9218 (fmaxmin_op): ...this...
9219 (maxmin_uns_op): ...in to this.
9221 2016-08-01 Michael Meissner <meissner@linux.vnet.ibm.com>
9223 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
9224 Add support for vec_extract on vector float, vector int, vector
9225 short, and vector char vector types.
9226 * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
9227 vector float, vector int, vector short, and vector char
9228 optimizations on 64-bit ISA 2.07 systems for both constant and
9229 variable element numbers.
9230 (rs6000_split_vec_extract_var): Likewise.
9231 * config/rs6000/vsx.md (vsx_xscvspdp_scalar2): Allow SFmode to be
9232 Altivec registers on ISA 2.07 and above.
9233 (vsx_extract_v4sf): Delete alternative that hard coded element 0,
9234 which never was matched due to the split occuring before register
9235 allocation (and the code would not have worked on little endian
9236 systems if it did match). Allow extracts to go to the Altivec
9237 registers if ISA 2.07 (power8). Change from using "" around the
9238 C++ code to using {}'s.
9239 (vsx_extract_v4sf_<mode>_load): New insn to optimize vector float
9240 vec_extracts when the vector is in memory.
9241 (vsx_extract_v4sf_var): New insn to optimize vector float
9242 vec_extracts when the element number is variable on 64-bit ISA
9244 (vsx_extract_<mode>, VSX_EXTRACT_I iterator): Add optimizations
9245 for 64-bit ISA 2.07 as well as ISA 3.0.
9246 (vsx_extract_<mode>_p9, VSX_EXTRACT_I iterator): Likewise.
9247 (vsx_extract_<mode>_p8, VSX_EXTRACT_I iterator): Likewise.
9248 (vsx_extract_<mode>_load, VSX_EXTRACT_I iterator): New insn to
9249 optimize vector int, vector short, and vector char vec_extracts
9250 when the vector is in memory.
9251 (vsx_extract_<mode>_var, VSX_EXTRACT_I iterator): New insn to
9252 optimize vector int, vector short, and vector char vec_extracts
9253 when the element number is variable.
9255 2016-08-01 Georg-Johann Lay <avr@gjlay.de>
9258 * config/avr/avr.c (AVR_SYMBOL_FLAG_TINY_PM): Use a value that
9259 does not overlap with other symbol flags.
9261 2016-08-01 Wilco Dijkstra <wdijkstr@arm.com>
9263 * config/aarch64/aarch64.h (aarch64_frame):
9264 Remove padding0 and hardfp_offset. Add locals_offset,
9265 initial_adjust, callee_adjust, callee_offset and final_adjust.
9266 * config/aarch64/aarch64.c (aarch64_layout_frame):
9267 Remove unused padding0 and hardfp_offset initializations.
9268 Choose frame layout and set frame variables accordingly.
9269 Use INVALID_REGNUM instead of FIRST_PSEUDO_REGISTER.
9270 (aarch64_push_regs): Use INVALID_REGNUM, not FIRST_PSEUDO_REGISTER.
9271 (aarch64_pop_regs): Likewise.
9272 (aarch64_expand_prologue): Remove all decision code, just emit
9273 prolog according to frame variables.
9274 (aarch64_expand_epilogue): Remove all decision code, just emit
9275 epilog according to frame variables.
9276 (aarch64_initial_elimination_offset): Use offset to local/arg area.
9278 2015-08-01 H.J. Lu <hongjiu.lu@intel.com>
9281 * config/i386/i386.c (timode_scalar_chain::convert_insn): Call
9282 fix_debug_reg_uses after changing source register mode to
9283 V1TImode if source register is undefined.
9285 2015-08-01 Alan Hayward <alan.hayward@arm.com>
9287 PR tree-optimization/71818
9288 * tree-vect-loop-manip.c (vect_can_advance_ivs_p): Don't advance IVs
9289 with non invariant evolutions
9291 2016-08-01 Georg-Johann Lay <avr@gjlay.de>
9294 * config/avr/avr.md (length) [branch]: Correct insn length
9295 attribute for forward branches.
9297 2016-08-01 Georg-Johann Lay <avr@gjlay.de>
9299 * doc/extend.texi (AVR Built-in Functions): Document
9301 * config/avr/builtins.def (NOPS): New.
9302 * config/avr/avr.c (avr_expand_nops): New static function.
9303 (avr_expand_builtin): Use it to handle AVR_BUILTIN_NOPS.
9305 2016-08-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9307 * config/aarch64/aarch64.c (aarch64_classify_address): Use DImode when
9308 performing aarch64_offset_7bit_signed_scaled_p check for TImode LDP/STP
9311 2016-08-01 Virendra Pathak <virendra.pathak@broadcom.com>
9313 * config/aarch64/aarch64.c (vulcan_tunings): Update
9314 vulcan L1 cache_line_size.
9316 2016-07-30 Michael Meissner <meissner@linux.vnet.ibm.com>
9318 * config/rs6000/rs6000-protos.h (rs6000_adjust_vec_address): New
9319 function that takes a vector memory address, a hard register, an
9320 element number and a temporary base register, and recreates an
9321 address that points to the appropriate element within the vector.
9322 * config/rs6000/rs6000.c (rs6000_adjust_vec_address): Likewise.
9323 (rs6000_split_vec_extract_var): Add support for the target of a
9324 vec_extract with variable element number being a scalar memory
9326 (rtx_is_swappable_p): VLSO insns (UNSPEC_VSX_VSLOW) are not
9328 * config/rs6000/vsx.md (vsx_extract_<mode>_load): Replace
9329 vsx_extract_<mode>_load insn with a new insn that optimizes
9330 storing either element to a memory location, using scratch
9331 registers to pick apart the vector and reconstruct the address.
9332 (vsx_extract_<P:mode>_<VSX_D:mode>_load): Likewise.
9333 (vsx_extract_<mode>_store): Rework alternatives to more correctly
9334 support Altivec registers. Add support for ISA 3.0 Altivec d-form
9336 (vsx_extract_<mode>_var): Add support for extracting a variable
9337 element number from memory.
9339 2016-07-29 Georg-Johann Lay <avr@gjlay.de>
9341 * config/avr/avr.c (avr_out_compare): Use const0_rtx instead of 0
9342 when testing for compares against constants of the form 0xabab.
9344 2016-07-29 Bin Cheng <bin.cheng@arm.com>
9346 PR tree-optimization/57558
9347 * tree-vect-loop-manip.c (vect_create_cond_for_niters_checks): New
9349 (vect_loop_versioning): Support versioning with niter assumptions.
9350 * tree-vect-loop.c (tree-ssa-loop.h): Include header file.
9351 (vect_get_loop_niters): New parameter. Reimplement to support
9352 assumptions in loop niter info.
9353 (vect_analyze_loop_form_1, vect_analyze_loop_form): Ditto.
9354 (new_loop_vec_info): Init LOOP_VINFO_NITERS_ASSUMPTIONS.
9355 (vect_estimate_min_profitable_iters): Use LOOP_REQUIRES_VERSIONING.
9356 Support loop versioning for niters.
9357 * tree-vectorizer.c (tree-ssa-loop-niter.h): Include header file.
9358 (vect_free_loop_info_assumptions): New function.
9359 (vectorize_loops): Free loop niter info for loops with flag
9360 LOOP_F_ASSUMPTIONS set if vectorization failed.
9361 * tree-vectorizer.h (struct _loop_vec_info): New field
9362 num_iters_assumptions.
9363 (LOOP_VINFO_NITERS_ASSUMPTIONS): New macro.
9364 (LOOP_REQUIRES_VERSIONING_FOR_NITERS): New macro.
9365 (LOOP_REQUIRES_VERSIONING): New macro.
9366 (vect_free_loop_info_assumptions): New decl.
9368 2016-07-29 Bin Cheng <bin.cheng@arm.com>
9370 * cfgloop.h (struct loop): New field constraints.
9371 (LOOP_C_INFINITE, LOOP_C_FINITE): New macros.
9372 (loop_constraint_set, loop_constraint_clr, loop_constraint_set_p): New
9374 * cfgloop.c (alloc_loop): Initialize new field.
9375 * cfgloopmanip.c (copy_loop_info): Copy constraints.
9376 * tree-ssa-loop-niter.c (number_of_iterations_exit_assumptions):
9377 Adjust niter analysis wrto loop constraints.
9378 * doc/loop.texi (@node Number of iterations): Add description for loop
9381 2016-07-29 Marek Polacek <polacek@redhat.com>
9384 * config/i386/i386.c (ix86_expand_args_builtin): Add break.
9385 (ix86_expand_round_builtin): Likewise.
9387 2016-07-29 Segher Boessenkool <segher@kernel.crashing.org>
9388 Georg-Johann Lay <avr@gjlay.de>
9390 PR rtl-optimization/71976
9391 * combine.c (get_last_value): Return 0 if the argument for which
9392 the function is called has a wider mode than the recorded value.
9394 2016-07-29 Marek Polacek <polacek@redhat.com>
9397 * config/rs6000/rs6000.c (altivec_expand_ld_builtin): Add break.
9398 (altivec_expand_st_builtin): Likewise.
9400 2016-07-29 Georg-Johann Lay <avr@gjlay.de>
9402 * config/avr/avr.md (addqi3) [cc]: Revert glitch in insn attribute
9403 introduced in r238381.
9405 2016-07-29 Kugan Vivekanandarajah <kuganv@linaro.org>
9408 * tree-vrp.c (extract_range_from_binary_expr_1): In case of signed
9409 & sign-bit-CST, generate [-INF, 0] instead of [-INF, INF].
9411 2016-07-28 Michael Meissner <meissner@linux.vnet.ibm.com>
9413 * config/rs6000/rs6000-protos.h (rs6000_split_vec_extract_var):
9415 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
9416 Add support for vec_extract of vector double or vector long having
9417 a variable element number on 64-bit ISA 2.07 systems or newer.
9418 * config/rs6000/rs6000.c (rs6000_expand_vector_extract):
9420 (rs6000_split_vec_extract_var): New function to split a
9421 vec_extract built-in function with variable element number.
9422 (rtx_is_swappable_p): Variable vec_extracts and shifts are not
9424 * config/rs6000/vsx.md (UNSPEC_VSX_VSLO): New unspec.
9425 (UNSPEC_VSX_EXTRACT): Likewise.
9426 (vsx_extract_<mode>, VSX_D iterator): Fix constraints to allow
9427 direct move instructions to be generated on 64-bit ISA 2.07
9428 systems and newer, and to take advantage of the ISA 3.0 MFVSRLD
9430 (vsx_vslo_<mode>): New insn to do VSLO on V2DFmode and V2DImode
9431 arguments for vec_extract variable element.
9432 (vsx_extract_<mode>_var, VSX_D iterator): New insn to support
9433 vec_extract with variable element on V2DFmode and V2DImode
9435 * config/rs6000/rs6000.h (TARGET_VEXTRACTUB): Remove
9436 -mupper-regs-df requirement, since it isn't needed.
9437 (TARGET_DIRECT_MOVE_64BIT): New macro to say whether we can
9438 do direct moves on 64-bit systems, which allows optimization of
9439 vec_extract on 64-bit ISA 2.07 systems and newer.
9441 2016-07-28 Kristina Martsenko <kristina.martsenko@arm.com>
9442 2016-07-28 Wilco Dijkstra <wdijkstr@arm.com>
9444 * config/aarch64/aarch64.md
9445 (zero_extend<SHORT:mode><GPI:mode>2_aarch64): Change output
9447 (<optab>qihi2_aarch64): Likewise, and split into two.
9448 (extendqihi2_aarch64): New.
9449 (zero_extendqihi2_aarch64): New.
9450 * config/aarch64/iterators.md (ldrxt): Remove.
9451 * config/aarch64/aarch64.c (aarch64_rtx_costs): Change cost of
9454 2016-07-28 Kristina Martsenko <kristina.martsenko@arm.com>
9456 * config/aarch64/aarch64.c (aarch64_rtx_costs): Fix cost of zero extend.
9458 2016-07-28 Wilco Dijkstra <wdijkstr@arm.com>
9460 * config/aarch64/aarch64.c (aarch64_pushwb_pair_reg): Rename.
9461 (aarch64_push_reg): New function to push 1 or 2 registers.
9462 (aarch64_pop_reg): New function to pop 1 or 2 registers.
9463 (aarch64_expand_prologue): Use aarch64_push_regs.
9464 (aarch64_expand_epilogue): Use aarch64_pop_regs.
9466 2016-07-28 Yuri Rumyantsev <ysrumyan@gmail.com>
9468 PR tree-optimization/71734
9469 * tree-ssa-loop-im.c (ref_indep_loop_p_1): Pass value of safelen
9470 attribute instead of REF_LOOP and use it.
9471 (ref_indep_loop_p_2): Use SAFELEN argument instead of REF_LOOP and
9472 set it for Loops having non-zero safelen attribute.
9473 (ref_indep_loop_p): Pass zero as initial value for safelen.
9475 2016-07-28 Ilya Enkovich <ilya.enkovich@intel.com>
9479 * tree-chkp.c (chkp_retbnd_call_by_val): Check for instrumentation
9480 call using chkp_gimple_call_builtin_p.
9481 (chkp_copy_bounds_for_assign): Likewise.
9483 2016-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
9485 * config/alpha/alpha.c (alpha_adjust_cost): Adjust.
9486 * config/arm/arm-protos.h (struct tune_params): Likewise.
9487 * config/arm/arm.c (xscale_sched_adjust_cost): Likewise.
9488 (cortex_a9_sched_adjust_cost): Likewise.
9489 (fa726te_sched_adjust_cost): Likewise.
9490 (arm_adjust_cost): Likewise.
9491 * config/bfin/bfin.c (bfin_adjust_cost): Likewise.
9492 * config/c6x/c6x.c (c6x_adjust_cost): Likewise.
9493 * config/epiphany/epiphany.c (epiphany_adjust_cost): Likewise.
9494 * config/i386/i386.c (ix86_adjust_cost): Likewise.
9495 * config/ia64/ia64.c: Likewise.
9496 * config/m68k/m68k.c: Likewise.
9497 * config/mep/mep.c (mep_adjust_cost): Likewise.
9498 * config/microblaze/microblaze.c (microblaze_adjust_cost):
9500 * config/mips/mips.c (mips_adjust_cost): Likewise.
9501 * config/mn10300/mn10300.c (mn10300_adjust_sched_cost):
9503 * config/pa/pa.c (pa_adjust_cost): Likewise.
9504 * config/rs6000/rs6000.c (rs6000_adjust_cost): Likewise.
9505 (rs6000_debug_adjust_cost): Likewise.
9506 * config/sh/sh.c (sh_adjust_cost): Likewise.
9507 * config/sparc/sparc.c (supersparc_adjust_cost): Likewise.
9508 (hypersparc_adjust_cost): Likewise.
9509 (sparc_adjust_cost): Likewise.
9510 * config/spu/spu.c (spu_sched_adjust_cost): Likewise.
9511 * config/tilegx/tilegx.c (tilegx_sched_adjust_cost): Likewise.
9512 * config/tilepro/tilepro.c (tilepro_sched_adjust_cost):
9514 * config/visium/visium.c (visium_adjust_cost): Likewise.
9515 * doc/tm.texi: Regenerate.
9516 * haifa-sched.c (dep_cost_1): Adjust.
9517 * target.def: Merge adjust_cost and adjust_cost_2.
9519 2016-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
9521 * haifa-sched.c (add_to_speculative_block): Make twins a vector.
9523 2016-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
9525 * store-motion.c (struct st_expr): Make pattern_regs a vector.
9526 (extract_mentioned_regs): Append to a vector instead of
9527 returning a rtx_expr_list.
9528 (st_expr_entry): Adjust.
9529 (free_st_expr_entry): Likewise.
9530 (store_ops_ok): Likewise.
9531 (store_killed_in_insn): Likewise.
9532 (find_moveable_store): Likewise.
9534 2016-07-28 Martin Liska <mliska@suse.cz>
9536 PR gcov-profile/68025
9537 * tree-profile.c (tree_profiling): Respect
9538 no_profile_instrument_function attribute.
9539 * doc/extend.texi: Document no_profile_instrument_function
9542 2016-07-28 Martin Liska <mliska@suse.cz>
9544 PR rtl-optimization/70944
9545 * combine.c (make_compound_operation):
9546 Do not allow make_compound_operation for vector mode
9548 2016-07-28 Kugan Vivekanandarajah <kuganv@linaro.org>
9551 * tree-ssa-reassoc.c (maybe_optimize_range_tests): Check tcc_comparison
9552 before calling get_ops.
9554 2016-07-27 Bernd Edlinger <bernd.edlinger@hotmail.de>
9556 * defaults.h (LOG2_BITS_PER_UNIT): Move from here...
9557 * tree.h (LOG2_BITS_PER_UNIT): ...to here.
9558 (BITS_PER_UNIT_LOG): Remove.
9559 (int_bit_position): Use LOG2_BITS_PER_UNIT instead of BITS_PER_UNIT_LOG.
9560 * expr.c (expand_assignment): Likewise.
9561 * stor-layout.c (initialize_sizetypes): Likewise.
9563 2016-07-27 Michael Meissner <meissner@linux.vnet.ibm.com>
9565 * config/rs6000/vector.md (vec_extract<mode>): Change the calling
9566 signature of rs6000_expand_vector_extract so that the element
9567 number is a RTX instead of a constant integer.
9568 * config/rs6000/rs6000-protos.h (rs6000_expand_vector_extract):
9570 * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Likewise.
9571 (altivec_expand_vec_ext_builtin): Likewise.
9572 * config/rs6000/altivec.md (reduc_plus_scal_<mode>): Likewise.
9573 * config/rs6000/vsx.md (vsx_extract_<mode>): Fix spelling of the
9574 MFVSRLD instruction.
9576 2016-07-27 David Malcolm <dmalcolm@redhat.com>
9578 * input.c (get_pure_location): Move here from tree.c.
9579 (make_location): Likewise. Add header comment.
9580 (selftest::test_accessing_ordinary_linemaps): Verify
9581 pure_location_p, make_location, get_location_from_adhoc_loc and
9583 * input.h (get_pure_location): Move declaration here from tree.h.
9584 (get_finish): Likewise for inline function.
9585 (make_location): Likewise for declaration.
9586 * tree.c (get_pure_location): Move to input.c.
9587 (make_location): Likewise.
9588 * tree.h (get_pure_location): Move declaration to tree.h.
9589 (get_finish): Likewise for inline function.
9590 (make_location): Likewise for declaration.
9592 2016-07-27 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
9595 * match.pd (x / abs(x) -> copysign(1.0, x)): New pattern.
9597 2016-07-27 David Malcolm <dmalcolm@redhat.com>
9599 * system.h (STATIC_ASSERT): Use static_assert if building
9602 2016-07-27 Richard Biener <rguenther@suse.de>
9604 PR tree-optimization/72517
9605 * tree-vect-data-refs.c (vect_analyze_data_ref_dependences):
9606 Revert change to not compute read-read dependences.
9608 2016-07-27 Richard Biener <rguenther@suse.de>
9610 * predict.c (set_even_probabilities): Make nedges unsigned.
9612 2016-07-27 Martin Liska <mliska@suse.cz>
9614 * predict.c (set_even_probabilities): Handle unlikely edges.
9615 (combine_predictions_for_bb): Likewise.
9617 2016-07-26 Michael Meissner <meissner@linux.vnet.ibm.com>
9620 * config/rs6000/rs6000.c (rs6000_generate_compare): Rework
9621 __float128 support when we don't have hardware support, so that
9622 the IEEE built-in functions like isgreater, first call __unordkf3
9623 to make sure neither operand is a NaN, and if both operands are
9624 ordered, do the normal comparison.
9626 2016-07-26 Patrick Palka <ppalka@gcc.gnu.org>
9628 * tree-vrp.c (dump_asserts_for): Print loc->expr instead of
9630 (extract_code_and_val_from_cond_with_ops): Verify that name is
9631 either cond_op0 or cond_op1.
9633 2016-07-26 Patrick Palka <ppalka@gcc.gnu.org>
9635 PR tree-optimization/18046
9636 * genmodes.c (emit_mode_size_inline): Emit an assert that
9637 verifies that mode is a valid array index.
9638 (emit_mode_nuinits_inline): Likewise.
9639 (emit_mode_inner_inline): Likewise.
9640 (emit_mode_unit_size_inline): Likewise.
9641 (emit_mode_unit_precision_inline): Likewise.
9642 * tree-vrp.c: Include params.h.
9643 (find_switch_asserts): Register edge assertions for the default
9644 label which correspond to the anti-ranges of each case label.
9645 * params.def (PARAM_MAX_VRP_SWITCH_ASSERTIONS): New.
9646 * doc/invoke.texi: Document it.
9648 2016-07-26 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
9650 * gimple-ssa-strength-reduction.c (slsr_process_phi): Remove dead
9651 and unnecessary call to gimple_bb.
9653 2016-07-26 Richard Biener <rguenther@suse.de>
9655 PR rtl-optimization/71984
9656 * simplify-rtx.c (simplify_subreg): Use GET_MODE_SIZE and prepare
9659 2016-07-26 Richard Biener <rguenther@suse.de>
9662 * expmed.c (extract_bit_field_1): Constrain the vector mode
9663 with element size matching the extraction mode size when
9664 choosing a better vector mode to do the extraction from.
9666 2016-07-26 Richard Biener <rguenther@suse.de>
9667 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
9670 * match.pd ((intptr)x eq/ne CST to x eq/ne (typeof x) CST): New
9673 2016-07-26 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
9675 * tree-ssa-structalias.c (struct scc_info): Change types of
9676 members to auto_sbitmap and auto_vec.
9677 (scc_info::scc_info): New constructor.
9678 (scc_info::~scc_info): New destructor.
9679 (init_scc_info): Remove.
9680 (free_scc_info): Remove.
9681 (find_indirect_cycles): Adjust.
9682 (perform_var_substitution): Likewise.
9683 (free_var_substitution_info): Likewise.
9685 2016-07-26 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
9687 * tree-outof-ssa.c (struct elim_graph): Change type of members
9688 to auto_vec and auto_sbitmap.
9689 (elim_graph::elim_graph): New constructor.
9690 (delete_elim_graph): Remove.
9691 (expand_phi_nodes): Adjust.
9693 2016-07-26 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
9695 * tree-outof-ssa.c (struct elim_graph): Remove typedef.
9696 (new_elim_graph): Adjust.
9697 (clear_elim_graph): Likewise.
9698 (delete_elim_graph): Likewise.
9699 (elim_graph_size): Likewise.
9700 (elim_graph_add_node): Likewise.
9701 (elim_graph_add_edge): Likewise.
9702 (elim_graph_remove_succ_edge): Likewise.
9703 (eliminate_name): Likewise.
9704 (eliminate_build): Likewise.
9705 (elim_forward): Likewise.
9706 (elim_unvisited_predecessor): Likewise.
9707 (elim_backward): Likewise.
9708 (elim_create): Likewise.
9709 (eliminate_phi): Likewise.
9710 (expand_phi_nodes): Likewise.
9712 2016-07-26 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
9714 * bt-load.c (compute_out): Use auto_sbitmap class.
9715 (link_btr_uses): Likewise.
9716 * cfganal.c (mark_dfs_back_edges): Likewise.
9717 (post_order_compute): Likewise.
9718 (inverted_post_order_compute): Likewise.
9719 (pre_and_rev_post_order_compute_fn): Likewise.
9720 (single_pred_before_succ_order): Likewise.
9721 * cfgexpand.c (pass_expand::execute): Likewise.
9722 * cfgloop.c (verify_loop_structure): Likewise.
9723 * cfgloopmanip.c (fix_bb_placements): Likewise.
9724 (remove_path): Likewise.
9725 (update_dominators_in_loop): Likewise.
9726 * cfgrtl.c (break_superblocks): Likewise.
9727 * ddg.c (check_sccs): Likewise.
9728 (create_ddg_all_sccs): Likewise.
9729 * df-core.c (df_worklist_dataflow): Likewise.
9730 * dse.c (dse_step3): Likewise.
9731 * except.c (eh_region_outermost): Likewise.
9732 * function.c (thread_prologue_and_epilogue_insns): Likewise.
9733 * gcse.c (prune_expressions): Likewise.
9734 (prune_insertions_deletions): Likewise.
9735 * gimple-ssa-backprop.c (backprop::~backprop): Likewise.
9736 * graph.c (draw_cfg_nodes_no_loops): Likewise.
9737 * ira-lives.c (remove_some_program_points_and_update_live_ranges): Likewise.
9738 * lcm.c (compute_earliest): Likewise.
9739 (compute_farthest): Likewise.
9740 * loop-unroll.c (unroll_loop_constant_iterations): Likewise.
9741 (unroll_loop_runtime_iterations): Likewise.
9742 (unroll_loop_stupid): Likewise.
9743 * lower-subreg.c (decompose_multiword_subregs): Likewise.
9744 * lra-lives.c: Likewise.
9745 * lra.c (lra): Likewise.
9746 * modulo-sched.c (schedule_reg_moves): Likewise.
9747 (optimize_sc): Likewise.
9748 (get_sched_window): Likewise.
9749 (sms_schedule_by_order): Likewise.
9750 (check_nodes_order): Likewise.
9751 (order_nodes_of_sccs): Likewise.
9752 (order_nodes_in_scc): Likewise.
9753 * recog.c (split_all_insns): Likewise.
9754 * regcprop.c (pass_cprop_hardreg::execute): Likewise.
9755 * reload1.c (reload): Likewise.
9756 * sched-rgn.c (haifa_find_rgns): Likewise.
9757 (split_edges): Likewise.
9758 (compute_trg_info): Likewise.
9759 * sel-sched.c (init_seqno): Likewise.
9760 * store-motion.c (remove_reachable_equiv_notes): Likewise.
9761 * tree-into-ssa.c (update_ssa): Likewise.
9762 * tree-ssa-live.c (live_worklist): Likewise.
9763 * tree-ssa-loop-im.c (fill_always_executed_in): Likewise.
9764 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely):
9766 (try_peel_loop): Likewise.
9767 * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop):
9769 * tree-ssa-pre.c (compute_antic): Likewise.
9770 * tree-ssa-reassoc.c (undistribute_ops_list): Likewise.
9771 * tree-stdarg.c (reachable_at_most_once): Likewise.
9772 * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Likewise.
9773 * var-tracking.c (vt_find_locations): Likewise.
9775 2016-07-26 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
9777 * sbitmap.h (auto_sbitmap): New class.
9779 2016-07-26 Alan Modra <amodra@gmail.com>
9782 * config/rs6000/rs6000.c (rs6000_secondary_reload): Initialize
9785 2016-07-25 David Malcolm <dmalcolm@redhat.com>
9787 * input.c (selftest::temp_source_file::temp_source_file): Fix
9788 missing "%s" in fprintf.
9790 2016-07-25 John David Anglin <danglin@gcc.gnu.org>
9793 * cselib.c (cselib_process_insn): Invalidate argument slots for
9796 2016-07-25 Jiong Wang <jiong.wang@arm.com>
9798 * config/aarch64/arm_neon.h (vfmah_lane_f16, vfmah_laneq_f16,
9799 vfmsh_lane_f16, vfmsh_laneq_f16, vmulh_lane_f16, vmulh_laneq_f16,
9800 vmulxh_lane_f16, vmulxh_laneq_f16): New.
9802 2016-07-25 Jiong Wang <jiong.wang@arm.com>
9804 * config/aarch64/aarch64-simd-builtins.def: Register new builtins.
9805 * config/aarch64/aarch64.md (fma, fnma): Support HF.
9806 * config/aarch64/arm_fp16.h (vfmah_f16, vfmsh_f16): New.
9808 2016-07-25 Jiong Wang <jiong.wang@arm.com>
9810 * config/aarch64/aarch64-simd-builtins.def: Register new builtins.
9811 * config/aarch64/aarch64.md (<FCVT_F2FIXED:fcvt_fixed_insn>hf<mode>3):
9813 (<FCVT_FIXED2F:fcvt_fixed_insn><mode>hf3): Likewise.
9814 (add<mode>3): Likewise.
9815 (sub<mode>3): Likewise.
9816 (mul<mode>3): Likewise.
9817 (div<mode>3): Likewise.
9818 (*div<mode>3): Likewise.
9819 (<fmaxmin><mode>3): Extend to HF.
9820 * config/aarch64/aarch64-simd.md (aarch64_rsqrts<mode>): Likewise.
9821 (fabd<mode>3): Likewise.
9822 (<FCVT_F2FIXED:fcvt_fixed_insn><VHSDF_HSDF:mode>3): Likewise.
9823 (<FCVT_FIXED2F:fcvt_fixed_insn><VHSDI_HSDI:mode>3): Likewise.
9824 (aarch64_fmulx<mode>): Likewise.
9825 (aarch64_fac<optab><mode>): Likewise.
9826 (aarch64_frecps<mode>): Likewise.
9827 (<FCVT_F2FIXED:fcvt_fixed_insn>hfhi3): New.
9828 (<FCVT_FIXED2F:fcvt_fixed_insn>hihf3): Likewise.
9829 * config/aarch64/iterators.md (VHSDF_SDF): Delete.
9830 (VSDQ_HSDI): Support HI.
9831 (fcvt_target, FCVT_TARGET): Likewise.
9832 * config/aarch64/arm_fp16.h (vaddh_f16, vsubh_f16, vabdh_f16,
9833 vcageh_f16, vcagth_f16, vcaleh_f16, vcalth_f16, vceqh_f16, vcgeh_f16,
9834 vcgth_f16, vcleh_f16, vclth_f16, vcvth_n_f16_s16, vcvth_n_f16_s32,
9835 vcvth_n_f16_s64, vcvth_n_f16_u16, vcvth_n_f16_u32, vcvth_n_f16_u64,
9836 vcvth_n_s16_f16, vcvth_n_s32_f16, vcvth_n_s64_f16, vcvth_n_u16_f16,
9837 vcvth_n_u32_f16, vcvth_n_u64_f16, vdivh_f16, vmaxh_f16, vmaxnmh_f16,
9838 vminh_f16, vminnmh_f16, vmulh_f16, vmulxh_f16, vrecpsh_f16,
9841 2016-07-25 Jiong Wang <jiong.wang@arm.com>
9843 * config.gcc (aarch64*-*-*): Install arm_fp16.h.
9844 * config/aarch64/aarch64-builtins.c (hi_UP): New.
9845 * config/aarch64/aarch64-simd-builtins.def: Register new builtins.
9846 * config/aarch64/aarch64-simd.md (aarch64_frsqrte<mode>): Extend to HF
9848 (aarch64_frecp<FRECP:frecp_suffix><mode>): Likewise.
9849 (aarch64_cm<optab><mode>): Likewise.
9850 * config/aarch64/aarch64.md (<frint_pattern><mode>2): Likewise.
9851 (l<fcvt_pattern><su_optab><GPF:mode><GPI:mode>2): Likewise.
9852 (fix_trunc<GPF:mode><GPI:mode>2): Likewise.
9853 (sqrt<mode>2): Likewise.
9854 (*sqrt<mode>2): Likewise.
9855 (abs<mode>2): Likewise.
9856 (<optab><mode>hf2): New pattern for HF mode.
9857 (<optab>hihf2): Likewise.
9858 * config/aarch64/arm_neon.h: Include arm_fp16.h.
9859 * config/aarch64/iterators.md (GPF_F16, GPI_F16, VHSDF_HSDF): New.
9860 (w1, w2, v, s, q, Vmtype, V_cmp_result, fcvt_iesize, FCVT_IESIZE):
9862 * config/aarch64/arm_fp16.h: New file.
9863 (vabsh_f16, vceqzh_f16, vcgezh_f16, vcgtzh_f16, vclezh_f16, vcltzh_f16,
9864 vcvth_f16_s16, vcvth_f16_s32, vcvth_f16_s64, vcvth_f16_u16,
9865 vcvth_f16_u32, vcvth_f16_u64, vcvth_s16_f16, vcvth_s32_f16,
9866 vcvth_s64_f16, vcvth_u16_f16, vcvth_u32_f16, vcvth_u64_f16,
9867 vcvtah_s16_f16, vcvtah_s32_f16, vcvtah_s64_f16, vcvtah_u16_f16,
9868 vcvtah_u32_f16, vcvtah_u64_f16, vcvtmh_s16_f16, vcvtmh_s32_f16,
9869 vcvtmh_s64_f16, vcvtmh_u16_f16, vcvtmh_u32_f16, vcvtmh_u64_f16,
9870 vcvtnh_s16_f16, vcvtnh_s32_f16, vcvtnh_s64_f16, vcvtnh_u16_f16,
9871 vcvtnh_u32_f16, vcvtnh_u64_f16, vcvtph_s16_f16, vcvtph_s32_f16,
9872 vcvtph_s64_f16, vcvtph_u16_f16, vcvtph_u32_f16, vcvtph_u64_f16,
9873 vnegh_f16, vrecpeh_f16, vrecpxh_f16, vrndh_f16, vrndah_f16, vrndih_f16,
9874 vrndmh_f16, vrndnh_f16, vrndph_f16, vrndxh_f16, vrsqrteh_f16,
9877 2016-07-25 Jiong Wang <jiong.wang@arm.com>
9879 * config/aarch64/aarch64-simd-builtins.def (reduc_smax_scal_,
9880 reduc_smin_scal_): Use VDQIF_F16.
9881 (reduc_smax_nan_scal_, reduc_smin_nan_scal_): Use VHSDF.
9882 * config/aarch64/aarch64-simd.md (reduc_<maxmin_uns>_scal_<mode>):
9884 (aarch64_reduc_<maxmin_uns>_internal<mode>): Likewise.
9885 * config/aarch64/iterators.md (VDQIF_F16): New.
9886 (vp): Support HF modes.
9887 * config/aarch64/arm_neon.h (vmaxv_f16, vmaxvq_f16, vminv_f16,
9888 vminvq_f16, vmaxnmv_f16, vmaxnmvq_f16, vminnmv_f16, vminnmvq_f16): New.
9890 2016-07-25 Jiong Wang <jiong.wang@arm.com>
9892 * config/aarch64/aarch64-simd.md (*aarch64_mulx_elt_to_64v2df): Rename to
9893 "*aarch64_mulx_elt_from_dup<mode>".
9894 (*aarch64_mul3_elt<mode>): Update schedule type.
9895 (*aarch64_mul3_elt_from_dup<mode>): Likewise.
9896 (*aarch64_fma4_elt_from_dup<mode>): Likewise.
9897 (*aarch64_fnma4_elt_from_dup<mode>): Likewise.
9898 * config/aarch64/iterators.md (VMUL): Supprt half precision float modes.
9899 (f, fp): Support HF modes.
9900 * config/aarch64/arm_neon.h (vfma_lane_f16, vfmaq_lane_f16,
9901 vfma_laneq_f16, vfmaq_laneq_f16, vfma_n_f16, vfmaq_n_f16, vfms_lane_f16,
9902 vfmsq_lane_f16, vfms_laneq_f16, vfmsq_laneq_f16, vfms_n_f16,
9903 vfmsq_n_f16, vmul_lane_f16, vmulq_lane_f16, vmul_laneq_f16,
9904 vmulq_laneq_f16, vmul_n_f16, vmulq_n_f16, vmulx_lane_f16,
9905 vmulxq_lane_f16, vmulx_laneq_f16, vmulxq_laneq_f16): New.
9907 2016-07-25 Jiong Wang <jiong.wang@arm.com>
9909 * config/aarch64/aarch64-simd-builtins.def: Register new builtins.
9910 * config/aarch64/aarch64-simd.md (fma<mode>4, fnma<mode>4): Extend to HF
9912 * config/aarch64/arm_neon.h (vfma_f16, vfmaq_f16, vfms_f16,
9915 2016-07-25 Jiong Wang <jiong.wang@arm.com>
9917 * config/aarch64/aarch64-simd-builtins.def: Register new builtins.
9918 * config/aarch64/aarch64-simd.md
9919 (aarch64_rsqrts<mode>): Extend to HF modes.
9920 (fabd<mode>3): Likewise.
9921 (<FCVT_F2FIXED:fcvt_fixed_insn><VHSDF_SDF:mode>3): Likewise.
9922 (<FCVT_FIXED2F:fcvt_fixed_insn><VHSDI_SDI:mode>3): Likewise.
9923 (aarch64_<maxmin_uns>p<mode>): Likewise.
9924 (<su><maxmin><mode>3): Likewise.
9925 (<maxmin_uns><mode>3): Likewise.
9926 (<fmaxmin><mode>3): Likewise.
9927 (aarch64_faddp<mode>): Likewise.
9928 (aarch64_fmulx<mode>): Likewise.
9929 (aarch64_frecps<mode>): Likewise.
9930 (*aarch64_fac<optab><mode>): Rename to aarch64_fac<optab><mode>.
9931 (add<mode>3): Extend to HF modes.
9932 (sub<mode>3): Likewise.
9933 (mul<mode>3): Likewise.
9934 (div<mode>3): Likewise.
9935 (*div<mode>3): Likewise.
9936 * config/aarch64/aarch64.c (aarch64_emit_approx_div): Return false for
9938 * config/aarch64/iterators.md (VDQ_HSDI, VSDQ_HSDI): New mode iterator.
9939 * config/aarch64/arm_neon.h (vadd_f16, vaddq_f16, vabd_f16, vabdq_f16,
9940 vcage_f16, vcageq_f16, vcagt_f16, vcagtq_f16, vcale_f16, vcaleq_f16,
9941 vcalt_f16, vcaltq_f16, vceq_f16, vceqq_f16, vcge_f16, vcgeq_f16,
9942 vcgt_f16, vcgtq_f16, vcle_f16, vcleq_f16, vclt_f16, vcltq_f16,
9943 vcvt_n_f16_s16, vcvtq_n_f16_s16, vcvt_n_f16_u16, vcvtq_n_f16_u16,
9944 vcvt_n_s16_f16, vcvtq_n_s16_f16, vcvt_n_u16_f16, vcvtq_n_u16_f16,
9945 vdiv_f16, vdivq_f16, vdup_lane_f16, vdup_laneq_f16, vdupq_lane_f16,
9946 vdupq_laneq_f16, vdups_lane_f16, vdups_laneq_f16, vmax_f16, vmaxq_f16,
9947 vmaxnm_f16, vmaxnmq_f16, vmin_f16, vminq_f16, vminnm_f16, vminnmq_f16,
9948 vmul_f16, vmulq_f16, vmulx_f16, vmulxq_f16, vpadd_f16, vpaddq_f16,
9949 vpmax_f16, vpmaxq_f16, vpmaxnm_f16, vpmaxnmq_f16, vpmin_f16, vpminq_f16,
9950 vpminnm_f16, vpminnmq_f16, vrecps_f16, vrecpsq_f16, vrsqrts_f16,
9951 vrsqrtsq_f16, vsub_f16, vsubq_f16): New.
9953 2016-07-25 Jiong Wang <jiong.wang@arm.com>
9955 * config/aarch64/aarch64-builtins.c (TYPES_BINOP_USS): New.
9956 * config/aarch64/aarch64-simd-builtins.def: Register new builtins.
9957 * config/aarch64/aarch64-simd.md (aarch64_rsqrte<mode>): Extend to HF modes.
9958 (neg<mode>2): Likewise.
9959 (abs<mode>2): Likewise.
9960 (<frint_pattern><mode>2): Likewise.
9961 (l<fcvt_pattern><su_optab><VDQF:mode><fcvt_target>2): Likewise.
9962 (<optab><VDQF:mode><fcvt_target>2): Likewise.
9963 (<fix_trunc_optab><VDQF:mode><fcvt_target>2): Likewise.
9964 (ftrunc<VDQF:mode>2): Likewise.
9965 (<optab><fcvt_target><VDQF:mode>2): Likewise.
9966 (sqrt<mode>2): Likewise.
9967 (*sqrt<mode>2): Likewise.
9968 (aarch64_frecpe<mode>): Likewise.
9969 (aarch64_cm<optab><mode>): Likewise.
9970 * config/aarch64/aarch64.c (aarch64_emit_approx_sqrt): Return false for
9972 * config/aarch64/iterators.md (VHSDF, VHSDF_DF, VHSDF_SDF): New.
9973 (VDQF_COND, fcvt_target, FCVT_TARGET, hcon): Extend mode attribute to HF modes.
9975 * config/aarch64/arm_neon.h (vdup_n_f16): New.
9976 (vdupq_n_f16): Likewise.
9977 (vld1_dup_f16): Use vdup_n_f16.
9978 (vld1q_dup_f16): Use vdupq_n_f16.
9979 (vabs_f16, vabsq_f16, vceqz_f16, vceqzq_f16, vcgez_f16, vcgezq_f16,
9980 vcgtz_f16, vcgtzq_f16, vclez_f16, vclezq_f16, vcltz_f16, vcltzq_f16,
9981 vcvt_f16_s16, vcvtq_f16_s16, vcvt_f16_u16, vcvtq_f16_u16, vcvt_s16_f16,
9982 vcvtq_s16_f16, vcvt_u16_f16, vcvtq_u16_f16, vcvta_s16_f16,
9983 vcvtaq_s16_f16, vcvta_u16_f16, vcvtaq_u16_f16, vcvtm_s16_f16,
9984 vcvtmq_s16_f16, vcvtm_u16_f16, vcvtmq_u16_f16, vcvtn_s16_f16,
9985 vcvtnq_s16_f16, vcvtn_u16_f16, vcvtnq_u16_f16, vcvtp_s16_f16,
9986 vcvtpq_s16_f16, vcvtp_u16_f16, vcvtpq_u16_f16, vneg_f16, vnegq_f16,
9987 vrecpe_f16, vrecpeq_f16, vrnd_f16, vrndq_f16, vrnda_f16, vrndaq_f16,
9988 vrndi_f16, vrndiq_f16, vrndm_f16, vrndmq_f16, vrndn_f16, vrndnq_f16,
9989 vrndp_f16, vrndpq_f16, vrndx_f16, vrndxq_f16, vrsqrte_f16, vrsqrteq_f16,
9990 vsqrt_f16, vsqrtq_f16): New.
9992 2016-07-25 Jiong Wang <jiong.wang@arm.com>
9994 * config/aarch64/aarch64-simd.md
9995 (aarch64_<PERMUTE:perm_insn><PERMUTE:perm_hilo><mode>): Use VALL_F16.
9996 (aarch64_ext<mode>): Likewise.
9997 (aarch64_rev<REVERSE:rev_op><mode>): Likewise.
9998 * config/aarch64/aarch64.c (aarch64_evpc_trn, aarch64_evpc_uzp,
9999 aarch64_evpc_zip, aarch64_evpc_ext, aarch64_evpc_rev): Support V4HFmode
10001 * config/aarch64/arm_neon.h (__INTERLEAVE_LIST): Support float16x4_t,
10003 (__aarch64_vdup_lane_f16, __aarch64_vdup_laneq_f16,
10004 __aarch64_vdupq_lane_f16, __aarch64_vdupq_laneq_f16, vbsl_f16,
10005 vbslq_f16, vdup_n_f16, vdupq_n_f16, vdup_lane_f16, vdup_laneq_f16,
10006 vdupq_lane_f16, vdupq_laneq_f16, vduph_lane_f16, vduph_laneq_f16,
10007 vext_f16, vextq_f16, vmov_n_f16, vmovq_n_f16, vrev64_f16, vrev64q_f16,
10008 vtrn1_f16, vtrn1q_f16, vtrn2_f16, vtrn2q_f16, vtrn_f16, vtrnq_f16,
10009 vuzp1_f16, vuzp1q_f16, vuzp2_f16, vuzp2q_f16, vzip1_f16, vzip2q_f16):
10011 (vmov_n_f16): Reimplement using vdup_n_f16.
10012 (vmovq_n_f16): Reimplement using vdupq_n_f16..
10014 2016-07-25 Jiong Wang <jiong.wang@arm.com>
10016 * config/aarch64/aarch64.c (aarch64_add_constant): New parameter
10017 "frame_related_p". Generate CFA annotation when it's necessary.
10018 (aarch64_expand_prologue): Use aarch64_add_constant.
10019 (aarch64_expand_epilogue): Likewise.
10020 (aarch64_output_mi_thunk): Pass "false" when calling
10021 aarch64_add_constant.
10023 2016-07-25 Jiong Wang <jiong.wang@arm.com>
10025 * config/aarch64/aarch64.c (aarch64_add_constant): Optimize instruction
10028 2016-07-25 Jiong Wang <jiong.wang@arm.com>
10030 * config/aarch64/aarch64.c (aarch64_add_constant): New parameter "mode".
10031 Use aarch64_internal_mov_immediate instead of aarch64_build_constant.
10032 (aarch64_output_mi_thunk): Pass Pmode when calling aarch64_add_constant.
10033 (aarch64_build_constant): Delete.
10035 2016-07-25 Alexander Monakov <amonakov@ispras.ru>
10038 2016-07-20 Alexander Monakov <amonakov@ispras.ru>
10040 * config/nvptx/nvptx.c (nvptx_option_override): Do not set
10041 flag_toplevel_reorder.
10043 2016-07-25 Richard Biener <rguenther@suse.de>
10045 * cgraph.c (cgraph_node::verify_node): Compare against builtin
10046 by using DECL_BUILT_IN_CLASS and DECL_FUNCTION_CODE.
10047 * tree-chkp.c (chkp_gimple_call_builtin_p): Likewise.
10048 * tree-streamer.h (streamer_handle_as_builtin_p): Remove.
10049 (streamer_get_builtin_tree): Likewise.
10050 (streamer_write_builtin): Likewise.
10051 * lto-streamer.h (LTO_builtin_decl): Remove.
10052 * lto-streamer-in.c (lto_read_tree_1): Remove assert.
10053 (lto_input_scc): Remove LTO_builtin_decl handling.
10054 (lto_input_tree_1): Liekwise.
10055 * lto-streamer-out.c (lto_output_tree_1): Remove special
10056 handling of builtins.
10057 (DFS::DFS): Likewise.
10058 * tree-streamer-in.c (streamer_get_builtin_tree): Remove.
10059 * tree-streamer-out.c (pack_ts_function_decl_value_fields): Remove
10061 (streamer_write_builtin): Remove.
10063 2016-07-25 Martin Liska <mliska@suse.cz>
10065 * lto-cgraph.c (input_symtab): Don't call get_working_sets
10066 if flag_auto_profile is set to true.
10068 2016-07-25 Martin Liska <mliska@suse.cz>
10070 PR gcov-profile/71868
10071 * cfgloopanal.c (expected_loop_iterations_unbounded): When we
10072 have a function with multiple latches, count them all.
10074 2016-07-25 Martin Liska <mliska@suse.cz>
10076 * tree-ssa-loop-niter.c (loop_only_exit_p): Release body array.
10078 2016-07-25 Martin Liska <mliska@suse.cz>
10080 PR tree-optimization/71987
10081 * tree-ssa-reassoc.c (maybe_optimize_range_tests): Call get_ops
10082 just for SSA_NAMEs. Fix GNU coding style.
10084 2016-07-25 Martin Liska <mliska@suse.cz>
10086 PR gcov-profile/64874
10087 * gcov-io.h: Update command about file format.
10088 * gcov-iov.c (main): Adapt the numbering scheme.
10090 2016-07-24 Kugan Vivekanandarajah <kuganv@linaro.org>
10092 PR middle-end/66726
10093 * tree-ssa-reassoc.c (optimize_vec_cond_expr): Handle tcc_compare stmt
10094 whose result is used in PHI.
10095 (final_range_test_p): Likewise.
10096 (maybe_optimize_range_tests): Likewise.
10098 2016-07-22 Michael Meissner <meissner@linux.vnet.ibm.com>
10100 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
10101 Reformat two multi-line strings.
10103 2016-07-22 Martin Sebor <msebor@redhat.com>
10105 * doc/extend.texi (Compound Literals): Add '@' missed in last commit.
10107 2016-07-22 Martin Sebor <msebor@redhat.com>
10110 * doc/extend.texi (Compound Literals): Correct and clarify.
10111 (Cast to Union): Same.
10113 2016-07-22 Kelvin Nilsen <kelvin@gcc.gnu.org>
10115 * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
10116 comments to explain why certain error messages make mention of
10117 undocumented options.
10118 (rs6000_invalid_builtin): Change error messages to replace mention
10119 of undocumented options with mention of the -mcpu=power9 option
10120 that enables those undocumented options.
10121 * config/rs6000/rs6000.h (MASK_FLOAT128): New macro.
10122 (RS6000_BTM_FLOAT128): Use the new MASK_FLOAT128 macro in the
10123 definition of this macro to correct an existing error.
10124 * config/rs6000/rs6000.opt: Add the Undocumented qualifier to the
10125 mpower9-fusion, mpower9-vector, mpower9-dform, and mmodulo entries.
10126 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Modify
10127 descriptions of built-in functions so that they depend on
10128 -mcpu=power9 instead of on the corresponding undocumented flags.
10129 * doc/invoke.texi (Option Summary): Remove all mention of newly
10130 undocumented flags.
10131 (IBM RS/6000 and PowerPC Options): Likewise.
10132 * doc/md.texi (Constraints for Particuliar Machines): Remove all
10133 mention of newly undocumented flags.
10135 2016-07-22 Evgeny Stupachenko <evstupac@gmail.com>
10137 * ipa-cp.c (determine_versionability): Do not create constprop clones,
10138 when target_clones attribute is set.
10140 2016-07-22 Bin Cheng <bin.cheng@arm.com>
10142 * common.opt (funsafe-loop-optimizations): Mark ignore.
10143 * doc/invoke.texi (funsafe-loop-optimizations): Remove.
10144 * loop-iv.c (get_simple_loop_desc): Remove unsafe-loop-optimizations
10146 * tree-ssa-loop-niter.c (finite_loop_p): Ditto.
10147 * config/bfin/bfin.c (bfin_can_use_doloop_p): Ditto.
10149 2016-07-22 Bin Cheng <bin.cheng@arm.com>
10151 * tree-ssa-loop-niter.h (number_of_iterations_exit_assumptions): New
10153 * tree-ssa-loop-niter.c (number_of_iterations_exit_assumptions): New
10155 (number_of_iterations_exit): Warn missed loop optimization for
10156 possible infinite loops.
10158 2016-07-22 Segher Boessenkool <segher@kernel.crashing.org>
10161 * config/rs6000/rs6000.c (rs6000_file_start): Fix condition for
10162 when to emit a ".machine" pseudo-op.
10164 2016-07-22 Martin Liska <mliska@suse.cz>
10166 PR gcov-profile/69028
10167 PR gcov-profile/62047
10168 * coverage.c (coverage_compute_lineno_checksum): Do not
10169 calculate checksum for fns w/o xloc.file.
10170 (coverage_compute_profile_id): Likewise.
10172 2016-07-22 Georg-Johann Lay <avr@gjlay.de>
10174 * config/avr/avr.c (TARGET_SECONDARY_RELOAD): Remove hook define...
10175 (avr_secondary_reload): ...and implementation.
10176 (avr_adjust_insn_length) [ADJUST_LEN_LPM]: Remove handling.
10177 * config/avr/avr.md (reload_in<mode>): Remove insns.
10178 (adjust_len) [lpm]: Remove insn attribute value.
10179 * config/avr/predicates.md (flash_operand): Remove insn predicate.
10181 2016-07-21 Bernd Edlinger <bernd.edlinger@hotmail.de>
10183 PR middle-end/71876
10184 * builtin-attrs.def (ATTR_RT_NOTHROW_LEAF_LIST): New return twice
10186 * builtins.def (BUILT_IN_SETJMP): Use ATTR_RT_NOTHROW_LEAF_LIST here.
10187 * calls.c (special_function_p): Remove the special handling of the
10188 "__builtin_" prefix.
10190 2016-07-21 Bernd Edlinger <bernd.edlinger@hotmail.de>
10192 PR middle-end/71876
10193 * calls.c (gimple_maybe_alloca_call_p): New function. Return true
10194 if STMT may be an alloca call.
10195 (gimple_alloca_call_p, alloca_call_p): Return only true for the
10196 builtin alloca call.
10197 * calls.h (gimple_maybe_alloca_call_p): New function.
10198 * tree-inline.c (inline_forbidden_p_stmt): Use
10199 gimple_maybe_alloca_call_p here.
10201 2016-07-21 David Malcolm <dmalcolm@redhat.com>
10203 * spellcheck-tree.c (best_macro_match::best_macro_match):
10204 Explictly specify the template arguments when invoking the base
10205 class constructor, to help older C++ compilers.
10207 2016-07-21 Jakub Jelinek <jakub@redhat.com>
10210 * asan.c (asan_dynamic_init_call): Call asan_init_shadow_ptr_types
10211 before builtin_decl_implicit.
10213 2016-07-21 James Greenhalgh <james.greenhalgh@arm.com>
10215 * optabs.c (emit_condiitonal_move): Short circuit for identical
10218 2016-07-21 James Greenhalgh <james.greenhalgh@arm.com>
10220 * ifcvt.c (noce_if_info): New fields: speed_p, original_cost,
10221 max_seq_cost. Removed fields: then_cost, else_cost, branch_cost.
10222 (noce_conversion_profitable_p): New.
10223 (noce_try_store_flag_constants): Use it.
10224 (noce_try_addcc): Likewise.
10225 (noce_try_store_flag_mask): Likewise.
10226 (noce_try_cmove): Likewise.
10227 (noce_try_cmove_arith): Likewise.
10228 (bb_valid_for_noce_process_p): Add to the cost parameter rather than
10230 (noce_convert_multiple_sets): Move cost model to here, from...
10231 (bb_ok_for_noce_convert_multiple_sets) ...here.
10232 (noce_process_if_block): Update calls for above changes.
10233 (noce_find_if_block): Record new noce_if_info parameters.
10235 2016-07-21 James Greenhalgh <james.greenhalgh@arm.com>
10237 * target.def (max_noce_ifcvt_seq_cost): New.
10238 * doc/tm.texi.in (TARGET_MAX_NOCE_IFCVT_SEQ_COST): Document it.
10239 * doc/tm.texi: Regenerate.
10240 * targhooks.h (default_max_noce_ifcvt_seq_cost): New.
10241 * targhooks.c (default_max_noce_ifcvt_seq_cost): New.
10242 * params.def (PARAM_MAX_RTL_IF_CONVERSION_PREDICTABLE_COST): New.
10243 (PARAM_MAX_RTL_IF_CONVERSION_UNPREDICTABLE_COST): Likewise.
10244 * doc/invoke.texi: Document new params.
10246 2016-07-21 Richard Biener <rguenther@suse.de>
10248 PR tree-optimization/71947
10249 * tree-vrp.c (extract_range_from_assert): Singleton symbolic
10250 ranges have useful limit_vr information.
10252 2016-07-21 Richard Biener <rguenther@suse.de>
10254 * function-tests.c (build_trivial_generic_function): Set
10255 BLOCK_SUPERCONTEXT of DECL_INITIAL.
10256 * omp-low.c (create_omp_child_function): Likewise.
10257 (grid_expand_target_grid_body): Likewise.
10258 * cgraphunit.c (init_lowered_empty_function): Likewise.
10259 (cgraph_node::expand_thunk): Likewise.
10260 * tree-parloops.c (create_loop_fn): Likewise.
10261 * ipa.c (cgraph_build_static_cdtor_1): Likewise.
10263 2016-07-21 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
10265 * tree-ssa-strlen.c (strlen_dom_walker::before_dom_children): Fix typo
10268 2016-07-21 Georg-Johann Lay <avr@gjlay.de>
10270 * config/avr/avr.md (any_extract, any_shiftrt): New code iterators.
10271 (*insv.extract, *insv.shiftrt, *insv.not-bit.0, *insv.not-bit.7)
10272 (*insv.xor-extract, *insv.xor1-bit.0): New insns.
10273 (adjust_len) [insv_notbit, insv_notbit_0, insv_notbit_7]: New
10274 values for insn attribute.
10275 * config/avr/avr.c (avr_out_insert_notbit): New function.
10276 (avr_adjust_insn_length): Handle ADJUST_LEN_INSV_NOTBIT,
10277 ADJUST_LEN_INSV_NOTBIT_0/_7.
10278 * config/avr/avr-protos.h (avr_out_insert_notbit): New proto.
10280 2016-07-21 Bin Cheng <bin.cheng@arm.com>
10282 * tree-chrec.c (convert_affine_scev): New parameter. Pass new arg.
10283 (chrec_convert_1, chrec_convert): Ditto.
10284 * tree-chrec.h (chrec_convert, convert_affine_scev): New parameter.
10285 * tree-scalar-evolution.c (interpret_rhs_expr): Pass new arg.
10286 * tree-vrp.c (adjust_range_with_scev): Ditto.
10287 * tree-ssa-loop-niter.c (idx_infer_loop_bounds): Ditto.
10288 (scev_var_range_cant_overflow): New function.
10289 (scev_probably_wraps_p): New parameter. Call above function.
10290 * tree-ssa-loop-niter.h (scev_probably_wraps_p): New parameter.
10292 2016-07-21 Bin Cheng <bin.cheng@arm.com>
10294 * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Clean up
10295 by removing computation of may_be_zero.
10297 2016-07-21 Jakub Jelinek <jakub@redhat.com>
10299 * tree-object-size.c (unknown): Use HOST_WIDE_INT_M1U instead of -1.
10301 2016-07-21 Andrew Sutton <andrew.n.sutton@gmail.com>
10303 Improving concepts performance and diagnostics.
10304 * timevar.def (TV_CONSTRAINT_SAT, TV_CONSTRAINT_SUB): New time vars
10305 for constraint satisfaction and subsumption.
10306 * timevar.h (auto_timevar): New constructor that matches the push/pop
10307 pattern of usage in pt.c.
10309 2016-07-20 Uros Bizjak <ubizjak@gmail.com>
10311 * hwint.h (HOST_WIDE_INT_0): New define.
10312 (HOST_WIDE_INT_0U): Ditto.
10313 * double-int.c: Use HOST_WIDE_INT_0 instead of (HOST_WIDE_INT) 0.
10314 * dse.c: Use HOST_WIDE_INT_0U instead of (unsigned HOST_WIDE_INT) 0.
10315 * simplify-rtx.c: Ditto.
10316 * tree-object-size.c: Ditto.
10318 2016-07-20 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
10320 * config/s390/s390.c (s390_encode_section_info): Remove mode size
10323 2016-07-20 Uros Bizjak <ubizjak@gmail.com>
10325 * cse.c: Use HOST_WIDE_INT_M1 instead of ~(HOST_WIDE_INT) 0.
10326 * combine.c: Use HOST_WIDE_INT_M1U instead of
10327 ~(unsigned HOST_WIDE_INT) 0.
10328 * double-int.h: Ditto.
10330 * dwarf2asm.c:Ditto.
10332 * genmodes.c: Ditto.
10334 * read-rtl.c: Ditto.
10335 * tree-ssa-loop-ivopts.c: Ditto.
10336 * tree-ssa-loop-prefetch.c: Ditto.
10337 * tree-vect-generic.c: Ditto.
10338 * tree-vect-patterns.c: Ditto.
10341 2016-07-20 Georg-Johann Lay <avr@gjlay.de>
10343 * gcc/config/avr.c (avr_legitimize_address) [AVR_TINY]: Force
10344 constant addresses outside [0,0xc0] into a register.
10345 (avr_out_movhi_r_mr_reg_no_disp_tiny): Pass insn. And handle
10346 cases where the base address register is unused after.
10347 (avr_out_movhi_r_mr_reg_disp_tiny): Same.
10348 (avr_out_movhi_mr_r_reg_disp_tiny): Same.
10349 (avr_out_store_psi_reg_disp_tiny): Same.
10351 2016-07-20 Georg-Johann Lay <avr@gjlay.de>
10353 Implement attribute progmem on reduced Tiny cores by adding
10354 flash offset 0x4000 to respective symbols.
10357 * doc/extend.texi (AVR Variable Attributes) [progmem]: Add
10358 documentation how it works on reduced Tiny cores.
10359 (AVR Named Address Spaces): No support for reduced Tiny.
10360 * config/avr/avr.c (AVR_SYMBOL_FLAG_TINY_PM): New macro.
10361 (avr_address_tiny_pm_p): New static function.
10362 (avr_print_operand_address) [AVR_TINY]: Add AVR_TINY_PM_OFFSET
10363 if the address is in progmem.
10364 (avr_assemble_integer): Same.
10365 (avr_encode_section_info) [AVR_TINY]: Set AVR_SYMBOL_FLAG_TINY_PM
10366 for symbol_ref in progmem.
10367 * config/avr/avr.h (AVR_TINY_PM_OFFSET): New macro.
10368 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Use it instead of
10369 magic 0x4000 when built-in def'ing __AVR_TINY_PM_BASE_ADDRESS__.
10371 2016-07-20 Patrick Palka <ppalka@gcc.gnu.org>
10373 * configure.ac (thin_archive_support): New variable. AC_SUBST it.
10374 * configure: Regenerate.
10375 * Makefile.in (THIN_ARCHIVE_SUPPORT): New variable.
10376 (USE_THIN_ARCHIVES): New variable.
10377 (libbackend.a): If USE_THIN_ARCHIVES then pass T to ar to build
10378 this archive as a thin archive.
10380 2016-07-20 David Malcolm <dmalcolm@redhat.com>
10382 * diagnostic-show-locus.c (diagnostic_show_locus): If this is the
10383 same location as last time, don't skip if we have fix-it hints.
10384 Clarify the skipping logic by converting it from one "if" clause
10385 to repeated "if" clauses.
10386 * spellcheck-tree.c: Include "cpplib.h".
10387 (find_closest_macro_cpp_cb): Move here from c/c-decl.c.
10388 (best_macro_match::best_macro_match): New constructor.
10389 * spellcheck-tree.h (struct edit_distance_traits<cpp_hashnode *>):
10390 Move here from c/c-decl.c.
10391 (class best_macro_match): Move here from c/c-decl.c, converting
10392 from a typedef to a subclass, gaining a ctor.
10394 2016-07-20 Georg-Johann Lay <avr@gjlay.de>
10396 * config/avr/avr-protos.h (avr_addr_space_supported_p): New prototype.
10397 * config/avr/avr.c (TARGET_ADDR_SPACE_DIAGNOSE_USAGE): New hook
10399 (avr_addr_space_diagnose_usage): ...and implementation.
10400 (avr_addr_space_supported_p): New function.
10401 (avr_nonconst_pointer_addrspace, avr_pgm_check_var_decl): Only
10402 report bad address space usage if that space is supported.
10403 (avr_insert_attributes): Same. No more complain about unsupported
10405 * config/avr/avr-c.c (tm_p.h): Include it.
10406 (avr_cpu_cpp_builtins): Only define addr-space related built-in
10407 macro if avr_addr_space_supported_p.
10409 2016-07-20 Alexander Monakov <amonakov@ispras.ru>
10411 * config/nvptx/nvptx.c (nvptx_option_override): Do not set
10412 flag_toplevel_reorder.
10414 2016-07-20 David Malcolm <dmalcolm@redhat.com>
10416 * gcc-rich-location.c
10417 (gcc_rich_location::add_fixit_misspelled_id): New overload, taking
10419 * gcc-rich-location.h
10420 (gcc_rich_location::add_fixit_misspelled_id): Likewise.
10422 2016-07-20 Georg-Johann Lay <avr@gjlay.de>
10424 * target.def (addr_space): Add new diagnose_usage to hook vector.
10425 * targhooks.c (default_addr_space_diagnose_usage): Add default
10426 implementation and...
10427 * targhooks.h (default_addr_space_diagnose_usage): ... its prototype.
10428 * c/c-parser.c (c_lex_one_token) [CPP_NAME]: If the token
10429 is some address space, call targetm.addr_space.diagnose_usage.
10430 * doc/tm.texi.in (Named Address Spaces): Add anchor for
10431 TARGET_ADDR_SPACE_DIAGNOSE_USAGE documentation.
10432 * doc/tm.texi: Regenerate.
10434 2016-07-20 Martin Liska <mliska@suse.cz>
10436 PR middle-end/71898
10437 * graphite-isl-ast-to-gimple.c (later_of_the_two):
10438 Properly handly PHI stmts.
10440 2016-07-20 Bin Cheng <bin.cheng@arm.com>
10442 PR tree-optimization/71503
10443 PR tree-optimization/71683
10444 * tree-if-conv.c (gen_phi_arg_condition): Record true predicate
10447 2016-07-20 Martin Liska <mliska@suse.cz>
10449 * doc/invoke.texi (-fipa-ra): Document when the option is
10450 disabled. Fix a typo.
10452 2016-07-20 Martin Liska <mliska@suse.cz>
10454 * Makefile.in: Include fibonacci_heap.c
10455 * fibonacci_heap.c: New file.
10456 * fibonacci_heap.h (fibonacci_heap::insert): Use insert_node.
10457 (fibonacci_heap::union_with): Fix deletion of the second heap.
10458 * selftest-run-tests.c (selftest::run_tests): Incorporate
10459 fibonacci heap tests.
10460 * selftest.h: Declare fibonacci_heap_c_tests.
10462 2016-07-20 Martin Liska <mliska@suse.cz>
10464 * selftest-run-tests.c (selftest::run_tests): New function.
10465 * selftest.h (sreal_c_tests): Declare.
10466 * sreal.c (sreal_verify_basics): New function.
10467 (verify_aritmetics): Likewise.
10468 (sreal_verify_arithmetics): Likewise.
10469 (verify_shifting): Likewise.
10470 (sreal_verify_shifting): Likewise.
10471 (void sreal_c_tests): Likewise.
10473 2016-07-19 Jakub Jelinek <jakub@redhat.com>
10475 PR rtl-optimization/71916
10476 * cfgrtl.c (contains_no_active_insn_p): Return false also for
10477 bb which have a single succ fake edge.
10479 2016-07-19 Aldy Hernandez <aldyh@redhat.com>
10482 * dwarf2out.c (gen_subprogram_die): Only call
10483 gen_unspecified_parameters_die while dumping early dwarf.
10485 2016-07-19 Jakub Jelinek <jakub@redhat.com>
10487 PR middle-end/71874
10488 * gimple-fold.c (fold_builtin_memory_op): Use
10489 get_addr_base_and_unit_offset instead of get_ref_base_and_extent.
10491 2016-07-19 Uros Bizjak <ubizjak@gmail.com>
10493 * builtins.c: Use HOST_WIDE_INT_1 instead of (HOST_WIDE_INT) 1,
10494 HOST_WIDE_INT_1U instead of (unsigned HOST_WIDE_INT) 1,
10495 HOST_WIDE_INT_M1 instead of (HOST_WIDE_INT) -1 and
10496 HOST_WIDE_INT_M1U instead of (unsigned HOST_WIDE_INT) -1.
10497 * combine.c: Ditto.
10500 * double-int.c: Ditto.
10502 * dwarf2out.c: Ditto.
10505 * fold-const.c: Ditto.
10506 * function.c: Ditto.
10508 * genmodes.c: Ditto.
10512 * loop-doloop.c: Ditto.
10513 * loop-invariant.c: Ditto.
10514 * loop-iv.c: Ditto.
10519 * rtlanal.c: Ditto.
10520 * simplify-rtx.c: Ditto.
10521 * stor-layout.c: Ditto.
10523 * tree-ssa-loop-ivopts.c: Ditto.
10524 * tree-vect-generic.c: Ditto.
10525 * tree-vect-patterns.c: Ditto.
10530 * wide-int-print.cc: Ditto.
10531 * wide-int.cc: Ditto.
10532 * wide-int.h: Ditto.
10534 2016-07-19 David Malcolm <dmalcolm@redhat.com>
10536 * selftest.c (selftest::assert_streq): Handle NULL values of
10537 val_actual and val_expected.
10539 2016-07-19 Martin Jambor <mjambor@suse.cz>
10542 * trans-decl.c (gfc_generate_function_code): Use cgraph_get_create_node
10543 rather than cgraph_create_node to get a call graph node.
10545 2016-07-19 Richard Biener <rguenther@suse.de>
10547 * gimple-fold.c (get_base_constructor): Add VIEW_CONVERT case,
10548 handle all tcc_constant bases and valueize SSA names.
10549 * tree-ssa-sccvn.c (fully_constant_vn_reference_p): Handle
10550 tcc_constant bases.
10552 2016-07-19 David Malcolm <dmalcolm@redhat.com>
10554 * function-tests.c (selftest::verify_three_block_rtl_cfg): Verify
10555 the flags of the exit block and bb2, not just the entry block.
10557 2016-07-19 Richard Biener <rguenther@suse.de>
10559 PR tree-optimization/71901
10560 * tree-ssa-sccvn.h (struct vn_reference_op_struct): Add
10561 align member, group stuff with the bitfield.
10562 (vn_ref_op_align_unit): New inline.
10563 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): For ARRAY_REFs
10564 record element alignment and operand 3 unchanged.
10565 (ao_ref_init_from_vn_reference): Adjust.
10566 (valueize_refs_1): Likewise.
10567 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
10569 2016-07-19 Richard Biener <rguenther@suse.de>
10571 PR tree-optimization/71908
10572 * tree-ssa-structalias.c (get_constraint_for_component_ref): Handle
10573 symbolic constants in a more reliable way.
10575 2016-07-19 Ilya Enkovich <ilya.enkovich@intel.com>
10577 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Update
10579 (vect_update_inits_of_drs): Likewise.
10580 (vect_create_cond_for_alias_checks): Likewise.
10581 * tree-vect-loop.c (vect_get_known_peeling_cost): Likewise.
10583 2016-07-19 Richard Biener <rguenther@suse.de>
10586 * lto-streamer-out.c (DFS::DFS_write_tree_body): For blocks
10587 with an abstract origin that is not an inlined function outer
10588 scope add a self-reference as abstract origin.
10589 * tree-streamer-out.c (write_ts_block_tree_pointers): Likewise.
10591 2016-07-18 Michael Meissner <meissner@linux.vnet.ibm.com>
10594 * config/rs6000/rs6000.c (rs6000_function_value): Fix
10595 unintentional System V.4 structure return breakage for structures
10596 with a single floating point element.
10598 2016-07-18 Yuri Rumyantsev <ysrumyan@gmail.com>
10600 PR tree-optimization/71734
10601 * tree-ssa-loop-im.c (ref_indep_loop_p_1): Add REF_LOOP argument which
10602 contains REF, use it to check safelen, assume that safelen value
10603 must be greater 1, fix style.
10604 (ref_indep_loop_p_2): Add REF_LOOP argument.
10605 (ref_indep_loop_p): Pass LOOP as additional argument to
10606 ref_indep_loop_p_2.
10608 2016-07-18 Dominik Vogt <vogt@linux.vnet.ibm.com>
10610 * cfgexpand.c (expand_stack_vars): Implement synamic stack space
10611 allocation in the prologue.
10612 * explow.c (get_dynamic_stack_base): New function to return an address
10613 expression for the dynamic stack base.
10614 (get_dynamic_stack_size): New function to do the required dynamic stack
10615 space size calculations.
10616 (allocate_dynamic_stack_space): Use new functions.
10617 (align_dynamic_address): Move some code from
10618 allocate_dynamic_stack_space to new function.
10619 * explow.h (get_dynamic_stack_base, get_dynamic_stack_size): Export.
10621 2016-07-18 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
10623 * config/s390/s390.c (s390_encode_section_info): Always set
10624 notaligned marker if mode size is 0 or no MEM_ALIGN info could be
10627 2016-07-18 Richard Biener <rguenther@suse.de>
10629 PR tree-optimization/71893
10630 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Compensate
10631 for sizetype cast added by array_ref_element_size.
10632 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
10634 2016-07-16 John David Anglin <danglin@gcc.gnu.org>
10636 * config/pa/pa.c (hppa_profile_hook): Allocate stack space for
10637 register parameters. Remove code to initialize argument pointer
10638 on TARGET_64BIT. Optimize call to _mcount when it can be reached
10639 using a pc-relative branch. Cleanup conditional code.
10640 * config/pa/pa.md (call_mcount): New expander.
10641 (call_mcount_nonpic): New insn.
10642 (call_mcount_pic): New insn and split.
10643 (call_mcount_pic_post_reload): New insn.
10644 (call_mcount_64bit): New insn and split.
10645 (call_mcount_64bit_post_reload): New insn.
10647 2016-07-15 Georg-Johann Lay <avr@gjlay.de>
10649 * config/avr/predicates.md (const_m255_to_m1_operand): New.
10650 * config/avr/constraints.md (Cn8, Ca1, Co1, Yx2): New constraints.
10651 * config/avr/avr.md (add<mode>3) <ALL1>: Fix set_vzn for +/-2.
10652 (*cmphi.zero-extend.0, *cmphi.zero-extend.1)
10653 (*usum_widenqihi3, *udiff_widenqihi3)
10654 (*addhi3_zero_extend.const): New combiner insns.
10655 (andqi3, iorqi3): Provide "l" (NO_LD_REGS) alternative if
10656 just 1 bit is affected.
10657 * config/avr/avr.c (avr_out_bitop) <QImode>: Don't access xop[3].
10658 (avr_out_compare) [EQ,NE]: Tweak comparing d-regs against -1.
10660 2016-07-15 Cesar Philippidis <cesar@codesourcery.com>
10662 * omp-low.c (lower_omp_target): Mark data clauses with
10663 GOMP_MAP_FORCE_{PRESENT,TO,FROM,TOFROM} as potentially having
10664 zero-length subarrays.
10666 2016-07-15 Richard Biener <rguenther@suse.de>
10668 PR tree-optimization/71881
10669 * tree-loop-distribution.c (destroy_loop): Remove blocks in
10670 reverse DOM order to make debug temp generation happy.
10672 2016-07-15 Richard Biener <rguenther@suse.de>
10674 PR tree-optimization/71887
10675 * tree-ssa-phiopt.c (absorbing_element_p): Add rhs arg and
10676 verify it is not zero for division / modulo handling.
10677 (value_replacement): Adjust.
10679 2016-07-15 Virendra Pathak <virendra.pathak@broadcom.com>
10680 Julian Brown <julian@codesourcery.com>
10682 * config/aarch64/aarch64-cores.def: Update vulcan COSTS.
10683 * config/aarch64/aarch64-cost-tables.h
10684 (vulcan_extra_costs): New variable.
10685 * config/aarch64/aarch64.c
10686 (vulcan_addrcost_table): Likewise.
10687 (vulcan_regmove_cost): Likewise.
10688 (vulcan_vector_cost): Likewise.
10689 (vulcan_branch_cost): Likewise.
10690 (vulcan_tunings): Likewise.
10692 2016-07-15 Alexander Monakov <amonakov@ispras.ru>
10694 * cgraphunit.c (cgraph_order_sort_kind): New entry ORDER_VAR_UNDEF.
10695 (output_in_order): Loop over undefined variables too. Output them
10696 via assemble_undefined_decl. Skip variables that correspond to hard
10697 registers or have value-exprs.
10698 * varpool.c (symbol_table::output_variables): Handle undefined
10699 variables together with defined ones.
10701 2016-07-15 Richard Biener <rguenther@suse.de>
10703 * tree-ssa-pre.c (get_representative_for): Make sure to return
10704 the value number of SSA names.
10705 (phi_translate_1): get_representative_for cannot return NULL.
10706 (do_pre_regular_insertion): Remove redundant call to
10707 fully_constant_expression.
10708 (do_pre_partial_partial_insertion): Likewise.
10710 2016-07-15 Bin Cheng <bin.cheng@arm.com>
10712 * tree-scalar-evolution.c (simple_iv_with_niters): New funcion.
10713 (derive_simple_iv_with_niters): New function.
10714 (simple_iv): Rewrite using simple_iv_with_niters.
10715 * tree-scalar-evolution.h (simple_iv_with_niters): New decl.
10716 * tree-ssa-loop-niter.c (number_of_iterations_exit_assumptions): New
10718 (number_of_iterations_exit): Rewrite using above function.
10719 * tree-ssa-loop-niter.h (number_of_iterations_exit_assumptions): New
10722 2016-07-15 Richard Biener <rguenther@suse.de>
10724 * config/i386/i386.c (ix86_builtin_vectorization_cost): Adjust
10725 vec_construct cost.
10727 2016-07-14 Jakub Jelinek <jakub@redhat.com>
10729 PR tree-optimization/71872
10730 * tree-data-ref.c (get_references_in_stmt): Ignore references
10731 with is_gimple_constant get_base_address.
10733 2016-07-14 Thomas Preud'homme <thomas.preudhomme@arm.com>
10735 * config/arm/arm.h (TARGET_HAVE_LDACQ): Enable for ARMv8-M Mainline.
10736 (TARGET_HAVE_LDACQD): New macro.
10737 * config/arm/sync.md (atomic_loaddi): Use TARGET_HAVE_LDACQD rather
10738 than TARGET_HAVE_LDACQ.
10739 (arm_load_acquire_exclusivedi): Likewise.
10740 (arm_store_release_exclusivedi): Likewise.
10742 2016-07-14 Thomas Preud'homme <thomas.preudhomme@arm.com>
10744 PR rtl-optimization/71878
10745 * lra-constraints.c (match_reload): Pass information about other
10746 output operands. Create new unique register value if matching input
10747 operand shares same register value as output operand being considered.
10748 (curr_insn_transform): Record output operands already processed.
10750 2016-07-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10753 PR tree-optimization/70923
10754 * tree-vect-patterns.c: Include mult-synthesis.h.
10755 (target_supports_mult_synth_alg): New function.
10756 (synth_lshift_by_additions): Likewise.
10757 (apply_binop_and_append_stmt): Likewise.
10758 (vect_synth_mult_by_constant): Likewise.
10759 (target_has_vecop_for_code): Likewise.
10760 (vect_recog_mult_pattern): Use above functions to synthesize vector
10761 multiplication by integer constants.
10763 2016-07-14 Alan Modra <amodra@gmail.com>
10765 * gcc/config/rs6000/altivec.md (altivec_mov<mode>): Disparage
10766 gpr alternatives. Correct '*' placement on Y,r alternative.
10767 Add '*' on operand 1 of r,r alternative.
10769 2016-07-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10771 * expmed.c (mult_variant, choose_mult_variant): Move declaration to...
10772 * expmed.h: ... Here.
10774 2016-07-14 Jan Hubicka <hubicka@ucw.cz>
10776 * gimple.h (stmt_can_terminate_bb_p): New function.
10777 * tree-cfg.c (need_fake_edge_p): Rename to ...
10778 (stmt_can_terminate_bb_p): ... this; return true if stmt can
10779 throw external; handle const and pure calls.
10780 * tree-ssa-loop-niter.c (loop_only_exit_p): Use it.
10782 2016-07-14 Richard Biener <rguenther@suse.de>
10784 PR tree-optimization/71866
10785 * tree-ssa-pre.c (get_constant_for_value_id): Remove.
10786 (do_hoist_insertion): Avoid endless recursion when we
10787 didn't insert anything because we managed to simplify
10788 things down to a constant or SSA name.
10789 (fully_constant_expression): Re-write in terms of ...
10790 * tree-ssa-sccvn.h (vn_nary_simplify): ... this. Declare.
10791 * tree-ssa-sccvn.c (vn_nary_simplify): New wrapper around
10792 vn_nary_build_or_lookup_1.
10793 (vn_nary_build_or_lookup_1): Added flag and renamed from ...
10794 (vn_nary_build_or_lookup): ... this which now wraps it.
10796 2016-07-14 Alan Modra <amodra@gmail.com>
10799 * config/rs6000/rs6000.c (rs6000_option_override_internal): Deal
10800 with p9_vector override before power9-dform override.
10802 2016-07-13 Andi Kleen <ak@linux.intel.com>
10804 * value-prof.c (gimple_value_profile_transformations): Don't run
10805 when auto_profile is on.
10807 2016-07-13 Andi Kleen <ak@linux.intel.com>
10809 * auto-profile.c (update_inlined_ind_target,
10810 afdo_indirect_call): Print information to dump file.
10812 2016-07-13 Andrew Burgess <andrew.burgess@embecosm.com>
10814 * genrecog.c (special_predicate_operand_p): New function.
10815 (predicate_name): Move function.
10816 (validate_pattern): Don't warn about missing mode for all
10817 define_special_predicate predicates.
10819 2016-07-13 Bin Cheng <bin.cheng@arm.com>
10821 * tree-vect-data-refs.c (vect_no_alias_p): New function.
10822 (vect_prune_runtime_alias_test_list): Call vect_no_alias_p to
10823 resolve alias checks which are known at compilation time.
10824 Truncate vector LOOP_VINFO_MAY_ALIAS_DDRS(loop_vinfo) if all
10825 alias checks are resolved. Move dump info for too many runtime
10826 alias checks to here...
10827 * tree-vect-loop.c (vect_analyze_loop_2): ...From here.
10829 2016-07-13 Richard Biener <rguenther@suse.de>
10831 PR tree-optimization/24574
10832 * tree-ssa-phiopt.c (absorbing_element_p): Pass in argument
10833 position and add shift, rotate, divison and modulo support
10835 (value_replacement): Pass in argument position to absorbing_element_p.
10837 2016-07-13 Ilya Enkovich <ilya.enkovich@intel.com>
10840 * ipa-inline-transform.c (inline_call): Support
10841 instrumented thunks.
10843 2016-07-13 Thomas Preud'homme <thomas.preudhomme@arm.com>
10845 * config/arm/arm.h (TARGET_HAVE_CBZ): Define.
10846 (TARGET_IDIV): Set for all Thumb targets provided they have hardware
10848 * config/arm/arm.md (divsi3): New unpredicable alternative for ARMv8-M
10849 Baseline. Make initial alternative TARGET_32BIT only.
10850 (udivsi3): Likewise.
10851 * config/arm/thumb1.md (thumb1_cbz): New define_insn.
10852 * doc/sourcebuild.texi (arm_thumb1_cbz_ok): Document new effective
10855 2016-07-13 Thomas Preud'homme <thomas.preudhomme@arm.com>
10857 * config/arm/arm.h (TARGET_HAVE_MOVT): Include ARMv8-M as having MOVT.
10858 * config/arm/arm.c (arm_arch_name): (const_ok_for_op): Check MOVT/MOVW
10859 availability with TARGET_HAVE_MOVT.
10860 (thumb_legitimate_constant_p): Strip the high part of a label_ref.
10861 (thumb1_rtx_costs): Also return 0 if setting a half word constant and
10862 MOVW is available and replace (unsigned HOST_WIDE_INT) INTVAL by
10864 (thumb1_size_rtx_costs): Make set of half word constant also cost 1
10865 extra instruction if MOVW is available. Use a cost variable
10866 incremented by COSTS_N_INSNS (1) when the condition match rather than
10867 returning an arithmetic expression based on COSTS_N_INSNS. Make
10868 constant with bottom half word zero cost 2 instruction if MOVW is
10870 * config/arm/arm.md (define_attr "arch"): Add v8mb.
10871 (define_attr "arch_enabled"): Set to yes if arch value is v8mb and
10872 target is ARMv8-M Baseline.
10873 (arm_movt): New unpredicable alternative for ARMv8-M Baseline.
10874 (arm_movtas_ze): Likewise.
10875 * config/arm/thumb1.md (thumb1_movdi_insn): Add ARMv8-M Baseline only
10876 alternative for constants satisfying j constraint.
10877 (thumb1_movsi_insn): Likewise.
10878 (movsi splitter for K alternative): Tighten condition to not trigger
10879 if movt is available and j constraint is satisfied.
10880 (Pe immediate splitter): Likewise.
10881 (thumb1_movhi_insn): Add ARMv8-M Baseline only alternative for
10882 constant fitting in an halfword to use MOVW.
10883 * doc/sourcebuild.texi (arm_thumb1_movt_ok): Document new ARM
10886 2016-07-13 Richard Biener <rguenther@suse.de>
10888 PR middle-end/71104
10889 * gimplify.c (gimplify_modify_expr): Gimplify the RHS before
10890 gimplifying the LHS. Make sure to gimplify a returning twice
10891 call LHS without using SSA names.
10893 2016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
10895 * tree-data-ref.c (find_data_references_in_stmt): Remove
10896 unnecessary call to vec::release.
10897 (graphite_find_data_references_in_stmt): Likewise.
10898 * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p): Likewise.
10899 * tree-vect-stmts.c (vectorizable_condition): Likewise.
10901 2016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
10903 * cfgexpand.c (expand_used_vars): Make the type of a local
10905 * genmatch.c (lower_for): Likewise.
10906 * haifa-sched.c (haifa_sched_init): Likewise.
10907 (add_to_speculative_block): Likewise.
10908 (create_check_block_twin): Likewise.
10909 * predict.c (handle_missing_profiles): Likewise.
10910 * tree-data-ref.c (loop_nest_has_data_refs): Likewise.
10911 * tree-diagnostic.c (maybe_unwind_expanded_macro_loc): Likewise.
10912 * tree-ssa-loop-niter.c (discover_iteration_bound_by_body_walk):
10914 (maybe_lower_iteration_bound): Likewise.
10915 * tree-ssa-sccvn.c (DFS): Likewise.
10916 * tree-stdarg.c (reachable_at_most_once): Likewise.
10917 * tree-vect-stmts.c (vectorizable_conversion): Likewise.
10918 (vectorizable_store): Likewise.
10920 2016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
10922 * tree-ssa-sccvn.c (sccvn_dom_walker::~sccvn_dom_walker): remove.
10923 (sccvn_dom_walker): make cond_stack an auto_vec.
10925 2016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
10927 * ree.c (struct ext_state): Make type of members auto_vec.
10928 (find_and_remove_re): Adjust.
10930 2016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
10932 * cfgexpand.c (struct stack_vars_data): Make type of fields
10934 (expand_used_vars): Adjust.
10936 2016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
10938 * ipa.c (record_cdtor_fn): Adjust.
10939 (build_cdtor_fns): Likewise.
10940 (ipa_cdtor_merge): Make static_ctors and static_dtors local
10943 2016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
10945 * genextract.c (struct accum_extract): Add constructor and make
10947 (gen_insn): Adjust.
10949 2016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
10951 * tree.c (struct free_lang_data_d): Add constructor and change
10952 types of members to ones that automatically manage resources.
10953 (fld_worklist_push): Adjust.
10954 (find_decls_types): Likewise.
10955 (find_decls_types_in_eh_region): Likewise.
10956 (free_lang_data_in_cgraph): Stop manually creating and
10957 destroying members of free_lang_data_d.
10959 2016-07-13 Uros Bizjak <ubizjak@gmail.com>
10961 PR rtl-optimization/68961
10962 * config/i386/sse.md (movsd/movhpd to movupd peephole2s): Add new
10963 peephole variant. Use sse_reg_operand predicates.
10965 2016-07-12 Uros Bizjak <ubizjak@gmail.com>
10967 * config/i386/predicates.md (x86_64_immediate_operand)
10968 <case CONST_INT>: Remove unneeded truncation to DImode.
10969 <case CONST>: Ditto.
10970 (x86_64_zext_immediate_operand) <case CONST>: Ditto.
10972 2016-07-12 Michael Meissner <meissner@linux.vnet.ibm.com>
10975 * config/rs6000/altivec.md (altivec_vperm_<mode>_internal):
10976 The xxperm and xxpermr instructions require that the 2nd input
10977 operand overlap with the output operand, and not the 1st.
10978 (altivec_vperm_v8hiv16qi): Likewise.
10979 (altivec_vperm_<mode>_uns_internal): Likewise.
10980 (altivec_vpermr_<mode>_internal): Likewise.
10981 (vperm_v8hiv4si): Likewise.
10982 (vperm_v16qiv8hi): Likewise.
10984 2016-07-12 Nathan Sidwell <nathan@acm.org>
10986 * config/arm/arm.c (arm_option_override): Set MASK_SINGLE_PIC_BASE
10987 when -mno-pic-data-is-text-relative is in effect, by default.
10988 * doc/invoke.texi (mpic-data-is-text-relative): Document new
10989 behavior and clarify.
10991 2016-07-12 Martin Liska <mliska@suse.cz>
10993 * params.def: Add avg-loop niter.
10994 * tree-ssa-loop-ivopts.c (avg_loop_niter): Use the param.
10995 * cfgloopanal.c (expected_loop_iterations_unbounded): Likewise.
10996 * doc/invoke.texi: Document the new parameter.
10998 2016-07-12 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11000 PR middle-end/71700
11001 * expr.c (store_constructor): Mask sign-extended bits when widening
11002 sub-word constructor element at the start of a word.
11004 2016-07-12 Martin Liska <mliska@suse.cz>
11006 * Makefile.in: Append rule for params-options.h.
11007 * params-options.h: New file.
11009 2016-07-12 Martin Liska <mliska@suse.cz>
11011 * ira-build.c (mark_loops_for_removal): Properly iterate
11014 2016-07-12 Steven Bosscher <steven@gcc.gnu.org>
11015 Richard Biener <rguenther@suse.de>
11017 PR tree-optimization/23286
11018 PR tree-optimization/70159
11019 * doc/invoke.texi: Document -fcode-hoisting.
11020 * common.opt (fcode-hoisting): New flag.
11021 * opts.c (default_options_table): Enable -fcode-hoisting at -O2+.
11022 * tree-ssa-pre.c (pre_stats): Add hoist_insert.
11023 (do_regular_insertion): Rename to ...
11024 (do_pre_regular_insertion): ... this and amend general comments
11025 on insertion strathegy.
11026 (do_partial_partial_insertion): Rename to ...
11027 (do_pre_partial_partial_insertion): ... this.
11028 (do_hoist_insertion): New function.
11029 (insert_aux): Take flags on whether to do PRE and/or hoist insertion
11030 and call do_hoist_insertion properly.
11032 (pass_pre::gate): Enable also if -fcode-hoisting is enabled.
11033 (pass_pre::execute): Register hoist_insert stats.
11035 2016-07-12 Jakub Jelinek <jakub@redhat.com>
11037 PR middle-end/71716
11038 * gimple-fold.c (optimize_atomic_compare_exchange_p): Return false
11039 for SCALAR_FLOAT_TYPE_P type of expected var, or if TYPE_PRECISION
11040 is different from mode's bitsize. Small cleanup.
11042 2016-07-12 Richard Biener <rguenther@suse.de>
11044 PR rtl-optimization/68961
11045 * fwprop.c (propagate_rtx): Allow SUBREGs of VEC_CONCAT and CONCAT
11046 to simplify to a non-constant.
11048 2016-07-11 Jakub Jelinek <jakub@redhat.com>
11050 PR middle-end/71758
11051 * omp-low.c (expand_omp_target): Gimplify device.
11053 PR tree-optimization/71823
11054 * tree-vect-stmts.c (vectorizable_operation): Use vect_get_vec_defs
11055 to get vec_oprnds2 from op2.
11057 2016-07-11 Uros Bizjak <ubizjak@gmail.com>
11059 * config/i386/predicates.md (x86_64_immediate_operand) <case CONST>:
11060 Hoist common subexpressions.
11061 (x86_64_zext_immediate_operand) <case CONST>: Ditto.
11063 2016-07-11 Pat Haugen <pthaugen@us.ibm.com>
11066 * config/rs6000/rs6000.md (stfiwx): Change constraint to 'wu' to
11067 prevent generation of 'stxsiwx' on pre Power8 hardware.
11069 2016-07-11 David Malcolm <dmalcolm@redhat.com>
11071 * input.c: Include cpplib.h.
11072 (selftest::temp_source_file): New class.
11073 (selftest::temp_source_file::temp_source_file): New ctor.
11074 (selftest::temp_source_file::~temp_source_file): New dtor.
11075 (selftest::should_have_column_data_p): New function.
11076 (selftest::test_should_have_column_data_p): New function.
11077 (selftest::temp_line_table): New class.
11078 (selftest::temp_line_table::temp_line_table): New ctor.
11079 (selftest::temp_line_table::~temp_line_table): New dtor.
11080 (selftest::test_accessing_ordinary_linemaps): Add case_ param; use
11081 it to create a temp_line_table.
11082 (selftest::assert_loceq): Only verify LOCATION_COLUMN for
11083 locations that are known to have column data.
11084 (selftest::line_table_case): New struct.
11085 (selftest::test_reading_source_line): Move tempfile handling
11086 to class temp_source_file.
11087 (ASSERT_TOKEN_AS_TEXT_EQ): New macro.
11088 (selftest::assert_token_loc_eq): New function.
11089 (ASSERT_TOKEN_LOC_EQ): New macro.
11090 (selftest::test_lexer): New function.
11091 (selftest::boundary_locations): New array.
11092 (selftest::input_c_tests): Call test_should_have_column_data_p.
11093 Loop over a test matrix of interesting values of location and
11094 default_range_bits, calling test_lexer on each case in the matrix.
11095 Move call to test_accessing_ordinary_linemaps into the matrix.
11096 * selftest.h (ASSERT_EQ): Reimplement in terms of...
11097 (ASSERT_EQ_AT): New macro.
11099 2016-07-11 H.J. Lu <hongjiu.lu@intel.com>
11102 * config/i386/i386.c (timode_scalar_chain::fix_debug_reg_uses):
11103 Don't convert TImode in debug insn.
11105 2016-07-11 Bernd Edlinger <bernd.edlinger@hotmail.de>
11107 Convert TYPE_ALIGN_OK to a TYPE_LANG_FLAG.
11108 * tree-core.h (tree_base::nothrow_flag): Adjust comment.
11109 (tree_type_common::lang_flag_7): New.
11110 (tree_type_common::spare): Reduce size.
11111 * tree.h (TYPE_ALIGN_OK): Remove.
11112 (TYPE_LANG_FLAG_7): New.
11113 (get_inner_reference): Adjust header.
11114 * print-tree.c (print_node): Adjust.
11115 * expr.c (get_inner_reference): Remove parameter keep_aligning.
11116 (get_bit_range, expand_assignment, expand_expr_addr_expr_1): Adjust
11117 calls to get_inner_reference.
11118 (expand_expr_real_1): Adjust call to get_inner_reference. Remove
11119 handling of TYPE_ALIGN_OK.
11120 * builtins.c (get_object_alignment_2): Adjust call to
11121 get_inner_reference. Remove handling of VIEW_CONVERT_EXPR.
11122 * emit-rtl.c (set_mem_attributes_minus_bitpos): Remove handling of
11124 * asan.c (instrument_derefs): Adjust calls to get_inner_reference.
11125 * cfgexpand.c (expand_debug_expr): Likewise.
11126 * dbxout.c (dbxout_expand_expr): Likewise.
11127 * dwarf2out.c (loc_list_for_address_of_addr_expr_of_indirect_ref,
11128 loc_list_from_tree, fortran_common): Likewise.
11129 * fold-const.c (optimize_bit_field_compare,
11130 decode_field_reference, fold_unary_loc, fold_comparison,
11131 split_address_to_core_and_offset): Likewise.
11132 * gimple-laddress.c (execute): Likewise.
11133 * gimple-ssa-strength-reduction.c (slsr_process_ref): Likewise.
11134 * gimplify.c (gimplify_scan_omp_clauses): Likewise.
11135 * hsa-gen.c (gen_hsa_addr): Likewise.
11136 * simplifx-rtx.c (delegitimize_mem_from_attrs): Likewise.
11137 * tsan.c (instrument_expr): Likewise.
11138 * ubsan.c (instrument_bool_enum_load, instrument_object_size): Likewise.
11139 * tree.c (verify_type_variant): Remove handling of TYPE_ALIGN_OK.
11140 * tree-affine.c (tree_to_aff_combination,
11141 get_inner_reference_aff): Adjust calls to get_inner_reference.
11142 * tree-data-ref.c (split_constant_offset_1,
11143 dr_analyze_innermost): Likewise.
11144 * tree-scalar-evolution.c (interpret_rhs_expr): Likewise.
11145 * tree-sra.c (ipa_sra_check_caller): Likewise.
11146 * tree-ssa-loop-ivopts.c (split_address_cost): Likewise.
11147 * tree-ssa-math-opts.c (find_bswap_or_nop_load,
11148 bswap_replace): Likewise.
11149 * tree-vect-data-refs.c (vect_check_gather,
11150 vect_analyze_data_refs): Likewise.
11151 * config/mips/mips.c (r10k_safe_mem_expr_p): Likewise.
11152 * config/pa/pa.c (pa_emit_move_sequence): Remove handling of
11155 2016-07-11 David Malcolm <dmalcolm@redhat.com>
11157 * Makefile.in (selftest-valgrind): New phony target.
11158 * function-tests.c (selftest::build_cfg): Delete pass instances
11159 created by the test.
11160 (selftest::convert_to_ssa): Likewise.
11161 (selftest::test_expansion_to_rtl): Likewise.
11162 * tree-cfg.c (selftest::test_linear_chain): Release dominator
11164 (selftest::test_diamond): Likewise.
11166 2016-07-11 Richard Biener <rguenther@suse.de>
11168 PR tree-optimization/71816
11169 * tree-ssa-pre.c (compute_avail): Adjust alignment of ref rather
11170 than replacing all of its operands.
11172 2016-07-11 Alan Modra <amodra@gmail.com>
11174 * config/rs6000/rs6000.md (UNSPEC_DOLOOP): New unspec.
11175 (ctr<mode>): Add unspec.
11176 (ctr<mode>_internal*): Likewise.
11178 2016-07-08 James Bowman <james.bowman@ftdichip.com>
11180 * config/ft32/ft32.c (ft32_elf_encode_section_info): New function.
11181 * config/ft32/ft32.h (ASM_OUTPUT_SYMBOL_REF): New function.
11183 2016-07-08 Vladimir Makarov <vmakarov@redhat.com>
11185 PR rtl-optimization/71621
11186 * lra-constraints.c (process_alt_operands): Check combination of
11187 reg class and mode.
11189 2016-07-08 Jason Merrill <jason@redhat.com>
11190 Richard Biener <rguenther@suse.de>
11192 P0145: Refining Expression Order for C++.
11193 * gimplify.c (initial_rhs_predicate_for): New.
11194 (gimplfy_modify_expr): Gimplify RHS before LHS.
11196 2016-07-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
11199 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
11200 Allow standard error handling to take over when a wrong number
11201 of arguments is presented to __builtin_vec_ld () or
11202 __builtin_vec_st ().
11204 2016-07-08 Jiong Wang <jiong.wang@arm.com>
11206 * config/aarch64/aarch64-simd-builtins.def (smax): Remove float
11211 * config/aarch64/arm_neon.h (vmaxnm_f32): Use
11212 __builtin_aarch64_fmaxv2sf.
11213 (vmaxnmq_f32): Likewise.
11214 (vmaxnmq_f64): Likewise.
11215 (vminnm_f32): Likewise.
11216 (vminnmq_f32): Likewise.
11217 (vminnmq_f64): Likewise.
11219 2016-07-08 Michael Meissner <meissner@linux.vnet.ibm.com>
11222 * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Do not
11223 enable -mfloat128-hardware by default.
11224 (ISA_3_0_MASKS_IEEE): New macro to give all of the VSX options
11225 that IEEE 128-bit hardware support needs.
11226 * config/rs6000/rs6000.c (rs6000_option_override_internal): If
11227 -mcpu=power9 -mfloat128, enable -mfloat128-hardware by default.
11228 Use ISA_3_0_MASKS_IEEE as the set of options that IEEE 128-bit
11229 floating point requires.
11230 * doc/invoke.texi (RS/6000 and PowerPC Options): Document
11231 -mfloat128 and -mfloat128-hardware changes.
11233 2016-07-08 Alan Hayward <alan.hayward@arm.com>
11235 PR tree-optimization/71667
11236 * tree-vect-loop.c (vectorizable_live_operation): ignore DEBUG stmts
11238 2016-07-08 Martin Liska <mliska@suse.cz>
11240 PR middle-end/71606
11241 * fold-const.c (fold_convertible_p): As COMPLEX_TYPE
11242 folding produces SAVE_EXPRs, thus return false for the type.
11244 2016-07-07 Martin Liska <mliska@suse.cz>
11246 * file-find.c (remove_prefix): New function.
11247 * file-find.h (remove_prefix): Declare the function.
11248 * gcc-ar.c (main): Skip a folder of the wrapper if
11249 a wrapped binary would point to the same file.
11251 2016-07-07 Jan Hubicka <jh@suse.cz>
11253 * tree-scalar-evolution.c (iv_can_overflow_p): export.
11254 * tree-scalar-evolution.h (iv_can_overflow_p): Declare.
11255 * tree-ssa-loop-ivopts.c (alloc_iv): Use it.
11257 2016-07-07 Ilya Enkovich <ilya.enkovich@intel.com>
11260 * ipa-inline-analysis.c (compute_inline_parameters): Set
11261 local.can_change_signature to false for intrumentation
11264 2016-07-07 Thomas Preud'homme <thomas.preudhomme@arm.com>
11266 * config/arm/arm.h (TARGET_USE_MOVT): Check MOVT/MOVW availability
11267 with TARGET_HAVE_MOVT.
11268 (TARGET_HAVE_MOVT): Define.
11269 * config/arm/arm.c (const_ok_for_op): Check MOVT/MOVW
11270 availability with TARGET_HAVE_MOVT.
11271 * config/arm/arm.md (arm_movt): Use TARGET_HAVE_MOVT to check MOVT
11273 (addsi splitter): Use TARGET_THUMB && TARGET_HAVE_MOVT rather than
11275 (symbol_refs movsi splitter): Remove TARGET_32BIT check.
11276 (arm_movtas_ze): Use TARGET_HAVE_MOVT to check MOVT availability.
11277 * config/arm/constraints.md (define_constraint "j"): Use
11278 TARGET_HAVE_MOVT to check MOVT availability.
11280 2016-07-07 Thomas Preud'homme <thomas.preudhomme@arm.com>
11282 * config/arm/arm-protos.h: Reindent FL_FOR_* macro definitions.
11284 2016-07-07 Thomas Preud'homme <thomas.preudhomme@arm.com>
11286 * config/arm/arm-arches.def (armv8-m.base): Define new architecture.
11287 (armv8-m.main): Likewise.
11288 (armv8-m.main+dsp): Likewise.
11289 * config/arm/arm-protos.h (FL_FOR_ARCH8M_BASE): Define.
11290 (FL_FOR_ARCH8M_MAIN): Likewise.
11291 * config/arm/arm-tables.opt: Regenerate.
11292 * config/arm/bpabi.h: Add armv8-m.base, armv8-m.main and
11293 armv8-m.main+dsp to BE8_LINK_SPEC.
11294 * config/arm/arm.h (TARGET_HAVE_LDACQ): Exclude ARMv8-M.
11295 (enum base_architecture): Add BASE_ARCH_8M_BASE and BASE_ARCH_8M_MAIN.
11296 * config/arm/arm.c (arm_arch_name): Increase size to work with ARMv8-M
11297 Baseline and Mainline.
11298 (arm_option_override_internal): Also disable arm_restrict_it when
11299 !arm_arch_notm. Update comment for -munaligned-access to also cover
11301 (arm_file_start): Increase buffer size for printing architecture name.
11302 * doc/invoke.texi: Document architectures armv8-m.base, armv8-m.main
11303 and armv8-m.main+dsp.
11304 (mno-unaligned-access): Clarify that this is disabled by default for
11305 ARMv8-M Baseline architectures as well.
11307 2016-07-07 Thomas Preud'homme <thomas.preudhomme@arm.com>
11309 * config/arm/elf.h: Use __ARM_ARCH_ISA_THUMB and __ARM_ARCH_ISA_ARM to
11310 decide whether to prevent some libgcc routines being included for some
11311 multilibs rather than __ARM_ARCH_6M__ and add comment to indicate the
11312 link between this condition and the one in
11313 libgcc/config/arm/lib1func.S.
11315 2016-07-07 Richard Biener <rguenther@suse.de>
11317 * tree-ssa-pre.c: Include alias.h.
11318 (compute_avail): If we have multiple VN_REFERENCEs with the
11319 same hashtable entry adjust that to make it a valid replacement
11320 for all of them with respect to alignment and aliasing
11321 when doing insertion.
11322 * tree-ssa-sccvn.h (vn_reference_operands_for_lookup): Declare.
11323 * tree-ssa-sccvn.c (vn_reference_operands_for_lookup): New function.
11325 2016-07-06 Segher Boessenkool <segher@kernel.crashing.org>
11329 * config/rs6000/rs6000.md (*ctr<mode>_internal1, *ctr<mode>_internal2,
11330 *ctr<mode>_internal5, *ctr<mode>_internal6): Add *wi to the output
11333 2016-07-06 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
11335 * var-tracking.c (struct adjust_mem_data): Make side_effects a vector.
11336 (adjust_mems): Adjust.
11337 (adjust_insn): Likewise.
11338 (prepare_call_arguments): Likewise.
11340 2016-07-06 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
11342 * gcse.c (struct ls_expr): Make stores field a vector.
11343 (ldst_entry): Adjust.
11344 (free_ldst_entry): Likewise.
11345 (print_ldst_list): Likewise.
11346 (compute_ld_motion_mems): Likewise.
11347 (update_ld_motion_stores): Likewise.
11349 2016-07-06 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
11351 * gcse.c (struct ls_expr): Remove loads field.
11352 (ldst_entry): Adjust.
11353 (free_ldst_entry): Likewise.
11354 (print_ldst_list): Likewise.
11355 (compute_ld_motion_mems): Likewise.
11357 2016-07-06 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
11359 * store-motion.c (struct st_expr): Make antic_stores a vector.
11360 (st_expr_entry): Adjust.
11361 (free_st_expr_entry): Likewise.
11362 (print_store_motion_mems): Likewise.
11363 (find_moveable_store): Likewise.
11364 (compute_store_table): Likewise.
11365 (remove_reachable_equiv_notes): Likewise.
11366 (replace_store_insn): Likewise.
11367 (build_store_vectors): Likewise.
11369 2016-07-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11371 * config/arm/driver-arm.c (arm_cpu_table): Add entries for cortex-a32,
11372 cortex-a35, cortex-a53, cortex-a57, cortex-a72, cortex-a73.
11374 2016-07-06 Yuri Rumyantsev <ysrumyan@gmail.com>
11376 PR tree-optimization/71518
11377 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Adjust
11378 misalign also for outer loops with negative step.
11380 2016-07-06 Wilco Dijkstra <wdijkstr@arm.com>
11382 * config/arm/cortex-a53.md: Use final_presence_set for in-order.
11383 (cortex_a53_shift): Add mov_shift.
11384 (cortex_a53_shift_reg): Add new reservation for register shifts.
11385 (cortex_a53_alu): Remove bfm.
11386 (cortex_a53_alu_shift): Add bfm, remove mov_shift.
11387 (cortex_a53_alu_extr): Add new reservation for EXTR.
11388 (bypasses): Improve bypass modelling.
11390 2016-07-06 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
11393 * config/avr/avr.c (avr_asm_select_section): Strip off
11394 SECTION_DECLARED from flags when calling get_section.
11396 2016-07-06 Richard Sandiford <richard.sandiford@arm.com>
11398 * tree-vectorizer.h (vect_memory_access_type): Add
11399 VMAT_INVARIANT, VMAT_CONTIGUOUS_DOWN and VMAT_CONTIGUOUS_REVERSED.
11400 * tree-vect-stmts.c (compare_step_with_zero): New function.
11401 (perm_mask_for_reverse): Move further up file.
11402 (get_group_load_store_type): Stick to VMAT_ELEMENTWISE if the
11404 (get_negative_load_store_type): New function.
11405 (get_load_store_type): Call it. Add an ncopies argument.
11406 (vectorizable_mask_load_store): Update call accordingly and
11407 remove tests for negative steps.
11408 (vectorizable_store, vectorizable_load): Likewise. Handle new
11409 memory_access_types.
11411 2016-07-06 Richard Sandiford <richard.sandiford@arm.com>
11413 * tree-vectorizer.h (vect_memory_access_type): New enum.
11414 (_stmt_vec_info): Add a memory_access_type field.
11415 (STMT_VINFO_MEMORY_ACCESS_TYPE): New macro.
11416 (vect_model_store_cost): Take an access type instead of a boolean.
11417 (vect_model_load_cost): Likewise.
11418 * tree-vect-slp.c (vect_analyze_slp_cost_1): Update calls to
11419 vect_model_store_cost and vect_model_load_cost.
11420 * tree-vect-stmts.c (vec_load_store_type): New enum.
11421 (vect_model_store_cost): Take an access type instead of a
11422 store_lanes_p boolean. Simplify tests.
11423 (vect_model_load_cost): Likewise, but for load_lanes_p.
11424 (get_group_load_store_type, get_load_store_type): New functions.
11425 (vectorizable_store): Use get_load_store_type. Record the access
11426 type in STMT_VINFO_MEMORY_ACCESS_TYPE.
11427 (vectorizable_load): Likewise.
11428 (vectorizable_mask_load_store): Likewise. Replace is_store
11429 variable with vls_type.
11431 2016-07-06 Richard Sandiford <richard.sandiford@arm.com>
11433 * tree-vectorizer.h (vect_grouped_load_supported): Add a
11434 single_element_p parameter.
11435 * tree-vect-data-refs.c (vect_grouped_load_supported): Likewise.
11436 Check the PR65518 case here rather than in vectorizable_load.
11437 * tree-vect-loop.c (vect_analyze_loop_2): Update call accordignly.
11438 * tree-vect-stmts.c (vectorizable_load): Likewise.
11440 2016-07-06 Richard Sandiford <richard.sandiford@arm.com>
11442 * tree-vectorizer.h (gather_scatter_info): New structure.
11443 (vect_check_gather_scatter): Return a bool rather than a decl.
11444 Replace return-by-pointer arguments with a single
11445 gather_scatter_info *.
11446 * tree-vect-data-refs.c (vect_check_gather_scatter): Likewise.
11447 (vect_analyze_data_refs): Update call accordingly.
11448 * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Likewise.
11449 (vectorizable_mask_load_store): Likewise. Also record the
11450 offset dt and vectype in the gather_scatter_info.
11451 (vectorizable_store): Likewise.
11452 (vectorizable_load): Likewise.
11454 2016-07-06 Richard Sandiford <richard.sandiford@arm.com>
11456 * tree-vect-stmts.c (vect_model_store_cost): For non-SLP
11457 strided groups, use the cost of N scalar accesses instead
11458 of ncopies vector accesses.
11459 (vect_model_load_cost): Likewise.
11461 2016-07-06 Richard Sandiford <richard.sandiford@arm.com>
11463 * tree-vect-stmts.c (vect_cost_group_size): Delete.
11464 (vect_model_store_cost): Avoid calling it. Use first_stmt_p
11465 variable to indicate when once-per-group costs are being used.
11466 (vect_model_load_cost): Likewise. Fix comment and misindented code.
11468 2016-07-06 Richard Sandiford <richard.sandiford@arm.com>
11470 * tree-vect-stmts.c (vectorizable_load): Remove unnecessary
11471 peeling-for-gaps condition.
11473 2016-07-06 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
11475 * config/s390/s390.c (s390_expand_vec_init): Force initializer
11476 element to register if it doesn't match general_operand.
11478 2016-07-05 Michael Meissner <meissner@linux.vnet.ibm.com>
11479 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
11481 * config/rs6000/rs6000-protos.h (rs6000_split_signbit): New
11483 * config/rs6000/rs6000.c (rs6000_split_signbit): New function.
11484 * config/rs6000/rs6000.md (UNSPEC_SIGNBIT): New constant.
11485 (SIGNBIT): New mode iterator.
11486 (Fsignbit): New mode attribute.
11487 (signbit<mode>2): Change operand1 to match FLOAT128 instead of
11488 IBM128; dispatch to gen_signbit{kf,tf}2_dm for __float128
11489 when direct moves are available.
11490 (signbit<mode>2_dm): New define_insn_and_split).
11491 (signbit<mode>2_dm2): New define_insn.
11493 2016-07-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11495 PR rtl-optimization/71594
11496 * ifcvt.c (noce_convert_multiple_sets): Wrap new_val or old_val
11497 into subregs of appropriate mode before trying to emit a conditional
11500 2016-07-05 Jan Hubicka <jh@suse.cz>
11502 * tree-scalar-evolution.c (iv_can_overflow_p): New function.
11503 (simple_iv): Use it.
11505 2016-07-05 Jan Hubicka <jh@suse.cz>
11507 * tree-ssa-loop-niter.c (nowrap_type_p): Use ANY_INTEGRAL_TYPE_P.
11509 2016-07-05 Jiong Wang <jiong.wang@arm.com>
11511 * lra-constraints.c (process_alt_operands): Don't add spilling cost for
11514 2016-07-05 Jan Hubicka <jh@suse.cz>
11516 * tree-scalar-evoluiton.c (simple_iv): Use nowrap_type to check if
11519 2016-07-05 Richard Biener <rguenther@suse.de>
11521 * gimple-ssa-split-paths.c (find_block_to_duplicate_for_splitting_pa):
11522 Handle empty else block.
11523 (is_feasible_trace): Likewise.
11524 (split_paths): Likewise.
11526 2016-07-05 Richard Biener <rguenther@suse.de>
11528 * tree-loop-distribution.c (distribute_loop): Fix issue with
11529 the cost model loop.
11531 2016-07-05 Christophe Lyon <christophe.lyon@linaro.org>
11533 * config/arm/neon-testgen.ml: Delete.
11534 * config/arm/neon.ml: Delete.
11536 2016-07-04 Jakub Jelinek <jakub@redhat.com>
11539 * tree.c (attribute_value_equal): Use get_attribute_name instead of
11540 directly using TREE_PURPOSE.
11542 2016-07-04 Jiong Wang <jiong.wang@arm.com>
11544 * config/aarch64/aarch64.h: Rename "ARMv8.1" to "ARMv8.1-A".
11545 * config/aarch64/aarch64_neon.h: Likewise.
11546 * config/aarch64/arm_neon.h: Likewise.
11547 * config/aarch64/atomics.md: Likewise.
11548 * config/aarch64/aarch64-simd-builtins.def: Likewise.
11549 * doc/invoke.texi: Likewise.
11551 2016-07-04 Dominik Vogt <vogt@linux.vnet.ibm.com>
11553 * config/s390/s390.md: Add "z13" cpu_facility.
11554 ("*mov<mode>cc"): Add support for z13 instructions lochi and locghi.
11555 * config/s390/predicates.md ("loc_operand"): New predicate for "load on
11556 condition" type instructions.
11558 2016-07-04 Dominik Vogt <vogt@linux.vnet.ibm.com>
11559 Jeff Law <law@redhat.com>
11561 * explow.c (allocate_dynamic_stack_space): Simplify knowing that
11562 MUST_ALIGN was always true and extra_align ist always BITS_PER_UNIT.
11564 2016-07-04 Yuri Rumyantsev <ysrumyan@gmail.com>
11566 * config/i386/i386.c (ix86_expand_vec_perm): Add handle one-operand
11567 permutation for TARGET_AVX512F.
11568 (ix86_expand_vec_one_operand_perm_avx512): New function.
11569 (expand_vec_perm_1): Invoke introduced function.
11570 * tree-vect-loop.c (vect_transform_loop): Clear-up safelen value since
11571 it may be not valid after vectorization.
11573 2016-07-04 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
11576 * config/aarch64/aarch64.c (aarch64_classify_symbol): Fix
11577 typo in comment. Only force to memory if it is a weak
11578 external reference.
11580 2016-07-04 Matthew Wahab <matthew.wahab@arm.com>
11581 Jiong Wang <jiong.wang@arm.com>
11583 * config/aarch64/aarch64-arches.def: Add "armv8.2-a".
11584 * config/aarch64/aarch64.h (AARCH64_FL_V8_2): New.
11585 (AARCH64_FL_F16): New.
11586 (AARCH64_FL_FOR_ARCH8_2): New.
11587 (AARCH64_ISA_8_2): New.
11588 (AARCH64_ISA_F16): New.
11589 (TARGET_FP_F16INST): New.
11590 (TARGET_SIMD_F16INST): New.
11591 * config/aarch64/aarch64-option-extensions.def ("fp16"): New entry.
11592 ("fp"): Disabling "fp" also disables "fp16".
11593 * config/aarch64/aarch64-c.c (arch64_update_cpp_builtins):
11594 Conditionally define __ARM_FEATURE_FP16_SCALAR_ARITHMETIC
11595 and __ARM_FEATURE_FP16_VECTOR_ARITHMETIC.
11596 * doc/invoke.texi (AArch64 Options): Document "armv8.2-a" and "fp16".
11598 2016-07-04 Jan Beulich <jbeulich@suse.com>
11600 * gcc.c (default_compilers["@c-header"]): Conditionalize "-o".
11602 2016-07-01 Michael Meissner <meissner@linux.vnet.ibm.com>
11605 * config/rs6000/vsx.md (vsx_splat_v4sf_internal): When splitting
11606 the insns, use an insn form that does not adjust the offset on
11607 little endian systems.
11609 2016-07-01 Jan Beulich <jbeulich@suse.com>
11611 * varasm.c (get_variable_section): Validate initializer in
11612 named .bss-like sections.
11614 2016-07-01 Kelvin Nilsen <kelvin@gcc.gnu.org>
11616 * config/rs6000/altivec.md (*altivec_vpermr_<mode>_internal):
11617 Exchange the order of the second and third operands in the vpermr
11618 instruction tmeplate.
11620 2016-07-01 Peter Bergner <bergner@vnet.ibm.com>
11623 * config/rs6000/rs6000.c (rs6000_secondary_reload_simple_move):
11624 Disallow TDmode values.
11626 2016-07-01 Alan Modra <amodra@gmail.com>
11628 PR rtl-optimization/71709
11629 * ira-lives.c (find_call_crossed_cheap_reg): Exit loop on arg reg
11630 being set, not referenced.
11632 2016-07-01 Yuri Rumyantsev <ysrumyan@gmail.com>
11634 PR tree-optimization/70729
11635 * tree-vectorizer.c (adjust_simduid_builtins): Nullify safelen field
11636 of loop since it can be not valid after transformation.
11638 2016-07-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11640 * config/arm/arm.c (thumb_reload_in_hi): Delete.
11641 * config/arm/arm-protos.h (thumb_reload_in_hi): Delete prototype.
11643 2016-07-01 Eric Botcazou <ebotcazou@adacore.com>
11645 * config/arm/arm.c (arm_function_ok_for_sibcall): Add another check
11648 2016-06-30 Michael Meissner <meissner@linux.vnet.ibm.com>
11651 * config/rs6000/constraints.md (wY constraint): New constraint to
11652 match the requirements for the LXSD and STXSD instructions.
11653 * config/rs6000/predicates.md (offsettable_mem_14bit_operand): New
11654 predicate to match the requirements for the LXSD and STXSD
11656 * config/rs6000/rs6000.md (mov<mode>_hardfloat32, FMOVE64 case):
11657 Use constaint wY for LXSD/STXSD instructions instead of 'o' or 'Y'
11658 to make sure that the bottom 2 bits of offset are 0, the address
11659 form is offsettable, and no updating is done in the address mode.
11660 (mov<mode>_hardfloat64, FMOVE64 case): Likewise.
11661 (movdi_internal32): Likewise
11662 (movdi_internal64): Likewise.
11664 2016-06-30 Jakub Jelinek <jakub@redhat.com>
11666 PR tree-optimization/71707
11667 * tree-ssa-strlen.c (get_stridx_plus_constant): Handle already present
11668 strinfo even for ADDR_EXPR ptr.
11670 2016-06-30 Kelvin Nilsen <kelvin@gcc.gnu.org>
11672 * config/rs6000/altivec.md (darn_32): Change the condition to
11673 TARGET_P9_MISC instead of TARGET_MODULO.
11674 (darn_raw): Replace TARGET_MODULO with TARGET_P9_MISC in the
11675 condition expression.
11676 (darn): Replace TARGET_MODULO with TARGET_P9_MISC in the
11677 condition expression.
11678 * config/rs6000/dfp.md (UNSPEC_DTSTSFI): New unspec constant.
11679 (DFP_TEST): New code iterator.
11680 (dfptstsfi_<code>_mode>): New define_expand.
11681 (*dfp_sgnfcnc_<mode>): New define_insn.
11682 * config/rs6000/rs6000-builtin.def (BU_P9_MISC_0): Move this macro
11683 definition next to BU_P9_MISC_1 definition and change the MASK
11684 value to RS6000_BTM_P9_MISC.
11685 (BU_P9_MISC_1): Change the MASK value to RS6000_BTM_P9_MISC.
11686 (BU_P9_64BIT_MISC_0): Likewise.
11687 (BU_P9_DFP_MISC_0): New macro definition.
11688 (BU_P9_DFP_MISC_1): New macro definition.
11689 (BU_P9_DFP_MISC_2): New macro definition.
11690 (BU_P9_DFP_OVERLOAD_1): New macro definition.
11691 (BU_P9_DFP_OVERLOAD_2): New macro definition.
11692 (BU_P9_DFP_OVERLOAD_3): New macro definition.
11693 (TSTSFI_LT_DD): New BU_P9_DFP_MISC_2.
11694 (TSTSFI_LT_TD): Likewise.
11695 (TSTSFI_EQ_DD): Likewise.
11696 (TSTSFI_EQ_TD): Likewise.
11697 (TSTSFI_GT_DD): Likewise.
11698 (TSTSFI_GT_TD): Likewise.
11699 (TSTSFI_OV_DD): Likewise.
11700 (TSTSFI_OV_TD): Likewise.
11701 (TSTSFI_LT): New BU_P9_DFP_OVERLOAD_2.
11702 (TSTSFI_LT_DD): Likewise.
11703 (TSTSFI_LT_TD): Likewise.
11704 (TSTSFI_EQ): Likewise.
11705 (TSTSFI_EQ_DD): Likewise.
11706 (TSTSFI_EQ_TD): Likewise.
11707 (TSTSFI_GT): Likewise.
11708 (TSTSFI_GT_DD): Likewise.
11709 (TSTSFI_GT_TD): Likewise.
11710 (TSTSFI_OV): Likewise.
11711 (TSTSFI_OV_DD): Likewise.
11712 (TSTSFI_OV_TD): Likewise.
11713 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
11714 overloaded test significance functions.
11715 * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Add
11716 OPTION_MASK_P9_MISC into the representation of this mask.
11717 (POWERPC_MASKS): Add OPTION_MASK_P9_MISC into the representation
11719 * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Set the
11720 RS6000_BTM_P9_MISC flag in the return value if TARGET_P9_MISC is
11722 (rs6000_expand_binop_builtin): Enforce that argument 0 of the exp
11723 argument is a 6-bit unsigned literal value if the icode argument
11724 represents a DFP test significance built-in call.
11725 (rs6000_invalid_builtin): Add support for the RS6000_BTM_P9_MISC
11726 flag used independently and in combination with the
11727 RS6000_BTM_64BIT flag.
11728 (rs6000_opt_masks): Add entry for power9-misc command-line option.
11729 (rs6000_builtin_mask_names): Add entry for power9-misc
11730 command-line option.
11731 * config/rs6000/rs6000.h: Redefine TARGET_P9_MISC as 0 if
11732 HAVE_AS_POWER9 is not a defined macro. Define MASK_P9_MISC and
11733 RS6000_BTM_P9_MISC macros.
11734 * config/rs6000/rs6000.opt: Add support for the -mpower9-misc
11735 option and change the description of the -mpower9-vector option to
11736 enable only vector instructions, removing its erroneously claimed
11737 support for scalar instructions.
11738 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
11739 the ISA 3.0 digital floating point test significance built-in
11742 2016-06-30 Wilco Dijkstra <wdijkstr@arm.com>
11744 * config/aarch64/aarch64.c (cortexa35_tunings):
11745 Enable AES fusion. Use cortexa57_branch_cost.
11746 (cortexa53_tunings): Use cortexa57_branch_cost.
11747 (cortexa72_tunings): Use cortexa57_branch_cost.
11748 Use AUTOPREFETCHER_WEAK.
11749 (cortexa73_tunings): Use cortexa57_branch_cost.
11751 2016-06-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11752 James Greenhalgh <james.greenhalgh@arm.com>
11754 * config/aarch64/arm_neon.h (vcopyq_lane_f32, vcopyq_lane_f64,
11755 vcopyq_lane_p8, vcopyq_lane_p16, vcopyq_lane_s8, vcopyq_lane_s16,
11756 vcopyq_lane_s32, vcopyq_lane_s64, vcopyq_lane_u8, vcopyq_lane_u16,
11757 vcopyq_lane_u32, vcopyq_lane_u64): Reimplement in C.
11758 (vcopy_lane_f32, vcopy_lane_f64, vcopy_lane_p8, vcopy_lane_p16,
11759 vcopy_lane_s8, vcopy_lane_s16, vcopy_lane_s32, vcopy_lane_s64,
11760 vcopy_lane_u8, vcopy_lane_u16, vcopy_lane_u32, vcopy_lane_u64,
11761 vcopy_laneq_f32, vcopy_laneq_f64, vcopy_laneq_p8, vcopy_laneq_p16,
11762 vcopy_laneq_s8, vcopy_laneq_s16, vcopy_laneq_s32, vcopy_laneq_s64,
11763 vcopy_laneq_u8, vcopy_laneq_u16, vcopy_laneq_u32, vcopy_laneq_u64,
11764 vcopyq_laneq_f32, vcopyq_laneq_f64, vcopyq_laneq_p8, vcopyq_laneq_p16,
11765 vcopyq_laneq_s8, vcopyq_laneq_s16, vcopyq_laneq_s32, vcopyq_laneq_s64,
11766 vcopyq_laneq_u8, vcopyq_laneq_u16, vcopyq_laneq_u32, vcopyq_laneq_u64):
11769 2016-06-30 James Greenhalgh <james.greenhalgh@arm.com>
11770 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11772 * config/aarch64/aarch64-simd.md (*aarch64_simd_vec_copy_lane<mode>):
11774 (*aarch64_simd_vec_copy_lane_<vswap_width_name><mode>): Likewise.
11776 2016-06-30 David Malcolm <dmalcolm@redhat.com>
11779 * gcc.c (driver::build_option_suggestions): Pass "option" to
11780 add_misspelling_candidates.
11781 * opts-common.c (add_misspelling_candidates): Add "option" param;
11782 use it to avoid adding negated forms for options marked with
11784 * opts.h (add_misspelling_candidates): Add "option" param.
11786 2016-06-30 Jakub Jelinek <jakub@redhat.com>
11788 PR middle-end/71693
11789 * fold-const.c (fold_binary_loc) <case RROTATE_EXPR>: Cast
11790 TREE_OPERAND (arg0, 0) and TREE_OPERAND (arg0, 1) to type
11791 first when permuting bitwise operation with rotate. Cast
11792 TREE_OPERAND (arg0, 0) to type when cancelling two rotations.
11794 2016-06-29 David Malcolm <dmalcolm@redhat.com>
11796 * opts.c (handle_param): Use find_param_fuzzy to offer suggestions
11797 for misspelled param names.
11798 * params.c: Include spellcheck.h.
11799 (find_param_fuzzy): New function.
11800 * params.h (find_param_fuzzy): New prototype.
11801 * spellcheck.c (struct edit_distance_traits<const char *>): Move to...
11802 * spellcheck.h (struct edit_distance_traits<const char *>):
11805 2016-06-29 Michael Meissner <meissner@linux.vnet.ibm.com>
11807 * config/rs6000/predicates.md (const_0_to_7_operand): New
11808 predicate, recognize 0..7.
11809 * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
11810 support for doing extracts from V16QImode, V8HImode, V4SImode
11812 * config/rs6000/vsx.md (VSX_EXTRACT_I): Mode iterator for ISA 3.0
11813 vector extract support.
11814 (VSX_EXTRACT_PREDICATE): Mode attribute to validate element number
11815 for ISA 3.0 vector extract.
11816 (VSX_EX): Constraints to use for ISA 3.0 vector extract.
11817 (vsx_extract_<mode>, VSX_EXTRACT_I): Add support for doing
11818 extracts of a constant element number from small integer vectors
11819 on 64-bit ISA 3.0 systems.
11820 (vsx_extract_<mode>_di): Likewise.
11821 * config/rs6000/rs6000.h (TARGET_VEXTRACTUB): New target macro to
11822 say when we can do ISA 3.0 vector extracts.
11823 * config/rs6000/rs6000.md (stfiwx): Allow DImode in Altivec
11824 registers, using the stxsiwx instruction.
11826 2016-06-29 Jim Wilson <jim.wilson@linaro.org>
11828 * config/aarch64/aarch64-cores.def (qdf24xx): Use qdf24xx tuning.
11829 * config/aarch64/aarch64.c (qdf24xx_addrcost_table,
11830 qdf24xx_regmove_cost, qdf24xx_tunings): New.
11831 * config/arm/aarch64-cost-tables.h (qdf24xx_extra_costs): New.
11832 * config/arm/arm-cores.def (qdf24xx): Use qdf24xx tuning.
11833 * config/arm/arm.c (arm_qdf24xx_tune): New.
11835 2016-06-29 Wilco Dijkstra <wdijkstr@arm.com>
11837 * config/aarch64/aarch64.c (cortexa53_tunings):
11838 Increase loop alignment to 8. Set function alignment to 16.
11839 (cortexa35_tunings): Likewise.
11840 (cortexa57_tunings): Increase loop alignment to 8.
11841 (cortexa72_tunings): Likewise.
11842 (cortexa73_tunings): Likewise.
11844 2016-06-29 Matthew Wahab <matthew.wahab@arm.com>
11846 * doc/sourcebuild.texi (Effective-Target keywords): Add entries
11847 for arm_fp16_ok and arm_fp16_hw.
11848 (Add Options): Add entries for arm_fp16, arm_fp16_ieee and
11849 arm_fp16_alternative.
11851 2016-06-29 Ilya Enkovich <ilya.enkovich@intel.com>
11853 PR tree-optimization/71655
11854 * tree-vect-stmts.c (vectorizable_comparison): Swap definition
11855 types when swapping operands.
11857 2016-06-29 Martin Liska <mliska@suse.cz>
11859 PR middle-end/71585
11860 * common.opt (flag_stack_protect): Mark the flag as optimization flag.
11861 * ipa-inline-transform.c (inline_call): Remove unnecessary call
11862 of build_optimization_node.
11864 2016-06-29 Yuri Rumyantsev <ysrumyan@gmail.com>
11866 PR tree-optimization/70729
11867 * tree-ssa-loop-im.c (ref_indep_loop_p_1): Consider memory reference as
11868 independent in loops having positive safelen value.
11869 * tree-vect-loop.c (vect_transform_loop): Clear-up safelen value since
11870 it may be not valid after vectorization.
11872 2016-06-29 Jakub Jelinek <jakub@redhat.com>
11874 PR tree-optimization/71625
11875 * tree-ssa-strlen.c (get_addr_stridx): Add PTR argument. Assume list
11876 is sorted by ascending list->offset. If PTR is non-NULL and there is
11877 previous strinfo, call get_stridx_plus_constant.
11878 (get_stridx): Pass exp as second argument to get_addr_stridx.
11879 (addr_stridxptr): Add missing list = list->next, so that there can be
11880 more than one entries in the list. Bump limit from 16 to 32. Ensure
11881 the list is sorted by ascending list->offset.
11882 (get_stridx_plus_constant): Adjust so that it can be also called with
11883 ADDR_EXPR instead of SSA_NAME as PTR.
11884 (handle_char_store): Pass NULL_TREE as second argument to
11887 2016-06-29 Richard Biener <rguenther@suse.de>
11889 PR rtl-optimization/68961
11890 * simplify-rtx.c (simplify_subreg): Handle VEC_CONCAT like CONCAT.
11892 2016-06-29 Richard Biener <rguenther@suse.de>
11894 PR middle-end/71002
11895 * alias.c (component_uses_parent_alias_set_from): Handle
11896 type punning through union accesses by using the union alias set.
11897 * gimple.c (gimple_get_alias_set): Remove union type punning case.
11899 2016-07-29 Richard Biener <rguenther@suse.de>
11901 * match.pd ((T)(T2)x -> (T)x): Remove restriction on final
11902 precision not matching mode precision.
11904 2016-06-28 John David Anglin <danglin@gcc.gnu.org>
11906 * config/pa/pa.md (call_symref_64bit_post_reload): Don't call
11907 pa_output_arg_descriptor.
11908 (call_val_symref_64bit_post_reload): Likewise.
11909 (call_val_powf_64bit_post_reload): Likewise.
11910 (sibcall_internal_symref_64bit): Likewise.
11911 (sibcall_value_internal_symref_64bit): Likewise.
11913 2016-06-28 Jakub Jelinek <jakub@redhat.com>
11915 PR middle-end/71626
11916 * config/i386/i386.c (ix86_expand_vector_move): For SUBREG of
11917 a constant, force its SUBREG_REG into memory or register instead
11920 2016-06-28 Pitchumani Sivanupandi <pitchumani.s@atmel.com>
11923 * config/avr/avr.opt (-mfract-convert-truncate): Update description.
11924 * doc/invoke.texi (AVR Options): Document it.
11926 2016-06-28 Walter Lee <walt@tilera.com>
11928 * config/tilegx/linux.h: Do not include arch/icache.h
11929 (CLEAR_INSN_CACHE): Provide inlined definition directly.
11930 * config/tilepro/linux.h: Do not include arch/icache.h
11931 (CLEAR_INSN_CACHE): Provide inlined definition directly.
11933 2016-06-28 Wilco Dijkstra <wdijkstr@arm.com>
11935 * tree-ssa-math-opts.c (find_bswap_or_nop_1): Adjust bitnumbering
11936 for big-endian BIT_FIELD_REF.
11938 2016-06-28 Pat Haugen <pthaugen@us.ibm.com>
11940 * config/rs6000/rs6000.md ('type' attribute): Add htmsimple/dfp types.
11941 ('size' attribute): Add '128'.
11943 (*mov<mode>_hardfloat32, *mov<mode>_hardfloat64, *movdi_internal32,
11944 *movdi_internal64, *movdf_update1): Set size attribute to '64'.
11945 (add<mode>3, sub<mode>3, mul<mode>3, div<mode>3, sqrt<mode>2,
11946 copysign<mode>3, neg<mode>2_hw, abs<mode>2_hw, *nabs<mode>2_hw,
11947 *fma<mode>4_hw, *fms<mode>4_hw, *nfma<mode>4_hw, *nfms<mode>4_hw,
11948 extend<SFDF:mode><IEEE128:mode>2_hw, trunc<mode>df2_hw,
11949 *xscvqp<su>wz_<mode>, *xscvqp<su>dz_<mode>, *xscv<su>dqp_<mode>,
11950 *trunc<mode>df2_odd): Set size attribute to '128'.
11951 (*cmp<mode>_hw): Change type to veccmp and set size attribute to '128'.
11952 * config/rs6000/power6.md (power6-fp): Include dfp type.
11953 * config/rs6000/power7.md (power7-fp): Likewise.
11954 * config/rs6000/power8.md (power8-fp): Likewise.
11955 * config/rs6000/power9.md: New file.
11956 * config/rs6000/t-rs6000 (MD_INCLUDES): Add power9.md.
11957 * config/rs6000/htm.md (*tabort, *tabort<wd>c, *tabort<wd>ci,
11958 *trechkpt, *treclaim, *tsr, *ttest): Change type attribute to
11960 * config/rs6000/dfp.md (extendsddd2, truncddsd2, extendddtd2,
11961 trunctddd2, adddd3, addtd3, subdd3, subtd3, muldd3, multd3, divdd3,
11962 divtd3, *cmpdd_internal1, *cmptd_internal1, floatdidd2, floatditd2,
11963 ftruncdd2, fixdddi2, ftrunctd2, fixtddi2, dfp_ddedpd_<mode>,
11964 dfp_denbcd_<mode>, dfp_dxex_<mode>, dfp_diex_<mode>, dfp_dscli_<mode>,
11965 dfp_dscri_<mode>): Change type attribute to dfp.
11966 * config/rs6000/crypto.md (crypto_vshasigma<CR_char>): Change type
11967 attribute to vecsimple.
11968 * config/rs6000/rs6000.c (power9_cost): Update costs, cache size
11969 and prefetch streams.
11970 (rs6000_option_override_internal): Remove temporary code setting
11971 tuning to power8. Don't set rs6000_sched_groups for power9.
11972 (last_scheduled_insn): Change to rtx_insn *.
11973 (divide_cnt, vec_load_pendulum): New variables.
11974 (rs6000_adjust_cost): Add Power9 to test for store->load separation.
11975 (rs6000_issue_rate): Set issue rate for Power9.
11976 (is_power9_pairable_vec_type): New.
11977 (power9_sched_reorder2): New.
11978 (rs6000_sched_reorder2): Call new function for Power9 specific
11980 (insn_must_be_first_in_group): Remove Power9.
11981 (insn_must_be_last_in_group): Likewise.
11982 (force_new_group): Likewise.
11983 (rs6000_sched_init): Fix initialization of last_scheduled_insn.
11984 Initialize divide_cnt/vec_load_pendulum.
11985 (_rs6000_sched_context, rs6000_init_sched_context,
11986 rs6000_set_sched_context): Handle context save/restore of new
11989 2016-06-28 Richard Biener <rguenther@suse.de>
11991 * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p):
11992 Properly handle DECL_BIT_FIELD_REPRESENTATIVE occuring as
11993 COMPONENT_REF operand.
11994 (nonoverlapping_component_refs_p): Likewise.
11995 * stor-layout.c (start_bitfield_representative): Mark
11996 DECL_BIT_FIELD_REPRESENTATIVE as DECL_NONADDRESSABLE_P.
11998 2016-06-28 Jakub Jelinek <jakub@redhat.com>
12000 * Makefile.in: Don't cat ../stage_current if it does not exist.
12002 * doc/extend.texi (__builtin_add_overflow_p): Clarify behavior when
12003 last argument is a bit-field.
12005 PR rtl-optimization/71673
12006 * internal-fn.c (expand_arith_overflow_result_store): Use
12007 OPTAB_LIB_WIDEN instead of OPTAB_DIRECT as last argument to
12008 expand_simple_binop.
12010 PR middle-end/66867
12011 * builtins.c (expand_ifn_atomic_compare_exchange_into_call,
12012 expand_ifn_atomic_compare_exchange): New functions.
12013 * internal-fn.c (expand_ATOMIC_COMPARE_EXCHANGE): New function.
12014 * tree.h (build_call_expr_internal_loc): Rename to ...
12015 (build_call_expr_internal_loc_array): ... this. Fix up type of
12017 * internal-fn.def (ATOMIC_COMPARE_EXCHANGE): New internal fn.
12018 * predict.c (expr_expected_value_1): Handle IMAGPART_EXPR of
12019 ATOMIC_COMPARE_EXCHANGE result.
12020 * builtins.h (expand_ifn_atomic_compare_exchange): New prototype.
12021 * gimple-fold.h (optimize_atomic_compare_exchange_p,
12022 fold_builtin_atomic_compare_exchange): New prototypes.
12023 * gimple-fold.c (optimize_atomic_compare_exchange_p,
12024 fold_builtin_atomic_compare_exchange): New functions..
12025 * tree-ssa.c (execute_update_addresses_taken): If
12026 optimize_atomic_compare_exchange_p, ignore &var in 2nd argument
12027 of call when finding addressable vars, and if such var becomes
12028 non-addressable, call fold_builtin_atomic_compare_exchange.
12030 2016-06-27 Segher Boessenkool <segher@kernel.crashing.org>
12033 * config/rs6000/rs6000.md (ashdi3_extswsli_dot): Use
12034 gen_ashdi3_extswsli_dot2 instead of gen_ashdi3_extswsli_dot.
12036 2016-06-27 Pat Haugen <pthaugen@us.ibm.com>
12038 * config/rs6000/rs6000.md ('type' attribute): Add
12039 veclogical,veccmpfx,vecexts,vecmove insn types.
12040 (*abs<mode>2_fpr, *nabs<mode>2_fpr, *neg<mode>2_fpr, *extendsfdf2_fpr,
12041 copysign<mode>3_fcpsgn, trunc<mode>df2_internal1, neg<mode>2_internal,
12042 p8_fmrgow_<mode>, pack<mode>): Change type to fpsimple.
12043 (*xxsel<mode>, copysign<mode>3_hard, neg<mode>2_hw, abs<mode>2_hw,
12044 *nabs<mode>2_hw): Change type to vecmove.
12045 (*and<mode>3_internal, *bool<mode>3_internal, *boolc<mode>3_internal,
12046 *boolcc<mode>3_internal, *eqv<mode>3_internal,
12047 *one_cmpl<mode>3_internal, *ieee_128bit_vsx_neg<mode>2_internal,
12048 *ieee_128bit_vsx_abs<mode>2_internal,
12049 *ieee_128bit_vsx_nabs<mode>2_internal, extendkftf2, trunctfkf2,
12050 *ieee128_mfvsrd_64bit, *ieee128_mfvsrd_32bit, *ieee128_mtvsrd_64bit,
12051 *ieee128_mtvsrd_32bit): Change type to veclogical.
12052 (mov<mode>_hardfloat, *mov<mode>_hardfloat32, *mov<mode>_hardfloat64,
12053 *movdi_internal32, *movdi_internal64): Update insn types.
12054 * config/rs6000/vsx.md (*vsx_le_undo_permute_<mode>,
12055 vsx_extract_<mode>): Change type to veclogical.
12056 (*vsx_xxsel<mode>, *vsx_xxsel<mode>_uns): Change type to vecmove.
12057 (vsx_sign_extend_qi_<mode>, *vsx_sign_extend_hi_<mode>,
12058 *vsx_sign_extend_si_v2di): Change type to vecexts.
12059 * config/rs6000/altivec.md (*altivec_mov<mode>, *altivec_movti): Change
12060 type to veclogical.
12061 (*altivec_eq<mode>, *altivec_gt<mode>, *altivec_gtu<mode>,
12062 *altivec_vcmpequ<VI_char>_p, *altivec_vcmpgts<VI_char>_p,
12063 *altivec_vcmpgtu<VI_char>_p): Change type to veccmpfx.
12064 (*altivec_vsel<mode>, *altivec_vsel<mode>_uns): Change type to vecmove.
12065 * config/rs6000/dfp.md (*negdd2_fpr, *absdd2_fpr, *nabsdd2_fpr,
12066 negtd2, *abstd2_fpr, *nabstd2_fpr): Change type to fpsimple.
12067 * config/rs6000/40x.md (ppc405-float): Add fpsimple.
12068 * config/rs6000/440.md (ppc440-fp): Add fpsimple.
12069 * config/rs6000/476.md (ppc476-fp): Add fpsimple.
12070 * config/rs6000/601.md (ppc601-fp): Add fpsimple.
12071 * config/rs6000/603.md (ppc603-fp): Add fpsimple.
12072 * config/rs6000/6xx.md (ppc604-fp): Add fpsimple.
12073 * config/rs6000/7xx.md (ppc750-fp): Add fpsimple.
12074 (ppc7400-vecsimple): Add veclogical, vecmove, veccmpfx.
12075 * config/rs6000/7450.md (ppc7450-fp): Add fpsimple.
12076 (ppc7450-vecsimple): Add veclogical, vecmove.
12077 (ppc7450-veccmp): Add veccmpfx.
12078 * config/rs6000/8540.md (ppc8540_simple_vector): Add veclogical,
12080 (ppc8540_vector_compare): Add veccmpfx.
12081 * config/rs6000/a2.md (ppca2-fp): Add fpsimple.
12082 * config/rs6000/cell.md (cell-fp): Add fpsimple.
12083 (cell-vecsimple): Add veclogical, vecmove.
12084 (cell-veccmp): Add veccmpfx.
12085 * config/rs6000/e300c2c3.md (ppce300c3_fp): Add fpsimple.
12086 * config/rs6000/e6500.md (e6500_vecsimple): Add veclogical, vecmove,
12088 * config/rs6000/mpc.md (mpccore-fp): Add fpsimple.
12089 * config/rs6000/power4.md (power4-fp): Add fpsimple.
12090 (power4-vecsimple): Add veclogical, vecmove.
12091 (power4-veccmp): Add veccmpfx.
12092 * config/rs6000/power5.md (power5-fp): Add fpsimple.
12093 * config/rs6000/power6.md (power6-fp): Add fpsimple.
12094 (power6-vecsimple): Add veclogical, vecmove.
12095 (power6-veccmp): Add veccmpfx.
12096 * config/rs6000/power7.md (power7-fp): Add fpsimple.
12097 (power7-vecsimple): Add veclogical, vecmove, veccmpfx.
12098 * config/rs6000/power8.md (power8-fp): Add fpsimple.
12099 (power8-vecsimple): Add veclogical, vecmove, veccmpfx.
12100 * config/rs6000/rs64.md (rs64a-fp): Add fpsimple.
12101 * config/rs6000/titan.md (titan_fp): Add fpsimple.
12102 * config/rs6000/xfpu.md (fp-default, fp-addsub-s, fp-addsub-d): Add
12104 * config/rs6000/rs6000.c (rs6000_adjust_cost): Add TYPE_FPSIMPLE.
12106 2016-06-27 Peter Bergner <bergner@vnet.ibm.com>
12109 * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Add
12110 OPTION_MASK_P9_DFORM_VECTOR.
12111 * config/rs6000/rs6000.c (rs6000_option_override_internal): Do not
12112 disable -mpower9-dform-vector when using reload.
12113 (quad_address_p): Remove 'gpr_p' argument and all associated code.
12114 New 'strict' argument. Update all callers. Add strict addressing
12116 (rs6000_legitimate_offset_address_p): Remove call to
12117 virtual_stack_registers_memory_p.
12118 (rs6000_legitimize_reload_address): Add quad address support.
12119 (rs6000_legitimate_address_p): Move call to quad_address_p above
12120 call to virtual_stack_registers_memory_p. Adjust quad_address_p args
12121 to account for new strict usage.
12122 (rs6000_output_move_128bit): Adjust quad_address_p args to account
12123 for new strict usage.
12124 * config/rs6000/predicates.md (quad_memory_operand): Likewise.
12126 2016-06-26 Uros Bizjak <ubizjak@gmail.com>
12133 * config/i386/i386.c (ix86_spill_class): Disable condition to
12134 always return NO_REGS.
12136 2016-06-26 Jan Hubicka <hubicka@ucw.cz>
12138 * predict.c: Include gimple-pretty-print.h
12139 (predicted_by_loop_heuristics_p): Check also
12140 PRED_LOOP_EXIT_WITH_RECURSION
12141 (predict_loops): Find self recursive calls and use special purpose
12142 predictors for them; dump log about decisions.
12143 (pass_profile::execute): Dump info about #of iterations.
12144 * predict.def (PRED_LOOP_EXIT_WITH_RECURSION,
12145 (PRED_LOOP_GUARD_WITH_RECURSION): New predictors.
12147 2016-06-26 John David Anglin <danglin@gcc.gnu.org>
12149 * config/pa/pa.c (pa_output_indirect_call): Rework to combine
12150 output_asm_insn calls and shorten long lines. Output .CALL
12151 argument descriptor using pa_output_arg_descriptor. Add various
12152 inline $$dyncall and other optimizations.
12153 (pa_attr_length_indirect_call): Adjust ordering and lengths.
12155 2016-06-25 Jakub Jelinek <jakub@redhat.com>
12157 PR tree-optimization/71643
12158 * tree-ssa-tail-merge.c (find_clusters_1): Ignore basic blocks with
12161 * tree-ssa-tail-merge.c (deps_ok_for_redirect_from_bb_to_bb): Don't
12162 leak a bitmap if dep_bb is NULL.
12164 PR tree-optimization/71631
12165 * tree-ssa-reassoc.c (reassociate_bb): Pass true as last argument
12166 to rewrite_expr_tree even if negate_result, move new_lhs var
12167 declaration and initialization earlier, for powi_result set afterwards
12168 new_lhs to lhs. For negate_result, use new_lhs instead of tmp
12169 if new_lhs != lhs, and don't shadow gsi var.
12171 2016-06-24 Jan Hubicka <hubicka@ucw.cz>
12173 * predict.c (predict_paths_leading_to, predict_paths_leading_to_edge):
12174 Add in_loop parameter.
12175 (predict_loops): Add loop guard heuristics.
12176 * predict.def (PRED_LOOP_GUARD): New heuristics.
12178 2016-06-24 Jan Hubicka <hubicka@ucw.cz>
12180 * predict.c: Include ipa-utils.h
12181 (tree_bb_level_prediction): Predict recursive calls.
12182 (tree_estimate_probability_bb): Skip inexpensive calls for call
12184 * predict.def (PRED_RECURSIVE_CALL): New.
12186 2016-06-24 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12188 * config/rs6000/rs6000-builtin.def (BU_FLOAT128_2): New #define.
12189 (BU_FLOAT128_1): Likewise.
12191 (COPYSIGNQ): Likewise.
12192 (RS6000_BUILTIN_NANQ): Likewise.
12193 (RS6000_BUILTIN_NANSQ): Likewise.
12194 (RS6000_BUILTIN_INFQ): Likewise.
12195 (RS6000_BUILTIN_HUGE_VALQ): Likewise.
12196 * config/rs6000/rs6000.c (rs6000_fold_builtin): New prototype.
12197 (TARGET_FOLD_BUILTIN): New #define.
12198 (rs6000_builtin_mask_calculate): Add TARGET_FLOAT128 entry.
12199 (rs6000_invalid_builtin): Add handling for RS6000_BTM_FLOAT128.
12200 (rs6000_fold_builtin): New target hook implementation, handling
12201 folding of 128-bit NaNs and infinities.
12202 (rs6000_init_builtins): Initialize const_str_type_node; ensure all
12203 entries are filled in to avoid problems during bootstrap
12204 self-test; define builtins for 128-bit NaNs and infinities.
12205 (rs6000_opt_mask): Add entry for float128.
12206 * config/rs6000/rs6000.h (RS6000_BTM_FLOAT128): New #define.
12207 (RS6000_BTM_COMMON): Include RS6000_BTM_FLOAT128.
12208 (rs6000_builtin_type_index): Add RS6000_BTI_const_str.
12209 (const_str_type_node): New #define.
12210 * config/rs6000/rs6000.md (copysign<mode>3 for IEEE128): Convert
12211 to a define_expand that dispatches to either copysign<mode>3_soft
12212 or copysign<mode>3_hard.
12213 (copysign<mode>3_hard): Rename from copysign<mode>3.
12214 (copysign<mode>3_soft): New define_insn.
12215 * doc/extend.texi: Document new builtins.
12217 2016-06-24 Jakub Jelinek <jakub@redhat.com>
12219 * cfgloop.c (flow_loop_dump): Cast nit to uint64_t and print it using
12220 PRIu64 instead of lu.
12222 2016-06-24 Eric Botcazou <ebotcazou@adacore.com>
12225 * tree-inline.c (remap_decl): When fixing up DECL_ORIGINAL_TYPE, just
12226 copy the type name.
12228 2016-06-24 Jakub Jelinek <jakub@redhat.com>
12230 PR tree-optimization/71647
12231 * omp-low.c (lower_rec_input_clauses): Convert
12232 omp_clause_aligned_alignment (c) to size_type_node for the
12233 last argument of __builtin_assume_aligned.
12235 2016-06-24 H.J. Lu <hongjiu.lu@intel.com>
12237 * configure.ac (calling ___tls_get_addr via GOT): New
12238 assembler/linker check.
12239 (HAVE_AS_IX86_TLS_GET_ADDR_GOT): New. Defined to 1 if 32-bit
12240 assembler and linker supports calling ___tls_get_addr via GOT.
12241 Otherise, defined to 0.
12242 * config.in: Regenerated.
12243 * configure: Likewise.
12244 * config/i386/constraints.md (Yb): New constraint.
12245 * config/i386/i386.h (reg_class): Add TLS_GOTBASE_REGS.
12246 (REG_CLASS_NAMES): Likewise.
12247 (REG_CLASS_CONTENTS): Likewise.
12248 * config/i386/i386.md (*tls_global_dynamic_32_gnu): Replace
12249 the b constraint with the Yb constraint. Call ___tls_get_addr
12250 via GOT for GNU TLS with -fno-plt if HAVE_AS_IX86_TLS_GET_ADDR_GOT
12252 (*tls_local_dynamic_base_32_gnu): Likewise.
12253 (*tls_global_dynamic_64_<mode>): Call _tls_get_addr via GOT for
12254 GNU TLS with -fno-plt if HAVE_AS_IX86_TLS_GET_ADDR_GOT is 1.
12255 (*tls_local_dynamic_base_64_<mode>): Likewise.
12257 2016-06-24 Martin Liska <mliska@suse.cz>
12259 * cfgloop.c (flow_loop_dump): Dump average number of loop iterations.
12260 * cfgloop.h: Change 'struct loop' to 'const struct loop' for a
12262 * cfgloopanal.c (expected_loop_iterations_unbounded): Set a new
12263 argument to true if the expected number of iterations is
12266 2016-06-24 Uros Bizjak <ubizjak@gmail.com>
12268 * configure.ac (HAVE_AS_GOTOF_IN_DATA): Use $as_ix86_gas_32_opt to
12269 assemble for 32bit target.
12270 (HAVE_AS_IX86_TLSGDPLT): Use $as_ix86_gas_32_opt to assemble
12271 and $ld_ix86_gld_32_opt to link for 32bit target.
12272 (HAVE_AS_IX86_TLSLDMPLT): Ditto.
12273 * configure: Regenerate.
12275 2016-06-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12277 * config/arm/arm.c (int_log2): Delete definition and prototype.
12278 (shift_op): Use exact_log2 instead of int_log2.
12279 (vfp3_const_double_for_fract_bits): Likewise.
12281 2016-06-24 Jakub Jelinek <jakub@redhat.com>
12283 * internal-fn.c (expand_arith_set_overflow): New function.
12284 (expand_addsub_overflow, expand_neg_overflow, expand_mul_overflow):
12286 (expand_arith_overflow_result_store): Likewise. Handle precision
12287 smaller than mode precision.
12288 * tree-vrp.c (extract_range_basic): For imag part, handle
12289 properly signed 1-bit precision result.
12290 * doc/extend.texi (__builtin_add_overflow): Document that last
12291 argument can't be pointer to enumerated or boolean type.
12292 (__builtin_add_overflow_p): Document that last argument can't
12293 have enumerated or boolean type.
12295 2016-06-23 Michael Meissner <meissner@linux.vnet.ibm.com>
12296 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12298 * config/rs6000/predicates.md (splat_input_operand): Rework.
12299 Don't allow constants, since the insns that use this predicate
12300 don't support constants. Constants are handled by other insns
12301 that are created via combine. During and after register
12302 allocation, only allow indexed or indirect addresses, and not
12303 general addresses. Only allow modes supported by the hardware.
12304 * config/rs6000/rs6000.c (xxsplitb_constant_p): Update usage
12305 comment. Move check for using VSPLTIS<x> to a common location,
12306 instead of doing it in two different places.
12308 2016-06-23 Jocelyn Mayer <l_indien@magic.fr>
12310 * config/i386/driver-i386.c (host_detect_local_cpu): Set
12311 PROCESSOR_PENTIUMPRO for signature_CENTAUR_ebx family >= 9.
12312 <case PROCESSOR_PENTIMUMPRO>: Pass c7 or nehemiah for
12313 signature_CENTAUR_ebx.
12315 2016-06-23 H.J. Lu <hongjiu.lu@intel.com>
12319 * configure.ac (as_ix86_tls_ldm_opt): Renamed to ...
12320 (as_ix86_gas_32_opt): This.
12321 (ld_ix86_tls_ldm_opt): Renamed to ...
12322 (ld_ix86_gld_32_opt): This.
12323 (R_386_TLS_LDM reloc): Updated.
12324 (R_386_GOT32X reloc): New assembler/linker check.
12325 (HAVE_AS_IX86_GOT32X): New. Defined to 1 if 32-bit assembler and
12326 linker support "jmp *_start@GOT" and "cmpl $0, bar@GOT". Otherise,
12328 * config.in: Regenerated.
12329 * configure: Likewise.
12330 * config/i386/i386.c (ix86_force_load_from_GOT_p): Return
12331 true if HAVE_AS_IX86_GOT32X is 1 in 32-bit mode.
12332 (ix86_legitimate_address_p): Allow UNSPEC_GOT for -fno-plt
12333 if ix86_force_load_from_GOT_p returns true.
12334 (ix86_print_operand_address_as): Also support UNSPEC_GOT if
12335 ix86_force_load_from_GOT_p returns true.
12336 (ix86_expand_move): Generate UNSPEC_GOT in 32-bit mode to load
12337 the external function address via the GOT slot.
12338 (ix86_nopic_noplt_attribute_p): Check both TARGET_64BIT and
12339 HAVE_AS_IX86_GOT32X before returning false.
12340 (ix86_output_call_insn): Generate "%!jmp/call\t*%p0@GOT" in
12341 32-bit mode if ix86_nopic_noplt_attribute_p returns true.
12343 2016-06-23 Eric Botcazou <ebotcazou@adacore.com>
12345 * tree-inline.c (remap_decl): Preserve DECL_ORIGINAL_TYPE invariant.
12347 2016-06-23 Andi Kleen <ak@linux.intel.com>
12349 * Makefile.in: Regenerate.
12350 * doc/install.texi: Document autoprofiledbootstrap.
12352 2016-06-23 Andi Kleen <ak@linux.intel.com>
12354 * config/i386/gcc-auto-profile: New file.
12356 2016-06-23 Martin Liska <mliska@suse.cz>
12358 PR middle-end/71619
12359 * predict.c (predict_loops): Revert the hunk that was removed
12362 2016-06-23 Jakub Sejdak <jakub.sejdak@phoesys.com>
12364 * config.gcc: Add support for arm*-*-phoenix* targets.
12365 * config/arm/t-phoenix: New.
12366 * config/phoenix.h: New.
12368 2016-06-23 Uros Bizjak <ubizjak@gmail.com>
12369 H.J. Lu <hongjiu.lu@intel.com>
12372 * config/i386/i386-protos.h (ix86_force_load_from_GOT_p): New.
12373 * config/i386/i386.c (ix86_force_load_from_GOT_p): New function.
12374 (ix86_legitimate_constant_p): Do not allow UNSPEC_GOTPCREL if
12375 ix86_force_load_from_GOT_p returns true.
12376 (ix86_legitimate_address_p): Allow UNSPEC_GOTPCREL if
12377 ix86_force_load_from_GOT_p returns true.
12378 (ix86_print_operand_address_as): Support UNSPEC_GOTPCREL if
12379 ix86_force_load_from_GOT_p returns true.
12380 (ix86_expand_move): Load the external function address via the
12381 GOT slot if ix86_force_load_from_GOT_p returns true.
12382 * config/i386/predicates.md (x86_64_immediate_operand): Return
12383 false for SYMBOL_REFs where ix86_force_load_from_GOT_p returns true.
12384 (x86_64_zext_immediate_operand): Ditto.
12386 2016-06-22 Uros Bizjak <ubizjak@gmail.com>
12388 * config/i386/i386.c (ix86_expand_move): Simplify SYMBOL_REF handling.
12390 2016-06-22 David Malcolm <dmalcolm@redhat.com>
12393 * diagnostic-core.h (pedwarn_at_rich_loc): New prototype.
12394 * diagnostic.c (pedwarn_at_rich_loc): New function.
12395 * spellcheck.h (best_match::best_match): Add a
12396 "best_distance_so_far" optional parameter.
12397 (best_match::set_best_so_far): New method.
12398 (best_match::get_best_distance): New accessor.
12399 (best_match::get_best_candidate_length): New accessor.
12401 2016-06-22 Nick Clifton <nickc@redhat.com>
12403 * dwarf2out.c (scompare_loc_descriptor): Use SCALAR_INT_MODE_P() in
12404 place of GET_MODE_CLASS() == MODE_INT, so that partial integer
12405 modes are accepted as well.
12406 (ucompare_loc_descriptor): Likewise.
12407 (minmax_loc_descriptor): Likewise.
12408 (clz_loc_descriptor): Likewise.
12409 (popcount_loc_descriptor): Likewise.
12410 (bswap_loc_descriptor): Likewise.
12411 (rotate_loc_descriptor): Likewise.
12412 (mem_loc_descriptor): Likewise.
12413 (loc_descriptor): Likewise.
12415 2016-06-22 David Malcolm <dmalcolm@redhat.com>
12417 * common.opt (fdiagnostics-parseable-fixits): New option.
12418 * diagnostic.c: Include "selftest.h".
12419 (print_escaped_string): New function.
12420 (print_parseable_fixits): New function.
12421 (diagnostic_report_diagnostic): Call print_parseable_fixits.
12422 (selftest::assert_print_escaped_string): New function.
12423 (ASSERT_PRINT_ESCAPED_STRING_STREQ): New macro.
12424 (selftest::test_print_escaped_string): New function.
12425 (selftest::test_print_parseable_fixits_none): New function.
12426 (selftest::test_print_parseable_fixits_insert): New function.
12427 (selftest::test_print_parseable_fixits_remove): New function.
12428 (selftest::test_print_parseable_fixits_replace): New function.
12429 (selftest::diagnostic_c_tests): New function.
12430 * diagnostic.h (struct diagnostic_context): Add field
12431 "parseable_fixits_p".
12432 * doc/invoke.texi (Diagnostic Message Formatting Options): Add
12433 -fdiagnostics-parseable-fixits.
12434 (-fdiagnostics-parseable-fixits): New option.
12435 * opts.c (common_handle_option): Handle
12436 -fdiagnostics-parseable-fixits.
12437 * selftest-run-tests.c (selftest::run_tests): Call
12438 selftest::diagnostic_c_tests.
12439 * selftest.h (selftest::diagnostic_c_tests): New prototype.
12441 2016-06-22 Ilya Enkovich <ilya.enkovich@intel.com>
12443 PR tree-optimization/71488
12444 * tree-vect-patterns.c (vect_recog_mask_conversion_pattern): Support
12445 comparison of boolean vectors.
12446 * tree-vect-stmts.c (vectorizable_comparison): Vectorize comparison
12447 of boolean vectors using bitwise operations.
12449 2016-06-22 Andreas Schwab <schwab@suse.de>
12451 * config/aarch64/aarch64-protos.h (aarch64_elf_asm_named_section):
12452 Remove declaration.
12454 2016-06-22 Eric Botcazou <ebotcazou@adacore.com>
12456 * function.c (assign_parm_setup_reg): Prevent sharing in another case.
12458 2016-06-22 Bernd Edlinger <bernd.edlinger@hotmail.de>
12460 * config/i386/i386.c (print_reg): Emit an error message on attempt to
12463 2016-06-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12465 * config/arm/arm.c (arm_cortex_a73_tune): New struct.
12466 * config/arm/arm-cores.def (cortex-a73): New entry.
12467 (cortex-a73.cortex-a35): Likewise.
12468 (cortex-a73.cortex-a53): Likewise.
12469 * config/arm/arm-tables.opt: Regenerate.
12470 * config/arm/arm-tune.md: Likewise.
12471 * config/arm/bpabi.h (BE8_LINK_SPEC): Handle mcpu=cortex-a73,
12472 mcpu=cortex-a73.cortex-a35 and mcpu=cortex-a73.cortex-a53.
12473 * config/arm/t-aprofile: Handle mcpu=cortex-a73,
12474 mcpu=cortex-a73.cortex-a35 and mcpu=cortex-a73.cortex-a53.
12475 * doc/invoke.texi (ARM Options): Document cortex-a73,
12476 cortex-a73.cortex-a35 and cortex-a73.cortex-a53.
12478 2016-06-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12480 * config/aarch64/aarch64.c (cortexa73_tunings): New struct.
12481 * config/aarch64/aarch64-cores.def (cortex-a73): New entry.
12482 (cortex-a73.cortex-a35): Likewise.
12483 (cortex-a73.cortex-a53): Likewise.
12484 * config/aarch64/aarch64-tune.md: Regenerate.
12485 * doc/invoke.texi (AArch64 Options): Document cortex-a73,
12486 cortex-a73.cortex-a35 and cortex-a73.cortex-a53 arguments to
12489 2016-06-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12491 * configure.ac (gcc_cv_as_compress_debug): Remove
12492 --compress-debug-sections as extra as switch.
12493 Handle gas --compress-debug-sections=type.
12494 (gcc_cv_ld_compess_debug): Remove bogus ld_date check.
12495 Handle gld --compress-debug-sections=type.
12496 * configure: Regenerate.
12498 2016-06-21 Andrew Burgess <andrew.burgess@embecosm.com>
12500 * bb-reorder.c (pass_partition_blocks::gate): Update comment.
12502 2016-06-21 John David Anglin <danglin@gcc.gnu.org>
12504 * gcov-tool.c (profile_rewrite): Use int64_t instead of long long.
12505 (do_rewrite): likewise.
12507 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
12509 * common/config/mep/mep-common.c: Remove.
12510 * config.gcc: Remove mep-* support.
12511 * config/mep/constraints.md: Remove.
12512 * config/mep/default.h: Remove.
12513 * config/mep/intrinsics.h: Remove.
12514 * config/mep/intrinsics.md: Remove.
12515 * config/mep/ivc2-template.h: Remove.
12516 * config/mep/mep-c5.cpu: Remove.
12517 * config/mep/mep-core.cpu: Remove.
12518 * config/mep/mep-default.cpu: Remove.
12519 * config/mep/mep-ext-cop.cpu: Remove.
12520 * config/mep/mep-intrin.h: Remove.
12521 * config/mep/mep-ivc2.cpu: Remove.
12522 * config/mep/mep-pragma.c: Remove.
12523 * config/mep/mep-protos.h: Remove.
12524 * config/mep/mep.c: Remove.
12525 * config/mep/mep.cpu: Remove.
12526 * config/mep/mep.h: Remove.
12527 * config/mep/mep.md: Remove.
12528 * config/mep/mep.opt: Remove.
12529 * config/mep/predicates.md: Remove.
12530 * config/mep/t-mep: Remove.
12531 * doc/install.texi: Remove mep-* documentation.
12532 * doc/md.texi: Likewise.
12534 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
12536 * config.gcc: Remove support for avr-rtems.
12537 * config/avr/gen-avr-mmcu-specs.c: Likewise.
12538 * config/avr/rtems.h: Remove.
12539 * config/avr/t-rtems: Remove.
12541 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
12543 * config.gcc: Remove m32r-rtems support.
12544 * config/m32r/rtems.h: Remove.
12546 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
12548 * config.gcc: Remove h8300-rtems support.
12549 * config/h8300/rtems.h: Remove.
12550 * config/h8300/t-rtems: Remove.
12552 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
12554 * config.gcc: Remove support for knetbsd.
12555 * configure.ac: Likewise.
12556 * config/i386/knetbsd-gnu.h: Remove. * config/i386/knetbsd-gnu64.h: Remove.
12557 * config/knetbsd-gnu.h: Remove.
12558 * configure: Regenerate.
12560 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
12562 * config.gcc: Remove support for openbsd 2 and 3.
12563 * config/openbsd-oldgas.h: Remove.
12565 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
12567 * config.gcc: Remove interix support.
12568 * config/i386/i386-interix.h: Remove.
12569 * config/i386/interix.opt: Remove.
12570 * config/i386/t-interix: Remove.
12571 * configure: Regenerate.
12572 * configure.ac: Remove interix support.
12573 * doc/install.texi: Remove interix documentation.
12575 2016-06-21 Kelvin Nilsen <kelvin@gcc.gnu.org>
12577 * config/rs6000/rs6000.h: Add conditional preprocessing directives
12578 to disable Power9-specific compiler features if HAVE_AS_POWER9 is
12581 2016-06-21 Eric Botcazou <ebotcazou@adacore.com>
12583 * tree.c (verify_type_variant): Skip TYPE_SIZE and TYPE_SIZE_UNIT if
12584 they are both PLACEHOLDER_EXPRs.
12586 2016-06-21 Michael Meissner <meissner@linux.vnet.ibm.com>
12588 * stor-layout.c (layout_type): Move setting complex MODE to
12589 layout_type, instead of setting it ahead of time by the caller.
12590 * tree.c (build_complex_type): Likewise.
12592 2016-06-21 Martin Liska <mliska@suse.cz>
12594 * predict.c (force_edge_cold): Replace imposisble with
12597 2016-06-21 Ilya Verbin <ilya.verbin@intel.com>
12599 * config/i386/i386.c (ix86_emit_swsqrtsf): Emit vrsqrt28ps.
12600 * config/i386/sse.md (define_expand "rsqrtv16sf2"): New.
12602 2016-06-21 Ilya Verbin <ilya.verbin@intel.com>
12604 * config/i386/i386.c (ix86_emit_swdivsf): Emit vrcp28ps.
12606 2016-06-21 H.J. Lu <hongjiu.lu@intel.com>
12607 Ilya Enkovich <ilya.enkovich@intel.com>
12610 * config/i386/i386.c (timode_scalar_chain::fix_debug_reg_uses):
12611 New member function to convert V1TImode register to SUBREG
12612 TImode in debug insn.
12613 (timode_scalar_chain::convert_insn): Call fix_debug_reg_uses
12614 after changing register mode to V1TImode.
12616 2016-06-21 Virendra Pathak <virendra.pathak@broadcom.com>
12618 * config/aarch64/aarch64-cores.def (vulcan): New core.
12619 * config/aarch64/aarch64-tune.md: Regenerate.
12620 * doc/invoke.texi: Document vulcan as an available option.
12622 2016-06-21 Eric Botcazou <ebotcazou@adacore.com>
12624 * cse.c (canon_asm_operands): New function extracted from...
12625 (canonicalize_insn): ...here. Call it to canonicalize an ASM_OPERANDS
12626 either standalone or member of a PARALLEL.
12628 2016-06-21 Georg-Johann Lay <avr@gjlay.de>
12631 * config/avr/gen-avr-mmcu-specs.c (print_mcu):
12632 [*link_data_start]: Wrap -Tdata into %{!Tdata:...}.
12633 [*link_text_start]: Wrap -Ttext into %{!Ttext:...}.
12635 2016-06-21 Georg-Johann Lay <avr@gjlay.de>
12638 * config/avr/avr.md (movqi): Only handle loading subreg:qi of
12639 constant addresses if can_create_pseudo_p.
12641 2016-06-21 Jakub Jelinek <jakub@redhat.com>
12643 PR tree-optimization/71588
12644 * tree-ssa-strlen.c (valid_builtin_call): New function.
12645 (adjust_last_stmt, handle_builtin_memset, strlen_optimize_stmt): Use
12648 2016-06-20 Jakub Jelinek <jakub@redhat.com>
12650 PR middle-end/71581
12651 * tree-ssa-uninit.c (warn_uninit): If EXPR and VAR are NULL,
12652 see if T isn't anonymous SSA_NAME with COMPLEX_EXPR created
12653 for conversion of scalar user var to complex type and use the
12654 underlying SSA_NAME_VAR in that case. If EXPR is still NULL,
12657 PR rtl-optimization/71591
12658 * toplev.c (toplev::run_self_tests): If no_backend, complain and
12659 don't run any tests.
12661 2016-06-20 Hans-Peter Nilsson <hp@axis.com>
12664 * config/cris/cris.c (cris_asm_output_mi_thunk): Add missing "ba"
12665 delay-slot "nop" for PIC with CRIS v32. Also add missing leading
12666 space for PIC with non-v32 and the common non-PIC "jump".
12668 2016-06-20 Jakub Jelinek <jakub@redhat.com>
12671 * config/i386/i386.c (ix86_fp_cmp_code_to_pcmp_immediate): Fix up
12672 returned values and add UN*/LTGT/*ORDERED cases with values matching
12673 D operand modifier on vcmp for AVX.
12675 2016-06-20 Wilco Dijkstra <wdijkstr@arm.com>
12677 * config/aarch64/aarch64.opt
12678 (mpc-relative-literal-loads): Rename internal option name.
12679 * config/aarch64/aarch64.c
12680 (aarch64_nopcrelative_literal_loads): Rename to
12681 aarch64_pcrelative_literal_loads.
12682 (aarch64_expand_mov_immediate): Likewise.
12683 (aarch64_secondary_reload): Likewise.
12684 (aarch64_can_use_per_function_literal_pools_p): Likewise.
12685 (aarch64_override_options_after_change_1): Rename and simplify logic.
12686 (aarch64_classify_symbol): Merge large model checks into switch,
12687 remove pc-relative load check.
12689 2016-06-20 James Greenhalgh <james.greenhalgh@arm.com>
12691 * config/arm/aarch-cost-tables.h (cortexa53_extra_costs): Make FP
12692 costs relative to the cost of a register move.
12694 2016-06-20 James Greenhalgh <james.greenhalgh@arm.com>
12696 * config/aarch64/arm_neon.h (vcvt_n_f64_s64): New.
12697 (vcvt_n_f64_u64): Likewise.
12698 (vcvt_n_s64_f64): Likewise.
12699 (vcvt_n_u64_f64): Likewise.
12700 (vcvt_f64_s64): Likewise.
12701 (vrecpe_f64): Likewise.
12702 (vcvt_f64_u64): Likewise.
12703 (vrecps_f64): Likewise.
12705 2016-06-20 James Greenhalgh <james.greenhalgh@arm.com>
12707 * config/aarch64/aarch64.md
12708 (<FCVT_F2FIXED:fcvt_fixed_insn><GPF:mode>3): Add attributes to
12710 (<FCVT_FIXED2F:fcvt_fixed_insn><GPI:mode>3): Likewise. Correct
12712 * config/aarch64/aarch64-builtins.c
12713 (aarch64_types_binop_uss_qualifiers): Delete.
12714 (TYPES_BINOP_USS): Likewise.
12715 (aarch64_types_binop_sus_qualifiers): Likewise.
12716 (TYPES_BINOP_SUS): Likewise.
12717 (aarch64_types_fcvt_from_unsigned_qualifiers): New.
12718 (TYPES_FCVTIMM_SUS): Likewise.
12719 * config/aarch64/aarch64-simd-builtins.def (scvtf): Use SHIFTIMM
12721 (ucvtf): Use FCVTIMM_SUS rather than BINOP_SUS.
12722 (fcvtzs): Use SHIFTIMM rather than BINOP.
12723 (fcvtzu): Use SHIFTIMM_USS rather than BINOP_USS.
12725 2016-06-20 James Greenhalgh <james.greenhalgh@arm.com>
12727 * config/arm/aarch-cost-tables.h (cortexa57_extra_costs): Make FP
12728 costs relative to the cost of a register move.
12730 2016-06-20 Wilco Dijkstra <wdijkstr@arm.com>
12732 * config/aarch64/aarch64.c (aarch64_modes_tieable_p):
12733 Allow scalar/single vector modes to be tieable.
12735 2016-06-20 Wilco Dijkstra <wdijkstr@arm.com>
12737 * config/arm/cortex-a57.md (cortex_a57_fp_cpys): Add fcsel.
12739 2016-06-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12741 * params.def (PARAM_ALIGN_LOOP_ITERATIONS): Use "alignment" instead of
12743 * tree.h (TYPE_ALIGN): Likewise.
12745 2016-06-20 Georg-Johann Lay <avr@gjlay.de>
12748 * config/avr/avr.md (movqi): Handle loading subreg:qi (const).
12750 2016-06-20 Georg-Johann Lay <avr@gjlay.de>
12752 * config/avr/avr.c (avr_print_operand): Fix "format not a string
12753 literal" build warnings.
12754 (avr_print_operand_address): Dito.
12756 2016-06-19 David Edelsohn <dje.gcc@gmail.com>
12759 * config/rs6000/aix51.h (TARGET_EXTRA_BUILTINS): Define as 0.
12760 * config/rs6000/aix43.h (TARGET_EXTRA_BUILTINS): Same.
12762 2016-06-18 John David Anglin <danglin@gcc.gnu.org>
12764 * config/pa/pa.h (TARGET_LONG_PIC_PCREL_CALL): Remove.
12766 2016-06-18 Eric Botcazou <ebotcazou@adacore.com>
12769 * reload1.c (reload): Pass 0 to finish_spills when called because
12770 update_eliminables_and_spill returns true and remove did_spill.
12771 (finish_spills): Adjust comment and document GLOBAL parameter.
12773 2016-06-17 DJ Delorie <dj@redhat.com>
12776 * config/rl78/rl78-expand.c (umulqihi3): Enable for G10.
12777 * config/rl78/rl78-virtual.c (umulhi3_shift_virt): Likewise.
12778 (umulqihi3_virt): Likewise.
12779 * config/rl78/rl78-real.c (umulhi3_shift_real): Likewise.
12780 (umulqihi3_real): Likewise.
12782 2016-06-17 Martin Liska <mliska@suse.cz>
12784 * tree-ssa-reassoc.c (transform_add_to_multiply): Use auto_vec.
12786 2016-06-17 Martin Liska <mliska@suse.cz>
12788 * predict.def: PRED_LOOP_EXIT from 92 to 85.
12790 2016-06-17 James Greenhalgh <james.greenhalgh@arm.com>
12792 * config/arm/arm_neon.h (vadd_f32): replace __FAST_MATH with
12794 (vaddq_f32): Likewise.
12795 (vmul_f32): Likewise.
12796 (vmulq_f32): Likewise.
12797 (vsub_f32): Likewise.
12798 (vsubq_f32): Likewise.
12800 2016-06-17 Bin Cheng <bin.cheng@arm.com>
12802 PR tree-optimization/71347
12803 * tree-ssa-loop-ivopts.c (determine_group_iv_cost_address): Compute
12804 cost for all uses in group.
12806 2016-06-17 Bin Cheng <bin.cheng@arm.com>
12808 * tree-vect-loop.c (vect_create_epilog_for_reduction): Only
12809 insert gimple seq if it's not empty.
12811 2016-06-17 Bin Cheng <bin.cheng@arm.com>
12813 * tree-vectorizer.h (struct dr_with_seg_len): Remove class
12815 * tree-vect-data-refs.c (operator ==): Handle DR_OFFSET directly,
12816 rather than OFFSET.
12817 (comp_dr_with_seg_len_pair): Ditto.
12818 (vect_prune_runtime_alias_test_list): Ditto. Also Canonicalize
12819 struct dr_with_seg_len_pair against DR_OFFSET.
12820 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Handle
12821 DR_OFFSET directly.
12823 2016-06-17 Szabolcs Nagy <szabolcs.nagy@arm.com>
12825 * config/aarch64/geniterators.sh: Handle parenthesised conditions.
12827 2016-06-16 John David Anglin <danglin@gcc.gnu.org>
12829 * config/pa/pa.c (pa_output_pic_pcrel_sequence): New.
12830 (pa_output_lbranch): Use pa_output_pic_pcrel_sequence.
12831 (pa_output_millicode_call): Likewise.
12832 (pa_output_call): Likewise.
12833 (pa_output_indirect_call): Likewise.
12834 (pa_asm_output_mi_thunk): Likewise.
12836 2016-06-16 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
12838 * doc/invoke.texi (x86 Options): Fix -mno-fp-ret-in-387 typo.
12840 2016-06-16 Martin Liska <mliska@suse.cz>
12842 * predict.c (combine_predictions_for_insn): When we find a first
12843 match predictor, we should consider just predictors with
12844 PRED_FLAG_FIRST_MATCH. Print either first match (if any) or
12845 DS theory predictor.
12846 (combine_predictions_for_bb): Likewise.
12848 2016-06-16 Jakub Jelinek <jakub@redhat.com>
12850 * gimplify.c (gimplify_scan_omp_clauses): Handle COMPONENT_REFs
12851 with base of reference to struct.
12853 2016-06-16 Uros Bizjak <ubizjak@gmail.com>
12855 * doc/invoke.texi (x86 Options): Document -m80387 and -mhard-float.
12857 2016-06-16 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
12860 * config/avr/avr.c (avr_asm_init_sections): Remove setup of
12861 progmem_swtable_section.
12862 (progmem_swtable_section): Remove.
12863 (avr_asm_function_rodata_section): Remove.
12864 (TARGET_ASM_FUNCTION_RODATA_SECTION): Remove.
12865 * config/avr/avr.h (JUMP_TABLES_IN_TEXT_SECTION: Define to 1.
12867 2016-06-16 Jocelyn Mayer <l_indien@magic.fr>
12869 * config/i386/driver-i386.c (host_detect_local_cpu): Set
12870 PROCESSOR_K8 for signature_CENTAUR_ebx with has_longmode.
12871 <case PROCESSOR_K8>: Pass nano-3000, nano, eden-x2 or k8 for
12872 signature_CENTAUR_ebx.
12873 * config/i386/i386.c (ix86_option_override_internal): Add
12874 definitions for VIA c7, samuel-2, nehemiah, esther, eden-x2, eden-x4,
12875 nano, nano-1000, nano-2000, nano-3000, nano-x2 and nano-x4.
12876 * doc/invoke.texi (x86 Options): Document new VIA -march entries.
12878 2016-06-16 Martin Liska <mliska@suse.cz>
12880 * predict.def: Add fortran loop preheader predictor.
12881 * gimple-fold.c (gimple_fold_stmt_to_constant_1): Properly
12882 fold IFN_BUILTIN_EXPECT with a known constant argument.
12884 2016-06-16 Martin Liska <mliska@suse.cz>
12886 * predict.def: Add 'Fortran' to display text of all
12887 PRED_FORTRAN_* predictors.
12889 2016-06-16 Uros Bizjak <ubizjak@gmail.com>
12892 * config/ia64/ia64.c (enum ia64_builtins) [IA64_BUILTIN_NANQ]: New.
12893 [IA64_BUILTIN_NANSQ]: Ditto.
12894 (ia64_fold_builtin): New function.
12895 (TARGET_FOLD_BUILTIN): New define.
12896 (ia64_init_builtins) Declare const_string_type node.
12897 Add __builtin_nanq and __builtin_nansq builtin functions.
12898 (ia64_expand_builtin): Handle IA64_BUILTIN_NANQ and IA64_BUILTIN_NANSQ.
12900 2016-06-16 Nick Clifton <nickc@redhat.com>
12902 * config/msp430/msp430-opts.h (msp430_hwmult_types): Add
12903 MSP430_HWMULT_ prefix to enum values.
12904 (msp430_regions): Add MSP430_REGION_ prefix to enum values.
12905 * config/msp430/msp430.c: Update use of enum values.
12906 * config/msp430/msp430.md: Likewise.
12907 * config/msp430/msp430.opt: Likewise.
12909 2016-06-16 Jan Hubicka <hubicka@ucw.cz>
12911 * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Fix estimation
12912 of comparsions in the last iteration.
12914 2016-06-16 Claudiu Zissulescu <claziss@synopsys.com>
12915 Joern Rennecke <joern.rennecke@embecosm.com>
12917 * config/arc/arc.c (arc_print_operand_address): Handle pc-relative
12919 (arc_needs_pcl_p): Add GOTOFFPC.
12920 (arc_legitimate_pic_addr_p): Likewise.
12921 (arc_output_pic_addr_const): Likewise.
12922 (arc_legitimize_pic_address): Generate a pc-relative address using
12924 (arc_output_libcall): Use @pcl syntax.
12925 (arc_delegitimize_address_0): Delegitimize ARC_UNSPEC_GOTOFFPC.
12926 * config/arc/arc.md ("unspec"): Add ARC_UNSPEC_GOTOFFPC.
12927 (*movsi_insn): Use @pcl syntax.
12928 (doloop_begin_i): Likewise.
12930 2016-06-16 Martin Liska <mliska@suse.cz>
12932 * predict.def: Define a new predictor.
12934 2016-06-16 Claudiu Zissulescu <claziss@synopsys.com>
12936 * config/arc/arc.opt (mtp-regno): Update text.
12938 2016-06-16 Renlin Li <renlin.li@arm.com>
12940 * config/aarch64/aarch64.c (aarch64_legitimize_address): Fix a typo.
12942 2016-06-16 Jakub Jelinek <jakub@redhat.com>
12945 * config/i386/i386.md (setcc + movzbl peephole2): Use reg_set_p.
12946 (setcc + and peephole2): Likewise.
12948 PR rtl-optimization/71532
12949 * cse.c (cse_insn): For const/pure calls, invalidate argument passing
12952 2016-06-15 Michael Meissner <meissner@linux.vnet.ibm.com>
12954 * config/rs6000/vsx.md (VSINT_84): Add DImode to enable loading
12955 DImode constants with XXSPLTIB in vector registers.
12956 (vsx_extract_<mode>, V2DImode/V2DFmode): Combine both
12957 vsx_extract_<mode>_internal{1,2} into a single insn that handles
12958 direct move (both ISA 2.07 and ISA 3.0 versions), and optimizes
12959 extraction of the element at the top of the register as a scalar
12961 (vsx_extract_<mode>_internal1): Likewise.
12962 (vsx_extract_<mode>_internal2): Likewise.
12963 * config/rs6000/constraints.md (wi constraint): Remove a comment
12964 about DImode not being allowed in Altivec registers.
12965 (wB constraint): New constraint for constants that can be
12966 generated in Altivec registers with VSPLTISW/VUPKHSW.
12967 * config/rs6000/predicates.md (xxspltib_constant_split): Update
12969 (xxspltib_constant_nosplit): Likewise.
12970 * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Add
12971 support for -mupper-regs-di to enable DImode to go into Altivec
12973 (POWERPC_MASKS): Likewise.
12974 (power7 cpu): Likewise.
12975 * config/rs6000/rs6000.opt (-mupper-regs-di): Likewise.
12976 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Add support
12977 for DImode being allowed in Altivec registers. Update wi/wj
12978 constraints. Set scalar_in_vmx_p flag.
12979 (rs6000_option_override_internal): Add checks for -mupper-regs-di.
12980 (xxspltib_constant_p): Allow CONST_INT's with VOIDmode. Don't
12981 return true if we could use VSPLTISW/VUPKHSW instead of XXSPLTIB.
12982 (rs6000_opt_masks): Add -mupper-regs-di.
12983 * config/rs6000/rs6000.md (lfiwax): Update clobbers that don't use
12984 direct move to use wi and not wj.
12985 (lfiwzx): Likewise.
12986 (floatsi<mode>2_lfiwax_mem): Combine alternatives into a single
12988 (floatunssi<mode>2_lfiwzx_mem): Likewise.
12989 (fix_trunc<mode>di2_fctidz): Change second alternative to allow
12990 any VSX register, instead of just Altivec registers, to allow
12991 either operand to be an Altivec register or both.
12992 (fixuns_trunc<mode>di2_fctiduz): Likewise.
12993 (movdi_internal32): Add support for -mupper-regs-di. Add support
12994 to load constants via XXSPLTIB or VSPLTISW. Add spacing to allow
12995 the alternatives and attributes to be lined up to be easier to
12997 (movdi_internal64): Likewise.
12998 (64-bit DImode splitters): Change predicates to only split loading
12999 up GPR registers. Add splits for using XXSPLTIB or VSPLTISW to
13000 load constants in ISA 3.0 or ISA 2.07 respectively.
13001 * doc/invoke.texi (RS/6000 and PowerPC Options): Document
13002 -mupper-regs-di. Update -mupper-regs-df and -mupper-regs-sf to
13003 mention -mcpu=power9 sets these options.
13004 * doc/md.texi (PowerPC and IBM RS6000 constraints): Document the
13007 2016-06-15 Pitchumani Sivanupandi <pitchumani.s@atmel.com>
13010 * config/avr/avr.c (avr_set_current_function): Warn misspelled
13011 interrupt/ signal handler if -Wmisspelled-isr flag is enabled.
13012 * config/avr/avr.opt (Wmisspelled-isr): New warning flag. Enabled
13013 by default to warn misspelled interrupt/ signal handler.
13014 * doc/invoke.texi (AVR Options): Document it. Update description
13015 for -nodevicelib option.
13017 2016-06-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13019 * config/aarch64/aarch64-simd.md (aarch64_<sur>shll_n<mode>): Clean
13020 up parentheses. Use GET_MODE_UNIT_BITSIZE.
13021 (aarch64_<sur>shll2_n<mode>): Likewise.
13023 2016-06-15 Ilya Enkovich <ilya.enkovich@intel.com>
13025 PR middle-end/71529
13026 * ipa-chkp.c (chkp_build_instrumented_fndecl): Fix
13027 DECL_CONTEXT for copied arguments.
13029 2016-06-15 Alan Hayward <alan.hayward@arm.com>
13031 PR tree-optimization/71483
13032 * tree-vect-loop.c (vectorizable_live_operation): Pick correct index
13035 2016-06-15 Martin Liska <mliska@suse.cz>
13037 * predict.c (tree_predict_by_opcode): Call predict_edge_def
13038 instead of predict_edge w/o a probability.
13040 2016-06-15 Alan Hayward <alan.hayward@arm.com>
13042 PR tree-optimization/71439
13043 * tree-vect-loop.c (vect_analyze_loop_operations): Additional check for
13046 2016-06-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13048 * ifcvt.c (bb_ok_for_noce_multiple_sets): Allow simple lowpart
13049 register subregs in SET_SRC.
13051 2016-06-15 Richard Biener <rguenther@suse.de>
13053 * tree-vect-stmts.c (vectorizable_store): Remove strided grouped
13054 store restrictions.
13056 2016-06-15 Richard Biener <rguenther@suse.de>
13058 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Do
13059 not consider dependences between accesses that belong to the
13061 (vect_analyze_data_ref_dependences): Do not analyze read-read
13062 or self-dependences.
13064 2016-06-14 David Malcolm <dmalcolm@redhat.com>
13066 * spellcheck-tree.c: Include spellcheck-tree.h rather than
13068 (find_closest_identifier): Reimplement in terms of
13069 best_match<tree,tree>.
13070 * spellcheck-tree.h: New file.
13071 * spellcheck.c (struct edit_distance_traits<const char *>): New
13073 (find_closest_string): Reimplement in terms of
13074 best_match<const char *, const char *>.
13075 * spellcheck.h (levenshtein_distance): Move prototype of tree-based
13076 overload to spellcheck-tree.h.
13077 (find_closest_identifier): Likewise.
13078 (struct edit_distance_traits<T>): New template.
13079 (class best_match): New class.
13081 2016-06-14 David Malcolm <dmalcolm@redhat.com>
13083 * selftest-run-tests.c (selftest::run_tests): Call
13084 selftest::spellcheck_tree_c_tests.
13085 * selftest.h (selftest::spellcheck_tree_c_tests): New decl.
13086 * spellcheck-tree.c: Include selftest.h and stringpool.h.
13087 (selftest::test_find_closest_identifier): New function.
13088 (selftest::spellcheck_tree_c_tests): New function.
13089 * spellcheck.c (selftest::test_find_closest_string): Verify that
13090 the order of the vec does not affect the results for this case.
13091 (selftest::test_data): New array.
13092 (selftest::test_metric_conditions): New function.
13093 (selftest::spellcheck_c_tests): Add a test of case-comparison.
13094 Call selftest::test_metric_conditions.
13096 2016-06-14 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
13098 * config/rs6000/rs6000-builtin.def (commentary): Typo.
13099 (BU_P9_MISC_1): Likewise.
13100 (BU_P9_64BIT_MISC_0): Likewise.
13101 (BU_P9_MISC_0): Likewise.
13103 2016-06-14 David Malcolm <dmalcolm@redhat.com>
13105 * gcc-rich-location.c
13106 (gcc_rich_location::add_fixit_misspelled_id): New method.
13107 * gcc-rich-location.h
13108 (gcc_rich_location::add_fixit_misspelled_id): Add decl.
13110 2016-06-14 Andreas Tobler <andreast@gcc.gnu.org>
13112 * config/arm/freebsd.h: Only enable unaligned access for armv6 on
13113 FreeBSD 11 and above.
13115 2016-06-14 Uros Bizjak <ubizjak@gmail.com>
13117 * config/i386/i386.md (signbittf2): Emit sse_movmskps for TARGET_SSE.
13119 2016-06-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13121 * expmed.h: Close parenthesis in "at your option" in copyright
13123 * lower-subreg.h: Likewise.
13125 2016-06-14 Richard Biener <rguenther@suse.de>
13127 PR middle-end/71526
13128 * genmatch.c (expr::gen_transform): Use in_type for comparisons
13131 2015-06-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13133 * config/aarch64/aarch64.c (aarch64_mask_and_shift_for_ubfiz_p):
13135 (aarch64_rtx_costs): Use it. Rewrite CONST_INT_P (op1) case to handle
13136 mask+shift version.
13137 * config/aarch64/aarch64-protos.h (aarch64_mask_and_shift_for_ubfiz_p):
13139 * config/aarch64/aarch64.md (*andim_ashift<mode>_bfiz): Replace
13140 matching condition with aarch64_mask_and_shift_for_ubfiz_p.
13142 2016-06-14 Richard Biener <rguenther@suse.de>
13144 PR tree-optimization/71522
13145 * tree-ssa.c (non_rewritable_lvalue_p): Do not rewrite non-float
13146 copying into float copying.
13148 2016-06-14 Jakub Jelinek <jakub@redhat.com>
13150 PR tree-optimization/71520
13151 * tree-ssa-tail-merge.c (find_duplicate): Handle labels.
13152 (replace_block_by): Move user labels from bb1 to bb2.
13154 2016-06-14 Richard Biener <rguenther@suse.de>
13156 PR middle-end/71310
13158 * expr.h (get_bit_range): Declare.
13159 * expr.c (get_bit_range): Export.
13160 * fold-const.c (optimize_bit_field_compare): Use get_bit_range and
13161 word_mode again to constrain the bitfield access.
13163 2016-06-14 Richard Biener <rguenther@suse.de>
13165 PR tree-optimization/71521
13166 * tree-vrp.c (extract_range_from_binary_expr_1): Guard
13167 division int_const_binop against zero divisor.
13169 2016-06-13 Uros Bizjak <ubizjak@gmail.com>
13171 * config/i386/i386.md (signbittf2): New expander.
13172 * config/i386/sse.md (ptesttf2): New insn pattern.
13174 2016-06-13 David Malcolm <dmalcolm@redhat.com>
13177 * input.c (selftest::test_reading_source_line): Avoid reading from
13178 __FILE__ by creating a tempfile with known content and reading
13181 2016-06-13 David Malcolm <dmalcolm@redhat.com>
13183 * pretty-print.c (assert_pp_format_colored): Skip the test if
13185 (test_pp_format): Remove comment about GCC_COLORS.
13187 2016-06-13 David Malcolm <dmalcolm@redhat.com>
13189 * input.c (test_reading_source_line): Use SELFTEST_LOCATION.
13190 * pretty-print.c (assert_pp_format_va): Add location param and use
13191 it with ASSERT_STREQ_AT.
13192 (assert_pp_format): Add location param and pass it to
13193 assert_pp_format_va.
13194 (assert_pp_format_colored): Likewise.
13195 (ASSERT_PP_FORMAT_1): New.
13196 (ASSERT_PP_FORMAT_2): New.
13197 (ASSERT_PP_FORMAT_3): New.
13198 (test_pp_format): Provide SELFTEST_LOCATION throughout, either
13199 explicitly, or implicitly via the above macros.
13200 * selftest.c (selftest::pass): Use a selftest::location rather
13201 than file and line.
13202 (selftest::fail): Likewise. Print the function name.
13203 (selftest::fail_formatted): Likewise.
13204 (selftest::assert_streq): Use a selftest::location rather than
13206 * selftest.h (selftest::location): New struct.
13207 (SELFTEST_LOCATION): New macro.
13208 (selftest::pass): Accept a const location & rather than file
13210 (selftest::fail): Likewise.
13211 (selftest::fail_formatted): Likewise.
13212 (selftest::assert_streq): Likewise.
13213 (ASSERT_TRUE): Update for above changes, using SELFTEST_LOCATION.
13214 (ASSERT_FALSE): Likewise.
13215 (ASSERT_EQ): Likewise.
13216 (ASSERT_NE): Likewise.
13217 (ASSERT_STREQ): Likewise.
13218 (ASSERT_PRED1): Likewise.
13219 (ASSERT_STREQ_AT): New macro.
13221 2016-06-13 David Malcolm <dmalcolm@redhat.com>
13223 * selftest.c (selftest::fail_formatted): New function.
13224 (selftest::assert_streq): New function.
13225 * selftest.h (selftests::fail_formatted): New decl.
13226 (selftest::assert_streq): New decl.
13227 (ASSERT_STREQ): Reimplement in terms of selftest::assert_streq.
13229 2016-06-13 Jeff Law <law@redhat.com>
13231 PR tree-optimization/71403
13232 * tree-ssa-threadbackward.c
13233 (convert_and_register_jump_thread_path): No longer accept reference
13234 to path. Do not pop items off the path anymore.
13235 (fsm_find_control_statement_thread_paths): Do not allow threading
13236 to a deeper loop nest. Pop the last item off the path here rather
13237 than in convert_and_register_jump_thread_path.
13239 2016-06-13 Evandro Menezes <e.menezes@samsung.com>
13240 Wilco Dijkstra <Wilco.Dijkstra@arm.com>
13242 [AArch64] Emit division using the Newton series
13244 * config/aarch64/aarch64-protos.h
13245 (cpu_approx_modes): Add new member "division".
13246 (aarch64_emit_approx_div): Declare new function.
13247 * config/aarch64/aarch64.c
13248 (generic_approx_modes): New member "division".
13249 (exynosm1_approx_modes): Likewise.
13250 (xgene1_approx_modes): Likewise.
13251 (aarch64_emit_approx_div): Define new function.
13252 * config/aarch64/aarch64.md ("div<mode>3"): New expansion.
13253 * config/aarch64/aarch64-simd.md ("div<mode>3"): Likewise.
13254 * config/aarch64/aarch64.opt (-mlow-precision-div): Add new option.
13255 * doc/invoke.texi (-mlow-precision-div): Describe new option.
13257 2016-06-13 Evandro Menezes <e.menezes@samsung.com>
13258 Wilco Dijkstra <wilco.dijkstra@arm.com>
13260 [AArch64] Emit square root using the Newton series
13262 * config/aarch64/aarch64-protos.h
13263 (aarch64_emit_approx_rsqrt): Replace with new function
13264 "aarch64_emit_approx_sqrt".
13265 (cpu_approx_modes): New member "sqrt".
13266 * config/aarch64/aarch64.c
13267 (generic_approx_modes): New member "sqrt".
13268 (exynosm1_approx_modes): Likewise.
13269 (xgene1_approx_modes): Likewise.
13270 (aarch64_emit_approx_rsqrt): Replace with new function
13271 "aarch64_emit_approx_sqrt".
13272 (aarch64_override_options_after_change_1): Handle new option.
13273 * config/aarch64/aarch64-simd.md
13274 (rsqrt<mode>2): Use new function instead.
13275 (sqrt<mode>2): New expansion and insn definitions.
13276 * config/aarch64/aarch64.md: Likewise.
13277 * config/aarch64/aarch64.opt
13278 (mlow-precision-sqrt): Add new option description.
13279 * doc/invoke.texi (mlow-precision-sqrt): Likewise.
13281 2016-06-13 Evandro Menezes <e.menezes@samsung.com>
13283 [AArch64] Add more choices for the reciprocal square root approximation
13285 Allow a target to prefer such operation depending on the operation mode.
13287 * config/aarch64/aarch64-protos.h
13288 (AARCH64_APPROX_MODE): New macro.
13289 (AARCH64_APPROX_{NONE,ALL}): Likewise.
13290 (cpu_approx_modes): New structure.
13291 (tune_params): New member "approx_modes".
13292 * config/aarch64/aarch64-tuning-flags.def
13293 (AARCH64_EXTRA_TUNE_APPROX_RSQRT): Remove macro.
13294 * config/aarch64/aarch64.c
13295 (generic_approx_modes): New core "cpu_approx_modes" structure.
13296 (exynosm1_approx_modes): Likewise.
13297 (xgene1_approx_modes): Likewise.
13298 (generic_tunings): New member "approx_modes".
13299 (cortexa35_tunings): Likewise.
13300 (cortexa53_tunings): Likewise.
13301 (cortexa57_tunings): Likewise.
13302 (cortexa72_tunings): Likewise.
13303 (exynosm1_tunings): Likewise.
13304 (thunderx_tunings): Likewise.
13305 (xgene1_tunings): Likewise.
13306 (use_rsqrt_p): New argument for the mode and use new member from
13308 (aarch64_builtin_reciprocal): Devise mode from builtin.
13309 (aarch64_optab_supported_p): New argument for the mode.
13310 * doc/invoke.texi (-mlow-precision-recip-sqrt): Reword description.
13312 2016-06-13 Kelvin Nilsen <kelvin@gcc.gnu.org>
13314 * config/rs6000/rs6000.h (RS6000_BTM_COMMON): Add the
13315 RS6000_BTM_MODULO flag into the set of flags that are considered
13316 to be part of the common configuration.
13318 2016-06-13 Kelvin Nilsen <kelvin@gcc.gnu.org>
13320 * config/rs6000/altivec.h (vec_absd): New macro for vector absolute
13321 difference unsigned.
13322 (vec_absdb): New macro for vector absolute difference unsigned
13324 (vec_absdh): New macro for vector absolute difference unsigned
13326 (vec_absdw): New macro for vector absolute difference unsigned word.
13327 * config/rs6000/altivec.md (UNSPEC_VADU): New value.
13328 (vadu<mode>3): New insn.
13329 (*p9_vadu<mode>3): New insn.
13330 * config/rs6000/rs6000-builtin.def (vadub): New built-in
13332 (vaduh): New built-in definition.
13333 (vaduw): New built-in definition.
13334 (vadu): New overloaded built-in definition.
13335 (vadub): New overloaded built-in definition.
13336 (vaduh): New overloaded built-in definition.
13337 (vaduw): New overloaded built-in definition.
13338 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
13339 overloaded vector absolute difference unsigned functions.
13340 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
13341 the ISA 3.0 vector absolute difference unsigned built-in functions.
13343 2016-06-13 Eric Botcazou <ebotcazou@adacore.com>
13345 * tree-ssa-sccvn.c (vn_reference_lookup_3): Use a uniform test and
13346 update shared_lookup_references only once after changing operands.
13348 2016-06-13 Thomas Schwinge <thomas@codesourcery.com>
13350 PR middle-end/71373
13351 * tree-nested.c (convert_nonlocal_omp_clauses)
13352 (convert_local_omp_clauses): Document missing OMP_CLAUSE_*.
13354 * tree-cfg.c (edge_to_cases_cleanup): Fix CASE_CHAIN typo.
13355 * tree.def (CASE_LABEL_EXPR): Likewise.
13357 2016-06-13 Bernd Edlinger <bernd.edlinger@hotmail.de>
13360 * input.c (test_builtins): Fix an assertion.
13362 2016-06-13 Uros Bizjak <ubizjak@gmail.com>
13364 * config/i386/i386.md (paritydi2): Use ix86_expand_setcc.
13365 (paritysi2): Ditto.
13367 (isinf<mode>2): Ditto.
13369 2016-06-13 Uros Bizjak <ubizjak@gmail.com>
13371 * ggc-tests.c (test_finalization): Only test need_finalization_p
13372 for GCC_VERSION >= 4003.
13374 2016-06-13 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
13376 * config/s390/vecintrin.h: Fix file description in comment.
13378 2016-06-13 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
13380 * config/s390/s390-builtin-types.def: Change builtin type naming
13381 scheme to match builtin-types.def.
13383 2016-06-13 Marc Glisse <marc.glisse@inria.fr>
13385 * fold-const.c (optimize_minmax_comparison): Remove.
13386 (fold_comparison): Remove call to the above.
13387 * match.pd (MIN (X, Y) == X, MIN (X, 5) == 0, MIN (X, C1) < C2):
13388 New transformations.
13390 2016-06-13 Alan Hayward <alan.hayward@arm.com>
13392 PR tree-optimization/71416
13393 * tree-vect-loop.c (vectorizable_live_operation): Let worklist have
13396 2016-06-13 Martin Liska <mliska@suse.cz>
13398 * predict.c (enum predictor_reason): Prefix enum with REASON_.
13399 (combine_predictions_for_insn): Likewise.
13400 (prune_predictions_for_bb): Likewise.
13401 (combine_predictions_for_bb): Likewise.
13403 2016-06-13 Richard Biener <rguenther@suse.de>
13405 PR tree-optimization/71505
13406 * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Make
13407 assert match comment.
13409 2016-06-13 Marek Polacek <polacek@redhat.com>
13411 PR middle-end/71476
13412 * gimplify.c (maybe_warn_switch_unreachable): Factored out of
13413 gimplify_switch_expr.
13414 (warn_switch_unreachable_r): New function.
13416 2016-06-13 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
13419 * config/s390/s390.c (s390_expand_builtin): Increase MAX_ARGS by
13422 2016-06-13 Richard Biener <rguenther@suse.de>
13424 PR middle-end/64516
13425 * fold-const.c (fold_unary_loc): Preserve alignment when
13426 folding a VIEW_CONVERT_EXPR into a MEM_REF.
13428 2016-06-13 Martin Liska <mliska@suse.cz>
13431 * toplev.c (process_options): Do not enable -fcheck-pointer-bounds
13432 w/ -fsanitize=bounds.
13434 2016-06-12 Uros Bizjak <ubizjak@gmail.com>
13436 * config/i386/i386.c (ix86_init_builtins): Calculate
13437 FLOAT128_FTYPE_CONST_STRING function type only once.
13438 * doc/extend.texi (x86 Built-in Functions): Update text, __float128
13439 built-in functions are available for x86-32 and x86-64 targets.
13441 2016-06-12 Uros Bizjak <ubizjak@gmail.com>
13444 * config/i386/i386.i386-builtin-types.def (CONST_STRING):
13445 New primitive type.
13446 (FLOAT128_FTYPE_CONST_STRING): New function type.
13447 * config/i386/i386.c (enum ix86_builtins) [IX86_BUILTIN_NANQ]: New.
13448 [IX86_BUILTIN_NANSQ]: Ditto.
13449 (ix86_fold_builtin): Handle IX86_BUILTIN_NANQ and IX86_BUILTIN_NANSQ.
13450 (ix86_init_builtin_types): Declare const_string_type_node.
13451 (ix86_init_builtins): Add __builtin_nanq and __builtin_nansq
13453 (ix86_expand_builtin): Handle IX86_BUILTIN_NANQ and IX86_BUILTIN_NANSQ.
13454 * doc/extend.texi (x86 Built-in Functions): Document
13455 __builtin_nanq and __builtin_nansq.
13457 2016-06-11 Jiong Wang <jiong.wang@arm.com>
13460 * config/arm/arm-protos.h (arm_attr_length_pop_multi): New declaration.
13461 * config/arm/arm.c (arm_attr_length_pop_multi): New function to return
13462 length for pop patterns.
13463 (arm_attr_length_push_multi): Update comments.
13464 * config/arm/arm.md (*load_multiple_with_writeback): Set "length"
13466 (*pop_multiple_with_writeback_and_return): Likewise.
13467 (*pop_multiple_with_return): Likewise.
13469 2016-06-11 Segher Boessenkool <segher@kernel.crashing.org>
13471 PR middle-end/71310
13472 * fold-const.c (optimize_bit_field_compare): Don't try to use
13473 word_mode unconditionally for reading the bit field, look at
13474 DECL_BIT_FIELD_REPRESENTATIVE instead.
13476 2016-06-11 Kugan Vivekanandarajah <kuganv@linaro.org>
13478 PR middle-end/71478
13479 * tree-ssa-reassoc.c (reassociate_bb): Remove (-1) from ops list for
13480 vector integer type.
13482 2016-06-10 Jakub Jelinek <jakub@redhat.com>
13484 PR middle-end/71494
13485 * tree-nested.c (convert_nonlocal_reference_stmt): For GIMPLE_GOTO
13486 without LABEL_DECL, set *handled_ops_p to false instead of true.
13488 2016-06-10 Martin Sebor <msebor@redhat.com>
13491 * builtin-attrs.def (ATTR_NOTHROW_NONNULL_LEAF_LIST): New macro.
13492 (ATTR_NOTHROW_NONNULL_TYPEGENERIC_LEAF): Same.
13493 * builtins.def (BUILT_IN_SADD_OVERFLOW, BUILT_IN_SADDL_OVERFLOW): Use
13495 (BUILT_IN_SADDLL_OVERFLOW, BUILT_IN_SSUB_OVERFLOW): Same.
13496 (BUILT_IN_SSUBL_OVERFLOW, BUILT_IN_SSUBLL_OVERFLOW): Same.
13497 (BUILT_IN_SMUL_OVERFLOW, BUILT_IN_SMULL_OVERFLOW): Same.
13498 (BUILT_IN_SMULLL_OVERFLOW, BUILT_IN_UADD_OVERFLOW): Same.
13499 (BUILT_IN_UADDL_OVERFLOW, BUILT_IN_UADDLL_OVERFLOW): Same.
13500 (BUILT_IN_USUB_OVERFLOW, BUILT_IN_USUBL_OVERFLOW): Same.
13501 (BUILT_IN_USUBLL_OVERFLOW, BUILT_IN_UMUL_OVERFLOW): Same.
13502 (BUILT_IN_UMULL_OVERFLOW, BUILT_IN_UMULLL_OVERFLOW): Same.
13504 2016-06-10 Bernd Edlinger <bernd.edlinger@hotmail.de>
13506 * config/arm/arm.h (pool_vector_label,
13507 return_used_this_function): Remove.
13509 2016-06-10 Jeff Law <law@redhat.com>
13511 PR tree-optimization/71335
13512 * tree-ssa-threadbackward.c (profitable_jump_thread_path): Filter out
13513 zero length paths here.
13514 (convert_and_register_jump_thread_path): Remove hacks related to
13515 duplicated blocks in the jump thread path.
13516 (fsm_find_control_statement_thread_paths): Avoid putting the same
13517 block on the thread path twice, but ensure the thread path is
13518 unchanged from the caller's point of view.
13520 2016-06-10 Jan Hubicka <hubicka@ucw.cz>
13522 * predict.c (predict_loops): Remove PRED_LOOP_BRANCH.
13523 * predict.def (PRED_LOOP_BRANCH): Remove.
13525 2016-06-10 David Malcolm <dmalcolm@redhat.com>
13527 * Makefile.in (OBJS): Add ggc-tests.o.
13528 (GTFILES): Add ggc-tests.c.
13529 * ggc-tests.c: New file.
13530 * selftest-run-tests.c (selftest::run_tests): Call
13531 selftest::ggc_tests_c_tests.
13532 * selftest.h (selftest::ggc_tests_c_tests): New prototype.
13534 2016-06-10 Alexander Monakov <amonakov@ispras.ru>
13536 * match.pd (-1 / B < A): Use :c to avoid pattern duplication.
13538 2016-06-10 Maxim Ostapenko <m.ostapenko@samsung.com>
13541 * varasm.c (place_block_symbol): Adjust alignment for asan protected
13542 STRING_CSTs even if TREE_CONSTANT_POOL_ADDRESS_P.
13544 2016-06-10 Jan Hubicka <hubicka@ucw.cz>
13546 * profile.c: Include cfgloop.h.
13547 (branch_prob): Compute estimated number of iterations.
13548 * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop): Do not
13549 recompute estimate number of iterations from profile.
13551 2016-06-10 Bernd Edlinger <bernd.edlinger@hotmail.de>
13553 PR inline-asm/68843
13554 * reg-stack.c (check_asm_stack_operands): Explicit input arguments
13555 must be grouped on top of stack. Don't force early clobber
13556 on ordinary reg outputs.
13558 2016-06-10 Richard Biener <rguenther@suse.de>
13560 * targhooks.c (default_builtin_vectorization_cost): Adjust
13561 vec_construct cost.
13563 2016-06-10 Richard Biener <rguenther@suse.de>
13565 * gimple-fold.c (gimple_fold_builtin_memory_op): Make sure
13566 to fold the RHS to a constant if possible.
13568 2016-06-10 Thomas Schwinge <thomas@codesourcery.com>
13570 PR middle-end/71373
13571 * tree-nested.c (convert_nonlocal_omp_clauses)
13572 (convert_local_omp_clauses): Handle OMP_CLAUSE_ASYNC,
13573 OMP_CLAUSE_WAIT, OMP_CLAUSE_INDEPENDENT, OMP_CLAUSE_AUTO,
13574 OMP_CLAUSE__CACHE_, OMP_CLAUSE_TILE.
13576 * gimplify.c (gimplify_adjust_omp_clauses): Discard
13578 * omp-low.c (scan_sharing_clauses): Don't expect OMP_CLAUSE_TILE.
13580 * omp-low.c (scan_sharing_clauses): Don't expect
13581 OMP_CLAUSE__CACHE_.
13583 2016-06-10 Alan Hayward <alan.hayward@arm.com>
13585 PR tree-optimization/71407
13586 PR tree-optimization/71416
13587 * tree-vect-loop.c (vectorizable_live_operation): Use vectype for
13588 BIT_FIELD_REF type.
13590 2016-06-10 Richard Biener <rguenther@suse.de>
13592 PR middle-end/71477
13593 * cfgloop.c (alloc_loop): Initialize nb_iterations_likely_upper_bound.
13595 2016-06-09 Eric Botcazou <ebotcazou@adacore.com>
13597 * df-problems.c (df_note_bb_compute): Guard use of DF_INSN_INFO_GET.
13599 2016-06-09 Vladimir Makarov <vmakarov@redhat.com>
13600 Jiong Wang <jiong.wang@arm.com>
13602 PR rtl-optimization/70751
13603 * lra-constraints.c (process_alt_operands): Recognize Non-pseudo
13604 spilled into memory.
13606 2016-06-09 Jonathan Yong <10walls@gmail.com>
13609 2015-09-21 Jonathan Yong <10walls@gmail.com>
13611 * config/i386/cygwin.h (STARTFILE_SPEC): Explicitly search
13612 sysroot/usr/lib/32api for additional win32 libraries,
13613 fixes failing Cygwin bootstrapping.
13615 2016-06-09 Marcin Baczyński <marbacz@gmail.com>
13617 * diagnostic.h (diagnostic_line_cutoff, diagnostic_flush_buffer):
13620 2016-06-09 David Malcolm <dmalcolm@redhat.com>
13623 * pretty-print.c (pp_indent): Specify that %p is printed in a
13624 host-dependent manner.
13625 (test_pp_format): Remove the test for %p.
13627 2016-06-09 Maciej W. Rozycki <macro@imgtec.com>
13629 * config/mips/mips.c (mips_output_jump): Fix formatting.
13631 2016-06-09 Richard Biener <rguenther@suse.de>
13633 PR tree-optimization/71462
13634 * tree-ssa-loop-manip.c (find_uses_to_rename): Guard against
13637 2016-06-09 Martin Liska <mliska@suse.cz>
13639 * predict.c (dump_prediction): Add new argument.
13640 (enum predictor_reason): New enum.
13641 (struct predictor_hash): New struct.
13642 (predictor_hash::hash): New function.
13643 (predictor_hash::equal): Likewise.
13644 (not_removed_prediction_p): New function.
13645 (prune_predictions_for_bb): Likewise.
13646 (combine_predictions_for_bb): Prune predictions.
13648 2016-06-09 Martin Liska <mliska@suse.cz>
13650 * predict.c (filter_predictions): New function.
13651 (remove_predictions_associated_with_edge): Use the filter
13653 (equal_edge_p): New function.
13655 2016-06-09 Stefan Bruens <stefan.bruens@rwth-aachen.de>
13657 * doc/invoke.texi (ARM Options): Use lexicographical ordering.
13658 Correct usage of @samp vs @option, add @samp where appropriate.
13659 Add -march={armv6k,armv6z,arm6zk}, remove -march=ep9312.
13660 Add armv6s-m and document it, as it is no official ARM name.
13662 2016-06-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13664 * ifcvt.c (struct noce_if_info): Add transform_name field.
13665 (noce_try_move): Set if_info->transform_name to the function name.
13666 (noce_try_ifelse_collapse): Likewise.
13667 (noce_try_store_flag): Likewise.
13668 (noce_try_inverse_constants): Likewise.
13669 (noce_try_store_flag_constants): Likewise.
13670 (noce_try_addcc): Likewise.
13671 (noce_try_store_flag_mask): Likewise.
13672 (noce_try_cmove): Likewise.
13673 (noce_try_cmove_arith): Likewise.
13674 (noce_try_minmax): Likewise.
13675 (noce_try_abs): Likewise.
13676 (noce_try_sign_mask): Likewise.
13677 (noce_try_bitop): Likewise.
13678 (noce_convert_multiple_sets): Likewise.
13679 (noce_process_if_block): Print if_info->transform_name to
13680 dump_file if transformation succeeded.
13682 2016-06-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13684 * config/arm/cortex-a57.md (cortex_a57_alu):
13687 2016-06-08 Martin Sebor <msebor@redhat.com>
13688 Jakub Jelinek <jakub@redhat.com>
13692 * builtins.def (BUILT_IN_ADD_OVERFLOW_P, BUILT_IN_SUB_OVERFLOW_P,
13693 BUILT_IN_MUL_OVERFLOW_P): New builtins.
13694 * builtins.c: Include gimple-fold.h.
13695 (fold_builtin_arith_overflow): Handle
13696 BUILT_IN_{ADD,SUB,MUL}_OVERFLOW_P.
13697 (fold_builtin_3): Likewise.
13698 * doc/extend.texi (Integer Overflow Builtins): Document
13699 __builtin_{add,sub,mul}_overflow_p.
13701 2016-06-08 Jose E. Marchesi <jose.marchesi@oracle.com>
13703 * config/sparc/driver-sparc.c (cpu_names): Fix the entry for the
13704 SPARC-M7 and add an entry for SPARC-S7 cpus (Sonoma).
13706 2016-06-08 Alan Lawrence <alan.lawrence@arm.com>
13708 * config/aarch64/aarch64.c (aarch64_function_arg_alignment):
13709 Rewrite, looking one level down for records and arrays.
13711 2016-06-08 David Malcolm <dmalcolm@redhat.com>
13713 * pretty-print.c: Include "selftest.h".
13714 (pp_format): Fix comment.
13715 (identifier_to_locale): Likewise.
13716 (selftest::test_basic_printing): New function.
13717 (selftest::assert_pp_format): New function.
13718 (selftest::test_pp_format): New function.
13719 (selftest::pretty_print_c_tests): New function.
13720 * selftest-run-tests.c (selftest::run_tests): Call
13721 selftest::pretty_print_c_tests.
13722 * selftest.h (pretty_print_c_tests): New declaration.
13724 2016-06-07 Jan Hubicka <hubicka@ucw.cz>
13726 * invoke.texi (max-loop-headers-insns): Document.
13727 * params.def (PARAM_MAX_LOOP_HEADER_INSNS): New.
13728 * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Update comment.
13729 (ch_base::copy_headers): Use PARAM_MAX_LOOP_HEADER_INSNS.
13731 2016-06-08 Richard Biener <rguenther@suse.de>
13733 * tree-vect-stmts.c (vectorizable_load): Remove restrictions
13734 on strided SLP loads and fall back to scalar loads in case
13735 we can't chunk them.
13737 2016-06-08 Richard Biener <rguenther@suse.de>
13739 PR tree-optimization/71452
13740 * tree-ssa.c (non_rewritable_lvalue_p): Make sure that the
13741 type used for the SSA rewrite has enough precision to cover
13742 the dynamic type of the location.
13744 2016-06-08 Jakub Jelinek <jakub@redhat.com>
13745 Richard Biener <rguenther@suse.de>
13748 * fold-const.c (fold_comparison): Handle CONSTANT_CLASS_P (base0)
13749 the same as DECL_P (base0) for indirect_base0. Use equality_code
13750 in one further place.
13752 2016-06-08 Richard Sandiford <richard.sandiford@arm.com>
13754 * expmed.c (store_bit_field_1): Do not restrict a multiword op0
13755 to one word if the field is known to overlap other words.
13756 (extract_bit_field_1): Likewise.
13757 (store_split_bit_field): Remove compensating code.
13758 (extract_split_bit_field): Likewise.
13760 2016-06-08 Bernd Schmidt <bschmidt@redhat.com>
13764 * tree-ssa-strlen.c (handle_builtin_memcmp): Ignore debug insns.
13766 2016-06-08 Jiong Wang <jiong.wang@arm.com>
13768 * config/aarch64/aarch64-builtins.def (faddp): New builtins for modes in
13770 * config/aarch64/aarch64-simd.md (aarch64_faddp<mode>): New.
13771 (arch64_addpv4sf): Delete.
13772 (reduc_plus_scal_v4sf): Use "gen_aarch64_faddpv4sf" instead of
13773 "gen_aarch64_addpv4sf".
13774 * config/aarch64/arm_neon.h (vpadd_f32): Remove inline assembly. Use
13776 (vpadds_f32): Likewise.
13777 (vpaddq_f32): Likewise.
13778 (vpaddq_f64): Likewise.
13780 2016-06-08 Jiong Wang <jiong.wang@arm.com>
13782 * config/aarch64/aarch64-builtins.def (fabd): New builtins for modes
13784 * config/aarch64/aarch64-simd.md (fabd<mode>_3): Extend modes from VDQF
13785 to VALLF. Rename to "fabd<mode>3".
13786 "*fabd_scalar<mode>3): Delete.
13787 * config/aarch64/arm_neon.h (vabds_f32): Remove inline assembly.
13789 (vabdd_f64): Likewise.
13790 (vabd_f32): Likewise.
13791 (vabd_f64): Likewise.
13792 (vabdq_f32): Likewise.
13793 (vabdq_f64): Likewise.
13795 2016-06-08 Jiong Wang <jiong.wang@arm.com>
13797 * config/aarch64/aarch64-builtins.def (rsqrts): New builtins for modes
13799 * config/aarch64/aarch64-simd.md (aarch64_rsqrts_<mode>3): Rename to
13800 "aarch64_rsqrts<mode>".
13801 * config/aarch64/aarch64.c (get_rsqrts_type): Update gen* name.
13802 * config/aarch64/arm_neon.h (vrsqrtss_f32): Remove inline assembly. Use
13804 (vrsqrtsd_f64): Likewise.
13805 (vrsqrts_f32): Likewise.
13806 (vrsqrts_f64): Likewise.
13807 (vrsqrtsq_f32): Likewise.
13808 (vrsqrtsq_f64): Likewise.
13810 2016-06-08 Jiong Wang <jiong.wang@arm.com>
13812 * config/aarch64/aarch64-builtins.def (rsqrte): New builtins for modes
13814 * config/aarch64/aarch64-simd.md (aarch64_rsqrte_<mode>2): Rename to
13815 "aarch64_rsqrte<mode>".
13816 * config/aarch64/aarch64.c (get_rsqrte_type): Update gen* name.
13817 * config/aarch64/arm_neon.h (vrsqrts_f32): Remove inline assembly. Use
13819 (vrsqrted_f64): Likewise.
13820 (vrsqrte_f32): Likewise.
13821 (vrsqrte_f64): Likewise.
13822 (vrsqrteq_f32): Likewise.
13823 (vrsqrteq_f64): Likewise.
13825 2016-06-08 Jiong Wang <jiong.wang@arm.com>
13827 * config/aarch64/aarch64-builtins.def (scvtf): Register vector modes.
13829 (fcvtzs): Likewise.
13830 (fcvtzu): Likewise.
13831 * config/aarch64/aarch64-simd.md
13832 (<FCVT_F2FIXED:fcvt_fixed_insn><VDQF:mode>3): New.
13833 (<FCVT_FIXED2F:fcvt_fixed_insn><VDQ_SDI:mode>3): Likewise.
13834 * config/aarch64/arm_neon.h (vcvt_n_f32_s32): Remove inline assembly.
13836 (vcvt_n_f32_u32): Likewise.
13837 (vcvt_n_s32_f32): Likewise.
13838 (vcvt_n_u32_f32): Likewise.
13839 (vcvtq_n_f32_s32): Likewise.
13840 (vcvtq_n_f32_u32): Likewise.
13841 (vcvtq_n_f64_s64): Likewise.
13842 (vcvtq_n_f64_u64): Likewise.
13843 (vcvtq_n_s32_f32): Likewise.
13844 (vcvtq_n_s64_f64): Likewise.
13845 (vcvtq_n_u32_f32): Likewise.
13846 (vcvtq_n_u64_f64): Likewise.
13847 * config/aarch64/iterators.md (VDQ_SDI): New mode iterator.
13848 (VSDQ_SDI): Likewise.
13849 (fcvt_target): Support V4DI, V4SI and V2SI.
13850 (FCVT_TARGET): Likewise.
13852 2016-06-08 Jiong Wang <jiong.wang@arm.com>
13854 * config/aarch64/aarch64-builtins.c (TYPES_BINOP_USS): New
13855 (TYPES_BINOP_SUS): Likewise.
13856 (aarch64_simd_builtin_data): Update include file name.
13857 (aarch64_builtins): Likewise.
13858 * config/aarch64/aarch64-simd-builtins.def (scvtf): New entries
13859 for conversion between scalar float-point and fixed-point.
13861 (fcvtzs): Likewise.
13862 (fcvtzu): Likewise.
13863 * config/aarch64/aarch64.md
13864 (<FCVT_F2FIXED:fcvt_fixed_insn><GPF:mode>3: New
13865 pattern for conversion between scalar float to fixed-pointer.
13866 (<FCVT_FIXED2F:fcvt_fixed_insn><GPI:mode>: Likewise.
13867 (UNSPEC_FCVTZS): New UNSPEC enumeration.
13868 (UNSPEC_FCVTZU): Likewise.
13869 (UNSPEC_SCVTF): Likewise.
13870 (UNSPEC_UCVTF): Likewise.
13871 * config/aarch64/arm_neon.h (vcvtd_n_f64_s64): Remove inline assembly.
13873 (vcvtd_n_f64_u64): Likewise.
13874 (vcvtd_n_s64_f64): Likewise.
13875 (vcvtd_n_u64_f64): Likewise.
13876 (vcvtd_n_f32_s32): Likewise.
13877 (vcvts_n_f32_u32): Likewise.
13878 (vcvtd_n_s32_f32): Likewise.
13879 (vcvts_n_u32_f32): Likewise.
13880 * config/aarch64/iterators.md (fcvt_target): Support integer to float
13882 (FCVT_TARGET): Likewise.
13883 (FCVT_FIXED2F): New iterator.
13884 (FCVT_F2FIXED): Likewise.
13885 (fcvt_fixed_insn): New define_int_attr.
13887 2016-06-07 Jan Hubicka <hubicka@ucw.cz>
13889 * predict.c (pass_strip_predict_hints::execute): Cleanup CFG if
13890 some statements was removed.
13892 2016-06-08 Alan Hayward <alan.hayward@arm.com>
13894 * tree-vect-data-refs.c (vect_analyze_data_refs): Remove debug newline.
13895 * tree-vect-loop-manip.c (slpeel_make_loop_iterate_ntimes): likewise.
13896 (vect_can_advance_ivs_p): likewise.
13897 (vect_update_ivs_after_vectorizer): likewise.
13898 * tree-vect-loop.c (vect_determine_vectorization_factor): likewise.
13899 (vect_analyze_scalar_cycles_1): likewise.
13900 (vect_analyze_loop_operations): likewise.
13901 (report_vect_op): likewise.
13902 (vect_is_slp_reduction): likewise.
13903 (vect_is_simple_reduction): likewise.
13904 (get_initial_def_for_induction): likewise.
13905 (vect_transform_loop): likewise.
13906 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): likewise.
13907 (vect_recog_sad_pattern): likewise.
13908 (vect_recog_widen_sum_pattern): likewise.
13909 (vect_recog_widening_pattern): likewise.
13910 (vect_recog_divmod_pattern): likewise.
13911 * tree-vect-slp.c (vect-build-slp_tree_1): likewise.
13912 (vect_analyze_slp_instance): likewise.
13913 (vect_transform_slp_perm_load): likewise.
13914 (vect_schedule_slp_instance): likewise.
13916 2016-06-07 Jan Hubicka <hubicka@ucw.cz>
13918 * predict.c (predict_iv_comparison): Mention that heuristics is broken.
13919 (return_prediction): PRED_CONST_RETURN predict return as not taken.
13920 * predict.def (PRED_CONTINUE): Change hitrate 50->67
13921 (PRED_LOOP_BRANCH): Document predictor as broken.
13922 (PRED_LOOP_EXIT): Change hitrate 91->92.
13923 (PRED_LOOP_EXTRA_EXIT): Change hitrate 91->83.
13924 (PRED_POINTER, PRED_TREE_POINTER): Change hitrate 85->70.
13925 (PRED_OPCODE_POSITIVE): Change hitrate 79->64.
13926 (PRED_OPCODE_NONEQUAL): Change hitrate 91->66.
13927 (PRED_TREE_OPCODE_POSITIVE): Change hitrate 73->64
13928 (PRED_TREE_OPCODE_NONEQUAL): Chnage hitrate 72->66
13929 (PRED_CALL): Chane hitrate 71->67.
13930 (PRED_TREE_EARLY_RETURN): Document issues, change hitrate 61->54.
13931 (PRED_GOTO): Document as unused right now.
13932 (PRED_CONST_RETURN): Change hitrate 67->69
13933 (PRED_NEGATIVE_RETURN): Change hitrate 96->98
13934 (PRED_NULL_RETURN): Change hitrate 91->90.
13935 (PRED_LOOP_IV_COMPARE_GUESS): Change hitrate to 98.
13936 (PRED_FORTRAN_FAIL_ALLOC): Change hitrate to 62; document issues.
13937 (PRED_FORTRAN_SIZE_ZERO): Change hitrate to 99.
13939 2016-06-07 Bill Seurer <seurer@linux.vnet.ibm.com>
13941 * config/rs6000/altivec.h: Add __builtin_vec_mul.
13942 * config/rs6000/rs6000-builtin.def (vec_mul): Change vec_mul to a
13943 special case Altivec builtin.
13944 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove
13945 VSX_BUILTIN_VEC_MUL (replaced with special case code).
13946 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
13947 code for ALTIVEC_BUILTIN_VEC_MUL.
13948 * config/rs6000/rs6000.c (altivec_init_builtins): Add definition
13949 for __builtin_vec_mul.
13951 2016-06-07 Peter Bergner <bergner@vnet.ibm.com>
13953 * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mhtm and
13956 2016-06-07 David Malcolm <dmalcolm@redhat.com>
13958 * spellcheck.c (selftest::test_find_closest_string): New function.
13959 (spellcheck_c_tests): Call the above.
13961 2016-06-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13963 * simplify-rtx.c (simplify_cond_clz_ctz): Delete 'mode' local variable.
13965 2016-06-07 Jakub Jelinek <jakub@redhat.com>
13967 * config/i386/sse.md (avx_vec_concat<mode>): Add v=v,vm and
13968 Yv=Yv,C alternatives.
13970 2016-06-07 Richard Biener <rguenther@suse.de>
13973 * common.opt (ffast-math): Make Optimization.
13975 2016-06-07 Simon Dardis <simon.dardis@imgtec.com>
13976 Prachi Godbole <prachi.godbole@imgtec.com>
13978 * config/mips/p5600.md (p5600_fpu_fadd): Remove checking for
13979 `fabs' and `fneg' type attributes.
13980 (p5600_fpu_fabs): Add `fmove' to the comment.
13982 2016-06-07 Jan Hubicka <hubicka@ucw.cz>
13984 * gimple.c: Include builtins.h
13985 (gimple_inexpensive_call_p): New function.
13986 * gimple.h (gimple_inexpensive_call_p): Declare.
13987 * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Use it.
13988 * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Likewise;
13991 2016-06-07 Paolo Carlini <paolo.carlini@oracle.com>
13993 * diagnostic.c (diagnostic_impl, diagnostic_n_impl): New.
13994 (inform, inform_at_rich_loc, inform_n, warning, warning_at,
13995 warning_at_rich_loc, warning_n, pedwarn, permerror,
13996 permerror_at_rich_loc, error, error_n, error_at, error_at_rich_loc,
13997 sorry, fatal_error, internal_error, internal_error_no_backtrace):
14000 2016-06-07 Richard Biener <rguenther@suse.de>
14002 PR tree-optimization/71428
14003 * tree-ssa-math-opts.c (perform_symbolic_merge): Properly distinguish
14004 BIT_FIELD_REF op vs. load.
14006 2016-06-07 Richard Biener <rguenther@suse.de>
14008 PR middle-end/71423
14009 * match.pd ((X | ~Y) -> Y <= X): Properly invert the comparison
14012 2016-06-06 John David Anglin <danglin@gcc.gnu.org>
14014 * config/pa/pa.md (call): Generate indirect long calls to non-local
14015 functions on TARGET_64BIT.
14016 (call_value): Likewise.
14018 2016-06-06 John David Anglin <danglin@gcc.gnu.org>
14020 * config/pa/pa.md (call_val_reg_64bit): Remove "reg: DI " clobber from
14021 pattern and subsequent splitters.
14022 (call_val_reg_64bit_post_reload): Likewise.
14024 2016-06-07 Kugan Vivekanandarajah <kuganv@linaro.org>
14026 PR middle-end/71408
14027 * tree-ssa-reassoc.c (zero_one_operation): Fix NEGATE_EXPR operand for
14028 propagate_op_to_single_use.
14030 2016-06-07 Kugan Vivekanandarajah <kuganv@linaro.org>
14032 PR middle-end/71281
14033 * tree-ssa-reassoc.c (reassociate_bb): Set uid for negate stmt.
14035 2016-06-07 Uros Bizjak <ubizjak@gmail.com>
14037 * config/i386/i386.h (enum ix86_enitity): Add X86_DIRFLAG.
14038 (enum x86_dirflag_state): New enum.
14039 (NUM_MODES_FOR_MODE_SWITCHING): Add X86_DIRFLAG_ANY.
14040 (machine_function): Remove needs_cld.
14041 (ix86_current_function_needs_cld): Remove.
14042 * config/i386/i386.c (ix86_set_func_type): Set
14043 ix86_optimize_mode_switching[X86_DIRFLAG] to 1.
14044 (ix86_expand_prologue): Do not emit CLD here.
14045 (ix86_dirflag_mode_needed): New function.
14046 (ix86_dirflag_mode_entry): Ditto.
14047 (ix86_mode_needed): Handle X86_DIRFLAG entity.
14048 (ix86_mode_after): Ditto.
14049 (ix86_mode_entry): Ditto.
14050 (ix86_mode_exit): Ditto.
14051 (ix86_emit_mode_set): Ditto.
14052 * config/i386/i386.md (strmov_singleop): Set
14053 ix86_optimize_mode_switching[X86_DIRFLAG] to 1 for TARGET_CLD.
14054 Do not set ix86_current_function_needs_cld.
14056 (strset_singleop): Ditto.
14058 (cmpstrnqi_nz_1): Ditto.
14059 (cmpstrnqi_1): Ditto.
14060 (strlenqi_1): Ditto.
14062 2016-06-06 Jakub Jelinek <jakub@redhat.com>
14064 PR tree-optimization/71259
14065 * tree-vect-slp.c (vect_get_constant_vectors): For
14066 VECTOR_BOOLEAN_TYPE_P, return all ones constant instead of
14067 one for constant op, and use COND_EXPR for non-constant.
14069 2016-06-06 David Malcolm <dmalcolm@redhat.com>
14071 * Makefile.in (OBJS): Add function-tests.o,
14072 hash-map-tests.o, hash-set-tests.o, rtl-tests.o,
14073 selftest-run-tests.o.
14074 (OBJS-libcommon): Add selftest.o.
14075 (OBJS-libcommon-target): Add selftest.o.
14076 (all.internal): Add "selftest".
14077 (all.cross): Likewise.
14078 (selftest): New phony target.
14079 (s-selftest): New target.
14080 (selftest-gdb): New phony target.
14081 (COLLECT2_OBJS): Add selftest.o.
14082 * bitmap.c: Include "selftest.h".
14083 (selftest::test_gc_alloc): New function.
14084 (selftest::test_set_range): New function.
14085 (selftest::test_clear_bit_in_middle): New function.
14086 (selftest::test_copying): New function.
14087 (selftest::test_bitmap_single_bit_set_p): New function.
14088 (selftest::bitmap_c_tests): New function.
14089 * common.opt (fself-test): New.
14090 * diagnostic-show-locus.c: Include "selftest.h".
14091 (make_range): New function.
14092 (test_range_contains_point_for_single_point): New function.
14093 (test_range_contains_point_for_single_line): New function.
14094 (test_range_contains_point_for_multiple_lines): New function.
14095 (assert_eq): New function.
14096 (test_get_line_width_without_trailing_whitespace): New function.
14097 (selftest::diagnostic_show_locus_c_tests): New function.
14098 * et-forest.c: Include "selftest.h".
14099 (selftest::test_single_node): New function.
14100 (selftest::test_simple_tree): New function.
14101 (selftest::test_disconnected_nodes): New function.
14102 (selftest::et_forest_c_tests): New function.
14103 * fold-const.c: Include "selftest.h".
14104 (selftest::assert_binop_folds_to_const): New function.
14105 (selftest::assert_binop_folds_to_nonlvalue): New function.
14106 (selftest::test_arithmetic_folding): New function.
14107 (selftest::fold_const_c_tests): New function.
14108 * function-tests.c: New file.
14109 * gimple.c: Include "selftest.h".
14110 Include "gimple-pretty-print.h".
14111 (selftest::verify_gimple_pp): New function.
14112 (selftest::test_assign_single): New function.
14113 (selftest::test_assign_binop): New function.
14114 (selftest::test_nop_stmt): New function.
14115 (selftest::test_return_stmt): New function.
14116 (selftest::test_return_without_value): New function.
14117 (selftest::gimple_c_tests): New function.
14118 * hash-map-tests.c: New file.
14119 * hash-set-tests.c: New file.
14120 * input.c: Include "selftest.h".
14121 (selftest::assert_loceq): New function.
14122 (selftest::test_accessing_ordinary_linemaps): New function.
14123 (selftest::test_unknown_location): New function.
14124 (selftest::test_builtins): New function.
14125 (selftest::test_reading_source_line): New function.
14126 (selftest::input_c_tests): New function.
14127 * rtl-tests.c: New file.
14128 * selftest-run-tests.c: New file.
14129 * selftest.c: New file.
14130 * selftest.h: New file.
14131 * spellcheck.c: Include "selftest.h".
14132 (selftest::levenshtein_distance_unit_test_oneway): New function,
14133 adapted from testsuite/gcc.dg/plugin/levenshtein_plugin.c.
14134 (selftest::levenshtein_distance_unit_test): Likewise.
14135 (selftest::spellcheck_c_tests): Likewise.
14136 * toplev.c: Include selftest.h.
14137 (toplev::run_self_tests): New.
14138 (toplev::main): Handle -fself-test.
14139 * toplev.h (toplev::run_self_tests): New.
14140 * tree.c: Include "selftest.h".
14141 (selftest::test_integer_constants): New function.
14142 (selftest::test_identifiers): New function.
14143 (selftest::test_labels): New function.
14144 (selftest::tree_c_tests): New function.
14145 * tree-cfg.c: Include "selftest.h".
14146 (selftest::push_fndecl): New function.
14147 (selftest::test_linear_chain): New function.
14148 (selftest::test_diamond): New function.
14149 (selftest::test_fully_connected): New function.
14150 (selftest::tree_cfg_c_tests): New function.
14151 * vec.c: Include "selftest.h".
14152 (selftest::safe_push_range): New function.
14153 (selftest::test_quick_push): New function.
14154 (selftest::test_safe_push): New function.
14155 (selftest::test_truncate): New function.
14156 (selftest::test_safe_grow_cleared): New function.
14157 (selftest::test_pop): New function.
14158 (selftest::test_safe_insert): New function.
14159 (selftest::test_ordered_remove): New function.
14160 (selftest::test_unordered_remove): New function.
14161 (selftest::test_block_remove): New function.
14162 (selftest::reverse_cmp): New function.
14163 (selftest::test_qsort): New function.
14164 (selftest::vec_c_tests): New function.c.
14165 * wide-int.cc: Include selftest.h and wide-int-print.h.
14166 (selftest::from_int <wide_int>): New function.
14167 (selftest::from_int <offset_int>): New function.
14168 (selftest::from_int <widest_int>): New function.
14169 (selftest::assert_deceq): New function.
14170 (selftest::assert_hexeq): New function.
14171 (selftest::test_printing <VALUE_TYPE>): New function template.
14172 (selftest::test_ops <VALUE_TYPE>): New function template.
14173 (selftest::test_comparisons <VALUE_TYPE>): New function template.
14174 (selftest::run_all_wide_int_tests <VALUE_TYPE>): New function
14176 (selftest::wide_int_cc_tests): New function.
14178 2016-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14180 PR middle-end/37780
14181 * ifcvt.c (noce_try_ifelse_collapse): New function.
14183 (noce_process_if_block): Call noce_try_ifelse_collapse.
14184 * simplify-rtx.c (simplify_cond_clz_ctz): New function.
14185 (simplify_ternary_operation): Use the above to simplify
14186 conditional CLZ/CTZ expressions.
14188 2016-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14190 PR middle-end/37780
14191 * config/aarch64/aarch64.md (ctz<mode>2): Convert to
14192 define_insn_and_split.
14194 2016-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14196 PR middle-end/37780
14197 * config/arm/arm.md (ctzsi2): Convert to define_insn_and_split.
14199 2016-06-06 Bernd Edlinger <bernd.edlinger@hotmail.de>
14202 * cfgexpand.c (expand_asm_loc): Remove handling for ADDR_EXPR.
14203 Implicitly clobber memory for basic asm with non-empty assembler
14204 string. Use targetm.md_asm_adjust also here.
14205 * compare-elim.c (arithmetic_flags_clobber_p): Use asm_noperands here.
14206 * final.c (final_scan_insn): Handle basic asm in PARALLEL block.
14207 * gimple.c (gimple_asm_clobbers_memory_p): Handle basic asm with
14208 non-empty assembler string.
14209 * ira.c (compute_regs_asm_clobbered): Use asm_noperands here.
14210 * recog.c (asm_noperands): Handle basic asm in PARALLEL block.
14211 (decode_asm_operands): Handle basic asm in PARALLEL block.
14212 (extract_insn): Handle basic asm in PARALLEL block.
14213 * doc/extend.texi: Mention new behavior of basic asm.
14214 * config/ia64/ia64 (rtx_needs_barrier): Handle ASM_INPUT here.
14215 * config/pa/pa.c (branch_to_delay_slot_p, branch_needs_nop_p,
14216 branch_needs_nop_p): Use asm_noperands.
14218 2016-06-06 Jose E. Marchesi <jose.marchesi@oracle.com>
14220 * config/sparc/sparc.md (cpu): Add niagara7 cpu type.
14221 Include the M7 SPARC DFA scheduler.
14222 New attribute v3pipe.
14223 Annotate insns with v3pipe where appropriate.
14224 Define cpu_feature vis4.
14225 Add lzd instruction type and set it on clzdi_sp64 and clzsi_sp64.
14226 Add (V8QI "8") to vbits.
14227 Add insns {add,sub}v8qi3
14228 Add insns ss{add,sub}v8qi3
14229 Add insns us{add,sub}{v8qi,v4hi}3
14230 Add insns {min,max}{v8qi,v4hi,v2si}3
14231 Add insns {minu,maxu}{v8qi,v4hi,v2si}3
14232 Add insns fpcmp{le,gt,ule,ug,ule,ugt}{8,16,32}_vis.
14233 * config/sparc/niagara4.md: Add a comment explaining the
14234 discrepancy between the documented latenty numbers and the
14236 * config/sparc/niagara7.md: New file.
14237 * configure.ac (HAVE_AS_SPARC5_VIS4): Define if the assembler
14238 supports SPARC5 and VIS 4.0 instructions.
14239 * configure: Regenerate.
14240 * config.in: Likewise.
14241 * config.gcc: niagara7 is a supported cpu in sparc*-*-* targets.
14242 * config/sparc/sol2.h (ASM_CPU32_DEFAUILT_SPEC): Set for
14243 TARGET_CPU_niagara7.
14244 (ASM_CPU64_DEFAULT_SPEC): Likewise.
14245 (CPP_CPU_SPEC): Handle niagara7.
14246 (ASM_CPU_SPEC): Likewise.
14247 * config/sparc/sparc-opts.h (processor_type): Add
14248 PROCESSOR_NIAGARA7.
14249 (mvis4): New option.
14250 * config/sparc/sparc.h (TARGET_CPU_niagara7): Define.
14251 (AS_NIAGARA7_FLAG): Define.
14252 (ASM_CPU64_DEFAULT_SPEC): Set for niagara7.
14253 (CPP_CPU64_DEFAULT_SPEC): Likewise.
14254 (CPP_CPU_SPEC): Handle niagara7.
14255 (ASM_CPU_SPEC): Likewise.
14256 * config/sparc/sparc.c (niagara7_costs): Define.
14257 (sparc_option_override): Handle niagara7 and adjust cache-related
14258 parameters with better values for niagara cpus. Also support VIS4.
14259 (sparc32_initialize_trampoline): Likewise.
14260 (sparc_use_sched_lookahead): Likewise.
14261 (sparc_issue_rate): Likewise.
14262 (sparc_register_move_cost): Likewise.
14263 (dump_target_flag_bits): Support VIS4.
14264 (sparc_vis_init_builtins): Likewise.
14265 (sparc_builtins): Likewise.
14266 * config/sparc/sparc-c.c (sparc_target_macros): Define __VIS__ for
14268 * config/sparc/driver-sparc.c (cpu_names): Add SPARC-M7 and
14270 * config/sparc/sparc.opt (sparc_processor_type): New value
14272 * config/sparc/visintrin.h (__attribute__): Prototypes for the
14274 * doc/invoke.texi (SPARC Options): Document -mcpu=niagara7 and
14276 * doc/extend.texi (SPARC VIS Built-in Functions): Document the
14279 2016-06-06 Jonathan Wakely <jwakely@redhat.com>
14281 * doc/sourcebuild.texi (Directives): Remove extra closing braces.
14283 2016-06-06 Richard Biener <rguenther@suse.de>
14285 PR tree-optimization/71398
14286 * tree-ssa-loop-ivcanon.c (unloop_loops): First unloop, then
14289 2016-06-05 James Bowman <james.bowman@ftdichip.com>
14291 * config/ft32/ft32.c (ft32_setup_incoming_varargs,
14292 ft32_expand_prolog, ft32_expand_epilogue):
14293 Handle pretend_args.
14294 * config/ft32/ft32.h: Remove OUTGOING_REG_PARM_STACK_SPACE.
14295 * config/ft32/ft32.md: Add pretend_returner.
14297 2016-06-06 Uros Bizjak <ubizjak@gmail.com>
14300 * config/i386/i386.c (ix86_avx256_split_vector_move_misalign):
14301 Copy op1 RTX to avoid invalid sharing.
14302 (ix86_expand_vector_move_misalign): Ditto.
14304 2016-06-05 John David Anglin <danglin@gcc.gnu.org>
14306 * expr.c (move_by_pieces_d::generate): Mark mode parameter with
14309 2016-06-05 Jan Hubicka <hubicka@ucw.cz>
14311 * predict.c (predicted_by_loop_heuristics_p): New function.
14312 (predict_iv_comparison): Use it.
14313 (predict_loops): Walk from innermost loops; do not predict edges
14314 leaving multiple loops multiple times; implement
14315 PRED_LOOP_ITERATIONS_MAX heuristics.
14316 * predict.def (PRED_LOOP_ITERATIONS_MAX): New predictor.
14318 2016-06-05 Jan Hubicka <hubicka@ucw.cz>
14320 * cfg.c (check_bb_profile): Do not report mismatched profiles when
14321 only edges out of BB are EH edges.
14323 2016-06-04 Martin Sebor <msebor@redhat.com>
14324 Marcin Baczyński <marbacz@gmail.com>
14327 * doc/invoke.texi (-Wreturn-type): Mention not warning on return with
14328 a void expression in a void function.
14330 2016-06-03 Jan Hubicka <hubicka@ucw.cz>
14332 * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Do not check
14333 aux; dump reasons of decisions.
14334 (should_duplicate_loop_header_p): Likewise.
14335 (do_while_loop_p): Likewise.
14336 (ch_base::copy_headers): Dump asi num insns duplicated.
14338 2016-06-04 Jakub Jelinek <jakub@redhat.com>
14340 PR tree-optimization/71405
14341 * tree-ssa.c (execute_update_addresses_taken): For clobber with
14342 incompatible type, build a new clobber with the right type instead
14343 of building a VIEW_CONVERT_EXPR around it.
14345 2016-06-04 Oleg Endo <olegendo@gcc.gnu.org>
14347 PR tree-optimization/52171
14348 * config/sh/sh.c (sh_use_by_pieces_infrastructure_p): Use
14349 by_pieces_ninsns instead of move_by_pieces_ninsns.
14351 2016-06-04 Oleg Endo <olegendo@gcc.gnu.org>
14353 * config/sh/sh.c (sh_print_operand_address): Don't use hardcoded 'r0'
14354 for reg+reg addressing mode.
14356 2016-06-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
14358 * rs6000-c.c (c/c-tree.h): Add #include.
14359 (altivec_resolve_overloaded_builtin): Handle ARRAY_TYPE arguments
14360 in C++ when found in the base position of vec_ld or vec_st.
14362 2016-06-03 Jan Hubicka <hubicka@ucw.cz>
14364 * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop): Avoid
14365 use of profile unless profile status is PROFILE_READ.
14366 * profile.c (compute_branch_probabilities): Set profile status
14367 only after reporting predictor hitrates.
14369 2016-06-03 Joseph Myers <joseph@codesourcery.com>
14373 * common.opt (ffp-int-builtin-inexact): New option.
14374 * doc/invoke.texi (-fno-fp-int-builtin-inexact): Document.
14375 * doc/md.texi (floor@var{m}2, btrunc@var{m}2, round@var{m}2)
14376 (ceil@var{m}2): Document dependence on this option.
14377 * ipa-inline-transform.c (inline_call): Handle
14378 flag_fp_int_builtin_inexact.
14379 * ipa-inline.c (can_inline_edge_p): Likewise.
14380 * config/i386/i386.md (rintxf2): Do not test
14381 flag_unsafe_math_optimizations.
14382 (rint<mode>2_frndint): New define_insn.
14383 (rint<mode>2): Do not test flag_unsafe_math_optimizations for 387
14384 or !flag_trapping_math for SSE. Just use gen_rint<mode>2_frndint
14385 for 387 instead of extending and truncating.
14386 (frndintxf2_<rounding>): Test flag_fp_int_builtin_inexact ||
14387 !flag_trapping_math instead of flag_unsafe_math_optimizations.
14388 Change to frndint<mode>2_<rounding>.
14389 (frndintxf2_<rounding>_i387): Likewise. Change to
14390 frndint<mode>2_<rounding>_i387.
14391 (<rounding_insn>xf2): Likewise.
14392 (<rounding_insn><mode>2): Test flag_fp_int_builtin_inexact ||
14393 !flag_trapping_math instead of flag_unsafe_math_optimizations for
14394 x87. Test TARGET_ROUND || !flag_trapping_math ||
14395 flag_fp_int_builtin_inexact instead of !flag_trapping_math for
14396 SSE. Use ROUND_NO_EXC in constant operand of
14397 gen_sse4_1_round<mode>2. Just use gen_frndint<mode>2_<rounding>
14398 for 387 instead of extending and truncating.
14400 2016-06-03 H.J. Lu <hongjiu.lu@intel.com>
14401 Julia Koval <julia.koval@intel.com>
14413 * config/i386/i386-protos.h (ix86_epilogue_uses): New prototype.
14414 * config/i386/i386.c (ix86_conditional_register_usage): Preserve
14415 all registers, except for function return registers if there are
14416 no caller-saved registers.
14417 (ix86_set_func_type): New function.
14418 (ix86_set_current_function): Call ix86_set_func_type to set
14419 no_caller_saved_registers and func_type. Call reinit_regs if
14420 caller-saved registers are changed. Don't allow MPX, SSE, MMX
14421 nor x87 instructions in interrupt handler nor function with
14422 no_caller_saved_registers attribute.
14423 (ix86_function_ok_for_sibcall): Return false if there are no
14424 caller-saved registers.
14425 (type_natural_mode): Don't warn ABI change for MMX in interrupt
14427 (ix86_function_arg_advance): Skip for callee in interrupt handler.
14428 (ix86_function_arg): Return special arguments in interrupt handler.
14429 (ix86_promote_function_mode): Promote pointer to word_mode only
14430 for normal functions.
14431 (ix86_can_use_return_insn_p): Don't use `ret' instruction in
14433 (ix86_epilogue_uses): New function.
14434 (ix86_hard_regno_scratch_ok): Likewise.
14435 (ix86_save_reg): Preserve all registers in interrupt handler
14436 after reload. Preserve all registers, except for function return
14437 registers, if there are no caller-saved registers after reload.
14438 (find_drap_reg): Always use callee-saved register if there are
14439 no caller-saved registers.
14440 (ix86_minimum_incoming_stack_boundary): Return MIN_STACK_BOUNDARY
14441 for interrupt handler.
14442 (ix86_expand_prologue): Don't allow DRAP in interrupt handler.
14443 Emit cld instruction if stringops are used in interrupt handler
14444 or interrupt handler isn't a leaf function.
14445 (ix86_expand_epilogue): Generate interrupt return for interrupt
14446 handler and pop the 'ERROR_CODE' off the stack before interrupt
14447 return in exception handler.
14448 (ix86_expand_call): Disallow calling interrupt handler directly.
14449 If there are no caller-saved registers, mark all registers that
14450 are clobbered by the call which returns as clobbered.
14451 (ix86_handle_no_caller_saved_registers_attribute): New function.
14452 (ix86_handle_interrupt_attribute): Likewise.
14453 (ix86_attribute_table): Add interrupt and no_caller_saved_registers
14455 (TARGET_HARD_REGNO_SCRATCH_OK): Likewise.
14456 * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Use argument
14457 accumulation in interrupt function if stack may be realigned to
14459 (EPILOGUE_USES): New.
14460 (function_type): New enum.
14461 (machine_function): Add func_type and no_caller_saved_registers.
14462 * config/i386/i386.md (UNSPEC_INTERRUPT_RETURN): New.
14463 (interrupt_return): New pattern.
14464 * doc/extend.texi: Document x86 interrupt and
14465 no_caller_saved_registers attributes.
14467 2016-06-03 Bernd Schmidt <bschmidt@redhat.com>
14469 PR tree-optimization/52171
14470 * builtins.c (expand_cmpstrn_or_cmpmem): Delete, moved elsewhere.
14471 (expand_builtin_memcmp): New arg RESULT_EQ. All callers changed.
14472 Look for constant strings. Move some code to emit_block_cmp_hints
14474 * builtins.def (BUILT_IN_MEMCMP_EQ): New.
14475 * defaults.h (COMPARE_MAX_PIECES): New macro.
14476 * expr.c (move_by_pieces_d, store_by_pieces_d): Remove old structs.
14477 (move_by_pieces_1, store_by_pieces_1, store_by_pieces_2): Remvoe.
14478 (clear_by_pieces_1): Don't declare. Move definition before use.
14479 (can_do_by_pieces): New static function.
14480 (can_move_by_pieces): Use it. Return bool.
14481 (by_pieces_ninsns): Renamed from move_by_pieces_ninsns. New arg
14482 OP. All callers changed. Handle COMPARE_BY_PIECES.
14483 (class pieces_addr); New.
14484 (pieces_addr::pieces_addr, pieces_addr::decide_autoinc,
14485 pieces_addr::adjust, pieces_addr::increment_address,
14486 pieces_addr::maybe_predec, pieces_addr::maybe_postinc): New member
14488 (class op_by_pieces_d): New.
14489 (op_by_pieces_d::op_by_pieces_d, op_by_pieces_d::run): New member
14491 (class move_by_pieces_d, class compare_by_pieces_d,
14492 class store_by_pieces_d): New subclasses of op_by_pieces_d.
14493 (move_by_pieces_d::prepare_mode, move_by_pieces_d::generate,
14494 move_by_pieces_d::finish_endp, store_by_pieces_d::prepare_mode,
14495 store_by_pieces_d::generate, store_by_pieces_d::finish_endp,
14496 compare_by_pieces_d::generate, compare_by_pieces_d::prepare_mode,
14497 compare_by_pieces_d::finish_mode): New member functions.
14498 (compare_by_pieces, emit_block_cmp_via_cmpmem): New static
14500 (expand_cmpstrn_or_cmpmem): Moved here from builtins.c.
14501 (emit_block_cmp_hints): New function.
14502 (move_by_pieces, store_by_pieces, clear_by_pieces): Rewrite to just
14503 use the newly defined classes.
14504 * expr.h (by_pieces_constfn): New typedef.
14505 (can_store_by_pieces, store_by_pieces): Use it in arg declarations.
14506 (emit_block_cmp_hints, expand_cmpstrn_or_cmpmem): Declare.
14507 (move_by_pieces_ninsns): Don't declare.
14508 (can_move_by_pieces): Change return value to bool.
14509 * target.def (TARGET_USE_BY_PIECES_INFRASTRUCTURE_P): Update docs.
14510 (compare_by_pieces_branch_ratio): New hook.
14511 * target.h (enum by_pieces_operation): Add COMPARE_BY_PIECES.
14512 (by_pieces_ninsns): Declare.
14513 * targethooks.c (default_use_by_pieces_infrastructure_p): Handle
14515 (default_compare_by_pieces_branch_ratio): New function.
14516 * targhooks.h (default_compare_by_pieces_branch_ratio): Declare.
14517 * doc/tm.texi.in (STORE_MAX_PIECES, COMPARE_MAX_PIECES): Document.
14518 * doc/tm.texi: Regenerate.
14519 * tree-ssa-strlen.c: Include "builtins.h".
14520 (handle_builtin_memcmp): New static function.
14521 (strlen_optimize_stmt): Call it for BUILT_IN_MEMCMP.
14522 * tree.c (build_common_builtin_nodes): Create __builtin_memcmp_eq.
14524 2016-06-03 Alan Hayward <alan.hayward@arm.com>
14526 * tree-vect-stmts.c (vect_stmt_relevant_p): Do not vectorize non live
14527 relevant stmts which are simple and invariant.
14528 * tree-vect-loop.c (vectorizable_live_operation): Check relevance
14529 instead of simple and invariant
14531 2016-06-03 Alan Hayward <alan.hayward@arm.com>
14533 * tree-vect-loop.c (vect_analyze_loop_operations): Allow live stmts.
14534 (vectorizable_reduction): Check for new relevant state.
14535 (vectorizable_live_operation): vectorize live stmts using
14536 BIT_FIELD_REF. Remove special case for gimple assigns stmts.
14537 * tree-vect-stmts.c (is_simple_and_all_uses_invariant): New function.
14538 (vect_stmt_relevant_p): Check for stmts which are only used live.
14539 (process_use): Use of a stmt does not inherit it's live value.
14540 (vect_mark_stmts_to_be_vectorized): Simplify relevance inheritance.
14541 (vect_analyze_stmt): Check for new relevant state.
14542 * tree-vectorizer.h (vect_relevant): New entry for a stmt which is used
14543 outside the loop, but not inside it.
14545 2016-06-03 Alan Hayward <alan.hayward@arm.com>
14547 * tree-vectorizer.h (vect_get_vec_def_for_operand_1): New.
14548 * tree-vect-stmts.c (vect_get_vec_def_for_operand_1): New.
14549 (vect_get_vec_def_for_operand): Split out code.
14551 2016-06-03 Segher Boessenkool <segher@kernel.crashing.org>
14553 * config/rs6000/rs6000.md (define_peepholes for two mfcr's): Delete.
14555 2016-06-03 Alan Hayward <alan.hayward@arm.com>
14557 * tree-vect-stmts.c (vectorizable_call) Remove GOMP_SIMD_LANE code.
14559 2016-06-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14561 * config/arm/thumb1.md (*thumb1_mulsi3): Fix typos in comment.
14563 2016-06-03 Jakub Jelinek <jakub@redhat.com>
14565 PR middle-end/71387
14566 * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): If redirecting
14567 to noreturn e->callee->decl that has void return type and void
14568 arguments, adjust gimple_call_fntype and remove lhs even if it had
14569 previously addressable type.
14571 2016-06-02 Jeff Law <law@redhat.com>
14573 PR tree-optimization/71328
14574 * tree-ssa-threadupdate.c (duplicate_thread_path): Fix off-by-one
14575 error when checking for a jump back onto the copied path.
14577 2016-06-02 David Malcolm <dmalcolm@redhat.com>
14579 * config/microblaze/microblaze.c (get_branch_target): Add return
14580 NULL_RTX for the non-CALL_P case.
14581 (insert_wic_for_ilb_runout): Remove unused local "wic_addr1".
14582 (insert_wic): Remove unused local "j".
14584 2016-06-02 Martin Liska <mliska@suse.cz>
14586 * predict.def: Fix typo in PRED_FORTRAN_FAIL_IO display name.
14588 2016-06-02 H.J. Lu <hongjiu.lu@intel.com>
14589 Julia Koval <julia.koval@intel.com>
14591 * function.c (assign_parm_setup_stack): Force source into a
14592 register if needed.
14593 * target.def (function_incoming_arg): Update documentation to
14594 allow arbitrary address computation based on hard register.
14595 * doc/tm.texi: Regenerated.
14597 2016-06-02 Martin Liska <mliska@suse.cz>
14599 * predict.c (combine_predictions_for_bb): Fix first match in
14600 cases where a first predictor contains more than one occurence
14601 in list of predictors. Take the best value in such case.
14603 2016-06-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14605 PR rtl-optimization/71295
14606 * rtlanal.c (subreg_get_info): If taking a subreg at the requested
14607 offset would go over the size of the inner mode reject it.
14609 2016-06-02 Jakub Jelinek <jakub@redhat.com>
14611 * config/i386/sse.md (*vec_concatv4si): Use v=v,v instead of
14612 x=x,x and v=v,m instead of x=x,m.
14614 * config/i386/sse.md (*vec_concatv2si_sse4_1): Add avx512dq v=Yv,rm
14615 alternative. Change x=x,x alternative to v=Yv,Yv and x=rm,C
14616 alternative to v=rm,C.
14618 * config/i386/sse.md (*vec_concatv2di): Add x86_avx512dq v=Yv,rm
14619 alternative. Change x=xm,C alternative to v=vm,C, x=x,x alternative
14620 to v=Yv,Yv and x=x,m to v=v,m. Use maybe_evex prefix attribute
14621 instead of vex for the last two above mentioned alternatives.
14623 2016-06-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14626 * config/arm/arm.c (arm_output_multireg_pop): Guard "pop" on update.
14628 2016-06-02 Segher Boessenkool <segher@kernel.crashing.org>
14630 * config/rs6000/dfp.md (trunctddd2): Correct the "length" attribute.
14632 2016-06-01 David Malcolm <dmalcolm@redhat.com>
14634 * config/rl78/rl78.c (rl78_expand_prologue): Convert local
14635 from int to unsigned.
14637 2016-05-31 Michael Meissner <meissner@linux.vnet.ibm.com>
14639 * config/rs6000/vsx.md (vsx_splat_<mode>, V2DI/V2DF): Simplify
14640 alternatives, eliminating preferred register class. Add support
14641 for the MTVSRDD instruction in ISA 3.0.
14642 (vsx_splat_v4si_internal): Use splat_input_operand instead of
14643 reg_or_indexed_operand.
14644 (vsx_splat_v4sf_internal): Likewise.
14646 2016-05-31 Michael Meissner <meissner@linux.vnet.ibm.com>
14649 * config/rs6000/vsx.md (xxspltib_<mode>_nosplit): Add alternatives
14650 for loading up all 0's or all 1's.
14652 2016-06-01 Thomas Preud'homme <thomas.preudhomme@arm.com>
14654 * doc/sourcebuild.texi (arm_acq_rel): Document new effective target.
14656 2016-06-01 Eduard Sanou <dhole@openmailbox.org>
14658 * doc/cppenv.texi: Note that the `%s` in `date` is a non-standard
14660 * gcc.c (driver_handle_option): Call set_source_date_epoch_envvar.
14661 * gcc.c (set_source_date_epoch_envvar): New function, sets
14662 the SOURCE_DATE_EPOCH environment variable to the current time.
14664 2016-06-01 Eric Botcazou <ebotcazou@adacore.com>
14666 * tree-vect-loop.c (vect_determine_vectorization_factor): Also compute
14667 the factor for live Phi nodes.
14669 2016-06-01 Jan Hubicka <hubicka@ucw.cz>
14671 * loop-dolop.c (doloop_optimize): Us likely max iteration bound.
14672 * tree-parloops.c (parallelize_loops): likewise.
14673 * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop,
14674 tree_unswitch_outer_loop): likewise.
14676 2016-06-01 Jakub Jelinek <jakub@redhat.com>
14678 PR middle-end/71371
14679 * gimplify.c (gimplify_omp_for): Temporarily clear gimplify_omp_ctxp
14680 around creation of the temporary.
14682 2016-06-01 Richard Biener <rguenther@suse.de>
14684 PR tree-optimization/71366
14685 * tree-ssa-loop-ivcanon.c (edges_to_remove): New global.
14686 (unloop_loops): Move removing edges here ...
14687 (try_unroll_loop_completely): ... from here.
14688 (try_peel_loop): ... and here.
14689 (tree_unroll_loops_completely_1): Track parent loops via
14690 bitmap of header BBs.
14691 (tree_unroll_loops_completely): Adjust for that.
14693 2016-06-01 Kelvin Nilsen <kelvin@gcc.gnu.org>
14695 * config/rs6000/altivec.h (vec_slv): New macro.
14696 (vec_srv): New macro.
14697 * config/rs6000/altivec.md (UNSPEC_VSLV): New value.
14698 (UNSPEC_VSRV): New value.
14701 * config/rs6000/rs6000-builtin.def (vslv): New builtin definition.
14702 (vsrv): New builtin definition.
14703 * config/rs6000/rs6000-c.c (P9V_BUILTIN_VSLV): Macro expansion to
14704 define argument types for new builtin.
14705 (P9V_BUILTIN_VSRV): Macro expansion to define argument types for
14707 * doc/extend.texi: Document the new vec_vslv and vec_srv built-in
14710 2016-06-01 Uros Bizjak <ubizjak@gmail.com>
14711 Jocelyn Mayer <l_indien@magic.fr>
14714 * config/i386/driver-i386.c (host_detect_local_cpu): Correctly
14715 detect processor family for signature_CENTAUR_ebx.
14716 <case PROCESSOR_I486>: Pass c3, winchip2 or winchip-c6 for
14717 signature_CENTAUR_ebx.
14718 <case PROCESSOR _PENTIUMPRO>: Pass c3-2 for signature_CENTAUR_ebx.
14719 <default>: Pass x86-64 for has_longmode.
14721 2016-06-01 Nathan Sidwell <nathan@acm.org>
14723 * config/nvptx/nvptx.c (nvptx_assemble_undefined_decl): Reject
14726 2016-06-01 Richard Biener <rguenther@suse.de>
14728 PR tree-optimization/71261
14729 * tree-vect-patterns.c (check_bool_pattern): Gather a hash-set
14730 of stmts successfully put in the bool pattern. Remove
14731 single-use restriction.
14732 (adjust_bool_pattern_cast): Add cast at the use site via the
14733 pattern def sequence.
14734 (adjust_bool_pattern): Remove recursion, maintain a hash-map
14735 of patterned defs. Use the pattern def seqence instead of
14736 multiple independent patterns.
14737 (sort_after_uid): New qsort compare function.
14738 (adjust_bool_stmts): New function to process stmts in the bool
14739 pattern in IL order.
14740 (vect_recog_bool_pattern): Adjust.
14741 * tree-if-conv.c (ifcvt_split_def_stmt): Remove.
14742 (ifcvt_walk_pattern_tree): Likewise.
14743 (stmt_is_root_of_bool_pattern): Likewise.
14744 (ifcvt_repair_bool_pattern): Likewise.
14745 (tree_if_conversion): Do not call ifcvt_repair_bool_pattern.
14747 2016-06-01 Jan Hubicka <hubicka@ucw.cz>
14749 * loop-unroll.c (decide_unroll_constant_iterations,
14750 decide_unroll_runtime_iterations, decide_unroll_stupid): Use
14751 likely upper bounds.
14752 * loop-iv.c (find_simple_exit): Dump likely upper bounds.
14754 2016-06-01 Thomas Schwinge <thomas@codesourcery.com>
14756 * tree-core.h (enum omp_clause_code): Remove
14757 OMP_CLAUSE_DEVICE_RESIDENT. Adjust all users.
14759 2016-06-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14761 * config/arm/sync.md (arm_store_exclusive<mode>):
14762 Use 'H' output modifier on operands[2] rather than creating a new
14763 entry in out-of-bounds memory of the operands array.
14764 (arm_store_release_exclusivedi): Likewise.
14766 2016-06-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14768 * config/arm/arm.c (arm_fusion_enabled_p): New function.
14769 * config/arm/arm-protos.h (arm_fusion_enabled_p): Declare prototype.
14770 * config/arm/crypto.md (crypto_<crypto_pattern>, CRYPTO_UNARY):
14771 Add "=w,0" alternative. Enable it when AES/AESMC fusion is enabled.
14773 2016-06-01 Eric Botcazou <ebotcazou@adacore.com>
14775 * tree-vect-loop.c (vect_determine_vectorization_factor): Also take
14776 into account live statements for mask producers.
14778 2016-06-01 Richard Biener <rguenther@suse.de>
14780 PR tree-optimization/71311
14781 * match.pd (@0 < @1 && @0 < @2 -> @0 < min(@1,@2)): Add :c and
14782 restrict to non-INTEGER_CST @0.
14784 2016-06-01 Richard Biener <rguenther@suse.de>
14786 * match.pd ((A & B) - (A & ~B) -> B - (A ^ B)): Add missing :c.
14787 (relational patterns): Use :c to avoid pattern duplications.
14789 2016-06-01 Richard Biener <rguenther@suse.de>
14791 * genmatch.c (comparison_code_p): New predicate.
14792 (swap_tree_comparison): New function.
14793 (commutate): Add for_vec parameter to append new for entries.
14794 Support commutating relational operators by swapping it alongside
14796 (lower_commutative): Adjust.
14797 (dt_simplify::gen): Do not pass artificial operators to gen
14799 (decision_tree::gen): Do not add artificial operators as parameters.
14800 (parser::parse_expr): Verify operator commutativity when :c is
14801 applied. Allow :C to override this.
14802 * match.pd: Adjust patterns to use :C instead of :c where required.
14804 2016-06-01 Patrick Palka <ppalka@gcc.gnu.org>
14806 PR tree-optimization/71077
14807 * tree-ssa-threadedge.c (simplify_control_stmt_condition_1): In
14808 the combining step, use boolean_false_node and boolean_true_node
14809 as the designated false/true return values.
14811 2016-05-31 Jan Hubicka <hubicka@ucw.cz>
14813 * predict.def (PRED_LOOP_EXTRA_EXIT): Define.
14814 * predict.c (predict_iv_comparison): Also check PRED_LOOP_EXTRA_EXIT.
14815 (predict_extra_loop_exits): Use PRED_LOOP_EXTRA_EXIT instead of
14818 2016-05-31 Jan Hubicka <hubicka@ucw.cz>
14820 * doc/invoke.texi (-frename-registers): Drop -fpeel-loops from list
14821 of flags impliying the register renaming.
14822 * toplev.c (process_options): Do not imply flag_rename_registers with
14825 2016-05-31 Oleg Endo <olegendo@gcc.gnu.org>
14827 * config/sh/sh.h (ASM_OUTPUT_SYMBOL_REF): Remove macro and use the
14828 default implementation.
14830 2016-05-31 Nathan Sidwell <nathan@acm.org>
14832 * dwarf2out.c (cur_line_info_table): Add GTY marker.
14834 2016-05-31 Oleg Endo <olegendo@gcc.gnu.org>
14836 * config/sh/constraints.md (b): Remove constraint.
14837 * config/sh/predicates.md (arith_reg_operand): Remove
14839 * config/sh/sh-modes.def (PDI): Remove.
14840 * config/sh/sh.c (sh_target_reg_class,
14841 sh_optimize_target_register_callee_saved): Remove functions.
14842 (sh_option_override): Don't set MASK_SAVE_ALL_TARGET_REGS.
14843 (sh_expand_epilogue): Update comment.
14844 (sh_hard_regno_mode_ok, sh_register_move_cost, calc_live_regs,
14845 sh_secondary_reload): Remove TARGET_REGS related code.
14846 * config/sh/sh.h (FIRST_TARGET_REG, LAST_TARGET_REG,
14847 TARGET_REGISTER_P): Remove macros.
14848 (SH_DBX_REGISTER_NUMBER, REG_ALLOC_ORDER): Remove target regs.
14849 * config/sh/sh.md (PR_MEDIA_REG, T_MEDIA_REG, FR23_REG, TR0_REG,
14850 TR1_REG, TR2_REG): Remove constants.
14851 * config/sh/sh.opt (SAVE_ALL_TARGET_REGS): Remove.
14853 2016-05-31 Oleg Endo <olegendo@gcc.gnu.org>
14855 * config/sh/sh.md (adddi3, subdi3, negdi2, abs<mode>2): Remove
14856 define_expand patterns.
14857 (adddi3_compact): Rename to adddi3.
14858 (subdi3_compact): Rename to subdi3.
14859 (*negdi2): Rename to negdi2.
14860 (*abs<mode>2): Rename to abs<mode>2.
14862 2016-05-31 Oleg Endo <olegendo@gcc.gnu.org>
14864 * config/rx/rx.md (FETCHOP_NO_MINUS): New code iterator.
14865 (atomic_<fetchop_name>_fetchsi): Extract minus operator into ...
14866 (atomic_sub_fetchsi): ... this new pattern.
14867 (mvtc): Add CC_REG clobber.
14869 2016-05-31 Marek Polacek <polacek@redhat.com>
14871 * gimplify.c (gimplify_switch_expr): Also handle GIMPLE_TRY.
14873 2016-05-31 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14875 * config/aarch64/aarch64.c (aarch_macro_fusion_pair_p): Use
14876 aarch64_fusion_enabled_p to check for fusion capabilities.
14878 2016-05-31 Richard Biener <rguenther@suse.de>
14880 PR tree-optimization/71352
14881 * tree-ssa-reassoc.c (zero_one_operation): Handle op equal to
14882 minus one and a negate.
14884 2016-05-31 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14886 * config/aarch64/aarch64.c (aarch64_simd_attr_length_move): Delete.
14887 * config/aarch64/aarch64-protos.h (aarch64_simd_attr_length_move):
14889 * config/aarch64/iterators.md (insn_count): Add descriptive comment.
14890 * config/aarch64/aarch64-simd.md (*aarch64_mov<mode>, VSTRUCT modes):
14891 Remove use of aarch64_simd_attr_length_move, set length attribute
14893 (*aarch64_be_movoi): Likewise.
14894 (*aarch64_be_movci): Likewise.
14895 (*aarch64_be_movxi): Likewise.
14897 2016-05-31 Jan Hubicka <hubicka@ucw.cz>
14899 * loop-init.c (gate): Do not enale RTL loop unroller with -fpeel-loops.
14900 It no longer does that.
14901 * toplev.c (process_options): Do not enable flag_web with -fpeel-loops.
14903 2016-05-31 Wladimir J. van der Laan <laanwj@gmail.com>
14905 * config/aarch64/arm_neon.h (vdupb_laneq_s8): Remove spurious
14906 attribute __unused__.
14908 2016-05-31 Thomas Preud'homme <thomas.preudhomme@arm.com>
14910 * config/arm/arm-protos.h (arm_arch_thumb1): Declare.
14911 * config/arm/arm.c (arm_arch_thumb1): Define.
14912 (arm_option_override): Initialize arm_arch_thumb1.
14913 * config/arm/arm.h (arm_arch_thumb1): Declare.
14914 (TARGET_ARM_ARCH_ISA_THUMB): Use arm_arch_thumb to determine if target
14915 support Thumb-1 ISA.
14917 2016-05-31 Kirill Yukhin <kirill.yukhin@intel.com>
14920 * config/i386/sse.md (define_insn_and_split "*vec_extractv4sf_0"): Use
14921 `Yv' for scalar operand.
14923 2016-05-31 Tom de Vries <tom@codesourcery.com>
14925 PR tree-optimization/69068
14926 * graphite-isl-ast-to-gimple.c (copy_bb_and_scalar_dependences): Handle
14927 phis with more than two args.
14929 2016-05-30 Andreas Tobler <andreast@gcc.gnu.org>
14931 * config.gcc: Move hard float support for arm*hf*-*-freebsd* into
14932 armv6*-*-freebsd* for FreeBSD 11. Eliminate the arm*hf*-*-freebsd*
14935 2016-05-30 Jose E. Marchesi <jose.marchesi@oracle.com>
14937 * config.gcc (sparc*-*-*): Support cpu_32, cpu_64, tune_32 and
14939 * doc/install.texi (--with-cpu-32, --with-cpu-64): Document
14941 * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): Add entries for
14942 cpu_32, cpu_64, tune_32 and tune_64.
14943 * config/sparc/sol2.h (OPTION_DEFAULT_SPECS): Likewise.
14945 2016-05-30 Uros Bizjak <ubizjak@gmail.com>
14947 * config/i386/sync.md (mfence_nosse): Use "lock orl $0, -4(%esp)".
14949 2016-05-30 Andi Kleen <ak@linux.intel.com>
14951 * auto-profile.c (read_profile): Replace asserts with errors
14952 when file does not exist.
14953 * gcov-io.c (gcov_read_words): Dito.
14955 2016-05-30 Jan Hubicka <hubicka@ucw.cz>
14957 * tree-cfg.c (print_loop): Print likely upper bounds.
14959 2016-05-30 Jan Hubicka <hubicka@ucw.cz>
14961 * doc/invoke.texi (-fpeel-loops,-O3): Update documentation.
14962 * opts.c (default_options): Enable peel loops at -O3.
14963 * tree-ssa-loop-ivcanon.c (peeled_loops): New static var.
14964 (try_peel_loop): Do not re-peel already peeled loops;
14965 use likely upper bounds; fix profile updating.
14966 (pass_complete_unroll::execute): Initialize peeled_loops.
14968 2016-05-30 Martin Liska <mliska@suse.cz>
14970 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Scale
14971 computed costs by frequency of BB they belong to.
14972 (get_scaled_computation_cost_at): New function.
14974 2016-05-30 Alexander Monakov <amonakov@ispras.ru>
14975 Marc Glisse <marc.glisse@inria.fr>
14977 PR tree-optimization/71289
14978 * match.pd (-1 / B < A, A > -1 / B): New transformations.
14980 2016-05-30 Jan Hubicka <hubicka@ucw.cz>
14982 * tree-vect-loop.c (vect_transform_loop): Update likely bounds.
14984 2016-05-30 Jan Hubicka <hubicka@ucw.cz>
14986 * tree-ssa-loop-ivcanon.c (try_peel_loop): Correctly set wont_exit
14987 for peeled copies; avoid underflow when updating estimates; correctly
14988 scale loop profile.
14990 2016-05-30 Kugan Vivekanandarajah <kuganv@linaro.org>
14992 * tree-ssa-reassoc.ci (swap_ops_for_binary_stmt): Fix typo from commit
14993 r236875. Corrected oe3 to oe2 as obvious.
14995 2016-05-30 Kugan Vivekanandarajah <kuganv@linaro.org>
14997 PR middle-end/71269
14998 PR middle-end/71252
14999 * tree-ssa-reassoc.c (insert_stmt_before_use): Use find_insert_point so
15000 that inserted stmt will not dominate stmts that defines its operand.
15001 (rewrite_expr_tree): Add stmt_to_insert before adding the use stmt.
15002 (rewrite_expr_tree_parallel): Likewise.
15004 2016-05-30 Kugan Vivekanandarajah <kuganv@linaro.org>
15006 PR middle-end/71252
15007 * tree-ssa-reassoc.c (swap_ops_for_binary_stmt): Fix swap such that
15008 all fields including stmt_to_insert are swapped.
15010 2016-05-30 Jan Hubicka <hubicka@ucw.cz>
15012 * predict.h (force_edge_cold): Declare.
15013 * predict.c (force_edge_cold): New function.
15014 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Fix profile
15016 (canonicalize_loop_induction_variables): Fix formating.
15018 2016-05-30 Eric Botcazou <ebotcazou@adacore.com>
15020 * config/visium/visium.c (visium_split_double_add): Minor tweaks.
15021 (visium_expand_copysign): Use gen_int_mode directly.
15022 (visium_compute_frame_size): Minor tweaks.
15024 2016-05-30 Jan Hubicka <hubicka@ucw.cz>
15026 * tree-vect-loop.c (vect_analyze_loop_2): Use
15027 likely_max_stmt_executions_int.
15029 2016-05-30 Tom de Vries <tom@codesourcery.com>
15031 PR tree-optimization/69067
15032 * graphite-isl-ast-to-gimple.c (get_def_bb_for_const): Remove assert.
15034 2016-05-29 Uros Bizjak <ubizjak@gmail.com>
15037 * config/i386/sync.md (define_peephole2 atomic_storedi_fpu):
15038 New peepholes to remove unneeded fild/fistp pairs.
15039 (define_peephole2 atomic_loaddi_fpu): Ditto.
15041 2016-05-27 Jan Hubicka <hubicka@ucw.cz>
15043 * predict.c (maybe_hot_frequency_p): Avoid division.
15045 2016-05-28 Gerald Pfeifer <gerald@pfeifer.com>
15047 * doc/install.texi: Use https for shop.fsf.org.
15049 2016-05-27 Jan Hubicka <hubicka@ucw.cz>
15051 * tree-ssa-loop-ivopts.c (estimated_stmt_executions_int): Use
15052 likely_max_stmt_executions_int.
15054 2016-05-27 Jan Hubicka <hubicka@ucw.cz>
15056 * tree-ssa-loop-prefetch.c (loop_prefetch_arrays): Use
15057 likely_max_stmt_executions_int.
15059 2016-05-27 Jan Hubicka <hubicka@ucw.cz>
15061 * profile.c (compute_branch_probabilities): Do not report hitrates
15063 (branch_prob): Report hitrates here.
15064 * predict.c (gimple_predict_edge): Do not assert profile status;
15065 fix formatting issues.
15067 2016-05-27 Jan Hubicka <hubicka@ucw.cz>
15069 * predict.c (edge_predicted_by_p): New function.
15070 (predict_paths_for_bb): Do not put multiple predictions of the same type
15073 2016-05-27 Jan Hubicka <hubicka@ucw.cz>
15075 * tree-ssa-loop-niter.c (number_of_iterations_exit): Revert accidental
15078 2016-05-28 Alan Modra <amodra@gmail.com>
15080 * dominance.c (verify_dominators): Don't segfault on NULL imm_bb.
15082 2016-05-28 Alan Modra <amodra@gmail.com>
15084 PR rtl-optimization/71275
15085 * ira.c (ira): Free dominance info.
15087 2016-05-27 Gerald Pfeifer <gerald@pfeifer.com>
15089 * doc/sourcebuild.texi: New address for upstream Go repository.
15091 2016-05-27 Thomas Preud'homme <thomas.preudhomme@arm.com>
15093 * config/arm/arm.h (TARGET_ARM_V6M): Remove.
15094 (TARGET_ARM_V7M): Likewise.
15096 2016-05-26 Jeff Law <law@redhat.com>
15098 * tree-ssa-threadedge.c: Remove include of tree-ssa-threadbackward.h.
15099 (thread_across_edge): Remove calls to find_jump_threads_backwards.
15100 * passes.def: Add jump threading passes before DOM/VRP.
15101 * tree-ssa-threadbackward.c (find_jump_threads_backwards): Change
15102 argument to a basic block from an edge. Remove tests which are
15104 (pass_data_thread_jumps, class pass_thread_jumps): New.
15105 (pass_thread_jumps::gate, pass_thread_jumps::execute): New.
15106 (make_pass_thread_jumps): Likewise.
15107 * tree-pass.h (make_pass_thread_jumps): Declare.
15109 2016-05-27 Eric Botcazou <ebotcazou@adacore.com>
15111 * config/visium/visium-protos.h (split_double_move): Rename into...
15112 (visium_split_double_move): ...this.
15113 (visium_split_double_add): Declare.
15114 * config/visium/visium.c (split_double_move): Rename into...
15115 (visium_split_double_move): ...this.
15116 (visium_split_double_add): New function.
15117 (visium_expand_copysign): Renumber operands for consistency.
15118 * config/visium/visium.md (DImode move splitter): Adjust to renaming.
15119 (DFmode move splitter): Likewise.
15120 (*addi3_insn): Split by means of visium_split_double_add.
15121 (*adddi3_insn_flags): Delete.
15122 (*plus_plus_sltu<subst_arith>): New insn.
15123 (*subdi3_insn): Split by means of visium_split_double_add.
15124 (subdi3_insn_flags): Delete.
15125 (*minus_minus_sltu<subst_arith>): New insn.
15126 (*negdi2_insn): Split by means of visium_split_double_add.
15127 (*negdi2_insn_flags): Delete.
15129 2016-05-27 Ulrich Weigand <uweigand@de.ibm.com>
15131 * configure.ac: Treat a --with-headers option without argument
15132 the same as the default (i.e. consult sys-include directory).
15133 * configure: Regenerate.
15135 2016-05-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15137 * config/aarch64/aarch64.c (aarch64_fusion_enabled_p): New function.
15138 * config/aarch64/aarch64-protos.h (aarch64_fusion_enabled_p): Declare
15140 * config/aarch64/aarch64-simd.md (aarch64_crypto_aes<aesmc_op>v16qi):
15141 Add "=w,0" alternative. Enable it when AES/AESMC fusion is enabled.
15143 2016-05-27 Jiong Wang <jiong.wang@arm.com>
15146 * config/aarch64/aarch64.c (aarch64_expand_builtin_va_start): Honor
15147 tree-stdarg analysis results.
15148 (aarch64_setup_incoming_varargs): Likewise.
15150 2016-05-27 Jiong Wang <jiong.wang@arm.com>
15152 * config/aarch64/aarch64.c (aarch64_build_builtin_va_list): Initialize
15153 va_list_gpr_counter_field and va_list_fpr_counter_field.
15155 2016-05-27 Wilco Dijkstra <wdijkstr@arm.com>
15158 * config/aarch64/aarch64.h (CANNOT_CHANGE_MODE_CLASS): Remove.
15159 * config/aarch64/aarch64.c
15160 (aarch64_cannot_change_mode_class): Remove function.
15161 * config/aarch64/aarch64-protos.h
15162 (aarch64_cannot_change_mode_class): Remove.
15164 2016-05-27 Jan Hubicka <hubicka@ucw.cz>
15166 * cfgloop.c (record_niter_bound): Record likely upper bounds.
15167 (likely_max_stmt_executions_int, get_likely_max_loop_iterations,
15168 get_likely_max_loop_iterations_int): New.
15169 * cfgloop.h (struct loop): Add nb_iterations_likely_upper_bound,
15170 any_likely_upper_bound.
15171 (get_likely_max_loop_iterations_int, get_likely_max_loop_iterations):
15173 * cfgloopmanip.c (copy_loop_info): Copy likely upper bounds.
15174 * loop-unroll.c (unroll_loop_constant_iterations): Update likely
15176 (unroll_loop_constant_iterations): Likewise.
15177 (unroll_loop_runtime_iterations): Likewise.
15178 * lto-streamer-in.c (input_cfg): Stream likely upper bounds.
15179 * lto-streamer-out.c (output_cfg): Likewise.
15180 * tree-ssa-loop-ivcanon.c (try_peel_loop): Update likely upper
15182 (canonicalize_loop_induction_variables): Dump likely upper bounds.
15183 * tree-ssa-loop-niter.c (record_estimate): Record likely upper bounds.
15184 (likely_max_loop_iterations): New.
15185 (likely_max_loop_iterations_int): New.
15186 (likely_max_stmt_executions): New.
15187 * tree-ssa-loop-niter.h (likely_max_loop_iterations,
15188 likely_max_loop_iterations_int, likely_max_stmt_executions_int,
15189 likely_max_stmt_executions): Declare.
15191 2016-05-27 Marek Polacek <polacek@redhat.com>
15193 PR middle-end/71308
15194 * gimple-fold.c (gimple_fold_call): Check that LHS is not null.
15196 2016-05-27 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
15198 * config/s390/s390.md (2x risbg splitters): Use
15199 reg_overlap_mentioned_p instead of rtx_equal_p.
15201 2016-05-27 Dominik Vogt <vogt@linux.vnet.ibm.com>
15203 * combine.c (make_compound_operation): Take known zero bits into
15204 account when checking for possible zero_extend.
15206 2016-05-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15208 * config/aarch64/aarch64.md (ashl<mode>3, SHORT modes):
15209 Use const_int_operand for operand 2 predicate. Simplify expand code
15212 2016-05-27 Ilya Enkovich <ilya.enkovich@intel.com>
15214 PR middle-end/71279
15215 * fold-const.c (fold_ternary_loc): Don't fold VEC_COND_EXPR
15218 2016-05-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15220 * config/aarch64/aarch64-modes.def (CC_ZESWP, CC_SESWP): Delete.
15221 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Remove condition
15222 that returns CC_SESWPmode and CC_ZESWPmode.
15223 (aarch64_get_condition_code_1): Remove handling of CC_SESWPmode
15225 (aarch64_rtx_costs): Likewise.
15227 2016-05-26 Michael Meissner <meissner@linux.vnet.ibm.com>
15229 * config/rs6000/rs6000.c (rs6000_emit_p9_fp_minmax): New function
15230 for ISA 3.0 min/max support.
15231 (rs6000_emit_p9_fp_cmove): New function for ISA 3.0 floating point
15232 conditional move support.
15233 (rs6000_emit_cmove): Call rs6000_emit_p9_fp_minmax and
15234 rs6000_emit_p9_fp_cmove if the ISA 3.0 instructions are
15236 * config/rs6000/rs6000.md (SFDF2): New iterator to allow doing
15237 conditional moves where the comparison type is different from move
15239 (fp_minmax): New code iterator for smin/smax.
15240 (minmax): New code attributes for min/max.
15241 (SMINMAX): Likewise.
15242 (smax<mode>3): Combine min, max insns into one insn using the
15243 fp_minmax code iterator. Add support for ISA 3.0 min/max
15244 instructions that don't need -ffast-math.
15245 (s<minmax><mode>3): Likewise.
15246 (smax<mode>3_vsx): Likewise.
15247 (smin<mode>3): Likewise.
15248 (s<minmax><mode>3_vsx): Likewise.
15249 (smin<mode>3_vsx): Likewise.
15250 (pre-VSX min/max splitters): Likewise.
15251 (s<minmax><mode>3_fpr): Likewise.
15252 (movsfcc): Rewrite floating point conditional moves to combine
15253 SFmode/DFmode into a single insn.
15254 (mov<mode>cc): Likewise.
15255 (movdfcc): Likewise.
15256 (fselsfsf4): Combine FSEL cases into a single insn, using SFDF and
15257 SFDF2 iterators to handle all combinations.
15258 (fseldfsf4): Likewise.
15259 (fsel<SFDF:mode><SFDF2:mode>4): Likewise.
15260 (fseldfdf4): Likewise.
15261 (fselsfdf4): Likewise.
15262 (mov<SFDF:mode><SFDF2:mode>cc_p9): Add support for the ISA 3.0
15263 comparison instructions that set a 0/-1 mask, and use it for
15264 floating point conditional move via XXSEL.
15265 (fpmask<mode>): Likewise.
15266 (xxsel<mode>): Likewise.
15267 * config/rs6000/predicates.md (min_max_operator): Delete, no
15269 (fpmask_comparison_operaton): New insn for ISA 3.0 comparison
15270 instructions that generate a 0/-1 mask for use with XXSEL.
15271 * config/rs6000/rs6000.h (TARGET_MINMAX_SF): New helper macros to
15272 say whether floating point min/max is available, either through
15273 FSEL, ISA 2.06 min/max, and ISA 3.0 min/max instrucitons.
15274 (TARGET_MINMAX_DF): Likewise.
15276 2016-05-27 Alan Modra <amodra@gmail.com>
15278 PR rtl-optimization/71275
15279 * ira.c (ira): Call loop_optimizer_init to set up bb_loop_depth
15280 for update_equiv_regs and combine_and_move_insns.
15282 2016-05-26 Uros Bizjak <ubizjak@gmail.com>
15284 * config/i386/i386.md (*movqi_internal) <attr "isa">: Use
15285 if_then_else or cond RTXes to calculate attribute value.
15286 * config/i386/mmx.md (*vec_extractv2sf_1) <attr "prefix_rep">: Ditto.
15287 <attr "length_immediate>: Ditto.
15288 (*vec_extractv2sf_1) <attr "length_immediate">: Ditto.
15289 * config/i386/sse.md (sse_loadlps) <attr "length_immediate">: Ditto.
15290 (*vec_concatv2sf_sse4_1) <attr "isa">: Ditto.
15291 <attr "type">: Ditto.
15292 <attr "prefix_data16">: Ditto.
15293 <attr "prefix_extra">: Ditto.
15294 <attr "length_immediate">: Ditto.
15295 <attr "prefix">: Ditto.
15296 (vec_set<mode>_0) <attr "isa">: Ditto.
15297 <attr "prefix_extra">: Ditto.
15298 <attr "length_immediate">: Ditto.
15299 <attr "prefix">: Ditto.
15300 (*vec_interleave_highv2df) <attr "prefix_data16">: Ditto.
15301 (*vec_interleave_lowv2df) <attr "prefix_data16">: Ditto.
15302 (sse2_storelpd) <attr "prefix_data16">: Ditto.
15303 (sse2_loadhpd) <attr "prefix_data16">: Ditto.
15304 (sse2_loadlpd) <attr "prefix_data16">: Ditto.
15305 <attr "length_immediate">: Ditto.
15306 <attr "prefix">: Ditto.
15307 (sse2_movsd) <attr "length_immediate">: Ditto.
15308 <attr "prefix">: Ditto.
15309 (vec_concatv2df) <attr "isa">: Ditto.
15310 <attr "prefix">: Ditto.
15311 (*vec_extractv4si) <attr "prefix_extra">: Ditto.
15312 (*vec_extractv2di_1) <attr "isa">: Ditto.
15313 <attr "type">: Ditto.
15314 <attr "length_immediate">: Ditto.
15315 <attr "prefix_rex">: Ditto.
15316 <attr "prefix_extra">: Ditto.
15317 (*vec_concatv2si_sse4_1) <attr "type">: Ditto.
15318 <attr "prefix_extra">: Ditto.
15319 <attr "length_immediate">: Ditto.
15320 (vec_concatv2di) <attr "isa">: Ditto.
15321 <attr "prefix_extra">: Ditto.
15322 <attr "length_immediate">: Ditto.
15323 <attr "prefix">: Ditto.
15325 2016-05-26 Martin Liska <mliska@suse.cz>
15327 * tree-ssa-loop-ivopts.c (comp_cost::infinite_cost_p): New
15329 (operator+): Likewise.
15330 (operator-): Likewise.
15331 (comp_cost::operator+=): Likewise.
15332 (comp_cost::operator-=): Likewise.
15333 (comp_cost::operator/=): Likewise.
15334 (comp_cost::operator*=): Likewise.
15335 (operator<): Likewise.
15336 (operator==): Likewise.
15337 (operator<=): Likewise.
15338 (new_cost): Remove.
15339 (infinite_cost_p): Likewise.
15340 (add_costs): Likewise.
15341 (sub_costs): Likewise.
15342 (compare_costs): Likewise.
15343 (set_group_iv_cost): Use the newly introduced functions.
15344 (get_address_cost): Likewise.
15345 (get_shiftadd_cost): Likewise.
15346 (force_expr_to_var_cost): Likewise.
15347 (split_address_cost): Likewise.
15348 (ptr_difference_cost): Likewise.
15349 (difference_cost): Likewise.
15350 (get_computation_cost_at): Likewise.
15351 (determine_group_iv_cost_generic): Likewise.
15352 (determine_group_iv_cost_address): Likewise.
15353 (determine_group_iv_cost_cond): Likewise.
15354 (autoinc_possible_for_pair): Likewise.
15355 (determine_group_iv_costs): Likewise.
15356 (cheaper_cost_pair): Likewise.
15357 (iv_ca_recount_cost): Likewise.
15358 (iv_ca_set_no_cp): Likewise.
15359 (iv_ca_set_cp): Likewise.
15360 (iv_ca_cost): Likewise.
15361 (iv_ca_new): Likewise.
15362 (iv_ca_dump): Likewise.
15363 (iv_ca_narrow): Likewise.
15364 (iv_ca_prune): Likewise.
15365 (iv_ca_replace): Likewise.
15366 (try_add_cand_for): Likewise.
15367 (try_improve_iv_set): Likewise.
15368 (find_optimal_iv_set): Likewise.
15370 2016-05-26 Richard Sandiford <richard.sandiford@arm.com>
15372 * tree-ssa-loop-ivopts.c (loop_body_includes_call): Don't assume
15373 that internal functions will clobber all caller-saved registers.
15375 2016-05-26 Wilco Dijkstra <wdijkstr@arm.com>
15377 * config/aarch64/aarch64.c (aarch64_case_values_threshold):
15378 Return a better case_values_threshold when optimizing.
15380 2016-05-26 Wilco Dijkstra <wdijkstr@arm.com>
15382 * config/aarch64/aarch64-simd.md (aarch64_combinez):
15383 Add ? to integer variant.
15384 (aarch64_combinez_be): Likewise.
15386 2016-05-26 Jakub Jelinek <jakub@redhat.com>
15388 * config/i386/sse.md (*vcvtps2ph_store<mask_name>): Use v constraint
15389 instead of x constraint.
15390 (vcvtps2ph256<mask_name>): Likewise.
15392 * config/i386/sse.md (*ssse3_palignr<mode>_perm): Add avx512bw
15393 alternative. Formatting fix.
15395 * config/i386/sse.md
15396 (<mask_codefor>avx512vl_shuf_<shuffletype>32x4_1<mask_name>): Rename
15398 (avx512vl_shuf_<shuffletype>32x4_1<mask_name>): ... this.
15399 (*avx_vperm_broadcast_v4sf): Use v constraint instead of x. Use
15400 maybe_evex prefix instead of vex.
15401 (*avx_vperm_broadcast_<mode>): Use v constraint instead of x. Handle
15402 EXT_REX_SSE_REG_P (op0) case in the splitter.
15404 2016-05-25 Jeff Law <law@redhat.com>
15406 PR tree-optimization/71272
15407 * tree-ssa-threadbackward.c (convert_and_register_jump_thread_path):
15408 Update comments. Add test for empty path.
15410 2016-05-25 Bill Seurer <seurer@linux.vnet.ibm.com>
15412 * config/rs6000/altivec.h (vec_cmpne): Add #define for vec_cmpne.
15413 * config/rs6000/rs6000-builtin.def (vec_cmpne): Add vec_cmpne as a
15414 special case builtin.
15415 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
15416 code for ALTIVEC_BUILTIN_VEC_CMPNE.
15417 * config/rs6000/rs6000.c (altivec_init_builtins): Add definition
15418 for __builtin_vec_cmpne.
15420 2016-05-25 Eric Botcazou <ebotcazou@adacore.com>
15422 * tree-ssa-phiopt.c (factor_out_conditional_conversion): Remove
15423 redundant test and bail out if the type of the new operand is not
15424 a GIMPLE register type after stripping a VIEW_CONVERT_EXPR.
15426 2016-05-25 Uros Bizjak <ubizjak@gmail.com>
15428 * config/i386/i386.opt (ix86_target_flags_explicit): Remove.
15429 (x_ix86_target_flags_explicit): Remove.
15430 * config/i386/i386.c (ix86_function_specific_save): Do not copy
15431 x_ix86_target_flags_explicit.
15432 (ix86_function_specific_restore): Ditto.
15434 2016-05-25 Uros Bizjak <ubizjak@gmail.com>
15435 H.J. Lu <hongjiu.lu@intel.com>
15438 * common/config/i386/i386-common.c
15439 (OPTION_MASK_ISA_GENERAL_REGS_ONLY_UNSET): New.
15440 (ix86_handle_option) <case OPT_mgeneral_regs_only>: Disable
15441 MPX, MMX, SSE and x87 instructions for -mgeneral-regs-only.
15442 * config/i386/i386.opt (ix86_target_flags): Add new Variable.
15443 (-mgeneral-regs-only): Add new option.
15444 * config/i386/i386.c (ix86_option_override_internal): Don't enable
15445 x87 instructions if only general registers are allowed.
15446 (ix86_target_string): Add ix86_flags argument. Handle additional
15447 flags options through ix86_flags argument. Update all callers.
15448 * doc/invoke.texi (x86 Options): Document -mgeneral-regs-only.
15450 2016-05-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15452 PR rtl-optimization/66940
15453 * ifcvt.c (noce_get_alt_condition): Check that incrementing or
15454 decrementing desired_val will not overflow before performing these
15457 2016-05-25 Ilya Verbin <ilya.verbin@intel.com>
15459 * config/i386/i386-builtin-types.def: Add V16SI_FTYPE_V16SF,
15460 V8DF_FTYPE_V8DF_ROUND, V16SF_FTYPE_V16SF_ROUND, V16SI_FTYPE_V16SF_ROUND.
15461 * config/i386/i386.c (enum ix86_builtins): Add
15462 IX86_BUILTIN_CVTPS2DQ512_MASK, IX86_BUILTIN_FLOORPS512,
15463 IX86_BUILTIN_FLOORPD512, IX86_BUILTIN_CEILPS512, IX86_BUILTIN_CEILPD512,
15464 IX86_BUILTIN_TRUNCPS512, IX86_BUILTIN_TRUNCPD512,
15465 IX86_BUILTIN_CVTPS2DQ512, IX86_BUILTIN_VEC_PACK_SFIX512,
15466 IX86_BUILTIN_FLOORPS_SFIX512, IX86_BUILTIN_CEILPS_SFIX512,
15467 IX86_BUILTIN_ROUNDPS_AZ_SFIX512.
15468 (builtin_description bdesc_args): Add __builtin_ia32_floorps512,
15469 __builtin_ia32_ceilps512, __builtin_ia32_truncps512,
15470 __builtin_ia32_floorpd512, __builtin_ia32_ceilpd512,
15471 __builtin_ia32_truncpd512, __builtin_ia32_cvtps2dq512,
15472 __builtin_ia32_vec_pack_sfix512, __builtin_ia32_roundps_az_sfix512,
15473 __builtin_ia32_floorps_sfix512, __builtin_ia32_ceilps_sfix512.
15474 Change IX86_BUILTIN_CVTPS2DQ512 to IX86_BUILTIN_CVTPS2DQ512_MASK for
15475 __builtin_ia32_cvtps2dq512_mask.
15476 (ix86_expand_args_builtin): Handle V8DF_FTYPE_V8DF_ROUND,
15477 V16SF_FTYPE_V16SF_ROUND, V16SI_FTYPE_V16SF_ROUND, V16SI_FTYPE_V16SF.
15478 (ix86_builtin_vectorized_function): Handle builtins mentioned above.
15479 * config/i386/sse.md
15480 (<mask_codefor>avx512f_fix_notruncv16sfv16si<mask_name><round_name>):
15482 (avx512f_fix_notruncv16sfv16si<mask_name><round_name>): ... this.
15483 (<mask_codefor>avx512f_cvtpd2dq512<mask_name><round_name>): Rename
15485 (avx512f_cvtpd2dq512<mask_name><round_name>): ... this.
15486 (avx512f_vec_pack_sfix_v8df): New define_expand.
15487 (avx512f_roundpd512): Rename to ...
15488 (avx512f_round<castmode>512): ... this. Change iterator.
15489 (avx512f_roundps512_sfix): New define_expand.
15490 (round<mode>2_sfix): Change iterator.
15492 2016-05-25 Nick Clifton <nickc@redhat.com>
15494 * config/msp430/msp430.c (msp430_attr): Produce an error if a
15495 static interrupt handler is detected.
15496 * config/msp430/msp430.h (LIB_SPEC): Do not use msp430.ld as the
15497 default linker script.
15498 * config/msp430/msp430.md (movpsihi2_lo): New pattern for loading
15499 the low part of a symbolic pointer.
15501 2016-05-25 Richard Biener <rguenther@suse.de>
15503 PR tree-optimization/71261
15504 * tree-if-conv.c (ifcvt_split_def_stmt): Walk uses on the
15505 interesting stmt instead of immediate uses when looking
15506 for the use operand to replace.
15508 2016-05-25 Martin Liska <mliska@suse.cz>
15510 * ipa-inline.c (edge_badness): Use 'w/' instead of 'w'.
15512 2016-05-25 Richard Biener <rguenther@suse.de>
15514 PR tree-optimization/71264
15515 * tree-vect-stmts.c (vect_init_vector): Properly deal with
15518 2016-05-25 Martin Liska <mliska@suse.cz>
15520 PR tree-optimization/71239
15521 * tree.c (array_at_struct_end_p): Do not call operand_equal_p
15522 if DECL_SIZE is NULL.
15524 2016-05-25 Richard Biener <rguenther@suse.de>
15526 * timevar.def (TV_TREE_LOOP_IFCVT): Add.
15527 * tree-if-conv.c (pass_data_if_conversion): Use it.
15529 2016-05-25 Bernd Edlinger <bernd.edlinger@hotmail.de>
15531 * cgraph.c (cgraph_node::get_availability): Fix typo in comment.
15532 * symtab.c (symtab_node::binds_to_current_def_p): Likewise.
15533 * varpool.c (varpool_node::get_availability): Likewise.
15535 2016-05-24 Michael Meissner <meissner@linux.vnet.ibm.com>
15537 * config/rs6000/altivec.md (VNEG iterator): New iterator for
15538 VNEGW/VNEGD instructions.
15539 (p9_neg<mode>2): New insns for ISA 3.0 VNEGW/VNEGD.
15540 (neg<mode>2): Add expander for V2DImode added in ISA 2.07, and
15541 support for ISA 3.0 VNEGW/VNEGD instructions.
15543 2016-05-24 Cesar Philippidis <cesar@codesourcery.com>
15545 * gimplify.c (omp_notice_variable): Use zero-length arrays for data
15546 pointers inside OACC_DATA regions.
15547 (gimplify_scan_omp_clauses): Prune firstprivate clause associated
15548 with OACC_DATA, OACC_ENTER_DATA and OACC_EXIT data regions.
15549 (gimplify_adjust_omp_clauses): Fix typo in comment.
15551 2016-05-24 Michael Meissner <meissner@linux.vnet.ibm.com>
15553 * config/rs6000/altivec.md (VParity): New mode iterator for vector
15554 parity built-in functions.
15555 (p9v_ctz<mode>2): Add support for ISA 3.0 vector count trailing
15557 (p9v_parity<mode>2): Likewise.
15558 * config/rs6000/vector.md (VEC_IP): New mode iterator for vector
15560 (ctz<mode>2): ISA 3.0 expander for vector count trailing zeros.
15561 (parity<mode>2): ISA 3.0 expander for vector parity.
15562 * config/rs6000/rs6000-builtin.def (BU_P9_MISC_1): New macros for
15564 (BU_P9_64BIT_MISC_0): Likewise.
15565 (BU_P9_MISC_0): Likewise.
15566 (BU_P9V_AV_1): Likewise.
15567 (BU_P9V_AV_2): Likewise.
15568 (BU_P9V_AV_3): Likewise.
15569 (BU_P9V_AV_P): Likewise.
15570 (BU_P9V_VSX_1): Likewise.
15571 (BU_P9V_OVERLOAD_1): Likewise.
15572 (BU_P9V_OVERLOAD_2): Likewise.
15573 (BU_P9V_OVERLOAD_3): Likewise.
15574 (VCTZB): Add vector count trailing zeros support.
15578 (VPRTYBD): Add vector parity support.
15579 (VPRTYBQ): Likewise.
15580 (VPRTYBW): Likewise.
15581 (VCTZ): Add overloaded vector count trailing zeros support.
15582 (VPRTYB): Add overloaded vector parity support.
15583 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
15584 overloaded vector count trailing zeros and parity instructions.
15585 * config/rs6000/rs6000.md (wd mode attribute): Add V1TI and TI for
15586 vector parity support.
15587 * config/rs6000/altivec.h (vec_vctz): Add ISA 3.0 vector count
15588 trailing zeros support.
15589 (vec_cntlz): Likewise.
15590 (vec_vctzb): Likewise.
15591 (vec_vctzd): Likewise.
15592 (vec_vctzh): Likewise.
15593 (vec_vctzw): Likewise.
15594 (vec_vprtyb): Add ISA 3.0 vector parity support.
15595 (vec_vprtybd): Likewise.
15596 (vec_vprtybw): Likewise.
15597 (vec_vprtybq): Likewise.
15598 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
15599 the ISA 3.0 vector count trailing zeros and vector parity built-in
15602 2016-05-24 Kugan Vivekanandarajah <kuganv@linaro.org>
15604 * tree-ssa-reassoc.c (sort_by_operand_rank): Skip checking gimple_bb
15605 when there is stmt_to_insert.
15607 2016-05-24 Martin Sebor <msebor@redhat.com>
15610 * tree.h (complete_or_array_type_p): New inline function.
15612 2016-05-24 Jakub Jelinek <jakub@redhat.com>
15614 * config/i386/i386.h (TARGET_AVOID_4BYTE_PREFIXES): Define.
15615 * config/i386/constraints.md (Yr): Test TARGET_AVOID_4BYTE_PREFIXES
15616 rather than X86_TUNE_AVOID_4BYTE_PREFIXES.
15618 * config/i386/sse.md (<sse4_1>_round<ssemodesuffix><avxsizesuffix>):
15619 Limit 1st alternative to noavx isa, split 2nd alternative into one
15620 noavx and one avx alternative, use *x and Bm in the former and
15621 x and m in the latter.
15623 * config/i386/sse.md (vec_set<mode>_0): Use sse4_noavx isa instead
15624 of sse4 for the first alternative, drop %v from the template
15625 and d operand modifier. Split second alternative into one sse4_noavx
15626 and one avx alternative, use *x instead of *v in the former and v
15627 instead of *v in the latter.
15628 (*sse4_1_extractps): Use noavx isa instead of * for the first
15629 alternative, drop %v from the template. Split second alternative into
15630 one noavx and one avx alternative, use *x instead of *v in the
15631 former and v instead of *v in the latter.
15632 (<vi8_sse4_1_avx2_avx512>_movntdqa): Guard the first 2 alternatives
15633 with noavx and the last one with avx.
15634 (sse4_1_phminposuw): Guard first alternative with noavx isa,
15635 split the second one into one noavx and one avx alternative,
15636 use *x and Bm in the former and x and m in the latter one.
15637 (<sse4_1>_ptest<mode>): Use noavx instead of * for the first two
15640 * config/i386/sse.md (sse4_1_<code>v8qiv8hi2<mask_name>): Limit
15641 first two alternatives to noavx, use *x instead of *v in the second
15642 one, add avx alternative without *.
15643 (sse4_1_<code>v4qiv4si2<mask_name>, sse4_1_<code>v4hiv4si2<mask_name>,
15644 sse4_1_<code>v2qiv2di2<mask_name>, sse4_1_<code>v2hiv2di2<mask_name>,
15645 sse4_1_<code>v2siv2di2<mask_name>): Likewise.
15647 2016-05-24 Jeff Law <law@redhat.com>
15649 * tree-ssa-threadbackwards.c (convert_and_register_jump_thread_path):
15650 New function, extracted from...
15651 (fsm_find_control_statement_thread_paths): Here. Use the new function.
15652 Allow simple copies and constant initializations in the SSA chain.
15654 2016-05-24 Marek Polacek <polacek@redhat.com>
15657 * gimplify.c (gimplify_switch_expr): Look into the innermost lexical
15660 2016-05-24 Jakub Jelinek <jakub@redhat.com>
15663 * tree-vect-stmts.c (vectorizable_simd_clone_call): Handle
15664 SIMD_CLONE_ARG_TYPE_LINEAR_REF_CONSTANT_STEP like
15665 SIMD_CLONE_ARG_TYPE_LINEAR_CONSTANT_STEP. Add
15666 SIMD_CLONE_ARG_TYPE_LINEAR_VAL_CONSTANT_STEP and
15667 SIMD_CLONE_ARG_TYPE_LINEAR_UVAL_CONSTANT_STEP cases explicitly.
15669 2016-05-24 Richard Biener <rguenther@suse.de>
15671 PR tree-optimization/71240
15672 * tree-ssa-math-opts.c (init_symbolic_number): Verify the source
15675 2016-05-24 Richard Biener <rguenther@suse.de>
15677 PR tree-optimization/71230
15678 * tree-ssa-reassoc.c (zero_one_operation): Handle negate special ops.
15680 2016-05-24 Richard Sandiford <richard.sandiford@arm.com>
15682 * tree-vectorizer.h (vectorizable_comparison): Delete.
15683 * tree-vect-loop.c (vectorizable_reduction): Remove redundant
15684 PURE_SLP_STMT check.
15685 * tree-vect-stmts.c (vectorizable_call): Likewise.
15686 (vectorizable_simd_clone_call): Likewise.
15687 (vectorizable_conversion): Likewise.
15688 (vectorizable_assignment): Likewise.
15689 (vectorizable_shift): Likewise.
15690 (vectorizable_operation): Likewise.
15691 (vectorizable_load): Likewise.
15692 (vectorizable_condition): Likewise.
15693 (vectorizable_store): Likewise. Assert that we don't have
15695 (vectorizable_comparison): Make static. Remove redundant
15696 PURE_SLP_STMT check.
15697 (vect_transform_stmt): Assert that we always have an slp_node
15700 2016-05-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15702 * config/arm/neon.md (ashldi3_neon): Replace comparison of INTVAL of
15703 operands[2] against 1 with comparison against CONST1_RTX.
15704 (<shift>di3_neon): Likewise.
15705 * config/arm/predicates.md (const0_operand): Replace with comparison
15706 against CONST0_RTX.
15708 2016-05-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15710 * config/arm/arm.md (ashldi3): Replace comparison of INTVAL of
15711 operands[2] against 1 with comparison against CONST1_RTX.
15712 (ashrdi3): Likewise.
15713 (lshrdi3): Likewise.
15714 (ashlsi3): Replace cast of INTVAL to unsigned HOST_WIDE_INT with
15716 (ashrsi3): Likewise.
15717 (lshrsi3): Likewise.
15718 (rotrsi3): Likewise.
15719 (define_split above *compareqi_eq0): Likewise.
15720 (define_split above "prologue"): Likewise.
15721 * config/arm/arm.c (thumb1_size_rtx_costs): Likewise.
15722 * config/arm/predicates.md (shift_operator): Likewise.
15723 (shift_nomul_operator): Likewise.
15724 (sat_shift_operator): Likewise.
15725 (thumb1_cmp_operand): Likewise.
15726 (const_neon_scalar_shift_amount_operand): Replace manual range
15727 check with IN_RANGE.
15728 * config/arm/thumb1.md (define_peephole2 above *thumb_subdi3):
15729 Replace cast of INTVAL to unsigned HOST_WIDE_INT with UINTVAL.
15731 2016-05-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15733 * config/arm/arm.md (andsi3): Replace cast of 1 to HOST_WIDE_INT
15734 with HOST_WIDE_INT_1.
15736 * config/arm/arm.c (optimal_immediate_sequence): Replace cast of
15737 1 to unsigned HOST_WIDE_INT with HOST_WIDE_INT_1U.
15738 (arm_canonicalize_comparison): Likewise.
15739 (thumb1_rtx_costs): Replace cast of 1 to HOST_WIDE_INT with
15741 (thumb1_size_rtx_costs): Likewise.
15742 (vfp_const_double_index): Replace cast of 1 to unsigned
15743 HOST_WIDE_INT with HOST_WIDE_INT_1U.
15744 (get_jump_table_size): Replace cast of 1 to HOST_WIDE_INT with
15746 (arm_asan_shadow_offset): Replace cast of 1 to unsigned
15747 HOST_WIDE_INT with HOST_WIDE_INT_1U.
15748 * config/arm/neon.md (vec_set<mode>): Replace cast of 1 to
15749 HOST_WIDE_INT with HOST_WIDE_INT_1.
15751 2016-05-24 Marek Polacek <polacek@redhat.com>
15753 * tree-cfg.h (should_remove_lhs_p): New predicate.
15754 * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Use it.
15755 * gimplify.c (gimplify_modify_expr): Likewise.
15756 * tree-cfg.c (verify_gimple_call): Likewise.
15757 * tree-cfgcleanup.c (fixup_noreturn_call): Likewise.
15758 * gimple-fold.c: Include "tree-cfg.h".
15759 (gimple_fold_call): Use should_remove_lhs_p.
15761 2016-05-24 Richard Biener <rguenther@suse.de>
15763 PR tree-optimization/71253
15764 * cfganal.h (control_dependences): Make robust against edge
15766 (control_dependences::control_dependences): Remove edge_list argument.
15767 (control_dependences::get_edge): Remove.
15768 (control_dependences::get_edge_src): Add.
15769 (control_dependences::get_edge_dest): Likewise.
15770 (control_dependences::m_el): Make a vector of edge src/dest index.
15771 * cfganal.c (control_dependences::find_control_dependence): Adjust.
15772 (control_dependences::control_dependences): Likewise.
15773 (control_dependences::~control_dependence): Likewise.
15774 (control_dependences::get_edge): Remove.
15775 (control_dependences::get_edge_src): Add.
15776 (control_dependences::get_edge_dest): Likewise.
15777 * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Use
15779 (perform_tree_ssa_dce): Adjust.
15780 * tree-loop-distribution.c (create_edge_for_control_dependence): Use
15782 (pass_loop_distribution::execute): Adjust. Do loop destroying
15783 conditional on changed.
15785 2016-05-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15788 * config/arm/arm.c (gen_operands_ldrd_strd): Remove bogus early
15789 return. Reindent transformation comment and mention the ARM state
15792 2016-05-24 Kugan Vivekanandarajah <kuganv@linaro.org>
15794 PR middle-end/71252
15795 * tree-ssa-reassoc.c (rewrite_expr_tree_parallel): Add stmt_to_insert
15796 after build_and_add_sum creates new use stmt.
15798 2016-05-24 Richard Sandiford <richard.sandiford@arm.com>
15800 * tree-vect-stmts.c (vectorizable_load): Reorder checks so that
15801 load_lanes/grouped_load classification comes first. Don't check
15802 whether the vectorization factor is a multiple of the group size
15805 2016-05-24 Richard Sandiford <richard.sandiford@arm.com>
15807 * tree-vect-data-refs.c (vect_analyze_group_access_1): Set
15808 GROUP_GAP for single-element interleaving.
15809 * tree-vect-stmts.c (vectorizable_load): Remove force_peeling
15812 2016-05-24 Richard Biener <rguenther@suse.de>
15814 PR middle-end/70434
15816 * tree-ssa.c (non_rewritable_mem_ref_base): Make sure to mark
15817 bases which are accessed with non-invariant indices.
15818 * gimple-fold.c (maybe_canonicalize_mem_ref_addr): Re-write
15819 constant index ARRAY_REFs of vectors into BIT_FIELD_REFs.
15821 2016-05-24 Kugan Vivekanandarajah <kuganv@linaro.org>
15823 PR middle-end/71170
15824 * tree-ssa-reassoc.c (struct operand_entry): Add field stmt_to_insert.
15825 (add_to_ops_vec): Add stmt_to_insert.
15826 (add_repeat_to_ops_vec): Init stmt_to_insert.
15827 (insert_stmt_before_use): New.
15828 (transform_add_to_multiply): Remove mult_stmt insertion and add it
15830 (get_ops): Init stmt_to_insert.
15831 (maybe_optimize_range_tests): Likewise.
15832 (rewrite_expr_tree): Insert stmt_to_insert before use stmt.
15833 (rewrite_expr_tree_parallel): Likewise.
15834 (reassociate_bb): Likewise.
15836 2016-05-23 Michael Meissner <meissner@linux.vnet.ibm.com>
15839 * config/rs6000/altivec.md (altivec_vperm_<mode>_internal): Drop
15840 ISA 3.0 xxperm fusion alternative.
15841 (altivec_vperm_v8hiv16qi): Likewise.
15842 (altivec_vperm_<mode>_uns_internal): Likewise.
15843 (vperm_v8hiv4si): Likewise.
15844 (vperm_v16qiv8hi): Likewise.
15846 2016-05-23 Michael Meissner <meissner@linux.vnet.ibm.com>
15847 Kelvin Nilsen <kelvin@gcc.gnu.org>
15849 * config/rs6000/rs6000.c (rs6000_expand_vector_set): Generate
15850 vpermr/xxpermr on ISA 3.0.
15851 (altivec_expand_vec_perm_le): Likewise.
15852 * config/rs6000/altivec.md (UNSPEC_VPERMR): New unspec.
15853 (altivec_vpermr_<mode>_internal): Add VPERMR/XXPERMR support for
15856 2016-05-23 Uros Bizjak <ubizjak@gmail.com>
15858 * config/i386/i386.h (IS_STACK_MODE): Enable for
15859 TARGET_MIX_SSE_I387. Rewrite using X87_FLOAT_MODE_P and
15860 SSE_FLOAT_MODE_P macros.
15861 * config/i386/i386.c (ix86_preferred_reload_class): Use
15862 IS_STACK_MODE, INTEGER_CLASS_P, FLOAT_CLASS_P and Q_CLASS_P macros.
15863 Cleanup regclass processing for CONST_DOUBLE_P.
15864 (ix86_preferred_output_reload_class): Use IS_STACK_MODE macro.
15865 (ix86_rtx_costs): Remove redundant TARGET_80387 check
15866 with IS_STACK_MODE macro.
15867 * config/i386/i386.md: Replace SSE_FLOAT_MODE_P (DFmode)
15869 (*movdf_internal): Use IS_STACK_MODE macro.
15870 (*movsf_internal): Ditto.
15872 2016-05-23 Marc Glisse <marc.glisse@inria.fr>
15874 * match.pd (a * (1 << b), ~x & ~y, ~X ^ ~Y, (X ^ Y) ^ Y, ~ (-A),
15875 ~ (A - 1), ~(~X >> Y), ~(~X >>r Y)): Relax constraints.
15877 2016-05-23 Jeff Law <law@redhat.com>
15879 * tree-ssa-threadbackward.c (profitable_jump_thread_path): New function
15881 (fsm_find_control_statement_thread_paths): Call it.
15883 2016-05-23 Martin Jambor <mjambor@suse.cz>
15886 * ipa-cp.c (ipa_get_indirect_edge_target_1): Only check value of
15887 from_global_constant if t is not NULL.
15889 2016-05-23 Marek Polacek <polacek@redhat.com>
15892 * common.opt (Wswitch-unreachable): New option.
15893 * doc/invoke.texi: Document -Wswitch-unreachable.
15894 * gimplify.c (gimplify_switch_expr): Implement the -Wswitch-unreachable
15897 2016-05-23 Bin Cheng <bin.cheng@arm.com>
15899 * tree-ssa-address.c (copy_ref_info): Check NULL TMR_STEP when
15900 TMR_INDEX is non-NULL.
15902 2016-05-23 Richard Biener <rguenther@suse.de>
15904 PR tree-optimization/71230
15905 * tree-ssa-reassoc.c (acceptable_pow_call): Move initial condition...
15906 (try_special_add_to_ops): ... here. Always test for single-use.
15908 2016-05-23 Martin Jambor <mjambor@suse.cz>
15910 * hsa-gen.c (gen_hsa_insns_for_switch_stmt): Create an empty
15911 default block if a PHI node in the original one would be resized.
15913 2016-05-23 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
15915 PR tree-optimization/58135
15916 * tree-vect-slp.c: When group size is not multiple
15917 of vector size, allow splitting of store group at
15920 2016-05-23 Christophe Lyon <christophe.lyon@linaro.org>
15922 * config/arm/arm_neon.h (vtst_p16, vtstq_p16): New.
15924 2016-05-22 Jakub Jelinek <jakub@redhat.com>
15926 * config/i386/sse.md (vec_set_lo_<mode><mask_name>,
15927 vec_set_hi_<mode><mask_name>): Add && <mask_avx512dq_condition>
15928 condition. For !TARGET_AVX512DQ, emit 32x4 instruction instead
15931 * config/i386/sse.md (vec_set_lo_v16hi, vec_set_hi_v16hi,
15932 vec_set_lo_v32qi, vec_set_hi_v32qi): Add alternative with
15933 v constraint instead of x and vinserti32x4 insn.
15935 * config/i386/sse.md (i128vldq): New mode iterator.
15936 (avx2_vbroadcasti128_<mode>, avx_vbroadcastf128_<mode>): Add
15937 avx512dq and avx512vl alternatives.
15939 * config/i386/sse.md (avx2_vec_dupv4df): Use v instead of x
15940 constraint, use maybe_evex prefix instead of vex.
15941 (vec_dupv4sf): Use v constraint instead of x for output
15942 operand except for noavx alternative, use Yv constraint
15943 instead of x for input. Use maybe_evex prefix instead of vex.
15944 (*vec_dupv4si): Likewise.
15945 (*vec_dupv2di): Likewise.
15947 2016-05-22 Kugan Vivekanandarajah <kuganv@linaro.org>
15949 PR middle-end/40921
15950 * tree-ssa-reassoc.c (try_special_add_to_ops): New.
15951 (linearize_expr_tree): Call try_special_add_to_ops.
15952 (reassociate_bb): Convert MULT_EXPR by (-1) to NEGATE_EXPR.
15954 2016-05-21 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
15956 * config/avr/avr.c (avr_expand_prologue): Add INCOMING_FRAME_SP_OFFSET
15957 to computed stack_usage.
15959 2016-05-21 Pitchumani Sivanupandi <pitchumani.s@atmel.com>
15962 * config/avr/avr.md (define_expand "mov<mode>"): If the source
15963 operand is subreg (symbol_ref) then move the symbol ref to register.
15965 2016-05-21 Jan Hubicka <hubicka@ucw.cz>
15967 * tree.c (array_at_struct_end_p): Look through MEM_REF.
15969 2016-05-21 Kugan Vivekanandarajah <kuganv@linaro.org>
15971 PR middle-end/71179
15972 * tree-ssa-reassoc.c (transform_add_to_multiply): Disallow float
15975 2016-05-20 Eric Botcazou <ebotcazou@adacore.com>
15977 * tree-vrp.c (compare_values_warnv): Simplify handling of symbolic
15978 ranges by calling get_single_symbol and tidy up. Look more closely
15979 into NAME + CST1 vs CST2 comparisons if type overflow is undefined.
15981 2016-05-20 Jeff Law <law@redhat.com>
15983 * bitmap.c (bitmap_find_bit): Remove useless test.
15985 2016-05-20 Segher Boessenkool <segher@kernel.crashing.org>
15987 * function.c (thread_prologue_and_epilogue_insns): Commit the
15988 insertion of the epilogue.
15990 2016-05-20 Martin Jambor <mjambor@suse.cz>
15992 PR tree-optimization/70884
15993 * tree-sra.c (initialize_constant_pool_replacements): Do not check
15994 should_scalarize_away_bitmap and cannot_scalarize_away_bitmap bits.
15995 (sort_and_splice_var_accesses): Do not consider multiple scalar reads
15996 of constant pool data as a reason for scalarization.
15998 2016-05-20 Eric Botcazou <ebotcazou@adacore.com>
16000 * config/arm/arm.c (arm_expand_prologue): Set the stack usage to 0
16001 for naked functions.
16002 (thumb1_expand_prologue): Likewise.
16004 2016-05-20 Nathan Sidwell <nathan@acm.org>
16006 * config/nvptx/nptx.c (nvptx_option_override): Only set
16007 flag_toplevel_reorder, if not explicitly specified. Set
16008 flag_no_common, unless explicitly specified.
16010 2016-05-20 David Malcolm <dmalcolm@redhat.com>
16012 * calls.c (can_implement_as_sibling_call_p): Mark param
16013 reg_parm_stack_space with ATTRIBUTE_UNUSED.
16015 2016-05-20 Uros Bizjak <ubizjak@gmail.com>
16017 * config/i386/i386.c (ix86_rtx_costs) <case CONST_DOUBLE>:
16018 Use IS_STACK_MODE when calculating cost of standard 80387 constants.
16019 Fallthru to CONST_VECTOR case to calculate cost of standard SSE
16021 <case CONST_WIDE_INT>: Calculate cost of (MEM (SYMBOL_REF)).
16022 (ix86_legitimate_constant_p): Use CASE_CONST_SCALAR_INT
16023 and CASE_CONST_ANY.
16025 2016-05-20 Cesar Philippidis <cesar@codesourcery.com>
16027 * config/nvptx/nvptx.md (sincossf3): New pattern.
16029 2016-05-20 David Malcolm <dmalcolm@redhat.com>
16031 * calls.c (maybe_complain_about_tail_call): New function.
16032 (initialize_argument_information): Call
16033 maybe_complain_about_tail_call when clearing *may_tailcall.
16034 (can_implement_as_sibling_call_p): Call
16035 maybe_complain_about_tail_call when returning false.
16036 (expand_call): Read CALL_EXPR_MUST_TAIL_CALL and, if set,
16037 ensure try_tail_call is set. Call maybe_complain_about_tail_call
16038 if tail-call optimization fails.
16039 * cfgexpand.c (expand_call_stmt): Initialize
16040 CALL_EXPR_MUST_TAIL_CALL from gimple_call_must_tail_p.
16041 * gimple-pretty-print.c (dump_gimple_call): Dump
16042 gimple_call_must_tail_p.
16043 * gimple.c (gimple_build_call_from_tree): Call
16044 gimple_call_set_must_tail with the value of
16045 CALL_EXPR_MUST_TAIL_CALL.
16046 * gimple.h (enum gf_mask): Add GF_CALL_MUST_TAIL_CALL.
16047 (gimple_call_set_must_tail): New function.
16048 (gimple_call_must_tail_p): New function.
16049 * print-tree.c (print_node): Update printing of TREE_STATIC
16050 to reflect its use for CALL_EXPR_MUST_TAIL_CALL.
16051 * tree-core.h (struct tree_base): Add MUST_TAIL_CALL to the
16052 trailing comment listing applicable flags.
16053 * tree.h (CALL_EXPR_MUST_TAIL_CALL): New macro.
16055 2016-05-20 David Malcolm <dmalcolm@redhat.com>
16057 * calls.c (expand_call): Move "Rest of purposes for tail call
16058 optimizations to fail" to...
16059 (can_implement_as_sibling_call_p): ...this new function, and
16060 split into multiple "if" statements.
16062 2016-05-20 Jan Hubicka <hubicka@ucw.cz>
16064 * cfgloop.h (expected_loop_iterations_unbounded,
16065 expected_loop_iterations): Unconstify.
16066 * cfgloopanal.c (expected_loop_iterations_unbounded): Sanity check the
16067 profile with known upper bound; return 3 when profile is absent.
16068 (expected_loop_iterations): Update.
16070 2016-05-20 Jan Hubicka <hubicka@ucw.cz>
16072 * loop-doloop.c (doloop_optimize): Use get_estimated_loop_iterations_int
16073 and get_max_loop_iterations_int.
16075 2016-05-20 Jan Hubicka <hubicka@ucw.cz>
16077 * tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can not produce
16078 realistic upper bounds here.
16080 2016-05-20 Jakub Jelinek <jakub@redhat.com>
16083 * gimple-fold.c (gimple_fold_call): Do not remove lhs of noreturn
16084 calls if the LHS is variable length or has addressable type.
16085 If targets[0]->decl is a noreturn call with void return type and
16086 zero arguments, adjust fntype and remove lhs in that case.
16088 2016-05-20 Marc Glisse <marc.glisse@inria.fr>
16090 PR tree-optimization/71079
16091 PR tree-optimization/71206
16092 * match.pd ((X ^ Y) ^ (X ^ Z)): Convert the arguments.
16094 2016-05-20 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
16096 * tree-vectorizer.c (get_vec_alignment_for_decl): New static function.
16097 (get_vec_alignment_for_array_decl): Likewise.
16098 (get_vec_alignment_for_record_decl): Likewise.
16099 (increase_alignment::execute): Move code to find alignment to
16100 get_vec_alignment_for_array_decl and call get_vec_alignment_for_decl.
16101 (type_align_map): New hash_map.
16103 2016-05-20 Richard Guenther <rguenther@suse.de>
16105 PR tree-optimization/29756
16106 * tree.def (BIT_INSERT_EXPR): New tcc_expression tree code.
16107 * expr.c (expand_expr_real_2): Handle BIT_INSERT_EXPR.
16108 * fold-const.c (operand_equal_p): Likewise.
16109 (fold_ternary_loc): Add constant folding of BIT_INSERT_EXPR.
16110 * gimplify.c (gimplify_expr): Handle BIT_INSERT_EXPR.
16111 * tree-inline.c (estimate_operator_cost): Likewise.
16112 * tree-pretty-print.c (dump_generic_node): Likewise.
16113 * tree-ssa-operands.c (get_expr_operands): Likewise.
16114 * cfgexpand.c (expand_debug_expr): Likewise.
16115 * gimple-pretty-print.c (dump_ternary_rhs): Likewise.
16116 * gimple.c (get_gimple_rhs_num_ops): Handle BIT_INSERT_EXPR.
16117 * tree-cfg.c (verify_gimple_assign_ternary): Verify BIT_INSERT_EXPR.
16118 * tree-ssa.c (non_rewritable_lvalue_p): We can rewrite
16119 vector inserts using BIT_FIELD_REF or MEM_REF on the lhs.
16120 (execute_update_addresses_taken): Do it.
16122 2016-05-20 Richard Biener <rguenther@suse.de>
16124 PR tree-optimization/71185
16125 * tree-ssa-loop-prefetch.c (gather_memory_references): Drop
16126 register operations.
16128 2016-05-20 Richard Biener <rguenther@suse.de>
16130 * tree-if-conv.c (add_bb_predicate_gimplified_stmts): Use
16131 gimple_seq_add_seq_without_update.
16132 (release_bb_predicate): Assert we have no operands to free.
16133 (if_convertible_loop_p_1): Calculate post dominators later.
16134 Do not free BB predicates here.
16135 (combine_blocks): Do not recompute BB predicates.
16136 (version_loop_for_if_conversion): Save BB predicates around
16139 2016-05-19 Segher Boessenkool <segher@kernel.crashing.org>
16141 * function.c (make_epilogue_seq): Remove epilogue_end parameter.
16142 (thread_prologue_and_epilogue_insns): Remove bb_flags. Restructure
16143 code. Ignore sibcalls on EDGE_IGNORE edges.
16144 * shrink-wrap.c (handle_simple_exit): New function. Set EDGE_IGNORE
16145 on edges for sibcalls that run without prologue. The rest of the
16146 function is combined from...
16147 (fix_fake_fallthrough_edge): ... this, and ...
16148 (try_shrink_wrapping): ... a part of this. Remove the bb_with
16149 function argument, make it a local variable.
16151 2016-05-19 Sandra Loosemore <sandra@codesourcery.com>
16153 * config/i386/cygming.h (DWARF2_UNWIND_INFO): Allow
16154 --disable-sjlj-exceptions for TARGET_BI_ARCH to select DWARF-2 EH
16155 for 32-bit mode and SEH for 64-bit.
16156 * config/i386/mingw32.h (SHARED_LIBGCC_UNDEFS_SPEC): Handle
16157 TARGET_64BIT_DEFAULT.
16159 2016-05-19 Ryan Burn <contact@rnburn.com>
16161 * Makefile.in (GTFILES): Add cilk.h and cilk-common.c.
16162 * gengtype.c (open_base_files): Add cilk.h to ifiles.
16164 2016-05-19 Uros Bizjak <ubizjak@gmail.com>
16166 * sched-deps.c (sched_analyze_2) <case TRAP_IF>: Also
16167 force pending loads from memory.
16169 2016-05-19 Kelvin Nilsen <kelvin@gcc.gnu.org>
16171 * config/rs6000/altivec.md (UNSPEC_DARN): New unspec constant.
16172 (UNSPEC_DARN_32): New unspec constant.
16173 (UNSPEC_DARN_RAW): New unspec constant.
16174 (darn_32): New instruction.
16175 (darn_raw): New instruction.
16176 (darn): New instruction.
16177 * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_0): Add
16178 support and documentation for this macro.
16179 (BU_P9_MISC_1): New macro definition.
16180 (BU_P9_64BIT_MISC_0): New macro definition.
16181 (BU_P9_MISC_0): New macro definition.
16182 (darn_32): New builtin definition.
16183 (darn_raw): New builtin definition.
16184 (darn): New builtin definition.
16185 * config/rs6000/rs6000.c: Add #define RS6000_BUILTIN_0 and #undef
16186 RS6000_BUILTIN_0 directives to surround each occurrence of
16187 #include "rs6000-builtin.def".
16188 (rs6000_builtin_mask_calculate): Add in the RS6000_BTM_MODULO and
16189 RS6000_BTM_64BIT flags to the returned mask, depending on
16191 (def_builtin): Correct an error in the assignments made to the
16192 debugging variable attr_string.
16193 (rs6000_expand_builtin): Add support for no-operand built-in
16195 (builtin_function_type): Remove fatal_error assertion that is no
16197 (rs6000_common_init_builtins): Add support for no-operand built-in
16199 * config/rs6000/rs6000.h (RS6000_BTM_MODULO): New macro
16201 (RS6000_BTM_PURE): Enhance comment to clarify intent of this flag
16203 (RS6000_BTM_64BIT): New macro definition.
16204 * doc/extend.texi: Document __builtin_darn (void),
16205 __builtin_darn_raw (void), and __builtin_darn_32 (void) built-in
16208 2016-05-19 Jan Hubicka <hubicka@ucw.cz>
16210 * tree-vect-loop.c (vect_analyze_loop_2): Use also
16211 max_loop_iterations_int.
16213 2016-05-19 Marek Polacek <polacek@redhat.com>
16215 PR tree-optimization/71031
16216 * tree-vrp.c (extract_range_from_binary_expr_1): Turn assert into a
16217 condition and adjust the code a bit.
16219 2016-05-19 Martin Liska <mliska@suse.cz>
16221 * tree-vect-stmts.c (vectorizable_simd_clone_call): Utilize
16222 auto_vec instead of vec.
16224 2016-05-19 Martin Liska <mliska@suse.cz>
16226 * tree-parloops.c (oacc_entry_exit_ok): Release a vector.
16228 2016-05-19 Martin Liska <mliska@suse.cz>
16230 * tree-if-conv.c (ifcvt_repair_bool_pattern): Utilize auto_vecs.
16232 2016-05-19 Martin Liska <mliska@suse.cz>
16234 * ipa-pure-const.c (set_function_state): Remove an existing
16236 (remove_node_data): Do not free it as it's released
16237 in set_function_state.
16239 2016-05-19 Martin Liska <mliska@suse.cz>
16241 * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Release
16244 2016-05-19 Martin Liska <mliska@suse.cz>
16246 * omp-simd-clone.c (simd_clone_adjust): Release vector.
16248 2016-05-19 Martin Liska <mliska@suse.cz>
16250 * tree-ssa-reassoc.c (eliminate_duplicate_pair): Truncate
16251 an auto_vec instead of re-creating it.
16253 2016-05-19 Martin Liska <mliska@suse.cz>
16255 * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Use
16256 auto_vec instead of vec.
16258 2016-05-19 Martin Liska <mliska@suse.cz>
16260 * lto-section-in.c (lto_get_section_data): Call
16261 lto_check_version with additional argument.
16262 * lto-streamer.c (lto_check_version): Add new argument.
16263 * lto-streamer.h (lto_check_version): Likewise.
16265 2016-05-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
16267 * config/arm/arm.c (arm_new_rtx_costs, SIGN_EXTEND case):
16268 Don't add cost of inner memory when handling sign-extended loads.
16270 2016-05-19 Ilya Enkovich <ilya.enkovich@intel.com>
16272 PR rtl-optimization/71148
16273 * cse.c (cse_main): Free dominance info.
16274 (rest_of_handle_cse): Don't free dominance info.
16275 (rest_of_handle_cse2): Likewise.
16276 (rest_of_handle_cse_after_global_opts): Likewise.
16278 2016-05-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
16281 * config/arm/arm-builtins.c (arm_builtin_vectorized_function): Return
16282 NULL_TREE early if NEON is not available. Remove now redundant check
16283 in ARM_CHECK_BUILTIN_MODE.
16285 2016-05-19 Maxim Ostapenko <m.ostapenko@samsung.com>
16288 * cppbuiltin.c (define_builtin_macros_for_compilation_flags): Add new
16289 builtin __SANITIZE_THREAD__ macros for fsanitize=thread switch.
16290 * doc/cpp.texi: Document new macros.
16292 2016-05-19 Bin Cheng <bin.cheng@arm.com>
16294 PR tree-optimization/69848
16295 * tree-vect-loop.c (vectorizable_reduction): Don't factor
16296 comparison expr out of VEC_COND_EXPR for COND_REDUCTION.
16298 2016-05-19 Segher Boessenkool <segher@kernel.crashing.org>
16300 * function.c (thread_prologue_and_epilogue_insn): Move the
16301 "goto epilogue_done" one block later.
16303 2016-05-19 Richard Biener <rguenther@suse.de>
16305 PR tree-optimization/70729
16306 * passes.def: Move LIM pass before PRE. Remove no longer
16307 required copyprop and move first DCE out of the loop pipeline.
16309 2016-05-18 David Malcolm <dmalcolm@redhat.com>
16312 * Makefile.in (GCC_OBJS): Move spellcheck.o to...
16313 (OBJS-libcommon-target): ...here.
16314 * opts-common.c: Include spellcheck.h.
16315 (cmdline_handle_error): Build a vec of valid options and use it
16316 to suggest provide hints for misspelled arguments.
16318 2016-05-18 Jakub Jelinek <jakub@redhat.com>
16321 * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Don't drop
16322 lhs if it has TREE_ADDRESSABLE type.
16324 2016-05-18 Uros Bizjak <ubizjak@gmail.com>
16327 * config/alpha/alpha.md (trap): Add (use (reg:DI 29)).
16328 (*exception_receiver_1): Return "#" for TARGET_EXPLICIT_RELOCS.
16330 2016-05-18 Martin Jambor <mjambor@suse.cz>
16333 * ipa-cp.c (ipa_get_jf_pass_through_result): Allow non-ip constant
16334 input for NOP_EXPR pass-through functions.
16335 * ipa-prop.c (ipa_compute_jump_functions_for_edge): Allow
16336 aggregate global constant VAR_DECLs in constant jump functions.
16338 2016-05-18 Martin Jambor <mjambor@suse.cz>
16341 * ipa-prop.c (parm_preserved_before_stmt_p): Return true for loads
16342 from TREE_READONLY parameters.
16344 2016-05-18 Martin Jambor <mjambor@suse.cz>
16347 * cgraph.h (cgraph_indirect_call_info): New field
16348 guaranteed_unmodified.
16349 * ipa-cp.c (ipa_get_indirect_edge_target_1): Also pass parameter value
16350 to ipa_find_agg_cst_for_param, check guaranteed_unmodified when
16352 * ipa-inline-analysis.c (evaluate_conditions_for_known_args): Also
16353 pass the parameter value to ipa_find_agg_cst_for_param.
16354 * ipa-prop.c (ipa_load_from_parm_agg): New parameter
16355 guaranteed_unmodified, store AA results there instead of bailing out
16357 (ipa_note_param_call): Also initialize guaranteed_unmodified flag.
16358 (ipa_analyze_indirect_call_uses): Also set guaranteed_unmodified flag.
16359 (find_constructor_constant_at_offset): New function.
16360 (ipa_find_agg_cst_from_init): Likewise.
16361 (ipa_find_agg_cst_for_param): Also seearch for aggregate values in
16362 static initializers of contants, report back through a new paameter
16363 from_global_constant if that was the case.
16364 (try_make_edge_direct_simple_call): Also pass parameter value to
16365 ipa_find_agg_cst_for_param, check guaranteed_unmodified when
16367 (ipa_write_indirect_edge_info): Stream new flag guaranteed_unmodified.
16368 (ipa_read_indirect_edge_info): Likewise.
16369 * ipa-prop.h (ipa_find_agg_cst_for_param): Update declaration.
16370 (ipa_load_from_parm_agg): Likewise.
16372 2016-05-18 Jiong Wang <jiong.wang@arm.com>
16374 PR rtl-optimization/71150
16375 * lra-constraint (process_addr_reg): Guard "in_class_p" with REG_P
16378 2016-05-18 Michael Meissner <meissner@linux.vnet.ibm.com>
16381 * config/rs6000/constraints.md (wE constraint): New constraint
16382 for a vector constant that can be loaded with XXSPLTIB.
16383 (wM constraint): New constraint for a vector constant of a 1's.
16384 (wS constraint): New constraint for a vector constant that can be
16385 loaded with XXSPLTIB and a vector sign extend instruction.
16386 * config/rs6000/predicates.md (xxspltib_constant_split): New
16387 predicates for wE/wS constraints.
16388 (xxspltib_constant_nosplit): Likewise.
16389 (easy_vector_constant): Add support for constants that can be
16390 loaded via XXSPLTIB.
16391 (all_ones_constant): New predicate for vector constant with all
16393 (splat_input_operand): Add support for ISA 3.0 word splat operations.
16394 * config/rs6000/rs6000.c (xxspltib_constant_p): New function to
16395 return if a constant can be loaded with the ISA 3.0 XXSPLTIB
16396 instruction and possibly with a sign extension.
16397 (output_vec_const_move): Add support for XXSPLTIB. If we are
16398 loading up 0/-1 into Altivec registers, prefer using VSPLTISW
16399 instead of XXLXOR/XXLORC.
16400 (rs6000_expand_vector_init): Add support for ISA 3.0 word splat
16402 (rs6000_legitimize_reload_address): Likewise.
16403 (rs6000_output_move_128bit): Use output_vec_const_move to emit
16405 * config/rs6000/vsx.md (VSX_M): Add TImode (if -mvsx-timode) and
16406 combine VSX_M and VSX_M2 into one iterator.
16407 (VSX_M2): Likewise.
16408 (VSINT_84): New iterators for loading constants with XXSPLTIB.
16409 (VSINT_842): Likewise.
16410 (UNSPEC_VSX_SIGN_EXTEND): New UNSPEC.
16411 (xxspltib_v16qi): New insns to load up constants with the ISA 3.0
16412 XXSPLTIB instruction.
16413 (xxspltib_<mode>_nosplit): Likewise.
16414 (xxspltib_<mode>_split): New insn to load up constants with
16415 XXSPLTIB and a sign extend instruction.
16416 (vsx_mov<mode>): Replace single move that handled all vector types
16417 with separate 32-bit and 64-bit moves. Combine the movti_<bit>
16418 moves (when -mvsx-timode is in effect) into the main vector
16419 moves. Eliminate separate moves for <VSr> <VSa>, where the
16420 preferred register class (<VSr>) is listed first, and the
16421 secondary register class (<VSa>) is listed second with a '?' to
16422 discourage use. Prefer loading 0/-1 in any VSX register for ISA
16423 3.0, and Altivec registers for ISA 2.06/2.07 (PR target/70915) so
16424 that if the register was involved in a slow operation, the
16425 clear/set operation does not wait for the slow operation to
16426 finish. Adjust the length attributes for 32-bit mode. Use
16427 rs6000_output_move_128bit and drop the use of the string
16428 instructions for 32-bit movti when -mvsx-timode is in effect. Use
16429 spacing so that the alternatives and attributes don't generate
16430 long lines, and put things in columns, so that it is easier to
16431 match up the operands and attributes with the insn alternatives.
16432 (vsx_mov<mode>_64bit): Likewise.
16433 (vsx_mov<mode>_32bit): Likewise.
16434 (vsx_movti_64bit): Fold movti into normal vector moves.
16435 (vsx_movti_32bit): Likewise.
16436 (vsx_splat_<mode>, V4SI/V4SF modes): Add support for ISA 3.0 word
16437 splat instructions.
16438 (vsx_splat_v4si_internal): Likewise.
16439 (vsx_splat_v4sf_internal): Likewise.
16440 (vector fusion peepholes): Use VSX_M instead of VSX_M2.
16441 (vsx_sign_extend_qi_<mode>): New ISA 3.0 instructions to sign
16442 extend vector elements.
16443 (vsx_sign_extend_hi_<mode>): Likewise.
16444 (vsx_sign_extend_si_v2di): Likewise.
16445 * config/rs6000/rs6000-protos.h (xxspltib_constant_p): Add
16447 * doc/md.texi (PowerPC constraints): Document the wE, wM, and wS
16448 constraints. Add trailing period to wL documentation.
16450 2016-05-18 Richard Sandiford <richard.sandiford@arm.com>
16452 PR middle-end/71020
16453 * tree-dfa.h (replace_abnormal_ssa_names): Declare.
16454 * tree-dfa.c (replace_abnormal_ssa_names): New function.
16455 * tree-call-cdce.c: Include tree-dfa.h.
16456 (can_guard_call_p): New function, extracted from...
16457 (can_use_internal_fn): ...here.
16458 (shrink_wrap_one_built_in_call_with_conds): Remove failure path
16460 (shrink_wrap_one_built_in_call): Likewise.
16461 (use_internal_fn): Likewise.
16462 (shrink_wrap_conditional_dead_built_in_calls): Update accordingly
16463 and return void. Call replace_abnormal_ssa_names.
16464 (pass_call_cdce::execute): Check can_guard_call_p during the
16465 initial walk. Assume shrink_wrap_conditional_dead_built_in_calls
16466 will always change something.
16468 2016-05-18 Martin Jambor <mjambor@suse.cz>
16471 * ipa-prop.c (determine_locally_known_aggregate_parts): Bail out early
16472 if parameter PARAM_IPA_MAX_AGG_ITEMS is zero.
16474 2016-05-18 Martin Jambor <mjambor@suse.cz>
16477 * ipa-inline.h (condition): New field size.
16478 * ipa-inline-analysis.c (add_condition): New parameter SIZE, use it
16479 for comaprison and store it into the new condition.
16480 (evaluate_conditions_for_known_args): Use condition size to check
16481 access sizes for all but CHANGED conditions.
16482 (unmodified_parm_1): New parameter size_p, store access size into it.
16483 (unmodified_parm): Likewise.
16484 (unmodified_parm_or_parm_agg_item): Likewise.
16485 (eliminated_by_inlining_prob): Pass NULL to unmodified_parm as size_p.
16486 (set_cond_stmt_execution_predicate): Extract access sizes and store
16487 them to conditions.
16488 (set_switch_stmt_execution_predicate): Likewise.
16489 (will_be_nonconstant_expr_predicate): Likewise.
16490 (will_be_nonconstant_predicate): Likewise.
16491 (inline_read_section): Stream condition size.
16492 (inline_write_summary): Likewise.
16494 2016-05-18 Richard Biener <rguenther@suse.de>
16496 * tree-ssa-loop-im.c (determine_max_movement): Properly add
16497 condition cost to PHI cost instead of total_cost.
16499 2016-05-18 Martin Liska <mliska@suse.cz>
16502 * ipa-icf.c (sem_variable::merge): Set DECL_PT_UID for
16505 2016-05-18 Richard Biener <rguenther@suse.de>
16507 * lto-streamer.h (LTO_major_version): Bump to 6.
16509 2016-05-18 Segher Boessenkool <segher@kernel.crashing.org>
16511 * function.c (make_split_prologue_seq, make_prologue_seq,
16512 make_epilogue_seq): New functions, factored out from...
16513 (thread_prologue_and_epilogue_insns): Here.
16515 2016-05-18 Segher Boessenkool <segher@kernel.crashing.org>
16517 * function.c (rest_of_handle_thread_prologue_and_epilogue): Call
16518 cleanup_cfg with CLEANUP_EXPENSIVE after shrink-wrapping instead
16519 of before. Add a comment.
16521 2016-05-18 Bin Cheng <bin.cheng@arm.com>
16523 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Check invariant
16524 expression pointer, not pointer to the pointer.
16526 2016-05-18 Jakub Jelinek <jakub@redhat.com>
16528 * config/i386/sse.md (pbroadcast_evex_isa): New mode attr.
16529 (avx2_pbroadcast<mode>): Add another alternative with v instead
16530 of x constraints in it, using <pbroadcast_evex_isa> isa.
16531 (avx2_pbroadcast<mode>_1): Similarly, add two such alternatives.
16533 * config/i386/sse.md (<ssse3_avx2>_palignr<mode>): Use
16534 constraint x instead of v in second alternative, add avx512bw
16537 * config/i386/sse.md (<ssse3_avx2>_pshufb<mode>3<mask_name>): Use
16538 constraint x instead of v in second alternative, add avx512bw
16541 * config/i386/sse.md (*<ssse3_avx2>_pmulhrsw<mode>3<mask_name>): Use
16542 constraint x instead of v in second alternative, add avx512bw
16545 * config/i386/sse.md (avx2_pmaddubsw256, ssse3_pmaddubsw128): Add
16546 avx512bw alternative.
16548 2016-05-18 Kirill Yukhin <kirill.yukhin@intel.com>
16550 * config/i386/sse.md (define_insn "*andnot<mode>3"): Extend static
16551 array to 128 chars.
16552 (define_insn "*andnottf3"): Ditto.
16553 (define_insn "*<code><mode>3"/any_logic): Ditto.
16554 (define_insn "*<code>tf3"/any_logic): Ditto.
16555 (define_insn "sse2_storehpd"): Use Yv constraint for scalar
16556 operand to block AVX-512VL insn variant emit when it is not enabled.
16558 2016-05-18 Kirill Yukhin <kirill.yukhin@intel.com>
16560 * config/i386/sse.md (define_insn "*vec_concatv2sf_sse4_1"): Use 'Yv'
16561 constraint fot SF mode.
16563 2016-05-18 Petr Murzin <petr.murzin@intel.com>
16564 Kirill Yukhin <kirill.yukhin@intel.com>
16566 * config/i386/sse.md (define_insn "srcp14<mode>"): Use proper operand
16568 (define_insn "rsqrt14<mode>"): Ditto.
16569 (define_insn "<mask_codefor>avx512dq_cvtps2qqv2di<mask_name>"): Ditto.
16570 (define_insn "<fixsuffix>fix_truncv2sfv2di2<mask_name>"): Ditto.
16571 (define_insn "avx512f_<code>v8div16qi2_mask_store"): Ditto.
16572 (define_insn "vec_set_hi_<mode><mask_name>"): Ditto.
16573 (define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>"):
16575 (define_insn "*avx512f_gatherdi<mode>"): Ditto.
16576 (define_insn "*avx512f_scatterdi<mode>"): Ditto.
16577 * config/i386/i386.c (ix86_print_operand): Expand check for size
16578 override codes for Intel syntax.
16580 2016-05-18 Richard Biener <rguenther@suse.de>
16582 PR tree-optimization/71168
16583 * tree-loop-distribution.c (distribute_loop): Move *destroy_p
16584 initialization earlier.
16586 2016-05-18 James Greenhalgh <james.greenhalgh@arm.com>
16588 * config/aarch64/aarch64-simd.md
16589 (aarch64_reduc_plus_internal<mode>): Rename to...
16590 (reduc_plus_scal): ...This, and remove previous implementation.
16592 2016-05-18 Richard Biener <rguenther@suse.de>
16594 * passes.def: Put late dse and cd_dce in canonical order.
16596 2016-05-17 Jan Hubicka <hubicka@ucw.cz>
16598 * ipa-inline-transform.c (preserve_function_body_p): Look for
16599 first non-thunk clone.
16600 (save_function_body): Save into first non-thunk.
16601 * lto-cgraph.c (lto_output_edge): When streaming thunk do not look
16603 (lto_output_node): Inline thunks don't need body in every
16605 * lto-streamer-in.c: Do not fixup thunk clones.
16606 * cgraphclones.c (cgraph_node::create_edge_including_clone): Skip
16608 * tree-inline.c (copy_bb): Be prepared for target node to be new after
16611 2016-05-17 Kugan Vivekanandarajah <kuganv@linaro.org>
16613 PR middle-end/63586
16614 * tree-ssa-reassoc.c (transform_add_to_multiply): New.
16615 (reassociate_bb): Call transform_add_to_multiply.
16617 2016-05-17 Kugan Vivekanandarajah <kuganv@linaro.org>
16619 * config/aarch64/aarch64.c (all_extensions): Removed unused
16622 2016-05-17 Nathan Sidwell <nathan@acm.org>
16624 * config/nvptx/nvptx.c (nvptx_function_arg_boundary): New.
16625 (TARGET_FUNCTION_ARG_BOUNDARY): Override.
16627 2016-05-17 Mikhail Maltsev <maltsevm@gmail.com>
16629 PR tree-optimization/54579
16630 PR middle-end/55299
16631 * match.pd (~(~X >> Y), ~(~X >>r Y), ~(~X <<r Y)): New patterns.
16633 2016-05-17 Marek Polacek <polacek@redhat.com>
16636 * tree-inline.c (expand_call_inline): Call
16637 maybe_remove_unused_call_args.
16639 2016-05-17 Jim Wilson <jim.wilson@linaro.org>
16641 * doc/cpp.texi (__GNUC__): Major version changes are no longer rare.
16642 * doc/invoke.texi (-mnan=2008): Change signalling to signaling.
16643 * doc/md.texi (fmin@var{m}3): Likewise.
16645 2016-05-17 Marc Glisse <marc.glisse@inria.fr>
16647 * match.pd (X & C): New transformation.
16649 2016-05-17 Marc Glisse <marc.glisse@inria.fr>
16651 * match.pd (~X & Y): New transformation.
16653 2016-05-17 Marc Glisse <marc.glisse@inria.fr>
16655 * tree-vrp.c (simplify_truth_ops_using_ranges): Set range
16656 information for new SSA_NAME.
16657 (simplify_conversion_using_ranges): Get range through get_range_info
16658 instead of get_value_range.
16660 2016-05-17 Jiong Wang <jiong.wang@arm.com>
16662 * config/aarch64/arm_neon.h (vmvn_s8): Reimplement using C operator.
16663 Remove inline assembly.
16664 (vmvn_s16): Likewise.
16665 (vmvn_s32): Likewise.
16666 (vmvn_u8): Likewise.
16667 (vmvn_u16): Likewise.
16668 (vmvn_u32): Likewise.
16669 (vmvnq_s8): Likewise.
16670 (vmvnq_s16): Likewise.
16671 (vmvnq_s32): Likewise.
16672 (vmvnq_u8): Likewise.
16673 (vmvnq_u16): Likewise.
16674 (vmvnq_u32): Likewise.
16675 (vmvn_p8): Likewise.
16676 (vmvnq_p16): Likewise.
16678 2016-05-17 Jiong Wang <jiong.wang@arm.com>
16680 * config/aarch64/aarch64-simd.md (vmul_n_f32): Remove inline assembly.
16682 (vmul_n_s16): Likewise.
16683 (vmul_n_s32): Likewise.
16684 (vmul_n_u16): Likewise.
16685 (vmul_n_u32): Likewise.
16686 (vmulq_n_f32): Likewise.
16687 (vmulq_n_f64): Likewise.
16688 (vmulq_n_s16): Likewise.
16689 (vmulq_n_s32): Likewise.
16690 (vmulq_n_u16): Likewise.
16691 (vmulq_n_u32): Likewise.
16693 2016-05-17 Jiong Wang <jiong.wang@arm.com>
16695 * config/aarch64/aarch64-simd.md (*aarch64_mul3_elt_to_128df): Extend
16696 to all supported modes. Rename to "*aarch64_mul3_elt_from_dup".
16698 2016-05-17 Jiong Wang <jiong.wang@arm.com>
16700 * config/aarch64/aarch64-simd.md (*aarch64_fma4_elt_to_128df): Rename
16701 to *aarch64_fma4_elt_from_dup<mode>.
16702 (*aarch64_fnma4_elt_to_128df): Rename to
16703 *aarch64_fnma4_elt_from_dup<mode>.
16704 * config/aarch64/arm_neon.h (vfma_n_f64): New.
16705 (vfms_n_f32): Likewise.
16706 (vfms_n_f64): Likewise.
16707 (vfmsq_n_f32): Likewise.
16708 (vfmsq_n_f64): Likewise.
16710 2016-05-17 Gerald Pfeifer <gerald@pfeifer.com>
16712 * wide-int.h: Change fixed_wide_int_storage from class to struct.
16714 2016-05-17 Richard Biener <rguenther@suse.de>
16716 PR tree-optimization/71132
16717 * tree-loop-distribution.c (create_rdg_cd_edges): Pass in loop.
16718 Only add control dependences for blocks in the loop.
16719 (build_rdg): Adjust.
16720 (generate_code_for_partition): Return whether loop should
16721 be destroyed and delay that.
16722 (distribute_loop): Likewise.
16723 (pass_loop_distribution::execute): Record loops to be destroyed
16724 and perform delayed destroying of loops.
16726 2016-05-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
16729 * config/aarch64/aarch64-simd.md (aarch64_vmls<mode>): Delete.
16731 2016-05-17 James Greenhalgh <james.greenhalgh@arm.com>
16733 * config/aarch64/aarch64-elf.h (ASM_OUTPUT_DEF): Delete.
16735 2016-05-17 Ilya Enkovich <ilya.enkovich@intel.com>
16738 * config/i386/i386.c (dimode_scalar_chain::convert_op): Fix
16739 insertion point for instructions generated by validize_mem.
16741 2016-05-17 James Greenhalgh <james.greenhalgh@arm.com>
16743 * config/aarch64/aarch64.c (SHIFT_COUNT_TRUNCATED): Wrap definition
16746 2016-05-17 James Greenhalgh <james.greenhalgh@arm.com>
16748 * config/aarch64/aarch64.c
16749 (aarch64_output_simd_mov_immediate): Make "buf_size" a variable
16750 rather than a macro.
16752 2016-05-16 Wilco Dijkstra <wdijkstr@arm.com>
16754 * doc/invoke.texi (AArch64 Options): Various updates.
16756 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
16758 * ipa-inline-analysis.c (compute_inline_parameters): Disable inlinig
16759 into instrumentation thunks.
16760 * cif-code.def (CIF_CHKP): New.
16762 2016-05-16 Uros Bizjak <ubizjak@gmail.com>
16764 * config/i386/xopintrin.h: Correct "unsinged" typo in the comments.
16766 2016-05-16 Martin Jambor <mjambor@suse.cz>
16768 * hsa-gen.c (fillup_for_decl): Increase alignment to natural one.
16769 (get_symbol_for_decl): Sorry if a global symbol in under-aligned.
16771 2016-05-16 Marek Polacek <polacek@redhat.com>
16773 * gimple.c (maybe_remove_unused_call_args): Fix typos in the
16776 2016-05-16 Martin Jambor <mjambor@suse.cz>
16779 * omp-low.c (grid_expand_target_grid_body): Copy RESULT_DECL of
16780 the outlined kernel function.
16782 2016-05-16 Robert Suchanek <robert.suchanek@imgtec.com>
16784 * config/mips/mips.h (ISA_HAS_LSA): Enable for -mmsa.
16785 (ISA_HAS_DLSA): Ditto.
16787 2016-05-16 Matthew Fortune <matthew.fortune@imgtec.com>
16789 * config/mips/m5100.md (m51_int_load): Update the latency to 2.
16791 2016-05-16 Nathan Sidwell <nathan@acm.org>
16793 * config/nvptx/nvptx.c (nvptx_mangle_decl_assembler_name): Revert.
16794 (nvptx_name_replacement): Restore. Add comment.
16795 (write_fn_proto, write_fn_proto_from_insn,
16796 nvptx_output_call_insn): Restore
16797 (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Delete.
16799 2016-05-16 Wilco Dijkstra <wdijkstr@arm.com>
16801 * config/aarch64/aarch64.md
16802 (add<mode>3_compareC_cconly_imm): Remove use of %w.
16803 (add<mode>3_compareC_imm): Likewise.
16804 (<optab>si3_uxtw): Split into register and immediate variants.
16805 (andsi3_compare0_uxtw): Likewise.
16806 (and<mode>3_compare0): Likewise.
16807 (and<mode>3nr_compare0): Likewise.
16808 (stack_protect_test_<mode>): Don't use %x for memory operands.
16810 2016-05-16 Matthew Fortune <matthew.fortune@imgtec.com>
16812 * config/mips/mips-cpus.def (p5600): Add multi-line brackets.
16814 2016-05-16 Wilco Dijkstra <wdijkstr@arm.com>
16816 * config/aarch64/aarch64.md (aarch64_ashl_sisd_or_int_<mode>3):
16817 Split integer shifts into shift_reg and bfm.
16818 (aarch64_lshr_sisd_or_int_<mode>3): Likewise.
16819 (aarch64_ashr_sisd_or_int_<mode>3): Likewise.
16820 (ror<mode>3_insn): Likewise.
16821 (<optab>si3_insn_uxtw): Likewise.
16822 (<optab><mode>3_insn): Change to rotate_imm.
16823 (extr<mode>5_insn_alt): Likewise.
16824 (extrsi5_insn_uxtw): Likewise.
16825 (extrsi5_insn_uxtw_alt): Likewise.
16827 2016-05-16 Matthew Wahab <matthew.wahab@arm.com>
16829 * doc/tm.texi: Regenerate.
16830 * doc/tm.texi.in (TARGET_INVALID_PARAMETER_TYPE): Remove.
16831 (TARGET_INVALID_RETURN_TYPE): Remove.
16832 * system.h: Poison TARGET_INVALID_PARAMETER_TYPE and
16833 TARGET_INVALID_RETURN_TYPE.
16834 * target.def (invalid_parameter_type): Remove.
16835 (invalid_return_type): Remove.
16837 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
16839 * ipa-inline-analysis.c (compute_inline_parameters): Be more reailistic
16840 on estimating thunk bodies; do not set inline_failed to CIF_THUNK for
16842 * ipa-inline-transform.c (inline_call): When inlining into thunk produce
16844 (preserve_function_body_p): No need to preserve function body
16845 * cif-codes.def (CIF_THUNK): Remove.
16846 * cgraphclones.c (duplicate_thunk_for_node): Thunks calls are inlinable.
16848 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
16850 * tree-inline.c (expand_call_inline): recurse after inlining thunk.
16852 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
16854 * tree.c (free_lang_data_in_decl): Also set target/optimization flags
16857 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
16859 * ipa-inline.c (report_inline_failed_reason): Look into thunks, too
16860 (inline_small_functions): Do not look for function symbol when
16863 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
16865 * lto-cgraph.c (compute_ltrans_boundary, output_symtab): Fix handling
16868 2016-05-16 Matthew Wahab <matthew.wahab@arm.com>
16869 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
16870 Jiong Wang <jiong.wang@arm.com>
16872 * config/arm/arm-c.c (arm_cpu_builtins): Use def_or_undef_macro
16873 for __ARM_FP16_FORMAT_IEEE and __ARM_FP16_FORMAT_ALTERNATIVE.
16874 Define __ARM_FP16_ARGS when appropriate.
16875 * config/arm/arm.c (arm_invalid_parameter_type): Remove
16877 (arm_invalid_return_type): Likewise.
16878 (TARGET_INVALID_PARAMETER_TYPE): Remove.
16879 (TARGET_INVALID_RETURN_TYPE): Remove.
16880 (aapcs_vfp_sub_candidate): Allow HFmode.
16881 (aapcs_vfp_allocate): Add comment. Support HFmode.
16882 (aapcs_vfp_allocate_return_reg): Likewise.
16883 (struct aapcs_cp_arg_layout): Slightly reword comments for
16884 is_return_candidate and allocate_return_reg.
16885 (output_mov_vfp): Update assert.
16886 (arm_hard_regno_mode_ok): Remove comment, update HF-mode
16888 (arm_invalid_parameter_type): Remove.
16889 (amr_invalid_return_type): Remove.
16890 * config/arm/arm.h (TARGET_NEON_FP16): Fix definition.
16891 * config/arm/arm.md (*arm32_movhf): Disable for TARGET_VFP.
16892 * config/arm/vfp.md (*movhf_vfp): Enable for TARGET_VFP.
16894 2016-05-16 Matthew Wahab <matthew.wahab@arm.com>
16896 * config/aarch64/aarch64.h (LEGITIMIZE_RELOAD_ADDRESS): Remove.
16897 * config/aarch64/arch64-protos.h
16898 (aarch64_legitimize_reload_address): Remove.
16899 * config/aarch64/aarch64.c (aarch64_legitimize_reload_address):
16902 2016-05-16 Eric Botcazou <ebotcazou@adacore.com>
16904 * configure.ac: Add ACX_NONCANONICAL_HOST.
16905 * configure: Regenerate.
16906 * Makefile.in: Set host_noncanonical.
16908 2016-05-14 Uros Bizjak <ubizjak@gmail.com>
16911 * config/i386/i386.md (*movtf_internal): Before register allocation,
16912 do not allow FP constants for CM_MEDIUM memory model, allow only
16913 standard FP constants for CM_LARGE and CM_LARGE_PIC models.
16914 (*movxf_internal): Ditto.
16915 (*movdf_internal): Ditto.
16916 (*movsf_internal): Ditto.
16918 2016-05-13 Segher Boessenkool <segher@kernel.crashing.org>
16920 PR rtl-optimization/67483
16921 * combine.c (make_compound_operation): Don't call extract_left_shift
16922 with negative shift amounts.
16924 2016-05-13 Jakub Jelinek <jakub@redhat.com>
16927 * fold-const.c (fold_checksum_tree): Allow modification
16928 of TYPE_ALIAS_SET during folding.
16930 * config/i386/i386.c (ix86_compute_frame_layout, ix86_expand_prologue,
16931 ix86_expand_split_stack_prologue): Use HOST_WIDE_INT_C macro.
16932 (ix86_split_to_parts): Likewise. Fix up formatting.
16934 2016-05-13 H.J. Lu <hongjiu.lu@intel.com>
16936 * tree-ssa-loop-ivopts.c (create_new_ivs): Cast to
16937 unsigned HOST_WIDE_INT with HOST_WIDE_INT_PRINT_UNSIGNED in
16940 2016-05-13 Nathan Sidwell <nathan@acm.org>
16942 * config/nvptx/nvptx.c (nvptx_mangle_decl_assembler_name): New.
16943 (nvptx_name_replacement): Delete.
16944 (write_fn_proto, write_fn_proto_from_insn,
16945 nvptx_output_call_insn): Remove nvptx_name_replacement call.
16946 (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Override.
16947 * langhooks.c (add_builtin_funcction_common): Call
16948 targetm.mangle_decl_assembler_name.
16950 * config/nvptx/nvptx.c (write_fn_proto): Handle
16951 BUILT_IN_ATOMIC_COMPARE_EXCHANGE_n oddity.
16953 2016-05-13 Martin Liska <mliska@suse.cz>
16955 * tree-ssa-loop-ivopts.c (create_new_ivs): Use HOST_WIDE_INT_PRINT_DEC
16956 and PRIu64 in printf format.
16958 2016-05-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
16960 * tree-ssa-loop-ivanon.c (try_unroll_loop_completely): Typo fix in
16963 2016-05-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
16965 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely):
16966 Change --param max-completely-peeled-times to
16967 --param max-completely-peel-times in dump file printing.
16969 2016-05-13 Richard Biener <rguenther@suse.de>
16971 PR tree-optimization/42587
16972 * tree-ssa-math-opts.c (perform_symbolic_merge): Handle BIT_FIELD_REF.
16973 (find_bswap_or_nop_1): Likewise.
16974 (bswap_replace): Likewise.
16976 2016-05-13 Martin Liska <mliska@suse.cz>
16978 * tree-vect-patterns.c (vect_recog_mask_conversion_pattern):
16979 Initialize a variable with default value.
16981 2016-05-13 Martin Liska <mliska@suse.cz>
16983 * doc/invoke.texi: Enhance explanation of error recovery
16986 2016-05-13 Martin Liska <mliska@suse.cz>
16988 * tree-ssa-loop-ivopts.c (avg_loop_niter): Fix coding style.
16989 (struct cost_pair): Change inv_expr_id (int) to inv_expr
16990 (iv_inv_expr_ent *).
16991 (struct iv_inv_expr_ent): Comment struct fields.
16992 (sort_iv_inv_expr_ent): New function.
16993 (struct ivopts_data): Rename inv_expr_id to max_inv_expr_id.
16994 (struct iv_ca): Replace used_inv_expr and num_used_inv_expr with
16995 a hash_map between iv_inv_expr_ent and number of usages.
16996 (niter_for_exit): Fix coding style.
16997 (tree_ssa_iv_optimize_init): Use renamed variable.
16998 (determine_base_object): Fix coding style.
16999 (alloc_iv): Likewise.
17000 (find_interesting_uses_outside): Likewise.
17001 (add_candidate_1): Likewise.
17002 (add_standard_iv_candidates): Likewise.
17003 (set_group_iv_cost): Replace inv_expr_id with inv_expr.
17004 (prepare_decl_rtl): Fix coding style.
17005 (get_address_cost): Likewise.
17006 (get_shiftadd_cost): Likewise.
17007 (force_expr_to_var_cost): Likewise.
17008 (compare_aff_trees): Likewise.
17009 (get_expr_id): Restructure the function.
17010 (get_loop_invariant_expr_id): Renamed to
17011 get_loop_invariant_expr.
17012 (get_computation_cost_at): Replace usage of inv_expr_id with
17014 (get_computation_cost): Likewise.
17015 (determine_group_iv_cost_generic): Likewise.
17016 (determine_group_iv_cost_address): Likewise.
17017 (iv_period): Fix coding style.
17018 (iv_elimination_compare_lt): Likewise.
17019 (may_eliminate_iv): Likewise.
17020 (determine_group_iv_cost_cond): Replace usage of inv_expr_id with
17022 (determine_group_iv_costs): Dump invariant expressions.
17023 (iv_ca_recount_cost): Use the newly added hash_map.
17024 (iv_ca_set_remove_invariants): Fix coding style.
17025 (iv_ca_set_add_invariants): Fix coding style.
17026 (iv_ca_set_no_cp): Utilize the newly added hash_map for used
17028 (iv_ca_set_cp): Likewise.
17029 (iv_ca_new): Initialize the newly added hash_map and remove
17030 initialization of fields.
17031 (iv_ca_free): Delete the hash_map.
17032 (iv_ca_dump): Dump invariant expressions.
17033 (iv_ca_extend): Fix coding style.
17034 (try_add_cand_for): Likewise.
17035 (create_new_ivs): Dump information about # of avg iterations and
17036 # of used invariant expressions.
17037 (rewrite_use_compare): Fix coding style.
17038 (free_loop_data): Set default value for max_inv_expr_id.
17040 2016-05-13 Ilya Enkovich <ilya.enkovich@intel.com>
17042 * cse.c (rest_of_handle_cse): Use cleanup_cfg
17043 returned value cse_cfg_altered computation.
17044 (rest_of_handle_cse2): Likewise.
17045 (rest_of_handle_cse_after_global_opts): Likewise.
17047 2016-05-13 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
17050 * config/arm/arm.c (arm32_output_mi_thunk): New.
17051 (arm_output_mi_thunk): Rename to arm_thumb1_mi_thunk. Rework
17052 to split Thumb1 vs TARGET_32BIT functionality.
17053 (arm_thumb1_mi_thunk): New.
17055 2016-05-13 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
17057 * config/aarch64/aarch64.c (TARGET_OMIT_STRUCT_RETURN_REG): Set
17060 2016-05-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
17063 * config/i386/i386.c (ix86_in_large_data_p): Guard against NULL exp.
17065 2016-05-13 Eric Botcazou <ebotcazou@adacore.com>
17067 * builtins.c (expand_builtin_memcmp): Do not emit the call here.
17068 (expand_builtin_trap): Emit a regular call.
17069 (set_builtin_user_assembler_name): Remove obsolete cases.
17070 * dse.c (scan_insn): Adjust.
17071 * except.c: Include calls.h.
17072 (sjlj_emit_function_enter): If DONT_USE_BUILTIN_SETJMP is defined,
17073 emit a regular call to setjmp.
17074 * expr.c (emit_block_move_hints): Call emit_block_copy_via_libcall.
17075 (block_move_libcall_safe_for_call_parm): Use memcpy builtin.
17076 (emit_block_move_via_libcall): Delete.
17077 (block_move_fn): Delete.
17078 (init_block_move_fn): Likewise.
17079 (emit_block_move_libcall_fn): Likewise.
17080 (emit_block_op_via_libcall): New function.
17081 (set_storage_via_libcall): Tidy up and use memset builtin.
17082 (block_clear_fn): Delete.
17083 (init_block_clear_fn): Likewise.
17084 (clear_storage_libcall_fn): Likewise.
17085 (expand_assignment): Call emit_block_move_via_libcall.
17086 Do not include gt-expr.h.
17087 * expr.h (emit_block_op_via_libcall): Declare.
17088 (emit_block_copy_via_libcall): New inline function.
17089 (emit_block_move_via_libcall): Likewise.
17090 (emit_block_comp_via_libcall): Likewise.
17091 (block_clear_fn): Delete.
17092 (init_block_move_fn): Likewise.
17093 (init_block_clear_fn): Likewise.
17094 (emit_block_move_via_libcall): Likewise.
17095 (set_storage_via_libcall): Add default parameter value.
17096 * libfuncs.h (enum libfunc_index): Remove obsolete values.
17097 (abort_libfunc): Delete.
17098 (memcpy_libfunc): Likewise.
17099 (memmove_libfunc): Likewise.
17100 (memcmp_libfunc): Likewise.
17101 (memset_libfunc): Likewise.
17102 (setbits_libfunc): Likewise.
17103 (setjmp_libfunc): Likewise.
17104 (longjmp_libfunc): Likewise.
17105 (profile_function_entry_libfunc): Likewise.
17106 (profile_function_exit_libfunc): Likewise.
17107 (gcov_flush_libfunc): Likewise.
17108 * optabs-libfuncs.c (build_libfunc_function): Set DECL_ARTIFICIAL
17109 and DECL_VISIBILITY on the declaration.
17110 (init_optabs): Do not initialize obsolete libfuncs.
17111 * optabs.c (prepare_cmp_insn): Call emit_block_comp_via_libcall.
17112 * tree-core.h (ECF_RET1): Define.
17113 (ECF_TM_PURE): Adjust.
17114 (ECF_TM_BUILTIN): Likewise.
17115 * tree.c (set_call_expr_flags): Deal with ECF_RET1.
17116 (build_common_builtin_nodes): Initialize abort builtin.
17117 Add ECF_RET1 on memcpy, memmove and memset builtins.
17118 Pass final flags for alloca and alloca_with_align builtins.
17119 * config/alpha/alpha.c (alpha_init_libfuncs): Do not initialize
17121 * config/ia64/ia64.c (ia64_vms_init_libfuncs): Likewise.
17122 * config/i386/i386.c (ix86_expand_set_or_movmem): Adjust call to
17123 set_storage_via_libcall and call emit_block_copy_via_libcall.
17125 2016-05-12 Uros Bizjak <ubizjak@gmail.com>
17127 * config/i386/i386.md (*call_got_x32): Change operand 0 to
17128 DImode before it is passed to ix86_output_call_operand.
17129 (*call_value_got_x32): Ditto for operand 1.
17131 2016-05-12 Jiong Wang <jiong.wang@arm.com>
17133 PR rtl-optimization/70904
17134 * lra-constraint.c (process_addr_reg): Relax the restriction on subreg
17135 reload for wide mode.
17137 2016-05-12 Marek Polacek <polacek@redhat.com>
17140 * langhooks-def.h (lhd_incomplete_type_error): Adjust declaration.
17141 * langhooks.c (lhd_incomplete_type_error): Add location parameter.
17142 * langhooks.h (incomplete_type_error): Likewise.
17143 * tree.c (size_in_bytes_loc): Renamed from size_in_bytes. Add location
17144 parameter, pass it down to incomplete_type_error.
17145 * tree.h (size_in_bytes): New inline overload.
17146 (size_in_bytes_loc): Renamed from size_in_bytes.
17148 2016-05-12 Richard Biener <rguenther@suse.de>
17150 PR tree-optimization/71059
17151 * tree-ssa-pre.c (phi_translate_1): Fully fold translated
17152 nary before looking up or entering the expression into the VN
17154 * tree-ssa-sccvn.c (vn_nary_build_or_lookup): Fix comment typo.
17155 Make sure to re-use NARYs without result as inserted by
17158 2016-05-12 Richard Biener <rguenther@suse.de>
17160 PR tree-optimization/71062
17161 * tree-ssa-alias.h (struct pt_solution): Add vars_contains_restrict
17163 * tree-ssa-structalias.c (set_uids_in_ptset): Set
17164 vars_contains_restrict if the var is a restrict tag.
17165 * tree-ssa-alias.c (ptrs_compare_unequal): If vars_contains_restrict
17166 do not disambiguate pointers against it.
17167 (dump_points_to_solution): Re-structure and adjust for new
17168 vars_contains_restrict flag.
17169 * gimple-pretty-print.c (pp_points_to_solution): Likewise.
17171 2016-05-12 Martin Liska <mliska@suse.cz>
17173 * doc/invoke.texi: Explain connection between
17174 -fsanitize-recover=address and ASAN_OPTIONS="halt_on_error=1".
17176 2016-05-12 Ilya Enkovich <ilya.enkovich@intel.com>
17178 PR tree-optimization/71006
17179 * tree-vect-loop.c (vect_determine_vectorization_factor): Don't
17180 consider COND_EXPR as a mask producer.
17182 2016-05-12 Marek Polacek <polacek@redhat.com>
17185 * opts.c (common_handle_option): Detect missing argument for --help^.
17187 2016-05-12 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17190 * config/arm/arm.c (arm_output_multireg_pop): Avoid POP instruction
17191 when popping the PC and within an interrupt handler routine.
17192 Add missing tab to output of "ldmfd".
17193 (output_return_instruction): Output LDMFD with SP update rather
17194 than POP when returning from interrupt handler.
17196 2016-05-12 Jakub Jelinek <jakub@redhat.com>
17198 * config/i386/i386.md (isa): Add x64_avx512dq, enable if
17199 TARGET_64BIT && TARGET_AVX512DQ.
17200 * config/i386/sse.md (*vec_extract<mode>): Add avx512bw alternatives.
17201 (*vec_extract<PEXTR_MODE12:mode>_zext): Add avx512bw alternative.
17202 (*vec_extract<ssevecmodelower>_0, *vec_extractv4si_0_zext,
17203 *vec_extractv2di_0_sse): Use v constraint instead of x constraint.
17204 (*vec_extractv4si): Add avx512dq and avx512bw alternatives.
17205 (*vec_extractv4si_zext): Add avx512dq alternative.
17206 (*vec_extractv2di_1): Add x64_avx512dq and avx512bw alternatives,
17207 use v instead of x constraint in other alternatives where possible.
17209 * config/i386/sse.md (sse2_loadld): Use v instead of x
17210 constraint in alternatives 0,1,4.
17212 * config/i386/sse.md (pinsr_evex_isa): New mode attr.
17213 (<sse2p4_1>_pinsr<ssemodesuffix>): Add 2 alternatives with
17214 v constraints instead of x and <pinsr_evex_isa> isa attribute.
17217 * config/i386/sse.md (<sse2_avx2>_packssdw<mask_name>,
17218 <sse4_1_avx2>_packusdw<mask_name>): Make sure EVEX encoded insn
17219 is not emitted unless TARGET_AVX512BW.
17220 (<sse2_avx2>_packuswb<mask_name>, <sse2_avx2>_packsswb<mask_name>):
17221 Likewise. For TARGET_AVX512BW, use "=v" constraint instead of "=x"
17222 for the result operand.
17224 * config/i386/sse.md (*vec_setv4sf_sse4_1, sse4_1_insertps): Use v
17225 constraint instead of x in avx alternatives. Use maybe_evex instead
17228 * config/i386/constraints.md (Yv): New constraint.
17229 * config/i386/i386.h (VALID_AVX512VL_128_REG_MODE): Allow
17230 TFmode and V1TImode in xmm16+ registers for TARGET_AVX512VL.
17231 * config/i386/i386.md (avx512fvecmode): New mode attr.
17232 (*pushtf): Use v constraint instead of x.
17233 (*movtf_internal): Likewise. For TARGET_AVX512VL and
17234 xmm16+ registers, use vmovdqu64 or vmovdqa64 instructions.
17235 (*absneg<mode>2): Use Yv constraint instead of x constraint.
17236 (*absnegtf2_sse): Likewise.
17237 (copysign<mode>3_const, copysign<mode>3_var): Likewise.
17238 * config/i386/sse.md (*andnot<mode>3): Add avx512vl and
17239 avx512f alternatives.
17240 (*andnottf3, *<code><mode>3, *<code>tf3): Likewise.
17242 2016-05-12 Richard Biener <rguenther@suse.de>
17244 PR tree-optimization/71060
17245 * tree-data-ref.c (initialize_data_dependence_relation): Do not
17246 require exact match of DR_BASE_OBJECT but only matching address and
17249 2016-05-12 Richard Biener <rguenther@suse.de>
17251 PR tree-optimization/70986
17252 * cfganal.c: Include cfgloop.h.
17253 (dfs_find_deadend): Prefer to take edges exiting loops.
17255 2016-05-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
17257 * gcc.target/powerpc/pr70963.c: Require at least power8 at both
17258 compile and run time.
17260 2016-05-11 Mikhail Maltsev <maltsevm@gmail.com>
17263 * doc/invoke.texi (Wduplicate-decl-specifier): Document new option.
17265 2016-05-11 Uros Bizjak <ubizjak@gmail.com>
17267 * config/i386/i386.c (legitimize_pic_address): Use
17268 copy_to_suggested_reg instead of gen_movsi.
17270 2016-05-11 Michael Meissner <meissner@linux.vnet.ibm.com>
17272 * config/rs6000/predicates.md (quad_memory_operand): Move most of
17273 the code into quad_address_p and call it to share code with
17274 vsx_quad_dform_memory_operand.
17275 (vsx_quad_dform_memory_operand): New predicate for ISA 3.0 vector
17277 * config/rs6000/rs6000.opt (-mlra): Switch to being an option mask
17278 bit instead of being a separate word. Split -mpower9-dform into
17279 two switches, -mpower9-dform-scalar and -mpower9-dform-vector.
17280 * config/rs6000/rs6000.c (RELOAD_REG_QUAD_OFFSET): New addr_mask
17281 for the register class supporting 128-bit quad word memory offsets.
17282 (mode_supports_vsx_dform_quad): Helper function to return if the
17283 register class uses quad word memory offsets.
17284 (rs6000_debug_addr_mask): Add support for quad word memory offsets.
17285 (rs6000_debug_reg_global): Always print if we are using LRA or not.
17286 (rs6000_setup_reg_addr_masks): If ISA 3.0 vector d-form
17287 instructions are enabled, set up the appropriate addr_masks for
17289 (rs6000_init_hard_regno_mode_ok): wb constraint is now based on
17290 -mpower9-dform-scalar, instead of -mpower9-dform.
17291 (rs6000_option_override_internal): Split -mpower9-dform into two
17292 switches, -mpower9-dform-scalar and -mpower9-dform-vector. The
17293 -mpower9-dform switch sets or clears both. If we are not using
17294 the LRA register allocator, do not enable -mpower9-dform-vector by
17295 default. If we are using LRA, enable -mpower9-dform-vector and
17296 -mvsx-timode if it is appropriate. Issue a warning if either
17297 -mpower9-dform-vector or -mvsx-timode are explicitly used without
17299 (quad_address_offset_p): New helper function to return if the
17300 offset is legal for quad word memory instructions.
17301 (quad_address_p): New function to determin if GPR or vector
17302 register quad word memory addresses are legal.
17303 (mem_operand_gpr): Validate quad word address offsets.
17304 (reg_offset_addressing_ok_p): Add support for ISA 3.0 vector
17305 d-form (register + offset) instructions.
17306 (offsettable_ok_by_alignment): Likewise.
17307 (rs6000_legitimate_offset_address_p): Likewise.
17308 (legitimate_lo_sum_address_p): Likewise.
17309 (rs6000_legitimize_address): Likewise.
17310 (rs6000_legitimize_reload_address): Add more debug statements for
17312 (rs6000_legitimate_address_p): Add support for ISA 3.0 vector
17313 d-form instructions.
17314 (rs6000_secondary_reload_memory): Add support for ISA 3.0 vector
17315 d-form instructions. Distinguish different cases in debug
17316 output. (rs6000_secondary_reload_inner): Add support for ISA 3.0 vector
17317 d-form instructions.
17318 (rs6000_preferred_reload_class): Likewise.
17319 (rs6000_output_move_128bit): Add support for ISA 3.0 d-form
17320 instructions. If ISA 3.0 is available, generate lxvx/stxvx instead
17321 of the ISA 2.06 indexed memory instructions.
17322 (rs6000_emit_prologue): If we have ISA 3.0 d-form instructions,
17323 use them to save/restore the saved vector registers instead of
17324 using Altivec instructions.
17325 (rs6000_emit_epilogue): Likewise.
17326 (rs6000_lra_p): Use TARGET_LRA instead of the old option word.
17327 (rs6000_opt_masks): Split -mpower9-dform into
17328 -mpower9-dform-scalar and -mpower9-dform-vector.
17329 (rs6000_print_options_internal): Print -mno-<switch> if <switch>
17331 * config/rs6000/vsx.md (p9_vecload_<mode>): Delete hack to emit
17332 ISA 3.0 vector indexed memory instructions, and fold the code into
17333 the normal mov<mode> patterns.
17334 (p9_vecstore_<mode>): Likewise.
17335 (vsx_mov<mode>): Add support for ISA 3.0 vector d-form
17337 (vsx_movti_64bit): Likewise.
17338 (vsx_movti_32bit): Likewise.
17339 * config/rs6000/constraints.md (wO constraint): New constraint for
17340 ISA 3.0 vector d-form support.
17341 * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Use
17342 -mpower9-dform-scalar instead of -mpower9-dform. Add note not to
17343 include -mpower9-dform-vector until we switch over to LRA.
17344 (POWERPC_MASKS): Add -mlra. Split -mpower9-dform into two.
17345 switches, -mpower9-dform-scalar and -mpower9-dform-vector.
17346 * config/rs6000/rs6000-protos.h (quad_address_p): Add declaration.
17347 * doc/invoke.texi (RS/6000 and PowerPC Options): Add documentation
17348 for -mpower9-dform and -mlra.
17349 * doc/md.texi (wO constraint): Document wO constraint.
17351 2016-05-11 Alexander Monakov <amonakov@ispras.ru>
17353 * genattr.c (main): Change 'rtx' to 'rtx_insn *' in prototypes of
17354 'insn_latency', 'maximal_insn_latency', 'min_insn_conflict_delay'.
17355 * genautomata.c (output_internal_insn_code_evaluation): Simplify.
17356 Move handling of non-insn arguments inline into the sole user:
17357 (output_trans_func): ...here.
17358 (output_min_insn_conflict_delay_func): Change 'rtx' to 'rtx_insn *'
17359 in emitted function prototype.
17360 (output_internal_insn_latency_func): Ditto. Simplify.
17361 (output_internal_maximal_insn_latency_func): Ditto. Delete
17362 always-unused argument.
17363 (output_insn_latency_func): Ditto.
17364 (output_maximal_insn_latency_func): Ditto.
17366 2016-05-11 Richard Biener <rguenther@suse.de>
17368 PR tree-optimization/71055
17369 * tree-ssa-sccvn.c (vn_reference_lookup_3): When native-interpreting
17370 sth with precision not equal to access size verify we don't chop
17373 2016-05-11 Richard Biener <rguenther@suse.de>
17376 * dwarf2out.c (retry_incomplete_types): Set early_dwarf.
17377 (dwarf2out_finish): Move retry_incomplete_types call ...
17378 (dwarf2out_early_finish): ... here.
17380 2016-05-11 Richard Biener <rguenther@suse.de>
17382 PR middle-end/71002
17383 * alias.c (reference_alias_ptr_type): Preserve alias-set zero
17384 if the langhook insists on it.
17385 * fold-const.c (make_bit_field_ref): Add arg for the original
17386 reference and preserve its alias-set.
17387 (decode_field_reference): Take exp by reference and adjust it
17388 to the original memory reference.
17389 (optimize_bit_field_compare): Adjust callers.
17390 (fold_truth_andor_1): Likewise.
17391 * gimplify.c (gimplify_expr): Adjust in-SSA form test.
17393 2016-05-11 Ilya Enkovich <ilya.enkovich@intel.com>
17395 PR middle-end/70807
17396 * cfgrtl.h (delete_insn_and_edges): Now return bool.
17397 * cfgrtl.c (delete_insn_and_edges): Likewise.
17398 * config/i386/i386.c (convert_scalars_to_vector): Remove
17400 * cse.c (cse_insn): Compute cse_cfg_altered.
17401 (delete_trivially_dead_insns): Likewise.
17402 (cse_cc_succs): Likewise.
17403 (rest_of_handle_cse): Free dominance info if required.
17404 (rest_of_handle_cse2): Likewise.
17405 (rest_of_handle_cse_after_global_opts): Likewise.
17407 2016-05-11 Alan Modra <amodra@gmail.com>
17409 * config/rs6000/rs6000.c (is_complex_IBM_long_double,
17410 abi_v4_pass_in_fpr): New functions.
17411 (rs6000_function_arg_boundary): Exclude complex IBM long double
17412 from 64-bit alignment when ABI_V4.
17413 (rs6000_function_arg, rs6000_function_arg_advance_1,
17414 rs6000_gimplify_va_arg): Use abi_v4_pass_in_fpr.
17416 2016-05-10 Segher Boessenkool <segher@kernel.crashing.org>
17418 PR rtl-optimization/71028
17419 * cfgcleanup.c (try_optimize_cfg): Do not flip a conditional
17420 jump with just a return in the fallthrough block if the branch
17421 block contains just a return as well.
17423 2016-05-10 Marc Glisse <marc.glisse@inria.fr>
17425 * fold-const.c (fold_binary_loc) [(X ^ Y) & Y]: Remove and merge with...
17426 * match.pd ((X & Y) ^ Y): ... this.
17427 ((X & Y) & Y, (X | Y) | Y, (X ^ Y) ^ Y, (X & Y) & (X & Z), (X | Y)
17428 | (X | Z), (X ^ Y) ^ (X ^ Z)): New transformations.
17430 2016-05-10 David Malcolm <dmalcolm@redhat.com>
17432 * read-md.c (require_char_ws): New function.
17433 (read_string): Simplify using require_char_ws.
17434 (handle_constants): Likewise.
17435 (handle_enum): Likewise.
17436 (handle_file): Likewise.
17437 * read-md.h (require_char_ws): New declaration.
17438 * read-rtl.c (read_conditions): Simplify using require_char_ws.
17439 (read_mapping): Likewise.
17440 (read_rtx_code): Likewise.
17441 (read_nested_rtx): Likewise.
17443 2016-05-10 James Norris <jnorris@codesourcery.com>
17445 * config/rs6000/sysv4.h (CRTOFFLOADBEGIN): Define. Add crtoffloadbegin.o
17446 if offloading is enabled and -fopenacc or -fopenmp is specified.
17447 (CRTOFFLOADEND): Likewise.
17448 (STARTFILE_LINUX_SPEC): Add CRTOFFLOADBEGIN.
17449 (ENDFILE_LINUX_SPEC): Add CRTOFFLOADEND.
17451 2016-05-10 Uros Bizjak <ubizjak@gmail.com>
17453 * config/i386/i386.c (legitimize_pic_address): Merge 64-bit and 32-bit
17454 gotoff_operand code paths. Use copy_to_suggested_regs and
17455 expand_simple_binop where appropriate. Cleanup.
17457 2016-05-10 Ilya Enkovich <ilya.enkovich@intel.com>
17460 * config/i386/i386.c (dimode_scalar_to_vector_candidate_p): Allow
17462 (dimode_scalar_chain::vector_const_cost): New.
17463 (dimode_scalar_chain::compute_convert_gain): Handle constants.
17464 (dimode_scalar_chain::convert_op): Likewise.
17465 (dimode_scalar_chain::convert_insn): Likewise.
17467 2016-05-10 Pierre-Marie de Rodat <derodat@adacore.com>
17469 * dwarf2out.c (resolve_args_picking_1): Consider DW_OP_neg as an
17470 unary operation, not a binary one.
17472 2016-05-10 Ilya Enkovich <ilya.enkovich@intel.com>
17474 PR middle-end/70877
17475 * tree-chkp.c (chkp_add_bounds_to_call_stmt): Handle
17476 calls with type casted fndecl.
17478 2016-05-10 Ilya Enkovich <ilya.enkovich@intel.com>
17480 PR tree-optimization/70786
17481 * tree-chkp.c (chkp_find_bounds_1): Support WITH_SIZE_EXPR.
17482 * calls.c (initialize_argument_information): Bind bounds
17483 with corresponding args passed by reference.
17485 2016-05-10 Jakub Jelinek <jakub@redhat.com>
17488 * config/i386/sse.md (<sse>_andnot<mode>3<mask_name>),
17489 *<code><mode>3<mask_name>): For !TARGET_AVX512DQ and EVEX encoding,
17490 use vp*[dq] instead of v*p[sd] instructions and adjust mode attribute
17493 2016-05-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
17496 * config/rs6000/vsx.md (vsx_xvcvdpsxds_scale): Generate correct
17497 code for a zero scale factor.
17498 (vsx_xvcvdpuxds_scale): Likewise.
17500 2016-05-10 David Malcolm <dmalcolm@redhat.com>
17502 * diagnostic-show-locus.c (layout::layout): Call show_ruler
17503 if show_ruler_p was set on the context.
17504 (layout::show_ruler): New method.
17505 * diagnostic.h (struct diagnostic_context): Add field
17508 2016-05-10 Richard Biener <rguenther@suse.de>
17510 PR tree-optimization/71039
17511 * tree-ssa-phiprop.c: Include tree-ssa-loop.h.
17512 (chk_uses): New function.
17513 (propagate_with_phi): Verify we can safely replicate the lhs of an
17514 aggregate assignment on all incoming edges.
17516 2016-05-10 Oleg Endo <olegendo@gcc.gnu.org>
17518 * config/rx/rx-protos.h (is_interrupt_func, is_fast_interrupt_func):
17520 (rx_atomic_sequence): New class.
17521 * config/rx/rx.c (rx_print_operand): Use symbolic names for PSW bits.
17522 (is_interrupt_func, is_fast_interrupt_func): Make non-static and
17524 (rx_atomic_sequence::rx_atomic_sequence,
17525 rx_atomic_sequence::~rx_atomic_sequence): New functions.
17526 * config/rx/rx.md (CTRLREG_PSW, CTRLREG_USP, CTRLREG_FPSW, CTRLREG_CPEN,
17527 CTRLREG_BPSW, CTRLREG_BPC, CTRLREG_ISP, CTRLREG_FINTV,
17528 CTRLREG_INTB): New constants.
17529 (FETCHOP): New code iterator.
17530 (fethcop_name, fetchop_name2): New iterator code attributes.
17531 (QIHI): New mode iterator.
17532 (atomic_exchange<mode>, atomic_exchangesi, xchg_mem<mode>,
17533 atomic_fetch_<fetchop_name>si, atomic_fetch_nandsi,
17534 atomic_<fetchop_name>_fetchsi, atomic_nand_fetchsi): New patterns.
17536 2016-05-10 Martin Liska <mliska@suse.cz>
17538 * tree-inline.c (remap_dependence_clique): Do not remap
17539 debugging statements.
17541 2016-05-10 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
17543 * config/s390/s390.md ("*vec_cmp<insn_cmp>df_cconly")
17544 ("*fixuns_truncdfdi2_z13")
17545 ("*fixuns_trunc<FP:mode><GPR:mode>2_z196")
17546 ("*fix_truncdfdi2_bfp_z13", "*floatunsdidf2_z13")
17547 ("*extendsfdf2_z13"): Replace TARGET_Z13 with TARGET_VX.
17549 2016-05-10 Richard Biener <rguenther@suse.de>
17551 PR tree-optimization/70497
17552 PR tree-optimization/28367
17553 * tree-ssa-sccvn.c (vn_nary_build_or_lookup): New function
17555 (visit_reference_op_load): ... here.
17556 (vn_reference_lookup_3): Use it to handle subreg-like accesses
17557 with simplified BIT_FIELD_REFs.
17558 * tree-ssa-pre.c (eliminate_insert): Handle inserting BIT_FIELD_REFs.
17559 * tree-complex.c (extract_component): Handle BIT_FIELD_REFs
17562 2016-05-10 Pierre-Marie de Rodat <derodat@adacore.com>
17564 * dwarf2out.c (add_abstract_origin_attribute): Adjust
17565 documentation comment. For BLOCK nodes, add a
17566 DW_AT_abstract_origin attribute that points to the DIE generated
17567 for the origin BLOCK.
17568 (gen_lexical_block_die): Call add_abstract_origin_attribute for
17569 blocks from inlined functions.
17571 2016-05-10 Alan Modra <amodra@gmail.com>
17574 * config/rs6000/rs6000.c (rs6000_expand_split_stack_prologue): Stop
17575 regrename modifying insns saving lr before __morestack call.
17576 * config/rs6000/rs6000.md (split_stack_return): Similarly for
17577 insns restoring lr after __morestack call.
17579 2016-05-09 Jakub Jelinek <jakub@redhat.com>
17581 * config/i386/i386.md (set_got, set_got_labelled, lwp_llwpcb,
17582 lwp_lwpval<mode>3, lwp_lwpins<mode>3): Remove constraints from
17584 * config/i386/sse.md (vec_interleave_high<mode>,
17585 vec_interleave_low<mode>, <avx512>_vpermi2var<mode>3_maskz,
17586 <avx512>_vpermt2var<mode>3_maskz): Likewise.
17588 2016-05-04 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
17590 * config/rs6000/rs6000.c (rs6000_reassociation_width): Add
17591 function for TARGET_SCHED_REASSOCIATION_WIDTH to enable
17592 parallel reassociation for power8 and forward.
17594 2016-05-09 Uros Bizjak <ubizjak@gmail.com>
17596 * config/i386/i386.md (absneg splitters with general regs): Use
17597 general_reg_operand predicate.
17598 (btsq peephole2): Use x86_64_immediate_operand to check if new
17599 value is suitable for immediate operand. Generate emitted insn
17600 using RTL expressions.
17601 (btcq peephole2): Ditto.
17602 (btrq peephole2): Ditto. Generate correct immediate operand
17605 2016-05-09 Richard Sandiford <richard.sandiford@arm.com>
17607 * cfgexpand.c (expand_debug_expr): Fix address offset for negative
17610 2016-05-09 Richard Sandiford <richard.sandiford@arm.com>
17612 * tree-affine.c (wide_int_constant_multiple_p): Add missing
17613 pointer dereference.
17615 2016-05-09 Richard Biener <rguenther@suse.de>
17617 PR tree-optimization/70985
17618 * match.pd (BIT_FIELD_REF -> (type)): Disable on GIMPLE when
17619 op0 isn't a gimple register.
17621 2016-05-09 Prachi Godbole <prachi.godbole@imgtec.com>
17623 * config/mips/i6400.md (i6400_fpu_intadd, i6400_fpu_logic)
17624 (i6400_fpu_div, i6400_fpu_cmp, i6400_fpu_float, i6400_fpu_store)
17625 (i6400_fpu_long_pipe, i6400_fpu_logic_l, i6400_fpu_float_l)
17626 (i6400_fpu_mult): New cpu units.
17627 (i6400_msa_add_d, i6400_msa_int_add, i6400_msa_short_logic3)
17628 (i6400_msa_short_logic2, i6400_msa_short_logic, i6400_msa_move)
17629 (i6400_msa_cmp, i6400_msa_short_float2, i6400_msa_div_d)
17630 (i6400_msa_div_w, i6400_msa_div_h, i6400_msa_div_b)
17631 (i6400_msa_copy, i6400_msa_branch, i6400_fpu_msa_store)
17632 (i6400_fpu_msa_load, i6400_fpu_msa_move, i6400_msa_long_logic1)
17633 (i6400_msa_long_logic2, i6400_msa_mult, i6400_msa_long_float2)
17634 (i6400_msa_long_float4, i6400_msa_long_float5)
17635 (i6400_msa_long_float8, i6400_msa_fdiv_df)
17636 (i6400_msa_fdiv_sf): New reservations.
17637 * config/mips/p5600.md (p5600_fpu_intadd, p5600_fpu_cmp)
17638 (p5600_fpu_float, p5600_fpu_logic_a, p5600_fpu_logic_b)
17639 (p5600_fpu_div, p5600_fpu_logic, p5600_fpu_float_a)
17640 (p5600_fpu_float_b, p5600_fpu_float_c, p5600_fpu_float_d)
17641 (p5600_fpu_mult, p5600_fpu_fdiv, p5600_fpu_load): New cpu units.
17642 (msa_short_int_add, msa_short_logic, msa_short_logic_move_v)
17643 (msa_short_cmp, msa_short_float2, msa_short_logic3)
17644 (msa_short_store4, msa_long_load, msa_short_store)
17645 (msa_long_logic, msa_long_float2, msa_long_float4)
17646 (msa_long_float5, msa_long_float8, msa_long_mult)
17647 (msa_long_fdiv, msa_long_div): New reservations.
17649 2016-05-09 Robert Suchanek <robert.suchanek@imgtec.com>
17650 Sameera Deshpande <sameera.deshpande@imgtec.com>
17651 Matthew Fortune <matthew.fortune@imgtec.com>
17652 Graham Stott <graham.stott@imgtec.com>
17653 Chao-ying Fu <chao-ying.fu@imgtec.com>
17655 * config.gcc: Add MSA header file for mips*-*-* target.
17656 * config/mips/constraints.md (YI, YC, YZ, Unv5, Uuv5, Usv5, Uuv6)
17657 (Ubv8i, Urv8): New constraints.
17658 * config/mips/mips-ftypes.def: Add function types for MSA
17660 * config/mips/mips-modes.def (V16QI, V8HI, V4SI, V2DI, V4SF)
17661 (V2DF, V32QI, V16HI, V8SI, V4DI, V8SF, V4DF): New modes.
17662 * config/mips/mips-msa.md: New file.
17663 * config/mips/mips-protos.h
17664 (mips_split_128bit_const_insns): New prototype.
17665 (mips_msa_idiv_insns): Likewise.
17666 (mips_split_128bit_move): Likewise.
17667 (mips_split_128bit_move_p): Likewise.
17668 (mips_split_msa_copy_d): Likewise.
17669 (mips_split_msa_insert_d): Likewise.
17670 (mips_split_msa_fill_d): Likewise.
17671 (mips_expand_msa_branch): Likewise.
17672 (mips_const_vector_same_val_p): Likewise.
17673 (mips_const_vector_same_bytes_p): Likewise.
17674 (mips_const_vector_same_int_p): Likewise.
17675 (mips_const_vector_shuffle_set_p): Likewise.
17676 (mips_const_vector_bitimm_set_p): Likewise.
17677 (mips_const_vector_bitimm_clr_p): Likewise.
17678 (mips_msa_vec_parallel_const_half): Likewise.
17679 (mips_msa_output_division): Likewise.
17680 (mips_ldst_scaled_shift): Likewise.
17681 (mips_expand_vec_cond_expr): Likewise.
17682 * config/mips/mips.c (enum mips_builtin_type): Add
17683 MIPS_BUILTIN_MSA_TEST_BRANCH.
17684 (mips_gen_const_int_vector_shuffle): New prototype.
17685 (mips_const_vector_bitimm_set_p): New function.
17686 (mips_const_vector_bitimm_clr_p): Likewise.
17687 (mips_const_vector_same_val_p): Likewise.
17688 (mips_const_vector_same_bytes_p): Likewise.
17689 (mips_const_vector_same_int_p): Likewise.
17690 (mips_const_vector_shuffle_set_p): Likewise.
17691 (mips_symbol_insns): Forbid loading symbols via immediate for
17693 (mips_valid_offset_p): Limit offset to 10-bit for MSA loads and
17695 (mips_valid_lo_sum_p): Forbid loadings symbols via %lo(base) for
17697 (mips_lx_address_p): Add support load indexed address for MSA.
17698 (mips_address_insns): Add calculation of instructions needed for
17699 stores and loads for MSA.
17700 (mips_const_insns): Move CONST_DOUBLE below CONST_VECTOR. Handle
17701 CONST_VECTOR for MSA and let it fall through.
17702 (mips_ldst_scaled_shift): New function.
17703 (mips_subword_at_byte): Likewise.
17704 (mips_msa_idiv_insns): Likewise.
17705 (mips_legitimize_move): Validate MSA moves.
17706 (mips_rtx_costs): Add UNGE, UNGT, UNLE, UNLT cases. Add
17707 calculation of costs for MSA division.
17708 (mips_split_move_p): Check if MSA moves need splitting.
17709 (mips_split_move): Split MSA moves if necessary.
17710 (mips_split_128bit_move_p): New function.
17711 (mips_split_128bit_move): Likewise.
17712 (mips_split_msa_copy_d): Likewise.
17713 (mips_split_msa_insert_d): Likewise.
17714 (mips_split_msa_fill_d): Likewise.
17715 (mips_output_move): Handle MSA moves.
17716 (mips_expand_msa_branch): New function.
17717 (mips_print_operand): Add 'E', 'B', 'w', 'v' and 'V' modifiers.
17718 Reinstate 'y' modifier.
17719 (mips_file_start): Add MSA .gnu_attribute.
17720 (mips_hard_regno_mode_ok_p): Allow TImode and 128-bit vectors in
17722 (mips_hard_regno_nregs): Always return 1 for MSA supported mode.
17723 (mips_class_max_nregs): Add register size for MSA supported mode.
17724 (mips_cannot_change_mode_class): Allow conversion between MSA
17725 vector modes and TImode.
17726 (mips_mode_ok_for_mov_fmt_p): Allow MSA to use move.v
17728 (mips_secondary_reload_class): Force MSA loads/stores via memory.
17729 (mips_preferred_simd_mode): Add preffered modes for MSA.
17730 (mips_vector_mode_supported_p): Add MSA supported modes.
17731 (mips_autovectorize_vector_sizes): New function.
17732 (mips_msa_output_division): Likewise.
17733 (MSA_BUILTIN, MIPS_BUILTIN_DIRECT_NO_TARGET)
17734 (MSA_NO_TARGET_BUILTIN, MSA_BUILTIN_TEST_BRANCH): New macros.
17735 (CODE_FOR_msa_adds_s_b, CODE_FOR_msa_adds_s_h)
17736 (CODE_FOR_msa_adds_s_w, CODE_FOR_msa_adds_s_d)
17737 (CODE_FOR_msa_adds_u_b, CODE_FOR_msa_adds_u_h)
17738 (CODE_FOR_msa_adds_u_w, CODE_FOR_msa_adds_u_du
17739 (CODE_FOR_msa_addv_b, CODE_FOR_msa_addv_h, CODE_FOR_msa_addv_w)
17740 (CODE_FOR_msa_addv_d, CODE_FOR_msa_and_v, CODE_FOR_msa_bmnz_v)
17741 (CODE_FOR_msa_bmnzi_b, CODE_FOR_msa_bmz_v, CODE_FOR_msa_bmzi_b)
17742 (CODE_FOR_msa_bnz_v, CODE_FOR_msa_bz_v, CODE_FOR_msa_bsel_v)
17743 (CODE_FOR_msa_bseli_b, CODE_FOR_msa_ceqi_h, CODE_FOR_msa_ceqi_w)
17744 (CODE_FOR_msa_ceqi_d, CODE_FOR_msa_clti_s_b)
17745 (CODE_FOR_msa_clti_s_h, CODE_FOR_msa_clti_s_w)
17746 (CODE_FOR_msa_clti_s_d, CODE_FOR_msa_clti_u_b)
17747 (CODE_FOR_msa_clti_u_h, CODE_FOR_msa_clti_u_w)
17748 (CODE_FOR_msa_clti_u_d, CODE_FOR_msa_clei_s_b)
17749 (CODE_FOR_msa_clei_s_h, CODE_FOR_msa_clei_s_w)
17750 (CODE_FOR_msa_clei_s_d, CODE_FOR_msa_clei_u_b)
17751 (CODE_FOR_msa_clei_u_h, CODE_FOR_msa_clei_u_w)
17752 (CODE_FOR_msa_clei_u_d, CODE_FOR_msa_div_s_b)
17753 (CODE_FOR_msa_div_s_h, CODE_FOR_msa_div_s_w)
17754 (CODE_FOR_msa_div_s_d, CODE_FOR_msa_div_u_b)
17755 (CODE_FOR_msa_div_u_h, CODE_FOR_msa_div_u_w)
17756 (CODE_FOR_msa_div_u_d, CODE_FOR_msa_fadd_w, CODE_FOR_msa_fadd_d)
17757 (CODE_FOR_msa_fexdo_w, CODE_FOR_msa_ftrunc_s_w)
17758 (CODE_FOR_msa_ftrunc_s_d, CODE_FOR_msa_ftrunc_u_w)
17759 (CODE_FOR_msa_ftrunc_u_d, CODE_FOR_msa_ffint_s_w)
17760 (CODE_FOR_msa_ffint_s_d, CODE_FOR_msa_ffint_u_w)
17761 (CODE_FOR_msa_ffint_u_d, CODE_FOR_msa_fsub_w)
17762 (CODE_FOR_msa_fsub_d, CODE_FOR_msa_fmsub_d, CODE_FOR_msa_fmadd_w)
17763 (CODE_FOR_msa_fmadd_d, CODE_FOR_msa_fmsub_w, CODE_FOR_msa_fmul_w)
17764 (CODE_FOR_msa_fmul_d, CODE_FOR_msa_fdiv_w, CODE_FOR_msa_fdiv_d)
17765 (CODE_FOR_msa_fmax_w, CODE_FOR_msa_fmax_d, CODE_FOR_msa_fmax_a_w)
17766 (CODE_FOR_msa_fmax_a_d, CODE_FOR_msa_fmin_w, CODE_FOR_msa_fmin_d)
17767 (CODE_FOR_msa_fmin_a_w, CODE_FOR_msa_fmin_a_d)
17768 (CODE_FOR_msa_fsqrt_w, CODE_FOR_msa_fsqrt_d)
17769 (CODE_FOR_msa_max_s_b, CODE_FOR_msa_max_s_h)
17770 (CODE_FOR_msa_max_s_w, CODE_FOR_msa_max_s_d)
17771 (CODE_FOR_msa_max_u_b, CODE_FOR_msa_max_u_h)
17772 (CODE_FOR_msa_max_u_w, CODE_FOR_msa_max_u_d)
17773 (CODE_FOR_msa_min_s_b, CODE_FOR_msa_min_s_h)
17774 (CODE_FOR_msa_min_s_w, CODE_FOR_msa_min_s_d)
17775 (CODE_FOR_msa_min_u_b, CODE_FOR_msa_min_u_h)
17776 (CODE_FOR_msa_min_u_w, CODE_FOR_msa_min_u_d)
17777 (CODE_FOR_msa_mod_s_b, CODE_FOR_msa_mod_s_h)
17778 (CODE_FOR_msa_mod_s_w, CODE_FOR_msa_mod_s_d)
17779 (CODE_FOR_msa_mod_u_b, CODE_FOR_msa_mod_u_h)
17780 (CODE_FOR_msa_mod_u_w, CODE_FOR_msa_mod_u_d)
17781 (CODE_FOR_msa_mod_s_b, CODE_FOR_msa_mod_s_h)
17782 (CODE_FOR_msa_mod_s_w, CODE_FOR_msa_mod_s_d)
17783 (CODE_FOR_msa_mod_u_b, CODE_FOR_msa_mod_u_h)
17784 (CODE_FOR_msa_mod_u_w, CODE_FOR_msa_mod_u_d)
17785 (CODE_FOR_msa_mulv_b, CODE_FOR_msa_mulv_h, CODE_FOR_msa_mulv_w)
17786 (CODE_FOR_msa_mulv_d, CODE_FOR_msa_nlzc_b, CODE_FOR_msa_nlzc_h)
17787 (CODE_FOR_msa_nlzc_w, CODE_FOR_msa_nlzc_d, CODE_FOR_msa_nor_v)
17788 (CODE_FOR_msa_or_v, CODE_FOR_msa_ori_b, CODE_FOR_msa_nori_b)
17789 (CODE_FOR_msa_pcnt_b, CODE_FOR_msa_pcnt_h, CODE_FOR_msa_pcnt_w)
17790 (CODE_FOR_msa_pcnt_d, CODE_FOR_msa_xor_v, CODE_FOR_msa_xori_b)
17791 (CODE_FOR_msa_sll_b, CODE_FOR_msa_sll_h, CODE_FOR_msa_sll_w)
17792 (CODE_FOR_msa_sll_d, CODE_FOR_msa_slli_b, CODE_FOR_msa_slli_h)
17793 (CODE_FOR_msa_slli_w, CODE_FOR_msa_slli_d, CODE_FOR_msa_sra_b)
17794 (CODE_FOR_msa_sra_h, CODE_FOR_msa_sra_w, CODE_FOR_msa_sra_d)
17795 (CODE_FOR_msa_srai_b, CODE_FOR_msa_srai_h, CODE_FOR_msa_srai_w)
17796 (CODE_FOR_msa_srai_d, CODE_FOR_msa_srl_b, CODE_FOR_msa_srl_h)
17797 (CODE_FOR_msa_srl_w, CODE_FOR_msa_srl_d, CODE_FOR_msa_srli_b)
17798 (CODE_FOR_msa_srli_h, CODE_FOR_msa_srli_w, CODE_FOR_msa_srli_d)
17799 (CODE_FOR_msa_subv_b, CODE_FOR_msa_subv_h, CODE_FOR_msa_subv_w)
17800 (CODE_FOR_msa_subv_d, CODE_FOR_msa_subvi_b, CODE_FOR_msa_subvi_h)
17801 (CODE_FOR_msa_subvi_w, CODE_FOR_msa_subvi_d, CODE_FOR_msa_move_v)
17802 (CODE_FOR_msa_vshf_b, CODE_FOR_msa_vshf_h, CODE_FOR_msa_vshf_w)
17803 (CODE_FOR_msa_vshf_d, CODE_FOR_msa_ilvod_d, CODE_FOR_msa_ilvev_d)
17804 (CODE_FOR_msa_pckod_d, CODE_FOR_msa_pckdev_d, CODE_FOR_msa_ldi_b)
17805 (CODE_FOR_msa_ldi_hi, CODE_FOR_msa_ldi_w)
17806 (CODE_FOR_msa_ldi_d): New code_aliasing macros.
17807 (mips_builtins): Add MSA sll_b, sll_h, sll_w, sll_d, slli_b,
17808 slli_h, slli_w, slli_d, sra_b, sra_h, sra_w, sra_d, srai_b,
17809 srai_h, srai_w, srai_d, srar_b, srar_h, srar_w, srar_d, srari_b,
17810 srari_h, srari_w, srari_d, srl_b, srl_h, srl_w, srl_d, srli_b,
17811 srli_h, srli_w, srli_d, srlr_b, srlr_h, srlr_w, srlr_d, srlri_b,
17812 srlri_h, srlri_w, srlri_d, bclr_b, bclr_h, bclr_w, bclr_d,
17813 bclri_b, bclri_h, bclri_w, bclri_d, bset_b, bset_h, bset_w,
17814 bset_d, bseti_b, bseti_h, bseti_w, bseti_d, bneg_b, bneg_h,
17815 bneg_w, bneg_d, bnegi_b, bnegi_h, bnegi_w, bnegi_d, binsl_b,
17816 binsl_h, binsl_w, binsl_d, binsli_b, binsli_h, binsli_w,
17817 binsli_d, binsr_b, binsr_h, binsr_w, binsr_d, binsri_b, binsri_h,
17818 binsri_w, binsri_d, addv_b, addv_h, addv_w, addv_d, addvi_b,
17819 addvi_h, addvi_w, addvi_d, subv_b, subv_h, subv_w, subv_d,
17820 subvi_b, subvi_h, subvi_w, subvi_d, max_s_b, max_s_h, max_s_w,
17821 max_s_d, maxi_s_b, maxi_s_h, maxi_s_w, maxi_s_d, max_u_b,
17822 max_u_h, max_u_w, max_u_d, maxi_u_b, maxi_u_h, maxi_u_w,
17823 maxi_u_d, min_s_b, min_s_h, min_s_w, min_s_d, mini_s_b, mini_s_h,
17824 mini_s_w, mini_s_d, min_u_b, min_u_h, min_u_w, min_u_d, mini_u_b,
17825 mini_u_h, mini_u_w, mini_u_d, max_a_b, max_a_h, max_a_w, max_a_d,
17826 min_a_b, min_a_h, min_a_w, min_a_d, ceq_b, ceq_h, ceq_w, ceq_d,
17827 ceqi_b, ceqi_h, ceqi_w, ceqi_d, clt_s_b, clt_s_h, clt_s_w,
17828 clt_s_d, clti_s_b, clti_s_h, clti_s_w, clti_s_d, clt_u_b,
17829 clt_u_h, clt_u_w, clt_u_d, clti_u_b, clti_u_h, clti_u_w,
17830 clti_u_d, cle_s_b, cle_s_h, cle_s_w, cle_s_d, clei_s_b, clei_s_h,
17831 clei_s_w, clei_s_d, cle_u_b, cle_u_h, cle_u_w, cle_u_d, clei_u_b,
17832 clei_u_h, clei_u_w, clei_u_d, ld_b, ld_h, ld_w, ld_d, st_b, st_h,
17833 st_w, st_d, sat_s_b, sat_s_h, sat_s_w, sat_s_d, sat_u_b, sat_u_h,
17834 sat_u_w, sat_u_d, add_a_b, add_a_h, add_a_w, add_a_d, adds_a_b,
17835 adds_a_h, adds_a_w, adds_a_d, adds_s_b, adds_s_h, adds_s_w,
17836 adds_s_d, adds_u_b, adds_u_h, adds_u_w, adds_u_d, ave_s_b,
17837 ave_s_h, ave_s_w, ave_s_d, ave_u_b, ave_u_h, ave_u_w, ave_u_d,
17838 aver_s_b, aver_s_h, aver_s_w, aver_s_d, aver_u_b, aver_u_h,
17839 aver_u_w, aver_u_d, subs_s_b, subs_s_h, subs_s_w, subs_s_d,
17840 subs_u_b, subs_u_h, subs_u_w, subs_u_d, subsuu_s_b, subsuu_s_h,
17841 subsuu_s_w, subsuu_s_d, subsus_u_b, subsus_u_h, subsus_u_w,
17842 subsus_u_d, asub_s_b, asub_s_h, asub_s_w, asub_s_d, asub_u_b,
17843 asub_u_h, asub_u_w, asub_u_d, mulv_b, mulv_h, mulv_w, mulv_d,
17844 maddv_b, maddv_h, maddv_w, maddv_d, msubv_b, msubv_h, msubv_w,
17845 msubv_d, div_s_b, div_s_h, div_s_w, div_s_d, div_u_b, div_u_h,
17846 div_u_w, div_u_d, hadd_s_h, hadd_s_w, hadd_s_d, hadd_u_h,
17847 hadd_u_w, hadd_u_d, hsub_s_h, hsub_s_w, hsub_s_d, hsub_u_h,
17848 hsub_u_w, hsub_u_d, mod_s_b, mod_s_h, mod_s_w, mod_s_d, mod_u_b,
17849 mod_u_h, mod_u_w, mod_u_d, dotp_s_h, dotp_s_w, dotp_s_d,
17850 dotp_u_h, dotp_u_w, dotp_u_d, dpadd_s_h, dpadd_s_w, dpadd_s_d,
17851 dpadd_u_h, dpadd_u_w, dpadd_u_d, dpsub_s_h, dpsub_s_w, dpsub_s_d,
17852 dpsub_u_h, dpsub_u_w, dpsub_u_d, sld_b, sld_h, sld_w, sld_d,
17853 sldi_b, sldi_h, sldi_w, sldi_d, splat_b, splat_h, splat_w,
17854 splat_d, splati_b, splati_h, splati_w, splati_d, pckev_b,
17855 pckev_h, pckev_w, pckev_d, pckod_b, pckod_h, pckod_w, pckod_d,
17856 ilvl_b, ilvl_h, ilvl_w, ilvl_d, ilvr_b, ilvr_h, ilvr_w, ilvr_d,
17857 ilvev_b, ilvev_h, ilvev_w, ilvev_d, ilvod_b, ilvod_h, ilvod_w,
17858 ilvod_d, vshf_b, vshf_h, vshf_w, vshf_d, and_v, andi_b, or_v,
17859 ori_b, nor_v, nori_b, xor_v, xori_b, bmnz_v, bmnzi_b, bmz_v,
17860 bmzi_b, bsel_v, bseli_b, shf_b, shf_h, shf_w, bnz_v, bz_v,
17861 fill_b, fill_h, fill_w, fill_d, pcnt_b, pcnt_h, pcnt_w,
17862 pcnt_d, nloc_b, nloc_h, nloc_w, nloc_d, nlzc_b, nlzc_h, nlzc_w,
17863 nlzc_d, copy_s_b, copy_s_h, copy_s_w, copy_s_d, copy_u_b,
17864 copy_u_h, copy_u_w, copy_u_d, insert_b, insert_h, insert_w,
17865 insert_d, insve_b, insve_h, insve_w, insve_d, bnz_b, bnz_h,
17866 bnz_w, bnz_d, bz_b, bz_h, bz_w, bz_d, ldi_b, ldi_h, ldi_w, ldi_d,
17867 fcaf_w, fcaf_d, fcor_w, fcor_d, fcun_w, fcun_d, fcune_w, fcune_d,
17868 fcueq_w, fcueq_d, fceq_w, fceq_d, fcne_w, fcne_d, fclt_w, fclt_d,
17869 fcult_w, fcult_d, fcle_w, fcle_d, fcule_w, fcule_d, fsaf_w,
17870 fsaf_d, fsor_w, fsor_d, fsun_w, fsun_d, fsune_w, fsune_d,
17871 fsueq_w, fsueq_d, fseq_w, fseq_d, fsne_w, fsne_d, fslt_w,
17872 fslt_d, fsult_w, fsult_d, fsle_w, fsle_d, fsule_w, fsule_d,
17873 fadd_w, fadd_d, fsub_w, fsub_d, fmul_w, fmul_d, fdiv_w, fdiv_d,
17874 fmadd_w, fmadd_d, fmsub_w, fmsub_d, fexp2_w, fexp2_d, fexdo_h,
17875 fexdo_w, ftq_h, ftq_w, fmin_w, fmin_d, fmin_a_w, fmin_a_d,
17876 fmax_w, fmax_d, fmax_a_w, fmax_a_d, mul_q_h, mul_q_w, mulr_q_h,
17877 mulr_q_w, madd_q_h, madd_q_w, maddr_q_h, maddr_q_w, msub_q_h,
17878 msub_q_w, msubr_q_h, msubr_q_w, fclass_w, fclass_d, fsqrt_w,
17879 fsqrt_d, frcp_w, frcp_d, frint_w, frint_d, frsqrt_w, frsqrt_d,
17880 flog2_w, flog2_d, fexupl_w, fexupl_d, fexupr_w, fexupr_d, ffql_w,
17881 ffql_d, ffqr_w, ffqr_d, ftint_s_w, ftint_s_d, ftint_u_w,
17882 ftint_u_d, ftrunc_s_w, ftrunc_s_d, ftrunc_u_w, ftrunc_u_d,
17883 ffint_s_w, ffint_s_d, ffint_u_w, ffint_u_d, ctcmsa, cfcmsa,
17885 (mips_get_builtin_decl_index): New array.
17886 (MIPS_ATYPE_QI, MIPS_ATYPE_HI, MIPS_ATYPE_V2DI, MIPS_ATYPE_V4SI)
17887 (MIPS_ATYPE_V8HI, MIPS_ATYPE_V16QI, MIPS_ATYPE_V2DF)
17888 (MIPS_ATYPE_V4SF, MIPS_ATYPE_UV2DI, MIPS_ATYPE_UV4SI)
17889 (MIPS_ATYPE_UV8HI, MIPS_ATYPE_UV16QI): New.
17890 (mips_init_builtins): Initialize mips_get_builtin_decl_index
17892 (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Define target
17894 (mips_expand_builtin_insn): Prepare operands for
17895 CODE_FOR_msa_addvi_b, CODE_FOR_msa_addvi_h, CODE_FOR_msa_addvi_w,
17896 CODE_FOR_msa_addvi_d, CODE_FOR_msa_clti_u_b,
17897 CODE_FOR_msa_clti_u_h, CODE_FOR_msa_clti_u_w,
17898 CODE_FOR_msa_clti_u_d, CODE_FOR_msa_clei_u_b,
17899 CODE_FOR_msa_clei_u_h, CODE_FOR_msa_clei_u_w,
17900 CODE_FOR_msa_clei_u_d, CODE_FOR_msa_maxi_u_b,
17901 CODE_FOR_msa_maxi_u_h, CODE_FOR_msa_maxi_u_w,
17902 CODE_FOR_msa_maxi_u_d, CODE_FOR_msa_mini_u_b,
17903 CODE_FOR_msa_mini_u_h, CODE_FOR_msa_mini_u_w,
17904 CODE_FOR_msa_mini_u_d, CODE_FOR_msa_subvi_b,
17905 CODE_FOR_msa_subvi_h, CODE_FOR_msa_subvi_w, CODE_FOR_msa_subvi_d,
17906 CODE_FOR_msa_ceqi_b, CODE_FOR_msa_ceqi_h, CODE_FOR_msa_ceqi_w,
17907 CODE_FOR_msa_ceqi_d, CODE_FOR_msa_clti_s_b,
17908 CODE_FOR_msa_clti_s_h, CODE_FOR_msa_clti_s_w,
17909 CODE_FOR_msa_clti_s_d, CODE_FOR_msa_clei_s_b,
17910 CODE_FOR_msa_clei_s_h, CODE_FOR_msa_clei_s_w,
17911 CODE_FOR_msa_clei_s_d, CODE_FOR_msa_maxi_s_b,
17912 CODE_FOR_msa_maxi_s_h, CODE_FOR_msa_maxi_s_w,
17913 CODE_FOR_msa_maxi_s_d, CODE_FOR_msa_mini_s_b,
17914 CODE_FOR_msa_mini_s_h, CODE_FOR_msa_mini_s_w,
17915 CODE_FOR_msa_mini_s_d, CODE_FOR_msa_andi_b, CODE_FOR_msa_ori_b,
17916 CODE_FOR_msa_nori_b, CODE_FOR_msa_xori_b, CODE_FOR_msa_bmzi_b,
17917 CODE_FOR_msa_bmnzi_b, CODE_FOR_msa_bseli_b, CODE_FOR_msa_fill_b,
17918 CODE_FOR_msa_fill_h, CODE_FOR_msa_fill_w, CODE_FOR_msa_fill_d,
17919 CODE_FOR_msa_ilvl_b, CODE_FOR_msa_ilvl_h, CODE_FOR_msa_ilvl_w,
17920 CODE_FOR_msa_ilvl_d, CODE_FOR_msa_ilvr_b, CODE_FOR_msa_ilvr_h,
17921 CODE_FOR_msa_ilvr_w, CODE_FOR_msa_ilvr_d, CODE_FOR_msa_ilvev_b,
17922 CODE_FOR_msa_ilvev_h, CODE_FOR_msa_ilvev_w, CODE_FOR_msa_ilvod_b,
17923 CODE_FOR_msa_ilvod_h, CODE_FOR_msa_ilvod_w, CODE_FOR_msa_pckev_b,
17924 CODE_FOR_msa_pckev_h, CODE_FOR_msa_pckev_w, CODE_FOR_msa_pckod_b,
17925 CODE_FOR_msa_pckod_h, CODE_FOR_msa_pckod_w, CODE_FOR_msa_slli_b,
17926 CODE_FOR_msa_slli_h, CODE_FOR_msa_slli_w, CODE_FOR_msa_slli_d,
17927 CODE_FOR_msa_srai_b, CODE_FOR_msa_srai_h, CODE_FOR_msa_srai_w,
17928 CODE_FOR_msa_srai_d, CODE_FOR_msa_srli_b, CODE_FOR_msa_srli_h,
17929 CODE_FOR_msa_srli_w, CODE_FOR_msa_srli_d, CODE_FOR_msa_insert_b,
17930 CODE_FOR_msa_insert_h, CODE_FOR_msa_insert_w,
17931 CODE_FOR_msa_insert_d, CODE_FOR_msa_insve_b,
17932 CODE_FOR_msa_insve_h, CODE_FOR_msa_insve_w, CODE_FOR_msa_insve_d,
17933 CODE_FOR_msa_shf_b, CODE_FOR_msa_shf_h, CODE_FOR_msa_shf_w,
17934 CODE_FOR_msa_shf_w_f, CODE_FOR_msa_vshf_b, CODE_FOR_msa_vshf_h,
17935 CODE_FOR_msa_vshf_w, CODE_FOR_msa_vshf_d.
17936 (mips_expand_builtin): Add case for MIPS_BULTIN_MSA_TEST_BRANCH.
17937 (mips_set_compression_mode): Disallow MSA with MIPS16 code.
17938 (mips_option_override): -mmsa requires -mfp64 and -mhard-float.
17939 These are set implicitly and an error is reported if overridden.
17940 (mips_expand_builtin_msa_test_branch): New function.
17941 (mips_expand_msa_shuffle): Likewise.
17942 (MAX_VECT_LEN): Increase maximum length of a vector to 16 bytes.
17943 (TARGET_SCHED_REASSOCIATION_WIDTH): Define target hook.
17944 (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Likewise.
17945 (mips_expand_vec_unpack): Add support for MSA.
17946 (mips_expand_vector_init): Likewise.
17947 (mips_expand_vi_constant): Use CONST0_RTX (element_mode)
17948 instead of const0_rtx.
17949 (mips_msa_vec_parallel_const_half): New function.
17950 (mips_gen_const_int_vector): Likewise.
17951 (mips_gen_const_int_vector_shuffle): Likewise.
17952 (mips_expand_msa_cmp): Likewise.
17953 (mips_expand_vec_cond_expr): Likewise.
17954 * config/mips/mips.h
17955 (TARGET_CPU_CPP_BUILTINS): Add __mips_msa and __mips_msa_width.
17956 (OPTION_DEFAULT_SPECS): Ignore --with-fp-32 if -mmsa is
17958 (ASM_SPEC): Pass mmsa and mno-msa to the assembler.
17959 (ISA_HAS_MSA): New macro.
17960 (UNITS_PER_MSA_REG): Likewise.
17961 (BITS_PER_MSA_REG): Likewise.
17962 (BIGGEST_ALIGNMENT): Redefine using ISA_HAS_MSA.
17963 (MSA_REG_FIRST): New macro.
17964 (MSA_REG_LAST): Likewise.
17965 (MSA_REG_NUM): Likewise.
17966 (MSA_REG_P): Likewise.
17967 (MSA_REG_RTX_P): Likewise.
17968 (MSA_SUPPORTED_MODE_P): Likewise.
17969 (HARD_REGNO_CALL_PART_CLOBBERED): Redefine using TARGET_MSA.
17970 (ADDITIONAL_REGISTER_NAMES): Add named registers $w0-$w31.
17971 * config/mips/mips.md: Include mips-msa.md.
17972 (alu_type): Add simd_add.
17973 (mode): Add V2DI, V4SI, V8HI, V16QI, V2DF, V4SF.
17974 (type): Add simd_div, simd_fclass, simd_flog2, simd_fadd,
17975 simd_fcvt, simd_fmul, simd_fmadd, simd_fdiv, simd_bitins,
17976 simd_bitmov, simd_insert, simd_sld, simd_mul, simd_fcmp,
17977 simd_fexp2, simd_int_arith, simd_bit, simd_shift, simd_splat,
17978 simd_fill, simd_permute, simd_shf, simd_sat, simd_pcnt,
17979 simd_copy, simd_branch, simd_cmsa, simd_fminmax, simd_logic,
17980 simd_move, simd_load, simd_store. Choose "multi" for moves
17982 (qword_mode): New attribute.
17983 (insn_count): Add instruction count for quad moves.
17984 Increase the count for MIPS SIMD division.
17985 (UNITMODE): Add UNITMODEs for vector types.
17986 (addsub): New code iterator.
17987 * config/mips/mips.opt (mmsa): New option.
17988 * config/mips/msa.h: New file.
17989 * config/mips/mti-elf.h: Don't infer -mfpxx if -mmsa is
17991 * config/mips/mti-linux.h: Likewise.
17992 * config/mips/predicates.md
17993 (const_msa_branch_operand): New constraint.
17994 (const_uimm3_operand): Likewise.
17995 (const_uimm4_operand): Likewise.
17996 (const_uimm5_operand): Likewise.
17997 (const_uimm8_operand): Likewise.
17998 (const_imm5_operand): Likewise.
17999 (aq10b_operand): Likewise.
18000 (aq10h_operand): Likewise.
18001 (aq10w_operand): Likewise.
18002 (aq10d_operand): Likewise.
18003 (const_m1_operand): Likewise.
18004 (reg_or_m1_operand): Likewise.
18005 (const_exp_2_operand): Likewise.
18006 (const_exp_4_operand): Likewise.
18007 (const_exp_8_operand): Likewise.
18008 (const_exp_16_operand): Likewise.
18009 (const_vector_same_val_operand): Likewise.
18010 (const_vector_same_simm5_operand): Likewise.
18011 (const_vector_same_uimm5_operand): Likewise.
18012 (const_vector_same_uimm6_operand): Likewise.
18013 (const_vector_same_uimm8_operand): Likewise.
18014 (par_const_vector_shf_set_operand): Likewise.
18015 (reg_or_vector_same_val_operand): Likewise.
18016 (reg_or_vector_same_simm5_operand): Likewise.
18017 (reg_or_vector_same_uimm6_operand): Likewise.
18018 * doc/extend.texi (MIPS SIMD Architecture Functions): New
18020 * doc/invoke.texi (-mmsa): Document new option.
18022 2016-05-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
18024 * configure.ac (enable_vtable_verify): Handle --enable-vtable-verify.
18025 * configure: Regenerate.
18026 * config.in: Regenerate.
18027 * gcc.c (VTABLE_VERIFICATION_SPEC) [!ENABLE_VTABLE_VERIFY]: Error
18028 on -fvtable-verify.
18029 * config/sol2.h [!ENABLE_VTABLE_VERIFY] (STARTFILE_VTV_SPEC): Define.
18030 (ENDFILE_VTV_SPEC): Define.
18032 2016-05-09 Kaushik Phatak <kaushik.phatak@kpit.com>
18034 * config/rl78/rl78.c (rl78_expand_prologue): Save the MDUC related
18035 registers in all interrupt handlers if necessary.
18036 (rl78_option_override): Add warning.
18037 (MUST_SAVE_MDUC_REGISTERS): New macro.
18038 (rl78_expand_epilogue): Restore the MDUC registers if necessary.
18039 * config/rl78/rl78.c (check_mduc_usage): New function.
18040 (mduc_regs): New structure to hold MDUC register data.
18041 * config/rl78/rl78.md (is_g13_muldiv_insn): New attribute.
18042 (mulsi3_g13): Add is_g13_muldiv_insn attribute.
18043 (udivmodsi4_g13): Add is_g13_muldiv_insn attribute.
18044 (mulhi3_g13): Add is_g13_muldiv_insn attribute.
18045 * config/rl78/rl78.opt (msave-mduc-in-interrupts): New option.
18046 * doc/invoke.texi (RL78 Options): Add -msave-mduc-in-interrupts.
18048 2016-05-09 Bin Cheng <bin.cheng@arm.com>
18050 * tree-if-conv.c (tree-ssa-loop.h): Include header file.
18051 (tree-ssa-loop-niter.h): Ditto.
18052 (idx_within_array_bound, ref_within_array_bound): New functions.
18053 (ifcvt_memrefs_wont_trap): Check if array ref is within bound.
18054 Factor out check on writable base object to ...
18055 (base_object_writable): ... here.
18057 2016-05-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18059 * config/arm/arm.md (probe_stack): Add modes to set source
18062 2016-05-09 Bernd Schmidt <bschmidt@redhat.com>
18064 * regrename.c (base_reg_class_for_rename): New static function.
18065 (scan_rtx_address, scan_rtx): Use it instead of base_reg_class.
18067 2016-05-08 Jan Hubicka <hubicka@ucw.cz>
18069 * cgraph.c (thunk_adjust): Export.
18070 * cgraphclones.c (cgraph_node::create_clone): Clone thunk info.
18071 * cgraphunit.c (thunk_adjust): Export.
18072 (cgraph_node::assemble_thunks_and_aliases): Do not assemble inlined
18074 * ipa-inline-analyssi.c (compute_inline_parameters): Thunks are
18076 * tree-inline.c (expand_call_inline): Expand thunks inline.
18078 2016-05-08 Uros Bizjak <ubizjak@gmail.com>
18081 * config/i386/sse.md (*sse2_vd_cvtsd2ss): New insn pattern.
18082 (*sse2_vd_cvtss2sd): Ditto.
18083 * config/i386/i386.md
18084 (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_truncate df->sf splitter):
18085 Generate *sse2_vd_cvtsd2ss pattern.
18086 (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_extend sf->df splitter):
18087 Generate *sse2_vd_cvtss2sd pattern.
18089 2016-05-08 Oleg Endo <olegendo@gcc.gnu.org>
18091 * config/sh/sh.h (GET_SH_ARG_CLASS): Convert macro into ...
18092 * config/sh/sh.c (get_sh_arg_class): ... this new function. Update its
18095 2016-05-08 Oleg Endo <olegendo@gcc.gnu.org>
18097 * config/sh/sh-protos.h (sh_media_register_for_return): Remove.
18098 * config/sh/sh.c: Define and declare variables on first use throughout
18100 (current_function_interrupt): Change to bool type.
18101 (frame_insn): Rename to emit_frame_insn and update users.
18102 (push_regs): Use bool for 'interrupt_handler' argument.
18103 (save_schedule_s): Remove.
18104 (TARGET_ASM_UNALIGNED_DI_OP, TARGET_ASM_ALIGNED_DI_OP): Remove.
18105 (sh_option_override): Don't nullify targetm.asm_out.aligned_op.di and
18106 targetm.asm_out.unaligned_op.di.
18107 (gen_far_branch): Remove redundant forward declaration.
18108 (sh_media_register_for_return, MAX_SAVED_REGS, save_entry_s, save_entry,
18109 MAX_TEMPS, save_schedule_ssave_schedule): Remove.
18110 (sh_set_return_address, sh_function_ok_for_sibcall,
18111 scavenge_reg): Update comments.
18112 (sh_builtin_saveregs): Use TRAGET_FPU_ANY condition.
18113 (sh2a_get_function_vector_number, sh2a_function_vector_p): Use for loop.
18114 (sh_attr_renesas_p): Remove unnecessary parentheses.
18115 (branch_dest): Simplify.
18116 * config/sh/sh.h (sh_args): Remove byref, byref_regs, stack_regs fields.
18117 Change force_mem, prototype_p, outgoing, renesas_abi fields to bool.
18118 (CUMULATIVE_ARGS): Change macro to typedef.
18119 (current_function_interrupt): Change to bool type.
18120 (sh_arg_class, sh_args, CUMULATIVE_ARGS, current_function_interrupt):
18121 Surround with __cplusplus ifdef.
18122 (sh_compare_op0, sh_compare_op1): Remove.
18123 (EPILOGUE_USES): Use TARGET_FPU_ANY condition.
18125 2016-05-07 Jim Wilson <jim.wilson@linaro.org>
18127 * config/arm/arm.md: (arch): Add neon.
18128 (arch_enabled): Return yes for arch neon when TARGET_NEON.
18129 * config/arm/vfp.md (movdf_vfp): Add w/G as alternative 3. Add
18130 neon_move as type for alt 3. Add arch attr enabling alt 3 for neon.
18131 Emit vmov.i64 for alt 3. Renumber alternatives 3 to 8. Adjust
18132 attributes for alt renumbering. Mark alt 3 as non-predicable.
18133 (thumb2_movdf_vfp): Likewise.
18135 2016-05-07 Uros Bizjak <ubizjak@gmail.com>
18137 * config/i386/i386.md (*addqi_1): Add preferred_for_speed attribute
18138 to disparage alternatives 3 and 4 for TARGET_PARTIAL_REG_STALL targets.
18139 (*andqi_1): Add preferred_for_speed attribute to disparage
18140 alternative 2 for TARGET_PARTIAL_REG_STALL targets.
18141 (*<code>qi_1): Ditto.
18142 (*one_cmplqi2_1): Add preferred_for_speed attribute to disparage
18143 alternative 1 for TARGET_PARTIAL_REG_STALL targets.
18144 (*ashlqi3_1): Ditto.
18145 (*swap<mode>): Merge from *swap<mode>_1 and *swap<mode>_2 patterns.
18146 Add preferred_for_size attribute to disparage alternative 0 and
18147 preferred_for_speed attribute to disparage alternative 1 for
18148 TARGET_PARTIAL_REG_STALL targets.
18150 2016-05-07 Tom de Vries <tom@codesourcery.com>
18152 PR tree-optimization/70956
18153 * graphite-scop-detection.c (build_cross_bb_scalars_def): Handle NULL
18156 2016-05-07 Oleg Endo <olegendo@gcc.gnu.org>
18158 * config/sh/sh-protos.h (sh_cbranch_distance): Declare new function.
18159 * config/sh/sh.c (sh_cbranch_distance): Implement it.
18160 * config/sh/sh.md (branch_zero): Remove define_attr.
18161 (define_delay): Disable delay slot if branch distance is one insn.
18163 2016-05-06 Uros Bizjak <ubizjak@gmail.com>
18165 * config/i386/i386.md (LEAMODE): New mode attribute.
18166 (plus to LEA splitter): Rewrite splitter using LEAMODE mode attribute.
18167 (ashift to LEA splitter): Rewrte splitter using SWI mode iterator
18168 and LEAMODE mode attribute. Use VOIDmode const_0_to_3_operand as
18169 operand 2 predicate.
18170 (*lea<mode>_general_2): Use VOIDmode for const248_operand.
18171 (*lea<mode>_general_3): Ditto.
18172 (*lea<mode>_general_4): Use VOIDmode for const_0_to_3_operand.
18174 2016-05-06 Jakub Jelinek <jakub@redhat.com>
18176 * genmddump.c (main): Convert argv from char ** to const char **.
18178 2016-05-06 David Malcolm <dmalcolm@redhat.com>
18180 * coretypes.h (OVERRIDE): New macro.
18181 (FINAL): New macro.
18183 2016-05-06 Eric Botcazou <ebotcazou@adacore.com>
18185 * tree-ssa-coalesce.c (gimple_can_coalesce_p): In the optimized case,
18186 allow coalescing if the types are compatible.
18188 2016-05-06 David Malcolm <dmalcolm@redhat.com>
18190 * pass_manager.h (pass_manager::register_pass_name): New method.
18191 (pass_manager::get_pass_by_name): New method.
18192 (pass_manager::create_pass_tab): New method.
18193 (pass_manager::m_name_to_pass_map): New field.
18194 * passes.c (name_to_pass_map): Delete global in favor of field
18195 "m_name_to_pass_map" of pass_manager.
18196 (register_pass_name): Rename from a function to...
18197 (pass_manager::register_pass_name): ...this method, updating
18198 for renaming of global "name_to_pass_map" to field
18199 "m_name_to_pass_map".
18200 (create_pass_tab): Rename from a function to...
18201 (pass_manager::create_pass_tab): ...this method, updating
18202 for renaming of global "name_to_pass_map" to field.
18203 (get_pass_by_name): Rename from a function to...
18204 (pass_manager::get_pass_by_name): ...this method.
18205 (enable_disable_pass): Convert use of get_pass_by_name to
18206 a method call, locating the pass_manager singleton.
18208 2016-05-06 David Malcolm <dmalcolm@redhat.com>
18210 * genattr-common.c (main): Convert argv from char ** to const char **.
18211 * genattr.c (main): Likewise.
18212 * genattrtab.c (main): Likewise.
18213 * genautomata.c (initiate_automaton_gen): Likewise.
18215 * gencodes.c (main): Likewise.
18216 * genconditions.c (main): Likewise.
18217 * genconfig.c (main): Likewise.
18218 * genconstants.c (main): Likewise.
18219 * genemit.c (main): Likewise.
18220 * genenums.c (main): Likewise.
18221 * genextract.c (main): Likewise.
18222 * genflags.c (main): Likewise.
18223 * genmddeps.c (main): Likewise.
18224 * genopinit.c (main): Likewise.
18225 * genoutput.c (main): Likewise.
18226 * genpeep.c (main): Likewise.
18227 * genpreds.c (main): Likewise.
18228 * genrecog.c (main): Likewise.
18229 * gensupport.c (init_rtx_reader_args_cb): Likewise.
18230 (init_rtx_reader_args): Likewise.
18231 * gensupport.h (init_rtx_reader_args_cb): Likewise.
18232 (init_rtx_reader_args): Likewise.
18233 * gentarget-def.c (main): Likewise.
18234 * read-md.c (read_md_files): Likewise.
18235 * read-md.h (read_md_files): Likewise.
18237 2016-05-06 Uros Bizjak <ubizjak@gmail.com>
18239 * config/i386/i386.md (int cmove peephole2s): Use general_reg_operand
18240 instead of register_and_not_any_fp_reg_operand as operand 0 predicate.
18241 * config/i386/predicates.md (register_and_not_any_fp_reg_operand):
18242 Remove unused predicate.
18243 (register_and_not_fp_reg_operand): Ditto.
18245 2016-05-06 Martin Liska <mliska@suse.cz>
18247 * tree-if-conv.c (ifcvt_split_critical_edges): Use auto_vec
18248 instead of vec as the vector is local to the function.
18250 2016-05-06 Jakub Jelinek <jakub@redhat.com>
18252 * config/i386/sse.md (*<code>v8hi3, *<code>v16qi3): Add
18253 avx512bw alternative.
18255 * config/i386/sse.md (<mask_codefor>ashr<mode>3<mask_name>): Move
18256 before the ashr<mode>3 pattern.
18258 * config/i386/sse.md (*avx2_pmaddwd, *sse2_pmaddwd): Use
18259 v instead of x in vex or maybe_vex alternatives, use
18260 maybe_evex instead of vex in prefix.
18262 * config/i386/sse.md (*vec_extractv4sf_0, *sse4_1_extractps,
18263 *vec_extractv4sf_mem, vec_extract_lo_v16hi, vec_extract_hi_v16hi,
18264 vec_extract_lo_v32qi, vec_extract_hi_v32qi): Use v instead of x
18265 in vex or maybe_vex alternatives, use maybe_evex instead of vex
18268 * config/i386/sse.md (*vec_concatv2sf_sse4_1, *vec_concatv4sf): Use
18269 v instead of x in vex or maybe_vex alternatives, use
18270 maybe_evex instead of vex in prefix.
18272 * config/i386/sse.md (sse_shufps_<mode>, sse_storehps, sse_loadhps,
18273 sse_storelps, sse_movss, avx2_vec_dup<mode>, avx2_vec_dupv8sf_1,
18274 sse2_shufpd_<mode>, sse2_storehpd, sse2_storelpd, sse2_loadhpd,
18275 sse2_loadlpd, sse2_movsd): Use v instead of x in vex or maybe_vex
18276 alternatives, use maybe_evex instead of vex in prefix.
18278 * config/i386/sse.md (vec_interleave_lowv4sf,
18279 *vec_interleave_highv2df, *vec_interleave_lowv2df): Use
18280 v instead of x in vex or maybe_vex alternatives, use
18281 maybe_evex instead of vex in prefix.
18283 * config/i386/sse.md (sse_movhlps, sse_movlhps): Use
18284 v instead of x in vex or maybe_vex alternatives, use
18285 maybe_evex instead of vex in prefix.
18287 * config/i386/sse.md (*avx_cvtpd2dq256_2, *avx_cvtps2pd256_2): Use
18288 v constraint instead of x.
18290 2016-05-06 Nathan Sidwell <nathan@codesourcery.com>
18292 * gimple.c (gimple_call_same_target_p): Unique functions are eq.
18293 * tree-ssa-tail-merge.c (same_succ::equal): Check pointer eq
18296 2016-05-06 Richard Biener <rguenther@suse.de>
18298 PR tree-optimization/70948
18299 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
18300 Properly clobber all fields of va_list for __builtin_va_start.
18302 2016-05-06 Yuri Rumyantsev <ysrumyan@gmail.com>
18305 * tree-ssa-loop-unswitch.c (find_loop_guard): Reject guard edge with
18306 loop latch destination.
18308 2016-05-06 Martin Liska <mliska@suse.cz>
18310 * tree-ssa-uninit.c: Apply manual changes
18311 to the GNU coding style.
18312 (prune_uninit_phi_opnds): Rename from
18313 prune_uninit_phi_opnds_in_unrealizable_paths.
18315 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
18317 * config/sh/sh.opt (madjust-unroll, minvalid-symbols, msoft-atomic,
18318 mspace): Remove deprecated options.
18319 * doc/invoke.texi (SH options): Remove -mspace.
18321 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
18323 * config/sh/sh.md (ic_invalidate_line_sh4a): Fix insn length.
18325 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
18327 * config/sh/sh.md (*cmpeqsi_t): Remove combine insn pattern and similar
18328 corresponding combine split pattern.
18330 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
18333 * config/sh/predicates.md (long_displacement_mem_operand): New.
18334 * config/sh/sh.md (movsi_i): Allow for SH2A, disallow for any FPU.
18335 Add movi20, movi20s alternatives. Adjust length attribute for
18337 (movsi_ie): Allow for any FPU. Adjust length attribute for
18339 (movsi_i_lowpart): Add movi20, movi20s alternatives. Adjust length
18340 attribute for alternatives.
18341 (*mov<mode>): Use long_displacement_mem_operand for length attribute.
18342 (*movdi_i, movdf_k, movdf_i4, movsf_i, movsf_ie, movsf_ie_ra): Adjust
18343 length attribute for alternatives.
18345 2016-05-06 Richard Biener <rguenther@suse.de>
18347 PR tree-optimization/70960
18348 * tree-if-conv.c (ifcvt_walk_pattern_tree): Handle non-SSA ops.
18350 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
18353 * config/sh/sh.md (*cmp_div0s_7, *cmp_div0s_8): Add div0s variants.
18354 * config/sh/sh.c (sh_rtx_costs): Add another div0s case.
18356 2016-05-06 Marek Polacek <polacek@redhat.com>
18359 * ubsan.c (get_ubsan_type_info_for_type): Remove assert.
18361 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
18364 * config/sh/sh.md (*rotcr): Add another variant.
18366 2016-05-06 Richard Biener <rguenther@suse.de>
18368 PR middle-end/70931
18369 * dwarf2out.c (native_encode_initializer): Skip zero-sized fields.
18371 2016-05-06 Richard Biener <rguenther@suse.de>
18373 PR middle-end/70941
18374 * fold-const.c (split_tree): Always convert to the original type
18377 2016-05-06 Richard Biener <rguenther@suse.de>
18379 * fwprop.c (fwprop): Remove duplicate cleanup_cfg call.
18380 (fwprop_addr): Likewise.
18382 2016-05-06 Uros Bizjak <ubizjak@gmail.com>
18385 * config/i386/i386-protos.h (ix86_standard_x87sse_constant_load_p):
18387 * config/i386/i386.c (ix86_standard_x87sse_constant_load_p): New.
18388 * config/i386/i386.md (push mem splitter): Use find_constant_src in
18389 the splitter condition.
18390 (FP load splitter): Use ix86_standard_x87sse_constant_load_p in
18391 the splitter condition.
18392 (FP float_extend load splitter): Ditto.
18394 2016-05-05 Uros Bizjak <ubizjak@gmail.com>
18396 * config/i386/i386.md (peehole2 patterns): Change true_regnum
18397 to REGNO in all peephole2 patterns.
18398 (post-reload splitters): Change true_regnum to REGNO in
18399 post-reload splitters.
18400 (zero_extend splitters): Use general_reg_operand and
18401 nonimmediate_gr_operand predicates.
18403 2016-05-05 Jakub Jelinek <jakub@redhat.com>
18405 * config/i386/sse.md (<avx512>_fmadd_<mode>_mask3<round_name>): Use
18406 v constraint instead of x.
18408 2016-05-05 Alan Modra <amodra@gmail.com>
18411 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Don't
18412 set OPTION_MASK_RELOCATABLE when flag_pic == 2. Set
18413 TARGET_NO_FP_IN_TOC for -mrelocatable.
18414 (MINIMAL_TOC_SECTION_ASM_OP): Remove redundant
18415 TARGET_RELOCATABLE test.
18416 (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
18417 (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
18418 * config/rs6000/linux64.h (MINIMAL_TOC_SECTION_ASM_OP): Likewise.
18419 (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
18420 (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
18421 * config/rs6000/freebsd64.h (MINIMAL_TOC_SECTION_ASM_OP): Likewise.
18422 (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
18423 (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
18424 * config/rs6000/predicates.md (easy_fp_constant): Likewise.
18425 * config/rs6000/rs6000.c (rs6000_elf_output_toc_section_asm_op):
18427 (rs6000_assemble_integer): Update TARGET_RELOCATABLE test.
18428 (rs6000_stack_info): Likewise.
18429 (rs6000_elf_asm_out_constructor): Likewise.
18430 (rs6000_elf_asm_out_destructor): Likewise.
18431 (rs6000_elf_declare_function_name): Likewise.
18432 * config/rs6000/rs6000.md (load_toc_aix_di): Likewise.
18433 * config/rs6000/rs6000.h (MASK_RELOCATABLE, MASK_MINIMAL_TOC):
18436 2016-05-05 Alan Modra <amodra@gmail.com>
18438 * config/rs6000/rs6000.c (rs6000_frame_related): Rewrite.
18440 2016-05-05 Alan Modra <amodra@gmail.com>
18442 * config/rs6000/rs6000.c (rs6000_savres_strategy): Don't use
18443 out-of-line gpr restore for one or two regs if that would add
18446 2016-05-04 Uros Bizjak <ubizjak@gmail.com>
18449 * config/i386/i386.md
18450 (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_extend sf->df peephole2):
18451 Change to post-epilogue_completed late splitter. Use sse_reg_operand
18452 as operand 0 predicate.
18453 (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_truncate df->sf peephole2):
18455 (TARGET_SSE_PARTIAL_REG_DEPENDENCY float {si,di}->{sf,df} peephole2):
18456 Ditto. Emit the pattern using RTX.
18458 (TARGET_USE_VECTOR_FP_CONVERTS float_extend sf->df splitter):
18459 Use sse_reg_opreand as operand 0 predicate. Do not use true_regnum in
18460 the post-reload splitter. Use lowpart_subreg instead of gen_rtx_REG.
18461 (TARGET_USE_VECTOR_FP_CONVERTS float_truncate df->sf splitter):
18463 (TARGET_USE_VECTOR_CONVERTS float si->{sf,df} splitter): Use
18464 sse_reg_operand as operand 0 predicate.
18466 (TARGET_SPLIT_MEM_OPND_FOR_FP_CONVERTS float_extend sf->df peephole2):
18467 Use sse_reg_opreand as operand 0 predicate. Use lowpart_subreg
18468 instead of gen_rtx_REG.
18469 (TARGET_SPLIT_MEM_OPND_FOR_FP_CONVERTS float_truncate sf->df peephole2):
18472 2016-05-04 Segher Boessenkool <segher@kernel.crashing.org>
18474 * function.c (emit_use_return_register_into_block): Delete.
18475 (gen_return_pattern): Delete.
18476 (emit_return_into_block): Delete.
18477 (active_insn_between): Delete.
18478 (convert_jumps_to_returns): Delete.
18479 (emit_return_for_exit): Delete.
18480 (thread_prologue_and_epilogue_insns): Delete all code dealing with
18481 simple_return for shrink-wrapped blocks.
18482 * shrink-wrap.c (try_shrink_wrapping): Insert simple_return at the
18483 end of blocks that need one.
18484 (get_unconverted_simple_return): Delete.
18485 (convert_to_simple_return): Delete.
18486 * shrink-wrap.c (get_unconverted_simple_return): Delete declaration.
18487 (convert_to_simple_return): Ditto.
18489 2016-05-04 Segher Boessenkool <segher@kernel.crashing.org>
18491 * cfgcleanup.c (bb_is_just_return): New function.
18492 (try_optimize_cfg): Simplify jumps to return, branches to return,
18493 and branches around return.
18495 2016-05-04 Segher Boessenkool <segher@kernel.crashing.org>
18497 * cfgcleanup.c (try_simplify_condjump): Don't try to simplify a
18498 branch to a return.
18500 2016-05-04 Jakub Jelinek <jakub@redhat.com>
18504 * tree-core.h (enum operand_equal_flag): Add OEP_HASH_CHECK.
18505 * tree.c (inchash::add_expr): If !IS_EXPR_CODE_CLASS (tclass),
18506 assert flags & OEP_HASH_CHECK, instead of asserting it
18507 never happens. Handle TARGET_EXPR.
18508 * fold-const.c (operand_equal_p): For hash verification,
18509 or in OEP_HASH_CHECK into flags.
18511 2016-05-04 Eric Botcazou <ebotcazou@adacore.com>
18513 * tree-ssa-coalesce.c (gimple_can_coalesce_p): Fix reference in head
18515 (compute_samebase_partition_bases): Fix typo.
18517 2016-05-04 Jakub Jelinek <jakub@redhat.com>
18519 * config/i386/sse.md (vec_interleave_highv8sf,
18520 vec_interleave_lowv8sf, vec_interleave_highv4df,
18521 vec_interleave_lowv4df): Remove constraints from expanders.
18523 * config/i386/sse.md (sse2_movq128): Use v constraint instead of x.
18525 2016-05-04 Jan Hubicka <hubicka@ucw.cz>
18527 * tree-inline.c (expand_call_inline): Fix path dealing with
18528 making lhs of call statement undefined.
18530 2016-05-04 Jan Hubicka <hubicka@ucw.cz>
18532 * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases):
18533 Check availability on NODE, too.
18534 * cgraph.h (symtab_node::call_for_symbol_and_aliases): Likewise.
18535 (cgraph_node::call_for_symbol_and_aliases): Likewise.
18536 (varpool_node::call_for_symbol_and_aliase): Likewise.
18537 * ipa-pure-const.c (add_new_function): Analyze all bodies.
18538 (propagate_pure_const): Propagate across interposable functions, too.
18539 (skip_function_for_local_pure_const): Do not skip interposable bodies
18541 (pass_local_pure_const::execute): Update.
18543 2016-05-04 Marek Polacek <polacek@redhat.com>
18545 * doc/invoke.texi: Document -Wdangling-else.
18547 2016-05-04 Thomas Preud'homme <thomas.preudhomme@arm.com>
18549 * config.gcc: Error out when conflicting multilib is detected. Do not
18550 loop over multilibs since no combination is legal.
18552 2016-05-04 Alan Modra <amodra@gmail.com>
18554 * config/rs6000/rs6000.h (PIC_OFFSET_TABLE_REGNUM): Correct.
18555 * config/rs6000/sysv4.h (TARGET_TOC): Simplify.
18556 * config/rs6000/rs6000.c (rs6000_elf_output_toc_section_asm_op):
18559 2016-05-04 Matthew Fortune <matthew.fortune@imgtec.com>
18561 * config/mips/mips-cpus.def (p5600): Avoid IMADD by default.
18562 Clean up p5600 comments.
18564 2016-05-04 Richard Biener <rguenther@suse.de>
18566 * match.pd: Add BIT_FIELD_REF canonicalizations and vector
18567 constructor simplifications.
18568 * fold-const.c (fold_ternary_loc): Remove duplicate functionality here.
18570 2016-05-04 Oleg Endo <olegendo@gcc.gnu.org>
18572 * config/sh/predicates (post_inc_mem, pre_dec_mem): New predicates.
18573 * config/sh/sh-protos.h (sh_find_set_of_reg): Return null result if
18574 result.set_rtx is null instead of aborting.
18575 * config/sh/sh.h (USE_LOAD_POST_INCREMENT, USE_STORE_PRE_DECREMENT):
18577 (USE_LOAD_PRE_DECREMENT, USE_STORE_POST_INCREMENT): Enable for SH2A.
18578 * config/sh/sh.md (*extend<mode>si2_predec, *mov<mode>_load_predec,
18579 *mov<mode>_store_postinc): New patterns.
18581 2016-05-04 Marc Glisse <marc.glisse@inria.fr>
18583 * match.pd ((A | B) & (A | C)): Generalize to BIT_XOR_EXPR. Mark
18584 as commutative. Check both conversions are NOP.
18585 ((A & B) OP (C & B)): Remove.
18587 2016-05-04 Alan Modra <amodra@gmail.com>
18589 * combine.c (simplify_set): Correct WORD_REGISTER_OPERATIONS test.
18591 2016-05-04 Alan Modra <amodra@gmail.com>
18594 * config/rs6000/rs6000.c (rs6000_stack_info): Don't set cr_save_p
18595 when cr2,3,4 are all fixed regs.
18597 2016-05-04 Bernd Schmidt <bschmidt@redhat.com>
18599 PR rtl-optimization/57193
18600 * opts.c (default_options_table): Revert OPT_frename_registers change.
18601 * doc/invoke.texi (-frename-registers, -O2): Likewise.
18603 2016-05-03 Martin Sebor <msebor@redhat.com>
18606 * builtins.c (fold_builtin_FILE): New function.
18607 (fold_builtin_FUNCTION, fold_builtin_LINE): New functions.
18608 (fold_builtin_0): Call them.
18609 * gimplify.c (gimplify_call_expr): Remove the handling of
18610 BUILT_IN_FILE, BUILT_IN_FUNCTION, and BUILT_IN_LINE.
18613 * doc/extend.texi (Other Builtins): Update __builtin_FILE,
18614 __builtin_FUNCTION, and __builtin_LINE to reflect they yield
18618 * doc/extend.texi (Function Names as Strings): Update __func__,
18619 __FUNCTION__, __PRETTY_FUNCTION__ to reflect they evaluate to
18622 2016-05-03 Jakub Jelinek <jakub@redhat.com>
18623 Richard Biener <rguenther@suse.de>
18625 PR tree-optimization/70916
18626 * tree-if-conv.c: Include cfganal.h.
18627 (pass_if_conversion::execute): Call connect_infinite_loops_to_exit
18628 and remove_fake_exit_edges around the optimization pass.
18630 2016-05-03 Jan Hubicka <hubicka@ucw.cz>
18632 * cgraph.c (symbol_table::create_edge): Set inline_failed.
18633 (cgraph_edge::make_direct): Likewise.
18634 (cgraph_edge::dump_edge_flags): Dump call_stmt_cannot_inline_p.
18635 * cgraphclones.c (duplicate_thunk_for_node): Set inline_failed.
18636 * cif-code.def (CIF_LTO_MISMATCHED_DECLARATIONS): New code
18637 (CIF_THUNK): New code.
18638 * ipa-inline-analysis.c (initialize_inline_failed): Preserve
18639 CIF_FINAL_ERROR codes; do not deal with call_stmt_cannot_inline_p.
18640 (compute_inline_parameters): Set inline_failed for thunks.
18641 (inline_analyze_function): Cleanup.
18642 * ipa-inline.c (can_inline_edge_p): Do not deal with
18643 call_stmt_cannot_inline_p.
18644 (can_early_inline_edge_p): Likewise.
18645 (early_inliner): Initialize inline_failed.
18646 * lto-cgraph.c (lto_output_edge): Sanity check inline_failed.
18648 2016-05-03 Uros Bizjak <ubizjak@gmail.com>
18650 * config/i386/predicates.md (x87nonimm_ssenomem_operand): Rename
18651 from nonimm_ssenomem_operand.
18652 (nonimm_ssenomem_operand): New predicate.
18653 * config/i386/i386.md (extendsfdf2): Use nonimm_ssenomem_operand
18654 as operand 0 predicate.
18655 (*extendsfdf2): Merge from *extendsfdf2_mixed and *extendsfdf2_i387.
18656 Disable unsupported alternatives using "enabled" attribute.
18657 Use register_ssemem_operand as operand 0 predicate.
18658 (*fop_<mode>_1): Use x87nonimm_ssenomem_operand as operand 1 predicate.
18660 2016-05-03 Marek Polacek <polacek@redhat.com>
18663 * input.c (expansion_point_location): New function.
18664 * input.h (expansion_point_location): Declare.
18666 2016-05-03 Pierre-Marie de Rodat <derodat@adacore.com>
18668 * dwarf2out.c (resolve_args_picking_1): Replace the frame_offset
18669 occurence with frame_offset_ ones.
18671 2016-05-03 Alan Modra <amodra@gmail.com>
18673 PR rtl-optimization/70890
18674 * ira.c (combine_and_move_insns): When moving def_insn, remove
18675 equivs on use_insn.
18677 2016-05-03 Dominik Vogt <vogt@linux.vnet.ibm.com>
18679 * config/s390/s390.md ("*r<noxa>sbg_<mode>_sll")
18680 ("*r<noxa>sbg_<mode>_srl"): New define_insns.
18681 ("*r<noxa>sbg_<mode>_srl_bitmask"): Rename by adding "_bitmask".
18682 ("*r<noxa>sbg_<mode>_sll_bitmask"): Likewise.
18684 2016-05-03 Alan Modra <amodra@gmail.com>
18686 * config/rs6000/rs6000.c (rs6000_savres_strategy): Correct condition
18687 for SAVE_MULTIPLE/STORE_MULTIPLE.
18689 2016-05-03 Jakub Jelinek <jakub@redhat.com>
18691 * config/i386/i386.md (*truncdfsf_mixed, *truncdfsf_i387,
18692 *truncxfsf2_mixed, *truncxfdf2_mixed): Use v constraint instead of x.
18694 2016-05-03 Richard Biener <rguenther@suse.de>
18696 * gimplify.h (get_initialized_tmp_var): Add allow_ssa parameter
18698 (gimplify_arg): Likewise.
18699 * gimplify.c (gimplify_expr): Add overload with allow_ssa parameter,
18700 re-writing the result to a decl if required.
18701 (internal_get_tmp_var): Add allow_ssa parameter
18702 and override into_ssa with it.
18703 (get_formal_tmp_var): Adjust.
18704 (get_initialized_tmp_var): Add allow_ssa parameter.
18705 (gimplify_arg): Add allow_ssa parameter and avoid generating
18706 SSA names for the result false.
18707 (gimplify_call_expr): If the call may return twice do not
18708 gimplify parameters into SSA.
18709 (prepare_gimple_addressable): Do not allow an SSA name as temporary.
18710 (gimplify_modify_expr): Adjust assert. For noreturn calls
18711 with a SSA name LHS adjust its def.
18712 (gimplify_save_expr): Do not allow an SSA name as save-expr result.
18713 (gimplify_one_sizepos): Do not allow an SSA name as a sizepos.
18714 (gimplify_body): Init GIMPLE SSA data structures and gimplify into-SSA.
18715 (gimplify_scan_omp_clauses): Make sure OMP_CLAUSE_SIZE is not
18716 an SSA name. Likewise for OMP_CLAUSE_REDUCTION operands.
18717 (gimplify_omp_for): Likewise for OMP_CLAUSE_DECL. Likewise
18718 for OMP_FOR_COND, OMP_FOR_INCR and OMP_CLAUSE_LINEAR_STEP.
18719 (optimize_target_teams): Do not allow SSA names for clause operands.
18720 (gimplify_expr): Likewise for where we mark the result addressable.
18721 * passes.def (pass_init_datastructures): Remove.
18722 * tree-into-ssa.c (mark_def_sites): Ignore existing SSA names.
18723 (rewrite_stmt): Likewise.
18724 * tree-inline.c (initialize_cfun): Properly transfer SSA state.
18725 (replace_locals_op): Replace SSA names.
18726 (copy_gimple_seq_and_replace_locals): Init src_cfun.
18727 * gimple-low.c (lower_builtin_setjmp): Deal with SSA.
18728 * cgraph.c (release_function_body): Free CFG annotations only
18729 when we have a CFG. Simplify.
18730 * gimple-fold.c (gimplify_and_update_call_from_tree): Use
18731 force_gimple_operand instead of get_initialized_tmp_var.
18732 * tree-pass.h (make_pass_init_datastructures): Remove.
18733 * tree-ssa.c (execute_init_datastructures): Remove.
18734 (pass_data_init_datastructures): Likewise.
18735 (class pass_init_datastructures): Likewise.
18736 (make_pass_init_datastructures): Likewise.
18737 * omp-low.c (create_omp_child_function): Init SSA data structures.
18738 (grid_expand_target_grid_body): Likewise.
18739 * tree-cfg.c (move_block_to_fn): Double-check the DEF is an SSA
18740 name before adding it to names_to_release.
18741 (remove_bb): Always release SSA defs.
18742 * tree-ssa-ccp.c (get_default_value): Check SSA_NAME_VAR
18743 before dereferencing it.
18744 * cgraphunit.c (init_lowered_empty_function): Always
18745 int SSA data structures.
18746 * tree-ssanames.c (release_defs): Remove assert that we are in
18748 * trans-mem.c (diagnose_tm_1): Handle SSA name function.
18750 2016-05-03 Jakub Jelinek <jakub@redhat.com>
18751 Uros Bizjak <ubizjak@gmail.com>
18753 PR rtl-optimization/70467
18754 * config/i386/predicates.md (x86_64_hilo_int_operand,
18755 x86_64_hilo_general_operand): New predicates.
18756 * config/i386/constraints.md (Wd): New constraint.
18757 * config/i386/i386.md (mode attr di): Use Wd instead of e.
18758 (general_hilo_operand): New mode attr.
18759 (add<mode>3, sub<mode>3): Use <general_hilo_operand>
18760 instead of <general_operand>.
18761 (*add<dwi>3_doubleword, *sub<dwi>3_doubleword): Use
18762 x86_64_hilo_general_operand instead of <general_operand>.
18764 2016-05-03 Jakub Jelinek <jakub@redhat.com>
18766 PR tree-optimization/70916
18767 * tree-if-conv.c (constant_or_ssa_name): Removed.
18768 (fold_build_cond_expr): Use is_gimple_val instead of
18769 constant_or_ssa_name.
18771 PR tree-optimization/70916
18772 * tree-vect-patterns.c (vect_recog_mask_conversion_pattern): Give up
18773 if COND_EXPR rhs1 is neither SSA_NAME nor COMPARISON_CLASS_P.
18776 * tree-ssa-ccp.c: Include stor-layout.h and optabs-query.h.
18777 (optimize_atomic_bit_test_and): New function.
18778 (pass_fold_builtins::execute): Use it.
18779 * optabs.def (atomic_bit_test_and_set_optab,
18780 atomic_bit_test_and_complement_optab,
18781 atomic_bit_test_and_reset_optab): New optabs.
18782 * internal-fn.def (ATOMIC_BIT_TEST_AND_SET,
18783 ATOMIC_BIT_TEST_AND_COMPLEMENT, ATOMIC_BIT_TEST_AND_RESET): New ifns.
18784 * builtins.h (expand_ifn_atomic_bit_test_and): New prototype.
18785 * builtins.c (expand_ifn_atomic_bit_test_and): New function.
18786 * internal-fn.c (expand_ATOMIC_BIT_TEST_AND_SET,
18787 expand_ATOMIC_BIT_TEST_AND_COMPLEMENT,
18788 expand_ATOMIC_BIT_TEST_AND_RESET): New functions.
18789 * doc/md.texi (atomic_bit_test_and_set@var{mode},
18790 atomic_bit_test_and_complement@var{mode},
18791 atomic_bit_test_and_reset@var{mode}): Document.
18792 * config/i386/sync.md (atomic_bit_test_and_set<mode>,
18793 atomic_bit_test_and_complement<mode>,
18794 atomic_bit_test_and_reset<mode>): New expanders.
18795 (atomic_bit_test_and_set<mode>_1,
18796 atomic_bit_test_and_complement<mode>_1,
18797 atomic_bit_test_and_reset<mode>_1): New insns.
18799 2016-05-03 Richard Sandiford <richard.sandiford@arm.com>
18801 PR rtl-optimization/70687
18802 * combine.c (change_zero_ext): Check for scalar modes. Use wide_int
18803 instead of unsigned HOST_WIDE_INT.
18805 2016-05-03 Bernd Schmidt <bschmidt@redhat.com>
18807 PR rtl-optimization/44281
18808 * hard-reg-set.h (struct target_hard_regs): New field
18809 x_fixed_nonglobal_reg_set.
18810 (fixed_nonglobal_reg_set): New macro.
18811 * reginfo.c (init_reg_sets_1): Initialize it.
18812 * ira.c (setup_alloc_regs): Use fixed_nonglobal_reg_set instead
18814 * df-scan.c (df_insn_refs_collect): Asms may reference global regs.
18816 2016-05-03 Bin Cheng <bin.cheng@arm.com>
18818 PR tree-optimization/56541
18819 * doc/invoke.texi (@item max-tree-if-conversion-phi-args): New item.
18820 * params.def (PARAM_MAX_TREE_IF_CONVERSION_PHI_ARGS): new param.
18821 * tree-if-conv.c (MAX_PHI_ARG_NUM): new macro.
18822 (any_complicated_phi): new static variable.
18823 (aggressive_if_conv): delete.
18824 (if_convertible_phi_p): support phis with more than two arguments.
18825 (if_convertible_bb_p): remvoe check on aggressive_if_conv and
18826 critical pred edges.
18827 (ifcvt_split_critical_edges): support phis with more than two
18828 arguments by checking new parameter. only split critical edges
18830 (tree_if_conversion): handle simd pragma marked loop using new
18831 local variable aggressive_if_conv. check any_complicated_phi.
18833 2016-05-03 Bin Cheng <bin.cheng@arm.com>
18835 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Check depends_on
18838 2016-05-03 Bin Cheng <bin.cheng@arm.com>
18840 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Don't clobber
18843 2016-05-03 Oleg Endo <olegendo@gcc.gnu.org>
18845 * config/sh/sh.md (udivsi3, divsi3, mulsi3): Simplify.
18846 (mulhisi3, umulhisi3, (smulsi3_highpart, umulsi3_highpart): Convert to
18847 define_insn_and_split.
18848 (mulsi3_i): New define_insn_and_split.
18849 (mulsi3_call): Convert to define_insn.
18850 (mulsidi3, mulsidi3_compact, umulsidi3, umulsidi3_compact):
18851 Remove constraints.
18853 2016-05-02 Michael Meissner <meissner@linux.vnet.ibm.com>
18855 * machmode.h (mode_complex): Add support to give the complex mode
18857 (GET_MODE_COMPLEX_MODE): Likewise.
18858 * stor-layout.c (layout_type): For COMPLEX_TYPE, use the mode
18859 stored by build_complex_type and gfc_build_complex_type instead of
18860 trying to figure out the appropriate mode based on the size. Raise
18861 an assertion error, if the type was not set.
18862 * genmodes.c (struct mode_data): Add field for the complex type of
18864 (blank_mode): Likewise.
18865 (make_complex_modes): Remember the complex mode created in the
18867 (emit_mode_complex): Write out the mode_complex array to map a
18868 type mode to the complex version.
18869 (emit_insn_modes_c): Likewise.
18870 * tree.c (build_complex_type): Set the complex type to use before
18871 calling layout_type.
18872 * config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Add
18873 support for __float128 complex datatypes.
18874 (rs6000_hard_regno_mode_ok): Likewise.
18875 (rs6000_setup_reg_addr_masks): Likewise.
18876 (rs6000_complex_function_value): Likewise.
18877 * config/rs6000/rs6000.h (FLOAT128_IEEE_P): Likewise.
18878 __float128 and __ibm128 complex.
18879 (FLOAT128_IBM_P): Likewise.
18880 (ALTIVEC_ARG_MAX_RETURN): Likewise.
18881 * doc/extend.texi (Additional Floating Types): Document that
18882 -mfloat128 must be used to enable __float128. Document complex
18883 __float128 and __ibm128 support.
18885 2016-05-02 Jakub Jelinek <jakub@redhat.com>
18888 * gimple.c (gimple_builtin_call_types_compatible_p): Allow
18889 char/short arguments promoted to int because of promote_prototypes.
18891 2016-05-02 Uros Bizjak <ubizjak@gmail.com>
18893 * config/i386/predicates.md (register_ssemem_operand): New predicate.
18894 * config/i386/i386.md (*cmpi<FPCMP:unord><MODEF:mode>): Merge from
18895 *cmpi<FPCMP:unord><MODEF:mode>_mixed and
18896 *cmpi<FPCMP:unord><X87MODEF:mode>_i387. Disable unsupported
18897 alternatives using "enabled" attribute. Use register_ssemem_operand
18898 as operand 1 predicate.
18899 (*cmpi<unord>xf_i387): Split XFmode pattern from
18900 *cmpi<FPCMP:unord><X87MODEF:mode>_i387.
18901 (*absneg<mode>2): Merge from *absneg<mode>2_mixed and
18902 *absneg<mode>2_i387. Disable unsupported alternatives using
18903 "enabled" attribute.
18904 (*absnegxf2_i387): Split XFmode pattern from *absneg<mode>2_i387.
18906 2016-05-02 Nathan Sidwell <nathan@codesourcery.com>
18908 * omp-low.c (lower_oacc_head_tail): Assert there is at least one
18910 (oacc_loop_process): Check mask for loop termination.
18912 2016-05-02 Jan Hubicka <hubicka@ucw.cz>
18914 * cif-code.def (CIF_THUNK): Add.
18915 * ipa-inline-analsysis.c (evaluate_conditions_for_known_args): Revert
18918 2016-05-02 Jan Hubicka <hubicka@ucw.cz>
18920 * ipa-inline-analysis.c (reset_inline_summary): Clear fp_expressions
18921 (dump_inline_summary): Dump it.
18922 (fp_expression_p): New predicate.
18923 (estimate_function_body_sizes): Use it.
18924 (inline_merge_summary): Merge fp_expressions.
18925 (inline_read_section): Read fp_expressions.
18926 (inline_write_summary): Write fp_expressions.
18927 * ipa-inline.c (can_inline_edge_p): Permit inlining across fp math
18928 codegen boundary if either caller or callee is !fp_expressions.
18929 * ipa-inline.h (inline_summary): Add fp_expressions.
18930 * ipa-inline-transform.c (inline_call): When inlining !fp_expressions
18931 to fp_expressions be sure the fp generation flags are updated.
18933 2016-05-02 Jakub Jelinek <jakub@redhat.com>
18935 PR rtl-optimization/70467
18936 * cse.c (cse_insn): Handle no-op MEM moves after folding.
18938 PR rtl-optimization/70467
18939 * ipa-pure-const.c (check_call): Handle internal calls even in
18940 ipa mode like in local mode.
18942 2016-05-02 Bernd Edlinger <bernd.edlinger@hotmail.de>
18944 * doc/install.texi: Document supported in-tree gmp/mpfr/mpc versions.
18946 2016-05-02 Marc Glisse <marc.glisse@inria.fr>
18948 * match.pd (X u< X, X u> X): New transformations.
18950 2016-05-02 Marc Glisse <marc.glisse@inria.fr>
18952 * flag-types.h (enum warn_strict_overflow_code): Move ...
18953 * coretypes.h: ... here.
18954 * fold-const.h (fold_overflow_warning): Declare.
18955 * fold-const.c (fold_overflow_warning): Make non-static.
18956 (fold_comparison): Move the transformation of X +- C1 CMP C2
18957 into X CMP C2 -+ C1 ...
18958 * match.pd: ... here.
18959 * gimple-fold.c (fold_stmt_1): Protect with
18960 fold_defer_overflow_warnings.
18962 2016-05-02 Nathan Sidwell <nathan@codesourcery.com>
18964 * omp-low.c (struct oacc_loop): Add 'inner' field.
18965 (new_oacc_loop_raw): Initialize it to zero.
18966 (oacc_loop_fixed_partitions): Initialize it.
18967 (oacc_loop_auto_partitions): Partition outermost loop to outermost
18968 available partitioning.
18970 2016-05-02 Claudiu Zissulescu <claziss@synopsys.com>
18972 * config/arc/arc.md (mulsidi3): Change operand 0 predicate to
18974 (umulsidi3): Likewise.
18975 (indirect_jump): Fix jump instruction assembly patterns.
18977 2016-05-02 Thomas Schwinge <thomas@codesourcery.com>
18980 * config/nvptx/nvptx.c (nvptx_libcall_value): Handle NULL cfun.
18981 (nvptx_function_value): Assert non-NULL cfun.
18983 2016-05-02 Eric Botcazou <ebotcazou@adacore.com>
18985 PR rtl-optimization/70886
18986 * sched-deps.c (estimate_dep_weak): Canonicalize cselib values.
18988 * cselib.h (rtx_equal_for_cselib_1): Declare.
18989 (rtx_equal_for_cselib_p: New inline function.
18990 * cselib.c (rtx_equal_for_cselib_p): Delete.
18991 (rtx_equal_for_cselib_1): Make public.
18993 2016-05-02 Uros Bizjak <ubizjak@gmail.com>
18995 * config/i386/predicates.md (nonimm_ssenomem_operand): New predicate.
18996 (register_mixssei387nonimm_operand): Remove predicate.
18997 * config/i386/i386.md (*fop_<mode>_comm): Merge from
18998 *fop_<mode>_comm_mixed and *fop_<mode>_comm_i387. Disable unsupported
18999 alternatives using "enabled" attribute. Also check X87_ENABLE_ARITH
19000 for TARGET_MIX_SSE_I387 alternatives.
19001 (*fop_<mode>_1): Merge from *fop_<mode>_1_mixed and *fop_<mode>_1_i387.
19002 Disable unsupported alternatives using "enabled" attribute. Use
19003 nonimm_ssenomem_operand as operand 1 predicate. Also check
19004 X87_ENABLE_ARITH for TARGET_MIX_SSE_I387 alternatives.
19006 2016-05-02 Richard Sandiford <richard.sandiford@arm.com>
19008 * tree.c (cst_and_fits_in_hwi): Simplify.
19010 2016-05-02 Richard Sandiford <richard.sandiford@arm.com>
19012 * tree.h (wi::to_wide): New function.
19013 * expr.c (expand_expr_real_1): Use wi::to_wide.
19014 * fold-const.c (int_const_binop_1): Likewise.
19015 (extract_muldiv_1): Likewise.
19017 2016-05-02 Richard Sandiford <richard.sandiford@arm.com>
19019 * wide-int.h: Update offset_int and widest_int documentation.
19020 (WI_SIGNED_SHIFT_RESULT): New macro.
19021 (wi::binary_shift): Define signed_shift_result_type for
19022 shifts on offset_int- and widest_int-like types.
19023 (generic_wide_int): Support <<= and >>= if << and >> are supported.
19024 * tree.h (int_bit_position): Use shift operators instead of wi::
19026 * alias.c (adjust_offset_for_component_ref): Likewise.
19027 * expr.c (get_inner_reference): Likewise.
19028 * fold-const.c (fold_comparison): Likewise.
19029 * gimple-fold.c (fold_nonarray_ctor_reference): Likewise.
19030 * gimple-ssa-strength-reduction.c (restructure_reference): Likewise.
19031 * tree-dfa.c (get_ref_base_and_extent): Likewise.
19032 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Likewise.
19033 (stmt_kills_ref_p): Likewise.
19034 * tree-ssa-ccp.c (bit_value_binop_1): Likewise.
19035 * tree-ssa-math-opts.c (find_bswap_or_nop_load): Likewise.
19036 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
19037 (ao_ref_init_from_vn_reference): Likewise.
19039 2016-05-02 Richard Sandiford <richard.sandiford@arm.com>
19041 * wide-int.h: Update offset_int and widest_int documentation.
19042 (WI_SIGNED_BINARY_PREDICATE_RESULT): New macro.
19043 (wi::binary_traits): Allow ordered comparisons between offset_int and
19044 offset_int, between widest_int and widest_int, and between either
19045 of these types and basic C types.
19046 (operator <, <=, >, >=): Define for the same combinations.
19047 * tree.h (tree_int_cst_lt): Use comparison operators instead
19048 of wi:: comparisons.
19049 (tree_int_cst_le): Likewise.
19050 * gimple-fold.c (fold_array_ctor_reference): Likewise.
19051 (fold_nonarray_ctor_reference): Likewise.
19052 * gimple-ssa-strength-reduction.c (record_increment): Likewise.
19053 * tree-affine.c (aff_comb_cannot_overlap_p): Likewise.
19054 * tree-parloops.c (try_transform_to_exit_first_loop_alt): Likewise.
19055 * tree-sra.c (completely_scalarize): Likewise.
19056 * tree-ssa-alias.c (stmt_kills_ref_p): Likewise.
19057 * tree-ssa-reassoc.c (extract_bit_test_mask): Likewise.
19058 * tree-vrp.c (extract_range_from_binary_expr_1): Likewise.
19059 (check_for_binary_op_overflow): Likewise.
19060 (search_for_addr_array): Likewise.
19061 * ubsan.c (ubsan_expand_objsize_ifn): Likewise.
19063 2016-05-02 Claudiu Zissulescu <claziss@synopsys.com>
19065 * config/arc/arc.c (arc_preferred_simd_mode): Remove enum keyword.
19066 (arc_save_restore): Likewise.
19067 (arc_dwarf_register_span): Likewise.
19068 (arc_output_pic_addr_const): Initialize suffix variable.
19070 2016-05-02 Martin Liska <mliska@suse.cz>
19072 * symbol-summary.h (function_summary::function_summary):
19073 Remove checking assert for all cgraph nodes.
19074 (function_summary::get): Check summary_uid.
19075 (symtab_insertion): Check summary_uid.
19077 2016-05-02 Claudiu Zissulescu <claziss@synopsys.com>
19079 * config/arc/arc-protos.h (compact_memory_operand_p): Declare.
19080 * config/arc/arc.c (arc_output_commutative_cond_exec): Consider
19081 bmaskn instruction.
19082 (arc_dwarf_register_span): Remove enum keyword.
19083 (compact_memory_operand_p): New function.
19084 * config/arc/arc.h (reg_class): Add code density register classes.
19085 (REG_CLASS_NAMES): Likewise.
19086 (REG_CLASS_CONTENTS): Likewise.
19087 * config/arc/arc.md (*movqi_insn): Add code density instructions.
19088 (*movhi_insn, *movsi_insn, *movsf_insn): Likewise.
19089 (*extendhisi2_i, andsi3_i, cmpsi_cc_insn_mixed): Likewise.
19090 (*cmpsi_cc_c_insn, *movsi_ne): Likewise.
19091 * config/arc/constraints.md (C2p, Uts, Cm1, Cm3, Ucd): New
19093 (h, Rcd, Rsd, Rzd): New register constraints.
19094 (T): Use compact_memory_operand_p function.
19095 * config/arc/predicates.md (compact_load_memory_operand): Remove.
19097 2016-05-02 Oleg Endo <olegendo@gcc.gnu.org>
19099 * config/sh/sh.md (*negnegt, *movtt): Remove.
19101 2016-05-02 Marek Polacek <polacek@redhat.com>
19102 Tom de Vries <tom@codesourcery.com>
19104 PR tree-optimization/70700
19105 * tree-ssa-structalias.c (dump_pred_graph): Fix getting varinfo for ids
19106 bigger than FIRST_REF_NODE.
19108 2016-05-02 Oleg Endo <olegendo@gcc.gnu.org>
19111 * config/sh/sh.c (sh_option_override): Remove TARGET_CBRANCHDI4,
19113 (prepare_cbranch_operands): Don't use scratch register. Assume that
19114 function is used when pseudos can be created.
19115 (expand_cbranchdi4): Likewise. Remove unused TARGET_CMPEQDI_T paths.
19116 * config/sh/sh.md (cbranchsi4): Allow only when pseudos can be created.
19117 (cbranchdi4, cbranchdi4_i): Simplify to single cbranchdi4
19118 define_expand. Allow it only when pseudos can be created.
19119 * config/sh/sh.opt (mcbranchdi, mcmpeqdi): Delete.
19121 2016-05-01 Uros Bizjak <ubizjak@gmail.com>
19123 * config/i386/constraints.md (BC): Only allow -1 operands.
19124 * config/i386/sse.md (mov<mode>_internal): Add (v,C) alternative.
19125 Add "enabled" attribute. Update XI mode attribute calculation.
19126 * config/i386/i386.md (*movxi_internal_avx512f): Add (v,C) alternative.
19127 (*movoi_internal_avx): Update XI mode attribute calculation.
19128 (*movti_internal): Ditto.
19130 2016-05-01 Oleg Endo <olegendo@gcc.gnu.org>
19132 * config/sh/sh.md (push, pop, ic_invalidate_line, cstoresi4, cstoredi4,
19133 cstoresf4, cstoredf4, fix_truncsfsi2): Remove constraints.
19135 2016-05-01 Eric Botcazou <ebotcazou@adacore.com>
19137 * config/rs6000/rs6000.c (altivec_expand_lv_builtin): Do not use switch
19138 statement on instruction code. Remove trailing spaces.
19139 (altivec_expand_stv_builtin): Likewise.
19141 2016-05-01 Oleg Endo <olegendo@gcc.gnu.org>
19143 * config/sh/sh.h (TARGET_SH4): Remove and use default implementation.
19144 (TARGET_FPU_DOUBLE): Simplify.
19145 (BASE_ARG_REG, DOUBLE_TYPE_SIZE, OPTIMIZE_MODE_SWITCHING): Replace
19146 'TARGET_SH4 || TARGET_SH2A_DOUBLE' conditions with 'TARGET_FPU_DOUBLE'.
19147 * config/sh/sh.c: Replace 'TARGET_SH4 || TARGET_SH2A_DOUBLE' conditions
19148 with 'TARGET_FPU_DOUBLE'.
19149 * config/sh/sh.md: Likewise.
19151 2016-05-01 Yoshinori Sato <ysato@users.sourceforge.jp>
19153 * config/sh/linux.h (SH_DIV_STRATEGY_DEFAULT,
19154 SH_DIV_STR_FOR_SIZE): Remove.
19155 * config/sh/netbsd-elf.h (SH_DIV_STRATEGY_DEFAULT,
19156 SH_DIV_STR_FOR_SIZE): Remove.
19158 2016-05-01 Oleg Endo <olegendo@gcc.gnu.org>
19160 * config/sh/predicates.md (any_register_operand, zero_extend_operand,
19161 logical_reg_operand): Delete.
19162 (arith_operand, arith_reg_dest, arith_or_int_operand, cmpsi_operand,
19163 arith_reg_or_0_operand, arith_reg_or_0_or_1_operand, logical_operand,
19164 logical_and_operand, movsrc_no_disp_mem_operand): Rewrite using
19165 match_operand and match_test.
19166 (sh_const_vec, sh_1el_vec): Remove redundant checks. Declare local
19167 variables on their first use. Return bool values.
19168 * config/sh/sh.h (LOAD_EXTEND_OP): Update comment.
19169 * config/sh/sh.md (andsi3, iorsi3): Use arith_reg_dest for result and
19170 arith_reg_operand for input operand. Remove empty constraints.
19172 (*xorsi3_compact): Rename to xorsi3.
19173 (zero_extend<mode>si2): Use arith_reg_operand for input operand.
19174 (*zero_extend<mode>si2_disp_mem): Update comment.
19177 2016-04-30 Oleg Endo <olegendo@gcc.gnu.org>
19179 * config/sh/t-sh: Remove SH5 support.
19180 * config.gcc: Likewise.
19181 * configure: Likewise.
19183 2016-04-30 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
19185 * config/darwin.h (LINK_COMMAND_SPEC_A): Handle -fcilkplus.
19187 2016-04-30 Oleg Endo <olegendo@gcc.gnu.org>
19189 * config/sh/sh.c (register_sh_passes, sh_option_override,
19190 sh_print_operand, prepare_move_operands,
19191 sh_can_follow_jump): Remove TARGET_SH1 checks.
19192 * config/sh/sh.h (TARGET_VARARGS_PRETEND_ARGS, VALID_REGISTER_P,
19193 PROMOTE_MODE): Likewise.
19194 * config/sh/sh.md (adddi3, addsi3, subdi3, subsi3, andsi3,
19197 2016-04-30 Alan Modra <amodra@gmail.com>
19199 * config/rs6000/rs6000.c (rs6000_savres_strategy): Force inline
19200 restoring when fixed_reg_p, but allow out-of-line or stmw save.
19201 Check for user regs later to avoid unnecessary looping over regs.
19202 Merge user reg check with non-saved reg check. Don't force
19203 inline VR restore when static chain used.
19204 (rs6000_frame_related): Omit eh_frame info for user regs when
19206 (fixed_regs_p): Delete.
19208 2016-04-30 Alan Modra <amodra@gmail.com>
19210 * config/rs6000/rs6000.c (SAVRES_MULTIPLE): Replace with..
19211 (SAVE_STRATEGY, REST_STRATEGY): ..this. Renumber and sort enum.
19214 2016-04-30 Alan Modra <amodra@gmail.com>
19217 * config/rs6000/rs6000.c (fixed_reg_p): New function.
19218 (fixed_regs_p): Rename from global_regs_p. Call fixed_reg_p.
19221 2016-04-30 Alan Modra <amodra@gmail.com>
19223 * config/rs6000/rs6000.c (rs6000_conditional_register_usage):
19224 Remove redundant PIC_OFFSET_TABLE_REGNUM test. Replace with
19225 flag_pic test for Darwin.
19227 2016-04-30 Alan Modra <amodra@gmail.com>
19229 * regs.h (struct reg_info_t): Delete freq_calls_crossed and
19230 throw_calls_crossed.
19231 (REG_FREQ_CALLS_CROSSED): Delete.
19232 (REG_N_THROWING_CALLS_CROSSED): Delete.
19233 * regstat.c (regstat_bb_compute_ri): Don't calculate
19234 REG_FREQ_CALLS_CROSSED and REG_N_THROWING_CALLS_CROSSED.
19235 (dump_reg_info): Don't print call cross frequency.
19236 * ira.c (combine_and_move_insns): Don't set REG_FREQ_CALLS_CROSSED
19237 and REG_N_THROWING_CALLS_CROSSED.
19239 2016-04-30 Alan Modra <amodra@gmail.com>
19241 * regs.h (struct reg_info_t): Delete live_length.
19242 (REG_LIVE_LENGTH): Delete macro.
19243 * regstat.c (regstat_bb_compute_ri): Delete artificial_uses,
19244 local_live, local_processed and local_live_last_luid params.
19245 Replace bb_index param with bb. Don't set REG_LIVE_LENGTH.
19247 (regstat_compute_ri): Adjust for above. Don't set
19249 (dump_reg_info): Don't print live length.
19250 * ira.c (update_equiv_regs): Replace test of REG_LIVE_LENGTH
19251 with test of setjmp_crosses. Don't set REG_LIVE_LENGTH.
19252 Localize loop_depth var.
19254 2016-04-30 Alan Modra <amodra@gmail.com>
19256 * ira.c (enum valid_equiv): New.
19257 (validate_equiv_mem): Return enum.
19258 (update_equiv_mem): Create replacement in more cases.
19259 (add_store_equivs): Update validate_equiv_mem call.
19261 2016-04-30 Alan Modra <amodra@gmail.com>
19263 * ira.c (combine_and_move_insns): Rather than scanning insns,
19264 use DF infrastucture to find use and def insns.
19266 2016-04-30 Alan Modra <amodra@gmail.com>
19268 ira.c (combine_and_move_insns): Move invariant conditions..
19269 (ira.c): ..to here. Call combine_and_move_insns before
19270 add_store_equivs. Call grow_reg_equivs later. Allocate
19271 req_equiv later using max_reg_num() rather than global max_regno.
19272 (contains_replace_regs): Delete.
19273 (add_store_equivs): Remove contains_replace_regs test.
19275 2016-04-30 Alan Modra <amodra@gmail.com>
19277 * ira.c (struct equiv_mem_data): New.
19278 (equiv_mem, equiv_mem_modified): Delete static vars.
19279 (validate_equiv_mem_from_store): Use "data" param to communicate..
19280 (validate_equiv_mem): ..from here.
19282 2016-04-30 Alan Modra <amodra@gmail.com>
19284 * ira.c (add_store_equivs, combine_and_move_insns): New functions,
19286 (update_reg_equivs): ..here. Move allocation and freeing of
19287 reg_equiv, and calls to grow_reg_equivs, init_alias_analysis,
19288 end_alias_analysis to..
19291 2016-04-30 Alan Modra <amodra@gmail.com>
19293 * ira.c (pdx_subregs): Delete.
19294 (struct equivalence): Add pdx_subregs field.
19295 (set_paradoxical_subreg): Remove pdx_subregs param. Update
19296 pdx_subregs access.
19297 (update_equiv_regs): Don't create or free pdx_subregs. Update
19298 pdx_subregs access.
19300 2016-04-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
19302 * config/rs6000/altivec.h: Change definitions of vec_xl and
19304 * config/rs6000/rs6000-builtin.def (LD_ELEMREV_V2DF): New.
19305 (LD_ELEMREV_V2DI): New.
19306 (LD_ELEMREV_V4SF): New.
19307 (LD_ELEMREV_V4SI): New.
19308 (LD_ELEMREV_V8HI): New.
19309 (LD_ELEMREV_V16QI): New.
19310 (ST_ELEMREV_V2DF): New.
19311 (ST_ELEMREV_V2DI): New.
19312 (ST_ELEMREV_V4SF): New.
19313 (ST_ELEMREV_V4SI): New.
19314 (ST_ELEMREV_V8HI): New.
19315 (ST_ELEMREV_V16QI): New.
19318 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
19319 descriptions for VSX_BUILTIN_VEC_XL and VSX_BUILTIN_VEC_XST.
19320 * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Map from
19321 TARGET_P9_VECTOR to RS6000_BTM_P9_VECTOR.
19322 (altivec_expand_builtin): Add handling for
19323 VSX_BUILTIN_ST_ELEMREV_<MODE> and VSX_BUILTIN_LD_ELEMREV_<MODE>.
19324 (rs6000_invalid_builtin): Add error-checking for
19325 RS6000_BTM_P9_VECTOR.
19326 (altivec_init_builtins): Define builtins used to implement vec_xl
19328 (rs6000_builtin_mask_names): Define power9-vector.
19329 * config/rs6000/rs6000.h (MASK_P9_VECTOR): Define.
19330 (RS6000_BTM_P9_VECTOR): Define.
19331 (RS6000_BTM_COMMON): Include RS6000_BTM_P9_VECTOR.
19332 * config/rs6000/vsx.md (vsx_ld_elemrev_v2di): New define_insn.
19333 (vsx_ld_elemrev_v2df): Likewise.
19334 (vsx_ld_elemrev_v4sf): Likewise.
19335 (vsx_ld_elemrev_v4si): Likewise.
19336 (vsx_ld_elemrev_v8hi): Likewise.
19337 (vsx_ld_elemrev_v16qi): Likewise.
19338 (vsx_st_elemrev_v2df): Likewise.
19339 (vsx_st_elemrev_v2di): Likewise.
19340 (vsx_st_elemrev_v4sf): Likewise.
19341 (vsx_st_elemrev_v4si): Likewise.
19342 (vsx_st_elemrev_v8hi): Likewise.
19343 (vsx_st_elemrev_v16qi): Likewise.
19344 * doc/extend.texi: Add prototypes for vec_xl and vec_xst. Correct
19347 2016-04-29 Patrick Palka <ppalka@gcc.gnu.org>
19349 * tree-ssa-threadedge.c (simplify_control_stmt_condition): Split
19351 (simplify_control_stmt_condition_1): ... here. Recurse into
19352 BIT_AND_EXPRs and BIT_IOR_EXPRs.
19354 2016-04-29 David Edelsohn <dje.gcc@gmail.com>
19357 * config/rs6000/rs6000.md (EXTQI): Don't allow extension to HImode.
19358 (zero_extendqi<mode>2_dot): Revert earlier conversion from
19359 define_insn_and_split to define_insn.
19360 (zero_extendqi<mode>2_dot2): Same.
19361 (extendqi<mode>2_dot): Same.
19362 (extendqi<mode>2_dot2): Same.
19364 2016-04-29 Uros Bizjak <ubizjak@gmail.com>
19366 * config/i386/i386.md (unspec): Add UNSPEC_PROBE_STACK.
19367 (probe_stack): New expander.
19368 (probe_stack_<mode>): New insn pattern.
19370 2016-04-29 Uros Bizjak <ubizjak@gmail.com>
19372 * config/i386/i386.md
19373 (operations with memory inputs setting flags peephole2):
19374 Remove uneeded REG_P checks. Cleanup pattern generation.
19376 2016-04-29 Ilya Enkovich <ilya.enkovich@intel.com>
19378 * tree-vect-loop.c (vect_transform_loop): Fix
19379 nb_iterations_upper_bound computation for vectorized loop.
19381 2016-04-29 Marek Polacek <polacek@redhat.com>
19382 Jakub Jelinek <jakub@redhat.com>
19385 * fold-const.c (tree_single_nonzero_warnv_p): For TARGET_EXPR, use
19386 TARGET_EXPR_SLOT as a base.
19388 2016-04-29 Andrew Burgess <andrew.burgess@embecosm.com>
19390 * config/arc/arc.md (*loadqi_update): Replace use of 'rI' constraint
19391 with 'rCm2' constraints to limit possible immediate size.
19392 (*load_zeroextendqisi_update): Likewise.
19393 (*load_signextendqisi_update): Likewise.
19394 (*loadhi_update): Likewise.
19395 (*load_zeroextendhisi_update): Likewise.
19396 (*load_signextendhisi_update): Likewise.
19397 (*loadsi_update): Likewise.
19398 (*loadsf_update): Likewise.
19400 2016-04-29 Uros Bizjak <ubizjak@gmail.com>
19402 * config/i386/predicates.md (constm1_operand): Fix comparison.
19404 2016-04-29 Claudiu Zissulescu <claziss@synopsys.com>
19406 * testsuite/gcc.target/arc/ieee_eq.c: New test.
19408 2016-04-29 Oleg Endo <olegendo@gcc.gnu.org>
19410 * common/config/sh/sh-common.c (sh_option_optimization_table): Remove
19411 remaining SH5 related settings.
19412 * config/sh/sh-protos.h (shmedia_cleanup_truncate,
19413 shmedia_prepare_call_address): Delete.
19414 * config/sh/sh.c (sh_print_operand, output_stack_adjust,
19415 DWARF_CIE_DATA_ALIGNMENT, LOCAL_ALIGNMENT): Update comments.
19416 * config/sh/sh.h (SUBTARGET_ASM_RELAX_SPEC,
19417 UNSUPPORTED_SH2A): Remove m5 checks.
19418 (sh_divide_strategy_e): Remove SH5 division strategies.
19419 (TARGET_PTRMEMFUNC_VBIT_LOCATION): Remove and use default.
19420 * config/sh/sh.md (divsf3): Reinstate define_expand pattern.
19422 2016-04-29 Dominik Vogt <vogt@linux.vnet.ibm.com>
19424 * config/s390/s390.c (s390_rtx_costs): Update documentation.
19426 2016-04-29 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
19428 * config/s390/2964.md ("z13_unit_fxu", "z13_0"): Remove lder.
19429 * config/s390/s390.md ("movsi_larl", "*movsi_esa", "mov<mode>"):
19430 Change lder to ldr.
19431 * config/s390/vector.md ("mov<mode>"): Likewise.
19433 2016-04-29 Ulrich Weigand <uweigand@de.ibm.com>
19435 * config/s390/constraints.md ("U", "W"): Invoke
19436 s390_mem_constraint with "ZR" and "ZT".
19437 * config/s390/s390.c (s390_check_qrst_address): Reject invalid
19438 addresses when using LRA. Accept also short displacements for S
19439 and T constraints. Do not check for long displacement target for
19440 S and T constraints.
19441 (s390_mem_constraint): Remove handling of U and W constraints.
19442 * config/s390/s390.md (various patterns): Remove the short
19443 displacement constraints (Q and R) if a long displacement
19444 constraint is present. Add longdisp as required CPU capability.
19445 * config/s390/vector.md: Likewise.
19446 * config/s390/vx-builtins.md: Likewise.
19448 2016-04-29 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
19451 * reload1.c (reload): Call finish_spills before
19452 restarting reload loop. Skip select_reload_regs
19453 if update_eliminables_and_spill returns true.
19455 2016-04-29 Claudiu Zissulescu <claziss@synopsys.com>
19457 * config/arc/arc.h (UNSIGNED_INT12, UNSIGNED_INT16): Define.
19458 * config/arc/arc.md (umulhisi3): Use arc_short_operand predicate.
19459 (umulhisi3_imm): Update predicates and constraint letters.
19460 (umulhisi3_reg): Declare instruction as commutative.
19461 * config/arc/constraints.md (J12, J16): New constraints.
19462 * config/arc/predicates.md (short_unsigned_const_operand): New
19464 (arc_short_operand): Likewise.
19465 * testsuite/gcc.target/arc/umulsihi3_z.c: New file.
19467 2016-04-29 Richard Biener <rguenther@suse.de>
19469 PR tree-optimization/13962
19470 PR tree-optimization/65686
19471 * tree-ssa-alias.h (ptrs_compare_unequal): Declare.
19472 * tree-ssa-alias.c (ptrs_compare_unequal): New function
19473 using PTA to compare pointers.
19474 * match.pd: Add pattern for pointer equality compare simplification
19475 using ptrs_compare_unequal.
19477 2016-04-29 Richard Biener <rguenther@suse.de>
19479 * stor-layout.c (layout_type): Do not build a pointer-to-element
19482 2016-04-29 Uros Bizjak <ubizjak@gmail.com>
19484 * config/i386/i386.md (Load+RegOp to Mov+MemOp peephole2):
19485 Use SWI mode iterator. Use general_reg_operand predicate.
19486 (Load+RegOp to Mov+MemOp peephole2 with vector regs): Split
19487 peephole to MMX and SSE part. Use mmx_reg_operand and sse_reg_operand
19490 2016-04-29 Jakub Jelinek <jakub@redhat.com>
19492 PR middle-end/70843
19493 * fold-const.c (operand_equal_p): Don't verify hash value equality
19495 * tree.c (inchash::add_expr): Handle STATEMENT_LIST. Ignore BLOCK
19498 2016-04-28 Jakub Jelinek <jakub@redhat.com>
19501 * config/i386/i386.c (bdesc_special_args): Add | OPTION_MASK_ISA_64BIT
19502 to __builtin_ia32_lwpval64 and __builtin_ia32_lwpins64.
19503 (bdesc_args): Add | OPTION_MASK_ISA_64BIT to __builtin_ia32_bextr_u64,
19504 __builtin_ia32_bextri_u64, __builtin_ia32_bzhi_di,
19505 __builtin_ia32_pdep_di and __builtin_ia32_pext_di.
19507 2016-04-28 Segher Boessenkool <segher@kernel.crashing.org>
19509 * config/rs6000/rs6000.c (compute_save_world_info): Rename info_ptr
19510 to info. Don't initialize separate fields to 0. Clean up
19513 2016-04-28 Uros Bizjak <ubizjak@gmail.com>
19515 * config/i386/i386.md (peephole2s for operations with memory inputs):
19516 Use SWI mode iterator.
19517 (peephole2s for operations with memory outputs): Ditto.
19518 Do not check for stack checking probe.
19520 (probe_stack): Remove expander.
19522 2016-04-28 Joern Rennecke <joern.rennecke@embecosm.com>
19523 Andrew Burgess <andrew.burgess@embecosm.com>
19525 * config/arc/arc.c (arc_print_operand): Print integer 'H' / 'L'
19526 operands as 32-bits.
19528 2016-04-28 Jason Merrill <jason@redhat.com>
19530 * gdbinit.in: Skip line-map.h.
19532 2016-04-28 Joern Rennecke <joern.rennecke@embecosm.com>
19533 Andrew Burgess <andrew.burgess@embecosm.com>
19535 * config/arc/arc.c (arc_conditional_register_usage): Take
19536 TARGET_RRQ_CLASS into account.
19537 (arc_print_operand): Support printing 'p' and 's' operands.
19538 * config/arc/arc.h (TARGET_NPS_BITOPS_DEFAULT): Provide default
19540 (TARGET_RRQ_CLASS): Define.
19541 (IS_POWEROF2_OR_0_P): Define.
19542 * config/arc/arc.md (*movsi_insn): Add w/Clo, w/Chi, and w/Cbi
19544 (*tst_movb): New define_insn.
19545 (*tst): Avoid recognition if it could prevent '*tst_movb'
19546 combination; replace c/CnL with c/Chs alternative.
19547 (*tst_bitfield_tst): New define_insn.
19548 (*tst_bitfield_asr): New define_insn.
19549 (*tst_bitfield): New define_insn.
19550 (andsi3_i): Add Rrq variant.
19551 (extzv): New define_expand.
19552 (insv): New define_expand.
19553 (*insv_i): New define_insn.
19554 (*movb): New define_insn.
19555 (*movb_signed): New define_insn.
19556 (*movb_high): New define_insn.
19557 (*movb_high_signed): New define_insn.
19558 (*movb_high_signed + 1): New define_split pattern.
19559 (*mrgb): New define_insn.
19560 (*mrgb + 1): New define_peephole2 pattern.
19561 (*mrgb + 2): New define_peephole2 pattern.
19562 * config/arc/arc.opt (mbitops): New option for nps400, uses
19563 TARGET_NPS_BITOPS_DEFAULT.
19564 * config/arc/constraints.md (q): Make register class conditional.
19565 (Rrq): New register constraint.
19566 (Chs): New constraint.
19567 (Clo): New constraint.
19568 (Chi): New constraint.
19569 (Cbf): New constraint.
19570 (Cbn): New constraint.
19571 (C18): New constraint.
19572 (Cbi): New constraint.
19574 2016-04-28 Segher Boessenkool <segher@kernel.crashing.org>
19576 * cfganal.c (bitmap_intersection_of_succs): Delete assert checking
19578 (bitmap_intersection_of_preds): Ditto.
19579 (bitmap_union_of_succs): Ditto.
19580 (bitmap_union_of_preds): Ditto.
19581 * sbitmap.c (do_popcount): Delete.
19582 (BITMAP_DEBUGGING): Delete.
19583 (sbitmap_verify_popcount): Delete.
19584 (sbitmap_alloc): Don't initialize the popcount field.
19585 (sbitmap_alloc_with_popcount): Delete.
19586 (sbitmap_resize): Don't resize the popcount array.
19587 (sbitmap_vector_alloc): Don't initialize the popcount field.
19588 (bitmap_copy): Don't copy the popcount array.
19589 (bitmap_clear): Don't clear the popcount array.
19590 (bitmap_clear): Delete the popcount array handling.
19591 (bitmap_ior_and_compl): Delete the popcount assert.
19592 (bitmap_not): Ditto.
19593 (bitmap_and_compl): Ditto.
19594 (bitmap_and): Delete the popcount array handling.
19595 (bitmap_xor): Ditto.
19596 (bitmap_ior): Ditto.
19597 (bitmap_or_and): Delete the popcount assert.
19598 (bitmap_and_or): Ditto.
19599 (popcount_table): Delete.
19600 (sbitmap_elt_popcount): Delete.
19601 * sbitmap.h (simple_bitmap_def): Delete the popcount field.
19602 (bitmap_set_bit): Delete the popcount assert.
19603 (bitmap_clear_bit): Ditto.
19604 (sbitmap_free): Don't free the popcount array.
19605 (sbitmap_alloc_with_popcount): Delete declaration.
19606 (sbitmap_popcount): Ditto.
19608 2016-04-28 Joern Rennecke <joern.rennecke@embecosm.com>
19609 Andrew Burgess <andrew.burgess@embecosm.com>
19611 * config/arc/arc.h (SYMBOL_FLAG_CMEM): Define.
19612 (TARGET_NPS_CMEM_DEFAULT): Provide default definition.
19613 * config/arc/arc.c (arc_address_cost): Return 0 for cmem_address.
19614 (arc_encode_section_info): Set SYMBOL_FLAG_CMEM where indicated.
19615 * config/arc/arc.opt (mcmem): New option.
19616 * config/arc/arc.md (*extendqihi2_i): Add r/Uex alternative,
19617 supply length for r/m alternative.
19618 (*extendqisi2_ac): Likewise.
19619 (*extendhisi2_i): Add r/Uex alternative, supply length for r/m and
19621 (movqi_insn): Add r/Ucm and Ucm/?Rac alternatives.
19622 (movhi_insn): Likewise.
19623 (movsi_insn): Add r/Ucm,Ucm/w alternatives.
19624 (*zero_extendqihi2_i): Add r/Ucm alternative.
19625 (*zero_extendqisi2_ac): Likewise.
19626 (*zero_extendhisi2_i): Likewise.
19627 * config/arc/constraints.md (Uex): New memory constraint.
19628 (Ucm): New define_constraint.
19629 * config/arc/predicates.md (long_immediate_loadstore_operand):
19630 Return 0 for MEM with cmem_address address.
19631 (cmem_address_0): New predicates.
19632 (cmem_address_1): Likewise.
19633 (cmem_address_2): Likewise.
19634 (cmem_address): Likewise.
19636 2016-04-28 Segher Boessenkool <segher@kernel.crashing.org>
19638 * config/rs6000/rs6000.c (machine_function): Rename
19639 insn_chain_scanned_p to spe_insn_chain_scanned_p.
19640 (rs6000_stack_info): Adjust.
19642 2016-04-28 Joern Rennecke <joern.rennecke@embecosm.com>
19643 Andrew Burgess <andrew.burgess@embecosm.com>
19645 * config/arc/constraints.md (Usd): Convert to define_constraint.
19649 2016-04-28 Jakub Jelinek <jakub@redhat.com>
19652 * config/i386/sync.md (define_peephole2 *atomic_fetch_add_cmp<mode>):
19653 Add new peephole2 where the first insn is *mov<mode>_or instead of
19654 *mov<mode>_internal.
19656 2016-04-28 Segher Boesssenkool <segher@kernel.crashing.org>
19658 * tracer.c (bb_seen): Make static.
19660 2016-04-28 Andrew Burgess <andrew.burgess@embecosm.com>
19662 * common/config/arc/arc-common.c (arc_handle_option): Add NPS400
19663 support, setup defaults.
19664 * config/arc/arc-opts.h (enum processor_type): Add NPS400.
19665 * config/arc/arc.c (arc_init): Add NPS400 support.
19666 * config/arc/arc.h (CPP_SPEC): Add NPS400 defines.
19667 (TARGET_ARC700): NPS400 is also an ARC700.
19668 * config/arc/arc.opt: Add NPS400 options to -mcpu=.
19670 2016-04-28 Segher Boessenkool <segher@kernel.crashing.org>
19673 * config/nds32/nds32.md (casesi): Don't access the operands array
19676 2016-04-28 Uros Bizjak <ubizjak@gmail.com>
19678 * config/i386/i386.md (zeroing peephole2): Use general_reg_operand.
19679 (or $-1,reg peephole2): Ditto.
19680 (strict_low_part zeroing peephole2): Use SWI12 mode iterator.
19682 2016-04-28 Markus Trippelsdorf <markus@trippelsdorf.de>
19684 * doc/extend.texi (Common Function Attributes) [optimize]:
19685 Discourage use of the optimize attribute.
19687 2016-04-28 Bill Seurer <seurer@linux.vnet.ibm.com>
19689 * config/rs6000/rs6000-builtin.def (vec_adde): Change vec_adde to a
19690 special case builtin.
19691 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove
19692 ALTIVEC_BUILTIN_VEC_ADDE.
19693 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
19694 support for ALTIVEC_BUILTIN_VEC_ADDE.
19695 * config/rs6000/rs6000.c (altivec_init_builtins): Add definition
19696 for __builtin_vec_adde.
19698 2016-04-28 Jakub Jelinek <jakub@redhat.com>
19700 * config/i386/i386.md (sse4_1_round<mode>2): Add avx512f alternative.
19701 * config/i386/sse.md (sse4_1_round<ssescalarmodesuffix>): Likewise.
19703 2016-04-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
19706 * doc/sourcebuild.texi (Effective-Target Keywords, Other
19707 attributes): Document cilkplus_runtime.
19709 2016-04-28 Martin Jambor <mjambor@suse.cz>
19711 * tree-cfg.c (verify_expr): Verify that local declarations belong to
19712 this function. Call verify_expr on MEM_REFs and bases of other
19713 handled_components.
19715 2016-04-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
19717 * internal-fn.c (expand_arith_overflow): Convert preprocessor check
19718 for WORD_REGISTER_OPERATIONS to runtime check.
19720 2016-04-28 Claudiu Zissulescu <claziss@synopsys.com>
19722 * config/arc/arc.h (ASM_SPEC): Pass mfpuda to assembler.
19724 2016-04-28 Claudiu Zissulescu <claziss@synopsys.com>
19726 * config/arc/arc.c (arc_process_double_reg_moves): Fix for
19727 big-endian compilation.
19728 * config/arc/arc.md (addf3): Likewise.
19729 (subdf3): Likewise.
19730 (muldf3): Likewise.
19732 2016-04-28 Richard Biener <rguenther@suse.de>
19734 PR tree-optimization/70840
19735 * match.pd: powi(-x, y) and powi(|x|,y) -> powi(x,y) if y is even;
19736 Fix pow(copysign(x, y), z) -> pow(x, z) and add powi variant;
19737 Mark x * pow(x,c) -> pow(x,c+1) commutative.
19738 Add powi(x,y) * powi(z,y) -> powi(x*z,y).
19740 2015-04-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
19742 * config/aarch64/aarch64.h (WORD_REGISTER_OPERATIONS): Define to 0
19743 and explain why in a comment.
19745 2016-04-28 Claudiu Zissulescu <claziss@synopsys.com>
19747 * config/arc/arc.md (cpu_facility): Add fpx variant.
19748 (subdf3): Prohibit use reverse sub when assist operations option
19750 * config/arc/fpx.md (subdf3_insn, *dsubh_peep2_insn): Allow drsub
19751 instructions only when FPX is enabled.
19752 * testsuite/gcc.target/arc/trsub.c: New test.
19754 2016-04-28 Uros Bizjak <ubizjak@gmail.com>
19756 * config/i386/i386.md (*fop_<mode>_1_mixed): Do not check for
19757 mult_operator when calculating "type" attribute.
19758 (*fop_<mode>_1_i387): Ditto.
19759 (*fop_xf_1_i387): Ditto.
19760 (x87 stack loads peephole2): Add "reg = op (mem, reg)" peephole2.
19761 Use std::swap to swap operands. Use RTL expressions to generate
19764 2016-04-28 Claudiu Zissulescu <claziss@synopsys.com>
19765 Joern Rennecke <joern.rennecke@embecosm.com>
19767 * config/arc/arc-protos.h (arc_legitimize_pic_address): Remove
19769 (emit_pic_move): Remove.
19770 (arc_eh_uses, insn_is_tls_gd_dispatch): Declare.
19771 * config/arc/arc.c (emit_pic_move): Removed.
19772 (TARGET_HAVE_TLS): Define.
19773 (arc_conditional_register_usage): Test for arc_tp_regno.
19774 (arc_print_operand, arc_print_operand_address): Handle TLS
19776 (arc_needs_pcl_p): New function.
19777 (arc_legitimate_pc_offset_p): Use arc_needs_pcl_p.
19778 (arc_legitimate_pic_addr_p): Handle TLS unspecs.
19779 (arc_raw_symbolic_reference_mentioned_p): Likewise.
19780 (arc_get_tp, arc_emit_call_tls_get_addr): New function.
19781 (arc_legitimize_tls_address): Likewise.
19782 (DTPOFF_ZERO_SYM): Define.
19783 (arc_legitimize_pic_address): Make it static, handle TLS cases.
19784 (arc_output_pic_addr_const): Print TLS unspecs.
19785 (prepare_pic_move): New function, replaces emit_pic_move.
19786 (arc_legitimate_constant_p): Handle TLS unspecs.
19787 (arc_legitimate_address_p): Likewise.
19788 (arc_rewrite_small_data_p): Use assert for TLS constants.
19789 (prepare_move_operands): Use prepare_pic_move.
19790 (arc_legitimize_address): Legitimize tls addresses.
19791 (arc_epilogue_uses): Check for arc_tp_regno.
19792 (arc_eh_uses, insn_is_tls_gd_dispatch): New function.
19793 * config/arc/arc.h [DEFAULT_LIBC != LIBC_UCLIBC] (EXTRA_SPECS):
19795 [DEFAULT_LIBC != LIBC_UCLIBC] (ARC_TLS_EXTRA_START_SPEC):
19797 [DEFAULT_LIBC != LIBC_UCLIBC] (STARTFILE_SPEC): Add
19798 %(arc_tls_extra_start_spec).
19799 (TARGET_CPU_CPP_BUILTINS): Define __ARC_TLS_REGNO__.
19800 (REGNO_OK_FOR_BASE_P): Check for arc_tp_regno.
19802 (INSN_REFERENCES_ARE_DELAYED): Use insn_is_tls_gd_dispatch.
19803 * config/arc/arc.md (UNSPEC_TLS_GD, UNSPEC_TLS_LD, UNSPEC_TLS_IE)
19804 (UNSPEC_TLS_OFF): Add.
19806 (tls_load_tp_soft, tls_gd_load, tls_gd_get_addr, tls_gd_dispatch)
19807 (get_thread_pointersi): New patterns.
19808 * config/arc/arc.opt (mtp-regno): New option.
19809 * config/arc/predicates.md (move_src_operand): Handle TLS symbols.
19810 (move_dest_operand): Likewise.
19811 * configure: Regenerate.
19812 * configure.ac: Add arc*-*-* case to test for tls.
19813 * doc/invoke.texi (ARC options): Document mtp-regno.
19815 2016-04-28 Claudiu Zissulescu <claziss@synopsys.com>
19817 * config/arc/arc.c (arc_vector_mode_supported_p): Add support for
19818 the new ARC HS SIMD instructions.
19819 (arc_preferred_simd_mode): New function.
19820 (arc_autovectorize_vector_sizes): Likewise.
19821 (TARGET_VECTORIZE_PREFERRED_SIMD_MODE)
19822 (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
19823 (arc_init_reg_tables): Accept new ARC HS SIMD modes.
19824 (arc_init_builtins): Add new SIMD builtin types.
19825 (arc_split_move): Handle 64 bit vector moves.
19826 * config/arc/arc.h (TARGET_PLUS_DMPY, TARGET_PLUS_MACD)
19827 (TARGET_PLUS_QMACW): Define.
19828 * config/arc/builtins.def (QMACH, QMACHU, QMPYH, QMPYHU, DMACH)
19829 (DMACHU, DMPYH, DMPYHU, DMACWH, DMACWHU, VMAC2H, VMAC2HU, VMPY2H)
19830 (VMPY2HU, VADDSUB2H, VSUBADD2H, VADDSUB, VSUBADD, VADDSUB4H)
19831 (VSUBADD4H): New builtins.
19832 * config/arc/simdext.md: Add new ARC HS SIMD instructions.
19833 * testsuite/gcc.target/arc/builtin_simdarc.c: New file.
19835 2016-04-28 Eduard Sanou <dhole@openmailbox.org>
19836 Matthias Klose <doko@debian.org>
19838 * doc/cppenv.texi: Document SOURCE_DATE_EPOCH environment variable.
19840 2016-04-28 Richard Biener <rguenther@suse.de>
19842 PR middle-end/70777
19843 * fold-const.c (fold_binary_loc): Remove x*x to pow(x,2.0)
19846 2016-04-28 Oleg Endo <olegendo@gcc.gnu.org>
19848 * common/config/sh/sh-common.c: Remove SH5 support.
19849 * config/sh/constraints.md: Likewise.
19850 * config/sh/config/sh/elf.h: Likewise.
19851 * config/sh/linux.h: Likewise.
19852 * config/sh/netbsd-elf.h: Likewise.
19853 * config/sh/predicates.md: Likewise.
19854 * config/sh/sh-c.c: Likewise.
19855 * config/sh/sh-protos.h: Likewise.
19856 * config/sh/sh.c: Likewise.
19857 * config/sh/sh.h: Likewise.
19858 * config/sh/sh.md: Likewise.
19859 * config/sh/sh.opt: Likewise.
19860 * config/sh/sync.md: Likewise.
19861 * config/sh/sh64.h: Delete.
19862 * config/sh/shmedia.h: Likewise.
19863 * config/sh/shmedia.md: Likewise.
19864 * config/sh/sshmedia.h: Likewise.
19865 * config/sh/t-netbsd-sh5-64: Likewise.
19866 * config/sh/t-sh64: Likewise.
19867 * config/sh/ushmedia.h: Likewise.
19869 2016-04-28 Uros Bizjak <ubizjak@gmail.com>
19871 * config/i386/i386.md (sign_extend to memory peephole2s): Use
19872 general_reg_operand instead of register_operand predicate.
19874 2016-04-27 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
19876 * params.def (MIN_PARTITION_SIZE): Set default value to 10000.
19878 2016-04-27 Marc Glisse <marc.glisse@inria.fr>
19880 * match.pd (A - B > A, A + B < A): New transformations.
19882 2016-04-27 Patrick Palka <ppalka@gcc.gnu.org>
19884 * genattrtab.c (write_test_expr): New parameter EMIT_PARENS
19885 which defaults to true. Emit an outer pair of parentheses only if
19886 EMIT_PARENS. When continuing a chain of && or || (or & or |),
19887 don't emit parentheses for the right-hand operand.
19889 2016-04-27 Jeff Law <law@redhat.com>
19891 * tree-ssa-dom.c (record_temporary_equivalences): Fix typo in comment.
19893 2016-04-27 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
19895 * config/rs6000/altivec.md (altivec_lvx_<mode>): Remove.
19896 (altivec_lvx_<mode>_internal): Document.
19897 (altivec_lvx_<mode>_2op): New define_insn.
19898 (altivec_lvx_<mode>_1op): Likewise.
19899 (altivec_lvx_<mode>_2op_si): Likewise.
19900 (altivec_lvx_<mode>_1op_si): Likewise.
19901 (altivec_stvx_<mode>): Remove.
19902 (altivec_stvx_<mode>_internal): Document.
19903 (altivec_stvx_<mode>_2op): New define_insn.
19904 (altivec_stvx_<mode>_1op): Likewise.
19905 (altivec_stvx_<mode>_2op_si): Likewise.
19906 (altivec_stvx_<mode>_1op_si): Likewise.
19907 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
19908 Expand vec_ld and vec_st during parsing.
19909 * config/rs6000/rs6000.c (altivec_expand_lvx_be): Commentary
19911 (altivec_expand_stvx_be): Likewise.
19912 (altivec_expand_lv_builtin): Expand lvx built-ins to expose the
19913 address-masking behavior in RTL.
19914 (altivec_expand_stv_builtin): Expand stvx built-ins to expose the
19915 address-masking behavior in RTL.
19916 (altivec_expand_builtin): Change builtin code arguments for calls
19917 to altivec_expand_stv_builtin and altivec_expand_lv_builtin.
19918 (insn_is_swappable_p): Avoid incorrect swap optimization in the
19919 presence of lvx/stvx patterns.
19920 (alignment_with_canonical_addr): New function.
19921 (alignment_mask): Likewise.
19922 (find_alignment_op): Likewise.
19923 (recombine_lvx_pattern): Likewise.
19924 (recombine_stvx_pattern): Likewise.
19925 (recombine_lvx_stvx_patterns): Likewise.
19926 (rs6000_analyze_swaps): Perform a pre-pass to recognize lvx and
19927 stvx patterns from expand.
19928 * config/rs6000/vector.md (vector_altivec_load_<mode>): Use new
19930 (vector_altivec_store_<mode>): Likewise.
19932 2016-04-26 Evandro Menezes <e.menezes@samsung.com>
19934 * config/aarch64/aarch64.md
19935 (*movhf_aarch64): Add "movi %0, #0" to zero up register and
19936 remove the "fp" attributes.
19937 (*movsf_aarch64): Add "movi %0, #0" to zero up register and
19938 add the "simd" attributes.
19939 (*movdf_aarch64): Likewise.
19940 (*movtf_aarch64): Remove the "fp" attributes.
19941 * testsuite/gcc.target/aarch64/fmovf-zero-reg.c: Update accordingly.
19942 * testsuite/gcc.target/aarch64/fmovd-zero-reg.c: Likewise.
19944 2016-04-27 David Malcolm <dmalcolm@redhat.com>
19946 * emit-rtl.c (maybe_set_first_label_num): Strengthen param from
19947 rtx to rtx_code_label *.
19948 * rtl.h (maybe_set_first_label_num): Likewise.
19950 2016-04-27 David Malcolm <dmalcolm@redhat.com>
19952 * df-core.c (df_add_problem): Make the problem param be const.
19953 (df_remove_problem): Make local "problem" be const.
19954 * df-problems.c (problem_RD): Make const.
19955 (problem_LR): Likewise.
19956 (problem_LIVE): Likewise.
19957 (problem_MIR): Likewise.
19958 (problem_CHAIN): Likewise.
19959 (problem_WORD_LR): Likewise.
19960 (problem_NOTE): Likewise.
19961 (problem_MD): Likewise.
19962 * df-scan.c (problem_SCAN): Likewise.
19963 * df.h (struct df_problem): Make field "dependent_problem" be
19965 (struct dataflow): Likewise for field "problem".
19966 (df_add_problem): Make param const.
19968 2016-04-27 Uros Bizjak <ubizjak@gmail.com>
19970 * config/i386/i386.c (ix86_spill_class): Enable for TARGET_SSE2 when
19971 inter-unit moves to/from vector registers are enabled. Do not disable
19974 2016-04-27 David Malcolm <dmalcolm@redhat.com>
19976 * df.h (DF_SCAN, DF_LR, DF_LIVE, DF_RD, DF_CHAIN, DF_WORD_LR,
19977 DF_NOTE, DF_MD, DF_MIR, DF_LAST_PROBLEM_PLUS1): Convert from
19979 (enum df_problem_id): ...this new enum.
19980 (struct df_problem): Convert field "id" from "int" to
19981 enum df_problem_id.
19983 2016-04-27 David Malcolm <dmalcolm@redhat.com>
19985 * rtl.def: Update comment for "things in the instruction chain" to
19986 reflect the removal of the leading "i" field for INSN_UID in
19987 r210360. Fix bogus apostrophe.
19989 2016-04-27 Uros Bizjak <ubizjak@gmail.com>
19991 * config/i386/i386.md
19992 (lea arith with mem operand + setcc peephole2): Set operator mode.
19994 2016-04-27 H.J. Lu <hongjiu.lu@intel.com>
19997 * config/i386/i386.c (scalar_to_vector_candidate_p): Renamed to ...
19998 (dimode_scalar_to_vector_candidate_p): This.
19999 (timode_scalar_to_vector_candidate_p): New function.
20000 (scalar_to_vector_candidate_p): Likewise.
20001 (timode_check_non_convertible_regs): Likewise.
20002 (timode_remove_non_convertible_regs): Likewise.
20003 (remove_non_convertible_regs): Likewise.
20004 (remove_non_convertible_regs): Renamed to ...
20005 (dimode_remove_non_convertible_regs): This.
20006 (scalar_chain::~scalar_chain): Make it virtual.
20007 (scalar_chain::compute_convert_gain): Make it pure virtual.
20008 (scalar_chain::mark_dual_mode_def): Likewise.
20009 (scalar_chain::convert_insn): Likewise.
20010 (scalar_chain::convert_registers): Likewise.
20011 (scalar_chain::add_to_queue): Make it protected.
20012 (scalar_chain::emit_conversion_insns): Likewise.
20013 (scalar_chain::replace_with_subreg): Likewise.
20014 (scalar_chain::replace_with_subreg_in_insn): Likewise.
20015 (scalar_chain::convert_op): Likewise.
20016 (scalar_chain::convert_reg): Likewise.
20017 (scalar_chain::make_vector_copies): Likewise.
20018 (scalar_chain::convert_registers): New pure virtual function.
20019 (class dimode_scalar_chain): New class.
20020 (class timode_scalar_chain): Likewise.
20021 (scalar_chain::mark_dual_mode_def): Renamed to ...
20022 (dimode_scalar_chain::mark_dual_mode_def): This.
20023 (timode_scalar_chain::mark_dual_mode_def): New function.
20024 (timode_scalar_chain::convert_insn): Likewise.
20025 (dimode_scalar_chain::convert_registers): Likewise.
20026 (scalar_chain::compute_convert_gain): Renamed to ...
20027 (dimode_scalar_chain::compute_convert_gain): This.
20028 (scalar_chain::replace_with_subreg): Renamed to ...
20029 (dimode_scalar_chain::replace_with_subreg): This.
20030 (scalar_chain::replace_with_subreg_in_insn): Renamed to ...
20031 (dimode_scalar_chain::replace_with_subreg_in_insn): This.
20032 (scalar_chain::make_vector_copies): Renamed to ...
20033 (dimode_scalar_chain::make_vector_copies): This.
20034 (scalar_chain::convert_reg): Renamed to ...
20035 (dimode_scalar_chain::convert_reg ): This.
20036 (scalar_chain::convert_op): Renamed to ...
20037 (dimode_scalar_chain::convert_op): This.
20038 (scalar_chain::convert_insn): Renamed to ...
20039 (dimode_scalar_chain::convert_insn): This.
20040 (scalar_chain::convert): Call convert_registers.
20041 (convert_scalars_to_vector): Change to scalar_chain pointer to
20042 use timode_scalar_chain in 64-bit mode and dimode_scalar_chain
20043 in 32-bit mode. Delete scalar_chain pointer. Call
20044 free_dominance_info in 64-bit mode.
20045 (pass_stv::gate): Remove TARGET_64BIT check.
20046 (ix86_option_override): Put the 64-bit STV pass before the CSE
20049 2016-04-27 Pierre-Marie de Rodat <derodat@adacore.com>
20051 * dwarf2out.h (struct dw_loc_descr_node): Remove the
20052 dw_loc_frame_offset field.
20053 * dwarf2out.c (new_loc_descr): Likewise.
20054 (resolve_args_picking_1): Turn the VISITED hash set into a
20055 FRAME_OFFSET hash map. Use it to associate a frame offset to
20056 visited nodes. Remove uses of the CHECKING_P macro.
20057 (resolve_args_picking): Update call to resolve_args_picking_1.
20059 2016-04-27 Martin Liska <mliska@suse.cz>
20061 * tree-ssa-loop-ivopts.c (iv_ca_dump): Fix level of indentation.
20062 (free_loop_data): Release vuses of groups.
20064 2016-04-27 Bin Cheng <bin.cheng@arm.com>
20066 * tree-ssa-loop-ivopts.c (struct iv): Use pointer to struct iv_use
20067 instead of redundant use_id and boolean have_use_for.
20068 (struct iv_use): Change sub_id into group_id. Remove field next.
20069 Move fields: related_cands, n_map_members, cost_map and selected
20071 (struct iv_group): ... here. New structure.
20072 (struct iv_common_cand): Use structure declaration directly.
20073 (struct ivopts_data, iv_ca, iv_ca_delta): Rename fields.
20074 (MAX_CONSIDERED_USES): Rename macro to ...
20075 (MAX_CONSIDERED_GROUPS): ... here.
20076 (n_iv_uses, iv_use, n_iv_cands, iv_cand): Delete.
20077 (dump_iv, dump_use, dump_cand): Refactor format of dump information.
20078 (dump_uses): Rename to ...
20079 (dump_groups): ... here. Update all uses.
20080 (tree_ssa_iv_optimize_init, alloc_iv): Update all uses.
20081 (find_induction_variables): Refactor format of dump information.
20082 (record_sub_use): Delete.
20083 (record_use): Update all uses.
20084 (record_group): New function.
20085 (record_group_use, find_interesting_uses_op): Call above functions.
20087 (find_interesting_uses_cond): Ditto.
20088 (group_compare_offset): New function.
20089 (split_all_small_groups): Rename to ...
20090 (split_small_address_groups_p): ... here. Update all uses.
20091 (split_address_groups): Update all uses.
20092 (find_interesting_uses): Refactor format of dump information.
20093 (add_candidate_1): Update all uses. Remove redundant check on iv,
20095 (add_candidate, record_common_cand): Remove redundant assert.
20096 (add_iv_candidate_for_biv): Update use.
20097 (add_iv_candidate_derived_from_uses): Update all uses.
20098 (add_iv_candidate_for_groups, record_important_candidates): Ditto.
20099 (alloc_use_cost_map): Ditto.
20100 (set_use_iv_cost, get_use_iv_cost): Rename to ...
20101 (set_group_iv_cost, get_group_iv_cost): ... here. Update all uses.
20102 (determine_use_iv_cost_generic): Ditto.
20103 (determine_group_iv_cost_generic): Ditto.
20104 (determine_use_iv_cost_address): Ditto.
20105 (determine_group_iv_cost_address): Ditto.
20106 (determine_use_iv_cost_condition): Ditto.
20107 (determine_group_iv_cost_cond): Ditto.
20108 (determine_use_iv_cost): Ditto.
20109 (determine_group_iv_cost): Ditto.
20110 (set_autoinc_for_original_candidates): Update all uses.
20111 (find_iv_candidates): Update all uses. Refactor dump information.
20112 (determine_use_iv_costs): Ditto.
20113 (determine_iv_costs): Ditto.
20114 (iv_ca_cand_for_use): Rename to ...
20115 (iv_ca_cand_for_group): ... here. Update all uses.
20116 (iv_ca_add_use, iv_ca_add_group): Ditto.
20117 (iv_ca_set_cp, iv_ca_cost, iv_ca_delta_add): Update all uses.
20118 (iv_ca_delta_join, iv_ca_delta_reverse, iv_ca_delta_free): Ditto.
20119 (iv_ca_new, iv_ca_dump, iv_ca_extend, iv_ca_narrow): Ditto.
20120 (iv_ca_prune, cheaper_cost_with_cand, iv_ca_replace): Ditto.
20121 (try_add_cand_for, try_improve_iv_set, find_optimal_iv_set): Ditto.
20122 (create_new_iv, adjust_iv_update_pos): Ditto.
20123 (rewrite_use_address): Delete.
20124 (rewrite_use_address_1): Rename to ...
20125 (rewrite_use_address): ... here.
20126 (rewrite_use_compare): Update all uses.
20127 (rewrite_use): Delete.
20128 (rewrite_uses): Rename to ...
20129 (rewrite_groups): ... here. Update all uses.
20130 (remove_unused_ivs, free_loop_data): Update all uses.
20131 (tree_ssa_iv_optimize_finalize, tree_ssa_iv_optimize_loop): Ditto.
20133 2016-04-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20135 * rtlanal.c (nonzero_bits1): Convert preprocessor check
20136 for WORD_REGISTER_OPERATIONS to runtime check.
20138 2016-04-27 Richard Biener <rguenther@suse.de>
20141 * tree-ssa-structalias.c (find_func_aliases_for_call): Use
20142 aggregate_value_p to determine if a function result is
20143 returned by reference.
20144 (ipa_pta_execute): Functions having their address taken are
20145 not automatically nonlocal.
20147 2016-04-27 Jakub Jelinek <jakub@redhat.com>
20150 * tree-core.h (enum operand_equal_flag): Add OEP_NO_HASH_CHECK.
20151 * fold-const.c (operand_equal_p): If flag_checking and
20152 OEP_NO_HASH_CHECK is not set in flag, recurse with OEP_NO_HASH_CHECK
20153 and if it returns non-zero, assert iterative_hash_expr on both
20156 2016-04-27 Bernd Schmidt <bschmidt@redhat.com>
20158 * doc/invoke.texi (-frename-registers): Also enabled at -Os.
20160 2016-04-27 Nick Clifton <nickc@redhat.com>
20162 PR middle-end/49889
20163 * varasm.c (merge_weak): Generate an error if an attempt is made
20164 to convert a non-weak static function into a weak, public function.
20166 2016-04-27 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
20168 * params.def (MAX_PARTITION_SIZE): New param.
20169 * doc/invoke.texi: Document lto-max-partition.
20171 2016-04-27 Richard Biener <rguenther@suse.de>
20174 * tree-ssa-structalias.c (refered_from_nonlocal_fn): New
20175 function cummulating used_from_other_partition, externally_visible
20176 and force_output from aliases.
20177 (refered_from_nonlocal_var): Likewise.
20178 (ipa_pta_execute): Use call_for_symbol_and_aliases to cummulate
20179 node flags properly.
20181 2016-04-27 Bernd Schmidt <bschmidt@redhat.com>
20183 * doc/invoke.texi (Warning Options): Add -Wmemset-elt-size.
20184 (-Wmemset-elt-size): New item.
20186 2016-04-27 Eric Botcazou <ebotcazou@adacore.com>
20189 * stor-layout.h (internal_reference_types): Delete.
20190 * stor-layout.c (reference_types_internal): Likewise.
20191 (internal_reference_types): Likewise.
20192 (layout_type) <REFERENCE_TYPE>: Adjust.
20194 2016-04-27 Jakub Jelinek <jakub@redhat.com>
20197 * tree.h (inchash::add_expr): Add FLAGS argument.
20198 * tree.c (inchash::add_expr): Likewise. If not OEP_ADDRESS_OF,
20199 use STRIP_NOPS first. For INTEGER_CST assert not OEP_ADDRESS_OF.
20200 For REAL_CST and !HONOR_SIGNED_ZEROS (t) hash +/- 0 the same.
20201 Formatting fix. Adjust recursive calls. For tcc_comparison,
20202 if swap_tree_comparison (code) is smaller than code, hash that
20203 and arguments in the other order. Hash CONVERT_EXPR the same
20204 as NOP_EXPR. For OEP_ADDRESS_OF hash MEM_REF with 0 offset
20205 of ADDR_EXPR of decl as the decl itself. Add or remove
20206 OEP_ADDRESS_OF from recursive flags as needed. For
20207 FMA_EXPR, WIDEN_MULT_{PLUS,MINUS}_EXPR hash the first two
20208 operands commutatively and only the third one normally.
20209 For internal CALL_EXPR hash in CALL_EXPR_IFN.
20211 2016-04-27 Sebastian Huber <sebastian.huber@embedded-brains.de>
20213 * config/rtems.h (LIB_SPEC): Add -latomic.
20215 2016-04-27 Joel Sherrill <joel@rtems.org>
20217 * config/microblaze/rtems.h: Redefine LINK_SPEC to avoid
20218 xilink.ld and flags not relevant to RTEMS.
20220 2016-04-26 Zhouyi Zhou <yizhouzhou@ict.ac.cn>
20222 * toplev.c (backend_init_target): Avoid calling init_reload when using
20225 2016-04-26 Jakub Jelinek <jakub@redhat.com>
20227 * reorg.c (try_merge_delay_insns): Declare i and j inside the
20228 for loops rather than one for the whole function.
20230 2016-04-26 Marc Glisse <marc.glisse@inria.fr>
20232 * match.pd (X + CST CMP X): New transformation.
20234 2016-04-26 Marc Glisse <marc.glisse@inria.fr>
20236 * genmatch.c (write_predicate): Add ATTRIBUTE_UNUSED.
20237 * fold-const.c (fold_binary_loc): Remove 2 transformations
20238 superseded by match.pd.
20239 * match.pd (x+x -> x*2): Generalize to integers.
20241 2016-04-26 Bernd Schmidt <bschmidt@redhat.com>
20243 * config/i386/i386.md (operation on memory peephole): Duplicate an
20244 existing peephole and adapt it to match lea rather than an operation
20247 PR rtl-optimization/57193
20248 * opts.c (default_options_table): Add OPT_frename_registers at -O2
20250 * doc/invoke.texi (-frename-registers, -O2): Update documentation.
20252 2016-04-26 Bin Cheng <bin.cheng@arm.com>
20254 * tree-if-conv.c (any_pred_load_store): New static variable.
20255 (if_convertible_gimple_assign_stmt_p): Remove parameter. Use
20256 any_pred_load_store instead of and_mask_load_store.
20257 (if_convertible_stmt_p, if_convertible_loop_p_1): Ditto.
20258 (if_convertible_loop_p, insert_gimplified_predicates): Ditto.
20259 (combine_blocks, tree_if_conversion): Ditto.
20261 2016-04-26 Bin Cheng <bin.cheng@arm.com>
20263 PR tree-optimization/70771
20264 PR tree-optimization/70775
20265 * tree-if-conv.c (if_convertible_phi_p): Remove check on special
20266 virtual PHI nodes. Delete parameter.
20267 (if_convertible_loop_p_1): Delete argument to above function.
20268 (predicate_all_scalar_phis): Delete code handling single-argument
20270 (tree_if_conversion): Mark and update virtual SSA.
20272 2016-04-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
20275 * config/i386/i386.c (LARGECOMM_SECTION_ASM_OP): Define default.
20276 (x86_elf_aligned_common): Rename to ...
20277 (x86_elf_aligned_decl_common): ... this.
20278 Add decl arg. Switch to .lbss for largecomm object. Use
20279 LARGECOMM_SECTION_ASM_OP.
20280 * config/i386/i386-protos.h (x86_elf_aligned_common): Reflect
20282 * config/i386/x86-64.h (ASM_OUTPUT_ALIGNED_COMMON): Rename to ...
20283 (ASM_OUTPUT_ALIGNED_DECL_COMMON): ... this.
20285 * config/i386/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
20286 [!USE_GAS] (LARGECOMM_SECTION_ASM_OP): Define.
20288 2016-04-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
20291 * config/i386/i386.c (SECTION_LARGE): Define.
20292 (x86_64_elf_select_section): Set it for large data/bss sections.
20293 Only clear SECTION_WRITE for .lrodata.
20294 (x86_64_elf_section_type_flags): Set SECTION_LARGE for large
20296 * config/i386/sol2.h (MACH_DEP_SECTION_ASM_FLAG): Define.
20297 * varasm.c (default_elf_asm_named_section): Grow flagchars.
20298 [MACH_DEP_SECTION_ASM_FLAG] Emit MACH_DEP_SECTION_ASM_FLAG for
20300 * doc/tm.texi.in (Sections, MACH_DEP_SECTION_ASM_FLAG): Describe.
20301 * doc/tm.texi: Regenerate.
20303 2016-04-26 Jakub Jelinek <jakub@redhat.com>
20306 * configure.ac (--enable-checking): Document extra flag, for
20307 non-release builds default to --enable-checking=yes,extra.
20308 If misc checking and extra checking, define CHECKING_P to 2 instead
20310 * common.opt (fchecking=): Add.
20311 * doc/invoke.texi (-fchecking=): Document.
20312 * doc/install.texi: Document --enable-checking changes.
20313 * configure: Regenerated.
20314 * config.in: Regenerated.
20316 2016-04-25 Uros Bizjak <ubizjak@gmail.com>
20318 * config/i386/i386.md (*movxi_internal_avx512f): Use insn type
20319 attribute instead of which_alternative.
20320 * config/i386/sse.md (*mov<mode>_internal): Ditto.
20321 Use EXT_REX_SSE_REG_P where appropriate.
20323 2016-04-25 Uros Bizjak <ubizjak@gmail.com>
20325 * config/i386/predicates.md (const0_operand): Do not match
20326 const_wide_int code.
20327 (const1_operand): Ditto.
20329 2016-04-25 Uros Bizjak <ubizjak@gmail.com>
20331 * config/i386/i386.md (*movoi_internal_avx): Set mode attribute to XI
20332 for SSE constm1 operands and TARGET_AVX512VL.
20333 (*movti_internal): Ditto.
20334 (*mov<mode>_or): Use constm1_operand predicate.
20335 * config/i386/sse.md (*mov<mode>_internal): Set mode attribute to XI
20336 for SSE vector_all_ones operands and TARGET_AVX512VL.
20337 * config/i386/predicates.md (constm1_operand): New predicate.
20338 * config/i386/i386.c (standard_sse_constant_opcode): Simplify
20339 emission of constant -1 load.
20341 2016-04-25 Jason Merrill <jason@redhat.com>
20343 * gdbinit.in: Skip is-a.h.
20345 * attribs.c (register_scoped_attributes): Fix logic.
20346 * attribs.h: Declare register_scoped_attributes.
20348 2016-04-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
20350 * config/rs6000/rs6000-builtin.def: Correct pasto error for
20351 stxvd2x and stxvw4x built-in functions.
20353 2016-04-25 DJ Delorie <dj@redhat.com>
20355 * config/msp430/msp430.md (ashlhi3): Optimize one bit shifts.
20356 (ashrhi3): Likewise.
20357 (lshrhi3): Likewise.
20359 2016-04-25 Richard Biener <rguenther@suse.de>
20361 PR tree-optimization/70780
20362 * tree-ssa-pre.c (compute_antic_aux): Also return true if the block
20363 wasn't visited yet.
20364 (compute_antic): Mark blocks with abnormal preds as visited as
20365 they have a final empty antic-in solution already.
20367 2016-04-25 Michael Collison <michael.collison@linaro.org>
20369 * ChangeLog(2016-04-25): Fix ChangeLog formatting.
20371 2016-04-25 Michael Collison <michael.collison@linaro.org>
20373 * config/arm/neon.md (widen_<us>sum<mode>): New patterns where
20374 mode is VQI to improve mixed mode vectorization.
20375 * config/arm/neon.md (vec_sel_widen_ssum_lo<VQI:mode><VW:mode>3): New
20376 define_insn to match low half of signed vaddw.
20377 * config/arm/neon.md (vec_sel_widen_ssum_hi<VQI:mode><VW:mode>3): New
20378 define_insn to match high half of signed vaddw.
20379 * config/arm/neon.md (vec_sel_widen_usum_lo<VQI:mode><VW:mode>3): New
20380 define_insn to match low half of unsigned vaddw.
20381 * config/arm/neon.md (vec_sel_widen_usum_hi<VQI:mode><VW:mode>3): New
20382 define_insn to match high half of unsigned vaddw.
20383 * config/arm/arm.c (arm_simd_vect_par_cnst_half): New function.
20384 (arm_simd_check_vect_par_cnst_half_p): Likewise.
20385 * config/arm/arm-protos.h (arm_simd_vect_par_cnst_half): Prototype
20387 (arm_simd_check_vect_par_cnst_half_p): Likewise.
20388 * config/arm/predicates.md (vect_par_constant_high): Support
20389 big endian and simplify by calling
20390 arm_simd_check_vect_par_cnst_half
20391 (vect_par_constant_low): Likewise.
20393 2016-04-25 Uros Bizjak <ubizjak@gmail.com>
20395 * config/i386/i386.md (*lea<mode>_general_4): Use const_0_to_3_operand
20396 predicate for operand 2.
20398 2016-04-24 Uros Bizjak <ubizjak@gmail.com>
20399 H.J. Lu <hongjiu.lu@intel.com>
20401 * config/i386/i386-protos.h (standard_sse_constant_p): Add
20402 machine_mode argument.
20403 * config/i386/i386.c (standard_sse_constant_p): Return 2 for
20404 constm1_rtx operands. For VOIDmode constants, get mode from
20405 pred_mode. Check mode size if the mode is supported by ABI.
20406 (standard_sse_constant_opcode): Do not use standard_constant_p.
20407 Strictly check ABI support for all-ones operands.
20408 (ix86_legitimate_constant_p): Handle TImode, OImode and XImode
20409 immediates. Update calls to standard_sse_constant_p.
20410 (ix86_expand_vector_move): Update calls to standard_sse_constant_p.
20411 (ix86_rtx_costs): Ditto.
20412 * config/i386/i386.md (*movxi_internal_avx512f): Use
20413 nonimmediate_or_sse_const_operand instead of vector_move_operand.
20414 Use (v,BC) alternative instead of (v,C). Use register_operand
20415 checks instead of MEM_P.
20416 (*movoi_internal_avx): Use nonimmediate_or_sse_const_operand instead
20417 of vector_move_operand. Add (v,BC) alternative and corresponding avx2
20418 isa attribute. Use register_operand checks instead of MEM_P.
20419 (*movti_internal): Use nonimmediate_or_sse_const_operand for
20420 TARGET_SSE. Improve TARGET_SSE insn constraint. Add (v,BC)
20421 alternative and corresponding sse2 isa attribute.
20422 (*movtf_internal, *movdf_internal, *movsf_interal): Update calls
20423 to standard_sse_constant_p.
20424 (FP constant splitters): Ditto.
20425 * config/i386/constraints.md (BC): Do not use standard_sse_constant_p.
20427 * config/i386/predicates.md (constm1_operand): Remove.
20428 (nonimmediate_or_sse_const_operand): Rewrite using RTX.
20429 * config/i386/sse.md (*<avx512>_cvtmask2<ssemodesuffix><mode>): Use
20430 vector_all_ones_operand instead of constm1_operand.
20432 2016-04-24 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
20434 * print-rtl.c (print_rtx_insn_vec): New function.
20435 * print-rtl.h: New prototype.
20436 * store-motion.c (struct st_expr): Make avail_stores a vector.
20437 (st_expr_entry): Adjust.
20438 (free_st_expr_entry): Likewise.
20439 (print_store_motion_mems): Likewise.
20440 (find_moveable_store): Likewise.
20441 (compute_store_table): Likewise.
20442 (delete_store): Likewise.
20443 (build_store_vectors): Likewise.
20445 2016-04-24 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
20447 * reorg.c (try_merge_delay_insns): Make merged_insns a vector.
20449 2016-04-24 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
20451 * vec.h (vec_safe_contains): New function.
20452 (vec::contains): Likewise.
20453 (vec::begin): Likewise.
20454 (vec::end): Likewise.
20456 2016-04-23 Jakub Jelinek <jakub@redhat.com>
20459 * cfgexpand.c (expand_stack_vars): Fix typo.
20461 2016-04-22 Szabolcs Nagy <szabolcs.nagy@arm.com>
20463 * system.h (list, map, set, vector): Include conditionally.
20464 * auto-profile.c (INCLUDE_MAP, INCLUDE_SET): Define.
20465 * graphite-isl-ast-to-gimple.c (INCLUDE_MAP): Define.
20466 * ipa-icf.c (INCLUDE_LIST): Define.
20467 * config/aarch64/cortex-a57-fma-steering.c (INCLUDE_LIST): Define.
20468 * config/sh/sh.c (INCLUDE_VECTOR): Define.
20469 * config/sh/sh_treg_combine.cc (INCLUDE_ALGORITHM): Define.
20470 (INCLUDE_LIST, INCLUDE_VECTOR): Define.
20471 * cp/logic.cc (INCLUDE_LIST): Define.
20472 * fortran/trans-common.c (INCLUDE_MAP): Define.
20474 2016-04-22 Szabolcs Nagy <szabolcs.nagy@arm.com>
20476 * auto-profile.c: Remove <string.h> include.
20477 * ipa-icf-gimple.c: Remove <list> include.
20478 * diagnostic.c: Remove <new> include.
20479 * genmatch.c: Likewise.
20480 * pretty-print.c: Likewise.
20481 * toplev.c: Likewise
20482 * c/c-objc-common.c: Likewise.
20483 * cp/error.c: Likewise.
20484 * fortran/error.c: Likewise.
20486 2016-04-22 Richard Biener <rguenther@suse.de>
20488 * lto-streamer-in.c (input_ssa_names): Do not allocate
20489 GIMPLE_NOP for all SSA names.
20490 * lto-streamer-out.c (output_ssa_names): Do not output
20491 SSA names that should have been released.
20493 2016-04-22 Richard Biener <rguenther@suse.de>
20495 PR tree-optimization/70740
20496 * tree-ssa-phiprop.c (propagate_with_phi): Handle inserted
20499 2016-04-21 H.J. Lu <hongjiu.lu@intel.com>
20502 * config/i386/predicates.md (call_insn_operand): Replace
20503 sibcall_memory_operand with memory_operand.
20505 2016-04-21 Patrick Palka <ppalka@gcc.gnu.org>
20507 * tree-vrp.c (register_edge_assert_for_2): Remove redundant
20508 has_single_use() tests.
20509 (register_edge_assert_for_1): Likewise.
20510 (find_assert_locations_1): Check the liveness bitmap instead of
20511 checking has_single_use().
20513 2016-04-21 Kirill Yukhin <kirill.yukhin@intel.com>
20516 * config/i386/sse.md (define_insn "<shift_insn><mode>3<mask_name>"):
20517 Extract AVX-512BW constraint from AVX.
20519 2016-04-21 Richard Biener <rguenther@suse.de>
20521 PR tree-optimization/70725
20522 * tree-if-conv.c (if_convertible_phi_p): Adjust guard
20523 for phi_convertible_by_degenerating_args.
20524 (predicate_all_scalar_phis): Handle single-argument PHIs.
20526 2016-04-21 Richard Biener <rguenther@suse.de>
20528 PR middle-end/70747
20529 * fold-const.c (fold_comparison): Return properly typed
20532 2016-04-21 Bin Cheng <bin.cheng@arm.com>
20534 PR tree-optimization/70715
20535 * tree-ssa-loop-niter.c (loop_exits_before_overflow): Check equality
20536 after expanding BASE using expand_simple_operations.
20538 2016-04-21 Marc Glisse <marc.glisse@inria.fr>
20540 * match.pd (min(-x, -y), max(-x, -y), min(~x, ~y), max(~x, ~y)):
20541 New transformations.
20543 2016-04-21 Marc Glisse <marc.glisse@inria.fr>
20545 * match.pd (min(int_max, x), max(int_min, x)): New transformations.
20547 2016-04-20 Jan Hubicka <jh@suse.cz>
20549 * ipa-inline.c (can_inline_edge_p): Pass caller info to
20550 ultiimate_alias_target.
20551 (update_callee_keys): Likewise.
20552 (lookup_recursive_calls): Likewise.
20553 (speculation_useful_p): Likewise.
20555 2016-04-20 Jan Hubicka <jh@suse.cz>
20558 * cgraph.c (cgraph_set_nothrow_flag_1): Rename to ...
20559 (set_nothrow_flag_1): ... this; handle interposition correctly;
20560 recurse on aliases and thunks.
20561 (cgraph_node::set_nothrow_flag): New.
20562 * ipa-pure-const.c (ignore_edge_for_nothrow): Ignore calls to
20563 functions compiled with non-call exceptions that binds to current
20565 (propagate_nothrow): Be safe WRT interposition.
20566 * cgraph.h (set_nothrow_flag): Update prototype.
20568 2016-04-18 Jan Hubicka <jh@suse.cz>
20570 * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also
20571 max_loop_iterations_int.
20572 (tree_unswitch_outer_loop): Likewise.
20574 2016-04-20 Bin Cheng <bin.cheng@arm.com>
20576 PR tree-optimization/69489
20577 * tree-if-conv.c (phi_convertible_by_degenerating_args): New.
20578 (if_convertible_phi_p): Call phi_convertible_by_degenerating_args.
20579 Revise dump message.
20580 (if_convertible_bb_p): Remove check on edge count of basic block's
20583 2016-04-20 Bin Cheng <bin.cheng@arm.com>
20585 PR tree-optimization/56625
20586 PR tree-optimization/69489
20587 * tree-data-ref.h (DR_INNERMOST): New macro.
20588 * tree-if-conv.c (innermost_loop_behavior_hash): New class for
20589 hashing struct innermost_loop_behavior.
20590 (ref_DR_map): Remove.
20591 (innermost_DR_map): New map.
20592 (baseref_DR_map): Revise comment.
20593 (hash_memrefs_baserefs_and_store_DRs_read_written_info): Store DR
20594 to innermost_DR_map accroding to its innermost loop behavior.
20595 (ifcvt_memrefs_wont_trap): Get DR from innermost_DR_map according
20596 to its innermost loop behavior.
20597 (if_convertible_loop_p_1): Remove intialization for ref_DR_map.
20598 Add initialization for innermost_DR_map. Record memory reference
20599 in DR_BASE_ADDRESS if the reference is compound one or it doesn't
20600 have innermost loop behavior.
20601 (if_convertible_loop_p): Remove release for ref_DR_map. Release
20604 2016-04-20 Uros Bizjak <ubizjak@gmail.com>
20606 * config/i386/i386.md (*lea<mode>_general_1): Rename from
20607 *lea_general_1. Use explicit SWI12 mode interator.
20608 (*lea<mode>_general_2): Rename from *lea_general_2.
20609 Use explicit SWI12 mode interator.
20610 (*lea<mode>_general_3): Rename from *lea_general_3.
20611 Use explicit SWI12 mode interator.
20612 (*lea<SWI12:mode>_general_4): Split from *lea_general_4.
20613 Use explicit SWI12 mode interator.
20614 (*lea<SWI48:mode>_general_4): Split from *lea_general_4.
20615 Use explicit SWI48 mode interator.
20617 2016-04-20 H.J. Lu <hongjiu.lu@intel.com>
20619 * config/i386/i386.c (ix86_avx256_split_vector_move_misalign):
20620 Short-cut unaligned load and store cases. Handle all integer
20622 (ix86_expand_vector_move_misalign): Short-cut unaligned load
20623 and store cases. Call ix86_avx256_split_vector_move_misalign
20624 directly without checking mode class.
20626 2016-04-20 Andrew Pinski <apinski@cavium.com>
20627 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20630 * config/aarch64/aarch64.md (sibcall): Force call
20631 address to be DImode for ILP32.
20632 (sibcall_value): Likewise.
20634 2016-04-20 H.J. Lu <hongjiu.lu@intel.com>
20636 * doc/invoke.texi: Replace -skip-rax-setup with -mskip-rax-setup.
20638 2016-04-20 Richard Biener <rguenther@suse.de>
20640 * gimple-match.h (maybe_build_generic_op): Adjust prototype.
20641 * gimple-match-head.c (maybe_build_generic_op): Pass all ops
20642 by reference, clear op1 and op2 when GENERICizing BIT_FIELD_REF.
20643 (maybe_push_res_to_seq): Adjust.
20644 * gimple-fold.c (maybe_build_generic_op): Likewise.
20646 2016-04-20 Marek Polacek <polacek@redhat.com>
20648 * tree-if-conv.c (is_false_predicate): For NULL_TREE return false
20651 2016-04-20 Ilya Enkovich <ilya.enkovich@intel.com>
20653 * config/i386/sse.md (vec_unpacks_lo_hi): Always
20654 use kmovw to support AVX512F target.
20656 2016-04-20 Bin Cheng <bin.cheng@arm.com>
20658 * tree-scalar-evolution.c (interpret_rhs_expr): Handle BIT_AND_EXPR.
20660 2016-04-20 Marek Polacek <polacek@redhat.com>
20662 PR tree-optimization/70725
20663 * tree-if-conv.c (is_false_predicate): New function.
20664 (predicate_mem_writes): Use it.
20666 2016-04-20 Richard Biener <rguenther@suse.de>
20668 PR tree-optimization/70726
20669 * tree-vect-stmts.c (vectorizable_shift): Do not use scalar
20670 shift amounts from a pattern stmt operand.
20672 2016-04-20 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
20675 * config/s390/s390.c (s390_restore_gprs_from_fprs): Pick the new
20676 stack_restore_from_fpr pattern when restoring r15.
20677 (s390_optimize_prologue): Strip away the memory barrier in the
20678 parallel when trying to get rid of restore insns.
20679 * config/s390/s390.md ("stack_restore_from_fpr"): New insn
20680 definition for loading the stack pointer from an FPR. Compared to
20681 the normal move insn this pattern includes a full memory barrier.
20683 2016-04-19 Jakub Jelinek <jakub@redhat.com>
20685 PR middle-end/70680
20686 * gimplify.c (gimplify_omp_for): Call omp_notice_variable for
20687 implicitly linear or lastprivate iterator on the outer context.
20689 2016-04-19 H.J. Lu <hongjiu.lu@intel.com>
20691 * config/i386/i386.c (ix86_legitimate_combined_insn): Remove
20693 * config/i386/i386.md (ssememalign): Removed.
20694 * config/i386/sse.md: Remove ssememalign attribute from patterns.
20696 2016-04-19 H.J. Lu <hongjiu.lu@intel.com>
20699 * config/i386/avx512bwintrin.h (_mm512_mask_loadu_epi16): Pass
20700 const short * to __builtin_ia32_loaddquhi512_mask.
20701 (_mm512_maskz_loadu_epi16): Likewise.
20702 (_mm512_mask_storeu_epi16): Pass short * to
20703 __builtin_ia32_storedquhi512_mask.
20704 (_mm512_mask_loadu_epi8): Pass const char * to
20705 __builtin_ia32_loaddquqi512_mask.
20706 (_mm512_maskz_loadu_epi8): Likewise.
20707 (_mm512_mask_storeu_epi8): Pass char * to
20708 __builtin_ia32_storedquqi512_mask.
20709 * config/i386/avx512fintrin.h (_mm512_loadu_pd): Pass
20710 const double * to __builtin_ia32_loadupd512_mask.
20711 (_mm512_mask_loadu_pd): Likewise.
20712 (_mm512_maskz_loadu_pd): Likewise.
20713 (_mm512_storeu_pd): Pass double * to
20714 __builtin_ia32_storeupd512_mask.
20715 (_mm512_mask_storeu_pd): Likewise.
20716 (_mm512_loadu_ps): Pass const float * to
20717 __builtin_ia32_loadups512_mask.
20718 (_mm512_mask_loadu_ps): Likewise.
20719 (_mm512_maskz_loadu_ps): Likewise.
20720 (_mm512_storeu_ps): Pass float * to
20721 __builtin_ia32_storeups512_mask.
20722 (_mm512_mask_storeu_ps): Likewise.
20723 (_mm512_mask_loadu_epi64): Pass const long long * to
20724 __builtin_ia32_loaddqudi512_mask.
20725 (_mm512_maskz_loadu_epi64): Likewise.
20726 (_mm512_mask_storeu_epi64): Pass long long *
20727 to __builtin_ia32_storedqudi512_mask.
20728 (_mm512_loadu_si512): Pass const int * to
20729 __builtin_ia32_loaddqusi512_mask.
20730 (_mm512_mask_loadu_epi32): Likewise.
20731 (_mm512_maskz_loadu_epi32): Likewise.
20732 (_mm512_storeu_si512): Pass int * to
20733 __builtin_ia32_storedqusi512_mask.
20734 (_mm512_mask_storeu_epi32): Likewise.
20735 * config/i386/avx512vlbwintrin.h (_mm256_mask_storeu_epi8): Pass
20736 char * to __builtin_ia32_storedquqi256_mask.
20737 (_mm_mask_storeu_epi8): Likewise.
20738 (_mm256_mask_loadu_epi16): Pass const short * to
20739 __builtin_ia32_loaddquhi256_mask.
20740 (_mm256_maskz_loadu_epi16): Likewise.
20741 (_mm_mask_loadu_epi16): Pass const short * to
20742 __builtin_ia32_loaddquhi128_mask.
20743 (_mm_maskz_loadu_epi16): Likewise.
20744 (_mm256_mask_loadu_epi8): Pass const char * to
20745 __builtin_ia32_loaddquqi256_mask.
20746 (_mm256_maskz_loadu_epi8): Likewise.
20747 (_mm_mask_loadu_epi8): Pass const char * to
20748 __builtin_ia32_loaddquqi128_mask.
20749 (_mm_maskz_loadu_epi8): Likewise.
20750 (_mm256_mask_storeu_epi16): Pass short * to.
20751 __builtin_ia32_storedquhi256_mask.
20752 (_mm_mask_storeu_epi16): Pass short * to.
20753 __builtin_ia32_storedquhi128_mask.
20754 * config/i386/avx512vlintrin.h (_mm256_mask_loadu_pd): Pass
20755 const double * to __builtin_ia32_loadupd256_mask.
20756 (_mm256_maskz_loadu_pd): Likewise.
20757 (_mm_mask_loadu_pd): Pass onst double * to
20758 __builtin_ia32_loadupd128_mask.
20759 (_mm_maskz_loadu_pd): Likewise.
20760 (_mm256_mask_storeu_pd): Pass double * to
20761 __builtin_ia32_storeupd256_mask.
20762 (_mm_mask_storeu_pd): Pass double * to
20763 __builtin_ia32_storeupd128_mask.
20764 (_mm256_mask_loadu_ps): Pass const float * to
20765 __builtin_ia32_loadups256_mask.
20766 (_mm256_maskz_loadu_ps): Likewise.
20767 (_mm_mask_loadu_ps): Pass const float * to
20768 __builtin_ia32_loadups128_mask.
20769 (_mm_maskz_loadu_ps): Likewise.
20770 (_mm256_mask_storeu_ps): Pass float * to
20771 __builtin_ia32_storeups256_mask.
20772 (_mm_mask_storeu_ps): ass float * to
20773 __builtin_ia32_storeups128_mask.
20774 (_mm256_mask_loadu_epi64): Pass const long long * to
20775 __builtin_ia32_loaddqudi256_mask.
20776 (_mm256_maskz_loadu_epi64): Likewise.
20777 (_mm_mask_loadu_epi64): Pass const long long * to
20778 __builtin_ia32_loaddqudi128_mask.
20779 (_mm_maskz_loadu_epi64): Likewise.
20780 (_mm256_mask_storeu_epi64): Pass long long * to
20781 __builtin_ia32_storedqudi256_mask.
20782 (_mm_mask_storeu_epi64): Pass long long * to
20783 __builtin_ia32_storedqudi128_mask.
20784 (_mm256_mask_loadu_epi32): Pass const int * to
20785 __builtin_ia32_loaddqusi256_mask.
20786 (_mm256_maskz_loadu_epi32): Likewise.
20787 (_mm_mask_loadu_epi32): Pass const int * to
20788 __builtin_ia32_loaddqusi128_mask.
20789 (_mm_maskz_loadu_epi32): Likewise.
20790 (_mm256_mask_storeu_epi32): Pass int * to
20791 __builtin_ia32_storedqusi256_mask.
20792 (_mm_mask_storeu_epi32): Pass int * to
20793 __builtin_ia32_storedqusi128_mask.
20794 * config/i386/i386-builtin-types.def (PCSHORT): New.
20795 (PINT64): Likewise.
20796 (V64QI_FTYPE_PCCHAR_V64QI_UDI): Likewise.
20797 (V32HI_FTYPE_PCSHORT_V32HI_USI): Likewise.
20798 (V32QI_FTYPE_PCCHAR_V32QI_USI): Likewise.
20799 (V16SF_FTYPE_PCFLOAT_V16SF_UHI): Likewise.
20800 (V8DF_FTYPE_PCDOUBLE_V8DF_UQI): Likewise.
20801 (V16SI_FTYPE_PCINT_V16SI_UHI): Likewise.
20802 (V16HI_FTYPE_PCSHORT_V16HI_UHI): Likewise.
20803 (V16QI_FTYPE_PCCHAR_V16QI_UHI): Likewise.
20804 (V8SF_FTYPE_PCFLOAT_V8SF_UQI): Likewise.
20805 (V8DI_FTYPE_PCINT64_V8DI_UQI): Likewise.
20806 (V8SI_FTYPE_PCINT_V8SI_UQI): Likewise.
20807 (V8HI_FTYPE_PCSHORT_V8HI_UQI): Likewise.
20808 (V4DF_FTYPE_PCDOUBLE_V4DF_UQI): Likewise.
20809 (V4SF_FTYPE_PCFLOAT_V4SF_UQI): Likewise.
20810 (V4DI_FTYPE_PCINT64_V4DI_UQI): Likewise.
20811 (V4SI_FTYPE_PCINT_V4SI_UQI): Likewise.
20812 (V2DF_FTYPE_PCDOUBLE_V2DF_UQI): Likewise.
20813 (V2DI_FTYPE_PCINT64_V2DI_UQI): Likewise.
20814 (VOID_FTYPE_PDOUBLE_V8DF_UQI): Likewise.
20815 (VOID_FTYPE_PDOUBLE_V4DF_UQI): Likewise.
20816 (VOID_FTYPE_PDOUBLE_V2DF_UQI): Likewise.
20817 (VOID_FTYPE_PFLOAT_V16SF_UHI): Likewise.
20818 (VOID_FTYPE_PFLOAT_V8SF_UQI): Likewise.
20819 (VOID_FTYPE_PFLOAT_V4SF_UQI): Likewise.
20820 (VOID_FTYPE_PINT64_V8DI_UQI): Likewise.
20821 (VOID_FTYPE_PINT64_V4DI_UQI): Likewise.
20822 (VOID_FTYPE_PINT64_V2DI_UQI): Likewise.
20823 (VOID_FTYPE_PINT_V16SI_UHI): Likewise.
20824 (VOID_FTYPE_PINT_V8SI_UHI): Likewise.
20825 (VOID_FTYPE_PINT_V4SI_UHI): Likewise.
20826 (VOID_FTYPE_PSHORT_V32HI_USI): Likewise.
20827 (VOID_FTYPE_PSHORT_V16HI_UHI): Likewise.
20828 (VOID_FTYPE_PSHORT_V8HI_UQI): Likewise.
20829 (VOID_FTYPE_PCHAR_V64QI_UDI): Likewise.
20830 (VOID_FTYPE_PCHAR_V32QI_USI): Likewise.
20831 (VOID_FTYPE_PCHAR_V16QI_UHI): Likewise.
20832 (V64QI_FTYPE_PCV64QI_V64QI_UDI): Removed.
20833 (V32HI_FTYPE_PCV32HI_V32HI_USI): Likewise.
20834 (V32QI_FTYPE_PCV32QI_V32QI_USI): Likewise.
20835 (V16HI_FTYPE_PCV16HI_V16HI_UHI): Likewise.
20836 (V16QI_FTYPE_PCV16QI_V16QI_UHI): Likewise.
20837 (V8HI_FTYPE_PCV8HI_V8HI_UQI): Likewise.
20838 (VOID_FTYPE_PV32HI_V32HI_USI): Likewise.
20839 (VOID_FTYPE_PV16HI_V16HI_UHI): Likewise.
20840 (VOID_FTYPE_PV8HI_V8HI_UQI): Likewise.
20841 (VOID_FTYPE_PV64QI_V64QI_UDI): Likewise.
20842 (VOID_FTYPE_PV32QI_V32QI_USI): Likewise.
20843 (VOID_FTYPE_PV16QI_V16QI_UHI): Likewise.
20844 * config/i386/i386.c (ix86_emit_save_reg_using_mov): Don't
20846 (ix86_emit_restore_sse_regs_using_mov): Don't use UNSPEC_LOADU.
20847 (ix86_avx256_split_vector_move_misalign): Don't use unaligned
20849 (ix86_expand_vector_move_misalign): Likewise.
20850 (bdesc_special_args): Use CODE_FOR_movvNXY_internal and pointer
20851 to scalar function prototype for unaligned load/store builtins.
20852 (ix86_expand_special_args_builtin): Updated.
20853 * config/i386/sse.md (UNSPEC_LOADU): Removed.
20854 (UNSPEC_STOREU): Likewise.
20855 (VI_ULOADSTORE_BW_AVX512VL): Likewise.
20856 (VI_ULOADSTORE_F_AVX512VL): Likewise.
20857 (ssescalarsize): Handle V4TI, V2TI and V1TI.
20858 (<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>): Likewise.
20859 (*<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>): Likewise.
20860 (<sse>_storeu<ssemodesuffix><avxsizesuffix>): Likewise.
20861 (<avx512>_storeu<ssemodesuffix><avxsizesuffix>_mask): Likewise.
20862 (<sse2_avx_avx512f>_loaddqu<mode><mask_name>): Likewise.
20863 (*<sse2_avx_avx512f>_loaddqu<mode><mask_name>"): Likewise.
20864 (sse2_avx_avx512f>_storedqu<mode>): Likewise.
20865 (<avx512>_storedqu<mode>_mask): Likewise.
20866 (*sse4_2_pcmpestr_unaligned): Likewise.
20867 (*sse4_2_pcmpistr_unaligned): Likewise.
20868 (*mov<mode>_internal): Renamed to ...
20869 (mov<mode>_internal): This. Remove check of AVX and IAMCU on
20870 misaligned operand. Replace vmovdqu64 with vmovdqu<ssescalarsize>.
20871 (movsd/movhpd to movupd peephole): Don't use UNSPEC_LOADU.
20872 (movlpd/movhpd to movupd peephole): Don't use UNSPEC_STOREU.
20874 2016-04-19 Richard Biener <rguenther@suse.de>
20876 PR tree-optimization/70171
20877 * tree-ssa-phiprop.c: Include stor-layout.h.
20878 (phiprop_insert_phi): Handle the aggregate copy case.
20879 (propagate_with_phi): Likewise.
20881 2016-04-19 Uros Bizjak <ubizjak@gmail.com>
20883 * config/i386/i386.c (ix86_decompose_address): Use lowpart_subreg
20884 instead of simplify_gen_subreg (... , 0).
20885 (ix86_delegitimize_address): Ditto.
20886 (ix86_split_divmod): Ditto.
20887 (ix86_split_copysign_const): Ditto.
20888 (ix86_split_copysign_var): Ditto.
20889 (ix86_expand_args_builtin): Ditto.
20890 (ix86_expand_round_builtin): Ditto.
20891 (ix86_expand_special_args_builtin): Ditto.
20892 * config/i386/i386.md (TARGET_USE_VECTOR_FP_CONVERTS splitters): Ditto.
20893 (TARGET_SSE_PARTIAL_REG_DEPENDENCY splitters and peephole2s): Ditto.
20894 (udivmodqi4): Ditto.
20895 (absneg splitters): Ditto.
20896 (*jcc_bt<mode>_1): Ditto.
20898 2016-04-19 Richard Biener <rguenther@suse.de>
20900 PR tree-optimization/70724
20901 * tree-ssa-sccvn.c (scc_vn_restore_ssa_info): Split SSA info
20902 restoring out from ...
20903 (free_scc_vn): ... here.
20904 * tree-ssa-sccvn.h (scc_vn_restore_ssa_info): Declare.
20905 * tres-ssa-pre.c (pass_pre::execute): Restore SSA info before
20907 (pass_fre::execute): Restore SSA info.
20909 2016-04-19 Richard Biener <rguenther@suse.de>
20911 * gimple-walk.h (struct walk_stmt_info): Add stmt member.
20912 * gimple-walk.c (walk_gimple_op): Initialize it.
20913 (walk_gimple_asm): Set wi->is_lhs before each callback invocation.
20914 * tree-inline.c (remap_gimple_op_r): Set SSA_NAME_DEF_STMT when
20915 remapping SSA names of defs.
20916 (copy_bb): Remove walk over all SSA defs and SSA_NAME_DEF_STMT
20919 2016-04-18 Vladimir Makarov <vmakarov@redhat.com>
20921 PR middle-end/70689
20922 * lra-constraints.c (equiv_substition_p): New.
20923 (process_alt_operands): Use it.
20924 (swap_operands): Swap it.
20925 (curr_insn_transform): Update it.
20927 2016-04-18 Michael Matz <matz@suse.de>
20929 * tree.h (TYPE_ALIGN, DECL_ALIGN): Return shifted amount.
20930 (SET_TYPE_ALIGN, SET_DECL_ALIGN): New.
20931 * tree-core.h (tree_type_common.align): Use bit-field.
20932 (tree_type_common.spare): New.
20933 (tree_decl_common.off_align): Make smaller.
20934 (tree_decl_common.align): Use bit-field.
20936 * expr.c (expand_expr_addr_expr_1): Use SET_TYPE_ALIGN.
20937 * omp-low.c (install_var_field): Use SET_DECL_ALIGN.
20938 (scan_sharing_clauses): Ditto.
20939 (finish_taskreg_scan): Use SET_DECL_ALIGN and SET_TYPE_ALIGN.
20940 (omp_finish_file): Ditto.
20941 * stor-layout.c (do_type_align): Use SET_DECL_ALIGN.
20942 (layout_decl): Ditto.
20943 (relayout_decl): Ditto.
20944 (finalize_record_size): Use SET_TYPE_ALIGN.
20945 (finalize_type_size): Ditto.
20946 (finish_builtin_struct): Ditto.
20947 (layout_type): Ditto.
20948 (initialize_sizetypes): Ditto.
20949 * targhooks.c (std_gimplify_va_arg_expr): Use SET_TYPE_ALIGN.
20950 * tree-nested.c (insert_field_into_struct): Use SET_TYPE_ALIGN.
20951 (lookup_field_for_decl): Use SET_DECL_ALIGN.
20952 (get_chain_field): Ditto.
20953 (get_trampoline_type): Ditto.
20954 (get_nl_goto_field): Ditto.
20955 * tree-streamer-in.c (unpack_ts_decl_common_value_fields): Use
20957 (unpack_ts_type_common_value_fields): Use SET_TYPE_ALIGN.
20958 * gimple-expr.c (copy_var_decl): Use SET_DECL_ALIGN.
20959 * tree.c (make_node_stat): Use SET_DECL_ALIGN and SET_TYPE_ALIGN.
20960 (build_qualified_type): Use SET_TYPE_ALIGN.
20961 (build_aligned_type, build_range_type_1): Ditto.
20962 (build_atomic_base): Ditto.
20963 (build_common_tree_nodes): Ditto.
20964 * cfgexpand.c (align_local_variable): Use SET_DECL_ALIGN.
20965 (expand_one_stack_var_at): Ditto.
20966 * coverage.c (build_var): Use SET_DECL_ALIGN.
20967 * except.c (init_eh): Ditto.
20968 * function.c (assign_parm_setup_block): Ditto.
20969 * symtab.c (increase_alignment_1): Ditto.
20970 * tree-ssa-ccp.c (fold_builtin_alloca_with_align): Ditto.
20971 * tree-vect-stmts.c (ensure_base_align): Ditto.
20972 * varasm.c (align_variable): Ditto.
20973 (assemble_variable): Ditto.
20974 (build_constant_desc): Ditto.
20975 (output_constant_def_contents): Ditto.
20977 * config/arm/arm.c (arm_relayout_function): Use SET_DECL_ALIGN.
20978 * config/avr/avr.c (avr_adjust_type_node): Use SET_TYPE_ALIGN.
20979 * config/mips/mips.c (mips_std_gimplify_va_arg_expr): Ditto.
20980 * config/msp430/msp430.c (msp430_gimplify_va_arg_expr): Ditto.
20981 * config/spu/spu.c (spu_build_builtin_va_list): Use SET_DECL_ALIGN.
20983 2016-04-18 H.J. Lu <hongjiu.lu@intel.com>
20986 * config/i386/sse.md (sse2_loadlpd): Accept load from "xm" and
20987 replace %vmovsd with "%vmovq".
20988 (vec_concatv2df): Likewise.
20990 2016-04-18 Uros Bizjak <ubizjak@gmail.com>
20992 * config/i386/mmx.md (*vec_extractv2sf_0): Use gen_lowpart.
20993 (*vec_extractv2si_0): Ditto.
20994 * config/i386/sse.md (*vec_extractv4sf_0): Ditto.
20995 (zero_extended_scalar_load_operand splitters): Ditto.
20996 (vec_extract splitters): Ditto.
20997 (*vec_extractv4si_0_zext): Ditto.
20998 (avx_<castmode><avxsizesuffix>_<castmode>): Use gen_lowpart
20999 and lowpart_subreg.
21000 (avx512f_<castmode><avxsizesuffix>_<castmode>): Ditto.
21001 (avx512f_<castmode><avxsizesuffix>_256<castmode>): Ditto.
21002 (*sse4_1_extractps): Use lowpart_subreg.
21003 * config/i386/i386.md (x87 floatsplitter): Use gen_lowpart.
21005 2016-04-18 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
21007 * doc/install.texi (Specific, i?86-*-solaris2.10): Update gas and
21009 (Specific, *-*-solaris2*): Update Solaris 11 bundled gcc versions.
21010 Mention Solaris 11 packaging changes.
21011 Update gas and gld requirements.
21012 Remove reference to pre-Solaris 10 bug.
21013 (Specific, sparc-sun-solaris2*): Remove reference to pre-Solaris 10
21015 (Specific, sparc64-*-solaris2*): Remove reference to bootstrap
21018 2016-04-17 Jan Hubicka <jh@suse.cz>
21020 * tree-ssa-loop-ivopts.c (avg_loop_niter): Use also
21021 max_loop_iterations_int.
21023 2016-04-18 Richard Biener <rguenther@suse.de>
21025 PR tree-optimization/43434
21026 * tree-ssa-structalias.c (struct vls_data): New.
21027 (visit_loadstore): Handle all pointer-based accesses.
21028 (compute_dependence_clique): Compute a bitmap of restrict tags
21029 assigned bases and pass it to visit_loadstore.
21031 2016-04-18 Matthew Wahab <matthew.wahab@arm.com>
21034 * config/arm/bpabi.h (BE8_LINK_SPEC): Add entries for armv8+crc,
21035 armv8.1-a and armv8.1-a+crc.
21037 2016-04-18 Richard Biener <rguenther@suse.de>
21039 PR tree-optimization/70701
21040 * tree-ssa-sccvn.c (vn_reference_lookup_3): Resolve fully constant
21041 references after translating through a memcpy.
21043 2016-04-18 Richard Biener <rguenther@suse.de>
21045 * tree-ssa-pre.c (postorder, postorder_num): Make locals ...
21046 (compute_antic): ... here. For partial antic use regular
21047 postorder and scrap iteration.
21048 (compute_partial_antic_aux): Remove unused return value.
21049 (init_pre): Do not allocate postorder.
21050 (fini_pre): Do not free postorder.
21052 2016-04-18 Richard Biener <rguenther@suse.de>
21054 PR middle-end/37870
21055 * expmed.c (extract_bit_field_1): Remove broken case
21056 using a wider MODE_INT mode.
21058 2016-04-18 Segher Boessenkool <segher@kernel.crashing.org>
21060 * has-brig.c (lendian16): Don't try to use __builtin_bswap16
21061 unless compiling with at least GCC-4.8.
21063 2016-04-17 Jan Hubicka <jh@suse.cz>
21066 * graphite.c (graphite_finalize): Update call to
21067 tree_estimate_probability.
21068 * predict.h (tree_estimate_probability): Update prototype.
21070 2016-04-17 Jan Hubicka <jh@suse.cz>
21072 * predict.c (combine_predictions_for_bb): Add dry_run parmaeter.
21073 (tree_estimate_probability): Likewise.
21074 (pass_profile::execute): Update.
21075 (report_predictor_hitrates): New function.
21076 * profile.c (compute_branch_probabilities): Use it.
21077 * predict.h (report_predictor_hitrates): Declare.
21079 2016-04-17 Jan Hubicka <jh@suse.cz>
21082 * cgraph.h (cgraph_node::set_const_flag,
21083 cgraph_node::set_pure_flag): Update prototype to return bool;
21085 * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases): Thunks
21086 of interposable symbol are interposable, too.
21087 (cgraph_set_const_flag_1): Rename to ...
21088 (set_const_flag_1): ... this one; change to self recursive function
21089 instead of call_for_symbol_thunks_and_aliases. Handle correctly
21090 clearnig the flag in all variants and also virtual thunks of const
21091 functions are pure; track if any change was done.
21092 (cgraph_node::set_const_flag): Update.
21093 (struct set_pure_flag_info): New struct.
21094 (cgraph_set_pure_flag_1): Rename to ...
21095 (set_pure_flag_1): ... this one; take set_pure_flag_info parameter
21096 rather than pointer encoded flags; track if any changes was done;
21097 handle correctly clearning flag and setting flag of aliases already
21099 (cgraph_node::set_pure_flag): Update.
21100 (cgraph_node::set_nothrow_flag): Handle correctly clearning the flag.
21102 2016-04-17 Tom de Vries <tom@codesourcery.com>
21105 * pretty-print.c (pp_write_text_as_dot_label_to_stream): Escape
21106 backslash in label.
21108 2016-04-17 Tom de Vries <tom@codesourcery.com>
21110 * pretty-print.c (pp_write_text_as_dot_label_to_stream): Classify chars
21111 '{}<> ' as escape-for-record.
21113 2016-04-17 Tom de Vries <tom@codesourcery.com>
21115 * pretty-print.c (pp_write_text_as_dot_label_to_stream): Simplify loop
21118 2016-04-17 Tom de Vries <tom@codesourcery.com>
21121 * tree-pass.h (class opt_pass): Remove graph_dump_initialized member.
21122 * dumpfile.h (struct dump_file_info): Add graph_dump_initialized field.
21123 * dumpfile.c (dump_files): Initialize graph_dump_initialized field.
21124 * passes.c (finish_optimization_passes): Only call
21125 finish_graph_dump_file if dfi->graph_dump_initialized.
21126 (execute_function_dump, pass_init_dump_file): Use
21127 dfi->graph_dump_initialized instead of pass->graph_dump_initialized.
21129 2016-04-17 Tom de Vries <tom@codesourcery.com>
21131 PR tree-optimization/70256
21132 * tree-ssa-structalias.c (dump_varinfo, debug_varinfo, dump_varmap)
21133 (debug_varmap): New function.
21135 2016-04-17 Tom de Vries <tom@codesourcery.com>
21138 * passes.c (pass_manager::register_pass): Propagate pflags.
21140 2016-04-17 Tom de Vries <tom@codesourcery.com>
21143 * pass_manager.h (TERMINATE_PASS_LIST): Add pass argument.
21144 * passes.c (pass_manager::pass_manager): Declare and init p_start in
21145 INSERT_PASSES_AFTER. Add pass parameter to TERMINATE_PASS_LIST, and
21146 check if it's equal to p_start.
21147 * passes.def: Add arguments to TERMINATE_PASS_LISTs.
21149 2016-04-15 Jan Hubicka <jh@suse.cz>
21152 * cgraph.c (cgraph_set_const_flag_1): Only set as pure if
21153 function does not bind to current def.
21154 * ipa-pure-const.c (worse_state): Add FROM and TO parameters;
21155 handle conservatively calls to functions that does not need to bind
21157 (check_call): Update call of worse_state.
21158 (ignore_edge_for_nothrow): Update.
21159 (ignore_edge_for_pure_const): Likewise.
21160 (propagate_pure_const): Update calls to worse_state.
21161 (skip_function_for_local_pure_const): Reformat comments.
21163 2016-04-15 Jan Hubicka <jh@suse.cz>
21166 * cgraph.c (cgraph_node::get_availability): Add REF parameter.
21167 (cgraph_node::function_symbol): Likewise.
21168 (cgraph_node::function_or_virtual_thunk_symbol): Likewise.
21169 * cgraph.h (symtab_node::get_availabbility): Add REF parameter.
21170 (symtab_node::ultimate_alias_target): Add REF parameter.
21171 (symtab_node::binds_to_current_def_p): Declare.
21172 (symtab_node;:ultimate_alias_target_1): Add REF parameter.
21173 (cgraph_node::function_symbol): Likewise.
21174 (cgraph_node::function_or_virtual_thunk_symbol): Likewise.
21175 (cgraph_node::get_availability): Likewise.
21176 (cgraph_edge::binds_to_current_def_p): New inline function.
21177 (varpool_node::get_availability): Add REF parameter.
21178 (varpool_node::ultimate_alias_target): Likewise.
21179 * symtab.c (symtab_node::ultimate_alias_target_1): Likewise.
21180 (symtab_node::binds_to_current_def_p): Likewise.
21181 * varpool.c (varpool_node::get_availability): Likewise.
21183 2016-04-15 Kirill Yukhin <kirill.yukhin@intel.com>
21186 * config/i386/sse.md(define_insn "<avx512>_vec_dup<mode><mask_name>"):
21187 Fix mode size check.
21189 2016-04-15 Jakub Jelinek <jakub@redhat.com>
21191 * BASE-VER: Set to 7.0.0.
21193 2016-04-15 Alexander Monakov <amonakov@ispras.ru>
21195 * config/nvptx/nvptx.opt (moptimize): Add a period at end of help text.
21197 2016-04-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
21199 * doc/invoke.texi (ARM Options): Add note on deprecation of pre-ARMv4T
21200 architecture revisions.
21202 2016-04-15 Bernd Schmidt <bschmidt@redhat.com>
21204 * config/i386/i386-protos.h (ix86_using_red_zone): Declare.
21205 * config/i386/i386.c (ix86_using_red_zone): No longer static.
21206 * config/i386/i386.md (stack decrement to push peepholes): Guard
21207 with !x86_using_red_zone ().
21209 2016-04-15 Jakub Jelinek <jakub@redhat.com>
21212 * tree-pretty-print.c (do_niy): Add FLAGS argument, pass it down
21213 to dump_generic_node.
21214 (NIY): Pass also flags to do_niy.
21216 2016-04-15 Thomas Schwinge <thomas@codesourcery.com>
21218 * omp-low.c (simd_clone_struct_alloc, simd_clone_struct_copy)
21219 (simd_clone_vector_of_formal_parm_types)
21220 (simd_clone_clauses_extract, simd_clone_compute_base_data_type)
21221 (simd_clone_mangle, simd_clone_create)
21222 (simd_clone_adjust_return_type, create_tmp_simd_array)
21223 (simd_clone_adjust_argument_types, simd_clone_init_simd_arrays)
21224 (struct modify_stmt_info, ipa_simd_modify_stmt_ops)
21225 (ipa_simd_modify_function_body, simd_clone_linear_addend)
21226 (simd_clone_adjust, expand_simd_clones, ipa_omp_simd_clone)
21227 (pass_data_omp_simd_clone, class pass_omp_simd_clone)
21228 (pass_omp_simd_clone::gate, make_pass_omp_simd_clone): Move into...
21229 * omp-simd-clone.c: ... this new file.
21230 (simd_clone_vector_of_formal_parm_types): Make it static.
21231 * Makefile.in (OBJS): Add omp-simd-clone.o.
21233 2016-04-15 Kirill Yukhin <kirill.yukhin@intel.com>
21236 * config/i386/sse.md: Use proper memory operand modifiers.
21239 2016-04-15 Richard Biener <rguenther@suse.de>
21240 Alan Modra <amodra@gmail.com>
21242 PR tree-optimization/70130
21243 * tree-vect-data-refs.c (vect_supportable_dr_alignment): Detect
21244 when alignment stays not the same and no not use the realign
21247 2016-04-14 Michael Meissner <meissner@linux.vnet.ibm.com>
21250 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
21251 direct move handlers for KFmode. Change TFmode handlers test from
21252 FLOAT128_IEEE_P to FLOAT128_VECTOR_P.
21254 2016-04-14 Jakub Jelinek <jakub@redhat.com>
21257 * ipa-utils.h (polymorphic_ctor_dtor_p): New prototype.
21258 * ipa-polymorphic-call.c (polymorphic_ctor_dtor_p): New function.
21259 (inlined_polymorphic_ctor_dtor_block_p): Use it.
21260 * tree-ssa-live.c (remove_unused_scope_block_p): When
21261 in_ctor_dtor_block, avoid discarding not just BLOCKs with
21262 BLOCK_ABSTRACT_ORIGIN being FUNCTION_DECL, but even when
21263 block_ultimate_origin is FUNCTION_DECL.
21264 (remove_unused_locals): If current_function_decl is
21265 polymorphic_ctor_dtor_p, pass initial true to
21266 remove_unused_scope_block_p' is_ctor_dtor_block.
21268 2016-04-14 Martin Sebor <msebor@redhat.com>
21273 * doc/extend.texi (Variable Length): Revert.
21275 2016-04-14 Marek Polacek <polacek@redhat.com>
21276 Jan Hubicka <hubicka@ucw.cz>
21279 * tree.c (verify_type): Disable the canonical type of main variant
21282 2016-04-14 Jason Merrill <jason@redhat.com>
21284 * cfgexpand.c, expr.c: Revert previous change.
21286 2016-04-14 Cesar Philippidis <cesar@codesourcery.com>
21288 PR middle-end/70643
21289 * omp-low.c (lower_oacc_reductions): Check for TREE_CONSTANT
21290 when building a mem ref for the incoming reduction variable.
21292 2016-04-14 Richard Biener <rguenther@suse.de>
21294 PR tree-optimization/70614
21295 * tree-scalar-evolution.c (analyze_evolution_in_loop): Terminate
21296 loop if the evolution dropped to chrec_dont_know.
21297 (interpret_condition_phi): Likewise.
21299 2016-04-14 Richard Biener <rguenther@suse.de>
21301 PR tree-optimization/70623
21302 * tree-ssa-pre.c (changed_blocks): Make global ...
21303 (compute_antic): ... local here. Move and fix worklist
21304 handling here. Do not clear EDGE_DFS_BACK or call mark_dfs_back_edges.
21305 (compute_antic_aux): Add dumping for MAX assumed succs. Remove
21306 worklist handling, dump when ANTIC_IN changed.
21307 (compute_partial_antic_aux): Remove worklist handling.
21308 (init_pre): Do not compute post dominators. Add a comment about
21309 the CFG order chosen.
21310 (fini_pre): Do not free post dominators.
21312 2016-04-13 Martin Sebor <msebor@redhat.com>
21317 * doc/extend.texi (Variable Length): Document C++ specifics.
21319 2016-04-13 Jakub Jelinek <jakub@redhat.com>
21322 * ipa-pure-const.c (pass_nothrow::execute): Call maybe_clean_eh_stmt
21323 on all recursive call stmts. Return TODO_cleanup_cfg if any dead
21324 eh edges have been purged.
21327 * tree-sra.c (create_access_replacement,
21328 get_replaced_param_substitute): Set DECL_NAMELESS on repl if it
21330 * tree-pretty-print.c (dump_fancy_name): New function.
21331 (dump_decl_name, dump_generic_node): Use it.
21333 2016-04-13 Jason Merrill <jason@redhat.com>
21335 * cfgexpand.c (pass_expand::execute): Handle attribute "abi warning".
21336 * expr.c (expand_expr_real_1): Likewise.
21338 2016-04-13 Ilya Enkovich <ilya.enkovich@intel.com>
21340 * config/i386/i386.md (kunpckhi): Swap operands.
21341 (kunpcksi): Likewise.
21342 (kunpckdi): Likewise.
21343 * config/i386/sse.md (vec_pack_trunc_qi): Likewise.
21344 (vec_pack_trunc_<mode>): Likewise.
21346 2016-04-13 Jakub Jelinek <jakub@redhat.com>
21349 * explow.c (convert_memory_address_addr_space_1): Formatting fix.
21351 PR middle-end/70633
21352 * gimplify.c (gimplify_init_constructor): Clear TREE_STATIC if
21353 gimplification turns some element into non-constant.
21356 * rtl.h (convert_memory_address_addr_space_1): New prototype.
21357 * explow.c (convert_memory_address_addr_space_1): No longer static,
21358 add NO_EMIT argument and don't call convert_modes if true, pass
21359 it down recursively, remove break after return.
21360 (convert_memory_address_addr_space): Adjust caller.
21361 * simplify-rtx.c (simplify_unary_operation_1): Call
21362 convert_memory_address_addr_space_1 instead of convert_memory_address,
21363 if it returns NULL, don't simplify.
21365 2016-04-12 Eric Botcazou <ebotcazou@adacore.com>
21368 * config/sparc/sparc.c (sparc_compute_frame_size): Add parentheses.
21370 2016-04-12 Jakub Jelinek <jakub@redhat.com>
21372 * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
21373 Bump the upper SIMDLEN limits, so that if the return type or
21374 characteristic type if the return type is void can be passed in
21375 all available SSE2/AVX/AVX2/AVX512-F registers, the SIMDLEN is
21378 2016-04-12 Michael Meissner <meissner@linux.vnet.ibm.com>
21381 * config/rs6000/rs6000.md (ieee_128bit_vsx_neg<mode>2_internal):
21382 Do not use "=" constraint on an input constraint.
21383 (ieee_128bit_vsx_abs<mode>2_internal): Likewise.
21384 (ieee_128bit_vsx_nabs<mode>2_internal): Likewise.
21385 (ieee_128bit_vsx_nabs<mode>2): Correct splitter so that it
21386 generates (neg (abs ...)) instead of (abs ...).
21388 2016-04-12 Jakub Jelinek <jakub@redhat.com>
21390 PR rtl-optimization/70596
21391 * lra-spills.c (spill_pseudos): Don't delete debug insns, instead
21392 just invalidate LRA data and reset them. Adjust dump wording.
21394 2016-04-12 Martin Liska <mliska@suse.cz>
21397 2016-03-30 Jan Hubicka <hubicka@ucw.cz>
21399 * tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can't get realistic
21401 * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also
21402 max_loop_iterations_int.
21403 (tree_unswitch_outer_loop): Likewise.
21404 * tree-ssa-loop-ivopts.c (avg_loop_niter): Likewise.
21405 * tree-vect-loop.c (vect_analyze_loop_2): Likewise.
21407 2016-04-12 Tom de Vries <tom@codesourcery.com>
21409 PR tree-optimization/68756
21410 * graphite-isl-ast-to-gimple.c (copy_cond_phi_args): Use new_expr
21411 instead of new_name.
21413 2016-04-12 Jakub Jelinek <jakub@redhat.com>
21415 PR tree-optimization/70602
21416 * tree-sra.c (generate_subtree_copies): Don't write anything into
21417 constant pool decls.
21419 * omp-low.c (lower_omp_target): Use GOMP_MAP_FIRSTPRIVATE_INT
21420 regardless whether there are depend clauses or not.
21422 2016-04-11 Michael Meissner <meissner@linux.vnet.ibm.com>
21425 * config/rs6000/rs6000.c (rs6000_opt_masks): Disable using the
21426 target attribute and pragma from changing the -mfloat128
21427 and -mfloat128-hardware options.
21429 * doc/extend.texi (Additional Floating Types): Document PowerPC
21430 __float128 restrictions.
21432 2016-04-11 James Greenhalgh <james.greenhalgh@arm.com>
21435 * config/aarch64/driver-aarch64.c
21436 (aarch64_get_extension_string_for_isa_flags): New.
21437 (arch_extension): Rename to...
21438 (aarch64_arch_extension): ...This.
21439 (ext_to_feat_string): Rename to...
21440 (aarch64_extensions): ...This.
21441 (aarch64_core_data): Keep track of architecture extension flags.
21442 (cpu_data): Rename to...
21443 (aarch64_cpu_data): ...This.
21444 (aarch64_arch_driver_info): Keep track of architecture extension
21446 (get_arch_name_from_id): Rename to...
21447 (get_arch_from_id): ...This, change return type.
21448 (host_detect_local_cpu): Update and reformat for renames, handle
21449 extensions through common infrastructure.
21451 2016-04-11 James Greenhalgh <james.greenhalgh@arm.com>
21454 * config/aarch64/aarch64-common.c (aarch64_option_extension): Keep
21455 track of a canonical flag name.
21456 (all_extensions): Likewise.
21457 (arch_to_arch_name): Also track extension flags enabled by the arch.
21458 (all_architectures): Likewise.
21459 (aarch64_parse_extension): Move to here.
21460 (aarch64_get_extension_string_for_isa_flags): Take a new argument,
21462 (aarch64_rewrite_selected_cpu): Update for above change.
21463 * config/aarch64/aarch64-option-extensions.def: Rework the way flags
21464 are handled, such that the single explicit value enabled by an
21465 extension is kept seperate from the implicit values it also enables.
21466 * config/aarch64/aarch64-protos.h (aarch64_parse_opt_result): Move
21468 (aarch64_parse_extension): New.
21469 * config/aarch64/aarch64.c (aarch64_parse_opt_result): Move from
21470 here to config/aarch64/aarch64-protos.h.
21471 (aarch64_parse_extension): Move from here to
21472 common/config/aarch64/aarch64-common.c.
21473 (aarch64_option_print): Update.
21474 (aarch64_declare_function_name): Likewise.
21475 (aarch64_start_file): Likewise.
21476 * config/aarch64/driver-aarch64.c (arch_extension): Keep track of
21477 the canonical flag for extensions.
21478 * config.gcc (aarch64*-*-*): Extend regex for capturing extension
21481 2016-04-11 James Greenhalgh <james.greenhalgh@arm.com>
21483 * config/aarch64/aarch64.h (AARCH64_FL_FOR_ARCH8_1): Also add
21486 2016-04-09 Tom de Vries <tom@codesourcery.com>
21488 PR tree-optimization/68953
21489 * graphite-sese-to-poly.c (pdr_add_memory_accesses): Order accesses from
21490 first to last subscript.
21492 2016-04-09 Jakub Jelinek <jakub@redhat.com>
21494 PR tree-optimization/70586
21495 * tree-ssa-ifcombine.c (bb_no_side_effects_p): Return false
21498 2016-04-08 Cesar Philippidis <cesar@codesourcery.com>
21502 PR tree-optimization/70373
21503 PR middle-end/70533
21504 PR middle-end/70534
21505 PR middle-end/70535
21506 * gimplify.c (gimplify_adjust_omp_clauses): Add or adjust data
21507 clauses for acc parallel reductions as necessary. Error on those
21509 * omp-low.c (scan_sharing_clauses): Don't install variables which
21510 are used in acc parallel reductions.
21511 (lower_rec_input_clauses): Remove dead code.
21512 (lower_oacc_reductions): Add support for reference reductions.
21513 (lower_reduction_clauses): Remove dead code.
21514 (lower_omp_target): Don't remap variables appearing in acc parallel
21516 * tree.h (OMP_CLAUSE_MAP_IN_REDUCTION): New macro.
21518 2016-04-08 Jakub Jelinek <jakub@redhat.com>
21520 PR middle-end/70593
21521 * tree-ssa-coalesce.c (build_ssa_conflict_graph): For stmt
21522 with multiple SSA_NAME defs, force the outputs other than first
21523 to be live before calling live_track_process_def on each output.
21525 PR rtl-optimization/70574
21526 * fwprop.c (forward_propagate_and_simplify): Don't add
21527 REG_EQUAL note if DF_REF_REG (use) is a paradoxical subreg.
21528 (try_fwprop_subst): Don't add REG_EQUAL note if there are any
21529 paradoxical subregs within *loc.
21531 2016-04-08 Thomas Schwinge <thomas@codesourcery.com>
21533 * config/arc/arc.h (LINK_COMMAND_SPEC): Use gt to ignore
21534 -ftree-parallelize-loops={0,1}.
21535 * config/darwin.h (LINK_COMMAND_SPEC_A): Likewise.
21536 * config/i386/mingw32.h (GOMP_SELF_SPECS): Likewise.
21537 * config/ia64/hpux.h (LIB_SPEC): Likewise.
21538 * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
21539 * config/pa/pa64-hpux.h (LIB_SPEC): Likewise.
21541 2016-04-08 Maxim Ostapenko <m.ostapenko@samsung.com>
21544 * asan.c (instrument_derefs): If we get unknown location, extract it
21545 with EXPR_LOCATION.
21546 (maybe_instrument_call): Instrument gimple_call's arguments if needed.
21548 2016-04-08 Tom de Vries <tom@codesourcery.com>
21550 * omp-low.c (lower_omp_target): Set TREE_NO_WARNING for oacc
21551 implicit firstprivate clause.
21553 2016-04-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
21556 * config/arm/thumb2.md (tst + branch-> lsls + branch
21557 peephole below *orsi_not_shiftsi_si): Require that condition
21558 register is dead after the peephole.
21559 (second peephole after the above): Likewise.
21561 2016-04-08 Alan Modra <amodra@gmail.com>
21564 * builtins.c (fold_builtin_classify): For IBM extended precision,
21565 look at just the high-order double to test for NaN.
21566 (fold_builtin_interclass_mathfn): Similarly for Inf. For isnormal
21567 test just the high double for Inf but both doubles for subnormal
21570 2016-04-07 Jakub Jelinek <jakub@redhat.com>
21572 * cgraph.h (struct cgraph_simd_clone): Add mask_mode field.
21573 * omp-low.c (simd_clone_init_simd_arrays, simd_clone_adjust): Handle
21574 node->simdclone->mask_mode != VOIDmode masks.
21575 (simd_clone_adjust_argument_types): Likewise. Move sc var definition
21576 earlier, use it instead of node->simdclone.
21577 * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
21578 Set clonei->mask_mode.
21580 2016-04-06 Patrick Palka <ppalka@gcc.gnu.org>
21583 * parser.c (cp_parser_iteration_statement): New parameter IF_P.
21584 Pass it through to cp_parser_already_scoped_statement.
21585 (cp_parser_already_scoped_statement): New parameter IF_P. Pass
21586 it through to cp_parser_statement.
21587 (cp_parser_statement): Pass IF_P through to
21588 cp_parser_iteration_statement.
21589 (cp_parser_pragma): Adjust call to
21590 cp_parser_iteration_statement.
21592 2016-04-06 Patrick Palka <ppalka@gcc.gnu.org>
21595 * gimplify.c (gimplify_omp_ordered): Add explicit braces to
21596 resolve a future -Wparentheses warning.
21597 * omp-low.c (scan_sharing_clauses): Likewise.
21598 * tree-parloops.c (eliminate_local_variables): Likewise.
21600 2016-04-06 Vladimir Makarov <vmakarov@redhat.com>
21602 PR rtl-optimization/70398
21603 * lra-constraints.c (process_address_1): Check zero scale and code
21604 for reloading with zero scale.
21606 2016-04-06 Uros Bizjak <ubizjak@gmail.com>
21608 * config/i386/sse.md (shuffletype): Add V32HI and V4TI modes.
21609 (ssescalarsize): Add V8SF, V4SF, V4DF and V2DF modes.
21611 2016-04-06 Jakub Jelinek <jakub@redhat.com>
21613 * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
21614 Add support for AVX512F clones, include them by default for
21615 exported OpenMP declare simd functions. For AVX2 allow simdlen 32
21616 and use it if charasteric type is 8-bit, for AVX512F allow simdlen
21619 PR middle-end/70550
21620 * tree.h (OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT): Define.
21621 * gimplify.c (gimplify_adjust_omp_clauses_1): Set it for implicit
21622 firstprivate clauses.
21623 * omp-low.c (lower_send_clauses): Set TREE_NO_WARNING for
21624 OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT !by_ref vars in task contexts.
21625 (lower_omp_target): Set TREE_NO_WARNING for
21626 non-addressable possibly uninitialized vars which are copied into
21627 addressable temporaries or copied for GOMP_MAP_FIRSTPRIVATE_INT.
21629 2016-04-05 John David Anglin <danglin@gcc.gnu.org>
21631 * config/pa/predicates.md (integer_store_memory_operand): Accept
21632 REG+D operands with a large offset when reload_in_progress is true.
21633 (floating_point_store_memory_operand): Likewise.
21635 2016-04-05 Jakub Jelinek <jakub@redhat.com>
21638 * match.pd (nested int casts): Limit to GIMPLE.
21640 2016-04-05 Jan Hubicka <hubicka@ucw.cz>
21643 * ipa-devirt.c (maybe_record_node): Fix comment; use
21644 SANITIZE_UNREACHABLE instead of SANITIZE_UNDEFINED.
21646 2016-04-05 Jakub Jelinek <jakub@redhat.com>
21648 PR rtl-optimization/70542
21649 * ree.c (add_removable_extension): For VECTOR_MODE_P punt
21650 if there are any uses other than insn or debug insns.
21652 2016-04-05 Marc Glisse <marc.glisse@inria.fr>
21653 Jakub Jelinek <jakub@redhat.com>
21655 PR tree-optimization/70509
21656 * simplify-rtx.c (simplify_binary_operation_1) <case VEC_SELECT>:
21657 Shift HOST_WIDE_INT_1U instead of 1.
21659 2016-04-05 Zdenek Sojka <zsojka@seznam.cz>
21661 PR tree-optimization/70509
21662 * tree-ssa-forwprop.c (simplify_bitfield_ref): Use bitsize_int instead
21663 of the vector base type for index.
21665 2016-04-05 Uros Bizjak <ubizjak@gmail.com>
21668 * config/i386/sse.md (iptr): Add V64QI, V32HI, V16SI and V8DI modes.
21670 2016-04-05 Richard Biener <rguenther@suse.de>
21672 PR tree-optimization/70526
21673 * tree-sra.c (build_ref_for_offset): Use prev_base to
21674 extract the alias pointer type.
21676 2016-04-05 Richard Biener <rguenther@suse.de>
21678 * dse.c (struct store_info): Remove alias_set member.
21679 (struct read_info_type): Likewise.
21680 (clear_alias_group, clear_alias_mode_table, clear_alias_mode_holder,
21681 spill_deleted, clear_alias_set_lookup): Remove.
21682 (get_group_info): Remove dead base == NULL_RTX case.
21683 (dse_step0): Remove initialization of removed variables.
21684 (delete_dead_store_insn): Reomve alias set dumping.
21685 (free_read_records): Remove alias_set handling.
21686 (canon_address): Remove alias_set_out parameter.
21687 (record_store): Remove spill_alias_set, it's always zero.
21688 (check_mem_read_rtx): Likewise.
21689 (dse_step2): Rename from ...
21690 (dse_step2_nospill): ... this. Adjust.
21691 (scan_stores): Rename from ...
21692 (scan_stores_nospill): ... this.
21693 (scan_reads): Rename from ...
21694 (scan_reads_nospill): ... this.
21695 (scan_stores_spill, scan_reads_spill): Remove.
21696 (dse_step3_scan): Remove for_spills argument which is always false.
21697 (dse_step3): Likewise.
21698 (dse_step5): Rename from ...
21699 (dse_step5_nospill): ... this. Remove alias_set handling.
21700 (rest_of_handle_dse): Adjust.
21702 2016-04-05 Jakub Jelinek <jakub@redhat.com>
21705 * config/i386/sse.md (*andnot<mode>3): Simplify assertions.
21706 Use vpandn<ssemodesuffix> for V16SI/V8DImode, vpandnq for
21707 V32HI/V64QImode, don't use <mask_operand3_1>, fix up formatting.
21708 (*andnot<mode>3_mask): Remove insn with VI12_AVX512VL iterator.
21710 2016-04-05 Richard Biener <rguenther@suse.de>
21712 PR middle-end/70499
21713 * gimplify-me.c (gimple_regimplify_operands): Do not rewrite
21714 non-register type temporaries into SSA.
21716 2016-04-04 Jan Hubicka <hubicka@ucw.cz>
21719 * ipa-devirt.c (maybe_record_node): Do not optimize cxa_pure_virtual
21720 calls when sanitizing.
21721 (possible_polymorphic_call_target_p): Fix formatting.
21723 2016-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
21724 Jakub Jelinek <jakub@redhat.com>
21726 PR middle-end/70457
21727 * tree-inline.c (estimate_num_insn): Use gimple_call_builtin_p
21728 to ensure a call statement is compatible with a built-in's
21730 * tree-ssa-math-opts.c (pass_optimize_windening_mul::execute):
21733 2016-04-04 Richard Biener <rguenther@suse.de>
21735 PR rtl-optimization/70484
21736 * rtl.h (canon_output_dependence): Declare.
21737 * alias.c (canon_output_dependence): New function.
21738 * dse.c (record_store): Use canon_output_dependence rather
21739 than canon_true_dependence.
21741 2016-03-30 Jan Hubicka <hubicka@ucw.cz>
21744 * cgraph.h (symtab_node::copy_visibility_from): New function.
21745 * symtab.c (symtab_node::copy_visibility_from): New function.
21746 * ipa-visibility.c (optimize_weakref): New function.
21747 (function_and_variable_visibility): Use it.
21749 2016-04-04 Martin Liska <mliska@suse.cz>
21752 * hsa-gen.c (gen_hsa_insns_for_switch_stmt): Guard index
21753 value that is really in range handled by SBR instruction.
21754 * hsa-brig.c (emit_switch_insn): Do not emit unconditional jump.
21755 * hsa-dump.c (dump_hsa_insn_1): Do not dump default BB.
21756 * hsa.h (hsa_insn_sbr::m_default_bb): Remove field.
21758 2016-04-03 Oleg Endo <olegendo@gcc.gnu.org>
21762 * config/sh/sh.md (*addsi3): Allow pattern when reload_in_progress is
21763 set, but not for SP_REG operands.
21765 2016-04-02 Martin Sebor <msebor@redhat.com>
21768 * fold-const.c (maybe_nonzero_address): New function.
21769 (fold_comparison): Call it. Fold equality and relational
21770 expressions involving null pointers.
21771 (tree_single_nonzero_warnv_p): Call maybe_nonzero_address.
21773 2016-03-31 Evandro Menezes <e.menezes@samsung.com>
21775 Fix the predicate "aarch64_simd_reg_or_zero" to correctly validate
21776 the "Y" constraint (scalar FP 0.0 immediate).
21778 * config/aarch64/predicates.md (aarch64_simd_reg_or_zero):
21779 Add the "const_double" to the list of operand constraints.
21781 2016-04-01 Jakub Jelinek <jakub@redhat.com>
21783 PR rtl-optimization/70467
21784 * config/i386/i386.md (*add<dwi>3_doubleword, *sub<dwi>3_doubleword):
21785 If low word of the last operand is 0, just emit addition/subtraction
21788 2016-04-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
21791 * config/s390/s390.c (s390_expand_insv): Check for everything
21792 constant instead of just VOIDmode stuff.
21794 2016-04-01 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
21797 * config/arm/arm.h (ASM_APP_OFF): Handle TARGET_ARM and TARGET_THUMB.
21799 2016-04-01 Nathan Sidwell <nathan@acm.org>
21801 * tree.def (TRY_CATCH_EXPR): Correct documentation.
21803 2016-03-31 Vladimir Makarov <vmakarov@redhat.com>
21805 PR rtl-optimization/70461
21806 * ira-color.c (allocno_copy_cost_saving): Use allocno class if it
21809 2016-03-31 Martin Liska <mliska@suse.cz>
21812 * hsa-brig.c (hsa_op_immed::emit_to_buffer): Emit either
21813 a tree value or an immediate integer value to a buffer
21814 that is eventually copied to a BRIG section.
21815 (emit_immediate_operand): Call the function here.
21816 * hsa-dump.c (dump_hsa_immed): Remove checking assert.
21817 * hsa-gen.c (hsa_op_immed::hsa_op_immed): Remove initialization
21818 of class' fields that are removed.
21819 (hsa_op_immed::~hsa_op_immed): Remove deinitialization.
21820 * hsa.h (class hsa_op_immed): Remove m_brig_repr and
21821 m_brig_repr_size fields.
21823 2016-03-31 Martin Liska <mliska@suse.cz>
21826 * hsa-gen.c (hsa_function_representation::update_dominance): New
21828 (convert_addr_to_flat_segment): Likewise.
21829 (gen_hsa_memory_set): New alignment argument.
21830 (gen_hsa_ctor_assignment): Likewise.
21831 (gen_hsa_insns_for_single_assignment): Provide alignment
21832 to gen_hsa_ctor_assignment.
21833 (gen_hsa_insns_for_direct_call): Add new argument.
21834 (expand_lhs_of_string_op): New function.
21835 (expand_string_operation_builtin): Likewise.
21836 (expand_memory_copy): New function.
21837 (expand_memory_set): New function.
21838 (gen_hsa_insns_for_call): Use HOST_WIDE_INT.
21839 (convert_switch_statements): Change signature.
21840 (generate_hsa): Use a return value of the function.
21841 (pass_gen_hsail::execute): Do not call
21842 convert_switch_statements here.
21843 * hsa-regalloc.c (hsa_regalloc): Call update_dominance.
21844 * hsa.h (hsa_function_representation::m_modified_cfg): New flag.
21845 (hsa_function_representation::update_dominance): New function.
21847 2016-03-31 Martin Liska <mliska@suse.cz>
21850 * hsa-brig.c (emit_directive_variable): Emit alignment
21851 according to hsa_symbol::m_align.
21852 * hsa-dump.c (hsa_byte_alignment): Move the function to another file.
21853 (dump_hsa_symbol): Dump alignment of HSA symbols.
21854 * hsa-gen.c (get_symbol_for_decl): Set-up alignment of a symbol.
21855 (gen_hsa_addr_with_align): New function.
21856 (hsa_bitmemref_alignment): Use newly added function.
21857 (gen_hsa_insns_for_load): Likewise.
21858 (gen_hsa_insns_for_store): Likewise.
21859 (gen_hsa_memory_copy): New argument added.
21860 (gen_hsa_insns_for_single_assignment): Respect
21861 alignment for assignments processed via gen_hsa_memory_copy.
21862 (gen_hsa_insns_for_direct_call): Likewise.
21863 (gen_hsa_insns_for_return): Likewise.
21864 (gen_function_def_parameters): Set default alignment.
21865 * hsa.c (hsa_object_alignment): New function.
21866 (hsa_byte_alignment): Pasted function.
21867 * hsa.h (hsa_symbol::m_align): New field.
21869 2016-03-31 Bin Cheng <bin.cheng@arm.com>
21871 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Initialize
21872 scratch field for goto case.
21874 2016-03-31 James Greenhalgh <james.greenhalgh@arm.com>
21876 * config/arm/linux-elf.h (ASM_OUTPUT_DEF): Delete.
21878 2016-03-31 Ilya Enkovich <enkovich.gnu@gmail.com>
21881 * config/i386/i386.c (scalar_chain::convert_op): Fix description.
21882 (scalar_chain::convert_insn): Call convert_op for reg
21883 moves to handle undefined registers.
21885 2016-03-31 Nathan Sidwell <nathan@acm.org>
21888 * varasm.c (output_constructor_regular_field): Flush bitfield earlier.
21889 Assert we don't want to move backwards.
21891 2016-03-31 Kirill Yukhin <kirill.yukhin@intel.com>
21894 * config/i386/sse.md (define_mode_attr shuffletype): Fix typo.
21896 2016-03-31 Jakub Jelinek <jakub@redhat.com>
21898 PR rtl-optimization/70460
21899 * ira.c (indirect_jump_optimize): Don't substitute LABEL_REF
21900 with operand from REG_LABEL_OPERAND, instead substitute
21901 SET_SRC or REG_EQUAL note content if it is a LABEL_REF.
21902 Don't do anything for REG_NON_LOCAL_GOTO jumps.
21904 2016-03-31 Martin Liska <mliska@suse.cz>
21906 * passes.c (execute_one_pass): Do not call
21907 todo_after for a discarded function.
21909 2016-03-31 Bin Cheng <bin.cheng@arm.com>
21911 * tree-ssa-loop-ivopts.c (struct comp_cost): New scrach field.
21912 (no_cost, infinite_cost): Initialize the new field.
21913 (get_computation_cost_at): Record setup cost.
21914 (determine_use_iv_cost_address): Skip cost computation for sub
21915 uses if we can estimate it without losing accuracy.
21917 2016-03-30 Jan Hubicka <hubicka@ucw.cz>
21919 * tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can't get realistic
21921 * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also
21922 max_loop_iterations_int.
21923 (tree_unswitch_outer_loop): Likewise.
21924 * tree-ssa-loop-ivopts.c (avg_loop_niter): Likewise.
21925 * tree-vect-loop.c (vect_analyze_loop_2): Likewise.
21927 2016-03-30 Richard Biener <rguenther@suse.de>
21929 PR middle-end/70450
21930 * fold-const.c (extract_muldiv_1): Fix thinko in wide_int::from usage.
21932 2016-03-30 Jakub Jelinek <jakub@redhat.com>
21935 * config/i386/i386.c (ix86_expand_vector_set): Fix up argument order
21936 in gen_blendm expander.
21938 2016-03-30 Nick Clifton <nickc@redhat.com>
21941 * config/arm/arm.c (arm_reload_out_hi): Add code to handle the
21942 case where we are already provided with an SImode SUBREG.
21944 2016-03-30 H.J. Lu <hongjiu.lu@intel.com>
21947 * config/i386/i386.c (ix86_expand_epilogue): Properly check
21948 conflict between DRAP register and __builtin_eh_return.
21950 2016-03-30 Michael Matz <matz@suse.de>
21951 Richard Biener <rguenther@suse.de>
21954 * ipa-polymorphic-call.c (struct type_change_info): Change
21955 speculative to an unsigned allowing to limit the work we do.
21956 (csftc_abort_walking_p): New inline function..
21957 (check_stmt_for_type_change): Limit the number of may-defs
21958 skipped for speculative devirtualization to
21959 max-speculative-devirt-maydefs.
21960 * params.def (max-speculative-devirt-maydefs): New param.
21961 * doc/invoke.texi (--param max-speculative-devirt-maydefs): Document.
21963 2016-03-30 Mike Stump <mrs@gcc.gnu.org>
21966 * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Use when profiling
21969 2016-03-30 Patrick Palka <ppalka@gcc.gnu.org>
21971 PR tree-optimization/59124
21972 * tree-vrp.c (register_edge_assert_for_2): For NAME != CST1
21973 where NAME = A +- CST2 add the assertion A != (CST1 -+ CST2).
21975 2016-03-29 Jeff Law <law@redhat.com>
21977 * tree-ssa-coalesce.c (struct ssa_conflicts): Fix typo in comment.
21979 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
21981 * tree-ssa-loop-ivcanon.c (try_peel_loop): Change type of peel
21984 2016-03-29 Thomas Schwinge <thomas@codesourcery.com>
21986 * config/gnu.h (CPP_SPEC, LIB_SPEC): Don't override.
21987 * config/i386/gnu.h (STARTFILE_SPEC): Use gcrt1.o instead of
21988 gcrt0.o if linking dynamically.
21990 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
21993 * ipa-devirt.c (methods_equal_p): New function.
21994 (compare_virtual_tables): Use it.
21995 * cgraph.h (symbol_table::symbol_suffix_separator): Declare.
21996 * cgraphclones.c (clone_function_name_1): Use
21997 symbol_table::symbol_suffix_separator.
21998 * coverage.c (build_var): Likewise.
21999 * symtab.c (symbol_table::symbol_suffix_separator): New.
22001 2016-03-29 Jakub Jelinek <jakub@redhat.com>
22003 PR rtl-optimization/70429
22004 * combine.c (simplify_shift_const_1): For ASHIFTRT don't optimize
22005 (cst1 >> count) >> cst2 into (cst1 >> cst2) >> count if
22006 mode != result_mode.
22009 * tree-inline.c (remap_decls): Don't add_local_decl if cfun is null.
22011 PR tree-optimization/70405
22012 * ssa-iterators.h (num_imm_uses): Add missing braces.
22014 2016-03-29 Vladimir Makarov <vmakarov@redhat.com>
22016 PR rtl-optimization/68695
22017 * ira-color.c (allocno_copy_cost_saving): New.
22018 (improve_allocation): Use it.
22020 2016-03-29 Richard Henderson <rth@redhat.com>
22022 PR middle-end/70355
22023 * lower-subreg.c (simplify_subreg_concatn): Reject paradoxical subregs.
22025 2016-03-29 Richard Biener <rguenther@suse.de>
22027 PR middle-end/70424
22028 * ipa-prop.c (ipa_compute_jump_functions_for_edge): Always
22029 use alignment returned by get_pointer_alignment_1 if it is
22030 bigger than BITS_PER_UNIT.
22031 * builtins.c (get_pointer_alignment_1): Do not return true
22032 for alignment extracted from SSA info.
22034 2016-03-28 James Bowman <james.bowman@ftdichip.com>
22036 * config/ft32/ft32.opt (mnodiv): New.
22037 * config/ft32/ft32.md (*divsi3, *modsi3): Qualify with TARGET_NODIV.
22038 * doc/invoke.texi (FT32 Options -mnodiv): New.
22040 2016-03-28 Kirill Yukhin <kirill.yukhin@intel.com>
22043 * config/i386/i386.md (define_split, andn): Fix modes.
22045 2016-03-26 Richard Biener <rguenther@suse.de>
22046 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
22049 * ipa-inline-transform.c (inline_call): Pass opts_for_fn (to->decl)
22051 TREE_OPTIMIZATION (DECL_FUNCTION_SPECIFIC_OPTIMIZATION (to->decl))
22052 as 2nd argument to cl_optimization_restore().
22054 2016-03-25 Richard Henderson <rth@redhat.com>
22057 * config/aarch64/aarch64.c (aarch64_asm_output_pool_epilogue): New.
22058 * config/aarch64/aarch64-protos.h: Declare it.
22059 * config/aarch64/aarch64.h (ASM_OUTPUT_POOL_EPILOGUE): New.
22061 2016-03-25 Alan Modra <amodra@gmail.com>
22064 * config/rs6000/constraints.md (j): Simplify.
22065 * config/rs6000/predicates.md (easy_fp_constant): Exclude
22067 * config/rs6000/rs6000.md (zero_fp): New mode_attr.
22068 (mov<mode>_hardfloat, mov<mode>_hardfloat32, mov<mode>_hardfloat64,
22069 mov<mode>_64bit_dm, mov<mode>_32bit): Use zero_fp in place of j
22070 in all constraint alternatives.
22071 (movtd_64bit_nodm): Delete "j" constraint alternative.
22073 2016-03-24 Aldy Hernandez <aldyh@redhat.com>
22075 * tree-ssa-propagate.c: Enhance docs for
22076 SSA_PROP_NOT_INTERESTING.
22078 2016-03-24 Aldy Hernandez <aldyh@redhat.com>
22080 * doc/extend.texi: Fix typo in documentation to pure attribute.
22082 2016-03-24 John David Anglin <danglin@gcc.gnu.org>
22085 * config/pa/pa.md (bswapdi2): Use a scratch register.
22087 2016-03-24 Richard Henderson <rth@redhat.com>
22089 PR middle-end/69845
22090 * fold-const.c (extract_muldiv_1): Correct test for multiplication
22093 2016-03-24 Uros Bizjak <ubizjak@gmail.com>
22095 * config/i386/i386.md (*anddi3_doubleword): Generate AND insn
22096 using ix86_expand_binary_operator instead of gen_andsi3.
22098 2016-03-24 Richard Biener <rguenther@suse.de>
22100 PR tree-optimization/70396
22101 * tree-vect-stmts.c (vectorizable_comparison): Use
22102 get_vectype_for_scalar_type.
22104 2016-03-24 Richard Biener <rguenther@suse.de>
22106 PR middle-end/70370
22107 * gimplify.c (gimplify_asm_expr): Handle !allows_mem outputs
22108 with register bases.
22110 2016-03-24 Richard Biener <rguenther@suse.de>
22112 PR tree-optimization/70372
22113 * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Use
22114 build_all_ones_cst to also handle vector types correctly.
22116 2016-03-23 Michael Meissner <meissner@linux.vnet.ibm.com>
22119 * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Do not set
22122 2016-03-23 Marek Polacek <polacek@redhat.com>
22125 * doc/invoke.texi: Document -Wignored-attributes.
22127 2016-03-23 Bin Cheng <bin.cheng@arm.com>
22129 PR tree-optimization/69042
22130 * params.def (PARAM_IV_CONSIDER_ALL_CANDIDATES_BOUND): Increase the
22131 parameter from 30 to 40.
22133 2016-03-23 Bin Cheng <bin.cheng@arm.com>
22135 PR tree-optimization/69042
22136 * tree-ssa-loop-ivopts.c (add_iv_candidate_for_use): Add IV cand
22137 for use with constant offset stripped in base.
22139 2016-03-23 Richard Biener <rguenther@suse.de>
22141 PR middle-end/70251
22142 * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Adjust
22143 mode compatibility check.
22144 (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise.
22146 2016-03-23 Jeff Law <law@redhat.com>
22148 PR tree-optimization/64058
22149 * tree-ssa-coalesce.c (struct coalesce_pair): Add new field
22151 (struct ssa_conflicts): Move up earlier in the file.
22152 (conflicts_, var_map_): New static variables.
22153 (initialize_conflict_count): New function to initialize the
22154 CONFLICT_COUNT field for each conflict pair.
22155 (compare_pairs): Lazily initialize the conflict count and use it
22156 as the first tie-breaker.
22157 (sort_coalesce_list): Add new arguments conflicts, map. Initialize
22158 and wipe conflicts_ and map_ around the call to qsort. Remove
22159 special case for 2 coalesce pairs.
22160 * bitmap.c (bitmap_count_unique_bits): New function.
22161 (bitmap_count_bits_in_word): New function, extracted from
22163 (bitmap_count_bits): Use bitmap_count_bits_in_word.
22164 * bitmap.h (bitmap_count_unique_bits): Declare it.
22166 2016-03-23 Ilya Enkovich <enkovich.gnu@gmail.com>
22169 * config/i386/sol2.h (ASM_OUTPUT_DEF_FROM_DECLS): Follow
22170 transparent alias chain for decl assembler name.
22171 * config/sol2.c (solaris_assemble_visibility): Likewise.
22173 2016-03-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
22175 * config/arm/arm1020e.md (1020call_op): Reduce reservation
22177 (v10_fdivs): Likewise.
22178 (v10_fdivd): Likewise.
22180 2016-03-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
22183 * config/arm/driver-arm.c (host_detect_local_cpu): Reorder exit logic
22184 to not call fclose twice on file.
22186 2016-03-23 Jakub Jelinek <jakub@redhat.com>
22188 PR tree-optimization/70354
22189 * tree-vect-patterns.c (vect_recog_vector_vector_shift_pattern): If
22190 oprnd0 is wider than oprnd1 and there is a cast from the wider
22191 type to oprnd1, mask it with the mask of the narrower type.
22194 * config/i386/i386.md (*anddi3_doubleword, *<code>di3_doubleword):
22195 Optimize TARGET_STV splitters, if high or low word of last argument
22198 2016-03-22 Jeff Law <law@redhat.com>
22201 tree-ssa-threadbackward.c
22202 (fsm_find_control_statement_thread_paths): Correctly distinguish
22203 between old style jump threads vs FSM jump threads.
22205 2016-03-22 Ilya Enkovich <enkovich.gnu@gmail.com>
22208 * config/i386/i386.c (scalar_chain::convert_op): Support
22209 uninitialized register usage case.
22211 2016-03-22 Richard Biener <rguenther@suse.de>
22213 PR middle-end/70251
22214 * genmatch.c (gen_transform): Adjust last parameter to a three-state
22216 (capture::gen_transform): ... to change behavior when substituting
22217 a condition into cond or not-cond expr context.
22218 (dt_simplify::gen_1): Adjust.
22219 * gimple-match-head.c: Include gimplify.h for unshare_expr.
22220 * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Revert
22221 last change and instead change to
22222 A + (B vcmp C ? 1 : 0) -> A - (B vcmp C ? -1 : 0).
22223 (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise.
22225 2016-03-22 Anthony Green <green@moxielogic.com>
22227 * config/moxie/moxiebox.h (CC1_SPEC): Define. Fix endianness
22228 issue for moxiebox targets.
22229 (CC1PLUS_SPEC): Ditto.
22231 2016-03-22 Richard Biener <rguenther@suse.de>
22233 PR middle-end/70333
22234 * fold-const.c (extract_muldiv_1): Properly perform multiplication
22237 2016-03-22 Kirill Yukhin <kirill.yukhin@intel.com>
22239 * config/i386/i386.c (def_builtin): Remove duplicated functionality.
22241 2016-03-22 Kirill Yukhin <kirill.yukhin@intel.com>
22244 * config/i386/i386.c (def_builtin): Handle
22245 OPTION_MASK_ISA_AVX512VL to be and-ed with other
22247 (const struct builtin_description bdesc_special_args[]):
22248 Remove duplicate ISA bits.
22250 2016-03-22 Jakub Jelinek <jakub@redhat.com>
22253 * config/i386/i386.c (ix86_expand_vecop_qihi): Don't bother computing
22254 d.perm[i] for i >= d.nelt. If not full_interleave, compute d.perm[i]
22255 in a way that works also for AVX512BW.
22258 * config/i386/i386.md (cvtsd2ss splitter): Unpack in destination
22259 instead of source if operands[1] is xmm16 and above and
22260 !TARGET_AVX512VL. Use avx512f_vec_dupv16sf_1 instead of
22261 vec_interleave_lowv4sf if we need to unpack xmm16 and above.
22264 * gimplify.c (gimplify_modify_expr): Call gimple_set_no_warning
22265 on assign if (*from_p) is a comparison, set it to
22266 TREE_NO_WARNING (*from_p).
22268 2016-03-21 Jakub Jelinek <jakub@redhat.com>
22270 PR middle-end/70326
22271 * lra.c (restore_scratches): Ignore deleted insns.
22273 2016-03-21 Marc Glisse <marc.glisse@inria.fr>
22274 Jakub Jelinek <jakub@redhat.com>
22276 PR tree-optimization/70317
22277 * match.pd (cmp @0 @0): Pass @0 instead of TYPE_MODE (TREE_TYPE (@0))
22280 2016-03-21 Uros Bizjak <ubizjak@gmail.com>
22283 * config/i386/i386.md (movxi): Use ix86_expand_vector_move instead
22284 of ix86_expand_move.
22286 (movti): Use general_operand for operand 1 predicate.
22288 2016-03-21 Martin Liska <mliska@suse.cz>
22290 * hsa-dump.c (dump_hsa_insn_1): dump default branch of SBR
22292 (dump_hsa_symbol): Dump BRIG offset of hsa_symbols.
22294 2016-03-21 Martin Liska <mliska@suse.cz>
22297 * ipa-icf.c (sem_function::parse): Skip static
22298 constructors and destructors.
22300 2016-03-21 Jakub Jelinek <jakub@redhat.com>
22303 * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If IDENT is
22304 function-like macro, peek following token(s) if it is followed
22305 by CPP_OPEN_PAREN token with optional padding in between, and
22306 if not, don't treat it like a macro.
22308 2016-03-21 Thomas Schwinge <thomas@codesourcery.com>
22309 Alexander Monakov <amonakov@ispras.ru>
22311 * config/nvptx/nvptx.c (nvptx_option_override): Don't emit sorry
22312 for the stabs debug format.
22314 2016-03-21 Richard Biener <rguenther@suse.de>
22316 PR tree-optimization/70310
22317 * tree-vect-generic.c (expand_vector_condition): Fold the built
22320 2016-03-21 Kirill Yukhin <kirill.yukhin@intel.com>
22323 * config/i386/sse.md: (define_insn "*vec_dup<mode>"/AVX2):
22324 Block third alternative for AVX-512VL target,
22326 2016-03-21 Martin Liska <mliska@suse.cz>
22329 * hsa-brig.c (emit_function_directives): Mark unemitted
22330 global variables for emission.
22331 * hsa-gen.c (hsa_symbol::hsa_symbol): Initialize a new flag.
22332 (get_symbol_for_decl): Likewise.
22333 * hsa.h (struct hsa_symbol): New flag.
22335 2016-03-21 Richard Biener <rguenther@suse.de>
22337 PR tree-optimization/70288
22338 * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Make sure
22339 we do not estimate unsimplified all-constant conditionals or
22340 switches as optimized away.
22342 2016-03-21 Andrey Belevantsev <abel@ispras.ru>
22344 PR rtl-optimization/69102
22345 * sched-deps.c (sched_analyze_insn): Do not set last_args_size field
22346 when we have a readonly dependency context.
22348 2016-03-18 Jeff Law <law@redhat.com>
22350 PR rtl-optimization/70263
22351 * ira.c (memref_used_between_p): Assert we found END in the insn chain.
22352 (update_equiv_regs): When trying to move a store to after the insn
22353 that sets the source of the store, make sure the store occurs after
22354 the insn that sets the source of the store. When successful note
22355 the REG_EQUIV note created in the dump file.
22357 2016-03-16 David Wohlferd <dw@LimeGreenSocks.com>
22358 Bernd Schmidt <bschmidt@redhat.com>
22360 * doc/extend.texi: Document more potential problems with basic asms.
22362 2016-03-18 Bernd Schmidt <bschmidt@redhat.com>
22364 PR rtl-optimization/70278
22365 * lra-constraints.c (split_reg): Handle the case where biggest_mode is
22368 2016-03-18 Jason Merrill <jason@redhat.com>
22370 * calls.c (load_register_parameters): Fix zero size sibcall logic.
22372 2016-03-18 Kirill Yukhin <kirill.yukhin@intel.com>
22374 * config/i386/sse.md: Use vpbroadcastq for broadcasting DF
22375 values to 128b regs.
22377 2016-03-18 Ilya Enkovich <enkovich.gnu@gmail.com>
22379 PR tree-optimization/70252
22380 * tree-vect-stmts.c (supportable_widening_operation): Check resulting
22381 boolean vector has a proper number of elements.
22382 (supportable_narrowing_operation): Likewise.
22384 2016-03-18 Tom de Vries <tom@codesourcery.com>
22387 * cgraph.c (cgraph_node::get_body): Set dump_file to NULL after save.
22389 2016-03-18 Jakub Jelinek <jakub@redhat.com>
22391 * reload1.c (emit_input_reload_insns): Use simplify_replace_rtx
22392 instead of replace_rtx for DEBUG_INSNs.
22394 2016-03-18 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
22396 * config/i386/znver1.md : Fix latencies of FP/SSE/AVX
22397 load type reservations.
22399 2016-03-17 John David Anglin <danglin@gcc.gnu.org>
22402 * config/pa/constraints.md: Revert 2015-02-13 change. Use
22403 define_constraint for "Q" and "T" constraints.
22405 2016-03-17 Evandro Menezes <e.menezes@samsung.com>
22407 Tweak the pipeline model for Exynos M1
22409 * config/aarch64/aarch64.c (exynosm1_tunings): Enable weak prefetching
22412 2016-03-17 David Malcolm <dmalcolm@redhat.com>
22415 * diagnostic-show-locus.c (compatible_locations_p): Handle the case
22416 where one or both locations aren't within a line_map.
22418 2016-03-17 H.J. Lu <hongjiu.lu@intel.com>
22421 * opts.c (finish_options): Don't set flag_pie to the default if
22422 -fpic, -fPIC, -fno-pic or -fno-PIC is used. Set flag_pic to 0
22425 2016-03-17 Joern Rennecke <joern.rennecke@embecosm.com>
22427 * config/i386/i386.md (*movv4qicc_insn+1..36): Pass
22428 true as ALL_REGS argument to replace_rtx.
22430 2016-03-17 Richard Biener <rguenther@suse.de>
22433 * dwarf2out.c (dwarf2out_early_finish): Process deferred_asm_name
22436 2016-03-17 Jakub Jelinek <jakub@redhat.com>
22439 * rtl.h (replace_rtx): Add ALL_REGS argument.
22440 * rtlanal.c (replace_rtx): Likewise. If true, use REGNO
22441 equality and assert mode is the same, instead of just rtx pointer
22443 * config/i386/i386.md (mov + arithmetics with load peephole): Pass
22444 true as ALL_REGS argument to replace_rtx.
22446 2016-03-17 Ilya Enkovich <enkovich.gnu@gmail.com>
22448 * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Apply
22449 for boolean vector with vector mode only.
22450 (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise.
22452 2016-03-17 Nick Clifton <nickc@redhat.com>
22455 * config/rx/rx.c (rx_print_integer): Print negative constants in
22458 2016-03-17 Jakub Jelinek <jakub@redhat.com>
22461 * rtlanal.c (replace_rtx): Revert 2016-03-16 change.
22463 2016-03-16 Richard Henderson <rth@redhat.com>
22464 Richard Biener <rguenth@suse.de>
22466 PR middle-end/70240
22467 PR middle-end/68215
22469 * gimplify.c (gimplify_expr) [VEC_COND_EXPR]: Gimplify the
22470 first operand as is_gimple_condexpr.
22472 PR middle-end/70240
22473 PR middle-end/68215
22475 2015-12-11 Eric Botcazou <ebotcazou@adacore.com>
22476 * tree-vect-generic.c (tree_vec_extract): Remove GSI parameter.
22477 Do not gimplify the result.
22478 (do_unop): Adjust call to tree_vec_extract.
22479 (do_binop): Likewise.
22480 (do_compare): Likewise.
22481 (do_plus_minus): Likewise.
22482 (do_negate): Likewise.
22483 (expand_vector_condition): Likewise.
22484 (do_cond): Likewise.
22486 2016-03-16 Richard Henderson <rth@redhat.com>
22489 * config/aarch64/aarch64.c (virt_or_elim_regno_p): New.
22490 (aarch64_classify_address): Use it.
22491 (aarch64_legitimize_address): Force all subexpressions of PLUS
22492 into registers. Simplify as (sfp+const)+reg or (reg+reg)+const.
22494 2016-03-16 Jakub Jelinek <jakub@redhat.com>
22495 Richard Biener <rguenth@suse.de>
22498 * rtlanal.c (replace_rtx): For REG, if from is a REG,
22499 return to even if only REGNO is equal, and assert
22502 2016-03-11 Jeff Law <law@redhat.com>
22504 PR rtl-optimization/70224
22505 * reorg.c (relax_delay_slots): Pass right argument to CROSSING_JUMP_P.
22507 2016-03-16 Richard Henderson <rth@redhat.com>
22509 PR middle-end/70199
22510 * function.h (struct function): Add has_forced_label_in_static.
22511 * gimplify.c (force_labels_r): Set it.
22512 * lto-streamer-in.c (input_struct_function_base): Read it.
22513 * lto-streamer-out.c (output_struct_function_base): Write it.
22514 * tree-inline.c (has_label_address_in_static_1): Remove.
22515 (copy_forbidden): Remove fndecl parameter; test
22516 has_forced_label_in_static.
22517 (inline_forbidden_p): Update call to copy_forbidden.
22518 (tree_versionable_function_p): Likewise.
22519 * ipa-chkp.c (chkp_instrumentable_p): Likewise.
22520 (chkp_versioning): Likewise.
22521 * tree-inline.h (copy_forbidden): Update decl.
22523 2016-03-16 Marek Polacek <polacek@redhat.com>
22526 * cgraphunit.c (cgraph_node::expand_thunk): Also build call to the
22527 function being thunked if the result type doesn't have fixed size.
22528 * gimplify.c (gimplify_modify_expr): Also set LHS if the result type
22529 doesn't have fixed size.
22531 2016-03-16 Bin Cheng <bin.cheng@arm.com>
22533 * tree-vect-loop.c (vect_analyze_loop_2): Fix wrong dump info by
22534 reporting malformed loop nest.
22536 2016-03-16 Tom de Vries <tom@codesourcery.com>
22539 * ipa-devirt.c (possible_polymorphic_call_targets): Move
22540 nodes.length () == 1 test to before first nodes[0] access.
22542 2016-03-16 Tom de Vries <tom@codesourcery.com>
22544 PR tree-optimization/68715
22545 * graphite-scop-detection.c (scop_detection::merge_sese): Add missing
22546 single_pred_p test.
22548 2016-03-16 Tom de Vries <tom@codesourcery.com>
22550 PR tree-optimization/68809
22551 * graphite-scop-detection.c (same_close_phi_node): Test if result types
22554 2016-03-16 Carlos O'Donell <carlos@redhat.com>
22555 Sandra Loosemore <sandra@codesourcery.com>
22557 * doc/extend.texi (Common Function Attributes): Describe ifunc impact
22558 on leaf attribute. Mention ELF interposition problems.
22560 2016-03-16 Alan Modra <amodra@gmail.com>
22562 PR rtl-optimization/69195
22563 PR rtl-optimization/47992
22564 * ira.c (indirect_jump_optimize): Ignore artificial defs.
22567 2016-03-15 Eric Botcazou <ebotcazou@adacore.com>
22570 * dwarf2out.c (flush_limbo_die_list): Really flush the limbo list.
22572 2016-03-15 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
22574 * config/avr/avr.md (rotl<mode>3): Set mode for operand 2.
22576 2016-03-15 Jakub Jelinek <jakub@redhat.com>
22578 PR rtl-optimization/70222
22579 * combine.c (simplify_shift_const_1): For A >> B >> C LSHIFTRT
22580 optimization if mode is different from result_mode, queue up masking
22581 of the result in outer_op. Formatting fix.
22583 PR middle-end/70239
22584 * tree-ssa-sccvn.c (VN_INFO_GET): Use safe_grow_cleared instead
22587 2016-03-15 Andrey Belevantsev <abel@ispras.ru>
22589 PR rtl-optimization/69032
22590 * sel-sched-ir.c (get_seqno_by_preds): Include both insn and head when
22591 looping backwards over basic block insns.
22593 2016-03-15 Andrey Belevantsev <abel@ispras.ru>
22596 * sel-sched-ir.c (merge_expr): Avoid changing the speculative pattern
22597 to non-speculative when propagating trap bits.
22599 2016-03-15 Andrey Belevantsev <abel@ispras.ru>
22601 PR rtl-optimization/63384
22602 * sel-sched.c (invoke_aftermath_hooks): Do not decrease issue_more on
22603 DEBUG_INSN_P insns.
22605 2016-03-15 Andrey Belevantsev <abel@ispras.ru>
22608 * sched-deps.c (get_implicit_reg_pending_clobbers): New function,
22609 factored out from ...
22610 (sched_analyze_insn): ... here.
22611 * sched-int.h (get_implicit_reg_pending_clobbers): Declare it.
22612 * sel-sched-ir.c (setup_id_implicit_regs): New function, use
22613 get_implicit_reg_pending_clobbers in it.
22614 (setup_id_reg_sets): Use setup_id_implicit_regs.
22615 (deps_init_id): Ditto.
22617 2016-03-15 Tom de Vries <tom@codesourcery.com>
22620 * cgraph.c (cgraph_node::get_body): Save, reset and restore
22622 * passes.c (execute_one_ipa_transform_pass): Add missing argument to
22623 execute_function_dump.
22624 (execute_one_pass): Don't dump function if it will be dumped after ipa
22627 2016-03-15 Segher Boessenkool <segher@kernel.crashing.org>
22629 * genrecog.c (match_pattern_2): If pred is NULL don't call
22630 safe_predicate_mode on it.
22632 2016-03-14 Jakub Jelinek <jakub@redhat.com>
22634 PR middle-end/70219
22635 * lra-constraints.c (delete_move_and_clobber): Change assertion
22636 to also allow dregno == 0.
22638 2016-03-14 Richard Henderson <rth@redhat.com>
22641 * tree-ssa-reassoc.c (ovce_extract_ops, optimize_vec_cond_expr): New.
22642 (can_reassociate_p): Allow ANY_INTEGRAL_TYPE_P.
22643 (reassociate_bb): Use optimize_vec_cond_expr; avoid
22644 optimize_range_tests, attempt_builtin_copysign and attempt_builtin_powi
22647 2016-03-14 Bernd Schmidt <bschmidt@redhat.com>
22650 * lra-lives.c (process_bb_lives): Also update biggest mode for hard
22652 (lra_create_live_ranges_1): initialize hard register biggest_mode to
22654 * lra-constraints.c (split_reg): For hard regs, try to find the
22655 biggest single-register mode used in the function.
22657 2016-03-14 Richard Biener <rguenther@suse.de>
22659 PR tree-optimization/56365
22660 * tree-ssa-phiopt.c (minmax_replacement): Handle alternate
22661 constants to compare against.
22663 2016-03-14 Segher Boessenkool <segher@kernel.crashing.org>
22666 * config/rs6000/rs6000.md (*ctr<mode>_internal1, *ctr<mode>_internal2,
22667 *ctr<mode>_internal5, *ctr<mode>_internal6): Also allow "d" as output.
22668 (define_split for the GPR case): Use int_reg_operand instead of
22669 gpc_reg_operand for the output.
22671 2016-03-14 Tom de Vries <tom@codesourcery.com>
22673 PR tree-optimization/70045
22674 * graphite-isl-ast-to-gimple.c (graphite_create_new_loop_guard): Unshare
22675 create_empty_if_region_on_edge argument.
22677 2016-03-13 Eric Botcazou <ebotcazou@adacore.com>
22679 * config/arm/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Define.
22680 (STACK_CHECK_PROTECT): Likewise.
22681 * config/i386/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise
22682 (STACK_CHECK_PROTECT): Likewise.
22683 * config/rs6000/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise
22684 (STACK_CHECK_PROTECT): Likewise.
22685 * config/rs6000/vxworksae.h (STACK_CHECK_PROTECT): Likewise.
22686 * config/sparc/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
22687 (STACK_CHECK_PROTECT): Likewise.
22689 2016-03-12 Andrey Belevantsev <abel@ispras.ru>
22691 PR rtl-optimization/69307
22692 * sel-sched.c (choose_best_pseudo_reg): Properly check for hard
22693 registers in modes that span more than one register.
22695 2016-03-12 Vladimir Makarov <vmakarov@redhat.com>
22698 * lra-constraints.c (delete_move_and_clobber): New.
22699 (remove_inheritance_pseudos): Use it.
22701 2016-03-12 Eric Botcazou <ebotcazou@adacore.com>
22704 * calls.c (emit_library_call_value_1): Clear the ECF_NOTHROW flag if
22705 the libcall is LCT_THROW.
22706 * explow.c (probe_stack_range): Pass LCT_THROW to emit_library_call
22707 for the checking routine.
22709 2016-03-11 Michael Meissner <meissner@linux.vnet.ibm.com>
22712 * config/rs6000/rs6000.md (round32<mode>2_fprs): Do not do the
22713 optimization if we have direct move.
22714 (roundu32<mode>2_fprs): Likewise.
22716 2016-03-11 Bernd Schmidt <bschmidt@redhat.com>
22719 * lra-remat.c (operand_to_remat): Disallow hard regs in the value t
22721 (reg_overlap_for_remat_p): Renamed from input_regno_present_p.
22722 Arguments swapped. All callers changed. Take reg_renumber into
22723 account, and Calculate and compare register ranges for hard regs.
22725 2016-03-11 Jeff Law <law@redhat.com>
22727 PR tree-optimization/70190
22728 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
22729 Handle cases where we can not extract the taken edge, even though we
22730 found a constant value.
22732 PR tree-optimization/64058
22733 * tree-ssa-coalesce.c (struct coalesce_pair): Add new field INDEX.
22734 (num_coalesce_pairs): Move up earlier in file.
22735 (find_coalesce_pair): Initialize the INDEX field for each pair
22737 (compare_pairs): No longer sort on the elements in each pair.
22738 Instead break ties with the index of the coalesce pair.
22740 2016-03-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
22743 * config/aarch64/aarch64-protos.h
22744 (aarch64_save_restore_target_globals): New prototype.
22745 * config/aarch64/aarch64-c.c (aarch64_pragma_target_parse):
22746 Call the above when popping pragma.
22747 * config/aarch64/aarch64.c (aarch64_save_restore_target_globals):
22749 (aarch64_set_current_function): Rewrite using the above.
22751 2016-03-11 Jakub Jelinek <jakub@redhat.com>
22753 PR tree-optimization/70177
22754 * gimple-expr.h (extract_ops_from_tree_1): Renamed to ...
22755 (extract_ops_from_tree): ... this. In the 2 argument
22756 overload remove _1 suffix.
22757 * gimple-expr.c (extract_ops_from_tree_1): Renamed to ...
22758 (extract_ops_from_tree): ... this.
22759 * gimple.c (gimple_build_assign, gimple_assign_set_rhs_from_tree):
22761 * tree-ssa-loop-niter.c (derive_constant_upper_bound): Likewise.
22762 * tree-ssa-forwprop.c (defcodefor_name): Call 3 operand
22763 extract_ops_from_tree instead of 2 operand one.
22765 2016-03-11 Alan Lawrence <alan.lawrence@arm.com>
22767 PR tree-optimization/70013
22768 * tree-sra.c (analyze_access_subtree): Also set grp_unscalarized_data
22769 for constant-pool entries.
22771 2016-03-11 Jakub Jelinek <jakub@redhat.com>
22773 PR rtl-optimization/70174
22774 * expmed.c (store_bit_field_using_insv): Use gen_lowpart_if_possible
22775 followed by gen_lowpart on force_reg instead of just gen_lowpart.
22777 PR tree-optimization/70169
22778 * tree-ssa-loop.c (gen_lsm_tmp_name): Handle FUNCTION_DECL and
22779 LABEL_DECL like VAR_DECL. Emit nothing instead of gcc_unreachable
22782 2016-03-11 Ilya Enkovich <enkovich.gnu@gmail.com>
22783 Jakub Jelinek <jakub@redhat.com>
22786 * config/i386/i386.c (scalar_chain::convert_reg): Skip uses
22787 of uninitialized values.
22789 2016-03-11 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
22791 * config/s390/s390.md ("trunctddd2"): Turn former define_insn into
22793 ("*trunctddd2"): New pattern definition.
22794 ("trunctdsd2"): Set prep_for_short_prec rounding mode for the
22797 2016-03-11 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
22799 * config/s390/s390.md (BFP_RND_*, DFP_RND_*): Add new constant
22800 definitions for BFP and DFP rounding modes.
22801 ("fixuns_truncdddi2", "fixuns_trunctddi2")
22802 ("fixuns_trunc<BFP:mode><GPR:mode>2", "fixuns_trunc<mode>si2")
22803 ("fix_trunc<DSF:mode><GPR:mode>2", "fix_trunc<mode>di2")
22804 ("fix_trunctf<mode>2"): Use the new constants instead of magic
22807 2016-03-11 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
22809 * config/s390/constraints.md: Adjust comment.
22810 ("Y"): Adjust comment. Rename s390_decompose_shift_count to
22811 s390_decompose_addrstyle_without_index.
22812 * config/s390/predicates.md (shift_count_or_setmem_operand):
22813 Rename to setmem_operand.
22814 * config/s390/s390-protos.h
22815 (s390_decompose_shift_count): Rename to
22816 s390_decompose_addrstyle_without_index.
22817 * config/s390/s390.c (s390_decompose_shift_count)
22818 (s390_mem_constraint, print_shift_count_operand)
22819 (print_operand_address, print_operand): Rename
22820 s390_decompose_shift_count to
22821 s390_decompose_addrstyle_without_index and rename
22822 print_shift_count_operand to print_addrstyle_operand troughout the
22824 * config/s390/s390.md ("setmem_long_<P:mode>", "*setmem_long")
22825 ("*setmem_long_and", "*setmem_long_31z", "*setmem_long_and_31z"):
22826 Rename shift_count_or_setmem_operand to setmem_operand.
22827 * config/s390/vx-builtins.md ("vec_insert<mode>")
22828 ("vec_promote<mode>"): Replace shift_count_or_setmem_operand with
22831 2016-03-10 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
22834 * config/rs6000/rs6000.c (rs6000_expand_atomic_compare_and_swap):
22835 Handle overlapping retval and newval.
22837 2016-03-10 Nick Clifton <nickc@redhat.com>
22840 * config/aarch64/aarch64.c
22841 (aarch64_override_options_after_change_1): When forcing
22842 flag_omit_frame_pointer to be true, use a special value that can
22843 be detected if this function is called again, thus preventing
22844 flag_omit_leaf_frame_pointer from being forced to be false.
22846 2016-03-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
22848 * common/config/aarch64/aarch64-common.c (aarch64_handle_option):
22849 Set x_flag_omit_leaf_frame_pointer when handling
22850 -momit-leaf-frame-pointer.
22852 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
22855 * cgraph.c (cgraph_node::dump): Dump split_part and
22856 indirect_call_target.
22857 * cgraph.h (cgraph_node): Add indirect_call_target flag.
22858 * ipa.c (has_addr_references_p): Cleanup.
22859 (is_indirect_call_target_p): New.
22860 (walk_polymorphic_call_targets): Do not mark virtuals that may be
22861 called indirectly as local.
22862 (symbol_table::remove_unreachable_nodes): Compute indirect_call_target.
22864 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
22867 * ipa-devirt.c (possible_polymorphic_call_targets): Do not ICE
22868 on cxa_pure_virtual.
22870 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
22873 * tree.c (free_lang_data_in_decl): Clear visibility of TYPE_DECL.
22875 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
22878 * tree.c (need_assembler_name_p): Only record main variant type names.
22880 2016-03-10 Christophe Lyon <christophe.lyon@linaro.org>
22883 * config/aarch64/aarch64.h (TARGET_FIX_ERR_A53_843419_DEFAULT):
22884 Always define to 0 or 1.
22885 (TARGET_FIX_ERR_A53_843419): New macro.
22886 * config/aarch64/aarch64-elf-raw.h
22887 (TARGET_FIX_ERR_A53_843419_DEFAULT): Update for above changes.
22888 * config/aarch64/aarch64-linux.h: Likewise.
22889 * config/aarch64/aarch64.c
22890 (aarch64_override_options_after_change_1): Do not default
22891 aarch64_nopcrelative_literal_loads to true if Cortex-A53 erratum
22893 (aarch64_attributes): Handle fix-cortex-a53-843419.
22894 (aarch64_can_inline_p): Likewise.
22895 * config/aarch64/aarch64.opt (aarch64_fix_a53_err843419): Save.
22897 2016-03-10 Alan Lawrence <alan.lawrence@arm.com>
22898 Jakub Jelinek <jakub@redhat.com>
22900 * common.opt (funconstrained-commons, flag_unconstrained_commons): New.
22901 * tree.c (array_at_struct_end_p): Do not limit to size of decl for
22902 DECL_COMMONS if flag_unconstrained_commons is set.
22903 * tree-dfa.c (get_ref_base_and_extent): Likewise.
22904 * doc/invoke.texi (Optimize Options): Add -funconstrained-commons.
22905 (funconstrained-commons): Document.
22907 2016-03-10 Christophe Lyon <christophe.lyon@linaro.org>
22909 * config/aarch64/t-aarch64 (OPTIONS_H_EXTRA): Add
22910 aarch64-fusion-pairs.def and aarch64-tuning-flags.def
22912 2016-03-10 Ilya Enkovich <enkovich.gnu@gmail.com>
22914 * tree-vect-stmts.c (vectorizable_mask_load_store): Check mask
22915 has a proper number of elements.
22917 2016-03-10 Alan Modra <amodra@gmail.com>
22919 PR rtl-optimization/69195
22920 PR rtl-optimization/47992
22921 * ira.c (recorded_label_ref): Delete.
22922 (update_equiv_regs): Return void.
22923 (indirect_jump_optimize): New function.
22924 (ira): Call indirect_jump_optimize and delete_trivially_dead_insns
22925 before regstat_compute_ri. Don't rebuild_jump_labels here.
22926 Delete update_regstat.
22928 2016-03-10 Richard Biener <rguenther@suse.de>
22930 PR tree-optimization/70128
22931 * tree-ssa-structalias.c (set_uids_in_ptset): Set
22932 vars_contains_nonlocal for any FUNCTION_DECL or LABEL_DECL.
22934 2016-03-09 Jakub Jelinek <jakub@redhat.com>
22936 PR tree-optimization/70152
22937 * tree-sra.c (replace_removed_params_ssa_names): Copy over
22938 SSA_NAME_OCCURS_IN_ABNORMAL_PHI from old_name to new_name.
22941 * config/i386/i386.md (truncdfsf2 splitter): Use gen_vec_concatv2df
22942 instead of gen_sse2_loadlpd.
22943 * config/i386/sse.md (*vec_concatv2df): Rename to...
22944 (vec_concatv2df): ... this.
22946 PR tree-optimization/70127
22947 * fold-const.c (operand_equal_p): Revert the 2015-10-28 change.
22949 2016-03-09 David Malcolm <dmalcolm@redhat.com>
22953 * diagnostic-show-locus.c (compatible_locations_p): New function.
22954 (layout::layout): Sanitize ranges using compatible_locations_p.
22956 2016-03-09 David Malcolm <dmalcolm@redhat.com>
22960 * diagnostic-show-locus.c (layout_range::layout_range): Replace
22961 location_range param with three const expanded_locations * and a
22963 (layout::layout): Replace call to
22964 rich_location::lazily_expand_location with get_expanded_location.
22965 Extract the range and perform location expansion here, passing
22966 the results to the layout_range ctor.
22967 * diagnostic.c (source_range::debug): Delete.
22968 * diagnostic.h (diagnostic_expand_location): Reimplement in terms
22969 of rich_location::get_expanded_location.
22970 * gcc-rich-location.c (get_range_for_expr): Delete.
22971 (gcc_rich_location::add_expr): Reimplement to avoid the
22972 rich_location::add_range overload that took a location_range,
22973 passing a location_t instead.
22975 2016-03-09 Richard Biener <rguenther@suse.de>
22976 Jakub Jelinek <jakub@redhat.com>
22978 PR tree-optimization/70138
22979 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
22980 Also skip vect_double_reduction_def.
22982 2016-03-09 Jakub Jelinek <jakub@redhat.com>
22985 * config/i386/sse.md (*vec_extract<mode>): Use %0 instead of %k0
22986 if the operand is "m".
22988 2016-03-09 Nathan Sidwell <nathan@acm.org>
22990 * config/nvptx/nvptx.c (nvptx_option_override): Don't kill debug level.
22992 2016-03-09 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
22994 * config/i386/i386.c (processor_target_table): Fix cost table
22995 intialization order for znver1.
22997 2016-03-08 Jakub Jelinek <jakub@redhat.com>
22999 * ipa-polymorphic-call.c (walk_ssa_copies): Fix spelling
23000 - becuase -> because.
23001 * ipa-reference.c (ignore_module_statics): Likewise.
23002 * cgraph.c (cgraph_node::get_body): Likewise.
23003 * ipa-inline.c (early_inliner): Likewise.
23004 * ipa-devirt.c (types_same_for_odr): Likewise.
23005 * tree-streamer-out.c (pack_ts_type_common_value_fields): Likewise.
23006 * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Likewise.
23008 2016-03-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
23010 * tree-ssa-math-opts.c: Fix typo in comment.
23012 2016-03-08 Jakub Jelinek <jakub@redhat.com>
23015 * config/i386/i386.c (scalar_chain::make_vector_copies,
23016 scalar_chain::convert_reg): Call end_sequence in between
23017 get_insns and emit_conversion_insns rather than after both
23020 2016-03-07 Uros Bizjak <ubizjak@gmail.com>
23023 * config/i386/i386.h (machine_function): Add
23024 pc_thunk_call_expanded flag.
23025 (ix86_pc_thunk_call_expanded): New define.
23026 * config/i386/i386.md (set_got, set_got_labelled): New expanders.
23027 (*set_got): Rename insn pattern from set_got.
23028 (*set_got_labelled): Rename inst pattern from set_got_labelled.
23029 * config/i386/i386.c (ix86_compute_frame_layout): Use
23030 ix86_pc_thunk_call_expanded to prevent red-zone.
23032 2016-03-07 Martin Jambor <mjambor@suse.cz>
23034 * hsa.h (hsa_get_ctor_statements): Declare.
23035 (hsa_get_dtor_statements): Likewise.
23036 (hsa_get_kernel_dispatch_type): Likewise.
23037 * hsa.c (hsa_get_ctor_statements): New function.
23038 (hsa_get_dtor_statements): Likewise.
23039 (hsa_get_kernel_dispatch_type): Likewise.
23040 * hsa-brig.c (hsa_cdtor_statements): Removed.
23041 (hsa_output_libgomp_mapping): Use hsa_get_ctor_statements and
23042 hsa_get_dtor_statements.
23043 * hsa-gen.c (hsa_kernel_dispatch_type): Removed.
23044 (get_hsa_kernel_dispatch_offset): Use hsa_get_kernel_dispatch_type.
23046 2016-03-07 Andre Vieira <andre.simoesdiasvieira@arm.com>
23048 * config/arm/arm-cores.def (cortex-r8): New.
23049 * config/arm/arm-tables.opt (cortex-r8): Regenerate.
23050 * config/arm/arm-tune.md: Likewise.
23051 * doc/invoke.texi: Add cortex-r8 to list of cpu values.
23053 2016-03-07 Martin Sebor <msebor@redhat.com>
23055 PR rtl-optimization/19705
23056 * doc/invoke.texi (Options That Control Optimization): Clarify
23057 -fno-branch-count-reg.
23059 2016-02-26 Richard Biener <rguenther@suse.de>
23060 Jeff Law <law@redhat.com>
23062 PR tree-optimization/69740
23063 * cfghooks.c (remove_edge): Request loop fixups if we delete
23064 an edge that might turn an irreducible loop into a natural
23066 * cfgloop.h (check_verify_loop_structure): Clear LOOPS_NEED_FIXUP.
23067 Move after definition of loops_state_clear.
23069 2016-03-07 Bin Cheng <bin.cheng@arm.com>
23071 PR rtl-optimization/69052
23072 * rtlanal.c (commutative_operand_precedence): Set higher precedence
23075 2016-03-07 Tom de Vries <tom@codesourcery.com>
23077 PR tree-optimization/70116
23078 * tree-ssa-tail-merge.c (merge_stmts_p): New function, handling
23079 is_tm_ending stmts and ubsan/asan internal functions.
23080 (find_duplicate): Use it. Don't test is_tm_ending here.
23082 2016-03-07 Richard Biener <rguenther@suse.de>
23084 PR tree-optimization/70115
23085 * tree-ssa-loop-ivcanon.c (propagate_into_all_uses): Remove.
23086 (propagate_constants_for_unrolling): Use replace_uses_by.
23088 2016-03-07 Nathan Sidwell <nathan@codesourcery.com>
23090 PR middle-end/69916
23091 * omp-low.c (struct oacc_loop): Add ifns.
23092 (new_oacc_loop_raw): Initialize it.
23093 (finish_oacc_loop): Clear mask & flags if no ifns.
23094 (oacc_loop_discover_walk): Count IFN_GOACC_LOOP calls.
23095 (oacc_loop_xform_loop): Add ifns arg & adjust.
23096 (oacc_loop_process): Adjust oacc_loop_xform_loop call.
23098 2016-03-07 Richard Henderson <rth@redhat.com>
23101 * tree-outofssa.c (emit_partition_copy): Flush pending stack adjust.
23102 (insert_value_copy_on_edge): Likewise.
23104 2016-03-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
23106 * config/arm/arm_neon.h: Show error if using with soft-float ABI.
23108 2016-03-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
23111 * config/i386/sol2.h (STACK_REALIGN_DEFAULT): Define.
23113 2016-03-05 Venkataramanan Kumar <Venkataramanan.kumar@amd.com>
23115 * config/i386/i386.c (znver1_cost): Fix Multiply cost.
23117 2016-03-05 Venkataramanan Kumar <Venkataramanan.kumar@amd.com>
23119 Fix sseimul type attribute.
23120 * config/i386/znver1.md
23121 (znver1_sseimul, znver1_sseimul_avx256, znver1_sseimul_load,
23122 znver1_sseimul_avx256_load) : Fix the type attribute.
23123 (znver1_sseimul_di, znver1_sseimul_load_di): Fix type attribute,
23124 pipe usage and latency.
23126 2016-03-05 Jakub Jelinek <jakub@redhat.com>
23129 * tree-inline.c (copy_tree_body_r): When cancelling ADDR_EXPR
23130 of INDIRECT_REF and ADDR_EXPR changed type, fold_convert it
23133 2016-03-04 Bernd Schmidt <bschmidt@redhat.com>
23136 * targhooks.c (default_vector_alignment): Limit to MAX_OFILE_ALIGNMENT.
23138 PR rtl-optimization/69941
23139 * postreload.c (reload_combine_recognize_pattern): Ensure all uses of
23140 the reg share its mode.
23142 2016-03-04 Jeff Law <law@redhat.com>
23144 PR tree-optimization/69196
23145 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
23146 If the both SSA_NAMEs are anonymous, then consider them unassociated
23147 and include the PHI in the statement count.
23149 2016-03-05 Tom de Vries <tom@codesourcery.com>
23151 * omp-low.c (check_omp_nesting_restrictions): Check for non-oacc
23152 construct in oacc routine. Check for oacc region in oacc routine.
23154 2016-03-04 Jakub Jelinek <jakub@redhat.com>
23157 * config/i386/i386.c (decide_alg): Add RECUR argument. Revert
23158 2016-02-22 changes, instead don't recurse if RECUR is already true.
23159 Don't change *dynamic_check if RECUR. Adjust recursive caller
23160 to pass true to the new argument.
23161 (ix86_expand_set_or_movmem): Adjust decide_alg caller.
23164 * config/i386/sse.md (vec_set_lo_<mode><mask_name>,
23165 <extract_type_2>_vinsert<shuffletype><extract_suf_2>_mask): Formatting
23167 (vec_set_hi_<mode><mask_name>): Likewise. Swap VEC_CONCAT operands.
23169 2016-03-04 Bernd Schmidt <bschmidt@redhat.com>
23171 PR rtl-optimization/57676
23172 * lra-assigns.c (lra_assign): Guard test for maximum iterations
23173 with flag_checking.
23175 2016-03-04 Ilya Enkovich <enkovich.gnu@gmail.com>
23177 * tree-vect-patterns.c (search_type_for_mask): Handle
23178 comparison of booleans.
23180 2016-03-04 Jakub Jelinek <jakub@redhat.com>
23182 * doc/extend.texi (__builtin_alloca, __builtin_alloca_with_align):
23186 * dwarf2out.c (prune_unused_types_walk_loc_descr): Handle
23187 all other ops that have dw_val_class_die_ref operands,
23188 and DW_OP_GNU_entry_value.
23190 2016-03-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
23192 PR rtl-optimization/69904
23193 * config/arm/arm.c (arm_cannot_copy_insn_p):
23194 Return true for load-exclusive instructions.
23196 2016-03-03 Jakub Jelinek <jakub@redhat.com>
23199 * tree-vect-stmts.c (vect_mark_relevant): Remove USED_IN_PATTERN
23200 argument, if STMT_VINFO_IN_PATTERN_P (stmt_info), always mark
23201 the pattern no matter if it is used just by non-pattern, pattern
23203 (process_use, vect_mark_stmts_to_be_vectorized): Adjust callers.
23204 * tree-vect-patterns.c (vect_recog_vector_vector_shift_pattern): If
23205 oprnd1 def_stmt is in pattern, don't look through it.
23207 2016-03-03 Marek Polacek <polacek@redhat.com>
23209 PR middle-end/70050
23210 * match.pd (X % -Y): Add INTEGRAL_TYPE_P check.
23212 2016-03-03 Martin Liska <mliska@suse.cz>
23214 PR tree-optimization/70043
23215 * tree-vect-loop.c (optimize_mask_stores): Move iterator to
23216 previous statement if we see a debug statement.
23218 2016-03-03 Richard Biener <rguenther@suse.de>
23220 PR tree-optimization/55936
23221 * tree-vrp.c (compare_name_with_value): Add use_equiv_p
23222 parameter and guard unsafe equivalence use.
23223 (vrp_evaluate_conditional_warnv_with_ops): Always use
23224 safe equivalences but not via the quadratic compare_names
23227 2016-03-03 Michael Collison <michael.collison@linaro.org>
23230 * config/arm/arm.md (*subsi3_carryin_const): Change predicate
23231 for operand 1 to s_register_operand. Change predicate for operand
23232 2 to arm_not_immediate_operand.
23234 2016-03-02 H.J. Lu <hongjiu.lu@intel.com>
23236 * doc/tm.texi: Regenerated.
23238 2016-03-02 Richard Henderson <rth@redhat.com>
23241 * simplify-rtx.c (simplify_plus_minus): Allow reassoc without
23242 simplification when all args are positive non-fixed registers.
23244 2016-03-02 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
23246 * target.def (lra_p): Specify that new ports should use LRA.
23248 2016-03-02 Jakub Jelinek <jakub@redhat.com>
23251 * gimplify.c (gimplify_decl_expr): For decls with REFERENCE_TYPE, also
23252 gimplify_type_sizes the type they refer to.
23253 (omp_notice_variable): Handle reference vars to VLAs.
23254 * omp-low.c (lower_omp_target): Emit setup of OMP_CLAUSE_PRIVATE
23255 reference to VLA decls in the second pass instead of first pass.
23257 2016-03-02 Tom de Vries <tom@codesourcery.com>
23259 PR tree-optimization/68659
23260 * graphite-isl-ast-to-gimple.c (collect_all_ssa_names): Handle
23261 new_expr == NULL_TREE.
23262 (get_new_name): Handle ADDR_EXPR.
23264 2016-03-02 Bin Cheng <bin.cheng@arm.com>
23266 PR rtl-optimization/69052
23267 * loop-invariant.c (canonicalize_address): New function.
23268 (inv_can_prop_to_addr_use): Check validity of address expression
23269 which is canonicalized by above function.
23271 2016-03-02 Alan Modra <amodra@gmail.com>
23274 * ipa-icf.c (sem_variable::merge): Do not merge an alias with
23277 2016-03-02 Jakub Jelinek <jakub@redhat.com>
23280 * config/i386/i386.md (kmovw): Move m constraint to 2nd alternative.
23281 (*movhi_internal): Put mask moves from and to memory separately
23282 from moves from/to GPRs.
23284 2016-03-02 Richard Biener <rguenther@suse.de>
23286 * genmatch.c (dt_node::gen_kids): Fix match code-gen for embedded
23287 GENERIC expressions in GIMPLE.
23289 2016-03-02 Richard Biener <rguenther@suse.de>
23291 * config/i386/i386.c (type_natural_mode): Fix typo.
23293 2016-03-02 Nick Clifton <nickc@redhat.com>
23295 * config.gcc (mep-*-elf): Add newlib-stdint.h to tm_file.
23297 2016-03-02 Richard Biener <rguenther@suse.de>
23298 Uros Bizjak <ubizjak@gmail.com>
23301 * config/i386/i386.c (type_natural_mode): Handle XFmode vectors.
23303 2016-03-02 Richard Biener <rguenther@suse.de>
23305 PR middle-end/67278
23306 * tree-cfg.c (verify_expr): Adjust BIT_FIELD_REF case.
23308 2016-03-02 Marek Polacek <polacek@redhat.com>
23311 * gimplify.c (gimplify_va_arg_expr): Use expanded location for the
23312 "is promoted to" warning.
23314 2016-03-01 DJ Delorie <dj@redhat.com>
23316 * config.gcc: Deprecate mep-*.
23318 2016-03-01 Vladimir Makarov <vmakarov@redhat.com>
23320 PR middle-end/70025
23321 * lra-constraints.c (regno_val_use_in): New.
23322 (match_reload): Use it instead of regno_use_in.
23324 2016-03-01 Eric Botcazou <ebotcazou@adacore.com>
23326 PR rtl-optimization/70007
23327 * gcse.c (compute_ld_motion_mems): Tidy up and also invalidate memory
23328 references present in REG_EQUAL notes attached to non-SET patterns.
23330 2016-03-01 Jeff Law <law@redhat.com>
23332 PR tree-optimization/69196
23333 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
23334 Appropriately clamp the number of statements to copy when the
23335 thread path does not traverse a loop backedge.
23337 PR tree-optimization/69196
23338 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
23339 Do count some PHIs in the thread path against the insn count. Decrease
23340 final statement count by one as the control statement in the last
23341 block will get removed. Remove special cased code for handling PHIs
23344 2016-03-01 Uros Bizjak <ubizjak@gmail.com>
23347 * config/i386/i386.c (ix86_output_call_insn): Add -masm=intel
23348 asm dialect alternatives to explicit GOTPCREL calls.
23350 2016-03-01 Eric Botcazou <ebotcazou@adacore.com>
23353 * ira.c (do_reload): Issue warning for generic stack checking here...
23354 * reload1.c (reload): ...instead of here and streamline it.
23356 2016-03-01 Nick Clifton <nickc@redhat.com>
23358 * config.gcc (cr16-*-elf): Add newlib-stdint.h to tm_file.
23360 2016-03-01 Richard Biener <rguenther@suse.de>
23362 PR tree-optimization/69983
23363 * tree-chrec.c (eq_evolutions_p): Handle conversions, compare
23364 types and fall back to operand_equal_p.
23366 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
23369 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
23371 * config/s390/constraints.md ("jm8"): New constraint.
23372 * config/s390/predicates.md ("const_int_8bitset_operand"): New
23374 * config/s390/s390.md ("*setmem_long", "*setmem_long_and"): Merge
23376 ("*setmem_long<setmem_and>"): New pattern.
23377 ("*setmem_long_31z", "*setmem_long_and_31z"): Merge
23379 ("*setmem_long_31z<setmem_and>"): New pattern.
23380 * config/s390/subst.md ("setmem_31z_subst", "setmem_and_subst"):
23381 New substitution rules with the required attributes.
23384 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
23387 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
23389 * gensupport.c (process_substs_on_one_elem): Split loop to
23390 complete mark_operands_used_in_match_dup on all expressions in the
23392 (adjust_operands_numbers): Inline into process_substs_on_one_elem
23393 and remove function.
23395 2016-03-01 Richard Biener <rguenther@suse.de>
23397 PR middle-end/70022
23398 * fold-const.c (fold_indirect_ref_1): Fix range checking for
23399 vector BIT_FIELD_REF extract.
23401 2016-03-01 Richard Biener <rguenther@suse.de>
23403 PR tree-optimization/69994
23404 * tree-ssa-reassoc.c (ops_equal_values_p): Handle missing case.
23406 2016-03-01 Ilya Enkovich <enkovich.gnu@gmail.com>
23408 PR tree-optimization/69956
23409 * tree-vect-stmts.c (supportable_widening_operation): Support
23410 multi-step conversion of boolean vectors.
23411 (supportable_narrowing_operation): Likewise.
23413 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
23415 * config/s390/s390.c (s390_decompose_address): Don't accept SImode
23418 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
23420 * config/s390/subst.md (DSI_VI): New mode iterator.
23421 ("addr_style_op_subst"): Use DSI_VI instead of DSI.
23422 * config/s390/vector.md ("vec_set<mode>"): Move expander before
23423 the insn definition.
23424 ("*vec_set<mode>"): Change predicate and add alternative to
23425 support only either register or const_int operands as element
23427 ("*vec_set<mode>_plus"): New pattern to support reg + const_int
23429 ("vec_extract<mode>"): New expander.
23430 ("*vec_extract<mode>"): New insn definition supporting reg and
23431 const_int element selectors.
23432 ("*vec_extract<mode>_plus"): New insn definition supporting
23433 reg+const_int element selectors.
23434 ("rotl<mode>3", "ashl<mode>3", "ashr<mode>3"): Merge into the
23435 following expander+insn definition.
23436 ("<vec_shifts_name><mode>3"): New expander.
23437 ("*<vec_shifts_name><mode>3<addr_style_op>"): New insn definition.
23439 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
23441 * config/s390/s390.md ("*tabort_1"): Change predicate to
23442 nonmemory_operand. Add a second alternative to cover
23443 register as well as const int operands.
23444 ("*tabort_1_plus"): New pattern definition.
23446 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
23448 * config/s390/s390.md ("*ashrdi3_cc_31")
23449 ("*ashrdi3_cconly_31""*ashrdi3_cc_31_and")
23450 ("*ashrdi3_cconly_31_and", "*ashrdi3_31_and", "*ashrdi3_31"):
23451 Merge insn definitions into ...
23452 ("*ashrdi3_31<addr_style_op_cc><masked_op_cc><setcc><cconly>"):
23453 New pattern definition.
23454 ("*ashr<mode>3_cc", "*ashr<mode>3_cconly", "ashr<mode>3", )
23455 ("*ashr<mode>3_cc_and", "*ashr<mode>3_cconly_and")
23456 ("*ashr<mode>3_and"): Merge insn definitions into ...
23457 ("*ashr<mode>3<addr_style_op_cc><masked_op_cc><setcc><cconly>"):
23458 New pattern definition.
23459 * config/s390/subst.md ("addr_style_op_cc_subst")
23460 ("masked_op_cc_subst", "setcc_subst", "cconly_subst"): New
23461 substitutions patterns plus attributes.
23462 Add ashiftrt to SUBST iterator.
23464 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
23466 * config/s390/s390.md ("<shift><mode>3"): Change predicate of
23467 op2 to nonmemory_operand.
23468 ("*<shift>di3_31", "*<shift>di3_31_and"):
23469 Merge into single pattern definition ...
23470 ("*<shift>di3_31<addr_style_op><masked_op>"): New pattern.
23471 ("*<shift><mode>3", "*<shift><mode>3_and"): Merge into single
23472 pattern definition ...
23473 ("*<shift><mode>3<addr_style_op><masked_op>"): New pattern.
23474 * config/s390/subst.md: Add ashift and lshiftrt to SUBST
23477 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
23479 * config/s390/predicates.md (const_int_6bitset_operand): New
23481 * config/s390/s390.md: Include subst.md.
23482 ("rotl<mode>3"): New expander.
23483 ("rotl<mode>3", "*rotl<mode>3_and"): Merge insn definitions into
23485 ("*rotl<mode>3<addr_style_op><masked_op>"): New insn definition.
23486 * config/s390/subst.md: New file.
23488 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
23490 * config/s390/s390.md ("op_type", "atype", "length" attributes):
23491 Remove RRR type. It doesn't really exist.
23492 ("RRer", "f0", "v0", "vf", "vd", "op1", "Rf"): Remove mode
23494 ("BFP", "DFP", "nDSF", "nDFDI"): Add mode attributes.
23495 ("*cmp<mode>_ccs", "floatdi<mode>2", "add<mode>3")
23496 ("*add<mode>3_cc", "*add<mode>3_cconly", "sub<mode>3")
23497 ("*sub<mode>3_cc", "*sub<mode>3_cconly", "mul<mode>3")
23498 ("fma<mode>4", "fms<mode>4", "div<mode>3", "*neg<mode>2")
23499 ("*abs<mode>2", "*negabs<mode>2", "sqrt<mode>2"): Override
23500 `enabled' attribute.
23502 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
23504 * gensupport.c (process_substs_on_one_elem): Split loop to
23505 complete mark_operands_used_in_match_dup on all expressions in the
23507 (adjust_operands_numbers): Inline into process_substs_on_one_elem
23508 and remove function.
23510 2016-02-29 Eric Botcazou <ebotcazou@adacore.com>
23513 * config/sparc/sparc.c (NWORDS_UP): Rename to...
23514 (CEIL_NWORDS): ...this. Use CEIL macro.
23515 (compute_fp_layout): Adjust to above renaming.
23516 (function_arg_union_value): Likewise.
23517 (sparc_arg_partial_bytes): Likewise.
23518 (sparc_function_arg_advance): Likewise.
23520 2016-02-29 Jeff Law <law@redhat.com>
23522 PR tree-optimization/70005
23523 * tree-ssa-uncprop.c (associate_equivalences_with_edges): Handle case
23524 where an object with a boolean range is compared against a value
23527 PR tree-optimization/69999
23528 * gimple-ssa-split-paths.c (split_paths): When duplicating a block
23529 with an outgoing edge marked with EDGE_IRREDUCIBLE_LOOP, schedule
23532 2016-02-29 Richard Biener <rguenther@suse.de>
23534 PR tree-optimization/69994
23535 * tree-ssa-reassoc.c (gimple_nop_conversion_p): New function.
23536 (get_unary_op): Look through nop conversions.
23537 (ops_equal_values_p): New function, look for equality diregarding
23539 (eliminate_plus_minus_pair): Use ops_equal_values_p
23540 (repropagate_negates): Do not use get_unary_op here.
23542 2016-02-29 Martin Liska <mliska@suse.cz>
23544 * system.h: Poison ENABLE_CHECKING macro.
23546 2016-02-29 Martin Liska <mliska@suse.cz>
23548 * hsa-gen.c (gen_body_from_gimple): Dump only if TDF_DETAILS
23549 is presented in dump flags.
23550 * hsa-regalloc.c (linear_scan_regalloc): Likewise.
23551 (hsa_regalloc): Likewise.
23553 2016-02-19 Richard Biener <rguenther@suse.de>
23555 PR tree-optimization/69980
23556 * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Update
23557 permutation of those we need to keep.
23559 2016-02-29 Eric Botcazou <ebotcazou@adacore.com>
23562 * config/sparc/sparc.c (ROUND_ADVANCE): Rename to...
23563 (NWORDS_UP): ...this
23564 (init_cumulative_args): Minor tweaks.
23565 (sparc_promote_function_mode): Likewise.
23566 (scan_record_type): Delete.
23567 (traverse_record_type): New function template.
23568 (classify_data_t): New structure type.
23569 (classify_registers): New inline function.
23570 (function_arg_slotno): In 64-bit mode, bail out early if FP slots are
23571 exhausted. Instantiate traverse_record_type on classify_registers and
23572 deal with the case of a structure passed in slot #15 with no FP field
23574 (assign_data_t): New structure type.
23575 (compute_int_layout): New static function.
23576 (compute_fp_layout): Likewise.
23577 (count_registers): New inline function.
23578 (assign_int_registers): New static function.
23579 (assign_fp_registers): Likewise.
23580 (assign_registers): New inline function.
23581 (function_arg_record_value_1): Delete.
23582 (function_arg_record_value_2): Likewise.
23583 (function_arg_record_value_3): Likewise.
23584 (function_arg_record_value): Adjust to above changes. Instantiate
23585 traverse_record_type on count_registers to first count the number of
23586 registers to be used and then on assign_registers to assign them.
23587 (function_arg_union_value): Adjust to above renaming.
23588 (sparc_function_arg_1); Minor tweaks. Remove commented out code.
23589 (sparc_arg_partial_bytes): Adjust to above renaming. Deal with the
23590 case of a structure passed in slot #15
23591 (sparc_function_arg_advance): Likewise.
23592 (function_arg_padding): Minor tweak.
23594 2016-02-29 Richard Biener <rguenther@suse.de>
23596 PR tree-optimization/69720
23597 * tree-vect-loop.c (get_initial_def_for_reduction): Avoid
23598 the adjustment_def path for possibly vectorized defs.
23599 (vect_create_epilog_for_reduction): Handle vectorized initial
23602 2016-02-28 Eric Botcazou <ebotcazou@adacore.com>
23604 * config/i386/cygming.h (STACK_REALIGN_DEFAULT): Define.
23606 2016-02-27 Jeff Law <law@redhat.com>
23609 2016-02-26 Richard Biener <rguenther@suse.de>
23610 Jeff Law <law@redhat.com>
23612 PR tree-optimization/69740
23613 * cfghooks.c (remove_edge): Request loop fixups if we delete
23614 an edge that might turn an irreducible loop into a natural
23617 2016-02-27 Jakub Jelinek <jakub@redhat.com>
23619 PR rtl-optimization/69896
23620 * tree-vect-generic.c (get_compute_type): Avoid single element
23623 2016-02-26 Evandro Menezes <e.menezes@samsung.com>
23625 Rename the AArch64 tuning option and related functions to enable the
23626 Newton series for the reciprocal square root to reflect its
23627 approximative characteristic.
23629 * config/aarch64/aarch64-protos.h (aarch64_emit_swrsqrt): Rename
23630 function to "aarch64_emit_approx_rsqrt".
23631 * config/aarch64/aarch64-tuning-flags.def: Rename tuning flag to
23632 AARCH64_EXTRA_TUNE_APPROX_RSQRT.
23633 * config/aarch64/aarch64.c (exynosm1_tunigs): Use new flag name.
23634 (xgene1_tunings): Likewise.
23635 (use_rsqrt_p): Likewise.
23636 (aarch64_emit_swrsqrt): Use new function name.
23637 * config/aarch64/aarch64-simd.md (aarch64_rsqrts_*): Likewise.
23638 * config/aarch64/aarch64.opt (mlow-precision-recip-sqrt): Reword the
23639 text explaining this option.
23640 * doc/invoke.texi (-mlow-precision-recip-sqrt): Likewise.
23642 2016-02-26 Jakub Jelinek <jakub@redhat.com>
23645 * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
23646 complain about -mallow-movmisalign without -mvsx if
23647 TARGET_ALLOW_MOVMISALIGN was not set explicitly.
23649 2016-02-26 Joel Sherrill <joel@rtems.org>
23651 * config.gcc: Add x86_64-*-rtems*.
23652 * config/i386/rtems-64.h: New file.
23654 2016-02-26 Joel Sherrill <joel@rtems.org>
23656 * config.gcc: Add aarch64-*-rtems*.
23657 * config/aarch64/rtems.h: New file.
23659 2016-02-26 Segher Boessenkool <segher@kernel.crashing.org>
23662 * config/rs6000/rs6000.c (rs6000_insn_for_shift_mask): Print rlwinm
23663 shift amount using %h. Add comment.
23665 2016-02-26 Richard Biener <rguenther@suse.de>
23666 Jeff Law <law@redhat.com>
23668 PR tree-optimization/69740
23669 * cfghooks.c (remove_edge): Request loop fixups if we delete
23670 an edge that might turn an irreducible loop into a natural
23673 2016-02-26 Martin Jambor <mjambor@suse.cz>
23675 PR middle-end/69920
23676 * tree-sra.c (sra_modify_assign): Do not remove loads of
23677 uninitialized aggregates to SSA_NAMEs.
23679 2016-02-26 Richard Henderson <rth@redhat.com>
23682 * config/s390/s390.md (risbg and risbgn splitters): Allocate new
23683 pseudo in case the target rtx matches the source of the left
23686 2016-02-26 Martin Jambor <mjambor@suse.cz>
23689 * hsa.h (hsa_type_packed_p): Declare.
23690 * hsa.c (hsa_type_packed_p): New function.
23691 * hsa-gen.c (mem_type_for_type): Use unsigned type for packed
23693 (gen_hsa_insns_for_store): Use hsa_type_packed_p.
23694 * hsa-brig.c (emit_basic_insn): Likewise.
23696 2016-02-26 Martin Jambor <mjambor@suse.cz>
23699 * hsa-gen.c (gen_hsa_phi_from_gimple_phi): Use proper hsa type for
23701 (gen_hsa_addr): Allow integer constants in TMR_INDEX2.
23703 2016-02-26 Martin Jambor <mjambor@suse.cz>
23705 * hsa.h (is_a_helper): New overload for hsa_op_immed for
23706 hsa_op_with_type operands.
23707 (hsa_unsigned_type_for_type): Declare.
23708 * hsa.c (hsa_unsigned_type_for_type): New function.
23709 * hsa-gen.c (gen_hsa_binary_operation): Use hsa_unsigned_type_for_type.
23710 (gen_hsa_insns_for_operation_assignment): Satisfy constrains of
23711 the finalizer. Do not emit extra move.
23713 2016-02-26 Martin Jambor <mjambor@suse.cz>
23715 * hsa-gen.c (gen_hsa_ternary_atomic_for_builtin): Fail in presence of
23716 atomic operations in private segment.
23718 2016-02-26 Martin Jambor <mjambor@suse.cz>
23720 * omp-low.c (grid_find_ungridifiable_statement): Store problematic
23721 statements to wi->info. Also disallow omp simd constructs.
23722 (grid_target_follows_gridifiable_pattern): Use wi.info to dump reason
23723 for not gridifying. Dump special string for omp_for.
23725 2016-02-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
23728 * config/aarch64/aarch64.c (aarch64_set_current_function):
23729 Save/restore target globals when switching to
23730 target_option_default_node.
23732 2016-02-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
23735 * config/aarch64/aarch64.c (aarch64_shift_truncation_mask):
23736 Return 0 if !SHIFT_COUNT_TRUNCATED.
23738 2016-02-26 Jakub Jelinek <jakub@redhat.com>
23739 Eric Botcazou <ebotcazou@adacore.com>
23741 PR rtl-optimization/69891
23742 * dse.c (scan_insn): If we can't figure out memset arguments
23743 or they are non-constant, call clear_rhs_from_active_local_stores.
23745 2016-02-26 Martin Liska <mliska@suse.cz>
23747 * doc/extend.texi: Mention clog10, clog10f an clog10l
23748 in Builtins section.
23750 2016-02-26 Martin Liska <mliska@suse.cz>
23752 * dwarf2out.c (new_loc_descr): Replace ENABLE_CHECKING with
23754 (resolve_args_picking_1): Likewise.
23755 * dwarf2out.h (struct GTY): Likewise.
23757 2016-02-26 Martin Liska <mliska@suse.cz>
23759 * hsa-gen.c (generate_hsa): Replace ENABLE_CHECKING macro
23760 with flag_checking.
23761 * hsa-regalloc.c (linear_scan_regalloc): Likewise.
23763 2016-02-26 Markus Trippelsdorf <markus@trippelsdorf.de>
23764 Martin Liska <mliska@suse.cz>
23766 * doc/install.texi: Mention --enable-valgrind-annotations.
23768 2016-02-26 Richard Biener <rguenther@suse.de>
23770 PR tree-optimization/69551
23771 * tree-ssa-structalias.c (get_constraint_for_ssa_var): When
23772 looking through aliases adjust DECL_PT_UID to refer to the
23773 ultimate alias target.
23775 2016-02-25 Martin Liska <mliska@suse.cz>
23777 PR middle-end/69919
23778 * alloc-pool.c (after_memory_report): New variable.
23779 * alloc-pool.h (base_pool_allocator ::release): Do not use
23780 the infrastructure if after_memory_report.
23781 * toplev.c (toplev::main): Mark after memory report.
23783 2016-02-25 Richard Biener <rguenther@suse.de>
23785 PR tree-optimization/48795
23786 * tree-vrp.c (check_array_ref): Use array_at_struct_end_p.
23788 2016-02-25 Ilya Verbin <ilya.verbin@intel.com>
23791 * config/gnu-user.h (CRTOFFLOADBEGIN): Define. Add crtoffloadbegin.o if
23792 offloading is enabled and -fopenacc or -fopenmp is specified.
23793 (CRTOFFLOADEND): Likewise.
23794 (GNU_USER_TARGET_STARTFILE_SPEC): Add CRTOFFLOADBEGIN.
23795 (GNU_USER_TARGET_ENDFILE_SPEC): Add CRTOFFLOADEND.
23796 * lto-wrapper.c (offloadbegin, offloadend): Remove static vars.
23797 (offload_objects_file_name): New static var.
23798 (tool_cleanup): Remove offload_objects_file_name file.
23799 (find_offloadbeginend): Replace with ...
23800 (find_crtoffloadtable): ... this.
23801 (run_gcc): Remove offload_argc and offload_argv.
23802 Get offload_objects_file_name from -foffload-objects=... option.
23803 Read names of object files with offload from this file, pass them to
23804 compile_images_for_offload_targets. Don't call find_offloadbeginend and
23805 don't pass offloadbegin and offloadend to the linker. Don't pass
23806 offload non-LTO files to the linker, because now they're not claimed.
23808 2016-02-25 Jan Hubicka <hubicka@ucw.cz>
23811 * ipa-devirt.c (possible_polymorphic_call_targets): Do not ICE
23812 on builtin_unreachable.
23814 2016-02-25 Jakub Jelinek <jakub@redhat.com>
23816 PR rtl-optimization/69896
23817 * regcprop.c: Include cfgrtl.h.
23818 (copyprop_hardreg_forward_1): If noop_p insn uses narrower
23819 than remembered mode, either delete it (if noop_move_p), or
23820 treat like copy_p but not noop_p instruction.
23822 2016-02-24 Jakub Jelinek <jakub@redhat.com>
23825 * dwarf2out.c (gen_variable_die): Work around buggy LTO
23826 - allow NULL decl for Fortran DW_TAG_common_block variables.
23828 2016-02-24 Jason Merrill <jason@redhat.com>
23830 * common.opt (flifetime-dse): Add -flifetime-dse=1.
23832 2016-02-24 Richard Biener <rguenther@suse.de>
23833 Jakub Jelinek <jakub@redhat.com>
23835 PR middle-end/69760
23836 * tree-scalar-evolution.c (interpret_rhs_expr): Re-write
23837 conditionally executed ops to well-defined overflow behavior.
23839 2016-02-24 Jakub Jelinek <jakub@redhat.com>
23841 PR middle-end/69915
23842 * tree.c (build_vector_from_ctor): Fix handling of VECTOR_CST
23845 2016-02-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
23847 PR rtl-optimization/69886
23848 * gcse.c (can_assign_to_reg_without_clobbers_p): Accept mode
23849 argument. Use it when checking validity of set instructions.
23850 (want_to_gcse_p): Pass mode to can_assign_to_reg_without_clobbers_p.
23851 (compute_ld_motion_mems): Update can_assign_to_reg_without_clobbers_p
23853 * rtl.h (can_assign_to_reg_without_clobbers_p): Update prototype.
23854 * store-motion.c (find_moveable_store): Update
23855 can_assign_to_reg_without_clobbers_p callsite.
23857 2016-02-24 Richard Biener <rguenther@suse.de>
23859 PR middle-end/68963
23860 * tree-ssa-loop-niter.c (derive_constant_upper_bound_ops): Fix
23862 (record_nonwrapping_iv): Do not fall back to the low/high bound
23863 for non-constant IV bases if the stmt is not always executed.
23865 2016-02-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
23867 * config/arm/arm-cores.def (cortex-a32): New entry.
23868 * config/arm/arm-tables.opt: Regenerate.
23869 * config/arm/arm-tune.md: Regenerate.
23870 * config/arm/bpabi.h (BE8_LINK_SPEC): Add mcpu=cortex-a32.
23871 * config/arm/t-aprofile: Handle mcpu=cortex-a32.
23872 * doc/invoke.texi (ARM Options): Document cortex-a32 as value
23873 for -mcpu and -mtune.
23875 2016-02-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
23878 * config/arm/arm.h (TARGET_HAVE_LPAE): Define.
23879 * config/arm/unspecs.md (VUNSPEC_LDRD_ATOMIC): New value.
23880 * config/arm/sync.md (arm_atomic_loaddi2_ldrd): New pattern.
23881 (atomic_loaddi_1): Delete.
23882 (atomic_loaddi): Rewrite expander using the above changes.
23884 2016-02-24 Jakub Jelinek <jakub@redhat.com>
23887 * params.def (PARAM_MAX_SSA_NAME_QUERY_DEPTH): Bump default from
23890 2016-02-24 Jakub Jelinek <jakub@redhat.com>
23891 Richard Biener <rguenth@suse.de>
23893 PR middle-end/69909
23894 * expr.c (expand_expr_real_1) <normal_inner_ref>: Avoid
23895 set_mem_attributes if tem is SSA_NAME which got expanded
23898 2016-02-24 Richard Biener <rguenther@suse.de>
23900 PR tree-optimization/69907
23901 * tree-vect-stmts.c (vectorizable_load): Check for gaps at the
23902 end of permutations for BB vectorization.
23904 2016-02-24 Christian Bruel <christian.bruel@st.com>
23906 * config/arm/arm-c.c (arm_option_override): Initialize
23907 target_option_current_node.
23908 * config/arm/arm.c (arm_pragma_target_parse): Replace
23909 build_target_option_node call by target_option_current_node.
23910 Set target_option_current_node.
23913 2016-02-23 David Edelsohn <dje.gcc@gmail.com>
23916 * config/rs6000/rs6000.md (zero_extendqi<mode>2_dot): Convert from
23917 define_insn_and_split to define_insn.
23918 (zero_extendqi<mode>2_dot2): Same.
23919 (extendqi<mode>2_dot): Same.
23920 (extendqi<mode>2_dot2): Same.
23922 2016-02-23 Evandro Menezes <e.menezes@samsung.com>
23924 * config/arm/exynos-m1.md: Change cost of STP, fix bypass for stores
23925 and add bypass for AES{D,E} and AESMC pairs.
23926 * config/aarch64/aarch64.c (exynosm1_tunings): Enable fusion of AES{D,E}
23929 2016-02-23 Evandro Menezes <e.menezes@samsung.com>
23931 * config/aarch64/aarch64.c (exynosm1_tunings): Enable the Newton
23932 series for reciprocal square root in Exynos M1.
23934 2016-02-23 Martin Sebor <msebor@redhat.com>
23937 * doc/extend.texi (Other Builtins): Document __builtin_alloca and
23938 __builtin_alloca_with_align.
23940 2016-02-23 Richard Henderson <rth@redhat.com>
23942 * config/i386/i386-c.c (ix86_target_macros): Remove __SEG_TLS.
23943 (ix86_register_pragmas): Remove __seg_tls.
23944 * config/i386/i386-protos.h (ADDR_SPACE_SEG_TLS): Remove.
23945 * config/i386/i386.c (ix86_print_operand_address_as): Don't handle it.
23946 (ix86_addr_space_subset_p, TARGET_ADDR_SPACE_SUBSET_P): Remove.
23947 (ix86_addr_space_convert, TARGET_ADDR_SPACE_CONVERT): Remove.
23948 (ix86_addr_space_debug, TARGET_ADDR_SPACE_DEBUG): Remove.
23949 * doc/extend.texi (__seg_tls): Remove item.
23951 2016-02-23 Richard Biener <rguenther@suse.de>
23953 * alloc-pool.h (struct allocation_object): Make id member
23954 conditional on CHECKING_P again.
23955 (get_instance): Adjust.
23956 (base_pool_allocator): Likewise.
23958 2016-02-23 Thomas Schwinge <thomas@codesourcery.com>
23960 * tree-parloops.c (create_parallel_loop, gen_parallel_loop)
23961 (parallelize_loops): In OpenACC kernels mode, set n_threads to
23963 (pass_parallelize_loops::gate): In OpenACC kernels mode, gate on
23965 * tree-ssa-loop.c (gate_oacc_kernels): Likewise.
23967 2016-02-23 Richard Biener <rguenther@suse.de>
23969 * mem-stats.h (struct mem_usage): Use PRIu64 for printing size_t.
23970 * bitmap.h (struct bitmap_usage): Likewise.
23971 (bitmap_move): Declare.
23972 * bitmap.c (register_overhead): Take size_t argument.
23973 (bitmap_move): New function.
23974 * df-problems.c (df_rd_transfer_function): Use bitmap_move
23975 to properly account overhead.
23976 * tree.c (free_node): Use tree_size.
23978 2016-02-23 Jakub Jelinek <jakub@redhat.com>
23981 * fold-const.c (fold_truth_not_expr): Propagate TREE_NO_WARNING
23982 when inverting comparison.
23985 * common.opt (Wunreachable-code): Add Warning flag.
23987 2016-02-23 Mark Wielaard <mjw@redhat.com>
23988 Jakub Jelinek <jakub@redhat.com>
23991 * cgraphunit.c (check_global_declaration): Check main_input_filename
23992 and DECL_SOURCE_FILE are not NULL.
23994 2016-02-23 Martin Jambor <mjambor@suse.cz>
23996 PR tree-optimization/69666
23997 * tree-sra.c (sra_modify_assign): Do not attempt to create
23998 default_def replacements for unscalarizable regions.
24000 2016-02-20 Mark Wielaard <mjw@redhat.com>
24003 * cgraphunit.c (check_global_declaration): Check level of
24004 warn_unused_const_variable and main_input_filename.
24005 * doc/invoke.texi (Warning Options): Add -Wunused-const-variable=.
24006 (-Wunused-variable): For C implies -Wunused-const-variable=1.
24007 (-Wunused-const-variable): Explain levels 1 and 2.
24009 2016-02-22 Jakub Jelinek <jakub@redhat.com>
24012 * config/i386/i386.c (decide_alg): Ensure we don't recurse with
24013 identical arguments. Formatting and spelling fixes.
24016 * doc/md.texi (ashl@var{m}3): Document that mode of operand 2 must
24021 * config/m68k/t-opts (OPTIONS_H_EXTRA): Add m68k-microarchs.def
24022 and m68k-devices.def.
24023 * config/c6x/t-c6x (OPTIONS_H_EXTRA): Add c6x-isas.def.
24024 * config/aarch64/t-aarch64 (OPTIONS_H_EXTRA): Add aarch64-arches.def.
24026 2016-02-22 Cesar Philippidis <cesar@codesourcery.com>
24028 * config/nvptx/nvptx.c (nvptx_gen_shuffle): Add support for QImode
24029 and HImode registers.
24031 2016-02-22 Richard Biener <rguenther@suse.de>
24033 PR tree-optimization/69882
24034 * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Properly
24035 preserve permutations present because of gaps.
24036 (vect_supported_load_permutation_p): Always continue checking
24037 permutations after vect_attempt_slp_rearrange_stmts.
24039 2016-02-22 Bin Cheng <bin.cheng@arm.com>
24041 * tree-vect-loop.c (vect_estimate_min_profitable_iters): Dump
24042 min_profitable_estimate, rather than min_profitable_iters.
24044 2016-02-22 Jakub Jelinek <jakub@redhat.com>
24047 * config/m68k/m68k.md (ashldi3, ashrdi3, lshrdi3): Use
24048 SImode for last match_operand.
24050 2016-02-22 Martin Liska <mliska@suse.cz>
24052 * hsa-gen.c (gen_hsa_clrsb): In case of zero value,
24053 return bitsize - 1 as the return value.
24055 2016-02-22 Oleg Endo <olegendo@gcc.gnu.org>
24059 * config/sh/sh.c (sh_lshrsi_clobbers_t_reg_p, sh_dynamicalize_shift_p):
24060 Handle negative shift counts.
24061 * config/sh/sh.md (ashlsi3, lshrsi3_n, lshrsi3_n_clobbers_t): Don't use
24062 force_reg on the shift constant.
24063 (lshrsi3): Likewise. Expand into lshrsi3_n* instead of lshrsi3_d.
24064 (lshrsi3_d): Handle negative shift counts.
24066 2016-02-22 Richard Biener <rguenther@suse.de>
24067 Tom de Vries <tom@codesourcery.com>
24069 * graph.c: Include dumpfile.h.
24070 (print_graph_cfg): Split into three overloads.
24071 * gdbhooks.py (class DotFn): Add and instantiate, adding command dot-fn.
24073 2016-02-22 Tom de Vries <tom@codesourcery.com>
24075 * gdbhooks.py (class DumpFn): Add and instantiate, adding command
24078 2016-02-22 Richard Biener <rguenther@suse.de>
24081 * ipa-inline-transform.c (inline_call): When not updating
24082 overall summaries adjust self size by the growth estimate.
24083 * ipa-inline.c (inline_to_all_callers_1): Add to the callers
24084 hash-set, do not update overall summaries here. Renamed from ...
24085 (inline_to_all_callers): ... this which is now wrapping the
24086 above and performing delayed overall summary update.
24087 (early_inline_small_functions): Delay updating of the overall
24090 2016-02-21 Markus Trippelsdorf <markus@trippelsdorf.de>
24092 * tree-chkp.c (chkp_mark_invalid_bounds_walker): Initialize
24095 2016-02-19 Jakub Jelinek <jakub@redhat.com>
24098 * gcc.c (LINK_COMMAND_SPEC, GOMP_SELF_SPECS): Use
24099 :%* in %:gt() argument.
24100 (greater_than_spec_func): Adjust for expecting only numbers,
24101 if there are more than two numbers, compare the last two.
24103 2016-02-19 Jonathan Wakely <jwakely@redhat.com>
24105 * doc/invoke.texi (C++ Dialect Options): Clarify interaction of
24106 -Wnarrowing with -std.
24108 2016-02-19 Jakub Jelinek <jakub@redhat.com>
24111 * expr.c (store_field): Don't use bit-field path if exp is
24112 COMPONENT_REF with TREE_ADDRESSABLE type, where TYPE_SIZE is
24113 different from bitsize, but DECL_SIZE of FIELD_DECL is bitsize
24114 and the assignment can be performed by bitwise copy. Formatting
24117 PR middle-end/69838
24118 * lra.c (lra_process_new_insns): If non-call exceptions are enabled,
24119 call copy_reg_eh_region_note_forward on before and/or after sequences
24120 and remove note from insn if it no longer can throw.
24123 * config/i386/sse.md (VI_512): Only include V64QImode and V32HImode
24124 if TARGET_AVX512BW.
24126 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
24128 * config/s390/vector.md: Add missing commutative operand markers
24129 to the patterns which qualify for one.
24130 * config/s390/vx-builtins.md: Likewise.
24132 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
24134 * config/s390/vector.md (VI, VI_QHS): Add single element vector
24135 types to mode iterators.
24136 (vec_double): ... and mode attribute.
24137 * config/s390/vx-builtins.md (non_vec_int): Likewise.
24139 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
24141 * config/s390/vector.md ("<ti*>add<mode>3", "<ti*>sub<mode>3"):
24142 Change the predicate of op2 from nonimmediate to general and let
24143 reload fix it if necessary.
24145 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
24147 * config/s390/vecintrin.h (vec_sub_u128): Define missing macro.
24149 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
24151 * config/s390/s390.c (s390_expand_vcond): Use the compare operand
24154 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
24156 * config/s390/s390-protos.h: Add s390_expand_vec_movstr prototype.
24157 * config/s390/s390.c (s390_expand_vec_movstr): New function.
24158 * config/s390/s390.md ("movstr<P:mode>"): Call
24159 s390_expand_vec_movstr.
24161 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
24163 * config/s390/s390.md: Add missing output modifier for operand 1
24164 to print it as address properly.
24166 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
24168 * config/s390/2827.md: Rename ooo_* insn attributes to zEC12_*.
24169 * config/s390/2964.md: New file.
24170 * config/s390/s390.c (s390_get_sched_attrmask): Use the right set
24171 of insn grouping attributes depending on the CPU level.
24172 (s390_get_unit_mask): New function.
24173 (s390_sched_score): Remove the OOO from the scheduling macros.
24174 Add loop to calculate a score for the instruction mix.
24175 (s390_sched_reorder): Likewise plus improve debug output.
24176 (s390_sched_variable_issue): Rename macros as above. Calculate
24177 the unit distances after actually scheduling an insn. Improve
24179 (s390_sched_init): Clear last_scheduled_unit_distance array.
24180 * config/s390/s390.md: Include 2964.md.
24182 2016-02-18 Jakub Jelinek <jakub@redhat.com>
24185 * config/i386/sse.md (*<floatsuffix>floatv2div2sf2_mask_1,
24186 *avx512vl_<code>v2div2qi2_mask_1, *avx512vl_<code><mode>v4qi2_mask_1,
24187 *avx512vl_<code><mode>v8qi2_mask_1, *avx512vl_<code><mode>v4hi2_mask_1,
24188 *avx512vl_<code>v2div2hi2_mask_1, *avx512vl_<code>v2div2si2_mask_1,
24189 *avx512f_<code>v8div16qi2_mask_1): New insns.
24191 2016-02-18 Michael Meissner <meissner@linux.vnet.ibm.com>
24194 * config/rs6000/predicates.md (fusion_gpr_addis): Revert
24197 * config/rs6000/rs6000.md (fusion_gpr_load_<mode>): Remove
24198 earlyclobber from target. Use wF constraint for fused memory
24200 (fusion_gpr_<P:mode>_<GPR_FUSION:mode>_load): Likewise.
24202 2016-02-18 Jakub Jelinek <jakub@redhat.com>
24203 Martin Liska <mliska@suse.cz>
24206 * cfgexpand.c (asan_sanitize_stack_p): New function.
24207 (partition_stack_vars): Use the function.
24208 (expand_stack_vars): Likewise.
24209 (defer_stack_allocation): Likewise.
24210 (expand_used_vars): Likewise.
24212 2016-02-18 Richard Biener <rguenther@suse.de>
24214 PR middle-end/69553
24215 * fold-const.c (operand_equal_p): Properly compare offsets for
24216 IMAGPART_EXPR and ARRAY_REF.
24218 2016-02-18 Nick Clifton <nickc@redhat.com>
24222 * config/arm/arm.c (arm_option_override_internal): Disable
24223 interworking if the target does not support thumb instructions.
24224 (arm_reload_in_hi): Handle the case where a register to register
24225 move needs reloading because there is no simple pattern to handle
24227 (arm_reload_out_hi): Likewise.
24229 2016-02-18 Richard Biener <rguenther@suse.de>
24231 PR middle-end/69854
24232 * match.pd: Don't use fold_binary or fold_unary for folding
24235 2016-02-17 Jakub Jelinek <jakub@redhat.com>
24238 * gimplify.c (gimplify_cond_expr): Call gimple_set_no_warning
24239 on the cond_stmt from TREE_NO_WARNING on COND_EXPR_COND.
24240 * gimple-ssa-nonnull-compare.c (do_warn_nonnull_compare): Don't
24241 warn on gimple_no_warning_p statements.
24243 2016-02-17 Jonathan Wakely <jwakely@redhat.com>
24245 * doc/extend.texi (C++ Attributes): Correct description of
24246 warn_unused type attribute.
24248 2016-02-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
24250 * config/rs6000/altivec.md (*altivec_lvxl_<mode>_internal): Output
24251 correct instruction.
24253 2016-02-17 Richard Biener <rguenther@suse.de>
24255 PR rtl-optimization/69609
24256 * bb-reorder.c (struct bbro_basic_block_data): Add priority member.
24257 (find_traces_1_round): When ending a trace update cached priority
24259 (bb_to_key): Use cached priority when available.
24260 (copy_bb): Initialize cached priority.
24261 (reorder_basic_blocks_software_trace_cache): Likewise.
24263 2016-02-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
24266 * config/aarch64/predicates.md (aarch64_comparison_operator_mode):
24268 (aarch64_comparison_operator): Break overly long line into two.
24269 (aarch64_comparison_operation): Likewise.
24270 * config/aarch64/aarch64.md (cstorecc4): Use
24271 aarch64_comparison_operator_mode instead of
24272 aarch64_comparison_operator.
24273 (cstore<mode>4): Likewise.
24274 (aarch64_cstore<mode>): Likewise.
24275 (*cstoresi_insn_uxtw): Likewise.
24276 (cstore<mode>_neg): Likewise.
24277 (*cstoresi_neg_uxtw): Likewise.
24279 2016-02-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
24282 * config/arm/predicates.md (arm_comparison_operator_mode):
24284 * config/arm/arm.md (*mov_scc): Use arm_comparison_operator_mode
24285 instead of arm_comparison_operator.
24286 (*mov_negscc): Likewise.
24287 (*mov_notscc): Likewise.
24288 * config/arm/thumb2.md (*thumb2_mov_scc): Likewise.
24289 (*thumb2_mov_negscc): Likewise.
24290 (*thumb2_mov_negscc_strict_it): Likewise.
24291 (*thumb2_mov_notscc): Likewise.
24292 (*thumb2_mov_notscc_strict_it): Likewise.
24294 2016-02-17 Wilco Dijkstra <wdijkstr@arm.com>
24296 * config/aarch64/aarch64.c (aarch64_internal_mov_immediate):
24297 Add missing return.
24299 2016-02-17 Eric Botcazou <ebotcazou@adacore.com>
24301 * config/visium/visium.c (machine_libfunc_index): New enum.
24302 (machine_libfuncs): New structure.
24303 (visium_libfuncs): New static variable.
24304 (TARGET_INIT_LIBFUNCS): Define to...
24305 (visium_init_libfuncs): ...this. New function.
24306 (expand_block_move_4): Use the appropriate libfunc.
24307 (expand_block_move_2): Likewise.
24308 (expand_block_move_1): Likewise.
24309 (expand_block_set_4): Likewise.
24310 (expand_block_set_2): Likewise.
24311 (expand_block_set_1): Likewise.
24312 (visium_trampoline_init): Likewise.
24314 2016-02-17 Nick Clifton <nickc@redhat.com>
24316 * config/msp430/msp430.c (msp430_mcu_data): Sync with data from
24317 TI's devices.csv file as of March 2016.
24319 2016-02-16 Kelvin Nilsen <kelvin@gcc.gnu.org>
24322 * opts-global.c (handle_common_deferred_options): Introduce and
24323 initialize two global variables to remember command-line options
24324 specifying a stack-limiting register.
24325 * opts.h: Add extern declarations of the two new global variables.
24326 * emit-rtl.c (init_emit_once): Initialize the stack_limit_rtx
24327 variable based on the values of the two new global variables.
24329 2016-02-16 Jakub Jelinek <jakub@redhat.com>
24332 * common.opt (Wnonnull-compare): New warning.
24333 * doc/invoke.texi (-Wnonnull): Remove text about comparison
24334 of arguments against NULL.
24335 (-Wnonnull-compare): Document.
24336 * Makefile.in (OBJS): Add gimple-ssa-nonnull-compare.o.
24337 * tree-pass.h (make_pass_warn_nonnull_compare): Declare.
24338 * passes.def (pass_warn_nonnull_compare): Add.
24339 * gimple-ssa-nonnull-compare.c: New file.
24341 2016-02-16 James Greenhalgh <james.greenhalgh@arm.com>
24343 * config/aarch64/aarch64.c (cortexa57_tunings): Remove
24344 AARCH64_EXTRA_TUNE_RECIP_SQRT.
24346 2016-02-16 James Greenhalgh <james.greenhalgh@arm.com>
24348 * config/aarch64/aarch64.c (use_rsqrt_p): Always use software
24349 reciprocal sqrt for -mlow-precision-recip-sqrt.
24351 2016-02-16 James Greenhalgh <james.greenhalgh@arm.com>
24352 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
24354 * config/aarch64/aarch64.c (aarch64_expand_vector_init): Refactor,
24355 always use lane loads to construct non-constant vectors.
24357 2016-02-16 James Greenhalgh <james.greenhalgh@arm.com>
24359 * config/aarch64/aarch64.md
24360 (arch64_sqrdml<SQRDMLH_AS:rdma_as>h_lane<mode>): Fix register
24361 constraints for operand 3.
24362 (aarch64_sqrdml<SQRDMLH_AS:rdma_as>h_laneq<mode>): Likewise.
24364 2016-02-16 Jakub Jelinek <jakub@redhat.com>
24365 Richard Biener <rguenther@suse.de>
24367 PR tree-optimization/69820
24368 * tree-vect-patterns.c (type_conversion_p): Return false if
24369 *orig_type is unsigned single precision or boolean.
24370 (vect_recog_dot_prod_pattern, vect_recog_widen_mult_pattern):
24373 2016-02-16 Jakub Jelinek <jakub@redhat.com>
24375 PR rtl-optimization/69764
24376 PR rtl-optimization/69771
24377 * optabs.c (expand_binop): Ensure for shift optabs invalid CONST_INT
24378 op1 is valid for GET_MODE_INNER (mode) and force it into a reg.
24380 2016-02-16 Richard Biener <rguenther@suse.de>
24382 PR tree-optimization/69776
24383 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Get alias
24385 (indirect_refs_may_alias_p): Likewise.
24386 (refs_may_alias_p_1): Pass alias sets as from ao_ref.
24387 * tree-ssa-sccvn.c (vn_reference_lookup): Also adjust vr alias-set
24388 according to tbaa_p.
24389 * tree-ssa-dom.c (lookup_avail_expr): Add tbaa_p flag.
24390 (optimize_stmt): For redundant store discovery do not allow tbaa.
24392 2016-02-16 Bernd Schmidt <bschmidt@redhat.com>
24394 PR tree-optimization/69714
24395 * tree-ssa-math-opts.c (find_bswap_or_nop): Revert previous change.
24396 Return NULL if we have irrelevant high bytes on BIG_ENDIAN.
24398 2016-02-16 Claudiu Zissulescu <claziss@synopsys.com>
24400 * config/arc/arc-modes.def (CC_FPU, CC_FPU_UNEQ): New modes.
24401 * config/arc/arc-opts.h (FPU_SP, FPU_SF, FPU_SC, FPU_SD, FPU_DP)
24402 (FPU_DF, FPU_DC, FPU_DD, FXP_DP): Define.
24403 * config/arc/arc.c (arc_init): Check FPU options.
24404 (get_arc_condition_code): Handle new CC_FPU* modes.
24405 (arc_select_cc_mode): Likewise.
24406 (arc_conditional_register_usage): Allow 64 bit datum into even-odd
24407 register pair only. Allow access for ARCv2 accumulator.
24408 (gen_compare_reg): Whenever we have FPU support use FPU compare
24410 (arc_reorg): Don't generate brcc insns when FPU compare
24411 instructions are involved.
24412 * config/arc/arc.h (TARGET_DPFP): Add TARGET_FP_DPAX condition.
24413 (TARGET_OPTFPE): Add condition when ARC EM can use optimized
24414 floating point emulation.
24415 (ACC_REG_FIRST, ACC_REG_LAST, ACCL_REGNO, ACCH_REGNO): Define.
24416 (REVERSE_CONDITION): Add new CC_FPU* modes.
24417 (TARGET_FP_SP_BASE): Define.
24418 (TARGET_FP_DP_BASE): Likewise.
24419 (TARGET_FP_SP_FUSED): Likewise.
24420 (TARGET_FP_DP_FUSED): Likewise.
24421 (TARGET_FP_SP_CONV): Likewise.
24422 (TARGET_FP_DP_CONV): Likewise.
24423 (TARGET_FP_SP_SQRT): Likewise.
24424 (TARGET_FP_DP_SQRT): Likewise.
24425 (TARGET_FP_DP_AX): Likewise.
24426 * config/arc/arc.md (ARCV2_ACC): New constant.
24427 (type): New fpu type attribute.
24428 (SDF): Conditional iterator.
24429 (cstore<mode>, cbranch<mode>): Change expand condition.
24430 (addsf3, subsf3, mulsf3, adddf3, subdf3, muldf3): New expands,
24431 handles FPU/FPX cases as well.
24432 * config/arc/arc.opt (mfpu): New option.
24433 * config/arc/fpx.md (addsf3_fpx, subsf3_fpx, mulsf3_fpx):
24435 (adddf3, muldf3, subdf3): Removed.
24436 * config/arc/predicates.md (proper_comparison_operator): Recognize
24438 * config/arc/fpu.md: New file.
24439 * doc/invoke.texi (ARC Options): Document mfpu option.
24441 2016-02-16 Richard Biener <rguenther@suse.de>
24443 PR rtl-optimization/69291
24444 * ifcvt.c (noce_try_store_flag_constants): Re-instantiate
24445 noce_operand_ok check.
24447 2016-02-16 Tom de Vries <tom@codesourcery.com>
24450 * omp-low.c (simd_clone_create): Remove call to
24451 symtab->call_cgraph_insertion_hooks.
24453 2016-02-16 Jakub Jelinek <jakub@redhat.com>
24455 PR tree-optimization/69802
24456 * tree-ssa-reassoc.c (update_range_test): If op is
24457 SSA_NAME_IS_DEFAULT_DEF, give up unless tem is a positive
24458 op == 1 test of precision 1 integral op, otherwise handle
24459 that case as op itself. Fix up formatting.
24460 (optimize_range_tests_to_bit_test, optimize_range_tests): Fix
24463 2016-02-16 Richard Biener <rguenther@suse.de>
24465 PR tree-optimization/69586
24466 * tree-vrp.c (register_edge_assert_for_2): Handle all integral
24467 types for conversion sources.
24469 2016-02-16 Richard Biener <rguenther@suse.de>
24471 PR middle-end/69801
24472 * fold-const.c (operand_equal_p): For COND_EXPR zero operand
24473 mask OEP_ADDRESS_OF.
24475 2016-02-16 Alan Modra <amodra@gmail.com>
24478 * config/rs6000/rs6000.md (reload_vsx_from_gprsf): Rewrite splitter.
24479 (p8_mtvsrd_df, p8_mtvsrd_sf): New.
24480 (p8_mtvsrd_1, p8_mtvsrd_2): Delete.
24482 (p8_mtvsrwz_1, p8_mtvsrwz_2): Delete.
24483 (p8_xxpermdi_<mode>): Take two DF inputs rather than one TF.
24484 (p8_fmrgow_<mode>): Likewise.
24485 (reload_vsx_from_gpr<mode>): Make clobber IF. Adjust for above
24487 (reload_fpr_from_gpr<mode>): Similarly. Use "d" for op0 constraint.
24488 (reload_vsx_from_gprsf): Use p8_mtvsrd_sf rather than attempting
24489 to use movdi_internal64. Remove op0_di.
24490 * config/rs6000/vsx.md (vsx_xscvspdpn_directmove): Make op1 SFmode.
24492 2016-02-15 Evandro Menezes <e.menezes@samsung.com>
24494 Add support for the FCCMP insn types
24496 * config/aarch64/aarch64.md (fccmp): Change insn type.
24497 (fccmpe): Likewise.
24498 * config/aarch64/thunderx.md (thunderx_fcmp): Add "fccmp{s,d}" types.
24499 * config/arm/cortex-a53.md (cortex_a53_fpalu): Likewise.
24500 * config/arm/cortex-a57.md (cortex_a57_fp_cmp): Likewise.
24501 * config/arm/xgene1.md (xgene1_fcmp): Likewise.
24502 * config/arm/exynos-m1.md (exynos_m1_fp_ccmp): New insn reservation.
24503 * config/arm/types.md (fccmps): Add new insn type.
24504 (fccmpd): Likewise.
24506 2016-02-15 Bernd Edlinger <bernd.edlinger@hotmail.de>
24508 * alias.c (get_alias_set): Fix a typo in comment.
24510 2016-02-15 Richard Biener <rguenther@suse.de>
24512 PR tree-optimization/69595
24513 * match.pd: Complete range test simplification to true.
24515 2016-02-15 Bernd Schmidt <bschmidt@redhat.com>
24517 PR rtl-optimization/69648
24518 * lra-constraints.c (update_ebb_live_info): Don't remove sets of
24519 pic_offset_table_rtx.
24521 PR rtl-optimization/69752
24522 * ira.c (update_equiv_regs): When looking for more than a single SET,
24523 also take other side effects into account.
24525 2016-02-15 Marcin Kościelnicki <koriakin@0x04.net>
24527 * config/s390/s390.c (s390_function_profiler): Add a new sequence
24528 for z900+ CPUs in 31-bit mode.
24530 2016-02-15 Marcin Kościelnicki <koriakin@0x04.net>
24532 * common/config/s390/s390-common.c (s390_supports_split_stack):
24534 (TARGET_SUPPORTS_SPLIT_STACK): New macro.
24535 * config/s390/s390-protos.h: Add s390_expand_split_stack_prologue.
24536 * config/s390/s390.c (struct machine_function): New field
24537 split_stack_varargs_pointer.
24538 (s390_register_info): Mark r12 as clobbered if it'll be used as temp
24539 in s390_emit_prologue.
24540 (s390_emit_prologue): Use r12 as temp if r1 is taken by split-stack
24542 (morestack_ref): New global.
24543 (SPLIT_STACK_AVAILABLE): New macro.
24544 (s390_expand_split_stack_prologue): New function.
24545 (s390_live_on_entry): New function.
24546 (s390_va_start): Use split-stack vararg pointer if appropriate.
24547 (s390_asm_file_end): Emit the split-stack note sections.
24548 (TARGET_EXTRA_LIVE_ON_ENTRY): New macro.
24549 * config/s390/s390.md (UNSPEC_STACK_CHECK): New unspec.
24550 (UNSPECV_SPLIT_STACK_CALL): New unspec.
24551 (UNSPECV_SPLIT_STACK_DATA): New unspec.
24552 (split_stack_prologue): New expand.
24553 (split_stack_space_check): New expand.
24554 (split_stack_data): New insn.
24555 (split_stack_call): New expand.
24556 (split_stack_call_*): New insn.
24557 (split_stack_cond_call): New expand.
24558 (split_stack_cond_call_*): New insn.
24560 2016-02-15 Richard Biener <rguenther@suse.de>
24562 PR tree-optimization/69783
24563 * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
24564 Add trivially correct cases.
24566 2016-02-15 Tom de Vries <tom@codesourcery.com>
24569 * lto-cgraph.c (input_offload_tables): Add and handle bool parameter
24571 * lto-streamer.h (input_offload_tables): Add and handle bool parameter.
24573 2016-02-15 Richard Biener <rguenther@suse.de>
24575 PR tree-optimization/69776
24576 * tree-ssa-sccvn.h (vn_reference_lookup): Adjust prototype.
24577 * tree-ssa-sccvn.c (vn_reference_lookup): Add parameter to
24578 indicate whether we can use TBAA to disambiguate against stores.
24579 Use alias-set zero if not.
24580 (visit_reference_op_store): Do not use TBAA when looking up
24582 * tree-ssa-pre.c (compute_avail): Use TBAA here.
24583 (eliminate_dom_walker::before_dom_children): But not when looking
24584 up redundant stores.
24586 2016-02-14 John David Anglin <danglin@gcc.gnu.org>
24588 * config/pa/pa.md (absqi2, absghi2, bswaphi2, bswapsi2, bswapdi2): New.
24590 2016-02-14 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
24592 * config/i386/znver1.md
24593 (znver1_pop, znver1_pop_mem,
24594 znver1_load_imov_double_store,
24595 znver1_load_imov_direct_store,
24596 znver1_load_imov_direct_load,
24597 znver1_load_imov_double_load): Add new.
24598 (znver1_insn, znver1_insn_load): Add icmov type.
24599 (znver1_sseavx_fma,
24600 znver1_sseavx_fma_load,
24602 znver1_avx256_fma_load): Fix pipe usage.
24604 2016-02-14 Alan Modra <amodra@gmail.com>
24607 * reload.c (find_reloads_address_1): For pre/post-inc/dec
24608 with an invalid hard reg, reload just the reg not the entire
24609 pre/post-inc/dec address expression.
24611 2016-02-13 Oleg Endo <olegendo@gcc.gnu.org>
24614 * config/sh/sh.md (sibcall_value_pcrel): Replace =&k scratch reg with
24615 fixed R1_REG scratch reg.
24616 (sibcall_value_pcrel_fdpic): Likewise.
24618 2016-02-13 Oleg Endo <olegendo@gcc.gnu.org>
24622 * config/sh/sh.md (*zero_extract_3): New insn_and_split pattern.
24624 2016-02-12 Walter Lee <walt@tilera.com>
24626 * config/tilepro/t-tilepro: Replace CC_FOR_BUILD with CXX_FOR_BUILD.
24627 * config/tilegx/t-tilegx: Likewise.
24629 2016-02-12 David Malcolm <dmalcolm@redhat.com>
24632 * diagnostic-show-locus.c (struct line_span): New struct.
24633 (layout::get_first_line): Delete.
24634 (layout::get_last_line): Delete.
24635 (layout::get_num_line_spans): New member function.
24636 (layout::get_line_span): Likewise.
24637 (layout::print_heading_for_line_span_index_p): Likewise.
24638 (layout::get_expanded_location): Likewise.
24639 (layout::calculate_line_spans): Likewise.
24640 (layout::m_first_line): Delete.
24641 (layout::m_last_line): Delete.
24642 (layout::m_line_spans): New field.
24643 (layout::layout): Update comment. Replace m_first_line and
24644 m_last_line with m_line_spans, replacing their initialization
24645 with a call to calculate_line_spans.
24646 (diagnostic_show_locus): When printing source lines and
24647 annotations, rather than looping over a single span
24648 of lines, instead loop over each line_span within
24649 the layout, with an inner loop over the lines within them.
24650 Call the context's start_span callback when changing line spans.
24651 * diagnostic.c (diagnostic_initialize): Initialize start_span.
24652 (diagnostic_build_prefix): Break out the building of the location
24653 part of the string into...
24654 (diagnostic_get_location_text): ...this new function, rewriting
24655 it from nested ternary expressions to a sequence of "if"
24657 (default_diagnostic_start_span_fn): New function.
24658 * diagnostic.h (diagnostic_start_span_fn): New typedef.
24659 (diagnostic_context::start_span): New field.
24660 (default_diagnostic_start_span_fn): New prototype.
24662 2016-02-12 David Malcolm <dmalcolm@redhat.com>
24665 * gcc.c (driver::finalize): Fix cleanup of "specs".
24667 2016-02-12 David Malcolm <dmalcolm@redhat.com>
24671 * gcc.c (driver::driver): Initialize m_option_suggestions.
24672 (driver::~driver): Clean up m_option_suggestions.
24673 (suggest_option): Convert to...
24674 (driver::suggest_option): ...this, and split out into
24675 driver::build_option_suggestions and find_closest_string.
24676 (driver::build_option_suggestions): New function, from
24677 first half of suggest_option. Special-case
24678 OPT_fsanitize_ and OPT_fsanitize_recover_, making use of
24679 the sanitizer_opts array. For options of enum types, add the
24680 various enum values to the candidate strings.
24681 (driver::handle_unrecognized_options): Remove "const".
24682 * gcc.h (driver::handle_unrecognized_options): Likewise.
24683 (driver::build_option_suggestions): New decl.
24684 (driver::suggest_option): New decl.
24685 (driver::m_option_suggestions): New field.
24686 * opts-common.c (add_misspelling_candidates): New function.
24687 * opts.c (sanitizer_opts): Remove decl of struct sanitizer_opts_s
24688 and make non-static.
24689 * opts.h (sanitizer_opts): New array decl.
24690 (add_misspelling_candidates): New function decl.
24691 * spellcheck.c (find_closest_string): New function.
24692 * spellcheck.h (find_closest_string): New function decl.
24694 2016-02-12 Jakub Jelinek <jakub@redhat.com>
24696 PR rtl-optimization/69764
24697 PR rtl-optimization/69771
24698 * optabs.c (expand_binop_directly): For shift_optab_p, force
24699 convert_modes with VOIDmode if xop1 has VOIDmode.
24701 2016-02-12 Ilya Enkovich <enkovich.gnu@gmail.com>
24704 * lto-streamer-out.c (lto_output): Use thunk.add_pointer_bounds_args
24705 to correctly determine instrumentation thunks.
24707 2016-02-12 Jakub Jelinek <jakub@redhat.com>
24710 * ipa-split.c (split_function): If split part returns TREE_ADDRESSABLE
24711 type by reference, force lhs on the call.
24714 * ipa-split.c (split_function): Don't compute/use main_part_return_p.
24715 Compute retval and retbnd early in all cases if split_part_return_p
24716 and return_bb is not EXIT. Remove all clobber stmts and reset
24717 all debug stmts that refer to SSA_NAMEs defined in split part,
24718 except if it is retval, in that case replace the old retval with the
24719 lhs of the call to the split part.
24721 2016-02-12 Kugan Vivekanandarajah <kuganv@linaro.org>
24724 2016-02-12 Kugan Vivekanandarajah <kuganv@linaro.org>
24726 PR middle-end/66726
24727 * tree-ssa-reassoc.c (optimize_range_tests): Handle tcc_compare stmt
24728 whose result is used in PHI.
24729 (maybe_optimize_range_tests): Likewise.
24730 (final_range_test_p): Likweise.
24732 2016-02-12 Kugan Vivekanandarajah <kuganv@linaro.org>
24734 PR middle-end/66726
24735 * tree-ssa-reassoc.c (optimize_range_tests): Handle tcc_compare stmt
24736 whose result is used in PHI.
24737 (maybe_optimize_range_tests): Likewise.
24738 (final_range_test_p): Likweise.
24740 2016-02-12 Jakub Jelinek <jakub@redhat.com>
24742 * cgraph.c: Spelling fixes - behaviour -> behavior and
24743 neighbour -> neighbor.
24744 * target.def: Likewise.
24745 * sel-sched.c: Likewise.
24746 * config/mips/mips.c: Likewise.
24747 * config/arc/arc.md: Likewise.
24748 * config/arm/cortex-a57.md: Likewise.
24749 * config/arm/arm.c: Likewise.
24750 * config/arm/neon.md: Likewise.
24751 * config/arm/arm-c.c: Likewise.
24752 * config/vms/vms-c.c: Likewise.
24753 * config/s390/s390.c: Likewise.
24754 * config/i386/znver1.md: Likewise.
24755 * config/i386/i386.c: Likewise.
24756 * config/ia64/hpux-unix2003.h: Likewise.
24757 * config/msp430/msp430.md: Likewise.
24758 * config/rx/rx.c: Likewise.
24759 * config/rx/rx.md: Likewise.
24760 * config/aarch64/aarch64-simd.md: Likewise.
24761 * config/aarch64/aarch64.c: Likewise.
24762 * config/nvptx/nvptx.c: Likewise.
24763 * config/bfin/bfin.c: Likewise.
24764 * config/cris/cris.opt: Likewise.
24765 * config/rs6000/rs6000.c: Likewise.
24766 * target.h: Likewise.
24767 * spellcheck.c: Likewise.
24768 * ira-build.c: Likewise.
24769 * tree-inline.c: Likewise.
24770 * builtins.c: Likewise.
24771 * lra-constraints.c: Likewise.
24772 * explow.c: Likewise.
24773 * hwint.h: Likewise.
24774 * targhooks.c: Likewise.
24775 * tree-vect-data-refs.c: Likewise.
24776 * expr.c: Likewise.
24777 * doc/tm.texi: Likewise.
24778 * doc/extend.texi: Likewise.
24779 * doc/install.texi: Likewise.
24780 * doc/md.texi: Likewise.
24781 * tree-ssa-tail-merge.c: Likewise.
24782 * sched-int.h: Likewise.
24783 * match.pd: Likewise.
24784 * sched-ebb.c: Likewise.
24785 * target.def (omit_struct_return_reg): Likewise.
24786 * gimple-ssa-isolate-paths.c: Likewise.
24787 (find_implicit_erroneous_behaviour): Renamed to...
24788 (find_implicit_erroneous_behavior): ... this.
24789 (find_explicit_erroneous_behaviour): Renamed to...
24790 (find_explicit_erroneous_behavior): ... this.
24791 (gimple_ssa_isolate_erroneous_paths): Adjust caller.
24793 2016-02-11 Segher Boessenkool <segher@kernel.crashing.org>
24795 PR rtl-optimization/64682
24796 PR rtl-optimization/69567
24797 PR rtl-optimization/69737
24798 * combine.c (distribute_notes) <REG_DEAD>: If the register is set
24799 in I2 as well, just lose it.
24801 2016-02-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
24803 * config/aarch64/aarch64.c (aarch64_last_printed_arch_string):
24805 (aarch64_last_printed_tune_string): Likewise.
24806 (aarch64_declare_function_name): Only output .arch assembler
24807 directive if it will be different from the previously output
24808 directive. Same for .tune comment but only if -dA is set.
24809 (aarch64_start_file): New function.
24810 (TARGET_ASM_FILE_START): Define.
24812 2016-02-11 David Malcolm <dmalcolm@redhat.com>
24815 * Makefile.in (PLUGIN_HEADERS): Add params.list.
24817 2016-02-11 Jakub Jelinek <jakub@redhat.com>
24820 * tree-vect-slp.c (vect_schedule_slp_instance): Avoid
24821 -Wmaybe-uninitialized warning.
24823 2016-02-11 Oleg Endo <olegendo@gcc.gnu.org>
24826 * config/sh/sh.md (casesi_worker_0): Add T_REG use.
24828 2016-02-11 Richard Biener <rguenther@suse.de>
24830 PR rtl-optimization/69291
24831 * ifcvt.c (noce_try_store_flag_constants): Do not allow
24832 subexpressions affected by changing the result.
24834 2016-02-10 Vladimir Makarov <vmakarov@redhat.com>
24837 * lra-constraints.c (curr_insn_transform): Find in/out operands
24838 for secondary memory moves. Update dups.
24840 2016-02-10 Yuri Rumyantsev <ysrumyan@gmail.com>
24842 PR tree-optimization/69652
24843 * tree-vect-loop.c (optimize_mask_stores): Move declaration of STMT1
24844 to nested loop, did source re-formatting, skip debug statements,
24845 add check on statement with volatile operand, remove dead scalar
24848 2016-02-10 Jakub Jelinek <jakub@redhat.com>
24849 Patrick Palka <ppalka@gcc.gnu.org>
24853 * gimplify.c (gimplify_modify_expr): Set lhs even for noreturn
24854 calls if the return type is TREE_ADDRESSABLE.
24855 * cgraphunit.c (cgraph_node::expand_thunk): Likewise.
24856 * ipa-split.c (split_function): Fix doubled "we" in comment.
24857 Use void return type for the split part even if
24858 !split_point->split_part_set_retval.
24860 2016-02-10 Bin Cheng <bin.cheng@arm.com>
24862 PR tree-optimization/68021
24863 * tree-ssa-loop-ivopts.c (get_computation_aff): Set ratio to 1 if
24864 when computing the value of biv cand by itself.
24866 2016-02-10 Wilco Dijkstra <wdijkstr@arm.com>
24868 * config/aarch64/aarch64.c (cortexa53_tunings): Enable AES fusion.
24869 (cortexa57_tunings): Likewise.
24870 (cortexa72_tunings): Likewise.
24871 (arch_macro_fusion_pair_p): Add support for AES fusion.
24872 * config/aarch64/aarch64-fusion-pairs.def: Add AES_AESMC entry.
24873 * config/arm/aarch-common.c (aarch_crypto_can_dual_issue):
24874 Allow virtual registers before reload so early scheduling works.
24875 * config/arm/cortex-a57.md (cortex_a57_crypto_simple): Use
24876 correct latency and pipeline.
24877 (cortex_a57_crypto_complex): Likewise.
24878 (cortex_a57_crypto_xor): Likewise.
24879 (define_bypass): Add AES bypass.
24881 2016-02-10 Richard Biener <rguenther@suse.de>
24883 PR tree-optimization/69726
24884 * passes.def: Add DCE pass before late uninit.
24885 * match.pd: Add A ? B : (!A ? C : X) -> A ? B : C patterns to
24886 really fixup if-conversions job.
24888 2016-02-10 Wilco Dijkstra <wdijkstr@arm.com>
24890 * config/arm/arm.c (arm_cortex_a53_tune): Enable AES fusion.
24891 (arm_cortex_a57_tune): Likewise.
24892 (aarch_macro_fusion_pair_p): Add support for AES fusion.
24893 * config/arm/arm-protos.h (fuse_ops): Add FUSE_AES_AESMC.
24895 2016-02-10 Eric Botcazou <ebotcazou@adacore.com>
24897 * timevar.def (TV_PHASE_DBGINFO): Delete.
24898 (TV_PHASE_CHECK_DBGINFO): Likewise.
24899 * varpool.c (varpool_node::assemble_decl): Do not change timevar.
24901 2016-02-10 Richard Biener <rguenther@suse.de>
24903 PR tree-optimization/69719
24904 * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
24905 Adjust previous fix by ensuring that dr_a1 is left of dr_a2.
24907 2016-02-09 Andrew Pinski <apinski@cavium.com>
24910 * optabs-tree.c (expand_vec_cond_expr_p): Don't early return if
24911 get_vcond_mask_icode returns false.
24913 2016-02-09 Michael Meissner <meissner@linux.vnet.ibm.com>
24916 * config/rs6000/predicates.md (fusion_gpr_addis): Prevent fusing
24917 an ADDIS that adds a pointer to a large constant that sets the
24918 upper16 bits with a load operation.
24920 2016-02-09 Charles Baylis <charles.baylis@linaro.org>
24923 * config/arm/arm.c (arm_evpc_neon_vzip): Allow for big endian lane
24925 * config/arm/arm_neon.h (vzipq_s8): Adjust shuffle patterns for big
24927 (vzipq_s16): Likewise.
24928 (vzipq_s32): Likewise.
24929 (vzipq_f32): Likewise.
24930 (vzipq_u8): Likewise.
24931 (vzipq_u16): Likewise.
24932 (vzipq_u32): Likewise.
24933 (vzipq_p8): Likewise.
24934 (vzipq_p16): Likewise.
24936 2016-02-09 Charles Baylis <charles.baylis@linaro.org>
24939 * config/arm/arm.c (neon_endian_lane_map): New function.
24940 (neon_vector_pair_endian_lane_map): New function.
24941 (arm_evpc_neon_vuzp): Allow for big endian lane order.
24942 * config/arm/arm_neon.h (vuzpq_s8): Adjust shuffle patterns for big
24944 (vuzpq_s16): Likewise.
24945 (vuzpq_s32): Likewise.
24946 (vuzpq_f32): Likewise.
24947 (vuzpq_u8): Likewise.
24948 (vuzpq_u16): Likewise.
24949 (vuzpq_u32): Likewise.
24950 (vuzpq_p8): Likewise.
24951 (vuzpq_p16): Likewise.
24953 2016-02-11 Alexandre Oliva <aoliva@redhat.com>
24956 * regstat.c (regstat_bb_compute_calls_crossed): Disregard
24959 2016-02-09 Uros Bizjak <ubizjak@gmail.com>
24961 * config/i386/i386.md (insv<mode>_1): Use gen_int_mode to
24962 truncate const_int operand 1 to QImode.
24964 2016-02-09 Eric Botcazou <ebotcazou@adacore.com>
24966 * gimple-ssa-backprop.c (optimize_phi): Do not replace an argument
24967 corresponding to an abnormal edge.
24969 2016-02-09 Tom de Vries <tom@codesourcery.com>
24971 PR tree-optimization/69599
24972 * tree-ssa-structalias.c (fndecl_maybe_in_other_partition): New
24974 (find_func_aliases_for_builtin_call, find_func_clobbers)
24975 (ipa_pta_execute): Handle case that foo and foo._0 are not in same lto
24978 2016-02-09 Richard Biener <rguenther@suse.de>
24980 PR tree-optimization/69715
24981 * tree-ssa.c (execute_update_addresses_taken): Mark non-decl
24982 LHS on calls as non-rewritable.
24984 2016-02-09 Tom de Vries <tom@codesourcery.com>
24987 * lto-wrapper.c (append_diag_options): New function.
24988 (compile_offload_image): Call append_diag_options.
24990 2016-02-08 Sandra Loosemore <sandra@codesourcery.com>
24993 * doc/extend.texi (Flag Output Operands): Correct sectioning.
24994 Minor copy-edit to fix verb tenses.
24996 2016-02-08 Jakub Jelinek <jakub@redhat.com>
24998 PR tree-optimization/69209
24999 * ipa-split.c (split_function): If split part is not
25000 returning retval, retval has gimple type but is not
25001 gimple value, force it into a SSA_NAME first.
25003 2016-02-08 Nicklas Bo Jensen <nbjensen@gmail.com>
25005 * doc/tree-ssa.texi (Preserving the virtual SSA form): Remove
25008 2016-02-08 Jason Merrill <jason@redhat.com>
25011 * convert.c (convert_to_integer_1): Check dofold on truncation
25013 (convert_to_pointer_maybe_fold, convert_to_real_maybe_fold)
25014 (convert_to_integer_maybe_fold, convert_to_complex_maybe_fold):
25015 Rename from *_nofold.
25016 * convert.h (convert_to_pointer_nofold, convert_to_integer_nofold)
25017 (convert_to_real_nofold, convert_to_complex_nofold): New inlines.
25019 2016-02-08 Bernd Schmidt <bschmidt@redhat.com>
25022 * tree.c (build_common_tree_nodes): Remove short_double argument.
25023 All callers changed.
25024 * tree.h (build_common_tree_nodes): Adjust declaration.
25025 * doc/invoke.texi (-fshort-double): Remove documentation.
25026 * config/mips/t-img-elf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
25027 MULTILIB_EXCEPTIONS): Remove -fshort-double variant.
25028 * lto-wrapper.c (merge_and_complain, append_compiler_options)
25029 (append_linker_options): Don't handle OPT_fshort_double.
25031 PR rtl-optimization/68730
25032 * lra-remat.c (insn_to_cand_activation): New static variable.
25033 (lra_remat): Allocate and free it.
25034 (create_cand): New arg activation. Initialize a field in
25035 insn_to_cand_activation if it is nonnull.
25036 (create_cands): Pass the activation insn to create_cand when making
25037 a candidate involving an output reload. Reorganize code a little.
25038 (do_remat): Keep track of active status of candidates in a separate
25041 2016-02-08 Richard Biener <rguenther@suse.de>
25043 PR tree-optimization/69719
25044 * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
25045 Properly use absolute of the difference of the two offsets to
25046 compare or adjust the segment length.
25048 2016-02-08 Richard Biener <rguenther@suse.de>
25049 Jeff Law <law@redhat.com>
25052 * tree-ssanames.c (make_ssa_name_fn): Always use unqualified
25053 types for anonymous SSA names.
25055 2016-02-08 Richard Biener <rguenther@suse.de>
25057 PR rtl-optimization/69274
25058 * ira.c (ira_setup_alts): Do not change recog_data.operand order.
25060 2016-02-08 Jeff Law <law@redhat.com>
25062 PR tree-optimization/65917
25063 * tree-ssa-dom.c (record_temporary_equivalences): Record both
25064 equivalences from if (x == y) style conditionals.
25065 (loop_depth_of_name): Remove.
25066 (record_equality): Remove loop depth check.
25067 * tree-ssa-scopedtables.h (const_and_copies): Refine comments.
25068 (const_and_copies::record_const_or_copy_raw): New member function.
25069 * tree-ssa-scopedtables.c
25070 (const_and_copies::record_const_or_copy_raw): New, factored out of
25071 (const_and_copies::record_const_or_copy): Call new member function.
25073 2016-02-05 Jeff Law <law@redhat.com>
25075 PR tree-optimization/68541
25076 * gimple-ssa-split-paths.c: Include tree-cfg.h and params.h.
25077 (count_stmts_in_block): New function.
25078 (poor_ifcvt_candidate_code): Likewise.
25079 (is_feasible_trace): Add some heuristics to determine when path
25080 splitting is profitable.
25081 (find_block_to_duplicate_for_splitting_paths): Make sure the graph
25082 is a diamond with a single exit.
25084 2016-02-05 Martin Sebor <msebor@redhat.com>
25087 * doc/invoke.texi: Update -Wplacement-new to take an optional
25090 2016-02-06 Richard Henderson <rth@redhat.com>
25093 * tree.c (tree_nop_conversion_p): Do not strip casts into or
25094 out of non-standard address spaces.
25096 2016-02-05 Jakub Jelinek <jakub@redhat.com>
25098 PR rtl-optimization/69691
25099 * lra-eliminations.c (move_plus_up): Don't add the addend twice.
25101 2016-02-05 Pat Haugen <pthaugen@us.ibm.com>
25103 * config/rs6000/crypto.md (crypto_vpermxor_<mode>): Correct insn type.
25104 * config/rs6000/rs6000.md (mov<mode>_hardfloat): Likewise.
25105 (*ieee128_mfvsrd_64bit): Likewise.
25106 (*ieee128_mfvsrd_32bit): Likewise.
25108 2016-02-05 Ilya Enkovich <enkovich.gnu@gmail.com>
25112 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
25114 * cgraphunit.c (cgraph_node::reset): Clear thunk info and
25115 instrumented_version.
25117 2016-01-05 Jeremy Bennett <jeremy.bennett@embecosm.com>
25119 * doc/invoke.texi (Optimize Options): In table of --param options
25120 rename second occurrence of tracer-min-branch-ratio to
25121 tracer-min-branch-probability, rename
25122 tracer-min-branch-ratio-feedback to
25123 tracer-min-branch-probability-feedback and clarify description,
25124 rename sched-spec-state-edge-prob-cutoff to
25125 sched-state-edge-prob-cutoff, rename selsched-max-insns-to-rename
25126 to selsched-insns-to-rename, rename lto-minpartition to
25127 lto-min-partition, delete reorder-blocks-duplicate and
25128 reorder-blocks-duplicate-feedback.
25130 2016-02-05 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
25132 * config/s390/s390.c (s390_register_info_set_ranges): Remove
25135 2016-02-05 Dominik Vogt <vogt@linux.vnet.ibm.com>
25137 * doc/extend.texi: S/390: Correct some typos.
25139 2016-02-05 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
25141 * config/s390/s390.c (s390_emit_call): Add missing 64 bit check.
25143 2016-02-05 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
25146 * config/s390/s390.c (SAVE_SLOT_NONE, SAVE_SLOT_STACK): New defines.
25147 (s390_register_info_gprtofpr): Use new macros above.
25148 (s390_register_info_stdarg_fpr): Adjust max_fpr to better match
25150 (s390_register_info_stdarg_gpr): Adjust max_gpr to better match
25151 its name. Adjust restore and save gpr ranges.
25152 (s390_register_info_set_ranges): New function.
25153 (s390_register_info): Use new macros above. Call
25154 s390_register_info_set_ranges.
25155 (s390_optimize_register_info): Likewise.
25156 (s390_hard_regno_rename_ok): Use new macros.
25157 (s390_hard_regno_scratch_ok): Likewise.
25158 (s390_emit_epilogue): Likewise.
25159 (s390_can_use_return_insn): Likewise.
25160 (s390_optimize_prologue): Likewise.
25161 * config/s390/s390.md (GPR2_REGNUM, GPR6_REGNUM): New constants.
25163 2016-02-05 Jakub Jelinek <jakub@redhat.com>
25166 * config/i386/i386.c (convert_scalars_to_vector): Readd stack
25168 (ix86_option_override_internal): Disable TARGET_STV even for
25169 -m{incoming,preferred}-stack-boundary=3.
25171 2016-02-03 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
25173 * config.gcc: Mark deprecated rtems targets as obsolete.
25175 2016-02-04 Segher Boessenkool <segher@kernel.crashing.org>
25177 PR rtl-optimization/64682
25178 PR rtl-optimization/69567
25179 * combine.c (distribute_notes) <REG_DEAD>: Place the death note
25180 before I2 only if the register is both used and set in I2.
25182 2016-02-04 DJ Delorie <dj@redhat.com>
25184 * config/msp430/msp430.c (msp430_start_function): Add function type.
25186 2016-02-04 Jakub Jelinek <jakub@redhat.com>
25189 * tree-dfa.c (get_ref_base_and_extent): Remove unreachable code.
25191 2016-02-04 Uros Bizjak <ubizjak@gmail.com>
25193 PR rtl-optimization/69577
25195 2015-10-29 Richard Henderson <rth@redhat.com>
25199 * config/i386/i386.c (ix86_cannot_change_mode_class): Tighten
25200 sse check to the exact conditions of PR 67609.
25202 2016-02-04 Michael Meissner <meissner@linux.vnet.ibm.com>
25205 * config/rs6000/rs6000.md (mov<mode>_64bit_dm): Use 'd' constraint
25206 instead of 'ws', and 'wh' instead of 'wm' since TFmode/IFmode are
25207 not allowed into the traditional Altivec registers.
25208 (movtd_64bit_nodm): Likewise.
25209 (mov<mode>_32bit, FMOVE128_FPR iterator): Likewise.
25211 2016-02-04 David Malcolm <dmalcolm@redhat.com>
25213 * config/aarch64/cortex-a57-fma-steering.c
25214 (aarch64_register_fma_steering): Remove "static" from arguments
25217 2016-02-04 Wilco Dijkstra <wdijkstr@arm.com>
25220 * ccmp.c (expand_ccmp_expr_1): Avoid evaluating gs0/gs1
25221 twice when complex.
25223 2016-02-04 Mike Frysinger <vapier@gentoo.org>
25225 * doc/invoke.texi: Delete -mno-fma4.
25227 2016-02-04 Richard Sandiford <richard.sandiford@arm.com>
25229 PR rtl-optimization/69577
25230 * reginfo.c (record_subregs_of_mode): Add a partial_def parameter.
25231 (find_subregs_of_mode): Update accordingly. Iterate over partial
25234 2016-02-04 Alan Lawrence <alan.lawrence@arm.com>
25236 * config/arm/arm-protos.h (neon_reinterpret): Remove.
25237 * config/arm/arm.c (neon_reinterpret): Remove.
25238 * config/arm/arm_neon_builtins.def (vreinterpretv8qi, vreinterpretv4hi,
25239 vreinterpretv2si, vreinterpretv2sf, vreinterpretdi, vreinterpretv16qi,
25240 vreinterpretv8hi, vreinterpretv4si, vreinterpretv4sf, vreinterpretv2di,
25241 vreinterpretti): Remove.
25242 * config/arm/neon.md (neon_vreinterpretv8qi<mode>,
25243 neon_vreinterpretv4hi<mode>, neon_vreinterpretv2si<mode>,
25244 neon_vreinterpretv2sf<mode>, neon_vreinterpretdi<mode>,
25245 neon_vreinterpretti<mode>, neon_vreinterpretv16qi<mode>,
25246 neon_vreinterpretv8hi<mode>, neon_vreinterpretv4si<mode>,
25247 neon_vreinterpretv4sf<mode>, neon_vreinterpretv2di<mode>): Remove.
25248 * config/arm/arm_neon.h (vreinterpret_p8_p16, vreinterpret_p8_f32,
25249 vreinterpret_p8_p64, vreinterpret_p8_s64, vreinterpret_p8_u64,
25250 vreinterpret_p8_s8, vreinterpret_p8_s16, vreinterpret_p8_s32,
25251 vreinterpret_p8_u8, vreinterpret_p8_u16, vreinterpret_p8_u32,
25252 vreinterpret_p16_p8, vreinterpret_p16_f32, vreinterpret_p16_p64,
25253 vreinterpret_p16_s64, vreinterpret_p16_u64, vreinterpret_p16_s8,
25254 vreinterpret_p16_s16, vreinterpret_p16_s32, vreinterpret_p16_u8,
25255 vreinterpret_p16_u16, vreinterpret_p16_u32, vreinterpret_f32_p8,
25256 vreinterpret_f32_p16, vreinterpret_f32_p64, vreinterpret_f32_s64,
25257 vreinterpret_f32_u64, vreinterpret_f32_s8, vreinterpret_f32_s16,
25258 vreinterpret_f32_s32, vreinterpret_f32_u8, vreinterpret_f32_u16,
25259 vreinterpret_f32_u32, vreinterpret_p64_p8, vreinterpret_p64_p16,
25260 vreinterpret_p64_f32, vreinterpret_p64_s64, vreinterpret_p64_u64,
25261 vreinterpret_p64_s8, vreinterpret_p64_s16, vreinterpret_p64_s32,
25262 vreinterpret_p64_u8, vreinterpret_p64_u16, vreinterpret_p64_u32,
25263 vreinterpret_s64_p8, vreinterpret_s64_p16, vreinterpret_s64_f32,
25264 vreinterpret_s64_p64, vreinterpret_s64_u64, vreinterpret_s64_s8,
25265 vreinterpret_s64_s16, vreinterpret_s64_s32, vreinterpret_s64_u8,
25266 vreinterpret_s64_u16, vreinterpret_s64_u32, vreinterpret_u64_p8,
25267 vreinterpret_u64_p16, vreinterpret_u64_f32, vreinterpret_u64_p64,
25268 vreinterpret_u64_s64, vreinterpret_u64_s8, vreinterpret_u64_s16,
25269 vreinterpret_u64_s32, vreinterpret_u64_u8, vreinterpret_u64_u16,
25270 vreinterpret_u64_u32, vreinterpret_s8_p8, vreinterpret_s8_p16,
25271 vreinterpret_s8_f32, vreinterpret_s8_p64, vreinterpret_s8_s64,
25272 vreinterpret_s8_u64, vreinterpret_s8_s16, vreinterpret_s8_s32,
25273 vreinterpret_s8_u8, vreinterpret_s8_u16, vreinterpret_s8_u32,
25274 vreinterpret_s16_p8, vreinterpret_s16_p16, vreinterpret_s16_f32,
25275 vreinterpret_s16_p64, vreinterpret_s16_s64, vreinterpret_s16_u64,
25276 vreinterpret_s16_s8, vreinterpret_s16_s32, vreinterpret_s16_u8,
25277 vreinterpret_s16_u16, vreinterpret_s16_u32, vreinterpret_s32_p8,
25278 vreinterpret_s32_p16, vreinterpret_s32_f32, vreinterpret_s32_p64,
25279 vreinterpret_s32_s64, vreinterpret_s32_u64, vreinterpret_s32_s8,
25280 vreinterpret_s32_s16, vreinterpret_s32_u8, vreinterpret_s32_u16,
25281 vreinterpret_s32_u32, vreinterpret_u8_p8, vreinterpret_u8_p16,
25282 vreinterpret_u8_f32, vreinterpret_u8_p64, vreinterpret_u8_s64,
25283 vreinterpret_u8_u64, vreinterpret_u8_s8, vreinterpret_u8_s16,
25284 vreinterpret_u8_s32, vreinterpret_u8_u16, vreinterpret_u8_u32,
25285 vreinterpret_u16_p8, vreinterpret_u16_p16, vreinterpret_u16_f32,
25286 vreinterpret_u16_p64, vreinterpret_u16_s64, vreinterpret_u16_u64,
25287 vreinterpret_u16_s8, vreinterpret_u16_s16, vreinterpret_u16_s32,
25288 vreinterpret_u16_u8, vreinterpret_u16_u32, vreinterpret_u32_p8,
25289 vreinterpret_u32_p16, vreinterpret_u32_f32, vreinterpret_u32_p64,
25290 vreinterpret_u32_s64, vreinterpret_u32_u64, vreinterpret_u32_s8,
25291 vreinterpret_u32_s16, vreinterpret_u32_s32, vreinterpret_u32_u8,
25292 vreinterpret_u32_u16, vreinterpretq_p8_p16, vreinterpretq_p8_f32,
25293 vreinterpretq_p8_p64, vreinterpretq_p8_p128, vreinterpretq_p8_s64,
25294 vreinterpretq_p8_u64, vreinterpretq_p8_s8, vreinterpretq_p8_s16,
25295 vreinterpretq_p8_s32, vreinterpretq_p8_u8, vreinterpretq_p8_u16,
25296 vreinterpretq_p8_u32, vreinterpretq_p16_p8, vreinterpretq_p16_f32,
25297 vreinterpretq_p16_p64, vreinterpretq_p16_p128, vreinterpretq_p16_s64,
25298 vreinterpretq_p16_u64, vreinterpretq_p16_s8, vreinterpretq_p16_s16,
25299 vreinterpretq_p16_s32, vreinterpretq_p16_u8, vreinterpretq_p16_u16,
25300 vreinterpretq_p16_u32, vreinterpretq_f32_p8, vreinterpretq_f32_p16,
25301 vreinterpretq_f32_p64, vreinterpretq_f32_p128, vreinterpretq_f32_s64,
25302 vreinterpretq_f32_u64, vreinterpretq_f32_s8, vreinterpretq_f32_s16,
25303 vreinterpretq_f32_s32, vreinterpretq_f32_u8, vreinterpretq_f32_u16,
25304 vreinterpretq_f32_u32, vreinterpretq_p64_p8, vreinterpretq_p64_p16,
25305 vreinterpretq_p64_f32, vreinterpretq_p64_p128, vreinterpretq_p64_s64,
25306 vreinterpretq_p64_u64, vreinterpretq_p64_s8, vreinterpretq_p64_s16,
25307 vreinterpretq_p64_s32, vreinterpretq_p64_u8, vreinterpretq_p64_u16,
25308 vreinterpretq_p64_u32, vreinterpretq_p128_p8, vreinterpretq_p128_p16,
25309 vreinterpretq_p128_f32, vreinterpretq_p128_p64, vreinterpretq_p128_s64,
25310 vreinterpretq_p128_u64, vreinterpretq_p128_s8, vreinterpretq_p128_s16,
25311 vreinterpretq_p128_s32, vreinterpretq_p128_u8, vreinterpretq_p128_u16,
25312 vreinterpretq_p128_u32, vreinterpretq_s64_p8, vreinterpretq_s64_p16,
25313 vreinterpretq_s64_f32, vreinterpretq_s64_p64, vreinterpretq_s64_p128,
25314 vreinterpretq_s64_u64, vreinterpretq_s64_s8, vreinterpretq_s64_s16,
25315 vreinterpretq_s64_s32, vreinterpretq_s64_u8, vreinterpretq_s64_u16,
25316 vreinterpretq_s64_u32, vreinterpretq_u64_p8, vreinterpretq_u64_p16,
25317 vreinterpretq_u64_f32, vreinterpretq_u64_p64, vreinterpretq_u64_p128,
25318 vreinterpretq_u64_s64, vreinterpretq_u64_s8, vreinterpretq_u64_s16,
25319 vreinterpretq_u64_s32, vreinterpretq_u64_u8, vreinterpretq_u64_u16,
25320 vreinterpretq_u64_u32, vreinterpretq_s8_p8, vreinterpretq_s8_p16,
25321 vreinterpretq_s8_f32, vreinterpretq_s8_p64, vreinterpretq_s8_p128,
25322 vreinterpretq_s8_s64, vreinterpretq_s8_u64, vreinterpretq_s8_s16,
25323 vreinterpretq_s8_s32, vreinterpretq_s8_u8, vreinterpretq_s8_u16,
25324 vreinterpretq_s8_u32, vreinterpretq_s16_p8, vreinterpretq_s16_p16,
25325 vreinterpretq_s16_f32, vreinterpretq_s16_p64, vreinterpretq_s16_p128,
25326 vreinterpretq_s16_s64, vreinterpretq_s16_u64, vreinterpretq_s16_s8,
25327 vreinterpretq_s16_s32, vreinterpretq_s16_u8, vreinterpretq_s16_u16,
25328 vreinterpretq_s16_u32, vreinterpretq_s32_p8, vreinterpretq_s32_p16,
25329 vreinterpretq_s32_f16, vreinterpretq_s32_f32, vreinterpretq_s32_p64,
25330 vreinterpretq_s32_p128, vreinterpretq_s32_s64, vreinterpretq_s32_u64,
25331 vreinterpretq_s32_s8, vreinterpretq_s32_s16, vreinterpretq_s32_u8,
25332 vreinterpretq_s32_u16, vreinterpretq_s32_u32, vreinterpretq_u8_p8,
25333 vreinterpretq_u8_p16, vreinterpretq_u8_f32, vreinterpretq_u8_p64,
25334 vreinterpretq_u8_p128, vreinterpretq_u8_s64, vreinterpretq_u8_u64,
25335 vreinterpretq_u8_s8, vreinterpretq_u8_s16, vreinterpretq_u8_s32,
25336 vreinterpretq_u8_u16, vreinterpretq_u8_u32, vreinterpretq_u16_p8,
25337 vreinterpretq_u16_p16, vreinterpretq_u16_f32, vreinterpretq_u16_p64,
25338 vreinterpretq_u16_p128, vreinterpretq_u16_s64, vreinterpretq_u16_u64,
25339 vreinterpretq_u16_s8, vreinterpretq_u16_s16, vreinterpretq_u16_s32,
25340 vreinterpretq_u16_u8, vreinterpretq_u16_u32, vreinterpretq_u32_p8,
25341 vreinterpretq_u32_p16, vreinterpretq_u32_f32, vreinterpretq_u32_p64,
25342 vreinterpretq_u32_p128, vreinterpretq_u32_s64, vreinterpretq_u32_u64,
25343 vreinterpretq_u32_s8, vreinterpretq_u32_s16, vreinterpretq_u32_s32,
25344 vreinterpretq_u32_u8, vreinterpretq_u32_u16): Rewrite using casts.
25346 2016-02-04 Martin Liska <mliska@suse.cz>
25349 * asan.c (has_stmt_been_instrumented_p): Instrument gimple calls
25350 that are gimple_store_p.
25351 (maybe_instrument_call): Likewise.
25353 2016-02-04 Bin Cheng <bin.cheng@arm.com>
25355 * config/aarch64/aarch64.c (aarch64_legitimize_address): Force
25356 register scaling out of memory reference and comment why.
25358 2016-02-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
25362 * cse.c (cse_insn): Pass NULL to fold_rtx when initially
25363 folding the source of a SET.
25365 2016-02-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
25369 * config/arm/arm.c (arm_new_rtx_costs, MULT case): Properly extract
25370 the operands of the SIGN_EXTENDs from a SMUL[TB][TB] rtx.
25372 2016-02-04 Jim Wilson <jim.wilson@linaro.org>
25376 * config/arm/arm.h (PROMOTE_MODE): Don't set UNSIGNEDP for QImode and
25379 2016-02-04 Christian Bruel <christian.bruel@st.com>
25381 * config/arm/arm-c.c (arm_reset_previous_fndecl): Style fix and typo.
25382 * config/arm/arm.c (arm_set_current_function): Likewise.
25384 2016-02-04 Jakub Jelinek <jakub@redhat.com>
25385 Ilya Enkovich <enkovich.gnu@gmail.com>
25386 H.J. Lu <hongjiu.lu@intel.com>
25389 * config/i386/i386.c (convert_scalars_to_vector): Remove
25390 stack alignment fixes.
25391 (ix86_option_override_internal): Disable TARGET_STV if stack
25392 might not be aligned enough.
25393 (ix86_minimum_alignment): Assert that TARGET_STV is false.
25395 2016-02-04 Victoria Stepanyan <victoria.stepanyan@amd.com>
25397 * config/i386/x86-tune.def: Disable default prefetching
25400 2016-02-03 Michael Meissner <meissner@linux.vnet.ibm.com>
25401 Vladimir Makarov <vmakarov@redhat.com>
25404 * config/rs6000/rs6000.c (rs6000_legitimate_address_p): Fix thinko
25405 in validating fused toc addresses.
25407 2016-02-03 Jakub Jelinek <jakub@redhat.com>
25410 * diagnostic-show-locus.c (layout::get_state_at_point): Don't read
25411 range->m_caret fields if range->m_show_caret_p is false.
25414 * config/rs6000/rs6000.c (rs6000_expand_atomic_compare_and_swap):
25415 Force oldval into register if it does not satisfy reg_or_short_operand
25416 predicate. Fix up formatting.
25418 2016-02-03 Vladimir Makarov <vmakarov@redhat.com>
25419 Alexandre Oliva <aoliva@redhat.com>
25422 * lra-constraints.c (simplify_operand_subreg): Check additionally
25423 address validity after potential reloading.
25424 (process_address_1): Check insns validity. In case of failure do
25427 2016-02-03 Kirill Yukhin <kirill.yukhin@intel.com>
25430 * config/i386/sse.md (define_insn "avx512f_maskcmp<mode>3"):
25433 2016-02-02 Jakub Jelinek <jakub@redhat.com>
25435 * wide-int.cc (canonize_uhwi): New function.
25436 (wi::divmod_internal): Use it.
25438 2016-02-02 James Norris <jnorris@codesourcery.com>
25440 * gimplify.c (omp_notice_variable): Add usage check.
25442 2016-02-02 Alexander Monakov <amonakov@ispras.ru>
25444 * config/nvptx/nvptx.c (nvptx_print_operand): Treat LEU, GEU, LTU, GTU
25445 like LE, GE, LT, GT when emitting relational operator.
25447 2016-02-02 Wilco Dijkstra <wdijkstr@arm.com>
25449 * ira-costs.c (find_costs_and_classes): Add extra argument.
25450 * target.def (ira_change_pseudo_allocno_class): Add parameter.
25451 * targhooks.h (ira_change_pseudo_allocno_class): Likewise.
25452 * targhooks.c (ira_change_pseudo_allocno_class): Likewise.
25453 * config/aarch64/aarch64.c (aarch64_ira_change_pseudo_allocno_class)
25454 Add best_class parameter, and return it if not ALL_REGS.
25455 * config/mips/mips.c (mips_ira_change_pseudo_allocno_class):
25457 * doc/tm.texi (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS):
25458 Update target hook.
25460 2016-02-02 Wilco Dijkstra <wdijkstr@arm.com>
25462 * config/aarch64/aarch64.c
25463 (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS): New define.
25464 (aarch64_ira_change_pseudo_allocno_class): New function.
25466 2016-02-02 Uros Bizjak <ubizjak@gmail.com>
25469 * config/i386/i386.c (geode_cost): Increase cost of MMX and SSE moves.
25471 2016-02-02 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
25473 * config/avr/avr.c (avr_option_override): Set
25474 PARAM_ALLOW_STORE_DATA_RACES to 1.
25476 2016-02-02 Richard Biener <rguenther@suse.de>
25478 PR tree-optimization/69595
25479 * match.pd: Add range test simplifications to true/false.
25481 2016-02-02 Thomas Schwinge <thomas@codesourcery.com>
25483 * omp-builtins.def (BUILT_IN_GOACC_HOST_DATA): Remove.
25484 * omp-low.c (expand_omp_target): Use BUILT_IN_GOACC_DATA_START
25487 2016-02-02 Richard Biener <rguenther@suse.de>
25489 PR tree-optimization/69606
25490 * tree-ssa-math-opts.c (bswap_replace): Clear flow sensitive
25491 info on the result before moving a stmt.
25493 2016-02-02 Yuri Rumyantsev <ysrumyan@gmail.com>
25495 PR middle-end/68542
25496 * config/i386/i386.c (ix86_expand_branch): Add support for conditional
25497 branch with vector comparison.
25498 * config/i386/sse.md (VI48_AVX): New mode iterator.
25499 (define_expand "cbranch<mode>4): Add support for conditional branch
25500 with vector comparison.
25501 * tree-vect-loop.c (optimize_mask_stores): New function.
25502 * tree-vect-stmts.c (vectorizable_mask_load_store): Initialize
25503 has_mask_store field of vect_info.
25504 * tree-vectorizer.c (vectorize_loops): Invoke optimaze_mask_stores for
25505 vectorized loops having masked stores after vec_info destroy.
25506 * tree-vectorizer.h (loop_vec_info): Add new has_mask_store field and
25507 correspondent macros.
25508 (optimize_mask_stores): Add prototype.
25510 2016-02-02 Alan Modra <amodra@gmail.com>
25513 * config/rs6000/predicates.md (quad_int_reg_operand): Don't
25516 2016-02-02 Alan Modra <amodra@gmail.com>
25519 * config/rs6000/rs6000.c (need_toc_init): New var, set it
25520 whenever toc_label_name used.
25521 (rs6000_file_start): Don't set up toc section here,
25522 (rs6000_output_function_epilogue): do so here instead,
25523 (rs6000_xcoff_file_start): and here.
25524 * config/rs6000/rs6000.md (load_toc_aix_si): Set need_toc_init.
25525 (load_toc_aix_di): Likewise.
25527 2016-02-01 Jakub Jelinek <jakub@redhat.com>
25529 PR rtl-optimization/69592
25530 * rtlanal.c (nonzero_bits_binary_arith_p): New inline function.
25531 (cached_nonzero_bits): Use it instead of ARITHMETIC_P.
25532 (num_sign_bit_copies_binary_arith_p): New inline function.
25533 (cached_num_sign_bit_copies): Use it instead of ARITHMETIC_P.
25535 2016-02-01 Jeff Law <law@redhat.com>
25537 PR tree-optimization/69580
25538 * params.def (FSM_MAXIMUM_PHI_ARGUMENTS): New param.
25539 * tree-ssa-threadbackward.c
25540 (fsm_find_control_statement_thread_paths): Do not try to walk
25541 through large PHI nodes.
25543 2016-02-01 Jakub Jelinek <jakub@redhat.com>
25545 * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Return false
25546 when count is incremented above limit, don't analyze further
25549 * omp-low.c (oacc_parse_default_dims): Avoid
25550 -Wsign-compare warning, make sure value fits into int
25551 rather than just unsigned int.
25553 2016-02-01 Bin Cheng <bin.cheng@arm.com>
25555 PR tree-optimization/67921
25556 * fold-const.c (split_tree): New parameters. Convert pointer
25557 type variable part to proper type before negating.
25558 (fold_binary_loc): Pass new arguments to split_tree.
25560 2016-02-01 Nathan Sidwell <nathan@codesourcery.com>
25562 * config/nvptx/nvptx.c (PTX_GANG_DEFAULT): New.
25563 (nvptx_goacc_validate_dims): Extend to handle global defaults.
25564 * target.def (OACC_VALIDATE_DIMS): Extend documentation.
25565 * doc/tm.texti: Rebuilt.
25566 * doc/invoke.texi (fopenacc-dim): Document.
25567 * lto-wrapper.c (merge_and_complain): Add OPT_fopenacc_dim_ case.
25568 (append_compiler_options): Likewise.
25569 * omp-low.c (oacc_default_dims, oacc_min_dims): New.
25570 (oacc_parse_default_dims): New.
25571 (oacc_validate_dims): Add USED arg. Select non-unity default when
25573 (oacc_loop_fixed_partitions): Return mask of used partitions.
25574 (oacc_loop_auto_partitions): Emit dump info.
25575 (oacc_loop_partition): Return mask of used partitions.
25576 (execute_oacc_device_lower): Parse default dimension arg. Adjust
25577 loop partitioning and validation calls.
25579 2016-02-01 Richard Biener <rguenther@suse.de>
25581 PR middle-end/69556
25582 * match.pd: Guard (C1/X)*C2 -> (C1*C2)/X with single_use.
25584 2016-02-01 Richard Biener <rguenther@suse.de>
25586 PR tree-optimization/69574
25587 * tree-chrec.c (hide_evolution_in_other_loops_than_loop): Instead
25588 of asserting return chrec_dont_know.
25590 2016-02-01 Martin Liska <mliska@suse.cz>
25592 * mem-stats-traits.h: Add copyright header.
25593 * mem-stats.h: Likewise.
25595 2016-02-01 Richard Biener <rguenther@suse.de>
25597 PR tree-optimization/69579
25598 * tree-ssa-loop-ivcanon.c (propagate_constants_for_unrolling):
25599 Do not propagate through abnormal PHI results.
25601 2016-02-01 Eric Botcazou <ebotcazou@adacore.com>
25603 * postreload.c (reload_cse_simplify): Remove dead code.
25605 2016-02-01 Jakub Jelinek <jakub@redhat.com>
25607 PR rtl-optimization/69570
25608 * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Return true only
25609 if there is more than one set, not if there is a single set.
25611 2016-02-01 Richard Henderson <rth@redhat.com>
25614 * combine.c (make_compound_operation): When looking through a
25615 subreg, make sure to re-extend to the width of the outer mode.
25617 2016-01-30 Jakub Jelinek <jakub@redhat.com>
25619 PR tree-optimization/69546
25620 * wide-int.cc (wi::divmod_internal): For unsigned division
25621 where both operands fit into uhwi, if o1 is 1 and o0 has
25622 msb set, if divident_prec is larger than bits per hwi,
25623 clear another quotient word and return 2 instead of 1.
25624 Similarly for remainder with msb in HWI set, if dividend_prec
25625 is larger than bits per hwi.
25627 2016-01-29 Martin Jambor <mjambor@suse.cz>
25629 * hsa-gen.c (get_memory_order_name): Mask with MEMMODEL_BASE_MASK.
25630 Use short lowercase names.
25631 (get_memory_order): Mask with MEMMODEL_BASE_MASK. Support
25632 MEMMODEL_CONSUME with acquire semantics and MEMMODEL_SEQ_CST with
25633 acq_rel one. Protect warning agains segfaults if
25634 get_memory_order_name returns NULL.
25635 (gen_hsa_ternary_atomic_for_builtin): Support with MEMMODEL_SEQ_CST
25636 with release semantics. Do not warn if get_memory_order already did.
25637 (gen_hsa_insns_for_call): Support with MEMMODEL_SEQ_CST with acquire
25638 semantics. Fix check for relaxed or acquire semantics. Do not warn
25639 if get_memory_order already did.
25641 2016-01-29 Sebastian Pop <s.pop@samsung.com>
25643 * doc/install.texi: Document that isl-0.16 is supported.
25645 2016-01-29 Vladimir Makarov <vmakarov@redhat.com>
25648 * config/i386/constraints.md (Bm): Describe as special memory
25650 * doc/md.texi (DEFINE_SPECIAL_MEMORY_CONSTRAINT): Describe it.
25651 * genoutput.c (main): Process DEFINE_SPECIAL_MEMORY_CONSTRAINT.
25652 * genpreds.c (struct constraint_data): Add is_special_memory.
25653 (have_special_memory_constraints, special_memory_start): New
25655 (special_memory_end): Ditto.
25656 (add_constraint): Add new arg is_special_memory. Add code to
25657 process its true value. Update have_special_memory_constraints.
25658 (process_define_constraint): Pass the new arg.
25659 (process_define_register_constraint): Ditto.
25660 (choose_enum_order): Process special memory.
25661 (write_tm_preds_h): Generate enum const CT_SPECIAL_MEMORY and
25662 function insn_extra_special_memory_constraint.
25663 (main): Process DEFINE_SPECIAL_MEMORY_CONSTRAINT.
25664 * gensupport.c (process_rtx): Process
25665 DEFINE_SPECIAL_MEMORY_CONSTRAINT.
25666 * ira-costs.c (record_reg_classes): Process CT_SPECIAL_MEMORY.
25667 * ira-lives.c (single_reg_class): Use
25668 insn_extra_special_memory_constraint.
25669 * ira.c (ira_setup_alts): Process CT_SPECIAL_MEMORY.
25670 * lra-constraints.c (process_alt_operands): Ditto.
25671 (curr_insn_transform): Use insn_extra_special_memory_constraint.
25672 * recog.c (asm_operand_ok, preprocess_constraints): Process
25674 * reload.c (find_reloads): Ditto.
25675 * rtl.def (DEFINE_SPECIFAL_MEMORY_CONSTRAINT): New.
25676 * stmt.c (parse_input_constraint): Use
25677 insn_extra_special_memory_constraint.
25679 2016-01-29 H.J. Lu <hongjiu.lu@intel.com>
25682 * lra-splill.c (lra_final_code_change): Revert r229087 by
25683 removing all sub-registers.
25685 2016-01-29 Steve Ellcey <sellcey@imgtec.com>
25688 * config/mips/mips.c (mips_output_division): Check flag_delayed_branch.
25690 2016-01-29 Jakub Jelinek <jakub@redhat.com>
25693 * config/i386/i386.c (ix86_expand_vector_set) <case V4SImode>: For
25694 SSE1, copy target into the temporary reg first before recursing
25697 2016-01-29 H.J. Lu <hongjiu.lu@intel.com>
25699 * config/i386/sse.md (sse2_cvtps2pd<mask_name>): Replace vBm
25702 2016-01-29 Jonathan Wakely <jwakely@redhat.com>
25704 * ginclude/stdarg.h: Test __cplusplus instead of
25705 __GXX_EXPERIMENTAL_CXX0X__.
25707 2016-01-29 Richard Biener <rguenther@suse.de>
25709 PR tree-optimization/69547
25710 * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1):
25711 Do not mark clobbers necessary.
25712 (mark_all_reaching_defs_necessary_1): Likewise.
25714 2016-01-29 Dominik Vogt <vogt@linux.vnet.ibm.com>
25716 * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Format
25717 declaration name with %qs and print it in both error messages.
25718 Also fix indentation.
25720 2016-01-29 Dominik Vogt <vogt@linux.vnet.ibm.com>
25723 * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Remove
25724 trailing blank line from error message.
25726 2016-01-29 Jonathan Wakely <jwakely@redhat.com>
25729 * ginclude/float.h: Also provide FLT_EVAL_METHOD and DECIMAL_DIG
25732 2016-01-29 Richard Biener <rguenther@suse.de>
25734 PR middle-end/69537
25735 * match.pd: Allow all integral types when simplifying a
25736 widening or sign-changing conversion.
25738 2016-01-28 Sebastian Pop <s.pop@samsung.com>
25740 * graphite-isl-ast-to-gimple.c (get_rename_from_scev): Revert assert
25741 back to setting codegen_error to fail codegen.
25743 2016-01-28 Uros Bizjak <ubizjak@gmail.com>
25746 * config/i386/constraints.md (C): Only accept constant zero operand.
25747 (BC): New constraint.
25748 * config/i386/sse.md (*mov<mode>_internal): Use BC constraint
25749 instead of C constraint.
25750 * doc/md.texi (Machine Constraints): Update description
25753 2016-01-28 Steve Ellcey <sellcey@imgtec.com>
25756 * config/mips/mips.c (and_operands_ok): Add MIPS16 check.
25758 2016-01-28 Jakub Jelinek <jakub@redhat.com>
25760 PR middle-end/69542
25761 * lra-remat.c (calculate_local_reg_remat_bb_data): Only consider
25764 2016-01-28 Pat Haugen <pthaugen@us.ibm.com>
25766 * config/rs6000/rs6000.c (output_cbranch): Don't statically predict
25767 branches if using guessed profile.
25769 2016-01-28 H.J. Lu <hongjiu.lu@intel.com>
25771 * graphite-optimize-isl.c (optimize_isl): Fix dump.
25773 2016-01-28 Richard Henderson <rth@redhat.com>
25776 * config/aarch64/aarch64-modes.def (CC_Cmode): New
25777 * config/aarch64/aarch64-protos.h: Update.
25778 * config/aarch64/aarch64.c (aarch64_zero_extend_const_eq): New.
25779 (aarch64_select_cc_mode): Add check for use of CC_Cmode.
25780 (aarch64_get_condition_code_1): Handle CC_Cmode.
25781 * config/aarch64/aarch64.md (addti3): Use adddi3_compareC.
25782 (*add<mode>3_compareC_cconly_imm): New.
25783 (*add<mode>3_compareC_cconly): New.
25784 (*add<mode>3_compareC_imm): New.
25785 (add<mode>3_compareC): New.
25786 (add<mode>3_carryin, *addsi3_carryin_uxtw): Sort compare operand
25787 to be first. Use aarch64_carry_operation.
25788 (*add<mode>3_carryin_alt1, *addsi3_carryin_alt1_uxtw): Remove.
25789 (*add<mode>3_carryin_alt2, *addsi3_carryin_alt2_uxtw): Remove.
25790 (*add<mode>3_carryin_alt3, *addsi3_carryin_alt3_uxtw): Remove.
25791 (subti3): Use subdi3_compare1.
25792 (*sub<mode>3_compare0): Rename from sub<mode>3_compare0.
25793 (sub<mode>3_compare1): New.
25794 (*sub<mode>3_carryin0, *subsi3_carryin_uxtw): New.
25795 (*sub<mode>3_carryin): Use aarch64_borrow_operation.
25796 (*subsi3_carryin_uxtw): Likewise.
25797 (*ngc<mode>, *ngcsi_uxtw): Likewise.
25798 (*sub<mode>3_carryin_alt, *subsi3_carryin_alt_uxtw): New.
25799 * config/aarch64/iterators.md (DWI): New.
25800 * config/aarch64/predicates.md (aarch64_carry_operation): New.
25801 (aarch64_borrow_operation): New.
25803 2016-01-28 Abderrazek Zaafrani <a.zaafrani@samsung.com>
25805 * graphite-optimize-isl.c (optimize_isl): Print a different debug
25806 message when isl does not return a valid schedule.
25808 2016-01-28 Sebastian Pop <s.pop@samsung.com>
25810 * graphite-isl-ast-to-gimple.c (class translate_isl_ast_to_gimple):
25811 Remove comments from class declarations: they are already in the code
25814 2016-01-28 Sebastian Pop <s.pop@samsung.com>
25816 * graphite-isl-ast-to-gimple.c (binary_op_to_tree): Call
25818 (ternary_op_to_tree): Same.
25819 (unary_op_to_tree): Same.
25820 (nary_op_to_tree): Same.
25821 (gcc_expression_from_isl_expr_op): Same.
25822 (gcc_expression_from_isl_expression): Same.
25823 (graphite_create_new_loop): Same.
25824 (graphite_create_new_loop_guard): Same.
25825 (build_iv_mapping): Same.
25826 (graphite_create_new_guard): Same.
25827 (translate_isl_ast_to_gimple::copy_loop_phi_nodes): Same.
25828 (translate_isl_ast_to_gimple::translate_pending_phi_nodes): Same.
25830 2016-01-28 Sebastian Pop <s.pop@samsung.com>
25832 * graphite-isl-ast-to-gimple.c (get_rename_from_scev): Assert
25833 instead of setting codegen_error to fail codegen.
25835 2016-01-28 Jason Merrill <jason@redhat.com>
25837 * tree.h (BINFO_FLAG_0): Rename from BINFO_MARKED.
25839 2016-01-28 Wilco Dijkstra <wdijkstr@arm.com>
25841 * config/aarch64/aarch64.c (aarch64_if_then_else_costs):
25842 Remove CONST_INT_P check in CCMP cost calculation.
25844 2016-01-28 Wilco Dijkstra <wdijkstr@arm.com>
25846 * config/aarch64/aarch64.c (generic_vector_cost):
25847 Set vec_permute_cost.
25848 (cortexa57_vector_cost): Likewise.
25849 (exynosm1_vector_cost): Likewise.
25850 (xgene1_vector_cost): Likewise.
25851 (aarch64_builtin_vectorization_cost): Use vec_permute_cost.
25852 * config/aarch64/aarch64-protos.h (cpu_vector_cost):
25853 Add vec_permute_cost entry.
25855 2016-01-28 Wilco Dijkstra <wdijkstr@arm.com>
25857 * config/aarch64/aarch64.md (ccmp<mode>): Disassemble
25859 (add<mode>3_compare0): Likewise.
25860 (addsi3_compare0_uxtw): Likewise.
25861 (add<mode>3nr_compare0): Likewise.
25862 (compare_neg<mode>): Likewise.
25863 (<optab><mode>3): Likewise.
25865 2016-01-28 Ilya Enkovich <enkovich.gnu@gmail.com>
25867 * tree-vect-stmts.c (vectorizable_comparison): Add
25868 NULL check for vectype.
25870 2016-01-28 Richard Biener <rguenther@suse.de>
25872 PR tree-optimization/69466
25873 * tree-vect-loop-manip.c (slpeel_duplicate_current_defs_from_edges):
25874 Account for PHIs we couldn't duplicate.
25876 2016-01-28 Martin Liska <mliska@suse.cz>
25879 * ggc-common.c (gt_pch_save): Use ENABLE_VALGRIND_ANNOTATIONS macro
25880 instead of ENABLE_VALGRIND_CHECKING.
25882 2016-01-27 Richard Henderson <rth@redhat.com>
25885 * lra-remat.c (subreg_regs): New.
25886 (dump_candidates_and_remat_bb_data): Dump it.
25887 (operand_to_remat): Reject if operand in subreg_regs.
25888 (set_bb_regs): Collect subreg_regs.
25889 (lra_remat): Init and free subreg_regs. Compute
25890 calculate_local_reg_remat_bb_data before create_cands.
25892 2016-01-27 H.J. Lu <hongjiu.lu@intel.com>
25895 * config/i386/i386.c (ix86_update_stack_boundary): Don't
25896 change stack_alignment_needed for __tls_get_addr call.
25898 2016-01-27 Segher Boessenkool <segher@kernel.crashing.org>
25900 * config/rs6000/rs6000.c (print_operand): Rollback 's' removal.
25902 2016-01-27 Jeff Law <law@redhat.com>
25904 PR tree-optimization/68398
25905 PR tree-optimization/69196
25906 * params.def (PARAM_FSM_SCALE_PATH_STMTS): New parameter.
25907 (PARAM_FSM_SCALE_PATH_BLOCKS): Likewise.
25908 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
25909 Only count PHIs in the last block in the path. The others will
25910 const/copy propagate away. Add heuristic to allow more irreducible
25911 subloops to be created when it is likely profitable to do so.
25913 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
25914 Fix typo in comment. Use gsi_after_labels and remove the GIMPLE_LABEL
25915 check from within the loop. Use gsi_next_nondebug rather than gsi_next.
25917 2016-01-27 Jakub Jelinek <jakub@redhat.com>
25920 * sanitizer.def: Add BEGIN_SANITIZER_BUILTINS and
25921 END_SANITIZER_BUILTINS markers using DEF_BUILTIN_STUB.
25922 * asan.c (DEF_BUILTIN_STUB): Temporarily define.
25923 * tree-streamer-in.c: Include asan.h.
25924 (streamer_get_builtin_tree): For builtins in sanitizer
25925 range call initialize_sanitizer_builtins and retry.
25927 2016-01-27 Ian Lance Taylor <iant@google.com>
25929 * common.opt (fkeep-gc-roots-live): New undocumented option.
25930 * tree-ssa-loop-ivopts.c (add_candidate_1): If
25931 -fkeep-gc-roots-live, skip pointers.
25932 (add_iv_candidate_for_biv): Handle add_candidate_1 returning
25935 2016-01-27 Uros Bizjak <ubizjak@gmail.com>
25938 * config/i386/i386.md (*zext<mode>_doubleword_and): New pattern.
25939 (*zext<mode>_doubleword): Disable for TARGET_ZERO_EXTEND_WITH_AND.
25941 2016-01-27 Thomas Klausner <wiz@NetBSD.org>
25944 * configure.ac: NetBSD provides SSP in its C library.
25945 * configure: Updated.
25947 2016-01-27 Richard Biener <rguenther@suse.de>
25949 PR tree-optimization/69166
25950 * tree-vect-loop.c (vect_is_simple_reduction): Always check
25951 reduction code for commutativity / associativity.
25953 2016-01-27 Martin Jambor <mjambor@suse.cz>
25955 PR tree-optimization/69355
25956 * tree-sra.c (analyze_access_subtree): Correct hole detection when
25957 total_scalarization fails.
25959 2016-01-27 David Edelsohn <dje.gcc@gmail.com>
25961 * config/rs6000/driver-rs6000.c (detect_processor_aix): Add
25964 2016-01-27 Christian Bruel <christian.bruel@st.com>
25967 * config/arm/arm-c.c (arm_pragma_target_parse): Add comments.
25968 Move arm_reset_previous_fndecl and set_target_option_current_node in
25969 the conditional part. Call save_restore_target_globals.
25970 * config/arm/arm.c (arm_set_current_function):
25971 Refactor to better support #pragma target and attribute mix.
25972 Call save_restore_target_globals.
25973 * config/arm/arm-protos.h (save_restore_target_globals): New function.
25975 2016-01-27 Martin Liska <mliska@suse.cz>
25977 * hsa.c (hsa_summary_t::link_functions): Create IPA_REF_ADDR
25978 reference for an HSA kernel and its host function.
25980 2016-01-27 Jakub Jelinek <jakub@redhat.com>
25982 PR tree-optimization/69399
25983 * wide-int.h (wi::lrshift): For larger precisions, only
25984 use fast path if shift is known to be < HOST_BITS_PER_WIDE_INT.
25986 2016-01-27 Claudiu Zissulescu <claziss@synopsys.com>
25988 * config/arc/predicates.md (proper_comparison_operator): Reject
25989 constant-constant comparison.
25991 2016-01-26 Tom de Vries <tom@codesourcery.com>
25993 PR tree-optimization/69110
25994 * tree-data-ref.c (initialize_data_dependence_relation): Handle
25995 DR_NUM_DIMENSIONS == 0.
25997 2016-01-26 Abderrazek Zaafrani <a.zaafrani@samsung.com>
25998 Sebastian Pop <s.pop@samsung.com>
26000 * graphite-isl-ast-to-gimple.c (ternary_op_to_tree): Handle
26001 isl_ast_op_cond and isl_ast_op_select.
26002 (gcc_expression_from_isl_expr_op): Same.
26004 2016-01-26 Jason Merrill <jason@redhat.com>
26007 * tree.c (recompute_constructor_flags): Split out from
26009 (verify_constructor_flags): New.
26010 * tree.h: Declare them.
26012 2016-01-26 Iain Buclaw <ibuclaw@gdcproject.org>
26014 PR rtl-optimization/69217
26015 * var-tracking.c (tracked_record_parameter_p): Don't segfault if there
26016 are no TYPE_FIELDS set for the record type.
26018 2016-01-26 Jakub Jelinek <jakub@redhat.com>
26021 * config/rs6000/rs6000.c (rs6000_option_override_internal): Initialize
26022 toc_label_name unconditionally.
26023 (rs6000_emit_load_toc_table): Call ggc_strdup on toc_label_name for
26024 SYMBOL_REF string. Use toc_label_name instead of constructing
26026 (rs6000_elf_declare_function_name): Use toc_label_name instead of
26027 constructing LCTOC1.
26029 2016-01-26 Martin Sebor <msebor@redhat.com>
26032 * doc/extend.texi (Common Type Attributes): Move text that talks about
26033 attribute packed from attribute aligned to the section discussing
26034 the former attribute for clarity.
26036 2016-01-26 Richard Henderson <rth@redhat.com>
26038 PR middle-end/60908
26039 * trans-mem.c (tm_region_init): Mark entry block as visited.
26041 2016-01-26 David Malcolm <dmalcolm@redhat.com>
26044 * diagnostic-show-locus.c (layout::print_source_line): Replace
26045 call to pp_newline with call to layout::print_newline.
26046 (layout::print_annotation_line): Likewise.
26047 (layout::move_to_column): Likewise.
26048 (layout::print_any_fixits): After printing any fixits, print a
26049 trailing newline, if necessary.
26050 (layout::print_newline): New method, resetting any colorization
26052 (diagnostic_show_locus): Move the pp_newline to before the
26053 early bailout. Remove dummy block enclosing the layout instance.
26054 * diagnostic.c (default_diagnostic_finalizer): Replace invocation
26055 of pp_newline_and_flush with pp_flush.
26056 (diagnostic_append_note): Delete use of pp_newline.
26057 (diagnostic_append_note_at_rich_loc): Delete.
26058 * diagnostic.h (diagnostic_append_note_at_rich_loc): Delete.
26059 * pretty-print.h (output_buffer_append_r): Reset buff->line_length
26060 when newline characters are added to the buffer.
26062 2016-01-26 Michael Matz <matz@suse.de>
26064 * configure.ac (ac_cv_std_swap_in_utility): New test.
26065 * system.h (<algorithm>): Check HAVE_SWAP_IN_UTILITY as well.
26066 * configure: Regenerate.
26067 * config.in: Regenerate.
26069 2016-01-26 Claudiu Zissulescu <claziss@synopsys.com>
26071 * config/arc/arc.md (cstoresi4): Force operand into register.
26072 (arcset<code>): Fix predicate.
26073 (arcsetltu): Likewise.
26074 (arcsetgeu): Likewise.
26075 (arcsethi): Likewise.
26076 (arcsetls): Likewise.
26078 2016-01-26 Jakub Jelinek <jakub@redhat.com>
26080 PR tree-optimization/69483
26081 * gimple-fold.c (canonicalize_constructor_val): Return NULL
26082 if base has error_mark_node type.
26084 2016-01-26 Christophe Lyon <christophe.lyon@linaro.org>
26087 * config/arm/arm.c (neon_valid_immediate): Handle FP16 vectors.
26088 * config/arm/arm_neon.h (__ARM_NUM_LANES, __arm_lane, arm_lanq):
26090 (vget_lane_f16): Handle big-endian.
26091 (vgetq_lane_f16): Likewise.
26092 (vset_lane_f16): Likewise.
26093 (vsetq_lane_f16): Likewise.
26094 * config/arm/iterators.md (VQXMOV): Add V8HF.
26095 (VDQ): Add V4HF and V8HF.
26096 (V_reg): Handle V4HF and V8HF.
26097 (Is_float_mode): Likewise.
26098 * config/arm/neon.md (movv4hf, movv8hf, neon_vdup_nv4hf,
26099 neon_vdup_nv8hf): New patterns.
26100 (vec_set<mode>_internal, vec_extract<mode>, neon_vld1_dup<mode>):
26101 Use VD_LANE iterator.
26102 (neon_vld1_dup<mode>): Use VQ2 iterator.
26104 2016-01-26 Nathan Sidwell <nathan@acm.org>
26106 * omp-low.h (oacc_fn_attrib_kernels_p): Declare.
26107 (set_oacc_fn_attrib): Add IS_KERNEL arg.
26108 * omp-low.c (set_oacc_fn_attrib): Add IS_KERNEL arg.
26109 (oacc_fn_attrib_kernels_p, oacc_fn_attrib_level): New.
26110 (expand_omp_target): Pass is_kernel to set_oacc_fn_attrib.
26111 (oacc_validate_dims): Add LEVEL arg, don't return level.
26112 (new_oacc_loop_routine): Use oacc_fn_attrib_level, not
26113 oacc_validate_dims.
26114 (execute_oacc_device_lower): Adjust, add more dump output.
26115 * tree-ssa-loop.c (gate_oacc_kernels): Use
26116 oacc_fn_attrib_kernels_p.
26117 * tree-parloops.c (create_parallel_loop): Adjust
26118 set_oacc_fn_attrib call.
26120 2016-01-26 Jakub Jelinek <jakub@redhat.com>
26123 * lto-wrapper.c (merge_and_complain): Handle -fcilkplus.
26124 (append_compiler_options): Handle -fcilkplus.
26125 (append_linker_options): Ignore -fno-{openmp,openacc,cilkplus}.
26127 2016-01-26 Nick Clifton <nickc@redhat.com>
26130 * config/i386/winnt.c (i386_pe_binds_local_p): If a function has
26131 been marked as DECL_ONE_ONLY but we do not the means to make it
26132 so, then do not allow it to bind locally.
26134 2016-01-26 Jakub Jelinek <jakub@redhat.com>
26137 * opts.h (parse_sanitizer_options): New prototype.
26138 * opts.c (sanitizer_opts): New array.
26139 (parse_sanitizer_options): New function.
26140 (common_handle_option): Use parse_sanitizer_options.
26142 2016-01-26 H.J. Lu <hongjiu.lu@intel.com>
26145 * config/i386/i386.c (ix86_compute_frame_layout): Move stack
26146 alignment adjustment to ...
26147 (ix86_update_stack_boundary): Here. Don't over-align stack for
26149 (ix86_finalize_stack_realign_flags): Use stack_alignment_needed
26150 if __tls_get_addr is called.
26152 2016-01-26 Christian Bruel <christian.bruel@st.com>
26154 * doc/sourcebuild.texi (arm_crypto_pragma_ok): Remove.
26156 2016-01-26 Eric Botcazou <ebotcazou@adacore.com>
26158 * config/ia64/ia64.c (ia64_expand_vecint_compare): Use gen_int_mode.
26160 2016-01-26 Richard Biener <rguenther@suse.de>
26162 PR middle-end/69467
26163 * match.pd: Guard X * CST CMP 0 pattern with single_use.
26165 2016-01-26 Richard Biener <rguenther@suse.de>
26167 PR tree-optimization/69452
26168 * tree-ssa-loop-im.c (move_computations_dom_walker): Remove.
26169 (move_computations_dom_walker::before_dom_children): Rename
26171 (move_computations_worker): This.
26172 (move_computations): Perform an RPO rather than a DOM walk.
26174 2016-01-26 Jakub Jelinek <jakub@redhat.com>
26177 * combine.c (combine_instructions): For REG_EQUAL note with
26178 SET_DEST being ZERO_EXTRACT, also temporarily set SET_DEST
26179 to the underlying register.
26180 * doc/rtl.texi (REG_EQUAL): Document the behavior of
26181 REG_EQUAL/REG_EQUIV notes if SET_DEST is ZERO_EXTRACT.
26183 2016-01-26 Roger Ferrer Ibáñez <rofirrim@gmail.com>
26186 * config/aarch64/aarch64-builtins.c
26187 (aarch64_init_simd_builtin_types): Do not set structural
26188 equality to __Poly{8,16,64,128}_t types.
26190 2016-01-26 Richard Sandiford <richard.sandiford@arm.com>
26192 PR tree-optimization/69400
26193 * wide-int.cc (wi_pack): Take the precision as argument and
26194 perform canonicalization here rather than in the callers.
26195 Use the main loop to handle all full-width HWIs. Add a
26196 zero HWI if in_len isn't a full result.
26197 (wi::divmod_internal): Update accordingly.
26198 (wi::mul_internal): Likewise. Simplify.
26200 2016-01-25 Aditya Kumar <aditya.k7@samsung.com>
26201 Sebastian Pop <s.pop@samsung.com>
26203 * graphite-poly.c (apply_poly_transforms): Simplify.
26204 (print_isl_set): Use more readable format: ISL_YAML_STYLE_BLOCK.
26205 (print_isl_map): Same.
26206 (print_isl_union_map): Same.
26207 (print_isl_schedule): New.
26208 (debug_isl_schedule): New.
26209 * graphite-dependences.c (scop_get_reads): Do not call
26210 isl_union_map_add_map that is undocumented isl functionality.
26211 (scop_get_must_writes): Same.
26212 (scop_get_may_writes): Same.
26213 (scop_get_original_schedule): Remove.
26214 (scop_get_dependences): Do not call isl_union_map_compute_flow that
26215 is deprecated in isl 0.15. Instead, use isl_union_access_* interface.
26216 (compute_deps): Remove.
26217 * graphite-isl-ast-to-gimple.c (print_schedule_ast): New.
26218 (debug_schedule_ast): New.
26219 (translate_isl_ast_to_gimple::scop_to_isl_ast): Call
26220 set_separate_option.
26221 (graphite_regenerate_ast_isl): Add dump.
26222 (translate_isl_ast_to_gimple::scop_to_isl_ast): Generate code
26223 from scop->transformed_schedule.
26224 (graphite_regenerate_ast_isl): Add more dump.
26225 * graphite-optimize-isl.c (optimize_isl): Set
26226 scop->transformed_schedule. Check whether schedules are equal.
26227 (apply_poly_transforms): Move here.
26228 * graphite-poly.c (apply_poly_transforms): ... from here.
26229 (free_poly_bb): Static.
26230 (free_scop): Static.
26231 (pbb_number_of_iterations_at_time): Remove.
26232 (print_isl_ast): New.
26233 (debug_isl_ast): New.
26234 (debug_scop_pbb): New.
26235 * graphite-scop-detection.c (print_edge): Move.
26236 (print_sese): Move.
26237 * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Remove.
26238 (build_scop_scattering): Remove.
26239 (create_pw_aff_from_tree): Assert instead of bailing out.
26240 (add_condition_to_pbb): Remove unused code, do not fail.
26241 (add_conditions_to_domain): Same.
26242 (add_conditions_to_constraints): Remove.
26243 (build_scop_context): New.
26244 (add_iter_domain_dimension): New.
26245 (build_iteration_domains): Initialize pbb->iterators.
26246 Call add_conditions_to_domain.
26249 (index_outermost_in_loop): New.
26250 (index_pbb_in_loop): New.
26251 (outermost_pbb_in): New.
26252 (add_in_sequence): New.
26253 (add_outer_projection): New.
26254 (outer_projection_mupa): New.
26255 (add_loop_schedule): New.
26256 (build_schedule_pbb): New.
26257 (build_schedule_loop): New.
26258 (embed_in_surrounding_loops): New.
26259 (build_schedule_loop_nest): New.
26260 (build_original_schedule): New.
26261 (build_poly_scop): Call build_original_schedule.
26262 * graphite.h: Declare print_isl_schedule and debug_isl_schedule.
26263 (free_poly_dr): Remove.
26264 (struct poly_bb): Add iterators. Remove schedule, transformed, saved.
26265 (free_poly_bb): Remove.
26266 (debug_loop_vec): Remove.
26267 (print_isl_ast): Declare.
26268 (debug_isl_ast): Declare.
26269 (scop_do_interchange): Remove.
26270 (scop_do_strip_mine): Remove.
26271 (scop_do_block): Remove.
26272 (flatten_all_loops): Remove.
26273 (optimize_isl): Remove.
26274 (pbb_number_of_iterations_at_time): Remove.
26275 (debug_scop_pbb): Declare.
26276 (print_schedule_ast): Declare.
26277 (debug_schedule_ast): Declare.
26278 (struct scop): Remove schedule. Add original_schedule,
26279 transformed_schedule.
26280 (free_gimple_poly_bb): Remove.
26281 (print_generated_program): Remove.
26282 (debug_generated_program): Remove.
26283 (unify_scattering_dimensions): Remove.
26284 * sese.c (print_edge): ... here.
26285 (print_sese): ... here.
26286 (debug_edge): ... here.
26287 (debug_sese): ... here.
26288 * sese.h (print_edge): Declare.
26289 (print_sese): Declare.
26290 (dump_edge): Declare.
26291 (dump_sese): Declare.
26293 2016-01-25 Aditya Kumar <aditya.k7@samsung.com>
26294 Sebastian Pop <s.pop@samsung.com>
26296 * Makefile.in: Set ISLVER in site.exp.
26298 2016-01-25 Jakub Jelinek <jakub@redhat.com>
26300 * omp-low.c (lower_omp_target) <case USE_DEVICE_PTR>: Set
26301 DECL_VALUE_EXPR of new_var even for the non-array case. Look
26302 through DECL_VALUE_EXPR for expansion.
26304 2016-01-25 Bernd Edlinger <bernd.edlinger@hotmail.de>
26306 * config/mips/mips.c (mips_compute_frame_info): Skip re-computing
26307 the frame info after reload completed.
26309 2016-01-25 Jeff Law <law@redhat.com>
26311 PR tree-optimization/69196
26312 PR tree-optimization/68398
26313 * tree-ssa-threadupdate.h (enum bb_dom_status): Moved here from
26314 tree-ssa-threadupdate.c.
26315 (determine_bb_domination_status): Prototype
26316 * tree-ssa-threadupdate.c (enum bb_dom_status): Remove
26317 (determine_bb_domination_status): No longer static.
26318 (valid_jump_thread_path): Remove code to detect characteristics
26319 of the jump thread path not associated with correctness.
26320 * tree-ssa-threadbackward.c (fsm_find_control_statment_thread_paths):
26321 Correct test for thread path length. Count PHIs for real operands as
26322 statements that need to be copied. Do not count ASSERT_EXPRs.
26323 Look at all the blocks in the thread path. Compute and selectively
26324 filter thread paths based on threading through the latch, threading
26325 a multiway branch or crossing a multiway branch.
26327 2016-01-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
26329 * config/rs6000/rs6000.c (rs6000_keep_leaf_when_profiled): Add
26330 decl with __attribute__ ((unused)) annotation.
26332 2016-01-25 Ilya Enkovich <enkovich.gnu@gmail.com>
26335 * tree-vect-stmts.c (vectorizable_condition): Check vectype
26336 of operands is compatible with a statement vectype.
26338 2016-01-25 Eric Botcazou <ebotcazou@adacore.com>
26340 * doc/extend.texi (scalar_storage_order type attribute): Fix typo and
26341 improve wording for mixed storage order support.
26343 2016-01-25 Bilyan Borisov <bilyan.borisov@arm.com>
26345 * config/aarch64/arm_neon.h (vcvt_s64_f64): New intrinsic.
26346 (vcvt_u64_f64): Likewise.
26347 (vcvta_s64_f64): Likewise.
26348 (vcvta_u64_f64): Likewise.
26349 (vcvtm_s64_f64): Likewise.
26350 (vcvtm_u64_f64): Likewise.
26351 (vcvtn_s64_f64): Likewise.
26352 (vcvtn_u64_f64): Likewise.
26353 (vcvtp_s64_f64): Likewise.
26354 (vcvtp_u64_f64): Likewise.
26356 2016-01-25 Claudiu Zissulescu <claziss@synopsys.com>
26358 * config/arc/arc.c (TARGET_DWARF_REGISTER_SPAN): Define.
26359 (arc_init): Check validity mll64 option.
26360 (arc_save_restore): Use double load/store instruction.
26361 (arc_expand_movmem): Likewise.
26362 (arc_split_move): Don't split if we have double load/store
26363 instructions. Returns a boolean.
26364 (arc_process_double_reg_moves): Change function to return boolean
26365 instead of a sequence of instructions.
26366 (arc_dwarf_register_span): New function.
26367 * config/arc/arc-protos.h (arc_split_move): Change prototype.
26368 * config/arc/arc.h (TARGET_CPU_CPP_BUILTINS): Define __ARC_LL64__.
26369 * config/arc/arc.md (*movdi_insn): Emit ldd/std instructions.
26370 (*movdf_insn): Likewise.
26371 * config/arc/arc.opt (mll64): New option.
26372 * config/arc/predicates.md (even_register_operand): New predicate.
26373 * doc/invoke.texi (ARC Options): Add mll64 documentation.
26375 2016-01-25 Richard Biener <rguenther@suse.de>
26378 * dwarf2out.c (is_naming_typedef_decl): Not when DECL_NAMELESS.
26379 * tree-streamer-out.c (pack_ts_base_value_fields): Stream
26381 * tree-streamer-in.c (unpack_ts_base_value_fields): Likewise.
26383 2016-01-25 Richard Biener <rguenther@suse.de>
26385 PR tree-optimization/69376
26386 * tree-ssa-sccvn.h (struct vn_ssa_aux): Add range_info_anti_range_p
26388 (VN_INFO_ANTI_RANGE_P): New inline.
26389 (VN_INFO_RANGE_TYPE): Likewise.
26390 * tree-ssa-sccvn.c (set_ssa_val_to): Also record and copy
26391 SSA_NAME_ANTI_RANGE_P.
26392 (free_scc_vn): Restore SSA_NAME_ANTI_RANGE_P.
26393 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
26394 Properly query VN_INFO_RANGE_TYPE.
26396 2016-01-25 Nick Clifton <nickc@redhat.com>
26399 * config/i386/cygming.h (MAKE_DECL_ONE_ONLY): Remove definition.
26401 2016-01-23 Tom de Vries <tom@codesourcery.com>
26403 PR tree-optimization/69426
26404 * tree-parloops.c (eliminate_local_variables_stmt): Handle vdef of
26407 2016-01-23 Jakub Jelinek <jakub@redhat.com>
26409 * tree-ssanames.c (release_free_names_and_compact_live_names): Replace
26410 "the the" with "the" in the comments.
26411 * ipa-devirt.c (build_type_inheritance_graph,
26412 update_type_inheritance_graph): Likewise.
26413 * tree.c (build_function_type_list_1): Likewise.
26414 * cfgloopmanip.c (scale_loop_profile): Likewise.
26415 * tree-ssa-loop-ivopts.c (get_shiftadd_cost): Likewise.
26416 * gimple-ssa-split-paths.c
26417 (find_block_to_duplicate_for_splitting_paths): Likewise.
26418 * tree-sra.c (init_subtree_with_zero, clobber_subtree): Likewise.
26419 * expr.c (convert_move): Likewise.
26420 * var-tracking.c (vt_stack_adjustments): Likewise.
26421 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise.
26422 * tree-vrp.c (test_for_singularity): Likewise.
26424 * tree-vect-stmts.c (vectorizable_condition): Build a VEC_COND_EXPR
26425 directly instead of building a temporary tree.
26428 * genrecog.c: Define INCLUDE_ALGORITHM before including system.h,
26429 remove <algorithm> include.
26431 2016-01-22 Jakub Jelinek <jakub@redhat.com>
26434 * config/i386/i386.c: Include dojump.h.
26435 (expand_small_movmem_or_setmem,
26436 expand_set_or_movmem_prologue_epilogue_by_misaligned_moves): Spelling
26438 (ix86_expand_set_or_movmem): Call do_pending_stack_adjust () early
26439 if dynamic_check != -1.
26441 2016-01-21 Jeff Law <law@redhat.com>
26443 PR middle-end/69347
26444 * tree-ssa-dom.c (back_propagate_equivalences): Factored out of
26445 record_temporary_equivalences. Rewritten to avoid unnecessary calls
26446 into dominated_by_p.
26447 (cprop_into_successor_phis): Avoid unnecessary tests.
26449 2016-01-22 Richard Henderson <rth@redhat.com>
26452 * config/aarch64/aarch64.md (UNSPEC_NZCV): New.
26453 (ccmp<mode>, fccmp<mode>, fccmpe<mode>): Use it.
26455 2016-01-22 Michael Matz <matz@suse.de>
26457 * system.h (string, algorithm): Include only conditionally.
26458 (new): Include always under C++.
26459 * bb-reorder.c (toplevel): Define INCLUDE_ALGORITHM.
26460 * final.c (toplevel): Ditto.
26461 * ipa-chkp.c (toplevel): Define INCLUDE_STRING.
26462 * genconditions.c (write_header): Make gencondmd.c define
26464 * mem-stats.h (mem_usage::print_dash_line): Don't use std::string.
26466 * config/aarch64/aarch64.c (toplevel): Define INCLUDE_STRING.
26467 * common/config/aarch64/aarch64-common.c (toplevel): Ditto.
26469 2016-01-22 Christian Bruel <christian.bruel@st.com>
26472 * expr.c (expand_expr_real_1): Reset DECL_MODE if VECTOR_TYPE_P changed.
26474 2016-01-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
26477 * config/arm/thumb2.md (*thumb2_ior_scc_strict_it): Convert to
26478 define_insn_and_split. Ensure operands[1] and operands[0] do not
26479 get assigned the same register.
26481 2016-01-22 Kugan Vivekanandarajah <kuganv@linaro.org>
26483 * ipa-prop.c (ipa_set_jf_constant): Remove redundant unshare_expr.
26485 2016-01-22 Christian Bruel <christian.bruel@st.com>
26487 * config/arm/arm-c.c (arm_pragma_target_parse):
26488 Remove warn_builtin_macro_redefined overwrite.
26490 2016-01-22 Eric Botcazou <ebotcazou@adacore.com>
26492 * ipa-inline.c (can_inline_edge_p): Back out overzealous check on
26493 flag_non_call_exceptions compatibility.
26495 2016-01-22 Jakub Jelinek <jakub@redhat.com>
26498 * dwarf2out.c (add_child_die_after): New function.
26499 (dwarf_qual_info_t): New type.
26500 (dwarf_qual_info): New variable.
26501 (qualified_die_p): New function.
26502 (modified_type_die): For -fdebug-types-section, ensure
26503 canonical order of qualifiers. Put qualified DIEs adjacent
26504 to the corresponding non-qualified type DIE and search there
26505 for existing qualified DIEs.
26507 2016-01-22 Eric Botcazou <ebotcazou@adacore.com>
26509 * doc/extend.texi (scalar_storage_order type attribute): Document
26510 restriction on type punning and aliasing, and remove future tense.
26512 2016-01-21 Roman Zhuykov <zhroma@ispras.ru>
26515 * modulo-sched.c (optimize_sc): Allow branch-scheduling to add a new
26518 2016-01-21 Jeff Law <law@redhat.com>
26520 PR middle-end/69347
26521 * tree-ssa-dom.c (dom_opt_dom_walker::thread_across_edge): Avoid
26522 useless call to record_temporary_equivalences.
26523 * tree-ssa-threadbackward.c (find_jump_threads_backwards): Just
26524 allocate 10 slots in the bb_path vector and let it grow as needed.
26525 (fsm_find_control_statement_thread_paths): Similarly for the next_path
26528 2016-01-21 David Edelsohn <dje.gcc@gmail.com>
26530 * configure.ac (gcc_cv_as_powerpc_mfcrf, gcc_cv_as_machine_directive):
26532 * configure: Regenerate.
26534 2016-01-21 Pat Haugen <pthaugen@us.ibm.com>
26536 * config/rs6000/aix71.h (ASM_CPU_SPEC): Add entry for Power9.
26537 * config/rs6000/driver-rs6000.c (struct asm_names): Likewise.
26539 2016-01-21 Bernd Schmidt <bschmidt@redhat.com>
26541 PR middle-end/66178
26542 * expr.c (expand_expr_real_2) [PLUS_EXPR, MINUS_EXPR]: Don't
26543 drop EXPAND_INITIALIZER.
26544 * rtl.h (contains_symbolic_reference_p): Declare.
26545 * rtlanal.c (contains_symbolic_reference_p): New function.
26546 * simplify-rtx.c (simplify_binary_operation_1): Don't turn
26547 a subtraction into a NOT if symbolic constants are involved.
26549 2016-01-21 Anton Blanchard <anton@samba.org>
26550 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
26553 * config/rs6000/linux64.h (TARGET_KEEP_LEAF_WHEN_PROFILED): New
26555 * config/rs6000/rs6000.c (rs6000_keep_leaf_when_profiled): New
26558 2016-01-21 Ajit Agarwal <ajitkum@xilinx.com>
26560 * config/microblaze/microblaze.c
26561 (get_branch_target): New.
26562 (insert_wic_for_ilb_runout): New.
26564 (microblaze_machine_dependent_reorg): New.
26565 (TARGET_MACHINE_DEPENDENT_REORG): Define macro.
26566 * config/microblaze/microblaze.md
26567 (UNSPEC_IPREFETCH): Define.
26568 (iprefetch): New pattern
26569 * config/microblaze/microblaze.opt
26570 (mxl-prefetch): New flag.
26572 2016-01-21 Ajit Agarwal <ajitkum@xilinx.com>
26574 * config/microblaze/microblaze.h
26575 (FIXED_REGISTERS): Update in macro.
26576 (CALL_USED_REGISTERS): Update in macro.
26578 2016-01-21 Yuri Rumyantsev <ysrumyan@gmail.com>
26580 PR rtl-optimization/68920
26581 * ifcvt.c (cond_move_process_if_block): Limit number of conditional
26584 2016-01-21 Vladimir Makarov <vmakarov@redhat.com>
26586 PR rtl-optimization/68990
26587 * lra-coalesce.c (lra_coalesce): Invalidate value for the result
26588 pseudo instead of inheritance ones.
26590 2016-01-21 Bernd Edlinger <bernd.edlinger@hotmail.de>
26591 Nick Clifton <nickc@redhat.com>
26595 * config/mips/mips.c (mips_compute_frame_info): Initialise
26596 args_size and hard_frame_pointer_offset fields of the frame
26597 structure before calling mips_global_pointer.
26599 2016-01-21 David Edelsohn <dje.gcc@gmail.com>
26601 * configure.ac (gcc_cv_as_dwloc): Test support for debug frame section
26603 * configure: Regenerate.
26605 2016-01-21 Richard Biener <rguenther@suse.de>
26607 * graphite-optimize-isl.c (get_schedule_map): Fix typo.
26609 2016-01-21 Marcin Kościelnicki <koriakin@0x04.net>
26611 * config/s390/s390.c (s390_asm_declare_function_size): Add code
26612 to actually emit the .size directive.
26614 2016-01-21 Stefan Sørensen <stefan.sorensen@spectralink.com>
26615 Jakub Jelinek <jakub@redhat.com>
26619 * config/arm/arm-builtins.c (arm_expand_neon_builtin): Increase
26620 args array size by one to avoid buffer overflow.
26622 2016-01-21 Marcin Kościelnicki <koriakin@0x04.net>
26624 * config/s390/s390.md (pool_section_start): Use switch_to_section
26625 to select proper read-only data section instead of hardcoding
26627 (pool_section_end): Use switch_to_section to match the above.
26629 2016-01-21 Richard Biener <rguenther@suse.de>
26631 PR tree-optimization/69378
26632 * tree-ssa-sccvn.c (dominated_by_p_w_unex): New function.
26633 (set_ssa_val_to): Use it for dominance checks taking into
26634 account not executable edges.
26636 2016-01-21 Jakub Jelinek <jakub@redhat.com>
26639 * tree-dfa.c (get_ref_base_and_extent): Use GET_MODE_BITSIZE (mode)
26640 for bitsize instead of GET_MODE_PRECISION (mode).
26642 2016-01-20 Martin Sebor <msebor@redhat.com>
26645 * extend.texi (__sync Builtins): Clarify the semantics of
26646 __sync_fetch_and_OP built-ins on pointers.
26647 (__atomic Builtins): Same.
26649 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
26650 Sebastian Pop <s.pop@samsung.com>
26652 * graphite-isl-ast-to-gimple.c (enum phi_node_kind): New.
26653 (class translate_isl_ast_to_gimple): Use phi_node_kind instead of bool.
26654 (is_valid_rename): Same.
26655 (translate_isl_ast_to_gimple::get_rename): Same.
26656 (translate_isl_ast_to_gimple::rename_all_uses): Same.
26657 (translate_isl_ast_to_gimple::rename_uses): Same.
26658 (get_new_name): Check for close_phi nodes.
26659 (copy_loop_phi_args): Use phi_node_kind.
26660 (translate_isl_ast_to_gimple::copy_loop_close_phi_args): Same.
26661 (translate_isl_ast_to_gimple::copy_cond_phi_args): Same.
26663 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
26664 Sebastian Pop <s.pop@samsung.com>
26666 Revert commit r229783.
26667 * graphite-isl-ast-to-gimple.c (gcc_expression_from_isl_ast_expr_id):
26668 Remove use of parameter_rename_map.
26669 (copy_def): Remove.
26670 (copy_internal_parameters): Remove.
26671 (graphite_regenerate_ast_isl): Remove call to copy_internal_parameters.
26672 * sese.c (new_sese_info): Do not initialize parameter_rename_map.
26673 (free_sese_info): Do not free parameter_rename_map.
26674 (set_rename): Do not use parameter_rename_map.
26675 (rename_uses): Update call to set_rename.
26676 (graphite_copy_stmts_from_block): Do not use parameter_rename_map.
26677 * sese.h (parameter_rename_map_t): Remove.
26678 (struct sese_info_t): Remove field parameter_rename_map.
26680 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
26681 Sebastian Pop <s.pop@samsung.com>
26683 * graphite-isl-ast-to-gimple.c: Fix comment.
26684 * graphite-scop-detection.c (defined_in_loop_p): New.
26685 (canonicalize_loop_closed_ssa): Do not add close phi nodes for SSA
26686 names defined in loop.
26688 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
26689 Sebastian Pop <s.pop@samsung.com>
26691 * graphite-scop-detection.c (scop_detection::harmful_loop_in_region):
26692 Discard unstructured if-then-else regions.
26694 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
26695 Sebastian Pop <s.pop@samsung.com>
26697 * graphite-sese-to-poly.c (set_scop_parameter_dim): Remove.
26698 (cleanup_loop_iter_dom): Remove.
26699 (build_loop_iteration_domains): Remove.
26700 (build_scop_context): Remove.
26701 (build_scop_iteration_domain): Remove.
26702 (add_loop_constraints): New.
26703 (build_iteration_domains): New.
26704 (build_poly_scop): Call build_iteration_domains.
26706 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
26707 Sebastian Pop <s.pop@samsung.com>
26709 * graphite-scop-detection.c
26710 (scop_detection::harmful_loop_in_region): Free dom and loops.
26711 (scop_detection::loop_body_is_valid_scop): Free bbs.
26713 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
26714 Sebastian Pop <s.pop@samsung.com>
26716 * graphite-scop-detection.c (record_loop_in_sese): New.
26717 (gather_bbs::before_dom_children): Call record_loop_in_sese.
26718 (build_scops): Remove call to build_sese_loop_nests.
26719 * sese.c (sese_record_loop): Remove.
26720 (build_sese_loop_nests): Remove.
26721 (new_sese_info): Remove region->loops.
26722 (free_sese_info): Same.
26723 * sese.h (sese_contains_loop): Same.
26724 (build_sese_loop_nests): Remove.
26725 (sese_contains_loop): Remove.
26727 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
26728 Sebastian Pop <s.pop@samsung.com>
26730 * graphite-scop-detection.c (loop_is_valid_scop): Renamed
26731 loop_is_valid_in_scop.
26732 (scop_detection::harmful_stmt_in_region): Renamed
26733 harmful_loop_in_region.
26734 Call loop_is_valid_in_scop.
26736 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
26737 Sebastian Pop <s.pop@samsung.com>
26739 * graphite-isl-ast-to-gimple.c (translate_isl_ast): Also handle
26742 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
26743 Sebastian Pop <s.pop@samsung.com>
26745 * graphite-poly.c (new_poly_bb): Remove use of PBB_IS_REDUCTION.
26746 * graphite.h (struct poly_bb): Remove field is_reduction.
26747 (PBB_IS_REDUCTION): Remove.
26749 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
26750 Sebastian Pop <s.pop@samsung.com>
26752 * graphite-dependences.c (constrain_domain): Add call to isl_*_coalesce.
26753 (add_pdr_constraints): Same.
26754 (scop_get_reads): Same.
26755 (scop_get_must_writes): Same.
26756 (scop_get_may_writes): Same.
26757 (scop_get_original_schedule): Same.
26758 (extend_schedule): Same.
26759 (apply_schedule_on_deps): Same.
26760 (carries_deps): Same.
26761 (compute_deps): Same.
26762 (scop_get_dependences): Same.
26763 * graphite-isl-ast-to-gimple.c
26764 (translate_isl_ast_to_gimple::generate_isl_schedule): Same.
26765 * graphite-optimize-isl.c (get_schedule_for_band): Same.
26766 (get_schedule_for_band_list): Same.
26767 (get_schedule_map): Same.
26768 (apply_schedule_map_to_scop): Same.
26769 * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
26770 (build_loop_iteration_domains): Same.
26771 (add_condition_to_pbb): Same.
26772 (add_param_constraints): Same.
26773 (pdr_add_memory_accesses): Same.
26774 (pdr_add_data_dimensions): Same.
26776 2016-01-20 Sandra Loosemore <sandra@codesourcery.com>
26778 * doc/invoke.texi (Instrumentation Options): Clarify -mmpx linking
26781 2016-01-20 Sandra Loosemore <sandra@codesourcery.com>
26783 * common.opt (feliminate-dwarf2-dups): Replace references to
26784 "DWARF 2" with just "DWARF".
26785 * config/ia64/ia64.opt (mdwarf2-asm): Likewise.
26786 * doc/extend.texi: Likewise.
26787 * doc/cpp.texi: Likewise.
26788 * doc/invoke.texi: Likewise.
26789 (Option Summary): Add -gdwarf to list of Debugging Options.
26790 (Debugging Options): Document -gdwarf.
26791 * doc/contrib.texi: Spell "DWARF" like that.
26793 2016-01-21 Jakub Jelinek <jakub@redhat.com>
26795 * omp-low.c (expand_omp_target): Avoid -Wmaybe-uninitialized
26796 warning. Fix up formatting.
26798 PR middle-end/67653
26799 * gimplify.c (gimplify_asm_expr): Warn if it is too late to
26800 attempt to mark memory input operand addressable and
26801 call prepare_gimple_addressable in that case. Don't adjust
26802 input_location for diagnostics, use error_at instead.
26804 2016-01-20 Peter Bergner <bergner@vnet.ibm.com>
26806 * config/rs6000/ppc-auxv.h: New file.
26807 * config/rs6000/rs6000-builtin.def (cpu_init): Add new builtin.
26808 (cpu_is): Likewise.
26809 (cpu_supports): Likewise.
26810 * config/rs6000/rs6000.c: include "ppc-auxv.h".
26811 (cpu_is_info): New variable.
26812 (cpu_supports_info): Likewise.
26813 (tcb_verification_symbol): Likewise.
26814 (cpu_builtin_p): Likewise.
26815 (cpu_expand_builtin): New function.
26816 (rs6000_expand_ternop_builtin): Add support for CPU builtin functions.
26817 (rs6000_init_builtins): Likewise.
26818 (rs6000_elf_file_end): Emit HWCAP in TCB verification symbol.
26819 * config/rs6000/rs6000.h (TLS_REGNUM): New define.
26820 * configure.ac (gcc_cv_libc_provides_hwcap_in_tcb): New test.
26821 * configure: Regenerate.
26822 * config.in: Likewise.
26823 * doc/extend.texi (PowerPC Built-in Functions): Document
26824 __builtin_cpu_init, __builtin_cpu_is and __builtin_cpu_supports.
26826 2016-01-20 David Edelsohn <dje.gcc@gmail.com>
26829 * config/rs6000/rs6000.c (rs6000_emit_swsqrt): Add vector sqrt
26831 * config/rs6000/vector.md (sqrt<mode>2): Call rs6000_emit_swsqrt
26834 2016-01-20 Richard Henderson <rth@redhat.com>
26840 * tree.c (tm_define_builtin): New.
26841 (find_tm_vector_type): New.
26842 (build_tm_vector_builtins): New.
26843 (build_common_builtin_nodes): Call it.
26845 2016-01-20 Christophe Lyon <christophe.lyon@linaro.org>
26847 * doc/sourcebuild.texi (arm_crypto_pragma_ok): Document new entry.
26848 (arm_fp_ok): Likewise.
26849 (arm_fp): Likewise.
26850 (arm_crypto): Likewise.
26852 2016-01-20 Ilya Enkovich <enkovich.gnu@gmail.com>
26853 Richard Biener <rguenther@suse.de>
26855 PR tree-optimization/69328
26856 * tree-vect-stmts.c (vect_is_simple_cond): Check compared
26857 vectors have same number of elements.
26858 (vectorizable_condition): Fix masked version recognition.
26860 2016-01-20 Richard Biener <rguenther@suse.de>
26862 PR tree-optimization/69345
26863 * tree-ssa-sccvn.h (VN_INFO_RANGE_INFO): New inline function.
26864 (VN_INFO_PTR_INFO): Likewise.
26865 * tree-ssa-sccvn.c (set_ssa_val_to): Avoid clearing points-to
26866 info when it is equal between non-dominating SSA names.
26867 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
26868 Make sure to look at original SSA infos.
26870 2016-01-20 Jeff Law <law@redhat.com>
26873 * config/m68k/predicates.md (pow2_m1_operand): New predicate
26875 (reg_or_pow2_m1_operand): Call pow2_m1_operand.
26876 (pc_or_label_operand): New predicate.
26877 * config/m68k/m68k.md: Add new peephole2 patterns for GTU/LEU
26878 tests for small integers that are 2^n - 1.
26880 2016-01-20 Jonathan Wakely <jwakely@redhat.com>
26882 * doc/invoke.texi (Options Summary): Add '.' after @xref.
26884 2016-01-19 Jeff Law <law@redhat.com>
26886 PR middle-end/69347
26887 * tree-ssa-threadbackwards.c
26888 (fsm_find_control_statement_thread_paths): Do not try to lookup
26889 FSM paths for SSA_NAMEs appearing in abnormal PHIs.
26891 2016-01-20 Kugan Vivekanandarajah <kuganv@linaro.org>
26893 * doc/lto.texi: Remove text that says only Gold has linker plugin
26896 2016-01-19 Eric Botcazou <ebotcazou@adacore.com>
26898 * dwarf2out.c (need_endianity_attribute_p): New inline predicate.
26899 (base_type_die): Add REVERSE parameter and attach DW_AT_endianity to
26900 the DIE accordingly.
26901 (modified_type_die): Add REVERSE parameter and pass it recursively,
26902 as well as to base_type_die. Adjust presence check accordingly.
26903 (base_type_for_mode): Adjust call to modified_type_die.
26904 (add_type_attribute): Add REVERSE parameter and pass it to
26906 (generic_parameter_die): Adjust call to add_type_attribute.
26907 (add_scalar_info): Likewise.
26908 (add_subscript_info): Likewise.
26909 (gen_array_type_die): Likewise.
26910 (gen_descr_array_type_die): Likewise.
26911 (gen_entry_point_die): Likewise.
26912 (gen_enumeration_type_die): Likewise.
26913 (gen_formal_parameter_die): Likewise.
26914 (gen_subprogram_die): Likewise.
26915 (gen_variable_die ): Likewise.
26916 (gen_const_die): Likewise.
26917 (gen_field_die): Likewise.
26918 (gen_pointer_type_die): Likewise.
26919 (gen_reference_type_die): Likewise.
26920 (gen_ptr_to_mbr_type_die): Likewise.
26921 (gen_inheritance_die): Likewise.
26922 (gen_subroutine_type_die): Likewise.
26923 (gen_typedef_die): Likewise.
26924 (force_type_die): Adjust call to modified_type_die.
26926 2016-01-19 Sandra Loosemore <sandra@codesourcery.com>
26928 * doc/standards.texi: Copy-editing for grammar, markup, and sentence
26929 flow throughout the file. Fix broken link to Objective-C 2.0
26931 * doc/invoke.texi: More copy-editing; fix numerous typos and spelling
26934 2016-01-19 Wilco Dijkstra <wdijkstr@arm.com>
26936 * ccmp.c (expand_ccmp_expr_1): Avoid spurious unused warnings.
26938 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
26941 * ipa-devirt.c (is_cxa_pure_virtual_p): New function.
26942 (maybe_record_node): Record cxa_pure_virtual as the only possible
26943 target if there are not ohter candidates.
26944 (possible_polymorphic_call_target_p): Accept cxa_pure_virtual.
26946 2016-01-19 Richard Biener <rguenther@suse.de>
26948 * hsa-gen.c (get_memory_order_name): Use MEMMODEL_ constants.
26949 (get_memory_order): Likewise.
26951 2016-01-19 Kirill Yukhin <kirill.yukhin@intel.com>
26953 * tree-vect-stmts.c (vectorizable_store): Check
26956 2016-01-19 David Malcolm <dmalcolm@redhat.com>
26959 * gcc.c (driver::decode_argv): Add call to
26960 init_opts_obstack before init_options_struct.
26961 * opts.c (init_opts_obstack): Remove idempotency.
26962 (init_options_struct): Replace call to init_opts_obstack
26963 with a gcc_assert to verify that it has already been called.
26964 * toplev.c (toplev::main): Add call to init_opts_obstack before
26965 calls to init_options_struct.
26966 (toplev::finalize): Move cleanup of opts_obstack next to
26967 cleanup of save_decoded_options, clearing the latter, and
26968 save_decoded_options_count.
26970 2016-01-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
26973 * config/arm/vfp.md (l<vrint_pattern><su_optab><mode>si2): Set "conds"
26974 attribute to unconditional. Remove %? from output template.
26976 2015-01-19 Wilco Dijkstra <wdijkstr@arm.com>
26977 Jiong Wang <jiong.wang@arm.com>
26979 * ccmp.c (expand_ccmp_expr_1): Cost the instruction sequences
26980 generated from different expand order.
26982 2015-01-19 Wilco Dijkstra <wdijkstr@arm.com>
26984 * /config/aarch64/aarch64.c (aarch64_if_then_else_costs):
26985 Add support for CCMP costing.
26987 2015-01-19 Wilco Dijkstra <wdijkstr@arm.com>
26989 * ccmp.c (ccmp_candidate_p): Remove integer-only restriction.
26990 * config/aarch64/aarch64.md (fccmp<mode>): New pattern.
26991 (fccmpe<mode>): Likewise.
26992 (fcmp): Rename to fcmp and globalize pattern.
26994 * config/aarch64/aarch64.c (aarch64_gen_ccmp_first): Add FP support.
26995 (aarch64_gen_ccmp_next): Add FP support.
26997 2015-01-19 Wilco Dijkstra <wdijkstr@arm.com>
26999 * target.def (gen_ccmp_first): Update documentation.
27000 (gen_ccmp_next): Likewise.
27001 * doc/tm.texi (gen_ccmp_first): Update documentation.
27002 (gen_ccmp_next): Likewise.
27003 * ccmp.c (expand_ccmp_expr): Extract cmp_code from return value of
27004 expand_ccmp_expr_1. Improve comments.
27005 * config/aarch64/aarch64.md (ccmp_and): Use if_then_else for ccmp.
27006 (ccmp_ior<mode>): Remove pattern.
27007 (cmp<mode>): Remove expand.
27008 (cmp): Globalize pattern.
27009 (cstorecc4): Use cc_register.
27010 (mov<mode>cc): Remove ccmp_cc_register check.
27011 * config/aarch64/aarch64.c (aarch64_get_condition_code_1):
27012 Simplify after removal of CC_DNE/* modes.
27013 (aarch64_ccmp_mode_to_code): Remove.
27014 (aarch64_print_operand): Remove 'K' case. Merge 'm' and 'M' cases.
27015 In 'k' case use integer as condition.
27016 (aarch64_nzcv_codes): Remove inverted cases.
27017 (aarch64_code_to_ccmode): Remove.
27018 (aarch64_gen_ccmp_first): Use cmp pattern directly. Return the correct
27019 comparison with CC register to be used in folowing CCMP/branch/CSEL.
27020 (aarch64_gen_ccmp_next): Use previous comparison and mode in CCMP
27021 pattern. Return the comparison with CC register. Invert conditions
27022 when bitcode is OR.
27023 * config/aarch64/aarch64-modes.def: Remove CC_DNE/* modes.
27024 * config/aarch64/predicates.md (ccmp_cc_register): Remove.
27026 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
27028 * cgraphunit.c (cgraph_node::reset): Clear thunk info and
27029 instrumented_version.
27031 2016-01-19 Richard Biener <rguenther@suse.de>
27033 PR tree-optimization/69336
27034 * tree-ssa-scopedtables.c (avail_expr_hash): Handle all
27035 handled components with get_ref_base_and_extent.
27036 (equal_mem_array_ref_p): Adjust.
27038 2016-01-19 Jakub Jelinek <jakub@redhat.com>
27041 * shrink-wrap.c: Include valtrack.h.
27042 (move_insn_for_shrink_wrap): Add DEBUG argument. If
27043 MAY_HAVE_DEBUG_INSNS, call dead_debug_add on DEBUG_INSNs
27044 in between insn and where it will be moved to. Call
27045 dead_debug_insert_temp.
27046 (prepare_shrink_wrap): Adjust caller. Call dead_debug_local_init
27047 first and dead_debug_local_finish at the end.
27048 For uses and defs bitmap, handle all regs in between REGNO and
27049 END_REGNO, not just the first one.
27051 2016-01-19 Richard Biener <rguenther@suse.de>
27053 PR tree-optimization/69352
27054 * tree-ssa-scopedtables.c (avail_expr_hash): Check for size == -1.
27055 (equal_mem_array_ref_p): Constrain size and max size properly.
27056 Compare the reverse flag.
27058 2016-01-19 Bernd Schmidt <bschmidt@redhat.com>
27060 * ira.c (ira): Update regstat data if we deleted insns.
27062 2016-01-19 Jakub Jelinek <jakub@redhat.com>
27064 PR rtl-optimization/68955
27065 PR rtl-optimization/64557
27066 * dse.c (record_store, check_mem_read_rtx): Don't call get_addr
27067 here. Fix up formatting.
27068 * alias.c (get_addr): Handle VALUE +/- CONST_SCALAR_INT_P.
27070 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
27073 * cgraphunit.c (cgraph_node::expand_thunk): When forcing gimple
27074 assume that the node has body.
27075 * cgraph.c (cgraph_node::get_untransformed_body): Use gimple_body_p
27078 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
27080 * lto-streamer-out.c (lto_output): Do not stream instrumentation
27083 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
27085 * symtab.c (symtab_node::asm_name): Do not call printable name directly.
27086 (symtab_node::name): Report name as unnamed if DECL_NAME is not set.
27088 2016-01-19 Martin Jambor <mjambor@suse.cz>
27089 Martin Liska <mliska@suse.cz>
27090 Michael Matz <matz@suse.de>
27092 * Makefile.in (OBJS): Add new source files.
27093 (GTFILES): Add hsa.c.
27094 * common.opt (disable_hsa): New variable.
27095 (-Whsa): New warning.
27096 * config.in (ENABLE_HSA): New.
27097 * configure.ac: Treat hsa differently from other accelerators.
27098 (OFFLOAD_TARGETS): Define ENABLE_OFFLOADING according to
27099 $enable_offloading.
27100 (ENABLE_HSA): Define ENABLE_HSA according to $enable_hsa.
27101 * doc/install.texi (Configuration): Document --with-hsa-runtime,
27102 --with-hsa-runtime-include, --with-hsa-runtime-lib and
27103 --with-hsa-kmt-lib.
27104 * doc/invoke.texi (-Whsa): Document.
27105 (hsa-gen-debug-stores): Likewise.
27106 * lto-wrapper.c (compile_images_for_offload_targets): Do not attempt
27107 to invoke offload compiler for hsa acclerator.
27108 * opts.c (common_handle_option): Determine whether HSA offloading
27109 should be performed.
27110 * params.def (PARAM_HSA_GEN_DEBUG_STORES): New parameter.
27111 * builtin-types.def (BT_FN_VOID_UINT_PTR_INT_PTR): New.
27112 (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_INT_INT): Removed.
27113 (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_PTR): New.
27114 * gimple-low.c (lower_stmt): Also handle GIMPLE_OMP_GRID_BODY.
27115 * gimple-pretty-print.c (dump_gimple_omp_for): Also handle
27116 GF_OMP_FOR_KIND_GRID_LOOP.
27117 (dump_gimple_omp_block): Also handle GIMPLE_OMP_GRID_BODY.
27118 (pp_gimple_stmt_1): Likewise.
27119 * gimple-walk.c (walk_gimple_stmt): Likewise.
27120 * gimple.c (gimple_build_omp_grid_body): New function.
27121 (gimple_copy): Also handle GIMPLE_OMP_GRID_BODY.
27122 * gimple.def (GIMPLE_OMP_GRID_BODY): New.
27123 * gimple.h (enum gf_mask): Added GF_OMP_PARALLEL_GRID_PHONY,
27124 GF_OMP_FOR_KIND_GRID_LOOP, GF_OMP_FOR_GRID_PHONY and
27125 GF_OMP_TEAMS_GRID_PHONY.
27126 (gimple_statement_omp_single_layout): Updated comments.
27127 (gimple_build_omp_grid_body): New function.
27128 (gimple_has_substatements): Also handle GIMPLE_OMP_GRID_BODY.
27129 (gimple_omp_for_grid_phony): New function.
27130 (gimple_omp_for_set_grid_phony): Likewise.
27131 (gimple_omp_parallel_grid_phony): Likewise.
27132 (gimple_omp_parallel_set_grid_phony): Likewise.
27133 (gimple_omp_teams_grid_phony): Likewise.
27134 (gimple_omp_teams_set_grid_phony): Likewise.
27135 (gimple_return_set_retbnd): Also handle GIMPLE_OMP_GRID_BODY.
27136 * omp-builtins.def (BUILT_IN_GOMP_OFFLOAD_REGISTER): New.
27137 (BUILT_IN_GOMP_OFFLOAD_UNREGISTER): Likewise.
27138 (BUILT_IN_GOMP_TARGET): Updated type.
27139 * omp-low.c: Include symbol-summary.h, hsa.h and params.h.
27140 (adjust_for_condition): New function.
27141 (get_omp_for_step_from_incr): Likewise.
27142 (extract_omp_for_data): Moved parts to adjust_for_condition and
27143 get_omp_for_step_from_incr.
27144 (build_outer_var_ref): Handle GIMPLE_OMP_GRID_BODY.
27145 (fixup_child_record_type): Bail out if receiver_decl is NULL.
27146 (scan_sharing_clauses): Handle OMP_CLAUSE__GRIDDIM_.
27147 (scan_omp_parallel): Do not create child functions for phony
27149 (check_omp_nesting_restrictions): Handle GIMPLE_OMP_GRID_BODY.
27150 (scan_omp_1_op): Checking assert we are not remapping to
27151 ERROR_MARK. Also also handle GIMPLE_OMP_GRID_BODY.
27152 (parallel_needs_hsa_kernel_p): New function.
27153 (expand_parallel_call): Register apprpriate parallel child
27154 functions as HSA kernels.
27155 (grid_launch_attributes_trees): New type.
27156 (grid_attr_trees): New variable.
27157 (grid_create_kernel_launch_attr_types): New function.
27158 (grid_insert_store_range_dim): Likewise.
27159 (grid_get_kernel_launch_attributes): Likewise.
27160 (get_target_argument_identifier_1): Likewise.
27161 (get_target_argument_identifier): Likewise.
27162 (get_target_argument_value): Likewise.
27163 (push_target_argument_according_to_value): Likewise.
27164 (get_target_arguments): Likewise.
27165 (expand_omp_target): Call get_target_arguments instead of looking
27166 up for teams and thread limit.
27167 (grid_expand_omp_for_loop): New function.
27168 (grid_arg_decl_map): New type.
27169 (grid_remap_kernel_arg_accesses): New function.
27170 (grid_expand_target_kernel_body): New function.
27171 (expand_omp): Call it.
27172 (lower_omp_for): Do not emit phony constructs.
27173 (lower_omp_taskreg): Do not emit phony constructs but create for them
27174 a temporary variable receiver_decl.
27175 (lower_omp_taskreg): Do not emit phony constructs.
27176 (lower_omp_teams): Likewise.
27177 (lower_omp_grid_body): New function.
27178 (lower_omp_1): Call it.
27179 (grid_reg_assignment_to_local_var_p): New function.
27180 (grid_seq_only_contains_local_assignments): Likewise.
27181 (grid_find_single_omp_among_assignments_1): Likewise.
27182 (grid_find_single_omp_among_assignments): Likewise.
27183 (grid_find_ungridifiable_statement): Likewise.
27184 (grid_target_follows_gridifiable_pattern): Likewise.
27185 (grid_remap_prebody_decls): Likewise.
27186 (grid_copy_leading_local_assignments): Likewise.
27187 (grid_process_kernel_body_copy): Likewise.
27188 (grid_attempt_target_gridification): Likewise.
27189 (grid_gridify_all_targets_stmt): Likewise.
27190 (grid_gridify_all_targets): Likewise.
27191 (execute_lower_omp): Call grid_gridify_all_targets.
27192 (make_gimple_omp_edges): Handle GIMPLE_OMP_GRID_BODY.
27193 * tree-core.h (omp_clause_code): Added OMP_CLAUSE__GRIDDIM_.
27194 (tree_omp_clause): Added union field dimension.
27195 * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE__GRIDDIM_.
27196 * tree.c (omp_clause_num_ops): Added number of arguments of
27197 OMP_CLAUSE__GRIDDIM_.
27198 (omp_clause_code_name): Added name of OMP_CLAUSE__GRIDDIM_.
27199 (walk_tree_1): Handle OMP_CLAUSE__GRIDDIM_.
27200 * tree.h (OMP_CLAUSE_GRIDDIM_DIMENSION): New.
27201 (OMP_CLAUSE_SET_GRIDDIM_DIMENSION): Likewise.
27202 (OMP_CLAUSE_GRIDDIM_SIZE): Likewise.
27203 (OMP_CLAUSE_GRIDDIM_GROUP): Likewise.
27204 * passes.def: Schedule pass_ipa_hsa and pass_gen_hsail.
27205 * tree-pass.h (make_pass_gen_hsail): Declare.
27206 (make_pass_ipa_hsa): Likewise.
27207 * ipa-hsa.c: New file.
27208 * lto-section-in.c (lto_section_name): Add hsa section name.
27209 * lto-streamer.h (lto_section_type): Add hsa section.
27210 * timevar.def (TV_IPA_HSA): New.
27211 * hsa-brig-format.h: New file.
27212 * hsa-brig.c: New file.
27213 * hsa-dump.c: Likewise.
27214 * hsa-gen.c: Likewise.
27217 * toplev.c (compile_file): Call hsa_output_brig.
27218 * hsa-regalloc.c: New file.
27220 2016-01-18 Jeff Law <law@redhat.com>
27222 PR tree-optimization/69320
27223 * tree-ssa-dom.c (record_edge_info): For comparisons against a boolean
27224 ranged object, do nothing if the RHS constant is not [0..1].
27225 (optimize_stmt): Comparing a boolean ranged object against a
27226 constant outside [0..1] results in a compile-time constant.
27228 * tree-ssanames.c (ssa_name_has_boolean_range): Remove unnecessary
27231 2016-01-18 Sandra Loosemore <sandra@codesourcery.com>
27233 * doc/invoke.texi (Invoking GCC): Add new section to menu.
27234 (Option Summary): Update to reflect new section and moved options.
27235 (C++ Dialect Options): Move -fstats to new section.
27236 (Debugging Options): Move all dump, statistics, and other GCC
27237 developer options to new section. Rewrite section introduction
27238 and re-order remaining options to put the more basic ones first.
27239 (Optimization Options): Move -fira-verbose and -flto-report* to
27241 (Developer Options): New section incorporating moved options.
27242 * doc/cppopts.texi (-dM): Update cross-reference.
27244 2016-01-18 Richard Henderson <rth@redhat.com>
27247 * config/aarch64/aarch64.md (add<GPI>3): Move long immediate
27248 operands to pseudo only if CSE is expected. Split long immediate
27249 operands only after reload, and for the stack pointer.
27250 (*add<GPI>3_pluslong): Remove.
27251 (*addsi3_aarch64, *adddi3_aarch64): Merge into...
27252 (*add<GPI>3_aarch64): ... here. Add r/rk/Upl alternative.
27253 (*addsi3_aarch64_uxtw): Add r/rk/Upl alternative.
27254 (*add<GPI>3 peepholes): New.
27255 (*add<GPI>3 splitters): New.
27256 * config/aarch64/constraints.md (Upl): New.
27257 * config/aarch64/predicates.md (aarch64_pluslong_strict_immedate): New.
27259 2016-01-18 Richard Biener <rguenther@suse.de>
27261 PR tree-optimization/69297
27262 * tree-vect-slp.c (vect_bb_slp_scalar_cost): Count each scalar
27264 (vect_bb_vectorization_profitable_p): Clear visited flag again.
27266 2016-01-18 Yuri Rumyantsev <ysrumyan@gmail.com>
27268 PR middle-end/68542
27269 * fold-const.c (fold_binary_op_with_conditional_arg): Bail out for case
27270 of mixind vector and scalar types.
27271 (fold_relational_const): Add handling of vector
27272 comparison with boolean result.
27273 * tree-cfg.c (verify_gimple_comparison): Add argument CODE, allow
27274 comparison of vector operands with boolean result for EQ/NE only.
27275 (verify_gimple_assign_binary): Adjust call for verify_gimple_comparison.
27276 (verify_gimple_cond): Likewise.
27277 * tree-vrp.c (extract_code_and_val_from_cond_with_ops): Modify check on
27280 2016-01-18 Joseph Myers <joseph@codesourcery.com>
27282 * config/mips/mips.h (ISA_HAS_PAIRED_SINGLE): Require
27285 2016-01-18 Richard Biener <rguenther@suse.de>
27287 PR middle-end/69308
27288 * gimple.c (gimple_could_trap_p_1): Handle GIMPLE_COND.
27290 2016-01-18 Tom de Vries <tom@codesourcery.com>
27292 * passes.def: Add pass_parallelize_loops to pass_oacc_kernels.
27294 2016-01-18 Tom de Vries <tom@codesourcery.com>
27296 * omp-low.c (set_oacc_fn_attrib): Make extern.
27297 * omp-low.h (set_oacc_fn_attrib): Declare.
27298 * tree-parloops.c (struct reduction_info): Add reduc_addr field.
27299 (create_call_for_reduction_1): Handle case that reduc_addr is non-NULL.
27300 (create_parallel_loop, gen_parallel_loop, try_create_reduction_list):
27301 Add and handle function parameter oacc_kernels_p.
27302 (find_reduc_addr, get_omp_data_i_param): New function.
27303 (ref_conflicts_with_region, oacc_entry_exit_ok_1)
27304 (oacc_entry_exit_single_gang, oacc_entry_exit_ok): New function.
27305 (parallelize_loops): Add and handle function parameter oacc_kernels_p.
27306 Calculate dominance info. Skip loops that are not in a kernels region
27307 in oacc_kernels_p mode. Skip inner loops of parallelized loops.
27308 (pass_parallelize_loops::execute): Call parallelize_loops with
27309 oacc_kernels_p argument.
27310 (pass_parallelize_loops::clone, pass_parallelize_loops::set_pass_param):
27311 New member function.
27312 (pass_parallelize_loops::bool oacc_kernels_p): New member var.
27313 * passes.def: Add argument to pass_parallelize_loops instantation.
27315 2016-01-18 Tom de Vries <tom@codesourcery.com>
27317 * tree-parloops.c (pass_parallelize_loops::execute): Allow
27318 pass_parallelize_loops to be run outside the loop pipeline.
27320 2016-01-18 Alan Lawrence <alan.lawrence@arm.com>
27322 * tree-scalar-evolution.c (follow_copies_to_constant): New.
27323 (analyze_initial_condition, analyze_scalar_evolution_1): Call previous.
27325 2016-01-18 Alan Lawrence <alan.lawrence@arm.com>
27328 * tree-ssa-scopedtables.c (avail_expr_hash): Hash MEM_REF and ARRAY_REF
27329 using get_ref_base_and_extent.
27330 (equal_mem_array_ref_p): New.
27331 (hashable_expr_equal_p): Add call to previous.
27333 2016-01-18 Alan Lawrence <alan.lawrence@arm.com>
27336 * tree-sra.c (disqualified_constants, constant_decl_p): New.
27337 (sra_initialize): Allocate disqualified_constants.
27338 (sra_deinitialize): Free disqualified_constants.
27339 (disqualify_candidate): Update disqualified_constants when appropriate.
27340 (create_access): Scan for constant-pool entries as we go along.
27341 (scalarizable_type_p): Add check against type_contains_placeholder_p.
27342 (maybe_add_sra_candidate): Allow constant-pool entries.
27343 (load_assign_lhs_subreplacements): Bind debug for constant pool vars.
27344 (initialize_constant_pool_replacements): New.
27345 (sra_modify_assign): Avoid mangling assignments created by previous,
27346 and don't generate writes into constant pool.
27347 (sra_modify_function_body): Call initialize_constant_pool_replacements.
27349 2016-01-18 Ilya Enkovich <enkovich.gnu@gmail.com>
27351 * config/i386/i386.c (scalar_to_vector_candidate_p): Support
27352 andnot instruction.
27353 (scalar_chain::convert_op): Likewise.
27354 * config/i386/i386.md (*andndi3_doubleword): New.
27356 2016-01-18 Richard Biener <rguenther@suse.de>
27358 PR tree-optimization/69170
27359 * tree-vect-slp.c (vect_build_slp_tree): Verify we are not
27360 building a vector from scalar results of a pattern stmt.
27362 2016-01-18 Jakub Jelinek <jakub@redhat.com>
27364 * haifa-sched.c (autopref_multipass_init): Work around
27365 -Wmaybe-uninitialized warning.
27367 2016-01-18 Thomas Preud'homme <thomas.preudhomme@arm.com>
27369 * config/arm/arm.c (thumb1_reorg): Check that the comparison is
27370 against the constant 0.
27372 2016-01-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
27374 PR tree-optimization/68799
27375 * gimple-ssa-strength-reduction.c (create_phi_basis): Directly
27376 look up phi candidates in the statement-candidate map.
27377 (phi_add_costs): Likewise.
27378 (record_phi_increments): Likewise.
27379 (phi_incr_cost): Likewise.
27380 (ncd_with_phi): Likewise.
27381 (all_phi_incrs_profitable): Likewise.
27383 2016-01-17 Jakub Jelinek <jakub@redhat.com>
27385 * omp-low.c (mark_loops_in_oacc_kernels_region): Work around
27386 -Wmaybe-uninitialized warning.
27388 2016-01-16 Sandra Loosemore <sandra@codesourcery.com>
27390 * doc/invoke.texi (Invoking GCC): Add new section to menu.
27391 (Option Summary): Update to reflect new section and moved options.
27392 (C++ Dialect Options): Move -fvtable-verify and related options.
27393 (Debugging Options): Move Sanitizer, Pointer Bounds Checker,
27394 and profiling-related options.
27395 (Optimization Options): Move profile generation options and
27396 -fstack-protector and related options.
27397 (Instrumentation Options): New section incorporating moved options.
27398 (Code Generation Options): Move -finstrument-functions and
27399 related options, -fstack-check, -fstack-limit*, and -fbounds-check.
27401 2016-01-16 Tom de Vries <tom@codesourcery.com>
27403 * passes.def: Move pass_expand_omp_ssa out of pass_parallelize_loops.
27405 2016-01-16 Tom de Vries <tom@codesourcery.com>
27407 * omp-low.c (expand_omp_atomic_fetch_op): Release defs of update stmt.
27409 2016-01-16 Richard Sandiford <richard.sandiford@arm.com>
27411 * hash-table.h (hash_table::empty): Turn into an inline wrapper
27412 that checks whether the table is already empty. Rename the
27413 original implementation to...
27414 (hash_table::empty_slot): ...this new private function.
27416 2016-01-15 David Malcolm <dmalcolm@redhat.com>
27418 PR diagnostic/68899
27419 * diagnostic-show-locus.c (layout::print_source_line): Move x
27420 offset of line until after call to
27421 get_line_width_without_trailing_whitespace.
27423 2016-01-15 Jeff Law <law@redhat.com>
27425 PR tree-optimization/69270
27426 * tree-ssanames.c (ssa_name_has_boolean_range): Moved here from
27427 tree-ssa-dom.c. Improve test for [0..1] ranve from VRP.
27428 * tree-ssa-dom.c (ssa_name_has_boolean_range): Remove.
27429 * tree-ssanames.h (ssa_name_has_boolean_range): Prototype.
27430 * tree-ssa-uncprop.c (associate_equivalences_with_edges): Use
27431 ssa_name_has_boolean_range and constant_boolean_node.
27433 2016-01-15 Vladimir Makarov <vmakarov@redhat.com>
27435 PR rtl-optimization/69030
27436 * lra-spills.c (remove_pseudos): Check nrefs and make the function
27438 (spill_pseudos): Delete debug insn for dead pseudo.
27439 (lra_spill): Initiate spill_hard_reg and slots memory separately.
27441 2016-01-15 Jiong Wang <jiong.wang@arm.com>
27443 * config/aarch64/aarch64-builtins.c (aarch64_types_unopus_qualifiers):
27445 (TYPES_UNOPUS): Likewise.
27446 * config/aarch64/aarch64-simd-builtins.def (lbtruncuv2sf): Correct
27447 builtin type, from UNOP to UNOPUS.
27448 (lbtruncuv4sf): Likewise.
27449 (lbtruncuv2df): Likewise.
27450 (lrounduv2sf): Likewise.
27451 (lrounduv4sf): Likewise.
27452 (lrounduv2df): Likewise.
27453 (lroundusf): Likewise.
27454 (lroundusf): Likewise.
27455 (lceiluv2sf): Likewise.
27456 (lceiluv4sf): Likewise.
27457 (lceiluv2df): Likewise.
27458 (lceilusf): Likewise.
27459 (lceiludf): Likewise.
27460 (lflooruv2sf): Likewise.
27461 (lflooruv4sf): Likewise.
27462 (lflooruv2df): Likewise.
27463 (lfloorusf): Likewise.
27464 (lfloorudf): Likewise.
27465 (lfrintnuv2sf): Likewise.
27466 (lfrintnuv4sf): Likewise.
27467 (lfrintnuv2df): Likewise.
27468 (lfrintnusf): Likewise.
27469 (lfrintnudf): Likewise.
27470 * config/aarch64/arm_neon.h (vcvt_u32_f32): Remove unncessary type
27472 (vcvtq_u32_f32): Likewise.
27473 (vcvtq_u64_f64): Likewise.
27474 (vcvta_u32_f32): Likewise.
27475 (vcvtaq_u32_f32): Likewise.
27476 (vcvtaq_u64_f64): Likewise.
27477 (vcvtm_u32_f32): Likewise.
27478 (vcvtmq_u32_f32): Likewise.
27479 (vcvtmq_u64_f64): Likewise.
27480 (vcvtn_u32_f32): Likwise.
27481 (vcvtnq_u32_f32): Likewise.
27482 (vcvtnq_u64_f64): Likewise.
27483 (vcvtp_u32_f32): Likewise.
27484 (vcvtpq_u32_f32): Likewise.
27485 (vcvtpq_u64_f64): Likewise.
27486 (vcvtmd_u64_f64): Likewise.
27487 (vcvtms_u32_f32): Likewise.
27488 (vcvtad_u64_f64): Likewise.
27489 (vcvtas_u32_f32): Likewise.
27490 (vcvtnd_u64_f64): Likewise.
27491 (vcvtns_u32_f32): Likewise.
27492 (vcvtpd_u64_f64): Likewise.
27493 (vcvtps_u32_f32): Likewise.
27495 2016-01-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
27497 * config/aarch64/aarch64.c (aarch64_if_then_else_costs): Handle
27498 CSEL of zero_extended registers.
27500 2016-01-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
27502 * config/aarch64/aarch64.c (aarch64_rtx_costs, COMPARE case):
27503 Handle COMPARE of ZERO_EXTRACT against zero form of TST-immediate.
27505 2016-01-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
27507 * config/aarch64/aarch64.c (aarch64_process_one_target_attr): Return
27508 false when argument string is not found in the attributes table
27511 2016-01-15 David Edelsohn <dje.gcc@gmail.com>
27514 * config/rs6000/rs6000.c (rs6000_emit_msub): Delete.
27515 (rs6000_emit_swsqrt): Convert to Goldschmidt's Algorithm
27516 * config/rs6000/rs6000.md (sqrt<mode>2): Limit swsqrt to high
27517 precision estimate.
27519 2016-01-15 Richard Biener <rguenther@suse.de>
27521 PR tree-optimization/66856
27522 * tree-vect-loop.c (vect_transform_loop): Free SLP instances here.
27523 * tree-vect-slp.c (vect_free_slp_tree): Decrement stmt reference count.
27524 (vect_create_new_slp_node): Increment stmt reference count.
27525 (vect_get_and_check_slp_defs): Make sure stmts are nor already in
27526 an SLP tree before swapping operands.
27527 (vect_build_slp_tree): Likewise.
27528 (destroy_bb_vec_info): Free stmt info after SLP instances.
27529 * tree-vect-stmts.c (new_stmt_vec_info): Initialize reference count.
27530 * tree-vectorizer.h (struct _stmt_vec_info): Add num_slp_uses field.
27531 (STMT_VINFO_NUM_SLP_USES): New macro.
27533 2016-01-15 Richard Biener <rguenther@suse.de>
27536 * dwarf2out.c (add_linkage_name_raw): New function split out from ...
27537 (add_linkage_name): ... here.
27538 (gen_typedef_die): Use add_linkage_name_raw instead of
27539 add_linkage_attr to delay DECL_ASSEMBLER_NAME computation
27542 2016-01-15 Cesar Philippidis <cesar@codesourcery.com>
27544 * gimplify.c (oacc_default_clause): Decode reference and pointer
27545 types for both kernels and parallel regions.
27547 2016-01-15 Richard Sandiford <richard.sandiford@arm.com>
27549 PR middle-end/69246
27550 * calls.c (emit_call_1): Force n_popped to zero for sibcalls.
27552 2016-01-15 Ilya Enkovich <enkovich.gnu@gmail.com>
27554 * config/i386/i386.c (scalar_chain::compute_convert_gain): Fix typo.
27555 (convert_scalars_to_vector): Likewise.
27557 2016-01-15 Jonathan Wakely <jwakely@redhat.com>
27559 * doc/extend.texi (Type Traits): Fix grammar.
27561 2016-01-15 Martin Jambor <mjambor@suse.cz>
27563 * tree-inline.c (remap_decl): Use existing dclarations if
27564 remapping a type and prevent_decl_creation_for_types.
27565 (replace_locals_stmt): Do an initial remapping of non-VLA typed
27566 decls first. Do real remapping with
27567 prevent_decl_creation_for_types set.
27568 * tree-inline.h (copy_body_data): New field
27569 prevent_decl_creation_for_types, moved remap_var_for_cilk to avoid
27572 2016-01-15 Dominik Vogt <vogt@linux.vnet.ibm.com>
27574 * config/s390/s390.opt (mmvcle): More verbose help text.
27576 2016-01-15 Dominik Vogt <vogt@linux.vnet.ibm.com>
27578 * config/s390/s390.opt: Add period to -mzvector option text.
27580 2016-01-15 Richard Biener <rguenther@suse.de>
27582 PR tree-optimization/68961
27583 * tree-vect-slp.c (vect_analyze_slp_cost_1): Consider cost
27584 of invariants in stores again.
27586 2016-01-15 Sebastian Huber <sebastian.huber@embedded-brains.de>
27588 * config/arm/t-rtems: Add cortex-m7/fpv5-d16 multilib.
27590 2016-01-15 Ilya Enkovich <enkovich.gnu@gmail.com>
27592 * config/i386/i386.c (ix86_expand_branch): Don't split
27593 DI mode xor instruction to SI mode.
27595 2016-01-15 Jan Hubicka <hubicka@ucw.cz>
27598 * ipa-icf.c (sem_function::merge): Virtual functions may become
27599 reachable even if they address is not taken and there are no
27602 2016-01-15 Jan Hubicka <hubicka@ucw.cz>
27604 * lto-streamer-out.c (subtract_estimated_size): New function.
27605 (get_symbol_initial_value): Use it.
27607 2016-01-15 Christian Bruel <christian.bruel@st.com>
27610 * config/arm/arm-builtins.c (ARM_BUILTIN_CRYPTO_BASE): New enum tag.
27611 (arm_init_neon_builtins_internal): Rename arm_init_neon_builtins,
27612 (arm_init_crypto_builtins_internal): Rename arm_init_crypto_builtins.
27613 use add_builtin_function_ext_scope instead of add_builtin_function.
27614 (neon_set_p, neon_crypto_set_p): Remove.
27615 (arm_init_builtins): Always call arm_init_neon_builtins and
27616 arm_init_crypto_builtins.
27617 (arm_expand_builtin): Check that builtins are allowed for the arch.
27618 * config/arm/arm-protos.h (arm_init_neon_builtins): Remove prototype.
27619 * config/arm/arm.c (arm_valid_target_attribute_tree): Remove
27620 arm_init_neon_builtins call.
27622 2016-01-15 Richard Biener <rguenther@suse.de>
27624 PR tree-optimization/69117
27625 * tree-ssa-sccvn.h (struct vn_ssa_aux): Add info member.
27626 * tree-ssa-sccvn.c (set_ssa_val_to): Save and adjust SSA name info
27627 of the leader conservatively.
27628 (free_scc_vn): Restore original SSA name infos.
27630 2016-01-14 Jeff Law <law@redhat.com>
27632 PR tree-optimization/69270
27633 * tree-ssa-dom.c (ssa_name_has_boolean_range): If the type has a
27634 single bit of precision, verify it's also unsigned.
27635 (record_edge_info): Use constant_boolean_node rather than fold_convert
27636 to convert boolean_true/boolean_false to the right type.
27638 2016-01-14 Richard Henderson <rth@redhat.com>
27641 * loop-doloop.c (record_reg_sets): New.
27642 (doloop_optimize): Reject the transform if the sequence
27643 clobbers registers live at the end of the loop block.
27644 (doloop_optimize_loops): Enable df_live if needed.
27646 2016-01-14 Michael Meissner <meissner@linux.vnet.ibm.com>
27648 * config/rs6000/rs6000-builtin.def: Revert 2016-01-13 change.
27649 * config/rs6000/rs6000.c: Likewise.
27650 * config/rs6000/rs6000.h: Likewise.
27651 * config/rs6000/rs6000.md: Likewise.
27652 * doc/extend.texi: Likewsie.
27654 2016-01-14 Jeff Law <law@redhat.com>
27656 * tree-ssa-dom.c (ssa_name_has_boolean_range): Fix comment
27659 2016-01-14 Richard Henderson <rth@redhat.com>
27663 * trans-mem.c (tm_log_emit_stmt): Fix unit size to bit size.
27664 * tree.c (build_tm_vector_builtins): Use builtin_decl_explicit_p
27665 instead of builtin_decl_declared_p to test for declaration.
27667 2016-01-14 Nicklas Bo Jensen <nbjensen@gmail.com>
27669 * doc/loop.texi (Loop Analysis and Representation): Document
27670 loop_depth function.
27672 2016-01-14 Tom de Vries <tom@codesourcery.com>
27674 PR tree-optimization/68773
27675 * omp-low.c (expand_omp_target): Don't set force_output.
27676 * varpool.c (varpool_node::get_create): Same.
27677 * lto-cgraph.c (input_offload_tables): Mark entries in offload_vars and
27678 offload_funcs with force_output.
27680 2016-01-14 Jakub Jelinek <jakub@redhat.com>
27683 * lra-eliminations.c (move_plus_up): Don't change anything if either
27684 the outer or inner subreg mode is not MODE_INT.
27685 * dwarf2out.c (mem_loc_descriptor): For SUBREG, if outer mode is
27686 integral <= DWARF2_ADDR_SIZE, convert to untyped afterwards.
27688 2016-01-14 Alan Lawrence <alan.lawrence@arm.com>
27690 * doc/md.texi (reduc_smin_@var{m}, reduc_smax_@var{m},
27691 reduc_umin_@var{m}, reduc_umax_@var{m}, reduc_splus_@var{m},
27692 reduc_uplus_@var{m}): Remove.
27693 * expr.c (expand_expr_real_2): Remove expansion path for
27694 reduc_[us](min|max|plus) optabs.
27695 * optabs-tree.c (scalar_reduc_to_vector): Remove.
27696 * optabs-tree.h (scalar_reduc_to_vector): Remove.
27697 * optabs.def (reduc_smax_optab, reduc_smin_optab, reduc_splus_optab,
27698 reduc_umax_optab, reduc_umin_optab, reduc_uplus_optab): Remove.
27699 * tree-vect-loop.c (vectorizable_reduction): Remove test for
27700 reduc_[us](min|max|plus) optabs.
27702 2016-01-14 Alan Lawrence <alan.lawrence@arm.com>
27704 * config/mips/mips-ps-3d.md (reduc_splus_v2sf): Remove.
27705 (reduc_plus_scal_v2sf): New.
27706 (reduc_smax_v2sf): Rename to...
27707 (reduc_smax_scal_v2sf): ...here, make result SFmode, add vec_extract.
27708 (reduc_smin_v2sf): Rename to...
27709 (reduc_smin_scal_v2sf): ...here, make result SFmode, add vec_extract.
27711 2016-01-14 Jan Hubicka <hubicka@ucw.cz>
27713 * alias.c (compare_base_symbol_refs): New function.
27714 (rtx_equal_for_memref_p, base_alias_check, memrefs_conflict_p): Use
27717 2016-01-14 Jakub Jelinek <jakub@redhat.com>
27719 PR middle-end/68146
27720 PR tree-optimization/69155
27721 * tree-complex.c: Include cfganal.h.
27722 (phis_to_revisit): New variable.
27723 (extract_component): Add phiarg_p argument. Assert that returned
27724 SSA_NAME has non-NULL SSA_NAME_DEF_STMT unless phiarg_p is true.
27725 (update_phi_components): Partly rewrite to use loop over real/imag
27726 components instead of code duplication. If extract_component returns
27727 SSA_NAME with NULL SSA_NAME_DEF_STMT, store SSA_NAME_VAR or
27728 create_tmp_reg into the PHI node instead, and mention the phi triplet
27729 in phis_to_revisit.
27730 (tree_lower_complex): Walk bbs in rpo order. Adjust phis recorded
27731 in phis_to_revisit at the end.
27733 2016-01-14 Richard Biener <rguenther@suse.de>
27735 PR tree-optimization/68060
27736 * tree-vect-loop.c (vect_is_simple_reduction): Check the
27737 outer loop reduction is only used in the inner loop before
27738 detecting a double reduction.
27740 2016-01-14 Jakub Jelinek <jakub@redhat.com>
27743 * combine.c (expand_field_assignment): Punt if compute_mode is
27744 unsupported scalar mode.
27746 2016-01-14 Richard Biener <rguenther@suse.de>
27748 PR tree-optimization/66856
27749 * tree-vect-slp.c (vect_build_slp_tree): Refactor to build
27750 SLP node only if it built successfully.
27751 (vect_analyze_slp_instance): Adjust.
27753 2016-01-14 Jeff Law <law@redhat.com>
27755 PR tree-optimization/69270
27756 * tree-ssa-dom.c (ssa_name_has_boolean_range): New function.
27757 (record_edge_info): Use it. Convert boolean_{true,false}_node
27758 to the type of op0.
27760 2016-01-13 Jan Hubicka <hubicka@ucw.cz>
27763 * ipa-polymorphic-call.c (inlined_polymorphic_ctor_dtor_block_p):
27764 use block_ultimate_origin
27765 (noncall-stmt_may_be_vtbl_ptr_store): Likewise.
27767 2016-01-13 Sandra Loosemore <sandra@codesourcery.com>
27769 * doc/invoke.texi (Submodel Options): Rename section to
27770 "Machine-Dependent Options" to better reflect its content.
27771 Rewrite introductory text to remove archaic CPU names.
27774 2016-01-13 Sandra Loosemore <sandra@codesourcery.com>
27776 * doc/invoke.texi (Code Gen Options): Move section up in file,
27777 before target-specific options. Update menu and option summary
27778 to reflect the new section ordering.
27780 2016-01-13 Jonathan Wakely <jwakely@redhat.com>
27782 * doc/invoke.texi (C Dialect Options): Adjust -std default for C++.
27783 (C++ Dialect Options): Add cross-reference to -std option.
27784 * doc/standards.texi (C++ Language): Document C++14 support.
27786 2016-01-13 Michael Meissner <meissner@linux.vnet.ibm.com>
27788 * config/rs6000/rs6000-builtin.def (BU_FLOAT128_2): Add support
27789 for pack/unpack functions for __ibm128.
27790 (PACK_IF): Likewise.
27791 (UNPACK_IF): Likewise.
27793 * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
27794 support for __ibm128 pack/unpack functions.
27795 (rs6000_invalid_builtin): Likewise.
27796 (rs6000_init_builtins): Likewise.
27797 (rs6000_opt_masks): Likewise.
27799 * config/rs6000/rs6000.h (MASK_FLOAT128): Add short name.
27800 (RS6000_BTM_FLOAT128): Add support for __ibm128 pack/unpack
27802 (RS6000_BTM_COMMON): Likewise.
27804 * config/rs6000/rs6000.md (f128_vsx): New mode attribute.
27805 (unpack<mode>): Use FMOVE128_FPR iterator instead of FMOVE128, to
27806 disallow __builtin_{pack,unpack}_longdouble if long double is IEEE
27807 128-bit floating point. Add support for the double values to be
27808 in Altivec registers for TF/IF packing and unpacking, but restrict
27809 TD packing sub-fields to be FPR registers. Don't allow overlapped
27810 register support for packing. Allow pack inputs to be memory
27811 locations. Don't build generator functions for unpack<mode>_dm
27812 and unpack<mode>_nodm.
27813 (unpack<mode>_dm): Likewise.
27814 (unpack<mode>_nodm): Likewise.
27815 (pack<mode>): Likewise.
27817 * config/rs6000/rs6000-builtin.def (__builtin_pack_ibm128): Add
27818 built-in functions to pack/unpack explicit __ibm128 values.
27819 (__builtin_unpack_ibm128): Likewise.
27821 * doc/extend.texi (PowerPC Built-in Functions): Document
27822 __builtin_pack_ibm128 and __builtin_unpack_ibm128.
27824 2016-01-13 Bernd Schmidt <bschmidt@redhat.com>
27827 * c-common.c (check_function_nonnull): Remove unnecessary declaration.
27828 Add new arg loc and pass it down as context.
27829 (check_nonnull_arg): Don't mark ctx arg as unused. Use it as a pointer
27830 to the location to use for the warning.
27831 (check_function_arguments): New arg loc. All callers changed. Pass
27832 it to check_function_nonnull.
27833 * c-common.h (check_function_arguments): Adjust declaration.
27835 2016-01-13 Jakub Jelinek <jakub@redhat.com>
27837 PR tree-optimization/69156
27838 * gimple.c (validate_type): Removed.
27839 (gimple_builtin_call_types_compatible_p): Use
27840 useless_type_conversion_p instead of validate_type.
27841 * value-prof.c (gimple_stringop_fixed_value): Fold
27842 icall_size to correct type.
27844 2016-01-13 Jonathan Wakely <jwakely@redhat.com>
27846 * doc/extend.texi (__atomic Builtins): Clarify compare_exchange
27849 2016-01-13 Richard Henderson <rth@redhat.com>
27852 * target.def (builtin_tm_load, builtin_tm_store): Remove.
27853 * config/i386/i386.c (ix86_builtin_tm_load): Remove.
27854 (ix86_builtin_tm_store): Remove.
27855 (TARGET_VECTORIZE_BUILTIN_TM_LOAD): Remove.
27856 (TARGET_VECTORIZE_BUILTIN_TM_STORE): Remove.
27857 * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_TM_LOAD): Remove.
27858 (TARGET_VECTORIZE_BUILTIN_TM_STORE): Remove.
27859 * doc/tm.texi: Rebuild.
27861 * gtm-builtins.def (BUILT_IN_TM_MEMCPY_RNWT): New.
27862 (BUILT_IN_TM_MEMCPY_RTWN): New.
27863 * trans-mem.c (tm_log_emit_stmt): Rearrange code for better
27864 fallback from vector to integer helpers.
27865 (build_tm_load): Handle vector types directly, instead of
27867 (build_tm_store): Likewise.
27868 (expand_assign_tm): Prepare for register types not handled by
27869 the above. Copy them to memory and use memcpy.
27870 * tree.c (tm_define_builtin): New.
27871 (find_tm_vector_type): New.
27872 (build_tm_vector_builtins): New.
27873 (build_common_builtin_nodes): Call it.
27875 2016-01-13 Uros Bizjak <ubizjak@gmail.com>
27877 * config/i386/i386.h (TARGET_FLT_EVAL_METHOD): Return -1 for
27878 TARGET_SSE_MATH without TARGET_SSE2. Rewrite.
27880 2016-01-13 Tom de Vries <tom@codesourcery.com>
27882 PR tree-optimization/69169
27883 * tree-ssa-structalias.c (create_variable_info_for_1): Add and handle
27884 handled_struct_type param.
27885 (create_variable_info_for, intra_create_variable_infos): Call
27886 create_variable_info_for_1 with extra arg.
27888 2016-01-13 Yvan Roux <yvan.roux@linaro.org>
27890 * config/arm/arm-arches.def: Remove spurious whitespace in "armv8.1-a"
27891 and "armv8.1-a+crc" entries.
27893 2016-01-13 Alexander Fomin <alexander.fomin@intel.com>
27896 * config/i386/sse.md (define_expand "avx512pf_gatherpf<mode>sf"):
27897 Change first operand predicate from register_or_constm1_operand
27898 to register_operand.
27899 (define_expand "avx512pf_gatherpf<mode>df"): Likewise.
27900 (define_expand "avx512pf_scatterpf<mode>sf"): Likewise.
27901 (define_expand "avx512pf_scatterpf<mode>df"): Likewise.
27902 (define_insn "*avx512pf_gatherpf<mode>sf"): Remove.
27903 (define_insn "*avx512pf_gatherpf<mode>df"): Likewise.
27904 (define_insn "*avx512pf_scatterpf<mode>sf"): Likewise.
27905 (define_insn "*avx512pf_scatterpf<mode>df"): Likewise.
27906 * config/i386/i386.c (ix86_expand_builtin): Remove first operand
27907 comparison with constm1_rtx from vec_prefetch_gen part.
27909 2016-01-13 Richard Biener <rguenther@suse.de>
27911 PR tree-optimization/69013
27912 * tree-ssa-uninit.c (prune_uninit_phi_opnds_in_unrealizable_paths):
27913 Exchange assert for a test.
27915 2016-01-13 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
27918 * config/s390/s390.md (bswaphi splitter): Use simplify_gen_subreg.
27920 2016-01-13 Richard Biener <rguenther@suse.de>
27922 PR tree-optimization/69242
27923 * tree-ssa-sccvn.c (visit_reference_op_load): Replace bogus
27924 assert with a check.
27926 2016-01-13 Richard Biener <rguenther@suse.de>
27928 PR tree-optimization/69186
27929 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
27930 Properly guard vect_update_misalignment_for_peel call.
27932 2016-01-12 Jeff Law <law@redhat.com>
27934 PR tree-optimization/pr67755
27935 * tree-ssa-threadupdate.c (struct ssa_local_info_t): Add new field
27936 "need_profile_correction".
27937 (thread_block_1): Initialize new field to false by default. If we
27938 have multiple thread paths through a common joiner to different
27939 final targets, then set new field to true.
27940 (compute_path_counts): Only do count adjustment when it's really
27943 2016-01-12 Sandra Loosemore <sandra@codesourcery.com>
27945 * doc/invoke.texi (Spec Files): Move section down in file, past
27946 all command-line option descriptions.
27948 2016-01-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
27950 PR middle-end/54809
27951 * doc/gty.texi: Remove documentation of mark_hook.
27952 * gengtype.c (struct write_types_data): Remove code to support
27953 mark_hook attribute.
27954 (walk_type): Likewise.
27955 (write_func_for_structure): Likewise.
27957 2016-01-12 Sandra Loosemore <sandra@codesourcery.com>
27959 * doc/invoke.texi (Option Summary) Move -no-canonical-prefixes to
27960 Directory Options, and -specs= to Overall Options.
27961 (Overall Options): Adjust similarly. Reorder to group related
27962 options together. Make -specs= cross-reference the spec file details.
27963 (Directory Options): Adjust similarly.
27965 2016-01-12 Jeff Law <law@redhat.com>
27967 * tree-ssa-threadupdate.c: Various whitespace and typo fixes.
27969 2016-01-12 Olivier Hainque <hainque@adacore.com>
27971 * gcc.c (spec_undefvar_allowed): New global.
27972 (process_command): Set to true when running for --version or --help,
27974 (getenv_spec_function): When the variable is not defined, use the
27975 variable name as the variable value if we're allowed not to issue
27978 2016-01-12 Bin Cheng <bin.cheng@arm.com>
27980 PR tree-optimization/68911
27981 * tree-vrp.c (adjust_range_with_scev): Check overflow in range
27982 information computed for expression "init + nit * step".
27984 2016-01-12 Sandra Loosemore <sandra@codesourcery.com>
27986 * doc/invoke.texi (Invoking GCC): Copy-edit. Incorporate information
27987 about name of GCC executable. Remove deleted node from menu.
27988 (Directory Options) <-B>: Remove cross-reference to deleted node.
27989 (Target Options): Delete section.
27991 2016-01-12 Christian Bruel <christian.bruel@st.com>
27994 * config/arm/arm-c.c (arm_pragma_target_parse): Set NODE_CONDITIONAL
27995 for __ARM_NEON_FP, __ARM_FP, _ARM_FEATURE_LDREX.
27997 2016-01-12 Jakub Jelinek <jakub@redhat.com>
28000 * config/i386/i386.c (ix86_expand_special_args_builtin): Ensure
28001 aligned_mem is properly set for AVX512-VL floating point masked
28005 * ifcvt.c (cond_exec_process_if_block): When removing the last
28006 insn from then_bb, remove also any possible barriers that follow it.
28008 2016-01-12 H.J. Lu <hongjiu.lu@intel.com>
28012 * config/i386/iamcu.h (SIZE_TYPE): New macro.
28013 (PTRDIFF_TYPE): Likewise.
28014 (WCHAR_TYPE): Likewise.
28015 (WCHAR_TYPE_SIZE): Likewise.
28016 (STDINT_LONG32): Likewise.
28018 2016-01-12 Richard Biener <rguenther@suse.de>
28020 PR tree-optimization/69053
28021 * tree-vect-loop.c (get_initial_def_for_reduction): Properly
28022 convert initial value for cond reductions.
28024 2016-01-12 Richard Biener <rguenther@suse.de>
28026 PR tree-optimization/69007
28027 * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Move
28028 widen_sum after dot_prod and sad.
28030 2016-01-12 Richard Biener <rguenther@suse.de>
28032 PR tree-optimization/69168
28033 * tree-vect-loop.c (vect_analyze_loop_2): Reset both main and
28034 pattern stmt SLP type.
28035 * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Patterns may
28036 end up unused so cope with that case.
28038 2016-01-12 Richard Biener <rguenther@suse.de>
28040 PR tree-optimization/69157
28041 * tree-vect-stmts.c (vectorizable_mask_load_store): Check
28042 stmts def type only during analyze phase.
28043 (vectorizable_call): Likewise.
28044 (vectorizable_simd_clone_call): Likewise.
28045 (vectorizable_conversion): Likewise.
28046 (vectorizable_assignment): Likewise.
28047 (vectorizable_shift): Likewise.
28048 (vectorizable_operation): Likewise.
28049 (vectorizable_store): Likewise.
28050 (vectorizable_load): Likewise.
28052 2016-01-12 Richard Biener <rguenther@suse.de>
28054 PR tree-optimization/69174
28055 * tree-vect-stmts.c (vect_mark_relevant): Remove excessive vertical
28057 (vectorizable_load): Properly compute the number of loads needed
28058 for permuted strided SLP loads and do not spuriously assign
28059 to SLP_TREE_VEC_STMTS.
28061 2016-01-12 Andris Pavenis <andris.pavenis@iki.fi>
28063 * config/i386/djgpp.h (PREFERRED_DEBUGGING_TYPE): Define to DWARF2
28064 (TARGET_ASM_OUTPUT_IDENT): Define to default_asm_output_ident_directive
28065 (MD_EXEC_PREFIX): Remove.
28066 (MD_STARTFILE_PREFIX) Removee.
28067 (FILE_NAME_ABSOLUTE_P): Remove.
28068 (CPP_SPEC): Do not read macros from sys/version.h.
28069 (LINK_COMMAND_SPEC): Remove.
28070 (LOCAL_INCLUDE_DIR): Remove.
28071 (TARGET_ASM_NAMED_SECTION): Define to i386_djgpp_asm_named_section
28072 (TARGET_OS_CPP_BUILTINS): Add DJGPP (non ISO only), __DJGPP, __DJGPP__, unix.
28073 (POST_LINK_SPEC): Define to invoke stubify after linker
28074 (LIBSTDCXX): Remove define
28075 (DBX_REGISTER_NUMBER): Define to svr4_dbx_register_map.
28076 (DEFAULT_PCC_STRUCT_RETURN): Define to 1.
28077 (SUBTARGET_OVERRIDE_OPTIONS): Remove warning about -mbnu2210.
28078 (SUBTARGET_OVERRIDE_OPTIONS): Ignore -fPIC and generate message.
28079 (SUBTARGET_OVERRIDE_OPTIONS): Default to DWARF2 debugging info.
28080 (IX86_MAYBE_NO_LIBGCC_TFMODE): Remove.
28081 (i386_djgpp_asm_named_section): Add propotype of new procedure
28083 * config/i386/xm-djgpp.h (NATIVE_SYSTEM_HEADER_DIR): Define.
28084 (MD_EXEC_PREFIX): Define (moved from config/i386/djgpp.h).
28085 (STANDARD_STARTFILE_PREFIX_1): Define (moved from MD_STARTFILE_PREFIX
28086 in config/i386/djgpp.h).
28087 (STANDARD_STARTFILE_PREFIX_2): Define identical to
28088 STANDARD_STARTFILE_PREFIX_1.
28089 (LOCAL_INCLUDE_DIR): Define (moved from config/i386/djgpp.h).
28090 (GCC_DRIVER_HOST_INITIALIZATION): Fix reporting fatal
28091 installation errors.
28092 (MAX_OFILE_ALIGNMENT): Define to 128.
28093 (HAVE_FTW_H): Undefine as DJGPP do not have nftw, but have ftw.h.
28095 * config/i386/djgpp.c: New file. Add implementation of
28096 i386_djgpp_asm_named_section.
28098 * config/i386/djgpp.opt: Remove obsolete option -mbnu210.
28100 * config/i386/t-djgpp: New file. Add djgpp.o to EXTRA_OBJS.
28101 Add rule for building djgpp.o.
28103 2016-01-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
28105 * config/rs6000/rs6000.c (v2df_reduction_p): New function.
28106 (rtx_is_swappable_p): Reductions are swappable.
28107 (insn_is_swappable_p): V2DF reductions are swappable.
28109 2016-01-11 John David Anglin <danglin@gcc.gnu.org>
28111 * config/pa/pa.c (pa_emit_move_sequence): Handle floating point
28112 reloads for other unsupported memory operands.
28114 2016-01-12 Kugan Vivekanandarajah <kuganv@linaro.org>
28115 Jim Wilson <jim.wilson@linaro.org>
28118 * config/arm/arm-builtins.c (arm_expand_neon_args): Call
28119 copy_to_mode_reg instead of force_reg.
28121 2016-01-11 H.J. Lu <hongjiu.lu@intel.com>
28124 * config/i386/i386.h (TARGET_FLT_EVAL_METHOD): Set to 2 only if
28125 TARGET_80387 is true.
28127 2016-01-11 Jakub Jelinek <jakub@redhat.com>
28130 * lra-eliminations.c (move_plus_up): Only move plus up
28131 if subreg of the constant can be simplified into constant
28132 and use the simplified subreg of the constant instead of
28133 the original constant.
28135 * fold-const.c (fold_convertible_p): Don't return true
28136 for conversion of VECTOR_TYPE to same sized integral type.
28137 (fold_convert_loc): Fix up formatting. Fold conversion of
28138 VECTOR_TYPE to same sized integral type using VIEW_CONVERT_EXPR
28139 instead of NOP_EXPR.
28141 PR tree-optimization/69214
28142 * tree-vrp.c (simplify_cond_using_ranges): Don't propagate
28143 innerop into a comparison if SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
28146 PR tree-optimization/69207
28147 * tree-vect-slp.c (vect_get_constant_vectors): For
28148 VECTOR_BOOLEAN_TYPE_P, assert op has integral type instead of
28149 fold_convertible_p to vector_type's element type, and always
28150 use VCE for non-VECTOR_BOOLEAN_TYPE_P.
28152 2016-01-11 Richard Biener <rguenther@suse.de>
28154 PR tree-optimization/69173
28155 * tree-vect-loop.c (vect_fixup_scalar_cycles_with_patterns): Only
28156 fixup the cycle if all stmts are in a pattern.
28158 2016-01-11 Uros Bizjak <ubizjak@gmail.com>
28160 PR middle-end/68999
28161 * alias.c (base_alias_check): Move check for addresses with
28162 alignment ANDs before the call for compare_base_decls.
28163 (memrefs_conflict_p): Return -1 for different decls
28164 that went through alignment adjustments.
28166 2016-01-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
28168 PR rtl-optimization/68796
28169 * config/aarch64/aarch64.md (*and<mode>_compare0): New pattern.
28170 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Handle HImode
28171 and QImode comparisons against zero with CC_NZmode.
28172 * config/aarch64/iterators.md (short_mask): New mode_attr.
28174 2016-01-11 H.J. Lu <hongjiu.lu@intel.com>
28176 * config/i386/sse.md (<avx512>_load<mode>_mask): Remove snprintf.
28177 (<avx512>_store<mode>_mask): Likewise.
28179 2016-01-11 Bernd Schmidt <bschmidt@redhat.com>
28180 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
28182 PR rtl-optimization/68841
28183 * ifcvt.c (struct noce_if_info): Add orig_x field.
28184 (bbs_ok_for_cmove_arith): Add to_rename parameter.
28185 Don't record conflicts on to_rename if it's present.
28186 Allow memory destinations in sets.
28187 (noce_try_cmove_arith): Call bbs_ok_for_cmove_arith even on simple
28188 blocks, passing orig_x to the checks.
28189 (noce_process_if_block): Set if_info->orig_x appropriately.
28191 2016-01-11 Tom de Vries <tom@codesourcery.com>
28193 PR tree-optimization/69069
28194 * tree-parloops.c (create_parallel_loop): Add missing phi args.
28196 2016-01-11 Yuri Rumyantsev <ysrumyan@gmail.com>
28198 PR rtl-optimization/68920
28199 * config/i386/i386.c (ix86_option_override_internal): Restrict number
28200 of conditional moves for RTL if-conversion to 1 for
28201 TARGET_ONE_IF_CONV_INSN.
28202 * config/i386/i386.h (TARGET_ONE_IF_CONV_INSN): New macros.
28203 * config/i386/x86-tune.def (X86_TUNE_ONE_IF_CONV_INSN): New macros.
28204 * params.def (PARAM_MAX_RTL_IF_CONVERSION_INSNS) : Introduce new
28205 parameter to restirct number of conditional moves for
28207 * doc/invoke.texi (max-rtl-if-conversion-insns): Document it.
28208 * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Limit number of
28211 2016-01-11 Alexandre Oliva <aoliva@redhat.com>
28214 * var-tracking.c (drop_overlapping_mem_locs): Operate on all
28215 onepart vars. Fix typo in comment. Fix reversed condition in
28217 (dataflow_set_remove_mem_locs): Operate on all onepart vars.
28220 * var-tracking.c (dump_onepart_variable_differences): New.
28221 (dataflow_set_different): If a detailed dump is requested,
28222 delay early returns and dump differences between onepart
28223 variables present before and after, and added variables.
28225 2016-01-11 Ilya Enkovich <enkovich.gnu@gmail.com>
28228 * expr.c (expand_expr_real_1): For boolean vector constants
28229 with a scalar mode use const_scalar_mask_from_tree.
28230 (const_scalar_mask_from_tree): New.
28231 * optabs.c (expand_vec_cond_mask_expr): Use mask mode
28232 assigned to a mask type to handle constants.
28234 2016-01-11 Martin Jambor <mjambor@suse.cz>
28237 * ipa-cp.c (estimate_local_effects): Do not clone for removal of
28238 useless parameters if we cannot change function signature.
28240 2016-01-11 Martin Jambor <mjambor@suse.cz>
28243 * cgraphclones.c (duplicate_thunk_for_node): Copy can_change_signature
28246 2016-01-11 Tom de Vries <tom@codesourcery.com>
28248 PR tree-optimization/69109
28249 * tree-parloops.c (try_transform_to_exit_first_loop_alt): Don't allow
28252 2016-01-11 Tom de Vries <tom@codesourcery.com>
28254 PR tree-optimization/69108
28255 * tree-parloops.c (gather_scalar_reductions): Handle case that outer phi
28256 res is not used in a phi.
28258 2016-01-11 Yury Gribov <y.gribov@samsung.com>
28261 * common.opt (frandom-seed): Fix parameter name.
28262 * doc/invoke.texi (frandom-seed): Ditto and describe parameter.
28264 2016-01-11 Tom de Vries <tom@codesourcery.com>
28266 PR tree-optimization/69058
28267 * tree-parloops.c (pass_parallelize_loops::execute): Return 0 if libgomp
28270 2016-01-11 Andrew Burgess <andrew.burgess@embecosm.com>
28272 * config/arc/arc.opt (mdiv-rem): Add period to the end.
28273 (mcode-density): Likewise.
28275 2016-01-10 Tom de Vries <tom@codesourcery.com>
28277 PR tree-optimization/69062
28278 * tree-parloops.c (loop_has_phi_with_address_arg): New function.
28279 (parallelize_loops): Don't paralelize loop that has phi with address
28282 2016-01-10 Tom de Vries <tom@codesourcery.com>
28284 PR tree-optimization/69039
28285 * tree-parloops.c (try_create_reduction_list): Only allow single exit
28288 2016-01-09 John David Anglin <danglin@gcc.gnu.org>
28290 PR middle-end/68743
28291 * match.pd: Require target has function_c99_misc before doing
28292 truncl(extend(x)) and trunc(extend(x)) -> extend(truncf(x)), etc.
28294 2016-01-09 Gerald Pfeifer <gerald@pfeifer.com>
28296 * configure.ac (isl_options_set_schedule_serialize_sccs): Also
28298 * configure: Regenerate.
28300 2016-01-09 Jakub Jelinek <jakub@redhat.com>
28302 PR middle-end/50865
28303 PR tree-optimization/69097
28304 * fold-const.h (expr_not_equal_to): New prototype.
28305 * fold-const.c: Include stringpool.h and tree-ssanames.h.
28306 (expr_not_equal_to): New function.
28307 * match.pd (X % -Y is the same as X % Y): Don't optimize
28308 unless X is known not to be equal to minimum or Y is known
28309 not to be equal to -1.
28310 * tree-vrp.c (simplify_div_or_mod_using_ranges): Add GSI argument.
28311 fold TRUNC_MOD_EXPR if the second argument is not a power of two.
28312 (simplify_stmt_using_ranges): Adjust caller.
28313 (vrp_finalize): Call set_value_range on SSA_NAMEs before calling
28314 substitute_and_fold.
28316 2016-01-09 Jan Hubicka <hubicka@ucw.cz>
28318 * ipa-icf.c (sem_item_optimizer::merge_classes): Do not ICE on VAR_DECL
28321 2016-01-08 Jakub Jelinek <jakub@redhat.com>
28323 PR tree-optimization/69167
28324 * gimple-fold.c (replace_stmt_with_simplification): Also punt if
28325 new SSA_NAME_OCCURS_IN_ABNORMAL_PHI SSA_NAMEs appear in operands of
28327 * gimple-match-head.c (maybe_push_res_to_seq): Likewise.
28329 2016-01-08 Alan Lawrence <alan.lawrence@arm.com>
28330 Richard Biener <rguenther@suse.de>
28332 PR tree-optimization/68707
28333 * tree-vect-slp.c (vect_analyze_slp_instance): Cancel permuted SLP
28334 instances that can be handled via vect_load_lanes.
28336 2016-01-08 Uros Bizjak <ubizjak@gmail.com>
28338 * symtab.c (symtab_node::equal_address_to): Return -1 instead of 2
28339 if we can't determine address equivalence.
28340 * alias.c (compare_base_decl): Update for changed return value of
28341 symtab_node::equal_address_to.
28343 2016-01-08 Jason Merrill <jason@redhat.com>
28347 * function.c (assign_temp): Guard against TREE_ADDRESSABLE types here.
28348 * expr.c (store_field): Not here.
28349 * tree-cfgcleanup.c (fixup_noreturn_call): Don't clear LHS of a
28350 call with TREE_ADDRESSABLE type.
28351 * tree-cfg.c (verify_gimple_call): Adjust.
28353 2016-01-08 Olivier Hainque <hainque@adacore.com>
28355 * config/vxworks.h (VXWORKS_LIBGCC_SPEC): Don't link shared RTPs with
28358 2016-01-08 Alan Lawrence <alan.lawrence@arm.com>
28360 * gcc.target/rs6000/paired.md (reduc_smax_v2sf): Rename to...
28361 (reduc_smax_scal_v2sf): ...here, make result SFmode, extract element.
28362 (reduc_smin_v2sf): Rename to...
28363 (reduc_smin_scal_v2sf): ...here, make result SFmode, extract element.
28364 (reduc_splus_v2sf): Rename to...
28365 (reduc_plus_scal_v2sf): ...here, make result SFmode, extract element.
28367 2016-01-08 Jakub Jelinek <jakub@redhat.com>
28369 PR tree-optimization/69162
28370 * gimplify.c (gimplify_va_arg_expr): Encode original type of
28371 valist argument in another argument.
28372 (gimplify_modify_expr): Adjust for the above change. Cleanup.
28373 * tree-stdarg.c (expand_ifn_va_arg_1): Use new 3rd argument
28374 to determine the va_list type, build a MEM_REF instead of
28375 build_fold_indirect_ref.
28377 PR tree-optimization/69172
28378 * gimple-fold.c (gimple_fold_builtin_memory_chk): Pass type to
28381 2016-01-08 Thomas Preud'homme <thomas.preudhomme@arm.com>
28383 PR tree-optimization/67781
28384 * tree-ssa-math-opts.c (find_bswap_or_nop): Zero out bytes in cmpxchg
28385 and cmpnop in two steps: first the ones not accessed in original
28386 gimple expression in a endian independent way and then the ones not
28387 accessed in the final result in an endian-specific way.
28389 2016-01-08 Jakub Jelinek <jakub@redhat.com>
28391 PR tree-optimization/69083
28392 * tree-vect-slp.c (vect_get_constant_vectors): For
28393 VECTOR_BOOLEAN_TYPE_P assert op is fold_convertible_p to vector_type's
28394 element type. If op is fold_convertible_p to vector_type's element
28395 type, use NOP_EXPR instead of VCE.
28397 2016-01-08 Segher Boessenkool <segher@kernel.crashing.org>
28399 PR rtl-optimization/67778
28400 PR rtl-optimization/68634
28401 PR rtl-optimization/68909
28402 * shrink-wrap.c (try_shrink_wrapping): Add comment. Don't pop
28403 block from the stack until done with it. Remove a superfluous
28404 bitmap set. Remove a superfluous bitmap test.
28406 2016-01-07 Martin Sebor <msebor@redhat.com>
28409 * doc/extend.texi (__atomic Builtins, __sync Builtins): Document
28410 constraint on the type of arguments.
28412 2016-01-07 Andreas Tobler <andreast@gcc.gnu.org>
28414 * config/arm/freebsd.h: Rename SUBTARGET_OVERRIDE_OPTIONS to
28415 SUBTARGET_OVERRIDE_INTERNAL_OPTIONS. Adjust to check
28416 unaligned_access on the gcc_options set.
28417 * config/arm/arm.c (arm_option_override_internal): Use
28418 SUBTARGET_OVERRIDE_INTERNAL_OPTIONS.
28420 2016-01-07 Uros Bizjak <ubizjak@gmail.com>
28423 * config/i386/i386.c (ix86_frame_pointer_required): Enable
28424 frame pointer for TARGET_64BIT_MS_ABI when stack is misaligned.
28426 2016-01-07 Uros Bizjak <ubizjak@gmail.com>
28429 2016-01-06 Uros Bizjak <ubizjak@gmail.com>
28432 * config/i386/i386.c (ix86_expand_prologue): Declare fs.sp_valid
28433 depending on frame_pointer_needed before remaining integer and SSE
28434 registers are saved.
28436 2016-01-07 Sandra Loosemore <sandra@codesourcery.com>
28439 * doc/extend.texi (Nvidia PDX Function Attributes): New section.
28441 2016-01-07 H.J. Lu <hongjiu.lu@intel.com>
28444 * config/i386/sse.md (<sse>_sqrt<mode>2<mask_name><round_name>):
28445 Use the "xBm" constraint.
28446 (float<sseintvecmodelower><mode>2<mask_name><round_name):
28448 (sse_cvtsi2ss<round_name>): Use round_nimm_scalar_predicate.
28449 (sse_cvtsi2ssq<round_name>): Likewise.
28450 (sse_cvtss2si<round_name>): Likewise.
28451 (sse_cvtss2siq<round_name>): Likewise.
28452 (sse2_cvtsi2sdq<round_name>): Likewise.
28453 (sse2_cvtsd2si<round_name>): Likewise.
28454 (sse2_cvtsd2siq<round_name>): Likewise.
28455 * config/i386/subst.md (round_nimm_scalar_predicate): New
28458 2015-12-15 Bernd Schmidt <bschmidt@redhat.com>
28460 PR middle-end/67639
28461 * varasm.c (make_decl_rtl): Mark invalid register vars as
28464 PR rtl-optimization/66206
28465 * bt-load.c (find_btr_use): Change first arg to be a pointer to an rtx.
28466 All callers changed.
28468 2016-01-07 Jakub Jelinek <jakub@redhat.com>
28470 PR tree-optimization/69141
28471 * tree-ssa-pre.c: Include langhooks.h.
28472 (eliminate_dom_walker::before_dom_children): Use
28473 lang_hooks.decl_printable_name instead of
28474 cgraph_node::get ()->name ().
28476 PR middle-end/68960
28477 * gimple-expr.c (copy_var_decl): If var has DECL_USER_ALIGN set, copy
28478 it and DECL_ALIGN too.
28480 2016-01-06 Robert Suchanek <robert.suchanek@imgtec.com>
28482 * config/mips/mips-ftypes.def: Sort to lexicographical order.
28484 2016-01-06 Uros Bizjak <ubizjak@gmail.com>
28487 * config/i386/i386.c (ix86_expand_prologue): Declare fs.sp_valid
28488 depending on frame_pointer_needed before remaining integer and SSE
28489 registers are saved.
28491 2015-01-06 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
28493 * config/rs6000/vsx.md (*p9_vecload_<mode>): Replace VSX_M
28494 mode iterator with VSX_M2.
28495 (*p9_vecstore_<mode>): Likewise.
28496 (*vsx_le_permute_<mode>): Restrict to !TARGET_P9_VECTOR.
28497 (*vsx_le_perm_load_<mode> for VSX_LE_128): Likewise.
28498 (*vsx_le_perm_store_<mode> for VSX_LE_128): Likewise.
28499 (define_split for VSX_LE128 stores): Likewise.
28500 (define_peephole2 for TImode LE swaps): Likewise.
28501 (define_split for VSX_LE128 post-reload stores): Likewise.
28503 2016-01-06 Marek Polacek <polacek@redhat.com>
28506 * convert.c (convert_to_integer_1): Adjust call to
28507 ubsan_instrument_float_cast. Use NULL_TREE instead of NULL.
28508 * ubsan.c (ubsan_instrument_float_cast): Drop the ARG parameter. Use
28509 EXPR instead of ARG.
28510 * ubsan.h (ubsan_instrument_float_cast): Adjust declaration.
28512 2016-01-05 Sandra Loosemore <sandra@codesourcery.com>
28515 * doc/extend.texi (RL78 Variable Attributes): New section.
28517 2016-01-05 Marek Polacek <polacek@redhat.com>
28520 * builtins.c (get_memmodel): Use expansion point location rather than
28521 the input location. Call warning_at rather than warning.
28522 (expand_builtin_atomic_compare_exchange): Likewise.
28523 (expand_builtin_atomic_load): Likewise.
28524 (expand_builtin_atomic_store): Likewise.
28525 (expand_builtin_atomic_clear): Likewise.
28527 2016-01-05 H.J. Lu <hongjiu.lu@intel.com>
28530 * config/i386/i386.c (ix86_expand_vector_logical_operator):
28531 Replace nonimmediate_operand with vector_operand.
28532 * config/i386/predicates.md (vector_operand): New predicate.
28533 (general_vector_operand): Replace nonimmediate_operand with
28535 * config/i386/sse.md: Replace nonimmediate_operand with
28536 vector_operand and m constraint with Bm constraint on SSE
28537 patterns with 16-byte memory operand.
28538 * config/i386/subst.md (round_nimm_predicate): Replace
28539 nonimmediate_operand with vector_operand.
28540 (round_saeonly_nimm_predicate): Likewise.
28541 (round_saeonly_nimm_scalar_predicate): New.
28543 2016-01-05 H.J. Lu <hongjiu.lu@intel.com>
28546 * config/i386/constraints.md (Bm): New constraint.
28547 * config/i386/predicates.md (vector_memory_operand): New
28549 * config/i386/sse.md: Replace xm with xBm in plusminus and
28550 any_logic patterns.
28552 2016-01-05 Sandra Loosemore <sandra@codesourcery.com>
28555 * doc/extend.texi (V850 Function Attributes): New section.
28556 (V850 Variable Attributes): New section.
28558 2016-01-05 Sandra Loosemore <sandra@codesourcery.com>
28561 * doc/extend.texi (MicroBlaze Function Attributes): Document
28562 interrupt_handler and fast_interrupt attributes.
28564 2016-01-05 Sergei Trofimovich <siarheit@google.com>
28567 * config/ia64/ia64.c (ia64_expand_load_address): Use gprel64
28568 for local symbolic operands.
28569 * config/ia64/predicates.md (local_symbolic_operand64): New
28572 2016-01-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
28574 PR rtl-optimization/68651
28575 * combine.c (combine_simplify_rtx): Canonicalize x + x into
28578 2016-01-05 Nathan Sidwell <nathan@acm.org>
28580 * alias.c (compare_base_decls): Use symtab_node::get.
28582 2016-01-05 Nick Clifton <nickc@redhat.com>
28585 * ira-costs.c (copy_cost): Initialise the t_icode field of the
28586 secondary_reload_info structure.
28589 * config/i386/cygming.h (MAKE_DECL_ONE_ONLY): Define to use weak
28590 decls if weak support is available.
28592 2016-01-04 Martin Sebor <msebor@redhat.com>
28594 * doc/invoke.texi (Warning Options): Document -Winvalid-memory-model.
28596 2016-01-04 Michael Meissner <meissner@linux.vnet.ibm.com>
28598 * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Add
28599 OPTION_MASK_P9_DFORM.
28601 * config/rs6000/constraints.md (wo constraint): New constraint for
28604 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Add support
28606 (rs6000_init_hard_regno_mode_ok): Likewise.
28608 * config/rs6000/rs6000.h (r6000_reg_class_enum): Add support for
28611 * config/rs6000/altivec.md (altivec_vperm_<mode>): Clean up vperm
28612 expanders not to have constraints. Add support for ISA 3.0 xxperm
28613 instruction. Add support for fusing xxlor with xxperm.
28614 (altivec_vperm_<mode>_internal): Likewise.
28615 (altivec_vperm_v8hiv16qi): Likewise.
28616 (altivec_vperm_<mode>v16q): Likewise.
28617 (altivec_vperm_<mode>_uns): Likewise.
28618 (vperm_v8hiv4si): Likewise.
28619 (vperm_v16qiv8hi): Likewise.
28621 * doc/md.texi (RS/6000 constraints): Document wo constraint.
28623 2016-01-04 Jakub Jelinek <jakub@redhat.com>
28625 Update copyright years.
28627 * gcc.c (process_command): Update copyright notice dates.
28628 * gcov-dump.c (print_version): Ditto.
28629 * gcov.c (print_version): Ditto.
28630 * gcov-tool.c (print_version): Ditto.
28631 * gengtype.c (create_file): Ditto.
28632 * doc/cpp.texi: Bump @copying's copyright year.
28633 * doc/cppinternals.texi: Ditto.
28634 * doc/gcc.texi: Ditto.
28635 * doc/gccint.texi: Ditto.
28636 * doc/gcov.texi: Ditto.
28637 * doc/install.texi: Ditto.
28638 * doc/invoke.texi: Ditto.
28640 2016-01-04 Eric Botcazou <ebotcazou@adacore.com>
28642 * config/arm/arm.c (aapcs_vfp_allocate_return_reg): Treat all integer
28643 modes larger than TImode as TImode if NEON is not enabled.
28645 2016-01-04 Eric Botcazou <ebotcazou@adacore.com>
28648 * config/sparc/sparc.h (FUNCTION_ARG_REGNO_P): Return true in 64-bit
28649 mode for %f0-%f31 only if TARGET_FPU.
28651 2016-01-04 Eric Botcazou <ebotcazou@adacore.com>
28654 * config/sparc/sparc.c (scan_record_type): Take into account subfields
28655 to compute the PACKED_P predicate.
28656 (function_arg_record_value): Minor tweaks.
28658 2016-01-04 Thomas Preud'homme <thomas.preudhomme@arm.com>
28660 * doc/install.texi (--with-multilib-list): Describe the meaning of the
28661 option for arm*-*-* targets.
28663 2016-01-03 Sandra Loosemore <sandra@codesourcery.com>
28665 * doc/extend.texi (Common Function Attributes): Move docs for
28666 MSP430-specific attributes to....
28667 (MSP430 Function Attributes): ...here. Delete the redundant
28668 entries and copy-edit the remaining text.
28669 (MSP430 Variable Attributes): Use uniform format for index
28670 entries and add a cross-reference to the corresponding function
28673 2016-01-03 Vladimír Čunát <vcunat@gmail.com>
28675 * doc/invoke.texi (RS/6000 and PowerPC Options): Fix
28677 (x86 Options): Likewise.
28679 2016-01-01 Sandra Loosemore <sandra@codesourcery.com>
28683 * extend.texi (Common Function Attributes) <no_stack_limit>: New.
28684 * invoke.texi (Code Gen Options) <-fno-stack-limit>: Add pointer
28685 to corresponding attribute.
28687 2016-01-01 Sandra Loosemore <sandra@codesourcery.com>
28689 * doc/extend.texi (Common Function Attributes) <noplt>: Move
28690 to correct alphabetization of table. Copy-edit and correct
28692 <stack_protect>: Likewise.
28693 <target_clones>: Likewise.
28695 * doc/invoke.texi (Optimize Options) <-fstack-protector-explicit>:
28696 Correct punctuation.
28697 (Code Gen Options) <-fno-plt>: Copy-edit.
28699 2016-01-01 Bernd Edlinger <bernd.edlinger@hotmail.de>
28702 * config/tilegx/tilegx.md (clzsi2): Don't create DI subregs of
28703 SI values. Explicitly convert SI to DI and vice-versa.
28705 2016-01-01 Jakub Jelinek <jakub@redhat.com>
28707 PR tree-optimization/69070
28708 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Only test
28709 REAL_VALUE_ISSIGNALING_NAN on arg0 if arg0 is a REAL_CST.
28712 * ubsan.c (ubsan_instrument_float_cast): Call
28713 initialize_sanitizer_builtins.
28716 * ifcvt.c (find_cond_trap): Give up if returnjump_p (jump).
28718 Copyright (C) 2016 Free Software Foundation, Inc.
28720 Copying and distribution of this file, with or without modification,
28721 are permitted in any medium without royalty provided the copyright
28722 notice and this notice are preserved.