visium-modes.def (CC_NOOV): Rename into...
[gcc.git] / gcc / ChangeLog
1 2016-10-11 Eric Botcazou <ebotcazou@adacore.com>
2
3 * config/visium/visium-modes.def (CC_NOOV): Rename into...
4 (CCNZ): ...this.
5 (CC_BTST): Rename into...
6 (CCC): ...this.
7 * config/visium/predicates.md (real_add_operand): New.
8 (visium_btst_operator): Rename into...
9 (visium_equality_comparison_operator): ...this.
10 (visium_noov_operator): Rename into...
11 (visium_nz_comparison_operator): ...this.
12 (visium_c_comparison_operator): New.
13 (visium_branch_operator): Adjust and deal with all CC modes.
14 * config/visium/visium.c (visium_adjust_cost): Adjust.
15 (visium_split_double_add): Use the *_set_carry patterns.
16 (visium_select_cc_mode): Add support for CCC mode and adjust.
17 (output_cbranch): Adjust and use the carry-based operators for
18 floating-point comparisons.
19 * config/visium/visium.md (flags_subst_arith): Adjust.
20 (addsi3_insn_set_carry): New instruction.
21 (subsi3_insn_set_carry): Likewise.
22 (negsi2_insn_set_carry): Likewise.
23 (btst): Adjust.
24 (cmp<mode>_sne): Likewise.
25 (cbranch<mode>4): Use ordered_comparison_operator.
26 (cbranch<mode>4_insn): Likewise.
27 (cbranchsi4_btst_insn): Adjust.
28
29 2016-10-11 Tom de Vries <tom@codesourcery.com>
30
31 PR middle-end/77558
32 * builtins.c (std_canonical_va_list_type): Remove RECORD_TYPE
33 special-casing.
34
35 2016-10-11 Eric Botcazou <ebotcazou@adacore.com>
36
37 * tree.h (build_complex_type): Add second parameter with default.
38 * tree.c (build_complex_type): Add NAMED second parameter and adjust
39 recursive call. Create a TYPE_DECL only if NAMED is true.
40 (build_common_tree_nodes): Pass true in calls to build_complex_type.
41
42 2016-10-11 Georg-Johann Lay <avr@gjlay.de>
43
44 New avr-passes.def to register AVR specific passes.
45
46 * config/avr/avr-passes.def: New file.
47 * config/avr/t-avr (PASSES_EXTRA): Add avr-passes.def.
48 * config/avr/avr-protos.h (gcc::context, rtl_opt_pass): Declare.
49 (make_avr_pass_recompute_note): New proto.
50 * config/avr/avr.c (make_avr_pass_recompute_notes): New function.
51 (avr_pass_recompute_notes): Use anonymous namespace.
52 (avr_register_passes): Remove function...
53 (avr_option_override): ...and its call.
54
55 2016-10-11 Robert Suchanek <robert.suchanek@imgtec.com>
56
57 * config/mips/mips-cpus.def: Replace PTF_AVOID_BRANCHLIKELY with
58 PTF_AVOID_BRANCHLIKELY_ALWAYS for generic architecture and with
59 PTF_AVOID_BRANCHLIKELY_SPEED for others.
60 (mips2, mips3, mips4): Add PTF_AVOID_BRANCHLIKELY_SIZE to tune
61 flags.
62 * config/mips/mips.c (mips_option_override): Enable the branch
63 likely depending on the tune flags and optimization level.
64 * config/mips/mips.h (PTF_AVOID_BRANCHLIKELY): Remove.
65 (PTF_AVOID_BRANCHLIKELY_SPEED): Define.
66 (PTF_AVOID_BRANCHLIKELY_SIZE): Likewise.
67 (PTF_AVOID_BRANCHLIKELY_ALWAYS): Likewise.
68
69 2016-10-11 Richard Biener <rguenther@suse.de>
70
71 * lto-streamer-out.c (collect_block_tree_leafs): New helper.
72 (output_function): Properly stream the whole block tree.
73 * lto-streamer-in.c (input_function): Likewise.
74
75 2016-10-11 Marek Polacek <polacek@redhat.com>
76
77 * Makefile.in (C_COMMON_OBJS): Add c-family/c-warn.o.
78
79 2016-10-11 Kugan Vivekanandarajah <kuganv@linaro.org>
80
81 * tree-vrp.c (evrp_dom_walker::try_add_new_range): New.
82 (evrp_dom_walker::before_dom_children): Infer and push new value
83 ranges for x in y < x.
84
85 2016-10-10 Joseph Myers <joseph@codesourcery.com>
86
87 PR target/77586
88 * config/ia64/ia64.c (ia64_libgcc_floating_mode_supported_p)
89 (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P): Remove.
90 * config/ia64/elf.h (IA64_NO_LIBGCC_TFMODE): Likewise.
91 * config/ia64/freebsd.h (IA64_NO_LIBGCC_TFMODE): Likewise.
92 * config/ia64/vms.h (IA64_NO_LIBGCC_XFMODE)
93 (IA64_NO_LIBGCC_TFMODE): Likewise.
94
95 2016-10-11 Kugan Vivekanandarajah <kuganv@linaro.org>
96
97 * tree-vrp.c (vrp_intersect_ranges_1): Allocate bitmap before
98 copying.
99
100 2016-10-10 Andreas Tobler <andreast@gcc.gnu.org>
101
102 * config.gcc: Add aarch64-*-freebsd* support.
103 * config.host: Likewise.
104 * config/aarch64/aarch64-freebsd.h: New file.
105 * config/aarch64/t-aarch64-freebsd: Ditto.
106
107 2016-10-10 Jeff Law <law@redhat.com>
108
109 PR tree-optimization/71947
110 * tree-ssa-dom.c (cprop_into_stmt): Avoid replacing A with B, then
111 B with A within a single statement.
112
113 2016-10-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
114
115 PR tree-optimization/77824
116 * gimple-ssa-strength-reduction.c (stmt_cost): Explicitly return
117 zero cost for copies.
118 (find_candidates_dom_walker::before_dom_children): Replace
119 MODIFY_EXPR with SSA_NAME.
120 (replace_mult_candidate): Likewise.
121 (replace_profitable_candidates): Likewise.
122
123 2016-10-10 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
124
125 * config/s390/s390.h: Wrap more macros args in brackets and fix
126
127 2016-10-10 Georg-Johann Lay <avr@gjlay.de>
128
129 * config/avr/gen-avr-mmcu-texi.c (string.h): Include.
130
131 2016-10-10 Andreas Schwab <schwab@suse.de>
132
133 PR target/77738
134 * config/ia64/ia64.md ("doloop_end"): Reject if mode of loop
135 pseudo is not DImode.
136
137 2016-10-10 Claudiu Zissulescu <claziss@synopsys.com>
138
139 * common/config/arc/arc-common.c (arc_option_optimization_table):
140 Remove compact casesi option.
141 * config/arc/arc.c (arc_override_options): Use compact casesi
142 option only for pre-ARCv2 cores.
143 * doc/invoke.texi (mcompact-casesi): Update text.
144
145 2016-10-09 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
146
147 * config/rs6000/rs6000.h (TARGET_EFFICIENT_OVERLAPPING_UNALIGNED):
148 Add macro to say we can efficiently handle overlapping unaligned
149 loads.
150 * config/rs6000/rs6000.c (expand_block_compare): Avoid generating
151 poor code for processors older than p8.
152
153 2016-10-09 Eric Botcazou <ebotcazou@adacore.com>
154
155 * gen-pass-instances.awk: Remove GNUism.
156
157 2016-10-09 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
158
159 * ipa-prop.c (ipcp_transform_function): Set fields m_vr and bits to
160 NULL of (*ipcp_transformations)][node->uid].
161
162 2016-10-09 John David Anglin <danglin@gcc.gnu.org>
163
164 * config/pa/pa.h (BIGGEST_ALIGNMENT): Adjust comment.
165 (MALLOC_ABI_ALIGNMENT): Define.
166
167 2016-10-09 Jakub Jelinek <jakub@redhat.com>
168
169 * tree-ssa.c (target_for_debug_bind, verify_phi_args,
170 ssa_undefined_value_p, maybe_optimize_var): Use VAR_P and/or
171 VAR_OR_FUNCTION_DECL_P macros.
172 * tree-chkp.c (chkp_register_var_initializer, chkp_make_static_bounds,
173 chkp_get_bounds_for_decl_addr, chkp_parse_array_and_component_ref,
174 chkp_find_bounds_1): Likewise.
175 * ipa-polymorphic-call.c (decl_maybe_in_construction_p): Likewise.
176 * hsa-gen.c (get_symbol_for_decl): Likewise.
177 * cgraphunit.c (check_global_declaration, analyze_functions,
178 handle_alias_pairs, thunk_adjust, cgraph_node::expand_thunk):
179 Likewise.
180 * gimple-fold.c (can_refer_decl_in_current_unit_p,
181 canonicalize_constructor_val, gimple_get_virt_method_for_vtable):
182 Likewise.
183 * tree.c (set_decl_section_name, copy_node_stat,
184 need_assembler_name_p, free_lang_data_in_decl, find_decls_types_r,
185 merge_dllimport_decl_attributes, handle_dll_attribute,
186 decl_init_priority_insert, auto_var_in_fn_p, array_at_struct_end_p,
187 verify_type): Likewise.
188 * gimple-ssa-isolate-paths.c (find_implicit_erroneous_behavior,
189 find_explicit_erroneous_behavior): Likewise.
190 * sdbout.c (sdbout_toplevel_data, sdbout_late_global_decl): Likewise.
191 * ipa.c (process_references): Likewise.
192 * tree-chkp-opt.c (chkp_get_check_result): Likewise.
193 * varasm.c (get_block_for_decl, use_blocks_for_decl_p, make_decl_rtl,
194 notice_global_symbol, assemble_variable, mark_decl_referenced,
195 build_constant_desc, output_constant_def_contents, do_assemble_alias,
196 make_decl_one_only, default_section_type_flags,
197 categorize_decl_for_section, default_encode_section_info): Likewise.
198 * trans-mem.c (requires_barrier): Likewise.
199 * gimple-expr.c (mark_addressable): Likewise.
200 * cfgexpand.c (add_scope_conflicts_1, expand_one_var,
201 expand_used_vars_for_block, clear_tree_used, stack_protect_decl_p,
202 expand_debug_expr): Likewise.
203 * tree-dump.c (dequeue_and_dump): Likewise.
204 * ubsan.c (instrument_bool_enum_load): Likewise.
205 * tree-pretty-print.c (print_declaration): Likewise.
206 * simplify-rtx.c (delegitimize_mem_from_attrs): Likewise.
207 * tree-ssa-uninit.c (warn_uninitialized_vars): Likewise.
208 * asan.c (asan_protect_global, instrument_derefs): Likewise.
209 * tree-into-ssa.c (rewrite_stmt, maybe_register_def,
210 pass_build_ssa::execute): Likewise.
211 * var-tracking.c (var_debug_decl, track_expr_p): Likewise.
212 * tree-ssa-loop-ivopts.c (force_expr_to_var_cost, split_address_cost):
213 Likewise.
214 * ipa-split.c (test_nonssa_use, consider_split, mark_nonssa_use):
215 Likewise.
216 * tree-inline.c (insert_debug_decl_map, remap_ssa_name,
217 can_be_nonlocal, remap_decls, copy_debug_stmt,
218 initialize_inlined_parameters, add_local_variables,
219 reset_debug_binding, replace_locals_op): Likewise.
220 * dse.c (can_escape): Likewise.
221 * ipa-devirt.c (compare_virtual_tables, referenced_from_vtable_p):
222 Likewise.
223 * tree-diagnostic.c (default_tree_printer): Likewise.
224 * tree-streamer-in.c (unpack_ts_decl_common_value_fields,
225 unpack_ts_decl_with_vis_value_fields,
226 lto_input_ts_decl_common_tree_pointers): Likewise.
227 * builtins.c (builtin_save_expr, fold_builtin_expect,
228 readonly_data_expr): Likewise.
229 * tree-ssa-structalias.c (new_var_info, get_constraint_for_ssa_var,
230 create_variable_info_for, set_uids_in_ptset, visit_loadstore):
231 Likewise.
232 * gimple-streamer-out.c (output_gimple_stmt): Likewise.
233 * gimplify.c (force_constant_size, gimplify_bind_expr,
234 gimplify_decl_expr, gimplify_var_or_parm_decl,
235 gimplify_compound_lval, gimplify_init_constructor,
236 gimplify_modify_expr, gimplify_asm_expr, gimplify_oacc_declare,
237 gimplify_type_sizes): Likewise.
238 * cgraphbuild.c (record_reference, record_type_list, mark_address,
239 mark_load, mark_store, pass_build_cgraph_edges::execute): Likewise.
240 * tree-ssa-live.c (mark_all_vars_used_1, remove_unused_scope_block_p,
241 remove_unused_locals): Likewise.
242 * tree-ssa-alias.c (ptr_deref_may_alias_decl_p, ptrs_compare_unequal,
243 ref_maybe_used_by_call_p_1, call_may_clobber_ref_p_1): Likewise.
244 * function.c (instantiate_expr, instantiate_decls_1,
245 setjmp_vars_warning, add_local_decl): Likewise.
246 * alias.c (ao_ref_from_mem, get_alias_set, compare_base_symbol_refs):
247 Likewise.
248 * tree-stdarg.c (find_va_list_reference, va_list_counter_struct_op,
249 va_list_ptr_read, va_list_ptr_write, check_all_va_list_escapes,
250 optimize_va_list_gpr_fpr_size): Likewise.
251 * tree-nrv.c (pass_nrv::execute): Likewise.
252 * tsan.c (instrument_expr): Likewise.
253 * tree-ssa-dce.c (remove_dead_stmt): Likewise.
254 * vtable-verify.c (verify_bb_vtables): Likewise.
255 * tree-dfa.c (ssa_default_def, set_ssa_default_def,
256 get_ref_base_and_extent): Likewise.
257 * toplev.c (wrapup_global_declaration_1, wrapup_global_declaration_2):
258 Likewise.
259 * tree-sra.c (static bool constant_decl_p, find_var_candidates,
260 analyze_all_variable_accesses): Likewise.
261 * tree-nested.c (get_nonlocal_debug_decl,
262 convert_nonlocal_omp_clauses, note_nonlocal_vla_type,
263 note_nonlocal_block_vlas, convert_nonlocal_reference_stmt,
264 get_local_debug_decl, convert_local_omp_clauses,
265 convert_local_reference_stmt, nesting_copy_decl, remap_vla_decls):
266 Likewise.
267 * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Likewise.
268 * stmt.c (decl_overlaps_hard_reg_set_p): Likewise.
269 * dbxout.c (dbxout_late_global_decl, dbxout_type_fields,
270 dbxout_symbol, dbxout_common_check): Likewise.
271 * expr.c (expand_assignment, expand_expr_real_2, expand_expr_real_1,
272 string_constant): Likewise.
273 * hsa.c (hsa_get_declaration_name): Likewise.
274 * passes.c (rest_of_decl_compilation): Likewise.
275 * tree-ssanames.c (make_ssa_name_fn): Likewise.
276 * tree-streamer-out.c (pack_ts_decl_common_value_fields,
277 pack_ts_decl_with_vis_value_fields,
278 write_ts_decl_common_tree_pointers): Likewise.
279 * stor-layout.c (place_field): Likewise.
280 * symtab.c (symtab_node::maybe_create_reference,
281 symtab_node::verify_base, symtab_node::make_decl_local,
282 symtab_node::copy_visibility_from,
283 symtab_node::can_increase_alignment_p): Likewise.
284 * dwarf2out.c (add_var_loc_to_decl, tls_mem_loc_descriptor,
285 decl_by_reference_p, reference_to_unused, rtl_for_decl_location,
286 fortran_common, add_location_or_const_value_attribute,
287 add_scalar_info, add_linkage_name, set_block_abstract_flags,
288 local_function_static, gen_variable_die, dwarf2out_late_global_decl,
289 optimize_one_addr_into_implicit_ptr,
290 optimize_location_into_implicit_ptr): Likewise.
291 * gimple-low.c (record_vars_into): Likewise.
292 * ipa-visibility.c (update_vtable_references): Likewise.
293 * tree-ssa-address.c (fixed_address_object_p, copy_ref_info):
294 Likewise.
295 * lto-streamer-out.c (tree_is_indexable, get_symbol_initial_value,
296 DFS::DFS_write_tree_body, write_symbol): Likewise.
297 * langhooks.c (lhd_warn_unused_global_decl,
298 lhd_set_decl_assembler_name): Likewise.
299 * attribs.c (decl_attributes): Likewise.
300 * except.c (output_ttype): Likewise.
301 * varpool.c (varpool_node::get_create, ctor_for_folding,
302 varpool_node::assemble_decl, varpool_node::create_alias): Likewise.
303 * fold-const.c (fold_unary_loc): Likewise.
304 * ipa-prop.c (ipa_compute_jump_functions_for_edge,
305 ipa_find_agg_cst_from_init): Likewise.
306 * omp-low.c (expand_omp_regimplify_p, expand_omp_taskreg,
307 expand_omp_target, lower_omp_regimplify_p,
308 grid_reg_assignment_to_local_var_p, grid_remap_prebody_decls,
309 find_link_var_op): Likewise.
310 * tree-chrec.c (chrec_contains_symbols): Likewise.
311 * tree-cfg.c (verify_address, verify_expr, verify_expr_location_1,
312 gimple_duplicate_bb, move_stmt_op, replace_block_vars_by_duplicates,
313 execute_fixup_cfg): Likewise.
314
315 PR tree-optimization/77901
316 * tree-ssa-reassoc.c (optimize_range_tests_var_bound): Only optimize
317 if ranges[i].exp is SSA_NAME when looking for >= and only when
318 ranges[i].exp is NULL or SSA_NAME when looking for the other
319 comparison.
320
321 2016-10-09 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
322
323 * ipa-cp.c (ipcp_alignment_lattice): Remove.
324 (ipcp_param_lattices): Remove field alignment.
325 (print_all_lattices): Remove call to ipcp_alignment_lattice::print.
326 (set_all_contains_variable): Remove call to
327 ipcp_alignment_lattice::set_to_bottom.
328 (initialize_node_lattices): Likewise.
329 (propagate_alignment_accross_jump_function): Remove.
330 (propagate_constants_accross_call): Remove call to
331 propagate_alignment_accross_jump_function.
332 (ipcp_store_alignment_results): Remove.
333 (ipcp_driver): Remove call to ipcp_store_alignment_results.
334 (propagate_bits_accross_jump_function): Handle ancestor jump function.
335 * ipa-prop.c (ipa_print_node_jump_functions_for_edge): Remove
336 pretty-printing of alignment jump function.
337 (ipa_set_jf_unknown): Remove assignment to jfunc->alignment.known.
338 (ipa_compute_jump_functions_for_edge): Adjust ipa_bits jump function for
339 alignments and remove computing ipa_alignment jump function.
340 (ipa_node_params_t::duplicate): Remove copying of src_trans->alignments.
341 (ipa_write_jump_functions): Remove streaming for ipa_alignment.
342 (ipa_read_jump_function): Remove reading of ipa_alignment.
343 (write_ipcp_transformation_info): Remove streaming for alignment
344 propagation summary.
345 (read_ipcp_transformation_info): Remove reading of alignment
346 propagation summary.
347 (ipcp_update_alignments): Remove.
348 (ipcp_update_bits): Adjust to set alignment for parameters of pointer
349 type.
350 (ipcp_transform_function): Remove call to ipcp_update_alignments()
351 and remove assignment to (*ipcp_transformations)[node->uid].alignments.
352 * ipa-prop.h (ipa_alignment): Remove.
353 (ipa_jump_func): Remove field alignment.
354 (ipcp_transformation_summary): Remove field alignments.
355 * doc/invoke.texi: Mark fipa-cp-alignment as obsolete.
356 * opts.c (default_options_table): Remove entry for fipa-cp-alignment.
357 (enable_fdo_optimizations): Remove checking for fipa-cp-alignment.
358
359 2016-10-08 Eric Botcazou <ebotcazou@adacore.com>
360
361 * config/sparc/sparc.h (FIXED_REGISTERS): Add %icc.
362
363 * config/visium/visium.c (visium_expand_int_cstore): Revert latest
364 change.
365 (visium_expand_fp_cstore): Likewise.
366
367 2016-10-08 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
368
369 * diagnostic-core.h (warning_at_rich_loc_n): Declare.
370 * diagnostic.c (warning_at_rich_loc_n): New function.
371 (diagnostic_n_impl_richloc): Likewise.
372 (diagnostic_n_impl): Move most of the function to
373 diagnostic_n_impl_richloc and call it.
374
375 2016-10-08 Jakub Jelinek <jakub@redhat.com>
376
377 * gen-pass-instances.awk: Rewritten.
378 * Makefile.in (pass-instances.def): Depend on $(PASSES_EXTRA), pass
379 $(PASSES_EXTRA) after passes.def to the script.
380 * config/i386/t-i386 (PASSES_EXTRA): Add i386-passes.def.
381 * config/i386/i386-passes.def: New file.
382 * config/i386/i386-protos.h (make_pass_insert_vzeroupper,
383 make_pass_stv): Declare.
384 * config/i386/i386.c (pass_stv::pass_stv): Initialize timode_p to
385 false.
386 (pass_stv::gate): Depending on timode_p member require TARGET_64BIT
387 or !TARGET_64BIT.
388 (pass_stv::clone, pass_stv::set_pass_param): New methods.
389 (pass_stv::timode_p): New non-static data member.
390 (ix86_option_override): Don't register passes here.
391
392 * doc/invoke.texi: Document accepting Else, fallthrough.
393
394 * doc/invoke.texi (-Wimplicit-fallthrough): Document FALLTHRU comment
395 style changes.
396
397 * doc/invoke.texi (-Wimplicit-fallthrough): Document the accepted
398 FALLTHRU comment styles.
399
400 2016-10-07 Andrew Pinski <apinski@cavium.com>
401
402 * config/aarch64/aarch64-arches.def (AARCH64_ARCH): #undef at the end.
403 * config/aarch64/aarch64-cores.def (AARCH64_CORE): Likewise.
404 * config/aarch64/aarch64-fusion-pairs.def (AARCH64_FUSION_PAIR): Likewise.
405 * config/aarch64/aarch64-option-extensions.def (AARCH64_OPT_EXTENSION): Likewise.
406 * config/aarch64/aarch64-tuning-flags.def (AARCH64_EXTRA_TUNING_OPTION): Likewise.
407 * config/aarch64/aarch64-opts.h (AARCH64_CORE): Don't #undef here.
408 (AARCH64_ARCH): Likewise.
409 * common/config/aarch64/aarch64-common.c (AARCH64_OPT_EXTENSION): Likewise.
410 (AARCH64_CORE): Likewise.
411 (AARCH64_ARCH): Likewise.
412 * config/aarch64/aarch64-protos.h (AARCH64_FUSION_PAIR): Likewise.
413 (AARCH64_EXTRA_TUNING_OPTION): Likewise.
414 * config/aarch64/aarch64.c (AARCH64_FUION_PAIR): Likewise.
415 (AARCH64_EXTRA_TUNING_OPTION): Likewise.
416 (AARCH64_ARCH): Likewise.
417 (AARCH64_CORE): Likewise.
418 * config/aarch64/aarch64.h (AARCH64_CORE): Likewise.
419 * config/aarch64/driver-aarch64.c (AARCH64_OPT_EXTENSION): Likewise.
420 (AARCH64_CORE): Likewise.
421 (AARCH64_ARCH): Likewise.
422
423 2016-10-06 Michael Meissner <meissner@linux.vnet.ibm.com>
424
425 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Split
426 -mfloat128 into -mfloat128-type that enables the IEEE 128-bit
427 floating point type infrastructre, and -mfloat128 that enables the
428 keyword. Define __FLOAT128__ if -mfloat128, and __FLOAT128_TYPE__
429 if -mfloat128-type. Define __ibm128 to be long double by default.
430 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print whether
431 the IEEE 128-bit floating point type infrastructure should
432 automatically be enabled.
433 (rs6000_init_hard_regno_mode_ok): Switch to use -mfloat128-type
434 instead of -mfloat128 to enable KFmode.
435 (rs6000_option_override_internal): Split the option -mfloat128
436 into -mfloat128-type and -mfloat128. On Linux PowerPC 64-bit
437 systems, automatically set -mfloat128-type, but don't enable it on
438 other operating systems. Move setting the long double size and
439 IEEE quad support before the IEEE 128-bit floating point changes.
440 (rs6000_init_builtins): Do not create a unique type for __ibm128
441 if long double is IBM extended double, instead rely on __ibm128
442 being defined as 'long double'. If -mfloat128-type and not
443 -mfloat128, create the KFmode type with an undocumented __ieee128
444 keyword.
445 (rs6000_init_libfuncs): Use -mfloat128-type instead of
446 -mfloat128 for tests about the types, but keep tests for
447 -mfloat128 to enable the keyword support.
448 (rs6000_complex_function_value): Likewise.
449 (rs6000_scalar_mode_supported_p): Likewise.
450 (rs6000_floatn_mode): Likewise.
451 (rs6000_c_mode_for_suffix): Likewise.
452 (rs6000_opt_masks): Add -mfloat128-type.
453 * config/rs6000/rs6000-cpus.def (POWERPC_MASKS): Add support for
454 -mfloat128-type being split from -mfloat128. Add
455 -mfloat128-hardware, which was missing.
456 * config/rs6000/rs6000.opt (-mfloat128): Split -mfloat128 into
457 -mfloat128 and -mfloat128-type:
458 (-mfloat128-type): Likewise.
459 * config/rs6000/linux64.h (TARGET_FLOAT128_ENABLE_TYPE): Define so
460 that 64-bit Linux systems with enable -mfloat128-type by default
461 on VSX systems.
462 * config/rs6000/rs6000.h (TARGET_FLOAT128_ENABLE_TYPE): Likewise.
463 (FLOAT128_VECTOR_P): Switch IEEE 128-bit floating points to use
464 -mfloat128-type instead of -mfloat128.
465 (FLOAT128_2REG_P): Likewise.
466 (MASK_FLOAT128_TYPE): Likewise.
467 (ALTIVEC_ARG_MAX_RETURN): Likewise.
468 (RS6000_BTM_FLOAT128): Likewise.
469 (TARGET_FLOAT128): Poison old identifiers.
470 (OPTION_MASK_FLOAT128): Likewise.
471 (MASK_FLOAT128): Likewise.
472 * config/rs6000/rs6000.md (FP): Likewise.
473 (FLOAT128): Likewise.
474 (fix_trunc<mode>di2): Likewise.
475 (fixuns_trunc<IEEE128:mode><SDI:mode>2): Likewise.
476 (floatdi<mode>2): Likewise.
477 (floatuns<SDI:mode><IEEE128:mode>2): Likewise.
478 (neg<mode>2, FLOAT128 iterator): Likewise.
479 (abs<mode>2, FLOAT128 iterator): Likewise.
480 (ieee_128bit_negative_zero): Likewise.
481 (ieee_128bit_vsx_neg<mode>2): Likewise.
482 (ieee_128bit_vsx_neg<mode>2_internal): Likewise.
483 (ieee_128bit_vsx_abs<mode>2): Likewise.
484 (ieee_128bit_vsx_abs<mode>2_internal): Likewise.
485 (ieee_128bit_vsx_nabs<mode>2): Likewise.
486 (ieee_128bit_vsx_nabs<mode>2_internal): Likewise.
487 (extendiftf2): Likewise.
488 (extendifkf2): Likewise.
489 (extendtfkf2): Likewise.
490 (trunciftf2): Likewise.
491 (truncifkf2): Likewise.
492 (trunckftf2): Likewise.
493 (trunctfif2): Likewise.
494 (extendkftf2): Likewise.
495 (trunctfkf2): Likewise.
496
497 2016-10-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
498
499 * simplify-rtx.c (simplify_immed_subreg): Zero-initialize tmp array
500 before merging in bytes to pass down to real_from_target.
501
502 2016-10-07 Richard Biener <rguenther@suse.de>
503
504 * tree-ssa-propagate.c (replace_phi_args_in): Remove no longer
505 required hack.
506 (substitute_and_fold_dom_walker::before_dom_children):
507 Substitute and fold before pass specific folding to avoid
508 feeding that with SSA names that will be later released.
509 * tree-ssa-ccp.c (get_value_for_expr): Guard for new SSA names
510 introduced by folding and visited by evaluate_stmt called during
511 ccp_fold_stmt.
512 (likely_value): Likewise.
513 (evaluate_stmt): Likewise.
514 * tree-vrp.c (simplify_truth_ops_using_ranges): Fold modified stmt.
515 (simplify_div_or_mod_using_ranges): Likewise.
516 (simplify_min_or_max_using_ranges): Likewise.
517 (simplify_abs_using_ranges): Likewise.
518 (simplify_conversion_using_ranges): Likewise.
519 (simplify_float_conversion_using_ranges): Likewise.
520 (simplify_stmt_using_ranges): Likewise.
521
522 2016-10-07 Marek Polacek <polacek@redhat.com>
523
524 * gimplify.c (should_warn_for_implicit_fallthrough): Check for
525 FALLTHROUGH_LABEL_P here...
526 (warn_implicit_fallthrough_r): ...not here.
527
528 2016-10-07 Bernd Schmidt <bschmidt@redhat.com>
529
530 PR tree-optimization/77880
531 * expr.c (by_pieces_ninsns): Use unsigned HOST_WIDE_INT where
532 necessary.
533
534 2016-10-07 Marek Polacek <polacek@redhat.com>
535
536 PR c++/77803
537 * gimplify.c (last_stmt_in_scope): Add check for FALLTHROUGH ().
538
539 2016-10-07 Richard Biener <rguenther@suse.de>
540
541 * bitmap.h: Document constraints on bitmap modification while
542 iterating over it.
543
544 2016-10-07 Richard Biener <rguenther@suse.de>
545
546 * bitmap.c (bitmap_elem_to_freelist): Set indx to -1.
547 * bitmap.h (bmp_iter_set): When advancing to the next element
548 check that we didn't remove the current one.
549 (bmp_iter_and): Likewise.
550 (bmp_iter_and_compl): Likewise.
551 * tree-ssa.c (release_defs_bitset): Do not remove worklist bit
552 we currently iterate on but keep a one-level queue.
553 * sched-deps.c (remove_from_deps): Do not clear current bit
554 but keep a one-level queue.
555
556 2016-10-07 Jakub Jelinek <jakub@redhat.com>
557
558 PR tree-optimization/77664
559 * tree-ssa-reassoc.c (update_range_test): Also clear low and high
560 for the other ranges.
561 (optimize_range_tests_diff): Fix up formatting.
562 (optimize_range_tests_var_bound): New function.
563 (optimize_range_tests): Use it.
564
565 2016-10-07 Martin Liska <mliska@suse.cz>
566
567 * coverage.c (build_gcov_exit_decl): Fix priority what
568 should be really 99.
569
570 2016-10-07 Richard Biener <rguenther@suse.de>
571
572 * gimple-low.c (lower_gimple_bind): Clear DECL_CHAIN of
573 vars in gimple_bind_vars but not in BLOCK_VARS.
574
575 2016-10-07 Richard Biener <rguenther@suse.de>
576
577 PR tree-optimization/77879
578 * tree-ssa-structalias.c (handle_const_call): Properly handle
579 NRV return slots.
580 (handle_pure_call): Likewise.
581
582 2016-10-06 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
583
584 * config/rs6000/rs6000.c (rs6000_elf_asm_out_constructor)
585 (rs6000_elf_asm_out_destructor): increase size of buf to avoid
586 possible overflow.
587
588 2016-10-06 Andrew Pinski <apinski@cavium.com>
589
590 * config/aarch64/aarch64-cores.def: Add a comment before each
591 set of cores.
592
593 2016-10-06 Kugan Vivekanandarajah <kuganv@linaro.org>
594
595 PR tree-optimization/77862
596 * tree-vrp.c (add_equivalence): Use get_value_range so that
597 num_vr_values is checked before accessing vr_values.
598
599 2016-10-06 Kugan Vivekanandarajah <kuganv@linaro.org>
600
601 * tree-vrp.c (evrp_dom_walker::before_dom_children): Handle
602 POINTER_TYPE_P.
603
604 2016-10-05 Jeff Law <law@redhat.com>
605
606 PR tree-optimization/71661
607 * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Handle case when
608 removal of a forwarder exposes a new natural loop.
609
610 2016-10-06 Uros Bizjak <ubizjak@gmail.com>
611
612 * config/i386/sse.md (andnot<mode>3): Add FALLTHRU comments.
613 Introduce ssesuffix variable.
614 (<mask_codefor><code><mode>3<mask_name>): Ditto.
615 (*<code><mode>3): Ditto.
616
617 2016-10-06 Jan Hubicka <hubicka@ucw.cz>
618
619 * postreload.c (reload_cse_simplify): Skip also USE when detecting
620 noop move.
621
622 2016-10-06 Richard Biener <rguenther@suse.de>
623
624 PR tree-optimization/77855
625 * tree-ssa-pre.c (prune_clobbered_mems): Queue exprs to remove
626 instead of removing the current item while iterating over the set
627 which is not safe.
628
629 2016-10-06 James Clarke <jrtc27@jrtc27.com>
630 Eric Botcazou <ebotcazou@adacore.com>
631
632 PR target/77759
633 * config/sparc/sparc.c (classify_data_t): Remove int_regs field.
634 (classify_registers): Don't set it
635 (function_arg_slotno): Don't initialize and test it. Tidy up.
636
637 2016-10-06 Richard Biener <rguenther@suse.de>
638
639 PR tree-optimization/77839
640 * tree-ssa-sccvn.c (set_ssa_val_to): Forbid value -> constant value
641 lattice transition.
642
643 2016-10-06 Martin Liska <mliska@suse.cz>
644
645 * gcc.c: Set -fprofile-update=atomic when profiling is
646 enabled and -pthread is set. Warn when one combines
647 -pthread and -fprofile-update=single for an app using
648 profiling code.
649
650 2016-10-06 Martin Liska <mliska@suse.cz>
651
652 PR bootstrap/77788
653 * expmed.h (mul_highpart_cost_ptr): Add an gcc_assert.
654 * gimple-ssa-strength-reduction.c (slsr_process_cast):
655 Initialize a pointer to NULL.
656 (slsr_process_copy): Likewise.
657 * input.c (location_get_source_line): Likewise.
658 * tree-ssa-ccp.c (optimize_atomic_bit_test_and): Likewise.
659
660 2016-10-05 Andrew Senkevich <andrew.senkevich@intel.com>
661
662 * common/config/i386/i386-common.c (OPTION_MASK_ISA_PCOMMIT_UNSET,
663 OPTION_MASK_ISA_PCOMMIT_SET): Deleted definitions.
664 (ix86_handle_option): Deleted handle of OPT_mpcommit.
665 * config.gcc: Deleted pcommitintrin.h
666 * config/i386/pcommitintrin.h: Deleted file.
667 * config/i386/cpuid.h (bit_PCOMMIT): Deleted.
668 * config/i386/driver-i386.c (host_detect_local_cpu): Deleted pcommit
669 detection.
670 * config/i386/i386-c.c (ix86_target_macros_internal): Deleted define
671 __PCOMMIT__.
672 * config/i386/i386.c (ix86_target_string): Deleted -mpcommit.
673 (PTA_PCOMMIT): Deleted define.
674 (ix86_option_override_internal): Deleted handle of option.
675 (ix86_valid_target_attribute_inner_p): Deleted pcommit.
676 * config/i386/i386-builtin.def (IX86_BUILTIN_PCOMMIT,
677 __builtin_ia32_pcommit): Deleted.
678 * config/i386/i386.h (TARGET_PCOMMIT, TARGET_PCOMMIT_P): Deleted.
679 * config/i386/i386.md (unspecv): Deleted UNSPECV_PCOMMIT.
680 (pcommit): Deleted instruction.
681 * config/i386/i386.opt: Mention -mpcommit deprecation.
682 * config/i386/x86intrin.h: Deleted inclusion of pcommitintrin.h.
683
684 2016-10-05 Uros Bizjak <ubizjak@gmail.com>
685
686 PR target/77874
687 * config/i386/sse.md (<mask_codefor><code><mode>3<mask_name>):
688 Remove wrong assert.
689 (<floatsuffix>float<sseintvecmodelower><mode>2<mask_name><round_name>:
690 Use <round_constraint> as operand 1 constraint.
691
692 2016-10-05 Jakub Jelinek <jakub@redhat.com>
693
694 PR sanitizer/66343
695 * ubsan.c (ubsan_create_data): Call initialize_sanitizer_builtins here.
696 (ubsan_instrument_float_cast): And not here.
697
698 PR sanitizer/66343
699 * ubsan.c (ubsan_ids): New GTY(()) array.
700 (ubsan_type_descriptor, ubsan_create_data): Use ubsan_ids
701 instead of static local counters.
702
703 2016-10-05 Martin Sebor <msebor@redhat.com>
704
705 PR bootstrap/77819
706 * config/linux.h (TARGET_PRINTF_POINTER_FORMAT): Define macro.
707 * config/linux.c (gnu_libc_printf_pointer_format): Remove.
708 * targhooks.c [DEFAULT_LIBC == LIBC_UCLIBC) && SINGLE_LIBC]
709 (default_printf_pointer_format): Define function.
710 * targhooks.c (linux_printf_pointer_format): Define new function.
711 * targhooks.h (linux_printf_pointer_format): Declare.
712 (gnu_libc_printf_pointer_format): Remove declaration.
713
714 2016-10-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
715
716 * fold-const.c (native_encode_real): Fix logic for selecting offset
717 to write to when BYTES_BIG_ENDIAN.
718
719 2016-10-05 Wilco Dijkstra <wdijkstr@arm.com>
720
721 * builtins.c (fold_builtin_strchr): Remove function.
722 (fold_builtin_strrchr): Likewise.
723 (fold_builtin2): Remove strchr, index, strrchr, rindex cases.
724 * gimple-fold.c (target_char_cst_p): New function.
725 (gimple_fold_builtin_strchr) Add more foldings.
726 (gimple_fold_builtin): Add index, strrchr, rindex cases.
727
728 2016-10-05 Richard Biener <rguenther@suse.de>
729
730 PR middle-end/77863
731 * genmatch.c (capture_info::walk_c_expr): Diagnose unknown
732 capture ids in c-exprs.
733
734 2016-10-05 Richard Biener <rguenther@suse.de>
735
736 PR middle-end/77826
737 * genmatch.c (dt_operand::gen_match_op): Amend operand_equal_p
738 with types_match for GIMPLE code gen to handle type mismatched
739 constants properly.
740 (dt_operand::gen): Adjust.
741 * match.pd ((X /[ex] A) * A -> X): Properly handle converted
742 and constant A.
743
744 2016-10-05 Richard Biener <rguenther@suse.de>
745
746 * match.pd (copysign(x, CST) -> [-]abs (x)): New pattern.
747
748 2016-10-05 Richard Biener <rguenther@suse.de>
749
750 PR middle-end/77842
751 * genmatch.c (parser::parse_c_expr): Handle premature EOF.
752
753 2016-10-05 Pierre-Marie de Rodat <derodat@adacore.com>
754
755 * dwarf2out.c (dwarf2out_imported_module_or_decl): Move DWARF
756 version check to protect only DW_TAG_imported_module generation.
757
758 2016-10-05 Richard Biener <rguenther@suse.de>
759
760 PR middle-end/55152
761 * match.pd (min(a,-a) -> -abs(a)): New pattern.
762
763 2016-10-04 Ian Lance Taylor <iant@golang.org>
764
765 * explow.c (allocate_dynamic_stack_space): Call
766 do_pending_stack_adjust before handling flag_split_stack.
767
768 2016-10-04 David Malcolm <dmalcolm@redhat.com>
769
770 * genattrtab.c (make_internal_attr): Supply dummy column number to
771 file_location ctor.
772 (main): Likewise.
773 * genoutput.c (init_insn_for_nothing): Likewise.
774 * gensupport.c (add_define_attr): Likewise.
775 * read-md.c (message_at_1): Print column number.
776 (fatal_with_file_and_line): Likewise.
777 (rtx_reader::read_char): Track column numbers.
778 (rtx_reader::unread_char): Likewise.
779 (rtx_reader::rtx_reader): Initialize m_read_md_colno.
780 (rtx_reader::handle_include): Stash and restore m_read_md_colno.
781 (rtx_reader::handle_file): Initialize m_read_md_colno.
782 (rtx_reader::get_current_location): Supply column number to
783 file_location ctor.
784 * read-md.h (struct file_location): Add field "colno".
785 (file_location::file_location): Likewise.
786 (rtx_reader::get_colno): New accessor.
787 (rtx_reader::m_read_md_colno): New field.
788 (rtx_reader::m_last_line_colno): New field.
789
790 2016-10-04 Jakub Jelinek <jakub@redhat.com>
791
792 * doc/extend.texi (Java Exceptions): Remove.
793 (java_interface): Remove.
794
795 2016-10-04 Doug Gilmore <doug.gilmore@imgtec.com>
796
797 PR tree-optimization/77808
798 * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Check base_addr
799 and addr are different before copying points-to information.
800
801 2016-10-04 Uros Bizjak <ubizjak@gmail.com>
802
803 * config/i386/x86-tune.def (X86_TUNE_VECTORIZE_DOUBLE): Remove.
804 * config/i386/i386.h (TARGET_VECTORIZE_DOUBLE): Remove.
805 * config/i386/i386.c (ix86_add_stmt_cost): Use TARGET_BONNEL instead
806 of !TARGET_VECTORIZE_DOUBLE when penalizing DFmode vector ops.
807
808 2016-10-04 Richard Biener <rguenther@suse.de>
809
810 PR tree-optimization/77399
811 * tree-ssa-forwprop.c (simplify_vector_constructor): Properly
812 verify the target can convert.
813
814 2016-10-04 Richard Biener <rguenther@suse.de>
815
816 PR middle-end/77833
817 * explow.c (plus_constant): Verify the mode of the constant
818 pool offset before calling plus_constant.
819
820 2016-10-04 Richard Biener <rguenther@suse.de>
821
822 PR middle-end/77407
823 * match.pd (X / abs (X) -> X < 0 ? -1 : 1): Drop vector
824 type support, mark with :C.
825 (X / -X -> -1): Mark with :C.
826
827 2016-10-04 Jakub Jelinek <jakub@redhat.com>
828
829 * defaults.h (JCR_SECTION_NAME, TARGET_USE_JCR_SECTION): Remove.
830 * system.h (JCR_SECTION_NAME, TARGET_USE_JCR_SECTION): Poison.
831 * doc/tm.texi.in (TARGET_USE_JCR_SECTION): Remove.
832 * doc/tm.texi: Regenerated.
833 * config/i386/mingw32.h (TARGET_USE_JCR_SECTION): Remove.
834 * config/i386/cygming.h (TARGET_USE_JCR_SECTION): Remove.
835 * config/darwin.h (JCR_SECTION_NAME): Remove.
836 * config/pa/pa64-hpux.h (JCR_SECTION_NAME): Remove.
837 * config/rs6000/aix71.h (TARGET_USE_JCR_SECTION): Remove.
838 * config/rs6000/aix51.h (TARGET_USE_JCR_SECTION): Remove.
839 * config/rs6000/aix52.h (TARGET_USE_JCR_SECTION): Remove.
840 * config/rs6000/aix53.h (TARGET_USE_JCR_SECTION): Remove.
841 * config/rs6000/aix61.h (TARGET_USE_JCR_SECTION): Remove.
842
843 2016-10-03 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
844
845 * ipa-cp.c (propagate_bits_accross_jump_function): Introduce space
846 between "because" and "param" in dump message in call to fprintf.
847
848 2016-10-03 Jeff Law <law@redhat.com>
849
850 PR tree-optimization/71550
851 PR tree-optimization/71403
852 * tree-ssa-threadbackward.c: Include tree-vectorizer.h
853 (profitable_jump_thread_path): Also return boolean indicating if
854 the realized path will create an irreducible loop.
855 Remove loop depth tests from 71403.
856 (fsm_find_control_statement_thread_paths): Remove loop depth tests
857 from 71403. If threading will create an irreducible loop, then
858 throw away loop iteration and related information.
859
860 2016-10-03 Uros Bizjak <ubizjak@gmail.com>
861
862 * configure.ac (strict_warn): Merge -Wmissing-format-attribute and
863 -Woverloaded-virtual checks for warning options.
864 * configure: Regenerate.
865
866 2016-10-03 Bernd Edlinger <bernd.edlinger@hotmail.de>
867
868 PR preprocessor/77699
869 * input.c (maybe_grow): Don't allocate one byte extra headroom.
870 (get_next_line): Return false on error.
871 (read_next_line): Removed, use get_next_line instead.
872 (read_line_num): Don't copy the line.
873 (location_get_source_line): Don't use static data.
874 (selftest::test_reading_source_line): Add more test cases.
875
876 2016-10-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
877
878 Revert
879 2016-09-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
880
881 * ifcvt.c (noce_try_avoid_const_materialization): New function.
882 (noce_process_if_block): Use it.
883
884 2016-10-03 Bernd Edlinger <bernd.edlinger@hotmail.de>
885
886 * doc/invoke.texi: Update -Wint-in-bool-context.
887
888 2016-10-02 Jakub Jelinek <jakub@redhat.com>
889
890 * dwarf2out.c (output_fde, output_call_frame_info,
891 dwarf2out_do_cfi_startproc, set_indirect_string,
892 gen_internal_sym, output_die, output_line_info): Use
893 MAX_ARTIFICIAL_LABEL_BYTES as char array sizes for
894 ASM_GENERATE_INTERNAL_LABEL output.
895
896 2016-10-01 Richard Biener <rguenther@suse.de>
897
898 PR middle-end/77798
899 * genmatch.c (get_operand_type): Add operand position arg
900 and handle COND_EXPR comparison operand with fixed boolean_type_node.
901 (expr::gen_transform): Adjust.
902 (dt_simplify::gen_1): Likewise.
903
904 2016-10-01 Jakub Jelinek <jakub@redhat.com>
905
906 * config/i386/sse.md (<mask_codefor><code><mode>): Add FALLTHRU
907 comments. Simplify asserts, remove unnecessary conditions.
908 Formatting fixes.
909 (*<code><mode>3): Likewise.
910
911 2016-09-30 Jakub Jelinek <jakub@redhat.com>
912
913 * doc/invoke.texi (-Wregister): Document.
914
915 2016-09-30 Bernd Edlinger <bernd.edlinger@hotmail.de>
916
917 * configure.ac: Split CHECKING_P into CHECKING_P and
918 ENABLE_EXTRA_CHECKING.
919 * configure: Regenerated.
920 * config.in: Adjust commment of CHECKING_P. Add ENABLE_EXTRA_CHECKING.
921 * common.opt (flag_checking): Use CHECKING_P and ENABLE_EXTRA_CHECKING.
922
923 2016-09-30 Prasad Ghangal <prasad.ghangal@gmail.com>
924
925 PR other/31566
926 * gcc.c (process_command): For @filename handling, output
927 the correct name if the file does not exist.
928
929 2016-09-30 Marek Polacek <polacek@redhat.com>
930
931 * config/aarch64/aarch64-simd.md: Adjust fall through comments.
932 * config/alpha/predicates.md: Likewise.
933
934 2016-09-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
935
936 * ifcvt.c (noce_try_avoid_const_materialization): New function.
937 (noce_process_if_block): Use it.
938
939 2016-09-30 Martin Liska <mliska@suse.cz>
940
941 * doc/invoke.texi: Document asan-use-after-return that
942 it's disabled by default in runtime.
943
944 2016-09-30 Richard Biener <rguenther@suse.de>
945
946 * tree-vrp.c (intersect_ranges): If we failed to handle
947 the intersection choose a constant singleton range if available.
948
949 2016-09-30 Richard Biener <rguenther@suse.de>
950
951 PR tree-optimization/77399
952 * tree-ssa-forwprop.c (simplify_vector_constructor): Handle
953 float <-> int conversions.
954
955 2016-09-30 Alan Modra <amodra@gmail.com>
956
957 * config/rs6000/rs6000.c (rs6000_opt_vars): Revert last change.
958
959 2016-09-29 Uros Bizjak <ubizjak@gmail.com>
960
961 * config/i386/driver-i386.c (host_detect_local_cpu): Check maximum
962 ext_level before calling CPUID with 0x80000008.
963 Simplify xgetbv checks.
964
965 2016-09-29 David Malcolm <dmalcolm@redhat.com>
966
967 * Makefile.in (OBJS): Add print-rtl-function.o.
968 * print-rtl-function.c: New file.
969 * print-rtl.h (print_rtx_function): New decl.
970
971 2016-09-29 Uros Bizjak <ubizjak@gmail.com>
972
973 PR target/77756
974 * config/i386/cpuid.h (__get_cpuid_count): New.
975 (__get_cpuid): Rename __level to __leaf.
976
977 2016-09-29 Marek Polacek <polacek@redhat.com>
978
979 * genattrtab.c (write_attr_case): Also emit FALLTHRU marker.
980
981 2016-09-29 Bernd Schmidt <bschmidt@redhat.com>
982
983 * builtins.c (expand_builtin_memcmp): don't swap args unless
984 result is only being compared with zero.
985
986 2016-09-29 Marek Polacek <polacek@redhat.com>
987
988 * dwarf2out.c (loc_descriptor): Add fall through comment.
989 (add_const_value_attribute): Likewise.
990
991 2016-09-29 Matthew Wahab <matthew.wahab@arm.com>
992
993 * config/arm/arm.md (*arm_movsi_insn): Replace "t2" arch attribute
994 with "v6t2". Move "arch" attribute above "pool_range".
995 * config/arm/vfp.md (*arm_movhi_vfp): Replace "t2" arch attribute
996 with "v6t2".
997 (*thumb2_movhi_vfp): Likewise.
998 (*arm_movhi_fp16): Likewise.
999 (*thumb2_movhi_fp16): Likewise.
1000 (*arm_movsi_vfp): Remove "arch" attribute.
1001 (*thumb2_movsi_vfp): Likewise.
1002
1003 2016-09-29 Martin Liska <mliska@suse.cz>
1004
1005 * doc/extend.texi: Remove limitation of Objective C for
1006 __attribute__((constructor)) and __attribute__((destructor)).
1007
1008 2016-09-29 Richard Biener <rguenther@suse.de>
1009
1010 PR tree-optimization/77768
1011 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
1012 Handle stores to readonly memory when removing redundant stores.
1013
1014 2016-09-29 Richard Biener <rguenther@suse.de>
1015
1016 PR middle-end/77407
1017 * match.pd: Add X / abs (X) -> X < 0 ? -1 : 1 and
1018 X / -X -> -1 simplifications.
1019
1020 2016-09-29 Richard Biener <rguenther@suse.de>
1021
1022 PR middle-end/55152
1023 * match.pd: Add max(a,-a) -> abs(a) pattern.
1024 * tree-ssa-phiopt.c (minmax_replacement): Disable for
1025 HONOR_SIGNED_ZEROS types.
1026
1027 2016-09-29 James Greenhalgh <james.greenhalgh@arm.com>
1028
1029 * defaults.h (TARGET_FLT_EVAL_METHOD_NON_DEFAULT): Remove.
1030 * system.h (TARGET_FLT_EVAL_METHOD_NON_DEFAULT): Poison.
1031
1032 2016-09-29 Richard Biener <rguenther@suse.de>
1033
1034 * tree-vrp.c (set_defs_to_varying): New helper avoiding
1035 writing to vr_const_varying.
1036 (vrp_initialize): Call it.
1037 (vrp_visit_stmt): Likewise.
1038 (evrp_dom_walker::before_dom_children): Likewise.
1039
1040 2016-09-29 Richard Biener <rguenther@suse.de>
1041
1042 * tree-vect-stmts.c (vectorizable_load): Avoid emitting vector
1043 constructors with vector elements.
1044
1045 2016-09-29 Richard Biener <rguenther@suse.de>
1046
1047 PR tree-optimization/77768
1048 * tree-ssa-sccvn.c (visit_reference_op_store): Properly deal
1049 with stores to a place we know has a constant value.
1050
1051 2016-09-29 Alan Modra <amodra@gmail.com>
1052
1053 * config/rs6000/sysv4.opt (mgnu-attribute): New option.
1054 * doc/invoke.texi: Document it.
1055 * config/rs6000/rs6000.c (HAVE_LD_PPC_GNU_ATTR_LONG_DOUBLE): Define.
1056 (rs6000_passes_float): Comment.
1057 (rs6000_passes_long_double): New static var.
1058 (call_ABI_of_interest): Return false unless rs6000_gnu_attr is set.
1059 (init_cumulative_args): Set up to emit fp .gnu_attribute for
1060 ELF 64-bit ABIs as well as 32-bit ELF. Correct rs6000_passes_float
1061 to include fp values returned in vectors.
1062 Set rs6000_passes_long_double.
1063 (rs6000_function_arg_advance_1): Likewise for function args.
1064 (rs6000_elf_file_end): Emit fp .gnu_attribute for ELF 64-bit ABIs,
1065 and SPE. Emit long double tag value too.
1066 (rs6000_opt_vars): Add gnu-attr.
1067 * configure.ac (HAVE_LD_PPC_GNU_ATTR_LONG_DOUBLE): New ppc32 test.
1068 * configure: Regenerate.
1069 * config.in: Regenerate.
1070
1071 2016-09-28 Jakub Jelinek <jakub@redhat.com>
1072
1073 * gimple-ssa-sprintf.c (pass_sprintf_length::gate): Use x > 0 instead
1074 of 0 < x.
1075 (format_floating, format_string, format_directive,
1076 get_destination_size, pass_sprintf_length::handle_gimple_call):
1077 Likewise.
1078
1079 2016-09-28 Jakub Jelinek <jakub@redhat.com>
1080
1081 * gimple-ssa-sprintf.c: Fix comment formatting.
1082 (format_integer): Use is_gimple_assign.
1083 (pass_sprintf_length::handle_gimple_call): Use gimple_call_builtin_p
1084 and gimple_call_fndecl. Reorder case BUILT_IN_SPRINTF_CHK. Fix up
1085 BUILT_IN_SNPRINTF_CHK comment. Replace "to to" with "to" in comment.
1086 (pass_sprintf_length::execute): Use is_gimple_call.
1087
1088 2016-09-28 Wilco Dijkstra <wdijkstr@arm.com>
1089
1090 * gimple-fold.c (gimple_fold_builtin): After failing to fold
1091 strchr, also try the generic folding.
1092
1093 2016-09-28 Martin Sebor <msebor@redhat.com>
1094
1095 PR c/77762
1096 * gimple-ssa-sprintf.c (pass_sprintf_length::handle_gimple_call):
1097 Fix typos.
1098
1099 2016-09-28 Martin Sebor <msebor@redhat.com>
1100
1101 PR middle-end/77683
1102 * gimple-ssa-sprintf.c (format_integer): Fail gracefully when
1103 length modifier is not expected.
1104 (format_floating): Ignore l length modifier and fail gracefuly
1105 when it isn't one of the other expected ones.
1106
1107 2016-09-28 Martin Sebor <msebor@redhat.com>
1108
1109 PR bootstrap/77753
1110 * varasm.c (assemble_addr_to_section): Increase local buffer size.
1111
1112 2016-09-27 Richard Biener <rguenther@suse.de>
1113
1114 * dwarf2out.c (cu_die_list): New global.
1115 (dwarf2out_finish): Walk cu_die_list instead of limbo DIEs. Add
1116 main_comp_unit_die to cu_die_list if we created it.
1117 Move break_out_includes ...
1118 (dwarf2out_early_finish): ... here. Push created CU DIEs onto
1119 the cu_die_list.
1120
1121 2016-09-28 Richard Biener <rguenther@suse.de>
1122
1123 * dwarf2out.c (struct die_struct): Add removed flag.
1124 (lookup_type_die): If the DIE is marked as removed, clear
1125 TYPE_SYMTAB_DIE and return NULL.
1126 (lookup_decl_die): If the DIE is marked as removed, remove it
1127 from the hash and return NULL.
1128 (mark_removed): New helper.
1129 (prune_unused_types_prune): Call it for removed DIEs.
1130 (gen_subprogram_die): Move the premark_used_types call to after
1131 DIEs for the functions scopes are generated.
1132 (process_scope_var): Do not re-create pruned types or type decls.
1133 Make sure to also re-parent type decls.
1134 (dwarf2out_finish): Move unused type pruning and debug_types
1135 handling ...
1136 (dwarf2out_early_finish): ... here.
1137
1138 2016-09-29 Claudiu Zissulescu <claziss@synopsys.com>
1139
1140 * config/arc/arc-c.c: New file.
1141 * config/arc/arc-c.def: Likewise.
1142 * config/arc/t-arc: Likewise.
1143 * config.gcc: Include arc-c.o as c and cpp object.
1144 * config/arc/arc-protos.h (arc_cpu_cpp_builtins): Add prototype.
1145 * config/arc/arc.h (TARGET_CPU_CPP_BUILTINS): Use
1146 arc_cpu_cpp_builtins.
1147
1148 2016-09-29 Claudiu Zissulescu <claziss@synopsys.com>
1149
1150 * config/arc/arc.md (*rotrsi3_cnt1): New pattern.
1151 (*ashlsi2_cnt1, *lshrsi3_cnt1, *ashrsi3_cnt1): Likewise.
1152
1153 2016-09-28 Nathan Sidwell <nathan@acm.org>
1154
1155 * gimple-pretty-print.c (dump_gimple_call_args): Simplify "' "
1156 printing.
1157
1158 2016-09-28 Wilco Dijkstra <wdijkstr@arm.com>
1159
1160 PR tree-optimization/61056
1161 * gimple-fold.c (gimple_fold_builtin_strchr):
1162 New function to optimize strchr (s, 0) to strlen.
1163 (gimple_fold_builtin): Add BUILT_IN_STRCHR case.
1164
1165 2016-09-27 Robin Dapp <rdapp@linux.vnet.ibm.com>
1166
1167 PR tree-optimization/77724
1168 * tree-vect-loop-manip.c (create_intersect_range_checks_index):
1169 Add tree_fits_shwi_p check.
1170
1171 2016-09-27 Jakub Jelinek <jakub@redhat.com>
1172
1173 * auto-inc-dec.c (try_merge): Remove break after return.
1174 * cselib.c (autoinc_split): Likewise.
1175 * explow.c (promote_mode): Likewise.
1176 * fixed-value.c (fixed_arithmetic): Likewise.
1177 * hsa.c (hsa_internal_fn::get_arity): Likewise.
1178 * rtlanal.c (modified_between_p, modified_in_p): Likewise.
1179 * trans-mem.c (get_attrs_for): Likewise.
1180 * tree-if-conv.c (if_convertible_stmt_p): Likewise.
1181 * tree-vrp.c (simplify_stmt_using_ranges): Likewise.
1182 * config/aarch64/aarch64-builtins.c (aarch64_fold_builtin): Likewise.
1183 * config/aarch64/aarch64.c (aarch64_get_condition_code_1): Likewise.
1184 * config/c6x/c6x.c (c6x_get_unit_specifier): Likewise.
1185 * config/cr16/cr16.c (legitimate_pic_operand_p): Likewise.
1186 * config/cris/cris.c (cris_op_str): Likewise.
1187 * config/mn10300/mn10300.c (cc_flags_for_code): Likewise.
1188 * config/tilepro/tilepro.c (tilepro_emit_setcc_internal_di): Likewise.
1189
1190 2016-09-27 Nathan Sidwell <nathan@codesourcery.com>
1191
1192 * internal-fn.h (IFN_UNIQUE_CODES, IFN_GOACC_LOOP_CODES,
1193 IFN_GOACC_REDUCTION_CODES): New.
1194 (enum ifn_unique_kind, enum ifn_goacc_loop_kind, enum
1195 ifn_goacc_reduction_kind): Use them.
1196 * gimple-pretty-print.c (dump_gimple_call_args): Decode first arg
1197 of internal functions, when applicable.
1198
1199 2016-09-27 Maciej W. Rozycki <macro@imgtec.com>
1200
1201 * config/mips/constraints.md (d): Fix documentation.
1202 * doc/md.texi (Machine Constraints): Update accordingly.
1203
1204 2016-09-27 Richard Biener <rguenther@suse.de>
1205
1206 * dwarf2out.c (dwarf2out_init): Move text_section_line_info,
1207 cur_line_info_table initialization ...
1208 (dwarf2out_assembly_start): ... here.
1209
1210 2016-09-27 Matthew Wahab <matthew.wahab@arm.com>
1211
1212 * config/arm/arm.md (*arm_movsi_insn): Add "arch" attribute.
1213 * config/arm/vfp.md (*arm_movhi_vfp): Likewise.
1214 (*thumb2_movhi_vfp): Likewise.
1215 (*arm_movhi_fp16): Remove predication operand from VMOV.F16
1216 template. Expand predicable attribute to mark VMOV.F16 as not
1217 predicable. Add "arch" attribute.
1218 (*thumb2_movhi_fp16): Likewise.
1219 (*arm_movsi_vfp): Break a long line. Add "arch" attribute.
1220 (*thumb2_movsi_vfp): Add "arch" attribute.
1221
1222 2016-09-27 David Edelsohn <dje.gcc@gmail.com>
1223
1224 * config/rs6000/rs6000.c (rs6000_output_symbol): Don't modify
1225 VAR_DECL string.
1226
1227 2016-09-27 Marek Polacek <polacek@redhat.com>
1228
1229 * config/ia64/ia64.c (ia64_print_operand): Adjust fall through
1230 comment.
1231
1232 * config/c6x/c6x.h: Adjust fall through comment.
1233 * config/sh/sh.c (final_prescan_insn): Likewise.
1234 * config/visium/visium.c (visium_expand_int_cstore): Likewise.
1235 (visium_expand_fp_cstore): Likewise.
1236
1237 2016-09-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1238
1239 * config/arm/arm.c (const_ok_for_op): Use "Fall through" comment form
1240 expected by -Wimplicit-fallthrough.
1241 (thumb1_size_rtx_costs): Likewise.
1242 (thumb2_reorg): Likewise.
1243 (tls_mentioned_p): Add "Fall through" comment.
1244 (thumb2_reorg): Likewise.
1245 * config/arm/arm-builtins.c (arm_expand_neon_args): Use "Fall through"
1246 comment form expected by -Wimplicit-fallthrough.
1247
1248 2016-09-27 Martin Liska <mliska@suse.cz>
1249
1250 PR gcov-profile/46266
1251 * input.h (RESERVED_LOCATION_P): New macro.
1252 * profile.c (branch_prob): Use RESERVED_LOCATION_P and
1253 instread of comparison with UNKNOWN_LOCATION.
1254
1255 2016-09-27 Richard Biener <rguenther@suse.de>
1256
1257 PR tree-optimization/77745
1258 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
1259 When removing redundant stores make sure to check compatibility
1260 of the TBAA state for downstream accesses.
1261 * tree-ssa-sccvn.c (visit_reference_op_store): Likewise for when
1262 value-numbering virtual operands for store matches.
1263
1264 2016-09-27 Oleg Endo <olegendo@gcc.gnu.org>
1265
1266 PR target/51244
1267 * config/sh/sh.c (sh_rtx_costs): Fix return value of SET of movt and
1268 movrt patterns. Match them before anything else in the SET case.
1269
1270 2016-09-27 Martin Liska <mliska@suse.cz>
1271
1272 PR gcov-profile/7970
1273 PR gcov-profile/16855
1274 PR gcov-profile/44779
1275 * coverage.c (build_gcov_exit_decl): New function.
1276 (coverage_obj_init): Call the function and generate __gcov_exit
1277 destructor.
1278 * doc/gcov.texi: Document when __gcov_exit function is called.
1279
1280 2016-09-27 Marek Polacek <polacek@redhat.com>
1281
1282 PR bootstrap/77751
1283 * Makefile.in (insn-attrtab.o-warn, insn-dfatab.o-warn,
1284 insn-latencytab.o-warn, insn-output.o-warn, insn-emit.o-warn): Use
1285 -Wno-error instead of -Wno-implicit-fallthrough.
1286
1287 2016-09-27 Martin Liska <mliska@suse.cz>
1288
1289 PR bootstrap/77749
1290 * gcov-counter.def: Remove GCOV_COUNTER_V_DELTA.
1291
1292 2016-09-27 Jakub Jelinek <jakub@redhat.com>
1293
1294 * combine.c (simplify_comparison): Add canonical FALLTHROUGH comments.
1295 * config/i386/i386.c (ix86_dep_by_shift_count_body): Add FALLTHROUGH
1296 comments. Remove break after return.
1297 (ix86_fp_compare_code_to_integer, has_dispatch,
1298 ix86_simd_clone_usable): Remove break after return.
1299
1300 2016-09-27 Bernd Edlinger <bernd.edlinger@hotmail.de>
1301
1302 PR rlt-optimization/77714
1303 * lra-eliminations.c (eliminate_regs_in_insn): Avoid alias on
1304 REG_EQUAL note.
1305
1306 2016-09-27 Kugan Vivekanandarajah <kuganv@linaro.org>
1307
1308 PR ipa/77677
1309 * ipa-prop.c (ipa_compute_jump_functions_for_edge): Use
1310 extract_range_from_unary_expr to convert value_range.
1311 * tree-vrp.c (extract_range_from_unary_expr_1): Rename to.
1312 (extract_range_from_unary_expr): This.
1313 * tree-vrp.h (extract_range_from_unary_expr): Declare.
1314
1315 2016-09-27 Segher Boessenkool <segher@kernel.crashing.org>
1316
1317 * config/rs6000/rs6000.md (movcc_internal1): Disparage using CTR or LR.
1318
1319 2016-09-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1320
1321 * config/i386/i386.c (ix86_print_operand)
1322 [HAVE_AS_IX86_CMOV_SUN_SYNTAX]: Add gcc_fallthrough.
1323 * config/sparc/sparc.c (check_pic): Add fallthrough comment.
1324 (epilogue_renumber): Likewise.
1325
1326 2016-09-26 Kugan Vivekanandarajah <kuganv@linaro.org>
1327
1328 PR middle-end/77719
1329 * tree-ssa-reassoc.c (make_new_ssa_for_def): Use gimple_get_lhs
1330 to get lhs instead of gimple_assign_lhs as stmt can be builtins too.
1331
1332 2016-09-26 Thomas Preud'homme <thomas.preudhomme@arm.com>
1333
1334 * tree.h (memmodel_from_int, memmodel_base, is_mm_relaxed,
1335 is_mm_consume, is_mm_acquire, is_mm_release, is_mm_acq_rel,
1336 is_mm_seq_cst, is_mm_sync): Move to ...
1337 * memmodel.h: This. New file.
1338 * builtins.c: Include memmodel.h.
1339 * optabs.c: Likewise.
1340 * tsan.c: Likewise.
1341 * config/aarch64/aarch64.c: Likewise.
1342 * config/alpha/alpha.c: Likewise.
1343 * config/arm/arm.c: Likewise.
1344 * config/i386/i386.c: Likewise.
1345 * config/ia64/ia64.c: Likewise.
1346 * config/mips/mips.c: Likewise.
1347 * config/rs6000/rs6000.c: Likewise.
1348 * config/sparc/sparc.c: Likewise.
1349 * genconditions.c: Include memmodel.h in generated file.
1350 * genemit.c: Likewise.
1351 * genoutput.c: Likewise.
1352 * genpeep.c: Likewise.
1353 * genpreds.c: Likewise.
1354 * genrecog.c: Likewise.
1355
1356 2016-09-26 David Malcolm <dmalcolm@redhat.com>
1357
1358 * read-rtl.c (read_rtx_code): Rename local "i" to "idx", and use
1359 "c" instead when parsing characters. Move operand parsing into...
1360 (read_rtx_operand): ...this new function, renaming "i" to "idx",
1361 and tightening the scope of various locals.
1362
1363 2016-09-26 Liu Hao <lh_mouse@126.com>
1364
1365 * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Fix typo.
1366
1367 2016-09-26 Marek Polacek <polacek@redhat.com>
1368
1369 * system.h: Use __has_attribute to check whether the fallthrough
1370 attribute is supported.
1371
1372 2016-09-26 Marek Polacek <polacek@redhat.com>
1373
1374 * ipa-inline-analysis.c (find_foldable_builtin_expect): Use
1375 gimple_call_internal_p.
1376 * ipa-split.c (find_return_bb): Likewise.
1377 (execute_split_functions): Likewise.
1378 * omp-low.c (dump_oacc_loop_part): Likewise.
1379 (oacc_loop_xform_head_tail): Likewise.
1380 * predict.c (predict_loops): Likewise.
1381 * sanopt.c (pass_sanopt::execute): Likewise.
1382 * tree-cfg.c (get_abnormal_succ_dispatcher): Likewise.
1383 * tree-parloops.c (oacc_entry_exit_ok_1): Likewise.
1384 * tree-stdarg.c (gimple_call_ifn_va_arg_p): Remove function.
1385 (expand_ifn_va_arg_1): Use gimple_call_internal_p.
1386 (expand_ifn_va_arg): Likewise.
1387 * tree-vect-loop.c (vect_determine_vectorization_factor): Likewise.
1388 (optimize_mask_stores): Likewise.
1389 * tree-vect-stmts.c (vect_simd_lane_linear): Likewise.
1390 (vect_transform_stmt): Likewise.
1391 * tree-vectorizer.c (vect_loop_vectorized_call): Likewise.
1392 * tsan.c (instrument_memory_accesses): Likewise.
1393
1394 2016-09-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1395 Alexander Monakov <amonakov@ispras.ru>
1396
1397 * regrename.c (rename_chains): Check
1398 HARD_FRAME_POINTER_IS_FRAME_POINTER rather than
1399 HARD_FRAME_POINTER_REGNUM when picking unavailable registers.
1400 * sel-sched.c (mark_unavailable_hard_regs): Likewise.
1401
1402 2016-09-26 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
1403
1404 * config/s390/s390.c (s390_rtx_costs): Add /* fallthrough */.
1405 (s390_sched_score): Likewise.
1406
1407 2016-09-26 Martin Liska <mliska@suse.cz>
1408
1409 * doc/gcov.texi: Update program output of gcov tool.
1410
1411 2016-09-26 Martin Liska <mliska@suse.cz>
1412
1413 PR gcov-profile/23332
1414 * profile.c (instrument_values): Do not handle HIST_TYPE_CONST_DELTA.
1415 * tree-profile.c (gimple_gen_const_delta_profiler): Remove.
1416 * value-prof.c (dump_histogram_value): Do not handle
1417 HIST_TYPE_CONST_DELTA.
1418 (stream_in_histogram_value): Likewise.
1419 (gimple_find_values_to_profile): Likewise.
1420 * value-prof.h (enum hist_type): Likewise.
1421
1422 2016-09-26 Martin Liska <mliska@suse.cz>
1423
1424 * common.opt: Exclude SANITIZE_UNREACHABLE and SANITIZE_RETURN
1425 from default sanitize recover values.
1426 * doc/invoke.texi: Fix documentation related to -fsanitize=leak,
1427 -fsanitize=address, -fsanitize=thread and -fsanitize-recover.
1428 * flag-types.h: Replace couple of 1 << x to 1UL << x, make it
1429 consistent.
1430 * opts.c (finish_options): Do a generic loop over options
1431 that can be recovered.
1432 (parse_sanitizer_options): Exclude SANITIZE_UNREACHABLE and
1433 SANITIZE_RETURN.
1434 (common_handle_option): Likewise.
1435 * opts.h: Declare can_recover to sanitizer_opts_s.
1436
1437 2016-09-26 Andre Vieira <andre.simoesdiasvieira@arm.com>
1438
1439 * target.def(elf_flags_numeric): Change documentation to present tense.
1440 * doc/tm.texi: Regenerate.
1441
1442 2016-09-26 Marek Polacek <polacek@redhat.com>
1443
1444 PR c/7652
1445 * Makefile.in (insn-attrtab.o-warn, insn-dfatab.o-warn,
1446 insn-latencytab.o-warn, insn-output.o-warn, insn-emit.o-warn): Add
1447 -Wno-switch-fallthrough.
1448 * builtins.c (expand_builtin_int_roundingfn_2): Add gcc_fallthrough.
1449 (expand_builtin): Likewise.
1450 * config/rs6000/rs6000.c (rs6000_builtin_vectorized_libmass): Likewise.
1451 * convert.c (convert_to_real_1): Likewise.
1452 (convert_to_integer_1): Likewise.
1453 * final.c (output_alternate_entry_point): Likewise.
1454 * genattrtab.c (make_canonical): Likewise.
1455 (write_test_expr): Likewise.
1456 * genpreds.c (validate_exp): Likewise.
1457 * gimple-ssa-strength-reduction.c
1458 (find_candidates_dom_walker::before_dom_children): Likewise.
1459 * godump.c (go_format_type): Likewise.
1460 * reload1.c (elimination_effects): Likewise.
1461 * resource.c (mark_referenced_resources): Likewise.
1462 (mark_set_resources): Likewise.
1463 * tree-ssa-loop-ivopts.c (find_deriving_biv_for_expr): Likewise.
1464 * varasm.c (output_addressed_constants): Likewise.
1465
1466 2016-09-26 Marek Polacek <polacek@redhat.com>
1467
1468 PR c/7652
1469 * common.opt (Wimplicit-fallthrough): New option.
1470 * doc/extend.texi: Document statement attributes and the fallthrough
1471 attribute.
1472 * doc/invoke.texi: Document -Wimplicit-fallthrough.
1473 * gimple.h (gimple_call_internal_p): New function.
1474 * gimplify.c (struct gimplify_ctx): Add in_switch_expr.
1475 (struct label_entry): New struct.
1476 (find_label_entry): New function.
1477 (case_label_p): New function.
1478 (collect_fallthrough_labels): New function.
1479 (last_stmt_in_scope): New function.
1480 (should_warn_for_implicit_fallthrough): New function.
1481 (warn_implicit_fallthrough_r): New function.
1482 (maybe_warn_implicit_fallthrough): New function.
1483 (expand_FALLTHROUGH_r): New function.
1484 (expand_FALLTHROUGH): New function.
1485 (gimplify_switch_expr): Call maybe_warn_implicit_fallthrough and
1486 expand_FALLTHROUGH for the innermost GIMPLE_SWITCH.
1487 (gimplify_label_expr): New function.
1488 (gimplify_case_label_expr): Set location.
1489 (gimplify_expr): Call gimplify_label_expr.
1490 * internal-fn.c (expand_FALLTHROUGH): New function.
1491 * internal-fn.def (FALLTHROUGH): New internal function.
1492 * langhooks.c (lang_GNU_OBJC): New function.
1493 * langhooks.h (lang_GNU_OBJC): Declare.
1494 * system.h (gcc_fallthrough): Define.
1495 * tree-core.h: Add FALLTHROUGH_LABEL_P comment.
1496 * tree.h (FALLTHROUGH_LABEL_P): Define.
1497
1498 2016-09-26 Richard Biener <rguenther@suse.de>
1499
1500 * dwarf2out.c (stripattributes): Remove unused function.
1501 (DEBUG_NORM_MACINFO_SECTION): Rename to DEBUG_MACINFO_SECTION.
1502 Push dwarf_split_debug_info handling into init_sections_and_labels.
1503 (DEBUG_NORM_MACRO_SECTION): Likewise to DEBUG_MACRO_SECTION.
1504 (DEBUG_MACRO_SECTION_FLAGS): Remove.
1505 (debug_macinfo_section_name): New global.
1506 (output_macinfo): Use debug_macinfo_section_name.
1507 (init_sections_and_labels): Split out section and label generation
1508 from dwarf2out_init. Set debug_macinfo_section_name.
1509 (dwarf2out_init): Move text section label generation and emission
1510 to ...
1511 (dwarf2out_assembly_start): ... here.
1512 (dwarf2out_finish): Call init_sections_and_labels before DWARF
1513 output starts.
1514
1515 2016-09-26 Richard Biener <rguenther@suse.de>
1516
1517 PR debug/77692
1518 * cgraphunit.c (analyze_functions): Before early removing
1519 global vars calls the late_global_decl debug handler mark
1520 the variable as readonly.
1521
1522 2016-09-25 Oleg Endo <olegendo@gcc.gnu.org>
1523
1524 PR target/51244
1525 * config/sh/sh.c (sh_movt_set_dest, sh_movrt_set_dest): Add overloads.
1526 (sh_rtx_costs): Handle SET of movt and movrt patterns.
1527 * cnofig/sh/sh-protos.h (sh_movt_set_dest, sh_movrt_set_dest): Forward
1528 declare new overloads.
1529 * config/sh/sh.md (*cset_zero): Add variant that takes a treg_set_expr
1530 operand.
1531
1532 2016-09-24 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
1533
1534 * config/rs6000/rs6000.c (expand_block_compare, do_load_for_compare):
1535 Change TARGET_LITTLE_ENDIAN to !BYTES_BIG_ENDIAN.
1536
1537 2016-09-24 David Edelsohn <dje.gcc@gmail.com>
1538
1539 * configure.ac (gcc_cv_as_aix_dwloc): Fix typo in assembly fragment.
1540 * configure: Regenerate.
1541
1542 2016-09-24 Marek Polacek <polacek@redhat.com>
1543
1544 PR c/77490
1545 * doc/invoke.texi: Document -Wbool-operation.
1546
1547 2016-09-23 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
1548
1549 * config/rs6000/rs6000.md (cmpmemsi): New define_expand.
1550 * config/rs6000/rs6000.c (expand_block_compare): New function used by
1551 cmpmemsi pattern to do builtin expansion of memcmp ().
1552 (compute_current_alignment): Add helper function for
1553 expand_block_compare used to compute alignment as the compare proceeds.
1554 (select_block_compare_mode): Used by expand_block_compare to select
1555 the mode used for reading the next chunk of bytes in the compare.
1556 (do_load_for_compare): Used by expand_block_compare to emit the load
1557 insns for the compare.
1558 (rs6000_emit_dot_insn): Moved this function to avoid a forward
1559 reference from expand_block_compare ().
1560 * config/rs6000/rs6000-protos.h (expand_block_compare): Add a
1561 prototype for this function.
1562 * config/rs6000/rs6000.opt (mblock-compare-inline-limit): Add a new
1563 target option for controlling how much code inline expansion of
1564 memcmp() will be allowed to generate.
1565
1566 2016-09-23 Jakub Jelinek <jakub@redhat.com>
1567
1568 * hooks.c (hook_bool_bool_false, hook_bool_bool_gcc_optionsp_false,
1569 hook_bool_mode_false, hook_bool_mode_true,
1570 hook_bool_mode_const_rtx_false, hook_bool_mode_const_rtx_true,
1571 hook_bool_mode_rtx_false, hook_bool_mode_rtx_true,
1572 hook_bool_const_rtx_insn_const_rtx_insn_true,
1573 hook_bool_mode_uhwi_false, hook_void_FILEptr_constcharptr,
1574 hook_bool_FILEptr_rtx_false, hook_bool_gsiptr_false,
1575 hook_bool_const_tree_hwi_hwi_const_tree_false,
1576 hook_bool_const_tree_hwi_hwi_const_tree_true,
1577 default_can_output_mi_thunk_no_vcall, hook_int_uint_mode_1,
1578 hook_int_const_tree_0, hook_int_const_tree_const_tree_1,
1579 hook_int_rtx_0, hook_int_rtx_bool_0, hook_void_tree,
1580 hook_void_constcharptr, hook_void_tree_treeptr, hook_void_int_int,
1581 hook_bool_tree_false, hook_bool_const_tree_false, hook_bool_tree_true,
1582 hook_bool_const_tree_true, hook_bool_tree_tree_false,
1583 hook_bool_tree_tree_true, hook_bool_tree_bool_false,
1584 hook_bool_rtx_insn_true, hook_bool_rtx_false,
1585 hook_bool_uintp_uintp_false,
1586 hook_bool_rtx_mode_int_int_intp_bool_false, hook_rtx_rtx_null,
1587 hook_rtx_tree_int_null, hook_uint_mode_0,
1588 hook_constcharptr_const_tree_null, hook_tree_tree_int_treep_bool_null,
1589 hook_tree_tree_tree_null, hook_tree_tree_tree_tree_null,
1590 hook_constcharptr_const_rtx_insn_null,
1591 hook_constcharptr_const_tree_const_tree_null,
1592 hook_constcharptr_int_const_tree_null,
1593 hook_constcharptr_int_const_tree_const_tree_null,
1594 hook_tree_const_tree_null, hook_bool_rtx_insn_int_false,
1595 hook_void_rtx_insn_int, hook_void_gcc_optionsp): For arguments with
1596 ATTRIBUTE_UNUSED, remove parameter name as well as ATTRIBUTE_UNUSED.
1597
1598 * vec.h (vNULL): Extend comment to say = vNULL initialization
1599 isn't needed for static vars.
1600
1601 * sel-sched-ir.c (sel_global_bb_info, sel_region_bb_info,
1602 loop_nests, s_i_d, last_added_blocks): Remove unnecessary
1603 = vNULL initialization of file scope vec.
1604 * passes.c (pass_tab, enabled_pass_uid_range_tab,
1605 disabled_pass_uid_range_tab): Likewise.
1606 * haifa-sched.c (sched_luids, h_i_d): Likewise.
1607 * tree-chkp-opt.c (check_infos): Likewise.
1608 * sel-sched.c (vec_av_set, vec_temp_moveop_nops): Likewise.
1609
1610 * vec.h (vnull::operator vec): Add constexpr keyword for
1611 C++11 and later.
1612
1613 2016-09-23 Doug Gilmore <doug.gilmore@imgtec.com>
1614
1615 PR tree-optimization/77654
1616 * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Add call
1617 to duplicate_ssa_name_ptr_info.
1618
1619 2016-09-23 David Malcolm <dmalcolm@redhat.com>
1620
1621 PR preprocessor/77672
1622 * input.c (selftest::test_lexer_string_locations_simple): Update
1623 test to expect location information of the terminator character
1624 at the location of the final closing quote.
1625 (selftest::test_lexer_string_locations_hex): Likewise.
1626 (selftest::test_lexer_string_locations_oct): Likewise.
1627 (selftest::test_lexer_string_locations_letter_escape_1): Likewise.
1628 (selftest::test_lexer_string_locations_letter_escape_2): Likewise.
1629 (selftest::test_lexer_string_locations_ucn4): Likewise.
1630 (selftest::test_lexer_string_locations_ucn8): Likewise.
1631 (selftest::test_lexer_string_locations_u8): Likewise.
1632 (selftest::test_lexer_string_locations_utf8_source): Likewise.
1633 (selftest::test_lexer_string_locations_concatenation_1): Likewise.
1634 (selftest::test_lexer_string_locations_concatenation_2): Likewise.
1635 (selftest::test_lexer_string_locations_concatenation_3): Likewise.
1636 (selftest::test_lexer_string_locations_macro): Likewise.
1637 (selftest::test_lexer_string_locations_long_line): Likewise.
1638
1639 2016-09-23 Richard Biener <rguenther@suse.de>
1640
1641 * tree-ssa-sccvn.c (visit_reference_op_call): Value number
1642 virtual definition to virtual use if the call devirtualizes
1643 to a const or pure function.
1644 (visit_use): Also visit calls we can devirtualize to a
1645 const or pure function.
1646
1647 2016-09-23 Richard Biener <rguenther@suse.de>
1648
1649 PR tree-optimization/77697
1650 * tree-ssa-forwprop.c (defcodefor_name): Remove bogus code,
1651 signal error if we have sth ternary or unhandled.
1652
1653 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
1654
1655 * config/arm/arm_neon.h (vabd_f16): New.
1656 (vabdq_f16): New.
1657 (vabs_f16): New.
1658 (vabsq_f16): New.
1659 (vadd_f16): New.
1660 (vaddq_f16): New.
1661 (vcage_f16): New.
1662 (vcageq_f16): New.
1663 (vcagt_f16): New.
1664 (vcagtq_f16): New.
1665 (vcale_f16): New.
1666 (vcaleq_f16): New.
1667 (vcalt_f16): New.
1668 (vcaltq_f16): New.
1669 (vceq_f16): New.
1670 (vceqq_f16): New.
1671 (vceqz_f16): New.
1672 (vceqzq_f16): New.
1673 (vcge_f16): New.
1674 (vcgeq_f16): New.
1675 (vcgez_f16): New.
1676 (vcgezq_f16): New.
1677 (vcgt_f16): New.
1678 (vcgtq_f16): New.
1679 (vcgtz_f16): New.
1680 (vcgtzq_f16): New.
1681 (vcle_f16): New.
1682 (vcleq_f16): New.
1683 (vclez_f16): New.
1684 (vclezq_f16): New.
1685 (vclt_f16): New.
1686 (vcltq_f16): New.
1687 (vcltz_f16): New.
1688 (vcltzq_f16): New.
1689 (vcvt_f16_s16): New.
1690 (vcvt_f16_u16): New.
1691 (vcvt_s16_f16): New.
1692 (vcvt_u16_f16): New.
1693 (vcvtq_f16_s16): New.
1694 (vcvtq_f16_u16): New.
1695 (vcvtq_s16_f16): New.
1696 (vcvtq_u16_f16): New.
1697 (vcvta_s16_f16): New.
1698 (vcvta_u16_f16): New.
1699 (vcvtaq_s16_f16): New.
1700 (vcvtaq_u16_f16): New.
1701 (vcvtm_s16_f16): New.
1702 (vcvtm_u16_f16): New.
1703 (vcvtmq_s16_f16): New.
1704 (vcvtmq_u16_f16): New.
1705 (vcvtn_s16_f16): New.
1706 (vcvtn_u16_f16): New.
1707 (vcvtnq_s16_f16): New.
1708 (vcvtnq_u16_f16): New.
1709 (vcvtp_s16_f16): New.
1710 (vcvtp_u16_f16): New.
1711 (vcvtpq_s16_f16): New.
1712 (vcvtpq_u16_f16): New.
1713 (vcvt_n_f16_s16): New.
1714 (vcvt_n_f16_u16): New.
1715 (vcvtq_n_f16_s16): New.
1716 (vcvtq_n_f16_u16): New.
1717 (vcvt_n_s16_f16): New.
1718 (vcvt_n_u16_f16): New.
1719 (vcvtq_n_s16_f16): New.
1720 (vcvtq_n_u16_f16): New.
1721 (vfma_f16): New.
1722 (vfmaq_f16): New.
1723 (vfms_f16): New.
1724 (vfmsq_f16): New.
1725 (vmax_f16): New.
1726 (vmaxq_f16): New.
1727 (vmaxnm_f16): New.
1728 (vmaxnmq_f16): New.
1729 (vmin_f16): New.
1730 (vminq_f16): New.
1731 (vminnm_f16): New.
1732 (vminnmq_f16): New.
1733 (vmul_f16): New.
1734 (vmul_lane_f16): New.
1735 (vmul_n_f16): New.
1736 (vmulq_f16): New.
1737 (vmulq_lane_f16): New.
1738 (vmulq_n_f16): New.
1739 (vneg_f16): New.
1740 (vnegq_f16): New.
1741 (vpadd_f16): New.
1742 (vpmax_f16): New.
1743 (vpmin_f16): New.
1744 (vrecpe_f16): New.
1745 (vrecpeq_f16): New.
1746 (vrnd_f16): New.
1747 (vrndq_f16): New.
1748 (vrnda_f16): New.
1749 (vrndaq_f16): New.
1750 (vrndm_f16): New.
1751 (vrndmq_f16): New.
1752 (vrndn_f16): New.
1753 (vrndnq_f16): New.
1754 (vrndp_f16): New.
1755 (vrndpq_f16): New.
1756 (vrndx_f16): New.
1757 (vrndxq_f16): New.
1758 (vrsqrte_f16): New.
1759 (vrsqrteq_f16): New.
1760 (vrecps_f16): New.
1761 (vrecpsq_f16): New.
1762 (vrsqrts_f16): New.
1763 (vrsqrtsq_f16): New.
1764 (vsub_f16): New.
1765 (vsubq_f16): New.
1766
1767 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
1768
1769 * config.gcc (extra_headers): Add arm_fp16.h
1770 * config/arm/arm_fp16.h: New.
1771 * config/arm/arm_neon.h: Include "arm_fp16.h".
1772
1773 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
1774
1775 * config/arm/arm_neon_builtins.def (vadd): New (v8hf, v4hf
1776 variants).
1777 (vmulf): New (v8hf, v4hf variants).
1778 (vfma): New (v8hf, v4hf variants).
1779 (vfms): New (v8hf, v4hf variants).
1780 (vsub): New (v8hf, v4hf variants).
1781 (vcage): New (v8hf, v4hf variants).
1782 (vcagt): New (v8hf, v4hf variants).
1783 (vcale): New (v8hf, v4hf variants).
1784 (vcalt): New (v8hf, v4hf variants).
1785 (vceq): New (v8hf, v4hf variants).
1786 (vcgt): New (v8hf, v4hf variants).
1787 (vcge): New (v8hf, v4hf variants).
1788 (vcle): New (v8hf, v4hf variants).
1789 (vclt): New (v8hf, v4hf variants).
1790 (vceqz): New (v8hf, v4hf variants).
1791 (vcgez): New (v8hf, v4hf variants).
1792 (vcgtz): New (v8hf, v4hf variants).
1793 (vcltz): New (v8hf, v4hf variants).
1794 (vclez): New (v8hf, v4hf variants).
1795 (vabd): New (v8hf, v4hf variants).
1796 (vmaxf): New (v8hf, v4hf variants).
1797 (vmaxnm): New (v8hf, v4hf variants).
1798 (vminf): New (v8hf, v4hf variants).
1799 (vminnm): New (v8hf, v4hf variants).
1800 (vpmaxf): New (v4hf variant).
1801 (vpminf): New (v4hf variant).
1802 (vpadd): New (v4hf variant).
1803 (vrecps): New (v8hf, v4hf variants).
1804 (vrsqrts): New (v8hf, v4hf variants).
1805 (vabs): New (v8hf, v4hf variants).
1806 (vneg): New (v8hf, v4hf variants).
1807 (vrecpe): New (v8hf, v4hf variants).
1808 (vrnd): New (v8hf, v4hf variants).
1809 (vrnda): New (v8hf, v4hf variants).
1810 (vrndm): New (v8hf, v4hf variants).
1811 (vrndn): New (v8hf, v4hf variants).
1812 (vrndp): New (v8hf, v4hf variants).
1813 (vrndx): New (v8hf, v4hf variants).
1814 (vrsqrte): New (v8hf, v4hf variants).
1815 (vmul_lane): Add v4hf and v8hf variants.
1816 (vmul_n): Add v4hf and v8hf variants.
1817 (vext): New (v8hf, v4hf variants).
1818 (vcvts): New (v8hi, v4hi variants).
1819 (vcvts): New (v8hf, v4hf variants).
1820 (vcvtu): New (v8hi, v4hi variants).
1821 (vcvtu): New (v8hf, v4hf variants).
1822 (vcvts_n): New (v8hf, v4hf variants).
1823 (vcvtu_n): New (v8hi, v4hi variants).
1824 (vcvts_n): New (v8hi, v4hi variants).
1825 (vcvtu_n): New (v8hf, v4hf variants).
1826 (vbsl): New (v8hf, v4hf variants).
1827 (vcvtas): New (v8hf, v4hf variants).
1828 (vcvtau): New (v8hf, v4hf variants).
1829 (vcvtms): New (v8hf, v4hf variants).
1830 (vcvtmu): New (v8hf, v4hf variants).
1831 (vcvtns): New (v8hf, v4hf variants).
1832 (vcvtnu): New (v8hf, v4hf variants).
1833 (vcvtps): New (v8hf, v4hf variants).
1834 (vcvtpu): New (v8hf, v4hf variants).
1835
1836 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
1837
1838 * config/arm/arm-builtins.c (hf_UP): New.
1839 (si_UP): New.
1840 (vfp_builtin_data): New. Update comment.
1841 (enum arm_builtins): Include "arm_vfp_builtins.def".
1842 (ARM_BUILTIN_VFP_PATTERN_START): New.
1843 (arm_init_vfp_builtins): New.
1844 (arm_init_builtins): Add arm_init_vfp_builtins.
1845 (arm_expand_vfp_builtin): New.
1846 (arm_expand_builtins): Update for arm_expand_vfp_builtin. Fix
1847 long line.
1848 * config/arm/arm_vfp_builtins.def: New file.
1849 * config/arm/t-arm (arm.o): Add arm_vfp_builtins.def.
1850 (arm-builtins.o): Likewise.
1851
1852 2016-09-23 Kugan Vivekanandarajah <kuganv@linaro.org>
1853
1854 PR ipa/77677
1855 * ipa-cp.c (propagate_vr_accross_jump_function): Drop TREE_OVERFLOW
1856 from constant while creating value range.
1857
1858 2016-09-23 Renlin Li <renlin.li@arm.com>
1859
1860 * ira.c (ira): Move ira_use_lra_p initialization code to ...
1861 (ira_init_once): Here.
1862
1863 2016-09-23 Uros Bizjak <ubizjak@gmail.com>
1864 Jakub Jelinek <jakub@redhat.com>
1865
1866 * hooks.h (hook_uint_uintp_false): Rename to...
1867 (hook_bool_uint_uintp_false): ... this.
1868 * hooks.c (hook_uint_uintp_false): Rename to...
1869 (hook_bool_uint_uintp_false): ... this.
1870 * target.def (elf_flags_numeric): Use hook_bool_uint_uintp_false
1871 instead of hook_uint_uintp_false.
1872
1873 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
1874
1875 * config/arm/arm-builtins.c (arm_init_neon_builtin): New.
1876 (arm_init_builtins): Move body of a loop to the standalone
1877 function arm_init_neon_builtin.
1878 (arm_expand_neon_builtin_1): New. Update comment. Function body
1879 moved from arm_neon_builtin with some white-space fixes.
1880 (arm_expand_neon_builtin): Move code into the standalone function
1881 arm_expand_neon_builtin_1.
1882
1883 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
1884
1885 * config/arm/iterators.md (VCVTHI): New.
1886 (NEON_VCMP): Add UNSPEC_VCLT and UNSPEC_VCLE. Fix a long line.
1887 (NEON_VAGLTE): New.
1888 (VFM_LANE_AS): New.
1889 (VH_CVTTO): New.
1890 (V_reg): Add HF, V4HF and V8HF. Fix white-space.
1891 (V_HALF): Add V4HF. Fix white-space.
1892 (V_if_elem): Add HF, V4HF and V8HF. Fix white-space.
1893 (V_s_elem): Likewise.
1894 (V_sz_elem): Fix white-space.
1895 (V_elem_ch): Likewise.
1896 (VH_elem_ch): New.
1897 (scalar_mul_constraint): Add V8HF and V4HF.
1898 (Is_float_mode): Fix white-space.
1899 (Is_d_reg): Add V4HF and V8HF. Fix white-space.
1900 (q): Add HF. Fix white-space.
1901 (float_sup): New.
1902 (float_SUP): New.
1903 (cmp_op_unsp): Add UNSPEC_VCALE and UNSPEC_VCALT.
1904 (neon_vfm_lane_as): New.
1905 * config/arm/neon.md (add<mode>3_fp16): New.
1906 (sub<mode>3_fp16): New.
1907 (mul<mode>3add<mode>_neon): New.
1908 (fma<VH:mode>4_intrinsic): New.
1909 (fmsub<VCVTF:mode>4_intrinsic): Fix white-space.
1910 (fmsub<VH:mode>4_intrinsic): New.
1911 (<absneg_str><mode>2): New.
1912 (neon_v<absneg_str><mode>): New.
1913 (neon_v<fp16_rnd_str><mode>): New.
1914 (neon_vrsqrte<mode>): New.
1915 (neon_vpaddv4hf): New.
1916 (neon_vadd<mode>): New.
1917 (neon_vsub<mode>): New.
1918 (neon_vmulf<mode>): New.
1919 (neon_vfma<VH:mode>): New.
1920 (neon_vfms<VH:mode>): New.
1921 (neon_vc<cmp_op><mode>): New.
1922 (neon_vc<cmp_op><mode>_fp16insn): New
1923 (neon_vc<cmp_op_unsp><mode>_fp16insn_unspec): New.
1924 (neon_vca<cmp_op><mode>): New.
1925 (neon_vca<cmp_op><mode>_fp16insn): New.
1926 (neon_vca<cmp_op_unsp><mode>_fp16insn_unspec): New.
1927 (neon_vc<cmp_op>z<mode>): New.
1928 (neon_vabd<mode>): New.
1929 (neon_v<maxmin>f<mode>): New.
1930 (neon_vp<maxmin>fv4hf: New.
1931 (neon_<fmaxmin_op><mode>): New.
1932 (neon_vrecps<mode>): New.
1933 (neon_vrsqrts<mode>): New.
1934 (neon_vrecpe<mode>): New (VH variant).
1935 (neon_vdup_lane<mode>_internal): New.
1936 (neon_vdup_lane<mode>): New.
1937 (neon_vcvt<sup><mode>): New (VCVTHI variant).
1938 (neon_vcvt<sup><mode>): New (VH variant).
1939 (neon_vcvt<sup>_n<mode>): New (VH variant).
1940 (neon_vcvt<sup>_n<mode>): New (VCVTHI variant).
1941 (neon_vcvt<vcvth_op><sup><mode>): New.
1942 (neon_vmul_lane<mode>): New.
1943 (neon_vmul_n<mode>): New.
1944 * config/arm/unspecs.md (UNSPEC_VCALE): New
1945 (UNSPEC_VCALT): New.
1946 (UNSPEC_VFMA_LANE): New.
1947 (UNSPECS_VFMS_LANE): New.
1948
1949 2016-09-23 Dominik Vogt <vogt@linux.vnet.ibm.com>
1950
1951 * config/s390/s390.md ("*extzv<mode>_zEC12", "*extzv<mode>_z10")
1952 ("*extzv<mode><clobbercc_or_nocc>"):
1953 Correct a typo in a comment.
1954 Merged patterns.
1955 ("*insv<mode>_zEC12", "*insv<mode>_z10")
1956 ("*insv<mode><clobbercc_or_nocc>"): Ditto.
1957 ("*insv<mode>_zEC12_appendbitsleft")
1958 ("*insv<mode><clobbercc_or_nocc>_appendbitsleft")
1959 ("*insv<mode>_z10_appendbitsleft"): Ditto.
1960 ("*insv<mode>_zEC12_noshift", "*insv<mode>_z10_noshift")
1961 ("*insv<mode><clobbercc_or_nocc>_noshift"): Ditto.
1962 Provide pattern with operands switched.
1963 ("*pre_z10_extv<mode>"):
1964 Use new subst patterns.
1965 ("*extzvdi<clobbercc_or_nocc>_lshiftrt", "*<risbg_n>_ior_and_sr_ze")
1966 ("*extvsidi<clobbercc_or_nocc>", "*<risbg_n>_and_subregdi_rotr")
1967 ("*<risbg_n>_and_subregdi_rotl", "*<risbg_n>_di_and_rot")
1968 ("*insv_z10_noshift_cc", "*insv_z10_noshift_cconly")
1969 ("*<risbg_n>_<mode>_ior_and_lshiftrt")
1970 ("*<risbg_n>_sidi_ior_and_lshiftrt")
1971 ("*trunc_sidi_and_subreg_lshrt<clobbercc_or_nocc>"):
1972 New patterns.
1973 ("*extzv_<mode>_sll", "*extzv_<mode>_srl")
1974 ("*extzv_<mode>_srl<clobbercc_or_nocc>")
1975 ("*extzv_<mode>_sll<clobbercc_or_nocc>"): Renamed patterns, use risbgn
1976 on zEC12.
1977 ("SINT"): New mode_iterator with SI, HI, QI.
1978 * config/s390/subst.md ("clobbercc_or_nocc_subst", "z10_or_zEC12_cond")
1979 ("clobbercc_or_nocc", "risbg_n"): New constructs for risbg pattern
1980 duplication.
1981
1982 2016-09-23 Dominik Vogt <vogt@linux.vnet.ibm.com>
1983
1984 * config/s390/predicates.md ("contiguous_bitmask_operand"): Adapt to
1985 new interface of s390_contiguous_bitmask_p.
1986 ("contiguous_bitmask_nowrap_operand"): New predicate.
1987 ("*anddi3_cc", "*anddi3_cconly", "*anddi3"): Replace NxxDq with NxxDw.
1988 * config/s390/constraints.md ("NxxDw", "NxxSq"): Adapt to new interface
1989 of s390_contiguous_bitmask_p.
1990 ("NxxDw"): Rename NxxDq constraint to NxxDw.
1991 ("NxxSw"): New constraint.
1992 * config/s390/s390.md ("*andsi3_zarch"): Enable bitmask wraparound.
1993 * config/s390/s390-protos.h (s390_contiguous_bitmask_p): Updated
1994 interface.
1995 (s390_contiguous_bitmask_nowrap_p): Export.
1996 * config/s390/s390.c (s390_contiguous_bitmask_nowrap_p): New name of
1997 former s390_contiguous_bitmask_p.
1998 (s390_contiguous_bitmask_p): Use s390_contiguous_bitmask_nowrap_p to
1999 detect contiguous bit ranges with wraparound. Change signature to
2000 return START and END position instead of POS and LENGTH.
2001 (s390_contiguous_bitmask_vector_p): Remove extra code for continous bit
2002 ranges with wraparound.
2003 (s390_extzv_shift_ok): Use s390_contiguous_bitmask_nowrap_p.
2004 (s390_contiguous_bitmask_vector_p,s390_extzv_shift_ok,print_operand):
2005 Adapt to new signature of s390_contiguous_bitmask_p.
2006
2007 2016-09-23 Bin Cheng <bin.cheng@arm.com>
2008
2009 * tree-vect-loop-manip.c (create_intersect_range_checks_index): New.
2010 (create_intersect_range_checks): New.
2011 (vect_create_cond_for_alias_checks): Call above function.
2012
2013 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
2014
2015 * config/arm/iterators.md (Code iterators): Fix some white-space
2016 in the comments.
2017 (GLTE): New.
2018 (ABSNEG): New
2019 (FCVT): Moved from vfp.md.
2020 (VCVT_HF_US_N): New.
2021 (VCVT_SI_US_N): New.
2022 (VCVT_HF_US): New.
2023 (VCVTH_US): New.
2024 (FP16_RND): New.
2025 (absneg_str): New.
2026 (FCVTI32typename): Moved from vfp.md.
2027 (sup): Add UNSPEC_VCVTA_S, UNSPEC_VCVTA_U, UNSPEC_VCVTM_S,
2028 UNSPEC_VCVTM_U, UNSPEC_VCVTN_S, UNSPEC_VCVTN_U, UNSPEC_VCVTP_S,
2029 UNSPEC_VCVTP_U, UNSPEC_VCVT_HF_S_N, UNSPEC_VCVT_HF_U_N,
2030 UNSPEC_VCVT_SI_S_N, UNSPEC_VCVT_SI_U_N, UNSPEC_VCVTH_S_N,
2031 UNSPEC_VCVTH_U_N, UNSPEC_VCVTH_S and UNSPEC_VCVTH_U.
2032 (vcvth_op): New.
2033 (fp16_rnd_str): New.
2034 (fp16_rnd_insn): New.
2035 * config/arm/unspecs.md (UNSPEC_VCVT_HF_S_N): New.
2036 (UNSPEC_VCVT_HF_U_N): New.
2037 (UNSPEC_VCVT_SI_S_N): New.
2038 (UNSPEC_VCVT_SI_U_N): New.
2039 (UNSPEC_VCVTH_S): New.
2040 (UNSPEC_VCVTH_U): New.
2041 (UNSPEC_VCVTA_S): New.
2042 (UNSPEC_VCVTA_U): New.
2043 (UNSPEC_VCVTM_S): New.
2044 (UNSPEC_VCVTM_U): New.
2045 (UNSPEC_VCVTN_S): New.
2046 (UNSPEC_VCVTN_U): New.
2047 (UNSPEC_VCVTP_S): New.
2048 (UNSPEC_VCVTP_U): New.
2049 (UNSPEC_VCVTP_S): New.
2050 (UNSPEC_VCVTP_U): New.
2051 (UNSPEC_VRND): New.
2052 (UNSPEC_VRNDA): New.
2053 (UNSPEC_VRNDI): New.
2054 (UNSPEC_VRNDM): New.
2055 (UNSPEC_VRNDN): New.
2056 (UNSPEC_VRNDP): New.
2057 (UNSPEC_VRNDX): New.
2058 * config/arm/vfp.md (<absneg_str>hf2): New.
2059 (neon_vabshf): New.
2060 (neon_v<fp16_rnd_str>hf): New.
2061 (neon_vrndihf): New.
2062 (addhf3): New.
2063 (subhf3): New.
2064 (divhf3): New.
2065 (mulhf3): New.
2066 (*mulsf3neghf_vfp): New.
2067 (*negmulhf3_vfp): New.
2068 (*mulsf3addhf_vfp): New.
2069 (*mulhf3subhf_vfp): New.
2070 (*mulhf3neghfaddhf_vfp): New.
2071 (*mulhf3neghfsubhf_vfp): New.
2072 (fmahf4): New.
2073 (neon_vfmahf): New.
2074 (fmsubhf4_fp16): New.
2075 (neon_vfmshf): New.
2076 (*fnmsubhf4): New.
2077 (*fnmaddhf4): New.
2078 (neon_vsqrthf): New.
2079 (neon_vrsqrtshf): New.
2080 (FCVT): Move to iterators.md.
2081 (FCVTI32typename): Likewise.
2082 (neon_vcvth<sup>hf): New.
2083 (neon_vcvth<sup>si): New.
2084 (neon_vcvth<sup>_nhf_unspec): New.
2085 (neon_vcvth<sup>_nhf): New.
2086 (neon_vcvth<sup>_nsi_unspec): New.
2087 (neon_vcvth<sup>_nsi): New.
2088 (neon_vcvt<vcvth_op>h<sup>si): New.
2089 (neon_<fmaxmin_op>hf): New.
2090
2091 2016-09-23 Dominik Vogt <vogt@linux.vnet.ibm.com>
2092
2093 * config/s390/s390.md (bitoff, bitoff_plus): Neq mode attributes.
2094 ("*extzv<mode>_zEC12", "*insv<mode>_zEC12", "*insv<mode>_z10")
2095 ("*insv<mode>_zEC12_appendbitsleft")
2096 ("*insv<mode>_z10_appendbitsleft", "*r<noxa>sbg_<mode>_sll")
2097 ("*r<noxa>sbg_<mode>_srl"): Use new attributes.
2098
2099 2016-09-23 Jakub Jelinek <jakub@redhat.com>
2100
2101 * ipa-cp.c (ipcp_store_vr_results): Avoid static local var zero.
2102 * sreal.h (sreal::min, sreal::max): Avoid static local vars,
2103 construct values without normalization.
2104 * tree-ssa-sccvn.c (vn_reference_lookup_3): Don't initialize
2105 static local lhs_ops to vNULL.
2106
2107 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
2108 Jiong Wang <jiong.wang@arm.com>
2109
2110 * config/arm/arm.c (coproc_secondary_reload_class): Make HFmode
2111 available when FP16 instructions are available.
2112 (output_move_vfp): Add support for 16-bit data moves.
2113 (arm_validize_comparison): Fix some white-space. Support HFmode
2114 by conversion to SFmode.
2115 * config/arm/arm.md (truncdfhf2): Fix a comment.
2116 (extendhfdf2): Likewise.
2117 (cstorehf4): New.
2118 (movsicc): Fix some white-space.
2119 (movhfcc): New.
2120 (movsfcc): Fix some white-space.
2121 (*cmovhf): New.
2122 * config/arm/vfp.md (*arm_movhi_vfp): Disable when VFP FP16
2123 instructions are available.
2124 (*thumb2_movhi_vfp): Likewise.
2125 (*arm_movhi_fp16): New.
2126 (*thumb2_movhi_fp16): New.
2127 (*movhf_vfp_fp16): New.
2128 (*movhf_vfp_neon): Disable when VFP FP16 instructions are available.
2129 (*movhf_vfp): Likewise.
2130 (extendhfsf2): Enable when VFP FP16 instructions are available.
2131 (truncsfhf2): Enable when VFP FP16 instructions are available.
2132
2133 2016-09-23 Martin Liska <mliska@suse.cz>
2134
2135 * config/s390/vx-builtins.md: Replace 'adress' with 'address'.
2136
2137 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
2138
2139 * config/arm/arm.c (arm_evpc_neon_vuzp): Add support for V8HF and
2140 V4HF modes.
2141 (arm_evpc_neon_vtrn): Likewise.
2142 (arm_evpc_neon_vrev): Likewise.
2143 (arm_evpc_neon_vext): Likewise.
2144 * config/arm/arm_neon.h (vbsl_f16): New.
2145 (vbslq_f16): New.
2146 (vdup_n_f16): New.
2147 (vdupq_n_f16): New.
2148 (vdup_lane_f16): New.
2149 (vdupq_lane_f16): New.
2150 (vext_f16): New.
2151 (vextq_f16): New.
2152 (vmov_n_f16): New.
2153 (vmovq_n_f16): New.
2154 (vrev64_f16): New.
2155 (vrev64q_f16): New.
2156 (vtrn_f16): New.
2157 (vtrnq_f16): New.
2158 (vuzp_f16): New.
2159 (vuzpq_f16): New.
2160 (vzip_f16): New.
2161 (vzipq_f16): New.
2162 * config/arm/arm_neon_buillins.def (vdup_n): New (v8hf, v4hf variants).
2163 (vdup_lane): New (v8hf, v4hf variants).
2164 (vext): New (v8hf, v4hf variants).
2165 (vbsl): New (v8hf, v4hf variants).
2166 * config/arm/iterators.md (VDQWH): New.
2167 (VH): New.
2168 (V_double_vector_mode): Add V8HF and V4HF. Fix white-space.
2169 (Scalar_mul_8_16): Fix white-space.
2170 (Is_d_reg): Add V4HF and V8HF.
2171 * config/arm/neon.md (neon_vdup_lane<mode>_internal): New.
2172 (neon_vdup_lane<mode>): New.
2173 (neon_vtrn<mode>_internal): Replace VDQW with VDQWH.
2174 (*neon_vtrn<mode>_insn): Likewise.
2175 (neon_vzip<mode>_internal): Likewise. Also fix white-space.
2176 (*neon_vzip<mode>_insn): Likewise
2177 (neon_vuzp<mode>_internal): Likewise.
2178 (*neon_vuzp<mode>_insn): Likewise
2179 * config/arm/vec-common.md (vec_perm_const<mode>): New.
2180
2181 2016-09-23 Jiong Wang <jiong.wang@arm.com>
2182 Matthew Wahab <matthew.wahab@arm.com>
2183
2184 * config/arm/arm.c (output_move_vfp): Weaken assert to allow HImode.
2185 (arm_hard_regno_mode_ok): Allow HImode values in VFP registers.
2186 * config/arm/arm.md (*movhi_bytes): Disable when VFP registers are
2187 available. Also fix some white-space.
2188 * config/arm/vfp.md (*arm_movhi_vfp): New.
2189 (*thumb2_movhi_vfp): New.
2190
2191 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
2192
2193 * config/arm/arm-c.c (arm_cpu_builtins): Define
2194 "__ARM_FEATURE_FP16_SCALAR_ARITHMETIC" and
2195 "__ARM_FEATURE_FP16_VECTOR_ARITHMETIC".
2196
2197 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
2198
2199 * doc/sourcebuild.texi (ARM-specific attributes): Add anchor for
2200 arm_v8_1a_neon_ok. Add entries for arm_v8_2a_fp16_scalar_ok,
2201 arm_v8_2a_fp16_scalar_hw, arm_v8_2a_fp16_neon_ok and
2202 arm_v8_2a_fp16_neon_hw.
2203 (Add options): Add entries for arm_v8_1a_neon, arm_v8_2a_scalar,
2204 arm_v8_2a_neon.
2205
2206 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
2207
2208 * doc/sourcebuild.texi (ARM-specific attributes): Add entries for
2209 arm_fp16_alternative_ok and arm_fp16_none_ok.
2210
2211 2016-09-23 Martin Liska <mliska@suse.cz>
2212
2213 * ipa-icf.c (sem_variable::merge): Replace adress with address.
2214
2215 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
2216
2217 * config/arm/arm-arches.def ("armv8.1-a"): Add FL_CRC32.
2218 ("armv8.2-a"): New.
2219 ("armv8.2-a+fp16"): New.
2220 * config/arm/arm-protos.h (FL2_ARCH8_2): New.
2221 (FL2_FP16INST): New.
2222 (FL2_FOR_ARCH8_2A): New.
2223 * config/arm/arm-tables.opt: Regenerate.
2224 * config/arm/arm.c (arm_arch8_2): New.
2225 (arm_fp16_inst): New.
2226 (arm_option_override): Set arm_arch8_2 and arm_fp16_inst. Check
2227 for incompatible fp16-format settings.
2228 * config/arm/arm.h (TARGET_VFP_FP16INST): New.
2229 (TARGET_NEON_FP16INST): New.
2230 (arm_arch8_2): Declare.
2231 (arm_fp16_inst): Declare.
2232 * config/arm/bpabi.h (BE8_LINK_SPEC): Add entries for
2233 march=armv8.2-a and march=armv8.2-a+fp16.
2234 * config/arm/t-aprofile (Arch Matches): Add entries for armv8.2-a
2235 and armv8.2-a+fp16.
2236 * doc/invoke.texi (ARM Options): Add "-march=armv8.1-a",
2237 "-march=armv8.2-a" and "-march=armv8.2-a+fp16".
2238
2239 2016-09-23 Martin Liska <mliska@suse.cz>
2240
2241 * doc/extend.texi: Remove fused-madd from i386 target options.
2242
2243 2016-09-23 Martin Liska <mliska@suse.cz>
2244
2245 * config/i386/i386.c (ix86_valid_target_attribute_inner_p):
2246 Handle movbe.
2247
2248 2016-09-23 Martin Liska <mliska@suse.cz>
2249
2250 * config/i386/i386.c (ix86_valid_target_attribute_inner_p):
2251 Handle crc32.
2252
2253 2016-09-23 Martin Liska <mliska@suse.cz>
2254
2255 PR target/71652
2256 * config/i386/i386.c (ix86_option_override_internal): Change
2257 signature and return false when there's an error related to
2258 arch string.
2259 (release_options_strings): New function.
2260 (ix86_valid_target_attribute_tree): Call the function.
2261
2262 2016-09-23 Jakub Jelinek <jakub@redhat.com>
2263
2264 * hsa-gen.c (hsa_op_immed::hsa_op_immed Use CONSTRUCTOR_NELTS (...)
2265 instead of vec_safe_length (CONSTRUCTOR_ELTS (...)).
2266 (gen_hsa_ctor_assignment): Likewise.
2267 * print-tree.c (print_node): Likewise.
2268 * tree-dump.c (dequeue_and_dump): Likewise.
2269 * tree-sra.c (sra_modify_constructor_assign): Likewise.
2270 * expr.c (store_constructor): Likewise.
2271 * fold-const.c (operand_equal_p): Likewise.
2272 * tree-pretty-print.c (dump_generic_node): Likewise.
2273 * hsa-brig.c (hsa_op_immed::emit_to_buffer): Likewise.
2274 * ipa-icf-gimple.c (func_checker::compare_operand): Likewise.
2275
2276 2016-09-23 Richard Biener <rguenther@suse.de>
2277
2278 * hooks.h (hook_uint_uintp_false): Declare.
2279
2280 2016-09-22 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
2281
2282 * config/avr/avr.c (avr_rtx_costs_1): Handle DImode MULT.
2283 (avr_address_cost): Replace 61 with MAX_LD_OFFSET(mode).
2284
2285 2016-09-22 Martin Sebor <msebor@redhat.com>
2286
2287 PR target/77676
2288 * gimple-ssa-sprintf.c (target_int_min, target_int_max): Use
2289 HOST_BITS_PER_WIDE_INT, make a static local variable auto.
2290 (target_int_min): Correct computation.
2291 (format_integer): Use long long as the argument for the ll length
2292 modifier.
2293 (format_floating): Use target_int_max().
2294 (get_string_length): Same.
2295 (format_string): Avoid setting the bounded flag for strings
2296 of unknown length.
2297 (try_substitute_return_value): Avoid setting range info when
2298 the result isn't bounded.
2299 * varasm.c (assemble_name): Increase buffer size.
2300
2301 2016-09-22 Andre Vieira <andre.simoesdiasvieira@arm.com>
2302 Terry Guo <terry.guo@arm.com>
2303
2304 * target.def (elf_flags_numeric): New target hook.
2305 * targhooks.h (default_asm_elf_flags_numeric): New.
2306 * varasm.c (default_asm_elf_flags_numeric): New.
2307 (default_elf_asm_named_section): Use new target hook.
2308 * config/arm/arm.opt (mpure-code): New.
2309 * config/arm/arm.h (SECTION_ARM_PURECODE): New.
2310 * config/arm/arm.c (arm_asm_init_sections): Add section
2311 attribute to default text section if -mpure-code.
2312 (arm_option_check_internal): Diagnose use of option with
2313 non supported targets and/or options.
2314 (arm_asm_elf_flags_numeric): New.
2315 (arm_function_section): New.
2316 (arm_elf_section_type_flags): New.
2317 * config/arm/elf.h (JUMP_TABLES_IN_TEXT_SECTION): Disable
2318 for -mpure-code.
2319 * gcc/doc/texi (TARGET_ASM_ELF_FLAGS_NUMERIC): New.
2320 * gcc/doc/texi.in (TARGET_ASM_ELF_FLAGS_NUMERIC): Likewise.
2321
2322 2016-09-22 Jan Hubicka <hubicka@ucw.cz>
2323
2324 * regcprop.c (copyprop_hardreg_forward_1): Remove noop moves.
2325
2326 2016-09-22 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
2327
2328 * emit-rtl.c (next_cc0_user): Make argument type rtx_insn *.
2329 * rtl.h: Adjust prototype.
2330
2331 2016-09-22 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
2332
2333 * emit-rtl.c (next_active_insn): Change argument type to rtx_insn *.
2334 (prev_active_insn): Likewise.
2335 (active_insn_p): Likewise.
2336 * rtl.h: Adjust prototypes.
2337 * cfgcleanup.c (merge_blocks_move_successor_nojumps): Adjust.
2338 * config/arc/arc.md: Likewise.
2339 * config/pa/pa.c (branch_to_delay_slot_p): Likewise.
2340 (branch_needs_nop_p): Likewise.
2341 (use_skip_p): Likewise.
2342 * config/sh/sh.c (gen_block_redirect): Likewise.
2343 (split_branches): Likewise.
2344 * reorg.c (optimize_skip): Likewise.
2345 (fill_simple_delay_slots): Likewise.
2346 (fill_slots_from_thread): Likewise.
2347 (relax_delay_slots): Likewise.
2348 * resource.c (mark_target_live_regs): Likewise.
2349
2350 2016-09-22 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
2351
2352 * config/cris/cris.c (cris_asm_output_case_end): Change argument
2353 type to rtx_insn *.
2354 * emit-rtl.c (next_nonnote_nondebug_insn): Likewise.
2355 (prev_nonnote_nondebug_insn): Likewise.
2356 * config/cris/cris-protos.h: Adjust prototype.
2357 * rtl.h: Likewise.
2358 * jump.c (rtx_renumbered_equal_p): Adjust.
2359
2360 2016-09-22 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
2361
2362 * emit-rtl.c (prev_real_insn): Change argument type to rtx_insn *.
2363 * rtl.h: Adjust prototype.
2364 * config/sh/sh.md: Adjust.
2365 * dwarf2out.c (add_var_loc_to_decl): Likewise.
2366
2367 2016-09-22 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
2368
2369 * emit-rtl.c (next_nondebug_insn): Change argument type to rtx_insn *.
2370 (prev_nondebug_insn): Likewise.
2371 * loop-doloop.c (doloop_condition_get): Likewise.
2372 * rtl.h: Adjust prototype.
2373 * cfgloop.h: Likewise.
2374
2375 2016-09-22 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
2376
2377 * emit-rtl.c (next_nonnote_insn): Change argument type to rtx_insn *.
2378 (prev_nonnote_insn): Likewise.
2379 * jump.c (reversed_comparison_code_parts): Likewise.
2380 (reversed_comparison): Likewise.
2381 * rtl.h: Adjust prototypes.
2382 * config/arc/arc.md: Adjust.
2383 * cse.c (find_comparison_args): Likewise.
2384 * reorg.c (redundant_insn): Change return type to rtx_insn *.
2385 (fix_reg_dead_note): Change argument type to rtx_insn *.
2386 (delete_prior_computation): Likewise.
2387 (delete_computation): Likewise.
2388 (fill_slots_from_thread): Adjust.
2389 (relax_delay_slots): Likewise.
2390 * simplify-rtx.c (simplify_unary_operation_1): Likewise.
2391 (simplify_relational_operation_1): Likewise.
2392 (simplify_ternary_operation): Likewise.
2393
2394 2016-09-22 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
2395
2396 * config/arc/arc-protos.h (arc_label_align): Change type of
2397 variables from rtx to rtx_insn *.
2398 * config/arc/arc.c (arc_label_align): Likewise.
2399 * config/arm/arm.c (any_sibcall_could_use_r3): Likewise.
2400 * config/bfin/bfin.c (workaround_speculation): Likewise.
2401 * config/c6x/c6x.c (find_next_cycle_insn): Likewise.
2402 (find_last_same_clock): Likewise.
2403 (reorg_split_calls): Likewise.
2404 * config/cris/cris-protos.h (cris_cc0_user_requires_cmp): Likewise.
2405 * config/cris/cris.c (cris_cc0_user_requires_cmp): Likewise.
2406 * config/h8300/h8300-protos.h (same_cmp_preceding_p): Likewise.
2407 (same_cmp_following_p): Likewise.
2408 * config/h8300/h8300.c (same_cmp_preceding_p): Likewise.
2409 (same_cmp_following_p): Likwise.
2410 * config/m32r/m32r.c (m32r_expand_epilogue): Likewise.
2411 * config/nds32/nds32-protos.h (nds32_target_alignment): Likewise.
2412 * config/nds32/nds32.c (nds32_target_alignment): Likewise.
2413 * config/rl78/rl78.c (rl78_alloc_physical_registers_op2): Likewise.
2414 (rl78_alloc_physical_registers_cmp): Likewise.
2415 (rl78_alloc_physical_registers_umul): Likewise.
2416 (rl78_calculate_death_notes): Likewise.
2417 * config/s390/s390-protos.h (s390_label_align): Likewise.
2418 * config/s390/s390.c (s390_label_align): Likewise.
2419 * config/sh/sh.c (barrier_align): Likewise.
2420 * config/sparc/sparc-protos.h (emit_cbcond_nop): Likewise.
2421 * config/sparc/sparc.c (sparc_asm_function_epilogue): Likewise.
2422 (emit_cbcond_nop): Likewise.
2423
2424 2016-09-22 Martin Liska <mliska@suse.cz>
2425
2426 PR ipa/77653
2427 * ipa-icf.c (sem_variable::merge): Yield merge operation if
2428 alias address matters, not necessarily address of original.
2429
2430 2016-09-22 Richard Biener <rguenther@suse.de>
2431
2432 PR middle-end/77697
2433 * gimple-fold.c (fold_array_ctor_reference): Turn asserts into
2434 fold fails.
2435
2436 2016-09-22 Richard Biener <rguenther@suse.de>
2437
2438 PR middle-end/77677
2439 * gimple-match-head.c (gimple_resimplify1): Drop TREE_OVERFLOW
2440 from constant folding results.
2441 (gimple_resimplify2): Likewise.
2442 (gimple_resimplify3): Likewise.
2443
2444 2016-09-22 Richard Biener <rguenther@suse.de>
2445
2446 PR middle-end/77678
2447 * expr.c (expand_expr_real_1): Guard array access against negative
2448 offset.
2449
2450 2016-09-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2451
2452 * gimple-ssa-sprintf.c (format_floating_max): Use GMP_RNDN instead
2453 of MPFR_RNDN.
2454 (format_floating): Likewise.
2455
2456 2016-09-22 Jakub Jelinek <jakub@redhat.com>
2457
2458 PR fortran/77665
2459 * tree-inline.c (remap_gimple_stmt): Set has_simduid_loops
2460 for all IFN_GOMP_SIMD_* internal fns, not just for
2461 IFN_GOMP_SIMD_ORDERED_*.
2462
2463 2016-09-21 Michael Meissner <meissner@linux.vnet.ibm.com>
2464
2465 PR target/77670
2466 * config/rs6000/predicates.md (invert_fpmask_comparison_operator):
2467 New predicate that matches the ISA 3.0 XSCMP{EQ,GT,GE}DP
2468 instructions when you want to invert the test.
2469 * config/rs6000/rs6000.md (fpmask<mode>): Use the arguments in the
2470 correct order for XXSEL.
2471 (mov<SFDF:mode><SFDF2:mode>cc_invert_p9): Define the inverted test
2472 for using XSCMP{EQ,GT,GE}DP.
2473
2474 2016-09-21 David Malcolm <dmalcolm@redhat.com>
2475
2476 * genconstants.c (main): Introduce noop_reader and convert call
2477 to read_md_files to a method call.
2478 * genenums.c (main): Likewise.
2479 * genmddeps.c (main): Likewise.
2480 * genpreds.c (write_tm_constrs_h): Replace use of "in_fname" with
2481 rtx_reader_ptr->get_top_level_filename ().
2482 (write_tm_preds_h): Likewise.
2483 (write_insn_preds_c): Likewise.
2484 * gensupport.c (class gen_reader): New subclass of rtx_reader.
2485 (rtx_handle_directive): Convert to...
2486 (gen_reader::handle_unknown_directive): ...this.
2487 (init_rtx_reader_args_cb): Convert return type from bool to
2488 rtx_reader *. Create a gen_reader instance, using it for the
2489 call to read_md_files. Return it if no errors occur.
2490 (init_rtx_reader_args): Convert return type from bool to
2491 rtx_reader *.
2492 * gensupport.h (init_rtx_reader_args_cb): Likewise.
2493 (init_rtx_reader_args_cb): Likewise.
2494 * read-md.c (struct file_name_list): Move to class rtx_reader.
2495 (read_md_file): Delete in favor of rtx_reader::m_read_md_file.
2496 (read_md_filename): Delete in favor of
2497 rtx_reader::m_read_md_filename.
2498 (read_md_lineno): Delete in favor of rtx_reader::m_read_md_lineno.
2499 (in_fname): Delete in favor of rtx_reader::m_toplevel_fname.
2500 (base_dir): Delete in favor of rtx_reader::m_base_dir.
2501 (first_dir_md_include): Delete in favor of
2502 rtx_reader::m_first_dir_md_include.
2503 (last_dir_md_include_ptr): Delete in favor of
2504 rtx_reader::m_last_dir_md_include_ptr.
2505 (max_include_len): Delete.
2506 (rtx_reader_ptr): New.
2507 (fatal_with_file_and_line): Use get_filename and get_lineno
2508 accessors of rtx_reader_ptr.
2509 (require_char_ws): Likewise.
2510 (rtx_reader::read_char): New method, based on ::read_char.
2511 (rtx_reader::unread_char): New method, based on ::unread_char.
2512 (read_escape): Use get_filename and get_lineno accessors of
2513 rtx_reader_ptr.
2514 (read_braced_string): Use get_lineno accessor of rtx_reader_ptr.
2515 (read_string): Use get_filename and get_lineno accessors of
2516 rtx_reader_ptr.
2517 (rtx_reader::rtx_reader): New ctor.
2518 (rtx_reader::~rtx_reader): New dtor.
2519 (handle_include): Convert from a function to...
2520 (rtx_reader::handle_include): ...this method, converting
2521 handle_directive from a callback to a virtual function.
2522 (handle_file): Likewise, converting to...
2523 (rtx_reader::handle_file): ...this method.
2524 (handle_toplevel_file): Likewise, converting to...
2525 (rtx_reader::handle_toplevel_file): ...this method.
2526 (rtx_reader::get_current_location): New method.
2527 (parse_include): Convert from a function to...
2528 (rtx_reader::add_include_path): ...this method, dropping redundant
2529 update to unused max_include_len.
2530 (read_md_files): Convert from a function to...
2531 (rtx_reader::read_md_files): ...this method, converting
2532 handle_directive from a callback to a virtual function.
2533 (noop_reader::handle_unknown_directive): New method.
2534 * read-md.h (directive_handler_t): Delete this typedef.
2535 (in_fname): Delete.
2536 (read_md_file): Delete.
2537 (read_md_lineno): Delete.
2538 (read_md_filename): Delete.
2539 (class rtx_reader): New class.
2540 (rtx_reader_ptr): New decl.
2541 (class noop_reader): New subclass of rtx_reader.
2542 (read_char): Reimplement in terms of rtx_reader::read_char.
2543 (unread_char): Reimplement in terms of rtx_reader::unread_char.
2544 (read_md_files): Delete.
2545 * read-rtl.c (read_rtx_code): Update for deletion of globals
2546 read_md_filename and read_md_lineno.
2547
2548 2016-09-21 Jason Merrill <jason@redhat.com>
2549
2550 * input.h (from_macro_definition_at): New.
2551
2552 2016-09-21 Segher Boessenkool <segher@kernel.crashing.org>
2553
2554 * doc/rtl.texi (JUMP_LABEL): Document RETURN and SIMPLE_RETURN values.
2555
2556 2016-09-21 Bernd Edlinger <bernd.edlinger@hotmail.de>
2557
2558 PR tree-optimization/77550
2559 * tree-vect-stmts.c (create_array_ref): Change parameters.
2560 (get_group_alias_ptr_type): New function.
2561 (vectorizable_store, vectorizable_load): Use get_group_alias_ptr_type.
2562
2563 2016-09-21 Marek Polacek <polacek@redhat.com>
2564
2565 * gimple-ssa-sprintf.c (pass_sprintf_length::compute_format_length):
2566 Add falls through comment.
2567
2568 2016-09-21 Richard Biener <rguenther@suse.de>
2569
2570 * dwarf2out.c (remove_child_with_prev): Clear child->die_sib.
2571 (replace_child): Likewise.
2572 (remove_child_TAG): Adjust.
2573 (move_marked_base_types): Likewise.
2574 (prune_unused_types_prune): Clear die_sib of removed children.
2575
2576 2016-09-21 Georg-Johann Lay <avr@gjlay.de>
2577
2578 PR target/77326
2579 * config/avr/avr.c (avr_notice_update_cc) [CC_NONE]: If insn
2580 touches some regs mentioned in cc_status, do CC_STATUS_INIT.
2581
2582 2016-09-21 Richard Biener <rguenther@suse.de>
2583
2584 PR tree-optimization/77648
2585 * tree-ssa-structalias.c (process_constraint): Handle all DEREF
2586 with complex RHS.
2587 (make_transitive_closure_constraints): Adjust comment.
2588 (make_any_offset_constraints): New function.
2589 (handle_rhs_call): Make sure to first expand a pointer to all
2590 subfields before transitively closing it.
2591 (handle_const_call): Likewise. Properly expand returned
2592 pointers as well.
2593 (handle_pure_call): Likewise.
2594
2595 2016-09-21 Richard Biener <rguenther@suse.de>
2596 Jakub Jelinek <jakub@redhat.com>
2597
2598 PR tree-optimization/77621
2599 * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Split
2600 group at non-vectorizable stmts.
2601
2602 2016-09-21 Kugan Vivekanandarajah <kuganv@linaro.org>
2603
2604 PR tree-optimization/72835
2605 * tree-ssa-reassoc.c (make_new_ssa_for_def): New.
2606 (make_new_ssa_for_all_defs): Likewise.
2607 (zero_one_operation): Replace all SSA_NAMEs defined in the chain.
2608
2609 2016-09-20 Martin Sebor <msebor@redhat.com>
2610
2611 PR middle-end/49905
2612 * Makefile.in (OBJS): Add gimple-ssa-sprintf.o.
2613 * config/linux.h (TARGET_PRINTF_POINTER_FORMAT): Redefine.
2614 * config/linux.c (gnu_libc_printf_pointer_format): New function.
2615 * config/sol2.h (TARGET_PRINTF_POINTER_FORMAT): Same.
2616 * config/sol2.c (solaris_printf_pointer_format): New function.
2617 * doc/invoke.texi (-Wformat-length, -fprintf-return-value): New
2618 options.
2619 * doc/tm.texi.in (TARGET_PRINTF_POINTER_FORMAT): Document.
2620 * doc/tm.texi: Regenerate.
2621 * gimple-fold.h (get_range_strlen): New function.
2622 (get_maxval_strlen): Declare existing function.
2623 * gimple-fold.c (get_range_strlen): Add arguments and compute both
2624 maximum and minimum.
2625 (get_range_strlen): Define overload.
2626 (get_maxval_strlen): Adjust.
2627 * gimple-ssa-sprintf.c: New file and pass.
2628 * passes.def (pass_sprintf_length): Add new pass.
2629 * targhooks.h (default_printf_pointer_format): Declare new function.
2630 (gnu_libc_printf_pointer_format): Same.
2631 (solaris_libc_printf_pointer_format): Same.
2632 * targhooks.c (default_printf_pointer_format): Define new function.
2633 * tree-pass.h (make_pass_sprintf_length): Declare new function.
2634 * print-tree.c: Increase buffer size.
2635
2636 2016-09-21 Kugan Vivekanandarajah <kuganv@linaro.org>
2637
2638 * tree-vrp.c (get_value_range): Teach PARM_DECL to use ipa-vrp results.
2639
2640 2016-09-21 Kugan Vivekanandarajah <kuganv@linaro.org>
2641
2642 * common.opt: New option -fipa-vrp.
2643 * ipa-cp.c (ipa_get_vr_lat): New.
2644 (ipcp_vr_lattice::print): Likewise.
2645 (print_all_lattices): Call ipcp_vr_lattice::print.
2646 (ipcp_vr_lattice::meet_with): New.
2647 (ipcp_vr_lattice::meet_with_1): Likewise.
2648 (ipcp_vr_lattice::top_p): Likewise.
2649 (ipcp_vr_lattice::bottom_p): Likewsie.
2650 (ipcp_vr_lattice::set_to_bottom): Likewise.
2651 (set_all_contains_variable): Call VR set_to_bottom.
2652 (initialize_node_lattices): Init VR lattices.
2653 (propagate_vr_accross_jump_function): New.
2654 (propagate_constants_accross_call): Call
2655 propagate_vr_accross_jump_function.
2656 (ipcp_store_vr_results): New.
2657 (ipcp_driver): Handle VR.
2658 * ipa-prop.c (ipa_print_node_jump_functions_for_edge): Handle VR.
2659 (ipa_set_jf_unknown): Likewise.
2660 (ipa_compute_jump_functions_for_edge): Likewise.
2661 (ipa_node_params_t::duplicate): Likewise.
2662 (ipa_write_jump_function): Likewise.
2663 (ipa_read_jump_function): Likewise.
2664 (write_ipcp_transformation_info): Likewise.
2665 (read_ipcp_transformation_info): Likewise.
2666 (ipcp_update_vr): New.
2667 (ipcp_transform_function): Handle VR.
2668 * ipa-prop.h (struct ipa_vr): New.
2669 * cgraph.c: Include tree-vrp.h.
2670 * cgraphunit.c: Likewise.
2671 * ipa-utils.c: Likewise.
2672 * ipa.c: Likewise.
2673 * opts.c: Likewise.
2674 * toplev.c: Likewise.
2675 * ipa-devirt.c: Likewise.
2676 * ipa-inline-transform.c: Likewise.
2677 * ipa-inline.c: Likewise.
2678 * ipa-profile.c: Likewise.
2679
2680 2016-09-21 Kugan Vivekanandarajah <kuganv@linaro.org>
2681
2682 * doc/invoke.texi: Document -fdump-tree-evrp.
2683 * passes.def: Define new pass_early_vrp.
2684 * timevar.def: Define new TV_TREE_EARLY_VRP.
2685 * tree-pass.h (make_pass_early_vrp): New.
2686 * tree-ssa-propagate.c: Make replace_uses_in non static.
2687 * tree-ssa-propagate.h: Export replace_uses_in.
2688 * tree-vrp.c (extract_range_for_var_from_comparison_expr): New.
2689 (extract_range_from_assert): Factor out
2690 extract_range_for_var_from_comparison_expr.
2691 (vrp_initialize_lattice): New.
2692 (vrp_initialize): Factor out vrp_initialize_lattice.
2693 (vrp_valueize): Fix it to reject complex value ranges.
2694 (vrp_free_lattice): New.
2695 (evrp_dom_walker::before_dom_children): Likewise.
2696 (evrp_dom_walker::after_dom_children): Likewise.
2697 (evrp_dom_walker::push_value_range): Likewise.
2698 (evrp_dom_walker::pop_value_range): Likewise.
2699 (execute_early_vrp): Likewise.
2700 (execute_vrp): Call vrp_initialize_lattice and vrp_free_lattice.
2701 (make_pass_early_vrp): New.
2702
2703 2016-09-20 Uros Bizjak <ubizjak@gmail.com>
2704
2705 * config/i386/i386.md (mult->ashift peephole2s): Use pow2p_hwi
2706 instead of exact_log2.
2707
2708 2016-09-20 Uros Bizjak <ubizjak@gmail.com>
2709
2710 PR target/77621
2711 * config/i386/i386.c (ix86_preferred_simd_mode) <case DFmode>:
2712 Don't return word_mode for !TARGET_VECTORIZE_DOUBLE.
2713 (ix86_add_stmt_cost): Penalize DFmode vector operations
2714 for !TARGET_VECTORIZE_DOUBLE.
2715
2716 2016-09-20 Gerald Pfeifer <gerald@pfeifer.com>
2717
2718 * doc/invoke.texi (Warning Options): Simplify language.
2719 (Optimize Options): Complete sentence.
2720
2721 2016-09-20 David Edelsohn <dje.gcc@gmail.com>
2722
2723 * dbxout.c (xcoff_debug_hooks): Add filename parameter to
2724 early_finish hook.
2725
2726 2016-09-20 Michael Meissner <meissner@linux.vnet.ibm.com>
2727
2728 PR target/71395
2729 * config/rs6000/rs6000.c (rs6000_expand_vector_init): For V4SF
2730 inits on power8 and above, use the VMRGEW instruction instead of a
2731 permute.
2732
2733 * config/rs6000/altivec.md (UNSPEC_VMRGEW_DIRECT): New unspec.
2734 (p8_vmrgew_v4sf_direct): New VMRGEW insn for V4SF floating
2735 initialization.
2736
2737 2016-09-20 Tamar Christina <tamar.christina@arm.com>
2738
2739 * config/aarch64/arm_neon.h
2740 (vst2_s64, vst2_u64, vst2_f64, vst2_s8): Add missing attributes.
2741 (vst3_s64, vst3_u64, vst3_f64, vst3_s8): Likewise.
2742 (vst4_s64, vst4_u64, vst4_f64, vst4_s8): Likewise.
2743
2744 2016-09-20 Bernd Edlinger <bernd.edlinger@hotmail.de>
2745
2746 * config/var/vax.h (ELIMINABLE_REGS): Define.
2747 (INITIAL_ELIMINATION_OFFSET): Define.
2748
2749 2016-09-20 Jakub Jelinek <jakub@redhat.com>
2750
2751 PR middle-end/77624
2752 * builtins.c (fold_builtin_atomic_always_lock_free): Only look through
2753 cast to void * if the cast is from some other pointer type.
2754
2755 2016-09-20 Richard Biener <rguenther@suse.de>
2756
2757 PR tree-optimization/77646
2758 * tree-ssa-sccvn.c (visit_reference_op_call): Always value-number
2759 a VDEF.
2760
2761 2016-09-20 Tamar Christina <tamar.christina@arm.com>
2762
2763 * config/aarch64/arm_neon.h: Add gnu_inline and artificial
2764 attributes to all inlined functions and make them extern.
2765
2766 2016-09-20 Richard Biener <rguenther@suse.de>
2767
2768 * debug.h (gcc_debug_hooks): Add filename parameter to early_finish
2769 hook.
2770 * debug.c (do_nothing_debug_hooks): Adjust.
2771 * dbxout.c (dbx_debug_hooks): Likewise.
2772 * sdbout.c (sdb_debug_hooks): Likewise.
2773 * dwarf2out.c (dwarf2_lineno_debug_hooks): Likewise.
2774 (dwarf2out_finish): Move producer, filename and
2775 path annotation ...
2776 (dwarf2out_early_finish): ... here. Remove in_lto_p special-casing.
2777 * cgraphunit.c (symbol_table::finalize_compilation_unit): Adjust.
2778
2779 2016-09-19 Bernd Edlinger <bernd.edlinger@hotmail.de>
2780
2781 PR c++/77434
2782 * doc/invoke.texi: Document -Wint-in-bool-context.
2783
2784 PR middle-end/77421
2785 * dwarf2out.c (output_loc_operands): Fix an assertion.
2786
2787 2016-09-19 Joseph Myers <joseph@codesourcery.com>
2788
2789 * ginclude/float.h [__STDC_WANT_IEC_60559_BFP_EXT__]
2790 (CR_DECIMAL_DIG): New macro.
2791
2792 2016-09-19 Joseph Myers <joseph@codesourcery.com>
2793
2794 * ginclude/stddef.h (max_align_t) [__i386__]: Add __float128
2795 element.
2796
2797 2016-09-19 Vladimir Makarov <vmakarov@redhat.com>
2798
2799 PR rtl-optimization/77416
2800 * lra-remat.c (operand_to_remat): Process hard coded insn
2801 registers.
2802
2803 2016-09-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2804
2805 * simplify-rtx.c (simplify_relational_operation_1): Add transformation
2806 (GTU (PLUS a C) (C - 1)) --> (LTU a -C).
2807
2808 2016-09-19 Segher Boessenkool <segher@kernel.crashing.org>
2809
2810 * target.def (lra_p): Wordsmithing.
2811 * doc/tm.texi: Regenerate.
2812
2813 2016-09-19 Jakub Jelinek <jakub@redhat.com>
2814 Jan Hubicka <jh@suse.cz>
2815
2816 PR target/77587
2817 * cgraph.c (cgraph_node::rtl_info): Pass &avail to
2818 ultimate_alias_target call, return NULL if avail < AVAIL_AVAILABLE.
2819 Call ultimate_alias_target just once, not up to 4 times.
2820
2821 2016-09-19 Richard Biener <rguenther@suse.de>
2822
2823 * dwarf2out.c (early_dwarf_finished): New global.
2824 (set_early_dwarf::set_early_dwarf): Assert early_dwarf_finished
2825 is false.
2826 (dwarf2out_early_finish): Set early_dwarf_finished at the end,
2827 if called from LTO exit early.
2828 (dwarf2out_late_global_decl): When being during the early
2829 debug phase do not add locations but only const value attributes.
2830 Adjust the way we generate early DIEs for LTO.
2831
2832 2016-09-19 Richard Biener <rguenther@suse.de>
2833
2834 PR middle-end/77605
2835 * tree-data-ref.c (analyze_subscript_affine_affine): Use the
2836 proper niter to bound the loops.
2837
2838 2016-09-19 Richard Biener <rguenther@suse.de>
2839
2840 PR tree-optimization/77514
2841 * tree-ssa-pre.c (create_expression_by_pieces): Optimize
2842 search for folded stmt.
2843
2844 2016-09-17 Jan Hubicka <hubicka@ucw.cz>
2845
2846 * passes.def (pass_early_thread_jumps): Schedule after forwprop.
2847 * tree-pass.h (make_pass_early_thread_jumps): Declare.
2848 * tree-ssa-threadbackward.c (fsm_find_thread_path,
2849 fsm_find_thread_path, profitable_jump_thread_path,
2850 fsm_find_control_statement_thread_paths,
2851 find_jump_threads_backwards): Add speed_p parameter.
2852 (pass_data_early_thread_jumps): New pass.
2853 (make_pass_early_thread_jumps): New function.
2854
2855 2016-09-17 Andreas Schwab <schwab@suse.de>
2856
2857 * config/ia64/ia64.h (ASM_OUTPUT_DWARF_OFFSET): Add cast.
2858 * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Likewise.
2859
2860 2016-09-16 Eric Botcazou <ebotcazou@adacore.com>
2861
2862 * recog.c (rest_of_handle_split_after_reload): Delete.
2863 (pass_split_after_reload::gate): New method.
2864 (pass_split_after_reload::execute): Call split_all_insns directly.
2865
2866 2016-09-16 Jonathan Wakely <jwakely@redhat.com>
2867
2868 * doc/extend.texi (Integer Overflow Builtins): Fix type of out
2869 parameters for functions taking long long arguments.
2870
2871 2016-09-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2872
2873 PR target/77613
2874 * config/rs6000/rs6000.c (rtx_is_swappable_p): Add support for
2875 splat with truncate.
2876
2877 2016-09-16 Jason Merrill <jason@redhat.com>
2878
2879 * hwint.h (least_bit_hwi, pow2_or_zerop, pow2p_hwi, ctz_or_zero):
2880 New.
2881 * hwint.c (exact_log2): Use pow2p_hwi.
2882 (ctz_hwi, ffs_hwi): Use least_bit_hwi.
2883 * alias.c (memrefs_conflict_p): Use pow2_or_zerop.
2884 * builtins.c (get_object_alignment_2, get_object_alignment)
2885 (get_pointer_alignment, fold_builtin_atomic_always_lock_free): Use
2886 least_bit_hwi.
2887 * calls.c (compute_argument_addresses, store_one_arg): Use
2888 least_bit_hwi.
2889 * cfgexpand.c (expand_one_stack_var_at): Use least_bit_hwi.
2890 * combine.c (force_to_mode): Use least_bit_hwi.
2891 (contains_muldiv, find_split_point, combine_simplify_rtx)
2892 (simplify_if_then_else, simplify_set, force_to_mode)
2893 (if_then_else_cond, simplify_and_const_int_1)
2894 (simplify_compare_const): Use pow2p_hwi.
2895 * cse.c (fold_rtx): Use pow2p_hwi.
2896 * emit-rtl.c (set_mem_attributes_minus_bitpos, adjust_address_1):
2897 Use least_bit_hwi.
2898 * expmed.c (synth_mult, expand_divmod): Use ctz_or_zero, ctz_hwi.
2899 (init_expmed_one_conv): Use pow2p_hwi.
2900 * expr.c (is_aligning_offset): Use pow2p_hwi.
2901 * fold-const.c (round_up_loc, round_down_loc): Use pow2_or_zerop.
2902 (fold_binary_loc): Use pow2p_hwi.
2903 * function.c (assign_parm_find_stack_rtl): Use least_bit_hwi.
2904 * gimple-fold.c (gimple_fold_builtin_memory_op): Use pow2p_hwi.
2905 * gimple-ssa-strength-reduction.c (replace_ref): Use least_bit_hwi.
2906 * hsa-gen.c (gen_hsa_addr_with_align, hsa_bitmemref_alignment):
2907 Use least_bit_hwi.
2908 * ifcvt.c (noce_try_store_flag_constants): Use pow2p_hwi.
2909 * ipa-cp.c (ipcp_alignment_lattice::meet_with_1): Use least_bit_hwi.
2910 * ipa-prop.c (ipa_modify_call_arguments): Use least_bit_hwi.
2911 * omp-low.c (oacc_loop_fixed_partitions)
2912 (oacc_loop_auto_partitions): Use least_bit_hwi.
2913 * rtlanal.c (nonzero_bits1): Use ctz_or_zero.
2914 * stor-layout.c (place_field): Use least_bit_hwi.
2915 * tree-pretty-print.c (dump_generic_node): Use pow2p_hwi.
2916 * tree-sra.c (build_ref_for_offset): Use least_bit_hwi.
2917 * tree-ssa-ccp.c (ccp_finalize): Use least_bit_hwi.
2918 * tree-ssa-math-opts.c (bswap_replace): Use least_bit_hwi.
2919 * tree-ssa-strlen.c (handle_builtin_memcmp): Use pow2p_hwi.
2920 * tree-vect-data-refs.c (vect_analyze_group_access_1)
2921 (vect_grouped_store_supported, vect_grouped_load_supported)
2922 (vect_permute_load_chain, vect_shift_permute_load_chain)
2923 (vect_transform_grouped_load): Use pow2p_hwi.
2924 * tree-vect-generic.c (expand_vector_divmod): Use ctz_or_zero.
2925 * tree-vect-patterns.c (vect_recog_divmod_pattern): Use ctz_or_zero.
2926 * tree-vect-stmts.c (vectorizable_mask_load_store): Use
2927 least_bit_hwi.
2928 * tsan.c (instrument_expr): Use least_bit_hwi.
2929 * var-tracking.c (negative_power_of_two_p): Use pow2_or_zerop.
2930
2931 2016-09-16 Andreas Schwab <schwab@suse.de>
2932
2933 * config/ia64/ia64.h (ASM_OUTPUT_DWARF_OFFSET): Use parameter
2934 OFFSET, not offset.
2935 * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Likewise.
2936
2937 2016-09-16 Jakub Jelinek <jakub@redhat.com>
2938
2939 PR target/77526
2940 * combine.c (rest_of_handle_combine): If any edges have been purged,
2941 free dominators if available.
2942
2943 2016-09-16 Jakub Jelinek <jakub@redhat.com>
2944 Eric Botcazou <ebotcazou@adacore.com>
2945
2946 PR middle-end/77594
2947 * internal-fn.c (expand_arith_overflow) <case MINUS_EXPR>: Don't fall
2948 through into expand_addsub_overflow after expand_neg_overflow.
2949
2950 2016-09-15 David Malcolm <dmalcolm@redhat.com>
2951
2952 * diagnostic-show-locus.c
2953 (selftest::test_fixit_insert_containing_newline): New function.
2954 (selftest::test_fixit_replace_containing_newline): New function.
2955 (selftest::diagnostic_show_locus_c_tests): Call the above.
2956
2957 2016-09-15 Bin Cheng <bin.cheng@arm.com>
2958
2959 PR tree-optimization/77503
2960 * tree-vect-loop.c (vectorizable_reduction): Record reduction
2961 code for CONST_COND_REDUCTION at analysis stage and use it at
2962 transform stage.
2963 * tree-vectorizer.h (struct _stmt_vec_info): New field.
2964 (STMT_VINFO_VEC_CONST_COND_REDUC_CODE): New macro.
2965 * tree-vect-stmts.c (new_stmt_vec_info): Initialize above new
2966 field.
2967
2968 2016-09-15 Richard Biener <rguenther@suse.de>
2969
2970 PR middle-end/77544
2971 * fold-const.c (split_tree): Do not split constant ~X.
2972
2973 2016-09-15 Jakub Jelinek <jakub@redhat.com>
2974
2975 PR rtl-optimization/77425
2976 * sched-int.h (sd_iterator_cond): Don't update it_ptr->linkp if list
2977 is NULL.
2978
2979 PR middle-end/77475
2980 * config/i386/i386.c (ix86_parse_stringop_strategy_string): Simplify,
2981 use %qs instead of %s where desirable, use argument instead of arg in
2982 the diagnostic wording, add list of supported strategies and
2983 spellcheck hint.
2984 (ix86_option_override_internal): Emit target("m...") instead of
2985 option("m...") in the diagnostic. Use %qs instead of %s in invalid
2986 -march/-mtune option diagnostic. Add list of supported arches/tunings
2987 and spellcheck hint. Remove prefix, suffix and sw variables, use
2988 main_args_p ? "..." : "..." in diagnostics to make translation
2989 possible.
2990
2991 2016-09-15 Richard Biener <rguenther@suse.de>
2992
2993 * dwarf2asm.h (dw2_asm_output_offset): Add overload with
2994 extra offset argument.
2995 * dwarf2asm.c (dw2_asm_output_offset): Implement that.
2996 * doc/tm.texi.in (ASM_OUTPUT_DWARF_OFFSET): Adjust documentation
2997 to reflect new offset parameter.
2998 * doc/tm.texi: Regenerate.
2999 * config/darwin.h (ASM_OUTPUT_DWARF_OFFSET): Adjust.
3000 * config/darwin-protos.h (darwin_asm_output_dwarf_delta): Add
3001 offset argument.
3002 (darwin_asm_output_dwarf_offset): Likewise.
3003 * config/darwin.c (darwin_asm_output_dwarf_delta): Add offset
3004 argument.
3005 (darwin_asm_output_dwarf_offset): Pass offset argument through.
3006 * config/ia64/ia64.h (ASM_OUTPUT_DWARF_OFFSET): Adjust.
3007 * config/i386/cygmin.h (ASM_OUTPUT_DWARF_OFFSET): Likewise.
3008
3009 2016-09-15 Chung-Lin Tang <cltang@codesourcery.com>
3010
3011 PR fortran/72743
3012 * ipa-icf.c (set_alias_uids): New function.
3013 (sem_variable::merge): Use set_alias_uids to set DECL_PT_UID of
3014 all the merged variable's referring aliases.
3015
3016 2016-09-15 Richard Biener <rguenther@suse.de>
3017
3018 PR tree-optimization/77514
3019 * tree-ssa-pre.c (create_expression_by_pieces): Handle garbage
3020 only forced_stmts sequence.
3021
3022 2016-09-15 Kugan Vivekanandarajah <kuganv@linaro.org>
3023
3024 * tree-ssanames.h (FOR_EACH_SSA_NAME): New.
3025 * cfgexpand.c (update_alias_info_with_stack_vars): Use
3026 FOR_EACH_SSA_NAME to iterate over SSA variables.
3027 (pass_expand::execute): Likewise.
3028 * omp-simd-clone.c (ipa_simd_modify_function_body): Likewise.
3029 * tree-cfg.c (dump_function_to_file): Likewise.
3030 * tree-into-ssa.c (pass_build_ssa::execute): Likewise.
3031 (update_ssa): Likewise.
3032 * tree-ssa-alias.c (dump_alias_info): Likewise.
3033 * tree-ssa-ccp.c (ccp_finalize): Likewise.
3034 * tree-ssa-coalesce.c (build_ssa_conflict_graph): Likewise.
3035 (create_outofssa_var_map): Likewise.
3036 (coalesce_ssa_name): Likewise.
3037 * tree-ssa-operands.c (dump_immediate_uses): Likewise.
3038 * tree-ssa-pre.c (compute_avail): Likewise.
3039 * tree-ssa-sccvn.c (init_scc_vn): Likewise.
3040 (scc_vn_restore_ssa_info): Likewise.
3041 (free_scc_vn): Likwise.
3042 (run_scc_vn): Likewise.
3043 * tree-ssa-structalias.c (compute_points_to_sets): Likewise.
3044 * tree-ssa-ter.c (new_temp_expr_table): Likewise.
3045 * tree-ssa-copy.c (fini_copy_prop): Likewise.
3046 * tree-ssa.c (verify_ssa): Likewise.
3047
3048 2016-09-14 Matthew Fortune <matthew.fortune@imgtec.com>
3049
3050 * config.gcc (mips*-mti-elf*, mips*-mti-linux*): Set mips32r2
3051 and mips64r2 as default 32-bit and 64-bit architectures.
3052 (mips*-img-elf*, mips*-img-linux*): Set mips32r6 and mips64r6
3053 as default 32-bit and 64-bit architectures.
3054
3055 2016-09-14 Pat Haugen <pthaugen@us.ibm.com>
3056
3057 * loop-unroll.c (unroll_loop_runtime_iterations): Set probability
3058 of succ edge.
3059
3060 2016-09-14 Segher Boessenkool <segher@kernel.crashing.org>
3061
3062 * target.def (lra_p): Change commentary (for the manual) for the
3063 new default.
3064 * doc/tm.texi: Regenerate.
3065
3066 2016-09-14 Segher Boessenkool <segher@kernel.crashing.org>
3067
3068 * config/aarch64/aarch64.c (TARGET_LRA_P): Delete macro.
3069 * config/arm/arm.c (TARGET_LRA_P): Delete macro.
3070 * config/i386/i386.c (TARGET_LRA_P): Delete macro.
3071 * config/nds32/nds32.c (TARGET_LRA_P): Delete macro.
3072
3073 2016-09-14 Segher Boessenkool <segher@kernel.crashing.org>
3074
3075 * targhooks.c (default_lra_p): Return true instead of false.
3076
3077 2016-09-14 Segher Boessenkool <segher@kernel.crashing.org>
3078
3079 * config/alpha/alpha.c (TARGET_LRA_P): New macro, defined to
3080 hook_bool_void_false.
3081 * config/avr/avr.c: Ditto.
3082 * config/bfin/bfin.c: Ditto.
3083 * config/c6x/c6x.c: Ditto.
3084 * config/cr16/cr16.c: Ditto.
3085 * config/cris/cris.c: Ditto.
3086 * config/epiphany/epiphany.c: Ditto.
3087 * config/fr30/fr30.c: Ditto.
3088 * config/frv/frv.c: Ditto.
3089 * config/h8300/h8300.c: Ditto.
3090 * config/ia64/ia64.c: Ditto.
3091 * config/iq2000/iq2000.c: Ditto.
3092 * config/lm32/lm32.c: Ditto.
3093 * config/m32c/m32c.c: Ditto.
3094 * config/m32r/m32r.c: Ditto.
3095 * config/m68k/m68k.c: Ditto.
3096 * config/mcore/mcore.c: Ditto.
3097 * config/microblaze/microblaze.c: Ditto.
3098 * config/mmix/mmix.c: Ditto.
3099 * config/mn10300/mn10300.c: Ditto.
3100 * config/moxie/moxie.c: Ditto.
3101 * config/msp430/msp430.c: Ditto.
3102 * config/nios2/nios2.c: Ditto.
3103 * config/nvptx/nvptx.c: Ditto.
3104 * config/pa/pa.c: Ditto.
3105 * config/pdp11/pdp11.c: Ditto.
3106 * config/rl78/rl78.c: Ditto.
3107 * config/sparc/sparc.c: Ditto.
3108 * config/spu/spu.c: Ditto.
3109 * config/stormy16/stormy16.c: Ditto.
3110 * config/tilegx/tilegx.c: Ditto.
3111 * config/tilepro/tilepro.c: Ditto.
3112 * config/v850/v850.c: Ditto.
3113 * config/vax/vax.c: Ditto.
3114 * config/visium/visium.c: Ditto.
3115 * config/xtensa/xtensa.c: Ditto.
3116
3117 2016-09-14 Jakub Jelinek <jakub@redhat.com>
3118
3119 PR sanitizer/68260
3120 * tsan.c: Include target.h.
3121 (enum tsan_atomic_action): Add bool_clear and bool_test_and_set.
3122 (BOOL_CLEAR, BOOL_TEST_AND_SET): Define.
3123 (tsan_atomic_table): Add BUILT_IN_ATOMIC_CLEAR and
3124 BUILT_IN_ATOMIC_TEST_AND_SET entries.
3125 (instrument_builtin_call): Handle bool_clear and bool_test_and_set.
3126
3127 2016-09-14 Bernd Edlinger <bernd.edlinger@hotmail.de>
3128 Martin Liska <mliska@suse.cz>
3129
3130 PR middle-end/77574
3131 * predict.c (force_edge_cold): Add braces to a condition.
3132
3133 2016-09-13 Bernd Edlinger <bernd.edlinger@hotmail.de>
3134
3135 PR rtl-optimization/77289
3136 * lra-constraints.c (get_final_hard_regno): Removed.
3137 (get_hard_regno): Add new parameter final_p.
3138 (get_reg_class): Directly call lra_get_elimination_hard_regno.
3139 (operands_match_p): Adjust call to get_hard_regno.
3140 (uses_hard_regs_p): Likewise.
3141 (process_alt_operands): Likewise.
3142
3143 2016-09-13 Joe Seymour <joe.s@somniumtech.com>
3144
3145 PR target/70713
3146 * config/msp430/msp430.c (msp430_start_function): Emit an error
3147 if a function is both weak and specifies an interrupt number.
3148
3149 2016-09-13 Jakub Jelinek <jakub@redhat.com>
3150
3151 PR tree-optimization/77454
3152 * tree-ssa-dom.c (optimize_stmt): Set modified flag on stmt after
3153 changing GIMPLE_COND. Move update_stmt_if_modified call after this.
3154 Formatting fix.
3155
3156 2016-09-13 Tamar Christina <tamar.christina@arm.com>
3157
3158 * config/aarch64/aarch64-builtins.c
3159 (aarch64_init_simd_builtins): Fix builtin type signature printing.
3160
3161 2016-09-13 Uros Bizjak <ubizjak@gmail.com>
3162
3163 * config/alpha/alpha.c (alpha_pass_by_reference): Pass un-named
3164 SFmode and SCmode arguments by reference.
3165
3166 2016-09-13 David Malcolm <dmalcolm@redhat.com>
3167
3168 * diagnostic-show-locus.c (selftest::test_one_liner_fixit_insert):
3169 Rename to...
3170 (selftest::test_one_liner_fixit_insert_before): ...this, and update
3171 for renaming of add_fixit_insert to add_fixit_insert_before.
3172 (selftest::test_one_liner_fixit_insert_after): New function.
3173 (selftest::test_one_liner_fixit_validation_adhoc_locations):
3174 Update for renaming of add_fixit_insert to add_fixit_insert_before.
3175 (selftest::test_one_liner_many_fixits): Likewise.
3176 (selftest::test_diagnostic_show_locus_one_liner): Update for
3177 renaming, call new test function.
3178 (selftest::test_diagnostic_show_locus_fixit_lines): Update for
3179 renaming of add_fixit_insert to add_fixit_insert_before.
3180 (selftest::test_fixit_consolidation): Likewise.
3181 * diagnostic.c (selftest::test_print_parseable_fixits_insert):
3182 Likewise.
3183 * edit-context.c (selftest::test_applying_fixits_insert): Rename to...
3184 (selftest::test_applying_fixits_insert_before): ...this.
3185 (selftest::test_applying_fixits_insert): Update for renaming of
3186 add_fixit_insert to add_fixit_insert_before.
3187 (selftest::test_applying_fixits_insert_after): New function.
3188 (selftest::test_applying_fixits_insert_after_at_line_end): New
3189 function.
3190 (selftest::test_applying_fixits_insert_after_failure): New function.
3191 (selftest::test_applying_fixits_multiple): Update for renaming of
3192 add_fixit_insert to add_fixit_insert_before.
3193 (selftest::change_line): Likewise.
3194 (selftest::test_applying_fixits_unreadable_file): Likewise.
3195 (selftest::test_applying_fixits_line_out_of_range): Likewise.
3196 (selftest::test_applying_fixits_column_validation): Likewise.
3197 (selftest::test_applying_fixits_column_validation): Likewise.
3198 (selftest::edit_context_c_tests): Update for renamed test function;
3199 call new test functions.
3200
3201 2016-09-13 Pat Haugen <pthaugen@us.ibm.com>
3202
3203 PR tree-optimization/77536
3204 PR rtl-optimization/68212
3205 * config/rs6000/rs6000.md (div->recip splitter): Remove
3206 optimize_insn_for_speed_p condition.
3207
3208 2016-09-13 Maciej W. Rozycki <macro@imgtec.com>
3209
3210 * optabs.c (prepare_cmp_insn): Update documentation comment.
3211
3212 2016-09-13 Jakub Jelinek <jakub@redhat.com>
3213 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
3214
3215 PR middle-end/77475
3216 * opts.h (candidates_list_and_hint): Declare.
3217 * opts-common.c (candidates_list_and_hint): New function.
3218 (cmdline_handle_error): Use it.
3219
3220 2016-09-12 David Malcolm <dmalcolm@redhat.com>
3221
3222 * edit-context.c (edited_line::get_len): New accessor.
3223 (edited_file::print_diff): Split out hunk-printing into...
3224 (edited_file::print_diff_hunk): New method.
3225 (edited_file::print_diff_line): New method.
3226
3227 2016-09-12 Andrew Pinski <apinski@cavium.com>
3228
3229 * config/aarch64/aarch64-tuning-flags.def (SLOW_UNALIGNED_LDPW):
3230 New tuning option.
3231 * config/aarch64/aarch64.c (thunderx_tunings): Enable
3232 AARCH64_EXTRA_TUNE_SLOW_UNALIGNED_LDPW.
3233 (aarch64_operands_ok_for_ldpstp): Return false if
3234 AARCH64_EXTRA_TUNE_SLOW_UNALIGNED_LDPW and the mode
3235 was SImode and the alignment is less than 8 byte.
3236 (aarch64_operands_adjust_ok_for_ldpstp): Likewise.
3237
3238 2016-09-12 Orlando Arias <oarias@knights.ucf.edu>
3239
3240 PR target/77570
3241 * config/msp430/msp430.md (delay_cycles_32x): Fix pushm/popm.
3242
3243 2016-09-12 Marek Polacek <polacek@redhat.com>
3244
3245 * doc/extend.texi: Use lowercase "boolean".
3246 * doc/invoke.texi: Likewise.
3247 * doc/md.texi: Likewise.
3248 * target.def: Likewise.
3249 * doc/tm.texi: Regenerated.
3250
3251 2016-09-12 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3252
3253 PR middle-end/77426
3254 * expmed.c (synth_mult): Delete duplicate mode check.
3255
3256 2016-09-10 Tom de Vries <tom@codesourcery.com>
3257
3258 PR C/71602
3259 * builtins.c (std_canonical_va_list_type): Strictly return non-null for
3260 va_list type only.
3261 * config/i386/i386.c (ix86_canonical_va_list_type): Same.
3262 * gimplify.c (gimplify_va_arg_expr): Handle &va_list.
3263
3264 2016-09-09 Peter Bergner <bergner@vnet.ibm.com>
3265
3266 PR rtl-optimization/77289
3267 * lra-constraints.c (get_final_hard_regno): Add support for non hard
3268 register numbers. Remove support for subregs.
3269 (get_hard_regno): Use SUBREG_P. Don't call get_final_hard_regno().
3270 (get_reg_class): Delete removed get_final_hard_regno() argument.
3271 (uses_hard_regs_p): Call get_final_hard_regno().
3272
3273 2016-09-09 Martin Sebor <msebor@redhat.com>
3274
3275 PR c/77520
3276 PR c/77521
3277 * pretty-print.c (pp_quoted_string): New function.
3278 (pp_format): Call it for %c and %s directives.
3279
3280 2016-09-10 Bernd Edlinger <bernd.edlinger@hotmail.de>
3281
3282 * doc/tm.texi.in (INITIAL_FRAME_POINTER_OFFSET): Remove.
3283 (ELIMINABLE_REGS, TARGET_CAN_ELIMINATE,
3284 INITIAL_ELIMINATION_OFFSET) : Update documentation.
3285 * target.def (frame_pointer_required, can_eliminate): Likewise.
3286 * doc/tm.texi: Regenerated.
3287 * builtins.c (expand_builtin_setjmp_receiver): Remove #ifdef
3288 ELIMINABLE_REGS.
3289 * df-scan.c (df_hard_reg_init): Likewise.
3290 * ira.c (ira_setup_eliminable_regset): Likewise.
3291 * lra-eliminations.c (reg_eliminate_1, (update_reg_eliminate,
3292 init_elim_table): Likewise.
3293 * reload1.c (reg_eliminate_1, verify_initial_elim_offsets,
3294 set_initial_elim_offsets, update_eliminables,
3295 init_elim_table): Likewise.
3296 * rtlanal.c (get_initial_register_offset): Likewise.
3297 * config/ft32/ft32.h (INITIAL_FRAME_POINTER_OFFSET): Remove.
3298 * config/m32r/m32r.h (INITIAL_FRAME_POINTER_OFFSET): Likewise.
3299 * config/moxie/moxie.h (INITIAL_FRAME_POINTER_OFFSET): Likewise.
3300 * config/vax/vax.h (INITIAL_FRAME_POINTER_OFFSET): Likewise.
3301 * config/fr30/fr30.h: Fix comment.
3302 * config/frv/frv.c: Likewise.
3303 * config/frv/frv.h: Likewise.
3304 * config/ft32/ft32.h: Likewise.
3305 * config/visium/visium.h: Likewise.
3306 * config/pa/pa64-linux.h: Likewise.
3307 * config/v850/v850.h: Likewise.
3308 * config/cris/cris.c: Likewise.
3309 * config/ia64/ia64.h: Likewise.
3310 * config/moxie/moxie.h: Likewise.
3311 * config/m32r/m32r.h: Likewise.
3312
3313 2016-09-10 Alexander Ivchenko <alexander.ivchenko@intel.com>
3314
3315 PR target/77267
3316 * config.in: Regenerate.
3317 * config/i386/linux-common.h (MPX_LD_AS_NEEDED_GUARD_PUSH):
3318 New macro.
3319 (MPX_LD_AS_NEEDED_GUARD_PUSH): Ditto.
3320 (LIBMPXWRAPPERS_SPEC): Remove "--no-whole-archive" from
3321 static-libmpxwrappers case.
3322 (LIBMPX_SPEC): Add guards with MPX_LD_AS_NEEDED_GUARD_PUSH and
3323 MPX_LD_AS_NEEDED_GUARD_POP.
3324 * configure: Regenerate.
3325 * configure.ac (HAVE_LD_PUSHPOPSTATE_SUPPORT): New variable.
3326 defined if linker support "--push-state"/"--pop-state".
3327
3328 2016-09-09 Bernd Edlinger <bernd.edlinger@hotmail.de>
3329
3330 * doc/cpp.texi (__*_WIDTH__): Small wording fixes.
3331
3332 2016-09-09 Joseph Myers <joseph@codesourcery.com>
3333
3334 * doc/cpp.texi (__SCHAR_WIDTH__, __SHRT_WIDTH__, __INT_WIDTH__)
3335 (__LONG_WIDTH__, __LONG_LONG_WIDTH__, __PTRDIFF_WIDTH__)
3336 (__SIG_ATOMIC_WIDTH__, __SIZE_WIDTH__, __WCHAR_WIDTH__)
3337 (__WINT_WIDTH__, __INT_LEAST8_WIDTH__, __INT_LEAST16_WIDTH__)
3338 (__INT_LEAST32_WIDTH__, __INT_LEAST64_WIDTH__)
3339 (__INT_FAST8_WIDTH__, __INT_FAST16_WIDTH__, __INT_FAST32_WIDTH__)
3340 (__INT_FAST64_WIDTH__, __INTPTR_WIDTH__, __INTMAX_WIDTH__):
3341 Document.
3342 * ginclude/stdint-gcc.h [__STDC_WANT_IEC_60559_BFP_EXT__]: Define
3343 width macros from TS 18661-1.
3344 * glimits.h [__STDC_WANT_IEC_60559_BFP_EXT__]: Likewise.
3345
3346 2016-09-08 Jakub Jelinek <jakub@redhat.com>
3347
3348 PR fortran/77516
3349 * omp-low.c (lower_rec_simd_input_clauses): Use max_vf for non-positive
3350 OMP_CLAUSE_SAFELEN_EXPR.
3351
3352 2016-09-07 David Malcolm <dmalcolm@redhat.com>
3353
3354 * Makefile.in (OBJS): Add substring-locations.o.
3355 * langhooks-def.h (class substring_loc): New forward decl.
3356 (lhd_get_substring_location): New decl.
3357 (LANG_HOOKS_GET_SUBSTRING_LOCATION): New macro.
3358 (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_GET_SUBSTRING_LOCATION.
3359 * langhooks.c (lhd_get_substring_location): New function.
3360 * langhooks.h (class substring_loc): New forward decl.
3361 (struct lang_hooks): Add field get_substring_location.
3362 * substring-locations.c: New file, taking definition of
3363 format_warning_va and format_warning_at_substring from
3364 c-family/c-format.c, making them non-static.
3365 * substring-locations.h (class substring_loc): Move class here
3366 from c-family/c-common.h. Add and rewrite comments.
3367 (format_warning_va): New decl.
3368 (format_warning_at_substring): New decl.
3369 (get_source_location_for_substring): Add comment.
3370
3371 2016-09-07 Eric Gallager <egall@gwmail.gwu.edu>
3372
3373 * config/i386/i386.c: Add 'U' suffix to processor feature bits
3374 to avoid -Wnarrowing warning.
3375 * config/i386/x86-tune.def: Likewise for DEF_TUNE selector bitmasks.
3376 * opts.c: Likewise for SANITIZER_OPT bitmasks.
3377
3378 2016-09-07 Wilco Dijkstra <wdijkstr@arm.com>
3379
3380 * config/aarch64/aarch64.c (aarch64_legitimize_address):
3381 Avoid use of base_offset if offset already in range.
3382
3383 2016-09-07 Kaz Kojima <kkojima@gcc.gnu.org>
3384
3385 * config/sh/sh-protos.h (struct sh_atomic_model,
3386 selected_atomic_model, TARGET_ATOMIC_ANY, TARGET_ATOMIC_STRICT,
3387 TARGET_ATOMIC_SOFT_GUSA, TARGET_ATOMIC_HARD_LLCS,
3388 TARGET_ATOMIC_SOFT_TCB, TARGET_ATOMIC_SOFT_IMASK): Move to...
3389 * config/sh/sh.h (struct sh_atomic_model,
3390 selected_atomic_model, TARGET_ATOMIC_ANY, TARGET_ATOMIC_STRICT,
3391 TARGET_ATOMIC_SOFT_GUSA, TARGET_ATOMIC_HARD_LLCS,
3392 TARGET_ATOMIC_SOFT_TCB, TARGET_ATOMIC_SOFT_IMASK): ...here.
3393 Guard with __cplusplus.
3394
3395 2016-09-06 Jakub Jelinek <jakub@redhat.com>
3396
3397 PR target/69255
3398 * config/i386/i386.c (ix86_expand_builtin): For builtin with
3399 unsupported or unknown ISA, use expand_call.
3400
3401 2016-09-06 Martin Liska <mliska@suse.cz>
3402
3403 PR gcov-profile/77378
3404 PR gcov-profile/77466
3405 * tree-profile.c (tree_profiling): Detect whether target can use
3406 -fprofile-update=atomic.
3407
3408 2016-09-06 Richard Biener <rguenther@suse.de>
3409
3410 PR tree-optimization/77479
3411 * tree-vrp.c (update_value_range): Extend overflow handling to
3412 VARYING.
3413
3414 2016-09-05 Jakub Jelinek <jakub@redhat.com>
3415
3416 PR target/77476
3417 * config/i386/i386.md (isa): Add x64_avx512bw.
3418 (*zero_extendsidi2): For alternative 11 use x64_avx512bw isa.
3419 (kmov_isa): New mode attr.
3420 (zero_extend<mode>di2): Use <kmov_isa> isa for the last alternative.
3421 (*zero_extend<mode>si2): Likewise.
3422 (*zero_extendqihi2): Use avx512dq isa for the last alternative.
3423
3424 2016-09-05 Gerald Pfeifer <gerald@pfeifer.com>
3425
3426 * doc/invoke.texi (SPU Options): nops -> NOPs.
3427 (x86 Options): Ditto.
3428
3429 2016-09-05 Jakub Jelinek <jakub@redhat.com>
3430
3431 PR middle-end/77475
3432 * toplev.c (process_options): Temporarily set input_location
3433 to UNKNOWN_LOCATION around targetm.target_option.override () call.
3434
3435 2016-09-05 Uros Bizjak <ubizjak@gmail.com>
3436
3437 PR rtl-optimization/77452
3438 * explow.c (plus_constant) <case MEM>: Extract scalar constant from
3439 inner-mode reference to a CONST_VECTOR constant in the constant pool.
3440
3441 2016-09-05 Marek Polacek <polacek@redhat.com>
3442
3443 PR c/77423
3444 * doc/invoke.texi: Update -Wlogical-not-parentheses documentation.
3445
3446 2016-09-05 Jakub Jelinek <jakub@redhat.com>
3447
3448 PR other/77421
3449 * gensupport.c (alter_output_for_subst_insn): Remove redundant
3450 *insn_out == '*' test. Don't copy unnecessary to yet another
3451 memory buffer, and don't leak it.
3452
3453 PR rtl-optimization/77425
3454 * ipa-devirt.c (get_odr_type): Set val->id unconditionally.
3455
3456 2016-09-03 Kirill Yukhin <kirill.yukhin@intel.com>
3457
3458 * ubsan.c (ubsan_use_new_style_p): Fix check for empty string.
3459
3460 2016-09-02 David Malcolm <dmalcolm@redhat.com>
3461
3462 * common.opt (fdiagnostics-generate-patch): New option.
3463 * diagnostic.c: Include "edit-context.h".
3464 (diagnostic_initialize): Initialize context->edit_context_ptr.
3465 (diagnostic_finish): Delete context->edit_context_ptr.
3466 (diagnostic_report_diagnostic): Add fix-it hints from the
3467 diagnostic to context->edit_context_ptr, if any.
3468 * diagnostic.h (class edit_context): Add forward decl.
3469 (struct diagnostic_context): Add field "edit_context_ptr".
3470 * doc/invoke.texi (Diagnostic Message Formatting Options): Add
3471 -fdiagnostics-generate-patch.
3472 (-fdiagnostics-generate-patch): New item.
3473 * toplev.c: Include "edit-context.h".
3474 (process_options): Set global_dc->edit_context_ptr to a new
3475 edit_context if the options need one.
3476 (toplev::main): Handle -fdiagnostics-generate-patch by using
3477 global_dc->edit_context_ptr.
3478
3479 2016-09-02 Jakub Jelinek <jakub@redhat.com>
3480
3481 PR c/65467
3482 * gimplify.c (gimplify_adjust_omp_clauses_1): Diagnose implicit
3483 map and firstprivate clauses on target construct for _Atomic
3484 qualified decls.
3485 (gimplify_adjust_omp_clauses): Diagnose explicit firstprivate clauses
3486 on target construct for _Atomic qualified decls.
3487 * omp-low.c (use_pointer_for_field): Return true for _Atomic qualified
3488 decls.
3489 * omp-simd-clone.c (simd_clone_clauses_extract): Warn and give up for
3490 _Atomic qualified arguments not mentioned in uniform clause.
3491
3492 2016-09-02 David Malcolm <dmalcolm@redhat.com>
3493
3494 * Makefile.in (OBJS-libcommon): Add edit-context.o.
3495 * diagnostic-color.c (color_dict): Add "diff-filename",
3496 "diff-hunk", "diff-delete", and "diff-insert".
3497 (parse_gcc_colors): Update default value of GCC_COLORS in comment
3498 to reflect above changes.
3499 * doc/invoke.texi (-fdiagnostics-color): Update description of
3500 default GCC_COLORS, and of the supported capabilities.
3501 * edit-context.c: New file.
3502 * edit-context.h: New file.
3503 * input.c (struct fcache): Add field "missing_trailing_newline".
3504 (diagnostics_file_cache_forcibly_evict_file): Initialize it to
3505 true.
3506 (add_file_to_cache_tab): Likewise.
3507 (fcache::fcache): Likewise.
3508 (get_next_line): Update c->missing_trailing_newline.
3509 (location_missing_trailing_newline): New function.
3510 * input.h (location_missing_trailing_newline): New decl.
3511 * selftest-run-tests.c (selftest::run_tests): Call
3512 edit_context_c_tests.
3513 * selftest.h (edit_context_c_tests): New decl.
3514
3515 2016-09-02 Jakub Jelinek <jakub@redhat.com>
3516 Richard Biener <rguenth@suse.de>
3517
3518 PR tree-optimization/77444
3519 * tree-ssa-loop-ivopts.c (cand_value_at): For pointers use sizetype
3520 as steptype, remove redundant initialization.
3521
3522 2016-09-02 Jakub Jelinek <jakub@redhat.com>
3523
3524 PR sanitizer/77396
3525 * sanopt.c: Include gimple-ssa.h, tree-phinodes.h and ssa-iterators.h.
3526 (sanopt_optimize_walker): Optimize away
3527 __asan_before_dynamic_init (...) followed by
3528 __asan_after_dynamic_init () without intervening memory loads/stores.
3529 * ipa-pure-const.c (special_builtin_state): Handle
3530 BUILT_IN_ASAN_BEFORE_DYNAMIC_INIT and
3531 BUILT_IN_ASAN_AFTER_DYNAMIC_INIT.
3532
3533 2016-09-02 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
3534
3535 * cfg.c (free_original_copy_tables): Replace second assignment of
3536 bb_copy = NULL by bb_original = NULL.
3537
3538 2016-09-02 Jakub Jelinek <jakub@redhat.com>
3539
3540 PR other/77421
3541 * config/i386/i386.c (ix86_expanded_args_builtin): Remove redundant
3542 assignment added in r216794.
3543
3544 2016-09-02 David Malcolm <dmalcolm@redhat.com>
3545
3546 * Makefile.in (OBJS): Add typed-splay-tree.o.
3547 * selftest-run-tests.c (selftest::run_tests): Call
3548 typed_splay_tree_c_tests.
3549 * selftest.h (typed_splay_tree_c_tests): New decl.
3550 * typed-splay-tree.c: New file.
3551 * typed-splay-tree.h (typed_splay_tree::foreach_fn): New typedef.
3552 (typed_splay_tree::max): New method.
3553 (typed_splay_tree::min): New method.
3554 (typed_splay_tree::foreach): New method.
3555 (typed_splay_tree::closure): New struct.
3556 (typed_splay_tree::inner_foreach_fn): New function.
3557
3558 2016-09-02 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
3559
3560 * ipa-cp.c (ipcp_store_bits_results): Change option name from
3561 -fipa-cp-bit to -fipa-bit-cp.
3562
3563 2016-09-01 Martin Sebor <msebor@redhat.com>
3564
3565 PR tree-optimization/71831
3566 * tree-object-size.h: Return bool instead of the size and add
3567 argument for the size.
3568 * tree-object-size.c (compute_object_offset): Update signature.
3569 (addr_object_size): Same.
3570 (compute_builtin_object_size): Return bool instead of the size
3571 and add argument for the size. Handle POINTER_PLUS_EXPR when
3572 optimization is disabled.
3573 (expr_object_size): Adjust.
3574 (plus_stmt_object_size): Adjust.
3575 (pass_object_sizes::execute): Adjust.
3576 * builtins.c (fold_builtin_object_size): Adjust.
3577 * doc/extend.texi (Object Size Checking): Update.
3578 * ubsan.c (instrument_object_size): Adjust.
3579
3580 2016-09-01 Martin Sebor <msebor@redhat.com>
3581
3582 * genmatch.c (parser::parse_expr): Increase buffer size to guarantee
3583 it fits the output of the formatted function regardless of its
3584 arguments.
3585 * gcc/genmodes.c (parser::parse_expr): Same.
3586 * gimplify.c (gimplify_asm_expr): Same.
3587 * passes.c (pass_manager::register_one_dump_file): Same.
3588 * print-tree.c (print_node): Same.
3589
3590 2016-09-01 Segher Boessenkool <segher@kernel.crashing.org>
3591
3592 * config/rs6000/altivec.md: Use VSCR_REGNO instead of 110 throughout.
3593
3594 2016-09-01 Segher Boessenkool <segher@kernel.crashing.org>
3595
3596 * config/rs6000/altivec.md: Use VRSAVE_REGNO instead of 109 throughout.
3597
3598 2016-09-01 Segher Boessenkool <segher@kernel.crashing.org>
3599
3600 * config/rs6000/altivec.md: Use CR6_REGNO instead of 74 throughout.
3601 * config/rs6000/vector.md: Ditto.
3602 * config/rs6000/vsx.md: Ditto.
3603
3604 2016-09-01 Eric Botcazou <ebotcazou@adacore.com>
3605
3606 * ipa-inline-analysis.c (param_change_prob): Get to the base object
3607 first in all cases.
3608
3609 2016-09-01 Segher Boessenkool <segher@kernel.crashing.org>
3610
3611 * config/rs6000/rs6000.md (*restore_gpregs_<mode>_r11,
3612 *restore_gpregs_<mode>_r12, *restore_gpregs_<mode>_r1,
3613 *return_and_restore_gpregs_<mode>_r11,
3614 *return_and_restore_gpregs_<mode>_r12,
3615 *return_and_restore_gpregs_<mode>_r1,
3616 *return_and_restore_fpregs_<mode>_r11,
3617 *return_and_restore_fpregs_<mode>_r12,
3618 *return_and_restore_fpregs_<mode>_r1): Use the hard register LR_REGNO
3619 directly instead of via the "l" constraint. Renumber operands.
3620 Fix whitespace.
3621
3622 2016-09-01 Segher Boessenkool <segher@kernel.crashing.org>
3623
3624 * config/rs6000/altivec.md (*save_world, *save_vregs_<mode>_r11,
3625 save_vregs_<mode>_r12, *restore_vregs_<mode>_r11,
3626 *restore_vregs_<mode>_r12): Use LR_REGNO instead of 65.
3627 * config/rs6000/darwin.md (load_macho_picbase, load_macho_picbase_si,
3628 load_macho_picbase_di, *call_indirect_nonlocal_darwin64,
3629 *call_nonlocal_darwin64, *call_value_indirect_nonlocal_darwin64,
3630 *call_value_nonlocal_darwin64, reload_macho_picbase,
3631 reload_macho_picbase_si, reload_macho_picbase_di): Ditto.
3632 * config/rs6000/rs6000.h (RETURN_ADDR_IN_PREVIOUS_FRAME): Ditto.
3633 * config/rs6000/rs6000.md (*save_gpregs_<mode>_r11,
3634 *save_gpregs_<mode>_r12, *save_gpregs_<mode>_r1,
3635 *save_fpregs_<mode>_r11, *save_fpregs_<mode>_r12,
3636 *save_fpregs_<mode>_r1): Ditto.
3637 * config/rs6000/spe.md (*save_gpregs_spe, *restore_gpregs_spe,
3638 *return_and_restore_gpregs_spe): Ditto.
3639
3640 2016-09-01 Segher Boessenkool <segher@kernel.crashing.org>
3641
3642 * config/rs6000/rs6000.md
3643 (define_insn "*return_and_restore_fpregs_aix_<mode>_r11"): Delete
3644 the use of the link register.
3645 (define_insn "*return_and_restore_fpregs_aix_<mode>_r1"): Ditto.
3646
3647 2016-09-01 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
3648 Michael Meissner <meissner@linux.vnet.ibm.com>
3649
3650 PR target/72827
3651 * config/rs6000/rs6000.c (rs6000_legitimize_address): Avoid
3652 reg+reg addressing for TImode.
3653 (rs6000_legitimate_address_p): Only allow register indirect
3654 addressing for TImode, even without TARGET_QUAD_MEMORY.
3655
3656 2016-09-01 Richard Biener <rguenther@suse.de>
3657
3658 PR middle-end/77436
3659 * tree-chrec.c (tree_fold_binomial): Use widest_int, properly
3660 check whether the result fits the desired result type.
3661
3662 2016-09-01 Nathan Sidwell <nathan@acm.org>
3663
3664 * config/nvptx/nvptx.md (cbranch<mode>4): Op 2 can be const.
3665
3666 2016-09-01 Wilco Dijkstra <wdijkstr@arm.com>
3667
3668 * config/aarch64/aarch64.c (aarch64_legitimize_address_displacement):
3669 New function.
3670 (TARGET_LEGITIMIZE_ADDRESS_DISPLACEMENT): Define.
3671
3672 2016-09-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3673
3674 * config/aarch64/aarch64.md (*ands<mode>_compare0): New pattern.
3675 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Return CC_NZmode
3676 for comparisons of integer ZERO_EXTEND against zero.
3677
3678 2016-09-01 Eric Botcazou <ebotcazou@adacore.com>
3679
3680 * config/i386/i386.c (ix86_option_override_internal): Also disable the
3681 STV pass if -mstackrealign is enabled.
3682
3683 2016-08-31 Ilya Verbin <iverbin@gmail.com>
3684
3685 * config/i386/driver-i386.c (host_detect_local_cpu): Fix detection of
3686 AVX512IFMA.
3687
3688 2016-08-31 David Malcolm <dmalcolm@redhat.com>
3689
3690 * diagnostic-show-locus.c (class layout): Add field m_fixit_hints.
3691 (layout_range::intersects_line_p): New method.
3692 (test_range_contains_point_for_single_point): Rename to...
3693 (test_layout_range_for_single_point): ...this, and add testing
3694 for layout_range::intersects_line_p.
3695 (test_range_contains_point_for_single_line): Rename to...
3696 (test_layout_range_for_single_line): ...this, and add testing
3697 for layout_range::intersects_line_p.
3698 (test_range_contains_point_for_multiple_lines): Rename to...
3699 (test_layout_range_for_multiple_lines): ...this, and add testing
3700 for layout_range::intersects_line_p.
3701 (layout::layout): Populate m_fixit_hints.
3702 (layout::get_expanded_location): Handle the case of a line-span
3703 for a fix-it hint.
3704 (layout::validate_fixit_hint_p): New method.
3705 (get_line_span_for_fixit_hint): New function.
3706 (layout::calculate_line_spans): Add spans for fixit-hints.
3707 (layout::should_print_annotation_line_p): New method.
3708 (layout::print_any_fixits): Drop param "richloc", instead using
3709 validated fixits in m_fixit_hints. Add "const" to hint pointers.
3710 (diagnostic_show_locus): Avoid printing blank annotation lines.
3711 (selftest::test_diagnostic_context::test_diagnostic_context):
3712 Initialize show_column and start_span.
3713 (selftest::test_diagnostic_context::start_span_cb): New static
3714 function.
3715 (selftest::test_diagnostic_show_locus_fixit_lines): New function.
3716 (selftest::diagnostic_show_locus_c_tests): Update for function
3717 renamings. Call test_diagnostic_show_locus_fixit_lines.
3718
3719 2016-08-31 Marc Glisse <marc.glisse@inria.fr>
3720
3721 PR tree-optimization/73714
3722 * match.pd (a * (1 << b)): Revert change from 2016-05-23.
3723
3724 2016-08-31 David Malcolm <dmalcolm@redhat.com>
3725
3726 * selftest.c: Move "namespace selftest {" to top of file,
3727 removing explicit "selftest::" qualifiers throughout.
3728
3729 2016-08-31 Marc Glisse <marc.glisse@inria.fr>
3730
3731 * config/i386/avx512fintrin.h (__m512_u, __m512i_u, __m512d_u):
3732 New types.
3733 (_mm512_loadu_pd, _mm512_storeu_pd, _mm512_loadu_ps,
3734 _mm512_storeu_ps, _mm512_loadu_si512, _mm512_storeu_si512):
3735 Replace builtin with vector extension.
3736 * config/i386/avxintrin.h (__m256_u, __m256i_u, __m256d_u):
3737 New types.
3738 (_mm256_loadu_pd, _mm256_storeu_pd, _mm256_loadu_ps,
3739 _mm256_storeu_ps, _mm256_loadu_si256, _mm256_storeu_si256):
3740 Replace builtin with vector extension.
3741 * config/i386/emmintrin.h (__m128i_u, __m128d_u): New types.
3742 (_mm_loadu_pd, _mm_storeu_pd, _mm_loadu_si128, _mm_storeu_si128):
3743 Replace builtin with vector extension.
3744 * config/i386/xmmintrin.h (__m128_u): New type.
3745 (_mm_loadu_ps, _mm_storeu_ps): Replace builtin with vector extension.
3746 (_mm_load_ps, _mm_store_ps): Simplify.
3747
3748 2016-08-31 Eric Botcazou <ebotcazou@adacore.com>
3749
3750 * config/arm/arm.c (thumb1_size_rtx_costs) <SET>: Add missing guard.
3751
3752 2016-08-30 David Malcolm <dmalcolm@redhat.com>
3753
3754 * diagnostic-show-locus.c (colorizer::begin_state): Support more
3755 than 3 ranges per diagnostic by alternating between color 1 and
3756 color 2.
3757 (layout::layout): Replace use of rich_location::MAX_RANGES
3758 with richloc->get_num_locations ().
3759 (layout::calculate_line_spans): Replace use of
3760 rich_location::MAX_RANGES with m_layout_ranges.length ().
3761 (layout::print_annotation_line): Handle arbitrary numbers of
3762 ranges in caret-printing by defaulting to '^'.
3763 (selftest::test_one_liner_many_fixits): New function.
3764 (test_diagnostic_show_locus_one_liner): Call it.
3765 * diagnostic.c (diagnostic_initialize): Update for renaming
3766 of rich_location::MAX_RANGES to
3767 rich_location::STATICALLY_ALLOCATED_RANGES.
3768 * diagnostic.h (struct diagnostic_context): Likewise.
3769
3770 2016-08-30 David Malcolm <dmalcolm@redhat.com>
3771
3772 * selftest.c (selftest::named_temp_file::named_temp_file): New
3773 ctor.
3774 (selftest::temp_source_file::~temp_source_file): Move to...
3775 (selftest::named_temp_file::~named_temp_file): ...here.
3776 (selftest::test_named_temp_file): New function.
3777 (selftest::selftest_c_tests): Call test_named_temp_file.
3778 * selftest.h (class named_temp_file): New class.
3779 (class temp_source_file): Convert to a subclass of named_temp_file.
3780
3781 2016-08-30 Segher Boessenkool <segher@kernel.crashing.org>
3782
3783 * config/rs6000/rs6000.c (rs6000_emit_epilogue): Do not emit
3784 USEs of LR_REGNO in returns and sibcalls.
3785 (rs6000_output_mi_thunk): Similar.
3786 (rs6000_sibcall_aix): Similar.
3787 * config/rs6000/rs6000.md (sibcall, sibcall_value, sibcall_local32,
3788 sibcall_local64, sibcall_value_local32, sibcall_value_local64,
3789 sibcall_nonlocal_sysv<mode>, sibcall_value_nonlocal_sysv<mode>):
3790 Remove the USE of LR_REGNO from the patterns as well. Delete an
3791 obsolete comment.
3792 (return_internal_<mode>): Delete.
3793
3794 2016-08-30 Tamar Christina <tamar.christina@arm.com>
3795
3796 * gcc/config/aarch64/aarch64-simd.md
3797 (aarch64_ld2<mode>_dreg_le): New.
3798 (aarch64_ld2<mode>_dreg_be): New.
3799 (aarch64_ld2<mode>_dreg): Removed.
3800 (aarch64_ld3<mode>_dreg_le): New.
3801 (aarch64_ld3<mode>_dreg_be): New.
3802 (aarch64_ld3<mode>_dreg): Removed.
3803 (aarch64_ld4<mode>_dreg_le): New.
3804 (aarch64_ld4<mode>_dreg_be): New.
3805 (aarch64_ld4<mode>_dreg): Removed.
3806 (aarch64_ld<VSTRUCT:nregs><VDC:mode>): Wrapper around _le, _be.
3807
3808 2016-08-30 David Malcolm <dmalcolm@redhat.com>
3809
3810 * diagnostic-show-locus.c (test_one_liner_fixit_insert): Remove
3811 redundant location param.
3812 (test_one_liner_fixit_remove): Likewise.
3813 (test_one_liner_fixit_replace): Likewise.
3814 (test_one_liner_fixit_replace_equal_secondary_range): Likewise.
3815 * gcc-rich-location.c
3816 (gcc_rich_location::add_fixit_misspelled_id): Eliminate call to
3817 get_range_from_loc. Drop overload taking a const char *.
3818 * gcc-rich-location.h
3819 (gcc_rich_location::add_fixit_misspelled_id): Drop overload taking
3820 a const char *.
3821
3822 2016-08-30 Szabolcs Nagy <szabolcs.nagy@arm.com>
3823
3824 * config/linux.c (linux_libc_has_function): Return true on musl.
3825
3826 2016-08-30 Szabolcs Nagy <szabolcs.nagy@arm.com>
3827
3828 * config.gcc (*-*-*musl*): Disable gnu-indirect-function.
3829
3830 2016-08-30 Eric Botcazou <ebotcazou@adacore.com>
3831
3832 * postreload-gcse.c (bb_has_well_behaved_predecessors): Tweak criterion
3833 used for abnormal egdes.
3834
3835 2016-08-30 Jakub Jelinek <jakub@redhat.com>
3836
3837 PR tree-optimization/72866
3838 * tree-vect-patterns.c (search_type_for_mask): Turn into
3839 a small wrapper, move all code to ...
3840 (search_type_for_mask_1): ... this new function. Add caching
3841 and adjust recursive calls.
3842
3843 PR debug/77363
3844 * dwarf2out.c (modified_type_die): Use lookup_type_die (type)
3845 instead of lookup_type_die (type_main_variant (type)) even for array
3846 types.
3847
3848 PR middle-end/77377
3849 * simplify-rtx.c (avoid_constant_pool_reference): For out of bounds
3850 constant pool reference return x instead of c.
3851
3852 2016-08-29 Segher Boessenkool <segher@kernel.crashing.org>
3853
3854 * config/rs6000/rs6000.h (CALL_REALLY_USED_REGISTERS): Do not
3855 include MQ.
3856
3857 2016-08-29 David Malcolm <dmalcolm@redhat.com>
3858
3859 * input.c
3860 (selftest::test_make_location_nonpure_range_endpoints): Fix
3861 header comment.
3862
3863 2016-08-29 David Malcolm <dmalcolm@redhat.com>
3864
3865 * diagnostic-show-locus.c
3866 (selftest::test_one_liner_fixit_validation_adhoc_locations): New
3867 function.
3868 (selftest::test_diagnostic_show_locus_one_liner): Call it.
3869 * input.c (get_pure_location): Move to libcpp/line-map.c.
3870 * input.h (get_pure_location): Convert decl to an inline function
3871 calling implementation in libcpp.
3872
3873 2016-08-29 Uros Bizjak <ubizjak@gmail.com>
3874
3875 PR target/77403
3876 * config/i386/sse.md (vec_set_lo_<mode><mask_name>): Fix assembler
3877 template for intel asm dialect.
3878 (vec_set_hi_<mode><mask_name>): Ditto.
3879
3880 2016-08-29 David Malcolm <dmalcolm@redhat.com>
3881
3882 * selftest.h (selftest::fail): Add ATTRIBUTE_NORETURN.
3883 (selftest::fail_formatted): Likewise.
3884
3885 2016-08-29 David Malcolm <dmalcolm@redhat.com>
3886
3887 * input.c (make_location): Call get_start and get_finish
3888 on the endpoints to avoid storing packed ranges or ad-hoc
3889 ranges in them.
3890 (selftest::test_make_location_nonpure_range_endpoints): New function.
3891 (selftest::input_c_tests): Call it.
3892 * input.h (get_start): New inline function.
3893
3894 2016-08-29 Tom de Vries <tom@codesourcery.com>
3895
3896 PR c/77398
3897 * gimplify.c (gimplify_va_arg_expr): Replace first argument type error
3898 with assert.
3899
3900 2016-08-29 Eric Botcazou <ebotcazou@adacore.com>
3901
3902 * Makefile.in (gcov-iov.h): Add dummy recipe.
3903
3904 2016-08-29 Nathan Sidwell <nathan@acm.org>
3905
3906 * config/nvptx/nvptx.c: #include tree-vrp.h.
3907
3908 2016-08-28 Eric Botcazou <ebotcazou@adacore.com>
3909
3910 PR target/77324
3911 * config/sparc/sparc.c (sparc_legitimate_address_p): Accept special
3912 HIGH+LO construct during reload.
3913
3914 2016-08-28 Tom de Vries <tom@codesourcery.com>
3915
3916 PR lto/70955
3917 * config/i386/i386.c (ix86_build_builtin_va_list_64): Tag type with
3918 'sysv_abi va_list' attribute.
3919 (ix86_build_builtin_va_list): Tag type with 'ms_abi va_list' attribute.
3920 (ix86_canonical_va_list_type): Handle 'sysv_abi/ms_abi va_list'
3921 attributes.
3922
3923 2016-08-27 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
3924
3925 * emit-rtl.h (struct rtl_data): Make stack_slot_list a vector.
3926 * emit-rtl.c (unshare_all_rtl_1): Adjust.
3927 (unshare_all_rtl_again): Likewise.
3928 * function.c (assign_stack_local_1): Likewise.
3929 (assign_stack_temp_for_type): Likewise.
3930
3931 2016-08-27 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
3932
3933 * cfgbuild.c (make_edges): Adjust.
3934 * cfgrtl.c (can_delete_label_p): Likewise.
3935 * dwarf2cfi.c (create_trace_edges): Likewise.
3936 * except.c (sjlj_emit_dispatch_table): Likewise.
3937 * function.h (struct expr_status): make x_forced_labels a vector.
3938 * jump.c (rebuild_jump_labels_1): Adjust.
3939 * reload1.c (set_initial_label_offsets): Likewise.
3940 * stmt.c (force_label_rtx): Likewise.
3941 (expand_label): Likewise.
3942
3943 2016-08-27 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
3944
3945 * haifa-sched.c (fix_recovery_deps): Make ready_list a vector.
3946
3947 2016-08-27 Patrick Palka <ppalka@gcc.gnu.org>
3948
3949 PR tree-optimization/71077
3950 PR tree-optimization/68542
3951 * fold-const.c (fold_relational_const): Fix folding of
3952 VECTOR_CST comparisons that have a scalar boolean result type.
3953 (selftest::test_vector_folding): New static function.
3954 (selftest::fold_const_c_tests): Call it.
3955
3956 2016-08-27 Gerald Pfeifer <gerald@pfeifer.com>
3957
3958 * doc/extend.texi (SPU Built-in Functions): Remove stale
3959 references to material formerly at IBM and Sony.
3960
3961 2016-08-26 David Edelsohn <dje.gcc@gmail.com>
3962
3963 PR target/77349
3964 * config/rs6000/xcoff.h (DWARF_OFFSET_SIZE): Define as PTR_SIZE.
3965
3966 2016-08-26 David Malcolm <dmalcolm@redhat.com>
3967
3968 * diagnostic-show-locus.c
3969 (selftest::test_fixit_consolidation): New function.
3970 (selftest::diagnostic_show_locus_c_tests): Call it.
3971 * gcc-rich-location.h (gcc_rich_location): Eliminate unused
3972 constructor based on source_range.
3973
3974 2016-08-26 David Malcolm <dmalcolm@redhat.com>
3975
3976 * diagnostic-color.c (color_dict): Add "fixit-insert" and
3977 "fixit-delete".
3978 (parse_gcc_colors): Update description of default GCC_COLORS.
3979 * diagnostic-show-locus.c (colorizer::set_fixit_hint): Delete.
3980 (colorizer::set_fixit_insert): New method.
3981 (colorizer::set_fixit_delete): New method.
3982 (colorizer::get_color_by_name): New method.
3983 (colorizer::STATE_FIXIT_INSERT): New constant.
3984 (colorizer::STATE_FIXIT_DELETE): New constant.
3985 (class colorizer): Drop "_cs" suffix from fields. Delete "_ce"
3986 fields in favor of new field "m_stop_color". Add fields
3987 "m_fixit_insert" and "m_fixit_delete".
3988 (colorizer::colorizer): Update for above changes. Replace
3989 colorize_start calls with calls to get_color_by_name.
3990 (colorizer::begin_state): Handle STATE_FIXIT_INSERT and
3991 STATE_FIXIT_DELETE. Update for field renamings.
3992 (colorizer::finish_state): Simplify by using m_stop_color,
3993 rather than multiple identical "*_ce" fields.
3994 (colorizer::get_color_by_name): New method.
3995 (layout::print_any_fixits): Print insertions and replacements
3996 using the "fixit-insert" color, and deletions using the
3997 "fixit-delete" color.
3998 * doc/invoke.texi (-fdiagnostics-color): Update description of
3999 default GCC_COLORS, and of the supported capabilities.
4000
4001 2016-08-26 Max Filippov <jcmvbkbc@gmail.com>
4002
4003 * config/xtensa/xtensa.c (xtensa_expand_prologue): Update
4004 current_function_static_stack_size variable with the static
4005 stack frame size of the current function when
4006 flag_stack_usage_info is enabled.
4007
4008 2016-08-26 Nathan Sidwell <nathan@acm.org>
4009
4010 * ipa-inline-analysis.c (inline_write_summary): Remove unnecessary
4011 assignment inside if condition.
4012
4013 2016-08-26 Richard Biener <rguenther@suse.de>
4014
4015 PR tree-optimization/69047
4016 * tree-ssa.c (maybe_rewrite_mem_ref_base): Handle general bitfield
4017 extracts similar to what FRE does.
4018 (non_rewritable_mem_ref_base): Likewise.
4019
4020 2016-08-26 Joseph Myers <joseph@codesourcery.com>
4021
4022 * config/i386/i386.c (ix86_libgcc_floating_mode_supported_p)
4023 (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P): Remove.
4024 * config/i386/i386elf.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Likewise.
4025 * config/i386/lynx.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Likewise.
4026 * config/i386/netbsd-elf.h (IX86_MAYBE_NO_LIBGCC_TFMODE):
4027 Likewise.
4028 * config/i386/netbsd64.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Likewise.
4029 * config/i386/nto.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Likewise.
4030 * config/i386/openbsd.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Likewise.
4031 * config/i386/rtemself.h (IX86_NO_LIBGCC_TFMODE): Likewise.
4032 * config/i386/vxworks.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Likewise.
4033
4034 2016-08-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4035
4036 PR target/70473
4037 * config/arm/cortex-a8-neon.md (cortex_a8_vfp_muld): Reduce
4038 reservation duration to 15 cycles.
4039 (cortex_a8_vfp_macs): Likewise.
4040 (cortex_a8_vfp_macd): Likewise.
4041 (cortex_a8_vfp_divs): Likewise.
4042 (cortex_a8_vfp_divd): Likewise.
4043
4044 2016-08-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4045
4046 * config/arm/arm.c (arm_sets_movw_movt_fusible_p): New function.
4047 (aarch_macro_fusion_pair_p): Use above to avoid early return.
4048
4049 2016-08-26 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
4050 Martin Jambhor <mjambor@suse.cz>
4051
4052 * common.opt: New option -fipa-bit-cp.
4053 * doc/invoke.texi: Document -fipa-bit-cp.
4054 * opts.c (default_options_table): Add entry for -fipa-bit-cp.
4055 (enable_fdo_optimizations): Check for flag_ipa_bit_cp.
4056 * tree-ssa-ccp.h: New header file.
4057 * tree-ssa-ccp.c: Include tree-ssa-ccp.h
4058 (bit_value_binop_1): Change to bit_value_binop_1 and export it.
4059 Replace all occurences of tree parameter by two new params: signop, int.
4060 (bit_value_unop_1): Change to bit_value_unop and export it.
4061 Replace all occurences of tree parameter by two new params: signop,
4062 int.
4063 (bit_value_binop): Change call from bit_value_binop_1 to
4064 bit_value_binop.
4065 (bit_value_assume_aligned): Likewise.
4066 (bit_value_unop): Change call from bit_value_unop_1 to bit_value_unop.
4067 (do_ssa_ccp): Pass nonzero_p || flag_ipa_cp_bit instead of nonzero_p
4068 to ccp_finalize.
4069 (ccp_finalize): Skip processing if val->mask == 0.
4070 * ipa-cp.c: Include tree-ssa-ccp.h
4071 (ipcp_bits_lattice): New class.
4072 (ipcp_param_lattice (bits_lattice): New member.
4073 (print_all_lattices): Call ipcp_bits_lattice::print.
4074 (set_all_contains_variable): Call ipcp_bits_lattice::set_to_bottom.
4075 (initialize_node_lattices): Likewise.
4076 (propagate_bits_accross_jump_function): New function.
4077 (propagate_constants_accross_call): Call
4078 propagate_bits_accross_jump_function.
4079 (ipcp_propagate_stage): Store parameter types when in_lto_p is true.
4080 (ipcp_store_bits_results): New function.
4081 (ipcp_driver): Call ipcp_store_bits_results.
4082 * ipa-prop.h (ipa_bits): New struct.
4083 (ipa_jump_func): Add new member bits of type ipa_bits.
4084 (ipa_param_descriptor): Change decl to decl_or_type.
4085 (ipa_get_param): Change decl to decl_or_type and assert on
4086 PARM_DECL.
4087 (ipa_get_type): New function.
4088 (ipcp_transformation_summary): New member bits.
4089 * ipa-prop.c (ipa_get_param_decl_index_1): s/decl/decl_or_type.
4090 (ipa_populate_param_decls): Likewise.
4091 (ipa_dump_param): Likewise.
4092 (ipa_print_node_jump_functions_for_edge): Pretty-print ipa_bits jump
4093 function.
4094 (ipa_set_jf_unknown): Set ipa_bits::known to false.
4095 (ipa_compute_jump_functions_for_edge): Compute jump function for bits
4096 propagation.
4097 (ipa_node_params_t::duplicate): Copy src->bits into dst->bits.
4098 (ipa_write_jump_function): Add streaming for ipa_bits.
4099 (ipa_read_jump_function): Add support for reading streamed ipa_bits.
4100 (write_ipcp_transformation_info): Add streaming for ipa_bits
4101 summary for ltrans.
4102 (read_ipcp_transfomration_info): Add support for reading streamed
4103 ipa_bits.
4104 (ipcp_update_bits): New function.
4105 (ipcp_transform_function): Call ipcp_update_bits.
4106
4107 2016-08-25 Szabolcs Nagy <szabolcs.nagy@arm.com>
4108
4109 * config/mips/linux.h (MUSL_DYNAMIC_LINKER32): Update.
4110 (MUSL_DYNAMIC_LINKER64, MUSL_DYNAMIC_LINKERN32): Update.
4111
4112 2016-08-25 David Edelsohn <dje.gcc@gmail.com>
4113
4114 * multiple_target.c (pass_data_dispatcher_calls): Fix typo.
4115
4116 2016-08-25 Richard Biener <rguenther@suse.de>
4117
4118 * dwarf2out.c (gen_remaining_tmpl_value_param_die_attributes):
4119 Only add locations in late dwarf.
4120 (gen_scheduled_generic_parms_dies): Do not set early dwarf here.
4121 (dwarf2out_early_finish): But do it here.
4122
4123 2016-08-24 Michael Collison <michael.collison@linaro.org>
4124 Michael Collison <michael.collison@arm.com>
4125
4126 * config/arm/arm-modes.def: Add new condition code mode CC_V
4127 to represent the overflow bit.
4128 * config/arm/arm.c (maybe_get_arm_condition_code):
4129 Add support for CC_Vmode.
4130 (arm_gen_unlikely_cbranch): New function to generate common
4131 rtl conditional branches for overflow patterns.
4132 * config/arm/arm-protos.h: Add prototype for
4133 arm_gen_unlikely_cbranch.
4134 * config/arm/arm.md (addv<mode>4, add<mode>3_compareV,
4135 addsi3_compareV_upper): New patterns to support signed
4136 builtin overflow add operations.
4137 (uaddv<mode>4, add<mode>3_compareC, addsi3_compareV_upper):
4138 New patterns to support unsigned builtin add overflow operations.
4139 (subv<mode>4, sub<mode>3_compare1): New patterns to support signed
4140 builtin overflow subtract operations,
4141 (usubv<mode>4): New patterns to support unsigned builtin subtract
4142 overflow operations.
4143 (negvsi3, negvdi3, negdi2_compare, negsi2_carryin_compare): New patterns
4144 to support builtin overflow negate operations.
4145
4146 2016-08-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
4147
4148 Revert
4149 2016-08-23 Dominik Vogt <vogt@linux.vnet.ibm.com>
4150
4151 * explow.c (get_dynamic_stack_size): Take known alignment of stack
4152 pointer + STACK_DYNAMIC_OFFSET into account when calculating the size
4153 needed.
4154
4155 2016-08-24 Thomas Preud'homme <thomas.preudhomme@arm.com>
4156
4157 * doc/fragments.texi (MULTILIB_REUSE): Mention that only options in
4158 MULTILIB_OPTIONS should be used. Small wording fixes.
4159 * genmultilib: Memorize set of all option combinations in
4160 combination_space. Detect if RHS of MULTILIB_REUSE uses an option not
4161 found in MULTILIB_OPTIONS by checking if option set is listed in
4162 combination_space. Output new and existing error message to stderr.
4163
4164 2016-08-24 Thomas Preud'homme <thomas.preudhomme@arm.com>
4165
4166 * config/arm/t-aprofile (MULTILIB_MATCHES): Add mapping for
4167 -mcpu=cortex-a7, -mfpu=neon-fp16, -mfpu=fpv5-d16 and -mfpu=fp-armv8.
4168 Fix typo in -mfpu=vfpv3-d16-fp16 mapping.
4169 (MULTILIB_REUSE): Remove reuse rules for option set including
4170 -mfpu=fp-armv8 and -mfpu=vfpv4
4171
4172 2016-08-24 Sebastian Huber <sebastian.huber@embedded-brains.de>
4173
4174 * config/arm/t-rtems: Add vfp multilib.
4175
4176 2016-08-23 Ian Lance Taylor <iant@golang.org>
4177
4178 * config/s390/s390.c (s390_asm_file_start): Call
4179 default_file_start.
4180
4181 2016-08-23 Michael Meissner <meissner@linux.vnet.ibm.com>
4182
4183 * config/rs6000/rs6000.c (rs6000_expand_vector_init): Set
4184 initialization of all 0's to the 0 constant, instead of directly
4185 generating XOR. Add support for V4SImode vector initialization on
4186 64-bit systems with direct move, and rework the ISA 3.0 V4SImode
4187 initialization. Change variables used in V4SFmode vector
4188 intialization. For V4SFmode vector splat on ISA 3.0, make sure
4189 any memory addresses are in index form. Add support for using
4190 VSPLTH/VSPLTB to initialize vector short and vector char vectors
4191 with all of the same element.
4192 (regno_or_subregno): New helper function to return a register
4193 number for either REG or SUBREG.
4194 (rs6000_adjust_vec_address): Do not generate ADDI <reg>,R0,<num>.
4195 Use regno_or_subregno where possible.
4196 (rs6000_split_v4si_init_di_reg): New helper function to build up a
4197 DImode value from two SImode values in order to generate V4SImode
4198 vector initialization on 64-bit systems with direct move.
4199 (rs6000_split_v4si_init): Split up the insns for a V4SImode vector
4200 initialization.
4201 (rtx_is_swappable_p): V4SImode vector initialization insn is not
4202 swappable.
4203 * config/rs6000/rs6000-protos.h (rs6000_split_v4si_init): Add
4204 declaration.
4205 * config/rs6000/vsx.md (VSX_SPLAT_I): New mode iterators and
4206 attributes to initialize V8HImode and V16QImode vectors with the
4207 same element.
4208 (VSX_SPLAT_COUNT): Likewise.
4209 (VSX_SPLAT_SUFFIX): Likewise.
4210 (UNSPEC_VSX_VEC_INIT): New unspec.
4211 (vsx_concat_v2sf): Eliminate using 'preferred' register classes.
4212 Allow SFmode values to come from Altivec registers.
4213 (vsx_init_v4si): New insn/split for V4SImode vector initialization
4214 on 64-bit systems with direct move.
4215 (vsx_splat_<mode>, VSX_W iterator): Rework V4SImode and V4SFmode
4216 vector initializations, to allow V4SImode vector initializations
4217 on 64-bit systems with direct move.
4218 (vsx_splat_v4si): Likewise.
4219 (vsx_splat_v4si_di): Likewise.
4220 (vsx_splat_v4sf): Likewise.
4221 (vsx_splat_v4sf_internal): Likewise.
4222 (vsx_xxspltw_<mode>, VSX_W iterator): Eliminate using 'preferred'
4223 register classes.
4224 (vsx_xxspltw_<mode>_direct, VSX_W iterator): Likewise.
4225 (vsx_vsplt<VSX_SPLAT_SUFFIX>_di): New insns to support
4226 initializing V8HImode and V16QImode vectors with the same
4227 element.
4228 * config/rs6000/rs6000.h (TARGET_DIRECT_MOVE_64BIT): Disallow
4229 optimization if -maltivec=be.
4230
4231 2016-08-23 Christophe Lyon <christophe.lyon@linaro.org>
4232
4233 * config/arm/arm.md (arm_movqi_insn): Swap predicable_short_it
4234 attribute for alternatives 3 and 4.
4235
4236 2016-08-23 David Malcolm <dmalcolm@redhat.com>
4237
4238 * selftest.c (selftest::assert_str_contains): New function.
4239 (selftest::test_assertions): Verify ASSERT_STR_CONTAINS.
4240 * selftest.h (selftest::assert_str_contains): New decl.
4241 (ASSERT_STR_CONTAINS): New macro.
4242
4243 2016-08-23 Richard Biener <rguenther@suse.de>
4244
4245 PR tree-optimization/77286
4246 * tree-vect-loop.c (vect_analyze_loop_form_1): Do not modify
4247 the CFG here.
4248 (vect_transform_loop): Split exit edges of loop and scalar
4249 loop if required and at the appropriate time.
4250
4251 2016-08-23 Dominik Vogt <vogt@linux.vnet.ibm.com>
4252
4253 * explow.c (get_dynamic_stack_size): Take known alignment of stack
4254 pointer + STACK_DYNAMIC_OFFSET into account when calculating the size
4255 needed.
4256 Correct a typo in a comment.
4257
4258 2016-08-23 Dominik Vogt <vogt@linux.vnet.ibm.com>
4259
4260 * config/s390/s390.md ("*andc_split"): New splitter for and with
4261 complement.
4262
4263 2016-08-23 Richard Biener <rguenther@suse.de>
4264
4265 PR tree-optimization/27336
4266 * tree-vrp.c (infer_value_range): Handle stmts that can throw
4267 by looking for a non-EH edge.
4268 (process_assert_insertions_for): Likewise.
4269
4270 2016-08-23 Richard Biener <rguenther@suse.de>
4271
4272 PR middle-end/77305
4273 * statistics.c (statistics_counter_event): Robustify against
4274 NULL current_pass.
4275
4276 2016-08-23 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
4277
4278 * config/i386/i386.c (processor_alias_table): Enable PTA_PRFCHW
4279 for targets amdfam10 and barcelona.
4280
4281 2016-08-22 Uros Bizjak <ubizjak@gmail.com>
4282
4283 * config/i386/i386.md (*zero_extendsidi2): Add (*r,*k) alternative.
4284 (zero_extend<mode>di2): Ditto.
4285 (*zero_extend<mode>si2): Ditto.
4286 (*zero_extendqihi2): Ditto.
4287
4288 2016-08-22 Joseph Myers <joseph@codesourcery.com>
4289
4290 PR middle-end/77269
4291 * builtins.c (fold_builtin_classify): Use builtin_decl_explicit
4292 (BUILT_IN_SIGNBIT) to expand __builtin_isinf_sign.
4293
4294 2016-08-22 Patrick Palka <ppalka@gcc.gnu.org>
4295
4296 * print-tree.c (print_node) [VECTOR_CST]: Coalesce the output of
4297 identical consecutive elements.
4298 [SSA_NAME]: Print the name's def stmt on its own line. When printing
4299 the node's def stmt, avoid printing an unwanted trailing newline by
4300 replacing the call to print_gimple_stmt() with its inlined body and
4301 adjusting it to not set pp_needs_newline and to call pp_flush()
4302 instead of pp_newline_and_flush().
4303
4304 2016-08-22 Joseph Myers <joseph@codesourcery.com>
4305
4306 * tree.h (CASE_FLT_FN_FLOATN_NX, float16_type_node)
4307 (float32_type_node, float64_type_node, float32x_type_node)
4308 (float128x_type_node): New macros.
4309 * builtin-types.def (BT_FLOAT16, BT_FLOAT32, BT_FLOAT64)
4310 (BT_FLOAT128, BT_FLOAT32X, BT_FLOAT64X, BT_FLOAT128X)
4311 (BT_FN_FLOAT16, BT_FN_FLOAT32, BT_FN_FLOAT64, BT_FN_FLOAT128)
4312 (BT_FN_FLOAT32X, BT_FN_FLOAT64X, BT_FN_FLOAT128X)
4313 (BT_FN_FLOAT16_FLOAT16, BT_FN_FLOAT32_FLOAT32)
4314 (BT_FN_FLOAT64_FLOAT64, BT_FN_FLOAT128_FLOAT128)
4315 (BT_FN_FLOAT32X_FLOAT32X, BT_FN_FLOAT64X_FLOAT64X)
4316 (BT_FN_FLOAT128X_FLOAT128X, BT_FN_FLOAT16_CONST_STRING)
4317 (BT_FN_FLOAT32_CONST_STRING, BT_FN_FLOAT64_CONST_STRING)
4318 (BT_FN_FLOAT128_CONST_STRING, BT_FN_FLOAT32X_CONST_STRING)
4319 (BT_FN_FLOAT64X_CONST_STRING, BT_FN_FLOAT128X_CONST_STRING)
4320 (BT_FN_FLOAT16_FLOAT16_FLOAT16, BT_FN_FLOAT32_FLOAT32_FLOAT32)
4321 (BT_FN_FLOAT64_FLOAT64_FLOAT64, BT_FN_FLOAT128_FLOAT128_FLOAT128)
4322 (BT_FN_FLOAT32X_FLOAT32X_FLOAT32X)
4323 (BT_FN_FLOAT64X_FLOAT64X_FLOAT64X)
4324 (BT_FN_FLOAT128X_FLOAT128X_FLOAT128X): New type definitions.
4325 * builtins.def (DEF_GCC_FLOATN_NX_BUILTINS): New macro.
4326 (copysign, fabs, huge_val, inf, nan, nans): Use it.
4327 * builtins.c (expand_builtin): Use CASE_FLT_FN_FLOATN_NX for fabs
4328 and copysign.
4329 (fold_builtin_0): Use CASE_FLT_FN_FLOATN_NX for inf and huge_val.
4330 (fold_builtin_1): Use CASE_FLT_FN_FLOATN_NX for fabs.
4331 * doc/extend.texi (Other Builtins): Document these built-in
4332 functions.
4333 * fold-const-call.c (fold_const_call): Use CASE_FLT_FN_FLOATN_NX
4334 for nan and nans.
4335
4336 2016-08-22 Gerald Pfeifer <gerald@pfeifer.com>
4337
4338 * doc/install.texi (Binaries): www.opencsw.org now uses https.
4339
4340 2016-08-22 Richard Biener <rguenther@suse.de>
4341
4342 * tree-ssa-forwprop.c (pass_forwprop::execute): Use RPO order.
4343
4344 2016-08-21 Uros Bizjak <ubizjak@gmail.com>
4345
4346 PR target/77270
4347 * config/i386/i386.md (prefetch): When TARGET_PRFCHW or
4348 TARGET_PREFETCHWT1 are disabled, emit 3dNOW! write prefetches for
4349 non-SSE2 athlons only, otherwise prefer SSE prefetches.
4350
4351 2016-08-20 Kugan Vivekanandarajah <kuganv@linaro.org>
4352
4353 * tree-vrp.c (vrp_visit_assignment_or_call): Changed to Return VR.
4354 (vrp_visit_cond_stmt): Just sets TAKEN_EDGE_P.
4355 (vrp_visit_switch_stmt): Likewise.
4356 (extract_range_from_stmt): Factored out from vrp_visit_stmt.
4357 (extract_range_from_phi_node): Factored out from vrp_visit_phi_stmt.
4358 (vrp_visit_stmt): Use extract_range_from_stmt.
4359 (vrp_visit_phi_node): Use extract_range_from_phi_node.
4360
4361 2016-08-20 Kugan Vivekanandarajah <kuganv@linaro.org>
4362
4363 * Makefile.in: Add tree-vrp.h to GTFILES.
4364 * gengtype.c (open_base_files): Add tree-vrp.h.
4365 * asan.c: Add tree-vrp.h which now has the definition value_range_type.
4366 * builtins.c: Likewise.
4367 * fold-const.c: Likewise.
4368 * gimple-builder.c: Likewise.
4369 * gimple-laddress.c: Likewise.
4370 * hsa-gen.c: Likewise.
4371 * internal-fn.c: Likewise.
4372 * ssa.h: Likewise.
4373 * targhooks.c: Liewise,
4374 * tree-ssa-address.c: Likewise.
4375 * tree-ssanames.h (value_range_type: Move to tree-vrp.h.
4376 * tree-vrp.c (struct value_range): Move to tree-vrp.h
4377 * tree-vrp.h: New file.
4378
4379 2016-08-20 Kugan Vivekanandarajah <kuganv@linaro.org>
4380
4381 PR tree-optimization/61839
4382 * tree-vrp.c (two_valued_val_range_p): New.
4383 (simplify_stmt_using_ranges): Convert CST BINOP VAR where VAR is
4384 two-valued to VAR == VAL1 ? (CST BINOP VAL1) : (CST BINOP VAL2).
4385 Also Convert VAR BINOP CST where VAR is two-valued to
4386 VAR == VAL1 ? (VAL1 BINOP CST) : (VAL2 BINOP CST).
4387
4388 2016-08-19 David Malcolm <dmalcolm@redhat.com>
4389
4390 * diagnostic-show-locus.c
4391 (layout::annotation_line_showed_range_p): New method.
4392 (layout::print_any_fixits): Remove case fixit_hint::REMOVE.
4393 Reimplement case fixit_hint::REPLACE to cover removals, and
4394 replacements where the range of the replacement isn't one
4395 of the ranges in the rich_location.
4396 (test_one_liner_fixit_replace): Likewise.
4397 (selftest::test_one_liner_fixit_replace_non_equal_range): New
4398 function.
4399 (selftest::test_one_liner_fixit_replace_equal_secondary_range):
4400 New function.
4401 (selftest::test_diagnostic_show_locus_one_liner): Call the new
4402 functions.
4403 * diagnostic.c (print_parseable_fixits): Remove case
4404 fixit_hint::REMOVE.
4405
4406 2016-08-19 Uros Bizjak <ubizjak@gmail.com>
4407
4408 PR target/77270
4409 * config/i386/i386.c (ix86_option_override_internal): Remove
4410 PTA_PRFCHW from entries that also have PTA_3DNOW flag.
4411 Enable SSE prefetch also for TARGET_PREFETCHWT1.
4412 Do not try to enable TARGET_PRFCHW ISA flag here.
4413 * config/i386/i386.md (prefetch): Enable also for TARGET_3DNOW.
4414 Rewrite expander function body.
4415 (*prefetch_3dnow): Enable for TARGET_3DNOW and TARGET_PREFETCHWT1.
4416
4417 2016-08-19 Joseph Myers <joseph@codesourcery.com>
4418
4419 PR c/32187
4420 * tree-core.h (TI_COMPLEX_FLOAT16_TYPE)
4421 (TI_COMPLEX_FLOATN_NX_TYPE_FIRST, TI_COMPLEX_FLOAT32_TYPE)
4422 (TI_COMPLEX_FLOAT64_TYPE, TI_COMPLEX_FLOAT128_TYPE)
4423 (TI_COMPLEX_FLOAT32X_TYPE, TI_COMPLEX_FLOAT64X_TYPE)
4424 (TI_COMPLEX_FLOAT128X_TYPE, TI_FLOAT16_TYPE, TI_FLOATN_TYPE_FIRST)
4425 (TI_FLOATN_NX_TYPE_FIRST, TI_FLOAT32_TYPE, TI_FLOAT64_TYPE)
4426 (TI_FLOAT128_TYPE, TI_FLOATN_TYPE_LAST, TI_FLOAT32X_TYPE)
4427 (TI_FLOATNX_TYPE_FIRST, TI_FLOAT64X_TYPE, TI_FLOAT128X_TYPE)
4428 (TI_FLOATNX_TYPE_LAST, TI_FLOATN_NX_TYPE_LAST): New enum
4429 tree_index values.
4430 (NUM_FLOATN_TYPES, NUM_FLOATNX_TYPES, NUM_FLOATN_NX_TYPES): New
4431 macros.
4432 (struct floatn_type_info): New structure type.
4433 (floatn_nx_types): New variable declaration.
4434 * tree.h (FLOATN_TYPE_NODE, FLOATN_NX_TYPE_NODE)
4435 (FLOATNX_TYPE_NODE, float128_type_node, float64x_type_node)
4436 (COMPLEX_FLOATN_NX_TYPE_NODE): New macros.
4437 * tree.c (floatn_nx_types): New variable.
4438 (build_common_tree_nodes): Initialize _FloatN, _FloatNx and
4439 corresponding complex types.
4440 * target.def (floatn_mode): New hook.
4441 * targhooks.c: Include "real.h".
4442 (default_floatn_mode): New function.
4443 * targhooks.h (default_floatn_mode): New prototype.
4444 * doc/extend.texi (Floating Types): Document _FloatN and _FloatNx
4445 types.
4446 * doc/sourcebuild.texi (float@var{n}, float@var{n}x): Document new
4447 effective-target and dg-add-options keywords.
4448 (float@var{n}_runtime, float@var{n}x_runtime, floatn_nx_runtime):
4449 Document new effective-target keywords.
4450 * doc/tm.texi.in (TARGET_FLOATN_MODE): New @hook.
4451 * doc/tm.texi: Regenerate.
4452 * ginclude/float.h (LDBL_DECIMAL_DIG): Define to
4453 __LDBL_DECIMAL_DIG__, not __DECIMAL_DIG__.
4454 [__STDC_WANT_IEC_60559_TYPES_EXT__]: Define macros from TS
4455 18661-3.
4456 * real.h (struct real_format): Add field ieee_bits.
4457 * real.c (ieee_single_format, mips_single_format)
4458 (motorola_single_format, spu_single_format, ieee_double_format)
4459 (mips_double_format, motorola_double_format)
4460 (ieee_extended_motorola_format, ieee_extended_intel_96_format)
4461 (ieee_extended_intel_128_format)
4462 (ieee_extended_intel_96_round_53_format, ibm_extended_format)
4463 (mips_extended_format, ieee_quad_format, mips_quad_format)
4464 (vax_f_format, vax_d_format, vax_g_format, decimal_single_format)
4465 (decimal_double_format, decimal_quad_format, ieee_half_format)
4466 (arm_half_format, real_internal_format: Initialize ieee_bits
4467 field.
4468 * config/i386/i386.c (ix86_init_builtin_types): Do not initialize
4469 float128_type_node. Set float80_type_node to float64x_type_node
4470 if appropriate and long_double_type_node not appropriate.
4471 * config/ia64/ia64.c (ia64_init_builtins): Likewise.
4472 * config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format):
4473 Initialize ieee_bits field.
4474 * config/rs6000/rs6000.c (TARGET_FLOATN_MODE): New macro.
4475 (rs6000_init_builtins): Set ieee128_float_type_node to
4476 float128_type_node.
4477 (rs6000_floatn_mode): New function.
4478
4479 2016-08-19 Jakub Jelinek <jakub@redhat.com>
4480
4481 * config/i386/rdseedintrin.h (_rdseed16_step, _rdseed32_step,
4482 _rdseed64_step): Uglify argument names and/or local variable names
4483 in inline functions.
4484 * config/i386/rtmintrin.h (_xabort): Likewise.
4485 * config/i386/avx512vlintrin.h (_mm256_ternarylogic_epi64,
4486 _mm256_mask_ternarylogic_epi64, _mm256_maskz_ternarylogic_epi64,
4487 _mm256_ternarylogic_epi32, _mm256_mask_ternarylogic_epi32,
4488 _mm256_maskz_ternarylogic_epi32, _mm_ternarylogic_epi64,
4489 _mm_mask_ternarylogic_epi64, _mm_maskz_ternarylogic_epi64,
4490 _mm_ternarylogic_epi32, _mm_mask_ternarylogic_epi32,
4491 _mm_maskz_ternarylogic_epi32): Likewise.
4492 * config/i386/lwpintrin.h (__llwpcb, __lwpval32, __lwpval64,
4493 __lwpins32, __lwpins64): Likewise.
4494 * config/i386/avx2intrin.h (_mm_i32gather_pd, _mm_mask_i32gather_pd,
4495 _mm256_i32gather_pd, _mm256_mask_i32gather_pd, _mm_i64gather_pd,
4496 _mm_mask_i64gather_pd, _mm256_i64gather_pd, _mm256_mask_i64gather_pd,
4497 _mm_i32gather_ps, _mm_mask_i32gather_ps, _mm256_i32gather_ps,
4498 _mm256_mask_i32gather_ps, _mm_i64gather_ps, _mm_mask_i64gather_ps,
4499 _mm256_i64gather_ps, _mm256_mask_i64gather_ps, _mm_i32gather_epi64,
4500 _mm_mask_i32gather_epi64, _mm256_i32gather_epi64,
4501 _mm256_mask_i32gather_epi64, _mm_i64gather_epi64,
4502 _mm_mask_i64gather_epi64, _mm256_i64gather_epi64,
4503 _mm256_mask_i64gather_epi64, _mm_i32gather_epi32,
4504 _mm_mask_i32gather_epi32, _mm256_i32gather_epi32,
4505 _mm256_mask_i32gather_epi32, _mm_i64gather_epi32,
4506 _mm_mask_i64gather_epi32, _mm256_i64gather_epi32,
4507 _mm256_mask_i64gather_epi32): Likewise.
4508 * config/i386/pmm_malloc.h (_mm_malloc, _mm_free): Likewise.
4509 * config/i386/ia32intrin.h (__writeeflags): Likewise.
4510 * config/i386/pkuintrin.h (_wrpkru): Likewise.
4511 * config/i386/avx512pfintrin.h (_mm512_mask_prefetch_i32gather_pd,
4512 _mm512_mask_prefetch_i32gather_ps, _mm512_mask_prefetch_i64gather_pd,
4513 _mm512_mask_prefetch_i64gather_ps, _mm512_prefetch_i32scatter_pd,
4514 _mm512_prefetch_i32scatter_ps, _mm512_mask_prefetch_i32scatter_pd,
4515 _mm512_mask_prefetch_i32scatter_ps, _mm512_prefetch_i64scatter_pd,
4516 _mm512_prefetch_i64scatter_ps, _mm512_mask_prefetch_i64scatter_pd,
4517 _mm512_mask_prefetch_i64scatter_ps): Likewise.
4518 * config/i386/gmm_malloc.h (_mm_malloc, _mm_free): Likewise.
4519 * config/i386/avx512fintrin.h (_mm512_ternarylogic_epi64,
4520 _mm512_mask_ternarylogic_epi64, _mm512_maskz_ternarylogic_epi64,
4521 _mm512_ternarylogic_epi32, _mm512_mask_ternarylogic_epi32,
4522 _mm512_maskz_ternarylogic_epi32, _mm512_i32gather_ps,
4523 _mm512_mask_i32gather_ps, _mm512_i32gather_pd, _mm512_i64gather_ps,
4524 _mm512_i64gather_pd, _mm512_i32gather_epi32, _mm512_i32gather_epi64,
4525 _mm512_i64gather_epi32, _mm512_i64gather_epi64): Likewise.
4526
4527 * config/i386/fxsrintrin.h (_fxsave): Remove return keyword in inlines
4528 returning void.
4529 (_fxrstor, _fxsave64, _fxrstor64): Likewise.
4530 * config/i386/xsaveintrin.h (_xsave, _xrstor, _xsave64, _xrstor64):
4531 Likewise.
4532 * config/i386/xsaveoptintrin.h (_xsaveopt, _xsaveopt64): Likewise.
4533 * config/i386/pkuintrin.h (_wrpkru): Likewise. Add space after
4534 function name.
4535 (_rdpkru_u32): Add space after function name.
4536
4537 * config/i386/t-i386 (i386-c.o): Don't depend on
4538 i386-builtin-types.inc.
4539 (i386.o): Depend on i386-builtin-types.inc.
4540
4541 2016-08-19 Matthew Wahab <matthew.wahab@arm.com>
4542
4543 PR target/77281
4544 * config/arm/arm.c (neon_valid_immediate): Delete declaration.
4545 Use const_vec_duplicate to check for duplicated elements.
4546
4547 2016-08-19 Richard Biener <rguenther@suse.de>
4548
4549 PR tree-optimization/77290
4550 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
4551 Fix flag_tree_parallelize_loops check.
4552
4553 2016-08-19 Richard Biener <rguenther@suse.de>
4554
4555 * match.pd (x | 0 -> x): Add.
4556
4557 2016-08-19 Richard Biener <rguenther@suse.de>
4558
4559 PR tree-optimization/77286
4560 * tree-vect-loop-manip.c (slpeel_duplicate_current_defs_from_edges):
4561 Deal with virtual PHIs being out-of-order.
4562
4563 2016-08-18 David Malcolm <dmalcolm@redhat.com>
4564
4565 * doc/invoke.texi (fverbose-asm): Note that source code lines
4566 are emitted, and provide an example.
4567 * final.c (asm_show_source): New function.
4568 (final_scan_insn): Call asm_show_source.
4569
4570 2016-08-18 David Malcolm <dmalcolm@redhat.com>
4571
4572 * diagnostic-show-locus.c (colorizer::colorizer): Replace diagnostic
4573 param with diagnostic_kind.
4574 (class colorizer): Similarly replace field m_diagnostic with
4575 m_diagnostic_kind.
4576 (colorizer::colorizer): Replace diagnostic
4577 param with diagnostic_kind.
4578 (colorizer::begin_state): Update for above field change.
4579 (layout::layout): Replace diagnostic param with rich_location *
4580 and diagnostic_kind.
4581 (diagnostic_show_locus): Replace diagnostic param with richloc
4582 and diagnostic_kind.
4583 (class selftest::test_diagnostic_context): New class.
4584 (selftest::test_diagnostic_show_locus_unknown_location): New
4585 function.
4586 (selftest::test_one_liner_simple_caret): New function.
4587 (selftest::test_one_liner_caret_and_range): New function.
4588 (selftest::test_one_liner_multiple_carets_and_ranges): New
4589 function.
4590 (selftest::test_one_liner_fixit_remove): New function.
4591 (selftest::test_one_liner_fixit_replace): New function.
4592 (selftest::test_diagnostic_show_locus_one_liner): New function.
4593 (selftest::diagnostic_show_locus_c_tests): Call the new test
4594 functions.
4595 * diagnostic.c (diagnostic_initialize): Initialize
4596 colorize_source_p, show_ruler_p and parseable_fixits_p.
4597 (default_diagnostic_finalizer): Update for change to
4598 diagnostic_show_locus.
4599 (diagnostic_append_note): Likewise.
4600 * diagnostic.h (diagnostic_show_locus): Replace
4601 const diagnostic_info * param with location * and diagnostic_t.
4602
4603 2016-08-18 David Malcolm <dmalcolm@redhat.com>
4604
4605 * input.c (saved_line_table): New global.
4606 (class selftest::temp_line_table): Rename to line_table_test and
4607 move declaration to selftest.h, and drop field m_old_line_table.
4608 (selftest::temp_line_table::temp_line_table): Rename ctor to...
4609 (selftest::line_table_test::line_table_test): ...this. Add a
4610 default ctor. Store current value of line_table within
4611 saved_line_table.
4612 (selftest::temp_line_table::~temp_line_table): Rename dtor to...
4613 (selftest::line_table_test::~line_table_test): ...this, and
4614 restore line_table from the saved_line_table, rather than
4615 m_old_line_table.
4616 (selftest::test_accessing_ordinary_linemaps): Update for above
4617 renaming.
4618 (selftest::test_lexer): Likewise.
4619 (struct selftest::lexer_test): Likewise.
4620 (selftest::lexer_test::lexer_test): Likewise.
4621 (selftest::input_c_tests): Move the looping over test cases from
4622 here into...
4623 (selftest::for_each_line_table_case): New function.
4624 * input.h (saved_line_table): New decl.
4625 * selftest.h (struct selftest::line_table_case): New forward decl.
4626 (class selftest::line_table_test): New class, moved here from
4627 selftest::temp_line_table in input.c, and renamed.
4628 (selftest::for_each_line_table_case): New decl.
4629
4630 2015-08-18 H.J. Lu <hongjiu.lu@intel.com>
4631
4632 PR target/72839
4633 * config/i386/i386.c (lakemont_cost): Set MOVE_RATIO to 17.
4634
4635 2016-08-18 Chung-Lin Tang <cltang@codesourcery.com>
4636
4637 PR middle-end/70895
4638 * gimplify.c (omp_add_variable): Adjust/add variable mapping on
4639 enclosing parallel construct for reduction variables on OpenACC loop
4640 directives.
4641
4642 2016-08-18 Pierre-Marie de Rodat <derodat@adacore.com>
4643
4644 * dwarf2out.c (copy_dwarf_procedure): Remove obsolete comment.
4645 (new_dwarf_proc_die): Emit DW_TAG_dwarf_procedure DIEs even for
4646 -gdwarf-3.
4647 (function_to_dwarf_procedure): Update comment.
4648
4649 2016-08-18 David Malcolm <dmalcolm@redhat.com>
4650
4651 * input.c (diagnostics_file_cache_forcibly_evict_file): New
4652 function.
4653 * input.h (diagnostics_file_cache_forcibly_evict_file): New
4654 declaration.
4655 * selftest.c (selftest::temp_source_file::~temp_source_file):
4656 Evict m_filename from the diagnostic file cache.
4657
4658 2016-08-18 Richard Biener <rguenther@suse.de>
4659
4660 * tree-pass.h (make_pass_materialize_all_clones): Declare.
4661 * ipa.c (pass_data_materialize_all_clones, pass_materialize_all_clones,
4662 make_pass_materialize_all_clones): New simple IPA pass encapsulating
4663 clone materialization.
4664 * passes.def (all_late_ipa_passes): Start with
4665 pass_materialize_all_clones.
4666 * cgraphunit.c (symbol_table::compile): Remove call to
4667 materialize_all_clones.
4668 * tree-into-ssa.c: Include statistics.h.
4669 (update_ssa): Count number of times we do incremental/rewrite
4670 SSA update.
4671
4672 2016-08-18 Richard Biener <rguenther@suse.de>
4673
4674 PR tree-optimization/77282
4675 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
4676 When doing auto-parallelizing also prevent use of PHIs that
4677 carry dependences across loop backedges.
4678
4679 2016-08-18 Tamar Christina <tamar.christina@arm.com>
4680 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
4681
4682 * varasm.c (default_use_anchors_for_symbol_p): Reject too large decls.
4683
4684 2016-08-18 Richard Biener <rguenther@suse.de>
4685
4686 * ssa-iterators.h (ssa_vuse_operand): New inline.
4687 * tree-if-conv.c (ifc_temp_var): Update virtual operand.
4688 (predicate_all_scalar_phis): Use remove_phi_node to remove
4689 phi nodes predicated. Delay removing virtual PHIs.
4690 (predicate_mem_writes): Update virtual operands.
4691 (combine_blocks): Likewise. Propagate out remaining virtual PHIs.
4692 (tree_if_conversion): Do not rewrite virtual SSA form.
4693 * tree-phinodes.c (release_phi_node): Make static.
4694 * tree-phinodes.h (release_phi_node): Remove.
4695
4696 2016-08-18 Jakub Jelinek <jakub@redhat.com>
4697
4698 * config/i386/i386.c (enum ix86_builtins): Remove IX86_BUILTIN_*
4699 codes that appear in bdesc_* arrays, instead include i386-builtin.def
4700 twice to define those.
4701 (bdesc_comi, bdesc_pcmpestr, bdesc_pcmpistr, bdesc_special_args,
4702 bdesc_args, bdesc_round_args, bdesc_mpx, bdesc_mpx_const,
4703 bdesc_multi_arg): Define by including i386-builtin.def the third time.
4704 * config/i386/i386-builtin.def: New file.
4705
4706 2016-08-17 David Malcolm <dmalcolm@redhat.com>
4707
4708 * input.c (get_source_range_for_char): Rename to...
4709 (selftest::get_source_range_for_char): ...this, and move within
4710 the #if CHECKING_P guard.
4711 (get_num_source_ranges_for_substring): Rename to...
4712 (selftest::get_num_source_ranges_for_substring): ...this, move
4713 within the #if CHECKING_P guard, and make static.
4714 (selftest::assert_num_substring_ranges): Initialize
4715 actual_num_ranges.
4716
4717 2016-08-18 Alan Modra <amodra@gmail.com>
4718
4719 PR rtl-optimization/72771
4720 * reload.c (find_reloads): Don't assume that a subreg mem is OK
4721 when find_reloads_toplev returns address_reloaded==-1.
4722 (alternative_allows_const_pool_ref): Update comment.
4723
4724 2015-08-17 Alan Hayward <alan.hayward@arm.com>
4725
4726 PR tree-optimization/71752
4727 * tree-vect-loop.c (vectorizable_reduction): Keep SLP operand ordering.
4728 * tree-vect-slp.c (vect_get_slp_defs): Handle null operands.
4729
4730 2016-08-17 Jakub Jelinek <jakub@redhat.com>
4731
4732 * gimple-fold.c (gimple_fold_call): Use gimple_call_noreturn_p
4733 instead of testing ECF_NORETURN bit in gimple_call_flags.
4734 * tree-cfg.c (make_edges_bb, execute_fixup_cfg): Likewise.
4735 * predict.c (tree_bb_level_predictions): Likewise.
4736 * gimple-low.c (gimple_stmt_may_fallthru): Likewise.
4737
4738 PR middle-end/77259
4739 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): If
4740 turning a call into __builtin_unreachable-like noreturn call, adjust
4741 gimple_call_set_fntype.
4742 * tree-cfgcleanup.c (fixup_noreturn_call): Remove lhs also if
4743 gimple_call_fntype has void return type.
4744
4745 2016-08-17 Chung-Lin Tang <cltang@codesourcery.com>
4746
4747 * omp-low.c (lower_oacc_reductions): Adjust variable lookup to use
4748 maybe_lookup_decl, to handle nested acc loop directives.
4749
4750 2016-08-17 Richard Biener <rguenther@suse.de>
4751
4752 PR tree-optimization/76490
4753 * tree-vrp.c (update_value_range): Preserve overflow infinities
4754 when intersecting with ranges from get_range_info.
4755 (operand_less_p): Handle overflow infinities correctly.
4756 (value_range_constant_singleton): Use vrp_operand_equal_p
4757 to handle overflow max/min correctly.
4758 (vrp_valueize): Likewise.
4759 (union_ranges): Likewise.
4760 (intersect_ranges): Likewise.
4761 (vrp_visit_phi_node): Improve iteration limitation to only
4762 apply when we'll possibly re-visit the PHI via a changed argument
4763 on the backedge.
4764
4765 2016-08-17 Thomas Preud'homme <thomas.preudhomme@arm.com>
4766
4767 * config/arm/t-aprofile (MULTILIB_EXCEPTIONS): Rewrite into ...
4768 (MULTILIB_REQUIRED): This by specifying multilib needing to be built
4769 rather than those that should not be built.
4770
4771 2016-08-17 Stanislaw Halik <sthalik@misaki.pl>
4772
4773 PR target/66488
4774 * config/i386/xm-mingw32.h (HOST_BITS_PER_PTR): Define if __x86_64__.
4775
4776 2016-08-17 Richard Biener <rguenther@suse.de>
4777
4778 * tree-ssa.c: Include tree-cfg.h and tree-dfa.h.
4779 (verify_vssa): New function verifying virtual SSA form.
4780 (verify_ssa): Call it.
4781 * tree-ssa-loop-manip.c (slpeel_update_phi_nodes_for_guard2):
4782 Do not apply loop-closed SSA handling to virtuals.
4783 * ssa-iterators.h (op_iter_init): Handle GIMPLE_TRANSACTION.
4784 * tree-into-ssa.c (prepare_use_sites_for): Skip virtual SSA names
4785 when rewriting their symbol.
4786 (prepare_def_site_for): Likewise.
4787 * tree-chkp-opt.c (chkp_reduce_bounds_lifetime): Clear virtual
4788 operands of moved stmts.
4789
4790 2016-08-17 Richard Biener <rguenther@suse.de>
4791
4792 PR tree-optimization/23855
4793 * tree-ssa-loop-unswitch.c: Include tree-ssa-loop-manip.h.
4794 (tree_unswitch_outer_loop): Iterate find_loop_guard as long as we
4795 find guards to hoist. Do not update SSA form but rewrite virtuals
4796 into loop closed SSA.
4797 (find_loop_guard): Adjust to skip already hoisted guards. Do
4798 not mark virtuals for renaming or update SSA form.
4799
4800 2016-08-17 Martin Liska <mliska@suse.cz>
4801
4802 * coverage.c (get_gcov_type): Replace GCOV_TYPE_SIZE with
4803 a LONG_LONG_TYPE_SIZE comparison.
4804 * gcov-io.h: Remove macro definitions.
4805 * tree-profile.c (gimple_gen_edge_profiler): Replace usage
4806 of GCOV_TYPE_ATOMIC_FETCH_ADD with a LONG_LONG_TYPE_SIZE
4807 comparison.
4808
4809 2016-08-16 Jakub Jelinek <jakub@redhat.com>
4810
4811 * config/i386/i386.c (enum ix86_builtins): Reorder enumerators, so
4812 that builtins not mentioned in bdesc_* arrays come first, then
4813 the ones mentioned in bdesc_* arrays in the order they appear in
4814 the arrays in between IX86_BUILTIN__BDESC_*_FIRST and
4815 IX86_BUILTIN__BDESC_*_LAST enumerator.
4816 (bdesc_mpx): Fix up a comment typo.
4817 (bdesc_multi_arg): Remove __builtin_ia32_vpcomne[bwdq] and
4818 __builtin_ia32_vpcomneu[bwdq] builtins.
4819 (BDESC_VERIFY, BDESC_VERIFYS): Define.
4820 (ix86_init_mmx_sse_builtins, ix86_init_mpx_builtins): Verify
4821 enum ix86_builtins ordering.
4822 (ix86_expand_builtin): Use enum ix86_builtins ordering assumption
4823 for direct bdesc_* array member access instead of searching all the
4824 arrays until an fcode match is found.
4825
4826 2016-08-16 Uros Bizjak <ubizjak@gmail.com>
4827
4828 * config/i386/i386.md (*ashl<mode>3_mask): Rewrite define_insn
4829 pattern as define_insn_and_split. Split insn before reload to
4830 ashl<mode>3_1.
4831 (*<shift_insn><mode>3_mask): Ditto. Split insn before reload to
4832 <shift_insn><mode>3_1.
4833 (*<rotate_insn><mode>3_mask): Ditto. Split insn before reload to
4834 <rotate_insn><mode>3_1.
4835
4836 2016-08-16 David Malcolm <dmalcolm@redhat.com>
4837
4838 PR c/72857
4839 * input.c (get_source_range_for_substring): Rename to...
4840 (get_source_location_for_substring): ...this, adding param
4841 "caret_idx", and converting output param from source_range * to
4842 location_t *.
4843 (get_source_range_for_char): New function.
4844 (get_num_source_ranges_for_substring): Update comment to reflect
4845 above renaming.
4846 (assert_char_at_range): Update to use get_source_range_for_char
4847 rather than get_source_range_for_substring.
4848 (test_lexer_string_locations_concatenation_2): Likewise.
4849 * substring-locations.h (get_source_range_for_substring): Rename
4850 to...
4851 (get_source_location_for_substring): ...this, and adding param
4852 "caret_idx", and converting output param from source_range * to
4853 location_t *.
4854
4855 2016-08-16 David Malcolm <dmalcolm@redhat.com>
4856
4857 * input.c (class selftest::temp_source_file): Move to
4858 selftest.h.
4859 (selftest::temp_source_file::temp_source_file): Move to
4860 selftest.c.
4861 (selftest::temp_source_file::~temp_source_file): Likewise.
4862 * selftest.c (selftest::temp_source_file::temp_source_file): Move
4863 here from input.c.
4864 (selftest::temp_source_file::~temp_source_file): Likewise.
4865 * selftest.h (class selftest::temp_source_file): Move here from
4866 input.c
4867
4868 2016-08-16 Jakub Jelinek <jakub@redhat.com>
4869
4870 PR target/71910
4871 * tree-cfg.c (execute_fixup_cfg): Add node variable, use it. Before
4872 inlining, add cgraph edge for the added __builtin_unreachable call.
4873
4874 PR middle-end/67485
4875 * expmed.c (expand_mult_const): Change val_so_far's type to UHWI,
4876 only cast it to SHWI for the final comparison.
4877
4878 2016-08-16 Martin Liska <mliska@suse.cz>
4879
4880 PR gcov-profile/36412
4881 * doc/gcov.texi: Document --hash-filenames(-x).
4882 * gcov.c (print_usage): Add the option.
4883 (process_args): Process the option, sort options alphabetically.
4884 (md5sum_to_hex): New function.
4885 (make_gcov_file_name): Do the md5sum and append it to a
4886 filename.
4887
4888 2016-08-16 Bin Cheng <bin.cheng@arm.com>
4889
4890 PR tree-optimization/69848
4891 * config/aarch64/aarch64-simd.md (vcond<mode><mode>): Invert NE
4892 and swtich operands to avoid additional NOT instruction.
4893 (vcond<v_cmp_mixed><mode>): Ditto.
4894 (vcondu<mode><mode>, vcondu<mode><v_cmp_mixed>): Ditto.
4895
4896 2016-08-16 Eric Botcazou <ebotcazou@adacore.com>
4897
4898 * doc/install.texi (*-*-solaris2*): Adjust latest change.
4899
4900 2016-08-16 Richard Biener <rguenther@suse.de>
4901
4902 PR tree-optimization/76783
4903 * tree-ssa-propagate.c (ssa_prop_init): Use RPO order. Clear
4904 BB visited flags at start.
4905
4906 2016-08-16 Bin Cheng <bin.cheng@arm.com>
4907
4908 PR tree-optimization/72817
4909 PR tree-optimization/73450
4910 * tree-ssa-loop-niter.c (number_of_iterations_ne): Check
4911 multiple_of_p for adjusted IV.base.
4912
4913 2016-08-15 Uros Bizjak <ubizjak@gmail.com>
4914
4915 PR target/72867
4916 * config/i386/sse.md (<code><mode>3<mask_name><round_saeonly_name>):
4917 Emit ieee_<ieee_maxmin><mode>3<mask_name><round_saeonly_name>
4918 for !flag_finite_math_only or flag_signed_zeros.
4919 (*<code><mode>3<mask_name><round_saeonly_name>): Rename from
4920 *<code><mode>3_finite<mask_name><round_saeonly_name>. Do not
4921 depend on flag_finite_math_only.
4922 (ieee_<ieee_maxmin><mode>3<mask_name><round_saeonly_name>):
4923 New insn pattern.
4924 (*<code><mode>3<mask_name><round_saeonly_name>): Remove.
4925 (*ieee_smin<mode>3): Ditto.
4926 (*ieee_smax<mode>3): Ditto.
4927 * config/i386/mmx.md (mmx_<code>v2sf3): Emit
4928 mmx_ieee_<ieee_maxmin>v2sf3 for !flag_finite_math_only or
4929 flag_signed_zeros.
4930 (*mmx_<code>v2sf3): Rename from *mmx_<code>v2sf3_finite. Do not
4931 depend on flag_finite_math_only.
4932 (mmx_ieee_<ieee_maxmin>v2sf3): New insn pattern.
4933 (*mmx_<code>v2sf3): Remove.
4934 * config/i386/subst.md (round_saeonly_mask_arg3): New subst attribute.
4935 * config/i386/i386.c (ix86_expand_sse_fp_mimnax): Check
4936 flag_signed_zeros instead of !flag_unsafe_math_optimizations.
4937
4938 2016-08-15 Segher Boessenkool <segher@kernel.crashing.org>
4939
4940 PR rtl-optimization/73650
4941 * lra-constraints.c (simple_move_p): If the insn is multiple_sets
4942 it is not a simple move.
4943
4944 2016-08-15 Martin Liska <mliska@suse.cz>
4945
4946 PR driver/72765
4947 * gcc.c (do_spec_1): Call save_string with the right size.
4948 (save_string): Do an assert about string we copy.
4949
4950 2016-08-15 Richard Biener <rguenther@suse.de>
4951
4952 * ree.c (rest_of_handle_ree): Remove redundant timevar push/pop.
4953 * config/i386/i386.c (pass_data_insert_vzeroupper): Account to
4954 TV_MACH_DEP.
4955 (pass_data_stv): Likewise.
4956
4957 2016-08-15 Richard Biener <rguenther@suse.de>
4958
4959 PR tree-optimization/73434
4960 * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Preserve
4961 TBAA info on the base when forwarding a non-invariant address.
4962
4963 2016-08-15 Jakub Jelinek <jakub@redhat.com>
4964
4965 * dwarf2out.c (struct checksum_attributes): Add
4966 at_string_length_bit_size and at_string_length_byte_size fields.
4967 (collect_checksum_attributes): Handle DW_AT_string_length_bit_size
4968 and DW_AT_string_length_byte_size.
4969 (die_checksum_ordered): Handle at_string_length_bit_size and
4970 at_string_length_byte_size.
4971 (gen_array_type_die): For dwarf_version >= 5 emit
4972 DW_AT_string_length_byte_size instead of DW_AT_byte_size.
4973 (adjust_string_types): For dwarf_version >= 5 remove
4974 DW_AT_string_length_byte_size instead of DW_AT_byte_size.
4975 (resolve_addr): Likewise.
4976
4977 PR debug/71906
4978 * dwarf2out.c (string_types): New variable.
4979 (gen_array_type_die): Change early_dwarf handling of
4980 DW_AT_string_length, create DW_OP_call4 referencing the
4981 length var temporarily. Handle parameters that are pointers
4982 to string length.
4983 (adjust_string_types): New function.
4984 (gen_subprogram_die): Temporarily set string_types to local var,
4985 call adjust_string_types if needed.
4986 (non_dwarf_expression, copy_deref_exprloc, optimize_string_length):
4987 New functions.
4988 (resolve_addr): Adjust DW_AT_string_length if it is DW_OP_call4.
4989
4990 2016-08-15 Eric Botcazou <ebotcazou@adacore.com>
4991
4992 * doc/install.texi (*-*-solaris2*): Fix version number and document
4993 requirement on GNU make for building libjava with the Solaris linker.
4994
4995 2016-08-15 Martin Liska <mliska@suse.cz>
4996 Jakub Jelinek <jakub@redhat.com>
4997
4998 PR tree-optimization/72824
4999 * tree-loop-distribution.c (const_with_all_bytes_same)
5000 <case VECTOR_CST>: Fix a typo.
5001
5002 2016-08-14 Uros Bizjak <ubizjak@gmail.com>
5003
5004 PR target/76342
5005 * config/i386/avx512fintrin.h (_mm512_undefined_epi32):
5006 Renamed from _mm512_undefined_si512.
5007 (_mm_undefined_si512): New definition.
5008
5009 2016-08-13 Richard Biener <rguenther@suse.de>
5010
5011 * tree-ssa-forwprop.c (pass_forwprop::execute): Propagate
5012 into PHIs and update the lattice for its def.
5013
5014 2016-08-12 Jakub Jelinek <jakub@redhat.com>
5015
5016 PR c/71512
5017 * ubsan.c (instrument_si_overflow): Pass true instead of false
5018 to gsi_replace.
5019 (pass_ubsan::execute): Call gimple_purge_dead_eh_edges at the end
5020 of bbs. Return TODO_cleanup_cfg if any returned true.
5021
5022 2016-08-12 Michael Meissner <meissner@linux.vnet.ibm.com>
5023
5024 * config/rs6000/vsx.md (vsx_concat_<mode>): Add support for the
5025 ISA 3.0 MTVSRDD instruction.
5026 (vsx_splat_<mode>): Change cpu type of MTVSRDD instruction to
5027 vecperm.
5028
5029 2016-08-12 Bernd Edlinger <bernd.edlinger@hotmail.de>
5030
5031 PR tree-optimization/71083
5032 * tree-predcom.c (ref_at_iteration): Use a COMPONENT_REF for the
5033 bitfield access when possible.
5034
5035 2016-08-12 Patrick Palka <ppalka@gcc.gnu.org>
5036
5037 PR middle-end/71654
5038 * match.pd ((T)A CMP (T)B -> A CMP B): Allow (T)A to be a
5039 sign-changing cast from a shorter unsigned type to a wider
5040 signed type.
5041
5042 2016-08-12 Jakub Jelinek <jakub@redhat.com>
5043
5044 * config/i386/sse.md (avx512dq_vextract<shuffletype>64x2_1_maskm,
5045 vec_extract_hi_<mode>_mask, vec_extract_lo_<mode>_mask,
5046 vec_extract_hi_<mode>_mask): Use Yk constraint instead of k.
5047
5048 2016-08-12 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
5049
5050 * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost):
5051 Correct costs for vec_construct.
5052
5053 2016-08-12 Bin Cheng <bin.cheng@arm.com>
5054
5055 PR tree-optimization/69848
5056 * tree-vectorizer.h (enum vect_def_type): New condition reduction
5057 type CONST_COND_REDUCTION.
5058 * tree-vect-loop.c (vectorizable_reduction): Support new condition
5059 reudction type CONST_COND_REDUCTION.
5060
5061 2016-08-12 Richard Biener <rguenther@suse.de>
5062
5063 PR tree-optimization/57326
5064 * tree-ssa-pre.c (fully_constant_expression): Handle simplification
5065 returning an SSA name.
5066 (phi_translate_1): When fully_constant_expression returns a NAME
5067 make sure we have a leader for it.
5068
5069 2016-08-12 Martin Liska <mliska@suse.cz>
5070 Adam Fineman <afineman@afineman.com>
5071
5072 * gcov.c (process_file): Create .gcov file when .gcda
5073 file is missing.
5074
5075 2016-08-12 Marek Polacek <polacek@redhat.com>
5076
5077 PR c/7652
5078 * alias.c (find_base_value): Adjust fall through comment.
5079 * cfgexpand.c (expand_debug_expr): Likewise.
5080 * combine.c (find_split_point): Likewise.
5081 (expand_compound_operation): Likewise. Add FALLTHRU.
5082 (make_compound_operation): Adjust fall through comment.
5083 (canon_reg_for_combine): Add FALLTHRU.
5084 (force_to_mode): Adjust fall through comment.
5085 (simplify_shift_const_1): Likewise.
5086 (simplify_comparison): Likewise.
5087 * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args): Add
5088 FALLTHRU.
5089 * config/aarch64/predicates.md: Likewise.
5090 * config/i386/i386.c (function_arg_advance_32): Likewise.
5091 (ix86_gimplify_va_arg): Likewise.
5092 (print_reg): Likewise.
5093 (ix86_print_operand): Likewise.
5094 (ix86_build_const_vector): Likewise.
5095 (ix86_expand_branch): Likewise.
5096 (ix86_sched_init_global): Adjust fall through comment.
5097 (ix86_expand_args_builtin): Add FALLTHRU.
5098 (ix86_expand_builtin): Likewise.
5099 (ix86_expand_vector_init_one_var): Likewise.
5100 * config/rs6000/rs6000.c (rs6000_emit_vector_compare_inner): Likewise.
5101 (rs6000_adjust_cost): Likewise.
5102 (insn_must_be_first_in_group): Likewise.
5103 * config/rs6000/rs6000.md: Likewise. Adjust fall through comment.
5104 * dbxout.c (dbxout_symbol): Adjust fall through comment.
5105 * df-scan.c (df_uses_record): Likewise.
5106 * dojump.c (do_jump): Add FALLTHRU.
5107 * dwarf2out.c (mem_loc_descriptor): Likewise. Adjust fall through
5108 comment.
5109 (resolve_args_picking_1): Adjust fall through comment.
5110 (loc_list_from_tree_1): Likewise.
5111 * expmed.c (make_tree): Likewise.
5112 * expr.c (expand_expr_real_2): Add FALLTHRU.
5113 (expand_expr_real_1): Likewise. Adjust fall through comment.
5114 * fold-const.c (const_binop): Adjust fall through comment.
5115 (fold_truth_not_expr): Likewise.
5116 (fold_cond_expr_with_comparison): Add FALLTHRU.
5117 (fold_binary_loc): Likewise.
5118 (contains_label_1): Adjust fall through comment.
5119 (multiple_of_p): Likewise.
5120 * gcov-tool.c (process_args): Add FALLTHRU.
5121 * genattrtab.c (check_attr_test): Likewise.
5122 (write_test_expr): Likewise.
5123 * genconfig.c (walk_insn_part): Likewise.
5124 * genpreds.c (validate_exp): Adjust fall through comment.
5125 (needs_variable): Likewise.
5126 * gensupport.c (get_alternatives_number): Add FALLTHRU.
5127 (subst_dup): Likewise.
5128 * gimple-pretty-print.c (dump_gimple_assign): Likewise.
5129 * gimplify.c (gimplify_addr_expr): Adjust fall through comment.
5130 (gimplify_scan_omp_clauses): Add FALLTHRU.
5131 (goa_stabilize_expr): Likewise.
5132 * graphite-isl-ast-to-gimple.c (substitute_ssa_name): Adjust fall
5133 through comment.
5134 * hsa-gen.c (get_address_from_value): Likewise.
5135 * ipa-icf.c (sem_function::hash_stmt): Likewise.
5136 * ira.c (ira_setup_alts): Add FALLTHRU.
5137 * lra-eliminations.c (lra_eliminate_regs_1): Adjust fall through
5138 comment.
5139 * lto-streamer-out.c (lto_output_tree_ref): Add FALLTHRU.
5140 * opts.c (common_handle_option): Likewise.
5141 * read-rtl.c (read_rtx_code): Likewise.
5142 * real.c (round_for_format): Likewise.
5143 * recog.c (asm_operand_ok): Likewise.
5144 * reginfo.c (reg_scan_mark_refs): Adjust fall through comment.
5145 * reload1.c (set_label_offsets): Likewise.
5146 (eliminate_regs_1): Likewise.
5147 (reload_reg_reaches_end_p): Likewise.
5148 * rtlanal.c (commutative_operand_precedence): Add FALLTHRU.
5149 (rtx_cost): Likewise.
5150 * sched-rgn.c (is_exception_free): Likewise.
5151 * simplify-rtx.c (simplify_rtx): Adjust fall through comment.
5152 * stor-layout.c (int_mode_for_mode): Likewise.
5153 * toplev.c (print_to_asm_out_file): Likewise.
5154 (print_to_stderr): Likewise.
5155 * tree-cfg.c (gimple_verify_flow_info): Likewise.
5156 * tree-chrec.c (chrec_fold_plus_1): Add FALLTHRU.
5157 (chrec_fold_multiply): Likewise.
5158 (evolution_function_is_invariant_rec_p): Likewise.
5159 (for_each_scev_op): Likewise.
5160 * tree-data-ref.c (siv_subscript_p): Likewise.
5161 (get_references_in_stmt): Likewise.
5162 * tree.c (find_placeholder_in_expr): Adjust fall through comment.
5163 (substitute_in_expr): Likewise.
5164 (type_cache_hasher::equal): Likewise.
5165 (walk_type_fields): Likewise.
5166 * var-tracking.c (adjust_mems): Add FALLTHRU.
5167 (set_dv_changed): Adjust fall through comment.
5168 * varasm.c (default_function_section): Add FALLTHRU.
5169
5170 2016-08-12 Marek Polacek <polacek@redhat.com>
5171
5172 PR c/7652
5173 * tree-complex.c (expand_complex_division): Add missing break.
5174
5175 2016-08-12 Richard Biener <rguenther@suse.de>
5176
5177 * passes.c (execute_todo): Do not push/pop TV_TODO.
5178 (execute_one_ipa_transform_pass): Move timevar push/pop TODO execution.
5179 (execute_one_pass): Likewise.
5180 * common.opt (ftime-report-details): New switch.
5181 * doc/invoke.texi (ftime-report-details): Document.
5182 * timevar.h (timer::print_row): Adjust signature.
5183 (timer::all_zero): New static helper.
5184 (timer::child_map_t): New typedef.
5185 (timer::time_var_def): Add children field.
5186 * timevar.c (timer::named_items::print): Adjust.
5187 (timer::~timer): Free timevar recorded children.
5188 (timer::pop_internal): When -ftime-report-details record
5189 time spent in sub-timevars.
5190 (timer::print_row): Adjust.
5191 (timer::print): Print sub-timevar stats, use all_zero.
5192 * timevar.def (TV_TODO): Remove.
5193
5194 2016-08-12 Richard Biener <rguenther@suse.de>
5195
5196 PR tree-optimization/72851
5197 * tree-ssa-propagate.c: Include cfganal.h. Rewrite block and stmt
5198 worklists to use bitmaps indexed in execution order.
5199 (executable_blocks, cfg_blocks_num, cfg_blocks_tail, cfg_blocks_head,
5200 bb_in_list, interesting_ssa_edges, varying_ssa_edges): Remove.
5201 (cfg_blocks): Make a bitmap.
5202 (bb_to_cfg_order, cfg_order_to_bb, ssa_edge_worklist, uid_to_stmt):
5203 New globals.
5204 (cfg_blocks_empty_p): Adjust.
5205 (cfg_blocks_add): Likewise.
5206 (cfg_blocks_get): Likewise.
5207 (add_ssa_edge): Likewise.
5208 (add_control_edge): Likewise.
5209 (simulate_stmt): Likewise.
5210 (process_ssa_edge_worklist): Likewise.
5211 (simulate_block): Likewise.
5212 (ssa_prop_init): Compute PRE order and stmt UIDs.
5213 (ssa_prop_fini): Adjust.
5214 (ssa_propagate): Adjust.
5215
5216 2016-08-12 Richard Biener <rguenther@suse.de>
5217
5218 * tree-vrp.c (vrp_visit_phi_node): Allow a last iteration if
5219 the currently executable edges have fixed ranges. Always
5220 go through update_value_range.
5221
5222 2016-08-12 Alexandre Oliva <aoliva@redhat.com>
5223
5224 PR debug/63240
5225 * langhooks-def.h
5226 (LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P): Const_tree-ify.
5227 (LANG_HOOKS_FUNCTION_DECL_DELETED_P): Likewise.
5228 (LANG_HOOKS_FUNCTION_DECL_DEFAULTED): Set default.
5229 (LANG_HOOKS_DECLS): Add it.
5230 * langhooks.h (struct lang_hooks_for_decls): Add
5231 function_decl_defaulted. Const_tree-ify
5232 function_decl_explicit_p and function_decl_deleted_p.
5233 * dwarf2out.c (gen_subprogram_die): Add DW_AT_defaulted
5234 attribute. Add DW_AT_deleted instead of DW_AT_GNU_deleted,
5235 also at strict DWARF v5.
5236
5237 PR debug/55641
5238 * dwarf2out.c (decl_quals): Don't map TREE_READONLY to
5239 TYPE_QUAL_CONST in reference-typed decls.
5240
5241 PR debug/49366
5242 * dwarf2out.c (loc_list_from_tree_1): Expand some CONSTRUCTORs
5243 in DW_OP_pieces, just enough to handle pointers to member
5244 functions.
5245 (gen_remaining_tmpl_value_param_die_attribute): Use a location
5246 expression on DWARFv5 if a constant value doesn't work.
5247
5248 2016-08-11 David Malcolm <dmalcolm@redhat.com>
5249
5250 * selftest-run-tests.c (selftest::run_tests): Call selftest_c_tests.
5251 * selftest.c (selftest::test_assertions): New function.
5252 (selftest::selftest_c_tests): New function.
5253 * selftest.h (selftest::selftest_c_tests): New declaration.
5254
5255 2016-08-11 Richard Biener <rguenther@suse.de>
5256 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
5257
5258 PR rtl-optimization/72855
5259 * df-core.c (df_verify): Turn off DF_VERIFY_SCHEDULED at end.
5260
5261 2016-08-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
5262
5263 PR target/72863
5264 * vsx.md (vsx_load_<mode>): For P8LE, emit swaps at expand time.
5265 (vsx_store_<mode>): Likewise.
5266
5267 2015-08-11 H.J. Lu <hongjiu.lu@intel.com>
5268
5269 * config/i386/i386.c (timode_scalar_to_vector_candidate_p): Allow
5270 TImode CONST_WIDE_INT store.
5271 (timode_scalar_chain::convert_insn): Handle CONST_WIDE_INT store.
5272
5273 2015-08-11 H.J. Lu <hongjiu.lu@intel.com>
5274
5275 * config/i386/i386.h (MOVE_MAX_PIECES): Use TImode in 64-bit
5276 mode if unaligned SSE load and store are optimal.
5277
5278 2016-08-11 Bernd Edlinger <bernd.edlinger@hotmail.de>
5279
5280 PR tree-optimization/71083
5281 * tree-predcom.c (ref_at_iteration): Correctly align the
5282 reference type.
5283
5284 2016-08-11 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
5285
5286 * config/s390/s390-builtin-types.def: Add INT128 types.
5287 * config/s390/s390-builtins.def: Add INT128 variants for the add
5288 sub low-level builtins dealing with TImode.
5289 * config/s390/s390.c (s390_expand_builtin): Allow mode conversions
5290 via subreg when expanding a builtin.
5291 * config/s390/s390.md: Remove UNSPEC_VEC_ADDC_U128,
5292 UNSPEC_VEC_SUB_U128, and UNSPEC_VEC_SUBC_U128 constants.
5293 Fix comment.
5294 * config/s390/vecintrin.h: Adjust builtin names accordingly.
5295 * config/s390/vx-builtins.md ("vec_add_u128"): Remove expander.
5296 ("vec_addc<mode>", "vec_addc_u128"): Merge to
5297 "vacc<bhfgq>_<mode>".
5298 ("vec_adde_u128"): Rename to "vacq". Change mode to TImode.
5299 ("vec_addec_u128"): Rename to "vacccq". Change mode to TImode.
5300 ("vec_subc<mode>", "vec_subc_u128"): Merge to
5301 "vscbi<bhfgq>_<mode>".
5302 ("vec_sube_u128"): Rename to "vsbiq". Change mode to TImode.
5303 ("vec_subec_u128"): Rename to "vsbcbiq". Change mode to TImode.
5304
5305 2016-08-11 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
5306
5307 * config/s390/s390-builtins.def: Mark last operand of s390_vlvg*
5308
5309 2016-08-11 Bin Cheng <bin.cheng@arm.com>
5310
5311 * config/aarch64/aarch64-simd.md (vcond<mode><mode>): Delete
5312 unused declaration.
5313 (vcond<v_cmp_mixed><mode>): Ditto.
5314 (vcondu<mode><mode>, vcondu<mode><v_cmp_mixed>): Ditto.
5315
5316 2016-08-11 Bin Cheng <bin.cheng@arm.com>
5317
5318 * config/aarch64/aarch64-simd.md (vec_cmp<mode><v_cmp_result>): Init
5319 variable explicitly, also assert on it before use.
5320
5321 2016-08-11 Richard Biener <rguenther@suse.de>
5322
5323 PR tree-optimization/72772
5324 * cfgloopmanip.c (create_preheader): Use split_edge if there
5325 is a single loop entry, avoiding degenerate PHIs.
5326
5327 2016-08-11 Richard Biener <rguenther@suse.de>
5328
5329 * tree-ssa-threadbackward.c (pass_data_thread_jumps): Remove
5330 unconditional TODO_cleanup_cfg.
5331 (pass_thread_jumps::execute): Initialize loops, perform a CFG
5332 cleanup only if we threaded a jump.
5333
5334 2016-08-11 Alan Modra <amodra@gmail.com>
5335
5336 PR target/71680
5337 * lra-constraints.c (simplify_operand_subreg): Allow subreg
5338 mode for mem when SLOW_UNALIGNED_ACCESS if inner mode is also
5339 slow. Emit two reloads for slow mem case, first loading in
5340 fast innermode, then converting to required mode.
5341
5342 2016-08-10 Kelvin Nilsen <kelvin@gcc.gnu.org>
5343
5344 * config/rs6000/altivec.h (vec_extract_exp): New macro.
5345 (vec_extract_sig): New macro.
5346 (vec_insert_exp): New macro.
5347 (vec_test_data_class): New macro.
5348 (scalar_extract_exp): New macro.
5349 (scalar_extract_sig): New macro.
5350 (scalar_insert_exp): New macro.
5351 (scalar_test_data_class): New macro.
5352 (scalar_test_neg): New macro.
5353 (scalar_cmp_exp_gt): New macro.
5354 (scalar_cmp_exp_lt): New macro.
5355 (scalar_cmp_exp_eq): New macro.
5356 (scalar_cmp_exp_unordered): New macro.
5357 * config/rs6000/predicates.md (u7bit_cint_operand): New predicate
5358 to enforce constraint that operand is a 7-bit unsigned literal.
5359 * config/rs6000/rs6000-builtin.def (BU_P9V_64BIT_VSX_1): New macro
5360 for power9 built-ins.
5361 (BU_P9V_VSX_2): Likewise.
5362 (BU_P9V_64BIT_VSX_2): Likewise.
5363 (VSEEDP): Add scalar extract exponent support.
5364 (VSEESP): Add scalar extract signature support.
5365 (VSTDCNDP): Add scalar test negative support.
5366 (VSTDCNSP): Likewise.
5367 (VSIEDP): Add scalar insert exponent support.
5368 (VSCEDPGT): Add scalar compare exponent greater than support.
5369 (VSCEDPLT): Add scalar compare exponent less than support.
5370 (VSCEDPEQ): Add scalar compare exponent test-for-equality support.
5371 (VSCEDPUO): Add scalar compare exponent test-for-unordered support.
5372 (VSTDCDP): Add scalar test data class support.
5373 (VSTDCSP): Likewise.
5374 (VSEEDP): Add overload support for scalar extract exponent
5375 operation.
5376 (VSESDP): Add overload support for scalar extract signature
5377 operation.
5378 (VSTDCN): Add overload support for scalar test negative
5379 operation.
5380 (VSTDCNDP): Add overload support for scalar test negative
5381 operation.
5382 (VSTDCNSP): Add overload support for scalar test negative
5383 operation.
5384 (VSIEDP): Add overload support for scalar insert exponent
5385 operation.
5386 (VSTDC): Add overload support for scalar test data class
5387 operation.
5388 (VSTDCDP): Add overload support for scalar test data class
5389 operation.
5390 (VSTDCSP): Add overload support for scalar test data class
5391 opreation.
5392 (VSCEDPGT): Add overload support for scalar compare exponent
5393 greater than operation.
5394 (VSCEDPLT): Add overload support for scalar compare exponent
5395 less than operation.
5396 (VSCEDPEQ): Add overload support for scalar compare exponent
5397 test-for-equality operation.
5398 (VSCEDPUO): Add overload support for scalar compare exponent
5399 test-for-unordered operation.
5400 (VEEDP): Add vector extract exponent support.
5401 (VEESP): Likewise.
5402 (VESDP): Add vector extract significand support.
5403 (VESSP): Likewise.
5404 (VIEDP): Add vector insert exponent support.
5405 (VIESP): Likewise.
5406 (VTDCDP): Add vector test data class support.
5407 (VTDCSP): Likewise.
5408 (VES): Add overload support for vector extract significand operation.
5409 (VESDP): Likewise.
5410 (VESSP): Likewise
5411 (VEE): Add overload support for vector extract exponent operation.
5412 (VEEDP): Likewise.
5413 (VEESP): Likewise.
5414 (VTDC): Add overload support for vector test data class operation.
5415 (VTDCDP): Likewise.
5416 (VTDCSP): Likewise.
5417 (VIE): Add overload support for vector insert exponent operation.
5418 (VIEDP): Likewise.
5419 (VIESP): Likewise.
5420 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
5421 overloaded binary floating point functions.
5422 (altivec_resolve_overloaded_builtin): Improve error messages to
5423 distinguish between functions not supported in the current
5424 compiler configuration and functions that were invoked with an
5425 invalid parameter combination, and include the built-in function
5426 name in both error messages.
5427 * config/rs6000/rs6000-protos.h (rs6000_overloaded_builtin_name):
5428 New prototype.
5429 * config/rs6000/rs6000.c (rs6000_overloaded_builtin_name): New
5430 function.
5431 (rs6000_expand_binop_builtin): Add check to enforce that argument
5432 2 of the test data class operations is a 7-bit unsigned literal.
5433 (rs6000_invalid_builtin): Add code to issue an error message if a
5434 built-in function that requires the power9_vector and -m32
5435 command-line options is compiled without these options.
5436 * config/rs6000/vsx.md (UNSPEC_VSX_SXEXPDP): New value.
5437 (UNSPEC_VSX_SXSIGDP): New value.
5438 (UNSPEC_VSX_SXSIGPDP): New value.
5439 (UNSPEC_VSX_SIEXPDP): New value.
5440 (UNSPEC_VSX_SCMPEXPDP): New value.
5441 (UNSPEC_VSX_STSTDC): New value.
5442 (UNSPEC_VSX_VXEXP): New value.
5443 (UNSPEC_VSX_VXSIG): New value.
5444 (UNSPEC_VSX_VIEXP): New value.
5445 (UNSPEC_VSX_VTSTDC): New value.
5446 (xsxexpdp): New insn for scalar extract exponent.
5447 (xsxsigdp): New insn for scalar extract significand.
5448 (xsiexpdp): New insn for scalar insert exponent.
5449 (xscmpexpdp_<code>): New expansion for scalar compare exponents.
5450 (*xscmpexpdp): New insn for scalar compare exponents.
5451 (xststdc<Fvsx): New expansion for both single- and
5452 double-precision scalar test data class operations.
5453 (xststdcneg<Fvsx>): New expansion for both single- and
5454 double-precision scalar test for negative value operations.
5455 (*xststdc<Fvsx>): New insn for scalar test data class
5456 operation.
5457 (xvxexp<VSs>): New insn for single- and double-precision
5458 vector extract exponent operation.
5459 (xvxsig<VSs>): New insn for single- and double-precision
5460 vector extract significand operation.
5461 (xviexp<VSs>): New insn for single- and double-precision
5462 vector insert exponent operation.
5463 (xvtstdc<VSs>): New insn for single- and double-precision
5464 vector test data class operation.
5465 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
5466 built-in functions to represent the Power9 binary floating-point
5467 support instructions.
5468
5469 2016-08-10 bin cheng <bin.cheng@arm.com>
5470
5471 * doc/sourcebuild.texi (@item vect_cond_mixed): New item.
5472
5473 2016-08-10 Alan Lawrence <alan.lawrence@arm.com>
5474 Renlin Li <renlin.li@arm.com>
5475 Bin Cheng <bin.cheng@arm.com>
5476
5477 * config/aarch64/iterators.md (V_cmp_mixed, v_cmp_mixed): New.
5478 * config/aarch64/aarch64-simd.md (<su><maxmin>v2di3): Call
5479 gen_vcondv2div2di instead of gen_aarch64_vcond_internalv2div2di.
5480 (aarch64_vcond_internal<mode><mode>): Delete pattern.
5481 (aarch64_vcond_internal<VDQF_COND:mode><VDQF:mode>): Ditto.
5482 (vcond<v_cmp_result><mode>): Ditto.
5483 (vcond<mode><mode>): Re-implement using vec_cmp and vcond_mask.
5484 (vcondu<mode><mode>): Ditto.
5485 (vcond<v_cmp_mixed><mode>): New pattern.
5486 (vcondu<mode><v_cmp_mixed>): New pattern.
5487 (aarch64_cmtst<mode>): Revise comment using aarch64_vcond instead
5488 of aarch64_vcond_internal.
5489
5490 2016-08-10 Alan Lawrence <alan.lawrence@arm.com>
5491 Renlin Li <renlin.li@arm.com>
5492 Bin Cheng <bin.cheng@arm.com>
5493
5494 * config/aarch64/aarch64-simd.md (vec_cmp<mode><mode>): New pattern.
5495 (vec_cmp<mode><v_cmp_result>): New pattern.
5496 (vec_cmpu<mode><mode>): New pattern.
5497 (vcond_mask_<mode><v_cmp_result>): New pattern.
5498
5499 2016-08-10 Yuri Rumyantsev <ysrumyan@gmail.com>
5500
5501 PR tree-optimization/71734
5502 * tree-ssa-loop-im.c (ref_indep_loop_p): Add new argument
5503 REF_LOOP, invoke ref_indep_loop_p_1.
5504 (outermost_indep_loop): Pass LOOP argumnet where REF was defined
5505 to ref_indep_loop_p.
5506 (ref_indep_loop_p_1): Fix commentary, add argument REF_LOOP,
5507 combine it with ref_indep_lopp_p_2, update SAFELEN if only REF
5508 is inside LOOP, do not cache dpendence value for loops with
5509 non-zero SAFELEN.
5510 (ref_indep_loop_p_2): Delete function.
5511 (can_sm_ref_p): Pass LOOP as additional argument to
5512 ref_indep_loop_p.
5513
5514 2016-08-10 Michael Meissner <meissner@linux.vnet.ibm.com>
5515
5516 PR target/72853
5517 * config/rs6000/rs6000.c (mem_operand_ds_form): Add check for op
5518 being an offsettable address.
5519
5520 2016-08-10 Martin Liska <mliska@suse.cz>
5521
5522 PR gcov-profile/58306
5523 * tree-profile.c (gimple_init_edge_profiler): Create conditionally
5524 atomic variants of profile update functions.
5525
5526 2016-08-10 Martin Liska <mliska@suse.cz>
5527
5528 Cherry picked (and modified) from google-4_7 branch
5529 2012-12-26 Rong Xu <xur@google.com>
5530 * common.opt (fprofile-update): Add new flag.
5531 * coretypes.h: Define enum profile_update.
5532 * doc/invoke.texi: Document -fprofile-update.
5533 * gcov-io.h: Declare GCOV_TYPE_ATOMIC_FETCH_ADD and
5534 GCOV_TYPE_ATOMIC_FETCH_ADD_FN.
5535 * tree-profile.c (gimple_init_edge_profiler): Generate
5536 also atomic profiler update.
5537 (gimple_gen_edge_profiler): Likewise.
5538
5539 2016-08-10 David Malcolm <dmalcolm@redhat.com>
5540
5541 * toplev.c (finalize): Set aux_info_file, asm_out_file, and
5542 stack_usage_file to NULL after fclose calls.
5543
5544 2016-08-10 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
5545
5546 PR target/71873
5547 * reload.c (push_reload): Compute subreg_in_class for
5548 subregs of constants and plus expressions. Remove special
5549 handling of SYMBOL_REFs.
5550
5551 2016-08-10 Alan Modra <amodra@gmail.com>
5552
5553 PR target/71680
5554 * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Return
5555 SImode for TARGET_E500_DOUBLE when given SImode.
5556
5557 2016-08-09 David Wohlferd <dw@LimeGreenSocks.com>
5558
5559 * config/i3836/avx512fintrin.h (_mm512_cvtsepi64_epi32): Remove
5560 unused variable __O.
5561
5562 2016-08-09 Martin Liska <mliska@suse.cz>
5563
5564 * doc/gcov.texi: Change _gcov_dump to __gcov_dump and
5565 _gcov_reset to __gcov_reset.
5566 * doc/gcov-tool.texi: Fix typo.
5567
5568 2016-08-09 Martin Liska <mliska@suse.cz>
5569
5570 * value-prof.c (gimple_divmod_values_to_profile): Do not
5571 instrument MOD histogram if a value is not a SSA name.
5572
5573 2016-08-09 Martin Liska <mliska@suse.cz>
5574
5575 * value-prof.c (dump_histogram_value): Swap pow2 and non-pow2
5576 values.
5577
5578 2016-08-09 Renlin Li <renlin.li@arm.com>
5579
5580 PR middle-end/64971
5581 * calls.c (prepare_call_address): Convert funexp to Pmode when
5582 necessary.
5583 * config/aarch64/aarch64.md (sibcall): Remove fix for PR 64971.
5584 (sibcall_value): Likewise.
5585
5586 2016-08-09 Marek Polacek <polacek@redhat.com>
5587
5588 PR c/7652
5589 * cselib.c (cselib_expand_value_rtx_1): Add return.
5590 * gengtype.c (dbgprint_count_type_at): Likewise.
5591 * hsa-gen.c (gen_hsa_insn_for_internal_fn_call): Likewise.
5592 * reg-stack.c (get_true_reg): Restructure to avoid fallthrough warning.
5593
5594 2016-08-09 Martin Jambor <mjambor@suse.cz>
5595
5596 PR ipa/71981
5597 * ipa-polymorphic-call.c (get_dynamic_type): Bail out gracefully
5598 if instance is a MEM_REF.
5599
5600 2016-08-09 Uros Bizjak <ubizjak@gmail.com>
5601
5602 PR target/72843
5603 * config/i386/i386.md (*movtf_internal): Use
5604 lra_in_progress || reload_completed instead of !can_create_pseudo_p
5605 in the insn constraint.
5606 (*movxf_internal): Ditto.
5607 (*movdf_internal): Ditto.
5608 (*movsf_internal): Ditto.
5609
5610 2016-08-09 Bin Cheng <bin.cheng@arm.com>
5611
5612 PR tree-optimization/72772
5613 * tree-ssa-loop-niter.c (loop_exits_before_overflow): Check equality
5614 for expanded base.
5615
5616 2016-08-09 Bin Cheng <bin.cheng@arm.com>
5617
5618 PR tree-optimization/72772
5619 * tree-ssa-loop-niter.h (simplify_using_initial_conditions): Delete
5620 parameter STOP.
5621 * tree-ssa-loop-niter.c (tree_simplify_using_condition_1): Delete
5622 parameter STOP and update calls. Move expand_simple_operations
5623 function call from here...
5624 (simplify_using_initial_conditions): ...to here. Delete parameter
5625 STOP.
5626 (tree_simplify_using_condition): Delete parameter STOP.
5627 * tree-scalar-evolution.c (simple_iv_with_niters): Update call to
5628 simplify_using_initial_conditions.
5629
5630 2016-08-09 Matthew Fortune <matthew.fortune@imgtec.com>
5631
5632 PR c/65345
5633 * config/mips/mips.c (mips_atomic_assign_expand_fenv):
5634 Use create_tmp_var_raw instead of create_tmp_var.
5635
5636 2016-08-09 Richard Biener <rguenther@suse.de>
5637
5638 * tree-ssa-threadbackward.c (profitable_jump_thread_path):
5639 Treat same SSA names related.
5640
5641 2016-08-09 Jakub Jelinek <jakub@redhat.com>
5642
5643 PR tree-optimization/72824
5644 * tree-loop-distribution.c (const_with_all_bytes_same): Verify
5645 real_zerop is not negative.
5646
5647 2016-08-09 Richard Biener <rguenther@suse.de>
5648
5649 PR tree-optimization/71802
5650 * tree-cfgcleanup.c (cleanup_tree_cfg_bb): Make sure to catch
5651 all merge opportunities with the predecessor.
5652
5653 2016-08-09 Richard Biener <rguenther@suse.de>
5654
5655 PR ipa/68273
5656 * ipa-prop.c (ipa_modify_formal_parameters): Build
5657 parameter types with natural alignment also for the
5658 over-aligned case.
5659
5660 2016-08-08 Andi Kleen <ak@linux.intel.com>
5661
5662 * tree-vrp.c (get_single_symbol): Always initialize inv and neg.
5663
5664 2016-08-08 David Malcolm <dmalcolm@redhat.com>
5665
5666 PR c/64955
5667 * langhooks-def.h (LANG_HOOKS_RUN_LANG_SELFTESTS): New default
5668 do-nothing langhook.
5669 (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_RUN_LANG_SELFTESTS.
5670 * langhooks.h (struct lang_hooks): Add run_lang_selftests.
5671 * selftest-run-tests.c: Include "tree.h" and "langhooks.h".
5672 (selftest::run_tests): Call lang_hooks.run_lang_selftests.
5673
5674 2016-08-08 David Malcolm <dmalcolm@redhat.com>
5675
5676 PR bootstrap/72844
5677 * input.c: Ensure that HAVE_ICONV is defined.
5678
5679 2016-08-08 Jakub Jelinek <jakub@redhat.com>
5680
5681 PR middle-end/72781
5682 * omp-low.c (lower_lastprivate_clauses): Set TREE_NO_WARNING on the
5683 private vars for lastprivate and for linear iterator.
5684
5685 PR middle-end/68762
5686 * omp-simd-clone.c: Include varasm.h.
5687 (simd_clone_create): Copy over DECL_COMDAT, DECL_WEAK, DECL_EXTERNAL,
5688 DECL_VISIBILITY, DECL_VISIBILITY_SPECIFIED, DECL_DLLIMPORT_P and for
5689 DECL_ONE_ONLY call make_decl_one_only. Fix up spelling in comment and
5690 update function name.
5691
5692 2016-07-29 Pitchumani Sivanupandi <pitchumani.s@atmel.com>
5693
5694 * config/avr/driver-avr.c (specfiles_doc_url): Remove.
5695 (avr_diagnose_devicespecs_error): Remove.
5696 (avr_devicespecs_file): Remove composing absolute path for specfile
5697 and its verbose info. Remove conditions to check specs-file,
5698
5699 2016-08-08 Jakub Jelinek <jakub@redhat.com>
5700
5701 PR rtl-optimization/72821
5702 * lra-spills.c (regno_in_use_p): Don't use BLOCK_FOR_INSN on barriers,
5703 just return false for them.
5704
5705 2016-08-08 Alan Modra <amodra@gmail.com>
5706
5707 PR target/72771
5708 * config/rs6000/rs6000.c (toc_relative_expr_p): Allow (lo_sum (high))
5709 toc refs created during reload. Update function comment.
5710
5711 2016-08-08 Alan Modra <amodra@gmail.com>
5712
5713 PR target/72802
5714 * config/rs6000/rs6000.md (mov<mode>_hardfloat): Sort
5715 alternatives. Put loads first, then stores, and reg/reg moves
5716 within same class later. Delete attr length.
5717
5718 2016-08-08 Alan Modra <amodra@gmail.com>
5719
5720 PR target/72802
5721 * config/rs6000/rs6000.c (mem_operand_gpr): Remove vsx dform test.
5722 (mem_operand_ds_form): New predicate.
5723 * config/rs6000/rs6000-protos.h (mem_operand_ds_form): Declare.
5724 * config/rs6000/constraints.md (wY): Use mem_operand_df_form.
5725 * config/rs6000/predicates.md (offsettable_mem_14bit_operand): Delete.
5726 * config/rs6000/rs6000.md (f32_lm2, f32_sm2): Use wY for SF.
5727 (extendsfdf2_fpr): Replace o constraint with wY.
5728
5729 2016-08-07 Jan Hubicka <hubicka@ucw.cz>
5730
5731 * tree-ssa-threadbackward.c: Include tree-inline.h
5732 (profitable_jump_thread_path): Use estimate_num_insns to estimate
5733 size of copied block; for cold paths reduce duplication.
5734 (find_jump_threads_backwards): Remove redundant tests.
5735 (pass_thread_jumps::gate): Enable for -Os.
5736
5737 2016-08-07 Jakub Jelinek <jakub@redhat.com>
5738
5739 PR c/72816
5740 * stor-layout.c (layout_decl): Fix up formatting.
5741 (relayout_decl): Allow DECL to be FIELD_DECL.
5742
5743 2016-08-07 Alan Modra <amodra@gmail.com>
5744
5745 * config/rs6000/rs6000.md (fix_trunc<mode>si2): Fix mode of reg.
5746
5747 2016-08-07 Kugan Vivekanandarajah <kuganv@linaro.org>
5748
5749 * data-streamer-in.c (streamer_read_wide_int): New.
5750 (streamer_read_widest_int): Renamed function.
5751 * data-streamer-out.c (streamer_write_wide_int): New
5752 (streamer_write_widest_int): Renamed function.
5753 * lto-streamer-in.c (streamer_read_wi): Renamed and moved to
5754 data-stream-in.c.
5755 (input_cfg): Call renamed function.
5756 * lto-streamer-out.c (streamer_write_wi): Renamed and moved to
5757 data-stream-out.c.
5758 (output_cfg): Call renamed function.
5759 * data-streamer.h: Add declarations.
5760
5761 2016-08-08 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
5762
5763 * tree-ssa-ccp.c (extend_mask): New param sgn.
5764 Remove ORing with wi::mask.
5765 (get_default_value): Adjust call to extend_mask to pass sign.
5766 (evaluate_stmt): Likewise.
5767
5768 2016-08-06 Jakub Jelinek <jakub@redhat.com>
5769
5770 * gcov.c (handle_cycle): Use INTTYPE_MAXIMUM (int64_t) instead of
5771 INT64_MAX.
5772
5773 2016-08-06 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
5774
5775 * match.pd ((intptr_t) x eq/ne CST to x eq/ne (typeof x) cst): Disable
5776 transform if operand's type is pointer to function or method.
5777
5778 2016-08-05 Patrick Palka <ppalka@gcc.gnu.org>
5779
5780 PR tree-optimization/18046
5781 * tree-ssa-threadedge.c: Include cfganal.h.
5782 (simplify_control_statement_condition): If simplifying a
5783 GIMPLE_SWITCH, replace the index operand of the GIMPLE_SWITCH
5784 with the dominating ASSERT_EXPR before handing it off to VRP.
5785 Mention that a CASE_LABEL_EXPR may be returned.
5786 (thread_around_empty_blocks): Adjust to handle
5787 simplify_control_statement_condition() returning a
5788 CASE_LABEL_EXPR.
5789 (thread_through_normal_block): Likewise.
5790 * tree-vrp.c (simplify_stmt_for_jump_threading): Simplify
5791 a switch statement by trying to determine which case label
5792 will be taken.
5793
5794 2016-08-05 Vladimir Makarov <vmakarov@redhat.com>
5795
5796 PR rtl-optimization/69847
5797 * lra-constraints.c (process_invariant_for_inheritance): Save
5798 pattern instead of src.
5799 (remove_inheritance_pseudos): Use the pattern. Add assert.
5800
5801 2016-08-05 David Malcolm <dmalcolm@redhat.com>
5802
5803 * input.c (string_concat::string_concat): New constructor.
5804 (string_concat_db::string_concat_db): New constructor.
5805 (string_concat_db::record_string_concatenation): New method.
5806 (string_concat_db::get_string_concatenation): New method.
5807 (string_concat_db::get_key_loc): New method.
5808 (class auto_cpp_string_vec): New class.
5809 (get_substring_ranges_for_loc): New function.
5810 (get_source_range_for_substring): New function.
5811 (get_num_source_ranges_for_substring): New function.
5812 (class selftest::lexer_test_options): New class.
5813 (struct selftest::lexer_test): New struct.
5814 (class selftest::ebcdic_execution_charset): New class.
5815 (selftest::ebcdic_execution_charset::s_singleton): New variable.
5816 (selftest::lexer_test::lexer_test): New constructor.
5817 (selftest::lexer_test::~lexer_test): New destructor.
5818 (selftest::lexer_test::get_token): New method.
5819 (selftest::assert_char_at_range): New function.
5820 (ASSERT_CHAR_AT_RANGE): New macro.
5821 (selftest::assert_num_substring_ranges): New function.
5822 (ASSERT_NUM_SUBSTRING_RANGES): New macro.
5823 (selftest::assert_has_no_substring_ranges): New function.
5824 (ASSERT_HAS_NO_SUBSTRING_RANGES): New macro.
5825 (selftest::test_lexer_string_locations_simple): New function.
5826 (selftest::test_lexer_string_locations_ebcdic): New function.
5827 (selftest::test_lexer_string_locations_hex): New function.
5828 (selftest::test_lexer_string_locations_oct): New function.
5829 (selftest::test_lexer_string_locations_letter_escape_1): New function.
5830 (selftest::test_lexer_string_locations_letter_escape_2): New function.
5831 (selftest::test_lexer_string_locations_ucn4): New function.
5832 (selftest::test_lexer_string_locations_ucn8): New function.
5833 (selftest::uint32_from_big_endian): New function.
5834 (selftest::test_lexer_string_locations_wide_string): New function.
5835 (selftest::uint16_from_big_endian): New function.
5836 (selftest::test_lexer_string_locations_string16): New function.
5837 (selftest::test_lexer_string_locations_string32): New function.
5838 (selftest::test_lexer_string_locations_u8): New function.
5839 (selftest::test_lexer_string_locations_utf8_source): New function.
5840 (selftest::test_lexer_string_locations_concatenation_1): New
5841 function.
5842 (selftest::test_lexer_string_locations_concatenation_2): New
5843 function.
5844 (selftest::test_lexer_string_locations_concatenation_3): New
5845 function.
5846 (selftest::test_lexer_string_locations_macro): New function.
5847 (selftest::test_lexer_string_locations_stringified_macro_argument):
5848 New function.
5849 (selftest::test_lexer_string_locations_non_string): New function.
5850 (selftest::test_lexer_string_locations_long_line): New function.
5851 (selftest::test_lexer_char_constants): New function.
5852 (selftest::input_c_tests): Call the new test functions once per
5853 case within the line_table test matrix.
5854 * input.h (struct string_concat): New struct.
5855 (struct location_hash): New struct.
5856 (class string_concat_db): New class.
5857 * substring-locations.h: New header.
5858
5859 2016-08-05 Patrick Palka <ppalka@gcc.gnu.org>
5860
5861 PR tree-optimization/72810
5862 * tree-vrp.c (simplify_switch_using_ranges): Avoid changing
5863 the type of the case labels when truncating.
5864
5865 2016-08-05 James Greenhalgh <james.greenhalgh@arm.com>
5866
5867 PR Target/72819
5868 * config/aarch64/aarch64.h (aarch64_fp16_type_node): Declare.
5869 (aarch64_fp16_ptr_type_node): Likewise.
5870 * config/aarch64/aarch64-simd-builtins.c
5871 (aarch64_fp16_ptr_type_node): Define.
5872 (aarch64_init_fp16_types): New, refactored out of...
5873 (aarch64_init_builtins): ...here, update to call
5874 aarch64_init_fp16_types.
5875 * config/aarch64/aarch64.c (aarch64_gimplify_va_arg_expr): Handle
5876 HFmode.
5877 (aapcs_vfp_sub_candidate): Likewise.
5878
5879 2016-08-05 Martin Liska <mliska@suse.cz>
5880 Joshua Cranmer <Pidgeot18@gmail.com>
5881
5882 * gcov.c (line_t::has_block): New function.
5883 (enum loop_type): New enum.
5884 (handle_cycle): New function.
5885 (unblock): Likewise.
5886 (circuit): Likewise.
5887 (get_cycles_count): Likewise.
5888 (accumulate_line_counts): Use new loop detection algorithm.
5889
5890 2016-08-05 Martin Liska <mliska@suse.cz>
5891
5892 * gcov.c (output_intermediate_file): Rename
5893 function_info::line_next to next_file_fn.
5894 (process_file): Likewise.
5895 (read_graph_file): Likewise.
5896 (accumulate_line_counts): Likewise.
5897 (output_lines): Likewise.
5898
5899 2016-08-05 Richard Biener <rguenther@suse.de>
5900
5901 * tree-ssa-threadupdate.c (thread_block_1): Remove unnecessary
5902 restriction on threading to a loop header.
5903
5904 2016-08-05 Richard Biener <rguenther@suse.de>
5905
5906 * tree-cfgcleanup.c (tree_forwarder_block_p): Use bb_loop_header_p.
5907 * cfghooks.c (force_nonfallthru): If we ended up splitting a latch
5908 adjust loop info accordingly.
5909
5910 2016-08-05 Kugan Vivekanandarajah <kuganv@linaro.org>
5911
5912 * tree-vrp.c (extract_range_basic): Check cfun->after_inlining
5913 before folding call to __builtin_constant_p with parameters to false.
5914
5915 2016-08-05 Alan Modra <amodra@gmail.com>
5916
5917 * config/rs6000/rs6000.c (rs6000_preferred_reload_class): Delete
5918 code accidentally committed 2016-05-02 providing class when given
5919 NO_REGS.
5920
5921 2016-08-04 Patrick Palka <ppalka@gcc.gnu.org>
5922
5923 * tree-vrp.c (simplify_switch_using_ranges): Try to truncate
5924 the case label ranges that partially overlap with OP's value
5925 range.
5926
5927 2016-08-04 Uros Bizjak <ubizjak@gmail.com>
5928
5929 PR target/72805
5930 * config/i386/avx512fintrin.h (_mm512_cmp_epi32_mask) [!__OPTIMIZE__]:
5931 Cast builtin function result to __mmask16 instead of __mmask8.
5932 (_mm512_cmp_epu32_mask) [!__OPTIMIZE__]: Ditto.
5933 (_mm512_mask_cmp_epi32_mask) [!__OPTIMIZE__]: Ditto.
5934 (_mm512_mask_cmp_epu32_mask) [!__OPTIMIZE__]: Ditto.
5935
5936 2016-08-04 David Malcolm <dmalcolm@redhat.com>
5937
5938 * selftest.h (ASSERT_TRUE): Reimplement in terms of...
5939 (ASSERT_TRUE_AT): New macro.
5940 (ASSERT_FALSE): Reimplement in terms of...
5941 (ASSERT_FALSE_AT): New macro.
5942 (ASSERT_STREQ_AT): Fix typo in comment.
5943
5944 2016-08-04 Patrick Palka <ppalka@gcc.gnu.org>
5945
5946 * gimple.c (preprocess_case_label_vec_for_gimple): When the case
5947 labels are exhaustive, designate the label with the widest
5948 range to be the default label.
5949
5950 2016-08-04 Andrew Pinski <apinski@cavium.com>
5951
5952 * config/aarch64/aarch64.c (thunderx_vector_cost): New variable.
5953 (thunderx_tunings): Use thunderx_vector_cost instead of
5954 generic_vector_cost.
5955
5956 2016-08-04 Martin Liska <mliska@suse.cz>
5957
5958 * gcov.c (main): Fix GNU coding style.
5959 (output_intermediate_file): Likewise.
5960 (process_file): Likewise.
5961 (generate_results): Likewise.
5962 (release_structures): Likewise.
5963 (create_file_names): Likewise.
5964 (find_source): Likewise.
5965 (read_graph_file): Likewise.
5966 (find_exception_blocks): Likewise.
5967 (canonicalize_name): Likewise.
5968 (make_gcov_file_name): Likewise.
5969 (mangle_name): Likewise.
5970 (accumulate_line_counts): Likewise.
5971 (output_branch_count): Likewise.
5972 (read_line): Likewise.
5973
5974 2016-08-04 Bernd Edlinger <bernd.edlinger@hotmail.de>
5975
5976 PR rtl-optimization/71779
5977 * emit-rtl.c (set_reg_attrs_from_value): Only propagate REG_POINTER,
5978 if the value was sign-extended according to POINTERS_EXTEND_UNSIGNED
5979 or if it was truncated.
5980
5981 PR rtl-optimization/70903
5982 * cse.c (cse_insn): If DEST is a paradoxical SUBREG, don't record DEST.
5983
5984 2016-08-04 Kugan Vivekanandarajah <kuganv@linaro.org>
5985
5986 * tree-inline.c (remap_ssa_name): Check for POINTER_TYPE_P before
5987 accessing SSA_NAME_PTR_INFO.
5988
5989 2016-08-04 Georg-Johann Lay <avr@gjlay.de>
5990
5991 PR 70677
5992 * common/config/avr/avr-common.c (avr_option_optimization_table)
5993 [OPT_LEVELS_ALL]: Turn off -fcaller-saves.
5994
5995 2016-08-04 Georg-Johann Lay <avr@gjlay.de>
5996
5997 PR 55181
5998 * config/avr/avr.md: New pattern to work around do_store_flag
5999 generating shift instructions for bit extractions.
6000
6001 2016-08-04 Kugan Vivekanandarajah <kuganv@linaro.org>
6002
6003 * tree-vrp.c (set_value_range): Use vrp_equiv_obstack with
6004 BITMAP_ALLOC.
6005 (add_equivalence): Likewise.
6006 (get_value_range): Allocate value range with vrp_value_range_pool.
6007 (vrp_initialize): Initialize vrp_equiv_obstack for equiv allocation.
6008 (vrp_finalize): Relase vrp_equiv_obstack and vrp_value_range_pool.
6009
6010 2016-08-03 Peter Bergner <bergner@vnet.ibm.com>
6011
6012 * config/rs6000/rs6000.c (rs6000_option_override_internal): Make LRA
6013 the default for the rs6000 port.
6014
6015 2016-08-03 Bernd Edlinger <bernd.edlinger@hotmail.de>
6016
6017 PR middle-end/71876
6018 * calls.c (special_function_p): Remove special handling of
6019 "setjmp_syscall", "qsetjmp", "longjmp", "siglongjmp" and the
6020 prefix "__x". Recognize "savectx", "vfork" and "getcontext" only
6021 without prefix. Remove potentially unsafe ECF_LEAF and ECF_NORETURN.
6022
6023 2016-08-03 Vladimir Makarov <vmakarov@redhat.com>
6024
6025 PR middle-end/72778
6026 * lra-spills.c (regno_in_use_p): Check bb and regno modification.
6027 Don't stop on regular insns.
6028
6029 2016-08-03 Nathan Sidwell <nathan@codesourcery.com>
6030
6031 * config/nvptx/nvptx.c (nvptx_declare_function_name): Round frame
6032 size to DImode boundary.
6033 (nvptx_propagate): Likewise.
6034
6035 2016-08-03 Alan Modra <amodra@gmail.com>
6036
6037 * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Make scalar
6038 float access depend on TARGET_EFFICIENT_UNALIGNED_VSX.
6039 * config/rs6000/rs6000.opt (-mefficient-unaligned-vsx): Renamed
6040 from -mefficient-unaligned-vector. Note that this affects fp too.
6041
6042 2016-08-03 Alan Modra <amodra@gmail.com>
6043
6044 * config/rs6000/rs6000.c (rs6000_rtx_costs): Make unaligned mem
6045 cost more.
6046
6047 2016-08-03 Alan Modra <amodra@gmail.com>
6048
6049 * config/rs6000/rs6000.md (fix_trunc<mode>si2): Force source operand
6050 to a reg. Localize vars.
6051
6052 2016-08-03 Alan Modra <amodra@gmail.com>
6053
6054 * config/rs6000/rs6000.opt: Remove negatives from help strings
6055 and comments.
6056
6057 2016-08-03 Alan Modra <amodra@gmail.com>
6058
6059 * config/rs6000/rs6000.c (rs6000_secondary_reload_direct_move):
6060 Delete duplicated code.
6061
6062 2016-08-02 Vladimir Makarov <vmakarov@redhat.com>
6063
6064 PR middle-end/72778
6065 * lra-spills.c (regno_in_use_p): New.
6066 (lra_final_code_change): Use it.
6067
6068 2016-08-02 Vladimir Makarov <vmakarov@redhat.com>
6069
6070 PR rtl-optimization/69847
6071 * lra-int.h (struct lra-reg): Use restore_rtx instead of
6072 restore_regno.
6073 (lra_rtx_hash): New.
6074 * lra.c (initialize_lra_reg_info_element): Use restore_rtx instead
6075 of restore_regno.
6076 (lra_rtx_hash): Rename and move lra-remat.c::rtx_hash.
6077 * lra-remat.c (rtx_hash): Rename and Move to lra.c.
6078 * lra-spills.c (lra_final_code_change): Don't delete insn when the
6079 next insn is USE with the same reg as the current insn source.
6080 * lra-constraints.c (curr_insn_transform): Use restore_rtx instead
6081 of restore_regno.
6082 (lra_constraints_init): Call initiate_invariants.
6083 (lra_constraints_finish): Call finish_invariants.
6084 (struct invariant, invariant_t, invariant_ptr_t): New.
6085 (const_invariant_ptr_t, invariants, invariants_pool): New.
6086 (invariant_table, invariant_hash, invariant_eq_p): New.
6087 (insert_invariant, initiate_invariants, finish_invariants): New.
6088 (clear_invariants, invalid_invariant_regs): New.
6089 (inherit_reload_reg, split_reg, fix_bb_live_info): Use restore_rtx
6090 instead of restore_regno.
6091 (invariant_p, process_invariant_for_inheritance): New.
6092 (inherit_in_ebb): Implement invariant inheritance.
6093 (lra_inheritance): Initialize and finalize invalid_invariant_regs.
6094 (remove_inheritance_pseudos): Implement undoing invariant
6095 inheritance.
6096 (undo_optional_reloads, lra_undo_inheritance): Use restore_rtx
6097 instead of restore_regno.
6098 * lra-assigns.c (regno_live_length): New.
6099 (reload_pseudo_compare_func): Use regno_live_length.
6100 (assign_by_spills): Use restore_rtx instead of restore_regno.
6101 (lra_assign): Ditto. Initiate regno_live_length.
6102
6103 2016-02-08 James Greenhalgh <james.greenhalgh@arm.com>
6104
6105 * config/aarch64/arm_neon.h (vminnm_f64): Add back missing 'f' from
6106 __builtin_aarch64_fmindf.
6107
6108 2016-08-02 Bin Cheng <bin.cheng@arm.com>
6109
6110 PR tree-optimization/34114
6111 * tree-ssa-loop-niter.c (number_of_iterations_ne): Prove no-overflow
6112 information for more control IVs.
6113
6114 2016-08-02 Bin Cheng <bin.cheng@arm.com>
6115
6116 PR tree-optimization/34114
6117 * fold-const.c (multiple_of_p): Improve MULT_EXPR, PLUS_EXPR,
6118 PLUS_EXPR case. Handle SSA_NAME case.
6119
6120 2016-08-02 Tamar Christina <tamar.christina@arm.com>
6121
6122 * config/aarch64/aarch64-simd-builtins.def
6123 (__builtin_aarch64_fmindf): Change BUILTIN_VDQF to BUILTIN_VDQF_DF.
6124 (__builtin_aarch64_fmaxdf): Likewise.
6125 (__builtin_aarch64_smin_nandf): Likewise.
6126 (__builtin_aarch64_smax_nandf): Likewise.
6127 * config/aarch64/aarch64-simd.md (<fmaxmin><mode>3): Remove.
6128 * config/aarch64/aarch64.md (<fmaxmin><mode>3): Rename to...
6129 (<fmaxmin><mode>3): ...this.
6130 * config/aarch64/arm_neon.h (vmaxnm_f64): New.
6131 (vminnm_f64): Likewise.
6132 (vmin_f64): Likewise.
6133 (vmax_f64): Likewise.
6134 * config/aarch64/iterators.md (FMAXMIN): Merge with...
6135 (FMAXMIN_UNS): ...this.
6136 (fmaxmin): Merged with
6137 (fmaxmin_op): ...this...
6138 (maxmin_uns_op): ...in to this.
6139
6140 2016-08-01 Michael Meissner <meissner@linux.vnet.ibm.com>
6141
6142 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
6143 Add support for vec_extract on vector float, vector int, vector
6144 short, and vector char vector types.
6145 * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
6146 vector float, vector int, vector short, and vector char
6147 optimizations on 64-bit ISA 2.07 systems for both constant and
6148 variable element numbers.
6149 (rs6000_split_vec_extract_var): Likewise.
6150 * config/rs6000/vsx.md (vsx_xscvspdp_scalar2): Allow SFmode to be
6151 Altivec registers on ISA 2.07 and above.
6152 (vsx_extract_v4sf): Delete alternative that hard coded element 0,
6153 which never was matched due to the split occuring before register
6154 allocation (and the code would not have worked on little endian
6155 systems if it did match). Allow extracts to go to the Altivec
6156 registers if ISA 2.07 (power8). Change from using "" around the
6157 C++ code to using {}'s.
6158 (vsx_extract_v4sf_<mode>_load): New insn to optimize vector float
6159 vec_extracts when the vector is in memory.
6160 (vsx_extract_v4sf_var): New insn to optimize vector float
6161 vec_extracts when the element number is variable on 64-bit ISA
6162 2.07 systems.
6163 (vsx_extract_<mode>, VSX_EXTRACT_I iterator): Add optimizations
6164 for 64-bit ISA 2.07 as well as ISA 3.0.
6165 (vsx_extract_<mode>_p9, VSX_EXTRACT_I iterator): Likewise.
6166 (vsx_extract_<mode>_p8, VSX_EXTRACT_I iterator): Likewise.
6167 (vsx_extract_<mode>_load, VSX_EXTRACT_I iterator): New insn to
6168 optimize vector int, vector short, and vector char vec_extracts
6169 when the vector is in memory.
6170 (vsx_extract_<mode>_var, VSX_EXTRACT_I iterator): New insn to
6171 optimize vector int, vector short, and vector char vec_extracts
6172 when the element number is variable.
6173
6174 2016-08-01 Georg-Johann Lay <avr@gjlay.de>
6175
6176 PR target/71948
6177 * config/avr/avr.c (AVR_SYMBOL_FLAG_TINY_PM): Use a value that
6178 does not overlap with other symbol flags.
6179
6180 2016-08-01 Wilco Dijkstra <wdijkstr@arm.com>
6181
6182 * config/aarch64/aarch64.h (aarch64_frame):
6183 Remove padding0 and hardfp_offset. Add locals_offset,
6184 initial_adjust, callee_adjust, callee_offset and final_adjust.
6185 * config/aarch64/aarch64.c (aarch64_layout_frame):
6186 Remove unused padding0 and hardfp_offset initializations.
6187 Choose frame layout and set frame variables accordingly.
6188 Use INVALID_REGNUM instead of FIRST_PSEUDO_REGISTER.
6189 (aarch64_push_regs): Use INVALID_REGNUM, not FIRST_PSEUDO_REGISTER.
6190 (aarch64_pop_regs): Likewise.
6191 (aarch64_expand_prologue): Remove all decision code, just emit
6192 prolog according to frame variables.
6193 (aarch64_expand_epilogue): Remove all decision code, just emit
6194 epilog according to frame variables.
6195 (aarch64_initial_elimination_offset): Use offset to local/arg area.
6196
6197 2015-08-01 H.J. Lu <hongjiu.lu@intel.com>
6198
6199 PR target/72748
6200 * config/i386/i386.c (timode_scalar_chain::convert_insn): Call
6201 fix_debug_reg_uses after changing source register mode to
6202 V1TImode if source register is undefined.
6203
6204 2015-08-01 Alan Hayward <alan.hayward@arm.com>
6205
6206 PR tree-optimization/71818
6207 * tree-vect-loop-manip.c (vect_can_advance_ivs_p): Don't advance IVs
6208 with non invariant evolutions
6209
6210 2016-08-01 Georg-Johann Lay <avr@gjlay.de>
6211
6212 PR target/72767
6213 * config/avr/avr.md (length) [branch]: Correct insn length
6214 attribute for forward branches.
6215
6216 2016-08-01 Georg-Johann Lay <avr@gjlay.de>
6217
6218 * doc/extend.texi (AVR Built-in Functions): Document
6219 __builtin_avr_nops.
6220 * config/avr/builtins.def (NOPS): New.
6221 * config/avr/avr.c (avr_expand_nops): New static function.
6222 (avr_expand_builtin): Use it to handle AVR_BUILTIN_NOPS.
6223
6224 2016-08-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6225
6226 * config/aarch64/aarch64.c (aarch64_classify_address): Use DImode when
6227 performing aarch64_offset_7bit_signed_scaled_p check for TImode LDP/STP
6228 addresses.
6229
6230 2016-08-01 Virendra Pathak <virendra.pathak@broadcom.com>
6231
6232 * config/aarch64/aarch64.c (vulcan_tunings): Update
6233 vulcan L1 cache_line_size.
6234
6235 2016-07-30 Michael Meissner <meissner@linux.vnet.ibm.com>
6236
6237 * config/rs6000/rs6000-protos.h (rs6000_adjust_vec_address): New
6238 function that takes a vector memory address, a hard register, an
6239 element number and a temporary base register, and recreates an
6240 address that points to the appropriate element within the vector.
6241 * config/rs6000/rs6000.c (rs6000_adjust_vec_address): Likewise.
6242 (rs6000_split_vec_extract_var): Add support for the target of a
6243 vec_extract with variable element number being a scalar memory
6244 location.
6245 (rtx_is_swappable_p): VLSO insns (UNSPEC_VSX_VSLOW) are not
6246 swappable.
6247 * config/rs6000/vsx.md (vsx_extract_<mode>_load): Replace
6248 vsx_extract_<mode>_load insn with a new insn that optimizes
6249 storing either element to a memory location, using scratch
6250 registers to pick apart the vector and reconstruct the address.
6251 (vsx_extract_<P:mode>_<VSX_D:mode>_load): Likewise.
6252 (vsx_extract_<mode>_store): Rework alternatives to more correctly
6253 support Altivec registers. Add support for ISA 3.0 Altivec d-form
6254 store instruction.
6255 (vsx_extract_<mode>_var): Add support for extracting a variable
6256 element number from memory.
6257
6258 2016-07-29 Georg-Johann Lay <avr@gjlay.de>
6259
6260 * config/avr/avr.c (avr_out_compare): Use const0_rtx instead of 0
6261 when testing for compares against constants of the form 0xabab.
6262
6263 2016-07-29 Bin Cheng <bin.cheng@arm.com>
6264
6265 PR tree-optimization/57558
6266 * tree-vect-loop-manip.c (vect_create_cond_for_niters_checks): New
6267 function.
6268 (vect_loop_versioning): Support versioning with niter assumptions.
6269 * tree-vect-loop.c (tree-ssa-loop.h): Include header file.
6270 (vect_get_loop_niters): New parameter. Reimplement to support
6271 assumptions in loop niter info.
6272 (vect_analyze_loop_form_1, vect_analyze_loop_form): Ditto.
6273 (new_loop_vec_info): Init LOOP_VINFO_NITERS_ASSUMPTIONS.
6274 (vect_estimate_min_profitable_iters): Use LOOP_REQUIRES_VERSIONING.
6275 Support loop versioning for niters.
6276 * tree-vectorizer.c (tree-ssa-loop-niter.h): Include header file.
6277 (vect_free_loop_info_assumptions): New function.
6278 (vectorize_loops): Free loop niter info for loops with flag
6279 LOOP_F_ASSUMPTIONS set if vectorization failed.
6280 * tree-vectorizer.h (struct _loop_vec_info): New field
6281 num_iters_assumptions.
6282 (LOOP_VINFO_NITERS_ASSUMPTIONS): New macro.
6283 (LOOP_REQUIRES_VERSIONING_FOR_NITERS): New macro.
6284 (LOOP_REQUIRES_VERSIONING): New macro.
6285 (vect_free_loop_info_assumptions): New decl.
6286
6287 2016-07-29 Bin Cheng <bin.cheng@arm.com>
6288
6289 * cfgloop.h (struct loop): New field constraints.
6290 (LOOP_C_INFINITE, LOOP_C_FINITE): New macros.
6291 (loop_constraint_set, loop_constraint_clr, loop_constraint_set_p): New
6292 functions.
6293 * cfgloop.c (alloc_loop): Initialize new field.
6294 * cfgloopmanip.c (copy_loop_info): Copy constraints.
6295 * tree-ssa-loop-niter.c (number_of_iterations_exit_assumptions):
6296 Adjust niter analysis wrto loop constraints.
6297 * doc/loop.texi (@node Number of iterations): Add description for loop
6298 constraints.
6299
6300 2016-07-29 Marek Polacek <polacek@redhat.com>
6301
6302 PR c/7652
6303 * config/i386/i386.c (ix86_expand_args_builtin): Add break.
6304 (ix86_expand_round_builtin): Likewise.
6305
6306 2016-07-29 Segher Boessenkool <segher@kernel.crashing.org>
6307 Georg-Johann Lay <avr@gjlay.de>
6308
6309 PR rtl-optimization/71976
6310 * combine.c (get_last_value): Return 0 if the argument for which
6311 the function is called has a wider mode than the recorded value.
6312
6313 2016-07-29 Marek Polacek <polacek@redhat.com>
6314
6315 PR c/7652
6316 * config/rs6000/rs6000.c (altivec_expand_ld_builtin): Add break.
6317 (altivec_expand_st_builtin): Likewise.
6318
6319 2016-07-29 Georg-Johann Lay <avr@gjlay.de>
6320
6321 * config/avr/avr.md (addqi3) [cc]: Revert glitch in insn attribute
6322 introduced in r238381.
6323
6324 2016-07-29 Kugan Vivekanandarajah <kuganv@linaro.org>
6325
6326 PR middle-end/68217
6327 * tree-vrp.c (extract_range_from_binary_expr_1): In case of signed
6328 & sign-bit-CST, generate [-INF, 0] instead of [-INF, INF].
6329
6330 2016-07-28 Michael Meissner <meissner@linux.vnet.ibm.com>
6331
6332 * config/rs6000/rs6000-protos.h (rs6000_split_vec_extract_var):
6333 New declaration.
6334 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
6335 Add support for vec_extract of vector double or vector long having
6336 a variable element number on 64-bit ISA 2.07 systems or newer.
6337 * config/rs6000/rs6000.c (rs6000_expand_vector_extract):
6338 Likewise.
6339 (rs6000_split_vec_extract_var): New function to split a
6340 vec_extract built-in function with variable element number.
6341 (rtx_is_swappable_p): Variable vec_extracts and shifts are not
6342 swappable.
6343 * config/rs6000/vsx.md (UNSPEC_VSX_VSLO): New unspec.
6344 (UNSPEC_VSX_EXTRACT): Likewise.
6345 (vsx_extract_<mode>, VSX_D iterator): Fix constraints to allow
6346 direct move instructions to be generated on 64-bit ISA 2.07
6347 systems and newer, and to take advantage of the ISA 3.0 MFVSRLD
6348 instruction.
6349 (vsx_vslo_<mode>): New insn to do VSLO on V2DFmode and V2DImode
6350 arguments for vec_extract variable element.
6351 (vsx_extract_<mode>_var, VSX_D iterator): New insn to support
6352 vec_extract with variable element on V2DFmode and V2DImode
6353 vectors.
6354 * config/rs6000/rs6000.h (TARGET_VEXTRACTUB): Remove
6355 -mupper-regs-df requirement, since it isn't needed.
6356 (TARGET_DIRECT_MOVE_64BIT): New macro to say whether we can
6357 do direct moves on 64-bit systems, which allows optimization of
6358 vec_extract on 64-bit ISA 2.07 systems and newer.
6359
6360 2016-07-28 Kristina Martsenko <kristina.martsenko@arm.com>
6361 2016-07-28 Wilco Dijkstra <wdijkstr@arm.com>
6362
6363 * config/aarch64/aarch64.md
6364 (zero_extend<SHORT:mode><GPI:mode>2_aarch64): Change output
6365 statement and type.
6366 (<optab>qihi2_aarch64): Likewise, and split into two.
6367 (extendqihi2_aarch64): New.
6368 (zero_extendqihi2_aarch64): New.
6369 * config/aarch64/iterators.md (ldrxt): Remove.
6370 * config/aarch64/aarch64.c (aarch64_rtx_costs): Change cost of
6371 uxtb/uxth.
6372
6373 2016-07-28 Kristina Martsenko <kristina.martsenko@arm.com>
6374
6375 * config/aarch64/aarch64.c (aarch64_rtx_costs): Fix cost of zero extend.
6376
6377 2016-07-28 Wilco Dijkstra <wdijkstr@arm.com>
6378
6379 * config/aarch64/aarch64.c (aarch64_pushwb_pair_reg): Rename.
6380 (aarch64_push_reg): New function to push 1 or 2 registers.
6381 (aarch64_pop_reg): New function to pop 1 or 2 registers.
6382 (aarch64_expand_prologue): Use aarch64_push_regs.
6383 (aarch64_expand_epilogue): Use aarch64_pop_regs.
6384
6385 2016-07-28 Yuri Rumyantsev <ysrumyan@gmail.com>
6386
6387 PR tree-optimization/71734
6388 * tree-ssa-loop-im.c (ref_indep_loop_p_1): Pass value of safelen
6389 attribute instead of REF_LOOP and use it.
6390 (ref_indep_loop_p_2): Use SAFELEN argument instead of REF_LOOP and
6391 set it for Loops having non-zero safelen attribute.
6392 (ref_indep_loop_p): Pass zero as initial value for safelen.
6393
6394 2016-07-28 Ilya Enkovich <ilya.enkovich@intel.com>
6395
6396 PR middle-end/72657
6397 PR target/72683
6398 * tree-chkp.c (chkp_retbnd_call_by_val): Check for instrumentation
6399 call using chkp_gimple_call_builtin_p.
6400 (chkp_copy_bounds_for_assign): Likewise.
6401
6402 2016-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
6403
6404 * config/alpha/alpha.c (alpha_adjust_cost): Adjust.
6405 * config/arm/arm-protos.h (struct tune_params): Likewise.
6406 * config/arm/arm.c (xscale_sched_adjust_cost): Likewise.
6407 (cortex_a9_sched_adjust_cost): Likewise.
6408 (fa726te_sched_adjust_cost): Likewise.
6409 (arm_adjust_cost): Likewise.
6410 * config/bfin/bfin.c (bfin_adjust_cost): Likewise.
6411 * config/c6x/c6x.c (c6x_adjust_cost): Likewise.
6412 * config/epiphany/epiphany.c (epiphany_adjust_cost): Likewise.
6413 * config/i386/i386.c (ix86_adjust_cost): Likewise.
6414 * config/ia64/ia64.c: Likewise.
6415 * config/m68k/m68k.c: Likewise.
6416 * config/mep/mep.c (mep_adjust_cost): Likewise.
6417 * config/microblaze/microblaze.c (microblaze_adjust_cost):
6418 * Likewise.
6419 * config/mips/mips.c (mips_adjust_cost): Likewise.
6420 * config/mn10300/mn10300.c (mn10300_adjust_sched_cost):
6421 * Likewise.
6422 * config/pa/pa.c (pa_adjust_cost): Likewise.
6423 * config/rs6000/rs6000.c (rs6000_adjust_cost): Likewise.
6424 (rs6000_debug_adjust_cost): Likewise.
6425 * config/sh/sh.c (sh_adjust_cost): Likewise.
6426 * config/sparc/sparc.c (supersparc_adjust_cost): Likewise.
6427 (hypersparc_adjust_cost): Likewise.
6428 (sparc_adjust_cost): Likewise.
6429 * config/spu/spu.c (spu_sched_adjust_cost): Likewise.
6430 * config/tilegx/tilegx.c (tilegx_sched_adjust_cost): Likewise.
6431 * config/tilepro/tilepro.c (tilepro_sched_adjust_cost):
6432 * Likewise.
6433 * config/visium/visium.c (visium_adjust_cost): Likewise.
6434 * doc/tm.texi: Regenerate.
6435 * haifa-sched.c (dep_cost_1): Adjust.
6436 * target.def: Merge adjust_cost and adjust_cost_2.
6437
6438 2016-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
6439
6440 * haifa-sched.c (add_to_speculative_block): Make twins a vector.
6441
6442 2016-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
6443
6444 * store-motion.c (struct st_expr): Make pattern_regs a vector.
6445 (extract_mentioned_regs): Append to a vector instead of
6446 returning a rtx_expr_list.
6447 (st_expr_entry): Adjust.
6448 (free_st_expr_entry): Likewise.
6449 (store_ops_ok): Likewise.
6450 (store_killed_in_insn): Likewise.
6451 (find_moveable_store): Likewise.
6452
6453 2016-07-28 Martin Liska <mliska@suse.cz>
6454
6455 PR gcov-profile/68025
6456 * tree-profile.c (tree_profiling): Respect
6457 no_profile_instrument_function attribute.
6458 * doc/extend.texi: Document no_profile_instrument_function
6459 attribute.
6460
6461 2016-07-28 Martin Liska <mliska@suse.cz>
6462
6463 PR rtl-optimization/70944
6464 * combine.c (make_compound_operation):
6465 Do not allow make_compound_operation for vector mode
6466
6467 2016-07-28 Kugan Vivekanandarajah <kuganv@linaro.org>
6468
6469 PR middle-end/71994
6470 * tree-ssa-reassoc.c (maybe_optimize_range_tests): Check tcc_comparison
6471 before calling get_ops.
6472
6473 2016-07-27 Bernd Edlinger <bernd.edlinger@hotmail.de>
6474
6475 * defaults.h (LOG2_BITS_PER_UNIT): Move from here...
6476 * tree.h (LOG2_BITS_PER_UNIT): ...to here.
6477 (BITS_PER_UNIT_LOG): Remove.
6478 (int_bit_position): Use LOG2_BITS_PER_UNIT instead of BITS_PER_UNIT_LOG.
6479 * expr.c (expand_assignment): Likewise.
6480 * stor-layout.c (initialize_sizetypes): Likewise.
6481
6482 2016-07-27 Michael Meissner <meissner@linux.vnet.ibm.com>
6483
6484 * config/rs6000/vector.md (vec_extract<mode>): Change the calling
6485 signature of rs6000_expand_vector_extract so that the element
6486 number is a RTX instead of a constant integer.
6487 * config/rs6000/rs6000-protos.h (rs6000_expand_vector_extract):
6488 Likewise.
6489 * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Likewise.
6490 (altivec_expand_vec_ext_builtin): Likewise.
6491 * config/rs6000/altivec.md (reduc_plus_scal_<mode>): Likewise.
6492 * config/rs6000/vsx.md (vsx_extract_<mode>): Fix spelling of the
6493 MFVSRLD instruction.
6494
6495 2016-07-27 David Malcolm <dmalcolm@redhat.com>
6496
6497 * input.c (get_pure_location): Move here from tree.c.
6498 (make_location): Likewise. Add header comment.
6499 (selftest::test_accessing_ordinary_linemaps): Verify
6500 pure_location_p, make_location, get_location_from_adhoc_loc and
6501 get_range_from_loc.
6502 * input.h (get_pure_location): Move declaration here from tree.h.
6503 (get_finish): Likewise for inline function.
6504 (make_location): Likewise for declaration.
6505 * tree.c (get_pure_location): Move to input.c.
6506 (make_location): Likewise.
6507 * tree.h (get_pure_location): Move declaration to tree.h.
6508 (get_finish): Likewise for inline function.
6509 (make_location): Likewise for declaration.
6510
6511 2016-07-27 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
6512
6513 PR middle-end/71078
6514 * match.pd (x / abs(x) -> copysign(1.0, x)): New pattern.
6515
6516 2016-07-27 David Malcolm <dmalcolm@redhat.com>
6517
6518 * system.h (STATIC_ASSERT): Use static_assert if building
6519 with C++11 onwards.
6520
6521 2016-07-27 Richard Biener <rguenther@suse.de>
6522
6523 PR tree-optimization/72517
6524 * tree-vect-data-refs.c (vect_analyze_data_ref_dependences):
6525 Revert change to not compute read-read dependences.
6526
6527 2016-07-27 Richard Biener <rguenther@suse.de>
6528
6529 * predict.c (set_even_probabilities): Make nedges unsigned.
6530
6531 2016-07-27 Martin Liska <mliska@suse.cz>
6532
6533 * predict.c (set_even_probabilities): Handle unlikely edges.
6534 (combine_predictions_for_bb): Likewise.
6535
6536 2016-07-26 Michael Meissner <meissner@linux.vnet.ibm.com>
6537
6538 PR target/71869
6539 * config/rs6000/rs6000.c (rs6000_generate_compare): Rework
6540 __float128 support when we don't have hardware support, so that
6541 the IEEE built-in functions like isgreater, first call __unordkf3
6542 to make sure neither operand is a NaN, and if both operands are
6543 ordered, do the normal comparison.
6544
6545 2016-07-26 Patrick Palka <ppalka@gcc.gnu.org>
6546
6547 * tree-vrp.c (dump_asserts_for): Print loc->expr instead of
6548 name.
6549 (extract_code_and_val_from_cond_with_ops): Verify that name is
6550 either cond_op0 or cond_op1.
6551
6552 2016-07-26 Patrick Palka <ppalka@gcc.gnu.org>
6553
6554 PR tree-optimization/18046
6555 * genmodes.c (emit_mode_size_inline): Emit an assert that
6556 verifies that mode is a valid array index.
6557 (emit_mode_nuinits_inline): Likewise.
6558 (emit_mode_inner_inline): Likewise.
6559 (emit_mode_unit_size_inline): Likewise.
6560 (emit_mode_unit_precision_inline): Likewise.
6561 * tree-vrp.c: Include params.h.
6562 (find_switch_asserts): Register edge assertions for the default
6563 label which correspond to the anti-ranges of each case label.
6564 * params.def (PARAM_MAX_VRP_SWITCH_ASSERTIONS): New.
6565 * doc/invoke.texi: Document it.
6566
6567 2016-07-26 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
6568
6569 * gimple-ssa-strength-reduction.c (slsr_process_phi): Remove dead
6570 and unnecessary call to gimple_bb.
6571
6572 2016-07-26 Richard Biener <rguenther@suse.de>
6573
6574 PR rtl-optimization/71984
6575 * simplify-rtx.c (simplify_subreg): Use GET_MODE_SIZE and prepare
6576 for VOIDmode.
6577
6578 2016-07-26 Richard Biener <rguenther@suse.de>
6579
6580 PR middle-end/72517
6581 * expmed.c (extract_bit_field_1): Constrain the vector mode
6582 with element size matching the extraction mode size when
6583 choosing a better vector mode to do the extraction from.
6584
6585 2016-07-26 Richard Biener <rguenther@suse.de>
6586 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
6587
6588 PR middle-end/70920
6589 * match.pd ((intptr)x eq/ne CST to x eq/ne (typeof x) CST): New
6590 pattern.
6591
6592 2016-07-26 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
6593
6594 * tree-ssa-structalias.c (struct scc_info): Change types of
6595 members to auto_sbitmap and auto_vec.
6596 (scc_info::scc_info): New constructor.
6597 (scc_info::~scc_info): New destructor.
6598 (init_scc_info): Remove.
6599 (free_scc_info): Remove.
6600 (find_indirect_cycles): Adjust.
6601 (perform_var_substitution): Likewise.
6602 (free_var_substitution_info): Likewise.
6603
6604 2016-07-26 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
6605
6606 * tree-outof-ssa.c (struct elim_graph): Change type of members
6607 to auto_vec and auto_sbitmap.
6608 (elim_graph::elim_graph): New constructor.
6609 (delete_elim_graph): Remove.
6610 (expand_phi_nodes): Adjust.
6611
6612 2016-07-26 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
6613
6614 * tree-outof-ssa.c (struct elim_graph): Remove typedef.
6615 (new_elim_graph): Adjust.
6616 (clear_elim_graph): Likewise.
6617 (delete_elim_graph): Likewise.
6618 (elim_graph_size): Likewise.
6619 (elim_graph_add_node): Likewise.
6620 (elim_graph_add_edge): Likewise.
6621 (elim_graph_remove_succ_edge): Likewise.
6622 (eliminate_name): Likewise.
6623 (eliminate_build): Likewise.
6624 (elim_forward): Likewise.
6625 (elim_unvisited_predecessor): Likewise.
6626 (elim_backward): Likewise.
6627 (elim_create): Likewise.
6628 (eliminate_phi): Likewise.
6629 (expand_phi_nodes): Likewise.
6630
6631 2016-07-26 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
6632
6633 * bt-load.c (compute_out): Use auto_sbitmap class.
6634 (link_btr_uses): Likewise.
6635 * cfganal.c (mark_dfs_back_edges): Likewise.
6636 (post_order_compute): Likewise.
6637 (inverted_post_order_compute): Likewise.
6638 (pre_and_rev_post_order_compute_fn): Likewise.
6639 (single_pred_before_succ_order): Likewise.
6640 * cfgexpand.c (pass_expand::execute): Likewise.
6641 * cfgloop.c (verify_loop_structure): Likewise.
6642 * cfgloopmanip.c (fix_bb_placements): Likewise.
6643 (remove_path): Likewise.
6644 (update_dominators_in_loop): Likewise.
6645 * cfgrtl.c (break_superblocks): Likewise.
6646 * ddg.c (check_sccs): Likewise.
6647 (create_ddg_all_sccs): Likewise.
6648 * df-core.c (df_worklist_dataflow): Likewise.
6649 * dse.c (dse_step3): Likewise.
6650 * except.c (eh_region_outermost): Likewise.
6651 * function.c (thread_prologue_and_epilogue_insns): Likewise.
6652 * gcse.c (prune_expressions): Likewise.
6653 (prune_insertions_deletions): Likewise.
6654 * gimple-ssa-backprop.c (backprop::~backprop): Likewise.
6655 * graph.c (draw_cfg_nodes_no_loops): Likewise.
6656 * ira-lives.c (remove_some_program_points_and_update_live_ranges): Likewise.
6657 * lcm.c (compute_earliest): Likewise.
6658 (compute_farthest): Likewise.
6659 * loop-unroll.c (unroll_loop_constant_iterations): Likewise.
6660 (unroll_loop_runtime_iterations): Likewise.
6661 (unroll_loop_stupid): Likewise.
6662 * lower-subreg.c (decompose_multiword_subregs): Likewise.
6663 * lra-lives.c: Likewise.
6664 * lra.c (lra): Likewise.
6665 * modulo-sched.c (schedule_reg_moves): Likewise.
6666 (optimize_sc): Likewise.
6667 (get_sched_window): Likewise.
6668 (sms_schedule_by_order): Likewise.
6669 (check_nodes_order): Likewise.
6670 (order_nodes_of_sccs): Likewise.
6671 (order_nodes_in_scc): Likewise.
6672 * recog.c (split_all_insns): Likewise.
6673 * regcprop.c (pass_cprop_hardreg::execute): Likewise.
6674 * reload1.c (reload): Likewise.
6675 * sched-rgn.c (haifa_find_rgns): Likewise.
6676 (split_edges): Likewise.
6677 (compute_trg_info): Likewise.
6678 * sel-sched.c (init_seqno): Likewise.
6679 * store-motion.c (remove_reachable_equiv_notes): Likewise.
6680 * tree-into-ssa.c (update_ssa): Likewise.
6681 * tree-ssa-live.c (live_worklist): Likewise.
6682 * tree-ssa-loop-im.c (fill_always_executed_in): Likewise.
6683 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely):
6684 * Likewise.
6685 (try_peel_loop): Likewise.
6686 * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop):
6687 * Likewise.
6688 * tree-ssa-pre.c (compute_antic): Likewise.
6689 * tree-ssa-reassoc.c (undistribute_ops_list): Likewise.
6690 * tree-stdarg.c (reachable_at_most_once): Likewise.
6691 * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Likewise.
6692 * var-tracking.c (vt_find_locations): Likewise.
6693
6694 2016-07-26 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
6695
6696 * sbitmap.h (auto_sbitmap): New class.
6697
6698 2016-07-26 Alan Modra <amodra@gmail.com>
6699
6700 PR target/72103
6701 * config/rs6000/rs6000.c (rs6000_secondary_reload): Initialize
6702 sri->t_icode.
6703
6704 2016-07-25 David Malcolm <dmalcolm@redhat.com>
6705
6706 * input.c (selftest::temp_source_file::temp_source_file): Fix
6707 missing "%s" in fprintf.
6708
6709 2016-07-25 John David Anglin <danglin@gcc.gnu.org>
6710
6711 PR middle-end/71732
6712 * cselib.c (cselib_process_insn): Invalidate argument slots for
6713 const/pure calls.
6714
6715 2016-07-25 Jiong Wang <jiong.wang@arm.com>
6716
6717 * config/aarch64/arm_neon.h (vfmah_lane_f16, vfmah_laneq_f16,
6718 vfmsh_lane_f16, vfmsh_laneq_f16, vmulh_lane_f16, vmulh_laneq_f16,
6719 vmulxh_lane_f16, vmulxh_laneq_f16): New.
6720
6721 2016-07-25 Jiong Wang <jiong.wang@arm.com>
6722
6723 * config/aarch64/aarch64-simd-builtins.def: Register new builtins.
6724 * config/aarch64/aarch64.md (fma, fnma): Support HF.
6725 * config/aarch64/arm_fp16.h (vfmah_f16, vfmsh_f16): New.
6726
6727 2016-07-25 Jiong Wang <jiong.wang@arm.com>
6728
6729 * config/aarch64/aarch64-simd-builtins.def: Register new builtins.
6730 * config/aarch64/aarch64.md (<FCVT_F2FIXED:fcvt_fixed_insn>hf<mode>3):
6731 New.
6732 (<FCVT_FIXED2F:fcvt_fixed_insn><mode>hf3): Likewise.
6733 (add<mode>3): Likewise.
6734 (sub<mode>3): Likewise.
6735 (mul<mode>3): Likewise.
6736 (div<mode>3): Likewise.
6737 (*div<mode>3): Likewise.
6738 (<fmaxmin><mode>3): Extend to HF.
6739 * config/aarch64/aarch64-simd.md (aarch64_rsqrts<mode>): Likewise.
6740 (fabd<mode>3): Likewise.
6741 (<FCVT_F2FIXED:fcvt_fixed_insn><VHSDF_HSDF:mode>3): Likewise.
6742 (<FCVT_FIXED2F:fcvt_fixed_insn><VHSDI_HSDI:mode>3): Likewise.
6743 (aarch64_fmulx<mode>): Likewise.
6744 (aarch64_fac<optab><mode>): Likewise.
6745 (aarch64_frecps<mode>): Likewise.
6746 (<FCVT_F2FIXED:fcvt_fixed_insn>hfhi3): New.
6747 (<FCVT_FIXED2F:fcvt_fixed_insn>hihf3): Likewise.
6748 * config/aarch64/iterators.md (VHSDF_SDF): Delete.
6749 (VSDQ_HSDI): Support HI.
6750 (fcvt_target, FCVT_TARGET): Likewise.
6751 * config/aarch64/arm_fp16.h (vaddh_f16, vsubh_f16, vabdh_f16,
6752 vcageh_f16, vcagth_f16, vcaleh_f16, vcalth_f16, vceqh_f16, vcgeh_f16,
6753 vcgth_f16, vcleh_f16, vclth_f16, vcvth_n_f16_s16, vcvth_n_f16_s32,
6754 vcvth_n_f16_s64, vcvth_n_f16_u16, vcvth_n_f16_u32, vcvth_n_f16_u64,
6755 vcvth_n_s16_f16, vcvth_n_s32_f16, vcvth_n_s64_f16, vcvth_n_u16_f16,
6756 vcvth_n_u32_f16, vcvth_n_u64_f16, vdivh_f16, vmaxh_f16, vmaxnmh_f16,
6757 vminh_f16, vminnmh_f16, vmulh_f16, vmulxh_f16, vrecpsh_f16,
6758 vrsqrtsh_f16): New.
6759
6760 2016-07-25 Jiong Wang <jiong.wang@arm.com>
6761
6762 * config.gcc (aarch64*-*-*): Install arm_fp16.h.
6763 * config/aarch64/aarch64-builtins.c (hi_UP): New.
6764 * config/aarch64/aarch64-simd-builtins.def: Register new builtins.
6765 * config/aarch64/aarch64-simd.md (aarch64_frsqrte<mode>): Extend to HF
6766 mode.
6767 (aarch64_frecp<FRECP:frecp_suffix><mode>): Likewise.
6768 (aarch64_cm<optab><mode>): Likewise.
6769 * config/aarch64/aarch64.md (<frint_pattern><mode>2): Likewise.
6770 (l<fcvt_pattern><su_optab><GPF:mode><GPI:mode>2): Likewise.
6771 (fix_trunc<GPF:mode><GPI:mode>2): Likewise.
6772 (sqrt<mode>2): Likewise.
6773 (*sqrt<mode>2): Likewise.
6774 (abs<mode>2): Likewise.
6775 (<optab><mode>hf2): New pattern for HF mode.
6776 (<optab>hihf2): Likewise.
6777 * config/aarch64/arm_neon.h: Include arm_fp16.h.
6778 * config/aarch64/iterators.md (GPF_F16, GPI_F16, VHSDF_HSDF): New.
6779 (w1, w2, v, s, q, Vmtype, V_cmp_result, fcvt_iesize, FCVT_IESIZE):
6780 Support HF mode.
6781 * config/aarch64/arm_fp16.h: New file.
6782 (vabsh_f16, vceqzh_f16, vcgezh_f16, vcgtzh_f16, vclezh_f16, vcltzh_f16,
6783 vcvth_f16_s16, vcvth_f16_s32, vcvth_f16_s64, vcvth_f16_u16,
6784 vcvth_f16_u32, vcvth_f16_u64, vcvth_s16_f16, vcvth_s32_f16,
6785 vcvth_s64_f16, vcvth_u16_f16, vcvth_u32_f16, vcvth_u64_f16,
6786 vcvtah_s16_f16, vcvtah_s32_f16, vcvtah_s64_f16, vcvtah_u16_f16,
6787 vcvtah_u32_f16, vcvtah_u64_f16, vcvtmh_s16_f16, vcvtmh_s32_f16,
6788 vcvtmh_s64_f16, vcvtmh_u16_f16, vcvtmh_u32_f16, vcvtmh_u64_f16,
6789 vcvtnh_s16_f16, vcvtnh_s32_f16, vcvtnh_s64_f16, vcvtnh_u16_f16,
6790 vcvtnh_u32_f16, vcvtnh_u64_f16, vcvtph_s16_f16, vcvtph_s32_f16,
6791 vcvtph_s64_f16, vcvtph_u16_f16, vcvtph_u32_f16, vcvtph_u64_f16,
6792 vnegh_f16, vrecpeh_f16, vrecpxh_f16, vrndh_f16, vrndah_f16, vrndih_f16,
6793 vrndmh_f16, vrndnh_f16, vrndph_f16, vrndxh_f16, vrsqrteh_f16,
6794 vsqrth_f16): New.
6795
6796 2016-07-25 Jiong Wang <jiong.wang@arm.com>
6797
6798 * config/aarch64/aarch64-simd-builtins.def (reduc_smax_scal_,
6799 reduc_smin_scal_): Use VDQIF_F16.
6800 (reduc_smax_nan_scal_, reduc_smin_nan_scal_): Use VHSDF.
6801 * config/aarch64/aarch64-simd.md (reduc_<maxmin_uns>_scal_<mode>):
6802 Use VHSDF.
6803 (aarch64_reduc_<maxmin_uns>_internal<mode>): Likewise.
6804 * config/aarch64/iterators.md (VDQIF_F16): New.
6805 (vp): Support HF modes.
6806 * config/aarch64/arm_neon.h (vmaxv_f16, vmaxvq_f16, vminv_f16,
6807 vminvq_f16, vmaxnmv_f16, vmaxnmvq_f16, vminnmv_f16, vminnmvq_f16): New.
6808
6809 2016-07-25 Jiong Wang <jiong.wang@arm.com>
6810
6811 * config/aarch64/aarch64-simd.md (*aarch64_mulx_elt_to_64v2df): Rename to
6812 "*aarch64_mulx_elt_from_dup<mode>".
6813 (*aarch64_mul3_elt<mode>): Update schedule type.
6814 (*aarch64_mul3_elt_from_dup<mode>): Likewise.
6815 (*aarch64_fma4_elt_from_dup<mode>): Likewise.
6816 (*aarch64_fnma4_elt_from_dup<mode>): Likewise.
6817 * config/aarch64/iterators.md (VMUL): Supprt half precision float modes.
6818 (f, fp): Support HF modes.
6819 * config/aarch64/arm_neon.h (vfma_lane_f16, vfmaq_lane_f16,
6820 vfma_laneq_f16, vfmaq_laneq_f16, vfma_n_f16, vfmaq_n_f16, vfms_lane_f16,
6821 vfmsq_lane_f16, vfms_laneq_f16, vfmsq_laneq_f16, vfms_n_f16,
6822 vfmsq_n_f16, vmul_lane_f16, vmulq_lane_f16, vmul_laneq_f16,
6823 vmulq_laneq_f16, vmul_n_f16, vmulq_n_f16, vmulx_lane_f16,
6824 vmulxq_lane_f16, vmulx_laneq_f16, vmulxq_laneq_f16): New.
6825
6826 2016-07-25 Jiong Wang <jiong.wang@arm.com>
6827
6828 * config/aarch64/aarch64-simd-builtins.def: Register new builtins.
6829 * config/aarch64/aarch64-simd.md (fma<mode>4, fnma<mode>4): Extend to HF
6830 modes.
6831 * config/aarch64/arm_neon.h (vfma_f16, vfmaq_f16, vfms_f16,
6832 vfmsq_f16): New.
6833
6834 2016-07-25 Jiong Wang <jiong.wang@arm.com>
6835
6836 * config/aarch64/aarch64-simd-builtins.def: Register new builtins.
6837 * config/aarch64/aarch64-simd.md
6838 (aarch64_rsqrts<mode>): Extend to HF modes.
6839 (fabd<mode>3): Likewise.
6840 (<FCVT_F2FIXED:fcvt_fixed_insn><VHSDF_SDF:mode>3): Likewise.
6841 (<FCVT_FIXED2F:fcvt_fixed_insn><VHSDI_SDI:mode>3): Likewise.
6842 (aarch64_<maxmin_uns>p<mode>): Likewise.
6843 (<su><maxmin><mode>3): Likewise.
6844 (<maxmin_uns><mode>3): Likewise.
6845 (<fmaxmin><mode>3): Likewise.
6846 (aarch64_faddp<mode>): Likewise.
6847 (aarch64_fmulx<mode>): Likewise.
6848 (aarch64_frecps<mode>): Likewise.
6849 (*aarch64_fac<optab><mode>): Rename to aarch64_fac<optab><mode>.
6850 (add<mode>3): Extend to HF modes.
6851 (sub<mode>3): Likewise.
6852 (mul<mode>3): Likewise.
6853 (div<mode>3): Likewise.
6854 (*div<mode>3): Likewise.
6855 * config/aarch64/aarch64.c (aarch64_emit_approx_div): Return false for
6856 HF, V4HF and V8HF.
6857 * config/aarch64/iterators.md (VDQ_HSDI, VSDQ_HSDI): New mode iterator.
6858 * config/aarch64/arm_neon.h (vadd_f16, vaddq_f16, vabd_f16, vabdq_f16,
6859 vcage_f16, vcageq_f16, vcagt_f16, vcagtq_f16, vcale_f16, vcaleq_f16,
6860 vcalt_f16, vcaltq_f16, vceq_f16, vceqq_f16, vcge_f16, vcgeq_f16,
6861 vcgt_f16, vcgtq_f16, vcle_f16, vcleq_f16, vclt_f16, vcltq_f16,
6862 vcvt_n_f16_s16, vcvtq_n_f16_s16, vcvt_n_f16_u16, vcvtq_n_f16_u16,
6863 vcvt_n_s16_f16, vcvtq_n_s16_f16, vcvt_n_u16_f16, vcvtq_n_u16_f16,
6864 vdiv_f16, vdivq_f16, vdup_lane_f16, vdup_laneq_f16, vdupq_lane_f16,
6865 vdupq_laneq_f16, vdups_lane_f16, vdups_laneq_f16, vmax_f16, vmaxq_f16,
6866 vmaxnm_f16, vmaxnmq_f16, vmin_f16, vminq_f16, vminnm_f16, vminnmq_f16,
6867 vmul_f16, vmulq_f16, vmulx_f16, vmulxq_f16, vpadd_f16, vpaddq_f16,
6868 vpmax_f16, vpmaxq_f16, vpmaxnm_f16, vpmaxnmq_f16, vpmin_f16, vpminq_f16,
6869 vpminnm_f16, vpminnmq_f16, vrecps_f16, vrecpsq_f16, vrsqrts_f16,
6870 vrsqrtsq_f16, vsub_f16, vsubq_f16): New.
6871
6872 2016-07-25 Jiong Wang <jiong.wang@arm.com>
6873
6874 * config/aarch64/aarch64-builtins.c (TYPES_BINOP_USS): New.
6875 * config/aarch64/aarch64-simd-builtins.def: Register new builtins.
6876 * config/aarch64/aarch64-simd.md (aarch64_rsqrte<mode>): Extend to HF modes.
6877 (neg<mode>2): Likewise.
6878 (abs<mode>2): Likewise.
6879 (<frint_pattern><mode>2): Likewise.
6880 (l<fcvt_pattern><su_optab><VDQF:mode><fcvt_target>2): Likewise.
6881 (<optab><VDQF:mode><fcvt_target>2): Likewise.
6882 (<fix_trunc_optab><VDQF:mode><fcvt_target>2): Likewise.
6883 (ftrunc<VDQF:mode>2): Likewise.
6884 (<optab><fcvt_target><VDQF:mode>2): Likewise.
6885 (sqrt<mode>2): Likewise.
6886 (*sqrt<mode>2): Likewise.
6887 (aarch64_frecpe<mode>): Likewise.
6888 (aarch64_cm<optab><mode>): Likewise.
6889 * config/aarch64/aarch64.c (aarch64_emit_approx_sqrt): Return false for
6890 HF, V4HF and V8HF.
6891 * config/aarch64/iterators.md (VHSDF, VHSDF_DF, VHSDF_SDF): New.
6892 (VDQF_COND, fcvt_target, FCVT_TARGET, hcon): Extend mode attribute to HF modes.
6893 (stype): New.
6894 * config/aarch64/arm_neon.h (vdup_n_f16): New.
6895 (vdupq_n_f16): Likewise.
6896 (vld1_dup_f16): Use vdup_n_f16.
6897 (vld1q_dup_f16): Use vdupq_n_f16.
6898 (vabs_f16, vabsq_f16, vceqz_f16, vceqzq_f16, vcgez_f16, vcgezq_f16,
6899 vcgtz_f16, vcgtzq_f16, vclez_f16, vclezq_f16, vcltz_f16, vcltzq_f16,
6900 vcvt_f16_s16, vcvtq_f16_s16, vcvt_f16_u16, vcvtq_f16_u16, vcvt_s16_f16,
6901 vcvtq_s16_f16, vcvt_u16_f16, vcvtq_u16_f16, vcvta_s16_f16,
6902 vcvtaq_s16_f16, vcvta_u16_f16, vcvtaq_u16_f16, vcvtm_s16_f16,
6903 vcvtmq_s16_f16, vcvtm_u16_f16, vcvtmq_u16_f16, vcvtn_s16_f16,
6904 vcvtnq_s16_f16, vcvtn_u16_f16, vcvtnq_u16_f16, vcvtp_s16_f16,
6905 vcvtpq_s16_f16, vcvtp_u16_f16, vcvtpq_u16_f16, vneg_f16, vnegq_f16,
6906 vrecpe_f16, vrecpeq_f16, vrnd_f16, vrndq_f16, vrnda_f16, vrndaq_f16,
6907 vrndi_f16, vrndiq_f16, vrndm_f16, vrndmq_f16, vrndn_f16, vrndnq_f16,
6908 vrndp_f16, vrndpq_f16, vrndx_f16, vrndxq_f16, vrsqrte_f16, vrsqrteq_f16,
6909 vsqrt_f16, vsqrtq_f16): New.
6910
6911 2016-07-25 Jiong Wang <jiong.wang@arm.com>
6912
6913 * config/aarch64/aarch64-simd.md
6914 (aarch64_<PERMUTE:perm_insn><PERMUTE:perm_hilo><mode>): Use VALL_F16.
6915 (aarch64_ext<mode>): Likewise.
6916 (aarch64_rev<REVERSE:rev_op><mode>): Likewise.
6917 * config/aarch64/aarch64.c (aarch64_evpc_trn, aarch64_evpc_uzp,
6918 aarch64_evpc_zip, aarch64_evpc_ext, aarch64_evpc_rev): Support V4HFmode
6919 and V8HFmode.
6920 * config/aarch64/arm_neon.h (__INTERLEAVE_LIST): Support float16x4_t,
6921 float16x8_t.
6922 (__aarch64_vdup_lane_f16, __aarch64_vdup_laneq_f16,
6923 __aarch64_vdupq_lane_f16, __aarch64_vdupq_laneq_f16, vbsl_f16,
6924 vbslq_f16, vdup_n_f16, vdupq_n_f16, vdup_lane_f16, vdup_laneq_f16,
6925 vdupq_lane_f16, vdupq_laneq_f16, vduph_lane_f16, vduph_laneq_f16,
6926 vext_f16, vextq_f16, vmov_n_f16, vmovq_n_f16, vrev64_f16, vrev64q_f16,
6927 vtrn1_f16, vtrn1q_f16, vtrn2_f16, vtrn2q_f16, vtrn_f16, vtrnq_f16,
6928 vuzp1_f16, vuzp1q_f16, vuzp2_f16, vuzp2q_f16, vzip1_f16, vzip2q_f16):
6929 New.
6930 (vmov_n_f16): Reimplement using vdup_n_f16.
6931 (vmovq_n_f16): Reimplement using vdupq_n_f16..
6932
6933 2016-07-25 Jiong Wang <jiong.wang@arm.com>
6934
6935 * config/aarch64/aarch64.c (aarch64_add_constant): New parameter
6936 "frame_related_p". Generate CFA annotation when it's necessary.
6937 (aarch64_expand_prologue): Use aarch64_add_constant.
6938 (aarch64_expand_epilogue): Likewise.
6939 (aarch64_output_mi_thunk): Pass "false" when calling
6940 aarch64_add_constant.
6941
6942 2016-07-25 Jiong Wang <jiong.wang@arm.com>
6943
6944 * config/aarch64/aarch64.c (aarch64_add_constant): Optimize instruction
6945 sequences.
6946
6947 2016-07-25 Jiong Wang <jiong.wang@arm.com>
6948
6949 * config/aarch64/aarch64.c (aarch64_add_constant): New parameter "mode".
6950 Use aarch64_internal_mov_immediate instead of aarch64_build_constant.
6951 (aarch64_output_mi_thunk): Pass Pmode when calling aarch64_add_constant.
6952 (aarch64_build_constant): Delete.
6953
6954 2016-07-25 Alexander Monakov <amonakov@ispras.ru>
6955
6956 Revert
6957 2016-07-20 Alexander Monakov <amonakov@ispras.ru>
6958
6959 * config/nvptx/nvptx.c (nvptx_option_override): Do not set
6960 flag_toplevel_reorder.
6961
6962 2016-07-25 Richard Biener <rguenther@suse.de>
6963
6964 * cgraph.c (cgraph_node::verify_node): Compare against builtin
6965 by using DECL_BUILT_IN_CLASS and DECL_FUNCTION_CODE.
6966 * tree-chkp.c (chkp_gimple_call_builtin_p): Likewise.
6967 * tree-streamer.h (streamer_handle_as_builtin_p): Remove.
6968 (streamer_get_builtin_tree): Likewise.
6969 (streamer_write_builtin): Likewise.
6970 * lto-streamer.h (LTO_builtin_decl): Remove.
6971 * lto-streamer-in.c (lto_read_tree_1): Remove assert.
6972 (lto_input_scc): Remove LTO_builtin_decl handling.
6973 (lto_input_tree_1): Liekwise.
6974 * lto-streamer-out.c (lto_output_tree_1): Remove special
6975 handling of builtins.
6976 (DFS::DFS): Likewise.
6977 * tree-streamer-in.c (streamer_get_builtin_tree): Remove.
6978 * tree-streamer-out.c (pack_ts_function_decl_value_fields): Remove
6979 assert.
6980 (streamer_write_builtin): Remove.
6981
6982 2016-07-25 Martin Liska <mliska@suse.cz>
6983
6984 * lto-cgraph.c (input_symtab): Don't call get_working_sets
6985 if flag_auto_profile is set to true.
6986
6987 2016-07-25 Martin Liska <mliska@suse.cz>
6988
6989 PR gcov-profile/71868
6990 * cfgloopanal.c (expected_loop_iterations_unbounded): When we
6991 have a function with multiple latches, count them all.
6992
6993 2016-07-25 Martin Liska <mliska@suse.cz>
6994
6995 * tree-ssa-loop-niter.c (loop_only_exit_p): Release body array.
6996
6997 2016-07-25 Martin Liska <mliska@suse.cz>
6998
6999 PR tree-optimization/71987
7000 * tree-ssa-reassoc.c (maybe_optimize_range_tests): Call get_ops
7001 just for SSA_NAMEs. Fix GNU coding style.
7002
7003 2016-07-25 Martin Liska <mliska@suse.cz>
7004
7005 PR gcov-profile/64874
7006 * gcov-io.h: Update command about file format.
7007 * gcov-iov.c (main): Adapt the numbering scheme.
7008
7009 2016-07-24 Kugan Vivekanandarajah <kuganv@linaro.org>
7010
7011 PR middle-end/66726
7012 * tree-ssa-reassoc.c (optimize_vec_cond_expr): Handle tcc_compare stmt
7013 whose result is used in PHI.
7014 (final_range_test_p): Likewise.
7015 (maybe_optimize_range_tests): Likewise.
7016
7017 2016-07-22 Michael Meissner <meissner@linux.vnet.ibm.com>
7018
7019 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
7020 Reformat two multi-line strings.
7021
7022 2016-07-22 Martin Sebor <msebor@redhat.com>
7023
7024 * doc/extend.texi (Compound Literals): Add '@' missed in last commit.
7025
7026 2016-07-22 Martin Sebor <msebor@redhat.com>
7027
7028 PR c/71560
7029 * doc/extend.texi (Compound Literals): Correct and clarify.
7030 (Cast to Union): Same.
7031
7032 2016-07-22 Kelvin Nilsen <kelvin@gcc.gnu.org>
7033
7034 * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
7035 comments to explain why certain error messages make mention of
7036 undocumented options.
7037 (rs6000_invalid_builtin): Change error messages to replace mention
7038 of undocumented options with mention of the -mcpu=power9 option
7039 that enables those undocumented options.
7040 * config/rs6000/rs6000.h (MASK_FLOAT128): New macro.
7041 (RS6000_BTM_FLOAT128): Use the new MASK_FLOAT128 macro in the
7042 definition of this macro to correct an existing error.
7043 * config/rs6000/rs6000.opt: Add the Undocumented qualifier to the
7044 mpower9-fusion, mpower9-vector, mpower9-dform, and mmodulo entries.
7045 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Modify
7046 descriptions of built-in functions so that they depend on
7047 -mcpu=power9 instead of on the corresponding undocumented flags.
7048 * doc/invoke.texi (Option Summary): Remove all mention of newly
7049 undocumented flags.
7050 (IBM RS/6000 and PowerPC Options): Likewise.
7051 * doc/md.texi (Constraints for Particuliar Machines): Remove all
7052 mention of newly undocumented flags.
7053
7054 2016-07-22 Evgeny Stupachenko <evstupac@gmail.com>
7055
7056 * ipa-cp.c (determine_versionability): Do not create constprop clones,
7057 when target_clones attribute is set.
7058
7059 2016-07-22 Bin Cheng <bin.cheng@arm.com>
7060
7061 * common.opt (funsafe-loop-optimizations): Mark ignore.
7062 * doc/invoke.texi (funsafe-loop-optimizations): Remove.
7063 * loop-iv.c (get_simple_loop_desc): Remove unsafe-loop-optimizations
7064 related code.
7065 * tree-ssa-loop-niter.c (finite_loop_p): Ditto.
7066 * config/bfin/bfin.c (bfin_can_use_doloop_p): Ditto.
7067
7068 2016-07-22 Bin Cheng <bin.cheng@arm.com>
7069
7070 * tree-ssa-loop-niter.h (number_of_iterations_exit_assumptions): New
7071 Parameter.
7072 * tree-ssa-loop-niter.c (number_of_iterations_exit_assumptions): New
7073 Parameter.
7074 (number_of_iterations_exit): Warn missed loop optimization for
7075 possible infinite loops.
7076
7077 2016-07-22 Segher Boessenkool <segher@kernel.crashing.org>
7078
7079 PR target/71216
7080 * config/rs6000/rs6000.c (rs6000_file_start): Fix condition for
7081 when to emit a ".machine" pseudo-op.
7082
7083 2016-07-22 Martin Liska <mliska@suse.cz>
7084
7085 PR gcov-profile/69028
7086 PR gcov-profile/62047
7087 * coverage.c (coverage_compute_lineno_checksum): Do not
7088 calculate checksum for fns w/o xloc.file.
7089 (coverage_compute_profile_id): Likewise.
7090
7091 2016-07-22 Georg-Johann Lay <avr@gjlay.de>
7092
7093 * config/avr/avr.c (TARGET_SECONDARY_RELOAD): Remove hook define...
7094 (avr_secondary_reload): ...and implementation.
7095 (avr_adjust_insn_length) [ADJUST_LEN_LPM]: Remove handling.
7096 * config/avr/avr.md (reload_in<mode>): Remove insns.
7097 (adjust_len) [lpm]: Remove insn attribute value.
7098 * config/avr/predicates.md (flash_operand): Remove insn predicate.
7099
7100 2016-07-21 Bernd Edlinger <bernd.edlinger@hotmail.de>
7101
7102 PR middle-end/71876
7103 * builtin-attrs.def (ATTR_RT_NOTHROW_LEAF_LIST): New return twice
7104 attribute.
7105 * builtins.def (BUILT_IN_SETJMP): Use ATTR_RT_NOTHROW_LEAF_LIST here.
7106 * calls.c (special_function_p): Remove the special handling of the
7107 "__builtin_" prefix.
7108
7109 2016-07-21 Bernd Edlinger <bernd.edlinger@hotmail.de>
7110
7111 PR middle-end/71876
7112 * calls.c (gimple_maybe_alloca_call_p): New function. Return true
7113 if STMT may be an alloca call.
7114 (gimple_alloca_call_p, alloca_call_p): Return only true for the
7115 builtin alloca call.
7116 * calls.h (gimple_maybe_alloca_call_p): New function.
7117 * tree-inline.c (inline_forbidden_p_stmt): Use
7118 gimple_maybe_alloca_call_p here.
7119
7120 2016-07-21 David Malcolm <dmalcolm@redhat.com>
7121
7122 * spellcheck-tree.c (best_macro_match::best_macro_match):
7123 Explictly specify the template arguments when invoking the base
7124 class constructor, to help older C++ compilers.
7125
7126 2016-07-21 Jakub Jelinek <jakub@redhat.com>
7127
7128 PR sanitizer/71953
7129 * asan.c (asan_dynamic_init_call): Call asan_init_shadow_ptr_types
7130 before builtin_decl_implicit.
7131
7132 2016-07-21 James Greenhalgh <james.greenhalgh@arm.com>
7133
7134 * optabs.c (emit_condiitonal_move): Short circuit for identical
7135 sources.
7136
7137 2016-07-21 James Greenhalgh <james.greenhalgh@arm.com>
7138
7139 * ifcvt.c (noce_if_info): New fields: speed_p, original_cost,
7140 max_seq_cost. Removed fields: then_cost, else_cost, branch_cost.
7141 (noce_conversion_profitable_p): New.
7142 (noce_try_store_flag_constants): Use it.
7143 (noce_try_addcc): Likewise.
7144 (noce_try_store_flag_mask): Likewise.
7145 (noce_try_cmove): Likewise.
7146 (noce_try_cmove_arith): Likewise.
7147 (bb_valid_for_noce_process_p): Add to the cost parameter rather than
7148 overwriting it.
7149 (noce_convert_multiple_sets): Move cost model to here, from...
7150 (bb_ok_for_noce_convert_multiple_sets) ...here.
7151 (noce_process_if_block): Update calls for above changes.
7152 (noce_find_if_block): Record new noce_if_info parameters.
7153
7154 2016-07-21 James Greenhalgh <james.greenhalgh@arm.com>
7155
7156 * target.def (max_noce_ifcvt_seq_cost): New.
7157 * doc/tm.texi.in (TARGET_MAX_NOCE_IFCVT_SEQ_COST): Document it.
7158 * doc/tm.texi: Regenerate.
7159 * targhooks.h (default_max_noce_ifcvt_seq_cost): New.
7160 * targhooks.c (default_max_noce_ifcvt_seq_cost): New.
7161 * params.def (PARAM_MAX_RTL_IF_CONVERSION_PREDICTABLE_COST): New.
7162 (PARAM_MAX_RTL_IF_CONVERSION_UNPREDICTABLE_COST): Likewise.
7163 * doc/invoke.texi: Document new params.
7164
7165 2016-07-21 Richard Biener <rguenther@suse.de>
7166
7167 PR tree-optimization/71947
7168 * tree-vrp.c (extract_range_from_assert): Singleton symbolic
7169 ranges have useful limit_vr information.
7170
7171 2016-07-21 Richard Biener <rguenther@suse.de>
7172
7173 * function-tests.c (build_trivial_generic_function): Set
7174 BLOCK_SUPERCONTEXT of DECL_INITIAL.
7175 * omp-low.c (create_omp_child_function): Likewise.
7176 (grid_expand_target_grid_body): Likewise.
7177 * cgraphunit.c (init_lowered_empty_function): Likewise.
7178 (cgraph_node::expand_thunk): Likewise.
7179 * tree-parloops.c (create_loop_fn): Likewise.
7180 * ipa.c (cgraph_build_static_cdtor_1): Likewise.
7181
7182 2016-07-21 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
7183
7184 * tree-ssa-strlen.c (strlen_dom_walker::before_dom_children): Fix typo
7185 in comment.
7186
7187 2016-07-21 Georg-Johann Lay <avr@gjlay.de>
7188
7189 * config/avr/avr.md (any_extract, any_shiftrt): New code iterators.
7190 (*insv.extract, *insv.shiftrt, *insv.not-bit.0, *insv.not-bit.7)
7191 (*insv.xor-extract, *insv.xor1-bit.0): New insns.
7192 (adjust_len) [insv_notbit, insv_notbit_0, insv_notbit_7]: New
7193 values for insn attribute.
7194 * config/avr/avr.c (avr_out_insert_notbit): New function.
7195 (avr_adjust_insn_length): Handle ADJUST_LEN_INSV_NOTBIT,
7196 ADJUST_LEN_INSV_NOTBIT_0/_7.
7197 * config/avr/avr-protos.h (avr_out_insert_notbit): New proto.
7198
7199 2016-07-21 Bin Cheng <bin.cheng@arm.com>
7200
7201 * tree-chrec.c (convert_affine_scev): New parameter. Pass new arg.
7202 (chrec_convert_1, chrec_convert): Ditto.
7203 * tree-chrec.h (chrec_convert, convert_affine_scev): New parameter.
7204 * tree-scalar-evolution.c (interpret_rhs_expr): Pass new arg.
7205 * tree-vrp.c (adjust_range_with_scev): Ditto.
7206 * tree-ssa-loop-niter.c (idx_infer_loop_bounds): Ditto.
7207 (scev_var_range_cant_overflow): New function.
7208 (scev_probably_wraps_p): New parameter. Call above function.
7209 * tree-ssa-loop-niter.h (scev_probably_wraps_p): New parameter.
7210
7211 2016-07-21 Bin Cheng <bin.cheng@arm.com>
7212
7213 * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Clean up
7214 by removing computation of may_be_zero.
7215
7216 2016-07-21 Jakub Jelinek <jakub@redhat.com>
7217
7218 * tree-object-size.c (unknown): Use HOST_WIDE_INT_M1U instead of -1.
7219
7220 2016-07-21 Andrew Sutton <andrew.n.sutton@gmail.com>
7221
7222 Improving concepts performance and diagnostics.
7223 * timevar.def (TV_CONSTRAINT_SAT, TV_CONSTRAINT_SUB): New time vars
7224 for constraint satisfaction and subsumption.
7225 * timevar.h (auto_timevar): New constructor that matches the push/pop
7226 pattern of usage in pt.c.
7227
7228 2016-07-20 Uros Bizjak <ubizjak@gmail.com>
7229
7230 * hwint.h (HOST_WIDE_INT_0): New define.
7231 (HOST_WIDE_INT_0U): Ditto.
7232 * double-int.c: Use HOST_WIDE_INT_0 instead of (HOST_WIDE_INT) 0.
7233 * dse.c: Use HOST_WIDE_INT_0U instead of (unsigned HOST_WIDE_INT) 0.
7234 * simplify-rtx.c: Ditto.
7235 * tree-object-size.c: Ditto.
7236
7237 2016-07-20 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
7238
7239 * config/s390/s390.c (s390_encode_section_info): Remove mode size
7240 check.
7241
7242 2016-07-20 Uros Bizjak <ubizjak@gmail.com>
7243
7244 * cse.c: Use HOST_WIDE_INT_M1 instead of ~(HOST_WIDE_INT) 0.
7245 * combine.c: Use HOST_WIDE_INT_M1U instead of
7246 ~(unsigned HOST_WIDE_INT) 0.
7247 * double-int.h: Ditto.
7248 * dse.c: Ditto.
7249 * dwarf2asm.c:Ditto.
7250 * expmed.c: Ditto.
7251 * genmodes.c: Ditto.
7252 * match.pd: Ditto.
7253 * read-rtl.c: Ditto.
7254 * tree-ssa-loop-ivopts.c: Ditto.
7255 * tree-ssa-loop-prefetch.c: Ditto.
7256 * tree-vect-generic.c: Ditto.
7257 * tree-vect-patterns.c: Ditto.
7258 * tree.c: Ditto.
7259
7260 2016-07-20 Georg-Johann Lay <avr@gjlay.de>
7261
7262 * gcc/config/avr.c (avr_legitimize_address) [AVR_TINY]: Force
7263 constant addresses outside [0,0xc0] into a register.
7264 (avr_out_movhi_r_mr_reg_no_disp_tiny): Pass insn. And handle
7265 cases where the base address register is unused after.
7266 (avr_out_movhi_r_mr_reg_disp_tiny): Same.
7267 (avr_out_movhi_mr_r_reg_disp_tiny): Same.
7268 (avr_out_store_psi_reg_disp_tiny): Same.
7269
7270 2016-07-20 Georg-Johann Lay <avr@gjlay.de>
7271
7272 Implement attribute progmem on reduced Tiny cores by adding
7273 flash offset 0x4000 to respective symbols.
7274
7275 PR target/71948
7276 * doc/extend.texi (AVR Variable Attributes) [progmem]: Add
7277 documentation how it works on reduced Tiny cores.
7278 (AVR Named Address Spaces): No support for reduced Tiny.
7279 * config/avr/avr.c (AVR_SYMBOL_FLAG_TINY_PM): New macro.
7280 (avr_address_tiny_pm_p): New static function.
7281 (avr_print_operand_address) [AVR_TINY]: Add AVR_TINY_PM_OFFSET
7282 if the address is in progmem.
7283 (avr_assemble_integer): Same.
7284 (avr_encode_section_info) [AVR_TINY]: Set AVR_SYMBOL_FLAG_TINY_PM
7285 for symbol_ref in progmem.
7286 * config/avr/avr.h (AVR_TINY_PM_OFFSET): New macro.
7287 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Use it instead of
7288 magic 0x4000 when built-in def'ing __AVR_TINY_PM_BASE_ADDRESS__.
7289
7290 2016-07-20 Patrick Palka <ppalka@gcc.gnu.org>
7291
7292 * configure.ac (thin_archive_support): New variable. AC_SUBST it.
7293 * configure: Regenerate.
7294 * Makefile.in (THIN_ARCHIVE_SUPPORT): New variable.
7295 (USE_THIN_ARCHIVES): New variable.
7296 (libbackend.a): If USE_THIN_ARCHIVES then pass T to ar to build
7297 this archive as a thin archive.
7298
7299 2016-07-20 David Malcolm <dmalcolm@redhat.com>
7300
7301 * diagnostic-show-locus.c (diagnostic_show_locus): If this is the
7302 same location as last time, don't skip if we have fix-it hints.
7303 Clarify the skipping logic by converting it from one "if" clause
7304 to repeated "if" clauses.
7305 * spellcheck-tree.c: Include "cpplib.h".
7306 (find_closest_macro_cpp_cb): Move here from c/c-decl.c.
7307 (best_macro_match::best_macro_match): New constructor.
7308 * spellcheck-tree.h (struct edit_distance_traits<cpp_hashnode *>):
7309 Move here from c/c-decl.c.
7310 (class best_macro_match): Move here from c/c-decl.c, converting
7311 from a typedef to a subclass, gaining a ctor.
7312
7313 2016-07-20 Georg-Johann Lay <avr@gjlay.de>
7314
7315 * config/avr/avr-protos.h (avr_addr_space_supported_p): New prototype.
7316 * config/avr/avr.c (TARGET_ADDR_SPACE_DIAGNOSE_USAGE): New hook
7317 define...
7318 (avr_addr_space_diagnose_usage): ...and implementation.
7319 (avr_addr_space_supported_p): New function.
7320 (avr_nonconst_pointer_addrspace, avr_pgm_check_var_decl): Only
7321 report bad address space usage if that space is supported.
7322 (avr_insert_attributes): Same. No more complain about unsupported
7323 address spaces.
7324 * config/avr/avr-c.c (tm_p.h): Include it.
7325 (avr_cpu_cpp_builtins): Only define addr-space related built-in
7326 macro if avr_addr_space_supported_p.
7327
7328 2016-07-20 Alexander Monakov <amonakov@ispras.ru>
7329
7330 * config/nvptx/nvptx.c (nvptx_option_override): Do not set
7331 flag_toplevel_reorder.
7332
7333 2016-07-20 David Malcolm <dmalcolm@redhat.com>
7334
7335 * gcc-rich-location.c
7336 (gcc_rich_location::add_fixit_misspelled_id): New overload, taking
7337 a const char *.
7338 * gcc-rich-location.h
7339 (gcc_rich_location::add_fixit_misspelled_id): Likewise.
7340
7341 2016-07-20 Georg-Johann Lay <avr@gjlay.de>
7342
7343 * target.def (addr_space): Add new diagnose_usage to hook vector.
7344 * targhooks.c (default_addr_space_diagnose_usage): Add default
7345 implementation and...
7346 * targhooks.h (default_addr_space_diagnose_usage): ... its prototype.
7347 * c/c-parser.c (c_lex_one_token) [CPP_NAME]: If the token
7348 is some address space, call targetm.addr_space.diagnose_usage.
7349 * doc/tm.texi.in (Named Address Spaces): Add anchor for
7350 TARGET_ADDR_SPACE_DIAGNOSE_USAGE documentation.
7351 * doc/tm.texi: Regenerate.
7352
7353 2016-07-20 Martin Liska <mliska@suse.cz>
7354
7355 PR middle-end/71898
7356 * graphite-isl-ast-to-gimple.c (later_of_the_two):
7357 Properly handly PHI stmts.
7358
7359 2016-07-20 Bin Cheng <bin.cheng@arm.com>
7360
7361 PR tree-optimization/71503
7362 PR tree-optimization/71683
7363 * tree-if-conv.c (gen_phi_arg_condition): Record true predicate
7364 and break.
7365
7366 2016-07-20 Martin Liska <mliska@suse.cz>
7367
7368 * doc/invoke.texi (-fipa-ra): Document when the option is
7369 disabled. Fix a typo.
7370
7371 2016-07-20 Martin Liska <mliska@suse.cz>
7372
7373 * Makefile.in: Include fibonacci_heap.c
7374 * fibonacci_heap.c: New file.
7375 * fibonacci_heap.h (fibonacci_heap::insert): Use insert_node.
7376 (fibonacci_heap::union_with): Fix deletion of the second heap.
7377 * selftest-run-tests.c (selftest::run_tests): Incorporate
7378 fibonacci heap tests.
7379 * selftest.h: Declare fibonacci_heap_c_tests.
7380
7381 2016-07-20 Martin Liska <mliska@suse.cz>
7382
7383 * selftest-run-tests.c (selftest::run_tests): New function.
7384 * selftest.h (sreal_c_tests): Declare.
7385 * sreal.c (sreal_verify_basics): New function.
7386 (verify_aritmetics): Likewise.
7387 (sreal_verify_arithmetics): Likewise.
7388 (verify_shifting): Likewise.
7389 (sreal_verify_shifting): Likewise.
7390 (void sreal_c_tests): Likewise.
7391
7392 2016-07-19 Jakub Jelinek <jakub@redhat.com>
7393
7394 PR rtl-optimization/71916
7395 * cfgrtl.c (contains_no_active_insn_p): Return false also for
7396 bb which have a single succ fake edge.
7397
7398 2016-07-19 Aldy Hernandez <aldyh@redhat.com>
7399
7400 PR debug/71855
7401 * dwarf2out.c (gen_subprogram_die): Only call
7402 gen_unspecified_parameters_die while dumping early dwarf.
7403
7404 2016-07-19 Jakub Jelinek <jakub@redhat.com>
7405
7406 PR middle-end/71874
7407 * gimple-fold.c (fold_builtin_memory_op): Use
7408 get_addr_base_and_unit_offset instead of get_ref_base_and_extent.
7409
7410 2016-07-19 Uros Bizjak <ubizjak@gmail.com>
7411
7412 * builtins.c: Use HOST_WIDE_INT_1 instead of (HOST_WIDE_INT) 1,
7413 HOST_WIDE_INT_1U instead of (unsigned HOST_WIDE_INT) 1,
7414 HOST_WIDE_INT_M1 instead of (HOST_WIDE_INT) -1 and
7415 HOST_WIDE_INT_M1U instead of (unsigned HOST_WIDE_INT) -1.
7416 * combine.c: Ditto.
7417 * cse.c: Ditto.
7418 * dojump.c: Ditto.
7419 * double-int.c: Ditto.
7420 * dse.c: Ditto.
7421 * dwarf2out.c: Ditto.
7422 * expmed.c: Ditto.
7423 * expr.c: Ditto.
7424 * fold-const.c: Ditto.
7425 * function.c: Ditto.
7426 * fwprop.c: Ditto.
7427 * genmodes.c: Ditto.
7428 * hwint.c: Ditto.
7429 * hwint.h: Ditto.
7430 * ifcvt.c: Ditto.
7431 * loop-doloop.c: Ditto.
7432 * loop-invariant.c: Ditto.
7433 * loop-iv.c: Ditto.
7434 * match.pd: Ditto.
7435 * optabs.c: Ditto.
7436 * real.c: Ditto.
7437 * reload.c: Ditto.
7438 * rtlanal.c: Ditto.
7439 * simplify-rtx.c: Ditto.
7440 * stor-layout.c: Ditto.
7441 * toplev.c: Ditto.
7442 * tree-ssa-loop-ivopts.c: Ditto.
7443 * tree-vect-generic.c: Ditto.
7444 * tree-vect-patterns.c: Ditto.
7445 * tree.c: Ditto.
7446 * tree.h: Ditto.
7447 * ubsan.c: Ditto.
7448 * varasm.c: Ditto.
7449 * wide-int-print.cc: Ditto.
7450 * wide-int.cc: Ditto.
7451 * wide-int.h: Ditto.
7452
7453 2016-07-19 David Malcolm <dmalcolm@redhat.com>
7454
7455 * selftest.c (selftest::assert_streq): Handle NULL values of
7456 val_actual and val_expected.
7457
7458 2016-07-19 Martin Jambor <mjambor@suse.cz>
7459
7460 PR fortran/71688
7461 * trans-decl.c (gfc_generate_function_code): Use cgraph_get_create_node
7462 rather than cgraph_create_node to get a call graph node.
7463
7464 2016-07-19 Richard Biener <rguenther@suse.de>
7465
7466 * gimple-fold.c (get_base_constructor): Add VIEW_CONVERT case,
7467 handle all tcc_constant bases and valueize SSA names.
7468 * tree-ssa-sccvn.c (fully_constant_vn_reference_p): Handle
7469 tcc_constant bases.
7470
7471 2016-07-19 David Malcolm <dmalcolm@redhat.com>
7472
7473 * function-tests.c (selftest::verify_three_block_rtl_cfg): Verify
7474 the flags of the exit block and bb2, not just the entry block.
7475
7476 2016-07-19 Richard Biener <rguenther@suse.de>
7477
7478 PR tree-optimization/71901
7479 * tree-ssa-sccvn.h (struct vn_reference_op_struct): Add
7480 align member, group stuff with the bitfield.
7481 (vn_ref_op_align_unit): New inline.
7482 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): For ARRAY_REFs
7483 record element alignment and operand 3 unchanged.
7484 (ao_ref_init_from_vn_reference): Adjust.
7485 (valueize_refs_1): Likewise.
7486 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
7487
7488 2016-07-19 Richard Biener <rguenther@suse.de>
7489
7490 PR tree-optimization/71908
7491 * tree-ssa-structalias.c (get_constraint_for_component_ref): Handle
7492 symbolic constants in a more reliable way.
7493
7494 2016-07-19 Ilya Enkovich <ilya.enkovich@intel.com>
7495
7496 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Update
7497 comment.
7498 (vect_update_inits_of_drs): Likewise.
7499 (vect_create_cond_for_alias_checks): Likewise.
7500 * tree-vect-loop.c (vect_get_known_peeling_cost): Likewise.
7501
7502 2016-07-19 Richard Biener <rguenther@suse.de>
7503
7504 PR lto/71907
7505 * lto-streamer-out.c (DFS::DFS_write_tree_body): For blocks
7506 with an abstract origin that is not an inlined function outer
7507 scope add a self-reference as abstract origin.
7508 * tree-streamer-out.c (write_ts_block_tree_pointers): Likewise.
7509
7510 2016-07-18 Michael Meissner <meissner@linux.vnet.ibm.com>
7511
7512 PR target/71493
7513 * config/rs6000/rs6000.c (rs6000_function_value): Fix
7514 unintentional System V.4 structure return breakage for structures
7515 with a single floating point element.
7516
7517 2016-07-18 Yuri Rumyantsev <ysrumyan@gmail.com>
7518
7519 PR tree-optimization/71734
7520 * tree-ssa-loop-im.c (ref_indep_loop_p_1): Add REF_LOOP argument which
7521 contains REF, use it to check safelen, assume that safelen value
7522 must be greater 1, fix style.
7523 (ref_indep_loop_p_2): Add REF_LOOP argument.
7524 (ref_indep_loop_p): Pass LOOP as additional argument to
7525 ref_indep_loop_p_2.
7526
7527 2016-07-18 Dominik Vogt <vogt@linux.vnet.ibm.com>
7528
7529 * cfgexpand.c (expand_stack_vars): Implement synamic stack space
7530 allocation in the prologue.
7531 * explow.c (get_dynamic_stack_base): New function to return an address
7532 expression for the dynamic stack base.
7533 (get_dynamic_stack_size): New function to do the required dynamic stack
7534 space size calculations.
7535 (allocate_dynamic_stack_space): Use new functions.
7536 (align_dynamic_address): Move some code from
7537 allocate_dynamic_stack_space to new function.
7538 * explow.h (get_dynamic_stack_base, get_dynamic_stack_size): Export.
7539
7540 2016-07-18 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
7541
7542 * config/s390/s390.c (s390_encode_section_info): Always set
7543 notaligned marker if mode size is 0 or no MEM_ALIGN info could be
7544 found.
7545
7546 2016-07-18 Richard Biener <rguenther@suse.de>
7547
7548 PR tree-optimization/71893
7549 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Compensate
7550 for sizetype cast added by array_ref_element_size.
7551 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
7552
7553 2016-07-16 John David Anglin <danglin@gcc.gnu.org>
7554
7555 * config/pa/pa.c (hppa_profile_hook): Allocate stack space for
7556 register parameters. Remove code to initialize argument pointer
7557 on TARGET_64BIT. Optimize call to _mcount when it can be reached
7558 using a pc-relative branch. Cleanup conditional code.
7559 * config/pa/pa.md (call_mcount): New expander.
7560 (call_mcount_nonpic): New insn.
7561 (call_mcount_pic): New insn and split.
7562 (call_mcount_pic_post_reload): New insn.
7563 (call_mcount_64bit): New insn and split.
7564 (call_mcount_64bit_post_reload): New insn.
7565
7566 2016-07-15 Georg-Johann Lay <avr@gjlay.de>
7567
7568 * config/avr/predicates.md (const_m255_to_m1_operand): New.
7569 * config/avr/constraints.md (Cn8, Ca1, Co1, Yx2): New constraints.
7570 * config/avr/avr.md (add<mode>3) <ALL1>: Fix set_vzn for +/-2.
7571 (*cmphi.zero-extend.0, *cmphi.zero-extend.1)
7572 (*usum_widenqihi3, *udiff_widenqihi3)
7573 (*addhi3_zero_extend.const): New combiner insns.
7574 (andqi3, iorqi3): Provide "l" (NO_LD_REGS) alternative if
7575 just 1 bit is affected.
7576 * config/avr/avr.c (avr_out_bitop) <QImode>: Don't access xop[3].
7577 (avr_out_compare) [EQ,NE]: Tweak comparing d-regs against -1.
7578
7579 2016-07-15 Cesar Philippidis <cesar@codesourcery.com>
7580
7581 * omp-low.c (lower_omp_target): Mark data clauses with
7582 GOMP_MAP_FORCE_{PRESENT,TO,FROM,TOFROM} as potentially having
7583 zero-length subarrays.
7584
7585 2016-07-15 Richard Biener <rguenther@suse.de>
7586
7587 PR tree-optimization/71881
7588 * tree-loop-distribution.c (destroy_loop): Remove blocks in
7589 reverse DOM order to make debug temp generation happy.
7590
7591 2016-07-15 Richard Biener <rguenther@suse.de>
7592
7593 PR tree-optimization/71887
7594 * tree-ssa-phiopt.c (absorbing_element_p): Add rhs arg and
7595 verify it is not zero for division / modulo handling.
7596 (value_replacement): Adjust.
7597
7598 2016-07-15 Virendra Pathak <virendra.pathak@broadcom.com>
7599 Julian Brown <julian@codesourcery.com>
7600
7601 * config/aarch64/aarch64-cores.def: Update vulcan COSTS.
7602 * config/aarch64/aarch64-cost-tables.h
7603 (vulcan_extra_costs): New variable.
7604 * config/aarch64/aarch64.c
7605 (vulcan_addrcost_table): Likewise.
7606 (vulcan_regmove_cost): Likewise.
7607 (vulcan_vector_cost): Likewise.
7608 (vulcan_branch_cost): Likewise.
7609 (vulcan_tunings): Likewise.
7610
7611 2016-07-15 Alexander Monakov <amonakov@ispras.ru>
7612
7613 * cgraphunit.c (cgraph_order_sort_kind): New entry ORDER_VAR_UNDEF.
7614 (output_in_order): Loop over undefined variables too. Output them
7615 via assemble_undefined_decl. Skip variables that correspond to hard
7616 registers or have value-exprs.
7617 * varpool.c (symbol_table::output_variables): Handle undefined
7618 variables together with defined ones.
7619
7620 2016-07-15 Richard Biener <rguenther@suse.de>
7621
7622 * tree-ssa-pre.c (get_representative_for): Make sure to return
7623 the value number of SSA names.
7624 (phi_translate_1): get_representative_for cannot return NULL.
7625 (do_pre_regular_insertion): Remove redundant call to
7626 fully_constant_expression.
7627 (do_pre_partial_partial_insertion): Likewise.
7628
7629 2016-07-15 Bin Cheng <bin.cheng@arm.com>
7630
7631 * tree-scalar-evolution.c (simple_iv_with_niters): New funcion.
7632 (derive_simple_iv_with_niters): New function.
7633 (simple_iv): Rewrite using simple_iv_with_niters.
7634 * tree-scalar-evolution.h (simple_iv_with_niters): New decl.
7635 * tree-ssa-loop-niter.c (number_of_iterations_exit_assumptions): New
7636 function.
7637 (number_of_iterations_exit): Rewrite using above function.
7638 * tree-ssa-loop-niter.h (number_of_iterations_exit_assumptions): New
7639 Decl.
7640
7641 2016-07-15 Richard Biener <rguenther@suse.de>
7642
7643 * config/i386/i386.c (ix86_builtin_vectorization_cost): Adjust
7644 vec_construct cost.
7645
7646 2016-07-14 Jakub Jelinek <jakub@redhat.com>
7647
7648 PR tree-optimization/71872
7649 * tree-data-ref.c (get_references_in_stmt): Ignore references
7650 with is_gimple_constant get_base_address.
7651
7652 2016-07-14 Thomas Preud'homme <thomas.preudhomme@arm.com>
7653
7654 * config/arm/arm.h (TARGET_HAVE_LDACQ): Enable for ARMv8-M Mainline.
7655 (TARGET_HAVE_LDACQD): New macro.
7656 * config/arm/sync.md (atomic_loaddi): Use TARGET_HAVE_LDACQD rather
7657 than TARGET_HAVE_LDACQ.
7658 (arm_load_acquire_exclusivedi): Likewise.
7659 (arm_store_release_exclusivedi): Likewise.
7660
7661 2016-07-14 Thomas Preud'homme <thomas.preudhomme@arm.com>
7662
7663 PR rtl-optimization/71878
7664 * lra-constraints.c (match_reload): Pass information about other
7665 output operands. Create new unique register value if matching input
7666 operand shares same register value as output operand being considered.
7667 (curr_insn_transform): Record output operands already processed.
7668
7669 2016-07-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7670
7671 PR target/65951
7672 PR tree-optimization/70923
7673 * tree-vect-patterns.c: Include mult-synthesis.h.
7674 (target_supports_mult_synth_alg): New function.
7675 (synth_lshift_by_additions): Likewise.
7676 (apply_binop_and_append_stmt): Likewise.
7677 (vect_synth_mult_by_constant): Likewise.
7678 (target_has_vecop_for_code): Likewise.
7679 (vect_recog_mult_pattern): Use above functions to synthesize vector
7680 multiplication by integer constants.
7681
7682 2016-07-14 Alan Modra <amodra@gmail.com>
7683
7684 * gcc/config/rs6000/altivec.md (altivec_mov<mode>): Disparage
7685 gpr alternatives. Correct '*' placement on Y,r alternative.
7686 Add '*' on operand 1 of r,r alternative.
7687
7688 2016-07-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7689
7690 * expmed.c (mult_variant, choose_mult_variant): Move declaration to...
7691 * expmed.h: ... Here.
7692
7693 2016-07-14 Jan Hubicka <hubicka@ucw.cz>
7694
7695 * gimple.h (stmt_can_terminate_bb_p): New function.
7696 * tree-cfg.c (need_fake_edge_p): Rename to ...
7697 (stmt_can_terminate_bb_p): ... this; return true if stmt can
7698 throw external; handle const and pure calls.
7699 * tree-ssa-loop-niter.c (loop_only_exit_p): Use it.
7700
7701 2016-07-14 Richard Biener <rguenther@suse.de>
7702
7703 PR tree-optimization/71866
7704 * tree-ssa-pre.c (get_constant_for_value_id): Remove.
7705 (do_hoist_insertion): Avoid endless recursion when we
7706 didn't insert anything because we managed to simplify
7707 things down to a constant or SSA name.
7708 (fully_constant_expression): Re-write in terms of ...
7709 * tree-ssa-sccvn.h (vn_nary_simplify): ... this. Declare.
7710 * tree-ssa-sccvn.c (vn_nary_simplify): New wrapper around
7711 vn_nary_build_or_lookup_1.
7712 (vn_nary_build_or_lookup_1): Added flag and renamed from ...
7713 (vn_nary_build_or_lookup): ... this which now wraps it.
7714
7715 2016-07-14 Alan Modra <amodra@gmail.com>
7716
7717 PR target/71733
7718 * config/rs6000/rs6000.c (rs6000_option_override_internal): Deal
7719 with p9_vector override before power9-dform override.
7720
7721 2016-07-13 Andi Kleen <ak@linux.intel.com>
7722
7723 * value-prof.c (gimple_value_profile_transformations): Don't run
7724 when auto_profile is on.
7725
7726 2016-07-13 Andi Kleen <ak@linux.intel.com>
7727
7728 * auto-profile.c (update_inlined_ind_target,
7729 afdo_indirect_call): Print information to dump file.
7730
7731 2016-07-13 Andrew Burgess <andrew.burgess@embecosm.com>
7732
7733 * genrecog.c (special_predicate_operand_p): New function.
7734 (predicate_name): Move function.
7735 (validate_pattern): Don't warn about missing mode for all
7736 define_special_predicate predicates.
7737
7738 2016-07-13 Bin Cheng <bin.cheng@arm.com>
7739
7740 * tree-vect-data-refs.c (vect_no_alias_p): New function.
7741 (vect_prune_runtime_alias_test_list): Call vect_no_alias_p to
7742 resolve alias checks which are known at compilation time.
7743 Truncate vector LOOP_VINFO_MAY_ALIAS_DDRS(loop_vinfo) if all
7744 alias checks are resolved. Move dump info for too many runtime
7745 alias checks to here...
7746 * tree-vect-loop.c (vect_analyze_loop_2): ...From here.
7747
7748 2016-07-13 Richard Biener <rguenther@suse.de>
7749
7750 PR tree-optimization/24574
7751 * tree-ssa-phiopt.c (absorbing_element_p): Pass in argument
7752 position and add shift, rotate, divison and modulo support
7753 for left zero.
7754 (value_replacement): Pass in argument position to absorbing_element_p.
7755
7756 2016-07-13 Ilya Enkovich <ilya.enkovich@intel.com>
7757
7758 PR ipa/71633
7759 * ipa-inline-transform.c (inline_call): Support
7760 instrumented thunks.
7761
7762 2016-07-13 Thomas Preud'homme <thomas.preudhomme@arm.com>
7763
7764 * config/arm/arm.h (TARGET_HAVE_CBZ): Define.
7765 (TARGET_IDIV): Set for all Thumb targets provided they have hardware
7766 divide feature.
7767 * config/arm/arm.md (divsi3): New unpredicable alternative for ARMv8-M
7768 Baseline. Make initial alternative TARGET_32BIT only.
7769 (udivsi3): Likewise.
7770 * config/arm/thumb1.md (thumb1_cbz): New define_insn.
7771 * doc/sourcebuild.texi (arm_thumb1_cbz_ok): Document new effective
7772 target.
7773
7774 2016-07-13 Thomas Preud'homme <thomas.preudhomme@arm.com>
7775
7776 * config/arm/arm.h (TARGET_HAVE_MOVT): Include ARMv8-M as having MOVT.
7777 * config/arm/arm.c (arm_arch_name): (const_ok_for_op): Check MOVT/MOVW
7778 availability with TARGET_HAVE_MOVT.
7779 (thumb_legitimate_constant_p): Strip the high part of a label_ref.
7780 (thumb1_rtx_costs): Also return 0 if setting a half word constant and
7781 MOVW is available and replace (unsigned HOST_WIDE_INT) INTVAL by
7782 UINTVAL.
7783 (thumb1_size_rtx_costs): Make set of half word constant also cost 1
7784 extra instruction if MOVW is available. Use a cost variable
7785 incremented by COSTS_N_INSNS (1) when the condition match rather than
7786 returning an arithmetic expression based on COSTS_N_INSNS. Make
7787 constant with bottom half word zero cost 2 instruction if MOVW is
7788 available.
7789 * config/arm/arm.md (define_attr "arch"): Add v8mb.
7790 (define_attr "arch_enabled"): Set to yes if arch value is v8mb and
7791 target is ARMv8-M Baseline.
7792 (arm_movt): New unpredicable alternative for ARMv8-M Baseline.
7793 (arm_movtas_ze): Likewise.
7794 * config/arm/thumb1.md (thumb1_movdi_insn): Add ARMv8-M Baseline only
7795 alternative for constants satisfying j constraint.
7796 (thumb1_movsi_insn): Likewise.
7797 (movsi splitter for K alternative): Tighten condition to not trigger
7798 if movt is available and j constraint is satisfied.
7799 (Pe immediate splitter): Likewise.
7800 (thumb1_movhi_insn): Add ARMv8-M Baseline only alternative for
7801 constant fitting in an halfword to use MOVW.
7802 * doc/sourcebuild.texi (arm_thumb1_movt_ok): Document new ARM
7803 effective target.
7804
7805 2016-07-13 Richard Biener <rguenther@suse.de>
7806
7807 PR middle-end/71104
7808 * gimplify.c (gimplify_modify_expr): Gimplify the RHS before
7809 gimplifying the LHS. Make sure to gimplify a returning twice
7810 call LHS without using SSA names.
7811
7812 2016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
7813
7814 * tree-data-ref.c (find_data_references_in_stmt): Remove
7815 unnecessary call to vec::release.
7816 (graphite_find_data_references_in_stmt): Likewise.
7817 * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p): Likewise.
7818 * tree-vect-stmts.c (vectorizable_condition): Likewise.
7819
7820 2016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
7821
7822 * cfgexpand.c (expand_used_vars): Make the type of a local
7823 variable auto_vec.
7824 * genmatch.c (lower_for): Likewise.
7825 * haifa-sched.c (haifa_sched_init): Likewise.
7826 (add_to_speculative_block): Likewise.
7827 (create_check_block_twin): Likewise.
7828 * predict.c (handle_missing_profiles): Likewise.
7829 * tree-data-ref.c (loop_nest_has_data_refs): Likewise.
7830 * tree-diagnostic.c (maybe_unwind_expanded_macro_loc): Likewise.
7831 * tree-ssa-loop-niter.c (discover_iteration_bound_by_body_walk):
7832 Likewise.
7833 (maybe_lower_iteration_bound): Likewise.
7834 * tree-ssa-sccvn.c (DFS): Likewise.
7835 * tree-stdarg.c (reachable_at_most_once): Likewise.
7836 * tree-vect-stmts.c (vectorizable_conversion): Likewise.
7837 (vectorizable_store): Likewise.
7838
7839 2016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
7840
7841 * tree-ssa-sccvn.c (sccvn_dom_walker::~sccvn_dom_walker): remove.
7842 (sccvn_dom_walker): make cond_stack an auto_vec.
7843
7844 2016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
7845
7846 * ree.c (struct ext_state): Make type of members auto_vec.
7847 (find_and_remove_re): Adjust.
7848
7849 2016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
7850
7851 * cfgexpand.c (struct stack_vars_data): Make type of fields
7852 auto_vec.
7853 (expand_used_vars): Adjust.
7854
7855 2016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
7856
7857 * ipa.c (record_cdtor_fn): Adjust.
7858 (build_cdtor_fns): Likewise.
7859 (ipa_cdtor_merge): Make static_ctors and static_dtors local
7860 variables.
7861
7862 2016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
7863
7864 * genextract.c (struct accum_extract): Add constructor and make
7865 members auto_vec.
7866 (gen_insn): Adjust.
7867
7868 2016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
7869
7870 * tree.c (struct free_lang_data_d): Add constructor and change
7871 types of members to ones that automatically manage resources.
7872 (fld_worklist_push): Adjust.
7873 (find_decls_types): Likewise.
7874 (find_decls_types_in_eh_region): Likewise.
7875 (free_lang_data_in_cgraph): Stop manually creating and
7876 destroying members of free_lang_data_d.
7877
7878 2016-07-13 Uros Bizjak <ubizjak@gmail.com>
7879
7880 PR rtl-optimization/68961
7881 * config/i386/sse.md (movsd/movhpd to movupd peephole2s): Add new
7882 peephole variant. Use sse_reg_operand predicates.
7883
7884 2016-07-12 Uros Bizjak <ubizjak@gmail.com>
7885
7886 * config/i386/predicates.md (x86_64_immediate_operand)
7887 <case CONST_INT>: Remove unneeded truncation to DImode.
7888 <case CONST>: Ditto.
7889 (x86_64_zext_immediate_operand) <case CONST>: Ditto.
7890
7891 2016-07-12 Michael Meissner <meissner@linux.vnet.ibm.com>
7892
7893 PR target/71805
7894 * config/rs6000/altivec.md (altivec_vperm_<mode>_internal):
7895 The xxperm and xxpermr instructions require that the 2nd input
7896 operand overlap with the output operand, and not the 1st.
7897 (altivec_vperm_v8hiv16qi): Likewise.
7898 (altivec_vperm_<mode>_uns_internal): Likewise.
7899 (altivec_vpermr_<mode>_internal): Likewise.
7900 (vperm_v8hiv4si): Likewise.
7901 (vperm_v16qiv8hi): Likewise.
7902
7903 2016-07-12 Nathan Sidwell <nathan@acm.org>
7904
7905 * config/arm/arm.c (arm_option_override): Set MASK_SINGLE_PIC_BASE
7906 when -mno-pic-data-is-text-relative is in effect, by default.
7907 * doc/invoke.texi (mpic-data-is-text-relative): Document new
7908 behavior and clarify.
7909
7910 2016-07-12 Martin Liska <mliska@suse.cz>
7911
7912 * params.def: Add avg-loop niter.
7913 * tree-ssa-loop-ivopts.c (avg_loop_niter): Use the param.
7914 * cfgloopanal.c (expected_loop_iterations_unbounded): Likewise.
7915 * doc/invoke.texi: Document the new parameter.
7916
7917 2016-07-12 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7918
7919 PR middle-end/71700
7920 * expr.c (store_constructor): Mask sign-extended bits when widening
7921 sub-word constructor element at the start of a word.
7922
7923 2016-07-12 Martin Liska <mliska@suse.cz>
7924
7925 * Makefile.in: Append rule for params-options.h.
7926 * params-options.h: New file.
7927
7928 2016-07-12 Martin Liska <mliska@suse.cz>
7929
7930 * ira-build.c (mark_loops_for_removal): Properly iterate
7931 loops.
7932
7933 2016-07-12 Steven Bosscher <steven@gcc.gnu.org>
7934 Richard Biener <rguenther@suse.de>
7935
7936 PR tree-optimization/23286
7937 PR tree-optimization/70159
7938 * doc/invoke.texi: Document -fcode-hoisting.
7939 * common.opt (fcode-hoisting): New flag.
7940 * opts.c (default_options_table): Enable -fcode-hoisting at -O2+.
7941 * tree-ssa-pre.c (pre_stats): Add hoist_insert.
7942 (do_regular_insertion): Rename to ...
7943 (do_pre_regular_insertion): ... this and amend general comments
7944 on insertion strathegy.
7945 (do_partial_partial_insertion): Rename to ...
7946 (do_pre_partial_partial_insertion): ... this.
7947 (do_hoist_insertion): New function.
7948 (insert_aux): Take flags on whether to do PRE and/or hoist insertion
7949 and call do_hoist_insertion properly.
7950 (insert): Adjust.
7951 (pass_pre::gate): Enable also if -fcode-hoisting is enabled.
7952 (pass_pre::execute): Register hoist_insert stats.
7953
7954 2016-07-12 Jakub Jelinek <jakub@redhat.com>
7955
7956 PR middle-end/71716
7957 * gimple-fold.c (optimize_atomic_compare_exchange_p): Return false
7958 for SCALAR_FLOAT_TYPE_P type of expected var, or if TYPE_PRECISION
7959 is different from mode's bitsize. Small cleanup.
7960
7961 2016-07-12 Richard Biener <rguenther@suse.de>
7962
7963 PR rtl-optimization/68961
7964 * fwprop.c (propagate_rtx): Allow SUBREGs of VEC_CONCAT and CONCAT
7965 to simplify to a non-constant.
7966
7967 2016-07-11 Jakub Jelinek <jakub@redhat.com>
7968
7969 PR middle-end/71758
7970 * omp-low.c (expand_omp_target): Gimplify device.
7971
7972 PR tree-optimization/71823
7973 * tree-vect-stmts.c (vectorizable_operation): Use vect_get_vec_defs
7974 to get vec_oprnds2 from op2.
7975
7976 2016-07-11 Uros Bizjak <ubizjak@gmail.com>
7977
7978 * config/i386/predicates.md (x86_64_immediate_operand) <case CONST>:
7979 Hoist common subexpressions.
7980 (x86_64_zext_immediate_operand) <case CONST>: Ditto.
7981
7982 2016-07-11 Pat Haugen <pthaugen@us.ibm.com>
7983
7984 PR target/71800
7985 * config/rs6000/rs6000.md (stfiwx): Change constraint to 'wu' to
7986 prevent generation of 'stxsiwx' on pre Power8 hardware.
7987
7988 2016-07-11 David Malcolm <dmalcolm@redhat.com>
7989
7990 * input.c: Include cpplib.h.
7991 (selftest::temp_source_file): New class.
7992 (selftest::temp_source_file::temp_source_file): New ctor.
7993 (selftest::temp_source_file::~temp_source_file): New dtor.
7994 (selftest::should_have_column_data_p): New function.
7995 (selftest::test_should_have_column_data_p): New function.
7996 (selftest::temp_line_table): New class.
7997 (selftest::temp_line_table::temp_line_table): New ctor.
7998 (selftest::temp_line_table::~temp_line_table): New dtor.
7999 (selftest::test_accessing_ordinary_linemaps): Add case_ param; use
8000 it to create a temp_line_table.
8001 (selftest::assert_loceq): Only verify LOCATION_COLUMN for
8002 locations that are known to have column data.
8003 (selftest::line_table_case): New struct.
8004 (selftest::test_reading_source_line): Move tempfile handling
8005 to class temp_source_file.
8006 (ASSERT_TOKEN_AS_TEXT_EQ): New macro.
8007 (selftest::assert_token_loc_eq): New function.
8008 (ASSERT_TOKEN_LOC_EQ): New macro.
8009 (selftest::test_lexer): New function.
8010 (selftest::boundary_locations): New array.
8011 (selftest::input_c_tests): Call test_should_have_column_data_p.
8012 Loop over a test matrix of interesting values of location and
8013 default_range_bits, calling test_lexer on each case in the matrix.
8014 Move call to test_accessing_ordinary_linemaps into the matrix.
8015 * selftest.h (ASSERT_EQ): Reimplement in terms of...
8016 (ASSERT_EQ_AT): New macro.
8017
8018 2016-07-11 H.J. Lu <hongjiu.lu@intel.com>
8019
8020 PR target/71801
8021 * config/i386/i386.c (timode_scalar_chain::fix_debug_reg_uses):
8022 Don't convert TImode in debug insn.
8023
8024 2016-07-11 Bernd Edlinger <bernd.edlinger@hotmail.de>
8025
8026 Convert TYPE_ALIGN_OK to a TYPE_LANG_FLAG.
8027 * tree-core.h (tree_base::nothrow_flag): Adjust comment.
8028 (tree_type_common::lang_flag_7): New.
8029 (tree_type_common::spare): Reduce size.
8030 * tree.h (TYPE_ALIGN_OK): Remove.
8031 (TYPE_LANG_FLAG_7): New.
8032 (get_inner_reference): Adjust header.
8033 * print-tree.c (print_node): Adjust.
8034 * expr.c (get_inner_reference): Remove parameter keep_aligning.
8035 (get_bit_range, expand_assignment, expand_expr_addr_expr_1): Adjust
8036 calls to get_inner_reference.
8037 (expand_expr_real_1): Adjust call to get_inner_reference. Remove
8038 handling of TYPE_ALIGN_OK.
8039 * builtins.c (get_object_alignment_2): Adjust call to
8040 get_inner_reference. Remove handling of VIEW_CONVERT_EXPR.
8041 * emit-rtl.c (set_mem_attributes_minus_bitpos): Remove handling of
8042 TYPE_ALIGN_OK.
8043 * asan.c (instrument_derefs): Adjust calls to get_inner_reference.
8044 * cfgexpand.c (expand_debug_expr): Likewise.
8045 * dbxout.c (dbxout_expand_expr): Likewise.
8046 * dwarf2out.c (loc_list_for_address_of_addr_expr_of_indirect_ref,
8047 loc_list_from_tree, fortran_common): Likewise.
8048 * fold-const.c (optimize_bit_field_compare,
8049 decode_field_reference, fold_unary_loc, fold_comparison,
8050 split_address_to_core_and_offset): Likewise.
8051 * gimple-laddress.c (execute): Likewise.
8052 * gimple-ssa-strength-reduction.c (slsr_process_ref): Likewise.
8053 * gimplify.c (gimplify_scan_omp_clauses): Likewise.
8054 * hsa-gen.c (gen_hsa_addr): Likewise.
8055 * simplifx-rtx.c (delegitimize_mem_from_attrs): Likewise.
8056 * tsan.c (instrument_expr): Likewise.
8057 * ubsan.c (instrument_bool_enum_load, instrument_object_size): Likewise.
8058 * tree.c (verify_type_variant): Remove handling of TYPE_ALIGN_OK.
8059 * tree-affine.c (tree_to_aff_combination,
8060 get_inner_reference_aff): Adjust calls to get_inner_reference.
8061 * tree-data-ref.c (split_constant_offset_1,
8062 dr_analyze_innermost): Likewise.
8063 * tree-scalar-evolution.c (interpret_rhs_expr): Likewise.
8064 * tree-sra.c (ipa_sra_check_caller): Likewise.
8065 * tree-ssa-loop-ivopts.c (split_address_cost): Likewise.
8066 * tree-ssa-math-opts.c (find_bswap_or_nop_load,
8067 bswap_replace): Likewise.
8068 * tree-vect-data-refs.c (vect_check_gather,
8069 vect_analyze_data_refs): Likewise.
8070 * config/mips/mips.c (r10k_safe_mem_expr_p): Likewise.
8071 * config/pa/pa.c (pa_emit_move_sequence): Remove handling of
8072 TYPE_ALIGN_OK.
8073
8074 2016-07-11 David Malcolm <dmalcolm@redhat.com>
8075
8076 * Makefile.in (selftest-valgrind): New phony target.
8077 * function-tests.c (selftest::build_cfg): Delete pass instances
8078 created by the test.
8079 (selftest::convert_to_ssa): Likewise.
8080 (selftest::test_expansion_to_rtl): Likewise.
8081 * tree-cfg.c (selftest::test_linear_chain): Release dominator
8082 vectors.
8083 (selftest::test_diamond): Likewise.
8084
8085 2016-07-11 Richard Biener <rguenther@suse.de>
8086
8087 PR tree-optimization/71816
8088 * tree-ssa-pre.c (compute_avail): Adjust alignment of ref rather
8089 than replacing all of its operands.
8090
8091 2016-07-11 Alan Modra <amodra@gmail.com>
8092
8093 * config/rs6000/rs6000.md (UNSPEC_DOLOOP): New unspec.
8094 (ctr<mode>): Add unspec.
8095 (ctr<mode>_internal*): Likewise.
8096
8097 2016-07-08 James Bowman <james.bowman@ftdichip.com>
8098
8099 * config/ft32/ft32.c (ft32_elf_encode_section_info): New function.
8100 * config/ft32/ft32.h (ASM_OUTPUT_SYMBOL_REF): New function.
8101
8102 2016-07-08 Vladimir Makarov <vmakarov@redhat.com>
8103
8104 PR rtl-optimization/71621
8105 * lra-constraints.c (process_alt_operands): Check combination of
8106 reg class and mode.
8107
8108 2016-07-08 Jason Merrill <jason@redhat.com>
8109 Richard Biener <rguenther@suse.de>
8110
8111 P0145: Refining Expression Order for C++.
8112 * gimplify.c (initial_rhs_predicate_for): New.
8113 (gimplfy_modify_expr): Gimplify RHS before LHS.
8114
8115 2016-07-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
8116
8117 PR target/71297
8118 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
8119 Allow standard error handling to take over when a wrong number
8120 of arguments is presented to __builtin_vec_ld () or
8121 __builtin_vec_st ().
8122
8123 2016-07-08 Jiong Wang <jiong.wang@arm.com>
8124
8125 * config/aarch64/aarch64-simd-builtins.def (smax): Remove float
8126 variants.
8127 (smin): Likewise.
8128 (fmax): New entry.
8129 (fmin): Likewise.
8130 * config/aarch64/arm_neon.h (vmaxnm_f32): Use
8131 __builtin_aarch64_fmaxv2sf.
8132 (vmaxnmq_f32): Likewise.
8133 (vmaxnmq_f64): Likewise.
8134 (vminnm_f32): Likewise.
8135 (vminnmq_f32): Likewise.
8136 (vminnmq_f64): Likewise.
8137
8138 2016-07-08 Michael Meissner <meissner@linux.vnet.ibm.com>
8139
8140 PR target/71806
8141 * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Do not
8142 enable -mfloat128-hardware by default.
8143 (ISA_3_0_MASKS_IEEE): New macro to give all of the VSX options
8144 that IEEE 128-bit hardware support needs.
8145 * config/rs6000/rs6000.c (rs6000_option_override_internal): If
8146 -mcpu=power9 -mfloat128, enable -mfloat128-hardware by default.
8147 Use ISA_3_0_MASKS_IEEE as the set of options that IEEE 128-bit
8148 floating point requires.
8149 * doc/invoke.texi (RS/6000 and PowerPC Options): Document
8150 -mfloat128 and -mfloat128-hardware changes.
8151
8152 2016-07-08 Alan Hayward <alan.hayward@arm.com>
8153
8154 PR tree-optimization/71667
8155 * tree-vect-loop.c (vectorizable_live_operation): ignore DEBUG stmts
8156
8157 2016-07-08 Martin Liska <mliska@suse.cz>
8158
8159 PR middle-end/71606
8160 * fold-const.c (fold_convertible_p): As COMPLEX_TYPE
8161 folding produces SAVE_EXPRs, thus return false for the type.
8162
8163 2016-07-07 Martin Liska <mliska@suse.cz>
8164
8165 * file-find.c (remove_prefix): New function.
8166 * file-find.h (remove_prefix): Declare the function.
8167 * gcc-ar.c (main): Skip a folder of the wrapper if
8168 a wrapped binary would point to the same file.
8169
8170 2016-07-07 Jan Hubicka <jh@suse.cz>
8171
8172 * tree-scalar-evolution.c (iv_can_overflow_p): export.
8173 * tree-scalar-evolution.h (iv_can_overflow_p): Declare.
8174 * tree-ssa-loop-ivopts.c (alloc_iv): Use it.
8175
8176 2016-07-07 Ilya Enkovich <ilya.enkovich@intel.com>
8177
8178 PR ipa/71624
8179 * ipa-inline-analysis.c (compute_inline_parameters): Set
8180 local.can_change_signature to false for intrumentation
8181 thunk callees.
8182
8183 2016-07-07 Thomas Preud'homme <thomas.preudhomme@arm.com>
8184
8185 * config/arm/arm.h (TARGET_USE_MOVT): Check MOVT/MOVW availability
8186 with TARGET_HAVE_MOVT.
8187 (TARGET_HAVE_MOVT): Define.
8188 * config/arm/arm.c (const_ok_for_op): Check MOVT/MOVW
8189 availability with TARGET_HAVE_MOVT.
8190 * config/arm/arm.md (arm_movt): Use TARGET_HAVE_MOVT to check MOVT
8191 availability.
8192 (addsi splitter): Use TARGET_THUMB && TARGET_HAVE_MOVT rather than
8193 TARGET_THUMB2.
8194 (symbol_refs movsi splitter): Remove TARGET_32BIT check.
8195 (arm_movtas_ze): Use TARGET_HAVE_MOVT to check MOVT availability.
8196 * config/arm/constraints.md (define_constraint "j"): Use
8197 TARGET_HAVE_MOVT to check MOVT availability.
8198
8199 2016-07-07 Thomas Preud'homme <thomas.preudhomme@arm.com>
8200
8201 * config/arm/arm-protos.h: Reindent FL_FOR_* macro definitions.
8202
8203 2016-07-07 Thomas Preud'homme <thomas.preudhomme@arm.com>
8204
8205 * config/arm/arm-arches.def (armv8-m.base): Define new architecture.
8206 (armv8-m.main): Likewise.
8207 (armv8-m.main+dsp): Likewise.
8208 * config/arm/arm-protos.h (FL_FOR_ARCH8M_BASE): Define.
8209 (FL_FOR_ARCH8M_MAIN): Likewise.
8210 * config/arm/arm-tables.opt: Regenerate.
8211 * config/arm/bpabi.h: Add armv8-m.base, armv8-m.main and
8212 armv8-m.main+dsp to BE8_LINK_SPEC.
8213 * config/arm/arm.h (TARGET_HAVE_LDACQ): Exclude ARMv8-M.
8214 (enum base_architecture): Add BASE_ARCH_8M_BASE and BASE_ARCH_8M_MAIN.
8215 * config/arm/arm.c (arm_arch_name): Increase size to work with ARMv8-M
8216 Baseline and Mainline.
8217 (arm_option_override_internal): Also disable arm_restrict_it when
8218 !arm_arch_notm. Update comment for -munaligned-access to also cover
8219 ARMv8-M Baseline.
8220 (arm_file_start): Increase buffer size for printing architecture name.
8221 * doc/invoke.texi: Document architectures armv8-m.base, armv8-m.main
8222 and armv8-m.main+dsp.
8223 (mno-unaligned-access): Clarify that this is disabled by default for
8224 ARMv8-M Baseline architectures as well.
8225
8226 2016-07-07 Thomas Preud'homme <thomas.preudhomme@arm.com>
8227
8228 * config/arm/elf.h: Use __ARM_ARCH_ISA_THUMB and __ARM_ARCH_ISA_ARM to
8229 decide whether to prevent some libgcc routines being included for some
8230 multilibs rather than __ARM_ARCH_6M__ and add comment to indicate the
8231 link between this condition and the one in
8232 libgcc/config/arm/lib1func.S.
8233
8234 2016-07-07 Richard Biener <rguenther@suse.de>
8235
8236 * tree-ssa-pre.c: Include alias.h.
8237 (compute_avail): If we have multiple VN_REFERENCEs with the
8238 same hashtable entry adjust that to make it a valid replacement
8239 for all of them with respect to alignment and aliasing
8240 when doing insertion.
8241 * tree-ssa-sccvn.h (vn_reference_operands_for_lookup): Declare.
8242 * tree-ssa-sccvn.c (vn_reference_operands_for_lookup): New function.
8243
8244 2016-07-06 Segher Boessenkool <segher@kernel.crashing.org>
8245
8246 PR target/70098
8247 PR target/71763
8248 * config/rs6000/rs6000.md (*ctr<mode>_internal1, *ctr<mode>_internal2,
8249 *ctr<mode>_internal5, *ctr<mode>_internal6): Add *wi to the output
8250 constraint.
8251
8252 2016-07-06 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
8253
8254 * var-tracking.c (struct adjust_mem_data): Make side_effects a vector.
8255 (adjust_mems): Adjust.
8256 (adjust_insn): Likewise.
8257 (prepare_call_arguments): Likewise.
8258
8259 2016-07-06 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
8260
8261 * gcse.c (struct ls_expr): Make stores field a vector.
8262 (ldst_entry): Adjust.
8263 (free_ldst_entry): Likewise.
8264 (print_ldst_list): Likewise.
8265 (compute_ld_motion_mems): Likewise.
8266 (update_ld_motion_stores): Likewise.
8267
8268 2016-07-06 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
8269
8270 * gcse.c (struct ls_expr): Remove loads field.
8271 (ldst_entry): Adjust.
8272 (free_ldst_entry): Likewise.
8273 (print_ldst_list): Likewise.
8274 (compute_ld_motion_mems): Likewise.
8275
8276 2016-07-06 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
8277
8278 * store-motion.c (struct st_expr): Make antic_stores a vector.
8279 (st_expr_entry): Adjust.
8280 (free_st_expr_entry): Likewise.
8281 (print_store_motion_mems): Likewise.
8282 (find_moveable_store): Likewise.
8283 (compute_store_table): Likewise.
8284 (remove_reachable_equiv_notes): Likewise.
8285 (replace_store_insn): Likewise.
8286 (build_store_vectors): Likewise.
8287
8288 2016-07-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8289
8290 * config/arm/driver-arm.c (arm_cpu_table): Add entries for cortex-a32,
8291 cortex-a35, cortex-a53, cortex-a57, cortex-a72, cortex-a73.
8292
8293 2016-07-06 Yuri Rumyantsev <ysrumyan@gmail.com>
8294
8295 PR tree-optimization/71518
8296 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Adjust
8297 misalign also for outer loops with negative step.
8298
8299 2016-07-06 Wilco Dijkstra <wdijkstr@arm.com>
8300
8301 * config/arm/cortex-a53.md: Use final_presence_set for in-order.
8302 (cortex_a53_shift): Add mov_shift.
8303 (cortex_a53_shift_reg): Add new reservation for register shifts.
8304 (cortex_a53_alu): Remove bfm.
8305 (cortex_a53_alu_shift): Add bfm, remove mov_shift.
8306 (cortex_a53_alu_extr): Add new reservation for EXTR.
8307 (bypasses): Improve bypass modelling.
8308
8309 2016-07-06 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
8310
8311 PR target/50739
8312 * config/avr/avr.c (avr_asm_select_section): Strip off
8313 SECTION_DECLARED from flags when calling get_section.
8314
8315 2016-07-06 Richard Sandiford <richard.sandiford@arm.com>
8316
8317 * tree-vectorizer.h (vect_memory_access_type): Add
8318 VMAT_INVARIANT, VMAT_CONTIGUOUS_DOWN and VMAT_CONTIGUOUS_REVERSED.
8319 * tree-vect-stmts.c (compare_step_with_zero): New function.
8320 (perm_mask_for_reverse): Move further up file.
8321 (get_group_load_store_type): Stick to VMAT_ELEMENTWISE if the
8322 step is negative.
8323 (get_negative_load_store_type): New function.
8324 (get_load_store_type): Call it. Add an ncopies argument.
8325 (vectorizable_mask_load_store): Update call accordingly and
8326 remove tests for negative steps.
8327 (vectorizable_store, vectorizable_load): Likewise. Handle new
8328 memory_access_types.
8329
8330 2016-07-06 Richard Sandiford <richard.sandiford@arm.com>
8331
8332 * tree-vectorizer.h (vect_memory_access_type): New enum.
8333 (_stmt_vec_info): Add a memory_access_type field.
8334 (STMT_VINFO_MEMORY_ACCESS_TYPE): New macro.
8335 (vect_model_store_cost): Take an access type instead of a boolean.
8336 (vect_model_load_cost): Likewise.
8337 * tree-vect-slp.c (vect_analyze_slp_cost_1): Update calls to
8338 vect_model_store_cost and vect_model_load_cost.
8339 * tree-vect-stmts.c (vec_load_store_type): New enum.
8340 (vect_model_store_cost): Take an access type instead of a
8341 store_lanes_p boolean. Simplify tests.
8342 (vect_model_load_cost): Likewise, but for load_lanes_p.
8343 (get_group_load_store_type, get_load_store_type): New functions.
8344 (vectorizable_store): Use get_load_store_type. Record the access
8345 type in STMT_VINFO_MEMORY_ACCESS_TYPE.
8346 (vectorizable_load): Likewise.
8347 (vectorizable_mask_load_store): Likewise. Replace is_store
8348 variable with vls_type.
8349
8350 2016-07-06 Richard Sandiford <richard.sandiford@arm.com>
8351
8352 * tree-vectorizer.h (vect_grouped_load_supported): Add a
8353 single_element_p parameter.
8354 * tree-vect-data-refs.c (vect_grouped_load_supported): Likewise.
8355 Check the PR65518 case here rather than in vectorizable_load.
8356 * tree-vect-loop.c (vect_analyze_loop_2): Update call accordignly.
8357 * tree-vect-stmts.c (vectorizable_load): Likewise.
8358
8359 2016-07-06 Richard Sandiford <richard.sandiford@arm.com>
8360
8361 * tree-vectorizer.h (gather_scatter_info): New structure.
8362 (vect_check_gather_scatter): Return a bool rather than a decl.
8363 Replace return-by-pointer arguments with a single
8364 gather_scatter_info *.
8365 * tree-vect-data-refs.c (vect_check_gather_scatter): Likewise.
8366 (vect_analyze_data_refs): Update call accordingly.
8367 * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Likewise.
8368 (vectorizable_mask_load_store): Likewise. Also record the
8369 offset dt and vectype in the gather_scatter_info.
8370 (vectorizable_store): Likewise.
8371 (vectorizable_load): Likewise.
8372
8373 2016-07-06 Richard Sandiford <richard.sandiford@arm.com>
8374
8375 * tree-vect-stmts.c (vect_model_store_cost): For non-SLP
8376 strided groups, use the cost of N scalar accesses instead
8377 of ncopies vector accesses.
8378 (vect_model_load_cost): Likewise.
8379
8380 2016-07-06 Richard Sandiford <richard.sandiford@arm.com>
8381
8382 * tree-vect-stmts.c (vect_cost_group_size): Delete.
8383 (vect_model_store_cost): Avoid calling it. Use first_stmt_p
8384 variable to indicate when once-per-group costs are being used.
8385 (vect_model_load_cost): Likewise. Fix comment and misindented code.
8386
8387 2016-07-06 Richard Sandiford <richard.sandiford@arm.com>
8388
8389 * tree-vect-stmts.c (vectorizable_load): Remove unnecessary
8390 peeling-for-gaps condition.
8391
8392 2016-07-06 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
8393
8394 * config/s390/s390.c (s390_expand_vec_init): Force initializer
8395 element to register if it doesn't match general_operand.
8396
8397 2016-07-05 Michael Meissner <meissner@linux.vnet.ibm.com>
8398 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
8399
8400 * config/rs6000/rs6000-protos.h (rs6000_split_signbit): New
8401 prototype.
8402 * config/rs6000/rs6000.c (rs6000_split_signbit): New function.
8403 * config/rs6000/rs6000.md (UNSPEC_SIGNBIT): New constant.
8404 (SIGNBIT): New mode iterator.
8405 (Fsignbit): New mode attribute.
8406 (signbit<mode>2): Change operand1 to match FLOAT128 instead of
8407 IBM128; dispatch to gen_signbit{kf,tf}2_dm for __float128
8408 when direct moves are available.
8409 (signbit<mode>2_dm): New define_insn_and_split).
8410 (signbit<mode>2_dm2): New define_insn.
8411
8412 2016-07-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8413
8414 PR rtl-optimization/71594
8415 * ifcvt.c (noce_convert_multiple_sets): Wrap new_val or old_val
8416 into subregs of appropriate mode before trying to emit a conditional
8417 move.
8418
8419 2016-07-05 Jan Hubicka <jh@suse.cz>
8420
8421 * tree-scalar-evolution.c (iv_can_overflow_p): New function.
8422 (simple_iv): Use it.
8423
8424 2016-07-05 Jan Hubicka <jh@suse.cz>
8425
8426 * tree-ssa-loop-niter.c (nowrap_type_p): Use ANY_INTEGRAL_TYPE_P.
8427
8428 2016-07-05 Jiong Wang <jiong.wang@arm.com>
8429
8430 * lra-constraints.c (process_alt_operands): Don't add spilling cost for
8431 "offmemok".
8432
8433 2016-07-05 Jan Hubicka <jh@suse.cz>
8434
8435 * tree-scalar-evoluiton.c (simple_iv): Use nowrap_type to check if
8436 IV can overflow.
8437
8438 2016-07-05 Richard Biener <rguenther@suse.de>
8439
8440 * gimple-ssa-split-paths.c (find_block_to_duplicate_for_splitting_pa):
8441 Handle empty else block.
8442 (is_feasible_trace): Likewise.
8443 (split_paths): Likewise.
8444
8445 2016-07-05 Richard Biener <rguenther@suse.de>
8446
8447 * tree-loop-distribution.c (distribute_loop): Fix issue with
8448 the cost model loop.
8449
8450 2016-07-05 Christophe Lyon <christophe.lyon@linaro.org>
8451
8452 * config/arm/neon-testgen.ml: Delete.
8453 * config/arm/neon.ml: Delete.
8454
8455 2016-07-04 Jakub Jelinek <jakub@redhat.com>
8456
8457 PR c++/71739
8458 * tree.c (attribute_value_equal): Use get_attribute_name instead of
8459 directly using TREE_PURPOSE.
8460
8461 2016-07-04 Jiong Wang <jiong.wang@arm.com>
8462
8463 * config/aarch64/aarch64.h: Rename "ARMv8.1" to "ARMv8.1-A".
8464 * config/aarch64/aarch64_neon.h: Likewise.
8465 * config/aarch64/arm_neon.h: Likewise.
8466 * config/aarch64/atomics.md: Likewise.
8467 * config/aarch64/aarch64-simd-builtins.def: Likewise.
8468 * doc/invoke.texi: Likewise.
8469
8470 2016-07-04 Dominik Vogt <vogt@linux.vnet.ibm.com>
8471
8472 * config/s390/s390.md: Add "z13" cpu_facility.
8473 ("*mov<mode>cc"): Add support for z13 instructions lochi and locghi.
8474 * config/s390/predicates.md ("loc_operand"): New predicate for "load on
8475 condition" type instructions.
8476
8477 2016-07-04 Dominik Vogt <vogt@linux.vnet.ibm.com>
8478 Jeff Law <law@redhat.com>
8479
8480 * explow.c (allocate_dynamic_stack_space): Simplify knowing that
8481 MUST_ALIGN was always true and extra_align ist always BITS_PER_UNIT.
8482
8483 2016-07-04 Yuri Rumyantsev <ysrumyan@gmail.com>
8484
8485 * config/i386/i386.c (ix86_expand_vec_perm): Add handle one-operand
8486 permutation for TARGET_AVX512F.
8487 (ix86_expand_vec_one_operand_perm_avx512): New function.
8488 (expand_vec_perm_1): Invoke introduced function.
8489 * tree-vect-loop.c (vect_transform_loop): Clear-up safelen value since
8490 it may be not valid after vectorization.
8491
8492 2016-07-04 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
8493
8494 PR target/63874
8495 * config/aarch64/aarch64.c (aarch64_classify_symbol): Fix
8496 typo in comment. Only force to memory if it is a weak
8497 external reference.
8498
8499 2016-07-04 Matthew Wahab <matthew.wahab@arm.com>
8500 Jiong Wang <jiong.wang@arm.com>
8501
8502 * config/aarch64/aarch64-arches.def: Add "armv8.2-a".
8503 * config/aarch64/aarch64.h (AARCH64_FL_V8_2): New.
8504 (AARCH64_FL_F16): New.
8505 (AARCH64_FL_FOR_ARCH8_2): New.
8506 (AARCH64_ISA_8_2): New.
8507 (AARCH64_ISA_F16): New.
8508 (TARGET_FP_F16INST): New.
8509 (TARGET_SIMD_F16INST): New.
8510 * config/aarch64/aarch64-option-extensions.def ("fp16"): New entry.
8511 ("fp"): Disabling "fp" also disables "fp16".
8512 * config/aarch64/aarch64-c.c (arch64_update_cpp_builtins):
8513 Conditionally define __ARM_FEATURE_FP16_SCALAR_ARITHMETIC
8514 and __ARM_FEATURE_FP16_VECTOR_ARITHMETIC.
8515 * doc/invoke.texi (AArch64 Options): Document "armv8.2-a" and "fp16".
8516
8517 2016-07-04 Jan Beulich <jbeulich@suse.com>
8518
8519 * gcc.c (default_compilers["@c-header"]): Conditionalize "-o".
8520
8521 2016-07-01 Michael Meissner <meissner@linux.vnet.ibm.com>
8522
8523 PR target/71720
8524 * config/rs6000/vsx.md (vsx_splat_v4sf_internal): When splitting
8525 the insns, use an insn form that does not adjust the offset on
8526 little endian systems.
8527
8528 2016-07-01 Jan Beulich <jbeulich@suse.com>
8529
8530 * varasm.c (get_variable_section): Validate initializer in
8531 named .bss-like sections.
8532
8533 2016-07-01 Kelvin Nilsen <kelvin@gcc.gnu.org>
8534
8535 * config/rs6000/altivec.md (*altivec_vpermr_<mode>_internal):
8536 Exchange the order of the second and third operands in the vpermr
8537 instruction tmeplate.
8538
8539 2016-07-01 Peter Bergner <bergner@vnet.ibm.com>
8540
8541 PR target/71698
8542 * config/rs6000/rs6000.c (rs6000_secondary_reload_simple_move):
8543 Disallow TDmode values.
8544
8545 2016-07-01 Alan Modra <amodra@gmail.com>
8546
8547 PR rtl-optimization/71709
8548 * ira-lives.c (find_call_crossed_cheap_reg): Exit loop on arg reg
8549 being set, not referenced.
8550
8551 2016-07-01 Yuri Rumyantsev <ysrumyan@gmail.com>
8552
8553 PR tree-optimization/70729
8554 * tree-vectorizer.c (adjust_simduid_builtins): Nullify safelen field
8555 of loop since it can be not valid after transformation.
8556
8557 2016-07-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8558
8559 * config/arm/arm.c (thumb_reload_in_hi): Delete.
8560 * config/arm/arm-protos.h (thumb_reload_in_hi): Delete prototype.
8561
8562 2016-07-01 Eric Botcazou <ebotcazou@adacore.com>
8563
8564 * config/arm/arm.c (arm_function_ok_for_sibcall): Add another check
8565 for NULL decl.
8566
8567 2016-06-30 Michael Meissner <meissner@linux.vnet.ibm.com>
8568
8569 PR target/71677
8570 * config/rs6000/constraints.md (wY constraint): New constraint to
8571 match the requirements for the LXSD and STXSD instructions.
8572 * config/rs6000/predicates.md (offsettable_mem_14bit_operand): New
8573 predicate to match the requirements for the LXSD and STXSD
8574 instructions.
8575 * config/rs6000/rs6000.md (mov<mode>_hardfloat32, FMOVE64 case):
8576 Use constaint wY for LXSD/STXSD instructions instead of 'o' or 'Y'
8577 to make sure that the bottom 2 bits of offset are 0, the address
8578 form is offsettable, and no updating is done in the address mode.
8579 (mov<mode>_hardfloat64, FMOVE64 case): Likewise.
8580 (movdi_internal32): Likewise
8581 (movdi_internal64): Likewise.
8582
8583 2016-06-30 Jakub Jelinek <jakub@redhat.com>
8584
8585 PR tree-optimization/71707
8586 * tree-ssa-strlen.c (get_stridx_plus_constant): Handle already present
8587 strinfo even for ADDR_EXPR ptr.
8588
8589 2016-06-30 Kelvin Nilsen <kelvin@gcc.gnu.org>
8590
8591 * config/rs6000/altivec.md (darn_32): Change the condition to
8592 TARGET_P9_MISC instead of TARGET_MODULO.
8593 (darn_raw): Replace TARGET_MODULO with TARGET_P9_MISC in the
8594 condition expression.
8595 (darn): Replace TARGET_MODULO with TARGET_P9_MISC in the
8596 condition expression.
8597 * config/rs6000/dfp.md (UNSPEC_DTSTSFI): New unspec constant.
8598 (DFP_TEST): New code iterator.
8599 (dfptstsfi_<code>_mode>): New define_expand.
8600 (*dfp_sgnfcnc_<mode>): New define_insn.
8601 * config/rs6000/rs6000-builtin.def (BU_P9_MISC_0): Move this macro
8602 definition next to BU_P9_MISC_1 definition and change the MASK
8603 value to RS6000_BTM_P9_MISC.
8604 (BU_P9_MISC_1): Change the MASK value to RS6000_BTM_P9_MISC.
8605 (BU_P9_64BIT_MISC_0): Likewise.
8606 (BU_P9_DFP_MISC_0): New macro definition.
8607 (BU_P9_DFP_MISC_1): New macro definition.
8608 (BU_P9_DFP_MISC_2): New macro definition.
8609 (BU_P9_DFP_OVERLOAD_1): New macro definition.
8610 (BU_P9_DFP_OVERLOAD_2): New macro definition.
8611 (BU_P9_DFP_OVERLOAD_3): New macro definition.
8612 (TSTSFI_LT_DD): New BU_P9_DFP_MISC_2.
8613 (TSTSFI_LT_TD): Likewise.
8614 (TSTSFI_EQ_DD): Likewise.
8615 (TSTSFI_EQ_TD): Likewise.
8616 (TSTSFI_GT_DD): Likewise.
8617 (TSTSFI_GT_TD): Likewise.
8618 (TSTSFI_OV_DD): Likewise.
8619 (TSTSFI_OV_TD): Likewise.
8620 (TSTSFI_LT): New BU_P9_DFP_OVERLOAD_2.
8621 (TSTSFI_LT_DD): Likewise.
8622 (TSTSFI_LT_TD): Likewise.
8623 (TSTSFI_EQ): Likewise.
8624 (TSTSFI_EQ_DD): Likewise.
8625 (TSTSFI_EQ_TD): Likewise.
8626 (TSTSFI_GT): Likewise.
8627 (TSTSFI_GT_DD): Likewise.
8628 (TSTSFI_GT_TD): Likewise.
8629 (TSTSFI_OV): Likewise.
8630 (TSTSFI_OV_DD): Likewise.
8631 (TSTSFI_OV_TD): Likewise.
8632 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
8633 overloaded test significance functions.
8634 * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Add
8635 OPTION_MASK_P9_MISC into the representation of this mask.
8636 (POWERPC_MASKS): Add OPTION_MASK_P9_MISC into the representation
8637 of this mask.
8638 * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Set the
8639 RS6000_BTM_P9_MISC flag in the return value if TARGET_P9_MISC is
8640 non-zero.
8641 (rs6000_expand_binop_builtin): Enforce that argument 0 of the exp
8642 argument is a 6-bit unsigned literal value if the icode argument
8643 represents a DFP test significance built-in call.
8644 (rs6000_invalid_builtin): Add support for the RS6000_BTM_P9_MISC
8645 flag used independently and in combination with the
8646 RS6000_BTM_64BIT flag.
8647 (rs6000_opt_masks): Add entry for power9-misc command-line option.
8648 (rs6000_builtin_mask_names): Add entry for power9-misc
8649 command-line option.
8650 * config/rs6000/rs6000.h: Redefine TARGET_P9_MISC as 0 if
8651 HAVE_AS_POWER9 is not a defined macro. Define MASK_P9_MISC and
8652 RS6000_BTM_P9_MISC macros.
8653 * config/rs6000/rs6000.opt: Add support for the -mpower9-misc
8654 option and change the description of the -mpower9-vector option to
8655 enable only vector instructions, removing its erroneously claimed
8656 support for scalar instructions.
8657 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
8658 the ISA 3.0 digital floating point test significance built-in
8659 functions.
8660
8661 2016-06-30 Wilco Dijkstra <wdijkstr@arm.com>
8662
8663 * config/aarch64/aarch64.c (cortexa35_tunings):
8664 Enable AES fusion. Use cortexa57_branch_cost.
8665 (cortexa53_tunings): Use cortexa57_branch_cost.
8666 (cortexa72_tunings): Use cortexa57_branch_cost.
8667 Use AUTOPREFETCHER_WEAK.
8668 (cortexa73_tunings): Use cortexa57_branch_cost.
8669
8670 2016-06-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8671 James Greenhalgh <james.greenhalgh@arm.com>
8672
8673 * config/aarch64/arm_neon.h (vcopyq_lane_f32, vcopyq_lane_f64,
8674 vcopyq_lane_p8, vcopyq_lane_p16, vcopyq_lane_s8, vcopyq_lane_s16,
8675 vcopyq_lane_s32, vcopyq_lane_s64, vcopyq_lane_u8, vcopyq_lane_u16,
8676 vcopyq_lane_u32, vcopyq_lane_u64): Reimplement in C.
8677 (vcopy_lane_f32, vcopy_lane_f64, vcopy_lane_p8, vcopy_lane_p16,
8678 vcopy_lane_s8, vcopy_lane_s16, vcopy_lane_s32, vcopy_lane_s64,
8679 vcopy_lane_u8, vcopy_lane_u16, vcopy_lane_u32, vcopy_lane_u64,
8680 vcopy_laneq_f32, vcopy_laneq_f64, vcopy_laneq_p8, vcopy_laneq_p16,
8681 vcopy_laneq_s8, vcopy_laneq_s16, vcopy_laneq_s32, vcopy_laneq_s64,
8682 vcopy_laneq_u8, vcopy_laneq_u16, vcopy_laneq_u32, vcopy_laneq_u64,
8683 vcopyq_laneq_f32, vcopyq_laneq_f64, vcopyq_laneq_p8, vcopyq_laneq_p16,
8684 vcopyq_laneq_s8, vcopyq_laneq_s16, vcopyq_laneq_s32, vcopyq_laneq_s64,
8685 vcopyq_laneq_u8, vcopyq_laneq_u16, vcopyq_laneq_u32, vcopyq_laneq_u64):
8686 New intrinsics.
8687
8688 2016-06-30 James Greenhalgh <james.greenhalgh@arm.com>
8689 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8690
8691 * config/aarch64/aarch64-simd.md (*aarch64_simd_vec_copy_lane<mode>):
8692 New define_insn.
8693 (*aarch64_simd_vec_copy_lane_<vswap_width_name><mode>): Likewise.
8694
8695 2016-06-30 David Malcolm <dmalcolm@redhat.com>
8696
8697 PR driver/71651
8698 * gcc.c (driver::build_option_suggestions): Pass "option" to
8699 add_misspelling_candidates.
8700 * opts-common.c (add_misspelling_candidates): Add "option" param;
8701 use it to avoid adding negated forms for options marked with
8702 RejectNegative.
8703 * opts.h (add_misspelling_candidates): Add "option" param.
8704
8705 2016-06-30 Jakub Jelinek <jakub@redhat.com>
8706
8707 PR middle-end/71693
8708 * fold-const.c (fold_binary_loc) <case RROTATE_EXPR>: Cast
8709 TREE_OPERAND (arg0, 0) and TREE_OPERAND (arg0, 1) to type
8710 first when permuting bitwise operation with rotate. Cast
8711 TREE_OPERAND (arg0, 0) to type when cancelling two rotations.
8712
8713 2016-06-29 David Malcolm <dmalcolm@redhat.com>
8714
8715 * opts.c (handle_param): Use find_param_fuzzy to offer suggestions
8716 for misspelled param names.
8717 * params.c: Include spellcheck.h.
8718 (find_param_fuzzy): New function.
8719 * params.h (find_param_fuzzy): New prototype.
8720 * spellcheck.c (struct edit_distance_traits<const char *>): Move to...
8721 * spellcheck.h (struct edit_distance_traits<const char *>):
8722 ...here.
8723
8724 2016-06-29 Michael Meissner <meissner@linux.vnet.ibm.com>
8725
8726 * config/rs6000/predicates.md (const_0_to_7_operand): New
8727 predicate, recognize 0..7.
8728 * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
8729 support for doing extracts from V16QImode, V8HImode, V4SImode
8730 under ISA 3.0.
8731 * config/rs6000/vsx.md (VSX_EXTRACT_I): Mode iterator for ISA 3.0
8732 vector extract support.
8733 (VSX_EXTRACT_PREDICATE): Mode attribute to validate element number
8734 for ISA 3.0 vector extract.
8735 (VSX_EX): Constraints to use for ISA 3.0 vector extract.
8736 (vsx_extract_<mode>, VSX_EXTRACT_I): Add support for doing
8737 extracts of a constant element number from small integer vectors
8738 on 64-bit ISA 3.0 systems.
8739 (vsx_extract_<mode>_di): Likewise.
8740 * config/rs6000/rs6000.h (TARGET_VEXTRACTUB): New target macro to
8741 say when we can do ISA 3.0 vector extracts.
8742 * config/rs6000/rs6000.md (stfiwx): Allow DImode in Altivec
8743 registers, using the stxsiwx instruction.
8744
8745 2016-06-29 Jim Wilson <jim.wilson@linaro.org>
8746
8747 * config/aarch64/aarch64-cores.def (qdf24xx): Use qdf24xx tuning.
8748 * config/aarch64/aarch64.c (qdf24xx_addrcost_table,
8749 qdf24xx_regmove_cost, qdf24xx_tunings): New.
8750 * config/arm/aarch64-cost-tables.h (qdf24xx_extra_costs): New.
8751 * config/arm/arm-cores.def (qdf24xx): Use qdf24xx tuning.
8752 * config/arm/arm.c (arm_qdf24xx_tune): New.
8753
8754 2016-06-29 Wilco Dijkstra <wdijkstr@arm.com>
8755
8756 * config/aarch64/aarch64.c (cortexa53_tunings):
8757 Increase loop alignment to 8. Set function alignment to 16.
8758 (cortexa35_tunings): Likewise.
8759 (cortexa57_tunings): Increase loop alignment to 8.
8760 (cortexa72_tunings): Likewise.
8761 (cortexa73_tunings): Likewise.
8762
8763 2016-06-29 Matthew Wahab <matthew.wahab@arm.com>
8764
8765 * doc/sourcebuild.texi (Effective-Target keywords): Add entries
8766 for arm_fp16_ok and arm_fp16_hw.
8767 (Add Options): Add entries for arm_fp16, arm_fp16_ieee and
8768 arm_fp16_alternative.
8769
8770 2016-06-29 Ilya Enkovich <ilya.enkovich@intel.com>
8771
8772 PR tree-optimization/71655
8773 * tree-vect-stmts.c (vectorizable_comparison): Swap definition
8774 types when swapping operands.
8775
8776 2016-06-29 Martin Liska <mliska@suse.cz>
8777
8778 PR middle-end/71585
8779 * common.opt (flag_stack_protect): Mark the flag as optimization flag.
8780 * ipa-inline-transform.c (inline_call): Remove unnecessary call
8781 of build_optimization_node.
8782
8783 2016-06-29 Yuri Rumyantsev <ysrumyan@gmail.com>
8784
8785 PR tree-optimization/70729
8786 * tree-ssa-loop-im.c (ref_indep_loop_p_1): Consider memory reference as
8787 independent in loops having positive safelen value.
8788 * tree-vect-loop.c (vect_transform_loop): Clear-up safelen value since
8789 it may be not valid after vectorization.
8790
8791 2016-06-29 Jakub Jelinek <jakub@redhat.com>
8792
8793 PR tree-optimization/71625
8794 * tree-ssa-strlen.c (get_addr_stridx): Add PTR argument. Assume list
8795 is sorted by ascending list->offset. If PTR is non-NULL and there is
8796 previous strinfo, call get_stridx_plus_constant.
8797 (get_stridx): Pass exp as second argument to get_addr_stridx.
8798 (addr_stridxptr): Add missing list = list->next, so that there can be
8799 more than one entries in the list. Bump limit from 16 to 32. Ensure
8800 the list is sorted by ascending list->offset.
8801 (get_stridx_plus_constant): Adjust so that it can be also called with
8802 ADDR_EXPR instead of SSA_NAME as PTR.
8803 (handle_char_store): Pass NULL_TREE as second argument to
8804 get_addr_stridx.
8805
8806 2016-06-29 Richard Biener <rguenther@suse.de>
8807
8808 PR rtl-optimization/68961
8809 * simplify-rtx.c (simplify_subreg): Handle VEC_CONCAT like CONCAT.
8810
8811 2016-06-29 Richard Biener <rguenther@suse.de>
8812
8813 PR middle-end/71002
8814 * alias.c (component_uses_parent_alias_set_from): Handle
8815 type punning through union accesses by using the union alias set.
8816 * gimple.c (gimple_get_alias_set): Remove union type punning case.
8817
8818 2016-07-29 Richard Biener <rguenther@suse.de>
8819
8820 * match.pd ((T)(T2)x -> (T)x): Remove restriction on final
8821 precision not matching mode precision.
8822
8823 2016-06-28 John David Anglin <danglin@gcc.gnu.org>
8824
8825 * config/pa/pa.md (call_symref_64bit_post_reload): Don't call
8826 pa_output_arg_descriptor.
8827 (call_val_symref_64bit_post_reload): Likewise.
8828 (call_val_powf_64bit_post_reload): Likewise.
8829 (sibcall_internal_symref_64bit): Likewise.
8830 (sibcall_value_internal_symref_64bit): Likewise.
8831
8832 2016-06-28 Jakub Jelinek <jakub@redhat.com>
8833
8834 PR middle-end/71626
8835 * config/i386/i386.c (ix86_expand_vector_move): For SUBREG of
8836 a constant, force its SUBREG_REG into memory or register instead
8837 of whole op1.
8838
8839 2016-06-28 Pitchumani Sivanupandi <pitchumani.s@atmel.com>
8840
8841 PR target/58655
8842 * config/avr/avr.opt (-mfract-convert-truncate): Update description.
8843 * doc/invoke.texi (AVR Options): Document it.
8844
8845 2016-06-28 Walter Lee <walt@tilera.com>
8846
8847 * config/tilegx/linux.h: Do not include arch/icache.h
8848 (CLEAR_INSN_CACHE): Provide inlined definition directly.
8849 * config/tilepro/linux.h: Do not include arch/icache.h
8850 (CLEAR_INSN_CACHE): Provide inlined definition directly.
8851
8852 2016-06-28 Wilco Dijkstra <wdijkstr@arm.com>
8853
8854 * tree-ssa-math-opts.c (find_bswap_or_nop_1): Adjust bitnumbering
8855 for big-endian BIT_FIELD_REF.
8856
8857 2016-06-28 Pat Haugen <pthaugen@us.ibm.com>
8858
8859 * config/rs6000/rs6000.md ('type' attribute): Add htmsimple/dfp types.
8860 ('size' attribute): Add '128'.
8861 Include power9.md.
8862 (*mov<mode>_hardfloat32, *mov<mode>_hardfloat64, *movdi_internal32,
8863 *movdi_internal64, *movdf_update1): Set size attribute to '64'.
8864 (add<mode>3, sub<mode>3, mul<mode>3, div<mode>3, sqrt<mode>2,
8865 copysign<mode>3, neg<mode>2_hw, abs<mode>2_hw, *nabs<mode>2_hw,
8866 *fma<mode>4_hw, *fms<mode>4_hw, *nfma<mode>4_hw, *nfms<mode>4_hw,
8867 extend<SFDF:mode><IEEE128:mode>2_hw, trunc<mode>df2_hw,
8868 *xscvqp<su>wz_<mode>, *xscvqp<su>dz_<mode>, *xscv<su>dqp_<mode>,
8869 *trunc<mode>df2_odd): Set size attribute to '128'.
8870 (*cmp<mode>_hw): Change type to veccmp and set size attribute to '128'.
8871 * config/rs6000/power6.md (power6-fp): Include dfp type.
8872 * config/rs6000/power7.md (power7-fp): Likewise.
8873 * config/rs6000/power8.md (power8-fp): Likewise.
8874 * config/rs6000/power9.md: New file.
8875 * config/rs6000/t-rs6000 (MD_INCLUDES): Add power9.md.
8876 * config/rs6000/htm.md (*tabort, *tabort<wd>c, *tabort<wd>ci,
8877 *trechkpt, *treclaim, *tsr, *ttest): Change type attribute to
8878 htmsimple.
8879 * config/rs6000/dfp.md (extendsddd2, truncddsd2, extendddtd2,
8880 trunctddd2, adddd3, addtd3, subdd3, subtd3, muldd3, multd3, divdd3,
8881 divtd3, *cmpdd_internal1, *cmptd_internal1, floatdidd2, floatditd2,
8882 ftruncdd2, fixdddi2, ftrunctd2, fixtddi2, dfp_ddedpd_<mode>,
8883 dfp_denbcd_<mode>, dfp_dxex_<mode>, dfp_diex_<mode>, dfp_dscli_<mode>,
8884 dfp_dscri_<mode>): Change type attribute to dfp.
8885 * config/rs6000/crypto.md (crypto_vshasigma<CR_char>): Change type
8886 attribute to vecsimple.
8887 * config/rs6000/rs6000.c (power9_cost): Update costs, cache size
8888 and prefetch streams.
8889 (rs6000_option_override_internal): Remove temporary code setting
8890 tuning to power8. Don't set rs6000_sched_groups for power9.
8891 (last_scheduled_insn): Change to rtx_insn *.
8892 (divide_cnt, vec_load_pendulum): New variables.
8893 (rs6000_adjust_cost): Add Power9 to test for store->load separation.
8894 (rs6000_issue_rate): Set issue rate for Power9.
8895 (is_power9_pairable_vec_type): New.
8896 (power9_sched_reorder2): New.
8897 (rs6000_sched_reorder2): Call new function for Power9 specific
8898 reordering.
8899 (insn_must_be_first_in_group): Remove Power9.
8900 (insn_must_be_last_in_group): Likewise.
8901 (force_new_group): Likewise.
8902 (rs6000_sched_init): Fix initialization of last_scheduled_insn.
8903 Initialize divide_cnt/vec_load_pendulum.
8904 (_rs6000_sched_context, rs6000_init_sched_context,
8905 rs6000_set_sched_context): Handle context save/restore of new
8906 variables.
8907
8908 2016-06-28 Richard Biener <rguenther@suse.de>
8909
8910 * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p):
8911 Properly handle DECL_BIT_FIELD_REPRESENTATIVE occuring as
8912 COMPONENT_REF operand.
8913 (nonoverlapping_component_refs_p): Likewise.
8914 * stor-layout.c (start_bitfield_representative): Mark
8915 DECL_BIT_FIELD_REPRESENTATIVE as DECL_NONADDRESSABLE_P.
8916
8917 2016-06-28 Jakub Jelinek <jakub@redhat.com>
8918
8919 * Makefile.in: Don't cat ../stage_current if it does not exist.
8920
8921 * doc/extend.texi (__builtin_add_overflow_p): Clarify behavior when
8922 last argument is a bit-field.
8923
8924 PR rtl-optimization/71673
8925 * internal-fn.c (expand_arith_overflow_result_store): Use
8926 OPTAB_LIB_WIDEN instead of OPTAB_DIRECT as last argument to
8927 expand_simple_binop.
8928
8929 PR middle-end/66867
8930 * builtins.c (expand_ifn_atomic_compare_exchange_into_call,
8931 expand_ifn_atomic_compare_exchange): New functions.
8932 * internal-fn.c (expand_ATOMIC_COMPARE_EXCHANGE): New function.
8933 * tree.h (build_call_expr_internal_loc): Rename to ...
8934 (build_call_expr_internal_loc_array): ... this. Fix up type of
8935 last argument.
8936 * internal-fn.def (ATOMIC_COMPARE_EXCHANGE): New internal fn.
8937 * predict.c (expr_expected_value_1): Handle IMAGPART_EXPR of
8938 ATOMIC_COMPARE_EXCHANGE result.
8939 * builtins.h (expand_ifn_atomic_compare_exchange): New prototype.
8940 * gimple-fold.h (optimize_atomic_compare_exchange_p,
8941 fold_builtin_atomic_compare_exchange): New prototypes.
8942 * gimple-fold.c (optimize_atomic_compare_exchange_p,
8943 fold_builtin_atomic_compare_exchange): New functions..
8944 * tree-ssa.c (execute_update_addresses_taken): If
8945 optimize_atomic_compare_exchange_p, ignore &var in 2nd argument
8946 of call when finding addressable vars, and if such var becomes
8947 non-addressable, call fold_builtin_atomic_compare_exchange.
8948
8949 2016-06-27 Segher Boessenkool <segher@kernel.crashing.org>
8950
8951 PR target/71670
8952 * config/rs6000/rs6000.md (ashdi3_extswsli_dot): Use
8953 gen_ashdi3_extswsli_dot2 instead of gen_ashdi3_extswsli_dot.
8954
8955 2016-06-27 Pat Haugen <pthaugen@us.ibm.com>
8956
8957 * config/rs6000/rs6000.md ('type' attribute): Add
8958 veclogical,veccmpfx,vecexts,vecmove insn types.
8959 (*abs<mode>2_fpr, *nabs<mode>2_fpr, *neg<mode>2_fpr, *extendsfdf2_fpr,
8960 copysign<mode>3_fcpsgn, trunc<mode>df2_internal1, neg<mode>2_internal,
8961 p8_fmrgow_<mode>, pack<mode>): Change type to fpsimple.
8962 (*xxsel<mode>, copysign<mode>3_hard, neg<mode>2_hw, abs<mode>2_hw,
8963 *nabs<mode>2_hw): Change type to vecmove.
8964 (*and<mode>3_internal, *bool<mode>3_internal, *boolc<mode>3_internal,
8965 *boolcc<mode>3_internal, *eqv<mode>3_internal,
8966 *one_cmpl<mode>3_internal, *ieee_128bit_vsx_neg<mode>2_internal,
8967 *ieee_128bit_vsx_abs<mode>2_internal,
8968 *ieee_128bit_vsx_nabs<mode>2_internal, extendkftf2, trunctfkf2,
8969 *ieee128_mfvsrd_64bit, *ieee128_mfvsrd_32bit, *ieee128_mtvsrd_64bit,
8970 *ieee128_mtvsrd_32bit): Change type to veclogical.
8971 (mov<mode>_hardfloat, *mov<mode>_hardfloat32, *mov<mode>_hardfloat64,
8972 *movdi_internal32, *movdi_internal64): Update insn types.
8973 * config/rs6000/vsx.md (*vsx_le_undo_permute_<mode>,
8974 vsx_extract_<mode>): Change type to veclogical.
8975 (*vsx_xxsel<mode>, *vsx_xxsel<mode>_uns): Change type to vecmove.
8976 (vsx_sign_extend_qi_<mode>, *vsx_sign_extend_hi_<mode>,
8977 *vsx_sign_extend_si_v2di): Change type to vecexts.
8978 * config/rs6000/altivec.md (*altivec_mov<mode>, *altivec_movti): Change
8979 type to veclogical.
8980 (*altivec_eq<mode>, *altivec_gt<mode>, *altivec_gtu<mode>,
8981 *altivec_vcmpequ<VI_char>_p, *altivec_vcmpgts<VI_char>_p,
8982 *altivec_vcmpgtu<VI_char>_p): Change type to veccmpfx.
8983 (*altivec_vsel<mode>, *altivec_vsel<mode>_uns): Change type to vecmove.
8984 * config/rs6000/dfp.md (*negdd2_fpr, *absdd2_fpr, *nabsdd2_fpr,
8985 negtd2, *abstd2_fpr, *nabstd2_fpr): Change type to fpsimple.
8986 * config/rs6000/40x.md (ppc405-float): Add fpsimple.
8987 * config/rs6000/440.md (ppc440-fp): Add fpsimple.
8988 * config/rs6000/476.md (ppc476-fp): Add fpsimple.
8989 * config/rs6000/601.md (ppc601-fp): Add fpsimple.
8990 * config/rs6000/603.md (ppc603-fp): Add fpsimple.
8991 * config/rs6000/6xx.md (ppc604-fp): Add fpsimple.
8992 * config/rs6000/7xx.md (ppc750-fp): Add fpsimple.
8993 (ppc7400-vecsimple): Add veclogical, vecmove, veccmpfx.
8994 * config/rs6000/7450.md (ppc7450-fp): Add fpsimple.
8995 (ppc7450-vecsimple): Add veclogical, vecmove.
8996 (ppc7450-veccmp): Add veccmpfx.
8997 * config/rs6000/8540.md (ppc8540_simple_vector): Add veclogical,
8998 vecmove.
8999 (ppc8540_vector_compare): Add veccmpfx.
9000 * config/rs6000/a2.md (ppca2-fp): Add fpsimple.
9001 * config/rs6000/cell.md (cell-fp): Add fpsimple.
9002 (cell-vecsimple): Add veclogical, vecmove.
9003 (cell-veccmp): Add veccmpfx.
9004 * config/rs6000/e300c2c3.md (ppce300c3_fp): Add fpsimple.
9005 * config/rs6000/e6500.md (e6500_vecsimple): Add veclogical, vecmove,
9006 veccmpfx.
9007 * config/rs6000/mpc.md (mpccore-fp): Add fpsimple.
9008 * config/rs6000/power4.md (power4-fp): Add fpsimple.
9009 (power4-vecsimple): Add veclogical, vecmove.
9010 (power4-veccmp): Add veccmpfx.
9011 * config/rs6000/power5.md (power5-fp): Add fpsimple.
9012 * config/rs6000/power6.md (power6-fp): Add fpsimple.
9013 (power6-vecsimple): Add veclogical, vecmove.
9014 (power6-veccmp): Add veccmpfx.
9015 * config/rs6000/power7.md (power7-fp): Add fpsimple.
9016 (power7-vecsimple): Add veclogical, vecmove, veccmpfx.
9017 * config/rs6000/power8.md (power8-fp): Add fpsimple.
9018 (power8-vecsimple): Add veclogical, vecmove, veccmpfx.
9019 * config/rs6000/rs64.md (rs64a-fp): Add fpsimple.
9020 * config/rs6000/titan.md (titan_fp): Add fpsimple.
9021 * config/rs6000/xfpu.md (fp-default, fp-addsub-s, fp-addsub-d): Add
9022 fpsimple.
9023 * config/rs6000/rs6000.c (rs6000_adjust_cost): Add TYPE_FPSIMPLE.
9024
9025 2016-06-27 Peter Bergner <bergner@vnet.ibm.com>
9026
9027 PR target/71656
9028 * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Add
9029 OPTION_MASK_P9_DFORM_VECTOR.
9030 * config/rs6000/rs6000.c (rs6000_option_override_internal): Do not
9031 disable -mpower9-dform-vector when using reload.
9032 (quad_address_p): Remove 'gpr_p' argument and all associated code.
9033 New 'strict' argument. Update all callers. Add strict addressing
9034 support.
9035 (rs6000_legitimate_offset_address_p): Remove call to
9036 virtual_stack_registers_memory_p.
9037 (rs6000_legitimize_reload_address): Add quad address support.
9038 (rs6000_legitimate_address_p): Move call to quad_address_p above
9039 call to virtual_stack_registers_memory_p. Adjust quad_address_p args
9040 to account for new strict usage.
9041 (rs6000_output_move_128bit): Adjust quad_address_p args to account
9042 for new strict usage.
9043 * config/rs6000/predicates.md (quad_memory_operand): Likewise.
9044
9045 2016-06-26 Uros Bizjak <ubizjak@gmail.com>
9046
9047 PR target/70902
9048 PR target/71453
9049 PR target/71555
9050 PR target/71596
9051 PR target/71657
9052 * config/i386/i386.c (ix86_spill_class): Disable condition to
9053 always return NO_REGS.
9054
9055 2016-06-26 Jan Hubicka <hubicka@ucw.cz>
9056
9057 * predict.c: Include gimple-pretty-print.h
9058 (predicted_by_loop_heuristics_p): Check also
9059 PRED_LOOP_EXIT_WITH_RECURSION
9060 (predict_loops): Find self recursive calls and use special purpose
9061 predictors for them; dump log about decisions.
9062 (pass_profile::execute): Dump info about #of iterations.
9063 * predict.def (PRED_LOOP_EXIT_WITH_RECURSION,
9064 (PRED_LOOP_GUARD_WITH_RECURSION): New predictors.
9065
9066 2016-06-26 John David Anglin <danglin@gcc.gnu.org>
9067
9068 * config/pa/pa.c (pa_output_indirect_call): Rework to combine
9069 output_asm_insn calls and shorten long lines. Output .CALL
9070 argument descriptor using pa_output_arg_descriptor. Add various
9071 inline $$dyncall and other optimizations.
9072 (pa_attr_length_indirect_call): Adjust ordering and lengths.
9073
9074 2016-06-25 Jakub Jelinek <jakub@redhat.com>
9075
9076 PR tree-optimization/71643
9077 * tree-ssa-tail-merge.c (find_clusters_1): Ignore basic blocks with
9078 EH preds.
9079
9080 * tree-ssa-tail-merge.c (deps_ok_for_redirect_from_bb_to_bb): Don't
9081 leak a bitmap if dep_bb is NULL.
9082
9083 PR tree-optimization/71631
9084 * tree-ssa-reassoc.c (reassociate_bb): Pass true as last argument
9085 to rewrite_expr_tree even if negate_result, move new_lhs var
9086 declaration and initialization earlier, for powi_result set afterwards
9087 new_lhs to lhs. For negate_result, use new_lhs instead of tmp
9088 if new_lhs != lhs, and don't shadow gsi var.
9089
9090 2016-06-24 Jan Hubicka <hubicka@ucw.cz>
9091
9092 * predict.c (predict_paths_leading_to, predict_paths_leading_to_edge):
9093 Add in_loop parameter.
9094 (predict_loops): Add loop guard heuristics.
9095 * predict.def (PRED_LOOP_GUARD): New heuristics.
9096
9097 2016-06-24 Jan Hubicka <hubicka@ucw.cz>
9098
9099 * predict.c: Include ipa-utils.h
9100 (tree_bb_level_prediction): Predict recursive calls.
9101 (tree_estimate_probability_bb): Skip inexpensive calls for call
9102 predictor.
9103 * predict.def (PRED_RECURSIVE_CALL): New.
9104
9105 2016-06-24 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
9106
9107 * config/rs6000/rs6000-builtin.def (BU_FLOAT128_2): New #define.
9108 (BU_FLOAT128_1): Likewise.
9109 (FABSQ): Likewise.
9110 (COPYSIGNQ): Likewise.
9111 (RS6000_BUILTIN_NANQ): Likewise.
9112 (RS6000_BUILTIN_NANSQ): Likewise.
9113 (RS6000_BUILTIN_INFQ): Likewise.
9114 (RS6000_BUILTIN_HUGE_VALQ): Likewise.
9115 * config/rs6000/rs6000.c (rs6000_fold_builtin): New prototype.
9116 (TARGET_FOLD_BUILTIN): New #define.
9117 (rs6000_builtin_mask_calculate): Add TARGET_FLOAT128 entry.
9118 (rs6000_invalid_builtin): Add handling for RS6000_BTM_FLOAT128.
9119 (rs6000_fold_builtin): New target hook implementation, handling
9120 folding of 128-bit NaNs and infinities.
9121 (rs6000_init_builtins): Initialize const_str_type_node; ensure all
9122 entries are filled in to avoid problems during bootstrap
9123 self-test; define builtins for 128-bit NaNs and infinities.
9124 (rs6000_opt_mask): Add entry for float128.
9125 * config/rs6000/rs6000.h (RS6000_BTM_FLOAT128): New #define.
9126 (RS6000_BTM_COMMON): Include RS6000_BTM_FLOAT128.
9127 (rs6000_builtin_type_index): Add RS6000_BTI_const_str.
9128 (const_str_type_node): New #define.
9129 * config/rs6000/rs6000.md (copysign<mode>3 for IEEE128): Convert
9130 to a define_expand that dispatches to either copysign<mode>3_soft
9131 or copysign<mode>3_hard.
9132 (copysign<mode>3_hard): Rename from copysign<mode>3.
9133 (copysign<mode>3_soft): New define_insn.
9134 * doc/extend.texi: Document new builtins.
9135
9136 2016-06-24 Jakub Jelinek <jakub@redhat.com>
9137
9138 * cfgloop.c (flow_loop_dump): Cast nit to uint64_t and print it using
9139 PRIu64 instead of lu.
9140
9141 2016-06-24 Eric Botcazou <ebotcazou@adacore.com>
9142
9143 PR debug/71642
9144 * tree-inline.c (remap_decl): When fixing up DECL_ORIGINAL_TYPE, just
9145 copy the type name.
9146
9147 2016-06-24 Jakub Jelinek <jakub@redhat.com>
9148
9149 PR tree-optimization/71647
9150 * omp-low.c (lower_rec_input_clauses): Convert
9151 omp_clause_aligned_alignment (c) to size_type_node for the
9152 last argument of __builtin_assume_aligned.
9153
9154 2016-06-24 H.J. Lu <hongjiu.lu@intel.com>
9155
9156 * configure.ac (calling ___tls_get_addr via GOT): New
9157 assembler/linker check.
9158 (HAVE_AS_IX86_TLS_GET_ADDR_GOT): New. Defined to 1 if 32-bit
9159 assembler and linker supports calling ___tls_get_addr via GOT.
9160 Otherise, defined to 0.
9161 * config.in: Regenerated.
9162 * configure: Likewise.
9163 * config/i386/constraints.md (Yb): New constraint.
9164 * config/i386/i386.h (reg_class): Add TLS_GOTBASE_REGS.
9165 (REG_CLASS_NAMES): Likewise.
9166 (REG_CLASS_CONTENTS): Likewise.
9167 * config/i386/i386.md (*tls_global_dynamic_32_gnu): Replace
9168 the b constraint with the Yb constraint. Call ___tls_get_addr
9169 via GOT for GNU TLS with -fno-plt if HAVE_AS_IX86_TLS_GET_ADDR_GOT
9170 is 1.
9171 (*tls_local_dynamic_base_32_gnu): Likewise.
9172 (*tls_global_dynamic_64_<mode>): Call _tls_get_addr via GOT for
9173 GNU TLS with -fno-plt if HAVE_AS_IX86_TLS_GET_ADDR_GOT is 1.
9174 (*tls_local_dynamic_base_64_<mode>): Likewise.
9175
9176 2016-06-24 Martin Liska <mliska@suse.cz>
9177
9178 * cfgloop.c (flow_loop_dump): Dump average number of loop iterations.
9179 * cfgloop.h: Change 'struct loop' to 'const struct loop' for a
9180 few functions.
9181 * cfgloopanal.c (expected_loop_iterations_unbounded): Set a new
9182 argument to true if the expected number of iterations is
9183 loop-based.
9184
9185 2016-06-24 Uros Bizjak <ubizjak@gmail.com>
9186
9187 * configure.ac (HAVE_AS_GOTOF_IN_DATA): Use $as_ix86_gas_32_opt to
9188 assemble for 32bit target.
9189 (HAVE_AS_IX86_TLSGDPLT): Use $as_ix86_gas_32_opt to assemble
9190 and $ld_ix86_gld_32_opt to link for 32bit target.
9191 (HAVE_AS_IX86_TLSLDMPLT): Ditto.
9192 * configure: Regenerate.
9193
9194 2016-06-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9195
9196 * config/arm/arm.c (int_log2): Delete definition and prototype.
9197 (shift_op): Use exact_log2 instead of int_log2.
9198 (vfp3_const_double_for_fract_bits): Likewise.
9199
9200 2016-06-24 Jakub Jelinek <jakub@redhat.com>
9201
9202 * internal-fn.c (expand_arith_set_overflow): New function.
9203 (expand_addsub_overflow, expand_neg_overflow, expand_mul_overflow):
9204 Use it.
9205 (expand_arith_overflow_result_store): Likewise. Handle precision
9206 smaller than mode precision.
9207 * tree-vrp.c (extract_range_basic): For imag part, handle
9208 properly signed 1-bit precision result.
9209 * doc/extend.texi (__builtin_add_overflow): Document that last
9210 argument can't be pointer to enumerated or boolean type.
9211 (__builtin_add_overflow_p): Document that last argument can't
9212 have enumerated or boolean type.
9213
9214 2016-06-23 Michael Meissner <meissner@linux.vnet.ibm.com>
9215 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
9216
9217 * config/rs6000/predicates.md (splat_input_operand): Rework.
9218 Don't allow constants, since the insns that use this predicate
9219 don't support constants. Constants are handled by other insns
9220 that are created via combine. During and after register
9221 allocation, only allow indexed or indirect addresses, and not
9222 general addresses. Only allow modes supported by the hardware.
9223 * config/rs6000/rs6000.c (xxsplitb_constant_p): Update usage
9224 comment. Move check for using VSPLTIS<x> to a common location,
9225 instead of doing it in two different places.
9226
9227 2016-06-23 Jocelyn Mayer <l_indien@magic.fr>
9228
9229 * config/i386/driver-i386.c (host_detect_local_cpu): Set
9230 PROCESSOR_PENTIUMPRO for signature_CENTAUR_ebx family >= 9.
9231 <case PROCESSOR_PENTIMUMPRO>: Pass c7 or nehemiah for
9232 signature_CENTAUR_ebx.
9233
9234 2016-06-23 H.J. Lu <hongjiu.lu@intel.com>
9235
9236 PR target/66232
9237 PR target/67400
9238 * configure.ac (as_ix86_tls_ldm_opt): Renamed to ...
9239 (as_ix86_gas_32_opt): This.
9240 (ld_ix86_tls_ldm_opt): Renamed to ...
9241 (ld_ix86_gld_32_opt): This.
9242 (R_386_TLS_LDM reloc): Updated.
9243 (R_386_GOT32X reloc): New assembler/linker check.
9244 (HAVE_AS_IX86_GOT32X): New. Defined to 1 if 32-bit assembler and
9245 linker support "jmp *_start@GOT" and "cmpl $0, bar@GOT". Otherise,
9246 defined to 0.
9247 * config.in: Regenerated.
9248 * configure: Likewise.
9249 * config/i386/i386.c (ix86_force_load_from_GOT_p): Return
9250 true if HAVE_AS_IX86_GOT32X is 1 in 32-bit mode.
9251 (ix86_legitimate_address_p): Allow UNSPEC_GOT for -fno-plt
9252 if ix86_force_load_from_GOT_p returns true.
9253 (ix86_print_operand_address_as): Also support UNSPEC_GOT if
9254 ix86_force_load_from_GOT_p returns true.
9255 (ix86_expand_move): Generate UNSPEC_GOT in 32-bit mode to load
9256 the external function address via the GOT slot.
9257 (ix86_nopic_noplt_attribute_p): Check both TARGET_64BIT and
9258 HAVE_AS_IX86_GOT32X before returning false.
9259 (ix86_output_call_insn): Generate "%!jmp/call\t*%p0@GOT" in
9260 32-bit mode if ix86_nopic_noplt_attribute_p returns true.
9261
9262 2016-06-23 Eric Botcazou <ebotcazou@adacore.com>
9263
9264 * tree-inline.c (remap_decl): Preserve DECL_ORIGINAL_TYPE invariant.
9265
9266 2016-06-23 Andi Kleen <ak@linux.intel.com>
9267
9268 * Makefile.in: Regenerate.
9269 * doc/install.texi: Document autoprofiledbootstrap.
9270
9271 2016-06-23 Andi Kleen <ak@linux.intel.com>
9272
9273 * config/i386/gcc-auto-profile: New file.
9274
9275 2016-06-23 Martin Liska <mliska@suse.cz>
9276
9277 PR middle-end/71619
9278 * predict.c (predict_loops): Revert the hunk that was removed
9279 in r237103.
9280
9281 2016-06-23 Jakub Sejdak <jakub.sejdak@phoesys.com>
9282
9283 * config.gcc: Add support for arm*-*-phoenix* targets.
9284 * config/arm/t-phoenix: New.
9285 * config/phoenix.h: New.
9286
9287 2016-06-23 Uros Bizjak <ubizjak@gmail.com>
9288 H.J. Lu <hongjiu.lu@intel.com>
9289
9290 PR target/67400
9291 * config/i386/i386-protos.h (ix86_force_load_from_GOT_p): New.
9292 * config/i386/i386.c (ix86_force_load_from_GOT_p): New function.
9293 (ix86_legitimate_constant_p): Do not allow UNSPEC_GOTPCREL if
9294 ix86_force_load_from_GOT_p returns true.
9295 (ix86_legitimate_address_p): Allow UNSPEC_GOTPCREL if
9296 ix86_force_load_from_GOT_p returns true.
9297 (ix86_print_operand_address_as): Support UNSPEC_GOTPCREL if
9298 ix86_force_load_from_GOT_p returns true.
9299 (ix86_expand_move): Load the external function address via the
9300 GOT slot if ix86_force_load_from_GOT_p returns true.
9301 * config/i386/predicates.md (x86_64_immediate_operand): Return
9302 false for SYMBOL_REFs where ix86_force_load_from_GOT_p returns true.
9303 (x86_64_zext_immediate_operand): Ditto.
9304
9305 2016-06-22 Uros Bizjak <ubizjak@gmail.com>
9306
9307 * config/i386/i386.c (ix86_expand_move): Simplify SYMBOL_REF handling.
9308
9309 2016-06-22 David Malcolm <dmalcolm@redhat.com>
9310
9311 PR c/70339
9312 * diagnostic-core.h (pedwarn_at_rich_loc): New prototype.
9313 * diagnostic.c (pedwarn_at_rich_loc): New function.
9314 * spellcheck.h (best_match::best_match): Add a
9315 "best_distance_so_far" optional parameter.
9316 (best_match::set_best_so_far): New method.
9317 (best_match::get_best_distance): New accessor.
9318 (best_match::get_best_candidate_length): New accessor.
9319
9320 2016-06-22 Nick Clifton <nickc@redhat.com>
9321
9322 * dwarf2out.c (scompare_loc_descriptor): Use SCALAR_INT_MODE_P() in
9323 place of GET_MODE_CLASS() == MODE_INT, so that partial integer
9324 modes are accepted as well.
9325 (ucompare_loc_descriptor): Likewise.
9326 (minmax_loc_descriptor): Likewise.
9327 (clz_loc_descriptor): Likewise.
9328 (popcount_loc_descriptor): Likewise.
9329 (bswap_loc_descriptor): Likewise.
9330 (rotate_loc_descriptor): Likewise.
9331 (mem_loc_descriptor): Likewise.
9332 (loc_descriptor): Likewise.
9333
9334 2016-06-22 David Malcolm <dmalcolm@redhat.com>
9335
9336 * common.opt (fdiagnostics-parseable-fixits): New option.
9337 * diagnostic.c: Include "selftest.h".
9338 (print_escaped_string): New function.
9339 (print_parseable_fixits): New function.
9340 (diagnostic_report_diagnostic): Call print_parseable_fixits.
9341 (selftest::assert_print_escaped_string): New function.
9342 (ASSERT_PRINT_ESCAPED_STRING_STREQ): New macro.
9343 (selftest::test_print_escaped_string): New function.
9344 (selftest::test_print_parseable_fixits_none): New function.
9345 (selftest::test_print_parseable_fixits_insert): New function.
9346 (selftest::test_print_parseable_fixits_remove): New function.
9347 (selftest::test_print_parseable_fixits_replace): New function.
9348 (selftest::diagnostic_c_tests): New function.
9349 * diagnostic.h (struct diagnostic_context): Add field
9350 "parseable_fixits_p".
9351 * doc/invoke.texi (Diagnostic Message Formatting Options): Add
9352 -fdiagnostics-parseable-fixits.
9353 (-fdiagnostics-parseable-fixits): New option.
9354 * opts.c (common_handle_option): Handle
9355 -fdiagnostics-parseable-fixits.
9356 * selftest-run-tests.c (selftest::run_tests): Call
9357 selftest::diagnostic_c_tests.
9358 * selftest.h (selftest::diagnostic_c_tests): New prototype.
9359
9360 2016-06-22 Ilya Enkovich <ilya.enkovich@intel.com>
9361
9362 PR tree-optimization/71488
9363 * tree-vect-patterns.c (vect_recog_mask_conversion_pattern): Support
9364 comparison of boolean vectors.
9365 * tree-vect-stmts.c (vectorizable_comparison): Vectorize comparison
9366 of boolean vectors using bitwise operations.
9367
9368 2016-06-22 Andreas Schwab <schwab@suse.de>
9369
9370 * config/aarch64/aarch64-protos.h (aarch64_elf_asm_named_section):
9371 Remove declaration.
9372
9373 2016-06-22 Eric Botcazou <ebotcazou@adacore.com>
9374
9375 * function.c (assign_parm_setup_reg): Prevent sharing in another case.
9376
9377 2016-06-22 Bernd Edlinger <bernd.edlinger@hotmail.de>
9378
9379 * config/i386/i386.c (print_reg): Emit an error message on attempt to
9380 print FLAGS_REG.
9381
9382 2016-06-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9383
9384 * config/arm/arm.c (arm_cortex_a73_tune): New struct.
9385 * config/arm/arm-cores.def (cortex-a73): New entry.
9386 (cortex-a73.cortex-a35): Likewise.
9387 (cortex-a73.cortex-a53): Likewise.
9388 * config/arm/arm-tables.opt: Regenerate.
9389 * config/arm/arm-tune.md: Likewise.
9390 * config/arm/bpabi.h (BE8_LINK_SPEC): Handle mcpu=cortex-a73,
9391 mcpu=cortex-a73.cortex-a35 and mcpu=cortex-a73.cortex-a53.
9392 * config/arm/t-aprofile: Handle mcpu=cortex-a73,
9393 mcpu=cortex-a73.cortex-a35 and mcpu=cortex-a73.cortex-a53.
9394 * doc/invoke.texi (ARM Options): Document cortex-a73,
9395 cortex-a73.cortex-a35 and cortex-a73.cortex-a53.
9396
9397 2016-06-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9398
9399 * config/aarch64/aarch64.c (cortexa73_tunings): New struct.
9400 * config/aarch64/aarch64-cores.def (cortex-a73): New entry.
9401 (cortex-a73.cortex-a35): Likewise.
9402 (cortex-a73.cortex-a53): Likewise.
9403 * config/aarch64/aarch64-tune.md: Regenerate.
9404 * doc/invoke.texi (AArch64 Options): Document cortex-a73,
9405 cortex-a73.cortex-a35 and cortex-a73.cortex-a53 arguments to
9406 -mcpu and -mtune.
9407
9408 2016-06-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9409
9410 * configure.ac (gcc_cv_as_compress_debug): Remove
9411 --compress-debug-sections as extra as switch.
9412 Handle gas --compress-debug-sections=type.
9413 (gcc_cv_ld_compess_debug): Remove bogus ld_date check.
9414 Handle gld --compress-debug-sections=type.
9415 * configure: Regenerate.
9416
9417 2016-06-21 Andrew Burgess <andrew.burgess@embecosm.com>
9418
9419 * bb-reorder.c (pass_partition_blocks::gate): Update comment.
9420
9421 2016-06-21 John David Anglin <danglin@gcc.gnu.org>
9422
9423 * gcov-tool.c (profile_rewrite): Use int64_t instead of long long.
9424 (do_rewrite): likewise.
9425
9426 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
9427
9428 * common/config/mep/mep-common.c: Remove.
9429 * config.gcc: Remove mep-* support.
9430 * config/mep/constraints.md: Remove.
9431 * config/mep/default.h: Remove.
9432 * config/mep/intrinsics.h: Remove.
9433 * config/mep/intrinsics.md: Remove.
9434 * config/mep/ivc2-template.h: Remove.
9435 * config/mep/mep-c5.cpu: Remove.
9436 * config/mep/mep-core.cpu: Remove.
9437 * config/mep/mep-default.cpu: Remove.
9438 * config/mep/mep-ext-cop.cpu: Remove.
9439 * config/mep/mep-intrin.h: Remove.
9440 * config/mep/mep-ivc2.cpu: Remove.
9441 * config/mep/mep-pragma.c: Remove.
9442 * config/mep/mep-protos.h: Remove.
9443 * config/mep/mep.c: Remove.
9444 * config/mep/mep.cpu: Remove.
9445 * config/mep/mep.h: Remove.
9446 * config/mep/mep.md: Remove.
9447 * config/mep/mep.opt: Remove.
9448 * config/mep/predicates.md: Remove.
9449 * config/mep/t-mep: Remove.
9450 * doc/install.texi: Remove mep-* documentation.
9451 * doc/md.texi: Likewise.
9452
9453 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
9454
9455 * config.gcc: Remove support for avr-rtems.
9456 * config/avr/gen-avr-mmcu-specs.c: Likewise.
9457 * config/avr/rtems.h: Remove.
9458 * config/avr/t-rtems: Remove.
9459
9460 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
9461
9462 * config.gcc: Remove m32r-rtems support.
9463 * config/m32r/rtems.h: Remove.
9464
9465 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
9466
9467 * config.gcc: Remove h8300-rtems support.
9468 * config/h8300/rtems.h: Remove.
9469 * config/h8300/t-rtems: Remove.
9470
9471 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
9472
9473 * config.gcc: Remove support for knetbsd.
9474 * configure.ac: Likewise.
9475 * config/i386/knetbsd-gnu.h: Remove. * config/i386/knetbsd-gnu64.h: Remove.
9476 * config/knetbsd-gnu.h: Remove.
9477 * configure: Regenerate.
9478
9479 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
9480
9481 * config.gcc: Remove support for openbsd 2 and 3.
9482 * config/openbsd-oldgas.h: Remove.
9483
9484 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
9485
9486 * config.gcc: Remove interix support.
9487 * config/i386/i386-interix.h: Remove.
9488 * config/i386/interix.opt: Remove.
9489 * config/i386/t-interix: Remove.
9490 * configure: Regenerate.
9491 * configure.ac: Remove interix support.
9492 * doc/install.texi: Remove interix documentation.
9493
9494 2016-06-21 Kelvin Nilsen <kelvin@gcc.gnu.org>
9495
9496 * config/rs6000/rs6000.h: Add conditional preprocessing directives
9497 to disable Power9-specific compiler features if HAVE_AS_POWER9 is
9498 not defined.
9499
9500 2016-06-21 Eric Botcazou <ebotcazou@adacore.com>
9501
9502 * tree.c (verify_type_variant): Skip TYPE_SIZE and TYPE_SIZE_UNIT if
9503 they are both PLACEHOLDER_EXPRs.
9504
9505 2016-06-21 Michael Meissner <meissner@linux.vnet.ibm.com>
9506
9507 * stor-layout.c (layout_type): Move setting complex MODE to
9508 layout_type, instead of setting it ahead of time by the caller.
9509 * tree.c (build_complex_type): Likewise.
9510
9511 2016-06-21 Martin Liska <mliska@suse.cz>
9512
9513 * predict.c (force_edge_cold): Replace imposisble with
9514 impossible.
9515
9516 2016-06-21 Ilya Verbin <ilya.verbin@intel.com>
9517
9518 * config/i386/i386.c (ix86_emit_swsqrtsf): Emit vrsqrt28ps.
9519 * config/i386/sse.md (define_expand "rsqrtv16sf2"): New.
9520
9521 2016-06-21 Ilya Verbin <ilya.verbin@intel.com>
9522
9523 * config/i386/i386.c (ix86_emit_swdivsf): Emit vrcp28ps.
9524
9525 2016-06-21 H.J. Lu <hongjiu.lu@intel.com>
9526 Ilya Enkovich <ilya.enkovich@intel.com>
9527
9528 PR target/71549
9529 * config/i386/i386.c (timode_scalar_chain::fix_debug_reg_uses):
9530 New member function to convert V1TImode register to SUBREG
9531 TImode in debug insn.
9532 (timode_scalar_chain::convert_insn): Call fix_debug_reg_uses
9533 after changing register mode to V1TImode.
9534
9535 2016-06-21 Virendra Pathak <virendra.pathak@broadcom.com>
9536
9537 * config/aarch64/aarch64-cores.def (vulcan): New core.
9538 * config/aarch64/aarch64-tune.md: Regenerate.
9539 * doc/invoke.texi: Document vulcan as an available option.
9540
9541 2016-06-21 Eric Botcazou <ebotcazou@adacore.com>
9542
9543 * cse.c (canon_asm_operands): New function extracted from...
9544 (canonicalize_insn): ...here. Call it to canonicalize an ASM_OPERANDS
9545 either standalone or member of a PARALLEL.
9546
9547 2016-06-21 Georg-Johann Lay <avr@gjlay.de>
9548
9549 PR target/30417
9550 * config/avr/gen-avr-mmcu-specs.c (print_mcu):
9551 [*link_data_start]: Wrap -Tdata into %{!Tdata:...}.
9552 [*link_text_start]: Wrap -Ttext into %{!Ttext:...}.
9553
9554 2016-06-21 Georg-Johann Lay <avr@gjlay.de>
9555
9556 PR target/71103
9557 * config/avr/avr.md (movqi): Only handle loading subreg:qi of
9558 constant addresses if can_create_pseudo_p.
9559
9560 2016-06-21 Jakub Jelinek <jakub@redhat.com>
9561
9562 PR tree-optimization/71588
9563 * tree-ssa-strlen.c (valid_builtin_call): New function.
9564 (adjust_last_stmt, handle_builtin_memset, strlen_optimize_stmt): Use
9565 it.
9566
9567 2016-06-20 Jakub Jelinek <jakub@redhat.com>
9568
9569 PR middle-end/71581
9570 * tree-ssa-uninit.c (warn_uninit): If EXPR and VAR are NULL,
9571 see if T isn't anonymous SSA_NAME with COMPLEX_EXPR created
9572 for conversion of scalar user var to complex type and use the
9573 underlying SSA_NAME_VAR in that case. If EXPR is still NULL,
9574 punt.
9575
9576 PR rtl-optimization/71591
9577 * toplev.c (toplev::run_self_tests): If no_backend, complain and
9578 don't run any tests.
9579
9580 2016-06-20 Hans-Peter Nilsson <hp@axis.com>
9581
9582 PR target/71571
9583 * config/cris/cris.c (cris_asm_output_mi_thunk): Add missing "ba"
9584 delay-slot "nop" for PIC with CRIS v32. Also add missing leading
9585 space for PIC with non-v32 and the common non-PIC "jump".
9586
9587 2016-06-20 Jakub Jelinek <jakub@redhat.com>
9588
9589 PR target/71559
9590 * config/i386/i386.c (ix86_fp_cmp_code_to_pcmp_immediate): Fix up
9591 returned values and add UN*/LTGT/*ORDERED cases with values matching
9592 D operand modifier on vcmp for AVX.
9593
9594 2016-06-20 Wilco Dijkstra <wdijkstr@arm.com>
9595
9596 * config/aarch64/aarch64.opt
9597 (mpc-relative-literal-loads): Rename internal option name.
9598 * config/aarch64/aarch64.c
9599 (aarch64_nopcrelative_literal_loads): Rename to
9600 aarch64_pcrelative_literal_loads.
9601 (aarch64_expand_mov_immediate): Likewise.
9602 (aarch64_secondary_reload): Likewise.
9603 (aarch64_can_use_per_function_literal_pools_p): Likewise.
9604 (aarch64_override_options_after_change_1): Rename and simplify logic.
9605 (aarch64_classify_symbol): Merge large model checks into switch,
9606 remove pc-relative load check.
9607
9608 2016-06-20 James Greenhalgh <james.greenhalgh@arm.com>
9609
9610 * config/arm/aarch-cost-tables.h (cortexa53_extra_costs): Make FP
9611 costs relative to the cost of a register move.
9612
9613 2016-06-20 James Greenhalgh <james.greenhalgh@arm.com>
9614
9615 * config/aarch64/arm_neon.h (vcvt_n_f64_s64): New.
9616 (vcvt_n_f64_u64): Likewise.
9617 (vcvt_n_s64_f64): Likewise.
9618 (vcvt_n_u64_f64): Likewise.
9619 (vcvt_f64_s64): Likewise.
9620 (vrecpe_f64): Likewise.
9621 (vcvt_f64_u64): Likewise.
9622 (vrecps_f64): Likewise.
9623
9624 2016-06-20 James Greenhalgh <james.greenhalgh@arm.com>
9625
9626 * config/aarch64/aarch64.md
9627 (<FCVT_F2FIXED:fcvt_fixed_insn><GPF:mode>3): Add attributes to
9628 iterators.
9629 (<FCVT_FIXED2F:fcvt_fixed_insn><GPI:mode>3): Likewise. Correct
9630 attributes.
9631 * config/aarch64/aarch64-builtins.c
9632 (aarch64_types_binop_uss_qualifiers): Delete.
9633 (TYPES_BINOP_USS): Likewise.
9634 (aarch64_types_binop_sus_qualifiers): Likewise.
9635 (TYPES_BINOP_SUS): Likewise.
9636 (aarch64_types_fcvt_from_unsigned_qualifiers): New.
9637 (TYPES_FCVTIMM_SUS): Likewise.
9638 * config/aarch64/aarch64-simd-builtins.def (scvtf): Use SHIFTIMM
9639 rather than BINOP.
9640 (ucvtf): Use FCVTIMM_SUS rather than BINOP_SUS.
9641 (fcvtzs): Use SHIFTIMM rather than BINOP.
9642 (fcvtzu): Use SHIFTIMM_USS rather than BINOP_USS.
9643
9644 2016-06-20 James Greenhalgh <james.greenhalgh@arm.com>
9645
9646 * config/arm/aarch-cost-tables.h (cortexa57_extra_costs): Make FP
9647 costs relative to the cost of a register move.
9648
9649 2016-06-20 Wilco Dijkstra <wdijkstr@arm.com>
9650
9651 * config/aarch64/aarch64.c (aarch64_modes_tieable_p):
9652 Allow scalar/single vector modes to be tieable.
9653
9654 2016-06-20 Wilco Dijkstra <wdijkstr@arm.com>
9655
9656 * config/arm/cortex-a57.md (cortex_a57_fp_cpys): Add fcsel.
9657
9658 2016-06-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9659
9660 * params.def (PARAM_ALIGN_LOOP_ITERATIONS): Use "alignment" instead of
9661 "alignement".
9662 * tree.h (TYPE_ALIGN): Likewise.
9663
9664 2016-06-20 Georg-Johann Lay <avr@gjlay.de>
9665
9666 PR target/71103
9667 * config/avr/avr.md (movqi): Handle loading subreg:qi (const).
9668
9669 2016-06-20 Georg-Johann Lay <avr@gjlay.de>
9670
9671 * config/avr/avr.c (avr_print_operand): Fix "format not a string
9672 literal" build warnings.
9673 (avr_print_operand_address): Dito.
9674
9675 2016-06-19 David Edelsohn <dje.gcc@gmail.com>
9676
9677 PR target/71375
9678 * config/rs6000/aix51.h (TARGET_EXTRA_BUILTINS): Define as 0.
9679 * config/rs6000/aix43.h (TARGET_EXTRA_BUILTINS): Same.
9680
9681 2016-06-18 John David Anglin <danglin@gcc.gnu.org>
9682
9683 * config/pa/pa.h (TARGET_LONG_PIC_PCREL_CALL): Remove.
9684
9685 2016-06-18 Eric Botcazou <ebotcazou@adacore.com>
9686
9687 PR bootstrap/71435
9688 * reload1.c (reload): Pass 0 to finish_spills when called because
9689 update_eliminables_and_spill returns true and remove did_spill.
9690 (finish_spills): Adjust comment and document GLOBAL parameter.
9691
9692 2016-06-17 DJ Delorie <dj@redhat.com>
9693
9694 PR target/71338
9695 * config/rl78/rl78-expand.c (umulqihi3): Enable for G10.
9696 * config/rl78/rl78-virtual.c (umulhi3_shift_virt): Likewise.
9697 (umulqihi3_virt): Likewise.
9698 * config/rl78/rl78-real.c (umulhi3_shift_real): Likewise.
9699 (umulqihi3_real): Likewise.
9700
9701 2016-06-17 Martin Liska <mliska@suse.cz>
9702
9703 * tree-ssa-reassoc.c (transform_add_to_multiply): Use auto_vec.
9704
9705 2016-06-17 Martin Liska <mliska@suse.cz>
9706
9707 * predict.def: PRED_LOOP_EXIT from 92 to 85.
9708
9709 2016-06-17 James Greenhalgh <james.greenhalgh@arm.com>
9710
9711 * config/arm/arm_neon.h (vadd_f32): replace __FAST_MATH with
9712 __FAST_MATH__.
9713 (vaddq_f32): Likewise.
9714 (vmul_f32): Likewise.
9715 (vmulq_f32): Likewise.
9716 (vsub_f32): Likewise.
9717 (vsubq_f32): Likewise.
9718
9719 2016-06-17 Bin Cheng <bin.cheng@arm.com>
9720
9721 PR tree-optimization/71347
9722 * tree-ssa-loop-ivopts.c (determine_group_iv_cost_address): Compute
9723 cost for all uses in group.
9724
9725 2016-06-17 Bin Cheng <bin.cheng@arm.com>
9726
9727 * tree-vect-loop.c (vect_create_epilog_for_reduction): Only
9728 insert gimple seq if it's not empty.
9729
9730 2016-06-17 Bin Cheng <bin.cheng@arm.com>
9731
9732 * tree-vectorizer.h (struct dr_with_seg_len): Remove class
9733 member OFFSET.
9734 * tree-vect-data-refs.c (operator ==): Handle DR_OFFSET directly,
9735 rather than OFFSET.
9736 (comp_dr_with_seg_len_pair): Ditto.
9737 (vect_prune_runtime_alias_test_list): Ditto. Also Canonicalize
9738 struct dr_with_seg_len_pair against DR_OFFSET.
9739 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Handle
9740 DR_OFFSET directly.
9741
9742 2016-06-17 Szabolcs Nagy <szabolcs.nagy@arm.com>
9743
9744 * config/aarch64/geniterators.sh: Handle parenthesised conditions.
9745
9746 2016-06-16 John David Anglin <danglin@gcc.gnu.org>
9747
9748 * config/pa/pa.c (pa_output_pic_pcrel_sequence): New.
9749 (pa_output_lbranch): Use pa_output_pic_pcrel_sequence.
9750 (pa_output_millicode_call): Likewise.
9751 (pa_output_call): Likewise.
9752 (pa_output_indirect_call): Likewise.
9753 (pa_asm_output_mi_thunk): Likewise.
9754
9755 2016-06-16 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
9756
9757 * doc/invoke.texi (x86 Options): Fix -mno-fp-ret-in-387 typo.
9758
9759 2016-06-16 Martin Liska <mliska@suse.cz>
9760
9761 * predict.c (combine_predictions_for_insn): When we find a first
9762 match predictor, we should consider just predictors with
9763 PRED_FLAG_FIRST_MATCH. Print either first match (if any) or
9764 DS theory predictor.
9765 (combine_predictions_for_bb): Likewise.
9766
9767 2016-06-16 Jakub Jelinek <jakub@redhat.com>
9768
9769 * gimplify.c (gimplify_scan_omp_clauses): Handle COMPONENT_REFs
9770 with base of reference to struct.
9771
9772 2016-06-16 Uros Bizjak <ubizjak@gmail.com>
9773
9774 * doc/invoke.texi (x86 Options): Document -m80387 and -mhard-float.
9775
9776 2016-06-16 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
9777
9778 PR target/71151
9779 * config/avr/avr.c (avr_asm_init_sections): Remove setup of
9780 progmem_swtable_section.
9781 (progmem_swtable_section): Remove.
9782 (avr_asm_function_rodata_section): Remove.
9783 (TARGET_ASM_FUNCTION_RODATA_SECTION): Remove.
9784 * config/avr/avr.h (JUMP_TABLES_IN_TEXT_SECTION: Define to 1.
9785
9786 2016-06-16 Jocelyn Mayer <l_indien@magic.fr>
9787
9788 * config/i386/driver-i386.c (host_detect_local_cpu): Set
9789 PROCESSOR_K8 for signature_CENTAUR_ebx with has_longmode.
9790 <case PROCESSOR_K8>: Pass nano-3000, nano, eden-x2 or k8 for
9791 signature_CENTAUR_ebx.
9792 * config/i386/i386.c (ix86_option_override_internal): Add
9793 definitions for VIA c7, samuel-2, nehemiah, esther, eden-x2, eden-x4,
9794 nano, nano-1000, nano-2000, nano-3000, nano-x2 and nano-x4.
9795 * doc/invoke.texi (x86 Options): Document new VIA -march entries.
9796
9797 2016-06-16 Martin Liska <mliska@suse.cz>
9798
9799 * predict.def: Add fortran loop preheader predictor.
9800 * gimple-fold.c (gimple_fold_stmt_to_constant_1): Properly
9801 fold IFN_BUILTIN_EXPECT with a known constant argument.
9802
9803 2016-06-16 Martin Liska <mliska@suse.cz>
9804
9805 * predict.def: Add 'Fortran' to display text of all
9806 PRED_FORTRAN_* predictors.
9807
9808 2016-06-16 Uros Bizjak <ubizjak@gmail.com>
9809
9810 PR target/71242
9811 * config/ia64/ia64.c (enum ia64_builtins) [IA64_BUILTIN_NANQ]: New.
9812 [IA64_BUILTIN_NANSQ]: Ditto.
9813 (ia64_fold_builtin): New function.
9814 (TARGET_FOLD_BUILTIN): New define.
9815 (ia64_init_builtins) Declare const_string_type node.
9816 Add __builtin_nanq and __builtin_nansq builtin functions.
9817 (ia64_expand_builtin): Handle IA64_BUILTIN_NANQ and IA64_BUILTIN_NANSQ.
9818
9819 2016-06-16 Nick Clifton <nickc@redhat.com>
9820
9821 * config/msp430/msp430-opts.h (msp430_hwmult_types): Add
9822 MSP430_HWMULT_ prefix to enum values.
9823 (msp430_regions): Add MSP430_REGION_ prefix to enum values.
9824 * config/msp430/msp430.c: Update use of enum values.
9825 * config/msp430/msp430.md: Likewise.
9826 * config/msp430/msp430.opt: Likewise.
9827
9828 2016-06-16 Jan Hubicka <hubicka@ucw.cz>
9829
9830 * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Fix estimation
9831 of comparsions in the last iteration.
9832
9833 2016-06-16 Claudiu Zissulescu <claziss@synopsys.com>
9834 Joern Rennecke <joern.rennecke@embecosm.com>
9835
9836 * config/arc/arc.c (arc_print_operand_address): Handle pc-relative
9837 addresses.
9838 (arc_needs_pcl_p): Add GOTOFFPC.
9839 (arc_legitimate_pic_addr_p): Likewise.
9840 (arc_output_pic_addr_const): Likewise.
9841 (arc_legitimize_pic_address): Generate a pc-relative address using
9842 GOTOFFPC.
9843 (arc_output_libcall): Use @pcl syntax.
9844 (arc_delegitimize_address_0): Delegitimize ARC_UNSPEC_GOTOFFPC.
9845 * config/arc/arc.md ("unspec"): Add ARC_UNSPEC_GOTOFFPC.
9846 (*movsi_insn): Use @pcl syntax.
9847 (doloop_begin_i): Likewise.
9848
9849 2016-06-16 Martin Liska <mliska@suse.cz>
9850
9851 * predict.def: Define a new predictor.
9852
9853 2016-06-16 Claudiu Zissulescu <claziss@synopsys.com>
9854
9855 * config/arc/arc.opt (mtp-regno): Update text.
9856
9857 2016-06-16 Renlin Li <renlin.li@arm.com>
9858
9859 * config/aarch64/aarch64.c (aarch64_legitimize_address): Fix a typo.
9860
9861 2016-06-16 Jakub Jelinek <jakub@redhat.com>
9862
9863 PR target/71554
9864 * config/i386/i386.md (setcc + movzbl peephole2): Use reg_set_p.
9865 (setcc + and peephole2): Likewise.
9866
9867 PR rtl-optimization/71532
9868 * cse.c (cse_insn): For const/pure calls, invalidate argument passing
9869 memory slots.
9870
9871 2016-06-15 Michael Meissner <meissner@linux.vnet.ibm.com>
9872
9873 * config/rs6000/vsx.md (VSINT_84): Add DImode to enable loading
9874 DImode constants with XXSPLTIB in vector registers.
9875 (vsx_extract_<mode>, V2DImode/V2DFmode): Combine both
9876 vsx_extract_<mode>_internal{1,2} into a single insn that handles
9877 direct move (both ISA 2.07 and ISA 3.0 versions), and optimizes
9878 extraction of the element at the top of the register as a scalar
9879 value.
9880 (vsx_extract_<mode>_internal1): Likewise.
9881 (vsx_extract_<mode>_internal2): Likewise.
9882 * config/rs6000/constraints.md (wi constraint): Remove a comment
9883 about DImode not being allowed in Altivec registers.
9884 (wB constraint): New constraint for constants that can be
9885 generated in Altivec registers with VSPLTISW/VUPKHSW.
9886 * config/rs6000/predicates.md (xxspltib_constant_split): Update
9887 comments.
9888 (xxspltib_constant_nosplit): Likewise.
9889 * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Add
9890 support for -mupper-regs-di to enable DImode to go into Altivec
9891 registers.
9892 (POWERPC_MASKS): Likewise.
9893 (power7 cpu): Likewise.
9894 * config/rs6000/rs6000.opt (-mupper-regs-di): Likewise.
9895 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Add support
9896 for DImode being allowed in Altivec registers. Update wi/wj
9897 constraints. Set scalar_in_vmx_p flag.
9898 (rs6000_option_override_internal): Add checks for -mupper-regs-di.
9899 (xxspltib_constant_p): Allow CONST_INT's with VOIDmode. Don't
9900 return true if we could use VSPLTISW/VUPKHSW instead of XXSPLTIB.
9901 (rs6000_opt_masks): Add -mupper-regs-di.
9902 * config/rs6000/rs6000.md (lfiwax): Update clobbers that don't use
9903 direct move to use wi and not wj.
9904 (lfiwzx): Likewise.
9905 (floatsi<mode>2_lfiwax_mem): Combine alternatives into a single
9906 alternative.
9907 (floatunssi<mode>2_lfiwzx_mem): Likewise.
9908 (fix_trunc<mode>di2_fctidz): Change second alternative to allow
9909 any VSX register, instead of just Altivec registers, to allow
9910 either operand to be an Altivec register or both.
9911 (fixuns_trunc<mode>di2_fctiduz): Likewise.
9912 (movdi_internal32): Add support for -mupper-regs-di. Add support
9913 to load constants via XXSPLTIB or VSPLTISW. Add spacing to allow
9914 the alternatives and attributes to be lined up to be easier to
9915 read.
9916 (movdi_internal64): Likewise.
9917 (64-bit DImode splitters): Change predicates to only split loading
9918 up GPR registers. Add splits for using XXSPLTIB or VSPLTISW to
9919 load constants in ISA 3.0 or ISA 2.07 respectively.
9920 * doc/invoke.texi (RS/6000 and PowerPC Options): Document
9921 -mupper-regs-di. Update -mupper-regs-df and -mupper-regs-sf to
9922 mention -mcpu=power9 sets these options.
9923 * doc/md.texi (PowerPC and IBM RS6000 constraints): Document the
9924 wB constraint.
9925
9926 2016-06-15 Pitchumani Sivanupandi <pitchumani.s@atmel.com>
9927
9928 PR target/67353
9929 * config/avr/avr.c (avr_set_current_function): Warn misspelled
9930 interrupt/ signal handler if -Wmisspelled-isr flag is enabled.
9931 * config/avr/avr.opt (Wmisspelled-isr): New warning flag. Enabled
9932 by default to warn misspelled interrupt/ signal handler.
9933 * doc/invoke.texi (AVR Options): Document it. Update description
9934 for -nodevicelib option.
9935
9936 2016-06-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9937
9938 * config/aarch64/aarch64-simd.md (aarch64_<sur>shll_n<mode>): Clean
9939 up parentheses. Use GET_MODE_UNIT_BITSIZE.
9940 (aarch64_<sur>shll2_n<mode>): Likewise.
9941
9942 2016-06-15 Ilya Enkovich <ilya.enkovich@intel.com>
9943
9944 PR middle-end/71529
9945 * ipa-chkp.c (chkp_build_instrumented_fndecl): Fix
9946 DECL_CONTEXT for copied arguments.
9947
9948 2016-06-15 Alan Hayward <alan.hayward@arm.com>
9949
9950 PR tree-optimization/71483
9951 * tree-vect-loop.c (vectorizable_live_operation): Pick correct index
9952 for slp
9953
9954 2016-06-15 Martin Liska <mliska@suse.cz>
9955
9956 * predict.c (tree_predict_by_opcode): Call predict_edge_def
9957 instead of predict_edge w/o a probability.
9958
9959 2016-06-15 Alan Hayward <alan.hayward@arm.com>
9960
9961 PR tree-optimization/71439
9962 * tree-vect-loop.c (vect_analyze_loop_operations): Additional check for
9963 live PHIs.
9964
9965 2016-06-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9966
9967 * ifcvt.c (bb_ok_for_noce_multiple_sets): Allow simple lowpart
9968 register subregs in SET_SRC.
9969
9970 2016-06-15 Richard Biener <rguenther@suse.de>
9971
9972 * tree-vect-stmts.c (vectorizable_store): Remove strided grouped
9973 store restrictions.
9974
9975 2016-06-15 Richard Biener <rguenther@suse.de>
9976
9977 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Do
9978 not consider dependences between accesses that belong to the
9979 same group.
9980 (vect_analyze_data_ref_dependences): Do not analyze read-read
9981 or self-dependences.
9982
9983 2016-06-14 David Malcolm <dmalcolm@redhat.com>
9984
9985 * spellcheck-tree.c: Include spellcheck-tree.h rather than
9986 spellcheck.h.
9987 (find_closest_identifier): Reimplement in terms of
9988 best_match<tree,tree>.
9989 * spellcheck-tree.h: New file.
9990 * spellcheck.c (struct edit_distance_traits<const char *>): New
9991 struct.
9992 (find_closest_string): Reimplement in terms of
9993 best_match<const char *, const char *>.
9994 * spellcheck.h (levenshtein_distance): Move prototype of tree-based
9995 overload to spellcheck-tree.h.
9996 (find_closest_identifier): Likewise.
9997 (struct edit_distance_traits<T>): New template.
9998 (class best_match): New class.
9999
10000 2016-06-14 David Malcolm <dmalcolm@redhat.com>
10001
10002 * selftest-run-tests.c (selftest::run_tests): Call
10003 selftest::spellcheck_tree_c_tests.
10004 * selftest.h (selftest::spellcheck_tree_c_tests): New decl.
10005 * spellcheck-tree.c: Include selftest.h and stringpool.h.
10006 (selftest::test_find_closest_identifier): New function.
10007 (selftest::spellcheck_tree_c_tests): New function.
10008 * spellcheck.c (selftest::test_find_closest_string): Verify that
10009 the order of the vec does not affect the results for this case.
10010 (selftest::test_data): New array.
10011 (selftest::test_metric_conditions): New function.
10012 (selftest::spellcheck_c_tests): Add a test of case-comparison.
10013 Call selftest::test_metric_conditions.
10014
10015 2016-06-14 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
10016
10017 * config/rs6000/rs6000-builtin.def (commentary): Typo.
10018 (BU_P9_MISC_1): Likewise.
10019 (BU_P9_64BIT_MISC_0): Likewise.
10020 (BU_P9_MISC_0): Likewise.
10021
10022 2016-06-14 David Malcolm <dmalcolm@redhat.com>
10023
10024 * gcc-rich-location.c
10025 (gcc_rich_location::add_fixit_misspelled_id): New method.
10026 * gcc-rich-location.h
10027 (gcc_rich_location::add_fixit_misspelled_id): Add decl.
10028
10029 2016-06-14 Andreas Tobler <andreast@gcc.gnu.org>
10030
10031 * config/arm/freebsd.h: Only enable unaligned access for armv6 on
10032 FreeBSD 11 and above.
10033
10034 2016-06-14 Uros Bizjak <ubizjak@gmail.com>
10035
10036 * config/i386/i386.md (signbittf2): Emit sse_movmskps for TARGET_SSE.
10037
10038 2016-06-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10039
10040 * expmed.h: Close parenthesis in "at your option" in copyright
10041 boilerplate.
10042 * lower-subreg.h: Likewise.
10043
10044 2016-06-14 Richard Biener <rguenther@suse.de>
10045
10046 PR middle-end/71526
10047 * genmatch.c (expr::gen_transform): Use in_type for comparisons
10048 if available.
10049
10050 2015-06-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10051
10052 * config/aarch64/aarch64.c (aarch64_mask_and_shift_for_ubfiz_p):
10053 New function.
10054 (aarch64_rtx_costs): Use it. Rewrite CONST_INT_P (op1) case to handle
10055 mask+shift version.
10056 * config/aarch64/aarch64-protos.h (aarch64_mask_and_shift_for_ubfiz_p):
10057 New prototype.
10058 * config/aarch64/aarch64.md (*andim_ashift<mode>_bfiz): Replace
10059 matching condition with aarch64_mask_and_shift_for_ubfiz_p.
10060
10061 2016-06-14 Richard Biener <rguenther@suse.de>
10062
10063 PR tree-optimization/71522
10064 * tree-ssa.c (non_rewritable_lvalue_p): Do not rewrite non-float
10065 copying into float copying.
10066
10067 2016-06-14 Jakub Jelinek <jakub@redhat.com>
10068
10069 PR tree-optimization/71520
10070 * tree-ssa-tail-merge.c (find_duplicate): Handle labels.
10071 (replace_block_by): Move user labels from bb1 to bb2.
10072
10073 2016-06-14 Richard Biener <rguenther@suse.de>
10074
10075 PR middle-end/71310
10076 PR bootstrap/71510
10077 * expr.h (get_bit_range): Declare.
10078 * expr.c (get_bit_range): Export.
10079 * fold-const.c (optimize_bit_field_compare): Use get_bit_range and
10080 word_mode again to constrain the bitfield access.
10081
10082 2016-06-14 Richard Biener <rguenther@suse.de>
10083
10084 PR tree-optimization/71521
10085 * tree-vrp.c (extract_range_from_binary_expr_1): Guard
10086 division int_const_binop against zero divisor.
10087
10088 2016-06-13 Uros Bizjak <ubizjak@gmail.com>
10089
10090 * config/i386/i386.md (signbittf2): New expander.
10091 * config/i386/sse.md (ptesttf2): New insn pattern.
10092
10093 2016-06-13 David Malcolm <dmalcolm@redhat.com>
10094
10095 PR bootstrap/71481
10096 * input.c (selftest::test_reading_source_line): Avoid reading from
10097 __FILE__ by creating a tempfile with known content and reading
10098 from that instead.
10099
10100 2016-06-13 David Malcolm <dmalcolm@redhat.com>
10101
10102 * pretty-print.c (assert_pp_format_colored): Skip the test if
10103 GCC_COLORS is set.
10104 (test_pp_format): Remove comment about GCC_COLORS.
10105
10106 2016-06-13 David Malcolm <dmalcolm@redhat.com>
10107
10108 * input.c (test_reading_source_line): Use SELFTEST_LOCATION.
10109 * pretty-print.c (assert_pp_format_va): Add location param and use
10110 it with ASSERT_STREQ_AT.
10111 (assert_pp_format): Add location param and pass it to
10112 assert_pp_format_va.
10113 (assert_pp_format_colored): Likewise.
10114 (ASSERT_PP_FORMAT_1): New.
10115 (ASSERT_PP_FORMAT_2): New.
10116 (ASSERT_PP_FORMAT_3): New.
10117 (test_pp_format): Provide SELFTEST_LOCATION throughout, either
10118 explicitly, or implicitly via the above macros.
10119 * selftest.c (selftest::pass): Use a selftest::location rather
10120 than file and line.
10121 (selftest::fail): Likewise. Print the function name.
10122 (selftest::fail_formatted): Likewise.
10123 (selftest::assert_streq): Use a selftest::location rather than
10124 file and line.
10125 * selftest.h (selftest::location): New struct.
10126 (SELFTEST_LOCATION): New macro.
10127 (selftest::pass): Accept a const location & rather than file
10128 and line.
10129 (selftest::fail): Likewise.
10130 (selftest::fail_formatted): Likewise.
10131 (selftest::assert_streq): Likewise.
10132 (ASSERT_TRUE): Update for above changes, using SELFTEST_LOCATION.
10133 (ASSERT_FALSE): Likewise.
10134 (ASSERT_EQ): Likewise.
10135 (ASSERT_NE): Likewise.
10136 (ASSERT_STREQ): Likewise.
10137 (ASSERT_PRED1): Likewise.
10138 (ASSERT_STREQ_AT): New macro.
10139
10140 2016-06-13 David Malcolm <dmalcolm@redhat.com>
10141
10142 * selftest.c (selftest::fail_formatted): New function.
10143 (selftest::assert_streq): New function.
10144 * selftest.h (selftests::fail_formatted): New decl.
10145 (selftest::assert_streq): New decl.
10146 (ASSERT_STREQ): Reimplement in terms of selftest::assert_streq.
10147
10148 2016-06-13 Jeff Law <law@redhat.com>
10149
10150 PR tree-optimization/71403
10151 * tree-ssa-threadbackward.c
10152 (convert_and_register_jump_thread_path): No longer accept reference
10153 to path. Do not pop items off the path anymore.
10154 (fsm_find_control_statement_thread_paths): Do not allow threading
10155 to a deeper loop nest. Pop the last item off the path here rather
10156 than in convert_and_register_jump_thread_path.
10157
10158 2016-06-13 Evandro Menezes <e.menezes@samsung.com>
10159 Wilco Dijkstra <Wilco.Dijkstra@arm.com>
10160
10161 [AArch64] Emit division using the Newton series
10162
10163 * config/aarch64/aarch64-protos.h
10164 (cpu_approx_modes): Add new member "division".
10165 (aarch64_emit_approx_div): Declare new function.
10166 * config/aarch64/aarch64.c
10167 (generic_approx_modes): New member "division".
10168 (exynosm1_approx_modes): Likewise.
10169 (xgene1_approx_modes): Likewise.
10170 (aarch64_emit_approx_div): Define new function.
10171 * config/aarch64/aarch64.md ("div<mode>3"): New expansion.
10172 * config/aarch64/aarch64-simd.md ("div<mode>3"): Likewise.
10173 * config/aarch64/aarch64.opt (-mlow-precision-div): Add new option.
10174 * doc/invoke.texi (-mlow-precision-div): Describe new option.
10175
10176 2016-06-13 Evandro Menezes <e.menezes@samsung.com>
10177 Wilco Dijkstra <wilco.dijkstra@arm.com>
10178
10179 [AArch64] Emit square root using the Newton series
10180
10181 * config/aarch64/aarch64-protos.h
10182 (aarch64_emit_approx_rsqrt): Replace with new function
10183 "aarch64_emit_approx_sqrt".
10184 (cpu_approx_modes): New member "sqrt".
10185 * config/aarch64/aarch64.c
10186 (generic_approx_modes): New member "sqrt".
10187 (exynosm1_approx_modes): Likewise.
10188 (xgene1_approx_modes): Likewise.
10189 (aarch64_emit_approx_rsqrt): Replace with new function
10190 "aarch64_emit_approx_sqrt".
10191 (aarch64_override_options_after_change_1): Handle new option.
10192 * config/aarch64/aarch64-simd.md
10193 (rsqrt<mode>2): Use new function instead.
10194 (sqrt<mode>2): New expansion and insn definitions.
10195 * config/aarch64/aarch64.md: Likewise.
10196 * config/aarch64/aarch64.opt
10197 (mlow-precision-sqrt): Add new option description.
10198 * doc/invoke.texi (mlow-precision-sqrt): Likewise.
10199
10200 2016-06-13 Evandro Menezes <e.menezes@samsung.com>
10201
10202 [AArch64] Add more choices for the reciprocal square root approximation
10203
10204 Allow a target to prefer such operation depending on the operation mode.
10205
10206 * config/aarch64/aarch64-protos.h
10207 (AARCH64_APPROX_MODE): New macro.
10208 (AARCH64_APPROX_{NONE,ALL}): Likewise.
10209 (cpu_approx_modes): New structure.
10210 (tune_params): New member "approx_modes".
10211 * config/aarch64/aarch64-tuning-flags.def
10212 (AARCH64_EXTRA_TUNE_APPROX_RSQRT): Remove macro.
10213 * config/aarch64/aarch64.c
10214 (generic_approx_modes): New core "cpu_approx_modes" structure.
10215 (exynosm1_approx_modes): Likewise.
10216 (xgene1_approx_modes): Likewise.
10217 (generic_tunings): New member "approx_modes".
10218 (cortexa35_tunings): Likewise.
10219 (cortexa53_tunings): Likewise.
10220 (cortexa57_tunings): Likewise.
10221 (cortexa72_tunings): Likewise.
10222 (exynosm1_tunings): Likewise.
10223 (thunderx_tunings): Likewise.
10224 (xgene1_tunings): Likewise.
10225 (use_rsqrt_p): New argument for the mode and use new member from
10226 "tune_params".
10227 (aarch64_builtin_reciprocal): Devise mode from builtin.
10228 (aarch64_optab_supported_p): New argument for the mode.
10229 * doc/invoke.texi (-mlow-precision-recip-sqrt): Reword description.
10230
10231 2016-06-13 Kelvin Nilsen <kelvin@gcc.gnu.org>
10232
10233 * config/rs6000/rs6000.h (RS6000_BTM_COMMON): Add the
10234 RS6000_BTM_MODULO flag into the set of flags that are considered
10235 to be part of the common configuration.
10236
10237 2016-06-13 Kelvin Nilsen <kelvin@gcc.gnu.org>
10238
10239 * config/rs6000/altivec.h (vec_absd): New macro for vector absolute
10240 difference unsigned.
10241 (vec_absdb): New macro for vector absolute difference unsigned
10242 byte.
10243 (vec_absdh): New macro for vector absolute difference unsigned
10244 half-word.
10245 (vec_absdw): New macro for vector absolute difference unsigned word.
10246 * config/rs6000/altivec.md (UNSPEC_VADU): New value.
10247 (vadu<mode>3): New insn.
10248 (*p9_vadu<mode>3): New insn.
10249 * config/rs6000/rs6000-builtin.def (vadub): New built-in
10250 definition.
10251 (vaduh): New built-in definition.
10252 (vaduw): New built-in definition.
10253 (vadu): New overloaded built-in definition.
10254 (vadub): New overloaded built-in definition.
10255 (vaduh): New overloaded built-in definition.
10256 (vaduw): New overloaded built-in definition.
10257 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
10258 overloaded vector absolute difference unsigned functions.
10259 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
10260 the ISA 3.0 vector absolute difference unsigned built-in functions.
10261
10262 2016-06-13 Eric Botcazou <ebotcazou@adacore.com>
10263
10264 * tree-ssa-sccvn.c (vn_reference_lookup_3): Use a uniform test and
10265 update shared_lookup_references only once after changing operands.
10266
10267 2016-06-13 Thomas Schwinge <thomas@codesourcery.com>
10268
10269 PR middle-end/71373
10270 * tree-nested.c (convert_nonlocal_omp_clauses)
10271 (convert_local_omp_clauses): Document missing OMP_CLAUSE_*.
10272
10273 * tree-cfg.c (edge_to_cases_cleanup): Fix CASE_CHAIN typo.
10274 * tree.def (CASE_LABEL_EXPR): Likewise.
10275
10276 2016-06-13 Bernd Edlinger <bernd.edlinger@hotmail.de>
10277
10278 PR bootstrap/71481
10279 * input.c (test_builtins): Fix an assertion.
10280
10281 2016-06-13 Uros Bizjak <ubizjak@gmail.com>
10282
10283 * config/i386/i386.md (paritydi2): Use ix86_expand_setcc.
10284 (paritysi2): Ditto.
10285 (isinfxf2): Ditto.
10286 (isinf<mode>2): Ditto.
10287
10288 2016-06-13 Uros Bizjak <ubizjak@gmail.com>
10289
10290 * ggc-tests.c (test_finalization): Only test need_finalization_p
10291 for GCC_VERSION >= 4003.
10292
10293 2016-06-13 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
10294
10295 * config/s390/vecintrin.h: Fix file description in comment.
10296
10297 2016-06-13 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
10298
10299 * config/s390/s390-builtin-types.def: Change builtin type naming
10300 scheme to match builtin-types.def.
10301
10302 2016-06-13 Marc Glisse <marc.glisse@inria.fr>
10303
10304 * fold-const.c (optimize_minmax_comparison): Remove.
10305 (fold_comparison): Remove call to the above.
10306 * match.pd (MIN (X, Y) == X, MIN (X, 5) == 0, MIN (X, C1) < C2):
10307 New transformations.
10308
10309 2016-06-13 Alan Hayward <alan.hayward@arm.com>
10310
10311 PR tree-optimization/71416
10312 * tree-vect-loop.c (vectorizable_live_operation): Let worklist have
10313 multiple entries
10314
10315 2016-06-13 Martin Liska <mliska@suse.cz>
10316
10317 * predict.c (enum predictor_reason): Prefix enum with REASON_.
10318 (combine_predictions_for_insn): Likewise.
10319 (prune_predictions_for_bb): Likewise.
10320 (combine_predictions_for_bb): Likewise.
10321
10322 2016-06-13 Richard Biener <rguenther@suse.de>
10323
10324 PR tree-optimization/71505
10325 * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Make
10326 assert match comment.
10327
10328 2016-06-13 Marek Polacek <polacek@redhat.com>
10329
10330 PR middle-end/71476
10331 * gimplify.c (maybe_warn_switch_unreachable): Factored out of
10332 gimplify_switch_expr.
10333 (warn_switch_unreachable_r): New function.
10334
10335 2016-06-13 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
10336
10337 PR target/71379
10338 * config/s390/s390.c (s390_expand_builtin): Increase MAX_ARGS by
10339 one.
10340
10341 2016-06-13 Richard Biener <rguenther@suse.de>
10342
10343 PR middle-end/64516
10344 * fold-const.c (fold_unary_loc): Preserve alignment when
10345 folding a VIEW_CONVERT_EXPR into a MEM_REF.
10346
10347 2016-06-13 Martin Liska <mliska@suse.cz>
10348
10349 PR sanitizer/71458
10350 * toplev.c (process_options): Do not enable -fcheck-pointer-bounds
10351 w/ -fsanitize=bounds.
10352
10353 2016-06-12 Uros Bizjak <ubizjak@gmail.com>
10354
10355 * config/i386/i386.c (ix86_init_builtins): Calculate
10356 FLOAT128_FTYPE_CONST_STRING function type only once.
10357 * doc/extend.texi (x86 Built-in Functions): Update text, __float128
10358 built-in functions are available for x86-32 and x86-64 targets.
10359
10360 2016-06-12 Uros Bizjak <ubizjak@gmail.com>
10361
10362 PR target/71241
10363 * config/i386/i386.i386-builtin-types.def (CONST_STRING):
10364 New primitive type.
10365 (FLOAT128_FTYPE_CONST_STRING): New function type.
10366 * config/i386/i386.c (enum ix86_builtins) [IX86_BUILTIN_NANQ]: New.
10367 [IX86_BUILTIN_NANSQ]: Ditto.
10368 (ix86_fold_builtin): Handle IX86_BUILTIN_NANQ and IX86_BUILTIN_NANSQ.
10369 (ix86_init_builtin_types): Declare const_string_type_node.
10370 (ix86_init_builtins): Add __builtin_nanq and __builtin_nansq
10371 builtin functions.
10372 (ix86_expand_builtin): Handle IX86_BUILTIN_NANQ and IX86_BUILTIN_NANSQ.
10373 * doc/extend.texi (x86 Built-in Functions): Document
10374 __builtin_nanq and __builtin_nansq.
10375
10376 2016-06-11 Jiong Wang <jiong.wang@arm.com>
10377
10378 PR target/71061
10379 * config/arm/arm-protos.h (arm_attr_length_pop_multi): New declaration.
10380 * config/arm/arm.c (arm_attr_length_pop_multi): New function to return
10381 length for pop patterns.
10382 (arm_attr_length_push_multi): Update comments.
10383 * config/arm/arm.md (*load_multiple_with_writeback): Set "length"
10384 attribute.
10385 (*pop_multiple_with_writeback_and_return): Likewise.
10386 (*pop_multiple_with_return): Likewise.
10387
10388 2016-06-11 Segher Boessenkool <segher@kernel.crashing.org>
10389
10390 PR middle-end/71310
10391 * fold-const.c (optimize_bit_field_compare): Don't try to use
10392 word_mode unconditionally for reading the bit field, look at
10393 DECL_BIT_FIELD_REPRESENTATIVE instead.
10394
10395 2016-06-11 Kugan Vivekanandarajah <kuganv@linaro.org>
10396
10397 PR middle-end/71478
10398 * tree-ssa-reassoc.c (reassociate_bb): Remove (-1) from ops list for
10399 vector integer type.
10400
10401 2016-06-10 Jakub Jelinek <jakub@redhat.com>
10402
10403 PR middle-end/71494
10404 * tree-nested.c (convert_nonlocal_reference_stmt): For GIMPLE_GOTO
10405 without LABEL_DECL, set *handled_ops_p to false instead of true.
10406
10407 2016-06-10 Martin Sebor <msebor@redhat.com>
10408
10409 PR c/71392
10410 * builtin-attrs.def (ATTR_NOTHROW_NONNULL_LEAF_LIST): New macro.
10411 (ATTR_NOTHROW_NONNULL_TYPEGENERIC_LEAF): Same.
10412 * builtins.def (BUILT_IN_SADD_OVERFLOW, BUILT_IN_SADDL_OVERFLOW): Use
10413 them.
10414 (BUILT_IN_SADDLL_OVERFLOW, BUILT_IN_SSUB_OVERFLOW): Same.
10415 (BUILT_IN_SSUBL_OVERFLOW, BUILT_IN_SSUBLL_OVERFLOW): Same.
10416 (BUILT_IN_SMUL_OVERFLOW, BUILT_IN_SMULL_OVERFLOW): Same.
10417 (BUILT_IN_SMULLL_OVERFLOW, BUILT_IN_UADD_OVERFLOW): Same.
10418 (BUILT_IN_UADDL_OVERFLOW, BUILT_IN_UADDLL_OVERFLOW): Same.
10419 (BUILT_IN_USUB_OVERFLOW, BUILT_IN_USUBL_OVERFLOW): Same.
10420 (BUILT_IN_USUBLL_OVERFLOW, BUILT_IN_UMUL_OVERFLOW): Same.
10421 (BUILT_IN_UMULL_OVERFLOW, BUILT_IN_UMULLL_OVERFLOW): Same.
10422
10423 2016-06-10 Bernd Edlinger <bernd.edlinger@hotmail.de>
10424
10425 * config/arm/arm.h (pool_vector_label,
10426 return_used_this_function): Remove.
10427
10428 2016-06-10 Jeff Law <law@redhat.com>
10429
10430 PR tree-optimization/71335
10431 * tree-ssa-threadbackward.c (profitable_jump_thread_path): Filter out
10432 zero length paths here.
10433 (convert_and_register_jump_thread_path): Remove hacks related to
10434 duplicated blocks in the jump thread path.
10435 (fsm_find_control_statement_thread_paths): Avoid putting the same
10436 block on the thread path twice, but ensure the thread path is
10437 unchanged from the caller's point of view.
10438
10439 2016-06-10 Jan Hubicka <hubicka@ucw.cz>
10440
10441 * predict.c (predict_loops): Remove PRED_LOOP_BRANCH.
10442 * predict.def (PRED_LOOP_BRANCH): Remove.
10443
10444 2016-06-10 David Malcolm <dmalcolm@redhat.com>
10445
10446 * Makefile.in (OBJS): Add ggc-tests.o.
10447 (GTFILES): Add ggc-tests.c.
10448 * ggc-tests.c: New file.
10449 * selftest-run-tests.c (selftest::run_tests): Call
10450 selftest::ggc_tests_c_tests.
10451 * selftest.h (selftest::ggc_tests_c_tests): New prototype.
10452
10453 2016-06-10 Alexander Monakov <amonakov@ispras.ru>
10454
10455 * match.pd (-1 / B < A): Use :c to avoid pattern duplication.
10456
10457 2016-06-10 Maxim Ostapenko <m.ostapenko@samsung.com>
10458
10459 PR sanitizer/71480
10460 * varasm.c (place_block_symbol): Adjust alignment for asan protected
10461 STRING_CSTs even if TREE_CONSTANT_POOL_ADDRESS_P.
10462
10463 2016-06-10 Jan Hubicka <hubicka@ucw.cz>
10464
10465 * profile.c: Include cfgloop.h.
10466 (branch_prob): Compute estimated number of iterations.
10467 * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop): Do not
10468 recompute estimate number of iterations from profile.
10469
10470 2016-06-10 Bernd Edlinger <bernd.edlinger@hotmail.de>
10471
10472 PR inline-asm/68843
10473 * reg-stack.c (check_asm_stack_operands): Explicit input arguments
10474 must be grouped on top of stack. Don't force early clobber
10475 on ordinary reg outputs.
10476
10477 2016-06-10 Richard Biener <rguenther@suse.de>
10478
10479 * targhooks.c (default_builtin_vectorization_cost): Adjust
10480 vec_construct cost.
10481
10482 2016-06-10 Richard Biener <rguenther@suse.de>
10483
10484 * gimple-fold.c (gimple_fold_builtin_memory_op): Make sure
10485 to fold the RHS to a constant if possible.
10486
10487 2016-06-10 Thomas Schwinge <thomas@codesourcery.com>
10488
10489 PR middle-end/71373
10490 * tree-nested.c (convert_nonlocal_omp_clauses)
10491 (convert_local_omp_clauses): Handle OMP_CLAUSE_ASYNC,
10492 OMP_CLAUSE_WAIT, OMP_CLAUSE_INDEPENDENT, OMP_CLAUSE_AUTO,
10493 OMP_CLAUSE__CACHE_, OMP_CLAUSE_TILE.
10494
10495 * gimplify.c (gimplify_adjust_omp_clauses): Discard
10496 OMP_CLAUSE_TILE.
10497 * omp-low.c (scan_sharing_clauses): Don't expect OMP_CLAUSE_TILE.
10498
10499 * omp-low.c (scan_sharing_clauses): Don't expect
10500 OMP_CLAUSE__CACHE_.
10501
10502 2016-06-10 Alan Hayward <alan.hayward@arm.com>
10503
10504 PR tree-optimization/71407
10505 PR tree-optimization/71416
10506 * tree-vect-loop.c (vectorizable_live_operation): Use vectype for
10507 BIT_FIELD_REF type.
10508
10509 2016-06-10 Richard Biener <rguenther@suse.de>
10510
10511 PR middle-end/71477
10512 * cfgloop.c (alloc_loop): Initialize nb_iterations_likely_upper_bound.
10513
10514 2016-06-09 Eric Botcazou <ebotcazou@adacore.com>
10515
10516 * df-problems.c (df_note_bb_compute): Guard use of DF_INSN_INFO_GET.
10517
10518 2016-06-09 Vladimir Makarov <vmakarov@redhat.com>
10519 Jiong Wang <jiong.wang@arm.com>
10520
10521 PR rtl-optimization/70751
10522 * lra-constraints.c (process_alt_operands): Recognize Non-pseudo
10523 spilled into memory.
10524
10525 2016-06-09 Jonathan Yong <10walls@gmail.com>
10526
10527 Revert:
10528 2015-09-21 Jonathan Yong <10walls@gmail.com>
10529
10530 * config/i386/cygwin.h (STARTFILE_SPEC): Explicitly search
10531 sysroot/usr/lib/32api for additional win32 libraries,
10532 fixes failing Cygwin bootstrapping.
10533
10534 2016-06-09 Marcin Baczyński <marbacz@gmail.com>
10535
10536 * diagnostic.h (diagnostic_line_cutoff, diagnostic_flush_buffer):
10537 Delete.
10538
10539 2016-06-09 David Malcolm <dmalcolm@redhat.com>
10540
10541 PR bootstrap/71471
10542 * pretty-print.c (pp_indent): Specify that %p is printed in a
10543 host-dependent manner.
10544 (test_pp_format): Remove the test for %p.
10545
10546 2016-06-09 Maciej W. Rozycki <macro@imgtec.com>
10547
10548 * config/mips/mips.c (mips_output_jump): Fix formatting.
10549
10550 2016-06-09 Richard Biener <rguenther@suse.de>
10551
10552 PR tree-optimization/71462
10553 * tree-ssa-loop-manip.c (find_uses_to_rename): Guard against
10554 removed blocks.
10555
10556 2016-06-09 Martin Liska <mliska@suse.cz>
10557
10558 * predict.c (dump_prediction): Add new argument.
10559 (enum predictor_reason): New enum.
10560 (struct predictor_hash): New struct.
10561 (predictor_hash::hash): New function.
10562 (predictor_hash::equal): Likewise.
10563 (not_removed_prediction_p): New function.
10564 (prune_predictions_for_bb): Likewise.
10565 (combine_predictions_for_bb): Prune predictions.
10566
10567 2016-06-09 Martin Liska <mliska@suse.cz>
10568
10569 * predict.c (filter_predictions): New function.
10570 (remove_predictions_associated_with_edge): Use the filter
10571 function.
10572 (equal_edge_p): New function.
10573
10574 2016-06-09 Stefan Bruens <stefan.bruens@rwth-aachen.de>
10575
10576 * doc/invoke.texi (ARM Options): Use lexicographical ordering.
10577 Correct usage of @samp vs @option, add @samp where appropriate.
10578 Add -march={armv6k,armv6z,arm6zk}, remove -march=ep9312.
10579 Add armv6s-m and document it, as it is no official ARM name.
10580
10581 2016-06-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10582
10583 * ifcvt.c (struct noce_if_info): Add transform_name field.
10584 (noce_try_move): Set if_info->transform_name to the function name.
10585 (noce_try_ifelse_collapse): Likewise.
10586 (noce_try_store_flag): Likewise.
10587 (noce_try_inverse_constants): Likewise.
10588 (noce_try_store_flag_constants): Likewise.
10589 (noce_try_addcc): Likewise.
10590 (noce_try_store_flag_mask): Likewise.
10591 (noce_try_cmove): Likewise.
10592 (noce_try_cmove_arith): Likewise.
10593 (noce_try_minmax): Likewise.
10594 (noce_try_abs): Likewise.
10595 (noce_try_sign_mask): Likewise.
10596 (noce_try_bitop): Likewise.
10597 (noce_convert_multiple_sets): Likewise.
10598 (noce_process_if_block): Print if_info->transform_name to
10599 dump_file if transformation succeeded.
10600
10601 2016-06-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10602
10603 * config/arm/cortex-a57.md (cortex_a57_alu):
10604 Handle csel type.
10605
10606 2016-06-08 Martin Sebor <msebor@redhat.com>
10607 Jakub Jelinek <jakub@redhat.com>
10608
10609 PR c++/70507
10610 PR c/68120
10611 * builtins.def (BUILT_IN_ADD_OVERFLOW_P, BUILT_IN_SUB_OVERFLOW_P,
10612 BUILT_IN_MUL_OVERFLOW_P): New builtins.
10613 * builtins.c: Include gimple-fold.h.
10614 (fold_builtin_arith_overflow): Handle
10615 BUILT_IN_{ADD,SUB,MUL}_OVERFLOW_P.
10616 (fold_builtin_3): Likewise.
10617 * doc/extend.texi (Integer Overflow Builtins): Document
10618 __builtin_{add,sub,mul}_overflow_p.
10619
10620 2016-06-08 Jose E. Marchesi <jose.marchesi@oracle.com>
10621
10622 * config/sparc/driver-sparc.c (cpu_names): Fix the entry for the
10623 SPARC-M7 and add an entry for SPARC-S7 cpus (Sonoma).
10624
10625 2016-06-08 Alan Lawrence <alan.lawrence@arm.com>
10626
10627 * config/aarch64/aarch64.c (aarch64_function_arg_alignment):
10628 Rewrite, looking one level down for records and arrays.
10629
10630 2016-06-08 David Malcolm <dmalcolm@redhat.com>
10631
10632 * pretty-print.c: Include "selftest.h".
10633 (pp_format): Fix comment.
10634 (identifier_to_locale): Likewise.
10635 (selftest::test_basic_printing): New function.
10636 (selftest::assert_pp_format): New function.
10637 (selftest::test_pp_format): New function.
10638 (selftest::pretty_print_c_tests): New function.
10639 * selftest-run-tests.c (selftest::run_tests): Call
10640 selftest::pretty_print_c_tests.
10641 * selftest.h (pretty_print_c_tests): New declaration.
10642
10643 2016-06-07 Jan Hubicka <hubicka@ucw.cz>
10644
10645 * invoke.texi (max-loop-headers-insns): Document.
10646 * params.def (PARAM_MAX_LOOP_HEADER_INSNS): New.
10647 * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Update comment.
10648 (ch_base::copy_headers): Use PARAM_MAX_LOOP_HEADER_INSNS.
10649
10650 2016-06-08 Richard Biener <rguenther@suse.de>
10651
10652 * tree-vect-stmts.c (vectorizable_load): Remove restrictions
10653 on strided SLP loads and fall back to scalar loads in case
10654 we can't chunk them.
10655
10656 2016-06-08 Richard Biener <rguenther@suse.de>
10657
10658 PR tree-optimization/71452
10659 * tree-ssa.c (non_rewritable_lvalue_p): Make sure that the
10660 type used for the SSA rewrite has enough precision to cover
10661 the dynamic type of the location.
10662
10663 2016-06-08 Jakub Jelinek <jakub@redhat.com>
10664 Richard Biener <rguenther@suse.de>
10665
10666 PR c++/71448
10667 * fold-const.c (fold_comparison): Handle CONSTANT_CLASS_P (base0)
10668 the same as DECL_P (base0) for indirect_base0. Use equality_code
10669 in one further place.
10670
10671 2016-06-08 Richard Sandiford <richard.sandiford@arm.com>
10672
10673 * expmed.c (store_bit_field_1): Do not restrict a multiword op0
10674 to one word if the field is known to overlap other words.
10675 (extract_bit_field_1): Likewise.
10676 (store_split_bit_field): Remove compensating code.
10677 (extract_split_bit_field): Likewise.
10678
10679 2016-06-08 Bernd Schmidt <bschmidt@redhat.com>
10680
10681 PR debug/71432
10682 PR ada/71413
10683 * tree-ssa-strlen.c (handle_builtin_memcmp): Ignore debug insns.
10684
10685 2016-06-08 Jiong Wang <jiong.wang@arm.com>
10686
10687 * config/aarch64/aarch64-builtins.def (faddp): New builtins for modes in
10688 VDQF.
10689 * config/aarch64/aarch64-simd.md (aarch64_faddp<mode>): New.
10690 (arch64_addpv4sf): Delete.
10691 (reduc_plus_scal_v4sf): Use "gen_aarch64_faddpv4sf" instead of
10692 "gen_aarch64_addpv4sf".
10693 * config/aarch64/arm_neon.h (vpadd_f32): Remove inline assembly. Use
10694 builtin.
10695 (vpadds_f32): Likewise.
10696 (vpaddq_f32): Likewise.
10697 (vpaddq_f64): Likewise.
10698
10699 2016-06-08 Jiong Wang <jiong.wang@arm.com>
10700
10701 * config/aarch64/aarch64-builtins.def (fabd): New builtins for modes
10702 VALLF.
10703 * config/aarch64/aarch64-simd.md (fabd<mode>_3): Extend modes from VDQF
10704 to VALLF. Rename to "fabd<mode>3".
10705 "*fabd_scalar<mode>3): Delete.
10706 * config/aarch64/arm_neon.h (vabds_f32): Remove inline assembly.
10707 Use builtin.
10708 (vabdd_f64): Likewise.
10709 (vabd_f32): Likewise.
10710 (vabd_f64): Likewise.
10711 (vabdq_f32): Likewise.
10712 (vabdq_f64): Likewise.
10713
10714 2016-06-08 Jiong Wang <jiong.wang@arm.com>
10715
10716 * config/aarch64/aarch64-builtins.def (rsqrts): New builtins for modes
10717 VALLF.
10718 * config/aarch64/aarch64-simd.md (aarch64_rsqrts_<mode>3): Rename to
10719 "aarch64_rsqrts<mode>".
10720 * config/aarch64/aarch64.c (get_rsqrts_type): Update gen* name.
10721 * config/aarch64/arm_neon.h (vrsqrtss_f32): Remove inline assembly. Use
10722 builtin.
10723 (vrsqrtsd_f64): Likewise.
10724 (vrsqrts_f32): Likewise.
10725 (vrsqrts_f64): Likewise.
10726 (vrsqrtsq_f32): Likewise.
10727 (vrsqrtsq_f64): Likewise.
10728
10729 2016-06-08 Jiong Wang <jiong.wang@arm.com>
10730
10731 * config/aarch64/aarch64-builtins.def (rsqrte): New builtins for modes
10732 VALLF.
10733 * config/aarch64/aarch64-simd.md (aarch64_rsqrte_<mode>2): Rename to
10734 "aarch64_rsqrte<mode>".
10735 * config/aarch64/aarch64.c (get_rsqrte_type): Update gen* name.
10736 * config/aarch64/arm_neon.h (vrsqrts_f32): Remove inline assembly. Use
10737 builtin.
10738 (vrsqrted_f64): Likewise.
10739 (vrsqrte_f32): Likewise.
10740 (vrsqrte_f64): Likewise.
10741 (vrsqrteq_f32): Likewise.
10742 (vrsqrteq_f64): Likewise.
10743
10744 2016-06-08 Jiong Wang <jiong.wang@arm.com>
10745
10746 * config/aarch64/aarch64-builtins.def (scvtf): Register vector modes.
10747 (ucvtf): Likewise.
10748 (fcvtzs): Likewise.
10749 (fcvtzu): Likewise.
10750 * config/aarch64/aarch64-simd.md
10751 (<FCVT_F2FIXED:fcvt_fixed_insn><VDQF:mode>3): New.
10752 (<FCVT_FIXED2F:fcvt_fixed_insn><VDQ_SDI:mode>3): Likewise.
10753 * config/aarch64/arm_neon.h (vcvt_n_f32_s32): Remove inline assembly.
10754 Use builtin.
10755 (vcvt_n_f32_u32): Likewise.
10756 (vcvt_n_s32_f32): Likewise.
10757 (vcvt_n_u32_f32): Likewise.
10758 (vcvtq_n_f32_s32): Likewise.
10759 (vcvtq_n_f32_u32): Likewise.
10760 (vcvtq_n_f64_s64): Likewise.
10761 (vcvtq_n_f64_u64): Likewise.
10762 (vcvtq_n_s32_f32): Likewise.
10763 (vcvtq_n_s64_f64): Likewise.
10764 (vcvtq_n_u32_f32): Likewise.
10765 (vcvtq_n_u64_f64): Likewise.
10766 * config/aarch64/iterators.md (VDQ_SDI): New mode iterator.
10767 (VSDQ_SDI): Likewise.
10768 (fcvt_target): Support V4DI, V4SI and V2SI.
10769 (FCVT_TARGET): Likewise.
10770
10771 2016-06-08 Jiong Wang <jiong.wang@arm.com>
10772
10773 * config/aarch64/aarch64-builtins.c (TYPES_BINOP_USS): New
10774 (TYPES_BINOP_SUS): Likewise.
10775 (aarch64_simd_builtin_data): Update include file name.
10776 (aarch64_builtins): Likewise.
10777 * config/aarch64/aarch64-simd-builtins.def (scvtf): New entries
10778 for conversion between scalar float-point and fixed-point.
10779 (ucvtf): Likewise.
10780 (fcvtzs): Likewise.
10781 (fcvtzu): Likewise.
10782 * config/aarch64/aarch64.md
10783 (<FCVT_F2FIXED:fcvt_fixed_insn><GPF:mode>3: New
10784 pattern for conversion between scalar float to fixed-pointer.
10785 (<FCVT_FIXED2F:fcvt_fixed_insn><GPI:mode>: Likewise.
10786 (UNSPEC_FCVTZS): New UNSPEC enumeration.
10787 (UNSPEC_FCVTZU): Likewise.
10788 (UNSPEC_SCVTF): Likewise.
10789 (UNSPEC_UCVTF): Likewise.
10790 * config/aarch64/arm_neon.h (vcvtd_n_f64_s64): Remove inline assembly.
10791 Use builtin.
10792 (vcvtd_n_f64_u64): Likewise.
10793 (vcvtd_n_s64_f64): Likewise.
10794 (vcvtd_n_u64_f64): Likewise.
10795 (vcvtd_n_f32_s32): Likewise.
10796 (vcvts_n_f32_u32): Likewise.
10797 (vcvtd_n_s32_f32): Likewise.
10798 (vcvts_n_u32_f32): Likewise.
10799 * config/aarch64/iterators.md (fcvt_target): Support integer to float
10800 mapping.
10801 (FCVT_TARGET): Likewise.
10802 (FCVT_FIXED2F): New iterator.
10803 (FCVT_F2FIXED): Likewise.
10804 (fcvt_fixed_insn): New define_int_attr.
10805
10806 2016-06-07 Jan Hubicka <hubicka@ucw.cz>
10807
10808 * predict.c (pass_strip_predict_hints::execute): Cleanup CFG if
10809 some statements was removed.
10810
10811 2016-06-08 Alan Hayward <alan.hayward@arm.com>
10812
10813 * tree-vect-data-refs.c (vect_analyze_data_refs): Remove debug newline.
10814 * tree-vect-loop-manip.c (slpeel_make_loop_iterate_ntimes): likewise.
10815 (vect_can_advance_ivs_p): likewise.
10816 (vect_update_ivs_after_vectorizer): likewise.
10817 * tree-vect-loop.c (vect_determine_vectorization_factor): likewise.
10818 (vect_analyze_scalar_cycles_1): likewise.
10819 (vect_analyze_loop_operations): likewise.
10820 (report_vect_op): likewise.
10821 (vect_is_slp_reduction): likewise.
10822 (vect_is_simple_reduction): likewise.
10823 (get_initial_def_for_induction): likewise.
10824 (vect_transform_loop): likewise.
10825 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): likewise.
10826 (vect_recog_sad_pattern): likewise.
10827 (vect_recog_widen_sum_pattern): likewise.
10828 (vect_recog_widening_pattern): likewise.
10829 (vect_recog_divmod_pattern): likewise.
10830 * tree-vect-slp.c (vect-build-slp_tree_1): likewise.
10831 (vect_analyze_slp_instance): likewise.
10832 (vect_transform_slp_perm_load): likewise.
10833 (vect_schedule_slp_instance): likewise.
10834
10835 2016-06-07 Jan Hubicka <hubicka@ucw.cz>
10836
10837 * predict.c (predict_iv_comparison): Mention that heuristics is broken.
10838 (return_prediction): PRED_CONST_RETURN predict return as not taken.
10839 * predict.def (PRED_CONTINUE): Change hitrate 50->67
10840 (PRED_LOOP_BRANCH): Document predictor as broken.
10841 (PRED_LOOP_EXIT): Change hitrate 91->92.
10842 (PRED_LOOP_EXTRA_EXIT): Change hitrate 91->83.
10843 (PRED_POINTER, PRED_TREE_POINTER): Change hitrate 85->70.
10844 (PRED_OPCODE_POSITIVE): Change hitrate 79->64.
10845 (PRED_OPCODE_NONEQUAL): Change hitrate 91->66.
10846 (PRED_TREE_OPCODE_POSITIVE): Change hitrate 73->64
10847 (PRED_TREE_OPCODE_NONEQUAL): Chnage hitrate 72->66
10848 (PRED_CALL): Chane hitrate 71->67.
10849 (PRED_TREE_EARLY_RETURN): Document issues, change hitrate 61->54.
10850 (PRED_GOTO): Document as unused right now.
10851 (PRED_CONST_RETURN): Change hitrate 67->69
10852 (PRED_NEGATIVE_RETURN): Change hitrate 96->98
10853 (PRED_NULL_RETURN): Change hitrate 91->90.
10854 (PRED_LOOP_IV_COMPARE_GUESS): Change hitrate to 98.
10855 (PRED_FORTRAN_FAIL_ALLOC): Change hitrate to 62; document issues.
10856 (PRED_FORTRAN_SIZE_ZERO): Change hitrate to 99.
10857
10858 2016-06-07 Bill Seurer <seurer@linux.vnet.ibm.com>
10859
10860 * config/rs6000/altivec.h: Add __builtin_vec_mul.
10861 * config/rs6000/rs6000-builtin.def (vec_mul): Change vec_mul to a
10862 special case Altivec builtin.
10863 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove
10864 VSX_BUILTIN_VEC_MUL (replaced with special case code).
10865 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
10866 code for ALTIVEC_BUILTIN_VEC_MUL.
10867 * config/rs6000/rs6000.c (altivec_init_builtins): Add definition
10868 for __builtin_vec_mul.
10869
10870 2016-06-07 Peter Bergner <bergner@vnet.ibm.com>
10871
10872 * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mhtm and
10873 -mno-htm.
10874
10875 2016-06-07 David Malcolm <dmalcolm@redhat.com>
10876
10877 * spellcheck.c (selftest::test_find_closest_string): New function.
10878 (spellcheck_c_tests): Call the above.
10879
10880 2016-06-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10881
10882 * simplify-rtx.c (simplify_cond_clz_ctz): Delete 'mode' local variable.
10883
10884 2016-06-07 Jakub Jelinek <jakub@redhat.com>
10885
10886 * config/i386/sse.md (avx_vec_concat<mode>): Add v=v,vm and
10887 Yv=Yv,C alternatives.
10888
10889 2016-06-07 Richard Biener <rguenther@suse.de>
10890
10891 PR c/61564
10892 * common.opt (ffast-math): Make Optimization.
10893
10894 2016-06-07 Simon Dardis <simon.dardis@imgtec.com>
10895 Prachi Godbole <prachi.godbole@imgtec.com>
10896
10897 * config/mips/p5600.md (p5600_fpu_fadd): Remove checking for
10898 `fabs' and `fneg' type attributes.
10899 (p5600_fpu_fabs): Add `fmove' to the comment.
10900
10901 2016-06-07 Jan Hubicka <hubicka@ucw.cz>
10902
10903 * gimple.c: Include builtins.h
10904 (gimple_inexpensive_call_p): New function.
10905 * gimple.h (gimple_inexpensive_call_p): Declare.
10906 * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Use it.
10907 * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Likewise;
10908 fix formatting.
10909
10910 2016-06-07 Paolo Carlini <paolo.carlini@oracle.com>
10911
10912 * diagnostic.c (diagnostic_impl, diagnostic_n_impl): New.
10913 (inform, inform_at_rich_loc, inform_n, warning, warning_at,
10914 warning_at_rich_loc, warning_n, pedwarn, permerror,
10915 permerror_at_rich_loc, error, error_n, error_at, error_at_rich_loc,
10916 sorry, fatal_error, internal_error, internal_error_no_backtrace):
10917 Use the above.
10918
10919 2016-06-07 Richard Biener <rguenther@suse.de>
10920
10921 PR tree-optimization/71428
10922 * tree-ssa-math-opts.c (perform_symbolic_merge): Properly distinguish
10923 BIT_FIELD_REF op vs. load.
10924
10925 2016-06-07 Richard Biener <rguenther@suse.de>
10926
10927 PR middle-end/71423
10928 * match.pd ((X | ~Y) -> Y <= X): Properly invert the comparison
10929 for signed ops.
10930
10931 2016-06-06 John David Anglin <danglin@gcc.gnu.org>
10932
10933 * config/pa/pa.md (call): Generate indirect long calls to non-local
10934 functions on TARGET_64BIT.
10935 (call_value): Likewise.
10936
10937 2016-06-06 John David Anglin <danglin@gcc.gnu.org>
10938
10939 * config/pa/pa.md (call_val_reg_64bit): Remove "reg: DI " clobber from
10940 pattern and subsequent splitters.
10941 (call_val_reg_64bit_post_reload): Likewise.
10942
10943 2016-06-07 Kugan Vivekanandarajah <kuganv@linaro.org>
10944
10945 PR middle-end/71408
10946 * tree-ssa-reassoc.c (zero_one_operation): Fix NEGATE_EXPR operand for
10947 propagate_op_to_single_use.
10948
10949 2016-06-07 Kugan Vivekanandarajah <kuganv@linaro.org>
10950
10951 PR middle-end/71281
10952 * tree-ssa-reassoc.c (reassociate_bb): Set uid for negate stmt.
10953
10954 2016-06-07 Uros Bizjak <ubizjak@gmail.com>
10955
10956 * config/i386/i386.h (enum ix86_enitity): Add X86_DIRFLAG.
10957 (enum x86_dirflag_state): New enum.
10958 (NUM_MODES_FOR_MODE_SWITCHING): Add X86_DIRFLAG_ANY.
10959 (machine_function): Remove needs_cld.
10960 (ix86_current_function_needs_cld): Remove.
10961 * config/i386/i386.c (ix86_set_func_type): Set
10962 ix86_optimize_mode_switching[X86_DIRFLAG] to 1.
10963 (ix86_expand_prologue): Do not emit CLD here.
10964 (ix86_dirflag_mode_needed): New function.
10965 (ix86_dirflag_mode_entry): Ditto.
10966 (ix86_mode_needed): Handle X86_DIRFLAG entity.
10967 (ix86_mode_after): Ditto.
10968 (ix86_mode_entry): Ditto.
10969 (ix86_mode_exit): Ditto.
10970 (ix86_emit_mode_set): Ditto.
10971 * config/i386/i386.md (strmov_singleop): Set
10972 ix86_optimize_mode_switching[X86_DIRFLAG] to 1 for TARGET_CLD.
10973 Do not set ix86_current_function_needs_cld.
10974 (rep_mov): Ditto.
10975 (strset_singleop): Ditto.
10976 (rep_stos): Ditto.
10977 (cmpstrnqi_nz_1): Ditto.
10978 (cmpstrnqi_1): Ditto.
10979 (strlenqi_1): Ditto.
10980
10981 2016-06-06 Jakub Jelinek <jakub@redhat.com>
10982
10983 PR tree-optimization/71259
10984 * tree-vect-slp.c (vect_get_constant_vectors): For
10985 VECTOR_BOOLEAN_TYPE_P, return all ones constant instead of
10986 one for constant op, and use COND_EXPR for non-constant.
10987
10988 2016-06-06 David Malcolm <dmalcolm@redhat.com>
10989
10990 * Makefile.in (OBJS): Add function-tests.o,
10991 hash-map-tests.o, hash-set-tests.o, rtl-tests.o,
10992 selftest-run-tests.o.
10993 (OBJS-libcommon): Add selftest.o.
10994 (OBJS-libcommon-target): Add selftest.o.
10995 (all.internal): Add "selftest".
10996 (all.cross): Likewise.
10997 (selftest): New phony target.
10998 (s-selftest): New target.
10999 (selftest-gdb): New phony target.
11000 (COLLECT2_OBJS): Add selftest.o.
11001 * bitmap.c: Include "selftest.h".
11002 (selftest::test_gc_alloc): New function.
11003 (selftest::test_set_range): New function.
11004 (selftest::test_clear_bit_in_middle): New function.
11005 (selftest::test_copying): New function.
11006 (selftest::test_bitmap_single_bit_set_p): New function.
11007 (selftest::bitmap_c_tests): New function.
11008 * common.opt (fself-test): New.
11009 * diagnostic-show-locus.c: Include "selftest.h".
11010 (make_range): New function.
11011 (test_range_contains_point_for_single_point): New function.
11012 (test_range_contains_point_for_single_line): New function.
11013 (test_range_contains_point_for_multiple_lines): New function.
11014 (assert_eq): New function.
11015 (test_get_line_width_without_trailing_whitespace): New function.
11016 (selftest::diagnostic_show_locus_c_tests): New function.
11017 * et-forest.c: Include "selftest.h".
11018 (selftest::test_single_node): New function.
11019 (selftest::test_simple_tree): New function.
11020 (selftest::test_disconnected_nodes): New function.
11021 (selftest::et_forest_c_tests): New function.
11022 * fold-const.c: Include "selftest.h".
11023 (selftest::assert_binop_folds_to_const): New function.
11024 (selftest::assert_binop_folds_to_nonlvalue): New function.
11025 (selftest::test_arithmetic_folding): New function.
11026 (selftest::fold_const_c_tests): New function.
11027 * function-tests.c: New file.
11028 * gimple.c: Include "selftest.h".
11029 Include "gimple-pretty-print.h".
11030 (selftest::verify_gimple_pp): New function.
11031 (selftest::test_assign_single): New function.
11032 (selftest::test_assign_binop): New function.
11033 (selftest::test_nop_stmt): New function.
11034 (selftest::test_return_stmt): New function.
11035 (selftest::test_return_without_value): New function.
11036 (selftest::gimple_c_tests): New function.
11037 * hash-map-tests.c: New file.
11038 * hash-set-tests.c: New file.
11039 * input.c: Include "selftest.h".
11040 (selftest::assert_loceq): New function.
11041 (selftest::test_accessing_ordinary_linemaps): New function.
11042 (selftest::test_unknown_location): New function.
11043 (selftest::test_builtins): New function.
11044 (selftest::test_reading_source_line): New function.
11045 (selftest::input_c_tests): New function.
11046 * rtl-tests.c: New file.
11047 * selftest-run-tests.c: New file.
11048 * selftest.c: New file.
11049 * selftest.h: New file.
11050 * spellcheck.c: Include "selftest.h".
11051 (selftest::levenshtein_distance_unit_test_oneway): New function,
11052 adapted from testsuite/gcc.dg/plugin/levenshtein_plugin.c.
11053 (selftest::levenshtein_distance_unit_test): Likewise.
11054 (selftest::spellcheck_c_tests): Likewise.
11055 * toplev.c: Include selftest.h.
11056 (toplev::run_self_tests): New.
11057 (toplev::main): Handle -fself-test.
11058 * toplev.h (toplev::run_self_tests): New.
11059 * tree.c: Include "selftest.h".
11060 (selftest::test_integer_constants): New function.
11061 (selftest::test_identifiers): New function.
11062 (selftest::test_labels): New function.
11063 (selftest::tree_c_tests): New function.
11064 * tree-cfg.c: Include "selftest.h".
11065 (selftest::push_fndecl): New function.
11066 (selftest::test_linear_chain): New function.
11067 (selftest::test_diamond): New function.
11068 (selftest::test_fully_connected): New function.
11069 (selftest::tree_cfg_c_tests): New function.
11070 * vec.c: Include "selftest.h".
11071 (selftest::safe_push_range): New function.
11072 (selftest::test_quick_push): New function.
11073 (selftest::test_safe_push): New function.
11074 (selftest::test_truncate): New function.
11075 (selftest::test_safe_grow_cleared): New function.
11076 (selftest::test_pop): New function.
11077 (selftest::test_safe_insert): New function.
11078 (selftest::test_ordered_remove): New function.
11079 (selftest::test_unordered_remove): New function.
11080 (selftest::test_block_remove): New function.
11081 (selftest::reverse_cmp): New function.
11082 (selftest::test_qsort): New function.
11083 (selftest::vec_c_tests): New function.c.
11084 * wide-int.cc: Include selftest.h and wide-int-print.h.
11085 (selftest::from_int <wide_int>): New function.
11086 (selftest::from_int <offset_int>): New function.
11087 (selftest::from_int <widest_int>): New function.
11088 (selftest::assert_deceq): New function.
11089 (selftest::assert_hexeq): New function.
11090 (selftest::test_printing <VALUE_TYPE>): New function template.
11091 (selftest::test_ops <VALUE_TYPE>): New function template.
11092 (selftest::test_comparisons <VALUE_TYPE>): New function template.
11093 (selftest::run_all_wide_int_tests <VALUE_TYPE>): New function
11094 template.
11095 (selftest::wide_int_cc_tests): New function.
11096
11097 2016-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11098
11099 PR middle-end/37780
11100 * ifcvt.c (noce_try_ifelse_collapse): New function.
11101 Declare prototype.
11102 (noce_process_if_block): Call noce_try_ifelse_collapse.
11103 * simplify-rtx.c (simplify_cond_clz_ctz): New function.
11104 (simplify_ternary_operation): Use the above to simplify
11105 conditional CLZ/CTZ expressions.
11106
11107 2016-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11108
11109 PR middle-end/37780
11110 * config/aarch64/aarch64.md (ctz<mode>2): Convert to
11111 define_insn_and_split.
11112
11113 2016-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11114
11115 PR middle-end/37780
11116 * config/arm/arm.md (ctzsi2): Convert to define_insn_and_split.
11117
11118 2016-06-06 Bernd Edlinger <bernd.edlinger@hotmail.de>
11119
11120 PR c/24414
11121 * cfgexpand.c (expand_asm_loc): Remove handling for ADDR_EXPR.
11122 Implicitly clobber memory for basic asm with non-empty assembler
11123 string. Use targetm.md_asm_adjust also here.
11124 * compare-elim.c (arithmetic_flags_clobber_p): Use asm_noperands here.
11125 * final.c (final_scan_insn): Handle basic asm in PARALLEL block.
11126 * gimple.c (gimple_asm_clobbers_memory_p): Handle basic asm with
11127 non-empty assembler string.
11128 * ira.c (compute_regs_asm_clobbered): Use asm_noperands here.
11129 * recog.c (asm_noperands): Handle basic asm in PARALLEL block.
11130 (decode_asm_operands): Handle basic asm in PARALLEL block.
11131 (extract_insn): Handle basic asm in PARALLEL block.
11132 * doc/extend.texi: Mention new behavior of basic asm.
11133 * config/ia64/ia64 (rtx_needs_barrier): Handle ASM_INPUT here.
11134 * config/pa/pa.c (branch_to_delay_slot_p, branch_needs_nop_p,
11135 branch_needs_nop_p): Use asm_noperands.
11136
11137 2016-06-06 Jose E. Marchesi <jose.marchesi@oracle.com>
11138
11139 * config/sparc/sparc.md (cpu): Add niagara7 cpu type.
11140 Include the M7 SPARC DFA scheduler.
11141 New attribute v3pipe.
11142 Annotate insns with v3pipe where appropriate.
11143 Define cpu_feature vis4.
11144 Add lzd instruction type and set it on clzdi_sp64 and clzsi_sp64.
11145 Add (V8QI "8") to vbits.
11146 Add insns {add,sub}v8qi3
11147 Add insns ss{add,sub}v8qi3
11148 Add insns us{add,sub}{v8qi,v4hi}3
11149 Add insns {min,max}{v8qi,v4hi,v2si}3
11150 Add insns {minu,maxu}{v8qi,v4hi,v2si}3
11151 Add insns fpcmp{le,gt,ule,ug,ule,ugt}{8,16,32}_vis.
11152 * config/sparc/niagara4.md: Add a comment explaining the
11153 discrepancy between the documented latenty numbers and the
11154 implemented ones.
11155 * config/sparc/niagara7.md: New file.
11156 * configure.ac (HAVE_AS_SPARC5_VIS4): Define if the assembler
11157 supports SPARC5 and VIS 4.0 instructions.
11158 * configure: Regenerate.
11159 * config.in: Likewise.
11160 * config.gcc: niagara7 is a supported cpu in sparc*-*-* targets.
11161 * config/sparc/sol2.h (ASM_CPU32_DEFAUILT_SPEC): Set for
11162 TARGET_CPU_niagara7.
11163 (ASM_CPU64_DEFAULT_SPEC): Likewise.
11164 (CPP_CPU_SPEC): Handle niagara7.
11165 (ASM_CPU_SPEC): Likewise.
11166 * config/sparc/sparc-opts.h (processor_type): Add
11167 PROCESSOR_NIAGARA7.
11168 (mvis4): New option.
11169 * config/sparc/sparc.h (TARGET_CPU_niagara7): Define.
11170 (AS_NIAGARA7_FLAG): Define.
11171 (ASM_CPU64_DEFAULT_SPEC): Set for niagara7.
11172 (CPP_CPU64_DEFAULT_SPEC): Likewise.
11173 (CPP_CPU_SPEC): Handle niagara7.
11174 (ASM_CPU_SPEC): Likewise.
11175 * config/sparc/sparc.c (niagara7_costs): Define.
11176 (sparc_option_override): Handle niagara7 and adjust cache-related
11177 parameters with better values for niagara cpus. Also support VIS4.
11178 (sparc32_initialize_trampoline): Likewise.
11179 (sparc_use_sched_lookahead): Likewise.
11180 (sparc_issue_rate): Likewise.
11181 (sparc_register_move_cost): Likewise.
11182 (dump_target_flag_bits): Support VIS4.
11183 (sparc_vis_init_builtins): Likewise.
11184 (sparc_builtins): Likewise.
11185 * config/sparc/sparc-c.c (sparc_target_macros): Define __VIS__ for
11186 VIS4 4.0.
11187 * config/sparc/driver-sparc.c (cpu_names): Add SPARC-M7 and
11188 UltraSparc M7.
11189 * config/sparc/sparc.opt (sparc_processor_type): New value
11190 niagara7.
11191 * config/sparc/visintrin.h (__attribute__): Prototypes for the
11192 VIS4 builtins.
11193 * doc/invoke.texi (SPARC Options): Document -mcpu=niagara7 and
11194 -mvis4.
11195 * doc/extend.texi (SPARC VIS Built-in Functions): Document the
11196 VIS4 builtins.
11197
11198 2016-06-06 Jonathan Wakely <jwakely@redhat.com>
11199
11200 * doc/sourcebuild.texi (Directives): Remove extra closing braces.
11201
11202 2016-06-06 Richard Biener <rguenther@suse.de>
11203
11204 PR tree-optimization/71398
11205 * tree-ssa-loop-ivcanon.c (unloop_loops): First unloop, then
11206 remove edges.
11207
11208 2016-06-05 James Bowman <james.bowman@ftdichip.com>
11209
11210 * config/ft32/ft32.c (ft32_setup_incoming_varargs,
11211 ft32_expand_prolog, ft32_expand_epilogue):
11212 Handle pretend_args.
11213 * config/ft32/ft32.h: Remove OUTGOING_REG_PARM_STACK_SPACE.
11214 * config/ft32/ft32.md: Add pretend_returner.
11215
11216 2016-06-06 Uros Bizjak <ubizjak@gmail.com>
11217
11218 PR target/71389
11219 * config/i386/i386.c (ix86_avx256_split_vector_move_misalign):
11220 Copy op1 RTX to avoid invalid sharing.
11221 (ix86_expand_vector_move_misalign): Ditto.
11222
11223 2016-06-05 John David Anglin <danglin@gcc.gnu.org>
11224
11225 * expr.c (move_by_pieces_d::generate): Mark mode parameter with
11226 ATTRIBUTE_UNUSED.
11227
11228 2016-06-05 Jan Hubicka <hubicka@ucw.cz>
11229
11230 * predict.c (predicted_by_loop_heuristics_p): New function.
11231 (predict_iv_comparison): Use it.
11232 (predict_loops): Walk from innermost loops; do not predict edges
11233 leaving multiple loops multiple times; implement
11234 PRED_LOOP_ITERATIONS_MAX heuristics.
11235 * predict.def (PRED_LOOP_ITERATIONS_MAX): New predictor.
11236
11237 2016-06-05 Jan Hubicka <hubicka@ucw.cz>
11238
11239 * cfg.c (check_bb_profile): Do not report mismatched profiles when
11240 only edges out of BB are EH edges.
11241
11242 2016-06-04 Martin Sebor <msebor@redhat.com>
11243 Marcin Baczyński <marbacz@gmail.com>
11244
11245 PR c/48116
11246 * doc/invoke.texi (-Wreturn-type): Mention not warning on return with
11247 a void expression in a void function.
11248
11249 2016-06-03 Jan Hubicka <hubicka@ucw.cz>
11250
11251 * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Do not check
11252 aux; dump reasons of decisions.
11253 (should_duplicate_loop_header_p): Likewise.
11254 (do_while_loop_p): Likewise.
11255 (ch_base::copy_headers): Dump asi num insns duplicated.
11256
11257 2016-06-04 Jakub Jelinek <jakub@redhat.com>
11258
11259 PR tree-optimization/71405
11260 * tree-ssa.c (execute_update_addresses_taken): For clobber with
11261 incompatible type, build a new clobber with the right type instead
11262 of building a VIEW_CONVERT_EXPR around it.
11263
11264 2016-06-04 Oleg Endo <olegendo@gcc.gnu.org>
11265
11266 PR tree-optimization/52171
11267 * config/sh/sh.c (sh_use_by_pieces_infrastructure_p): Use
11268 by_pieces_ninsns instead of move_by_pieces_ninsns.
11269
11270 2016-06-04 Oleg Endo <olegendo@gcc.gnu.org>
11271
11272 * config/sh/sh.c (sh_print_operand_address): Don't use hardcoded 'r0'
11273 for reg+reg addressing mode.
11274
11275 2016-06-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
11276
11277 * rs6000-c.c (c/c-tree.h): Add #include.
11278 (altivec_resolve_overloaded_builtin): Handle ARRAY_TYPE arguments
11279 in C++ when found in the base position of vec_ld or vec_st.
11280
11281 2016-06-03 Jan Hubicka <hubicka@ucw.cz>
11282
11283 * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop): Avoid
11284 use of profile unless profile status is PROFILE_READ.
11285 * profile.c (compute_branch_probabilities): Set profile status
11286 only after reporting predictor hitrates.
11287
11288 2016-06-03 Joseph Myers <joseph@codesourcery.com>
11289
11290 PR target/71276
11291 PR target/71277
11292 * common.opt (ffp-int-builtin-inexact): New option.
11293 * doc/invoke.texi (-fno-fp-int-builtin-inexact): Document.
11294 * doc/md.texi (floor@var{m}2, btrunc@var{m}2, round@var{m}2)
11295 (ceil@var{m}2): Document dependence on this option.
11296 * ipa-inline-transform.c (inline_call): Handle
11297 flag_fp_int_builtin_inexact.
11298 * ipa-inline.c (can_inline_edge_p): Likewise.
11299 * config/i386/i386.md (rintxf2): Do not test
11300 flag_unsafe_math_optimizations.
11301 (rint<mode>2_frndint): New define_insn.
11302 (rint<mode>2): Do not test flag_unsafe_math_optimizations for 387
11303 or !flag_trapping_math for SSE. Just use gen_rint<mode>2_frndint
11304 for 387 instead of extending and truncating.
11305 (frndintxf2_<rounding>): Test flag_fp_int_builtin_inexact ||
11306 !flag_trapping_math instead of flag_unsafe_math_optimizations.
11307 Change to frndint<mode>2_<rounding>.
11308 (frndintxf2_<rounding>_i387): Likewise. Change to
11309 frndint<mode>2_<rounding>_i387.
11310 (<rounding_insn>xf2): Likewise.
11311 (<rounding_insn><mode>2): Test flag_fp_int_builtin_inexact ||
11312 !flag_trapping_math instead of flag_unsafe_math_optimizations for
11313 x87. Test TARGET_ROUND || !flag_trapping_math ||
11314 flag_fp_int_builtin_inexact instead of !flag_trapping_math for
11315 SSE. Use ROUND_NO_EXC in constant operand of
11316 gen_sse4_1_round<mode>2. Just use gen_frndint<mode>2_<rounding>
11317 for 387 instead of extending and truncating.
11318
11319 2016-06-03 H.J. Lu <hongjiu.lu@intel.com>
11320 Julia Koval <julia.koval@intel.com>
11321
11322 PR target/66960
11323 PR target/67630
11324 PR target/67634
11325 PR target/67841
11326 PR target/68037
11327 PR target/68618
11328 PR target/68661
11329 PR target/69575
11330 PR target/69596
11331 PR target/69734
11332 * config/i386/i386-protos.h (ix86_epilogue_uses): New prototype.
11333 * config/i386/i386.c (ix86_conditional_register_usage): Preserve
11334 all registers, except for function return registers if there are
11335 no caller-saved registers.
11336 (ix86_set_func_type): New function.
11337 (ix86_set_current_function): Call ix86_set_func_type to set
11338 no_caller_saved_registers and func_type. Call reinit_regs if
11339 caller-saved registers are changed. Don't allow MPX, SSE, MMX
11340 nor x87 instructions in interrupt handler nor function with
11341 no_caller_saved_registers attribute.
11342 (ix86_function_ok_for_sibcall): Return false if there are no
11343 caller-saved registers.
11344 (type_natural_mode): Don't warn ABI change for MMX in interrupt
11345 handler.
11346 (ix86_function_arg_advance): Skip for callee in interrupt handler.
11347 (ix86_function_arg): Return special arguments in interrupt handler.
11348 (ix86_promote_function_mode): Promote pointer to word_mode only
11349 for normal functions.
11350 (ix86_can_use_return_insn_p): Don't use `ret' instruction in
11351 interrupt handler.
11352 (ix86_epilogue_uses): New function.
11353 (ix86_hard_regno_scratch_ok): Likewise.
11354 (ix86_save_reg): Preserve all registers in interrupt handler
11355 after reload. Preserve all registers, except for function return
11356 registers, if there are no caller-saved registers after reload.
11357 (find_drap_reg): Always use callee-saved register if there are
11358 no caller-saved registers.
11359 (ix86_minimum_incoming_stack_boundary): Return MIN_STACK_BOUNDARY
11360 for interrupt handler.
11361 (ix86_expand_prologue): Don't allow DRAP in interrupt handler.
11362 Emit cld instruction if stringops are used in interrupt handler
11363 or interrupt handler isn't a leaf function.
11364 (ix86_expand_epilogue): Generate interrupt return for interrupt
11365 handler and pop the 'ERROR_CODE' off the stack before interrupt
11366 return in exception handler.
11367 (ix86_expand_call): Disallow calling interrupt handler directly.
11368 If there are no caller-saved registers, mark all registers that
11369 are clobbered by the call which returns as clobbered.
11370 (ix86_handle_no_caller_saved_registers_attribute): New function.
11371 (ix86_handle_interrupt_attribute): Likewise.
11372 (ix86_attribute_table): Add interrupt and no_caller_saved_registers
11373 attributes.
11374 (TARGET_HARD_REGNO_SCRATCH_OK): Likewise.
11375 * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Use argument
11376 accumulation in interrupt function if stack may be realigned to
11377 avoid DRAP.
11378 (EPILOGUE_USES): New.
11379 (function_type): New enum.
11380 (machine_function): Add func_type and no_caller_saved_registers.
11381 * config/i386/i386.md (UNSPEC_INTERRUPT_RETURN): New.
11382 (interrupt_return): New pattern.
11383 * doc/extend.texi: Document x86 interrupt and
11384 no_caller_saved_registers attributes.
11385
11386 2016-06-03 Bernd Schmidt <bschmidt@redhat.com>
11387
11388 PR tree-optimization/52171
11389 * builtins.c (expand_cmpstrn_or_cmpmem): Delete, moved elsewhere.
11390 (expand_builtin_memcmp): New arg RESULT_EQ. All callers changed.
11391 Look for constant strings. Move some code to emit_block_cmp_hints
11392 and use it.
11393 * builtins.def (BUILT_IN_MEMCMP_EQ): New.
11394 * defaults.h (COMPARE_MAX_PIECES): New macro.
11395 * expr.c (move_by_pieces_d, store_by_pieces_d): Remove old structs.
11396 (move_by_pieces_1, store_by_pieces_1, store_by_pieces_2): Remvoe.
11397 (clear_by_pieces_1): Don't declare. Move definition before use.
11398 (can_do_by_pieces): New static function.
11399 (can_move_by_pieces): Use it. Return bool.
11400 (by_pieces_ninsns): Renamed from move_by_pieces_ninsns. New arg
11401 OP. All callers changed. Handle COMPARE_BY_PIECES.
11402 (class pieces_addr); New.
11403 (pieces_addr::pieces_addr, pieces_addr::decide_autoinc,
11404 pieces_addr::adjust, pieces_addr::increment_address,
11405 pieces_addr::maybe_predec, pieces_addr::maybe_postinc): New member
11406 functions for it.
11407 (class op_by_pieces_d): New.
11408 (op_by_pieces_d::op_by_pieces_d, op_by_pieces_d::run): New member
11409 functions for it.
11410 (class move_by_pieces_d, class compare_by_pieces_d,
11411 class store_by_pieces_d): New subclasses of op_by_pieces_d.
11412 (move_by_pieces_d::prepare_mode, move_by_pieces_d::generate,
11413 move_by_pieces_d::finish_endp, store_by_pieces_d::prepare_mode,
11414 store_by_pieces_d::generate, store_by_pieces_d::finish_endp,
11415 compare_by_pieces_d::generate, compare_by_pieces_d::prepare_mode,
11416 compare_by_pieces_d::finish_mode): New member functions.
11417 (compare_by_pieces, emit_block_cmp_via_cmpmem): New static
11418 functions.
11419 (expand_cmpstrn_or_cmpmem): Moved here from builtins.c.
11420 (emit_block_cmp_hints): New function.
11421 (move_by_pieces, store_by_pieces, clear_by_pieces): Rewrite to just
11422 use the newly defined classes.
11423 * expr.h (by_pieces_constfn): New typedef.
11424 (can_store_by_pieces, store_by_pieces): Use it in arg declarations.
11425 (emit_block_cmp_hints, expand_cmpstrn_or_cmpmem): Declare.
11426 (move_by_pieces_ninsns): Don't declare.
11427 (can_move_by_pieces): Change return value to bool.
11428 * target.def (TARGET_USE_BY_PIECES_INFRASTRUCTURE_P): Update docs.
11429 (compare_by_pieces_branch_ratio): New hook.
11430 * target.h (enum by_pieces_operation): Add COMPARE_BY_PIECES.
11431 (by_pieces_ninsns): Declare.
11432 * targethooks.c (default_use_by_pieces_infrastructure_p): Handle
11433 COMPARE_BY_PIECES.
11434 (default_compare_by_pieces_branch_ratio): New function.
11435 * targhooks.h (default_compare_by_pieces_branch_ratio): Declare.
11436 * doc/tm.texi.in (STORE_MAX_PIECES, COMPARE_MAX_PIECES): Document.
11437 * doc/tm.texi: Regenerate.
11438 * tree-ssa-strlen.c: Include "builtins.h".
11439 (handle_builtin_memcmp): New static function.
11440 (strlen_optimize_stmt): Call it for BUILT_IN_MEMCMP.
11441 * tree.c (build_common_builtin_nodes): Create __builtin_memcmp_eq.
11442
11443 2016-06-03 Alan Hayward <alan.hayward@arm.com>
11444
11445 * tree-vect-stmts.c (vect_stmt_relevant_p): Do not vectorize non live
11446 relevant stmts which are simple and invariant.
11447 * tree-vect-loop.c (vectorizable_live_operation): Check relevance
11448 instead of simple and invariant
11449
11450 2016-06-03 Alan Hayward <alan.hayward@arm.com>
11451
11452 * tree-vect-loop.c (vect_analyze_loop_operations): Allow live stmts.
11453 (vectorizable_reduction): Check for new relevant state.
11454 (vectorizable_live_operation): vectorize live stmts using
11455 BIT_FIELD_REF. Remove special case for gimple assigns stmts.
11456 * tree-vect-stmts.c (is_simple_and_all_uses_invariant): New function.
11457 (vect_stmt_relevant_p): Check for stmts which are only used live.
11458 (process_use): Use of a stmt does not inherit it's live value.
11459 (vect_mark_stmts_to_be_vectorized): Simplify relevance inheritance.
11460 (vect_analyze_stmt): Check for new relevant state.
11461 * tree-vectorizer.h (vect_relevant): New entry for a stmt which is used
11462 outside the loop, but not inside it.
11463
11464 2016-06-03 Alan Hayward <alan.hayward@arm.com>
11465
11466 * tree-vectorizer.h (vect_get_vec_def_for_operand_1): New.
11467 * tree-vect-stmts.c (vect_get_vec_def_for_operand_1): New.
11468 (vect_get_vec_def_for_operand): Split out code.
11469
11470 2016-06-03 Segher Boessenkool <segher@kernel.crashing.org>
11471
11472 * config/rs6000/rs6000.md (define_peepholes for two mfcr's): Delete.
11473
11474 2016-06-03 Alan Hayward <alan.hayward@arm.com>
11475
11476 * tree-vect-stmts.c (vectorizable_call) Remove GOMP_SIMD_LANE code.
11477
11478 2016-06-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11479
11480 * config/arm/thumb1.md (*thumb1_mulsi3): Fix typos in comment.
11481
11482 2016-06-03 Jakub Jelinek <jakub@redhat.com>
11483
11484 PR middle-end/71387
11485 * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): If redirecting
11486 to noreturn e->callee->decl that has void return type and void
11487 arguments, adjust gimple_call_fntype and remove lhs even if it had
11488 previously addressable type.
11489
11490 2016-06-02 Jeff Law <law@redhat.com>
11491
11492 PR tree-optimization/71328
11493 * tree-ssa-threadupdate.c (duplicate_thread_path): Fix off-by-one
11494 error when checking for a jump back onto the copied path.
11495
11496 2016-06-02 David Malcolm <dmalcolm@redhat.com>
11497
11498 * config/microblaze/microblaze.c (get_branch_target): Add return
11499 NULL_RTX for the non-CALL_P case.
11500 (insert_wic_for_ilb_runout): Remove unused local "wic_addr1".
11501 (insert_wic): Remove unused local "j".
11502
11503 2016-06-02 Martin Liska <mliska@suse.cz>
11504
11505 * predict.def: Fix typo in PRED_FORTRAN_FAIL_IO display name.
11506
11507 2016-06-02 H.J. Lu <hongjiu.lu@intel.com>
11508 Julia Koval <julia.koval@intel.com>
11509
11510 * function.c (assign_parm_setup_stack): Force source into a
11511 register if needed.
11512 * target.def (function_incoming_arg): Update documentation to
11513 allow arbitrary address computation based on hard register.
11514 * doc/tm.texi: Regenerated.
11515
11516 2016-06-02 Martin Liska <mliska@suse.cz>
11517
11518 * predict.c (combine_predictions_for_bb): Fix first match in
11519 cases where a first predictor contains more than one occurence
11520 in list of predictors. Take the best value in such case.
11521
11522 2016-06-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11523
11524 PR rtl-optimization/71295
11525 * rtlanal.c (subreg_get_info): If taking a subreg at the requested
11526 offset would go over the size of the inner mode reject it.
11527
11528 2016-06-02 Jakub Jelinek <jakub@redhat.com>
11529
11530 * config/i386/sse.md (*vec_concatv4si): Use v=v,v instead of
11531 x=x,x and v=v,m instead of x=x,m.
11532
11533 * config/i386/sse.md (*vec_concatv2si_sse4_1): Add avx512dq v=Yv,rm
11534 alternative. Change x=x,x alternative to v=Yv,Yv and x=rm,C
11535 alternative to v=rm,C.
11536
11537 * config/i386/sse.md (*vec_concatv2di): Add x86_avx512dq v=Yv,rm
11538 alternative. Change x=xm,C alternative to v=vm,C, x=x,x alternative
11539 to v=Yv,Yv and x=x,m to v=v,m. Use maybe_evex prefix attribute
11540 instead of vex for the last two above mentioned alternatives.
11541
11542 2016-06-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11543
11544 PR target/70830
11545 * config/arm/arm.c (arm_output_multireg_pop): Guard "pop" on update.
11546
11547 2016-06-02 Segher Boessenkool <segher@kernel.crashing.org>
11548
11549 * config/rs6000/dfp.md (trunctddd2): Correct the "length" attribute.
11550
11551 2016-06-01 David Malcolm <dmalcolm@redhat.com>
11552
11553 * config/rl78/rl78.c (rl78_expand_prologue): Convert local
11554 from int to unsigned.
11555
11556 2016-05-31 Michael Meissner <meissner@linux.vnet.ibm.com>
11557
11558 * config/rs6000/vsx.md (vsx_splat_<mode>, V2DI/V2DF): Simplify
11559 alternatives, eliminating preferred register class. Add support
11560 for the MTVSRDD instruction in ISA 3.0.
11561 (vsx_splat_v4si_internal): Use splat_input_operand instead of
11562 reg_or_indexed_operand.
11563 (vsx_splat_v4sf_internal): Likewise.
11564
11565 2016-05-31 Michael Meissner <meissner@linux.vnet.ibm.com>
11566
11567 PR target/71186
11568 * config/rs6000/vsx.md (xxspltib_<mode>_nosplit): Add alternatives
11569 for loading up all 0's or all 1's.
11570
11571 2016-06-01 Thomas Preud'homme <thomas.preudhomme@arm.com>
11572
11573 * doc/sourcebuild.texi (arm_acq_rel): Document new effective target.
11574
11575 2016-06-01 Eduard Sanou <dhole@openmailbox.org>
11576
11577 * doc/cppenv.texi: Note that the `%s` in `date` is a non-standard
11578 extension.
11579 * gcc.c (driver_handle_option): Call set_source_date_epoch_envvar.
11580 * gcc.c (set_source_date_epoch_envvar): New function, sets
11581 the SOURCE_DATE_EPOCH environment variable to the current time.
11582
11583 2016-06-01 Eric Botcazou <ebotcazou@adacore.com>
11584
11585 * tree-vect-loop.c (vect_determine_vectorization_factor): Also compute
11586 the factor for live Phi nodes.
11587
11588 2016-06-01 Jan Hubicka <hubicka@ucw.cz>
11589
11590 * loop-dolop.c (doloop_optimize): Us likely max iteration bound.
11591 * tree-parloops.c (parallelize_loops): likewise.
11592 * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop,
11593 tree_unswitch_outer_loop): likewise.
11594
11595 2016-06-01 Jakub Jelinek <jakub@redhat.com>
11596
11597 PR middle-end/71371
11598 * gimplify.c (gimplify_omp_for): Temporarily clear gimplify_omp_ctxp
11599 around creation of the temporary.
11600
11601 2016-06-01 Richard Biener <rguenther@suse.de>
11602
11603 PR tree-optimization/71366
11604 * tree-ssa-loop-ivcanon.c (edges_to_remove): New global.
11605 (unloop_loops): Move removing edges here ...
11606 (try_unroll_loop_completely): ... from here.
11607 (try_peel_loop): ... and here.
11608 (tree_unroll_loops_completely_1): Track parent loops via
11609 bitmap of header BBs.
11610 (tree_unroll_loops_completely): Adjust for that.
11611
11612 2016-06-01 Kelvin Nilsen <kelvin@gcc.gnu.org>
11613
11614 * config/rs6000/altivec.h (vec_slv): New macro.
11615 (vec_srv): New macro.
11616 * config/rs6000/altivec.md (UNSPEC_VSLV): New value.
11617 (UNSPEC_VSRV): New value.
11618 (vslv): New insn.
11619 (vsrv): New insn.
11620 * config/rs6000/rs6000-builtin.def (vslv): New builtin definition.
11621 (vsrv): New builtin definition.
11622 * config/rs6000/rs6000-c.c (P9V_BUILTIN_VSLV): Macro expansion to
11623 define argument types for new builtin.
11624 (P9V_BUILTIN_VSRV): Macro expansion to define argument types for
11625 new builtin.
11626 * doc/extend.texi: Document the new vec_vslv and vec_srv built-in
11627 functions.
11628
11629 2016-06-01 Uros Bizjak <ubizjak@gmail.com>
11630 Jocelyn Mayer <l_indien@magic.fr>
11631
11632 PR target/67310
11633 * config/i386/driver-i386.c (host_detect_local_cpu): Correctly
11634 detect processor family for signature_CENTAUR_ebx.
11635 <case PROCESSOR_I486>: Pass c3, winchip2 or winchip-c6 for
11636 signature_CENTAUR_ebx.
11637 <case PROCESSOR _PENTIUMPRO>: Pass c3-2 for signature_CENTAUR_ebx.
11638 <default>: Pass x86-64 for has_longmode.
11639
11640 2016-06-01 Nathan Sidwell <nathan@acm.org>
11641
11642 * config/nvptx/nvptx.c (nvptx_assemble_undefined_decl): Reject
11643 undefined weak.
11644
11645 2016-06-01 Richard Biener <rguenther@suse.de>
11646
11647 PR tree-optimization/71261
11648 * tree-vect-patterns.c (check_bool_pattern): Gather a hash-set
11649 of stmts successfully put in the bool pattern. Remove
11650 single-use restriction.
11651 (adjust_bool_pattern_cast): Add cast at the use site via the
11652 pattern def sequence.
11653 (adjust_bool_pattern): Remove recursion, maintain a hash-map
11654 of patterned defs. Use the pattern def seqence instead of
11655 multiple independent patterns.
11656 (sort_after_uid): New qsort compare function.
11657 (adjust_bool_stmts): New function to process stmts in the bool
11658 pattern in IL order.
11659 (vect_recog_bool_pattern): Adjust.
11660 * tree-if-conv.c (ifcvt_split_def_stmt): Remove.
11661 (ifcvt_walk_pattern_tree): Likewise.
11662 (stmt_is_root_of_bool_pattern): Likewise.
11663 (ifcvt_repair_bool_pattern): Likewise.
11664 (tree_if_conversion): Do not call ifcvt_repair_bool_pattern.
11665
11666 2016-06-01 Jan Hubicka <hubicka@ucw.cz>
11667
11668 * loop-unroll.c (decide_unroll_constant_iterations,
11669 decide_unroll_runtime_iterations, decide_unroll_stupid): Use
11670 likely upper bounds.
11671 * loop-iv.c (find_simple_exit): Dump likely upper bounds.
11672
11673 2016-06-01 Thomas Schwinge <thomas@codesourcery.com>
11674
11675 * tree-core.h (enum omp_clause_code): Remove
11676 OMP_CLAUSE_DEVICE_RESIDENT. Adjust all users.
11677
11678 2016-06-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11679
11680 * config/arm/sync.md (arm_store_exclusive<mode>):
11681 Use 'H' output modifier on operands[2] rather than creating a new
11682 entry in out-of-bounds memory of the operands array.
11683 (arm_store_release_exclusivedi): Likewise.
11684
11685 2016-06-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11686
11687 * config/arm/arm.c (arm_fusion_enabled_p): New function.
11688 * config/arm/arm-protos.h (arm_fusion_enabled_p): Declare prototype.
11689 * config/arm/crypto.md (crypto_<crypto_pattern>, CRYPTO_UNARY):
11690 Add "=w,0" alternative. Enable it when AES/AESMC fusion is enabled.
11691
11692 2016-06-01 Eric Botcazou <ebotcazou@adacore.com>
11693
11694 * tree-vect-loop.c (vect_determine_vectorization_factor): Also take
11695 into account live statements for mask producers.
11696
11697 2016-06-01 Richard Biener <rguenther@suse.de>
11698
11699 PR tree-optimization/71311
11700 * match.pd (@0 < @1 && @0 < @2 -> @0 < min(@1,@2)): Add :c and
11701 restrict to non-INTEGER_CST @0.
11702
11703 2016-06-01 Richard Biener <rguenther@suse.de>
11704
11705 * match.pd ((A & B) - (A & ~B) -> B - (A ^ B)): Add missing :c.
11706 (relational patterns): Use :c to avoid pattern duplications.
11707
11708 2016-06-01 Richard Biener <rguenther@suse.de>
11709
11710 * genmatch.c (comparison_code_p): New predicate.
11711 (swap_tree_comparison): New function.
11712 (commutate): Add for_vec parameter to append new for entries.
11713 Support commutating relational operators by swapping it alongside
11714 operands.
11715 (lower_commutative): Adjust.
11716 (dt_simplify::gen): Do not pass artificial operators to gen
11717 functions.
11718 (decision_tree::gen): Do not add artificial operators as parameters.
11719 (parser::parse_expr): Verify operator commutativity when :c is
11720 applied. Allow :C to override this.
11721 * match.pd: Adjust patterns to use :C instead of :c where required.
11722
11723 2016-06-01 Patrick Palka <ppalka@gcc.gnu.org>
11724
11725 PR tree-optimization/71077
11726 * tree-ssa-threadedge.c (simplify_control_stmt_condition_1): In
11727 the combining step, use boolean_false_node and boolean_true_node
11728 as the designated false/true return values.
11729
11730 2016-05-31 Jan Hubicka <hubicka@ucw.cz>
11731
11732 * predict.def (PRED_LOOP_EXTRA_EXIT): Define.
11733 * predict.c (predict_iv_comparison): Also check PRED_LOOP_EXTRA_EXIT.
11734 (predict_extra_loop_exits): Use PRED_LOOP_EXTRA_EXIT instead of
11735 PRED_LOOP_EXIT.
11736
11737 2016-05-31 Jan Hubicka <hubicka@ucw.cz>
11738
11739 * doc/invoke.texi (-frename-registers): Drop -fpeel-loops from list
11740 of flags impliying the register renaming.
11741 * toplev.c (process_options): Do not imply flag_rename_registers with
11742 loop peeling.
11743
11744 2016-05-31 Oleg Endo <olegendo@gcc.gnu.org>
11745
11746 * config/sh/sh.h (ASM_OUTPUT_SYMBOL_REF): Remove macro and use the
11747 default implementation.
11748
11749 2016-05-31 Nathan Sidwell <nathan@acm.org>
11750
11751 * dwarf2out.c (cur_line_info_table): Add GTY marker.
11752
11753 2016-05-31 Oleg Endo <olegendo@gcc.gnu.org>
11754
11755 * config/sh/constraints.md (b): Remove constraint.
11756 * config/sh/predicates.md (arith_reg_operand): Remove
11757 TARGET_REGISTER_P.
11758 * config/sh/sh-modes.def (PDI): Remove.
11759 * config/sh/sh.c (sh_target_reg_class,
11760 sh_optimize_target_register_callee_saved): Remove functions.
11761 (sh_option_override): Don't set MASK_SAVE_ALL_TARGET_REGS.
11762 (sh_expand_epilogue): Update comment.
11763 (sh_hard_regno_mode_ok, sh_register_move_cost, calc_live_regs,
11764 sh_secondary_reload): Remove TARGET_REGS related code.
11765 * config/sh/sh.h (FIRST_TARGET_REG, LAST_TARGET_REG,
11766 TARGET_REGISTER_P): Remove macros.
11767 (SH_DBX_REGISTER_NUMBER, REG_ALLOC_ORDER): Remove target regs.
11768 * config/sh/sh.md (PR_MEDIA_REG, T_MEDIA_REG, FR23_REG, TR0_REG,
11769 TR1_REG, TR2_REG): Remove constants.
11770 * config/sh/sh.opt (SAVE_ALL_TARGET_REGS): Remove.
11771
11772 2016-05-31 Oleg Endo <olegendo@gcc.gnu.org>
11773
11774 * config/sh/sh.md (adddi3, subdi3, negdi2, abs<mode>2): Remove
11775 define_expand patterns.
11776 (adddi3_compact): Rename to adddi3.
11777 (subdi3_compact): Rename to subdi3.
11778 (*negdi2): Rename to negdi2.
11779 (*abs<mode>2): Rename to abs<mode>2.
11780
11781 2016-05-31 Oleg Endo <olegendo@gcc.gnu.org>
11782
11783 * config/rx/rx.md (FETCHOP_NO_MINUS): New code iterator.
11784 (atomic_<fetchop_name>_fetchsi): Extract minus operator into ...
11785 (atomic_sub_fetchsi): ... this new pattern.
11786 (mvtc): Add CC_REG clobber.
11787
11788 2016-05-31 Marek Polacek <polacek@redhat.com>
11789
11790 * gimplify.c (gimplify_switch_expr): Also handle GIMPLE_TRY.
11791
11792 2016-05-31 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11793
11794 * config/aarch64/aarch64.c (aarch_macro_fusion_pair_p): Use
11795 aarch64_fusion_enabled_p to check for fusion capabilities.
11796
11797 2016-05-31 Richard Biener <rguenther@suse.de>
11798
11799 PR tree-optimization/71352
11800 * tree-ssa-reassoc.c (zero_one_operation): Handle op equal to
11801 minus one and a negate.
11802
11803 2016-05-31 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11804
11805 * config/aarch64/aarch64.c (aarch64_simd_attr_length_move): Delete.
11806 * config/aarch64/aarch64-protos.h (aarch64_simd_attr_length_move):
11807 Delete prototype.
11808 * config/aarch64/iterators.md (insn_count): Add descriptive comment.
11809 * config/aarch64/aarch64-simd.md (*aarch64_mov<mode>, VSTRUCT modes):
11810 Remove use of aarch64_simd_attr_length_move, set length attribute
11811 directly.
11812 (*aarch64_be_movoi): Likewise.
11813 (*aarch64_be_movci): Likewise.
11814 (*aarch64_be_movxi): Likewise.
11815
11816 2016-05-31 Jan Hubicka <hubicka@ucw.cz>
11817
11818 * loop-init.c (gate): Do not enale RTL loop unroller with -fpeel-loops.
11819 It no longer does that.
11820 * toplev.c (process_options): Do not enable flag_web with -fpeel-loops.
11821
11822 2016-05-31 Wladimir J. van der Laan <laanwj@gmail.com>
11823
11824 * config/aarch64/arm_neon.h (vdupb_laneq_s8): Remove spurious
11825 attribute __unused__.
11826
11827 2016-05-31 Thomas Preud'homme <thomas.preudhomme@arm.com>
11828
11829 * config/arm/arm-protos.h (arm_arch_thumb1): Declare.
11830 * config/arm/arm.c (arm_arch_thumb1): Define.
11831 (arm_option_override): Initialize arm_arch_thumb1.
11832 * config/arm/arm.h (arm_arch_thumb1): Declare.
11833 (TARGET_ARM_ARCH_ISA_THUMB): Use arm_arch_thumb to determine if target
11834 support Thumb-1 ISA.
11835
11836 2016-05-31 Kirill Yukhin <kirill.yukhin@intel.com>
11837
11838 PR target/71346
11839 * config/i386/sse.md (define_insn_and_split "*vec_extractv4sf_0"): Use
11840 `Yv' for scalar operand.
11841
11842 2016-05-31 Tom de Vries <tom@codesourcery.com>
11843
11844 PR tree-optimization/69068
11845 * graphite-isl-ast-to-gimple.c (copy_bb_and_scalar_dependences): Handle
11846 phis with more than two args.
11847
11848 2016-05-30 Andreas Tobler <andreast@gcc.gnu.org>
11849
11850 * config.gcc: Move hard float support for arm*hf*-*-freebsd* into
11851 armv6*-*-freebsd* for FreeBSD 11. Eliminate the arm*hf*-*-freebsd*
11852 target.
11853
11854 2016-05-30 Jose E. Marchesi <jose.marchesi@oracle.com>
11855
11856 * config.gcc (sparc*-*-*): Support cpu_32, cpu_64, tune_32 and
11857 tune_64.
11858 * doc/install.texi (--with-cpu-32, --with-cpu-64): Document
11859 support on SPARC.
11860 * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): Add entries for
11861 cpu_32, cpu_64, tune_32 and tune_64.
11862 * config/sparc/sol2.h (OPTION_DEFAULT_SPECS): Likewise.
11863
11864 2016-05-30 Uros Bizjak <ubizjak@gmail.com>
11865
11866 * config/i386/sync.md (mfence_nosse): Use "lock orl $0, -4(%esp)".
11867
11868 2016-05-30 Andi Kleen <ak@linux.intel.com>
11869
11870 * auto-profile.c (read_profile): Replace asserts with errors
11871 when file does not exist.
11872 * gcov-io.c (gcov_read_words): Dito.
11873
11874 2016-05-30 Jan Hubicka <hubicka@ucw.cz>
11875
11876 * tree-cfg.c (print_loop): Print likely upper bounds.
11877
11878 2016-05-30 Jan Hubicka <hubicka@ucw.cz>
11879
11880 * doc/invoke.texi (-fpeel-loops,-O3): Update documentation.
11881 * opts.c (default_options): Enable peel loops at -O3.
11882 * tree-ssa-loop-ivcanon.c (peeled_loops): New static var.
11883 (try_peel_loop): Do not re-peel already peeled loops;
11884 use likely upper bounds; fix profile updating.
11885 (pass_complete_unroll::execute): Initialize peeled_loops.
11886
11887 2016-05-30 Martin Liska <mliska@suse.cz>
11888
11889 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Scale
11890 computed costs by frequency of BB they belong to.
11891 (get_scaled_computation_cost_at): New function.
11892
11893 2016-05-30 Alexander Monakov <amonakov@ispras.ru>
11894 Marc Glisse <marc.glisse@inria.fr>
11895
11896 PR tree-optimization/71289
11897 * match.pd (-1 / B < A, A > -1 / B): New transformations.
11898
11899 2016-05-30 Jan Hubicka <hubicka@ucw.cz>
11900
11901 * tree-vect-loop.c (vect_transform_loop): Update likely bounds.
11902
11903 2016-05-30 Jan Hubicka <hubicka@ucw.cz>
11904
11905 * tree-ssa-loop-ivcanon.c (try_peel_loop): Correctly set wont_exit
11906 for peeled copies; avoid underflow when updating estimates; correctly
11907 scale loop profile.
11908
11909 2016-05-30 Kugan Vivekanandarajah <kuganv@linaro.org>
11910
11911 * tree-ssa-reassoc.ci (swap_ops_for_binary_stmt): Fix typo from commit
11912 r236875. Corrected oe3 to oe2 as obvious.
11913
11914 2016-05-30 Kugan Vivekanandarajah <kuganv@linaro.org>
11915
11916 PR middle-end/71269
11917 PR middle-end/71252
11918 * tree-ssa-reassoc.c (insert_stmt_before_use): Use find_insert_point so
11919 that inserted stmt will not dominate stmts that defines its operand.
11920 (rewrite_expr_tree): Add stmt_to_insert before adding the use stmt.
11921 (rewrite_expr_tree_parallel): Likewise.
11922
11923 2016-05-30 Kugan Vivekanandarajah <kuganv@linaro.org>
11924
11925 PR middle-end/71252
11926 * tree-ssa-reassoc.c (swap_ops_for_binary_stmt): Fix swap such that
11927 all fields including stmt_to_insert are swapped.
11928
11929 2016-05-30 Jan Hubicka <hubicka@ucw.cz>
11930
11931 * predict.h (force_edge_cold): Declare.
11932 * predict.c (force_edge_cold): New function.
11933 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Fix profile
11934 updating.
11935 (canonicalize_loop_induction_variables): Fix formating.
11936
11937 2016-05-30 Eric Botcazou <ebotcazou@adacore.com>
11938
11939 * config/visium/visium.c (visium_split_double_add): Minor tweaks.
11940 (visium_expand_copysign): Use gen_int_mode directly.
11941 (visium_compute_frame_size): Minor tweaks.
11942
11943 2016-05-30 Jan Hubicka <hubicka@ucw.cz>
11944
11945 * tree-vect-loop.c (vect_analyze_loop_2): Use
11946 likely_max_stmt_executions_int.
11947
11948 2016-05-30 Tom de Vries <tom@codesourcery.com>
11949
11950 PR tree-optimization/69067
11951 * graphite-isl-ast-to-gimple.c (get_def_bb_for_const): Remove assert.
11952
11953 2016-05-29 Uros Bizjak <ubizjak@gmail.com>
11954
11955 PR target/71245
11956 * config/i386/sync.md (define_peephole2 atomic_storedi_fpu):
11957 New peepholes to remove unneeded fild/fistp pairs.
11958 (define_peephole2 atomic_loaddi_fpu): Ditto.
11959
11960 2016-05-27 Jan Hubicka <hubicka@ucw.cz>
11961
11962 * predict.c (maybe_hot_frequency_p): Avoid division.
11963
11964 2016-05-28 Gerald Pfeifer <gerald@pfeifer.com>
11965
11966 * doc/install.texi: Use https for shop.fsf.org.
11967
11968 2016-05-27 Jan Hubicka <hubicka@ucw.cz>
11969
11970 * tree-ssa-loop-ivopts.c (estimated_stmt_executions_int): Use
11971 likely_max_stmt_executions_int.
11972
11973 2016-05-27 Jan Hubicka <hubicka@ucw.cz>
11974
11975 * tree-ssa-loop-prefetch.c (loop_prefetch_arrays): Use
11976 likely_max_stmt_executions_int.
11977
11978 2016-05-27 Jan Hubicka <hubicka@ucw.cz>
11979
11980 * profile.c (compute_branch_probabilities): Do not report hitrates
11981 here.
11982 (branch_prob): Report hitrates here.
11983 * predict.c (gimple_predict_edge): Do not assert profile status;
11984 fix formatting issues.
11985
11986 2016-05-27 Jan Hubicka <hubicka@ucw.cz>
11987
11988 * predict.c (edge_predicted_by_p): New function.
11989 (predict_paths_for_bb): Do not put multiple predictions of the same type
11990 on one edge.
11991
11992 2016-05-27 Jan Hubicka <hubicka@ucw.cz>
11993
11994 * tree-ssa-loop-niter.c (number_of_iterations_exit): Revert accidental
11995 commit.
11996
11997 2016-05-28 Alan Modra <amodra@gmail.com>
11998
11999 * dominance.c (verify_dominators): Don't segfault on NULL imm_bb.
12000
12001 2016-05-28 Alan Modra <amodra@gmail.com>
12002
12003 PR rtl-optimization/71275
12004 * ira.c (ira): Free dominance info.
12005
12006 2016-05-27 Gerald Pfeifer <gerald@pfeifer.com>
12007
12008 * doc/sourcebuild.texi: New address for upstream Go repository.
12009
12010 2016-05-27 Thomas Preud'homme <thomas.preudhomme@arm.com>
12011
12012 * config/arm/arm.h (TARGET_ARM_V6M): Remove.
12013 (TARGET_ARM_V7M): Likewise.
12014
12015 2016-05-26 Jeff Law <law@redhat.com>
12016
12017 * tree-ssa-threadedge.c: Remove include of tree-ssa-threadbackward.h.
12018 (thread_across_edge): Remove calls to find_jump_threads_backwards.
12019 * passes.def: Add jump threading passes before DOM/VRP.
12020 * tree-ssa-threadbackward.c (find_jump_threads_backwards): Change
12021 argument to a basic block from an edge. Remove tests which are
12022 handled elsewhere.
12023 (pass_data_thread_jumps, class pass_thread_jumps): New.
12024 (pass_thread_jumps::gate, pass_thread_jumps::execute): New.
12025 (make_pass_thread_jumps): Likewise.
12026 * tree-pass.h (make_pass_thread_jumps): Declare.
12027
12028 2016-05-27 Eric Botcazou <ebotcazou@adacore.com>
12029
12030 * config/visium/visium-protos.h (split_double_move): Rename into...
12031 (visium_split_double_move): ...this.
12032 (visium_split_double_add): Declare.
12033 * config/visium/visium.c (split_double_move): Rename into...
12034 (visium_split_double_move): ...this.
12035 (visium_split_double_add): New function.
12036 (visium_expand_copysign): Renumber operands for consistency.
12037 * config/visium/visium.md (DImode move splitter): Adjust to renaming.
12038 (DFmode move splitter): Likewise.
12039 (*addi3_insn): Split by means of visium_split_double_add.
12040 (*adddi3_insn_flags): Delete.
12041 (*plus_plus_sltu<subst_arith>): New insn.
12042 (*subdi3_insn): Split by means of visium_split_double_add.
12043 (subdi3_insn_flags): Delete.
12044 (*minus_minus_sltu<subst_arith>): New insn.
12045 (*negdi2_insn): Split by means of visium_split_double_add.
12046 (*negdi2_insn_flags): Delete.
12047
12048 2016-05-27 Ulrich Weigand <uweigand@de.ibm.com>
12049
12050 * configure.ac: Treat a --with-headers option without argument
12051 the same as the default (i.e. consult sys-include directory).
12052 * configure: Regenerate.
12053
12054 2016-05-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12055
12056 * config/aarch64/aarch64.c (aarch64_fusion_enabled_p): New function.
12057 * config/aarch64/aarch64-protos.h (aarch64_fusion_enabled_p): Declare
12058 prototype.
12059 * config/aarch64/aarch64-simd.md (aarch64_crypto_aes<aesmc_op>v16qi):
12060 Add "=w,0" alternative. Enable it when AES/AESMC fusion is enabled.
12061
12062 2016-05-27 Jiong Wang <jiong.wang@arm.com>
12063
12064 PR target/63596
12065 * config/aarch64/aarch64.c (aarch64_expand_builtin_va_start): Honor
12066 tree-stdarg analysis results.
12067 (aarch64_setup_incoming_varargs): Likewise.
12068
12069 2016-05-27 Jiong Wang <jiong.wang@arm.com>
12070
12071 * config/aarch64/aarch64.c (aarch64_build_builtin_va_list): Initialize
12072 va_list_gpr_counter_field and va_list_fpr_counter_field.
12073
12074 2016-05-27 Wilco Dijkstra <wdijkstr@arm.com>
12075
12076 PR67609
12077 * config/aarch64/aarch64.h (CANNOT_CHANGE_MODE_CLASS): Remove.
12078 * config/aarch64/aarch64.c
12079 (aarch64_cannot_change_mode_class): Remove function.
12080 * config/aarch64/aarch64-protos.h
12081 (aarch64_cannot_change_mode_class): Remove.
12082
12083 2016-05-27 Jan Hubicka <hubicka@ucw.cz>
12084
12085 * cfgloop.c (record_niter_bound): Record likely upper bounds.
12086 (likely_max_stmt_executions_int, get_likely_max_loop_iterations,
12087 get_likely_max_loop_iterations_int): New.
12088 * cfgloop.h (struct loop): Add nb_iterations_likely_upper_bound,
12089 any_likely_upper_bound.
12090 (get_likely_max_loop_iterations_int, get_likely_max_loop_iterations):
12091 Declare.
12092 * cfgloopmanip.c (copy_loop_info): Copy likely upper bounds.
12093 * loop-unroll.c (unroll_loop_constant_iterations): Update likely
12094 upper bound.
12095 (unroll_loop_constant_iterations): Likewise.
12096 (unroll_loop_runtime_iterations): Likewise.
12097 * lto-streamer-in.c (input_cfg): Stream likely upper bounds.
12098 * lto-streamer-out.c (output_cfg): Likewise.
12099 * tree-ssa-loop-ivcanon.c (try_peel_loop): Update likely upper
12100 bounds.
12101 (canonicalize_loop_induction_variables): Dump likely upper bounds.
12102 * tree-ssa-loop-niter.c (record_estimate): Record likely upper bounds.
12103 (likely_max_loop_iterations): New.
12104 (likely_max_loop_iterations_int): New.
12105 (likely_max_stmt_executions): New.
12106 * tree-ssa-loop-niter.h (likely_max_loop_iterations,
12107 likely_max_loop_iterations_int, likely_max_stmt_executions_int,
12108 likely_max_stmt_executions): Declare.
12109
12110 2016-05-27 Marek Polacek <polacek@redhat.com>
12111
12112 PR middle-end/71308
12113 * gimple-fold.c (gimple_fold_call): Check that LHS is not null.
12114
12115 2016-05-27 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
12116
12117 * config/s390/s390.md (2x risbg splitters): Use
12118 reg_overlap_mentioned_p instead of rtx_equal_p.
12119
12120 2016-05-27 Dominik Vogt <vogt@linux.vnet.ibm.com>
12121
12122 * combine.c (make_compound_operation): Take known zero bits into
12123 account when checking for possible zero_extend.
12124
12125 2016-05-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12126
12127 * config/aarch64/aarch64.md (ashl<mode>3, SHORT modes):
12128 Use const_int_operand for operand 2 predicate. Simplify expand code
12129 as a result.
12130
12131 2016-05-27 Ilya Enkovich <ilya.enkovich@intel.com>
12132
12133 PR middle-end/71279
12134 * fold-const.c (fold_ternary_loc): Don't fold VEC_COND_EXPR
12135 into comparison.
12136
12137 2016-05-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12138
12139 * config/aarch64/aarch64-modes.def (CC_ZESWP, CC_SESWP): Delete.
12140 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Remove condition
12141 that returns CC_SESWPmode and CC_ZESWPmode.
12142 (aarch64_get_condition_code_1): Remove handling of CC_SESWPmode
12143 and CC_SESWPmode.
12144 (aarch64_rtx_costs): Likewise.
12145
12146 2016-05-26 Michael Meissner <meissner@linux.vnet.ibm.com>
12147
12148 * config/rs6000/rs6000.c (rs6000_emit_p9_fp_minmax): New function
12149 for ISA 3.0 min/max support.
12150 (rs6000_emit_p9_fp_cmove): New function for ISA 3.0 floating point
12151 conditional move support.
12152 (rs6000_emit_cmove): Call rs6000_emit_p9_fp_minmax and
12153 rs6000_emit_p9_fp_cmove if the ISA 3.0 instructions are
12154 available.
12155 * config/rs6000/rs6000.md (SFDF2): New iterator to allow doing
12156 conditional moves where the comparison type is different from move
12157 type.
12158 (fp_minmax): New code iterator for smin/smax.
12159 (minmax): New code attributes for min/max.
12160 (SMINMAX): Likewise.
12161 (smax<mode>3): Combine min, max insns into one insn using the
12162 fp_minmax code iterator. Add support for ISA 3.0 min/max
12163 instructions that don't need -ffast-math.
12164 (s<minmax><mode>3): Likewise.
12165 (smax<mode>3_vsx): Likewise.
12166 (smin<mode>3): Likewise.
12167 (s<minmax><mode>3_vsx): Likewise.
12168 (smin<mode>3_vsx): Likewise.
12169 (pre-VSX min/max splitters): Likewise.
12170 (s<minmax><mode>3_fpr): Likewise.
12171 (movsfcc): Rewrite floating point conditional moves to combine
12172 SFmode/DFmode into a single insn.
12173 (mov<mode>cc): Likewise.
12174 (movdfcc): Likewise.
12175 (fselsfsf4): Combine FSEL cases into a single insn, using SFDF and
12176 SFDF2 iterators to handle all combinations.
12177 (fseldfsf4): Likewise.
12178 (fsel<SFDF:mode><SFDF2:mode>4): Likewise.
12179 (fseldfdf4): Likewise.
12180 (fselsfdf4): Likewise.
12181 (mov<SFDF:mode><SFDF2:mode>cc_p9): Add support for the ISA 3.0
12182 comparison instructions that set a 0/-1 mask, and use it for
12183 floating point conditional move via XXSEL.
12184 (fpmask<mode>): Likewise.
12185 (xxsel<mode>): Likewise.
12186 * config/rs6000/predicates.md (min_max_operator): Delete, no
12187 longer used.
12188 (fpmask_comparison_operaton): New insn for ISA 3.0 comparison
12189 instructions that generate a 0/-1 mask for use with XXSEL.
12190 * config/rs6000/rs6000.h (TARGET_MINMAX_SF): New helper macros to
12191 say whether floating point min/max is available, either through
12192 FSEL, ISA 2.06 min/max, and ISA 3.0 min/max instrucitons.
12193 (TARGET_MINMAX_DF): Likewise.
12194
12195 2016-05-27 Alan Modra <amodra@gmail.com>
12196
12197 PR rtl-optimization/71275
12198 * ira.c (ira): Call loop_optimizer_init to set up bb_loop_depth
12199 for update_equiv_regs and combine_and_move_insns.
12200
12201 2016-05-26 Uros Bizjak <ubizjak@gmail.com>
12202
12203 * config/i386/i386.md (*movqi_internal) <attr "isa">: Use
12204 if_then_else or cond RTXes to calculate attribute value.
12205 * config/i386/mmx.md (*vec_extractv2sf_1) <attr "prefix_rep">: Ditto.
12206 <attr "length_immediate>: Ditto.
12207 (*vec_extractv2sf_1) <attr "length_immediate">: Ditto.
12208 * config/i386/sse.md (sse_loadlps) <attr "length_immediate">: Ditto.
12209 (*vec_concatv2sf_sse4_1) <attr "isa">: Ditto.
12210 <attr "type">: Ditto.
12211 <attr "prefix_data16">: Ditto.
12212 <attr "prefix_extra">: Ditto.
12213 <attr "length_immediate">: Ditto.
12214 <attr "prefix">: Ditto.
12215 (vec_set<mode>_0) <attr "isa">: Ditto.
12216 <attr "prefix_extra">: Ditto.
12217 <attr "length_immediate">: Ditto.
12218 <attr "prefix">: Ditto.
12219 (*vec_interleave_highv2df) <attr "prefix_data16">: Ditto.
12220 (*vec_interleave_lowv2df) <attr "prefix_data16">: Ditto.
12221 (sse2_storelpd) <attr "prefix_data16">: Ditto.
12222 (sse2_loadhpd) <attr "prefix_data16">: Ditto.
12223 (sse2_loadlpd) <attr "prefix_data16">: Ditto.
12224 <attr "length_immediate">: Ditto.
12225 <attr "prefix">: Ditto.
12226 (sse2_movsd) <attr "length_immediate">: Ditto.
12227 <attr "prefix">: Ditto.
12228 (vec_concatv2df) <attr "isa">: Ditto.
12229 <attr "prefix">: Ditto.
12230 (*vec_extractv4si) <attr "prefix_extra">: Ditto.
12231 (*vec_extractv2di_1) <attr "isa">: Ditto.
12232 <attr "type">: Ditto.
12233 <attr "length_immediate">: Ditto.
12234 <attr "prefix_rex">: Ditto.
12235 <attr "prefix_extra">: Ditto.
12236 (*vec_concatv2si_sse4_1) <attr "type">: Ditto.
12237 <attr "prefix_extra">: Ditto.
12238 <attr "length_immediate">: Ditto.
12239 (vec_concatv2di) <attr "isa">: Ditto.
12240 <attr "prefix_extra">: Ditto.
12241 <attr "length_immediate">: Ditto.
12242 <attr "prefix">: Ditto.
12243
12244 2016-05-26 Martin Liska <mliska@suse.cz>
12245
12246 * tree-ssa-loop-ivopts.c (comp_cost::infinite_cost_p): New
12247 function.
12248 (operator+): Likewise.
12249 (operator-): Likewise.
12250 (comp_cost::operator+=): Likewise.
12251 (comp_cost::operator-=): Likewise.
12252 (comp_cost::operator/=): Likewise.
12253 (comp_cost::operator*=): Likewise.
12254 (operator<): Likewise.
12255 (operator==): Likewise.
12256 (operator<=): Likewise.
12257 (new_cost): Remove.
12258 (infinite_cost_p): Likewise.
12259 (add_costs): Likewise.
12260 (sub_costs): Likewise.
12261 (compare_costs): Likewise.
12262 (set_group_iv_cost): Use the newly introduced functions.
12263 (get_address_cost): Likewise.
12264 (get_shiftadd_cost): Likewise.
12265 (force_expr_to_var_cost): Likewise.
12266 (split_address_cost): Likewise.
12267 (ptr_difference_cost): Likewise.
12268 (difference_cost): Likewise.
12269 (get_computation_cost_at): Likewise.
12270 (determine_group_iv_cost_generic): Likewise.
12271 (determine_group_iv_cost_address): Likewise.
12272 (determine_group_iv_cost_cond): Likewise.
12273 (autoinc_possible_for_pair): Likewise.
12274 (determine_group_iv_costs): Likewise.
12275 (cheaper_cost_pair): Likewise.
12276 (iv_ca_recount_cost): Likewise.
12277 (iv_ca_set_no_cp): Likewise.
12278 (iv_ca_set_cp): Likewise.
12279 (iv_ca_cost): Likewise.
12280 (iv_ca_new): Likewise.
12281 (iv_ca_dump): Likewise.
12282 (iv_ca_narrow): Likewise.
12283 (iv_ca_prune): Likewise.
12284 (iv_ca_replace): Likewise.
12285 (try_add_cand_for): Likewise.
12286 (try_improve_iv_set): Likewise.
12287 (find_optimal_iv_set): Likewise.
12288
12289 2016-05-26 Richard Sandiford <richard.sandiford@arm.com>
12290
12291 * tree-ssa-loop-ivopts.c (loop_body_includes_call): Don't assume
12292 that internal functions will clobber all caller-saved registers.
12293
12294 2016-05-26 Wilco Dijkstra <wdijkstr@arm.com>
12295
12296 * config/aarch64/aarch64.c (aarch64_case_values_threshold):
12297 Return a better case_values_threshold when optimizing.
12298
12299 2016-05-26 Wilco Dijkstra <wdijkstr@arm.com>
12300
12301 * config/aarch64/aarch64-simd.md (aarch64_combinez):
12302 Add ? to integer variant.
12303 (aarch64_combinez_be): Likewise.
12304
12305 2016-05-26 Jakub Jelinek <jakub@redhat.com>
12306
12307 * config/i386/sse.md (*vcvtps2ph_store<mask_name>): Use v constraint
12308 instead of x constraint.
12309 (vcvtps2ph256<mask_name>): Likewise.
12310
12311 * config/i386/sse.md (*ssse3_palignr<mode>_perm): Add avx512bw
12312 alternative. Formatting fix.
12313
12314 * config/i386/sse.md
12315 (<mask_codefor>avx512vl_shuf_<shuffletype>32x4_1<mask_name>): Rename
12316 to ...
12317 (avx512vl_shuf_<shuffletype>32x4_1<mask_name>): ... this.
12318 (*avx_vperm_broadcast_v4sf): Use v constraint instead of x. Use
12319 maybe_evex prefix instead of vex.
12320 (*avx_vperm_broadcast_<mode>): Use v constraint instead of x. Handle
12321 EXT_REX_SSE_REG_P (op0) case in the splitter.
12322
12323 2016-05-25 Jeff Law <law@redhat.com>
12324
12325 PR tree-optimization/71272
12326 * tree-ssa-threadbackward.c (convert_and_register_jump_thread_path):
12327 Update comments. Add test for empty path.
12328
12329 2016-05-25 Bill Seurer <seurer@linux.vnet.ibm.com>
12330
12331 * config/rs6000/altivec.h (vec_cmpne): Add #define for vec_cmpne.
12332 * config/rs6000/rs6000-builtin.def (vec_cmpne): Add vec_cmpne as a
12333 special case builtin.
12334 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
12335 code for ALTIVEC_BUILTIN_VEC_CMPNE.
12336 * config/rs6000/rs6000.c (altivec_init_builtins): Add definition
12337 for __builtin_vec_cmpne.
12338
12339 2016-05-25 Eric Botcazou <ebotcazou@adacore.com>
12340
12341 * tree-ssa-phiopt.c (factor_out_conditional_conversion): Remove
12342 redundant test and bail out if the type of the new operand is not
12343 a GIMPLE register type after stripping a VIEW_CONVERT_EXPR.
12344
12345 2016-05-25 Uros Bizjak <ubizjak@gmail.com>
12346
12347 * config/i386/i386.opt (ix86_target_flags_explicit): Remove.
12348 (x_ix86_target_flags_explicit): Remove.
12349 * config/i386/i386.c (ix86_function_specific_save): Do not copy
12350 x_ix86_target_flags_explicit.
12351 (ix86_function_specific_restore): Ditto.
12352
12353 2016-05-25 Uros Bizjak <ubizjak@gmail.com>
12354 H.J. Lu <hongjiu.lu@intel.com>
12355
12356 PR target/70738
12357 * common/config/i386/i386-common.c
12358 (OPTION_MASK_ISA_GENERAL_REGS_ONLY_UNSET): New.
12359 (ix86_handle_option) <case OPT_mgeneral_regs_only>: Disable
12360 MPX, MMX, SSE and x87 instructions for -mgeneral-regs-only.
12361 * config/i386/i386.opt (ix86_target_flags): Add new Variable.
12362 (-mgeneral-regs-only): Add new option.
12363 * config/i386/i386.c (ix86_option_override_internal): Don't enable
12364 x87 instructions if only general registers are allowed.
12365 (ix86_target_string): Add ix86_flags argument. Handle additional
12366 flags options through ix86_flags argument. Update all callers.
12367 * doc/invoke.texi (x86 Options): Document -mgeneral-regs-only.
12368
12369 2016-05-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12370
12371 PR rtl-optimization/66940
12372 * ifcvt.c (noce_get_alt_condition): Check that incrementing or
12373 decrementing desired_val will not overflow before performing these
12374 operations.
12375
12376 2016-05-25 Ilya Verbin <ilya.verbin@intel.com>
12377
12378 * config/i386/i386-builtin-types.def: Add V16SI_FTYPE_V16SF,
12379 V8DF_FTYPE_V8DF_ROUND, V16SF_FTYPE_V16SF_ROUND, V16SI_FTYPE_V16SF_ROUND.
12380 * config/i386/i386.c (enum ix86_builtins): Add
12381 IX86_BUILTIN_CVTPS2DQ512_MASK, IX86_BUILTIN_FLOORPS512,
12382 IX86_BUILTIN_FLOORPD512, IX86_BUILTIN_CEILPS512, IX86_BUILTIN_CEILPD512,
12383 IX86_BUILTIN_TRUNCPS512, IX86_BUILTIN_TRUNCPD512,
12384 IX86_BUILTIN_CVTPS2DQ512, IX86_BUILTIN_VEC_PACK_SFIX512,
12385 IX86_BUILTIN_FLOORPS_SFIX512, IX86_BUILTIN_CEILPS_SFIX512,
12386 IX86_BUILTIN_ROUNDPS_AZ_SFIX512.
12387 (builtin_description bdesc_args): Add __builtin_ia32_floorps512,
12388 __builtin_ia32_ceilps512, __builtin_ia32_truncps512,
12389 __builtin_ia32_floorpd512, __builtin_ia32_ceilpd512,
12390 __builtin_ia32_truncpd512, __builtin_ia32_cvtps2dq512,
12391 __builtin_ia32_vec_pack_sfix512, __builtin_ia32_roundps_az_sfix512,
12392 __builtin_ia32_floorps_sfix512, __builtin_ia32_ceilps_sfix512.
12393 Change IX86_BUILTIN_CVTPS2DQ512 to IX86_BUILTIN_CVTPS2DQ512_MASK for
12394 __builtin_ia32_cvtps2dq512_mask.
12395 (ix86_expand_args_builtin): Handle V8DF_FTYPE_V8DF_ROUND,
12396 V16SF_FTYPE_V16SF_ROUND, V16SI_FTYPE_V16SF_ROUND, V16SI_FTYPE_V16SF.
12397 (ix86_builtin_vectorized_function): Handle builtins mentioned above.
12398 * config/i386/sse.md
12399 (<mask_codefor>avx512f_fix_notruncv16sfv16si<mask_name><round_name>):
12400 Rename to ...
12401 (avx512f_fix_notruncv16sfv16si<mask_name><round_name>): ... this.
12402 (<mask_codefor>avx512f_cvtpd2dq512<mask_name><round_name>): Rename
12403 to ...
12404 (avx512f_cvtpd2dq512<mask_name><round_name>): ... this.
12405 (avx512f_vec_pack_sfix_v8df): New define_expand.
12406 (avx512f_roundpd512): Rename to ...
12407 (avx512f_round<castmode>512): ... this. Change iterator.
12408 (avx512f_roundps512_sfix): New define_expand.
12409 (round<mode>2_sfix): Change iterator.
12410
12411 2016-05-25 Nick Clifton <nickc@redhat.com>
12412
12413 * config/msp430/msp430.c (msp430_attr): Produce an error if a
12414 static interrupt handler is detected.
12415 * config/msp430/msp430.h (LIB_SPEC): Do not use msp430.ld as the
12416 default linker script.
12417 * config/msp430/msp430.md (movpsihi2_lo): New pattern for loading
12418 the low part of a symbolic pointer.
12419
12420 2016-05-25 Richard Biener <rguenther@suse.de>
12421
12422 PR tree-optimization/71261
12423 * tree-if-conv.c (ifcvt_split_def_stmt): Walk uses on the
12424 interesting stmt instead of immediate uses when looking
12425 for the use operand to replace.
12426
12427 2016-05-25 Martin Liska <mliska@suse.cz>
12428
12429 * ipa-inline.c (edge_badness): Use 'w/' instead of 'w'.
12430
12431 2016-05-25 Richard Biener <rguenther@suse.de>
12432
12433 PR tree-optimization/71264
12434 * tree-vect-stmts.c (vect_init_vector): Properly deal with
12435 vector type val.
12436
12437 2016-05-25 Martin Liska <mliska@suse.cz>
12438
12439 PR tree-optimization/71239
12440 * tree.c (array_at_struct_end_p): Do not call operand_equal_p
12441 if DECL_SIZE is NULL.
12442
12443 2016-05-25 Richard Biener <rguenther@suse.de>
12444
12445 * timevar.def (TV_TREE_LOOP_IFCVT): Add.
12446 * tree-if-conv.c (pass_data_if_conversion): Use it.
12447
12448 2016-05-25 Bernd Edlinger <bernd.edlinger@hotmail.de>
12449
12450 * cgraph.c (cgraph_node::get_availability): Fix typo in comment.
12451 * symtab.c (symtab_node::binds_to_current_def_p): Likewise.
12452 * varpool.c (varpool_node::get_availability): Likewise.
12453
12454 2016-05-24 Michael Meissner <meissner@linux.vnet.ibm.com>
12455
12456 * config/rs6000/altivec.md (VNEG iterator): New iterator for
12457 VNEGW/VNEGD instructions.
12458 (p9_neg<mode>2): New insns for ISA 3.0 VNEGW/VNEGD.
12459 (neg<mode>2): Add expander for V2DImode added in ISA 2.07, and
12460 support for ISA 3.0 VNEGW/VNEGD instructions.
12461
12462 2016-05-24 Cesar Philippidis <cesar@codesourcery.com>
12463
12464 * gimplify.c (omp_notice_variable): Use zero-length arrays for data
12465 pointers inside OACC_DATA regions.
12466 (gimplify_scan_omp_clauses): Prune firstprivate clause associated
12467 with OACC_DATA, OACC_ENTER_DATA and OACC_EXIT data regions.
12468 (gimplify_adjust_omp_clauses): Fix typo in comment.
12469
12470 2016-05-24 Michael Meissner <meissner@linux.vnet.ibm.com>
12471
12472 * config/rs6000/altivec.md (VParity): New mode iterator for vector
12473 parity built-in functions.
12474 (p9v_ctz<mode>2): Add support for ISA 3.0 vector count trailing
12475 zeros.
12476 (p9v_parity<mode>2): Likewise.
12477 * config/rs6000/vector.md (VEC_IP): New mode iterator for vector
12478 parity.
12479 (ctz<mode>2): ISA 3.0 expander for vector count trailing zeros.
12480 (parity<mode>2): ISA 3.0 expander for vector parity.
12481 * config/rs6000/rs6000-builtin.def (BU_P9_MISC_1): New macros for
12482 power9 built-ins.
12483 (BU_P9_64BIT_MISC_0): Likewise.
12484 (BU_P9_MISC_0): Likewise.
12485 (BU_P9V_AV_1): Likewise.
12486 (BU_P9V_AV_2): Likewise.
12487 (BU_P9V_AV_3): Likewise.
12488 (BU_P9V_AV_P): Likewise.
12489 (BU_P9V_VSX_1): Likewise.
12490 (BU_P9V_OVERLOAD_1): Likewise.
12491 (BU_P9V_OVERLOAD_2): Likewise.
12492 (BU_P9V_OVERLOAD_3): Likewise.
12493 (VCTZB): Add vector count trailing zeros support.
12494 (VCTZH): Likewise.
12495 (VCTZW): Likewise.
12496 (VCTZD): Likewise.
12497 (VPRTYBD): Add vector parity support.
12498 (VPRTYBQ): Likewise.
12499 (VPRTYBW): Likewise.
12500 (VCTZ): Add overloaded vector count trailing zeros support.
12501 (VPRTYB): Add overloaded vector parity support.
12502 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
12503 overloaded vector count trailing zeros and parity instructions.
12504 * config/rs6000/rs6000.md (wd mode attribute): Add V1TI and TI for
12505 vector parity support.
12506 * config/rs6000/altivec.h (vec_vctz): Add ISA 3.0 vector count
12507 trailing zeros support.
12508 (vec_cntlz): Likewise.
12509 (vec_vctzb): Likewise.
12510 (vec_vctzd): Likewise.
12511 (vec_vctzh): Likewise.
12512 (vec_vctzw): Likewise.
12513 (vec_vprtyb): Add ISA 3.0 vector parity support.
12514 (vec_vprtybd): Likewise.
12515 (vec_vprtybw): Likewise.
12516 (vec_vprtybq): Likewise.
12517 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
12518 the ISA 3.0 vector count trailing zeros and vector parity built-in
12519 functions.
12520
12521 2016-05-24 Kugan Vivekanandarajah <kuganv@linaro.org>
12522
12523 * tree-ssa-reassoc.c (sort_by_operand_rank): Skip checking gimple_bb
12524 when there is stmt_to_insert.
12525
12526 2016-05-24 Martin Sebor <msebor@redhat.com>
12527
12528 PR c++/71147
12529 * tree.h (complete_or_array_type_p): New inline function.
12530
12531 2016-05-24 Jakub Jelinek <jakub@redhat.com>
12532
12533 * config/i386/i386.h (TARGET_AVOID_4BYTE_PREFIXES): Define.
12534 * config/i386/constraints.md (Yr): Test TARGET_AVOID_4BYTE_PREFIXES
12535 rather than X86_TUNE_AVOID_4BYTE_PREFIXES.
12536
12537 * config/i386/sse.md (<sse4_1>_round<ssemodesuffix><avxsizesuffix>):
12538 Limit 1st alternative to noavx isa, split 2nd alternative into one
12539 noavx and one avx alternative, use *x and Bm in the former and
12540 x and m in the latter.
12541
12542 * config/i386/sse.md (vec_set<mode>_0): Use sse4_noavx isa instead
12543 of sse4 for the first alternative, drop %v from the template
12544 and d operand modifier. Split second alternative into one sse4_noavx
12545 and one avx alternative, use *x instead of *v in the former and v
12546 instead of *v in the latter.
12547 (*sse4_1_extractps): Use noavx isa instead of * for the first
12548 alternative, drop %v from the template. Split second alternative into
12549 one noavx and one avx alternative, use *x instead of *v in the
12550 former and v instead of *v in the latter.
12551 (<vi8_sse4_1_avx2_avx512>_movntdqa): Guard the first 2 alternatives
12552 with noavx and the last one with avx.
12553 (sse4_1_phminposuw): Guard first alternative with noavx isa,
12554 split the second one into one noavx and one avx alternative,
12555 use *x and Bm in the former and x and m in the latter one.
12556 (<sse4_1>_ptest<mode>): Use noavx instead of * for the first two
12557 alternatives.
12558
12559 * config/i386/sse.md (sse4_1_<code>v8qiv8hi2<mask_name>): Limit
12560 first two alternatives to noavx, use *x instead of *v in the second
12561 one, add avx alternative without *.
12562 (sse4_1_<code>v4qiv4si2<mask_name>, sse4_1_<code>v4hiv4si2<mask_name>,
12563 sse4_1_<code>v2qiv2di2<mask_name>, sse4_1_<code>v2hiv2di2<mask_name>,
12564 sse4_1_<code>v2siv2di2<mask_name>): Likewise.
12565
12566 2016-05-24 Jeff Law <law@redhat.com>
12567
12568 * tree-ssa-threadbackwards.c (convert_and_register_jump_thread_path):
12569 New function, extracted from...
12570 (fsm_find_control_statement_thread_paths): Here. Use the new function.
12571 Allow simple copies and constant initializations in the SSA chain.
12572
12573 2016-05-24 Marek Polacek <polacek@redhat.com>
12574
12575 PR c/71249
12576 * gimplify.c (gimplify_switch_expr): Look into the innermost lexical
12577 scope.
12578
12579 2016-05-24 Jakub Jelinek <jakub@redhat.com>
12580
12581 PR c++/71257
12582 * tree-vect-stmts.c (vectorizable_simd_clone_call): Handle
12583 SIMD_CLONE_ARG_TYPE_LINEAR_REF_CONSTANT_STEP like
12584 SIMD_CLONE_ARG_TYPE_LINEAR_CONSTANT_STEP. Add
12585 SIMD_CLONE_ARG_TYPE_LINEAR_VAL_CONSTANT_STEP and
12586 SIMD_CLONE_ARG_TYPE_LINEAR_UVAL_CONSTANT_STEP cases explicitly.
12587
12588 2016-05-24 Richard Biener <rguenther@suse.de>
12589
12590 PR tree-optimization/71240
12591 * tree-ssa-math-opts.c (init_symbolic_number): Verify the source
12592 has integral type.
12593
12594 2016-05-24 Richard Biener <rguenther@suse.de>
12595
12596 PR tree-optimization/71230
12597 * tree-ssa-reassoc.c (zero_one_operation): Handle negate special ops.
12598
12599 2016-05-24 Richard Sandiford <richard.sandiford@arm.com>
12600
12601 * tree-vectorizer.h (vectorizable_comparison): Delete.
12602 * tree-vect-loop.c (vectorizable_reduction): Remove redundant
12603 PURE_SLP_STMT check.
12604 * tree-vect-stmts.c (vectorizable_call): Likewise.
12605 (vectorizable_simd_clone_call): Likewise.
12606 (vectorizable_conversion): Likewise.
12607 (vectorizable_assignment): Likewise.
12608 (vectorizable_shift): Likewise.
12609 (vectorizable_operation): Likewise.
12610 (vectorizable_load): Likewise.
12611 (vectorizable_condition): Likewise.
12612 (vectorizable_store): Likewise. Assert that we don't have
12613 hybrid SLP.
12614 (vectorizable_comparison): Make static. Remove redundant
12615 PURE_SLP_STMT check.
12616 (vect_transform_stmt): Assert that we always have an slp_node
12617 if PURE_SLP_STMT.
12618
12619 2016-05-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12620
12621 * config/arm/neon.md (ashldi3_neon): Replace comparison of INTVAL of
12622 operands[2] against 1 with comparison against CONST1_RTX.
12623 (<shift>di3_neon): Likewise.
12624 * config/arm/predicates.md (const0_operand): Replace with comparison
12625 against CONST0_RTX.
12626
12627 2016-05-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12628
12629 * config/arm/arm.md (ashldi3): Replace comparison of INTVAL of
12630 operands[2] against 1 with comparison against CONST1_RTX.
12631 (ashrdi3): Likewise.
12632 (lshrdi3): Likewise.
12633 (ashlsi3): Replace cast of INTVAL to unsigned HOST_WIDE_INT with
12634 UINTVAL.
12635 (ashrsi3): Likewise.
12636 (lshrsi3): Likewise.
12637 (rotrsi3): Likewise.
12638 (define_split above *compareqi_eq0): Likewise.
12639 (define_split above "prologue"): Likewise.
12640 * config/arm/arm.c (thumb1_size_rtx_costs): Likewise.
12641 * config/arm/predicates.md (shift_operator): Likewise.
12642 (shift_nomul_operator): Likewise.
12643 (sat_shift_operator): Likewise.
12644 (thumb1_cmp_operand): Likewise.
12645 (const_neon_scalar_shift_amount_operand): Replace manual range
12646 check with IN_RANGE.
12647 * config/arm/thumb1.md (define_peephole2 above *thumb_subdi3):
12648 Replace cast of INTVAL to unsigned HOST_WIDE_INT with UINTVAL.
12649
12650 2016-05-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12651
12652 * config/arm/arm.md (andsi3): Replace cast of 1 to HOST_WIDE_INT
12653 with HOST_WIDE_INT_1.
12654 (insv): Likewise.
12655 * config/arm/arm.c (optimal_immediate_sequence): Replace cast of
12656 1 to unsigned HOST_WIDE_INT with HOST_WIDE_INT_1U.
12657 (arm_canonicalize_comparison): Likewise.
12658 (thumb1_rtx_costs): Replace cast of 1 to HOST_WIDE_INT with
12659 HOST_WIDE_INT_1.
12660 (thumb1_size_rtx_costs): Likewise.
12661 (vfp_const_double_index): Replace cast of 1 to unsigned
12662 HOST_WIDE_INT with HOST_WIDE_INT_1U.
12663 (get_jump_table_size): Replace cast of 1 to HOST_WIDE_INT with
12664 HOST_WIDE_INT_1.
12665 (arm_asan_shadow_offset): Replace cast of 1 to unsigned
12666 HOST_WIDE_INT with HOST_WIDE_INT_1U.
12667 * config/arm/neon.md (vec_set<mode>): Replace cast of 1 to
12668 HOST_WIDE_INT with HOST_WIDE_INT_1.
12669
12670 2016-05-24 Marek Polacek <polacek@redhat.com>
12671
12672 * tree-cfg.h (should_remove_lhs_p): New predicate.
12673 * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Use it.
12674 * gimplify.c (gimplify_modify_expr): Likewise.
12675 * tree-cfg.c (verify_gimple_call): Likewise.
12676 * tree-cfgcleanup.c (fixup_noreturn_call): Likewise.
12677 * gimple-fold.c: Include "tree-cfg.h".
12678 (gimple_fold_call): Use should_remove_lhs_p.
12679
12680 2016-05-24 Richard Biener <rguenther@suse.de>
12681
12682 PR tree-optimization/71253
12683 * cfganal.h (control_dependences): Make robust against edge
12684 and BB removal.
12685 (control_dependences::control_dependences): Remove edge_list argument.
12686 (control_dependences::get_edge): Remove.
12687 (control_dependences::get_edge_src): Add.
12688 (control_dependences::get_edge_dest): Likewise.
12689 (control_dependences::m_el): Make a vector of edge src/dest index.
12690 * cfganal.c (control_dependences::find_control_dependence): Adjust.
12691 (control_dependences::control_dependences): Likewise.
12692 (control_dependences::~control_dependence): Likewise.
12693 (control_dependences::get_edge): Remove.
12694 (control_dependences::get_edge_src): Add.
12695 (control_dependences::get_edge_dest): Likewise.
12696 * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Use
12697 get_edge_src.
12698 (perform_tree_ssa_dce): Adjust.
12699 * tree-loop-distribution.c (create_edge_for_control_dependence): Use
12700 get_edge_src.
12701 (pass_loop_distribution::execute): Adjust. Do loop destroying
12702 conditional on changed.
12703
12704 2016-05-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12705
12706 PR target/69857
12707 * config/arm/arm.c (gen_operands_ldrd_strd): Remove bogus early
12708 return. Reindent transformation comment and mention the ARM state
12709 behavior.
12710
12711 2016-05-24 Kugan Vivekanandarajah <kuganv@linaro.org>
12712
12713 PR middle-end/71252
12714 * tree-ssa-reassoc.c (rewrite_expr_tree_parallel): Add stmt_to_insert
12715 after build_and_add_sum creates new use stmt.
12716
12717 2016-05-24 Richard Sandiford <richard.sandiford@arm.com>
12718
12719 * tree-vect-stmts.c (vectorizable_load): Reorder checks so that
12720 load_lanes/grouped_load classification comes first. Don't check
12721 whether the vectorization factor is a multiple of the group size
12722 for load_lanes.
12723
12724 2016-05-24 Richard Sandiford <richard.sandiford@arm.com>
12725
12726 * tree-vect-data-refs.c (vect_analyze_group_access_1): Set
12727 GROUP_GAP for single-element interleaving.
12728 * tree-vect-stmts.c (vectorizable_load): Remove force_peeling
12729 variable.
12730
12731 2016-05-24 Richard Biener <rguenther@suse.de>
12732
12733 PR middle-end/70434
12734 PR c/69504
12735 * tree-ssa.c (non_rewritable_mem_ref_base): Make sure to mark
12736 bases which are accessed with non-invariant indices.
12737 * gimple-fold.c (maybe_canonicalize_mem_ref_addr): Re-write
12738 constant index ARRAY_REFs of vectors into BIT_FIELD_REFs.
12739
12740 2016-05-24 Kugan Vivekanandarajah <kuganv@linaro.org>
12741
12742 PR middle-end/71170
12743 * tree-ssa-reassoc.c (struct operand_entry): Add field stmt_to_insert.
12744 (add_to_ops_vec): Add stmt_to_insert.
12745 (add_repeat_to_ops_vec): Init stmt_to_insert.
12746 (insert_stmt_before_use): New.
12747 (transform_add_to_multiply): Remove mult_stmt insertion and add it
12748 to ops vector.
12749 (get_ops): Init stmt_to_insert.
12750 (maybe_optimize_range_tests): Likewise.
12751 (rewrite_expr_tree): Insert stmt_to_insert before use stmt.
12752 (rewrite_expr_tree_parallel): Likewise.
12753 (reassociate_bb): Likewise.
12754
12755 2016-05-23 Michael Meissner <meissner@linux.vnet.ibm.com>
12756
12757 PR target/71201
12758 * config/rs6000/altivec.md (altivec_vperm_<mode>_internal): Drop
12759 ISA 3.0 xxperm fusion alternative.
12760 (altivec_vperm_v8hiv16qi): Likewise.
12761 (altivec_vperm_<mode>_uns_internal): Likewise.
12762 (vperm_v8hiv4si): Likewise.
12763 (vperm_v16qiv8hi): Likewise.
12764
12765 2016-05-23 Michael Meissner <meissner@linux.vnet.ibm.com>
12766 Kelvin Nilsen <kelvin@gcc.gnu.org>
12767
12768 * config/rs6000/rs6000.c (rs6000_expand_vector_set): Generate
12769 vpermr/xxpermr on ISA 3.0.
12770 (altivec_expand_vec_perm_le): Likewise.
12771 * config/rs6000/altivec.md (UNSPEC_VPERMR): New unspec.
12772 (altivec_vpermr_<mode>_internal): Add VPERMR/XXPERMR support for
12773 ISA 3.0.
12774
12775 2016-05-23 Uros Bizjak <ubizjak@gmail.com>
12776
12777 * config/i386/i386.h (IS_STACK_MODE): Enable for
12778 TARGET_MIX_SSE_I387. Rewrite using X87_FLOAT_MODE_P and
12779 SSE_FLOAT_MODE_P macros.
12780 * config/i386/i386.c (ix86_preferred_reload_class): Use
12781 IS_STACK_MODE, INTEGER_CLASS_P, FLOAT_CLASS_P and Q_CLASS_P macros.
12782 Cleanup regclass processing for CONST_DOUBLE_P.
12783 (ix86_preferred_output_reload_class): Use IS_STACK_MODE macro.
12784 (ix86_rtx_costs): Remove redundant TARGET_80387 check
12785 with IS_STACK_MODE macro.
12786 * config/i386/i386.md: Replace SSE_FLOAT_MODE_P (DFmode)
12787 with TARGET_SSE2.
12788 (*movdf_internal): Use IS_STACK_MODE macro.
12789 (*movsf_internal): Ditto.
12790
12791 2016-05-23 Marc Glisse <marc.glisse@inria.fr>
12792
12793 * match.pd (a * (1 << b), ~x & ~y, ~X ^ ~Y, (X ^ Y) ^ Y, ~ (-A),
12794 ~ (A - 1), ~(~X >> Y), ~(~X >>r Y)): Relax constraints.
12795
12796 2016-05-23 Jeff Law <law@redhat.com>
12797
12798 * tree-ssa-threadbackward.c (profitable_jump_thread_path): New function
12799 extracted from ...
12800 (fsm_find_control_statement_thread_paths): Call it.
12801
12802 2016-05-23 Martin Jambor <mjambor@suse.cz>
12803
12804 PR ipa/71234
12805 * ipa-cp.c (ipa_get_indirect_edge_target_1): Only check value of
12806 from_global_constant if t is not NULL.
12807
12808 2016-05-23 Marek Polacek <polacek@redhat.com>
12809
12810 PR c/49859
12811 * common.opt (Wswitch-unreachable): New option.
12812 * doc/invoke.texi: Document -Wswitch-unreachable.
12813 * gimplify.c (gimplify_switch_expr): Implement the -Wswitch-unreachable
12814 warning.
12815
12816 2016-05-23 Bin Cheng <bin.cheng@arm.com>
12817
12818 * tree-ssa-address.c (copy_ref_info): Check NULL TMR_STEP when
12819 TMR_INDEX is non-NULL.
12820
12821 2016-05-23 Richard Biener <rguenther@suse.de>
12822
12823 PR tree-optimization/71230
12824 * tree-ssa-reassoc.c (acceptable_pow_call): Move initial condition...
12825 (try_special_add_to_ops): ... here. Always test for single-use.
12826
12827 2016-05-23 Martin Jambor <mjambor@suse.cz>
12828
12829 * hsa-gen.c (gen_hsa_insns_for_switch_stmt): Create an empty
12830 default block if a PHI node in the original one would be resized.
12831
12832 2016-05-23 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
12833
12834 PR tree-optimization/58135
12835 * tree-vect-slp.c: When group size is not multiple
12836 of vector size, allow splitting of store group at
12837 vector boundary.
12838
12839 2016-05-23 Christophe Lyon <christophe.lyon@linaro.org>
12840
12841 * config/arm/arm_neon.h (vtst_p16, vtstq_p16): New.
12842
12843 2016-05-22 Jakub Jelinek <jakub@redhat.com>
12844
12845 * config/i386/sse.md (vec_set_lo_<mode><mask_name>,
12846 vec_set_hi_<mode><mask_name>): Add && <mask_avx512dq_condition>
12847 condition. For !TARGET_AVX512DQ, emit 32x4 instruction instead
12848 of 64x2.
12849
12850 * config/i386/sse.md (vec_set_lo_v16hi, vec_set_hi_v16hi,
12851 vec_set_lo_v32qi, vec_set_hi_v32qi): Add alternative with
12852 v constraint instead of x and vinserti32x4 insn.
12853
12854 * config/i386/sse.md (i128vldq): New mode iterator.
12855 (avx2_vbroadcasti128_<mode>, avx_vbroadcastf128_<mode>): Add
12856 avx512dq and avx512vl alternatives.
12857
12858 * config/i386/sse.md (avx2_vec_dupv4df): Use v instead of x
12859 constraint, use maybe_evex prefix instead of vex.
12860 (vec_dupv4sf): Use v constraint instead of x for output
12861 operand except for noavx alternative, use Yv constraint
12862 instead of x for input. Use maybe_evex prefix instead of vex.
12863 (*vec_dupv4si): Likewise.
12864 (*vec_dupv2di): Likewise.
12865
12866 2016-05-22 Kugan Vivekanandarajah <kuganv@linaro.org>
12867
12868 PR middle-end/40921
12869 * tree-ssa-reassoc.c (try_special_add_to_ops): New.
12870 (linearize_expr_tree): Call try_special_add_to_ops.
12871 (reassociate_bb): Convert MULT_EXPR by (-1) to NEGATE_EXPR.
12872
12873 2016-05-21 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
12874
12875 * config/avr/avr.c (avr_expand_prologue): Add INCOMING_FRAME_SP_OFFSET
12876 to computed stack_usage.
12877
12878 2016-05-21 Pitchumani Sivanupandi <pitchumani.s@atmel.com>
12879
12880 PR target/71103
12881 * config/avr/avr.md (define_expand "mov<mode>"): If the source
12882 operand is subreg (symbol_ref) then move the symbol ref to register.
12883
12884 2016-05-21 Jan Hubicka <hubicka@ucw.cz>
12885
12886 * tree.c (array_at_struct_end_p): Look through MEM_REF.
12887
12888 2016-05-21 Kugan Vivekanandarajah <kuganv@linaro.org>
12889
12890 PR middle-end/71179
12891 * tree-ssa-reassoc.c (transform_add_to_multiply): Disallow float
12892 VECTOR type.
12893
12894 2016-05-20 Eric Botcazou <ebotcazou@adacore.com>
12895
12896 * tree-vrp.c (compare_values_warnv): Simplify handling of symbolic
12897 ranges by calling get_single_symbol and tidy up. Look more closely
12898 into NAME + CST1 vs CST2 comparisons if type overflow is undefined.
12899
12900 2016-05-20 Jeff Law <law@redhat.com>
12901
12902 * bitmap.c (bitmap_find_bit): Remove useless test.
12903
12904 2016-05-20 Segher Boessenkool <segher@kernel.crashing.org>
12905
12906 * function.c (thread_prologue_and_epilogue_insns): Commit the
12907 insertion of the epilogue.
12908
12909 2016-05-20 Martin Jambor <mjambor@suse.cz>
12910
12911 PR tree-optimization/70884
12912 * tree-sra.c (initialize_constant_pool_replacements): Do not check
12913 should_scalarize_away_bitmap and cannot_scalarize_away_bitmap bits.
12914 (sort_and_splice_var_accesses): Do not consider multiple scalar reads
12915 of constant pool data as a reason for scalarization.
12916
12917 2016-05-20 Eric Botcazou <ebotcazou@adacore.com>
12918
12919 * config/arm/arm.c (arm_expand_prologue): Set the stack usage to 0
12920 for naked functions.
12921 (thumb1_expand_prologue): Likewise.
12922
12923 2016-05-20 Nathan Sidwell <nathan@acm.org>
12924
12925 * config/nvptx/nptx.c (nvptx_option_override): Only set
12926 flag_toplevel_reorder, if not explicitly specified. Set
12927 flag_no_common, unless explicitly specified.
12928
12929 2016-05-20 David Malcolm <dmalcolm@redhat.com>
12930
12931 * calls.c (can_implement_as_sibling_call_p): Mark param
12932 reg_parm_stack_space with ATTRIBUTE_UNUSED.
12933
12934 2016-05-20 Uros Bizjak <ubizjak@gmail.com>
12935
12936 * config/i386/i386.c (ix86_rtx_costs) <case CONST_DOUBLE>:
12937 Use IS_STACK_MODE when calculating cost of standard 80387 constants.
12938 Fallthru to CONST_VECTOR case to calculate cost of standard SSE
12939 constants.
12940 <case CONST_WIDE_INT>: Calculate cost of (MEM (SYMBOL_REF)).
12941 (ix86_legitimate_constant_p): Use CASE_CONST_SCALAR_INT
12942 and CASE_CONST_ANY.
12943
12944 2016-05-20 Cesar Philippidis <cesar@codesourcery.com>
12945
12946 * config/nvptx/nvptx.md (sincossf3): New pattern.
12947
12948 2016-05-20 David Malcolm <dmalcolm@redhat.com>
12949
12950 * calls.c (maybe_complain_about_tail_call): New function.
12951 (initialize_argument_information): Call
12952 maybe_complain_about_tail_call when clearing *may_tailcall.
12953 (can_implement_as_sibling_call_p): Call
12954 maybe_complain_about_tail_call when returning false.
12955 (expand_call): Read CALL_EXPR_MUST_TAIL_CALL and, if set,
12956 ensure try_tail_call is set. Call maybe_complain_about_tail_call
12957 if tail-call optimization fails.
12958 * cfgexpand.c (expand_call_stmt): Initialize
12959 CALL_EXPR_MUST_TAIL_CALL from gimple_call_must_tail_p.
12960 * gimple-pretty-print.c (dump_gimple_call): Dump
12961 gimple_call_must_tail_p.
12962 * gimple.c (gimple_build_call_from_tree): Call
12963 gimple_call_set_must_tail with the value of
12964 CALL_EXPR_MUST_TAIL_CALL.
12965 * gimple.h (enum gf_mask): Add GF_CALL_MUST_TAIL_CALL.
12966 (gimple_call_set_must_tail): New function.
12967 (gimple_call_must_tail_p): New function.
12968 * print-tree.c (print_node): Update printing of TREE_STATIC
12969 to reflect its use for CALL_EXPR_MUST_TAIL_CALL.
12970 * tree-core.h (struct tree_base): Add MUST_TAIL_CALL to the
12971 trailing comment listing applicable flags.
12972 * tree.h (CALL_EXPR_MUST_TAIL_CALL): New macro.
12973
12974 2016-05-20 David Malcolm <dmalcolm@redhat.com>
12975
12976 * calls.c (expand_call): Move "Rest of purposes for tail call
12977 optimizations to fail" to...
12978 (can_implement_as_sibling_call_p): ...this new function, and
12979 split into multiple "if" statements.
12980
12981 2016-05-20 Jan Hubicka <hubicka@ucw.cz>
12982
12983 * cfgloop.h (expected_loop_iterations_unbounded,
12984 expected_loop_iterations): Unconstify.
12985 * cfgloopanal.c (expected_loop_iterations_unbounded): Sanity check the
12986 profile with known upper bound; return 3 when profile is absent.
12987 (expected_loop_iterations): Update.
12988
12989 2016-05-20 Jan Hubicka <hubicka@ucw.cz>
12990
12991 * loop-doloop.c (doloop_optimize): Use get_estimated_loop_iterations_int
12992 and get_max_loop_iterations_int.
12993
12994 2016-05-20 Jan Hubicka <hubicka@ucw.cz>
12995
12996 * tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can not produce
12997 realistic upper bounds here.
12998
12999 2016-05-20 Jakub Jelinek <jakub@redhat.com>
13000
13001 PR c++/71210
13002 * gimple-fold.c (gimple_fold_call): Do not remove lhs of noreturn
13003 calls if the LHS is variable length or has addressable type.
13004 If targets[0]->decl is a noreturn call with void return type and
13005 zero arguments, adjust fntype and remove lhs in that case.
13006
13007 2016-05-20 Marc Glisse <marc.glisse@inria.fr>
13008
13009 PR tree-optimization/71079
13010 PR tree-optimization/71206
13011 * match.pd ((X ^ Y) ^ (X ^ Z)): Convert the arguments.
13012
13013 2016-05-20 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
13014
13015 * tree-vectorizer.c (get_vec_alignment_for_decl): New static function.
13016 (get_vec_alignment_for_array_decl): Likewise.
13017 (get_vec_alignment_for_record_decl): Likewise.
13018 (increase_alignment::execute): Move code to find alignment to
13019 get_vec_alignment_for_array_decl and call get_vec_alignment_for_decl.
13020 (type_align_map): New hash_map.
13021
13022 2016-05-20 Richard Guenther <rguenther@suse.de>
13023
13024 PR tree-optimization/29756
13025 * tree.def (BIT_INSERT_EXPR): New tcc_expression tree code.
13026 * expr.c (expand_expr_real_2): Handle BIT_INSERT_EXPR.
13027 * fold-const.c (operand_equal_p): Likewise.
13028 (fold_ternary_loc): Add constant folding of BIT_INSERT_EXPR.
13029 * gimplify.c (gimplify_expr): Handle BIT_INSERT_EXPR.
13030 * tree-inline.c (estimate_operator_cost): Likewise.
13031 * tree-pretty-print.c (dump_generic_node): Likewise.
13032 * tree-ssa-operands.c (get_expr_operands): Likewise.
13033 * cfgexpand.c (expand_debug_expr): Likewise.
13034 * gimple-pretty-print.c (dump_ternary_rhs): Likewise.
13035 * gimple.c (get_gimple_rhs_num_ops): Handle BIT_INSERT_EXPR.
13036 * tree-cfg.c (verify_gimple_assign_ternary): Verify BIT_INSERT_EXPR.
13037 * tree-ssa.c (non_rewritable_lvalue_p): We can rewrite
13038 vector inserts using BIT_FIELD_REF or MEM_REF on the lhs.
13039 (execute_update_addresses_taken): Do it.
13040
13041 2016-05-20 Richard Biener <rguenther@suse.de>
13042
13043 PR tree-optimization/71185
13044 * tree-ssa-loop-prefetch.c (gather_memory_references): Drop
13045 register operations.
13046
13047 2016-05-20 Richard Biener <rguenther@suse.de>
13048
13049 * tree-if-conv.c (add_bb_predicate_gimplified_stmts): Use
13050 gimple_seq_add_seq_without_update.
13051 (release_bb_predicate): Assert we have no operands to free.
13052 (if_convertible_loop_p_1): Calculate post dominators later.
13053 Do not free BB predicates here.
13054 (combine_blocks): Do not recompute BB predicates.
13055 (version_loop_for_if_conversion): Save BB predicates around
13056 loop versioning.
13057
13058 2016-05-19 Segher Boessenkool <segher@kernel.crashing.org>
13059
13060 * function.c (make_epilogue_seq): Remove epilogue_end parameter.
13061 (thread_prologue_and_epilogue_insns): Remove bb_flags. Restructure
13062 code. Ignore sibcalls on EDGE_IGNORE edges.
13063 * shrink-wrap.c (handle_simple_exit): New function. Set EDGE_IGNORE
13064 on edges for sibcalls that run without prologue. The rest of the
13065 function is combined from...
13066 (fix_fake_fallthrough_edge): ... this, and ...
13067 (try_shrink_wrapping): ... a part of this. Remove the bb_with
13068 function argument, make it a local variable.
13069
13070 2016-05-19 Sandra Loosemore <sandra@codesourcery.com>
13071
13072 * config/i386/cygming.h (DWARF2_UNWIND_INFO): Allow
13073 --disable-sjlj-exceptions for TARGET_BI_ARCH to select DWARF-2 EH
13074 for 32-bit mode and SEH for 64-bit.
13075 * config/i386/mingw32.h (SHARED_LIBGCC_UNDEFS_SPEC): Handle
13076 TARGET_64BIT_DEFAULT.
13077
13078 2016-05-19 Ryan Burn <contact@rnburn.com>
13079
13080 * Makefile.in (GTFILES): Add cilk.h and cilk-common.c.
13081 * gengtype.c (open_base_files): Add cilk.h to ifiles.
13082
13083 2016-05-19 Uros Bizjak <ubizjak@gmail.com>
13084
13085 * sched-deps.c (sched_analyze_2) <case TRAP_IF>: Also
13086 force pending loads from memory.
13087
13088 2016-05-19 Kelvin Nilsen <kelvin@gcc.gnu.org>
13089
13090 * config/rs6000/altivec.md (UNSPEC_DARN): New unspec constant.
13091 (UNSPEC_DARN_32): New unspec constant.
13092 (UNSPEC_DARN_RAW): New unspec constant.
13093 (darn_32): New instruction.
13094 (darn_raw): New instruction.
13095 (darn): New instruction.
13096 * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_0): Add
13097 support and documentation for this macro.
13098 (BU_P9_MISC_1): New macro definition.
13099 (BU_P9_64BIT_MISC_0): New macro definition.
13100 (BU_P9_MISC_0): New macro definition.
13101 (darn_32): New builtin definition.
13102 (darn_raw): New builtin definition.
13103 (darn): New builtin definition.
13104 * config/rs6000/rs6000.c: Add #define RS6000_BUILTIN_0 and #undef
13105 RS6000_BUILTIN_0 directives to surround each occurrence of
13106 #include "rs6000-builtin.def".
13107 (rs6000_builtin_mask_calculate): Add in the RS6000_BTM_MODULO and
13108 RS6000_BTM_64BIT flags to the returned mask, depending on
13109 configuration.
13110 (def_builtin): Correct an error in the assignments made to the
13111 debugging variable attr_string.
13112 (rs6000_expand_builtin): Add support for no-operand built-in
13113 functions.
13114 (builtin_function_type): Remove fatal_error assertion that is no
13115 longer valid.
13116 (rs6000_common_init_builtins): Add support for no-operand built-in
13117 functions.
13118 * config/rs6000/rs6000.h (RS6000_BTM_MODULO): New macro
13119 definition.
13120 (RS6000_BTM_PURE): Enhance comment to clarify intent of this flag
13121 definition.
13122 (RS6000_BTM_64BIT): New macro definition.
13123 * doc/extend.texi: Document __builtin_darn (void),
13124 __builtin_darn_raw (void), and __builtin_darn_32 (void) built-in
13125 functions.
13126
13127 2016-05-19 Jan Hubicka <hubicka@ucw.cz>
13128
13129 * tree-vect-loop.c (vect_analyze_loop_2): Use also
13130 max_loop_iterations_int.
13131
13132 2016-05-19 Marek Polacek <polacek@redhat.com>
13133
13134 PR tree-optimization/71031
13135 * tree-vrp.c (extract_range_from_binary_expr_1): Turn assert into a
13136 condition and adjust the code a bit.
13137
13138 2016-05-19 Martin Liska <mliska@suse.cz>
13139
13140 * tree-vect-stmts.c (vectorizable_simd_clone_call): Utilize
13141 auto_vec instead of vec.
13142
13143 2016-05-19 Martin Liska <mliska@suse.cz>
13144
13145 * tree-parloops.c (oacc_entry_exit_ok): Release a vector.
13146
13147 2016-05-19 Martin Liska <mliska@suse.cz>
13148
13149 * tree-if-conv.c (ifcvt_repair_bool_pattern): Utilize auto_vecs.
13150
13151 2016-05-19 Martin Liska <mliska@suse.cz>
13152
13153 * ipa-pure-const.c (set_function_state): Remove an existing
13154 funct_state.
13155 (remove_node_data): Do not free it as it's released
13156 in set_function_state.
13157
13158 2016-05-19 Martin Liska <mliska@suse.cz>
13159
13160 * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Release
13161 bitmap.
13162
13163 2016-05-19 Martin Liska <mliska@suse.cz>
13164
13165 * omp-simd-clone.c (simd_clone_adjust): Release vector.
13166
13167 2016-05-19 Martin Liska <mliska@suse.cz>
13168
13169 * tree-ssa-reassoc.c (eliminate_duplicate_pair): Truncate
13170 an auto_vec instead of re-creating it.
13171
13172 2016-05-19 Martin Liska <mliska@suse.cz>
13173
13174 * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Use
13175 auto_vec instead of vec.
13176
13177 2016-05-19 Martin Liska <mliska@suse.cz>
13178
13179 * lto-section-in.c (lto_get_section_data): Call
13180 lto_check_version with additional argument.
13181 * lto-streamer.c (lto_check_version): Add new argument.
13182 * lto-streamer.h (lto_check_version): Likewise.
13183
13184 2016-05-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13185
13186 * config/arm/arm.c (arm_new_rtx_costs, SIGN_EXTEND case):
13187 Don't add cost of inner memory when handling sign-extended loads.
13188
13189 2016-05-19 Ilya Enkovich <ilya.enkovich@intel.com>
13190
13191 PR rtl-optimization/71148
13192 * cse.c (cse_main): Free dominance info.
13193 (rest_of_handle_cse): Don't free dominance info.
13194 (rest_of_handle_cse2): Likewise.
13195 (rest_of_handle_cse_after_global_opts): Likewise.
13196
13197 2016-05-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13198
13199 PR target/71056
13200 * config/arm/arm-builtins.c (arm_builtin_vectorized_function): Return
13201 NULL_TREE early if NEON is not available. Remove now redundant check
13202 in ARM_CHECK_BUILTIN_MODE.
13203
13204 2016-05-19 Maxim Ostapenko <m.ostapenko@samsung.com>
13205
13206 PR sanitizer/64354
13207 * cppbuiltin.c (define_builtin_macros_for_compilation_flags): Add new
13208 builtin __SANITIZE_THREAD__ macros for fsanitize=thread switch.
13209 * doc/cpp.texi: Document new macros.
13210
13211 2016-05-19 Bin Cheng <bin.cheng@arm.com>
13212
13213 PR tree-optimization/69848
13214 * tree-vect-loop.c (vectorizable_reduction): Don't factor
13215 comparison expr out of VEC_COND_EXPR for COND_REDUCTION.
13216
13217 2016-05-19 Segher Boessenkool <segher@kernel.crashing.org>
13218
13219 * function.c (thread_prologue_and_epilogue_insn): Move the
13220 "goto epilogue_done" one block later.
13221
13222 2016-05-19 Richard Biener <rguenther@suse.de>
13223
13224 PR tree-optimization/70729
13225 * passes.def: Move LIM pass before PRE. Remove no longer
13226 required copyprop and move first DCE out of the loop pipeline.
13227
13228 2016-05-18 David Malcolm <dmalcolm@redhat.com>
13229
13230 PR driver/69265
13231 * Makefile.in (GCC_OBJS): Move spellcheck.o to...
13232 (OBJS-libcommon-target): ...here.
13233 * opts-common.c: Include spellcheck.h.
13234 (cmdline_handle_error): Build a vec of valid options and use it
13235 to suggest provide hints for misspelled arguments.
13236
13237 2016-05-18 Jakub Jelinek <jakub@redhat.com>
13238
13239 PR c++/71100
13240 * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Don't drop
13241 lhs if it has TREE_ADDRESSABLE type.
13242
13243 2016-05-18 Uros Bizjak <ubizjak@gmail.com>
13244
13245 PR target/71145
13246 * config/alpha/alpha.md (trap): Add (use (reg:DI 29)).
13247 (*exception_receiver_1): Return "#" for TARGET_EXPLICIT_RELOCS.
13248
13249 2016-05-18 Martin Jambor <mjambor@suse.cz>
13250
13251 PR ipa/69708
13252 * ipa-cp.c (ipa_get_jf_pass_through_result): Allow non-ip constant
13253 input for NOP_EXPR pass-through functions.
13254 * ipa-prop.c (ipa_compute_jump_functions_for_edge): Allow
13255 aggregate global constant VAR_DECLs in constant jump functions.
13256
13257 2016-05-18 Martin Jambor <mjambor@suse.cz>
13258
13259 PR ipa/69708
13260 * ipa-prop.c (parm_preserved_before_stmt_p): Return true for loads
13261 from TREE_READONLY parameters.
13262
13263 2016-05-18 Martin Jambor <mjambor@suse.cz>
13264
13265 PR ipa/69708
13266 * cgraph.h (cgraph_indirect_call_info): New field
13267 guaranteed_unmodified.
13268 * ipa-cp.c (ipa_get_indirect_edge_target_1): Also pass parameter value
13269 to ipa_find_agg_cst_for_param, check guaranteed_unmodified when
13270 appropriate.
13271 * ipa-inline-analysis.c (evaluate_conditions_for_known_args): Also
13272 pass the parameter value to ipa_find_agg_cst_for_param.
13273 * ipa-prop.c (ipa_load_from_parm_agg): New parameter
13274 guaranteed_unmodified, store AA results there instead of bailing out
13275 if present.
13276 (ipa_note_param_call): Also initialize guaranteed_unmodified flag.
13277 (ipa_analyze_indirect_call_uses): Also set guaranteed_unmodified flag.
13278 (find_constructor_constant_at_offset): New function.
13279 (ipa_find_agg_cst_from_init): Likewise.
13280 (ipa_find_agg_cst_for_param): Also seearch for aggregate values in
13281 static initializers of contants, report back through a new paameter
13282 from_global_constant if that was the case.
13283 (try_make_edge_direct_simple_call): Also pass parameter value to
13284 ipa_find_agg_cst_for_param, check guaranteed_unmodified when
13285 appropriate.
13286 (ipa_write_indirect_edge_info): Stream new flag guaranteed_unmodified.
13287 (ipa_read_indirect_edge_info): Likewise.
13288 * ipa-prop.h (ipa_find_agg_cst_for_param): Update declaration.
13289 (ipa_load_from_parm_agg): Likewise.
13290
13291 2016-05-18 Jiong Wang <jiong.wang@arm.com>
13292
13293 PR rtl-optimization/71150
13294 * lra-constraint (process_addr_reg): Guard "in_class_p" with REG_P
13295 check.
13296
13297 2016-05-18 Michael Meissner <meissner@linux.vnet.ibm.com>
13298
13299 PR target/70915
13300 * config/rs6000/constraints.md (wE constraint): New constraint
13301 for a vector constant that can be loaded with XXSPLTIB.
13302 (wM constraint): New constraint for a vector constant of a 1's.
13303 (wS constraint): New constraint for a vector constant that can be
13304 loaded with XXSPLTIB and a vector sign extend instruction.
13305 * config/rs6000/predicates.md (xxspltib_constant_split): New
13306 predicates for wE/wS constraints.
13307 (xxspltib_constant_nosplit): Likewise.
13308 (easy_vector_constant): Add support for constants that can be
13309 loaded via XXSPLTIB.
13310 (all_ones_constant): New predicate for vector constant with all
13311 1's set.
13312 (splat_input_operand): Add support for ISA 3.0 word splat operations.
13313 * config/rs6000/rs6000.c (xxspltib_constant_p): New function to
13314 return if a constant can be loaded with the ISA 3.0 XXSPLTIB
13315 instruction and possibly with a sign extension.
13316 (output_vec_const_move): Add support for XXSPLTIB. If we are
13317 loading up 0/-1 into Altivec registers, prefer using VSPLTISW
13318 instead of XXLXOR/XXLORC.
13319 (rs6000_expand_vector_init): Add support for ISA 3.0 word splat
13320 operations.
13321 (rs6000_legitimize_reload_address): Likewise.
13322 (rs6000_output_move_128bit): Use output_vec_const_move to emit
13323 constants.
13324 * config/rs6000/vsx.md (VSX_M): Add TImode (if -mvsx-timode) and
13325 combine VSX_M and VSX_M2 into one iterator.
13326 (VSX_M2): Likewise.
13327 (VSINT_84): New iterators for loading constants with XXSPLTIB.
13328 (VSINT_842): Likewise.
13329 (UNSPEC_VSX_SIGN_EXTEND): New UNSPEC.
13330 (xxspltib_v16qi): New insns to load up constants with the ISA 3.0
13331 XXSPLTIB instruction.
13332 (xxspltib_<mode>_nosplit): Likewise.
13333 (xxspltib_<mode>_split): New insn to load up constants with
13334 XXSPLTIB and a sign extend instruction.
13335 (vsx_mov<mode>): Replace single move that handled all vector types
13336 with separate 32-bit and 64-bit moves. Combine the movti_<bit>
13337 moves (when -mvsx-timode is in effect) into the main vector
13338 moves. Eliminate separate moves for <VSr> <VSa>, where the
13339 preferred register class (<VSr>) is listed first, and the
13340 secondary register class (<VSa>) is listed second with a '?' to
13341 discourage use. Prefer loading 0/-1 in any VSX register for ISA
13342 3.0, and Altivec registers for ISA 2.06/2.07 (PR target/70915) so
13343 that if the register was involved in a slow operation, the
13344 clear/set operation does not wait for the slow operation to
13345 finish. Adjust the length attributes for 32-bit mode. Use
13346 rs6000_output_move_128bit and drop the use of the string
13347 instructions for 32-bit movti when -mvsx-timode is in effect. Use
13348 spacing so that the alternatives and attributes don't generate
13349 long lines, and put things in columns, so that it is easier to
13350 match up the operands and attributes with the insn alternatives.
13351 (vsx_mov<mode>_64bit): Likewise.
13352 (vsx_mov<mode>_32bit): Likewise.
13353 (vsx_movti_64bit): Fold movti into normal vector moves.
13354 (vsx_movti_32bit): Likewise.
13355 (vsx_splat_<mode>, V4SI/V4SF modes): Add support for ISA 3.0 word
13356 splat instructions.
13357 (vsx_splat_v4si_internal): Likewise.
13358 (vsx_splat_v4sf_internal): Likewise.
13359 (vector fusion peepholes): Use VSX_M instead of VSX_M2.
13360 (vsx_sign_extend_qi_<mode>): New ISA 3.0 instructions to sign
13361 extend vector elements.
13362 (vsx_sign_extend_hi_<mode>): Likewise.
13363 (vsx_sign_extend_si_v2di): Likewise.
13364 * config/rs6000/rs6000-protos.h (xxspltib_constant_p): Add
13365 declaration.
13366 * doc/md.texi (PowerPC constraints): Document the wE, wM, and wS
13367 constraints. Add trailing period to wL documentation.
13368
13369 2016-05-18 Richard Sandiford <richard.sandiford@arm.com>
13370
13371 PR middle-end/71020
13372 * tree-dfa.h (replace_abnormal_ssa_names): Declare.
13373 * tree-dfa.c (replace_abnormal_ssa_names): New function.
13374 * tree-call-cdce.c: Include tree-dfa.h.
13375 (can_guard_call_p): New function, extracted from...
13376 (can_use_internal_fn): ...here.
13377 (shrink_wrap_one_built_in_call_with_conds): Remove failure path
13378 and return void.
13379 (shrink_wrap_one_built_in_call): Likewise.
13380 (use_internal_fn): Likewise.
13381 (shrink_wrap_conditional_dead_built_in_calls): Update accordingly
13382 and return void. Call replace_abnormal_ssa_names.
13383 (pass_call_cdce::execute): Check can_guard_call_p during the
13384 initial walk. Assume shrink_wrap_conditional_dead_built_in_calls
13385 will always change something.
13386
13387 2016-05-18 Martin Jambor <mjambor@suse.cz>
13388
13389 PR ipa/70646
13390 * ipa-prop.c (determine_locally_known_aggregate_parts): Bail out early
13391 if parameter PARAM_IPA_MAX_AGG_ITEMS is zero.
13392
13393 2016-05-18 Martin Jambor <mjambor@suse.cz>
13394
13395 PR ipa/70646
13396 * ipa-inline.h (condition): New field size.
13397 * ipa-inline-analysis.c (add_condition): New parameter SIZE, use it
13398 for comaprison and store it into the new condition.
13399 (evaluate_conditions_for_known_args): Use condition size to check
13400 access sizes for all but CHANGED conditions.
13401 (unmodified_parm_1): New parameter size_p, store access size into it.
13402 (unmodified_parm): Likewise.
13403 (unmodified_parm_or_parm_agg_item): Likewise.
13404 (eliminated_by_inlining_prob): Pass NULL to unmodified_parm as size_p.
13405 (set_cond_stmt_execution_predicate): Extract access sizes and store
13406 them to conditions.
13407 (set_switch_stmt_execution_predicate): Likewise.
13408 (will_be_nonconstant_expr_predicate): Likewise.
13409 (will_be_nonconstant_predicate): Likewise.
13410 (inline_read_section): Stream condition size.
13411 (inline_write_summary): Likewise.
13412
13413 2016-05-18 Richard Biener <rguenther@suse.de>
13414
13415 * tree-ssa-loop-im.c (determine_max_movement): Properly add
13416 condition cost to PHI cost instead of total_cost.
13417
13418 2016-05-18 Martin Liska <mliska@suse.cz>
13419
13420 PR fortran/70856
13421 * ipa-icf.c (sem_variable::merge): Set DECL_PT_UID for
13422 merged variables.
13423
13424 2016-05-18 Richard Biener <rguenther@suse.de>
13425
13426 * lto-streamer.h (LTO_major_version): Bump to 6.
13427
13428 2016-05-18 Segher Boessenkool <segher@kernel.crashing.org>
13429
13430 * function.c (make_split_prologue_seq, make_prologue_seq,
13431 make_epilogue_seq): New functions, factored out from...
13432 (thread_prologue_and_epilogue_insns): Here.
13433
13434 2016-05-18 Segher Boessenkool <segher@kernel.crashing.org>
13435
13436 * function.c (rest_of_handle_thread_prologue_and_epilogue): Call
13437 cleanup_cfg with CLEANUP_EXPENSIVE after shrink-wrapping instead
13438 of before. Add a comment.
13439
13440 2016-05-18 Bin Cheng <bin.cheng@arm.com>
13441
13442 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Check invariant
13443 expression pointer, not pointer to the pointer.
13444
13445 2016-05-18 Jakub Jelinek <jakub@redhat.com>
13446
13447 * config/i386/sse.md (pbroadcast_evex_isa): New mode attr.
13448 (avx2_pbroadcast<mode>): Add another alternative with v instead
13449 of x constraints in it, using <pbroadcast_evex_isa> isa.
13450 (avx2_pbroadcast<mode>_1): Similarly, add two such alternatives.
13451
13452 * config/i386/sse.md (<ssse3_avx2>_palignr<mode>): Use
13453 constraint x instead of v in second alternative, add avx512bw
13454 alternative.
13455
13456 * config/i386/sse.md (<ssse3_avx2>_pshufb<mode>3<mask_name>): Use
13457 constraint x instead of v in second alternative, add avx512bw
13458 alternative.
13459
13460 * config/i386/sse.md (*<ssse3_avx2>_pmulhrsw<mode>3<mask_name>): Use
13461 constraint x instead of v in second alternative, add avx512bw
13462 alternative.
13463
13464 * config/i386/sse.md (avx2_pmaddubsw256, ssse3_pmaddubsw128): Add
13465 avx512bw alternative.
13466
13467 2016-05-18 Kirill Yukhin <kirill.yukhin@intel.com>
13468
13469 * config/i386/sse.md (define_insn "*andnot<mode>3"): Extend static
13470 array to 128 chars.
13471 (define_insn "*andnottf3"): Ditto.
13472 (define_insn "*<code><mode>3"/any_logic): Ditto.
13473 (define_insn "*<code>tf3"/any_logic): Ditto.
13474 (define_insn "sse2_storehpd"): Use Yv constraint for scalar
13475 operand to block AVX-512VL insn variant emit when it is not enabled.
13476
13477 2016-05-18 Kirill Yukhin <kirill.yukhin@intel.com>
13478
13479 * config/i386/sse.md (define_insn "*vec_concatv2sf_sse4_1"): Use 'Yv'
13480 constraint fot SF mode.
13481
13482 2016-05-18 Petr Murzin <petr.murzin@intel.com>
13483 Kirill Yukhin <kirill.yukhin@intel.com>
13484
13485 * config/i386/sse.md (define_insn "srcp14<mode>"): Use proper operand
13486 modifiers.
13487 (define_insn "rsqrt14<mode>"): Ditto.
13488 (define_insn "<mask_codefor>avx512dq_cvtps2qqv2di<mask_name>"): Ditto.
13489 (define_insn "<fixsuffix>fix_truncv2sfv2di2<mask_name>"): Ditto.
13490 (define_insn "avx512f_<code>v8div16qi2_mask_store"): Ditto.
13491 (define_insn "vec_set_hi_<mode><mask_name>"): Ditto.
13492 (define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>"):
13493 Ditto.
13494 (define_insn "*avx512f_gatherdi<mode>"): Ditto.
13495 (define_insn "*avx512f_scatterdi<mode>"): Ditto.
13496 * config/i386/i386.c (ix86_print_operand): Expand check for size
13497 override codes for Intel syntax.
13498
13499 2016-05-18 Richard Biener <rguenther@suse.de>
13500
13501 PR tree-optimization/71168
13502 * tree-loop-distribution.c (distribute_loop): Move *destroy_p
13503 initialization earlier.
13504
13505 2016-05-18 James Greenhalgh <james.greenhalgh@arm.com>
13506
13507 * config/aarch64/aarch64-simd.md
13508 (aarch64_reduc_plus_internal<mode>): Rename to...
13509 (reduc_plus_scal): ...This, and remove previous implementation.
13510
13511 2016-05-18 Richard Biener <rguenther@suse.de>
13512
13513 * passes.def: Put late dse and cd_dce in canonical order.
13514
13515 2016-05-17 Jan Hubicka <hubicka@ucw.cz>
13516
13517 * ipa-inline-transform.c (preserve_function_body_p): Look for
13518 first non-thunk clone.
13519 (save_function_body): Save into first non-thunk.
13520 * lto-cgraph.c (lto_output_edge): When streaming thunk do not look
13521 up call stmt id.
13522 (lto_output_node): Inline thunks don't need body in every
13523 partition.
13524 * lto-streamer-in.c: Do not fixup thunk clones.
13525 * cgraphclones.c (cgraph_node::create_edge_including_clone): Skip
13526 thunks.
13527 * tree-inline.c (copy_bb): Be prepared for target node to be new after
13528 folding suceeds.
13529
13530 2016-05-17 Kugan Vivekanandarajah <kuganv@linaro.org>
13531
13532 PR middle-end/63586
13533 * tree-ssa-reassoc.c (transform_add_to_multiply): New.
13534 (reassociate_bb): Call transform_add_to_multiply.
13535
13536 2016-05-17 Kugan Vivekanandarajah <kuganv@linaro.org>
13537
13538 * config/aarch64/aarch64.c (all_extensions): Removed unused
13539 static variable.
13540
13541 2016-05-17 Nathan Sidwell <nathan@acm.org>
13542
13543 * config/nvptx/nvptx.c (nvptx_function_arg_boundary): New.
13544 (TARGET_FUNCTION_ARG_BOUNDARY): Override.
13545
13546 2016-05-17 Mikhail Maltsev <maltsevm@gmail.com>
13547
13548 PR tree-optimization/54579
13549 PR middle-end/55299
13550 * match.pd (~(~X >> Y), ~(~X >>r Y), ~(~X <<r Y)): New patterns.
13551
13552 2016-05-17 Marek Polacek <polacek@redhat.com>
13553
13554 PR ipa/71146
13555 * tree-inline.c (expand_call_inline): Call
13556 maybe_remove_unused_call_args.
13557
13558 2016-05-17 Jim Wilson <jim.wilson@linaro.org>
13559
13560 * doc/cpp.texi (__GNUC__): Major version changes are no longer rare.
13561 * doc/invoke.texi (-mnan=2008): Change signalling to signaling.
13562 * doc/md.texi (fmin@var{m}3): Likewise.
13563
13564 2016-05-17 Marc Glisse <marc.glisse@inria.fr>
13565
13566 * match.pd (X & C): New transformation.
13567
13568 2016-05-17 Marc Glisse <marc.glisse@inria.fr>
13569
13570 * match.pd (~X & Y): New transformation.
13571
13572 2016-05-17 Marc Glisse <marc.glisse@inria.fr>
13573
13574 * tree-vrp.c (simplify_truth_ops_using_ranges): Set range
13575 information for new SSA_NAME.
13576 (simplify_conversion_using_ranges): Get range through get_range_info
13577 instead of get_value_range.
13578
13579 2016-05-17 Jiong Wang <jiong.wang@arm.com>
13580
13581 * config/aarch64/arm_neon.h (vmvn_s8): Reimplement using C operator.
13582 Remove inline assembly.
13583 (vmvn_s16): Likewise.
13584 (vmvn_s32): Likewise.
13585 (vmvn_u8): Likewise.
13586 (vmvn_u16): Likewise.
13587 (vmvn_u32): Likewise.
13588 (vmvnq_s8): Likewise.
13589 (vmvnq_s16): Likewise.
13590 (vmvnq_s32): Likewise.
13591 (vmvnq_u8): Likewise.
13592 (vmvnq_u16): Likewise.
13593 (vmvnq_u32): Likewise.
13594 (vmvn_p8): Likewise.
13595 (vmvnq_p16): Likewise.
13596
13597 2016-05-17 Jiong Wang <jiong.wang@arm.com>
13598
13599 * config/aarch64/aarch64-simd.md (vmul_n_f32): Remove inline assembly.
13600 Use builtin.
13601 (vmul_n_s16): Likewise.
13602 (vmul_n_s32): Likewise.
13603 (vmul_n_u16): Likewise.
13604 (vmul_n_u32): Likewise.
13605 (vmulq_n_f32): Likewise.
13606 (vmulq_n_f64): Likewise.
13607 (vmulq_n_s16): Likewise.
13608 (vmulq_n_s32): Likewise.
13609 (vmulq_n_u16): Likewise.
13610 (vmulq_n_u32): Likewise.
13611
13612 2016-05-17 Jiong Wang <jiong.wang@arm.com>
13613
13614 * config/aarch64/aarch64-simd.md (*aarch64_mul3_elt_to_128df): Extend
13615 to all supported modes. Rename to "*aarch64_mul3_elt_from_dup".
13616
13617 2016-05-17 Jiong Wang <jiong.wang@arm.com>
13618
13619 * config/aarch64/aarch64-simd.md (*aarch64_fma4_elt_to_128df): Rename
13620 to *aarch64_fma4_elt_from_dup<mode>.
13621 (*aarch64_fnma4_elt_to_128df): Rename to
13622 *aarch64_fnma4_elt_from_dup<mode>.
13623 * config/aarch64/arm_neon.h (vfma_n_f64): New.
13624 (vfms_n_f32): Likewise.
13625 (vfms_n_f64): Likewise.
13626 (vfmsq_n_f32): Likewise.
13627 (vfmsq_n_f64): Likewise.
13628
13629 2016-05-17 Gerald Pfeifer <gerald@pfeifer.com>
13630
13631 * wide-int.h: Change fixed_wide_int_storage from class to struct.
13632
13633 2016-05-17 Richard Biener <rguenther@suse.de>
13634
13635 PR tree-optimization/71132
13636 * tree-loop-distribution.c (create_rdg_cd_edges): Pass in loop.
13637 Only add control dependences for blocks in the loop.
13638 (build_rdg): Adjust.
13639 (generate_code_for_partition): Return whether loop should
13640 be destroyed and delay that.
13641 (distribute_loop): Likewise.
13642 (pass_loop_distribution::execute): Record loops to be destroyed
13643 and perform delayed destroying of loops.
13644
13645 2016-05-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13646
13647 PR target/70809
13648 * config/aarch64/aarch64-simd.md (aarch64_vmls<mode>): Delete.
13649
13650 2016-05-17 James Greenhalgh <james.greenhalgh@arm.com>
13651
13652 * config/aarch64/aarch64-elf.h (ASM_OUTPUT_DEF): Delete.
13653
13654 2016-05-17 Ilya Enkovich <ilya.enkovich@intel.com>
13655
13656 PR target/71114
13657 * config/i386/i386.c (dimode_scalar_chain::convert_op): Fix
13658 insertion point for instructions generated by validize_mem.
13659
13660 2016-05-17 James Greenhalgh <james.greenhalgh@arm.com>
13661
13662 * config/aarch64/aarch64.c (SHIFT_COUNT_TRUNCATED): Wrap definition
13663 in brackets.
13664
13665 2016-05-17 James Greenhalgh <james.greenhalgh@arm.com>
13666
13667 * config/aarch64/aarch64.c
13668 (aarch64_output_simd_mov_immediate): Make "buf_size" a variable
13669 rather than a macro.
13670
13671 2016-05-16 Wilco Dijkstra <wdijkstr@arm.com>
13672
13673 * doc/invoke.texi (AArch64 Options): Various updates.
13674
13675 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
13676
13677 * ipa-inline-analysis.c (compute_inline_parameters): Disable inlinig
13678 into instrumentation thunks.
13679 * cif-code.def (CIF_CHKP): New.
13680
13681 2016-05-16 Uros Bizjak <ubizjak@gmail.com>
13682
13683 * config/i386/xopintrin.h: Correct "unsinged" typo in the comments.
13684
13685 2016-05-16 Martin Jambor <mjambor@suse.cz>
13686
13687 * hsa-gen.c (fillup_for_decl): Increase alignment to natural one.
13688 (get_symbol_for_decl): Sorry if a global symbol in under-aligned.
13689
13690 2016-05-16 Marek Polacek <polacek@redhat.com>
13691
13692 * gimple.c (maybe_remove_unused_call_args): Fix typos in the
13693 commentary.
13694
13695 2016-05-16 Martin Jambor <mjambor@suse.cz>
13696
13697 PR hsa/70857
13698 * omp-low.c (grid_expand_target_grid_body): Copy RESULT_DECL of
13699 the outlined kernel function.
13700
13701 2016-05-16 Robert Suchanek <robert.suchanek@imgtec.com>
13702
13703 * config/mips/mips.h (ISA_HAS_LSA): Enable for -mmsa.
13704 (ISA_HAS_DLSA): Ditto.
13705
13706 2016-05-16 Matthew Fortune <matthew.fortune@imgtec.com>
13707
13708 * config/mips/m5100.md (m51_int_load): Update the latency to 2.
13709
13710 2016-05-16 Nathan Sidwell <nathan@acm.org>
13711
13712 * config/nvptx/nvptx.c (nvptx_mangle_decl_assembler_name): Revert.
13713 (nvptx_name_replacement): Restore. Add comment.
13714 (write_fn_proto, write_fn_proto_from_insn,
13715 nvptx_output_call_insn): Restore
13716 (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Delete.
13717
13718 2016-05-16 Wilco Dijkstra <wdijkstr@arm.com>
13719
13720 * config/aarch64/aarch64.md
13721 (add<mode>3_compareC_cconly_imm): Remove use of %w.
13722 (add<mode>3_compareC_imm): Likewise.
13723 (<optab>si3_uxtw): Split into register and immediate variants.
13724 (andsi3_compare0_uxtw): Likewise.
13725 (and<mode>3_compare0): Likewise.
13726 (and<mode>3nr_compare0): Likewise.
13727 (stack_protect_test_<mode>): Don't use %x for memory operands.
13728
13729 2016-05-16 Matthew Fortune <matthew.fortune@imgtec.com>
13730
13731 * config/mips/mips-cpus.def (p5600): Add multi-line brackets.
13732
13733 2016-05-16 Wilco Dijkstra <wdijkstr@arm.com>
13734
13735 * config/aarch64/aarch64.md (aarch64_ashl_sisd_or_int_<mode>3):
13736 Split integer shifts into shift_reg and bfm.
13737 (aarch64_lshr_sisd_or_int_<mode>3): Likewise.
13738 (aarch64_ashr_sisd_or_int_<mode>3): Likewise.
13739 (ror<mode>3_insn): Likewise.
13740 (<optab>si3_insn_uxtw): Likewise.
13741 (<optab><mode>3_insn): Change to rotate_imm.
13742 (extr<mode>5_insn_alt): Likewise.
13743 (extrsi5_insn_uxtw): Likewise.
13744 (extrsi5_insn_uxtw_alt): Likewise.
13745
13746 2016-05-16 Matthew Wahab <matthew.wahab@arm.com>
13747
13748 * doc/tm.texi: Regenerate.
13749 * doc/tm.texi.in (TARGET_INVALID_PARAMETER_TYPE): Remove.
13750 (TARGET_INVALID_RETURN_TYPE): Remove.
13751 * system.h: Poison TARGET_INVALID_PARAMETER_TYPE and
13752 TARGET_INVALID_RETURN_TYPE.
13753 * target.def (invalid_parameter_type): Remove.
13754 (invalid_return_type): Remove.
13755
13756 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
13757
13758 * ipa-inline-analysis.c (compute_inline_parameters): Be more reailistic
13759 on estimating thunk bodies; do not set inline_failed to CIF_THUNK for
13760 calls from thunk.
13761 * ipa-inline-transform.c (inline_call): When inlining into thunk produce
13762 gimple body.
13763 (preserve_function_body_p): No need to preserve function body
13764 * cif-codes.def (CIF_THUNK): Remove.
13765 * cgraphclones.c (duplicate_thunk_for_node): Thunks calls are inlinable.
13766
13767 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
13768
13769 * tree-inline.c (expand_call_inline): recurse after inlining thunk.
13770
13771 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
13772
13773 * tree.c (free_lang_data_in_decl): Also set target/optimization flags
13774 for thunks.
13775
13776 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
13777
13778 * ipa-inline.c (report_inline_failed_reason): Look into thunks, too
13779 (inline_small_functions): Do not look for function symbol when
13780 resetting caches.
13781
13782 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
13783
13784 * lto-cgraph.c (compute_ltrans_boundary, output_symtab): Fix handling
13785 of inline thunks
13786
13787 2016-05-16 Matthew Wahab <matthew.wahab@arm.com>
13788 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
13789 Jiong Wang <jiong.wang@arm.com>
13790
13791 * config/arm/arm-c.c (arm_cpu_builtins): Use def_or_undef_macro
13792 for __ARM_FP16_FORMAT_IEEE and __ARM_FP16_FORMAT_ALTERNATIVE.
13793 Define __ARM_FP16_ARGS when appropriate.
13794 * config/arm/arm.c (arm_invalid_parameter_type): Remove
13795 declaration.
13796 (arm_invalid_return_type): Likewise.
13797 (TARGET_INVALID_PARAMETER_TYPE): Remove.
13798 (TARGET_INVALID_RETURN_TYPE): Remove.
13799 (aapcs_vfp_sub_candidate): Allow HFmode.
13800 (aapcs_vfp_allocate): Add comment. Support HFmode.
13801 (aapcs_vfp_allocate_return_reg): Likewise.
13802 (struct aapcs_cp_arg_layout): Slightly reword comments for
13803 is_return_candidate and allocate_return_reg.
13804 (output_mov_vfp): Update assert.
13805 (arm_hard_regno_mode_ok): Remove comment, update HF-mode
13806 condition.
13807 (arm_invalid_parameter_type): Remove.
13808 (amr_invalid_return_type): Remove.
13809 * config/arm/arm.h (TARGET_NEON_FP16): Fix definition.
13810 * config/arm/arm.md (*arm32_movhf): Disable for TARGET_VFP.
13811 * config/arm/vfp.md (*movhf_vfp): Enable for TARGET_VFP.
13812
13813 2016-05-16 Matthew Wahab <matthew.wahab@arm.com>
13814
13815 * config/aarch64/aarch64.h (LEGITIMIZE_RELOAD_ADDRESS): Remove.
13816 * config/aarch64/arch64-protos.h
13817 (aarch64_legitimize_reload_address): Remove.
13818 * config/aarch64/aarch64.c (aarch64_legitimize_reload_address):
13819 Remove.
13820
13821 2016-05-16 Eric Botcazou <ebotcazou@adacore.com>
13822
13823 * configure.ac: Add ACX_NONCANONICAL_HOST.
13824 * configure: Regenerate.
13825 * Makefile.in: Set host_noncanonical.
13826
13827 2016-05-14 Uros Bizjak <ubizjak@gmail.com>
13828
13829 PR target/71097
13830 * config/i386/i386.md (*movtf_internal): Before register allocation,
13831 do not allow FP constants for CM_MEDIUM memory model, allow only
13832 standard FP constants for CM_LARGE and CM_LARGE_PIC models.
13833 (*movxf_internal): Ditto.
13834 (*movdf_internal): Ditto.
13835 (*movsf_internal): Ditto.
13836
13837 2016-05-13 Segher Boessenkool <segher@kernel.crashing.org>
13838
13839 PR rtl-optimization/67483
13840 * combine.c (make_compound_operation): Don't call extract_left_shift
13841 with negative shift amounts.
13842
13843 2016-05-13 Jakub Jelinek <jakub@redhat.com>
13844
13845 PR bootstrap/71071
13846 * fold-const.c (fold_checksum_tree): Allow modification
13847 of TYPE_ALIAS_SET during folding.
13848
13849 * config/i386/i386.c (ix86_compute_frame_layout, ix86_expand_prologue,
13850 ix86_expand_split_stack_prologue): Use HOST_WIDE_INT_C macro.
13851 (ix86_split_to_parts): Likewise. Fix up formatting.
13852
13853 2016-05-13 H.J. Lu <hongjiu.lu@intel.com>
13854
13855 * tree-ssa-loop-ivopts.c (create_new_ivs): Cast to
13856 unsigned HOST_WIDE_INT with HOST_WIDE_INT_PRINT_UNSIGNED in
13857 printf format.
13858
13859 2016-05-13 Nathan Sidwell <nathan@acm.org>
13860
13861 * config/nvptx/nvptx.c (nvptx_mangle_decl_assembler_name): New.
13862 (nvptx_name_replacement): Delete.
13863 (write_fn_proto, write_fn_proto_from_insn,
13864 nvptx_output_call_insn): Remove nvptx_name_replacement call.
13865 (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Override.
13866 * langhooks.c (add_builtin_funcction_common): Call
13867 targetm.mangle_decl_assembler_name.
13868
13869 * config/nvptx/nvptx.c (write_fn_proto): Handle
13870 BUILT_IN_ATOMIC_COMPARE_EXCHANGE_n oddity.
13871
13872 2016-05-13 Martin Liska <mliska@suse.cz>
13873
13874 * tree-ssa-loop-ivopts.c (create_new_ivs): Use HOST_WIDE_INT_PRINT_DEC
13875 and PRIu64 in printf format.
13876
13877 2016-05-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13878
13879 * tree-ssa-loop-ivanon.c (try_unroll_loop_completely): Typo fix in
13880 comment.
13881
13882 2016-05-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13883
13884 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely):
13885 Change --param max-completely-peeled-times to
13886 --param max-completely-peel-times in dump file printing.
13887
13888 2016-05-13 Richard Biener <rguenther@suse.de>
13889
13890 PR tree-optimization/42587
13891 * tree-ssa-math-opts.c (perform_symbolic_merge): Handle BIT_FIELD_REF.
13892 (find_bswap_or_nop_1): Likewise.
13893 (bswap_replace): Likewise.
13894
13895 2016-05-13 Martin Liska <mliska@suse.cz>
13896
13897 * tree-vect-patterns.c (vect_recog_mask_conversion_pattern):
13898 Initialize a variable with default value.
13899
13900 2016-05-13 Martin Liska <mliska@suse.cz>
13901
13902 * doc/invoke.texi: Enhance explanation of error recovery
13903 of sanitizers.
13904
13905 2016-05-13 Martin Liska <mliska@suse.cz>
13906
13907 * tree-ssa-loop-ivopts.c (avg_loop_niter): Fix coding style.
13908 (struct cost_pair): Change inv_expr_id (int) to inv_expr
13909 (iv_inv_expr_ent *).
13910 (struct iv_inv_expr_ent): Comment struct fields.
13911 (sort_iv_inv_expr_ent): New function.
13912 (struct ivopts_data): Rename inv_expr_id to max_inv_expr_id.
13913 (struct iv_ca): Replace used_inv_expr and num_used_inv_expr with
13914 a hash_map between iv_inv_expr_ent and number of usages.
13915 (niter_for_exit): Fix coding style.
13916 (tree_ssa_iv_optimize_init): Use renamed variable.
13917 (determine_base_object): Fix coding style.
13918 (alloc_iv): Likewise.
13919 (find_interesting_uses_outside): Likewise.
13920 (add_candidate_1): Likewise.
13921 (add_standard_iv_candidates): Likewise.
13922 (set_group_iv_cost): Replace inv_expr_id with inv_expr.
13923 (prepare_decl_rtl): Fix coding style.
13924 (get_address_cost): Likewise.
13925 (get_shiftadd_cost): Likewise.
13926 (force_expr_to_var_cost): Likewise.
13927 (compare_aff_trees): Likewise.
13928 (get_expr_id): Restructure the function.
13929 (get_loop_invariant_expr_id): Renamed to
13930 get_loop_invariant_expr.
13931 (get_computation_cost_at): Replace usage of inv_expr_id with
13932 inv_expr.
13933 (get_computation_cost): Likewise.
13934 (determine_group_iv_cost_generic): Likewise.
13935 (determine_group_iv_cost_address): Likewise.
13936 (iv_period): Fix coding style.
13937 (iv_elimination_compare_lt): Likewise.
13938 (may_eliminate_iv): Likewise.
13939 (determine_group_iv_cost_cond): Replace usage of inv_expr_id with
13940 inv_expr.
13941 (determine_group_iv_costs): Dump invariant expressions.
13942 (iv_ca_recount_cost): Use the newly added hash_map.
13943 (iv_ca_set_remove_invariants): Fix coding style.
13944 (iv_ca_set_add_invariants): Fix coding style.
13945 (iv_ca_set_no_cp): Utilize the newly added hash_map for used
13946 invariants.
13947 (iv_ca_set_cp): Likewise.
13948 (iv_ca_new): Initialize the newly added hash_map and remove
13949 initialization of fields.
13950 (iv_ca_free): Delete the hash_map.
13951 (iv_ca_dump): Dump invariant expressions.
13952 (iv_ca_extend): Fix coding style.
13953 (try_add_cand_for): Likewise.
13954 (create_new_ivs): Dump information about # of avg iterations and
13955 # of used invariant expressions.
13956 (rewrite_use_compare): Fix coding style.
13957 (free_loop_data): Set default value for max_inv_expr_id.
13958
13959 2016-05-13 Ilya Enkovich <ilya.enkovich@intel.com>
13960
13961 * cse.c (rest_of_handle_cse): Use cleanup_cfg
13962 returned value cse_cfg_altered computation.
13963 (rest_of_handle_cse2): Likewise.
13964 (rest_of_handle_cse_after_global_opts): Likewise.
13965
13966 2016-05-13 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
13967
13968 PR target/53440
13969 * config/arm/arm.c (arm32_output_mi_thunk): New.
13970 (arm_output_mi_thunk): Rename to arm_thumb1_mi_thunk. Rework
13971 to split Thumb1 vs TARGET_32BIT functionality.
13972 (arm_thumb1_mi_thunk): New.
13973
13974 2016-05-13 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
13975
13976 * config/aarch64/aarch64.c (TARGET_OMIT_STRUCT_RETURN_REG): Set
13977 to true.
13978
13979 2016-05-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13980
13981 PR target/71080
13982 * config/i386/i386.c (ix86_in_large_data_p): Guard against NULL exp.
13983
13984 2016-05-13 Eric Botcazou <ebotcazou@adacore.com>
13985
13986 * builtins.c (expand_builtin_memcmp): Do not emit the call here.
13987 (expand_builtin_trap): Emit a regular call.
13988 (set_builtin_user_assembler_name): Remove obsolete cases.
13989 * dse.c (scan_insn): Adjust.
13990 * except.c: Include calls.h.
13991 (sjlj_emit_function_enter): If DONT_USE_BUILTIN_SETJMP is defined,
13992 emit a regular call to setjmp.
13993 * expr.c (emit_block_move_hints): Call emit_block_copy_via_libcall.
13994 (block_move_libcall_safe_for_call_parm): Use memcpy builtin.
13995 (emit_block_move_via_libcall): Delete.
13996 (block_move_fn): Delete.
13997 (init_block_move_fn): Likewise.
13998 (emit_block_move_libcall_fn): Likewise.
13999 (emit_block_op_via_libcall): New function.
14000 (set_storage_via_libcall): Tidy up and use memset builtin.
14001 (block_clear_fn): Delete.
14002 (init_block_clear_fn): Likewise.
14003 (clear_storage_libcall_fn): Likewise.
14004 (expand_assignment): Call emit_block_move_via_libcall.
14005 Do not include gt-expr.h.
14006 * expr.h (emit_block_op_via_libcall): Declare.
14007 (emit_block_copy_via_libcall): New inline function.
14008 (emit_block_move_via_libcall): Likewise.
14009 (emit_block_comp_via_libcall): Likewise.
14010 (block_clear_fn): Delete.
14011 (init_block_move_fn): Likewise.
14012 (init_block_clear_fn): Likewise.
14013 (emit_block_move_via_libcall): Likewise.
14014 (set_storage_via_libcall): Add default parameter value.
14015 * libfuncs.h (enum libfunc_index): Remove obsolete values.
14016 (abort_libfunc): Delete.
14017 (memcpy_libfunc): Likewise.
14018 (memmove_libfunc): Likewise.
14019 (memcmp_libfunc): Likewise.
14020 (memset_libfunc): Likewise.
14021 (setbits_libfunc): Likewise.
14022 (setjmp_libfunc): Likewise.
14023 (longjmp_libfunc): Likewise.
14024 (profile_function_entry_libfunc): Likewise.
14025 (profile_function_exit_libfunc): Likewise.
14026 (gcov_flush_libfunc): Likewise.
14027 * optabs-libfuncs.c (build_libfunc_function): Set DECL_ARTIFICIAL
14028 and DECL_VISIBILITY on the declaration.
14029 (init_optabs): Do not initialize obsolete libfuncs.
14030 * optabs.c (prepare_cmp_insn): Call emit_block_comp_via_libcall.
14031 * tree-core.h (ECF_RET1): Define.
14032 (ECF_TM_PURE): Adjust.
14033 (ECF_TM_BUILTIN): Likewise.
14034 * tree.c (set_call_expr_flags): Deal with ECF_RET1.
14035 (build_common_builtin_nodes): Initialize abort builtin.
14036 Add ECF_RET1 on memcpy, memmove and memset builtins.
14037 Pass final flags for alloca and alloca_with_align builtins.
14038 * config/alpha/alpha.c (alpha_init_libfuncs): Do not initialize
14039 obsolete builtins.
14040 * config/ia64/ia64.c (ia64_vms_init_libfuncs): Likewise.
14041 * config/i386/i386.c (ix86_expand_set_or_movmem): Adjust call to
14042 set_storage_via_libcall and call emit_block_copy_via_libcall.
14043
14044 2016-05-12 Uros Bizjak <ubizjak@gmail.com>
14045
14046 * config/i386/i386.md (*call_got_x32): Change operand 0 to
14047 DImode before it is passed to ix86_output_call_operand.
14048 (*call_value_got_x32): Ditto for operand 1.
14049
14050 2016-05-12 Jiong Wang <jiong.wang@arm.com>
14051
14052 PR rtl-optimization/70904
14053 * lra-constraint.c (process_addr_reg): Relax the restriction on subreg
14054 reload for wide mode.
14055
14056 2016-05-12 Marek Polacek <polacek@redhat.com>
14057
14058 PR c/70756
14059 * langhooks-def.h (lhd_incomplete_type_error): Adjust declaration.
14060 * langhooks.c (lhd_incomplete_type_error): Add location parameter.
14061 * langhooks.h (incomplete_type_error): Likewise.
14062 * tree.c (size_in_bytes_loc): Renamed from size_in_bytes. Add location
14063 parameter, pass it down to incomplete_type_error.
14064 * tree.h (size_in_bytes): New inline overload.
14065 (size_in_bytes_loc): Renamed from size_in_bytes.
14066
14067 2016-05-12 Richard Biener <rguenther@suse.de>
14068
14069 PR tree-optimization/71059
14070 * tree-ssa-pre.c (phi_translate_1): Fully fold translated
14071 nary before looking up or entering the expression into the VN
14072 hashes.
14073 * tree-ssa-sccvn.c (vn_nary_build_or_lookup): Fix comment typo.
14074 Make sure to re-use NARYs without result as inserted by
14075 phi-translation.
14076
14077 2016-05-12 Richard Biener <rguenther@suse.de>
14078
14079 PR tree-optimization/71062
14080 * tree-ssa-alias.h (struct pt_solution): Add vars_contains_restrict
14081 field.
14082 * tree-ssa-structalias.c (set_uids_in_ptset): Set
14083 vars_contains_restrict if the var is a restrict tag.
14084 * tree-ssa-alias.c (ptrs_compare_unequal): If vars_contains_restrict
14085 do not disambiguate pointers against it.
14086 (dump_points_to_solution): Re-structure and adjust for new
14087 vars_contains_restrict flag.
14088 * gimple-pretty-print.c (pp_points_to_solution): Likewise.
14089
14090 2016-05-12 Martin Liska <mliska@suse.cz>
14091
14092 * doc/invoke.texi: Explain connection between
14093 -fsanitize-recover=address and ASAN_OPTIONS="halt_on_error=1".
14094
14095 2016-05-12 Ilya Enkovich <ilya.enkovich@intel.com>
14096
14097 PR tree-optimization/71006
14098 * tree-vect-loop.c (vect_determine_vectorization_factor): Don't
14099 consider COND_EXPR as a mask producer.
14100
14101 2016-05-12 Marek Polacek <polacek@redhat.com>
14102
14103 PR driver/71063
14104 * opts.c (common_handle_option): Detect missing argument for --help^.
14105
14106 2016-05-12 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14107
14108 PR target/70830
14109 * config/arm/arm.c (arm_output_multireg_pop): Avoid POP instruction
14110 when popping the PC and within an interrupt handler routine.
14111 Add missing tab to output of "ldmfd".
14112 (output_return_instruction): Output LDMFD with SP update rather
14113 than POP when returning from interrupt handler.
14114
14115 2016-05-12 Jakub Jelinek <jakub@redhat.com>
14116
14117 * config/i386/i386.md (isa): Add x64_avx512dq, enable if
14118 TARGET_64BIT && TARGET_AVX512DQ.
14119 * config/i386/sse.md (*vec_extract<mode>): Add avx512bw alternatives.
14120 (*vec_extract<PEXTR_MODE12:mode>_zext): Add avx512bw alternative.
14121 (*vec_extract<ssevecmodelower>_0, *vec_extractv4si_0_zext,
14122 *vec_extractv2di_0_sse): Use v constraint instead of x constraint.
14123 (*vec_extractv4si): Add avx512dq and avx512bw alternatives.
14124 (*vec_extractv4si_zext): Add avx512dq alternative.
14125 (*vec_extractv2di_1): Add x64_avx512dq and avx512bw alternatives,
14126 use v instead of x constraint in other alternatives where possible.
14127
14128 * config/i386/sse.md (sse2_loadld): Use v instead of x
14129 constraint in alternatives 0,1,4.
14130
14131 * config/i386/sse.md (pinsr_evex_isa): New mode attr.
14132 (<sse2p4_1>_pinsr<ssemodesuffix>): Add 2 alternatives with
14133 v constraints instead of x and <pinsr_evex_isa> isa attribute.
14134
14135 PR target/71019
14136 * config/i386/sse.md (<sse2_avx2>_packssdw<mask_name>,
14137 <sse4_1_avx2>_packusdw<mask_name>): Make sure EVEX encoded insn
14138 is not emitted unless TARGET_AVX512BW.
14139 (<sse2_avx2>_packuswb<mask_name>, <sse2_avx2>_packsswb<mask_name>):
14140 Likewise. For TARGET_AVX512BW, use "=v" constraint instead of "=x"
14141 for the result operand.
14142
14143 * config/i386/sse.md (*vec_setv4sf_sse4_1, sse4_1_insertps): Use v
14144 constraint instead of x in avx alternatives. Use maybe_evex instead
14145 of vex prefix.
14146
14147 * config/i386/constraints.md (Yv): New constraint.
14148 * config/i386/i386.h (VALID_AVX512VL_128_REG_MODE): Allow
14149 TFmode and V1TImode in xmm16+ registers for TARGET_AVX512VL.
14150 * config/i386/i386.md (avx512fvecmode): New mode attr.
14151 (*pushtf): Use v constraint instead of x.
14152 (*movtf_internal): Likewise. For TARGET_AVX512VL and
14153 xmm16+ registers, use vmovdqu64 or vmovdqa64 instructions.
14154 (*absneg<mode>2): Use Yv constraint instead of x constraint.
14155 (*absnegtf2_sse): Likewise.
14156 (copysign<mode>3_const, copysign<mode>3_var): Likewise.
14157 * config/i386/sse.md (*andnot<mode>3): Add avx512vl and
14158 avx512f alternatives.
14159 (*andnottf3, *<code><mode>3, *<code>tf3): Likewise.
14160
14161 2016-05-12 Richard Biener <rguenther@suse.de>
14162
14163 PR tree-optimization/71060
14164 * tree-data-ref.c (initialize_data_dependence_relation): Do not
14165 require exact match of DR_BASE_OBJECT but only matching address and
14166 type.
14167
14168 2016-05-12 Richard Biener <rguenther@suse.de>
14169
14170 PR tree-optimization/70986
14171 * cfganal.c: Include cfgloop.h.
14172 (dfs_find_deadend): Prefer to take edges exiting loops.
14173
14174 2016-05-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
14175
14176 * gcc.target/powerpc/pr70963.c: Require at least power8 at both
14177 compile and run time.
14178
14179 2016-05-11 Mikhail Maltsev <maltsevm@gmail.com>
14180
14181 PR c/43651
14182 * doc/invoke.texi (Wduplicate-decl-specifier): Document new option.
14183
14184 2016-05-11 Uros Bizjak <ubizjak@gmail.com>
14185
14186 * config/i386/i386.c (legitimize_pic_address): Use
14187 copy_to_suggested_reg instead of gen_movsi.
14188
14189 2016-05-11 Michael Meissner <meissner@linux.vnet.ibm.com>
14190
14191 * config/rs6000/predicates.md (quad_memory_operand): Move most of
14192 the code into quad_address_p and call it to share code with
14193 vsx_quad_dform_memory_operand.
14194 (vsx_quad_dform_memory_operand): New predicate for ISA 3.0 vector
14195 d-form support.
14196 * config/rs6000/rs6000.opt (-mlra): Switch to being an option mask
14197 bit instead of being a separate word. Split -mpower9-dform into
14198 two switches, -mpower9-dform-scalar and -mpower9-dform-vector.
14199 * config/rs6000/rs6000.c (RELOAD_REG_QUAD_OFFSET): New addr_mask
14200 for the register class supporting 128-bit quad word memory offsets.
14201 (mode_supports_vsx_dform_quad): Helper function to return if the
14202 register class uses quad word memory offsets.
14203 (rs6000_debug_addr_mask): Add support for quad word memory offsets.
14204 (rs6000_debug_reg_global): Always print if we are using LRA or not.
14205 (rs6000_setup_reg_addr_masks): If ISA 3.0 vector d-form
14206 instructions are enabled, set up the appropriate addr_masks for
14207 128-bit types.
14208 (rs6000_init_hard_regno_mode_ok): wb constraint is now based on
14209 -mpower9-dform-scalar, instead of -mpower9-dform.
14210 (rs6000_option_override_internal): Split -mpower9-dform into two
14211 switches, -mpower9-dform-scalar and -mpower9-dform-vector. The
14212 -mpower9-dform switch sets or clears both. If we are not using
14213 the LRA register allocator, do not enable -mpower9-dform-vector by
14214 default. If we are using LRA, enable -mpower9-dform-vector and
14215 -mvsx-timode if it is appropriate. Issue a warning if either
14216 -mpower9-dform-vector or -mvsx-timode are explicitly used without
14217 enabling LRA.
14218 (quad_address_offset_p): New helper function to return if the
14219 offset is legal for quad word memory instructions.
14220 (quad_address_p): New function to determin if GPR or vector
14221 register quad word memory addresses are legal.
14222 (mem_operand_gpr): Validate quad word address offsets.
14223 (reg_offset_addressing_ok_p): Add support for ISA 3.0 vector
14224 d-form (register + offset) instructions.
14225 (offsettable_ok_by_alignment): Likewise.
14226 (rs6000_legitimate_offset_address_p): Likewise.
14227 (legitimate_lo_sum_address_p): Likewise.
14228 (rs6000_legitimize_address): Likewise.
14229 (rs6000_legitimize_reload_address): Add more debug statements for
14230 -mdebug=addr.
14231 (rs6000_legitimate_address_p): Add support for ISA 3.0 vector
14232 d-form instructions.
14233 (rs6000_secondary_reload_memory): Add support for ISA 3.0 vector
14234 d-form instructions. Distinguish different cases in debug
14235 output. (rs6000_secondary_reload_inner): Add support for ISA 3.0 vector
14236 d-form instructions.
14237 (rs6000_preferred_reload_class): Likewise.
14238 (rs6000_output_move_128bit): Add support for ISA 3.0 d-form
14239 instructions. If ISA 3.0 is available, generate lxvx/stxvx instead
14240 of the ISA 2.06 indexed memory instructions.
14241 (rs6000_emit_prologue): If we have ISA 3.0 d-form instructions,
14242 use them to save/restore the saved vector registers instead of
14243 using Altivec instructions.
14244 (rs6000_emit_epilogue): Likewise.
14245 (rs6000_lra_p): Use TARGET_LRA instead of the old option word.
14246 (rs6000_opt_masks): Split -mpower9-dform into
14247 -mpower9-dform-scalar and -mpower9-dform-vector.
14248 (rs6000_print_options_internal): Print -mno-<switch> if <switch>
14249 was not selected.
14250 * config/rs6000/vsx.md (p9_vecload_<mode>): Delete hack to emit
14251 ISA 3.0 vector indexed memory instructions, and fold the code into
14252 the normal mov<mode> patterns.
14253 (p9_vecstore_<mode>): Likewise.
14254 (vsx_mov<mode>): Add support for ISA 3.0 vector d-form
14255 instructions.
14256 (vsx_movti_64bit): Likewise.
14257 (vsx_movti_32bit): Likewise.
14258 * config/rs6000/constraints.md (wO constraint): New constraint for
14259 ISA 3.0 vector d-form support.
14260 * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Use
14261 -mpower9-dform-scalar instead of -mpower9-dform. Add note not to
14262 include -mpower9-dform-vector until we switch over to LRA.
14263 (POWERPC_MASKS): Add -mlra. Split -mpower9-dform into two.
14264 switches, -mpower9-dform-scalar and -mpower9-dform-vector.
14265 * config/rs6000/rs6000-protos.h (quad_address_p): Add declaration.
14266 * doc/invoke.texi (RS/6000 and PowerPC Options): Add documentation
14267 for -mpower9-dform and -mlra.
14268 * doc/md.texi (wO constraint): Document wO constraint.
14269
14270 2016-05-11 Alexander Monakov <amonakov@ispras.ru>
14271
14272 * genattr.c (main): Change 'rtx' to 'rtx_insn *' in prototypes of
14273 'insn_latency', 'maximal_insn_latency', 'min_insn_conflict_delay'.
14274 * genautomata.c (output_internal_insn_code_evaluation): Simplify.
14275 Move handling of non-insn arguments inline into the sole user:
14276 (output_trans_func): ...here.
14277 (output_min_insn_conflict_delay_func): Change 'rtx' to 'rtx_insn *'
14278 in emitted function prototype.
14279 (output_internal_insn_latency_func): Ditto. Simplify.
14280 (output_internal_maximal_insn_latency_func): Ditto. Delete
14281 always-unused argument.
14282 (output_insn_latency_func): Ditto.
14283 (output_maximal_insn_latency_func): Ditto.
14284
14285 2016-05-11 Richard Biener <rguenther@suse.de>
14286
14287 PR tree-optimization/71055
14288 * tree-ssa-sccvn.c (vn_reference_lookup_3): When native-interpreting
14289 sth with precision not equal to access size verify we don't chop
14290 off bits.
14291
14292 2016-05-11 Richard Biener <rguenther@suse.de>
14293
14294 PR debug/71057
14295 * dwarf2out.c (retry_incomplete_types): Set early_dwarf.
14296 (dwarf2out_finish): Move retry_incomplete_types call ...
14297 (dwarf2out_early_finish): ... here.
14298
14299 2016-05-11 Richard Biener <rguenther@suse.de>
14300
14301 PR middle-end/71002
14302 * alias.c (reference_alias_ptr_type): Preserve alias-set zero
14303 if the langhook insists on it.
14304 * fold-const.c (make_bit_field_ref): Add arg for the original
14305 reference and preserve its alias-set.
14306 (decode_field_reference): Take exp by reference and adjust it
14307 to the original memory reference.
14308 (optimize_bit_field_compare): Adjust callers.
14309 (fold_truth_andor_1): Likewise.
14310 * gimplify.c (gimplify_expr): Adjust in-SSA form test.
14311
14312 2016-05-11 Ilya Enkovich <ilya.enkovich@intel.com>
14313
14314 PR middle-end/70807
14315 * cfgrtl.h (delete_insn_and_edges): Now return bool.
14316 * cfgrtl.c (delete_insn_and_edges): Likewise.
14317 * config/i386/i386.c (convert_scalars_to_vector): Remove
14318 redundant code.
14319 * cse.c (cse_insn): Compute cse_cfg_altered.
14320 (delete_trivially_dead_insns): Likewise.
14321 (cse_cc_succs): Likewise.
14322 (rest_of_handle_cse): Free dominance info if required.
14323 (rest_of_handle_cse2): Likewise.
14324 (rest_of_handle_cse_after_global_opts): Likewise.
14325
14326 2016-05-11 Alan Modra <amodra@gmail.com>
14327
14328 * config/rs6000/rs6000.c (is_complex_IBM_long_double,
14329 abi_v4_pass_in_fpr): New functions.
14330 (rs6000_function_arg_boundary): Exclude complex IBM long double
14331 from 64-bit alignment when ABI_V4.
14332 (rs6000_function_arg, rs6000_function_arg_advance_1,
14333 rs6000_gimplify_va_arg): Use abi_v4_pass_in_fpr.
14334
14335 2016-05-10 Segher Boessenkool <segher@kernel.crashing.org>
14336
14337 PR rtl-optimization/71028
14338 * cfgcleanup.c (try_optimize_cfg): Do not flip a conditional
14339 jump with just a return in the fallthrough block if the branch
14340 block contains just a return as well.
14341
14342 2016-05-10 Marc Glisse <marc.glisse@inria.fr>
14343
14344 * fold-const.c (fold_binary_loc) [(X ^ Y) & Y]: Remove and merge with...
14345 * match.pd ((X & Y) ^ Y): ... this.
14346 ((X & Y) & Y, (X | Y) | Y, (X ^ Y) ^ Y, (X & Y) & (X & Z), (X | Y)
14347 | (X | Z), (X ^ Y) ^ (X ^ Z)): New transformations.
14348
14349 2016-05-10 David Malcolm <dmalcolm@redhat.com>
14350
14351 * read-md.c (require_char_ws): New function.
14352 (read_string): Simplify using require_char_ws.
14353 (handle_constants): Likewise.
14354 (handle_enum): Likewise.
14355 (handle_file): Likewise.
14356 * read-md.h (require_char_ws): New declaration.
14357 * read-rtl.c (read_conditions): Simplify using require_char_ws.
14358 (read_mapping): Likewise.
14359 (read_rtx_code): Likewise.
14360 (read_nested_rtx): Likewise.
14361
14362 2016-05-10 James Norris <jnorris@codesourcery.com>
14363
14364 * config/rs6000/sysv4.h (CRTOFFLOADBEGIN): Define. Add crtoffloadbegin.o
14365 if offloading is enabled and -fopenacc or -fopenmp is specified.
14366 (CRTOFFLOADEND): Likewise.
14367 (STARTFILE_LINUX_SPEC): Add CRTOFFLOADBEGIN.
14368 (ENDFILE_LINUX_SPEC): Add CRTOFFLOADEND.
14369
14370 2016-05-10 Uros Bizjak <ubizjak@gmail.com>
14371
14372 * config/i386/i386.c (legitimize_pic_address): Merge 64-bit and 32-bit
14373 gotoff_operand code paths. Use copy_to_suggested_regs and
14374 expand_simple_binop where appropriate. Cleanup.
14375
14376 2016-05-10 Ilya Enkovich <ilya.enkovich@intel.com>
14377
14378 PR target/70799
14379 * config/i386/i386.c (dimode_scalar_to_vector_candidate_p): Allow
14380 integer constants.
14381 (dimode_scalar_chain::vector_const_cost): New.
14382 (dimode_scalar_chain::compute_convert_gain): Handle constants.
14383 (dimode_scalar_chain::convert_op): Likewise.
14384 (dimode_scalar_chain::convert_insn): Likewise.
14385
14386 2016-05-10 Pierre-Marie de Rodat <derodat@adacore.com>
14387
14388 * dwarf2out.c (resolve_args_picking_1): Consider DW_OP_neg as an
14389 unary operation, not a binary one.
14390
14391 2016-05-10 Ilya Enkovich <ilya.enkovich@intel.com>
14392
14393 PR middle-end/70877
14394 * tree-chkp.c (chkp_add_bounds_to_call_stmt): Handle
14395 calls with type casted fndecl.
14396
14397 2016-05-10 Ilya Enkovich <ilya.enkovich@intel.com>
14398
14399 PR tree-optimization/70786
14400 * tree-chkp.c (chkp_find_bounds_1): Support WITH_SIZE_EXPR.
14401 * calls.c (initialize_argument_information): Bind bounds
14402 with corresponding args passed by reference.
14403
14404 2016-05-10 Jakub Jelinek <jakub@redhat.com>
14405
14406 PR target/70927
14407 * config/i386/sse.md (<sse>_andnot<mode>3<mask_name>),
14408 *<code><mode>3<mask_name>): For !TARGET_AVX512DQ and EVEX encoding,
14409 use vp*[dq] instead of v*p[sd] instructions and adjust mode attribute
14410 accordingly.
14411
14412 2016-05-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
14413
14414 PR target/70963
14415 * config/rs6000/vsx.md (vsx_xvcvdpsxds_scale): Generate correct
14416 code for a zero scale factor.
14417 (vsx_xvcvdpuxds_scale): Likewise.
14418
14419 2016-05-10 David Malcolm <dmalcolm@redhat.com>
14420
14421 * diagnostic-show-locus.c (layout::layout): Call show_ruler
14422 if show_ruler_p was set on the context.
14423 (layout::show_ruler): New method.
14424 * diagnostic.h (struct diagnostic_context): Add field
14425 "show_ruler_p".
14426
14427 2016-05-10 Richard Biener <rguenther@suse.de>
14428
14429 PR tree-optimization/71039
14430 * tree-ssa-phiprop.c: Include tree-ssa-loop.h.
14431 (chk_uses): New function.
14432 (propagate_with_phi): Verify we can safely replicate the lhs of an
14433 aggregate assignment on all incoming edges.
14434
14435 2016-05-10 Oleg Endo <olegendo@gcc.gnu.org>
14436
14437 * config/rx/rx-protos.h (is_interrupt_func, is_fast_interrupt_func):
14438 Forward declare.
14439 (rx_atomic_sequence): New class.
14440 * config/rx/rx.c (rx_print_operand): Use symbolic names for PSW bits.
14441 (is_interrupt_func, is_fast_interrupt_func): Make non-static and
14442 non-inline.
14443 (rx_atomic_sequence::rx_atomic_sequence,
14444 rx_atomic_sequence::~rx_atomic_sequence): New functions.
14445 * config/rx/rx.md (CTRLREG_PSW, CTRLREG_USP, CTRLREG_FPSW, CTRLREG_CPEN,
14446 CTRLREG_BPSW, CTRLREG_BPC, CTRLREG_ISP, CTRLREG_FINTV,
14447 CTRLREG_INTB): New constants.
14448 (FETCHOP): New code iterator.
14449 (fethcop_name, fetchop_name2): New iterator code attributes.
14450 (QIHI): New mode iterator.
14451 (atomic_exchange<mode>, atomic_exchangesi, xchg_mem<mode>,
14452 atomic_fetch_<fetchop_name>si, atomic_fetch_nandsi,
14453 atomic_<fetchop_name>_fetchsi, atomic_nand_fetchsi): New patterns.
14454
14455 2016-05-10 Martin Liska <mliska@suse.cz>
14456
14457 * tree-inline.c (remap_dependence_clique): Do not remap
14458 debugging statements.
14459
14460 2016-05-10 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
14461
14462 * config/s390/s390.md ("*vec_cmp<insn_cmp>df_cconly")
14463 ("*fixuns_truncdfdi2_z13")
14464 ("*fixuns_trunc<FP:mode><GPR:mode>2_z196")
14465 ("*fix_truncdfdi2_bfp_z13", "*floatunsdidf2_z13")
14466 ("*extendsfdf2_z13"): Replace TARGET_Z13 with TARGET_VX.
14467
14468 2016-05-10 Richard Biener <rguenther@suse.de>
14469
14470 PR tree-optimization/70497
14471 PR tree-optimization/28367
14472 * tree-ssa-sccvn.c (vn_nary_build_or_lookup): New function
14473 split out from ...
14474 (visit_reference_op_load): ... here.
14475 (vn_reference_lookup_3): Use it to handle subreg-like accesses
14476 with simplified BIT_FIELD_REFs.
14477 * tree-ssa-pre.c (eliminate_insert): Handle inserting BIT_FIELD_REFs.
14478 * tree-complex.c (extract_component): Handle BIT_FIELD_REFs
14479 correctly.
14480
14481 2016-05-10 Pierre-Marie de Rodat <derodat@adacore.com>
14482
14483 * dwarf2out.c (add_abstract_origin_attribute): Adjust
14484 documentation comment. For BLOCK nodes, add a
14485 DW_AT_abstract_origin attribute that points to the DIE generated
14486 for the origin BLOCK.
14487 (gen_lexical_block_die): Call add_abstract_origin_attribute for
14488 blocks from inlined functions.
14489
14490 2016-05-10 Alan Modra <amodra@gmail.com>
14491
14492 PR target/70947
14493 * config/rs6000/rs6000.c (rs6000_expand_split_stack_prologue): Stop
14494 regrename modifying insns saving lr before __morestack call.
14495 * config/rs6000/rs6000.md (split_stack_return): Similarly for
14496 insns restoring lr after __morestack call.
14497
14498 2016-05-09 Jakub Jelinek <jakub@redhat.com>
14499
14500 * config/i386/i386.md (set_got, set_got_labelled, lwp_llwpcb,
14501 lwp_lwpval<mode>3, lwp_lwpins<mode>3): Remove constraints from
14502 expanders.
14503 * config/i386/sse.md (vec_interleave_high<mode>,
14504 vec_interleave_low<mode>, <avx512>_vpermi2var<mode>3_maskz,
14505 <avx512>_vpermt2var<mode>3_maskz): Likewise.
14506
14507 2016-05-04 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
14508
14509 * config/rs6000/rs6000.c (rs6000_reassociation_width): Add
14510 function for TARGET_SCHED_REASSOCIATION_WIDTH to enable
14511 parallel reassociation for power8 and forward.
14512
14513 2016-05-09 Uros Bizjak <ubizjak@gmail.com>
14514
14515 * config/i386/i386.md (absneg splitters with general regs): Use
14516 general_reg_operand predicate.
14517 (btsq peephole2): Use x86_64_immediate_operand to check if new
14518 value is suitable for immediate operand. Generate emitted insn
14519 using RTL expressions.
14520 (btcq peephole2): Ditto.
14521 (btrq peephole2): Ditto. Generate correct immediate operand
14522 for AND masking.
14523
14524 2016-05-09 Richard Sandiford <richard.sandiford@arm.com>
14525
14526 * cfgexpand.c (expand_debug_expr): Fix address offset for negative
14527 bitpos.
14528
14529 2016-05-09 Richard Sandiford <richard.sandiford@arm.com>
14530
14531 * tree-affine.c (wide_int_constant_multiple_p): Add missing
14532 pointer dereference.
14533
14534 2016-05-09 Richard Biener <rguenther@suse.de>
14535
14536 PR tree-optimization/70985
14537 * match.pd (BIT_FIELD_REF -> (type)): Disable on GIMPLE when
14538 op0 isn't a gimple register.
14539
14540 2016-05-09 Prachi Godbole <prachi.godbole@imgtec.com>
14541
14542 * config/mips/i6400.md (i6400_fpu_intadd, i6400_fpu_logic)
14543 (i6400_fpu_div, i6400_fpu_cmp, i6400_fpu_float, i6400_fpu_store)
14544 (i6400_fpu_long_pipe, i6400_fpu_logic_l, i6400_fpu_float_l)
14545 (i6400_fpu_mult): New cpu units.
14546 (i6400_msa_add_d, i6400_msa_int_add, i6400_msa_short_logic3)
14547 (i6400_msa_short_logic2, i6400_msa_short_logic, i6400_msa_move)
14548 (i6400_msa_cmp, i6400_msa_short_float2, i6400_msa_div_d)
14549 (i6400_msa_div_w, i6400_msa_div_h, i6400_msa_div_b)
14550 (i6400_msa_copy, i6400_msa_branch, i6400_fpu_msa_store)
14551 (i6400_fpu_msa_load, i6400_fpu_msa_move, i6400_msa_long_logic1)
14552 (i6400_msa_long_logic2, i6400_msa_mult, i6400_msa_long_float2)
14553 (i6400_msa_long_float4, i6400_msa_long_float5)
14554 (i6400_msa_long_float8, i6400_msa_fdiv_df)
14555 (i6400_msa_fdiv_sf): New reservations.
14556 * config/mips/p5600.md (p5600_fpu_intadd, p5600_fpu_cmp)
14557 (p5600_fpu_float, p5600_fpu_logic_a, p5600_fpu_logic_b)
14558 (p5600_fpu_div, p5600_fpu_logic, p5600_fpu_float_a)
14559 (p5600_fpu_float_b, p5600_fpu_float_c, p5600_fpu_float_d)
14560 (p5600_fpu_mult, p5600_fpu_fdiv, p5600_fpu_load): New cpu units.
14561 (msa_short_int_add, msa_short_logic, msa_short_logic_move_v)
14562 (msa_short_cmp, msa_short_float2, msa_short_logic3)
14563 (msa_short_store4, msa_long_load, msa_short_store)
14564 (msa_long_logic, msa_long_float2, msa_long_float4)
14565 (msa_long_float5, msa_long_float8, msa_long_mult)
14566 (msa_long_fdiv, msa_long_div): New reservations.
14567
14568 2016-05-09 Robert Suchanek <robert.suchanek@imgtec.com>
14569 Sameera Deshpande <sameera.deshpande@imgtec.com>
14570 Matthew Fortune <matthew.fortune@imgtec.com>
14571 Graham Stott <graham.stott@imgtec.com>
14572 Chao-ying Fu <chao-ying.fu@imgtec.com>
14573
14574 * config.gcc: Add MSA header file for mips*-*-* target.
14575 * config/mips/constraints.md (YI, YC, YZ, Unv5, Uuv5, Usv5, Uuv6)
14576 (Ubv8i, Urv8): New constraints.
14577 * config/mips/mips-ftypes.def: Add function types for MSA
14578 builtins.
14579 * config/mips/mips-modes.def (V16QI, V8HI, V4SI, V2DI, V4SF)
14580 (V2DF, V32QI, V16HI, V8SI, V4DI, V8SF, V4DF): New modes.
14581 * config/mips/mips-msa.md: New file.
14582 * config/mips/mips-protos.h
14583 (mips_split_128bit_const_insns): New prototype.
14584 (mips_msa_idiv_insns): Likewise.
14585 (mips_split_128bit_move): Likewise.
14586 (mips_split_128bit_move_p): Likewise.
14587 (mips_split_msa_copy_d): Likewise.
14588 (mips_split_msa_insert_d): Likewise.
14589 (mips_split_msa_fill_d): Likewise.
14590 (mips_expand_msa_branch): Likewise.
14591 (mips_const_vector_same_val_p): Likewise.
14592 (mips_const_vector_same_bytes_p): Likewise.
14593 (mips_const_vector_same_int_p): Likewise.
14594 (mips_const_vector_shuffle_set_p): Likewise.
14595 (mips_const_vector_bitimm_set_p): Likewise.
14596 (mips_const_vector_bitimm_clr_p): Likewise.
14597 (mips_msa_vec_parallel_const_half): Likewise.
14598 (mips_msa_output_division): Likewise.
14599 (mips_ldst_scaled_shift): Likewise.
14600 (mips_expand_vec_cond_expr): Likewise.
14601 * config/mips/mips.c (enum mips_builtin_type): Add
14602 MIPS_BUILTIN_MSA_TEST_BRANCH.
14603 (mips_gen_const_int_vector_shuffle): New prototype.
14604 (mips_const_vector_bitimm_set_p): New function.
14605 (mips_const_vector_bitimm_clr_p): Likewise.
14606 (mips_const_vector_same_val_p): Likewise.
14607 (mips_const_vector_same_bytes_p): Likewise.
14608 (mips_const_vector_same_int_p): Likewise.
14609 (mips_const_vector_shuffle_set_p): Likewise.
14610 (mips_symbol_insns): Forbid loading symbols via immediate for
14611 MSA.
14612 (mips_valid_offset_p): Limit offset to 10-bit for MSA loads and
14613 stores.
14614 (mips_valid_lo_sum_p): Forbid loadings symbols via %lo(base) for
14615 MSA.
14616 (mips_lx_address_p): Add support load indexed address for MSA.
14617 (mips_address_insns): Add calculation of instructions needed for
14618 stores and loads for MSA.
14619 (mips_const_insns): Move CONST_DOUBLE below CONST_VECTOR. Handle
14620 CONST_VECTOR for MSA and let it fall through.
14621 (mips_ldst_scaled_shift): New function.
14622 (mips_subword_at_byte): Likewise.
14623 (mips_msa_idiv_insns): Likewise.
14624 (mips_legitimize_move): Validate MSA moves.
14625 (mips_rtx_costs): Add UNGE, UNGT, UNLE, UNLT cases. Add
14626 calculation of costs for MSA division.
14627 (mips_split_move_p): Check if MSA moves need splitting.
14628 (mips_split_move): Split MSA moves if necessary.
14629 (mips_split_128bit_move_p): New function.
14630 (mips_split_128bit_move): Likewise.
14631 (mips_split_msa_copy_d): Likewise.
14632 (mips_split_msa_insert_d): Likewise.
14633 (mips_split_msa_fill_d): Likewise.
14634 (mips_output_move): Handle MSA moves.
14635 (mips_expand_msa_branch): New function.
14636 (mips_print_operand): Add 'E', 'B', 'w', 'v' and 'V' modifiers.
14637 Reinstate 'y' modifier.
14638 (mips_file_start): Add MSA .gnu_attribute.
14639 (mips_hard_regno_mode_ok_p): Allow TImode and 128-bit vectors in
14640 FPRs.
14641 (mips_hard_regno_nregs): Always return 1 for MSA supported mode.
14642 (mips_class_max_nregs): Add register size for MSA supported mode.
14643 (mips_cannot_change_mode_class): Allow conversion between MSA
14644 vector modes and TImode.
14645 (mips_mode_ok_for_mov_fmt_p): Allow MSA to use move.v
14646 instruction.
14647 (mips_secondary_reload_class): Force MSA loads/stores via memory.
14648 (mips_preferred_simd_mode): Add preffered modes for MSA.
14649 (mips_vector_mode_supported_p): Add MSA supported modes.
14650 (mips_autovectorize_vector_sizes): New function.
14651 (mips_msa_output_division): Likewise.
14652 (MSA_BUILTIN, MIPS_BUILTIN_DIRECT_NO_TARGET)
14653 (MSA_NO_TARGET_BUILTIN, MSA_BUILTIN_TEST_BRANCH): New macros.
14654 (CODE_FOR_msa_adds_s_b, CODE_FOR_msa_adds_s_h)
14655 (CODE_FOR_msa_adds_s_w, CODE_FOR_msa_adds_s_d)
14656 (CODE_FOR_msa_adds_u_b, CODE_FOR_msa_adds_u_h)
14657 (CODE_FOR_msa_adds_u_w, CODE_FOR_msa_adds_u_du
14658 (CODE_FOR_msa_addv_b, CODE_FOR_msa_addv_h, CODE_FOR_msa_addv_w)
14659 (CODE_FOR_msa_addv_d, CODE_FOR_msa_and_v, CODE_FOR_msa_bmnz_v)
14660 (CODE_FOR_msa_bmnzi_b, CODE_FOR_msa_bmz_v, CODE_FOR_msa_bmzi_b)
14661 (CODE_FOR_msa_bnz_v, CODE_FOR_msa_bz_v, CODE_FOR_msa_bsel_v)
14662 (CODE_FOR_msa_bseli_b, CODE_FOR_msa_ceqi_h, CODE_FOR_msa_ceqi_w)
14663 (CODE_FOR_msa_ceqi_d, CODE_FOR_msa_clti_s_b)
14664 (CODE_FOR_msa_clti_s_h, CODE_FOR_msa_clti_s_w)
14665 (CODE_FOR_msa_clti_s_d, CODE_FOR_msa_clti_u_b)
14666 (CODE_FOR_msa_clti_u_h, CODE_FOR_msa_clti_u_w)
14667 (CODE_FOR_msa_clti_u_d, CODE_FOR_msa_clei_s_b)
14668 (CODE_FOR_msa_clei_s_h, CODE_FOR_msa_clei_s_w)
14669 (CODE_FOR_msa_clei_s_d, CODE_FOR_msa_clei_u_b)
14670 (CODE_FOR_msa_clei_u_h, CODE_FOR_msa_clei_u_w)
14671 (CODE_FOR_msa_clei_u_d, CODE_FOR_msa_div_s_b)
14672 (CODE_FOR_msa_div_s_h, CODE_FOR_msa_div_s_w)
14673 (CODE_FOR_msa_div_s_d, CODE_FOR_msa_div_u_b)
14674 (CODE_FOR_msa_div_u_h, CODE_FOR_msa_div_u_w)
14675 (CODE_FOR_msa_div_u_d, CODE_FOR_msa_fadd_w, CODE_FOR_msa_fadd_d)
14676 (CODE_FOR_msa_fexdo_w, CODE_FOR_msa_ftrunc_s_w)
14677 (CODE_FOR_msa_ftrunc_s_d, CODE_FOR_msa_ftrunc_u_w)
14678 (CODE_FOR_msa_ftrunc_u_d, CODE_FOR_msa_ffint_s_w)
14679 (CODE_FOR_msa_ffint_s_d, CODE_FOR_msa_ffint_u_w)
14680 (CODE_FOR_msa_ffint_u_d, CODE_FOR_msa_fsub_w)
14681 (CODE_FOR_msa_fsub_d, CODE_FOR_msa_fmsub_d, CODE_FOR_msa_fmadd_w)
14682 (CODE_FOR_msa_fmadd_d, CODE_FOR_msa_fmsub_w, CODE_FOR_msa_fmul_w)
14683 (CODE_FOR_msa_fmul_d, CODE_FOR_msa_fdiv_w, CODE_FOR_msa_fdiv_d)
14684 (CODE_FOR_msa_fmax_w, CODE_FOR_msa_fmax_d, CODE_FOR_msa_fmax_a_w)
14685 (CODE_FOR_msa_fmax_a_d, CODE_FOR_msa_fmin_w, CODE_FOR_msa_fmin_d)
14686 (CODE_FOR_msa_fmin_a_w, CODE_FOR_msa_fmin_a_d)
14687 (CODE_FOR_msa_fsqrt_w, CODE_FOR_msa_fsqrt_d)
14688 (CODE_FOR_msa_max_s_b, CODE_FOR_msa_max_s_h)
14689 (CODE_FOR_msa_max_s_w, CODE_FOR_msa_max_s_d)
14690 (CODE_FOR_msa_max_u_b, CODE_FOR_msa_max_u_h)
14691 (CODE_FOR_msa_max_u_w, CODE_FOR_msa_max_u_d)
14692 (CODE_FOR_msa_min_s_b, CODE_FOR_msa_min_s_h)
14693 (CODE_FOR_msa_min_s_w, CODE_FOR_msa_min_s_d)
14694 (CODE_FOR_msa_min_u_b, CODE_FOR_msa_min_u_h)
14695 (CODE_FOR_msa_min_u_w, CODE_FOR_msa_min_u_d)
14696 (CODE_FOR_msa_mod_s_b, CODE_FOR_msa_mod_s_h)
14697 (CODE_FOR_msa_mod_s_w, CODE_FOR_msa_mod_s_d)
14698 (CODE_FOR_msa_mod_u_b, CODE_FOR_msa_mod_u_h)
14699 (CODE_FOR_msa_mod_u_w, CODE_FOR_msa_mod_u_d)
14700 (CODE_FOR_msa_mod_s_b, CODE_FOR_msa_mod_s_h)
14701 (CODE_FOR_msa_mod_s_w, CODE_FOR_msa_mod_s_d)
14702 (CODE_FOR_msa_mod_u_b, CODE_FOR_msa_mod_u_h)
14703 (CODE_FOR_msa_mod_u_w, CODE_FOR_msa_mod_u_d)
14704 (CODE_FOR_msa_mulv_b, CODE_FOR_msa_mulv_h, CODE_FOR_msa_mulv_w)
14705 (CODE_FOR_msa_mulv_d, CODE_FOR_msa_nlzc_b, CODE_FOR_msa_nlzc_h)
14706 (CODE_FOR_msa_nlzc_w, CODE_FOR_msa_nlzc_d, CODE_FOR_msa_nor_v)
14707 (CODE_FOR_msa_or_v, CODE_FOR_msa_ori_b, CODE_FOR_msa_nori_b)
14708 (CODE_FOR_msa_pcnt_b, CODE_FOR_msa_pcnt_h, CODE_FOR_msa_pcnt_w)
14709 (CODE_FOR_msa_pcnt_d, CODE_FOR_msa_xor_v, CODE_FOR_msa_xori_b)
14710 (CODE_FOR_msa_sll_b, CODE_FOR_msa_sll_h, CODE_FOR_msa_sll_w)
14711 (CODE_FOR_msa_sll_d, CODE_FOR_msa_slli_b, CODE_FOR_msa_slli_h)
14712 (CODE_FOR_msa_slli_w, CODE_FOR_msa_slli_d, CODE_FOR_msa_sra_b)
14713 (CODE_FOR_msa_sra_h, CODE_FOR_msa_sra_w, CODE_FOR_msa_sra_d)
14714 (CODE_FOR_msa_srai_b, CODE_FOR_msa_srai_h, CODE_FOR_msa_srai_w)
14715 (CODE_FOR_msa_srai_d, CODE_FOR_msa_srl_b, CODE_FOR_msa_srl_h)
14716 (CODE_FOR_msa_srl_w, CODE_FOR_msa_srl_d, CODE_FOR_msa_srli_b)
14717 (CODE_FOR_msa_srli_h, CODE_FOR_msa_srli_w, CODE_FOR_msa_srli_d)
14718 (CODE_FOR_msa_subv_b, CODE_FOR_msa_subv_h, CODE_FOR_msa_subv_w)
14719 (CODE_FOR_msa_subv_d, CODE_FOR_msa_subvi_b, CODE_FOR_msa_subvi_h)
14720 (CODE_FOR_msa_subvi_w, CODE_FOR_msa_subvi_d, CODE_FOR_msa_move_v)
14721 (CODE_FOR_msa_vshf_b, CODE_FOR_msa_vshf_h, CODE_FOR_msa_vshf_w)
14722 (CODE_FOR_msa_vshf_d, CODE_FOR_msa_ilvod_d, CODE_FOR_msa_ilvev_d)
14723 (CODE_FOR_msa_pckod_d, CODE_FOR_msa_pckdev_d, CODE_FOR_msa_ldi_b)
14724 (CODE_FOR_msa_ldi_hi, CODE_FOR_msa_ldi_w)
14725 (CODE_FOR_msa_ldi_d): New code_aliasing macros.
14726 (mips_builtins): Add MSA sll_b, sll_h, sll_w, sll_d, slli_b,
14727 slli_h, slli_w, slli_d, sra_b, sra_h, sra_w, sra_d, srai_b,
14728 srai_h, srai_w, srai_d, srar_b, srar_h, srar_w, srar_d, srari_b,
14729 srari_h, srari_w, srari_d, srl_b, srl_h, srl_w, srl_d, srli_b,
14730 srli_h, srli_w, srli_d, srlr_b, srlr_h, srlr_w, srlr_d, srlri_b,
14731 srlri_h, srlri_w, srlri_d, bclr_b, bclr_h, bclr_w, bclr_d,
14732 bclri_b, bclri_h, bclri_w, bclri_d, bset_b, bset_h, bset_w,
14733 bset_d, bseti_b, bseti_h, bseti_w, bseti_d, bneg_b, bneg_h,
14734 bneg_w, bneg_d, bnegi_b, bnegi_h, bnegi_w, bnegi_d, binsl_b,
14735 binsl_h, binsl_w, binsl_d, binsli_b, binsli_h, binsli_w,
14736 binsli_d, binsr_b, binsr_h, binsr_w, binsr_d, binsri_b, binsri_h,
14737 binsri_w, binsri_d, addv_b, addv_h, addv_w, addv_d, addvi_b,
14738 addvi_h, addvi_w, addvi_d, subv_b, subv_h, subv_w, subv_d,
14739 subvi_b, subvi_h, subvi_w, subvi_d, max_s_b, max_s_h, max_s_w,
14740 max_s_d, maxi_s_b, maxi_s_h, maxi_s_w, maxi_s_d, max_u_b,
14741 max_u_h, max_u_w, max_u_d, maxi_u_b, maxi_u_h, maxi_u_w,
14742 maxi_u_d, min_s_b, min_s_h, min_s_w, min_s_d, mini_s_b, mini_s_h,
14743 mini_s_w, mini_s_d, min_u_b, min_u_h, min_u_w, min_u_d, mini_u_b,
14744 mini_u_h, mini_u_w, mini_u_d, max_a_b, max_a_h, max_a_w, max_a_d,
14745 min_a_b, min_a_h, min_a_w, min_a_d, ceq_b, ceq_h, ceq_w, ceq_d,
14746 ceqi_b, ceqi_h, ceqi_w, ceqi_d, clt_s_b, clt_s_h, clt_s_w,
14747 clt_s_d, clti_s_b, clti_s_h, clti_s_w, clti_s_d, clt_u_b,
14748 clt_u_h, clt_u_w, clt_u_d, clti_u_b, clti_u_h, clti_u_w,
14749 clti_u_d, cle_s_b, cle_s_h, cle_s_w, cle_s_d, clei_s_b, clei_s_h,
14750 clei_s_w, clei_s_d, cle_u_b, cle_u_h, cle_u_w, cle_u_d, clei_u_b,
14751 clei_u_h, clei_u_w, clei_u_d, ld_b, ld_h, ld_w, ld_d, st_b, st_h,
14752 st_w, st_d, sat_s_b, sat_s_h, sat_s_w, sat_s_d, sat_u_b, sat_u_h,
14753 sat_u_w, sat_u_d, add_a_b, add_a_h, add_a_w, add_a_d, adds_a_b,
14754 adds_a_h, adds_a_w, adds_a_d, adds_s_b, adds_s_h, adds_s_w,
14755 adds_s_d, adds_u_b, adds_u_h, adds_u_w, adds_u_d, ave_s_b,
14756 ave_s_h, ave_s_w, ave_s_d, ave_u_b, ave_u_h, ave_u_w, ave_u_d,
14757 aver_s_b, aver_s_h, aver_s_w, aver_s_d, aver_u_b, aver_u_h,
14758 aver_u_w, aver_u_d, subs_s_b, subs_s_h, subs_s_w, subs_s_d,
14759 subs_u_b, subs_u_h, subs_u_w, subs_u_d, subsuu_s_b, subsuu_s_h,
14760 subsuu_s_w, subsuu_s_d, subsus_u_b, subsus_u_h, subsus_u_w,
14761 subsus_u_d, asub_s_b, asub_s_h, asub_s_w, asub_s_d, asub_u_b,
14762 asub_u_h, asub_u_w, asub_u_d, mulv_b, mulv_h, mulv_w, mulv_d,
14763 maddv_b, maddv_h, maddv_w, maddv_d, msubv_b, msubv_h, msubv_w,
14764 msubv_d, div_s_b, div_s_h, div_s_w, div_s_d, div_u_b, div_u_h,
14765 div_u_w, div_u_d, hadd_s_h, hadd_s_w, hadd_s_d, hadd_u_h,
14766 hadd_u_w, hadd_u_d, hsub_s_h, hsub_s_w, hsub_s_d, hsub_u_h,
14767 hsub_u_w, hsub_u_d, mod_s_b, mod_s_h, mod_s_w, mod_s_d, mod_u_b,
14768 mod_u_h, mod_u_w, mod_u_d, dotp_s_h, dotp_s_w, dotp_s_d,
14769 dotp_u_h, dotp_u_w, dotp_u_d, dpadd_s_h, dpadd_s_w, dpadd_s_d,
14770 dpadd_u_h, dpadd_u_w, dpadd_u_d, dpsub_s_h, dpsub_s_w, dpsub_s_d,
14771 dpsub_u_h, dpsub_u_w, dpsub_u_d, sld_b, sld_h, sld_w, sld_d,
14772 sldi_b, sldi_h, sldi_w, sldi_d, splat_b, splat_h, splat_w,
14773 splat_d, splati_b, splati_h, splati_w, splati_d, pckev_b,
14774 pckev_h, pckev_w, pckev_d, pckod_b, pckod_h, pckod_w, pckod_d,
14775 ilvl_b, ilvl_h, ilvl_w, ilvl_d, ilvr_b, ilvr_h, ilvr_w, ilvr_d,
14776 ilvev_b, ilvev_h, ilvev_w, ilvev_d, ilvod_b, ilvod_h, ilvod_w,
14777 ilvod_d, vshf_b, vshf_h, vshf_w, vshf_d, and_v, andi_b, or_v,
14778 ori_b, nor_v, nori_b, xor_v, xori_b, bmnz_v, bmnzi_b, bmz_v,
14779 bmzi_b, bsel_v, bseli_b, shf_b, shf_h, shf_w, bnz_v, bz_v,
14780 fill_b, fill_h, fill_w, fill_d, pcnt_b, pcnt_h, pcnt_w,
14781 pcnt_d, nloc_b, nloc_h, nloc_w, nloc_d, nlzc_b, nlzc_h, nlzc_w,
14782 nlzc_d, copy_s_b, copy_s_h, copy_s_w, copy_s_d, copy_u_b,
14783 copy_u_h, copy_u_w, copy_u_d, insert_b, insert_h, insert_w,
14784 insert_d, insve_b, insve_h, insve_w, insve_d, bnz_b, bnz_h,
14785 bnz_w, bnz_d, bz_b, bz_h, bz_w, bz_d, ldi_b, ldi_h, ldi_w, ldi_d,
14786 fcaf_w, fcaf_d, fcor_w, fcor_d, fcun_w, fcun_d, fcune_w, fcune_d,
14787 fcueq_w, fcueq_d, fceq_w, fceq_d, fcne_w, fcne_d, fclt_w, fclt_d,
14788 fcult_w, fcult_d, fcle_w, fcle_d, fcule_w, fcule_d, fsaf_w,
14789 fsaf_d, fsor_w, fsor_d, fsun_w, fsun_d, fsune_w, fsune_d,
14790 fsueq_w, fsueq_d, fseq_w, fseq_d, fsne_w, fsne_d, fslt_w,
14791 fslt_d, fsult_w, fsult_d, fsle_w, fsle_d, fsule_w, fsule_d,
14792 fadd_w, fadd_d, fsub_w, fsub_d, fmul_w, fmul_d, fdiv_w, fdiv_d,
14793 fmadd_w, fmadd_d, fmsub_w, fmsub_d, fexp2_w, fexp2_d, fexdo_h,
14794 fexdo_w, ftq_h, ftq_w, fmin_w, fmin_d, fmin_a_w, fmin_a_d,
14795 fmax_w, fmax_d, fmax_a_w, fmax_a_d, mul_q_h, mul_q_w, mulr_q_h,
14796 mulr_q_w, madd_q_h, madd_q_w, maddr_q_h, maddr_q_w, msub_q_h,
14797 msub_q_w, msubr_q_h, msubr_q_w, fclass_w, fclass_d, fsqrt_w,
14798 fsqrt_d, frcp_w, frcp_d, frint_w, frint_d, frsqrt_w, frsqrt_d,
14799 flog2_w, flog2_d, fexupl_w, fexupl_d, fexupr_w, fexupr_d, ffql_w,
14800 ffql_d, ffqr_w, ffqr_d, ftint_s_w, ftint_s_d, ftint_u_w,
14801 ftint_u_d, ftrunc_s_w, ftrunc_s_d, ftrunc_u_w, ftrunc_u_d,
14802 ffint_s_w, ffint_s_d, ffint_u_w, ffint_u_d, ctcmsa, cfcmsa,
14803 move_v builtins.
14804 (mips_get_builtin_decl_index): New array.
14805 (MIPS_ATYPE_QI, MIPS_ATYPE_HI, MIPS_ATYPE_V2DI, MIPS_ATYPE_V4SI)
14806 (MIPS_ATYPE_V8HI, MIPS_ATYPE_V16QI, MIPS_ATYPE_V2DF)
14807 (MIPS_ATYPE_V4SF, MIPS_ATYPE_UV2DI, MIPS_ATYPE_UV4SI)
14808 (MIPS_ATYPE_UV8HI, MIPS_ATYPE_UV16QI): New.
14809 (mips_init_builtins): Initialize mips_get_builtin_decl_index
14810 array.
14811 (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Define target
14812 hook.
14813 (mips_expand_builtin_insn): Prepare operands for
14814 CODE_FOR_msa_addvi_b, CODE_FOR_msa_addvi_h, CODE_FOR_msa_addvi_w,
14815 CODE_FOR_msa_addvi_d, CODE_FOR_msa_clti_u_b,
14816 CODE_FOR_msa_clti_u_h, CODE_FOR_msa_clti_u_w,
14817 CODE_FOR_msa_clti_u_d, CODE_FOR_msa_clei_u_b,
14818 CODE_FOR_msa_clei_u_h, CODE_FOR_msa_clei_u_w,
14819 CODE_FOR_msa_clei_u_d, CODE_FOR_msa_maxi_u_b,
14820 CODE_FOR_msa_maxi_u_h, CODE_FOR_msa_maxi_u_w,
14821 CODE_FOR_msa_maxi_u_d, CODE_FOR_msa_mini_u_b,
14822 CODE_FOR_msa_mini_u_h, CODE_FOR_msa_mini_u_w,
14823 CODE_FOR_msa_mini_u_d, CODE_FOR_msa_subvi_b,
14824 CODE_FOR_msa_subvi_h, CODE_FOR_msa_subvi_w, CODE_FOR_msa_subvi_d,
14825 CODE_FOR_msa_ceqi_b, CODE_FOR_msa_ceqi_h, CODE_FOR_msa_ceqi_w,
14826 CODE_FOR_msa_ceqi_d, CODE_FOR_msa_clti_s_b,
14827 CODE_FOR_msa_clti_s_h, CODE_FOR_msa_clti_s_w,
14828 CODE_FOR_msa_clti_s_d, CODE_FOR_msa_clei_s_b,
14829 CODE_FOR_msa_clei_s_h, CODE_FOR_msa_clei_s_w,
14830 CODE_FOR_msa_clei_s_d, CODE_FOR_msa_maxi_s_b,
14831 CODE_FOR_msa_maxi_s_h, CODE_FOR_msa_maxi_s_w,
14832 CODE_FOR_msa_maxi_s_d, CODE_FOR_msa_mini_s_b,
14833 CODE_FOR_msa_mini_s_h, CODE_FOR_msa_mini_s_w,
14834 CODE_FOR_msa_mini_s_d, CODE_FOR_msa_andi_b, CODE_FOR_msa_ori_b,
14835 CODE_FOR_msa_nori_b, CODE_FOR_msa_xori_b, CODE_FOR_msa_bmzi_b,
14836 CODE_FOR_msa_bmnzi_b, CODE_FOR_msa_bseli_b, CODE_FOR_msa_fill_b,
14837 CODE_FOR_msa_fill_h, CODE_FOR_msa_fill_w, CODE_FOR_msa_fill_d,
14838 CODE_FOR_msa_ilvl_b, CODE_FOR_msa_ilvl_h, CODE_FOR_msa_ilvl_w,
14839 CODE_FOR_msa_ilvl_d, CODE_FOR_msa_ilvr_b, CODE_FOR_msa_ilvr_h,
14840 CODE_FOR_msa_ilvr_w, CODE_FOR_msa_ilvr_d, CODE_FOR_msa_ilvev_b,
14841 CODE_FOR_msa_ilvev_h, CODE_FOR_msa_ilvev_w, CODE_FOR_msa_ilvod_b,
14842 CODE_FOR_msa_ilvod_h, CODE_FOR_msa_ilvod_w, CODE_FOR_msa_pckev_b,
14843 CODE_FOR_msa_pckev_h, CODE_FOR_msa_pckev_w, CODE_FOR_msa_pckod_b,
14844 CODE_FOR_msa_pckod_h, CODE_FOR_msa_pckod_w, CODE_FOR_msa_slli_b,
14845 CODE_FOR_msa_slli_h, CODE_FOR_msa_slli_w, CODE_FOR_msa_slli_d,
14846 CODE_FOR_msa_srai_b, CODE_FOR_msa_srai_h, CODE_FOR_msa_srai_w,
14847 CODE_FOR_msa_srai_d, CODE_FOR_msa_srli_b, CODE_FOR_msa_srli_h,
14848 CODE_FOR_msa_srli_w, CODE_FOR_msa_srli_d, CODE_FOR_msa_insert_b,
14849 CODE_FOR_msa_insert_h, CODE_FOR_msa_insert_w,
14850 CODE_FOR_msa_insert_d, CODE_FOR_msa_insve_b,
14851 CODE_FOR_msa_insve_h, CODE_FOR_msa_insve_w, CODE_FOR_msa_insve_d,
14852 CODE_FOR_msa_shf_b, CODE_FOR_msa_shf_h, CODE_FOR_msa_shf_w,
14853 CODE_FOR_msa_shf_w_f, CODE_FOR_msa_vshf_b, CODE_FOR_msa_vshf_h,
14854 CODE_FOR_msa_vshf_w, CODE_FOR_msa_vshf_d.
14855 (mips_expand_builtin): Add case for MIPS_BULTIN_MSA_TEST_BRANCH.
14856 (mips_set_compression_mode): Disallow MSA with MIPS16 code.
14857 (mips_option_override): -mmsa requires -mfp64 and -mhard-float.
14858 These are set implicitly and an error is reported if overridden.
14859 (mips_expand_builtin_msa_test_branch): New function.
14860 (mips_expand_msa_shuffle): Likewise.
14861 (MAX_VECT_LEN): Increase maximum length of a vector to 16 bytes.
14862 (TARGET_SCHED_REASSOCIATION_WIDTH): Define target hook.
14863 (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Likewise.
14864 (mips_expand_vec_unpack): Add support for MSA.
14865 (mips_expand_vector_init): Likewise.
14866 (mips_expand_vi_constant): Use CONST0_RTX (element_mode)
14867 instead of const0_rtx.
14868 (mips_msa_vec_parallel_const_half): New function.
14869 (mips_gen_const_int_vector): Likewise.
14870 (mips_gen_const_int_vector_shuffle): Likewise.
14871 (mips_expand_msa_cmp): Likewise.
14872 (mips_expand_vec_cond_expr): Likewise.
14873 * config/mips/mips.h
14874 (TARGET_CPU_CPP_BUILTINS): Add __mips_msa and __mips_msa_width.
14875 (OPTION_DEFAULT_SPECS): Ignore --with-fp-32 if -mmsa is
14876 specified.
14877 (ASM_SPEC): Pass mmsa and mno-msa to the assembler.
14878 (ISA_HAS_MSA): New macro.
14879 (UNITS_PER_MSA_REG): Likewise.
14880 (BITS_PER_MSA_REG): Likewise.
14881 (BIGGEST_ALIGNMENT): Redefine using ISA_HAS_MSA.
14882 (MSA_REG_FIRST): New macro.
14883 (MSA_REG_LAST): Likewise.
14884 (MSA_REG_NUM): Likewise.
14885 (MSA_REG_P): Likewise.
14886 (MSA_REG_RTX_P): Likewise.
14887 (MSA_SUPPORTED_MODE_P): Likewise.
14888 (HARD_REGNO_CALL_PART_CLOBBERED): Redefine using TARGET_MSA.
14889 (ADDITIONAL_REGISTER_NAMES): Add named registers $w0-$w31.
14890 * config/mips/mips.md: Include mips-msa.md.
14891 (alu_type): Add simd_add.
14892 (mode): Add V2DI, V4SI, V8HI, V16QI, V2DF, V4SF.
14893 (type): Add simd_div, simd_fclass, simd_flog2, simd_fadd,
14894 simd_fcvt, simd_fmul, simd_fmadd, simd_fdiv, simd_bitins,
14895 simd_bitmov, simd_insert, simd_sld, simd_mul, simd_fcmp,
14896 simd_fexp2, simd_int_arith, simd_bit, simd_shift, simd_splat,
14897 simd_fill, simd_permute, simd_shf, simd_sat, simd_pcnt,
14898 simd_copy, simd_branch, simd_cmsa, simd_fminmax, simd_logic,
14899 simd_move, simd_load, simd_store. Choose "multi" for moves
14900 for "qword_mode".
14901 (qword_mode): New attribute.
14902 (insn_count): Add instruction count for quad moves.
14903 Increase the count for MIPS SIMD division.
14904 (UNITMODE): Add UNITMODEs for vector types.
14905 (addsub): New code iterator.
14906 * config/mips/mips.opt (mmsa): New option.
14907 * config/mips/msa.h: New file.
14908 * config/mips/mti-elf.h: Don't infer -mfpxx if -mmsa is
14909 specified.
14910 * config/mips/mti-linux.h: Likewise.
14911 * config/mips/predicates.md
14912 (const_msa_branch_operand): New constraint.
14913 (const_uimm3_operand): Likewise.
14914 (const_uimm4_operand): Likewise.
14915 (const_uimm5_operand): Likewise.
14916 (const_uimm8_operand): Likewise.
14917 (const_imm5_operand): Likewise.
14918 (aq10b_operand): Likewise.
14919 (aq10h_operand): Likewise.
14920 (aq10w_operand): Likewise.
14921 (aq10d_operand): Likewise.
14922 (const_m1_operand): Likewise.
14923 (reg_or_m1_operand): Likewise.
14924 (const_exp_2_operand): Likewise.
14925 (const_exp_4_operand): Likewise.
14926 (const_exp_8_operand): Likewise.
14927 (const_exp_16_operand): Likewise.
14928 (const_vector_same_val_operand): Likewise.
14929 (const_vector_same_simm5_operand): Likewise.
14930 (const_vector_same_uimm5_operand): Likewise.
14931 (const_vector_same_uimm6_operand): Likewise.
14932 (const_vector_same_uimm8_operand): Likewise.
14933 (par_const_vector_shf_set_operand): Likewise.
14934 (reg_or_vector_same_val_operand): Likewise.
14935 (reg_or_vector_same_simm5_operand): Likewise.
14936 (reg_or_vector_same_uimm6_operand): Likewise.
14937 * doc/extend.texi (MIPS SIMD Architecture Functions): New
14938 section.
14939 * doc/invoke.texi (-mmsa): Document new option.
14940
14941 2016-05-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
14942
14943 * configure.ac (enable_vtable_verify): Handle --enable-vtable-verify.
14944 * configure: Regenerate.
14945 * config.in: Regenerate.
14946 * gcc.c (VTABLE_VERIFICATION_SPEC) [!ENABLE_VTABLE_VERIFY]: Error
14947 on -fvtable-verify.
14948 * config/sol2.h [!ENABLE_VTABLE_VERIFY] (STARTFILE_VTV_SPEC): Define.
14949 (ENDFILE_VTV_SPEC): Define.
14950
14951 2016-05-09 Kaushik Phatak <kaushik.phatak@kpit.com>
14952
14953 * config/rl78/rl78.c (rl78_expand_prologue): Save the MDUC related
14954 registers in all interrupt handlers if necessary.
14955 (rl78_option_override): Add warning.
14956 (MUST_SAVE_MDUC_REGISTERS): New macro.
14957 (rl78_expand_epilogue): Restore the MDUC registers if necessary.
14958 * config/rl78/rl78.c (check_mduc_usage): New function.
14959 (mduc_regs): New structure to hold MDUC register data.
14960 * config/rl78/rl78.md (is_g13_muldiv_insn): New attribute.
14961 (mulsi3_g13): Add is_g13_muldiv_insn attribute.
14962 (udivmodsi4_g13): Add is_g13_muldiv_insn attribute.
14963 (mulhi3_g13): Add is_g13_muldiv_insn attribute.
14964 * config/rl78/rl78.opt (msave-mduc-in-interrupts): New option.
14965 * doc/invoke.texi (RL78 Options): Add -msave-mduc-in-interrupts.
14966
14967 2016-05-09 Bin Cheng <bin.cheng@arm.com>
14968
14969 * tree-if-conv.c (tree-ssa-loop.h): Include header file.
14970 (tree-ssa-loop-niter.h): Ditto.
14971 (idx_within_array_bound, ref_within_array_bound): New functions.
14972 (ifcvt_memrefs_wont_trap): Check if array ref is within bound.
14973 Factor out check on writable base object to ...
14974 (base_object_writable): ... here.
14975
14976 2016-05-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14977
14978 * config/arm/arm.md (probe_stack): Add modes to set source
14979 and destination.
14980
14981 2016-05-09 Bernd Schmidt <bschmidt@redhat.com>
14982
14983 * regrename.c (base_reg_class_for_rename): New static function.
14984 (scan_rtx_address, scan_rtx): Use it instead of base_reg_class.
14985
14986 2016-05-08 Jan Hubicka <hubicka@ucw.cz>
14987
14988 * cgraph.c (thunk_adjust): Export.
14989 * cgraphclones.c (cgraph_node::create_clone): Clone thunk info.
14990 * cgraphunit.c (thunk_adjust): Export.
14991 (cgraph_node::assemble_thunks_and_aliases): Do not assemble inlined
14992 thunks.
14993 * ipa-inline-analyssi.c (compute_inline_parameters): Thunks are
14994 inlinable.
14995 * tree-inline.c (expand_call_inline): Expand thunks inline.
14996
14997 2016-05-08 Uros Bizjak <ubizjak@gmail.com>
14998
14999 PR target/70998
15000 * config/i386/sse.md (*sse2_vd_cvtsd2ss): New insn pattern.
15001 (*sse2_vd_cvtss2sd): Ditto.
15002 * config/i386/i386.md
15003 (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_truncate df->sf splitter):
15004 Generate *sse2_vd_cvtsd2ss pattern.
15005 (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_extend sf->df splitter):
15006 Generate *sse2_vd_cvtss2sd pattern.
15007
15008 2016-05-08 Oleg Endo <olegendo@gcc.gnu.org>
15009
15010 * config/sh/sh.h (GET_SH_ARG_CLASS): Convert macro into ...
15011 * config/sh/sh.c (get_sh_arg_class): ... this new function. Update its
15012 users.
15013
15014 2016-05-08 Oleg Endo <olegendo@gcc.gnu.org>
15015
15016 * config/sh/sh-protos.h (sh_media_register_for_return): Remove.
15017 * config/sh/sh.c: Define and declare variables on first use throughout
15018 the file.
15019 (current_function_interrupt): Change to bool type.
15020 (frame_insn): Rename to emit_frame_insn and update users.
15021 (push_regs): Use bool for 'interrupt_handler' argument.
15022 (save_schedule_s): Remove.
15023 (TARGET_ASM_UNALIGNED_DI_OP, TARGET_ASM_ALIGNED_DI_OP): Remove.
15024 (sh_option_override): Don't nullify targetm.asm_out.aligned_op.di and
15025 targetm.asm_out.unaligned_op.di.
15026 (gen_far_branch): Remove redundant forward declaration.
15027 (sh_media_register_for_return, MAX_SAVED_REGS, save_entry_s, save_entry,
15028 MAX_TEMPS, save_schedule_ssave_schedule): Remove.
15029 (sh_set_return_address, sh_function_ok_for_sibcall,
15030 scavenge_reg): Update comments.
15031 (sh_builtin_saveregs): Use TRAGET_FPU_ANY condition.
15032 (sh2a_get_function_vector_number, sh2a_function_vector_p): Use for loop.
15033 (sh_attr_renesas_p): Remove unnecessary parentheses.
15034 (branch_dest): Simplify.
15035 * config/sh/sh.h (sh_args): Remove byref, byref_regs, stack_regs fields.
15036 Change force_mem, prototype_p, outgoing, renesas_abi fields to bool.
15037 (CUMULATIVE_ARGS): Change macro to typedef.
15038 (current_function_interrupt): Change to bool type.
15039 (sh_arg_class, sh_args, CUMULATIVE_ARGS, current_function_interrupt):
15040 Surround with __cplusplus ifdef.
15041 (sh_compare_op0, sh_compare_op1): Remove.
15042 (EPILOGUE_USES): Use TARGET_FPU_ANY condition.
15043
15044 2016-05-07 Jim Wilson <jim.wilson@linaro.org>
15045
15046 * config/arm/arm.md: (arch): Add neon.
15047 (arch_enabled): Return yes for arch neon when TARGET_NEON.
15048 * config/arm/vfp.md (movdf_vfp): Add w/G as alternative 3. Add
15049 neon_move as type for alt 3. Add arch attr enabling alt 3 for neon.
15050 Emit vmov.i64 for alt 3. Renumber alternatives 3 to 8. Adjust
15051 attributes for alt renumbering. Mark alt 3 as non-predicable.
15052 (thumb2_movdf_vfp): Likewise.
15053
15054 2016-05-07 Uros Bizjak <ubizjak@gmail.com>
15055
15056 * config/i386/i386.md (*addqi_1): Add preferred_for_speed attribute
15057 to disparage alternatives 3 and 4 for TARGET_PARTIAL_REG_STALL targets.
15058 (*andqi_1): Add preferred_for_speed attribute to disparage
15059 alternative 2 for TARGET_PARTIAL_REG_STALL targets.
15060 (*<code>qi_1): Ditto.
15061 (*one_cmplqi2_1): Add preferred_for_speed attribute to disparage
15062 alternative 1 for TARGET_PARTIAL_REG_STALL targets.
15063 (*ashlqi3_1): Ditto.
15064 (*swap<mode>): Merge from *swap<mode>_1 and *swap<mode>_2 patterns.
15065 Add preferred_for_size attribute to disparage alternative 0 and
15066 preferred_for_speed attribute to disparage alternative 1 for
15067 TARGET_PARTIAL_REG_STALL targets.
15068
15069 2016-05-07 Tom de Vries <tom@codesourcery.com>
15070
15071 PR tree-optimization/70956
15072 * graphite-scop-detection.c (build_cross_bb_scalars_def): Handle NULL
15073 def.
15074
15075 2016-05-07 Oleg Endo <olegendo@gcc.gnu.org>
15076
15077 * config/sh/sh-protos.h (sh_cbranch_distance): Declare new function.
15078 * config/sh/sh.c (sh_cbranch_distance): Implement it.
15079 * config/sh/sh.md (branch_zero): Remove define_attr.
15080 (define_delay): Disable delay slot if branch distance is one insn.
15081
15082 2016-05-06 Uros Bizjak <ubizjak@gmail.com>
15083
15084 * config/i386/i386.md (LEAMODE): New mode attribute.
15085 (plus to LEA splitter): Rewrite splitter using LEAMODE mode attribute.
15086 (ashift to LEA splitter): Rewrte splitter using SWI mode iterator
15087 and LEAMODE mode attribute. Use VOIDmode const_0_to_3_operand as
15088 operand 2 predicate.
15089 (*lea<mode>_general_2): Use VOIDmode for const248_operand.
15090 (*lea<mode>_general_3): Ditto.
15091 (*lea<mode>_general_4): Use VOIDmode for const_0_to_3_operand.
15092
15093 2016-05-06 Jakub Jelinek <jakub@redhat.com>
15094
15095 * genmddump.c (main): Convert argv from char ** to const char **.
15096
15097 2016-05-06 David Malcolm <dmalcolm@redhat.com>
15098
15099 * coretypes.h (OVERRIDE): New macro.
15100 (FINAL): New macro.
15101
15102 2016-05-06 Eric Botcazou <ebotcazou@adacore.com>
15103
15104 * tree-ssa-coalesce.c (gimple_can_coalesce_p): In the optimized case,
15105 allow coalescing if the types are compatible.
15106
15107 2016-05-06 David Malcolm <dmalcolm@redhat.com>
15108
15109 * pass_manager.h (pass_manager::register_pass_name): New method.
15110 (pass_manager::get_pass_by_name): New method.
15111 (pass_manager::create_pass_tab): New method.
15112 (pass_manager::m_name_to_pass_map): New field.
15113 * passes.c (name_to_pass_map): Delete global in favor of field
15114 "m_name_to_pass_map" of pass_manager.
15115 (register_pass_name): Rename from a function to...
15116 (pass_manager::register_pass_name): ...this method, updating
15117 for renaming of global "name_to_pass_map" to field
15118 "m_name_to_pass_map".
15119 (create_pass_tab): Rename from a function to...
15120 (pass_manager::create_pass_tab): ...this method, updating
15121 for renaming of global "name_to_pass_map" to field.
15122 (get_pass_by_name): Rename from a function to...
15123 (pass_manager::get_pass_by_name): ...this method.
15124 (enable_disable_pass): Convert use of get_pass_by_name to
15125 a method call, locating the pass_manager singleton.
15126
15127 2016-05-06 David Malcolm <dmalcolm@redhat.com>
15128
15129 * genattr-common.c (main): Convert argv from char ** to const char **.
15130 * genattr.c (main): Likewise.
15131 * genattrtab.c (main): Likewise.
15132 * genautomata.c (initiate_automaton_gen): Likewise.
15133 (main): Likewise.
15134 * gencodes.c (main): Likewise.
15135 * genconditions.c (main): Likewise.
15136 * genconfig.c (main): Likewise.
15137 * genconstants.c (main): Likewise.
15138 * genemit.c (main): Likewise.
15139 * genenums.c (main): Likewise.
15140 * genextract.c (main): Likewise.
15141 * genflags.c (main): Likewise.
15142 * genmddeps.c (main): Likewise.
15143 * genopinit.c (main): Likewise.
15144 * genoutput.c (main): Likewise.
15145 * genpeep.c (main): Likewise.
15146 * genpreds.c (main): Likewise.
15147 * genrecog.c (main): Likewise.
15148 * gensupport.c (init_rtx_reader_args_cb): Likewise.
15149 (init_rtx_reader_args): Likewise.
15150 * gensupport.h (init_rtx_reader_args_cb): Likewise.
15151 (init_rtx_reader_args): Likewise.
15152 * gentarget-def.c (main): Likewise.
15153 * read-md.c (read_md_files): Likewise.
15154 * read-md.h (read_md_files): Likewise.
15155
15156 2016-05-06 Uros Bizjak <ubizjak@gmail.com>
15157
15158 * config/i386/i386.md (int cmove peephole2s): Use general_reg_operand
15159 instead of register_and_not_any_fp_reg_operand as operand 0 predicate.
15160 * config/i386/predicates.md (register_and_not_any_fp_reg_operand):
15161 Remove unused predicate.
15162 (register_and_not_fp_reg_operand): Ditto.
15163
15164 2016-05-06 Martin Liska <mliska@suse.cz>
15165
15166 * tree-if-conv.c (ifcvt_split_critical_edges): Use auto_vec
15167 instead of vec as the vector is local to the function.
15168
15169 2016-05-06 Jakub Jelinek <jakub@redhat.com>
15170
15171 * config/i386/sse.md (*<code>v8hi3, *<code>v16qi3): Add
15172 avx512bw alternative.
15173
15174 * config/i386/sse.md (<mask_codefor>ashr<mode>3<mask_name>): Move
15175 before the ashr<mode>3 pattern.
15176
15177 * config/i386/sse.md (*avx2_pmaddwd, *sse2_pmaddwd): Use
15178 v instead of x in vex or maybe_vex alternatives, use
15179 maybe_evex instead of vex in prefix.
15180
15181 * config/i386/sse.md (*vec_extractv4sf_0, *sse4_1_extractps,
15182 *vec_extractv4sf_mem, vec_extract_lo_v16hi, vec_extract_hi_v16hi,
15183 vec_extract_lo_v32qi, vec_extract_hi_v32qi): Use v instead of x
15184 in vex or maybe_vex alternatives, use maybe_evex instead of vex
15185 in prefix.
15186
15187 * config/i386/sse.md (*vec_concatv2sf_sse4_1, *vec_concatv4sf): Use
15188 v instead of x in vex or maybe_vex alternatives, use
15189 maybe_evex instead of vex in prefix.
15190
15191 * config/i386/sse.md (sse_shufps_<mode>, sse_storehps, sse_loadhps,
15192 sse_storelps, sse_movss, avx2_vec_dup<mode>, avx2_vec_dupv8sf_1,
15193 sse2_shufpd_<mode>, sse2_storehpd, sse2_storelpd, sse2_loadhpd,
15194 sse2_loadlpd, sse2_movsd): Use v instead of x in vex or maybe_vex
15195 alternatives, use maybe_evex instead of vex in prefix.
15196
15197 * config/i386/sse.md (vec_interleave_lowv4sf,
15198 *vec_interleave_highv2df, *vec_interleave_lowv2df): Use
15199 v instead of x in vex or maybe_vex alternatives, use
15200 maybe_evex instead of vex in prefix.
15201
15202 * config/i386/sse.md (sse_movhlps, sse_movlhps): Use
15203 v instead of x in vex or maybe_vex alternatives, use
15204 maybe_evex instead of vex in prefix.
15205
15206 * config/i386/sse.md (*avx_cvtpd2dq256_2, *avx_cvtps2pd256_2): Use
15207 v constraint instead of x.
15208
15209 2016-05-06 Nathan Sidwell <nathan@codesourcery.com>
15210
15211 * gimple.c (gimple_call_same_target_p): Unique functions are eq.
15212 * tree-ssa-tail-merge.c (same_succ::equal): Check pointer eq
15213 equality first.
15214
15215 2016-05-06 Richard Biener <rguenther@suse.de>
15216
15217 PR tree-optimization/70948
15218 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
15219 Properly clobber all fields of va_list for __builtin_va_start.
15220
15221 2016-05-06 Yuri Rumyantsev <ysrumyan@gmail.com>
15222
15223 PR debug/70935
15224 * tree-ssa-loop-unswitch.c (find_loop_guard): Reject guard edge with
15225 loop latch destination.
15226
15227 2016-05-06 Martin Liska <mliska@suse.cz>
15228
15229 * tree-ssa-uninit.c: Apply manual changes
15230 to the GNU coding style.
15231 (prune_uninit_phi_opnds): Rename from
15232 prune_uninit_phi_opnds_in_unrealizable_paths.
15233
15234 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
15235
15236 * config/sh/sh.opt (madjust-unroll, minvalid-symbols, msoft-atomic,
15237 mspace): Remove deprecated options.
15238 * doc/invoke.texi (SH options): Remove -mspace.
15239
15240 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
15241
15242 * config/sh/sh.md (ic_invalidate_line_sh4a): Fix insn length.
15243
15244 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
15245
15246 * config/sh/sh.md (*cmpeqsi_t): Remove combine insn pattern and similar
15247 corresponding combine split pattern.
15248
15249 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
15250
15251 PR target/58219
15252 * config/sh/predicates.md (long_displacement_mem_operand): New.
15253 * config/sh/sh.md (movsi_i): Allow for SH2A, disallow for any FPU.
15254 Add movi20, movi20s alternatives. Adjust length attribute for
15255 alternatives.
15256 (movsi_ie): Allow for any FPU. Adjust length attribute for
15257 alternatives.
15258 (movsi_i_lowpart): Add movi20, movi20s alternatives. Adjust length
15259 attribute for alternatives.
15260 (*mov<mode>): Use long_displacement_mem_operand for length attribute.
15261 (*movdi_i, movdf_k, movdf_i4, movsf_i, movsf_ie, movsf_ie_ra): Adjust
15262 length attribute for alternatives.
15263
15264 2016-05-06 Richard Biener <rguenther@suse.de>
15265
15266 PR tree-optimization/70960
15267 * tree-if-conv.c (ifcvt_walk_pattern_tree): Handle non-SSA ops.
15268
15269 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
15270
15271 PR target/52933
15272 * config/sh/sh.md (*cmp_div0s_7, *cmp_div0s_8): Add div0s variants.
15273 * config/sh/sh.c (sh_rtx_costs): Add another div0s case.
15274
15275 2016-05-06 Marek Polacek <polacek@redhat.com>
15276
15277 PR sanitizer/70875
15278 * ubsan.c (get_ubsan_type_info_for_type): Remove assert.
15279
15280 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
15281
15282 PR target/54089
15283 * config/sh/sh.md (*rotcr): Add another variant.
15284
15285 2016-05-06 Richard Biener <rguenther@suse.de>
15286
15287 PR middle-end/70931
15288 * dwarf2out.c (native_encode_initializer): Skip zero-sized fields.
15289
15290 2016-05-06 Richard Biener <rguenther@suse.de>
15291
15292 PR middle-end/70941
15293 * fold-const.c (split_tree): Always convert to the original type
15294 before negating.
15295
15296 2016-05-06 Richard Biener <rguenther@suse.de>
15297
15298 * fwprop.c (fwprop): Remove duplicate cleanup_cfg call.
15299 (fwprop_addr): Likewise.
15300
15301 2016-05-06 Uros Bizjak <ubizjak@gmail.com>
15302
15303 PR target/70873
15304 * config/i386/i386-protos.h (ix86_standard_x87sse_constant_load_p):
15305 New prototype.
15306 * config/i386/i386.c (ix86_standard_x87sse_constant_load_p): New.
15307 * config/i386/i386.md (push mem splitter): Use find_constant_src in
15308 the splitter condition.
15309 (FP load splitter): Use ix86_standard_x87sse_constant_load_p in
15310 the splitter condition.
15311 (FP float_extend load splitter): Ditto.
15312
15313 2016-05-05 Uros Bizjak <ubizjak@gmail.com>
15314
15315 * config/i386/i386.md (peehole2 patterns): Change true_regnum
15316 to REGNO in all peephole2 patterns.
15317 (post-reload splitters): Change true_regnum to REGNO in
15318 post-reload splitters.
15319 (zero_extend splitters): Use general_reg_operand and
15320 nonimmediate_gr_operand predicates.
15321
15322 2016-05-05 Jakub Jelinek <jakub@redhat.com>
15323
15324 * config/i386/sse.md (<avx512>_fmadd_<mode>_mask3<round_name>): Use
15325 v constraint instead of x.
15326
15327 2016-05-05 Alan Modra <amodra@gmail.com>
15328
15329 PR target/68662
15330 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Don't
15331 set OPTION_MASK_RELOCATABLE when flag_pic == 2. Set
15332 TARGET_NO_FP_IN_TOC for -mrelocatable.
15333 (MINIMAL_TOC_SECTION_ASM_OP): Remove redundant
15334 TARGET_RELOCATABLE test.
15335 (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
15336 (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
15337 * config/rs6000/linux64.h (MINIMAL_TOC_SECTION_ASM_OP): Likewise.
15338 (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
15339 (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
15340 * config/rs6000/freebsd64.h (MINIMAL_TOC_SECTION_ASM_OP): Likewise.
15341 (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
15342 (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
15343 * config/rs6000/predicates.md (easy_fp_constant): Likewise.
15344 * config/rs6000/rs6000.c (rs6000_elf_output_toc_section_asm_op):
15345 Likewise.
15346 (rs6000_assemble_integer): Update TARGET_RELOCATABLE test.
15347 (rs6000_stack_info): Likewise.
15348 (rs6000_elf_asm_out_constructor): Likewise.
15349 (rs6000_elf_asm_out_destructor): Likewise.
15350 (rs6000_elf_declare_function_name): Likewise.
15351 * config/rs6000/rs6000.md (load_toc_aix_di): Likewise.
15352 * config/rs6000/rs6000.h (MASK_RELOCATABLE, MASK_MINIMAL_TOC):
15353 Don't define.
15354
15355 2016-05-05 Alan Modra <amodra@gmail.com>
15356
15357 * config/rs6000/rs6000.c (rs6000_frame_related): Rewrite.
15358
15359 2016-05-05 Alan Modra <amodra@gmail.com>
15360
15361 * config/rs6000/rs6000.c (rs6000_savres_strategy): Don't use
15362 out-of-line gpr restore for one or two regs if that would add
15363 a save of lr.
15364
15365 2016-05-04 Uros Bizjak <ubizjak@gmail.com>
15366
15367 PR target/70873
15368 * config/i386/i386.md
15369 (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_extend sf->df peephole2):
15370 Change to post-epilogue_completed late splitter. Use sse_reg_operand
15371 as operand 0 predicate.
15372 (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_truncate df->sf peephole2):
15373 Ditto.
15374 (TARGET_SSE_PARTIAL_REG_DEPENDENCY float {si,di}->{sf,df} peephole2):
15375 Ditto. Emit the pattern using RTX.
15376
15377 (TARGET_USE_VECTOR_FP_CONVERTS float_extend sf->df splitter):
15378 Use sse_reg_opreand as operand 0 predicate. Do not use true_regnum in
15379 the post-reload splitter. Use lowpart_subreg instead of gen_rtx_REG.
15380 (TARGET_USE_VECTOR_FP_CONVERTS float_truncate df->sf splitter):
15381 Ditto.
15382 (TARGET_USE_VECTOR_CONVERTS float si->{sf,df} splitter): Use
15383 sse_reg_operand as operand 0 predicate.
15384
15385 (TARGET_SPLIT_MEM_OPND_FOR_FP_CONVERTS float_extend sf->df peephole2):
15386 Use sse_reg_opreand as operand 0 predicate. Use lowpart_subreg
15387 instead of gen_rtx_REG.
15388 (TARGET_SPLIT_MEM_OPND_FOR_FP_CONVERTS float_truncate sf->df peephole2):
15389 Ditto.
15390
15391 2016-05-04 Segher Boessenkool <segher@kernel.crashing.org>
15392
15393 * function.c (emit_use_return_register_into_block): Delete.
15394 (gen_return_pattern): Delete.
15395 (emit_return_into_block): Delete.
15396 (active_insn_between): Delete.
15397 (convert_jumps_to_returns): Delete.
15398 (emit_return_for_exit): Delete.
15399 (thread_prologue_and_epilogue_insns): Delete all code dealing with
15400 simple_return for shrink-wrapped blocks.
15401 * shrink-wrap.c (try_shrink_wrapping): Insert simple_return at the
15402 end of blocks that need one.
15403 (get_unconverted_simple_return): Delete.
15404 (convert_to_simple_return): Delete.
15405 * shrink-wrap.c (get_unconverted_simple_return): Delete declaration.
15406 (convert_to_simple_return): Ditto.
15407
15408 2016-05-04 Segher Boessenkool <segher@kernel.crashing.org>
15409
15410 * cfgcleanup.c (bb_is_just_return): New function.
15411 (try_optimize_cfg): Simplify jumps to return, branches to return,
15412 and branches around return.
15413
15414 2016-05-04 Segher Boessenkool <segher@kernel.crashing.org>
15415
15416 * cfgcleanup.c (try_simplify_condjump): Don't try to simplify a
15417 branch to a return.
15418
15419 2016-05-04 Jakub Jelinek <jakub@redhat.com>
15420
15421 PR c++/70906
15422 PR c++/70933
15423 * tree-core.h (enum operand_equal_flag): Add OEP_HASH_CHECK.
15424 * tree.c (inchash::add_expr): If !IS_EXPR_CODE_CLASS (tclass),
15425 assert flags & OEP_HASH_CHECK, instead of asserting it
15426 never happens. Handle TARGET_EXPR.
15427 * fold-const.c (operand_equal_p): For hash verification,
15428 or in OEP_HASH_CHECK into flags.
15429
15430 2016-05-04 Eric Botcazou <ebotcazou@adacore.com>
15431
15432 * tree-ssa-coalesce.c (gimple_can_coalesce_p): Fix reference in head
15433 comment.
15434 (compute_samebase_partition_bases): Fix typo.
15435
15436 2016-05-04 Jakub Jelinek <jakub@redhat.com>
15437
15438 * config/i386/sse.md (vec_interleave_highv8sf,
15439 vec_interleave_lowv8sf, vec_interleave_highv4df,
15440 vec_interleave_lowv4df): Remove constraints from expanders.
15441
15442 * config/i386/sse.md (sse2_movq128): Use v constraint instead of x.
15443
15444 2016-05-04 Jan Hubicka <hubicka@ucw.cz>
15445
15446 * tree-inline.c (expand_call_inline): Fix path dealing with
15447 making lhs of call statement undefined.
15448
15449 2016-05-04 Jan Hubicka <hubicka@ucw.cz>
15450
15451 * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases):
15452 Check availability on NODE, too.
15453 * cgraph.h (symtab_node::call_for_symbol_and_aliases): Likewise.
15454 (cgraph_node::call_for_symbol_and_aliases): Likewise.
15455 (varpool_node::call_for_symbol_and_aliase): Likewise.
15456 * ipa-pure-const.c (add_new_function): Analyze all bodies.
15457 (propagate_pure_const): Propagate across interposable functions, too.
15458 (skip_function_for_local_pure_const): Do not skip interposable bodies
15459 with aliases.
15460 (pass_local_pure_const::execute): Update.
15461
15462 2016-05-04 Marek Polacek <polacek@redhat.com>
15463
15464 * doc/invoke.texi: Document -Wdangling-else.
15465
15466 2016-05-04 Thomas Preud'homme <thomas.preudhomme@arm.com>
15467
15468 * config.gcc: Error out when conflicting multilib is detected. Do not
15469 loop over multilibs since no combination is legal.
15470
15471 2016-05-04 Alan Modra <amodra@gmail.com>
15472
15473 * config/rs6000/rs6000.h (PIC_OFFSET_TABLE_REGNUM): Correct.
15474 * config/rs6000/sysv4.h (TARGET_TOC): Simplify.
15475 * config/rs6000/rs6000.c (rs6000_elf_output_toc_section_asm_op):
15476 Align .toc.
15477
15478 2016-05-04 Matthew Fortune <matthew.fortune@imgtec.com>
15479
15480 * config/mips/mips-cpus.def (p5600): Avoid IMADD by default.
15481 Clean up p5600 comments.
15482
15483 2016-05-04 Richard Biener <rguenther@suse.de>
15484
15485 * match.pd: Add BIT_FIELD_REF canonicalizations and vector
15486 constructor simplifications.
15487 * fold-const.c (fold_ternary_loc): Remove duplicate functionality here.
15488
15489 2016-05-04 Oleg Endo <olegendo@gcc.gnu.org>
15490
15491 * config/sh/predicates (post_inc_mem, pre_dec_mem): New predicates.
15492 * config/sh/sh-protos.h (sh_find_set_of_reg): Return null result if
15493 result.set_rtx is null instead of aborting.
15494 * config/sh/sh.h (USE_LOAD_POST_INCREMENT, USE_STORE_PRE_DECREMENT):
15495 Always enable.
15496 (USE_LOAD_PRE_DECREMENT, USE_STORE_POST_INCREMENT): Enable for SH2A.
15497 * config/sh/sh.md (*extend<mode>si2_predec, *mov<mode>_load_predec,
15498 *mov<mode>_store_postinc): New patterns.
15499
15500 2016-05-04 Marc Glisse <marc.glisse@inria.fr>
15501
15502 * match.pd ((A | B) & (A | C)): Generalize to BIT_XOR_EXPR. Mark
15503 as commutative. Check both conversions are NOP.
15504 ((A & B) OP (C & B)): Remove.
15505
15506 2016-05-04 Alan Modra <amodra@gmail.com>
15507
15508 * combine.c (simplify_set): Correct WORD_REGISTER_OPERATIONS test.
15509
15510 2016-05-04 Alan Modra <amodra@gmail.com>
15511
15512 PR target/70866
15513 * config/rs6000/rs6000.c (rs6000_stack_info): Don't set cr_save_p
15514 when cr2,3,4 are all fixed regs.
15515
15516 2016-05-04 Bernd Schmidt <bschmidt@redhat.com>
15517
15518 PR rtl-optimization/57193
15519 * opts.c (default_options_table): Revert OPT_frename_registers change.
15520 * doc/invoke.texi (-frename-registers, -O2): Likewise.
15521
15522 2016-05-03 Martin Sebor <msebor@redhat.com>
15523
15524 PR c++/66561
15525 * builtins.c (fold_builtin_FILE): New function.
15526 (fold_builtin_FUNCTION, fold_builtin_LINE): New functions.
15527 (fold_builtin_0): Call them.
15528 * gimplify.c (gimplify_call_expr): Remove the handling of
15529 BUILT_IN_FILE, BUILT_IN_FUNCTION, and BUILT_IN_LINE.
15530
15531 PR c++/66561
15532 * doc/extend.texi (Other Builtins): Update __builtin_FILE,
15533 __builtin_FUNCTION, and __builtin_LINE to reflect they yield
15534 constants.
15535
15536 PR c++/66639
15537 * doc/extend.texi (Function Names as Strings): Update __func__,
15538 __FUNCTION__, __PRETTY_FUNCTION__ to reflect they evaluate to
15539 constants.
15540
15541 2016-05-03 Jakub Jelinek <jakub@redhat.com>
15542 Richard Biener <rguenther@suse.de>
15543
15544 PR tree-optimization/70916
15545 * tree-if-conv.c: Include cfganal.h.
15546 (pass_if_conversion::execute): Call connect_infinite_loops_to_exit
15547 and remove_fake_exit_edges around the optimization pass.
15548
15549 2016-05-03 Jan Hubicka <hubicka@ucw.cz>
15550
15551 * cgraph.c (symbol_table::create_edge): Set inline_failed.
15552 (cgraph_edge::make_direct): Likewise.
15553 (cgraph_edge::dump_edge_flags): Dump call_stmt_cannot_inline_p.
15554 * cgraphclones.c (duplicate_thunk_for_node): Set inline_failed.
15555 * cif-code.def (CIF_LTO_MISMATCHED_DECLARATIONS): New code
15556 (CIF_THUNK): New code.
15557 * ipa-inline-analysis.c (initialize_inline_failed): Preserve
15558 CIF_FINAL_ERROR codes; do not deal with call_stmt_cannot_inline_p.
15559 (compute_inline_parameters): Set inline_failed for thunks.
15560 (inline_analyze_function): Cleanup.
15561 * ipa-inline.c (can_inline_edge_p): Do not deal with
15562 call_stmt_cannot_inline_p.
15563 (can_early_inline_edge_p): Likewise.
15564 (early_inliner): Initialize inline_failed.
15565 * lto-cgraph.c (lto_output_edge): Sanity check inline_failed.
15566
15567 2016-05-03 Uros Bizjak <ubizjak@gmail.com>
15568
15569 * config/i386/predicates.md (x87nonimm_ssenomem_operand): Rename
15570 from nonimm_ssenomem_operand.
15571 (nonimm_ssenomem_operand): New predicate.
15572 * config/i386/i386.md (extendsfdf2): Use nonimm_ssenomem_operand
15573 as operand 0 predicate.
15574 (*extendsfdf2): Merge from *extendsfdf2_mixed and *extendsfdf2_i387.
15575 Disable unsupported alternatives using "enabled" attribute.
15576 Use register_ssemem_operand as operand 0 predicate.
15577 (*fop_<mode>_1): Use x87nonimm_ssenomem_operand as operand 1 predicate.
15578
15579 2016-05-03 Marek Polacek <polacek@redhat.com>
15580
15581 PR c/70859
15582 * input.c (expansion_point_location): New function.
15583 * input.h (expansion_point_location): Declare.
15584
15585 2016-05-03 Pierre-Marie de Rodat <derodat@adacore.com>
15586
15587 * dwarf2out.c (resolve_args_picking_1): Replace the frame_offset
15588 occurence with frame_offset_ ones.
15589
15590 2016-05-03 Alan Modra <amodra@gmail.com>
15591
15592 PR rtl-optimization/70890
15593 * ira.c (combine_and_move_insns): When moving def_insn, remove
15594 equivs on use_insn.
15595
15596 2016-05-03 Dominik Vogt <vogt@linux.vnet.ibm.com>
15597
15598 * config/s390/s390.md ("*r<noxa>sbg_<mode>_sll")
15599 ("*r<noxa>sbg_<mode>_srl"): New define_insns.
15600 ("*r<noxa>sbg_<mode>_srl_bitmask"): Rename by adding "_bitmask".
15601 ("*r<noxa>sbg_<mode>_sll_bitmask"): Likewise.
15602
15603 2016-05-03 Alan Modra <amodra@gmail.com>
15604
15605 * config/rs6000/rs6000.c (rs6000_savres_strategy): Correct condition
15606 for SAVE_MULTIPLE/STORE_MULTIPLE.
15607
15608 2016-05-03 Jakub Jelinek <jakub@redhat.com>
15609
15610 * config/i386/i386.md (*truncdfsf_mixed, *truncdfsf_i387,
15611 *truncxfsf2_mixed, *truncxfdf2_mixed): Use v constraint instead of x.
15612
15613 2016-05-03 Richard Biener <rguenther@suse.de>
15614
15615 * gimplify.h (get_initialized_tmp_var): Add allow_ssa parameter
15616 default true.
15617 (gimplify_arg): Likewise.
15618 * gimplify.c (gimplify_expr): Add overload with allow_ssa parameter,
15619 re-writing the result to a decl if required.
15620 (internal_get_tmp_var): Add allow_ssa parameter
15621 and override into_ssa with it.
15622 (get_formal_tmp_var): Adjust.
15623 (get_initialized_tmp_var): Add allow_ssa parameter.
15624 (gimplify_arg): Add allow_ssa parameter and avoid generating
15625 SSA names for the result false.
15626 (gimplify_call_expr): If the call may return twice do not
15627 gimplify parameters into SSA.
15628 (prepare_gimple_addressable): Do not allow an SSA name as temporary.
15629 (gimplify_modify_expr): Adjust assert. For noreturn calls
15630 with a SSA name LHS adjust its def.
15631 (gimplify_save_expr): Do not allow an SSA name as save-expr result.
15632 (gimplify_one_sizepos): Do not allow an SSA name as a sizepos.
15633 (gimplify_body): Init GIMPLE SSA data structures and gimplify into-SSA.
15634 (gimplify_scan_omp_clauses): Make sure OMP_CLAUSE_SIZE is not
15635 an SSA name. Likewise for OMP_CLAUSE_REDUCTION operands.
15636 (gimplify_omp_for): Likewise for OMP_CLAUSE_DECL. Likewise
15637 for OMP_FOR_COND, OMP_FOR_INCR and OMP_CLAUSE_LINEAR_STEP.
15638 (optimize_target_teams): Do not allow SSA names for clause operands.
15639 (gimplify_expr): Likewise for where we mark the result addressable.
15640 * passes.def (pass_init_datastructures): Remove.
15641 * tree-into-ssa.c (mark_def_sites): Ignore existing SSA names.
15642 (rewrite_stmt): Likewise.
15643 * tree-inline.c (initialize_cfun): Properly transfer SSA state.
15644 (replace_locals_op): Replace SSA names.
15645 (copy_gimple_seq_and_replace_locals): Init src_cfun.
15646 * gimple-low.c (lower_builtin_setjmp): Deal with SSA.
15647 * cgraph.c (release_function_body): Free CFG annotations only
15648 when we have a CFG. Simplify.
15649 * gimple-fold.c (gimplify_and_update_call_from_tree): Use
15650 force_gimple_operand instead of get_initialized_tmp_var.
15651 * tree-pass.h (make_pass_init_datastructures): Remove.
15652 * tree-ssa.c (execute_init_datastructures): Remove.
15653 (pass_data_init_datastructures): Likewise.
15654 (class pass_init_datastructures): Likewise.
15655 (make_pass_init_datastructures): Likewise.
15656 * omp-low.c (create_omp_child_function): Init SSA data structures.
15657 (grid_expand_target_grid_body): Likewise.
15658 * tree-cfg.c (move_block_to_fn): Double-check the DEF is an SSA
15659 name before adding it to names_to_release.
15660 (remove_bb): Always release SSA defs.
15661 * tree-ssa-ccp.c (get_default_value): Check SSA_NAME_VAR
15662 before dereferencing it.
15663 * cgraphunit.c (init_lowered_empty_function): Always
15664 int SSA data structures.
15665 * tree-ssanames.c (release_defs): Remove assert that we are in
15666 SSA form.
15667 * trans-mem.c (diagnose_tm_1): Handle SSA name function.
15668
15669 2016-05-03 Jakub Jelinek <jakub@redhat.com>
15670 Uros Bizjak <ubizjak@gmail.com>
15671
15672 PR rtl-optimization/70467
15673 * config/i386/predicates.md (x86_64_hilo_int_operand,
15674 x86_64_hilo_general_operand): New predicates.
15675 * config/i386/constraints.md (Wd): New constraint.
15676 * config/i386/i386.md (mode attr di): Use Wd instead of e.
15677 (general_hilo_operand): New mode attr.
15678 (add<mode>3, sub<mode>3): Use <general_hilo_operand>
15679 instead of <general_operand>.
15680 (*add<dwi>3_doubleword, *sub<dwi>3_doubleword): Use
15681 x86_64_hilo_general_operand instead of <general_operand>.
15682
15683 2016-05-03 Jakub Jelinek <jakub@redhat.com>
15684
15685 PR tree-optimization/70916
15686 * tree-if-conv.c (constant_or_ssa_name): Removed.
15687 (fold_build_cond_expr): Use is_gimple_val instead of
15688 constant_or_ssa_name.
15689
15690 PR tree-optimization/70916
15691 * tree-vect-patterns.c (vect_recog_mask_conversion_pattern): Give up
15692 if COND_EXPR rhs1 is neither SSA_NAME nor COMPARISON_CLASS_P.
15693
15694 PR target/49244
15695 * tree-ssa-ccp.c: Include stor-layout.h and optabs-query.h.
15696 (optimize_atomic_bit_test_and): New function.
15697 (pass_fold_builtins::execute): Use it.
15698 * optabs.def (atomic_bit_test_and_set_optab,
15699 atomic_bit_test_and_complement_optab,
15700 atomic_bit_test_and_reset_optab): New optabs.
15701 * internal-fn.def (ATOMIC_BIT_TEST_AND_SET,
15702 ATOMIC_BIT_TEST_AND_COMPLEMENT, ATOMIC_BIT_TEST_AND_RESET): New ifns.
15703 * builtins.h (expand_ifn_atomic_bit_test_and): New prototype.
15704 * builtins.c (expand_ifn_atomic_bit_test_and): New function.
15705 * internal-fn.c (expand_ATOMIC_BIT_TEST_AND_SET,
15706 expand_ATOMIC_BIT_TEST_AND_COMPLEMENT,
15707 expand_ATOMIC_BIT_TEST_AND_RESET): New functions.
15708 * doc/md.texi (atomic_bit_test_and_set@var{mode},
15709 atomic_bit_test_and_complement@var{mode},
15710 atomic_bit_test_and_reset@var{mode}): Document.
15711 * config/i386/sync.md (atomic_bit_test_and_set<mode>,
15712 atomic_bit_test_and_complement<mode>,
15713 atomic_bit_test_and_reset<mode>): New expanders.
15714 (atomic_bit_test_and_set<mode>_1,
15715 atomic_bit_test_and_complement<mode>_1,
15716 atomic_bit_test_and_reset<mode>_1): New insns.
15717
15718 2016-05-03 Richard Sandiford <richard.sandiford@arm.com>
15719
15720 PR rtl-optimization/70687
15721 * combine.c (change_zero_ext): Check for scalar modes. Use wide_int
15722 instead of unsigned HOST_WIDE_INT.
15723
15724 2016-05-03 Bernd Schmidt <bschmidt@redhat.com>
15725
15726 PR rtl-optimization/44281
15727 * hard-reg-set.h (struct target_hard_regs): New field
15728 x_fixed_nonglobal_reg_set.
15729 (fixed_nonglobal_reg_set): New macro.
15730 * reginfo.c (init_reg_sets_1): Initialize it.
15731 * ira.c (setup_alloc_regs): Use fixed_nonglobal_reg_set instead
15732 of fixed_reg_set.
15733 * df-scan.c (df_insn_refs_collect): Asms may reference global regs.
15734
15735 2016-05-03 Bin Cheng <bin.cheng@arm.com>
15736
15737 PR tree-optimization/56541
15738 * doc/invoke.texi (@item max-tree-if-conversion-phi-args): New item.
15739 * params.def (PARAM_MAX_TREE_IF_CONVERSION_PHI_ARGS): new param.
15740 * tree-if-conv.c (MAX_PHI_ARG_NUM): new macro.
15741 (any_complicated_phi): new static variable.
15742 (aggressive_if_conv): delete.
15743 (if_convertible_phi_p): support phis with more than two arguments.
15744 (if_convertible_bb_p): remvoe check on aggressive_if_conv and
15745 critical pred edges.
15746 (ifcvt_split_critical_edges): support phis with more than two
15747 arguments by checking new parameter. only split critical edges
15748 if needed.
15749 (tree_if_conversion): handle simd pragma marked loop using new
15750 local variable aggressive_if_conv. check any_complicated_phi.
15751
15752 2016-05-03 Bin Cheng <bin.cheng@arm.com>
15753
15754 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Check depends_on
15755 before using it.
15756
15757 2016-05-03 Bin Cheng <bin.cheng@arm.com>
15758
15759 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Don't clobber
15760 cbase.
15761
15762 2016-05-03 Oleg Endo <olegendo@gcc.gnu.org>
15763
15764 * config/sh/sh.md (udivsi3, divsi3, mulsi3): Simplify.
15765 (mulhisi3, umulhisi3, (smulsi3_highpart, umulsi3_highpart): Convert to
15766 define_insn_and_split.
15767 (mulsi3_i): New define_insn_and_split.
15768 (mulsi3_call): Convert to define_insn.
15769 (mulsidi3, mulsidi3_compact, umulsidi3, umulsidi3_compact):
15770 Remove constraints.
15771
15772 2016-05-02 Michael Meissner <meissner@linux.vnet.ibm.com>
15773
15774 * machmode.h (mode_complex): Add support to give the complex mode
15775 for a given mode.
15776 (GET_MODE_COMPLEX_MODE): Likewise.
15777 * stor-layout.c (layout_type): For COMPLEX_TYPE, use the mode
15778 stored by build_complex_type and gfc_build_complex_type instead of
15779 trying to figure out the appropriate mode based on the size. Raise
15780 an assertion error, if the type was not set.
15781 * genmodes.c (struct mode_data): Add field for the complex type of
15782 the given type.
15783 (blank_mode): Likewise.
15784 (make_complex_modes): Remember the complex mode created in the
15785 base type.
15786 (emit_mode_complex): Write out the mode_complex array to map a
15787 type mode to the complex version.
15788 (emit_insn_modes_c): Likewise.
15789 * tree.c (build_complex_type): Set the complex type to use before
15790 calling layout_type.
15791 * config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Add
15792 support for __float128 complex datatypes.
15793 (rs6000_hard_regno_mode_ok): Likewise.
15794 (rs6000_setup_reg_addr_masks): Likewise.
15795 (rs6000_complex_function_value): Likewise.
15796 * config/rs6000/rs6000.h (FLOAT128_IEEE_P): Likewise.
15797 __float128 and __ibm128 complex.
15798 (FLOAT128_IBM_P): Likewise.
15799 (ALTIVEC_ARG_MAX_RETURN): Likewise.
15800 * doc/extend.texi (Additional Floating Types): Document that
15801 -mfloat128 must be used to enable __float128. Document complex
15802 __float128 and __ibm128 support.
15803
15804 2016-05-02 Jakub Jelinek <jakub@redhat.com>
15805
15806 PR target/49244
15807 * gimple.c (gimple_builtin_call_types_compatible_p): Allow
15808 char/short arguments promoted to int because of promote_prototypes.
15809
15810 2016-05-02 Uros Bizjak <ubizjak@gmail.com>
15811
15812 * config/i386/predicates.md (register_ssemem_operand): New predicate.
15813 * config/i386/i386.md (*cmpi<FPCMP:unord><MODEF:mode>): Merge from
15814 *cmpi<FPCMP:unord><MODEF:mode>_mixed and
15815 *cmpi<FPCMP:unord><X87MODEF:mode>_i387. Disable unsupported
15816 alternatives using "enabled" attribute. Use register_ssemem_operand
15817 as operand 1 predicate.
15818 (*cmpi<unord>xf_i387): Split XFmode pattern from
15819 *cmpi<FPCMP:unord><X87MODEF:mode>_i387.
15820 (*absneg<mode>2): Merge from *absneg<mode>2_mixed and
15821 *absneg<mode>2_i387. Disable unsupported alternatives using
15822 "enabled" attribute.
15823 (*absnegxf2_i387): Split XFmode pattern from *absneg<mode>2_i387.
15824
15825 2016-05-02 Nathan Sidwell <nathan@codesourcery.com>
15826
15827 * omp-low.c (lower_oacc_head_tail): Assert there is at least one
15828 marker.
15829 (oacc_loop_process): Check mask for loop termination.
15830
15831 2016-05-02 Jan Hubicka <hubicka@ucw.cz>
15832
15833 * cif-code.def (CIF_THUNK): Add.
15834 * ipa-inline-analsysis.c (evaluate_conditions_for_known_args): Revert
15835 accidental change.
15836
15837 2016-05-02 Jan Hubicka <hubicka@ucw.cz>
15838
15839 * ipa-inline-analysis.c (reset_inline_summary): Clear fp_expressions
15840 (dump_inline_summary): Dump it.
15841 (fp_expression_p): New predicate.
15842 (estimate_function_body_sizes): Use it.
15843 (inline_merge_summary): Merge fp_expressions.
15844 (inline_read_section): Read fp_expressions.
15845 (inline_write_summary): Write fp_expressions.
15846 * ipa-inline.c (can_inline_edge_p): Permit inlining across fp math
15847 codegen boundary if either caller or callee is !fp_expressions.
15848 * ipa-inline.h (inline_summary): Add fp_expressions.
15849 * ipa-inline-transform.c (inline_call): When inlining !fp_expressions
15850 to fp_expressions be sure the fp generation flags are updated.
15851
15852 2016-05-02 Jakub Jelinek <jakub@redhat.com>
15853
15854 PR rtl-optimization/70467
15855 * cse.c (cse_insn): Handle no-op MEM moves after folding.
15856
15857 PR rtl-optimization/70467
15858 * ipa-pure-const.c (check_call): Handle internal calls even in
15859 ipa mode like in local mode.
15860
15861 2016-05-02 Bernd Edlinger <bernd.edlinger@hotmail.de>
15862
15863 * doc/install.texi: Document supported in-tree gmp/mpfr/mpc versions.
15864
15865 2016-05-02 Marc Glisse <marc.glisse@inria.fr>
15866
15867 * match.pd (X u< X, X u> X): New transformations.
15868
15869 2016-05-02 Marc Glisse <marc.glisse@inria.fr>
15870
15871 * flag-types.h (enum warn_strict_overflow_code): Move ...
15872 * coretypes.h: ... here.
15873 * fold-const.h (fold_overflow_warning): Declare.
15874 * fold-const.c (fold_overflow_warning): Make non-static.
15875 (fold_comparison): Move the transformation of X +- C1 CMP C2
15876 into X CMP C2 -+ C1 ...
15877 * match.pd: ... here.
15878 * gimple-fold.c (fold_stmt_1): Protect with
15879 fold_defer_overflow_warnings.
15880
15881 2016-05-02 Nathan Sidwell <nathan@codesourcery.com>
15882
15883 * omp-low.c (struct oacc_loop): Add 'inner' field.
15884 (new_oacc_loop_raw): Initialize it to zero.
15885 (oacc_loop_fixed_partitions): Initialize it.
15886 (oacc_loop_auto_partitions): Partition outermost loop to outermost
15887 available partitioning.
15888
15889 2016-05-02 Claudiu Zissulescu <claziss@synopsys.com>
15890
15891 * config/arc/arc.md (mulsidi3): Change operand 0 predicate to
15892 register_operand.
15893 (umulsidi3): Likewise.
15894 (indirect_jump): Fix jump instruction assembly patterns.
15895
15896 2016-05-02 Thomas Schwinge <thomas@codesourcery.com>
15897
15898 PR target/70860
15899 * config/nvptx/nvptx.c (nvptx_libcall_value): Handle NULL cfun.
15900 (nvptx_function_value): Assert non-NULL cfun.
15901
15902 2016-05-02 Eric Botcazou <ebotcazou@adacore.com>
15903
15904 PR rtl-optimization/70886
15905 * sched-deps.c (estimate_dep_weak): Canonicalize cselib values.
15906
15907 * cselib.h (rtx_equal_for_cselib_1): Declare.
15908 (rtx_equal_for_cselib_p: New inline function.
15909 * cselib.c (rtx_equal_for_cselib_p): Delete.
15910 (rtx_equal_for_cselib_1): Make public.
15911
15912 2016-05-02 Uros Bizjak <ubizjak@gmail.com>
15913
15914 * config/i386/predicates.md (nonimm_ssenomem_operand): New predicate.
15915 (register_mixssei387nonimm_operand): Remove predicate.
15916 * config/i386/i386.md (*fop_<mode>_comm): Merge from
15917 *fop_<mode>_comm_mixed and *fop_<mode>_comm_i387. Disable unsupported
15918 alternatives using "enabled" attribute. Also check X87_ENABLE_ARITH
15919 for TARGET_MIX_SSE_I387 alternatives.
15920 (*fop_<mode>_1): Merge from *fop_<mode>_1_mixed and *fop_<mode>_1_i387.
15921 Disable unsupported alternatives using "enabled" attribute. Use
15922 nonimm_ssenomem_operand as operand 1 predicate. Also check
15923 X87_ENABLE_ARITH for TARGET_MIX_SSE_I387 alternatives.
15924
15925 2016-05-02 Richard Sandiford <richard.sandiford@arm.com>
15926
15927 * tree.c (cst_and_fits_in_hwi): Simplify.
15928
15929 2016-05-02 Richard Sandiford <richard.sandiford@arm.com>
15930
15931 * tree.h (wi::to_wide): New function.
15932 * expr.c (expand_expr_real_1): Use wi::to_wide.
15933 * fold-const.c (int_const_binop_1): Likewise.
15934 (extract_muldiv_1): Likewise.
15935
15936 2016-05-02 Richard Sandiford <richard.sandiford@arm.com>
15937
15938 * wide-int.h: Update offset_int and widest_int documentation.
15939 (WI_SIGNED_SHIFT_RESULT): New macro.
15940 (wi::binary_shift): Define signed_shift_result_type for
15941 shifts on offset_int- and widest_int-like types.
15942 (generic_wide_int): Support <<= and >>= if << and >> are supported.
15943 * tree.h (int_bit_position): Use shift operators instead of wi::
15944 shifts.
15945 * alias.c (adjust_offset_for_component_ref): Likewise.
15946 * expr.c (get_inner_reference): Likewise.
15947 * fold-const.c (fold_comparison): Likewise.
15948 * gimple-fold.c (fold_nonarray_ctor_reference): Likewise.
15949 * gimple-ssa-strength-reduction.c (restructure_reference): Likewise.
15950 * tree-dfa.c (get_ref_base_and_extent): Likewise.
15951 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Likewise.
15952 (stmt_kills_ref_p): Likewise.
15953 * tree-ssa-ccp.c (bit_value_binop_1): Likewise.
15954 * tree-ssa-math-opts.c (find_bswap_or_nop_load): Likewise.
15955 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
15956 (ao_ref_init_from_vn_reference): Likewise.
15957
15958 2016-05-02 Richard Sandiford <richard.sandiford@arm.com>
15959
15960 * wide-int.h: Update offset_int and widest_int documentation.
15961 (WI_SIGNED_BINARY_PREDICATE_RESULT): New macro.
15962 (wi::binary_traits): Allow ordered comparisons between offset_int and
15963 offset_int, between widest_int and widest_int, and between either
15964 of these types and basic C types.
15965 (operator <, <=, >, >=): Define for the same combinations.
15966 * tree.h (tree_int_cst_lt): Use comparison operators instead
15967 of wi:: comparisons.
15968 (tree_int_cst_le): Likewise.
15969 * gimple-fold.c (fold_array_ctor_reference): Likewise.
15970 (fold_nonarray_ctor_reference): Likewise.
15971 * gimple-ssa-strength-reduction.c (record_increment): Likewise.
15972 * tree-affine.c (aff_comb_cannot_overlap_p): Likewise.
15973 * tree-parloops.c (try_transform_to_exit_first_loop_alt): Likewise.
15974 * tree-sra.c (completely_scalarize): Likewise.
15975 * tree-ssa-alias.c (stmt_kills_ref_p): Likewise.
15976 * tree-ssa-reassoc.c (extract_bit_test_mask): Likewise.
15977 * tree-vrp.c (extract_range_from_binary_expr_1): Likewise.
15978 (check_for_binary_op_overflow): Likewise.
15979 (search_for_addr_array): Likewise.
15980 * ubsan.c (ubsan_expand_objsize_ifn): Likewise.
15981
15982 2016-05-02 Claudiu Zissulescu <claziss@synopsys.com>
15983
15984 * config/arc/arc.c (arc_preferred_simd_mode): Remove enum keyword.
15985 (arc_save_restore): Likewise.
15986 (arc_dwarf_register_span): Likewise.
15987 (arc_output_pic_addr_const): Initialize suffix variable.
15988
15989 2016-05-02 Martin Liska <mliska@suse.cz>
15990
15991 * symbol-summary.h (function_summary::function_summary):
15992 Remove checking assert for all cgraph nodes.
15993 (function_summary::get): Check summary_uid.
15994 (symtab_insertion): Check summary_uid.
15995
15996 2016-05-02 Claudiu Zissulescu <claziss@synopsys.com>
15997
15998 * config/arc/arc-protos.h (compact_memory_operand_p): Declare.
15999 * config/arc/arc.c (arc_output_commutative_cond_exec): Consider
16000 bmaskn instruction.
16001 (arc_dwarf_register_span): Remove enum keyword.
16002 (compact_memory_operand_p): New function.
16003 * config/arc/arc.h (reg_class): Add code density register classes.
16004 (REG_CLASS_NAMES): Likewise.
16005 (REG_CLASS_CONTENTS): Likewise.
16006 * config/arc/arc.md (*movqi_insn): Add code density instructions.
16007 (*movhi_insn, *movsi_insn, *movsf_insn): Likewise.
16008 (*extendhisi2_i, andsi3_i, cmpsi_cc_insn_mixed): Likewise.
16009 (*cmpsi_cc_c_insn, *movsi_ne): Likewise.
16010 * config/arc/constraints.md (C2p, Uts, Cm1, Cm3, Ucd): New
16011 constraints.
16012 (h, Rcd, Rsd, Rzd): New register constraints.
16013 (T): Use compact_memory_operand_p function.
16014 * config/arc/predicates.md (compact_load_memory_operand): Remove.
16015
16016 2016-05-02 Oleg Endo <olegendo@gcc.gnu.org>
16017
16018 * config/sh/sh.md (*negnegt, *movtt): Remove.
16019
16020 2016-05-02 Marek Polacek <polacek@redhat.com>
16021 Tom de Vries <tom@codesourcery.com>
16022
16023 PR tree-optimization/70700
16024 * tree-ssa-structalias.c (dump_pred_graph): Fix getting varinfo for ids
16025 bigger than FIRST_REF_NODE.
16026
16027 2016-05-02 Oleg Endo <olegendo@gcc.gnu.org>
16028
16029 PR target/52898
16030 * config/sh/sh.c (sh_option_override): Remove TARGET_CBRANCHDI4,
16031 TARGET_CMPEQDI_T.
16032 (prepare_cbranch_operands): Don't use scratch register. Assume that
16033 function is used when pseudos can be created.
16034 (expand_cbranchdi4): Likewise. Remove unused TARGET_CMPEQDI_T paths.
16035 * config/sh/sh.md (cbranchsi4): Allow only when pseudos can be created.
16036 (cbranchdi4, cbranchdi4_i): Simplify to single cbranchdi4
16037 define_expand. Allow it only when pseudos can be created.
16038 * config/sh/sh.opt (mcbranchdi, mcmpeqdi): Delete.
16039
16040 2016-05-01 Uros Bizjak <ubizjak@gmail.com>
16041
16042 * config/i386/constraints.md (BC): Only allow -1 operands.
16043 * config/i386/sse.md (mov<mode>_internal): Add (v,C) alternative.
16044 Add "enabled" attribute. Update XI mode attribute calculation.
16045 * config/i386/i386.md (*movxi_internal_avx512f): Add (v,C) alternative.
16046 (*movoi_internal_avx): Update XI mode attribute calculation.
16047 (*movti_internal): Ditto.
16048
16049 2016-05-01 Oleg Endo <olegendo@gcc.gnu.org>
16050
16051 * config/sh/sh.md (push, pop, ic_invalidate_line, cstoresi4, cstoredi4,
16052 cstoresf4, cstoredf4, fix_truncsfsi2): Remove constraints.
16053
16054 2016-05-01 Eric Botcazou <ebotcazou@adacore.com>
16055
16056 * config/rs6000/rs6000.c (altivec_expand_lv_builtin): Do not use switch
16057 statement on instruction code. Remove trailing spaces.
16058 (altivec_expand_stv_builtin): Likewise.
16059
16060 2016-05-01 Oleg Endo <olegendo@gcc.gnu.org>
16061
16062 * config/sh/sh.h (TARGET_SH4): Remove and use default implementation.
16063 (TARGET_FPU_DOUBLE): Simplify.
16064 (BASE_ARG_REG, DOUBLE_TYPE_SIZE, OPTIMIZE_MODE_SWITCHING): Replace
16065 'TARGET_SH4 || TARGET_SH2A_DOUBLE' conditions with 'TARGET_FPU_DOUBLE'.
16066 * config/sh/sh.c: Replace 'TARGET_SH4 || TARGET_SH2A_DOUBLE' conditions
16067 with 'TARGET_FPU_DOUBLE'.
16068 * config/sh/sh.md: Likewise.
16069
16070 2016-05-01 Yoshinori Sato <ysato@users.sourceforge.jp>
16071
16072 * config/sh/linux.h (SH_DIV_STRATEGY_DEFAULT,
16073 SH_DIV_STR_FOR_SIZE): Remove.
16074 * config/sh/netbsd-elf.h (SH_DIV_STRATEGY_DEFAULT,
16075 SH_DIV_STR_FOR_SIZE): Remove.
16076
16077 2016-05-01 Oleg Endo <olegendo@gcc.gnu.org>
16078
16079 * config/sh/predicates.md (any_register_operand, zero_extend_operand,
16080 logical_reg_operand): Delete.
16081 (arith_operand, arith_reg_dest, arith_or_int_operand, cmpsi_operand,
16082 arith_reg_or_0_operand, arith_reg_or_0_or_1_operand, logical_operand,
16083 logical_and_operand, movsrc_no_disp_mem_operand): Rewrite using
16084 match_operand and match_test.
16085 (sh_const_vec, sh_1el_vec): Remove redundant checks. Declare local
16086 variables on their first use. Return bool values.
16087 * config/sh/sh.h (LOAD_EXTEND_OP): Update comment.
16088 * config/sh/sh.md (andsi3, iorsi3): Use arith_reg_dest for result and
16089 arith_reg_operand for input operand. Remove empty constraints.
16090 (xorsi3): Delete.
16091 (*xorsi3_compact): Rename to xorsi3.
16092 (zero_extend<mode>si2): Use arith_reg_operand for input operand.
16093 (*zero_extend<mode>si2_disp_mem): Update comment.
16094 (mov_nop): Delete.
16095
16096 2016-04-30 Oleg Endo <olegendo@gcc.gnu.org>
16097
16098 * config/sh/t-sh: Remove SH5 support.
16099 * config.gcc: Likewise.
16100 * configure: Likewise.
16101
16102 2016-04-30 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
16103
16104 * config/darwin.h (LINK_COMMAND_SPEC_A): Handle -fcilkplus.
16105
16106 2016-04-30 Oleg Endo <olegendo@gcc.gnu.org>
16107
16108 * config/sh/sh.c (register_sh_passes, sh_option_override,
16109 sh_print_operand, prepare_move_operands,
16110 sh_can_follow_jump): Remove TARGET_SH1 checks.
16111 * config/sh/sh.h (TARGET_VARARGS_PRETEND_ARGS, VALID_REGISTER_P,
16112 PROMOTE_MODE): Likewise.
16113 * config/sh/sh.md (adddi3, addsi3, subdi3, subsi3, andsi3,
16114 movdi): Likewise.
16115
16116 2016-04-30 Alan Modra <amodra@gmail.com>
16117
16118 * config/rs6000/rs6000.c (rs6000_savres_strategy): Force inline
16119 restoring when fixed_reg_p, but allow out-of-line or stmw save.
16120 Check for user regs later to avoid unnecessary looping over regs.
16121 Merge user reg check with non-saved reg check. Don't force
16122 inline VR restore when static chain used.
16123 (rs6000_frame_related): Omit eh_frame info for user regs when
16124 saving.
16125 (fixed_regs_p): Delete.
16126
16127 2016-04-30 Alan Modra <amodra@gmail.com>
16128
16129 * config/rs6000/rs6000.c (SAVRES_MULTIPLE): Replace with..
16130 (SAVE_STRATEGY, REST_STRATEGY): ..this. Renumber and sort enum.
16131 Update all uses.
16132
16133 2016-04-30 Alan Modra <amodra@gmail.com>
16134
16135 PR target/69645
16136 * config/rs6000/rs6000.c (fixed_reg_p): New function.
16137 (fixed_regs_p): Rename from global_regs_p. Call fixed_reg_p.
16138 Update all uses.
16139
16140 2016-04-30 Alan Modra <amodra@gmail.com>
16141
16142 * config/rs6000/rs6000.c (rs6000_conditional_register_usage):
16143 Remove redundant PIC_OFFSET_TABLE_REGNUM test. Replace with
16144 flag_pic test for Darwin.
16145
16146 2016-04-30 Alan Modra <amodra@gmail.com>
16147
16148 * regs.h (struct reg_info_t): Delete freq_calls_crossed and
16149 throw_calls_crossed.
16150 (REG_FREQ_CALLS_CROSSED): Delete.
16151 (REG_N_THROWING_CALLS_CROSSED): Delete.
16152 * regstat.c (regstat_bb_compute_ri): Don't calculate
16153 REG_FREQ_CALLS_CROSSED and REG_N_THROWING_CALLS_CROSSED.
16154 (dump_reg_info): Don't print call cross frequency.
16155 * ira.c (combine_and_move_insns): Don't set REG_FREQ_CALLS_CROSSED
16156 and REG_N_THROWING_CALLS_CROSSED.
16157
16158 2016-04-30 Alan Modra <amodra@gmail.com>
16159
16160 * regs.h (struct reg_info_t): Delete live_length.
16161 (REG_LIVE_LENGTH): Delete macro.
16162 * regstat.c (regstat_bb_compute_ri): Delete artificial_uses,
16163 local_live, local_processed and local_live_last_luid params.
16164 Replace bb_index param with bb. Don't set REG_LIVE_LENGTH.
16165 Formatting fixes.
16166 (regstat_compute_ri): Adjust for above. Don't set
16167 REG_LIVE_LENGTH.
16168 (dump_reg_info): Don't print live length.
16169 * ira.c (update_equiv_regs): Replace test of REG_LIVE_LENGTH
16170 with test of setjmp_crosses. Don't set REG_LIVE_LENGTH.
16171 Localize loop_depth var.
16172
16173 2016-04-30 Alan Modra <amodra@gmail.com>
16174
16175 * ira.c (enum valid_equiv): New.
16176 (validate_equiv_mem): Return enum.
16177 (update_equiv_mem): Create replacement in more cases.
16178 (add_store_equivs): Update validate_equiv_mem call.
16179
16180 2016-04-30 Alan Modra <amodra@gmail.com>
16181
16182 * ira.c (combine_and_move_insns): Rather than scanning insns,
16183 use DF infrastucture to find use and def insns.
16184
16185 2016-04-30 Alan Modra <amodra@gmail.com>
16186
16187 ira.c (combine_and_move_insns): Move invariant conditions..
16188 (ira.c): ..to here. Call combine_and_move_insns before
16189 add_store_equivs. Call grow_reg_equivs later. Allocate
16190 req_equiv later using max_reg_num() rather than global max_regno.
16191 (contains_replace_regs): Delete.
16192 (add_store_equivs): Remove contains_replace_regs test.
16193
16194 2016-04-30 Alan Modra <amodra@gmail.com>
16195
16196 * ira.c (struct equiv_mem_data): New.
16197 (equiv_mem, equiv_mem_modified): Delete static vars.
16198 (validate_equiv_mem_from_store): Use "data" param to communicate..
16199 (validate_equiv_mem): ..from here.
16200
16201 2016-04-30 Alan Modra <amodra@gmail.com>
16202
16203 * ira.c (add_store_equivs, combine_and_move_insns): New functions,
16204 split out from..
16205 (update_reg_equivs): ..here. Move allocation and freeing of
16206 reg_equiv, and calls to grow_reg_equivs, init_alias_analysis,
16207 end_alias_analysis to..
16208 (ira): ..here.
16209
16210 2016-04-30 Alan Modra <amodra@gmail.com>
16211
16212 * ira.c (pdx_subregs): Delete.
16213 (struct equivalence): Add pdx_subregs field.
16214 (set_paradoxical_subreg): Remove pdx_subregs param. Update
16215 pdx_subregs access.
16216 (update_equiv_regs): Don't create or free pdx_subregs. Update
16217 pdx_subregs access.
16218
16219 2016-04-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
16220
16221 * config/rs6000/altivec.h: Change definitions of vec_xl and
16222 vec_xst.
16223 * config/rs6000/rs6000-builtin.def (LD_ELEMREV_V2DF): New.
16224 (LD_ELEMREV_V2DI): New.
16225 (LD_ELEMREV_V4SF): New.
16226 (LD_ELEMREV_V4SI): New.
16227 (LD_ELEMREV_V8HI): New.
16228 (LD_ELEMREV_V16QI): New.
16229 (ST_ELEMREV_V2DF): New.
16230 (ST_ELEMREV_V2DI): New.
16231 (ST_ELEMREV_V4SF): New.
16232 (ST_ELEMREV_V4SI): New.
16233 (ST_ELEMREV_V8HI): New.
16234 (ST_ELEMREV_V16QI): New.
16235 (XL): New.
16236 (XST): New.
16237 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
16238 descriptions for VSX_BUILTIN_VEC_XL and VSX_BUILTIN_VEC_XST.
16239 * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Map from
16240 TARGET_P9_VECTOR to RS6000_BTM_P9_VECTOR.
16241 (altivec_expand_builtin): Add handling for
16242 VSX_BUILTIN_ST_ELEMREV_<MODE> and VSX_BUILTIN_LD_ELEMREV_<MODE>.
16243 (rs6000_invalid_builtin): Add error-checking for
16244 RS6000_BTM_P9_VECTOR.
16245 (altivec_init_builtins): Define builtins used to implement vec_xl
16246 and vec_xst.
16247 (rs6000_builtin_mask_names): Define power9-vector.
16248 * config/rs6000/rs6000.h (MASK_P9_VECTOR): Define.
16249 (RS6000_BTM_P9_VECTOR): Define.
16250 (RS6000_BTM_COMMON): Include RS6000_BTM_P9_VECTOR.
16251 * config/rs6000/vsx.md (vsx_ld_elemrev_v2di): New define_insn.
16252 (vsx_ld_elemrev_v2df): Likewise.
16253 (vsx_ld_elemrev_v4sf): Likewise.
16254 (vsx_ld_elemrev_v4si): Likewise.
16255 (vsx_ld_elemrev_v8hi): Likewise.
16256 (vsx_ld_elemrev_v16qi): Likewise.
16257 (vsx_st_elemrev_v2df): Likewise.
16258 (vsx_st_elemrev_v2di): Likewise.
16259 (vsx_st_elemrev_v4sf): Likewise.
16260 (vsx_st_elemrev_v4si): Likewise.
16261 (vsx_st_elemrev_v8hi): Likewise.
16262 (vsx_st_elemrev_v16qi): Likewise.
16263 * doc/extend.texi: Add prototypes for vec_xl and vec_xst. Correct
16264 grammar.
16265
16266 2016-04-29 Patrick Palka <ppalka@gcc.gnu.org>
16267
16268 * tree-ssa-threadedge.c (simplify_control_stmt_condition): Split
16269 out into ...
16270 (simplify_control_stmt_condition_1): ... here. Recurse into
16271 BIT_AND_EXPRs and BIT_IOR_EXPRs.
16272
16273 2016-04-29 David Edelsohn <dje.gcc@gmail.com>
16274
16275 PR target/69810
16276 * config/rs6000/rs6000.md (EXTQI): Don't allow extension to HImode.
16277 (zero_extendqi<mode>2_dot): Revert earlier conversion from
16278 define_insn_and_split to define_insn.
16279 (zero_extendqi<mode>2_dot2): Same.
16280 (extendqi<mode>2_dot): Same.
16281 (extendqi<mode>2_dot2): Same.
16282
16283 2016-04-29 Uros Bizjak <ubizjak@gmail.com>
16284
16285 * config/i386/i386.md (unspec): Add UNSPEC_PROBE_STACK.
16286 (probe_stack): New expander.
16287 (probe_stack_<mode>): New insn pattern.
16288
16289 2016-04-29 Uros Bizjak <ubizjak@gmail.com>
16290
16291 * config/i386/i386.md
16292 (operations with memory inputs setting flags peephole2):
16293 Remove uneeded REG_P checks. Cleanup pattern generation.
16294
16295 2016-04-29 Ilya Enkovich <ilya.enkovich@intel.com>
16296
16297 * tree-vect-loop.c (vect_transform_loop): Fix
16298 nb_iterations_upper_bound computation for vectorized loop.
16299
16300 2016-04-29 Marek Polacek <polacek@redhat.com>
16301 Jakub Jelinek <jakub@redhat.com>
16302
16303 PR sanitizer/70342
16304 * fold-const.c (tree_single_nonzero_warnv_p): For TARGET_EXPR, use
16305 TARGET_EXPR_SLOT as a base.
16306
16307 2016-04-29 Andrew Burgess <andrew.burgess@embecosm.com>
16308
16309 * config/arc/arc.md (*loadqi_update): Replace use of 'rI' constraint
16310 with 'rCm2' constraints to limit possible immediate size.
16311 (*load_zeroextendqisi_update): Likewise.
16312 (*load_signextendqisi_update): Likewise.
16313 (*loadhi_update): Likewise.
16314 (*load_zeroextendhisi_update): Likewise.
16315 (*load_signextendhisi_update): Likewise.
16316 (*loadsi_update): Likewise.
16317 (*loadsf_update): Likewise.
16318
16319 2016-04-29 Uros Bizjak <ubizjak@gmail.com>
16320
16321 * config/i386/predicates.md (constm1_operand): Fix comparison.
16322
16323 2016-04-29 Claudiu Zissulescu <claziss@synopsys.com>
16324
16325 * testsuite/gcc.target/arc/ieee_eq.c: New test.
16326
16327 2016-04-29 Oleg Endo <olegendo@gcc.gnu.org>
16328
16329 * common/config/sh/sh-common.c (sh_option_optimization_table): Remove
16330 remaining SH5 related settings.
16331 * config/sh/sh-protos.h (shmedia_cleanup_truncate,
16332 shmedia_prepare_call_address): Delete.
16333 * config/sh/sh.c (sh_print_operand, output_stack_adjust,
16334 DWARF_CIE_DATA_ALIGNMENT, LOCAL_ALIGNMENT): Update comments.
16335 * config/sh/sh.h (SUBTARGET_ASM_RELAX_SPEC,
16336 UNSUPPORTED_SH2A): Remove m5 checks.
16337 (sh_divide_strategy_e): Remove SH5 division strategies.
16338 (TARGET_PTRMEMFUNC_VBIT_LOCATION): Remove and use default.
16339 * config/sh/sh.md (divsf3): Reinstate define_expand pattern.
16340
16341 2016-04-29 Dominik Vogt <vogt@linux.vnet.ibm.com>
16342
16343 * config/s390/s390.c (s390_rtx_costs): Update documentation.
16344
16345 2016-04-29 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
16346
16347 * config/s390/2964.md ("z13_unit_fxu", "z13_0"): Remove lder.
16348 * config/s390/s390.md ("movsi_larl", "*movsi_esa", "mov<mode>"):
16349 Change lder to ldr.
16350 * config/s390/vector.md ("mov<mode>"): Likewise.
16351
16352 2016-04-29 Ulrich Weigand <uweigand@de.ibm.com>
16353
16354 * config/s390/constraints.md ("U", "W"): Invoke
16355 s390_mem_constraint with "ZR" and "ZT".
16356 * config/s390/s390.c (s390_check_qrst_address): Reject invalid
16357 addresses when using LRA. Accept also short displacements for S
16358 and T constraints. Do not check for long displacement target for
16359 S and T constraints.
16360 (s390_mem_constraint): Remove handling of U and W constraints.
16361 * config/s390/s390.md (various patterns): Remove the short
16362 displacement constraints (Q and R) if a long displacement
16363 constraint is present. Add longdisp as required CPU capability.
16364 * config/s390/vector.md: Likewise.
16365 * config/s390/vx-builtins.md: Likewise.
16366
16367 2016-04-29 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
16368
16369 PR target/60040
16370 * reload1.c (reload): Call finish_spills before
16371 restarting reload loop. Skip select_reload_regs
16372 if update_eliminables_and_spill returns true.
16373
16374 2016-04-29 Claudiu Zissulescu <claziss@synopsys.com>
16375
16376 * config/arc/arc.h (UNSIGNED_INT12, UNSIGNED_INT16): Define.
16377 * config/arc/arc.md (umulhisi3): Use arc_short_operand predicate.
16378 (umulhisi3_imm): Update predicates and constraint letters.
16379 (umulhisi3_reg): Declare instruction as commutative.
16380 * config/arc/constraints.md (J12, J16): New constraints.
16381 * config/arc/predicates.md (short_unsigned_const_operand): New
16382 predicate.
16383 (arc_short_operand): Likewise.
16384 * testsuite/gcc.target/arc/umulsihi3_z.c: New file.
16385
16386 2016-04-29 Richard Biener <rguenther@suse.de>
16387
16388 PR tree-optimization/13962
16389 PR tree-optimization/65686
16390 * tree-ssa-alias.h (ptrs_compare_unequal): Declare.
16391 * tree-ssa-alias.c (ptrs_compare_unequal): New function
16392 using PTA to compare pointers.
16393 * match.pd: Add pattern for pointer equality compare simplification
16394 using ptrs_compare_unequal.
16395
16396 2016-04-29 Richard Biener <rguenther@suse.de>
16397
16398 * stor-layout.c (layout_type): Do not build a pointer-to-element
16399 type for arrays.
16400
16401 2016-04-29 Uros Bizjak <ubizjak@gmail.com>
16402
16403 * config/i386/i386.md (Load+RegOp to Mov+MemOp peephole2):
16404 Use SWI mode iterator. Use general_reg_operand predicate.
16405 (Load+RegOp to Mov+MemOp peephole2 with vector regs): Split
16406 peephole to MMX and SSE part. Use mmx_reg_operand and sse_reg_operand
16407 predicates.
16408
16409 2016-04-29 Jakub Jelinek <jakub@redhat.com>
16410
16411 PR middle-end/70843
16412 * fold-const.c (operand_equal_p): Don't verify hash value equality
16413 if arg0 == arg1.
16414 * tree.c (inchash::add_expr): Handle STATEMENT_LIST. Ignore BLOCK
16415 and OMP_CLAUSE.
16416
16417 2016-04-28 Jakub Jelinek <jakub@redhat.com>
16418
16419 PR target/70858
16420 * config/i386/i386.c (bdesc_special_args): Add | OPTION_MASK_ISA_64BIT
16421 to __builtin_ia32_lwpval64 and __builtin_ia32_lwpins64.
16422 (bdesc_args): Add | OPTION_MASK_ISA_64BIT to __builtin_ia32_bextr_u64,
16423 __builtin_ia32_bextri_u64, __builtin_ia32_bzhi_di,
16424 __builtin_ia32_pdep_di and __builtin_ia32_pext_di.
16425
16426 2016-04-28 Segher Boessenkool <segher@kernel.crashing.org>
16427
16428 * config/rs6000/rs6000.c (compute_save_world_info): Rename info_ptr
16429 to info. Don't initialize separate fields to 0. Clean up
16430 formatting a bit.
16431
16432 2016-04-28 Uros Bizjak <ubizjak@gmail.com>
16433
16434 * config/i386/i386.md (peephole2s for operations with memory inputs):
16435 Use SWI mode iterator.
16436 (peephole2s for operations with memory outputs): Ditto.
16437 Do not check for stack checking probe.
16438
16439 (probe_stack): Remove expander.
16440
16441 2016-04-28 Joern Rennecke <joern.rennecke@embecosm.com>
16442 Andrew Burgess <andrew.burgess@embecosm.com>
16443
16444 * config/arc/arc.c (arc_print_operand): Print integer 'H' / 'L'
16445 operands as 32-bits.
16446
16447 2016-04-28 Jason Merrill <jason@redhat.com>
16448
16449 * gdbinit.in: Skip line-map.h.
16450
16451 2016-04-28 Joern Rennecke <joern.rennecke@embecosm.com>
16452 Andrew Burgess <andrew.burgess@embecosm.com>
16453
16454 * config/arc/arc.c (arc_conditional_register_usage): Take
16455 TARGET_RRQ_CLASS into account.
16456 (arc_print_operand): Support printing 'p' and 's' operands.
16457 * config/arc/arc.h (TARGET_NPS_BITOPS_DEFAULT): Provide default
16458 as 0.
16459 (TARGET_RRQ_CLASS): Define.
16460 (IS_POWEROF2_OR_0_P): Define.
16461 * config/arc/arc.md (*movsi_insn): Add w/Clo, w/Chi, and w/Cbi
16462 alternatives.
16463 (*tst_movb): New define_insn.
16464 (*tst): Avoid recognition if it could prevent '*tst_movb'
16465 combination; replace c/CnL with c/Chs alternative.
16466 (*tst_bitfield_tst): New define_insn.
16467 (*tst_bitfield_asr): New define_insn.
16468 (*tst_bitfield): New define_insn.
16469 (andsi3_i): Add Rrq variant.
16470 (extzv): New define_expand.
16471 (insv): New define_expand.
16472 (*insv_i): New define_insn.
16473 (*movb): New define_insn.
16474 (*movb_signed): New define_insn.
16475 (*movb_high): New define_insn.
16476 (*movb_high_signed): New define_insn.
16477 (*movb_high_signed + 1): New define_split pattern.
16478 (*mrgb): New define_insn.
16479 (*mrgb + 1): New define_peephole2 pattern.
16480 (*mrgb + 2): New define_peephole2 pattern.
16481 * config/arc/arc.opt (mbitops): New option for nps400, uses
16482 TARGET_NPS_BITOPS_DEFAULT.
16483 * config/arc/constraints.md (q): Make register class conditional.
16484 (Rrq): New register constraint.
16485 (Chs): New constraint.
16486 (Clo): New constraint.
16487 (Chi): New constraint.
16488 (Cbf): New constraint.
16489 (Cbn): New constraint.
16490 (C18): New constraint.
16491 (Cbi): New constraint.
16492
16493 2016-04-28 Segher Boessenkool <segher@kernel.crashing.org>
16494
16495 * cfganal.c (bitmap_intersection_of_succs): Delete assert checking
16496 dst->popcount.
16497 (bitmap_intersection_of_preds): Ditto.
16498 (bitmap_union_of_succs): Ditto.
16499 (bitmap_union_of_preds): Ditto.
16500 * sbitmap.c (do_popcount): Delete.
16501 (BITMAP_DEBUGGING): Delete.
16502 (sbitmap_verify_popcount): Delete.
16503 (sbitmap_alloc): Don't initialize the popcount field.
16504 (sbitmap_alloc_with_popcount): Delete.
16505 (sbitmap_resize): Don't resize the popcount array.
16506 (sbitmap_vector_alloc): Don't initialize the popcount field.
16507 (bitmap_copy): Don't copy the popcount array.
16508 (bitmap_clear): Don't clear the popcount array.
16509 (bitmap_clear): Delete the popcount array handling.
16510 (bitmap_ior_and_compl): Delete the popcount assert.
16511 (bitmap_not): Ditto.
16512 (bitmap_and_compl): Ditto.
16513 (bitmap_and): Delete the popcount array handling.
16514 (bitmap_xor): Ditto.
16515 (bitmap_ior): Ditto.
16516 (bitmap_or_and): Delete the popcount assert.
16517 (bitmap_and_or): Ditto.
16518 (popcount_table): Delete.
16519 (sbitmap_elt_popcount): Delete.
16520 * sbitmap.h (simple_bitmap_def): Delete the popcount field.
16521 (bitmap_set_bit): Delete the popcount assert.
16522 (bitmap_clear_bit): Ditto.
16523 (sbitmap_free): Don't free the popcount array.
16524 (sbitmap_alloc_with_popcount): Delete declaration.
16525 (sbitmap_popcount): Ditto.
16526
16527 2016-04-28 Joern Rennecke <joern.rennecke@embecosm.com>
16528 Andrew Burgess <andrew.burgess@embecosm.com>
16529
16530 * config/arc/arc.h (SYMBOL_FLAG_CMEM): Define.
16531 (TARGET_NPS_CMEM_DEFAULT): Provide default definition.
16532 * config/arc/arc.c (arc_address_cost): Return 0 for cmem_address.
16533 (arc_encode_section_info): Set SYMBOL_FLAG_CMEM where indicated.
16534 * config/arc/arc.opt (mcmem): New option.
16535 * config/arc/arc.md (*extendqihi2_i): Add r/Uex alternative,
16536 supply length for r/m alternative.
16537 (*extendqisi2_ac): Likewise.
16538 (*extendhisi2_i): Add r/Uex alternative, supply length for r/m and
16539 r/Uex alternative.
16540 (movqi_insn): Add r/Ucm and Ucm/?Rac alternatives.
16541 (movhi_insn): Likewise.
16542 (movsi_insn): Add r/Ucm,Ucm/w alternatives.
16543 (*zero_extendqihi2_i): Add r/Ucm alternative.
16544 (*zero_extendqisi2_ac): Likewise.
16545 (*zero_extendhisi2_i): Likewise.
16546 * config/arc/constraints.md (Uex): New memory constraint.
16547 (Ucm): New define_constraint.
16548 * config/arc/predicates.md (long_immediate_loadstore_operand):
16549 Return 0 for MEM with cmem_address address.
16550 (cmem_address_0): New predicates.
16551 (cmem_address_1): Likewise.
16552 (cmem_address_2): Likewise.
16553 (cmem_address): Likewise.
16554
16555 2016-04-28 Segher Boessenkool <segher@kernel.crashing.org>
16556
16557 * config/rs6000/rs6000.c (machine_function): Rename
16558 insn_chain_scanned_p to spe_insn_chain_scanned_p.
16559 (rs6000_stack_info): Adjust.
16560
16561 2016-04-28 Joern Rennecke <joern.rennecke@embecosm.com>
16562 Andrew Burgess <andrew.burgess@embecosm.com>
16563
16564 * config/arc/constraints.md (Usd): Convert to define_constraint.
16565 (Us<): Likewise.
16566 (Us>): Likewise.
16567
16568 2016-04-28 Jakub Jelinek <jakub@redhat.com>
16569
16570 PR target/70821
16571 * config/i386/sync.md (define_peephole2 *atomic_fetch_add_cmp<mode>):
16572 Add new peephole2 where the first insn is *mov<mode>_or instead of
16573 *mov<mode>_internal.
16574
16575 2016-04-28 Segher Boesssenkool <segher@kernel.crashing.org>
16576
16577 * tracer.c (bb_seen): Make static.
16578
16579 2016-04-28 Andrew Burgess <andrew.burgess@embecosm.com>
16580
16581 * common/config/arc/arc-common.c (arc_handle_option): Add NPS400
16582 support, setup defaults.
16583 * config/arc/arc-opts.h (enum processor_type): Add NPS400.
16584 * config/arc/arc.c (arc_init): Add NPS400 support.
16585 * config/arc/arc.h (CPP_SPEC): Add NPS400 defines.
16586 (TARGET_ARC700): NPS400 is also an ARC700.
16587 * config/arc/arc.opt: Add NPS400 options to -mcpu=.
16588
16589 2016-04-28 Segher Boessenkool <segher@kernel.crashing.org>
16590
16591 PR target/70668
16592 * config/nds32/nds32.md (casesi): Don't access the operands array
16593 out of bounds.
16594
16595 2016-04-28 Uros Bizjak <ubizjak@gmail.com>
16596
16597 * config/i386/i386.md (zeroing peephole2): Use general_reg_operand.
16598 (or $-1,reg peephole2): Ditto.
16599 (strict_low_part zeroing peephole2): Use SWI12 mode iterator.
16600
16601 2016-04-28 Markus Trippelsdorf <markus@trippelsdorf.de>
16602
16603 * doc/extend.texi (Common Function Attributes) [optimize]:
16604 Discourage use of the optimize attribute.
16605
16606 2016-04-28 Bill Seurer <seurer@linux.vnet.ibm.com>
16607
16608 * config/rs6000/rs6000-builtin.def (vec_adde): Change vec_adde to a
16609 special case builtin.
16610 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove
16611 ALTIVEC_BUILTIN_VEC_ADDE.
16612 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
16613 support for ALTIVEC_BUILTIN_VEC_ADDE.
16614 * config/rs6000/rs6000.c (altivec_init_builtins): Add definition
16615 for __builtin_vec_adde.
16616
16617 2016-04-28 Jakub Jelinek <jakub@redhat.com>
16618
16619 * config/i386/i386.md (sse4_1_round<mode>2): Add avx512f alternative.
16620 * config/i386/sse.md (sse4_1_round<ssescalarmodesuffix>): Likewise.
16621
16622 2016-04-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
16623
16624 PR testsuite/70595
16625 * doc/sourcebuild.texi (Effective-Target Keywords, Other
16626 attributes): Document cilkplus_runtime.
16627
16628 2016-04-28 Martin Jambor <mjambor@suse.cz>
16629
16630 * tree-cfg.c (verify_expr): Verify that local declarations belong to
16631 this function. Call verify_expr on MEM_REFs and bases of other
16632 handled_components.
16633
16634 2016-04-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
16635
16636 * internal-fn.c (expand_arith_overflow): Convert preprocessor check
16637 for WORD_REGISTER_OPERATIONS to runtime check.
16638
16639 2016-04-28 Claudiu Zissulescu <claziss@synopsys.com>
16640
16641 * config/arc/arc.h (ASM_SPEC): Pass mfpuda to assembler.
16642
16643 2016-04-28 Claudiu Zissulescu <claziss@synopsys.com>
16644
16645 * config/arc/arc.c (arc_process_double_reg_moves): Fix for
16646 big-endian compilation.
16647 * config/arc/arc.md (addf3): Likewise.
16648 (subdf3): Likewise.
16649 (muldf3): Likewise.
16650
16651 2016-04-28 Richard Biener <rguenther@suse.de>
16652
16653 PR tree-optimization/70840
16654 * match.pd: powi(-x, y) and powi(|x|,y) -> powi(x,y) if y is even;
16655 Fix pow(copysign(x, y), z) -> pow(x, z) and add powi variant;
16656 Mark x * pow(x,c) -> pow(x,c+1) commutative.
16657 Add powi(x,y) * powi(z,y) -> powi(x*z,y).
16658
16659 2015-04-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
16660
16661 * config/aarch64/aarch64.h (WORD_REGISTER_OPERATIONS): Define to 0
16662 and explain why in a comment.
16663
16664 2016-04-28 Claudiu Zissulescu <claziss@synopsys.com>
16665
16666 * config/arc/arc.md (cpu_facility): Add fpx variant.
16667 (subdf3): Prohibit use reverse sub when assist operations option
16668 is enabled.
16669 * config/arc/fpx.md (subdf3_insn, *dsubh_peep2_insn): Allow drsub
16670 instructions only when FPX is enabled.
16671 * testsuite/gcc.target/arc/trsub.c: New test.
16672
16673 2016-04-28 Uros Bizjak <ubizjak@gmail.com>
16674
16675 * config/i386/i386.md (*fop_<mode>_1_mixed): Do not check for
16676 mult_operator when calculating "type" attribute.
16677 (*fop_<mode>_1_i387): Ditto.
16678 (*fop_xf_1_i387): Ditto.
16679 (x87 stack loads peephole2): Add "reg = op (mem, reg)" peephole2.
16680 Use std::swap to swap operands. Use RTL expressions to generate
16681 converted pattern.
16682
16683 2016-04-28 Claudiu Zissulescu <claziss@synopsys.com>
16684 Joern Rennecke <joern.rennecke@embecosm.com>
16685
16686 * config/arc/arc-protos.h (arc_legitimize_pic_address): Remove
16687 declaration.
16688 (emit_pic_move): Remove.
16689 (arc_eh_uses, insn_is_tls_gd_dispatch): Declare.
16690 * config/arc/arc.c (emit_pic_move): Removed.
16691 (TARGET_HAVE_TLS): Define.
16692 (arc_conditional_register_usage): Test for arc_tp_regno.
16693 (arc_print_operand, arc_print_operand_address): Handle TLS
16694 unspecs.
16695 (arc_needs_pcl_p): New function.
16696 (arc_legitimate_pc_offset_p): Use arc_needs_pcl_p.
16697 (arc_legitimate_pic_addr_p): Handle TLS unspecs.
16698 (arc_raw_symbolic_reference_mentioned_p): Likewise.
16699 (arc_get_tp, arc_emit_call_tls_get_addr): New function.
16700 (arc_legitimize_tls_address): Likewise.
16701 (DTPOFF_ZERO_SYM): Define.
16702 (arc_legitimize_pic_address): Make it static, handle TLS cases.
16703 (arc_output_pic_addr_const): Print TLS unspecs.
16704 (prepare_pic_move): New function, replaces emit_pic_move.
16705 (arc_legitimate_constant_p): Handle TLS unspecs.
16706 (arc_legitimate_address_p): Likewise.
16707 (arc_rewrite_small_data_p): Use assert for TLS constants.
16708 (prepare_move_operands): Use prepare_pic_move.
16709 (arc_legitimize_address): Legitimize tls addresses.
16710 (arc_epilogue_uses): Check for arc_tp_regno.
16711 (arc_eh_uses, insn_is_tls_gd_dispatch): New function.
16712 * config/arc/arc.h [DEFAULT_LIBC != LIBC_UCLIBC] (EXTRA_SPECS):
16713 Define.
16714 [DEFAULT_LIBC != LIBC_UCLIBC] (ARC_TLS_EXTRA_START_SPEC):
16715 Likewise.
16716 [DEFAULT_LIBC != LIBC_UCLIBC] (STARTFILE_SPEC): Add
16717 %(arc_tls_extra_start_spec).
16718 (TARGET_CPU_CPP_BUILTINS): Define __ARC_TLS_REGNO__.
16719 (REGNO_OK_FOR_BASE_P): Check for arc_tp_regno.
16720 (EH_USES): Define.
16721 (INSN_REFERENCES_ARE_DELAYED): Use insn_is_tls_gd_dispatch.
16722 * config/arc/arc.md (UNSPEC_TLS_GD, UNSPEC_TLS_LD, UNSPEC_TLS_IE)
16723 (UNSPEC_TLS_OFF): Add.
16724 (R10_REG): Define.
16725 (tls_load_tp_soft, tls_gd_load, tls_gd_get_addr, tls_gd_dispatch)
16726 (get_thread_pointersi): New patterns.
16727 * config/arc/arc.opt (mtp-regno): New option.
16728 * config/arc/predicates.md (move_src_operand): Handle TLS symbols.
16729 (move_dest_operand): Likewise.
16730 * configure: Regenerate.
16731 * configure.ac: Add arc*-*-* case to test for tls.
16732 * doc/invoke.texi (ARC options): Document mtp-regno.
16733
16734 2016-04-28 Claudiu Zissulescu <claziss@synopsys.com>
16735
16736 * config/arc/arc.c (arc_vector_mode_supported_p): Add support for
16737 the new ARC HS SIMD instructions.
16738 (arc_preferred_simd_mode): New function.
16739 (arc_autovectorize_vector_sizes): Likewise.
16740 (TARGET_VECTORIZE_PREFERRED_SIMD_MODE)
16741 (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
16742 (arc_init_reg_tables): Accept new ARC HS SIMD modes.
16743 (arc_init_builtins): Add new SIMD builtin types.
16744 (arc_split_move): Handle 64 bit vector moves.
16745 * config/arc/arc.h (TARGET_PLUS_DMPY, TARGET_PLUS_MACD)
16746 (TARGET_PLUS_QMACW): Define.
16747 * config/arc/builtins.def (QMACH, QMACHU, QMPYH, QMPYHU, DMACH)
16748 (DMACHU, DMPYH, DMPYHU, DMACWH, DMACWHU, VMAC2H, VMAC2HU, VMPY2H)
16749 (VMPY2HU, VADDSUB2H, VSUBADD2H, VADDSUB, VSUBADD, VADDSUB4H)
16750 (VSUBADD4H): New builtins.
16751 * config/arc/simdext.md: Add new ARC HS SIMD instructions.
16752 * testsuite/gcc.target/arc/builtin_simdarc.c: New file.
16753
16754 2016-04-28 Eduard Sanou <dhole@openmailbox.org>
16755 Matthias Klose <doko@debian.org>
16756
16757 * doc/cppenv.texi: Document SOURCE_DATE_EPOCH environment variable.
16758
16759 2016-04-28 Richard Biener <rguenther@suse.de>
16760
16761 PR middle-end/70777
16762 * fold-const.c (fold_binary_loc): Remove x*x to pow(x,2.0)
16763 canonicalization.
16764
16765 2016-04-28 Oleg Endo <olegendo@gcc.gnu.org>
16766
16767 * common/config/sh/sh-common.c: Remove SH5 support.
16768 * config/sh/constraints.md: Likewise.
16769 * config/sh/config/sh/elf.h: Likewise.
16770 * config/sh/linux.h: Likewise.
16771 * config/sh/netbsd-elf.h: Likewise.
16772 * config/sh/predicates.md: Likewise.
16773 * config/sh/sh-c.c: Likewise.
16774 * config/sh/sh-protos.h: Likewise.
16775 * config/sh/sh.c: Likewise.
16776 * config/sh/sh.h: Likewise.
16777 * config/sh/sh.md: Likewise.
16778 * config/sh/sh.opt: Likewise.
16779 * config/sh/sync.md: Likewise.
16780 * config/sh/sh64.h: Delete.
16781 * config/sh/shmedia.h: Likewise.
16782 * config/sh/shmedia.md: Likewise.
16783 * config/sh/sshmedia.h: Likewise.
16784 * config/sh/t-netbsd-sh5-64: Likewise.
16785 * config/sh/t-sh64: Likewise.
16786 * config/sh/ushmedia.h: Likewise.
16787
16788 2016-04-28 Uros Bizjak <ubizjak@gmail.com>
16789
16790 * config/i386/i386.md (sign_extend to memory peephole2s): Use
16791 general_reg_operand instead of register_operand predicate.
16792
16793 2016-04-27 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
16794
16795 * params.def (MIN_PARTITION_SIZE): Set default value to 10000.
16796
16797 2016-04-27 Marc Glisse <marc.glisse@inria.fr>
16798
16799 * match.pd (A - B > A, A + B < A): New transformations.
16800
16801 2016-04-27 Patrick Palka <ppalka@gcc.gnu.org>
16802
16803 * genattrtab.c (write_test_expr): New parameter EMIT_PARENS
16804 which defaults to true. Emit an outer pair of parentheses only if
16805 EMIT_PARENS. When continuing a chain of && or || (or & or |),
16806 don't emit parentheses for the right-hand operand.
16807
16808 2016-04-27 Jeff Law <law@redhat.com>
16809
16810 * tree-ssa-dom.c (record_temporary_equivalences): Fix typo in comment.
16811
16812 2016-04-27 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
16813
16814 * config/rs6000/altivec.md (altivec_lvx_<mode>): Remove.
16815 (altivec_lvx_<mode>_internal): Document.
16816 (altivec_lvx_<mode>_2op): New define_insn.
16817 (altivec_lvx_<mode>_1op): Likewise.
16818 (altivec_lvx_<mode>_2op_si): Likewise.
16819 (altivec_lvx_<mode>_1op_si): Likewise.
16820 (altivec_stvx_<mode>): Remove.
16821 (altivec_stvx_<mode>_internal): Document.
16822 (altivec_stvx_<mode>_2op): New define_insn.
16823 (altivec_stvx_<mode>_1op): Likewise.
16824 (altivec_stvx_<mode>_2op_si): Likewise.
16825 (altivec_stvx_<mode>_1op_si): Likewise.
16826 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
16827 Expand vec_ld and vec_st during parsing.
16828 * config/rs6000/rs6000.c (altivec_expand_lvx_be): Commentary
16829 changes.
16830 (altivec_expand_stvx_be): Likewise.
16831 (altivec_expand_lv_builtin): Expand lvx built-ins to expose the
16832 address-masking behavior in RTL.
16833 (altivec_expand_stv_builtin): Expand stvx built-ins to expose the
16834 address-masking behavior in RTL.
16835 (altivec_expand_builtin): Change builtin code arguments for calls
16836 to altivec_expand_stv_builtin and altivec_expand_lv_builtin.
16837 (insn_is_swappable_p): Avoid incorrect swap optimization in the
16838 presence of lvx/stvx patterns.
16839 (alignment_with_canonical_addr): New function.
16840 (alignment_mask): Likewise.
16841 (find_alignment_op): Likewise.
16842 (recombine_lvx_pattern): Likewise.
16843 (recombine_stvx_pattern): Likewise.
16844 (recombine_lvx_stvx_patterns): Likewise.
16845 (rs6000_analyze_swaps): Perform a pre-pass to recognize lvx and
16846 stvx patterns from expand.
16847 * config/rs6000/vector.md (vector_altivec_load_<mode>): Use new
16848 expansions.
16849 (vector_altivec_store_<mode>): Likewise.
16850
16851 2016-04-26 Evandro Menezes <e.menezes@samsung.com>
16852
16853 * config/aarch64/aarch64.md
16854 (*movhf_aarch64): Add "movi %0, #0" to zero up register and
16855 remove the "fp" attributes.
16856 (*movsf_aarch64): Add "movi %0, #0" to zero up register and
16857 add the "simd" attributes.
16858 (*movdf_aarch64): Likewise.
16859 (*movtf_aarch64): Remove the "fp" attributes.
16860 * testsuite/gcc.target/aarch64/fmovf-zero-reg.c: Update accordingly.
16861 * testsuite/gcc.target/aarch64/fmovd-zero-reg.c: Likewise.
16862
16863 2016-04-27 David Malcolm <dmalcolm@redhat.com>
16864
16865 * emit-rtl.c (maybe_set_first_label_num): Strengthen param from
16866 rtx to rtx_code_label *.
16867 * rtl.h (maybe_set_first_label_num): Likewise.
16868
16869 2016-04-27 David Malcolm <dmalcolm@redhat.com>
16870
16871 * df-core.c (df_add_problem): Make the problem param be const.
16872 (df_remove_problem): Make local "problem" be const.
16873 * df-problems.c (problem_RD): Make const.
16874 (problem_LR): Likewise.
16875 (problem_LIVE): Likewise.
16876 (problem_MIR): Likewise.
16877 (problem_CHAIN): Likewise.
16878 (problem_WORD_LR): Likewise.
16879 (problem_NOTE): Likewise.
16880 (problem_MD): Likewise.
16881 * df-scan.c (problem_SCAN): Likewise.
16882 * df.h (struct df_problem): Make field "dependent_problem" be
16883 const.
16884 (struct dataflow): Likewise for field "problem".
16885 (df_add_problem): Make param const.
16886
16887 2016-04-27 Uros Bizjak <ubizjak@gmail.com>
16888
16889 * config/i386/i386.c (ix86_spill_class): Enable for TARGET_SSE2 when
16890 inter-unit moves to/from vector registers are enabled. Do not disable
16891 for TARGET_MMX.
16892
16893 2016-04-27 David Malcolm <dmalcolm@redhat.com>
16894
16895 * df.h (DF_SCAN, DF_LR, DF_LIVE, DF_RD, DF_CHAIN, DF_WORD_LR,
16896 DF_NOTE, DF_MD, DF_MIR, DF_LAST_PROBLEM_PLUS1): Convert from
16897 #define to...
16898 (enum df_problem_id): ...this new enum.
16899 (struct df_problem): Convert field "id" from "int" to
16900 enum df_problem_id.
16901
16902 2016-04-27 David Malcolm <dmalcolm@redhat.com>
16903
16904 * rtl.def: Update comment for "things in the instruction chain" to
16905 reflect the removal of the leading "i" field for INSN_UID in
16906 r210360. Fix bogus apostrophe.
16907
16908 2016-04-27 Uros Bizjak <ubizjak@gmail.com>
16909
16910 * config/i386/i386.md
16911 (lea arith with mem operand + setcc peephole2): Set operator mode.
16912
16913 2016-04-27 H.J. Lu <hongjiu.lu@intel.com>
16914
16915 PR target/70155
16916 * config/i386/i386.c (scalar_to_vector_candidate_p): Renamed to ...
16917 (dimode_scalar_to_vector_candidate_p): This.
16918 (timode_scalar_to_vector_candidate_p): New function.
16919 (scalar_to_vector_candidate_p): Likewise.
16920 (timode_check_non_convertible_regs): Likewise.
16921 (timode_remove_non_convertible_regs): Likewise.
16922 (remove_non_convertible_regs): Likewise.
16923 (remove_non_convertible_regs): Renamed to ...
16924 (dimode_remove_non_convertible_regs): This.
16925 (scalar_chain::~scalar_chain): Make it virtual.
16926 (scalar_chain::compute_convert_gain): Make it pure virtual.
16927 (scalar_chain::mark_dual_mode_def): Likewise.
16928 (scalar_chain::convert_insn): Likewise.
16929 (scalar_chain::convert_registers): Likewise.
16930 (scalar_chain::add_to_queue): Make it protected.
16931 (scalar_chain::emit_conversion_insns): Likewise.
16932 (scalar_chain::replace_with_subreg): Likewise.
16933 (scalar_chain::replace_with_subreg_in_insn): Likewise.
16934 (scalar_chain::convert_op): Likewise.
16935 (scalar_chain::convert_reg): Likewise.
16936 (scalar_chain::make_vector_copies): Likewise.
16937 (scalar_chain::convert_registers): New pure virtual function.
16938 (class dimode_scalar_chain): New class.
16939 (class timode_scalar_chain): Likewise.
16940 (scalar_chain::mark_dual_mode_def): Renamed to ...
16941 (dimode_scalar_chain::mark_dual_mode_def): This.
16942 (timode_scalar_chain::mark_dual_mode_def): New function.
16943 (timode_scalar_chain::convert_insn): Likewise.
16944 (dimode_scalar_chain::convert_registers): Likewise.
16945 (scalar_chain::compute_convert_gain): Renamed to ...
16946 (dimode_scalar_chain::compute_convert_gain): This.
16947 (scalar_chain::replace_with_subreg): Renamed to ...
16948 (dimode_scalar_chain::replace_with_subreg): This.
16949 (scalar_chain::replace_with_subreg_in_insn): Renamed to ...
16950 (dimode_scalar_chain::replace_with_subreg_in_insn): This.
16951 (scalar_chain::make_vector_copies): Renamed to ...
16952 (dimode_scalar_chain::make_vector_copies): This.
16953 (scalar_chain::convert_reg): Renamed to ...
16954 (dimode_scalar_chain::convert_reg ): This.
16955 (scalar_chain::convert_op): Renamed to ...
16956 (dimode_scalar_chain::convert_op): This.
16957 (scalar_chain::convert_insn): Renamed to ...
16958 (dimode_scalar_chain::convert_insn): This.
16959 (scalar_chain::convert): Call convert_registers.
16960 (convert_scalars_to_vector): Change to scalar_chain pointer to
16961 use timode_scalar_chain in 64-bit mode and dimode_scalar_chain
16962 in 32-bit mode. Delete scalar_chain pointer. Call
16963 free_dominance_info in 64-bit mode.
16964 (pass_stv::gate): Remove TARGET_64BIT check.
16965 (ix86_option_override): Put the 64-bit STV pass before the CSE
16966 pass.
16967
16968 2016-04-27 Pierre-Marie de Rodat <derodat@adacore.com>
16969
16970 * dwarf2out.h (struct dw_loc_descr_node): Remove the
16971 dw_loc_frame_offset field.
16972 * dwarf2out.c (new_loc_descr): Likewise.
16973 (resolve_args_picking_1): Turn the VISITED hash set into a
16974 FRAME_OFFSET hash map. Use it to associate a frame offset to
16975 visited nodes. Remove uses of the CHECKING_P macro.
16976 (resolve_args_picking): Update call to resolve_args_picking_1.
16977
16978 2016-04-27 Martin Liska <mliska@suse.cz>
16979
16980 * tree-ssa-loop-ivopts.c (iv_ca_dump): Fix level of indentation.
16981 (free_loop_data): Release vuses of groups.
16982
16983 2016-04-27 Bin Cheng <bin.cheng@arm.com>
16984
16985 * tree-ssa-loop-ivopts.c (struct iv): Use pointer to struct iv_use
16986 instead of redundant use_id and boolean have_use_for.
16987 (struct iv_use): Change sub_id into group_id. Remove field next.
16988 Move fields: related_cands, n_map_members, cost_map and selected
16989 to ...
16990 (struct iv_group): ... here. New structure.
16991 (struct iv_common_cand): Use structure declaration directly.
16992 (struct ivopts_data, iv_ca, iv_ca_delta): Rename fields.
16993 (MAX_CONSIDERED_USES): Rename macro to ...
16994 (MAX_CONSIDERED_GROUPS): ... here.
16995 (n_iv_uses, iv_use, n_iv_cands, iv_cand): Delete.
16996 (dump_iv, dump_use, dump_cand): Refactor format of dump information.
16997 (dump_uses): Rename to ...
16998 (dump_groups): ... here. Update all uses.
16999 (tree_ssa_iv_optimize_init, alloc_iv): Update all uses.
17000 (find_induction_variables): Refactor format of dump information.
17001 (record_sub_use): Delete.
17002 (record_use): Update all uses.
17003 (record_group): New function.
17004 (record_group_use, find_interesting_uses_op): Call above functions.
17005 Update all uses.
17006 (find_interesting_uses_cond): Ditto.
17007 (group_compare_offset): New function.
17008 (split_all_small_groups): Rename to ...
17009 (split_small_address_groups_p): ... here. Update all uses.
17010 (split_address_groups): Update all uses.
17011 (find_interesting_uses): Refactor format of dump information.
17012 (add_candidate_1): Update all uses. Remove redundant check on iv,
17013 base and step.
17014 (add_candidate, record_common_cand): Remove redundant assert.
17015 (add_iv_candidate_for_biv): Update use.
17016 (add_iv_candidate_derived_from_uses): Update all uses.
17017 (add_iv_candidate_for_groups, record_important_candidates): Ditto.
17018 (alloc_use_cost_map): Ditto.
17019 (set_use_iv_cost, get_use_iv_cost): Rename to ...
17020 (set_group_iv_cost, get_group_iv_cost): ... here. Update all uses.
17021 (determine_use_iv_cost_generic): Ditto.
17022 (determine_group_iv_cost_generic): Ditto.
17023 (determine_use_iv_cost_address): Ditto.
17024 (determine_group_iv_cost_address): Ditto.
17025 (determine_use_iv_cost_condition): Ditto.
17026 (determine_group_iv_cost_cond): Ditto.
17027 (determine_use_iv_cost): Ditto.
17028 (determine_group_iv_cost): Ditto.
17029 (set_autoinc_for_original_candidates): Update all uses.
17030 (find_iv_candidates): Update all uses. Refactor dump information.
17031 (determine_use_iv_costs): Ditto.
17032 (determine_iv_costs): Ditto.
17033 (iv_ca_cand_for_use): Rename to ...
17034 (iv_ca_cand_for_group): ... here. Update all uses.
17035 (iv_ca_add_use, iv_ca_add_group): Ditto.
17036 (iv_ca_set_cp, iv_ca_cost, iv_ca_delta_add): Update all uses.
17037 (iv_ca_delta_join, iv_ca_delta_reverse, iv_ca_delta_free): Ditto.
17038 (iv_ca_new, iv_ca_dump, iv_ca_extend, iv_ca_narrow): Ditto.
17039 (iv_ca_prune, cheaper_cost_with_cand, iv_ca_replace): Ditto.
17040 (try_add_cand_for, try_improve_iv_set, find_optimal_iv_set): Ditto.
17041 (create_new_iv, adjust_iv_update_pos): Ditto.
17042 (rewrite_use_address): Delete.
17043 (rewrite_use_address_1): Rename to ...
17044 (rewrite_use_address): ... here.
17045 (rewrite_use_compare): Update all uses.
17046 (rewrite_use): Delete.
17047 (rewrite_uses): Rename to ...
17048 (rewrite_groups): ... here. Update all uses.
17049 (remove_unused_ivs, free_loop_data): Update all uses.
17050 (tree_ssa_iv_optimize_finalize, tree_ssa_iv_optimize_loop): Ditto.
17051
17052 2016-04-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17053
17054 * rtlanal.c (nonzero_bits1): Convert preprocessor check
17055 for WORD_REGISTER_OPERATIONS to runtime check.
17056
17057 2016-04-27 Richard Biener <rguenther@suse.de>
17058
17059 PR ipa/70760
17060 * tree-ssa-structalias.c (find_func_aliases_for_call): Use
17061 aggregate_value_p to determine if a function result is
17062 returned by reference.
17063 (ipa_pta_execute): Functions having their address taken are
17064 not automatically nonlocal.
17065
17066 2016-04-27 Jakub Jelinek <jakub@redhat.com>
17067
17068 PR sanitizer/70683
17069 * tree-core.h (enum operand_equal_flag): Add OEP_NO_HASH_CHECK.
17070 * fold-const.c (operand_equal_p): If flag_checking and
17071 OEP_NO_HASH_CHECK is not set in flag, recurse with OEP_NO_HASH_CHECK
17072 and if it returns non-zero, assert iterative_hash_expr on both
17073 args is the same.
17074
17075 2016-04-27 Bernd Schmidt <bschmidt@redhat.com>
17076
17077 * doc/invoke.texi (-frename-registers): Also enabled at -Os.
17078
17079 2016-04-27 Nick Clifton <nickc@redhat.com>
17080
17081 PR middle-end/49889
17082 * varasm.c (merge_weak): Generate an error if an attempt is made
17083 to convert a non-weak static function into a weak, public function.
17084
17085 2016-04-27 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
17086
17087 * params.def (MAX_PARTITION_SIZE): New param.
17088 * doc/invoke.texi: Document lto-max-partition.
17089
17090 2016-04-27 Richard Biener <rguenther@suse.de>
17091
17092 PR ipa/70785
17093 * tree-ssa-structalias.c (refered_from_nonlocal_fn): New
17094 function cummulating used_from_other_partition, externally_visible
17095 and force_output from aliases.
17096 (refered_from_nonlocal_var): Likewise.
17097 (ipa_pta_execute): Use call_for_symbol_and_aliases to cummulate
17098 node flags properly.
17099
17100 2016-04-27 Bernd Schmidt <bschmidt@redhat.com>
17101
17102 * doc/invoke.texi (Warning Options): Add -Wmemset-elt-size.
17103 (-Wmemset-elt-size): New item.
17104
17105 2016-04-27 Eric Botcazou <ebotcazou@adacore.com>
17106
17107 PR ada/70759
17108 * stor-layout.h (internal_reference_types): Delete.
17109 * stor-layout.c (reference_types_internal): Likewise.
17110 (internal_reference_types): Likewise.
17111 (layout_type) <REFERENCE_TYPE>: Adjust.
17112
17113 2016-04-27 Jakub Jelinek <jakub@redhat.com>
17114
17115 PR sanitizer/70683
17116 * tree.h (inchash::add_expr): Add FLAGS argument.
17117 * tree.c (inchash::add_expr): Likewise. If not OEP_ADDRESS_OF,
17118 use STRIP_NOPS first. For INTEGER_CST assert not OEP_ADDRESS_OF.
17119 For REAL_CST and !HONOR_SIGNED_ZEROS (t) hash +/- 0 the same.
17120 Formatting fix. Adjust recursive calls. For tcc_comparison,
17121 if swap_tree_comparison (code) is smaller than code, hash that
17122 and arguments in the other order. Hash CONVERT_EXPR the same
17123 as NOP_EXPR. For OEP_ADDRESS_OF hash MEM_REF with 0 offset
17124 of ADDR_EXPR of decl as the decl itself. Add or remove
17125 OEP_ADDRESS_OF from recursive flags as needed. For
17126 FMA_EXPR, WIDEN_MULT_{PLUS,MINUS}_EXPR hash the first two
17127 operands commutatively and only the third one normally.
17128 For internal CALL_EXPR hash in CALL_EXPR_IFN.
17129
17130 2016-04-27 Sebastian Huber <sebastian.huber@embedded-brains.de>
17131
17132 * config/rtems.h (LIB_SPEC): Add -latomic.
17133
17134 2016-04-27 Joel Sherrill <joel@rtems.org>
17135
17136 * config/microblaze/rtems.h: Redefine LINK_SPEC to avoid
17137 xilink.ld and flags not relevant to RTEMS.
17138
17139 2016-04-26 Zhouyi Zhou <yizhouzhou@ict.ac.cn>
17140
17141 * toplev.c (backend_init_target): Avoid calling init_reload when using
17142 LRA.
17143
17144 2016-04-26 Jakub Jelinek <jakub@redhat.com>
17145
17146 * reorg.c (try_merge_delay_insns): Declare i and j inside the
17147 for loops rather than one for the whole function.
17148
17149 2016-04-26 Marc Glisse <marc.glisse@inria.fr>
17150
17151 * match.pd (X + CST CMP X): New transformation.
17152
17153 2016-04-26 Marc Glisse <marc.glisse@inria.fr>
17154
17155 * genmatch.c (write_predicate): Add ATTRIBUTE_UNUSED.
17156 * fold-const.c (fold_binary_loc): Remove 2 transformations
17157 superseded by match.pd.
17158 * match.pd (x+x -> x*2): Generalize to integers.
17159
17160 2016-04-26 Bernd Schmidt <bschmidt@redhat.com>
17161
17162 * config/i386/i386.md (operation on memory peephole): Duplicate an
17163 existing peephole and adapt it to match lea rather than an operation
17164 that clobbers CC.
17165
17166 PR rtl-optimization/57193
17167 * opts.c (default_options_table): Add OPT_frename_registers at -O2
17168 and above.
17169 * doc/invoke.texi (-frename-registers, -O2): Update documentation.
17170
17171 2016-04-26 Bin Cheng <bin.cheng@arm.com>
17172
17173 * tree-if-conv.c (any_pred_load_store): New static variable.
17174 (if_convertible_gimple_assign_stmt_p): Remove parameter. Use
17175 any_pred_load_store instead of and_mask_load_store.
17176 (if_convertible_stmt_p, if_convertible_loop_p_1): Ditto.
17177 (if_convertible_loop_p, insert_gimplified_predicates): Ditto.
17178 (combine_blocks, tree_if_conversion): Ditto.
17179
17180 2016-04-26 Bin Cheng <bin.cheng@arm.com>
17181
17182 PR tree-optimization/70771
17183 PR tree-optimization/70775
17184 * tree-if-conv.c (if_convertible_phi_p): Remove check on special
17185 virtual PHI nodes. Delete parameter.
17186 (if_convertible_loop_p_1): Delete argument to above function.
17187 (predicate_all_scalar_phis): Delete code handling single-argument
17188 PHIs.
17189 (tree_if_conversion): Mark and update virtual SSA.
17190
17191 2016-04-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
17192
17193 PR target/61821
17194 * config/i386/i386.c (LARGECOMM_SECTION_ASM_OP): Define default.
17195 (x86_elf_aligned_common): Rename to ...
17196 (x86_elf_aligned_decl_common): ... this.
17197 Add decl arg. Switch to .lbss for largecomm object. Use
17198 LARGECOMM_SECTION_ASM_OP.
17199 * config/i386/i386-protos.h (x86_elf_aligned_common): Reflect
17200 renaming.
17201 * config/i386/x86-64.h (ASM_OUTPUT_ALIGNED_COMMON): Rename to ...
17202 (ASM_OUTPUT_ALIGNED_DECL_COMMON): ... this.
17203 Pass new decl arg.
17204 * config/i386/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
17205 [!USE_GAS] (LARGECOMM_SECTION_ASM_OP): Define.
17206
17207 2016-04-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
17208
17209 PR target/59407
17210 * config/i386/i386.c (SECTION_LARGE): Define.
17211 (x86_64_elf_select_section): Set it for large data/bss sections.
17212 Only clear SECTION_WRITE for .lrodata.
17213 (x86_64_elf_section_type_flags): Set SECTION_LARGE for large
17214 data/bss sections.
17215 * config/i386/sol2.h (MACH_DEP_SECTION_ASM_FLAG): Define.
17216 * varasm.c (default_elf_asm_named_section): Grow flagchars.
17217 [MACH_DEP_SECTION_ASM_FLAG] Emit MACH_DEP_SECTION_ASM_FLAG for
17218 SECTION_MACH_DEP.
17219 * doc/tm.texi.in (Sections, MACH_DEP_SECTION_ASM_FLAG): Describe.
17220 * doc/tm.texi: Regenerate.
17221
17222 2016-04-26 Jakub Jelinek <jakub@redhat.com>
17223
17224 PR bootstrap/70704
17225 * configure.ac (--enable-checking): Document extra flag, for
17226 non-release builds default to --enable-checking=yes,extra.
17227 If misc checking and extra checking, define CHECKING_P to 2 instead
17228 of 1.
17229 * common.opt (fchecking=): Add.
17230 * doc/invoke.texi (-fchecking=): Document.
17231 * doc/install.texi: Document --enable-checking changes.
17232 * configure: Regenerated.
17233 * config.in: Regenerated.
17234
17235 2016-04-25 Uros Bizjak <ubizjak@gmail.com>
17236
17237 * config/i386/i386.md (*movxi_internal_avx512f): Use insn type
17238 attribute instead of which_alternative.
17239 * config/i386/sse.md (*mov<mode>_internal): Ditto.
17240 Use EXT_REX_SSE_REG_P where appropriate.
17241
17242 2016-04-25 Uros Bizjak <ubizjak@gmail.com>
17243
17244 * config/i386/predicates.md (const0_operand): Do not match
17245 const_wide_int code.
17246 (const1_operand): Ditto.
17247
17248 2016-04-25 Uros Bizjak <ubizjak@gmail.com>
17249
17250 * config/i386/i386.md (*movoi_internal_avx): Set mode attribute to XI
17251 for SSE constm1 operands and TARGET_AVX512VL.
17252 (*movti_internal): Ditto.
17253 (*mov<mode>_or): Use constm1_operand predicate.
17254 * config/i386/sse.md (*mov<mode>_internal): Set mode attribute to XI
17255 for SSE vector_all_ones operands and TARGET_AVX512VL.
17256 * config/i386/predicates.md (constm1_operand): New predicate.
17257 * config/i386/i386.c (standard_sse_constant_opcode): Simplify
17258 emission of constant -1 load.
17259
17260 2016-04-25 Jason Merrill <jason@redhat.com>
17261
17262 * gdbinit.in: Skip is-a.h.
17263
17264 * attribs.c (register_scoped_attributes): Fix logic.
17265 * attribs.h: Declare register_scoped_attributes.
17266
17267 2016-04-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
17268
17269 * config/rs6000/rs6000-builtin.def: Correct pasto error for
17270 stxvd2x and stxvw4x built-in functions.
17271
17272 2016-04-25 DJ Delorie <dj@redhat.com>
17273
17274 * config/msp430/msp430.md (ashlhi3): Optimize one bit shifts.
17275 (ashrhi3): Likewise.
17276 (lshrhi3): Likewise.
17277
17278 2016-04-25 Richard Biener <rguenther@suse.de>
17279
17280 PR tree-optimization/70780
17281 * tree-ssa-pre.c (compute_antic_aux): Also return true if the block
17282 wasn't visited yet.
17283 (compute_antic): Mark blocks with abnormal preds as visited as
17284 they have a final empty antic-in solution already.
17285
17286 2016-04-25 Michael Collison <michael.collison@linaro.org>
17287
17288 * ChangeLog(2016-04-25): Fix ChangeLog formatting.
17289
17290 2016-04-25 Michael Collison <michael.collison@linaro.org>
17291
17292 * config/arm/neon.md (widen_<us>sum<mode>): New patterns where
17293 mode is VQI to improve mixed mode vectorization.
17294 * config/arm/neon.md (vec_sel_widen_ssum_lo<VQI:mode><VW:mode>3): New
17295 define_insn to match low half of signed vaddw.
17296 * config/arm/neon.md (vec_sel_widen_ssum_hi<VQI:mode><VW:mode>3): New
17297 define_insn to match high half of signed vaddw.
17298 * config/arm/neon.md (vec_sel_widen_usum_lo<VQI:mode><VW:mode>3): New
17299 define_insn to match low half of unsigned vaddw.
17300 * config/arm/neon.md (vec_sel_widen_usum_hi<VQI:mode><VW:mode>3): New
17301 define_insn to match high half of unsigned vaddw.
17302 * config/arm/arm.c (arm_simd_vect_par_cnst_half): New function.
17303 (arm_simd_check_vect_par_cnst_half_p): Likewise.
17304 * config/arm/arm-protos.h (arm_simd_vect_par_cnst_half): Prototype
17305 for new function.
17306 (arm_simd_check_vect_par_cnst_half_p): Likewise.
17307 * config/arm/predicates.md (vect_par_constant_high): Support
17308 big endian and simplify by calling
17309 arm_simd_check_vect_par_cnst_half
17310 (vect_par_constant_low): Likewise.
17311
17312 2016-04-25 Uros Bizjak <ubizjak@gmail.com>
17313
17314 * config/i386/i386.md (*lea<mode>_general_4): Use const_0_to_3_operand
17315 predicate for operand 2.
17316
17317 2016-04-24 Uros Bizjak <ubizjak@gmail.com>
17318 H.J. Lu <hongjiu.lu@intel.com>
17319
17320 * config/i386/i386-protos.h (standard_sse_constant_p): Add
17321 machine_mode argument.
17322 * config/i386/i386.c (standard_sse_constant_p): Return 2 for
17323 constm1_rtx operands. For VOIDmode constants, get mode from
17324 pred_mode. Check mode size if the mode is supported by ABI.
17325 (standard_sse_constant_opcode): Do not use standard_constant_p.
17326 Strictly check ABI support for all-ones operands.
17327 (ix86_legitimate_constant_p): Handle TImode, OImode and XImode
17328 immediates. Update calls to standard_sse_constant_p.
17329 (ix86_expand_vector_move): Update calls to standard_sse_constant_p.
17330 (ix86_rtx_costs): Ditto.
17331 * config/i386/i386.md (*movxi_internal_avx512f): Use
17332 nonimmediate_or_sse_const_operand instead of vector_move_operand.
17333 Use (v,BC) alternative instead of (v,C). Use register_operand
17334 checks instead of MEM_P.
17335 (*movoi_internal_avx): Use nonimmediate_or_sse_const_operand instead
17336 of vector_move_operand. Add (v,BC) alternative and corresponding avx2
17337 isa attribute. Use register_operand checks instead of MEM_P.
17338 (*movti_internal): Use nonimmediate_or_sse_const_operand for
17339 TARGET_SSE. Improve TARGET_SSE insn constraint. Add (v,BC)
17340 alternative and corresponding sse2 isa attribute.
17341 (*movtf_internal, *movdf_internal, *movsf_interal): Update calls
17342 to standard_sse_constant_p.
17343 (FP constant splitters): Ditto.
17344 * config/i386/constraints.md (BC): Do not use standard_sse_constant_p.
17345 (C): Ditto.
17346 * config/i386/predicates.md (constm1_operand): Remove.
17347 (nonimmediate_or_sse_const_operand): Rewrite using RTX.
17348 * config/i386/sse.md (*<avx512>_cvtmask2<ssemodesuffix><mode>): Use
17349 vector_all_ones_operand instead of constm1_operand.
17350
17351 2016-04-24 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
17352
17353 * print-rtl.c (print_rtx_insn_vec): New function.
17354 * print-rtl.h: New prototype.
17355 * store-motion.c (struct st_expr): Make avail_stores a vector.
17356 (st_expr_entry): Adjust.
17357 (free_st_expr_entry): Likewise.
17358 (print_store_motion_mems): Likewise.
17359 (find_moveable_store): Likewise.
17360 (compute_store_table): Likewise.
17361 (delete_store): Likewise.
17362 (build_store_vectors): Likewise.
17363
17364 2016-04-24 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
17365
17366 * reorg.c (try_merge_delay_insns): Make merged_insns a vector.
17367
17368 2016-04-24 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
17369
17370 * vec.h (vec_safe_contains): New function.
17371 (vec::contains): Likewise.
17372 (vec::begin): Likewise.
17373 (vec::end): Likewise.
17374
17375 2016-04-23 Jakub Jelinek <jakub@redhat.com>
17376
17377 PR sanitizer/70712
17378 * cfgexpand.c (expand_stack_vars): Fix typo.
17379
17380 2016-04-22 Szabolcs Nagy <szabolcs.nagy@arm.com>
17381
17382 * system.h (list, map, set, vector): Include conditionally.
17383 * auto-profile.c (INCLUDE_MAP, INCLUDE_SET): Define.
17384 * graphite-isl-ast-to-gimple.c (INCLUDE_MAP): Define.
17385 * ipa-icf.c (INCLUDE_LIST): Define.
17386 * config/aarch64/cortex-a57-fma-steering.c (INCLUDE_LIST): Define.
17387 * config/sh/sh.c (INCLUDE_VECTOR): Define.
17388 * config/sh/sh_treg_combine.cc (INCLUDE_ALGORITHM): Define.
17389 (INCLUDE_LIST, INCLUDE_VECTOR): Define.
17390 * cp/logic.cc (INCLUDE_LIST): Define.
17391 * fortran/trans-common.c (INCLUDE_MAP): Define.
17392
17393 2016-04-22 Szabolcs Nagy <szabolcs.nagy@arm.com>
17394
17395 * auto-profile.c: Remove <string.h> include.
17396 * ipa-icf-gimple.c: Remove <list> include.
17397 * diagnostic.c: Remove <new> include.
17398 * genmatch.c: Likewise.
17399 * pretty-print.c: Likewise.
17400 * toplev.c: Likewise
17401 * c/c-objc-common.c: Likewise.
17402 * cp/error.c: Likewise.
17403 * fortran/error.c: Likewise.
17404
17405 2016-04-22 Richard Biener <rguenther@suse.de>
17406
17407 * lto-streamer-in.c (input_ssa_names): Do not allocate
17408 GIMPLE_NOP for all SSA names.
17409 * lto-streamer-out.c (output_ssa_names): Do not output
17410 SSA names that should have been released.
17411
17412 2016-04-22 Richard Biener <rguenther@suse.de>
17413
17414 PR tree-optimization/70740
17415 * tree-ssa-phiprop.c (propagate_with_phi): Handle inserted
17416 VDEF.
17417
17418 2016-04-21 H.J. Lu <hongjiu.lu@intel.com>
17419
17420 PR target/70750
17421 * config/i386/predicates.md (call_insn_operand): Replace
17422 sibcall_memory_operand with memory_operand.
17423
17424 2016-04-21 Patrick Palka <ppalka@gcc.gnu.org>
17425
17426 * tree-vrp.c (register_edge_assert_for_2): Remove redundant
17427 has_single_use() tests.
17428 (register_edge_assert_for_1): Likewise.
17429 (find_assert_locations_1): Check the liveness bitmap instead of
17430 checking has_single_use().
17431
17432 2016-04-21 Kirill Yukhin <kirill.yukhin@intel.com>
17433
17434 PR target/70728
17435 * config/i386/sse.md (define_insn "<shift_insn><mode>3<mask_name>"):
17436 Extract AVX-512BW constraint from AVX.
17437
17438 2016-04-21 Richard Biener <rguenther@suse.de>
17439
17440 PR tree-optimization/70725
17441 * tree-if-conv.c (if_convertible_phi_p): Adjust guard
17442 for phi_convertible_by_degenerating_args.
17443 (predicate_all_scalar_phis): Handle single-argument PHIs.
17444
17445 2016-04-21 Richard Biener <rguenther@suse.de>
17446
17447 PR middle-end/70747
17448 * fold-const.c (fold_comparison): Return properly typed
17449 constant boolean.
17450
17451 2016-04-21 Bin Cheng <bin.cheng@arm.com>
17452
17453 PR tree-optimization/70715
17454 * tree-ssa-loop-niter.c (loop_exits_before_overflow): Check equality
17455 after expanding BASE using expand_simple_operations.
17456
17457 2016-04-21 Marc Glisse <marc.glisse@inria.fr>
17458
17459 * match.pd (min(-x, -y), max(-x, -y), min(~x, ~y), max(~x, ~y)):
17460 New transformations.
17461
17462 2016-04-21 Marc Glisse <marc.glisse@inria.fr>
17463
17464 * match.pd (min(int_max, x), max(int_min, x)): New transformations.
17465
17466 2016-04-20 Jan Hubicka <jh@suse.cz>
17467
17468 * ipa-inline.c (can_inline_edge_p): Pass caller info to
17469 ultiimate_alias_target.
17470 (update_callee_keys): Likewise.
17471 (lookup_recursive_calls): Likewise.
17472 (speculation_useful_p): Likewise.
17473
17474 2016-04-20 Jan Hubicka <jh@suse.cz>
17475
17476 PR ipa/70018
17477 * cgraph.c (cgraph_set_nothrow_flag_1): Rename to ...
17478 (set_nothrow_flag_1): ... this; handle interposition correctly;
17479 recurse on aliases and thunks.
17480 (cgraph_node::set_nothrow_flag): New.
17481 * ipa-pure-const.c (ignore_edge_for_nothrow): Ignore calls to
17482 functions compiled with non-call exceptions that binds to current
17483 def.
17484 (propagate_nothrow): Be safe WRT interposition.
17485 * cgraph.h (set_nothrow_flag): Update prototype.
17486
17487 2016-04-18 Jan Hubicka <jh@suse.cz>
17488
17489 * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also
17490 max_loop_iterations_int.
17491 (tree_unswitch_outer_loop): Likewise.
17492
17493 2016-04-20 Bin Cheng <bin.cheng@arm.com>
17494
17495 PR tree-optimization/69489
17496 * tree-if-conv.c (phi_convertible_by_degenerating_args): New.
17497 (if_convertible_phi_p): Call phi_convertible_by_degenerating_args.
17498 Revise dump message.
17499 (if_convertible_bb_p): Remove check on edge count of basic block's
17500 predecessors.
17501
17502 2016-04-20 Bin Cheng <bin.cheng@arm.com>
17503
17504 PR tree-optimization/56625
17505 PR tree-optimization/69489
17506 * tree-data-ref.h (DR_INNERMOST): New macro.
17507 * tree-if-conv.c (innermost_loop_behavior_hash): New class for
17508 hashing struct innermost_loop_behavior.
17509 (ref_DR_map): Remove.
17510 (innermost_DR_map): New map.
17511 (baseref_DR_map): Revise comment.
17512 (hash_memrefs_baserefs_and_store_DRs_read_written_info): Store DR
17513 to innermost_DR_map accroding to its innermost loop behavior.
17514 (ifcvt_memrefs_wont_trap): Get DR from innermost_DR_map according
17515 to its innermost loop behavior.
17516 (if_convertible_loop_p_1): Remove intialization for ref_DR_map.
17517 Add initialization for innermost_DR_map. Record memory reference
17518 in DR_BASE_ADDRESS if the reference is compound one or it doesn't
17519 have innermost loop behavior.
17520 (if_convertible_loop_p): Remove release for ref_DR_map. Release
17521 innermost_DR_map.
17522
17523 2016-04-20 Uros Bizjak <ubizjak@gmail.com>
17524
17525 * config/i386/i386.md (*lea<mode>_general_1): Rename from
17526 *lea_general_1. Use explicit SWI12 mode interator.
17527 (*lea<mode>_general_2): Rename from *lea_general_2.
17528 Use explicit SWI12 mode interator.
17529 (*lea<mode>_general_3): Rename from *lea_general_3.
17530 Use explicit SWI12 mode interator.
17531 (*lea<SWI12:mode>_general_4): Split from *lea_general_4.
17532 Use explicit SWI12 mode interator.
17533 (*lea<SWI48:mode>_general_4): Split from *lea_general_4.
17534 Use explicit SWI48 mode interator.
17535
17536 2016-04-20 H.J. Lu <hongjiu.lu@intel.com>
17537
17538 * config/i386/i386.c (ix86_avx256_split_vector_move_misalign):
17539 Short-cut unaligned load and store cases. Handle all integer
17540 vector modes.
17541 (ix86_expand_vector_move_misalign): Short-cut unaligned load
17542 and store cases. Call ix86_avx256_split_vector_move_misalign
17543 directly without checking mode class.
17544
17545 2016-04-20 Andrew Pinski <apinski@cavium.com>
17546 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17547
17548 PR target/64971
17549 * config/aarch64/aarch64.md (sibcall): Force call
17550 address to be DImode for ILP32.
17551 (sibcall_value): Likewise.
17552
17553 2016-04-20 H.J. Lu <hongjiu.lu@intel.com>
17554
17555 * doc/invoke.texi: Replace -skip-rax-setup with -mskip-rax-setup.
17556
17557 2016-04-20 Richard Biener <rguenther@suse.de>
17558
17559 * gimple-match.h (maybe_build_generic_op): Adjust prototype.
17560 * gimple-match-head.c (maybe_build_generic_op): Pass all ops
17561 by reference, clear op1 and op2 when GENERICizing BIT_FIELD_REF.
17562 (maybe_push_res_to_seq): Adjust.
17563 * gimple-fold.c (maybe_build_generic_op): Likewise.
17564
17565 2016-04-20 Marek Polacek <polacek@redhat.com>
17566
17567 * tree-if-conv.c (is_false_predicate): For NULL_TREE return false
17568 rather than true.
17569
17570 2016-04-20 Ilya Enkovich <ilya.enkovich@intel.com>
17571
17572 * config/i386/sse.md (vec_unpacks_lo_hi): Always
17573 use kmovw to support AVX512F target.
17574
17575 2016-04-20 Bin Cheng <bin.cheng@arm.com>
17576
17577 * tree-scalar-evolution.c (interpret_rhs_expr): Handle BIT_AND_EXPR.
17578
17579 2016-04-20 Marek Polacek <polacek@redhat.com>
17580
17581 PR tree-optimization/70725
17582 * tree-if-conv.c (is_false_predicate): New function.
17583 (predicate_mem_writes): Use it.
17584
17585 2016-04-20 Richard Biener <rguenther@suse.de>
17586
17587 PR tree-optimization/70726
17588 * tree-vect-stmts.c (vectorizable_shift): Do not use scalar
17589 shift amounts from a pattern stmt operand.
17590
17591 2016-04-20 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
17592
17593 PR target/70674
17594 * config/s390/s390.c (s390_restore_gprs_from_fprs): Pick the new
17595 stack_restore_from_fpr pattern when restoring r15.
17596 (s390_optimize_prologue): Strip away the memory barrier in the
17597 parallel when trying to get rid of restore insns.
17598 * config/s390/s390.md ("stack_restore_from_fpr"): New insn
17599 definition for loading the stack pointer from an FPR. Compared to
17600 the normal move insn this pattern includes a full memory barrier.
17601
17602 2016-04-19 Jakub Jelinek <jakub@redhat.com>
17603
17604 PR middle-end/70680
17605 * gimplify.c (gimplify_omp_for): Call omp_notice_variable for
17606 implicitly linear or lastprivate iterator on the outer context.
17607
17608 2016-04-19 H.J. Lu <hongjiu.lu@intel.com>
17609
17610 * config/i386/i386.c (ix86_legitimate_combined_insn): Remove
17611 alignment check.
17612 * config/i386/i386.md (ssememalign): Removed.
17613 * config/i386/sse.md: Remove ssememalign attribute from patterns.
17614
17615 2016-04-19 H.J. Lu <hongjiu.lu@intel.com>
17616
17617 PR target/69201
17618 * config/i386/avx512bwintrin.h (_mm512_mask_loadu_epi16): Pass
17619 const short * to __builtin_ia32_loaddquhi512_mask.
17620 (_mm512_maskz_loadu_epi16): Likewise.
17621 (_mm512_mask_storeu_epi16): Pass short * to
17622 __builtin_ia32_storedquhi512_mask.
17623 (_mm512_mask_loadu_epi8): Pass const char * to
17624 __builtin_ia32_loaddquqi512_mask.
17625 (_mm512_maskz_loadu_epi8): Likewise.
17626 (_mm512_mask_storeu_epi8): Pass char * to
17627 __builtin_ia32_storedquqi512_mask.
17628 * config/i386/avx512fintrin.h (_mm512_loadu_pd): Pass
17629 const double * to __builtin_ia32_loadupd512_mask.
17630 (_mm512_mask_loadu_pd): Likewise.
17631 (_mm512_maskz_loadu_pd): Likewise.
17632 (_mm512_storeu_pd): Pass double * to
17633 __builtin_ia32_storeupd512_mask.
17634 (_mm512_mask_storeu_pd): Likewise.
17635 (_mm512_loadu_ps): Pass const float * to
17636 __builtin_ia32_loadups512_mask.
17637 (_mm512_mask_loadu_ps): Likewise.
17638 (_mm512_maskz_loadu_ps): Likewise.
17639 (_mm512_storeu_ps): Pass float * to
17640 __builtin_ia32_storeups512_mask.
17641 (_mm512_mask_storeu_ps): Likewise.
17642 (_mm512_mask_loadu_epi64): Pass const long long * to
17643 __builtin_ia32_loaddqudi512_mask.
17644 (_mm512_maskz_loadu_epi64): Likewise.
17645 (_mm512_mask_storeu_epi64): Pass long long *
17646 to __builtin_ia32_storedqudi512_mask.
17647 (_mm512_loadu_si512): Pass const int * to
17648 __builtin_ia32_loaddqusi512_mask.
17649 (_mm512_mask_loadu_epi32): Likewise.
17650 (_mm512_maskz_loadu_epi32): Likewise.
17651 (_mm512_storeu_si512): Pass int * to
17652 __builtin_ia32_storedqusi512_mask.
17653 (_mm512_mask_storeu_epi32): Likewise.
17654 * config/i386/avx512vlbwintrin.h (_mm256_mask_storeu_epi8): Pass
17655 char * to __builtin_ia32_storedquqi256_mask.
17656 (_mm_mask_storeu_epi8): Likewise.
17657 (_mm256_mask_loadu_epi16): Pass const short * to
17658 __builtin_ia32_loaddquhi256_mask.
17659 (_mm256_maskz_loadu_epi16): Likewise.
17660 (_mm_mask_loadu_epi16): Pass const short * to
17661 __builtin_ia32_loaddquhi128_mask.
17662 (_mm_maskz_loadu_epi16): Likewise.
17663 (_mm256_mask_loadu_epi8): Pass const char * to
17664 __builtin_ia32_loaddquqi256_mask.
17665 (_mm256_maskz_loadu_epi8): Likewise.
17666 (_mm_mask_loadu_epi8): Pass const char * to
17667 __builtin_ia32_loaddquqi128_mask.
17668 (_mm_maskz_loadu_epi8): Likewise.
17669 (_mm256_mask_storeu_epi16): Pass short * to.
17670 __builtin_ia32_storedquhi256_mask.
17671 (_mm_mask_storeu_epi16): Pass short * to.
17672 __builtin_ia32_storedquhi128_mask.
17673 * config/i386/avx512vlintrin.h (_mm256_mask_loadu_pd): Pass
17674 const double * to __builtin_ia32_loadupd256_mask.
17675 (_mm256_maskz_loadu_pd): Likewise.
17676 (_mm_mask_loadu_pd): Pass onst double * to
17677 __builtin_ia32_loadupd128_mask.
17678 (_mm_maskz_loadu_pd): Likewise.
17679 (_mm256_mask_storeu_pd): Pass double * to
17680 __builtin_ia32_storeupd256_mask.
17681 (_mm_mask_storeu_pd): Pass double * to
17682 __builtin_ia32_storeupd128_mask.
17683 (_mm256_mask_loadu_ps): Pass const float * to
17684 __builtin_ia32_loadups256_mask.
17685 (_mm256_maskz_loadu_ps): Likewise.
17686 (_mm_mask_loadu_ps): Pass const float * to
17687 __builtin_ia32_loadups128_mask.
17688 (_mm_maskz_loadu_ps): Likewise.
17689 (_mm256_mask_storeu_ps): Pass float * to
17690 __builtin_ia32_storeups256_mask.
17691 (_mm_mask_storeu_ps): ass float * to
17692 __builtin_ia32_storeups128_mask.
17693 (_mm256_mask_loadu_epi64): Pass const long long * to
17694 __builtin_ia32_loaddqudi256_mask.
17695 (_mm256_maskz_loadu_epi64): Likewise.
17696 (_mm_mask_loadu_epi64): Pass const long long * to
17697 __builtin_ia32_loaddqudi128_mask.
17698 (_mm_maskz_loadu_epi64): Likewise.
17699 (_mm256_mask_storeu_epi64): Pass long long * to
17700 __builtin_ia32_storedqudi256_mask.
17701 (_mm_mask_storeu_epi64): Pass long long * to
17702 __builtin_ia32_storedqudi128_mask.
17703 (_mm256_mask_loadu_epi32): Pass const int * to
17704 __builtin_ia32_loaddqusi256_mask.
17705 (_mm256_maskz_loadu_epi32): Likewise.
17706 (_mm_mask_loadu_epi32): Pass const int * to
17707 __builtin_ia32_loaddqusi128_mask.
17708 (_mm_maskz_loadu_epi32): Likewise.
17709 (_mm256_mask_storeu_epi32): Pass int * to
17710 __builtin_ia32_storedqusi256_mask.
17711 (_mm_mask_storeu_epi32): Pass int * to
17712 __builtin_ia32_storedqusi128_mask.
17713 * config/i386/i386-builtin-types.def (PCSHORT): New.
17714 (PINT64): Likewise.
17715 (V64QI_FTYPE_PCCHAR_V64QI_UDI): Likewise.
17716 (V32HI_FTYPE_PCSHORT_V32HI_USI): Likewise.
17717 (V32QI_FTYPE_PCCHAR_V32QI_USI): Likewise.
17718 (V16SF_FTYPE_PCFLOAT_V16SF_UHI): Likewise.
17719 (V8DF_FTYPE_PCDOUBLE_V8DF_UQI): Likewise.
17720 (V16SI_FTYPE_PCINT_V16SI_UHI): Likewise.
17721 (V16HI_FTYPE_PCSHORT_V16HI_UHI): Likewise.
17722 (V16QI_FTYPE_PCCHAR_V16QI_UHI): Likewise.
17723 (V8SF_FTYPE_PCFLOAT_V8SF_UQI): Likewise.
17724 (V8DI_FTYPE_PCINT64_V8DI_UQI): Likewise.
17725 (V8SI_FTYPE_PCINT_V8SI_UQI): Likewise.
17726 (V8HI_FTYPE_PCSHORT_V8HI_UQI): Likewise.
17727 (V4DF_FTYPE_PCDOUBLE_V4DF_UQI): Likewise.
17728 (V4SF_FTYPE_PCFLOAT_V4SF_UQI): Likewise.
17729 (V4DI_FTYPE_PCINT64_V4DI_UQI): Likewise.
17730 (V4SI_FTYPE_PCINT_V4SI_UQI): Likewise.
17731 (V2DF_FTYPE_PCDOUBLE_V2DF_UQI): Likewise.
17732 (V2DI_FTYPE_PCINT64_V2DI_UQI): Likewise.
17733 (VOID_FTYPE_PDOUBLE_V8DF_UQI): Likewise.
17734 (VOID_FTYPE_PDOUBLE_V4DF_UQI): Likewise.
17735 (VOID_FTYPE_PDOUBLE_V2DF_UQI): Likewise.
17736 (VOID_FTYPE_PFLOAT_V16SF_UHI): Likewise.
17737 (VOID_FTYPE_PFLOAT_V8SF_UQI): Likewise.
17738 (VOID_FTYPE_PFLOAT_V4SF_UQI): Likewise.
17739 (VOID_FTYPE_PINT64_V8DI_UQI): Likewise.
17740 (VOID_FTYPE_PINT64_V4DI_UQI): Likewise.
17741 (VOID_FTYPE_PINT64_V2DI_UQI): Likewise.
17742 (VOID_FTYPE_PINT_V16SI_UHI): Likewise.
17743 (VOID_FTYPE_PINT_V8SI_UHI): Likewise.
17744 (VOID_FTYPE_PINT_V4SI_UHI): Likewise.
17745 (VOID_FTYPE_PSHORT_V32HI_USI): Likewise.
17746 (VOID_FTYPE_PSHORT_V16HI_UHI): Likewise.
17747 (VOID_FTYPE_PSHORT_V8HI_UQI): Likewise.
17748 (VOID_FTYPE_PCHAR_V64QI_UDI): Likewise.
17749 (VOID_FTYPE_PCHAR_V32QI_USI): Likewise.
17750 (VOID_FTYPE_PCHAR_V16QI_UHI): Likewise.
17751 (V64QI_FTYPE_PCV64QI_V64QI_UDI): Removed.
17752 (V32HI_FTYPE_PCV32HI_V32HI_USI): Likewise.
17753 (V32QI_FTYPE_PCV32QI_V32QI_USI): Likewise.
17754 (V16HI_FTYPE_PCV16HI_V16HI_UHI): Likewise.
17755 (V16QI_FTYPE_PCV16QI_V16QI_UHI): Likewise.
17756 (V8HI_FTYPE_PCV8HI_V8HI_UQI): Likewise.
17757 (VOID_FTYPE_PV32HI_V32HI_USI): Likewise.
17758 (VOID_FTYPE_PV16HI_V16HI_UHI): Likewise.
17759 (VOID_FTYPE_PV8HI_V8HI_UQI): Likewise.
17760 (VOID_FTYPE_PV64QI_V64QI_UDI): Likewise.
17761 (VOID_FTYPE_PV32QI_V32QI_USI): Likewise.
17762 (VOID_FTYPE_PV16QI_V16QI_UHI): Likewise.
17763 * config/i386/i386.c (ix86_emit_save_reg_using_mov): Don't
17764 use UNSPEC_STOREU.
17765 (ix86_emit_restore_sse_regs_using_mov): Don't use UNSPEC_LOADU.
17766 (ix86_avx256_split_vector_move_misalign): Don't use unaligned
17767 load nor store.
17768 (ix86_expand_vector_move_misalign): Likewise.
17769 (bdesc_special_args): Use CODE_FOR_movvNXY_internal and pointer
17770 to scalar function prototype for unaligned load/store builtins.
17771 (ix86_expand_special_args_builtin): Updated.
17772 * config/i386/sse.md (UNSPEC_LOADU): Removed.
17773 (UNSPEC_STOREU): Likewise.
17774 (VI_ULOADSTORE_BW_AVX512VL): Likewise.
17775 (VI_ULOADSTORE_F_AVX512VL): Likewise.
17776 (ssescalarsize): Handle V4TI, V2TI and V1TI.
17777 (<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>): Likewise.
17778 (*<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>): Likewise.
17779 (<sse>_storeu<ssemodesuffix><avxsizesuffix>): Likewise.
17780 (<avx512>_storeu<ssemodesuffix><avxsizesuffix>_mask): Likewise.
17781 (<sse2_avx_avx512f>_loaddqu<mode><mask_name>): Likewise.
17782 (*<sse2_avx_avx512f>_loaddqu<mode><mask_name>"): Likewise.
17783 (sse2_avx_avx512f>_storedqu<mode>): Likewise.
17784 (<avx512>_storedqu<mode>_mask): Likewise.
17785 (*sse4_2_pcmpestr_unaligned): Likewise.
17786 (*sse4_2_pcmpistr_unaligned): Likewise.
17787 (*mov<mode>_internal): Renamed to ...
17788 (mov<mode>_internal): This. Remove check of AVX and IAMCU on
17789 misaligned operand. Replace vmovdqu64 with vmovdqu<ssescalarsize>.
17790 (movsd/movhpd to movupd peephole): Don't use UNSPEC_LOADU.
17791 (movlpd/movhpd to movupd peephole): Don't use UNSPEC_STOREU.
17792
17793 2016-04-19 Richard Biener <rguenther@suse.de>
17794
17795 PR tree-optimization/70171
17796 * tree-ssa-phiprop.c: Include stor-layout.h.
17797 (phiprop_insert_phi): Handle the aggregate copy case.
17798 (propagate_with_phi): Likewise.
17799
17800 2016-04-19 Uros Bizjak <ubizjak@gmail.com>
17801
17802 * config/i386/i386.c (ix86_decompose_address): Use lowpart_subreg
17803 instead of simplify_gen_subreg (... , 0).
17804 (ix86_delegitimize_address): Ditto.
17805 (ix86_split_divmod): Ditto.
17806 (ix86_split_copysign_const): Ditto.
17807 (ix86_split_copysign_var): Ditto.
17808 (ix86_expand_args_builtin): Ditto.
17809 (ix86_expand_round_builtin): Ditto.
17810 (ix86_expand_special_args_builtin): Ditto.
17811 * config/i386/i386.md (TARGET_USE_VECTOR_FP_CONVERTS splitters): Ditto.
17812 (TARGET_SSE_PARTIAL_REG_DEPENDENCY splitters and peephole2s): Ditto.
17813 (udivmodqi4): Ditto.
17814 (absneg splitters): Ditto.
17815 (*jcc_bt<mode>_1): Ditto.
17816
17817 2016-04-19 Richard Biener <rguenther@suse.de>
17818
17819 PR tree-optimization/70724
17820 * tree-ssa-sccvn.c (scc_vn_restore_ssa_info): Split SSA info
17821 restoring out from ...
17822 (free_scc_vn): ... here.
17823 * tree-ssa-sccvn.h (scc_vn_restore_ssa_info): Declare.
17824 * tres-ssa-pre.c (pass_pre::execute): Restore SSA info before
17825 tail merging.
17826 (pass_fre::execute): Restore SSA info.
17827
17828 2016-04-19 Richard Biener <rguenther@suse.de>
17829
17830 * gimple-walk.h (struct walk_stmt_info): Add stmt member.
17831 * gimple-walk.c (walk_gimple_op): Initialize it.
17832 (walk_gimple_asm): Set wi->is_lhs before each callback invocation.
17833 * tree-inline.c (remap_gimple_op_r): Set SSA_NAME_DEF_STMT when
17834 remapping SSA names of defs.
17835 (copy_bb): Remove walk over all SSA defs and SSA_NAME_DEF_STMT
17836 adjustment.
17837
17838 2016-04-18 Vladimir Makarov <vmakarov@redhat.com>
17839
17840 PR middle-end/70689
17841 * lra-constraints.c (equiv_substition_p): New.
17842 (process_alt_operands): Use it.
17843 (swap_operands): Swap it.
17844 (curr_insn_transform): Update it.
17845
17846 2016-04-18 Michael Matz <matz@suse.de>
17847
17848 * tree.h (TYPE_ALIGN, DECL_ALIGN): Return shifted amount.
17849 (SET_TYPE_ALIGN, SET_DECL_ALIGN): New.
17850 * tree-core.h (tree_type_common.align): Use bit-field.
17851 (tree_type_common.spare): New.
17852 (tree_decl_common.off_align): Make smaller.
17853 (tree_decl_common.align): Use bit-field.
17854
17855 * expr.c (expand_expr_addr_expr_1): Use SET_TYPE_ALIGN.
17856 * omp-low.c (install_var_field): Use SET_DECL_ALIGN.
17857 (scan_sharing_clauses): Ditto.
17858 (finish_taskreg_scan): Use SET_DECL_ALIGN and SET_TYPE_ALIGN.
17859 (omp_finish_file): Ditto.
17860 * stor-layout.c (do_type_align): Use SET_DECL_ALIGN.
17861 (layout_decl): Ditto.
17862 (relayout_decl): Ditto.
17863 (finalize_record_size): Use SET_TYPE_ALIGN.
17864 (finalize_type_size): Ditto.
17865 (finish_builtin_struct): Ditto.
17866 (layout_type): Ditto.
17867 (initialize_sizetypes): Ditto.
17868 * targhooks.c (std_gimplify_va_arg_expr): Use SET_TYPE_ALIGN.
17869 * tree-nested.c (insert_field_into_struct): Use SET_TYPE_ALIGN.
17870 (lookup_field_for_decl): Use SET_DECL_ALIGN.
17871 (get_chain_field): Ditto.
17872 (get_trampoline_type): Ditto.
17873 (get_nl_goto_field): Ditto.
17874 * tree-streamer-in.c (unpack_ts_decl_common_value_fields): Use
17875 SET_DECL_ALIGN.
17876 (unpack_ts_type_common_value_fields): Use SET_TYPE_ALIGN.
17877 * gimple-expr.c (copy_var_decl): Use SET_DECL_ALIGN.
17878 * tree.c (make_node_stat): Use SET_DECL_ALIGN and SET_TYPE_ALIGN.
17879 (build_qualified_type): Use SET_TYPE_ALIGN.
17880 (build_aligned_type, build_range_type_1): Ditto.
17881 (build_atomic_base): Ditto.
17882 (build_common_tree_nodes): Ditto.
17883 * cfgexpand.c (align_local_variable): Use SET_DECL_ALIGN.
17884 (expand_one_stack_var_at): Ditto.
17885 * coverage.c (build_var): Use SET_DECL_ALIGN.
17886 * except.c (init_eh): Ditto.
17887 * function.c (assign_parm_setup_block): Ditto.
17888 * symtab.c (increase_alignment_1): Ditto.
17889 * tree-ssa-ccp.c (fold_builtin_alloca_with_align): Ditto.
17890 * tree-vect-stmts.c (ensure_base_align): Ditto.
17891 * varasm.c (align_variable): Ditto.
17892 (assemble_variable): Ditto.
17893 (build_constant_desc): Ditto.
17894 (output_constant_def_contents): Ditto.
17895
17896 * config/arm/arm.c (arm_relayout_function): Use SET_DECL_ALIGN.
17897 * config/avr/avr.c (avr_adjust_type_node): Use SET_TYPE_ALIGN.
17898 * config/mips/mips.c (mips_std_gimplify_va_arg_expr): Ditto.
17899 * config/msp430/msp430.c (msp430_gimplify_va_arg_expr): Ditto.
17900 * config/spu/spu.c (spu_build_builtin_va_list): Use SET_DECL_ALIGN.
17901
17902 2016-04-18 H.J. Lu <hongjiu.lu@intel.com>
17903
17904 PR target/70708
17905 * config/i386/sse.md (sse2_loadlpd): Accept load from "xm" and
17906 replace %vmovsd with "%vmovq".
17907 (vec_concatv2df): Likewise.
17908
17909 2016-04-18 Uros Bizjak <ubizjak@gmail.com>
17910
17911 * config/i386/mmx.md (*vec_extractv2sf_0): Use gen_lowpart.
17912 (*vec_extractv2si_0): Ditto.
17913 * config/i386/sse.md (*vec_extractv4sf_0): Ditto.
17914 (zero_extended_scalar_load_operand splitters): Ditto.
17915 (vec_extract splitters): Ditto.
17916 (*vec_extractv4si_0_zext): Ditto.
17917 (avx_<castmode><avxsizesuffix>_<castmode>): Use gen_lowpart
17918 and lowpart_subreg.
17919 (avx512f_<castmode><avxsizesuffix>_<castmode>): Ditto.
17920 (avx512f_<castmode><avxsizesuffix>_256<castmode>): Ditto.
17921 (*sse4_1_extractps): Use lowpart_subreg.
17922 * config/i386/i386.md (x87 floatsplitter): Use gen_lowpart.
17923
17924 2016-04-18 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
17925
17926 * doc/install.texi (Specific, i?86-*-solaris2.10): Update gas and
17927 gld requirements.
17928 (Specific, *-*-solaris2*): Update Solaris 11 bundled gcc versions.
17929 Mention Solaris 11 packaging changes.
17930 Update gas and gld requirements.
17931 Remove reference to pre-Solaris 10 bug.
17932 (Specific, sparc-sun-solaris2*): Remove reference to pre-Solaris 10
17933 systems and bugs.
17934 (Specific, sparc64-*-solaris2*): Remove reference to bootstrap
17935 with cc.
17936
17937 2016-04-17 Jan Hubicka <jh@suse.cz>
17938
17939 * tree-ssa-loop-ivopts.c (avg_loop_niter): Use also
17940 max_loop_iterations_int.
17941
17942 2016-04-18 Richard Biener <rguenther@suse.de>
17943
17944 PR tree-optimization/43434
17945 * tree-ssa-structalias.c (struct vls_data): New.
17946 (visit_loadstore): Handle all pointer-based accesses.
17947 (compute_dependence_clique): Compute a bitmap of restrict tags
17948 assigned bases and pass it to visit_loadstore.
17949
17950 2016-04-18 Matthew Wahab <matthew.wahab@arm.com>
17951
17952 PR target/70711
17953 * config/arm/bpabi.h (BE8_LINK_SPEC): Add entries for armv8+crc,
17954 armv8.1-a and armv8.1-a+crc.
17955
17956 2016-04-18 Richard Biener <rguenther@suse.de>
17957
17958 PR tree-optimization/70701
17959 * tree-ssa-sccvn.c (vn_reference_lookup_3): Resolve fully constant
17960 references after translating through a memcpy.
17961
17962 2016-04-18 Richard Biener <rguenther@suse.de>
17963
17964 * tree-ssa-pre.c (postorder, postorder_num): Make locals ...
17965 (compute_antic): ... here. For partial antic use regular
17966 postorder and scrap iteration.
17967 (compute_partial_antic_aux): Remove unused return value.
17968 (init_pre): Do not allocate postorder.
17969 (fini_pre): Do not free postorder.
17970
17971 2016-04-18 Richard Biener <rguenther@suse.de>
17972
17973 PR middle-end/37870
17974 * expmed.c (extract_bit_field_1): Remove broken case
17975 using a wider MODE_INT mode.
17976
17977 2016-04-18 Segher Boessenkool <segher@kernel.crashing.org>
17978
17979 * has-brig.c (lendian16): Don't try to use __builtin_bswap16
17980 unless compiling with at least GCC-4.8.
17981
17982 2016-04-17 Jan Hubicka <jh@suse.cz>
17983
17984 PR bootstrap/70706
17985 * graphite.c (graphite_finalize): Update call to
17986 tree_estimate_probability.
17987 * predict.h (tree_estimate_probability): Update prototype.
17988
17989 2016-04-17 Jan Hubicka <jh@suse.cz>
17990
17991 * predict.c (combine_predictions_for_bb): Add dry_run parmaeter.
17992 (tree_estimate_probability): Likewise.
17993 (pass_profile::execute): Update.
17994 (report_predictor_hitrates): New function.
17995 * profile.c (compute_branch_probabilities): Use it.
17996 * predict.h (report_predictor_hitrates): Declare.
17997
17998 2016-04-17 Jan Hubicka <jh@suse.cz>
17999
18000 PR ipa/70018
18001 * cgraph.h (cgraph_node::set_const_flag,
18002 cgraph_node::set_pure_flag): Update prototype to return bool;
18003 update comment.
18004 * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases): Thunks
18005 of interposable symbol are interposable, too.
18006 (cgraph_set_const_flag_1): Rename to ...
18007 (set_const_flag_1): ... this one; change to self recursive function
18008 instead of call_for_symbol_thunks_and_aliases. Handle correctly
18009 clearnig the flag in all variants and also virtual thunks of const
18010 functions are pure; track if any change was done.
18011 (cgraph_node::set_const_flag): Update.
18012 (struct set_pure_flag_info): New struct.
18013 (cgraph_set_pure_flag_1): Rename to ...
18014 (set_pure_flag_1): ... this one; take set_pure_flag_info parameter
18015 rather than pointer encoded flags; track if any changes was done;
18016 handle correctly clearning flag and setting flag of aliases already
18017 declared const.
18018 (cgraph_node::set_pure_flag): Update.
18019 (cgraph_node::set_nothrow_flag): Handle correctly clearning the flag.
18020
18021 2016-04-17 Tom de Vries <tom@codesourcery.com>
18022
18023 PR other/70433
18024 * pretty-print.c (pp_write_text_as_dot_label_to_stream): Escape
18025 backslash in label.
18026
18027 2016-04-17 Tom de Vries <tom@codesourcery.com>
18028
18029 * pretty-print.c (pp_write_text_as_dot_label_to_stream): Classify chars
18030 '{}<> ' as escape-for-record.
18031
18032 2016-04-17 Tom de Vries <tom@codesourcery.com>
18033
18034 * pretty-print.c (pp_write_text_as_dot_label_to_stream): Simplify loop
18035 structure.
18036
18037 2016-04-17 Tom de Vries <tom@codesourcery.com>
18038
18039 PR other/70185
18040 * tree-pass.h (class opt_pass): Remove graph_dump_initialized member.
18041 * dumpfile.h (struct dump_file_info): Add graph_dump_initialized field.
18042 * dumpfile.c (dump_files): Initialize graph_dump_initialized field.
18043 * passes.c (finish_optimization_passes): Only call
18044 finish_graph_dump_file if dfi->graph_dump_initialized.
18045 (execute_function_dump, pass_init_dump_file): Use
18046 dfi->graph_dump_initialized instead of pass->graph_dump_initialized.
18047
18048 2016-04-17 Tom de Vries <tom@codesourcery.com>
18049
18050 PR tree-optimization/70256
18051 * tree-ssa-structalias.c (dump_varinfo, debug_varinfo, dump_varmap)
18052 (debug_varmap): New function.
18053
18054 2016-04-17 Tom de Vries <tom@codesourcery.com>
18055
18056 PR other/70183
18057 * passes.c (pass_manager::register_pass): Propagate pflags.
18058
18059 2016-04-17 Tom de Vries <tom@codesourcery.com>
18060
18061 PR other/68875
18062 * pass_manager.h (TERMINATE_PASS_LIST): Add pass argument.
18063 * passes.c (pass_manager::pass_manager): Declare and init p_start in
18064 INSERT_PASSES_AFTER. Add pass parameter to TERMINATE_PASS_LIST, and
18065 check if it's equal to p_start.
18066 * passes.def: Add arguments to TERMINATE_PASS_LISTs.
18067
18068 2016-04-15 Jan Hubicka <jh@suse.cz>
18069
18070 PR ipa/70018
18071 * cgraph.c (cgraph_set_const_flag_1): Only set as pure if
18072 function does not bind to current def.
18073 * ipa-pure-const.c (worse_state): Add FROM and TO parameters;
18074 handle conservatively calls to functions that does not need to bind
18075 to current def.
18076 (check_call): Update call of worse_state.
18077 (ignore_edge_for_nothrow): Update.
18078 (ignore_edge_for_pure_const): Likewise.
18079 (propagate_pure_const): Update calls to worse_state.
18080 (skip_function_for_local_pure_const): Reformat comments.
18081
18082 2016-04-15 Jan Hubicka <jh@suse.cz>
18083
18084 PR ipa/70018
18085 * cgraph.c (cgraph_node::get_availability): Add REF parameter.
18086 (cgraph_node::function_symbol): Likewise.
18087 (cgraph_node::function_or_virtual_thunk_symbol): Likewise.
18088 * cgraph.h (symtab_node::get_availabbility): Add REF parameter.
18089 (symtab_node::ultimate_alias_target): Add REF parameter.
18090 (symtab_node::binds_to_current_def_p): Declare.
18091 (symtab_node;:ultimate_alias_target_1): Add REF parameter.
18092 (cgraph_node::function_symbol): Likewise.
18093 (cgraph_node::function_or_virtual_thunk_symbol): Likewise.
18094 (cgraph_node::get_availability): Likewise.
18095 (cgraph_edge::binds_to_current_def_p): New inline function.
18096 (varpool_node::get_availability): Add REF parameter.
18097 (varpool_node::ultimate_alias_target): Likewise.
18098 * symtab.c (symtab_node::ultimate_alias_target_1): Likewise.
18099 (symtab_node::binds_to_current_def_p): Likewise.
18100 * varpool.c (varpool_node::get_availability): Likewise.
18101
18102 2016-04-15 Kirill Yukhin <kirill.yukhin@intel.com>
18103
18104 PR target/70662
18105 * config/i386/sse.md(define_insn "<avx512>_vec_dup<mode><mask_name>"):
18106 Fix mode size check.
18107
18108 2016-04-15 Jakub Jelinek <jakub@redhat.com>
18109
18110 * BASE-VER: Set to 7.0.0.
18111
18112 2016-04-15 Alexander Monakov <amonakov@ispras.ru>
18113
18114 * config/nvptx/nvptx.opt (moptimize): Add a period at end of help text.
18115
18116 2016-04-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18117
18118 * doc/invoke.texi (ARM Options): Add note on deprecation of pre-ARMv4T
18119 architecture revisions.
18120
18121 2016-04-15 Bernd Schmidt <bschmidt@redhat.com>
18122
18123 * config/i386/i386-protos.h (ix86_using_red_zone): Declare.
18124 * config/i386/i386.c (ix86_using_red_zone): No longer static.
18125 * config/i386/i386.md (stack decrement to push peepholes): Guard
18126 with !x86_using_red_zone ().
18127
18128 2016-04-15 Jakub Jelinek <jakub@redhat.com>
18129
18130 PR c++/70675
18131 * tree-pretty-print.c (do_niy): Add FLAGS argument, pass it down
18132 to dump_generic_node.
18133 (NIY): Pass also flags to do_niy.
18134
18135 2016-04-15 Thomas Schwinge <thomas@codesourcery.com>
18136
18137 * omp-low.c (simd_clone_struct_alloc, simd_clone_struct_copy)
18138 (simd_clone_vector_of_formal_parm_types)
18139 (simd_clone_clauses_extract, simd_clone_compute_base_data_type)
18140 (simd_clone_mangle, simd_clone_create)
18141 (simd_clone_adjust_return_type, create_tmp_simd_array)
18142 (simd_clone_adjust_argument_types, simd_clone_init_simd_arrays)
18143 (struct modify_stmt_info, ipa_simd_modify_stmt_ops)
18144 (ipa_simd_modify_function_body, simd_clone_linear_addend)
18145 (simd_clone_adjust, expand_simd_clones, ipa_omp_simd_clone)
18146 (pass_data_omp_simd_clone, class pass_omp_simd_clone)
18147 (pass_omp_simd_clone::gate, make_pass_omp_simd_clone): Move into...
18148 * omp-simd-clone.c: ... this new file.
18149 (simd_clone_vector_of_formal_parm_types): Make it static.
18150 * Makefile.in (OBJS): Add omp-simd-clone.o.
18151
18152 2016-04-15 Kirill Yukhin <kirill.yukhin@intel.com>
18153
18154 PR target/70662
18155 * config/i386/sse.md: Use proper memory operand modifiers.
18156
18157
18158 2016-04-15 Richard Biener <rguenther@suse.de>
18159 Alan Modra <amodra@gmail.com>
18160
18161 PR tree-optimization/70130
18162 * tree-vect-data-refs.c (vect_supportable_dr_alignment): Detect
18163 when alignment stays not the same and no not use the realign
18164 scheme then.
18165
18166 2016-04-14 Michael Meissner <meissner@linux.vnet.ibm.com>
18167
18168 PR target/70669
18169 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
18170 direct move handlers for KFmode. Change TFmode handlers test from
18171 FLOAT128_IEEE_P to FLOAT128_VECTOR_P.
18172
18173 2016-04-14 Jakub Jelinek <jakub@redhat.com>
18174
18175 PR c++/70594
18176 * ipa-utils.h (polymorphic_ctor_dtor_p): New prototype.
18177 * ipa-polymorphic-call.c (polymorphic_ctor_dtor_p): New function.
18178 (inlined_polymorphic_ctor_dtor_block_p): Use it.
18179 * tree-ssa-live.c (remove_unused_scope_block_p): When
18180 in_ctor_dtor_block, avoid discarding not just BLOCKs with
18181 BLOCK_ABSTRACT_ORIGIN being FUNCTION_DECL, but even when
18182 block_ultimate_origin is FUNCTION_DECL.
18183 (remove_unused_locals): If current_function_decl is
18184 polymorphic_ctor_dtor_p, pass initial true to
18185 remove_unused_scope_block_p' is_ctor_dtor_block.
18186
18187 2016-04-14 Martin Sebor <msebor@redhat.com>
18188
18189 PR c++/69517
18190 PR c++/70019
18191 PR c++/70588
18192 * doc/extend.texi (Variable Length): Revert.
18193
18194 2016-04-14 Marek Polacek <polacek@redhat.com>
18195 Jan Hubicka <hubicka@ucw.cz>
18196
18197 PR c++/70029
18198 * tree.c (verify_type): Disable the canonical type of main variant
18199 check.
18200
18201 2016-04-14 Jason Merrill <jason@redhat.com>
18202
18203 * cfgexpand.c, expr.c: Revert previous change.
18204
18205 2016-04-14 Cesar Philippidis <cesar@codesourcery.com>
18206
18207 PR middle-end/70643
18208 * omp-low.c (lower_oacc_reductions): Check for TREE_CONSTANT
18209 when building a mem ref for the incoming reduction variable.
18210
18211 2016-04-14 Richard Biener <rguenther@suse.de>
18212
18213 PR tree-optimization/70614
18214 * tree-scalar-evolution.c (analyze_evolution_in_loop): Terminate
18215 loop if the evolution dropped to chrec_dont_know.
18216 (interpret_condition_phi): Likewise.
18217
18218 2016-04-14 Richard Biener <rguenther@suse.de>
18219
18220 PR tree-optimization/70623
18221 * tree-ssa-pre.c (changed_blocks): Make global ...
18222 (compute_antic): ... local here. Move and fix worklist
18223 handling here. Do not clear EDGE_DFS_BACK or call mark_dfs_back_edges.
18224 (compute_antic_aux): Add dumping for MAX assumed succs. Remove
18225 worklist handling, dump when ANTIC_IN changed.
18226 (compute_partial_antic_aux): Remove worklist handling.
18227 (init_pre): Do not compute post dominators. Add a comment about
18228 the CFG order chosen.
18229 (fini_pre): Do not free post dominators.
18230
18231 2016-04-13 Martin Sebor <msebor@redhat.com>
18232
18233 PR c++/69517
18234 PR c++/70019
18235 PR c++/70588
18236 * doc/extend.texi (Variable Length): Document C++ specifics.
18237
18238 2016-04-13 Jakub Jelinek <jakub@redhat.com>
18239
18240 PR c++/70641
18241 * ipa-pure-const.c (pass_nothrow::execute): Call maybe_clean_eh_stmt
18242 on all recursive call stmts. Return TODO_cleanup_cfg if any dead
18243 eh edges have been purged.
18244
18245 PR c++/70594
18246 * tree-sra.c (create_access_replacement,
18247 get_replaced_param_substitute): Set DECL_NAMELESS on repl if it
18248 gets fancy name.
18249 * tree-pretty-print.c (dump_fancy_name): New function.
18250 (dump_decl_name, dump_generic_node): Use it.
18251
18252 2016-04-13 Jason Merrill <jason@redhat.com>
18253
18254 * cfgexpand.c (pass_expand::execute): Handle attribute "abi warning".
18255 * expr.c (expand_expr_real_1): Likewise.
18256
18257 2016-04-13 Ilya Enkovich <ilya.enkovich@intel.com>
18258
18259 * config/i386/i386.md (kunpckhi): Swap operands.
18260 (kunpcksi): Likewise.
18261 (kunpckdi): Likewise.
18262 * config/i386/sse.md (vec_pack_trunc_qi): Likewise.
18263 (vec_pack_trunc_<mode>): Likewise.
18264
18265 2016-04-13 Jakub Jelinek <jakub@redhat.com>
18266
18267 PR debug/70628
18268 * explow.c (convert_memory_address_addr_space_1): Formatting fix.
18269
18270 PR middle-end/70633
18271 * gimplify.c (gimplify_init_constructor): Clear TREE_STATIC if
18272 gimplification turns some element into non-constant.
18273
18274 PR debug/70628
18275 * rtl.h (convert_memory_address_addr_space_1): New prototype.
18276 * explow.c (convert_memory_address_addr_space_1): No longer static,
18277 add NO_EMIT argument and don't call convert_modes if true, pass
18278 it down recursively, remove break after return.
18279 (convert_memory_address_addr_space): Adjust caller.
18280 * simplify-rtx.c (simplify_unary_operation_1): Call
18281 convert_memory_address_addr_space_1 instead of convert_memory_address,
18282 if it returns NULL, don't simplify.
18283
18284 2016-04-12 Eric Botcazou <ebotcazou@adacore.com>
18285
18286 PR target/70630
18287 * config/sparc/sparc.c (sparc_compute_frame_size): Add parentheses.
18288
18289 2016-04-12 Jakub Jelinek <jakub@redhat.com>
18290
18291 * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
18292 Bump the upper SIMDLEN limits, so that if the return type or
18293 characteristic type if the return type is void can be passed in
18294 all available SSE2/AVX/AVX2/AVX512-F registers, the SIMDLEN is
18295 allowed.
18296
18297 2016-04-12 Michael Meissner <meissner@linux.vnet.ibm.com>
18298
18299 PR target/70640
18300 * config/rs6000/rs6000.md (ieee_128bit_vsx_neg<mode>2_internal):
18301 Do not use "=" constraint on an input constraint.
18302 (ieee_128bit_vsx_abs<mode>2_internal): Likewise.
18303 (ieee_128bit_vsx_nabs<mode>2_internal): Likewise.
18304 (ieee_128bit_vsx_nabs<mode>2): Correct splitter so that it
18305 generates (neg (abs ...)) instead of (abs ...).
18306
18307 2016-04-12 Jakub Jelinek <jakub@redhat.com>
18308
18309 PR rtl-optimization/70596
18310 * lra-spills.c (spill_pseudos): Don't delete debug insns, instead
18311 just invalidate LRA data and reset them. Adjust dump wording.
18312
18313 2016-04-12 Martin Liska <mliska@suse.cz>
18314
18315 Revert
18316 2016-03-30 Jan Hubicka <hubicka@ucw.cz>
18317
18318 * tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can't get realistic
18319 estimates here.
18320 * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also
18321 max_loop_iterations_int.
18322 (tree_unswitch_outer_loop): Likewise.
18323 * tree-ssa-loop-ivopts.c (avg_loop_niter): Likewise.
18324 * tree-vect-loop.c (vect_analyze_loop_2): Likewise.
18325
18326 2016-04-12 Tom de Vries <tom@codesourcery.com>
18327
18328 PR tree-optimization/68756
18329 * graphite-isl-ast-to-gimple.c (copy_cond_phi_args): Use new_expr
18330 instead of new_name.
18331
18332 2016-04-12 Jakub Jelinek <jakub@redhat.com>
18333
18334 PR tree-optimization/70602
18335 * tree-sra.c (generate_subtree_copies): Don't write anything into
18336 constant pool decls.
18337
18338 * omp-low.c (lower_omp_target): Use GOMP_MAP_FIRSTPRIVATE_INT
18339 regardless whether there are depend clauses or not.
18340
18341 2016-04-11 Michael Meissner <meissner@linux.vnet.ibm.com>
18342
18343 PR target/70381
18344 * config/rs6000/rs6000.c (rs6000_opt_masks): Disable using the
18345 target attribute and pragma from changing the -mfloat128
18346 and -mfloat128-hardware options.
18347
18348 * doc/extend.texi (Additional Floating Types): Document PowerPC
18349 __float128 restrictions.
18350
18351 2016-04-11 James Greenhalgh <james.greenhalgh@arm.com>
18352
18353 PR target/70133
18354 * config/aarch64/driver-aarch64.c
18355 (aarch64_get_extension_string_for_isa_flags): New.
18356 (arch_extension): Rename to...
18357 (aarch64_arch_extension): ...This.
18358 (ext_to_feat_string): Rename to...
18359 (aarch64_extensions): ...This.
18360 (aarch64_core_data): Keep track of architecture extension flags.
18361 (cpu_data): Rename to...
18362 (aarch64_cpu_data): ...This.
18363 (aarch64_arch_driver_info): Keep track of architecture extension
18364 flags.
18365 (get_arch_name_from_id): Rename to...
18366 (get_arch_from_id): ...This, change return type.
18367 (host_detect_local_cpu): Update and reformat for renames, handle
18368 extensions through common infrastructure.
18369
18370 2016-04-11 James Greenhalgh <james.greenhalgh@arm.com>
18371
18372 PR target/70133
18373 * config/aarch64/aarch64-common.c (aarch64_option_extension): Keep
18374 track of a canonical flag name.
18375 (all_extensions): Likewise.
18376 (arch_to_arch_name): Also track extension flags enabled by the arch.
18377 (all_architectures): Likewise.
18378 (aarch64_parse_extension): Move to here.
18379 (aarch64_get_extension_string_for_isa_flags): Take a new argument,
18380 rework.
18381 (aarch64_rewrite_selected_cpu): Update for above change.
18382 * config/aarch64/aarch64-option-extensions.def: Rework the way flags
18383 are handled, such that the single explicit value enabled by an
18384 extension is kept seperate from the implicit values it also enables.
18385 * config/aarch64/aarch64-protos.h (aarch64_parse_opt_result): Move
18386 to here.
18387 (aarch64_parse_extension): New.
18388 * config/aarch64/aarch64.c (aarch64_parse_opt_result): Move from
18389 here to config/aarch64/aarch64-protos.h.
18390 (aarch64_parse_extension): Move from here to
18391 common/config/aarch64/aarch64-common.c.
18392 (aarch64_option_print): Update.
18393 (aarch64_declare_function_name): Likewise.
18394 (aarch64_start_file): Likewise.
18395 * config/aarch64/driver-aarch64.c (arch_extension): Keep track of
18396 the canonical flag for extensions.
18397 * config.gcc (aarch64*-*-*): Extend regex for capturing extension
18398 flags.
18399
18400 2016-04-11 James Greenhalgh <james.greenhalgh@arm.com>
18401
18402 * config/aarch64/aarch64.h (AARCH64_FL_FOR_ARCH8_1): Also add
18403 AARCH64_FL_CRC.
18404
18405 2016-04-09 Tom de Vries <tom@codesourcery.com>
18406
18407 PR tree-optimization/68953
18408 * graphite-sese-to-poly.c (pdr_add_memory_accesses): Order accesses from
18409 first to last subscript.
18410
18411 2016-04-09 Jakub Jelinek <jakub@redhat.com>
18412
18413 PR tree-optimization/70586
18414 * tree-ssa-ifcombine.c (bb_no_side_effects_p): Return false
18415 for any calls.
18416
18417 2016-04-08 Cesar Philippidis <cesar@codesourcery.com>
18418
18419 PR lto/70289
18420 PR ipa/70348
18421 PR tree-optimization/70373
18422 PR middle-end/70533
18423 PR middle-end/70534
18424 PR middle-end/70535
18425 * gimplify.c (gimplify_adjust_omp_clauses): Add or adjust data
18426 clauses for acc parallel reductions as necessary. Error on those
18427 that are private.
18428 * omp-low.c (scan_sharing_clauses): Don't install variables which
18429 are used in acc parallel reductions.
18430 (lower_rec_input_clauses): Remove dead code.
18431 (lower_oacc_reductions): Add support for reference reductions.
18432 (lower_reduction_clauses): Remove dead code.
18433 (lower_omp_target): Don't remap variables appearing in acc parallel
18434 reductions.
18435 * tree.h (OMP_CLAUSE_MAP_IN_REDUCTION): New macro.
18436
18437 2016-04-08 Jakub Jelinek <jakub@redhat.com>
18438
18439 PR middle-end/70593
18440 * tree-ssa-coalesce.c (build_ssa_conflict_graph): For stmt
18441 with multiple SSA_NAME defs, force the outputs other than first
18442 to be live before calling live_track_process_def on each output.
18443
18444 PR rtl-optimization/70574
18445 * fwprop.c (forward_propagate_and_simplify): Don't add
18446 REG_EQUAL note if DF_REF_REG (use) is a paradoxical subreg.
18447 (try_fwprop_subst): Don't add REG_EQUAL note if there are any
18448 paradoxical subregs within *loc.
18449
18450 2016-04-08 Thomas Schwinge <thomas@codesourcery.com>
18451
18452 * config/arc/arc.h (LINK_COMMAND_SPEC): Use gt to ignore
18453 -ftree-parallelize-loops={0,1}.
18454 * config/darwin.h (LINK_COMMAND_SPEC_A): Likewise.
18455 * config/i386/mingw32.h (GOMP_SELF_SPECS): Likewise.
18456 * config/ia64/hpux.h (LIB_SPEC): Likewise.
18457 * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
18458 * config/pa/pa64-hpux.h (LIB_SPEC): Likewise.
18459
18460 2016-04-08 Maxim Ostapenko <m.ostapenko@samsung.com>
18461
18462 PR sanitizer/70541
18463 * asan.c (instrument_derefs): If we get unknown location, extract it
18464 with EXPR_LOCATION.
18465 (maybe_instrument_call): Instrument gimple_call's arguments if needed.
18466
18467 2016-04-08 Tom de Vries <tom@codesourcery.com>
18468
18469 * omp-low.c (lower_omp_target): Set TREE_NO_WARNING for oacc
18470 implicit firstprivate clause.
18471
18472 2016-04-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18473
18474 PR target/70566
18475 * config/arm/thumb2.md (tst + branch-> lsls + branch
18476 peephole below *orsi_not_shiftsi_si): Require that condition
18477 register is dead after the peephole.
18478 (second peephole after the above): Likewise.
18479
18480 2016-04-08 Alan Modra <amodra@gmail.com>
18481
18482 PR target/70117
18483 * builtins.c (fold_builtin_classify): For IBM extended precision,
18484 look at just the high-order double to test for NaN.
18485 (fold_builtin_interclass_mathfn): Similarly for Inf. For isnormal
18486 test just the high double for Inf but both doubles for subnormal
18487 limit.
18488
18489 2016-04-07 Jakub Jelinek <jakub@redhat.com>
18490
18491 * cgraph.h (struct cgraph_simd_clone): Add mask_mode field.
18492 * omp-low.c (simd_clone_init_simd_arrays, simd_clone_adjust): Handle
18493 node->simdclone->mask_mode != VOIDmode masks.
18494 (simd_clone_adjust_argument_types): Likewise. Move sc var definition
18495 earlier, use it instead of node->simdclone.
18496 * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
18497 Set clonei->mask_mode.
18498
18499 2016-04-06 Patrick Palka <ppalka@gcc.gnu.org>
18500
18501 PR c/70436
18502 * parser.c (cp_parser_iteration_statement): New parameter IF_P.
18503 Pass it through to cp_parser_already_scoped_statement.
18504 (cp_parser_already_scoped_statement): New parameter IF_P. Pass
18505 it through to cp_parser_statement.
18506 (cp_parser_statement): Pass IF_P through to
18507 cp_parser_iteration_statement.
18508 (cp_parser_pragma): Adjust call to
18509 cp_parser_iteration_statement.
18510
18511 2016-04-06 Patrick Palka <ppalka@gcc.gnu.org>
18512
18513 PR c/70436
18514 * gimplify.c (gimplify_omp_ordered): Add explicit braces to
18515 resolve a future -Wparentheses warning.
18516 * omp-low.c (scan_sharing_clauses): Likewise.
18517 * tree-parloops.c (eliminate_local_variables): Likewise.
18518
18519 2016-04-06 Vladimir Makarov <vmakarov@redhat.com>
18520
18521 PR rtl-optimization/70398
18522 * lra-constraints.c (process_address_1): Check zero scale and code
18523 for reloading with zero scale.
18524
18525 2016-04-06 Uros Bizjak <ubizjak@gmail.com>
18526
18527 * config/i386/sse.md (shuffletype): Add V32HI and V4TI modes.
18528 (ssescalarsize): Add V8SF, V4SF, V4DF and V2DF modes.
18529
18530 2016-04-06 Jakub Jelinek <jakub@redhat.com>
18531
18532 * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
18533 Add support for AVX512F clones, include them by default for
18534 exported OpenMP declare simd functions. For AVX2 allow simdlen 32
18535 and use it if charasteric type is 8-bit, for AVX512F allow simdlen
18536 up to 128.
18537
18538 PR middle-end/70550
18539 * tree.h (OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT): Define.
18540 * gimplify.c (gimplify_adjust_omp_clauses_1): Set it for implicit
18541 firstprivate clauses.
18542 * omp-low.c (lower_send_clauses): Set TREE_NO_WARNING for
18543 OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT !by_ref vars in task contexts.
18544 (lower_omp_target): Set TREE_NO_WARNING for
18545 non-addressable possibly uninitialized vars which are copied into
18546 addressable temporaries or copied for GOMP_MAP_FIRSTPRIVATE_INT.
18547
18548 2016-04-05 John David Anglin <danglin@gcc.gnu.org>
18549
18550 * config/pa/predicates.md (integer_store_memory_operand): Accept
18551 REG+D operands with a large offset when reload_in_progress is true.
18552 (floating_point_store_memory_operand): Likewise.
18553
18554 2016-04-05 Jakub Jelinek <jakub@redhat.com>
18555
18556 PR c++/70336
18557 * match.pd (nested int casts): Limit to GIMPLE.
18558
18559 2016-04-05 Jan Hubicka <hubicka@ucw.cz>
18560
18561 PR ipa/66223
18562 * ipa-devirt.c (maybe_record_node): Fix comment; use
18563 SANITIZE_UNREACHABLE instead of SANITIZE_UNDEFINED.
18564
18565 2016-04-05 Jakub Jelinek <jakub@redhat.com>
18566
18567 PR rtl-optimization/70542
18568 * ree.c (add_removable_extension): For VECTOR_MODE_P punt
18569 if there are any uses other than insn or debug insns.
18570
18571 2016-04-05 Marc Glisse <marc.glisse@inria.fr>
18572 Jakub Jelinek <jakub@redhat.com>
18573
18574 PR tree-optimization/70509
18575 * simplify-rtx.c (simplify_binary_operation_1) <case VEC_SELECT>:
18576 Shift HOST_WIDE_INT_1U instead of 1.
18577
18578 2016-04-05 Zdenek Sojka <zsojka@seznam.cz>
18579
18580 PR tree-optimization/70509
18581 * tree-ssa-forwprop.c (simplify_bitfield_ref): Use bitsize_int instead
18582 of the vector base type for index.
18583
18584 2016-04-05 Uros Bizjak <ubizjak@gmail.com>
18585
18586 PR target/70510
18587 * config/i386/sse.md (iptr): Add V64QI, V32HI, V16SI and V8DI modes.
18588
18589 2016-04-05 Richard Biener <rguenther@suse.de>
18590
18591 PR tree-optimization/70526
18592 * tree-sra.c (build_ref_for_offset): Use prev_base to
18593 extract the alias pointer type.
18594
18595 2016-04-05 Richard Biener <rguenther@suse.de>
18596
18597 * dse.c (struct store_info): Remove alias_set member.
18598 (struct read_info_type): Likewise.
18599 (clear_alias_group, clear_alias_mode_table, clear_alias_mode_holder,
18600 spill_deleted, clear_alias_set_lookup): Remove.
18601 (get_group_info): Remove dead base == NULL_RTX case.
18602 (dse_step0): Remove initialization of removed variables.
18603 (delete_dead_store_insn): Reomve alias set dumping.
18604 (free_read_records): Remove alias_set handling.
18605 (canon_address): Remove alias_set_out parameter.
18606 (record_store): Remove spill_alias_set, it's always zero.
18607 (check_mem_read_rtx): Likewise.
18608 (dse_step2): Rename from ...
18609 (dse_step2_nospill): ... this. Adjust.
18610 (scan_stores): Rename from ...
18611 (scan_stores_nospill): ... this.
18612 (scan_reads): Rename from ...
18613 (scan_reads_nospill): ... this.
18614 (scan_stores_spill, scan_reads_spill): Remove.
18615 (dse_step3_scan): Remove for_spills argument which is always false.
18616 (dse_step3): Likewise.
18617 (dse_step5): Rename from ...
18618 (dse_step5_nospill): ... this. Remove alias_set handling.
18619 (rest_of_handle_dse): Adjust.
18620
18621 2016-04-05 Jakub Jelinek <jakub@redhat.com>
18622
18623 PR target/70525
18624 * config/i386/sse.md (*andnot<mode>3): Simplify assertions.
18625 Use vpandn<ssemodesuffix> for V16SI/V8DImode, vpandnq for
18626 V32HI/V64QImode, don't use <mask_operand3_1>, fix up formatting.
18627 (*andnot<mode>3_mask): Remove insn with VI12_AVX512VL iterator.
18628
18629 2016-04-05 Richard Biener <rguenther@suse.de>
18630
18631 PR middle-end/70499
18632 * gimplify-me.c (gimple_regimplify_operands): Do not rewrite
18633 non-register type temporaries into SSA.
18634
18635 2016-04-04 Jan Hubicka <hubicka@ucw.cz>
18636
18637 PR ipa/66223
18638 * ipa-devirt.c (maybe_record_node): Do not optimize cxa_pure_virtual
18639 calls when sanitizing.
18640 (possible_polymorphic_call_target_p): Fix formatting.
18641
18642 2016-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
18643 Jakub Jelinek <jakub@redhat.com>
18644
18645 PR middle-end/70457
18646 * tree-inline.c (estimate_num_insn): Use gimple_call_builtin_p
18647 to ensure a call statement is compatible with a built-in's
18648 prototype.
18649 * tree-ssa-math-opts.c (pass_optimize_windening_mul::execute):
18650 Likewise.
18651
18652 2016-04-04 Richard Biener <rguenther@suse.de>
18653
18654 PR rtl-optimization/70484
18655 * rtl.h (canon_output_dependence): Declare.
18656 * alias.c (canon_output_dependence): New function.
18657 * dse.c (record_store): Use canon_output_dependence rather
18658 than canon_true_dependence.
18659
18660 2016-03-30 Jan Hubicka <hubicka@ucw.cz>
18661
18662 PR ipa/68881
18663 * cgraph.h (symtab_node::copy_visibility_from): New function.
18664 * symtab.c (symtab_node::copy_visibility_from): New function.
18665 * ipa-visibility.c (optimize_weakref): New function.
18666 (function_and_variable_visibility): Use it.
18667
18668 2016-04-04 Martin Liska <mliska@suse.cz>
18669
18670 PR hsa/70402
18671 * hsa-gen.c (gen_hsa_insns_for_switch_stmt): Guard index
18672 value that is really in range handled by SBR instruction.
18673 * hsa-brig.c (emit_switch_insn): Do not emit unconditional jump.
18674 * hsa-dump.c (dump_hsa_insn_1): Do not dump default BB.
18675 * hsa.h (hsa_insn_sbr::m_default_bb): Remove field.
18676
18677 2016-04-03 Oleg Endo <olegendo@gcc.gnu.org>
18678
18679 PR target/70416
18680 PR target/67391
18681 * config/sh/sh.md (*addsi3): Allow pattern when reload_in_progress is
18682 set, but not for SP_REG operands.
18683
18684 2016-04-02 Martin Sebor <msebor@redhat.com>
18685
18686 PR c++/67376
18687 * fold-const.c (maybe_nonzero_address): New function.
18688 (fold_comparison): Call it. Fold equality and relational
18689 expressions involving null pointers.
18690 (tree_single_nonzero_warnv_p): Call maybe_nonzero_address.
18691
18692 2016-03-31 Evandro Menezes <e.menezes@samsung.com>
18693
18694 Fix the predicate "aarch64_simd_reg_or_zero" to correctly validate
18695 the "Y" constraint (scalar FP 0.0 immediate).
18696
18697 * config/aarch64/predicates.md (aarch64_simd_reg_or_zero):
18698 Add the "const_double" to the list of operand constraints.
18699
18700 2016-04-01 Jakub Jelinek <jakub@redhat.com>
18701
18702 PR rtl-optimization/70467
18703 * config/i386/i386.md (*add<dwi>3_doubleword, *sub<dwi>3_doubleword):
18704 If low word of the last operand is 0, just emit addition/subtraction
18705 for the high word.
18706
18707 2016-04-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
18708
18709 PR target/70404
18710 * config/s390/s390.c (s390_expand_insv): Check for everything
18711 constant instead of just VOIDmode stuff.
18712
18713 2016-04-01 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
18714
18715 PR target/70496
18716 * config/arm/arm.h (ASM_APP_OFF): Handle TARGET_ARM and TARGET_THUMB.
18717
18718 2016-04-01 Nathan Sidwell <nathan@acm.org>
18719
18720 * tree.def (TRY_CATCH_EXPR): Correct documentation.
18721
18722 2016-03-31 Vladimir Makarov <vmakarov@redhat.com>
18723
18724 PR rtl-optimization/70461
18725 * ira-color.c (allocno_copy_cost_saving): Use allocno class if it
18726 is necessary.
18727
18728 2016-03-31 Martin Liska <mliska@suse.cz>
18729
18730 PR hsa/70399
18731 * hsa-brig.c (hsa_op_immed::emit_to_buffer): Emit either
18732 a tree value or an immediate integer value to a buffer
18733 that is eventually copied to a BRIG section.
18734 (emit_immediate_operand): Call the function here.
18735 * hsa-dump.c (dump_hsa_immed): Remove checking assert.
18736 * hsa-gen.c (hsa_op_immed::hsa_op_immed): Remove initialization
18737 of class' fields that are removed.
18738 (hsa_op_immed::~hsa_op_immed): Remove deinitialization.
18739 * hsa.h (class hsa_op_immed): Remove m_brig_repr and
18740 m_brig_repr_size fields.
18741
18742 2016-03-31 Martin Liska <mliska@suse.cz>
18743
18744 PR hsa/70391
18745 * hsa-gen.c (hsa_function_representation::update_dominance): New
18746 function.
18747 (convert_addr_to_flat_segment): Likewise.
18748 (gen_hsa_memory_set): New alignment argument.
18749 (gen_hsa_ctor_assignment): Likewise.
18750 (gen_hsa_insns_for_single_assignment): Provide alignment
18751 to gen_hsa_ctor_assignment.
18752 (gen_hsa_insns_for_direct_call): Add new argument.
18753 (expand_lhs_of_string_op): New function.
18754 (expand_string_operation_builtin): Likewise.
18755 (expand_memory_copy): New function.
18756 (expand_memory_set): New function.
18757 (gen_hsa_insns_for_call): Use HOST_WIDE_INT.
18758 (convert_switch_statements): Change signature.
18759 (generate_hsa): Use a return value of the function.
18760 (pass_gen_hsail::execute): Do not call
18761 convert_switch_statements here.
18762 * hsa-regalloc.c (hsa_regalloc): Call update_dominance.
18763 * hsa.h (hsa_function_representation::m_modified_cfg): New flag.
18764 (hsa_function_representation::update_dominance): New function.
18765
18766 2016-03-31 Martin Liska <mliska@suse.cz>
18767
18768 PR hsa/70391
18769 * hsa-brig.c (emit_directive_variable): Emit alignment
18770 according to hsa_symbol::m_align.
18771 * hsa-dump.c (hsa_byte_alignment): Move the function to another file.
18772 (dump_hsa_symbol): Dump alignment of HSA symbols.
18773 * hsa-gen.c (get_symbol_for_decl): Set-up alignment of a symbol.
18774 (gen_hsa_addr_with_align): New function.
18775 (hsa_bitmemref_alignment): Use newly added function.
18776 (gen_hsa_insns_for_load): Likewise.
18777 (gen_hsa_insns_for_store): Likewise.
18778 (gen_hsa_memory_copy): New argument added.
18779 (gen_hsa_insns_for_single_assignment): Respect
18780 alignment for assignments processed via gen_hsa_memory_copy.
18781 (gen_hsa_insns_for_direct_call): Likewise.
18782 (gen_hsa_insns_for_return): Likewise.
18783 (gen_function_def_parameters): Set default alignment.
18784 * hsa.c (hsa_object_alignment): New function.
18785 (hsa_byte_alignment): Pasted function.
18786 * hsa.h (hsa_symbol::m_align): New field.
18787
18788 2016-03-31 Bin Cheng <bin.cheng@arm.com>
18789
18790 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Initialize
18791 scratch field for goto case.
18792
18793 2016-03-31 James Greenhalgh <james.greenhalgh@arm.com>
18794
18795 * config/arm/linux-elf.h (ASM_OUTPUT_DEF): Delete.
18796
18797 2016-03-31 Ilya Enkovich <enkovich.gnu@gmail.com>
18798
18799 PR target/70442
18800 * config/i386/i386.c (scalar_chain::convert_op): Fix description.
18801 (scalar_chain::convert_insn): Call convert_op for reg
18802 moves to handle undefined registers.
18803
18804 2016-03-31 Nathan Sidwell <nathan@acm.org>
18805
18806 PR c++/70393
18807 * varasm.c (output_constructor_regular_field): Flush bitfield earlier.
18808 Assert we don't want to move backwards.
18809
18810 2016-03-31 Kirill Yukhin <kirill.yukhin@intel.com>
18811
18812 PR target/70453
18813 * config/i386/sse.md (define_mode_attr shuffletype): Fix typo.
18814
18815 2016-03-31 Jakub Jelinek <jakub@redhat.com>
18816
18817 PR rtl-optimization/70460
18818 * ira.c (indirect_jump_optimize): Don't substitute LABEL_REF
18819 with operand from REG_LABEL_OPERAND, instead substitute
18820 SET_SRC or REG_EQUAL note content if it is a LABEL_REF.
18821 Don't do anything for REG_NON_LOCAL_GOTO jumps.
18822
18823 2016-03-31 Martin Liska <mliska@suse.cz>
18824
18825 * passes.c (execute_one_pass): Do not call
18826 todo_after for a discarded function.
18827
18828 2016-03-31 Bin Cheng <bin.cheng@arm.com>
18829
18830 * tree-ssa-loop-ivopts.c (struct comp_cost): New scrach field.
18831 (no_cost, infinite_cost): Initialize the new field.
18832 (get_computation_cost_at): Record setup cost.
18833 (determine_use_iv_cost_address): Skip cost computation for sub
18834 uses if we can estimate it without losing accuracy.
18835
18836 2016-03-30 Jan Hubicka <hubicka@ucw.cz>
18837
18838 * tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can't get realistic
18839 estimates here.
18840 * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also
18841 max_loop_iterations_int.
18842 (tree_unswitch_outer_loop): Likewise.
18843 * tree-ssa-loop-ivopts.c (avg_loop_niter): Likewise.
18844 * tree-vect-loop.c (vect_analyze_loop_2): Likewise.
18845
18846 2016-03-30 Richard Biener <rguenther@suse.de>
18847
18848 PR middle-end/70450
18849 * fold-const.c (extract_muldiv_1): Fix thinko in wide_int::from usage.
18850
18851 2016-03-30 Jakub Jelinek <jakub@redhat.com>
18852
18853 PR target/70421
18854 * config/i386/i386.c (ix86_expand_vector_set): Fix up argument order
18855 in gen_blendm expander.
18856
18857 2016-03-30 Nick Clifton <nickc@redhat.com>
18858
18859 PR target/62254
18860 * config/arm/arm.c (arm_reload_out_hi): Add code to handle the
18861 case where we are already provided with an SImode SUBREG.
18862
18863 2016-03-30 H.J. Lu <hongjiu.lu@intel.com>
18864
18865 PR target/70439
18866 * config/i386/i386.c (ix86_expand_epilogue): Properly check
18867 conflict between DRAP register and __builtin_eh_return.
18868
18869 2016-03-30 Michael Matz <matz@suse.de>
18870 Richard Biener <rguenther@suse.de>
18871
18872 PR ipa/12392
18873 * ipa-polymorphic-call.c (struct type_change_info): Change
18874 speculative to an unsigned allowing to limit the work we do.
18875 (csftc_abort_walking_p): New inline function..
18876 (check_stmt_for_type_change): Limit the number of may-defs
18877 skipped for speculative devirtualization to
18878 max-speculative-devirt-maydefs.
18879 * params.def (max-speculative-devirt-maydefs): New param.
18880 * doc/invoke.texi (--param max-speculative-devirt-maydefs): Document.
18881
18882 2016-03-30 Mike Stump <mrs@gcc.gnu.org>
18883
18884 PR target/63890
18885 * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Use when profiling
18886 and TARGET_MACHO.
18887
18888 2016-03-30 Patrick Palka <ppalka@gcc.gnu.org>
18889
18890 PR tree-optimization/59124
18891 * tree-vrp.c (register_edge_assert_for_2): For NAME != CST1
18892 where NAME = A +- CST2 add the assertion A != (CST1 -+ CST2).
18893
18894 2016-03-29 Jeff Law <law@redhat.com>
18895
18896 * tree-ssa-coalesce.c (struct ssa_conflicts): Fix typo in comment.
18897
18898 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
18899
18900 * tree-ssa-loop-ivcanon.c (try_peel_loop): Change type of peel
18901 to HOST_WIDE_INT.
18902
18903 2016-03-29 Thomas Schwinge <thomas@codesourcery.com>
18904
18905 * config/gnu.h (CPP_SPEC, LIB_SPEC): Don't override.
18906 * config/i386/gnu.h (STARTFILE_SPEC): Use gcrt1.o instead of
18907 gcrt0.o if linking dynamically.
18908
18909 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
18910
18911 PR ipa/70283
18912 * ipa-devirt.c (methods_equal_p): New function.
18913 (compare_virtual_tables): Use it.
18914 * cgraph.h (symbol_table::symbol_suffix_separator): Declare.
18915 * cgraphclones.c (clone_function_name_1): Use
18916 symbol_table::symbol_suffix_separator.
18917 * coverage.c (build_var): Likewise.
18918 * symtab.c (symbol_table::symbol_suffix_separator): New.
18919
18920 2016-03-29 Jakub Jelinek <jakub@redhat.com>
18921
18922 PR rtl-optimization/70429
18923 * combine.c (simplify_shift_const_1): For ASHIFTRT don't optimize
18924 (cst1 >> count) >> cst2 into (cst1 >> cst2) >> count if
18925 mode != result_mode.
18926
18927 PR c++/70353
18928 * tree-inline.c (remap_decls): Don't add_local_decl if cfun is null.
18929
18930 PR tree-optimization/70405
18931 * ssa-iterators.h (num_imm_uses): Add missing braces.
18932
18933 2016-03-29 Vladimir Makarov <vmakarov@redhat.com>
18934
18935 PR rtl-optimization/68695
18936 * ira-color.c (allocno_copy_cost_saving): New.
18937 (improve_allocation): Use it.
18938
18939 2016-03-29 Richard Henderson <rth@redhat.com>
18940
18941 PR middle-end/70355
18942 * lower-subreg.c (simplify_subreg_concatn): Reject paradoxical subregs.
18943
18944 2016-03-29 Richard Biener <rguenther@suse.de>
18945
18946 PR middle-end/70424
18947 * ipa-prop.c (ipa_compute_jump_functions_for_edge): Always
18948 use alignment returned by get_pointer_alignment_1 if it is
18949 bigger than BITS_PER_UNIT.
18950 * builtins.c (get_pointer_alignment_1): Do not return true
18951 for alignment extracted from SSA info.
18952
18953 2016-03-28 James Bowman <james.bowman@ftdichip.com>
18954
18955 * config/ft32/ft32.opt (mnodiv): New.
18956 * config/ft32/ft32.md (*divsi3, *modsi3): Qualify with TARGET_NODIV.
18957 * doc/invoke.texi (FT32 Options -mnodiv): New.
18958
18959 2016-03-28 Kirill Yukhin <kirill.yukhin@intel.com>
18960
18961 PR target/70406
18962 * config/i386/i386.md (define_split, andn): Fix modes.
18963
18964 2016-03-26 Richard Biener <rguenther@suse.de>
18965 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
18966
18967 PR ipa/70366
18968 * ipa-inline-transform.c (inline_call): Pass opts_for_fn (to->decl)
18969 instead of
18970 TREE_OPTIMIZATION (DECL_FUNCTION_SPECIFIC_OPTIMIZATION (to->decl))
18971 as 2nd argument to cl_optimization_restore().
18972
18973 2016-03-25 Richard Henderson <rth@redhat.com>
18974
18975 PR target/70120
18976 * config/aarch64/aarch64.c (aarch64_asm_output_pool_epilogue): New.
18977 * config/aarch64/aarch64-protos.h: Declare it.
18978 * config/aarch64/aarch64.h (ASM_OUTPUT_POOL_EPILOGUE): New.
18979
18980 2016-03-25 Alan Modra <amodra@gmail.com>
18981
18982 PR target/70052
18983 * config/rs6000/constraints.md (j): Simplify.
18984 * config/rs6000/predicates.md (easy_fp_constant): Exclude
18985 decimal float 0.D.
18986 * config/rs6000/rs6000.md (zero_fp): New mode_attr.
18987 (mov<mode>_hardfloat, mov<mode>_hardfloat32, mov<mode>_hardfloat64,
18988 mov<mode>_64bit_dm, mov<mode>_32bit): Use zero_fp in place of j
18989 in all constraint alternatives.
18990 (movtd_64bit_nodm): Delete "j" constraint alternative.
18991
18992 2016-03-24 Aldy Hernandez <aldyh@redhat.com>
18993
18994 * tree-ssa-propagate.c: Enhance docs for
18995 SSA_PROP_NOT_INTERESTING.
18996
18997 2016-03-24 Aldy Hernandez <aldyh@redhat.com>
18998
18999 * doc/extend.texi: Fix typo in documentation to pure attribute.
19000
19001 2016-03-24 John David Anglin <danglin@gcc.gnu.org>
19002
19003 PR target/70319
19004 * config/pa/pa.md (bswapdi2): Use a scratch register.
19005
19006 2016-03-24 Richard Henderson <rth@redhat.com>
19007
19008 PR middle-end/69845
19009 * fold-const.c (extract_muldiv_1): Correct test for multiplication
19010 overflow.
19011
19012 2016-03-24 Uros Bizjak <ubizjak@gmail.com>
19013
19014 * config/i386/i386.md (*anddi3_doubleword): Generate AND insn
19015 using ix86_expand_binary_operator instead of gen_andsi3.
19016
19017 2016-03-24 Richard Biener <rguenther@suse.de>
19018
19019 PR tree-optimization/70396
19020 * tree-vect-stmts.c (vectorizable_comparison): Use
19021 get_vectype_for_scalar_type.
19022
19023 2016-03-24 Richard Biener <rguenther@suse.de>
19024
19025 PR middle-end/70370
19026 * gimplify.c (gimplify_asm_expr): Handle !allows_mem outputs
19027 with register bases.
19028
19029 2016-03-24 Richard Biener <rguenther@suse.de>
19030
19031 PR tree-optimization/70372
19032 * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Use
19033 build_all_ones_cst to also handle vector types correctly.
19034
19035 2016-03-23 Michael Meissner <meissner@linux.vnet.ibm.com>
19036
19037 PR target/70381
19038 * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Do not set
19039 -mfloat128 here.
19040
19041 2016-03-23 Marek Polacek <polacek@redhat.com>
19042
19043 PR c++/69884
19044 * doc/invoke.texi: Document -Wignored-attributes.
19045
19046 2016-03-23 Bin Cheng <bin.cheng@arm.com>
19047
19048 PR tree-optimization/69042
19049 * params.def (PARAM_IV_CONSIDER_ALL_CANDIDATES_BOUND): Increase the
19050 parameter from 30 to 40.
19051
19052 2016-03-23 Bin Cheng <bin.cheng@arm.com>
19053
19054 PR tree-optimization/69042
19055 * tree-ssa-loop-ivopts.c (add_iv_candidate_for_use): Add IV cand
19056 for use with constant offset stripped in base.
19057
19058 2016-03-23 Richard Biener <rguenther@suse.de>
19059
19060 PR middle-end/70251
19061 * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Adjust
19062 mode compatibility check.
19063 (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise.
19064
19065 2016-03-23 Jeff Law <law@redhat.com>
19066
19067 PR tree-optimization/64058
19068 * tree-ssa-coalesce.c (struct coalesce_pair): Add new field
19069 CONFLICT_COUNT.
19070 (struct ssa_conflicts): Move up earlier in the file.
19071 (conflicts_, var_map_): New static variables.
19072 (initialize_conflict_count): New function to initialize the
19073 CONFLICT_COUNT field for each conflict pair.
19074 (compare_pairs): Lazily initialize the conflict count and use it
19075 as the first tie-breaker.
19076 (sort_coalesce_list): Add new arguments conflicts, map. Initialize
19077 and wipe conflicts_ and map_ around the call to qsort. Remove
19078 special case for 2 coalesce pairs.
19079 * bitmap.c (bitmap_count_unique_bits): New function.
19080 (bitmap_count_bits_in_word): New function, extracted from
19081 bitmap_count_bits.
19082 (bitmap_count_bits): Use bitmap_count_bits_in_word.
19083 * bitmap.h (bitmap_count_unique_bits): Declare it.
19084
19085 2016-03-23 Ilya Enkovich <enkovich.gnu@gmail.com>
19086
19087 PR target/69917
19088 * config/i386/sol2.h (ASM_OUTPUT_DEF_FROM_DECLS): Follow
19089 transparent alias chain for decl assembler name.
19090 * config/sol2.c (solaris_assemble_visibility): Likewise.
19091
19092 2016-03-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
19093
19094 * config/arm/arm1020e.md (1020call_op): Reduce reservation
19095 duration.
19096 (v10_fdivs): Likewise.
19097 (v10_fdivd): Likewise.
19098
19099 2016-03-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
19100
19101 PR driver/70132
19102 * config/arm/driver-arm.c (host_detect_local_cpu): Reorder exit logic
19103 to not call fclose twice on file.
19104
19105 2016-03-23 Jakub Jelinek <jakub@redhat.com>
19106
19107 PR tree-optimization/70354
19108 * tree-vect-patterns.c (vect_recog_vector_vector_shift_pattern): If
19109 oprnd0 is wider than oprnd1 and there is a cast from the wider
19110 type to oprnd1, mask it with the mask of the narrower type.
19111
19112 PR target/70321
19113 * config/i386/i386.md (*anddi3_doubleword, *<code>di3_doubleword):
19114 Optimize TARGET_STV splitters, if high or low word of last argument
19115 is 0 or -1.
19116
19117 2016-03-22 Jeff Law <law@redhat.com>
19118
19119 PR target/70232
19120 tree-ssa-threadbackward.c
19121 (fsm_find_control_statement_thread_paths): Correctly distinguish
19122 between old style jump threads vs FSM jump threads.
19123
19124 2016-03-22 Ilya Enkovich <enkovich.gnu@gmail.com>
19125
19126 PR target/70302
19127 * config/i386/i386.c (scalar_chain::convert_op): Support
19128 uninitialized register usage case.
19129
19130 2016-03-22 Richard Biener <rguenther@suse.de>
19131
19132 PR middle-end/70251
19133 * genmatch.c (gen_transform): Adjust last parameter to a three-state
19134 int...
19135 (capture::gen_transform): ... to change behavior when substituting
19136 a condition into cond or not-cond expr context.
19137 (dt_simplify::gen_1): Adjust.
19138 * gimple-match-head.c: Include gimplify.h for unshare_expr.
19139 * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Revert
19140 last change and instead change to
19141 A + (B vcmp C ? 1 : 0) -> A - (B vcmp C ? -1 : 0).
19142 (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise.
19143
19144 2016-03-22 Anthony Green <green@moxielogic.com>
19145
19146 * config/moxie/moxiebox.h (CC1_SPEC): Define. Fix endianness
19147 issue for moxiebox targets.
19148 (CC1PLUS_SPEC): Ditto.
19149
19150 2016-03-22 Richard Biener <rguenther@suse.de>
19151
19152 PR middle-end/70333
19153 * fold-const.c (extract_muldiv_1): Properly perform multiplication
19154 in the wide type.
19155
19156 2016-03-22 Kirill Yukhin <kirill.yukhin@intel.com>
19157
19158 * config/i386/i386.c (def_builtin): Remove duplicated functionality.
19159
19160 2016-03-22 Kirill Yukhin <kirill.yukhin@intel.com>
19161
19162 PR target/70325
19163 * config/i386/i386.c (def_builtin): Handle
19164 OPTION_MASK_ISA_AVX512VL to be and-ed with other
19165 bits.
19166 (const struct builtin_description bdesc_special_args[]):
19167 Remove duplicate ISA bits.
19168
19169 2016-03-22 Jakub Jelinek <jakub@redhat.com>
19170
19171 PR target/70329
19172 * config/i386/i386.c (ix86_expand_vecop_qihi): Don't bother computing
19173 d.perm[i] for i >= d.nelt. If not full_interleave, compute d.perm[i]
19174 in a way that works also for AVX512BW.
19175
19176 PR target/70300
19177 * config/i386/i386.md (cvtsd2ss splitter): Unpack in destination
19178 instead of source if operands[1] is xmm16 and above and
19179 !TARGET_AVX512VL. Use avx512f_vec_dupv16sf_1 instead of
19180 vec_interleave_lowv4sf if we need to unpack xmm16 and above.
19181
19182 PR c++/70295
19183 * gimplify.c (gimplify_modify_expr): Call gimple_set_no_warning
19184 on assign if (*from_p) is a comparison, set it to
19185 TREE_NO_WARNING (*from_p).
19186
19187 2016-03-21 Jakub Jelinek <jakub@redhat.com>
19188
19189 PR middle-end/70326
19190 * lra.c (restore_scratches): Ignore deleted insns.
19191
19192 2016-03-21 Marc Glisse <marc.glisse@inria.fr>
19193 Jakub Jelinek <jakub@redhat.com>
19194
19195 PR tree-optimization/70317
19196 * match.pd (cmp @0 @0): Pass @0 instead of TYPE_MODE (TREE_TYPE (@0))
19197 to HONOR_NANS.
19198
19199 2016-03-21 Uros Bizjak <ubizjak@gmail.com>
19200
19201 PR target/70327
19202 * config/i386/i386.md (movxi): Use ix86_expand_vector_move instead
19203 of ix86_expand_move.
19204 (movoi): Ditto.
19205 (movti): Use general_operand for operand 1 predicate.
19206
19207 2016-03-21 Martin Liska <mliska@suse.cz>
19208
19209 * hsa-dump.c (dump_hsa_insn_1): dump default branch of SBR
19210 insns.
19211 (dump_hsa_symbol): Dump BRIG offset of hsa_symbols.
19212
19213 2016-03-21 Martin Liska <mliska@suse.cz>
19214
19215 PR ipa/70306
19216 * ipa-icf.c (sem_function::parse): Skip static
19217 constructors and destructors.
19218
19219 2016-03-21 Jakub Jelinek <jakub@redhat.com>
19220
19221 PR target/70296
19222 * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If IDENT is
19223 function-like macro, peek following token(s) if it is followed
19224 by CPP_OPEN_PAREN token with optional padding in between, and
19225 if not, don't treat it like a macro.
19226
19227 2016-03-21 Thomas Schwinge <thomas@codesourcery.com>
19228 Alexander Monakov <amonakov@ispras.ru>
19229
19230 * config/nvptx/nvptx.c (nvptx_option_override): Don't emit sorry
19231 for the stabs debug format.
19232
19233 2016-03-21 Richard Biener <rguenther@suse.de>
19234
19235 PR tree-optimization/70310
19236 * tree-vect-generic.c (expand_vector_condition): Fold the built
19237 condition.
19238
19239 2016-03-21 Kirill Yukhin <kirill.yukhin@intel.com>
19240
19241 PR target/70293
19242 * config/i386/sse.md: (define_insn "*vec_dup<mode>"/AVX2):
19243 Block third alternative for AVX-512VL target,
19244
19245 2016-03-21 Martin Liska <mliska@suse.cz>
19246
19247 PR hsa/70234
19248 * hsa-brig.c (emit_function_directives): Mark unemitted
19249 global variables for emission.
19250 * hsa-gen.c (hsa_symbol::hsa_symbol): Initialize a new flag.
19251 (get_symbol_for_decl): Likewise.
19252 * hsa.h (struct hsa_symbol): New flag.
19253
19254 2016-03-21 Richard Biener <rguenther@suse.de>
19255
19256 PR tree-optimization/70288
19257 * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Make sure
19258 we do not estimate unsimplified all-constant conditionals or
19259 switches as optimized away.
19260
19261 2016-03-21 Andrey Belevantsev <abel@ispras.ru>
19262
19263 PR rtl-optimization/69102
19264 * sched-deps.c (sched_analyze_insn): Do not set last_args_size field
19265 when we have a readonly dependency context.
19266
19267 2016-03-18 Jeff Law <law@redhat.com>
19268
19269 PR rtl-optimization/70263
19270 * ira.c (memref_used_between_p): Assert we found END in the insn chain.
19271 (update_equiv_regs): When trying to move a store to after the insn
19272 that sets the source of the store, make sure the store occurs after
19273 the insn that sets the source of the store. When successful note
19274 the REG_EQUIV note created in the dump file.
19275
19276 2016-03-16 David Wohlferd <dw@LimeGreenSocks.com>
19277 Bernd Schmidt <bschmidt@redhat.com>
19278
19279 * doc/extend.texi: Document more potential problems with basic asms.
19280
19281 2016-03-18 Bernd Schmidt <bschmidt@redhat.com>
19282
19283 PR rtl-optimization/70278
19284 * lra-constraints.c (split_reg): Handle the case where biggest_mode is
19285 VOIDmode.
19286
19287 2016-03-18 Jason Merrill <jason@redhat.com>
19288
19289 * calls.c (load_register_parameters): Fix zero size sibcall logic.
19290
19291 2016-03-18 Kirill Yukhin <kirill.yukhin@intel.com>
19292
19293 * config/i386/sse.md: Use vpbroadcastq for broadcasting DF
19294 values to 128b regs.
19295
19296 2016-03-18 Ilya Enkovich <enkovich.gnu@gmail.com>
19297
19298 PR tree-optimization/70252
19299 * tree-vect-stmts.c (supportable_widening_operation): Check resulting
19300 boolean vector has a proper number of elements.
19301 (supportable_narrowing_operation): Likewise.
19302
19303 2016-03-18 Tom de Vries <tom@codesourcery.com>
19304
19305 PR ipa/70269
19306 * cgraph.c (cgraph_node::get_body): Set dump_file to NULL after save.
19307
19308 2016-03-18 Jakub Jelinek <jakub@redhat.com>
19309
19310 * reload1.c (emit_input_reload_insns): Use simplify_replace_rtx
19311 instead of replace_rtx for DEBUG_INSNs.
19312
19313 2016-03-18 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
19314
19315 * config/i386/znver1.md : Fix latencies of FP/SSE/AVX
19316 load type reservations.
19317
19318 2016-03-17 John David Anglin <danglin@gcc.gnu.org>
19319
19320 PR target/70188
19321 * config/pa/constraints.md: Revert 2015-02-13 change. Use
19322 define_constraint for "Q" and "T" constraints.
19323
19324 2016-03-17 Evandro Menezes <e.menezes@samsung.com>
19325
19326 Tweak the pipeline model for Exynos M1
19327
19328 * config/aarch64/aarch64.c (exynosm1_tunings): Enable weak prefetching
19329 model.
19330
19331 2016-03-17 David Malcolm <dmalcolm@redhat.com>
19332
19333 PR c/70264
19334 * diagnostic-show-locus.c (compatible_locations_p): Handle the case
19335 where one or both locations aren't within a line_map.
19336
19337 2016-03-17 H.J. Lu <hongjiu.lu@intel.com>
19338
19339 PR driver/70192
19340 * opts.c (finish_options): Don't set flag_pie to the default if
19341 -fpic, -fPIC, -fno-pic or -fno-PIC is used. Set flag_pic to 0
19342 if it is -1.
19343
19344 2016-03-17 Joern Rennecke <joern.rennecke@embecosm.com>
19345
19346 * config/i386/i386.md (*movv4qicc_insn+1..36): Pass
19347 true as ALL_REGS argument to replace_rtx.
19348
19349 2016-03-17 Richard Biener <rguenther@suse.de>
19350
19351 PR debug/70271
19352 * dwarf2out.c (dwarf2out_early_finish): Process deferred_asm_name
19353 last.
19354
19355 2016-03-17 Jakub Jelinek <jakub@redhat.com>
19356
19357 PR target/70245
19358 * rtl.h (replace_rtx): Add ALL_REGS argument.
19359 * rtlanal.c (replace_rtx): Likewise. If true, use REGNO
19360 equality and assert mode is the same, instead of just rtx pointer
19361 equality.
19362 * config/i386/i386.md (mov + arithmetics with load peephole): Pass
19363 true as ALL_REGS argument to replace_rtx.
19364
19365 2016-03-17 Ilya Enkovich <enkovich.gnu@gmail.com>
19366
19367 * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Apply
19368 for boolean vector with vector mode only.
19369 (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise.
19370
19371 2016-03-17 Nick Clifton <nickc@redhat.com>
19372
19373 PR target/70162
19374 * config/rx/rx.c (rx_print_integer): Print negative constants in
19375 decimal.
19376
19377 2016-03-17 Jakub Jelinek <jakub@redhat.com>
19378
19379 PR target/70261
19380 * rtlanal.c (replace_rtx): Revert 2016-03-16 change.
19381
19382 2016-03-16 Richard Henderson <rth@redhat.com>
19383 Richard Biener <rguenth@suse.de>
19384
19385 PR middle-end/70240
19386 PR middle-end/68215
19387 PR tree-opt/68714
19388 * gimplify.c (gimplify_expr) [VEC_COND_EXPR]: Gimplify the
19389 first operand as is_gimple_condexpr.
19390
19391 PR middle-end/70240
19392 PR middle-end/68215
19393 Revert r231575
19394 2015-12-11 Eric Botcazou <ebotcazou@adacore.com>
19395 * tree-vect-generic.c (tree_vec_extract): Remove GSI parameter.
19396 Do not gimplify the result.
19397 (do_unop): Adjust call to tree_vec_extract.
19398 (do_binop): Likewise.
19399 (do_compare): Likewise.
19400 (do_plus_minus): Likewise.
19401 (do_negate): Likewise.
19402 (expand_vector_condition): Likewise.
19403 (do_cond): Likewise.
19404
19405 2016-03-16 Richard Henderson <rth@redhat.com>
19406
19407 PR target/70048
19408 * config/aarch64/aarch64.c (virt_or_elim_regno_p): New.
19409 (aarch64_classify_address): Use it.
19410 (aarch64_legitimize_address): Force all subexpressions of PLUS
19411 into registers. Simplify as (sfp+const)+reg or (reg+reg)+const.
19412
19413 2016-03-16 Jakub Jelinek <jakub@redhat.com>
19414 Richard Biener <rguenth@suse.de>
19415
19416 PR target/70245
19417 * rtlanal.c (replace_rtx): For REG, if from is a REG,
19418 return to even if only REGNO is equal, and assert
19419 mode is the same.
19420
19421 2016-03-11 Jeff Law <law@redhat.com>
19422
19423 PR rtl-optimization/70224
19424 * reorg.c (relax_delay_slots): Pass right argument to CROSSING_JUMP_P.
19425
19426 2016-03-16 Richard Henderson <rth@redhat.com>
19427
19428 PR middle-end/70199
19429 * function.h (struct function): Add has_forced_label_in_static.
19430 * gimplify.c (force_labels_r): Set it.
19431 * lto-streamer-in.c (input_struct_function_base): Read it.
19432 * lto-streamer-out.c (output_struct_function_base): Write it.
19433 * tree-inline.c (has_label_address_in_static_1): Remove.
19434 (copy_forbidden): Remove fndecl parameter; test
19435 has_forced_label_in_static.
19436 (inline_forbidden_p): Update call to copy_forbidden.
19437 (tree_versionable_function_p): Likewise.
19438 * ipa-chkp.c (chkp_instrumentable_p): Likewise.
19439 (chkp_versioning): Likewise.
19440 * tree-inline.h (copy_forbidden): Update decl.
19441
19442 2016-03-16 Marek Polacek <polacek@redhat.com>
19443
19444 PR c/70093
19445 * cgraphunit.c (cgraph_node::expand_thunk): Also build call to the
19446 function being thunked if the result type doesn't have fixed size.
19447 * gimplify.c (gimplify_modify_expr): Also set LHS if the result type
19448 doesn't have fixed size.
19449
19450 2016-03-16 Bin Cheng <bin.cheng@arm.com>
19451
19452 * tree-vect-loop.c (vect_analyze_loop_2): Fix wrong dump info by
19453 reporting malformed loop nest.
19454
19455 2016-03-16 Tom de Vries <tom@codesourcery.com>
19456
19457 PR lto/70187
19458 * ipa-devirt.c (possible_polymorphic_call_targets): Move
19459 nodes.length () == 1 test to before first nodes[0] access.
19460
19461 2016-03-16 Tom de Vries <tom@codesourcery.com>
19462
19463 PR tree-optimization/68715
19464 * graphite-scop-detection.c (scop_detection::merge_sese): Add missing
19465 single_pred_p test.
19466
19467 2016-03-16 Tom de Vries <tom@codesourcery.com>
19468
19469 PR tree-optimization/68809
19470 * graphite-scop-detection.c (same_close_phi_node): Test if result types
19471 are the same.
19472
19473 2016-03-16 Carlos O'Donell <carlos@redhat.com>
19474 Sandra Loosemore <sandra@codesourcery.com>
19475
19476 * doc/extend.texi (Common Function Attributes): Describe ifunc impact
19477 on leaf attribute. Mention ELF interposition problems.
19478
19479 2016-03-16 Alan Modra <amodra@gmail.com>
19480
19481 PR rtl-optimization/69195
19482 PR rtl-optimization/47992
19483 * ira.c (indirect_jump_optimize): Ignore artificial defs.
19484 Add comments.
19485
19486 2016-03-15 Eric Botcazou <ebotcazou@adacore.com>
19487
19488 PR bootstrap/69513
19489 * dwarf2out.c (flush_limbo_die_list): Really flush the limbo list.
19490
19491 2016-03-15 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
19492
19493 * config/avr/avr.md (rotl<mode>3): Set mode for operand 2.
19494
19495 2016-03-15 Jakub Jelinek <jakub@redhat.com>
19496
19497 PR rtl-optimization/70222
19498 * combine.c (simplify_shift_const_1): For A >> B >> C LSHIFTRT
19499 optimization if mode is different from result_mode, queue up masking
19500 of the result in outer_op. Formatting fix.
19501
19502 PR middle-end/70239
19503 * tree-ssa-sccvn.c (VN_INFO_GET): Use safe_grow_cleared instead
19504 of safe_grow.
19505
19506 2016-03-15 Andrey Belevantsev <abel@ispras.ru>
19507
19508 PR rtl-optimization/69032
19509 * sel-sched-ir.c (get_seqno_by_preds): Include both insn and head when
19510 looping backwards over basic block insns.
19511
19512 2016-03-15 Andrey Belevantsev <abel@ispras.ru>
19513
19514 PR target/66660
19515 * sel-sched-ir.c (merge_expr): Avoid changing the speculative pattern
19516 to non-speculative when propagating trap bits.
19517
19518 2016-03-15 Andrey Belevantsev <abel@ispras.ru>
19519
19520 PR rtl-optimization/63384
19521 * sel-sched.c (invoke_aftermath_hooks): Do not decrease issue_more on
19522 DEBUG_INSN_P insns.
19523
19524 2016-03-15 Andrey Belevantsev <abel@ispras.ru>
19525
19526 PR target/64411
19527 * sched-deps.c (get_implicit_reg_pending_clobbers): New function,
19528 factored out from ...
19529 (sched_analyze_insn): ... here.
19530 * sched-int.h (get_implicit_reg_pending_clobbers): Declare it.
19531 * sel-sched-ir.c (setup_id_implicit_regs): New function, use
19532 get_implicit_reg_pending_clobbers in it.
19533 (setup_id_reg_sets): Use setup_id_implicit_regs.
19534 (deps_init_id): Ditto.
19535
19536 2016-03-15 Tom de Vries <tom@codesourcery.com>
19537
19538 PR ipa/70161
19539 * cgraph.c (cgraph_node::get_body): Save, reset and restore
19540 dump_file_name.
19541 * passes.c (execute_one_ipa_transform_pass): Add missing argument to
19542 execute_function_dump.
19543 (execute_one_pass): Don't dump function if it will be dumped after ipa
19544 transform.
19545
19546 2016-03-15 Segher Boessenkool <segher@kernel.crashing.org>
19547
19548 * genrecog.c (match_pattern_2): If pred is NULL don't call
19549 safe_predicate_mode on it.
19550
19551 2016-03-14 Jakub Jelinek <jakub@redhat.com>
19552
19553 PR middle-end/70219
19554 * lra-constraints.c (delete_move_and_clobber): Change assertion
19555 to also allow dregno == 0.
19556
19557 2016-03-14 Richard Henderson <rth@redhat.com>
19558
19559 PR tree-opt/68714
19560 * tree-ssa-reassoc.c (ovce_extract_ops, optimize_vec_cond_expr): New.
19561 (can_reassociate_p): Allow ANY_INTEGRAL_TYPE_P.
19562 (reassociate_bb): Use optimize_vec_cond_expr; avoid
19563 optimize_range_tests, attempt_builtin_copysign and attempt_builtin_powi
19564 on vectors.
19565
19566 2016-03-14 Bernd Schmidt <bschmidt@redhat.com>
19567
19568 PR target/70083
19569 * lra-lives.c (process_bb_lives): Also update biggest mode for hard
19570 regs.
19571 (lra_create_live_ranges_1): initialize hard register biggest_mode to
19572 VOIDmode.
19573 * lra-constraints.c (split_reg): For hard regs, try to find the
19574 biggest single-register mode used in the function.
19575
19576 2016-03-14 Richard Biener <rguenther@suse.de>
19577
19578 PR tree-optimization/56365
19579 * tree-ssa-phiopt.c (minmax_replacement): Handle alternate
19580 constants to compare against.
19581
19582 2016-03-14 Segher Boessenkool <segher@kernel.crashing.org>
19583
19584 PR target/70098
19585 * config/rs6000/rs6000.md (*ctr<mode>_internal1, *ctr<mode>_internal2,
19586 *ctr<mode>_internal5, *ctr<mode>_internal6): Also allow "d" as output.
19587 (define_split for the GPR case): Use int_reg_operand instead of
19588 gpc_reg_operand for the output.
19589
19590 2016-03-14 Tom de Vries <tom@codesourcery.com>
19591
19592 PR tree-optimization/70045
19593 * graphite-isl-ast-to-gimple.c (graphite_create_new_loop_guard): Unshare
19594 create_empty_if_region_on_edge argument.
19595
19596 2016-03-13 Eric Botcazou <ebotcazou@adacore.com>
19597
19598 * config/arm/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Define.
19599 (STACK_CHECK_PROTECT): Likewise.
19600 * config/i386/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise
19601 (STACK_CHECK_PROTECT): Likewise.
19602 * config/rs6000/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise
19603 (STACK_CHECK_PROTECT): Likewise.
19604 * config/rs6000/vxworksae.h (STACK_CHECK_PROTECT): Likewise.
19605 * config/sparc/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
19606 (STACK_CHECK_PROTECT): Likewise.
19607
19608 2016-03-12 Andrey Belevantsev <abel@ispras.ru>
19609
19610 PR rtl-optimization/69307
19611 * sel-sched.c (choose_best_pseudo_reg): Properly check for hard
19612 registers in modes that span more than one register.
19613
19614 2016-03-12 Vladimir Makarov <vmakarov@redhat.com>
19615
19616 PR target/69614
19617 * lra-constraints.c (delete_move_and_clobber): New.
19618 (remove_inheritance_pseudos): Use it.
19619
19620 2016-03-12 Eric Botcazou <ebotcazou@adacore.com>
19621
19622 PR ada/70017
19623 * calls.c (emit_library_call_value_1): Clear the ECF_NOTHROW flag if
19624 the libcall is LCT_THROW.
19625 * explow.c (probe_stack_range): Pass LCT_THROW to emit_library_call
19626 for the checking routine.
19627
19628 2016-03-11 Michael Meissner <meissner@linux.vnet.ibm.com>
19629
19630 PR target/70131
19631 * config/rs6000/rs6000.md (round32<mode>2_fprs): Do not do the
19632 optimization if we have direct move.
19633 (roundu32<mode>2_fprs): Likewise.
19634
19635 2016-03-11 Bernd Schmidt <bschmidt@redhat.com>
19636
19637 PR target/70123
19638 * lra-remat.c (operand_to_remat): Disallow hard regs in the value t
19639 be rematerialized.
19640 (reg_overlap_for_remat_p): Renamed from input_regno_present_p.
19641 Arguments swapped. All callers changed. Take reg_renumber into
19642 account, and Calculate and compare register ranges for hard regs.
19643
19644 2016-03-11 Jeff Law <law@redhat.com>
19645
19646 PR tree-optimization/70190
19647 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
19648 Handle cases where we can not extract the taken edge, even though we
19649 found a constant value.
19650
19651 PR tree-optimization/64058
19652 * tree-ssa-coalesce.c (struct coalesce_pair): Add new field INDEX.
19653 (num_coalesce_pairs): Move up earlier in file.
19654 (find_coalesce_pair): Initialize the INDEX field for each pair
19655 discovered.
19656 (compare_pairs): No longer sort on the elements in each pair.
19657 Instead break ties with the index of the coalesce pair.
19658
19659 2016-03-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
19660
19661 PR target/70002
19662 * config/aarch64/aarch64-protos.h
19663 (aarch64_save_restore_target_globals): New prototype.
19664 * config/aarch64/aarch64-c.c (aarch64_pragma_target_parse):
19665 Call the above when popping pragma.
19666 * config/aarch64/aarch64.c (aarch64_save_restore_target_globals):
19667 New function.
19668 (aarch64_set_current_function): Rewrite using the above.
19669
19670 2016-03-11 Jakub Jelinek <jakub@redhat.com>
19671
19672 PR tree-optimization/70177
19673 * gimple-expr.h (extract_ops_from_tree_1): Renamed to ...
19674 (extract_ops_from_tree): ... this. In the 2 argument
19675 overload remove _1 suffix.
19676 * gimple-expr.c (extract_ops_from_tree_1): Renamed to ...
19677 (extract_ops_from_tree): ... this.
19678 * gimple.c (gimple_build_assign, gimple_assign_set_rhs_from_tree):
19679 Adjust callers.
19680 * tree-ssa-loop-niter.c (derive_constant_upper_bound): Likewise.
19681 * tree-ssa-forwprop.c (defcodefor_name): Call 3 operand
19682 extract_ops_from_tree instead of 2 operand one.
19683
19684 2016-03-11 Alan Lawrence <alan.lawrence@arm.com>
19685
19686 PR tree-optimization/70013
19687 * tree-sra.c (analyze_access_subtree): Also set grp_unscalarized_data
19688 for constant-pool entries.
19689
19690 2016-03-11 Jakub Jelinek <jakub@redhat.com>
19691
19692 PR rtl-optimization/70174
19693 * expmed.c (store_bit_field_using_insv): Use gen_lowpart_if_possible
19694 followed by gen_lowpart on force_reg instead of just gen_lowpart.
19695
19696 PR tree-optimization/70169
19697 * tree-ssa-loop.c (gen_lsm_tmp_name): Handle FUNCTION_DECL and
19698 LABEL_DECL like VAR_DECL. Emit nothing instead of gcc_unreachable
19699 for unknown codes.
19700
19701 2016-03-11 Ilya Enkovich <enkovich.gnu@gmail.com>
19702 Jakub Jelinek <jakub@redhat.com>
19703
19704 PR target/70160
19705 * config/i386/i386.c (scalar_chain::convert_reg): Skip uses
19706 of uninitialized values.
19707
19708 2016-03-11 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
19709
19710 * config/s390/s390.md ("trunctddd2"): Turn former define_insn into
19711 define_expand.
19712 ("*trunctddd2"): New pattern definition.
19713 ("trunctdsd2"): Set prep_for_short_prec rounding mode for the
19714 TD->DD truncation.
19715
19716 2016-03-11 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
19717
19718 * config/s390/s390.md (BFP_RND_*, DFP_RND_*): Add new constant
19719 definitions for BFP and DFP rounding modes.
19720 ("fixuns_truncdddi2", "fixuns_trunctddi2")
19721 ("fixuns_trunc<BFP:mode><GPR:mode>2", "fixuns_trunc<mode>si2")
19722 ("fix_trunc<DSF:mode><GPR:mode>2", "fix_trunc<mode>di2")
19723 ("fix_trunctf<mode>2"): Use the new constants instead of magic
19724 numbers.
19725
19726 2016-03-11 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
19727
19728 * config/s390/constraints.md: Adjust comment.
19729 ("Y"): Adjust comment. Rename s390_decompose_shift_count to
19730 s390_decompose_addrstyle_without_index.
19731 * config/s390/predicates.md (shift_count_or_setmem_operand):
19732 Rename to setmem_operand.
19733 * config/s390/s390-protos.h
19734 (s390_decompose_shift_count): Rename to
19735 s390_decompose_addrstyle_without_index.
19736 * config/s390/s390.c (s390_decompose_shift_count)
19737 (s390_mem_constraint, print_shift_count_operand)
19738 (print_operand_address, print_operand): Rename
19739 s390_decompose_shift_count to
19740 s390_decompose_addrstyle_without_index and rename
19741 print_shift_count_operand to print_addrstyle_operand troughout the
19742 file.
19743 * config/s390/s390.md ("setmem_long_<P:mode>", "*setmem_long")
19744 ("*setmem_long_and", "*setmem_long_31z", "*setmem_long_and_31z"):
19745 Rename shift_count_or_setmem_operand to setmem_operand.
19746 * config/s390/vx-builtins.md ("vec_insert<mode>")
19747 ("vec_promote<mode>"): Replace shift_count_or_setmem_operand with
19748 nonmemory_operand.
19749
19750 2016-03-10 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
19751
19752 PR target/70168
19753 * config/rs6000/rs6000.c (rs6000_expand_atomic_compare_and_swap):
19754 Handle overlapping retval and newval.
19755
19756 2016-03-10 Nick Clifton <nickc@redhat.com>
19757
19758 PR target/7044
19759 * config/aarch64/aarch64.c
19760 (aarch64_override_options_after_change_1): When forcing
19761 flag_omit_frame_pointer to be true, use a special value that can
19762 be detected if this function is called again, thus preventing
19763 flag_omit_leaf_frame_pointer from being forced to be false.
19764
19765 2016-03-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
19766
19767 * common/config/aarch64/aarch64-common.c (aarch64_handle_option):
19768 Set x_flag_omit_leaf_frame_pointer when handling
19769 -momit-leaf-frame-pointer.
19770
19771 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
19772
19773 PR lto/69589
19774 * cgraph.c (cgraph_node::dump): Dump split_part and
19775 indirect_call_target.
19776 * cgraph.h (cgraph_node): Add indirect_call_target flag.
19777 * ipa.c (has_addr_references_p): Cleanup.
19778 (is_indirect_call_target_p): New.
19779 (walk_polymorphic_call_targets): Do not mark virtuals that may be
19780 called indirectly as local.
19781 (symbol_table::remove_unreachable_nodes): Compute indirect_call_target.
19782
19783 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
19784
19785 PR ipa/69630
19786 * ipa-devirt.c (possible_polymorphic_call_targets): Do not ICE
19787 on cxa_pure_virtual.
19788
19789 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
19790
19791 PR lto/69589
19792 * tree.c (free_lang_data_in_decl): Clear visibility of TYPE_DECL.
19793
19794 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
19795
19796 PR lto/69589
19797 * tree.c (need_assembler_name_p): Only record main variant type names.
19798
19799 2016-03-10 Christophe Lyon <christophe.lyon@linaro.org>
19800
19801 PR target/70113.
19802 * config/aarch64/aarch64.h (TARGET_FIX_ERR_A53_843419_DEFAULT):
19803 Always define to 0 or 1.
19804 (TARGET_FIX_ERR_A53_843419): New macro.
19805 * config/aarch64/aarch64-elf-raw.h
19806 (TARGET_FIX_ERR_A53_843419_DEFAULT): Update for above changes.
19807 * config/aarch64/aarch64-linux.h: Likewise.
19808 * config/aarch64/aarch64.c
19809 (aarch64_override_options_after_change_1): Do not default
19810 aarch64_nopcrelative_literal_loads to true if Cortex-A53 erratum
19811 843419 is on.
19812 (aarch64_attributes): Handle fix-cortex-a53-843419.
19813 (aarch64_can_inline_p): Likewise.
19814 * config/aarch64/aarch64.opt (aarch64_fix_a53_err843419): Save.
19815
19816 2016-03-10 Alan Lawrence <alan.lawrence@arm.com>
19817 Jakub Jelinek <jakub@redhat.com>
19818
19819 * common.opt (funconstrained-commons, flag_unconstrained_commons): New.
19820 * tree.c (array_at_struct_end_p): Do not limit to size of decl for
19821 DECL_COMMONS if flag_unconstrained_commons is set.
19822 * tree-dfa.c (get_ref_base_and_extent): Likewise.
19823 * doc/invoke.texi (Optimize Options): Add -funconstrained-commons.
19824 (funconstrained-commons): Document.
19825
19826 2016-03-10 Christophe Lyon <christophe.lyon@linaro.org>
19827
19828 * config/aarch64/t-aarch64 (OPTIONS_H_EXTRA): Add
19829 aarch64-fusion-pairs.def and aarch64-tuning-flags.def
19830
19831 2016-03-10 Ilya Enkovich <enkovich.gnu@gmail.com>
19832
19833 * tree-vect-stmts.c (vectorizable_mask_load_store): Check mask
19834 has a proper number of elements.
19835
19836 2016-03-10 Alan Modra <amodra@gmail.com>
19837
19838 PR rtl-optimization/69195
19839 PR rtl-optimization/47992
19840 * ira.c (recorded_label_ref): Delete.
19841 (update_equiv_regs): Return void.
19842 (indirect_jump_optimize): New function.
19843 (ira): Call indirect_jump_optimize and delete_trivially_dead_insns
19844 before regstat_compute_ri. Don't rebuild_jump_labels here.
19845 Delete update_regstat.
19846
19847 2016-03-10 Richard Biener <rguenther@suse.de>
19848
19849 PR tree-optimization/70128
19850 * tree-ssa-structalias.c (set_uids_in_ptset): Set
19851 vars_contains_nonlocal for any FUNCTION_DECL or LABEL_DECL.
19852
19853 2016-03-09 Jakub Jelinek <jakub@redhat.com>
19854
19855 PR tree-optimization/70152
19856 * tree-sra.c (replace_removed_params_ssa_names): Copy over
19857 SSA_NAME_OCCURS_IN_ABNORMAL_PHI from old_name to new_name.
19858
19859 PR target/70086
19860 * config/i386/i386.md (truncdfsf2 splitter): Use gen_vec_concatv2df
19861 instead of gen_sse2_loadlpd.
19862 * config/i386/sse.md (*vec_concatv2df): Rename to...
19863 (vec_concatv2df): ... this.
19864
19865 PR tree-optimization/70127
19866 * fold-const.c (operand_equal_p): Revert the 2015-10-28 change.
19867
19868 2016-03-09 David Malcolm <dmalcolm@redhat.com>
19869
19870 PR c/68473
19871 PR c++/70105
19872 * diagnostic-show-locus.c (compatible_locations_p): New function.
19873 (layout::layout): Sanitize ranges using compatible_locations_p.
19874
19875 2016-03-09 David Malcolm <dmalcolm@redhat.com>
19876
19877 PR c/68473
19878 PR c++/70105
19879 * diagnostic-show-locus.c (layout_range::layout_range): Replace
19880 location_range param with three const expanded_locations * and a
19881 bool.
19882 (layout::layout): Replace call to
19883 rich_location::lazily_expand_location with get_expanded_location.
19884 Extract the range and perform location expansion here, passing
19885 the results to the layout_range ctor.
19886 * diagnostic.c (source_range::debug): Delete.
19887 * diagnostic.h (diagnostic_expand_location): Reimplement in terms
19888 of rich_location::get_expanded_location.
19889 * gcc-rich-location.c (get_range_for_expr): Delete.
19890 (gcc_rich_location::add_expr): Reimplement to avoid the
19891 rich_location::add_range overload that took a location_range,
19892 passing a location_t instead.
19893
19894 2016-03-09 Richard Biener <rguenther@suse.de>
19895 Jakub Jelinek <jakub@redhat.com>
19896
19897 PR tree-optimization/70138
19898 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
19899 Also skip vect_double_reduction_def.
19900
19901 2016-03-09 Jakub Jelinek <jakub@redhat.com>
19902
19903 PR target/70049
19904 * config/i386/sse.md (*vec_extract<mode>): Use %0 instead of %k0
19905 if the operand is "m".
19906
19907 2016-03-09 Nathan Sidwell <nathan@acm.org>
19908
19909 * config/nvptx/nvptx.c (nvptx_option_override): Don't kill debug level.
19910
19911 2016-03-09 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
19912
19913 * config/i386/i386.c (processor_target_table): Fix cost table
19914 intialization order for znver1.
19915
19916 2016-03-08 Jakub Jelinek <jakub@redhat.com>
19917
19918 * ipa-polymorphic-call.c (walk_ssa_copies): Fix spelling
19919 - becuase -> because.
19920 * ipa-reference.c (ignore_module_statics): Likewise.
19921 * cgraph.c (cgraph_node::get_body): Likewise.
19922 * ipa-inline.c (early_inliner): Likewise.
19923 * ipa-devirt.c (types_same_for_odr): Likewise.
19924 * tree-streamer-out.c (pack_ts_type_common_value_fields): Likewise.
19925 * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Likewise.
19926
19927 2016-03-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
19928
19929 * tree-ssa-math-opts.c: Fix typo in comment.
19930
19931 2016-03-08 Jakub Jelinek <jakub@redhat.com>
19932
19933 PR target/70110
19934 * config/i386/i386.c (scalar_chain::make_vector_copies,
19935 scalar_chain::convert_reg): Call end_sequence in between
19936 get_insns and emit_conversion_insns rather than after both
19937 calls.
19938
19939 2016-03-07 Uros Bizjak <ubizjak@gmail.com>
19940
19941 PR target/70064
19942 * config/i386/i386.h (machine_function): Add
19943 pc_thunk_call_expanded flag.
19944 (ix86_pc_thunk_call_expanded): New define.
19945 * config/i386/i386.md (set_got, set_got_labelled): New expanders.
19946 (*set_got): Rename insn pattern from set_got.
19947 (*set_got_labelled): Rename inst pattern from set_got_labelled.
19948 * config/i386/i386.c (ix86_compute_frame_layout): Use
19949 ix86_pc_thunk_call_expanded to prevent red-zone.
19950
19951 2016-03-07 Martin Jambor <mjambor@suse.cz>
19952
19953 * hsa.h (hsa_get_ctor_statements): Declare.
19954 (hsa_get_dtor_statements): Likewise.
19955 (hsa_get_kernel_dispatch_type): Likewise.
19956 * hsa.c (hsa_get_ctor_statements): New function.
19957 (hsa_get_dtor_statements): Likewise.
19958 (hsa_get_kernel_dispatch_type): Likewise.
19959 * hsa-brig.c (hsa_cdtor_statements): Removed.
19960 (hsa_output_libgomp_mapping): Use hsa_get_ctor_statements and
19961 hsa_get_dtor_statements.
19962 * hsa-gen.c (hsa_kernel_dispatch_type): Removed.
19963 (get_hsa_kernel_dispatch_offset): Use hsa_get_kernel_dispatch_type.
19964
19965 2016-03-07 Andre Vieira <andre.simoesdiasvieira@arm.com>
19966
19967 * config/arm/arm-cores.def (cortex-r8): New.
19968 * config/arm/arm-tables.opt (cortex-r8): Regenerate.
19969 * config/arm/arm-tune.md: Likewise.
19970 * doc/invoke.texi: Add cortex-r8 to list of cpu values.
19971
19972 2016-03-07 Martin Sebor <msebor@redhat.com>
19973
19974 PR rtl-optimization/19705
19975 * doc/invoke.texi (Options That Control Optimization): Clarify
19976 -fno-branch-count-reg.
19977
19978 2016-02-26 Richard Biener <rguenther@suse.de>
19979 Jeff Law <law@redhat.com>
19980
19981 PR tree-optimization/69740
19982 * cfghooks.c (remove_edge): Request loop fixups if we delete
19983 an edge that might turn an irreducible loop into a natural
19984 loop.
19985 * cfgloop.h (check_verify_loop_structure): Clear LOOPS_NEED_FIXUP.
19986 Move after definition of loops_state_clear.
19987
19988 2016-03-07 Bin Cheng <bin.cheng@arm.com>
19989
19990 PR rtl-optimization/69052
19991 * rtlanal.c (commutative_operand_precedence): Set higher precedence
19992 to CONST_WIDE_INT.
19993
19994 2016-03-07 Tom de Vries <tom@codesourcery.com>
19995
19996 PR tree-optimization/70116
19997 * tree-ssa-tail-merge.c (merge_stmts_p): New function, handling
19998 is_tm_ending stmts and ubsan/asan internal functions.
19999 (find_duplicate): Use it. Don't test is_tm_ending here.
20000
20001 2016-03-07 Richard Biener <rguenther@suse.de>
20002
20003 PR tree-optimization/70115
20004 * tree-ssa-loop-ivcanon.c (propagate_into_all_uses): Remove.
20005 (propagate_constants_for_unrolling): Use replace_uses_by.
20006
20007 2016-03-07 Nathan Sidwell <nathan@codesourcery.com>
20008
20009 PR middle-end/69916
20010 * omp-low.c (struct oacc_loop): Add ifns.
20011 (new_oacc_loop_raw): Initialize it.
20012 (finish_oacc_loop): Clear mask & flags if no ifns.
20013 (oacc_loop_discover_walk): Count IFN_GOACC_LOOP calls.
20014 (oacc_loop_xform_loop): Add ifns arg & adjust.
20015 (oacc_loop_process): Adjust oacc_loop_xform_loop call.
20016
20017 2016-03-07 Richard Henderson <rth@redhat.com>
20018
20019 PR rtl-opt/70061
20020 * tree-outofssa.c (emit_partition_copy): Flush pending stack adjust.
20021 (insert_value_copy_on_edge): Likewise.
20022
20023 2016-03-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20024
20025 * config/arm/arm_neon.h: Show error if using with soft-float ABI.
20026
20027 2016-03-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
20028
20029 PR target/62281
20030 * config/i386/sol2.h (STACK_REALIGN_DEFAULT): Define.
20031
20032 2016-03-05 Venkataramanan Kumar <Venkataramanan.kumar@amd.com>
20033
20034 * config/i386/i386.c (znver1_cost): Fix Multiply cost.
20035
20036 2016-03-05 Venkataramanan Kumar <Venkataramanan.kumar@amd.com>
20037
20038 Fix sseimul type attribute.
20039 * config/i386/znver1.md
20040 (znver1_sseimul, znver1_sseimul_avx256, znver1_sseimul_load,
20041 znver1_sseimul_avx256_load) : Fix the type attribute.
20042 (znver1_sseimul_di, znver1_sseimul_load_di): Fix type attribute,
20043 pipe usage and latency.
20044
20045 2016-03-05 Jakub Jelinek <jakub@redhat.com>
20046
20047 PR c++/70084
20048 * tree-inline.c (copy_tree_body_r): When cancelling ADDR_EXPR
20049 of INDIRECT_REF and ADDR_EXPR changed type, fold_convert it
20050 to the right type.
20051
20052 2016-03-04 Bernd Schmidt <bschmidt@redhat.com>
20053
20054 PR c/69973
20055 * targhooks.c (default_vector_alignment): Limit to MAX_OFILE_ALIGNMENT.
20056
20057 PR rtl-optimization/69941
20058 * postreload.c (reload_combine_recognize_pattern): Ensure all uses of
20059 the reg share its mode.
20060
20061 2016-03-04 Jeff Law <law@redhat.com>
20062
20063 PR tree-optimization/69196
20064 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
20065 If the both SSA_NAMEs are anonymous, then consider them unassociated
20066 and include the PHI in the statement count.
20067
20068 2016-03-05 Tom de Vries <tom@codesourcery.com>
20069
20070 * omp-low.c (check_omp_nesting_restrictions): Check for non-oacc
20071 construct in oacc routine. Check for oacc region in oacc routine.
20072
20073 2016-03-04 Jakub Jelinek <jakub@redhat.com>
20074
20075 PR target/70062
20076 * config/i386/i386.c (decide_alg): Add RECUR argument. Revert
20077 2016-02-22 changes, instead don't recurse if RECUR is already true.
20078 Don't change *dynamic_check if RECUR. Adjust recursive caller
20079 to pass true to the new argument.
20080 (ix86_expand_set_or_movmem): Adjust decide_alg caller.
20081
20082 PR target/70059
20083 * config/i386/sse.md (vec_set_lo_<mode><mask_name>,
20084 <extract_type_2>_vinsert<shuffletype><extract_suf_2>_mask): Formatting
20085 fixes.
20086 (vec_set_hi_<mode><mask_name>): Likewise. Swap VEC_CONCAT operands.
20087
20088 2016-03-04 Bernd Schmidt <bschmidt@redhat.com>
20089
20090 PR rtl-optimization/57676
20091 * lra-assigns.c (lra_assign): Guard test for maximum iterations
20092 with flag_checking.
20093
20094 2016-03-04 Ilya Enkovich <enkovich.gnu@gmail.com>
20095
20096 * tree-vect-patterns.c (search_type_for_mask): Handle
20097 comparison of booleans.
20098
20099 2016-03-04 Jakub Jelinek <jakub@redhat.com>
20100
20101 * doc/extend.texi (__builtin_alloca, __builtin_alloca_with_align):
20102 Fix @xref usage.
20103
20104 PR debug/69947
20105 * dwarf2out.c (prune_unused_types_walk_loc_descr): Handle
20106 all other ops that have dw_val_class_die_ref operands,
20107 and DW_OP_GNU_entry_value.
20108
20109 2016-03-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20110
20111 PR rtl-optimization/69904
20112 * config/arm/arm.c (arm_cannot_copy_insn_p):
20113 Return true for load-exclusive instructions.
20114
20115 2016-03-03 Jakub Jelinek <jakub@redhat.com>
20116
20117 PR target/70021
20118 * tree-vect-stmts.c (vect_mark_relevant): Remove USED_IN_PATTERN
20119 argument, if STMT_VINFO_IN_PATTERN_P (stmt_info), always mark
20120 the pattern no matter if it is used just by non-pattern, pattern
20121 or mix thereof.
20122 (process_use, vect_mark_stmts_to_be_vectorized): Adjust callers.
20123 * tree-vect-patterns.c (vect_recog_vector_vector_shift_pattern): If
20124 oprnd1 def_stmt is in pattern, don't look through it.
20125
20126 2016-03-03 Marek Polacek <polacek@redhat.com>
20127
20128 PR middle-end/70050
20129 * match.pd (X % -Y): Add INTEGRAL_TYPE_P check.
20130
20131 2016-03-03 Martin Liska <mliska@suse.cz>
20132
20133 PR tree-optimization/70043
20134 * tree-vect-loop.c (optimize_mask_stores): Move iterator to
20135 previous statement if we see a debug statement.
20136
20137 2016-03-03 Richard Biener <rguenther@suse.de>
20138
20139 PR tree-optimization/55936
20140 * tree-vrp.c (compare_name_with_value): Add use_equiv_p
20141 parameter and guard unsafe equivalence use.
20142 (vrp_evaluate_conditional_warnv_with_ops): Always use
20143 safe equivalences but not via the quadratic compare_names
20144 helper.
20145
20146 2016-03-03 Michael Collison <michael.collison@linaro.org>
20147
20148 PR target/70014
20149 * config/arm/arm.md (*subsi3_carryin_const): Change predicate
20150 for operand 1 to s_register_operand. Change predicate for operand
20151 2 to arm_not_immediate_operand.
20152
20153 2016-03-02 H.J. Lu <hongjiu.lu@intel.com>
20154
20155 * doc/tm.texi: Regenerated.
20156
20157 2016-03-02 Richard Henderson <rth@redhat.com>
20158
20159 PR rtl-opt/67145
20160 * simplify-rtx.c (simplify_plus_minus): Allow reassoc without
20161 simplification when all args are positive non-fixed registers.
20162
20163 2016-03-02 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
20164
20165 * target.def (lra_p): Specify that new ports should use LRA.
20166
20167 2016-03-02 Jakub Jelinek <jakub@redhat.com>
20168
20169 PR libgomp/69555
20170 * gimplify.c (gimplify_decl_expr): For decls with REFERENCE_TYPE, also
20171 gimplify_type_sizes the type they refer to.
20172 (omp_notice_variable): Handle reference vars to VLAs.
20173 * omp-low.c (lower_omp_target): Emit setup of OMP_CLAUSE_PRIVATE
20174 reference to VLA decls in the second pass instead of first pass.
20175
20176 2016-03-02 Tom de Vries <tom@codesourcery.com>
20177
20178 PR tree-optimization/68659
20179 * graphite-isl-ast-to-gimple.c (collect_all_ssa_names): Handle
20180 new_expr == NULL_TREE.
20181 (get_new_name): Handle ADDR_EXPR.
20182
20183 2016-03-02 Bin Cheng <bin.cheng@arm.com>
20184
20185 PR rtl-optimization/69052
20186 * loop-invariant.c (canonicalize_address): New function.
20187 (inv_can_prop_to_addr_use): Check validity of address expression
20188 which is canonicalized by above function.
20189
20190 2016-03-02 Alan Modra <amodra@gmail.com>
20191
20192 PR ipa/69990
20193 * ipa-icf.c (sem_variable::merge): Do not merge an alias with
20194 larger alignment.
20195
20196 2016-03-02 Jakub Jelinek <jakub@redhat.com>
20197
20198 PR target/70028
20199 * config/i386/i386.md (kmovw): Move m constraint to 2nd alternative.
20200 (*movhi_internal): Put mask moves from and to memory separately
20201 from moves from/to GPRs.
20202
20203 2016-03-02 Richard Biener <rguenther@suse.de>
20204
20205 * genmatch.c (dt_node::gen_kids): Fix match code-gen for embedded
20206 GENERIC expressions in GIMPLE.
20207
20208 2016-03-02 Richard Biener <rguenther@suse.de>
20209
20210 * config/i386/i386.c (type_natural_mode): Fix typo.
20211
20212 2016-03-02 Nick Clifton <nickc@redhat.com>
20213
20214 * config.gcc (mep-*-elf): Add newlib-stdint.h to tm_file.
20215
20216 2016-03-02 Richard Biener <rguenther@suse.de>
20217 Uros Bizjak <ubizjak@gmail.com>
20218
20219 PR target/67278
20220 * config/i386/i386.c (type_natural_mode): Handle XFmode vectors.
20221
20222 2016-03-02 Richard Biener <rguenther@suse.de>
20223
20224 PR middle-end/67278
20225 * tree-cfg.c (verify_expr): Adjust BIT_FIELD_REF case.
20226
20227 2016-03-02 Marek Polacek <polacek@redhat.com>
20228
20229 PR c/67854
20230 * gimplify.c (gimplify_va_arg_expr): Use expanded location for the
20231 "is promoted to" warning.
20232
20233 2016-03-01 DJ Delorie <dj@redhat.com>
20234
20235 * config.gcc: Deprecate mep-*.
20236
20237 2016-03-01 Vladimir Makarov <vmakarov@redhat.com>
20238
20239 PR middle-end/70025
20240 * lra-constraints.c (regno_val_use_in): New.
20241 (match_reload): Use it instead of regno_use_in.
20242
20243 2016-03-01 Eric Botcazou <ebotcazou@adacore.com>
20244
20245 PR rtl-optimization/70007
20246 * gcse.c (compute_ld_motion_mems): Tidy up and also invalidate memory
20247 references present in REG_EQUAL notes attached to non-SET patterns.
20248
20249 2016-03-01 Jeff Law <law@redhat.com>
20250
20251 PR tree-optimization/69196
20252 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
20253 Appropriately clamp the number of statements to copy when the
20254 thread path does not traverse a loop backedge.
20255
20256 PR tree-optimization/69196
20257 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
20258 Do count some PHIs in the thread path against the insn count. Decrease
20259 final statement count by one as the control statement in the last
20260 block will get removed. Remove special cased code for handling PHIs
20261 in the last block.
20262
20263 2016-03-01 Uros Bizjak <ubizjak@gmail.com>
20264
20265 PR target/70027
20266 * config/i386/i386.c (ix86_output_call_insn): Add -masm=intel
20267 asm dialect alternatives to explicit GOTPCREL calls.
20268
20269 2016-03-01 Eric Botcazou <ebotcazou@adacore.com>
20270
20271 PR ada/70017
20272 * ira.c (do_reload): Issue warning for generic stack checking here...
20273 * reload1.c (reload): ...instead of here and streamline it.
20274
20275 2016-03-01 Nick Clifton <nickc@redhat.com>
20276
20277 * config.gcc (cr16-*-elf): Add newlib-stdint.h to tm_file.
20278
20279 2016-03-01 Richard Biener <rguenther@suse.de>
20280
20281 PR tree-optimization/69983
20282 * tree-chrec.c (eq_evolutions_p): Handle conversions, compare
20283 types and fall back to operand_equal_p.
20284
20285 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
20286
20287 Revert
20288 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
20289
20290 * config/s390/constraints.md ("jm8"): New constraint.
20291 * config/s390/predicates.md ("const_int_8bitset_operand"): New
20292 predicate.
20293 * config/s390/s390.md ("*setmem_long", "*setmem_long_and"): Merge
20294 into ...
20295 ("*setmem_long<setmem_and>"): New pattern.
20296 ("*setmem_long_31z", "*setmem_long_and_31z"): Merge
20297 into ...
20298 ("*setmem_long_31z<setmem_and>"): New pattern.
20299 * config/s390/subst.md ("setmem_31z_subst", "setmem_and_subst"):
20300 New substitution rules with the required attributes.
20301
20302
20303 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
20304
20305 Revert
20306 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
20307
20308 * gensupport.c (process_substs_on_one_elem): Split loop to
20309 complete mark_operands_used_in_match_dup on all expressions in the
20310 vector first.
20311 (adjust_operands_numbers): Inline into process_substs_on_one_elem
20312 and remove function.
20313
20314 2016-03-01 Richard Biener <rguenther@suse.de>
20315
20316 PR middle-end/70022
20317 * fold-const.c (fold_indirect_ref_1): Fix range checking for
20318 vector BIT_FIELD_REF extract.
20319
20320 2016-03-01 Richard Biener <rguenther@suse.de>
20321
20322 PR tree-optimization/69994
20323 * tree-ssa-reassoc.c (ops_equal_values_p): Handle missing case.
20324
20325 2016-03-01 Ilya Enkovich <enkovich.gnu@gmail.com>
20326
20327 PR tree-optimization/69956
20328 * tree-vect-stmts.c (supportable_widening_operation): Support
20329 multi-step conversion of boolean vectors.
20330 (supportable_narrowing_operation): Likewise.
20331
20332 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
20333
20334 * config/s390/s390.c (s390_decompose_address): Don't accept SImode
20335 anymore.
20336
20337 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
20338
20339 * config/s390/subst.md (DSI_VI): New mode iterator.
20340 ("addr_style_op_subst"): Use DSI_VI instead of DSI.
20341 * config/s390/vector.md ("vec_set<mode>"): Move expander before
20342 the insn definition.
20343 ("*vec_set<mode>"): Change predicate and add alternative to
20344 support only either register or const_int operands as element
20345 selector.
20346 ("*vec_set<mode>_plus"): New pattern to support reg + const_int
20347 operands.
20348 ("vec_extract<mode>"): New expander.
20349 ("*vec_extract<mode>"): New insn definition supporting reg and
20350 const_int element selectors.
20351 ("*vec_extract<mode>_plus"): New insn definition supporting
20352 reg+const_int element selectors.
20353 ("rotl<mode>3", "ashl<mode>3", "ashr<mode>3"): Merge into the
20354 following expander+insn definition.
20355 ("<vec_shifts_name><mode>3"): New expander.
20356 ("*<vec_shifts_name><mode>3<addr_style_op>"): New insn definition.
20357
20358 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
20359
20360 * config/s390/s390.md ("*tabort_1"): Change predicate to
20361 nonmemory_operand. Add a second alternative to cover
20362 register as well as const int operands.
20363 ("*tabort_1_plus"): New pattern definition.
20364
20365 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
20366
20367 * config/s390/s390.md ("*ashrdi3_cc_31")
20368 ("*ashrdi3_cconly_31""*ashrdi3_cc_31_and")
20369 ("*ashrdi3_cconly_31_and", "*ashrdi3_31_and", "*ashrdi3_31"):
20370 Merge insn definitions into ...
20371 ("*ashrdi3_31<addr_style_op_cc><masked_op_cc><setcc><cconly>"):
20372 New pattern definition.
20373 ("*ashr<mode>3_cc", "*ashr<mode>3_cconly", "ashr<mode>3", )
20374 ("*ashr<mode>3_cc_and", "*ashr<mode>3_cconly_and")
20375 ("*ashr<mode>3_and"): Merge insn definitions into ...
20376 ("*ashr<mode>3<addr_style_op_cc><masked_op_cc><setcc><cconly>"):
20377 New pattern definition.
20378 * config/s390/subst.md ("addr_style_op_cc_subst")
20379 ("masked_op_cc_subst", "setcc_subst", "cconly_subst"): New
20380 substitutions patterns plus attributes.
20381 Add ashiftrt to SUBST iterator.
20382
20383 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
20384
20385 * config/s390/s390.md ("<shift><mode>3"): Change predicate of
20386 op2 to nonmemory_operand.
20387 ("*<shift>di3_31", "*<shift>di3_31_and"):
20388 Merge into single pattern definition ...
20389 ("*<shift>di3_31<addr_style_op><masked_op>"): New pattern.
20390 ("*<shift><mode>3", "*<shift><mode>3_and"): Merge into single
20391 pattern definition ...
20392 ("*<shift><mode>3<addr_style_op><masked_op>"): New pattern.
20393 * config/s390/subst.md: Add ashift and lshiftrt to SUBST
20394 iterator.
20395
20396 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
20397
20398 * config/s390/predicates.md (const_int_6bitset_operand): New
20399 predicate.
20400 * config/s390/s390.md: Include subst.md.
20401 ("rotl<mode>3"): New expander.
20402 ("rotl<mode>3", "*rotl<mode>3_and"): Merge insn definitions into
20403 ...
20404 ("*rotl<mode>3<addr_style_op><masked_op>"): New insn definition.
20405 * config/s390/subst.md: New file.
20406
20407 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
20408
20409 * config/s390/s390.md ("op_type", "atype", "length" attributes):
20410 Remove RRR type. It doesn't really exist.
20411 ("RRer", "f0", "v0", "vf", "vd", "op1", "Rf"): Remove mode
20412 attributes.
20413 ("BFP", "DFP", "nDSF", "nDFDI"): Add mode attributes.
20414 ("*cmp<mode>_ccs", "floatdi<mode>2", "add<mode>3")
20415 ("*add<mode>3_cc", "*add<mode>3_cconly", "sub<mode>3")
20416 ("*sub<mode>3_cc", "*sub<mode>3_cconly", "mul<mode>3")
20417 ("fma<mode>4", "fms<mode>4", "div<mode>3", "*neg<mode>2")
20418 ("*abs<mode>2", "*negabs<mode>2", "sqrt<mode>2"): Override
20419 `enabled' attribute.
20420
20421 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
20422
20423 * gensupport.c (process_substs_on_one_elem): Split loop to
20424 complete mark_operands_used_in_match_dup on all expressions in the
20425 vector first.
20426 (adjust_operands_numbers): Inline into process_substs_on_one_elem
20427 and remove function.
20428
20429 2016-02-29 Eric Botcazou <ebotcazou@adacore.com>
20430
20431 PR target/69706
20432 * config/sparc/sparc.c (NWORDS_UP): Rename to...
20433 (CEIL_NWORDS): ...this. Use CEIL macro.
20434 (compute_fp_layout): Adjust to above renaming.
20435 (function_arg_union_value): Likewise.
20436 (sparc_arg_partial_bytes): Likewise.
20437 (sparc_function_arg_advance): Likewise.
20438
20439 2016-02-29 Jeff Law <law@redhat.com>
20440
20441 PR tree-optimization/70005
20442 * tree-ssa-uncprop.c (associate_equivalences_with_edges): Handle case
20443 where an object with a boolean range is compared against a value
20444 outside [0..1].
20445
20446 PR tree-optimization/69999
20447 * gimple-ssa-split-paths.c (split_paths): When duplicating a block
20448 with an outgoing edge marked with EDGE_IRREDUCIBLE_LOOP, schedule
20449 loop cleanups.
20450
20451 2016-02-29 Richard Biener <rguenther@suse.de>
20452
20453 PR tree-optimization/69994
20454 * tree-ssa-reassoc.c (gimple_nop_conversion_p): New function.
20455 (get_unary_op): Look through nop conversions.
20456 (ops_equal_values_p): New function, look for equality diregarding
20457 nop conversions.
20458 (eliminate_plus_minus_pair): Use ops_equal_values_p
20459 (repropagate_negates): Do not use get_unary_op here.
20460
20461 2016-02-29 Martin Liska <mliska@suse.cz>
20462
20463 * system.h: Poison ENABLE_CHECKING macro.
20464
20465 2016-02-29 Martin Liska <mliska@suse.cz>
20466
20467 * hsa-gen.c (gen_body_from_gimple): Dump only if TDF_DETAILS
20468 is presented in dump flags.
20469 * hsa-regalloc.c (linear_scan_regalloc): Likewise.
20470 (hsa_regalloc): Likewise.
20471
20472 2016-02-19 Richard Biener <rguenther@suse.de>
20473
20474 PR tree-optimization/69980
20475 * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Update
20476 permutation of those we need to keep.
20477
20478 2016-02-29 Eric Botcazou <ebotcazou@adacore.com>
20479
20480 PR target/69706
20481 * config/sparc/sparc.c (ROUND_ADVANCE): Rename to...
20482 (NWORDS_UP): ...this
20483 (init_cumulative_args): Minor tweaks.
20484 (sparc_promote_function_mode): Likewise.
20485 (scan_record_type): Delete.
20486 (traverse_record_type): New function template.
20487 (classify_data_t): New structure type.
20488 (classify_registers): New inline function.
20489 (function_arg_slotno): In 64-bit mode, bail out early if FP slots are
20490 exhausted. Instantiate traverse_record_type on classify_registers and
20491 deal with the case of a structure passed in slot #15 with no FP field
20492 in the first word.
20493 (assign_data_t): New structure type.
20494 (compute_int_layout): New static function.
20495 (compute_fp_layout): Likewise.
20496 (count_registers): New inline function.
20497 (assign_int_registers): New static function.
20498 (assign_fp_registers): Likewise.
20499 (assign_registers): New inline function.
20500 (function_arg_record_value_1): Delete.
20501 (function_arg_record_value_2): Likewise.
20502 (function_arg_record_value_3): Likewise.
20503 (function_arg_record_value): Adjust to above changes. Instantiate
20504 traverse_record_type on count_registers to first count the number of
20505 registers to be used and then on assign_registers to assign them.
20506 (function_arg_union_value): Adjust to above renaming.
20507 (sparc_function_arg_1); Minor tweaks. Remove commented out code.
20508 (sparc_arg_partial_bytes): Adjust to above renaming. Deal with the
20509 case of a structure passed in slot #15
20510 (sparc_function_arg_advance): Likewise.
20511 (function_arg_padding): Minor tweak.
20512
20513 2016-02-29 Richard Biener <rguenther@suse.de>
20514
20515 PR tree-optimization/69720
20516 * tree-vect-loop.c (get_initial_def_for_reduction): Avoid
20517 the adjustment_def path for possibly vectorized defs.
20518 (vect_create_epilog_for_reduction): Handle vectorized initial
20519 defs properly.
20520
20521 2016-02-28 Eric Botcazou <ebotcazou@adacore.com>
20522
20523 * config/i386/cygming.h (STACK_REALIGN_DEFAULT): Define.
20524
20525 2016-02-27 Jeff Law <law@redhat.com>
20526
20527 Revert
20528 2016-02-26 Richard Biener <rguenther@suse.de>
20529 Jeff Law <law@redhat.com>
20530
20531 PR tree-optimization/69740
20532 * cfghooks.c (remove_edge): Request loop fixups if we delete
20533 an edge that might turn an irreducible loop into a natural
20534 loop.
20535
20536 2016-02-27 Jakub Jelinek <jakub@redhat.com>
20537
20538 PR rtl-optimization/69896
20539 * tree-vect-generic.c (get_compute_type): Avoid single element
20540 vector types.
20541
20542 2016-02-26 Evandro Menezes <e.menezes@samsung.com>
20543
20544 Rename the AArch64 tuning option and related functions to enable the
20545 Newton series for the reciprocal square root to reflect its
20546 approximative characteristic.
20547
20548 * config/aarch64/aarch64-protos.h (aarch64_emit_swrsqrt): Rename
20549 function to "aarch64_emit_approx_rsqrt".
20550 * config/aarch64/aarch64-tuning-flags.def: Rename tuning flag to
20551 AARCH64_EXTRA_TUNE_APPROX_RSQRT.
20552 * config/aarch64/aarch64.c (exynosm1_tunigs): Use new flag name.
20553 (xgene1_tunings): Likewise.
20554 (use_rsqrt_p): Likewise.
20555 (aarch64_emit_swrsqrt): Use new function name.
20556 * config/aarch64/aarch64-simd.md (aarch64_rsqrts_*): Likewise.
20557 * config/aarch64/aarch64.opt (mlow-precision-recip-sqrt): Reword the
20558 text explaining this option.
20559 * doc/invoke.texi (-mlow-precision-recip-sqrt): Likewise.
20560
20561 2016-02-26 Jakub Jelinek <jakub@redhat.com>
20562
20563 PR target/69969
20564 * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
20565 complain about -mallow-movmisalign without -mvsx if
20566 TARGET_ALLOW_MOVMISALIGN was not set explicitly.
20567
20568 2016-02-26 Joel Sherrill <joel@rtems.org>
20569
20570 * config.gcc: Add x86_64-*-rtems*.
20571 * config/i386/rtems-64.h: New file.
20572
20573 2016-02-26 Joel Sherrill <joel@rtems.org>
20574
20575 * config.gcc: Add aarch64-*-rtems*.
20576 * config/aarch64/rtems.h: New file.
20577
20578 2016-02-26 Segher Boessenkool <segher@kernel.crashing.org>
20579
20580 PR target/69946
20581 * config/rs6000/rs6000.c (rs6000_insn_for_shift_mask): Print rlwinm
20582 shift amount using %h. Add comment.
20583
20584 2016-02-26 Richard Biener <rguenther@suse.de>
20585 Jeff Law <law@redhat.com>
20586
20587 PR tree-optimization/69740
20588 * cfghooks.c (remove_edge): Request loop fixups if we delete
20589 an edge that might turn an irreducible loop into a natural
20590 loop.
20591
20592 2016-02-26 Martin Jambor <mjambor@suse.cz>
20593
20594 PR middle-end/69920
20595 * tree-sra.c (sra_modify_assign): Do not remove loads of
20596 uninitialized aggregates to SSA_NAMEs.
20597
20598 2016-02-26 Richard Henderson <rth@redhat.com>
20599
20600 PR target/69709
20601 * config/s390/s390.md (risbg and risbgn splitters): Allocate new
20602 pseudo in case the target rtx matches the source of the left
20603 shift.
20604
20605 2016-02-26 Martin Jambor <mjambor@suse.cz>
20606
20607 PR hsa/69568
20608 * hsa.h (hsa_type_packed_p): Declare.
20609 * hsa.c (hsa_type_packed_p): New function.
20610 * hsa-gen.c (mem_type_for_type): Use unsigned type for packed
20611 loads.
20612 (gen_hsa_insns_for_store): Use hsa_type_packed_p.
20613 * hsa-brig.c (emit_basic_insn): Likewise.
20614
20615 2016-02-26 Martin Jambor <mjambor@suse.cz>
20616
20617 pr hsa/69674
20618 * hsa-gen.c (gen_hsa_phi_from_gimple_phi): Use proper hsa type for
20619 pointers.
20620 (gen_hsa_addr): Allow integer constants in TMR_INDEX2.
20621
20622 2016-02-26 Martin Jambor <mjambor@suse.cz>
20623
20624 * hsa.h (is_a_helper): New overload for hsa_op_immed for
20625 hsa_op_with_type operands.
20626 (hsa_unsigned_type_for_type): Declare.
20627 * hsa.c (hsa_unsigned_type_for_type): New function.
20628 * hsa-gen.c (gen_hsa_binary_operation): Use hsa_unsigned_type_for_type.
20629 (gen_hsa_insns_for_operation_assignment): Satisfy constrains of
20630 the finalizer. Do not emit extra move.
20631
20632 2016-02-26 Martin Jambor <mjambor@suse.cz>
20633
20634 * hsa-gen.c (gen_hsa_ternary_atomic_for_builtin): Fail in presence of
20635 atomic operations in private segment.
20636
20637 2016-02-26 Martin Jambor <mjambor@suse.cz>
20638
20639 * omp-low.c (grid_find_ungridifiable_statement): Store problematic
20640 statements to wi->info. Also disallow omp simd constructs.
20641 (grid_target_follows_gridifiable_pattern): Use wi.info to dump reason
20642 for not gridifying. Dump special string for omp_for.
20643
20644 2016-02-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20645
20646 PR target/69245
20647 * config/aarch64/aarch64.c (aarch64_set_current_function):
20648 Save/restore target globals when switching to
20649 target_option_default_node.
20650
20651 2016-02-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20652
20653 PR target/69613
20654 * config/aarch64/aarch64.c (aarch64_shift_truncation_mask):
20655 Return 0 if !SHIFT_COUNT_TRUNCATED.
20656
20657 2016-02-26 Jakub Jelinek <jakub@redhat.com>
20658 Eric Botcazou <ebotcazou@adacore.com>
20659
20660 PR rtl-optimization/69891
20661 * dse.c (scan_insn): If we can't figure out memset arguments
20662 or they are non-constant, call clear_rhs_from_active_local_stores.
20663
20664 2016-02-26 Martin Liska <mliska@suse.cz>
20665
20666 * doc/extend.texi: Mention clog10, clog10f an clog10l
20667 in Builtins section.
20668
20669 2016-02-26 Martin Liska <mliska@suse.cz>
20670
20671 * dwarf2out.c (new_loc_descr): Replace ENABLE_CHECKING with
20672 CHECKING_P.
20673 (resolve_args_picking_1): Likewise.
20674 * dwarf2out.h (struct GTY): Likewise.
20675
20676 2016-02-26 Martin Liska <mliska@suse.cz>
20677
20678 * hsa-gen.c (generate_hsa): Replace ENABLE_CHECKING macro
20679 with flag_checking.
20680 * hsa-regalloc.c (linear_scan_regalloc): Likewise.
20681
20682 2016-02-26 Markus Trippelsdorf <markus@trippelsdorf.de>
20683 Martin Liska <mliska@suse.cz>
20684
20685 * doc/install.texi: Mention --enable-valgrind-annotations.
20686
20687 2016-02-26 Richard Biener <rguenther@suse.de>
20688
20689 PR tree-optimization/69551
20690 * tree-ssa-structalias.c (get_constraint_for_ssa_var): When
20691 looking through aliases adjust DECL_PT_UID to refer to the
20692 ultimate alias target.
20693
20694 2016-02-25 Martin Liska <mliska@suse.cz>
20695
20696 PR middle-end/69919
20697 * alloc-pool.c (after_memory_report): New variable.
20698 * alloc-pool.h (base_pool_allocator ::release): Do not use
20699 the infrastructure if after_memory_report.
20700 * toplev.c (toplev::main): Mark after memory report.
20701
20702 2016-02-25 Richard Biener <rguenther@suse.de>
20703
20704 PR tree-optimization/48795
20705 * tree-vrp.c (check_array_ref): Use array_at_struct_end_p.
20706
20707 2016-02-25 Ilya Verbin <ilya.verbin@intel.com>
20708
20709 PR driver/68463
20710 * config/gnu-user.h (CRTOFFLOADBEGIN): Define. Add crtoffloadbegin.o if
20711 offloading is enabled and -fopenacc or -fopenmp is specified.
20712 (CRTOFFLOADEND): Likewise.
20713 (GNU_USER_TARGET_STARTFILE_SPEC): Add CRTOFFLOADBEGIN.
20714 (GNU_USER_TARGET_ENDFILE_SPEC): Add CRTOFFLOADEND.
20715 * lto-wrapper.c (offloadbegin, offloadend): Remove static vars.
20716 (offload_objects_file_name): New static var.
20717 (tool_cleanup): Remove offload_objects_file_name file.
20718 (find_offloadbeginend): Replace with ...
20719 (find_crtoffloadtable): ... this.
20720 (run_gcc): Remove offload_argc and offload_argv.
20721 Get offload_objects_file_name from -foffload-objects=... option.
20722 Read names of object files with offload from this file, pass them to
20723 compile_images_for_offload_targets. Don't call find_offloadbeginend and
20724 don't pass offloadbegin and offloadend to the linker. Don't pass
20725 offload non-LTO files to the linker, because now they're not claimed.
20726
20727 2016-02-25 Jan Hubicka <hubicka@ucw.cz>
20728
20729 PR ipa/69630
20730 * ipa-devirt.c (possible_polymorphic_call_targets): Do not ICE
20731 on builtin_unreachable.
20732
20733 2016-02-25 Jakub Jelinek <jakub@redhat.com>
20734
20735 PR rtl-optimization/69896
20736 * regcprop.c: Include cfgrtl.h.
20737 (copyprop_hardreg_forward_1): If noop_p insn uses narrower
20738 than remembered mode, either delete it (if noop_move_p), or
20739 treat like copy_p but not noop_p instruction.
20740
20741 2016-02-24 Jakub Jelinek <jakub@redhat.com>
20742
20743 PR debug/69705
20744 * dwarf2out.c (gen_variable_die): Work around buggy LTO
20745 - allow NULL decl for Fortran DW_TAG_common_block variables.
20746
20747 2016-02-24 Jason Merrill <jason@redhat.com>
20748
20749 * common.opt (flifetime-dse): Add -flifetime-dse=1.
20750
20751 2016-02-24 Richard Biener <rguenther@suse.de>
20752 Jakub Jelinek <jakub@redhat.com>
20753
20754 PR middle-end/69760
20755 * tree-scalar-evolution.c (interpret_rhs_expr): Re-write
20756 conditionally executed ops to well-defined overflow behavior.
20757
20758 2016-02-24 Jakub Jelinek <jakub@redhat.com>
20759
20760 PR middle-end/69915
20761 * tree.c (build_vector_from_ctor): Fix handling of VECTOR_CST
20762 elements.
20763
20764 2016-02-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20765
20766 PR rtl-optimization/69886
20767 * gcse.c (can_assign_to_reg_without_clobbers_p): Accept mode
20768 argument. Use it when checking validity of set instructions.
20769 (want_to_gcse_p): Pass mode to can_assign_to_reg_without_clobbers_p.
20770 (compute_ld_motion_mems): Update can_assign_to_reg_without_clobbers_p
20771 callsite.
20772 * rtl.h (can_assign_to_reg_without_clobbers_p): Update prototype.
20773 * store-motion.c (find_moveable_store): Update
20774 can_assign_to_reg_without_clobbers_p callsite.
20775
20776 2016-02-24 Richard Biener <rguenther@suse.de>
20777
20778 PR middle-end/68963
20779 * tree-ssa-loop-niter.c (derive_constant_upper_bound_ops): Fix
20780 bogus check.
20781 (record_nonwrapping_iv): Do not fall back to the low/high bound
20782 for non-constant IV bases if the stmt is not always executed.
20783
20784 2016-02-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20785
20786 * config/arm/arm-cores.def (cortex-a32): New entry.
20787 * config/arm/arm-tables.opt: Regenerate.
20788 * config/arm/arm-tune.md: Regenerate.
20789 * config/arm/bpabi.h (BE8_LINK_SPEC): Add mcpu=cortex-a32.
20790 * config/arm/t-aprofile: Handle mcpu=cortex-a32.
20791 * doc/invoke.texi (ARM Options): Document cortex-a32 as value
20792 for -mcpu and -mtune.
20793
20794 2016-02-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20795
20796 PR target/69875
20797 * config/arm/arm.h (TARGET_HAVE_LPAE): Define.
20798 * config/arm/unspecs.md (VUNSPEC_LDRD_ATOMIC): New value.
20799 * config/arm/sync.md (arm_atomic_loaddi2_ldrd): New pattern.
20800 (atomic_loaddi_1): Delete.
20801 (atomic_loaddi): Rewrite expander using the above changes.
20802
20803 2016-02-24 Jakub Jelinek <jakub@redhat.com>
20804
20805 PR c/69918
20806 * params.def (PARAM_MAX_SSA_NAME_QUERY_DEPTH): Bump default from
20807 2 to 3.
20808
20809 2016-02-24 Jakub Jelinek <jakub@redhat.com>
20810 Richard Biener <rguenth@suse.de>
20811
20812 PR middle-end/69909
20813 * expr.c (expand_expr_real_1) <normal_inner_ref>: Avoid
20814 set_mem_attributes if tem is SSA_NAME which got expanded
20815 as a MEM.
20816
20817 2016-02-24 Richard Biener <rguenther@suse.de>
20818
20819 PR tree-optimization/69907
20820 * tree-vect-stmts.c (vectorizable_load): Check for gaps at the
20821 end of permutations for BB vectorization.
20822
20823 2016-02-24 Christian Bruel <christian.bruel@st.com>
20824
20825 * config/arm/arm-c.c (arm_option_override): Initialize
20826 target_option_current_node.
20827 * config/arm/arm.c (arm_pragma_target_parse): Replace
20828 build_target_option_node call by target_option_current_node.
20829 Set target_option_current_node.
20830 Fix comments.
20831
20832 2016-02-23 David Edelsohn <dje.gcc@gmail.com>
20833
20834 PR target/69810
20835 * config/rs6000/rs6000.md (zero_extendqi<mode>2_dot): Convert from
20836 define_insn_and_split to define_insn.
20837 (zero_extendqi<mode>2_dot2): Same.
20838 (extendqi<mode>2_dot): Same.
20839 (extendqi<mode>2_dot2): Same.
20840
20841 2016-02-23 Evandro Menezes <e.menezes@samsung.com>
20842
20843 * config/arm/exynos-m1.md: Change cost of STP, fix bypass for stores
20844 and add bypass for AES{D,E} and AESMC pairs.
20845 * config/aarch64/aarch64.c (exynosm1_tunings): Enable fusion of AES{D,E}
20846 and AESMC pairs.
20847
20848 2016-02-23 Evandro Menezes <e.menezes@samsung.com>
20849
20850 * config/aarch64/aarch64.c (exynosm1_tunings): Enable the Newton
20851 series for reciprocal square root in Exynos M1.
20852
20853 2016-02-23 Martin Sebor <msebor@redhat.com>
20854
20855 PR c/69759
20856 * doc/extend.texi (Other Builtins): Document __builtin_alloca and
20857 __builtin_alloca_with_align.
20858
20859 2016-02-23 Richard Henderson <rth@redhat.com>
20860
20861 * config/i386/i386-c.c (ix86_target_macros): Remove __SEG_TLS.
20862 (ix86_register_pragmas): Remove __seg_tls.
20863 * config/i386/i386-protos.h (ADDR_SPACE_SEG_TLS): Remove.
20864 * config/i386/i386.c (ix86_print_operand_address_as): Don't handle it.
20865 (ix86_addr_space_subset_p, TARGET_ADDR_SPACE_SUBSET_P): Remove.
20866 (ix86_addr_space_convert, TARGET_ADDR_SPACE_CONVERT): Remove.
20867 (ix86_addr_space_debug, TARGET_ADDR_SPACE_DEBUG): Remove.
20868 * doc/extend.texi (__seg_tls): Remove item.
20869
20870 2016-02-23 Richard Biener <rguenther@suse.de>
20871
20872 * alloc-pool.h (struct allocation_object): Make id member
20873 conditional on CHECKING_P again.
20874 (get_instance): Adjust.
20875 (base_pool_allocator): Likewise.
20876
20877 2016-02-23 Thomas Schwinge <thomas@codesourcery.com>
20878
20879 * tree-parloops.c (create_parallel_loop, gen_parallel_loop)
20880 (parallelize_loops): In OpenACC kernels mode, set n_threads to
20881 zero.
20882 (pass_parallelize_loops::gate): In OpenACC kernels mode, gate on
20883 flag_openacc.
20884 * tree-ssa-loop.c (gate_oacc_kernels): Likewise.
20885
20886 2016-02-23 Richard Biener <rguenther@suse.de>
20887
20888 * mem-stats.h (struct mem_usage): Use PRIu64 for printing size_t.
20889 * bitmap.h (struct bitmap_usage): Likewise.
20890 (bitmap_move): Declare.
20891 * bitmap.c (register_overhead): Take size_t argument.
20892 (bitmap_move): New function.
20893 * df-problems.c (df_rd_transfer_function): Use bitmap_move
20894 to properly account overhead.
20895 * tree.c (free_node): Use tree_size.
20896
20897 2016-02-23 Jakub Jelinek <jakub@redhat.com>
20898
20899 PR c++/69902
20900 * fold-const.c (fold_truth_not_expr): Propagate TREE_NO_WARNING
20901 when inverting comparison.
20902
20903 PR c/69900
20904 * common.opt (Wunreachable-code): Add Warning flag.
20905
20906 2016-02-23 Mark Wielaard <mjw@redhat.com>
20907 Jakub Jelinek <jakub@redhat.com>
20908
20909 PR c/69911
20910 * cgraphunit.c (check_global_declaration): Check main_input_filename
20911 and DECL_SOURCE_FILE are not NULL.
20912
20913 2016-02-23 Martin Jambor <mjambor@suse.cz>
20914
20915 PR tree-optimization/69666
20916 * tree-sra.c (sra_modify_assign): Do not attempt to create
20917 default_def replacements for unscalarizable regions.
20918
20919 2016-02-20 Mark Wielaard <mjw@redhat.com>
20920
20921 PR c/28901
20922 * cgraphunit.c (check_global_declaration): Check level of
20923 warn_unused_const_variable and main_input_filename.
20924 * doc/invoke.texi (Warning Options): Add -Wunused-const-variable=.
20925 (-Wunused-variable): For C implies -Wunused-const-variable=1.
20926 (-Wunused-const-variable): Explain levels 1 and 2.
20927
20928 2016-02-22 Jakub Jelinek <jakub@redhat.com>
20929
20930 PR target/69888
20931 * config/i386/i386.c (decide_alg): Ensure we don't recurse with
20932 identical arguments. Formatting and spelling fixes.
20933
20934 PR target/69885
20935 * doc/md.texi (ashl@var{m}3): Document that mode of operand 2 must
20936 be specified.
20937
20938 PR target/69894
20939 PR target/69895
20940 * config/m68k/t-opts (OPTIONS_H_EXTRA): Add m68k-microarchs.def
20941 and m68k-devices.def.
20942 * config/c6x/t-c6x (OPTIONS_H_EXTRA): Add c6x-isas.def.
20943 * config/aarch64/t-aarch64 (OPTIONS_H_EXTRA): Add aarch64-arches.def.
20944
20945 2016-02-22 Cesar Philippidis <cesar@codesourcery.com>
20946
20947 * config/nvptx/nvptx.c (nvptx_gen_shuffle): Add support for QImode
20948 and HImode registers.
20949
20950 2016-02-22 Richard Biener <rguenther@suse.de>
20951
20952 PR tree-optimization/69882
20953 * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Properly
20954 preserve permutations present because of gaps.
20955 (vect_supported_load_permutation_p): Always continue checking
20956 permutations after vect_attempt_slp_rearrange_stmts.
20957
20958 2016-02-22 Bin Cheng <bin.cheng@arm.com>
20959
20960 * tree-vect-loop.c (vect_estimate_min_profitable_iters): Dump
20961 min_profitable_estimate, rather than min_profitable_iters.
20962
20963 2016-02-22 Jakub Jelinek <jakub@redhat.com>
20964
20965 PR target/69885
20966 * config/m68k/m68k.md (ashldi3, ashrdi3, lshrdi3): Use
20967 SImode for last match_operand.
20968
20969 2016-02-22 Martin Liska <mliska@suse.cz>
20970
20971 * hsa-gen.c (gen_hsa_clrsb): In case of zero value,
20972 return bitsize - 1 as the return value.
20973
20974 2016-02-22 Oleg Endo <olegendo@gcc.gnu.org>
20975
20976 PR target/69806
20977 PR target/54089
20978 * config/sh/sh.c (sh_lshrsi_clobbers_t_reg_p, sh_dynamicalize_shift_p):
20979 Handle negative shift counts.
20980 * config/sh/sh.md (ashlsi3, lshrsi3_n, lshrsi3_n_clobbers_t): Don't use
20981 force_reg on the shift constant.
20982 (lshrsi3): Likewise. Expand into lshrsi3_n* instead of lshrsi3_d.
20983 (lshrsi3_d): Handle negative shift counts.
20984
20985 2016-02-22 Richard Biener <rguenther@suse.de>
20986 Tom de Vries <tom@codesourcery.com>
20987
20988 * graph.c: Include dumpfile.h.
20989 (print_graph_cfg): Split into three overloads.
20990 * gdbhooks.py (class DotFn): Add and instantiate, adding command dot-fn.
20991
20992 2016-02-22 Tom de Vries <tom@codesourcery.com>
20993
20994 * gdbhooks.py (class DumpFn): Add and instantiate, adding command
20995 dump-fn.
20996
20997 2016-02-22 Richard Biener <rguenther@suse.de>
20998
20999 PR ipa/37448
21000 * ipa-inline-transform.c (inline_call): When not updating
21001 overall summaries adjust self size by the growth estimate.
21002 * ipa-inline.c (inline_to_all_callers_1): Add to the callers
21003 hash-set, do not update overall summaries here. Renamed from ...
21004 (inline_to_all_callers): ... this which is now wrapping the
21005 above and performing delayed overall summary update.
21006 (early_inline_small_functions): Delay updating of the overall
21007 summary.
21008
21009 2016-02-21 Markus Trippelsdorf <markus@trippelsdorf.de>
21010
21011 * tree-chkp.c (chkp_mark_invalid_bounds_walker): Initialize
21012 variable.
21013
21014 2016-02-19 Jakub Jelinek <jakub@redhat.com>
21015
21016 PR driver/69805
21017 * gcc.c (LINK_COMMAND_SPEC, GOMP_SELF_SPECS): Use
21018 :%* in %:gt() argument.
21019 (greater_than_spec_func): Adjust for expecting only numbers,
21020 if there are more than two numbers, compare the last two.
21021
21022 2016-02-19 Jonathan Wakely <jwakely@redhat.com>
21023
21024 * doc/invoke.texi (C++ Dialect Options): Clarify interaction of
21025 -Wnarrowing with -std.
21026
21027 2016-02-19 Jakub Jelinek <jakub@redhat.com>
21028
21029 PR c++/69851
21030 * expr.c (store_field): Don't use bit-field path if exp is
21031 COMPONENT_REF with TREE_ADDRESSABLE type, where TYPE_SIZE is
21032 different from bitsize, but DECL_SIZE of FIELD_DECL is bitsize
21033 and the assignment can be performed by bitwise copy. Formatting
21034 fix.
21035
21036 PR middle-end/69838
21037 * lra.c (lra_process_new_insns): If non-call exceptions are enabled,
21038 call copy_reg_eh_region_note_forward on before and/or after sequences
21039 and remove note from insn if it no longer can throw.
21040
21041 PR target/69820
21042 * config/i386/sse.md (VI_512): Only include V64QImode and V32HImode
21043 if TARGET_AVX512BW.
21044
21045 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
21046
21047 * config/s390/vector.md: Add missing commutative operand markers
21048 to the patterns which qualify for one.
21049 * config/s390/vx-builtins.md: Likewise.
21050
21051 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
21052
21053 * config/s390/vector.md (VI, VI_QHS): Add single element vector
21054 types to mode iterators.
21055 (vec_double): ... and mode attribute.
21056 * config/s390/vx-builtins.md (non_vec_int): Likewise.
21057
21058 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
21059
21060 * config/s390/vector.md ("<ti*>add<mode>3", "<ti*>sub<mode>3"):
21061 Change the predicate of op2 from nonimmediate to general and let
21062 reload fix it if necessary.
21063
21064 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
21065
21066 * config/s390/vecintrin.h (vec_sub_u128): Define missing macro.
21067
21068 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
21069
21070 * config/s390/s390.c (s390_expand_vcond): Use the compare operand
21071 mode.
21072
21073 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
21074
21075 * config/s390/s390-protos.h: Add s390_expand_vec_movstr prototype.
21076 * config/s390/s390.c (s390_expand_vec_movstr): New function.
21077 * config/s390/s390.md ("movstr<P:mode>"): Call
21078 s390_expand_vec_movstr.
21079
21080 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
21081
21082 * config/s390/s390.md: Add missing output modifier for operand 1
21083 to print it as address properly.
21084
21085 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
21086
21087 * config/s390/2827.md: Rename ooo_* insn attributes to zEC12_*.
21088 * config/s390/2964.md: New file.
21089 * config/s390/s390.c (s390_get_sched_attrmask): Use the right set
21090 of insn grouping attributes depending on the CPU level.
21091 (s390_get_unit_mask): New function.
21092 (s390_sched_score): Remove the OOO from the scheduling macros.
21093 Add loop to calculate a score for the instruction mix.
21094 (s390_sched_reorder): Likewise plus improve debug output.
21095 (s390_sched_variable_issue): Rename macros as above. Calculate
21096 the unit distances after actually scheduling an insn. Improve
21097 debug output.
21098 (s390_sched_init): Clear last_scheduled_unit_distance array.
21099 * config/s390/s390.md: Include 2964.md.
21100
21101 2016-02-18 Jakub Jelinek <jakub@redhat.com>
21102
21103 PR target/69671
21104 * config/i386/sse.md (*<floatsuffix>floatv2div2sf2_mask_1,
21105 *avx512vl_<code>v2div2qi2_mask_1, *avx512vl_<code><mode>v4qi2_mask_1,
21106 *avx512vl_<code><mode>v8qi2_mask_1, *avx512vl_<code><mode>v4hi2_mask_1,
21107 *avx512vl_<code>v2div2hi2_mask_1, *avx512vl_<code>v2div2si2_mask_1,
21108 *avx512f_<code>v8div16qi2_mask_1): New insns.
21109
21110 2016-02-18 Michael Meissner <meissner@linux.vnet.ibm.com>
21111
21112 PR target/68404
21113 * config/rs6000/predicates.md (fusion_gpr_addis): Revert
21114 2016-02-09 change.
21115
21116 * config/rs6000/rs6000.md (fusion_gpr_load_<mode>): Remove
21117 earlyclobber from target. Use wF constraint for fused memory
21118 address.
21119 (fusion_gpr_<P:mode>_<GPR_FUSION:mode>_load): Likewise.
21120
21121 2016-02-18 Jakub Jelinek <jakub@redhat.com>
21122 Martin Liska <mliska@suse.cz>
21123
21124 PR sanitizer/69863
21125 * cfgexpand.c (asan_sanitize_stack_p): New function.
21126 (partition_stack_vars): Use the function.
21127 (expand_stack_vars): Likewise.
21128 (defer_stack_allocation): Likewise.
21129 (expand_used_vars): Likewise.
21130
21131 2016-02-18 Richard Biener <rguenther@suse.de>
21132
21133 PR middle-end/69553
21134 * fold-const.c (operand_equal_p): Properly compare offsets for
21135 IMAGPART_EXPR and ARRAY_REF.
21136
21137 2016-02-18 Nick Clifton <nickc@redhat.com>
21138
21139 PR target/62254
21140 PR target/69610
21141 * config/arm/arm.c (arm_option_override_internal): Disable
21142 interworking if the target does not support thumb instructions.
21143 (arm_reload_in_hi): Handle the case where a register to register
21144 move needs reloading because there is no simple pattern to handle
21145 it.
21146 (arm_reload_out_hi): Likewise.
21147
21148 2016-02-18 Richard Biener <rguenther@suse.de>
21149
21150 PR middle-end/69854
21151 * match.pd: Don't use fold_binary or fold_unary for folding
21152 constants.
21153
21154 2016-02-17 Jakub Jelinek <jakub@redhat.com>
21155
21156 PR c++/69850
21157 * gimplify.c (gimplify_cond_expr): Call gimple_set_no_warning
21158 on the cond_stmt from TREE_NO_WARNING on COND_EXPR_COND.
21159 * gimple-ssa-nonnull-compare.c (do_warn_nonnull_compare): Don't
21160 warn on gimple_no_warning_p statements.
21161
21162 2016-02-17 Jonathan Wakely <jwakely@redhat.com>
21163
21164 * doc/extend.texi (C++ Attributes): Correct description of
21165 warn_unused type attribute.
21166
21167 2016-02-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
21168
21169 * config/rs6000/altivec.md (*altivec_lvxl_<mode>_internal): Output
21170 correct instruction.
21171
21172 2016-02-17 Richard Biener <rguenther@suse.de>
21173
21174 PR rtl-optimization/69609
21175 * bb-reorder.c (struct bbro_basic_block_data): Add priority member.
21176 (find_traces_1_round): When ending a trace update cached priority
21177 of successors.
21178 (bb_to_key): Use cached priority when available.
21179 (copy_bb): Initialize cached priority.
21180 (reorder_basic_blocks_software_trace_cache): Likewise.
21181
21182 2016-02-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
21183
21184 PR target/69161
21185 * config/aarch64/predicates.md (aarch64_comparison_operator_mode):
21186 New predicate.
21187 (aarch64_comparison_operator): Break overly long line into two.
21188 (aarch64_comparison_operation): Likewise.
21189 * config/aarch64/aarch64.md (cstorecc4): Use
21190 aarch64_comparison_operator_mode instead of
21191 aarch64_comparison_operator.
21192 (cstore<mode>4): Likewise.
21193 (aarch64_cstore<mode>): Likewise.
21194 (*cstoresi_insn_uxtw): Likewise.
21195 (cstore<mode>_neg): Likewise.
21196 (*cstoresi_neg_uxtw): Likewise.
21197
21198 2016-02-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
21199
21200 PR target/69161
21201 * config/arm/predicates.md (arm_comparison_operator_mode):
21202 New predicate.
21203 * config/arm/arm.md (*mov_scc): Use arm_comparison_operator_mode
21204 instead of arm_comparison_operator.
21205 (*mov_negscc): Likewise.
21206 (*mov_notscc): Likewise.
21207 * config/arm/thumb2.md (*thumb2_mov_scc): Likewise.
21208 (*thumb2_mov_negscc): Likewise.
21209 (*thumb2_mov_negscc_strict_it): Likewise.
21210 (*thumb2_mov_notscc): Likewise.
21211 (*thumb2_mov_notscc_strict_it): Likewise.
21212
21213 2016-02-17 Wilco Dijkstra <wdijkstr@arm.com>
21214
21215 * config/aarch64/aarch64.c (aarch64_internal_mov_immediate):
21216 Add missing return.
21217
21218 2016-02-17 Eric Botcazou <ebotcazou@adacore.com>
21219
21220 * config/visium/visium.c (machine_libfunc_index): New enum.
21221 (machine_libfuncs): New structure.
21222 (visium_libfuncs): New static variable.
21223 (TARGET_INIT_LIBFUNCS): Define to...
21224 (visium_init_libfuncs): ...this. New function.
21225 (expand_block_move_4): Use the appropriate libfunc.
21226 (expand_block_move_2): Likewise.
21227 (expand_block_move_1): Likewise.
21228 (expand_block_set_4): Likewise.
21229 (expand_block_set_2): Likewise.
21230 (expand_block_set_1): Likewise.
21231 (visium_trampoline_init): Likewise.
21232
21233 2016-02-17 Nick Clifton <nickc@redhat.com>
21234
21235 * config/msp430/msp430.c (msp430_mcu_data): Sync with data from
21236 TI's devices.csv file as of March 2016.
21237
21238 2016-02-16 Kelvin Nilsen <kelvin@gcc.gnu.org>
21239
21240 PR Target/48344
21241 * opts-global.c (handle_common_deferred_options): Introduce and
21242 initialize two global variables to remember command-line options
21243 specifying a stack-limiting register.
21244 * opts.h: Add extern declarations of the two new global variables.
21245 * emit-rtl.c (init_emit_once): Initialize the stack_limit_rtx
21246 variable based on the values of the two new global variables.
21247
21248 2016-02-16 Jakub Jelinek <jakub@redhat.com>
21249
21250 PR c/69835
21251 * common.opt (Wnonnull-compare): New warning.
21252 * doc/invoke.texi (-Wnonnull): Remove text about comparison
21253 of arguments against NULL.
21254 (-Wnonnull-compare): Document.
21255 * Makefile.in (OBJS): Add gimple-ssa-nonnull-compare.o.
21256 * tree-pass.h (make_pass_warn_nonnull_compare): Declare.
21257 * passes.def (pass_warn_nonnull_compare): Add.
21258 * gimple-ssa-nonnull-compare.c: New file.
21259
21260 2016-02-16 James Greenhalgh <james.greenhalgh@arm.com>
21261
21262 * config/aarch64/aarch64.c (cortexa57_tunings): Remove
21263 AARCH64_EXTRA_TUNE_RECIP_SQRT.
21264
21265 2016-02-16 James Greenhalgh <james.greenhalgh@arm.com>
21266
21267 * config/aarch64/aarch64.c (use_rsqrt_p): Always use software
21268 reciprocal sqrt for -mlow-precision-recip-sqrt.
21269
21270 2016-02-16 James Greenhalgh <james.greenhalgh@arm.com>
21271 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
21272
21273 * config/aarch64/aarch64.c (aarch64_expand_vector_init): Refactor,
21274 always use lane loads to construct non-constant vectors.
21275
21276 2016-02-16 James Greenhalgh <james.greenhalgh@arm.com>
21277
21278 * config/aarch64/aarch64.md
21279 (arch64_sqrdml<SQRDMLH_AS:rdma_as>h_lane<mode>): Fix register
21280 constraints for operand 3.
21281 (aarch64_sqrdml<SQRDMLH_AS:rdma_as>h_laneq<mode>): Likewise.
21282
21283 2016-02-16 Jakub Jelinek <jakub@redhat.com>
21284 Richard Biener <rguenther@suse.de>
21285
21286 PR tree-optimization/69820
21287 * tree-vect-patterns.c (type_conversion_p): Return false if
21288 *orig_type is unsigned single precision or boolean.
21289 (vect_recog_dot_prod_pattern, vect_recog_widen_mult_pattern):
21290 Formatting fix.
21291
21292 2016-02-16 Jakub Jelinek <jakub@redhat.com>
21293
21294 PR rtl-optimization/69764
21295 PR rtl-optimization/69771
21296 * optabs.c (expand_binop): Ensure for shift optabs invalid CONST_INT
21297 op1 is valid for GET_MODE_INNER (mode) and force it into a reg.
21298
21299 2016-02-16 Richard Biener <rguenther@suse.de>
21300
21301 PR tree-optimization/69776
21302 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Get alias
21303 sets from caller.
21304 (indirect_refs_may_alias_p): Likewise.
21305 (refs_may_alias_p_1): Pass alias sets as from ao_ref.
21306 * tree-ssa-sccvn.c (vn_reference_lookup): Also adjust vr alias-set
21307 according to tbaa_p.
21308 * tree-ssa-dom.c (lookup_avail_expr): Add tbaa_p flag.
21309 (optimize_stmt): For redundant store discovery do not allow tbaa.
21310
21311 2016-02-16 Bernd Schmidt <bschmidt@redhat.com>
21312
21313 PR tree-optimization/69714
21314 * tree-ssa-math-opts.c (find_bswap_or_nop): Revert previous change.
21315 Return NULL if we have irrelevant high bytes on BIG_ENDIAN.
21316
21317 2016-02-16 Claudiu Zissulescu <claziss@synopsys.com>
21318
21319 * config/arc/arc-modes.def (CC_FPU, CC_FPU_UNEQ): New modes.
21320 * config/arc/arc-opts.h (FPU_SP, FPU_SF, FPU_SC, FPU_SD, FPU_DP)
21321 (FPU_DF, FPU_DC, FPU_DD, FXP_DP): Define.
21322 * config/arc/arc.c (arc_init): Check FPU options.
21323 (get_arc_condition_code): Handle new CC_FPU* modes.
21324 (arc_select_cc_mode): Likewise.
21325 (arc_conditional_register_usage): Allow 64 bit datum into even-odd
21326 register pair only. Allow access for ARCv2 accumulator.
21327 (gen_compare_reg): Whenever we have FPU support use FPU compare
21328 instructions.
21329 (arc_reorg): Don't generate brcc insns when FPU compare
21330 instructions are involved.
21331 * config/arc/arc.h (TARGET_DPFP): Add TARGET_FP_DPAX condition.
21332 (TARGET_OPTFPE): Add condition when ARC EM can use optimized
21333 floating point emulation.
21334 (ACC_REG_FIRST, ACC_REG_LAST, ACCL_REGNO, ACCH_REGNO): Define.
21335 (REVERSE_CONDITION): Add new CC_FPU* modes.
21336 (TARGET_FP_SP_BASE): Define.
21337 (TARGET_FP_DP_BASE): Likewise.
21338 (TARGET_FP_SP_FUSED): Likewise.
21339 (TARGET_FP_DP_FUSED): Likewise.
21340 (TARGET_FP_SP_CONV): Likewise.
21341 (TARGET_FP_DP_CONV): Likewise.
21342 (TARGET_FP_SP_SQRT): Likewise.
21343 (TARGET_FP_DP_SQRT): Likewise.
21344 (TARGET_FP_DP_AX): Likewise.
21345 * config/arc/arc.md (ARCV2_ACC): New constant.
21346 (type): New fpu type attribute.
21347 (SDF): Conditional iterator.
21348 (cstore<mode>, cbranch<mode>): Change expand condition.
21349 (addsf3, subsf3, mulsf3, adddf3, subdf3, muldf3): New expands,
21350 handles FPU/FPX cases as well.
21351 * config/arc/arc.opt (mfpu): New option.
21352 * config/arc/fpx.md (addsf3_fpx, subsf3_fpx, mulsf3_fpx):
21353 Renamed.
21354 (adddf3, muldf3, subdf3): Removed.
21355 * config/arc/predicates.md (proper_comparison_operator): Recognize
21356 CC_FPU* modes.
21357 * config/arc/fpu.md: New file.
21358 * doc/invoke.texi (ARC Options): Document mfpu option.
21359
21360 2016-02-16 Richard Biener <rguenther@suse.de>
21361
21362 PR rtl-optimization/69291
21363 * ifcvt.c (noce_try_store_flag_constants): Re-instantiate
21364 noce_operand_ok check.
21365
21366 2016-02-16 Tom de Vries <tom@codesourcery.com>
21367
21368 PR lto/67709
21369 * omp-low.c (simd_clone_create): Remove call to
21370 symtab->call_cgraph_insertion_hooks.
21371
21372 2016-02-16 Jakub Jelinek <jakub@redhat.com>
21373
21374 PR tree-optimization/69802
21375 * tree-ssa-reassoc.c (update_range_test): If op is
21376 SSA_NAME_IS_DEFAULT_DEF, give up unless tem is a positive
21377 op == 1 test of precision 1 integral op, otherwise handle
21378 that case as op itself. Fix up formatting.
21379 (optimize_range_tests_to_bit_test, optimize_range_tests): Fix
21380 up formatting.
21381
21382 2016-02-16 Richard Biener <rguenther@suse.de>
21383
21384 PR tree-optimization/69586
21385 * tree-vrp.c (register_edge_assert_for_2): Handle all integral
21386 types for conversion sources.
21387
21388 2016-02-16 Richard Biener <rguenther@suse.de>
21389
21390 PR middle-end/69801
21391 * fold-const.c (operand_equal_p): For COND_EXPR zero operand
21392 mask OEP_ADDRESS_OF.
21393
21394 2016-02-16 Alan Modra <amodra@gmail.com>
21395
21396 PR target/68973
21397 * config/rs6000/rs6000.md (reload_vsx_from_gprsf): Rewrite splitter.
21398 (p8_mtvsrd_df, p8_mtvsrd_sf): New.
21399 (p8_mtvsrd_1, p8_mtvsrd_2): Delete.
21400 (p8_mtvsrwz): New.
21401 (p8_mtvsrwz_1, p8_mtvsrwz_2): Delete.
21402 (p8_xxpermdi_<mode>): Take two DF inputs rather than one TF.
21403 (p8_fmrgow_<mode>): Likewise.
21404 (reload_vsx_from_gpr<mode>): Make clobber IF. Adjust for above
21405 changes.
21406 (reload_fpr_from_gpr<mode>): Similarly. Use "d" for op0 constraint.
21407 (reload_vsx_from_gprsf): Use p8_mtvsrd_sf rather than attempting
21408 to use movdi_internal64. Remove op0_di.
21409 * config/rs6000/vsx.md (vsx_xscvspdpn_directmove): Make op1 SFmode.
21410
21411 2016-02-15 Evandro Menezes <e.menezes@samsung.com>
21412
21413 Add support for the FCCMP insn types
21414
21415 * config/aarch64/aarch64.md (fccmp): Change insn type.
21416 (fccmpe): Likewise.
21417 * config/aarch64/thunderx.md (thunderx_fcmp): Add "fccmp{s,d}" types.
21418 * config/arm/cortex-a53.md (cortex_a53_fpalu): Likewise.
21419 * config/arm/cortex-a57.md (cortex_a57_fp_cmp): Likewise.
21420 * config/arm/xgene1.md (xgene1_fcmp): Likewise.
21421 * config/arm/exynos-m1.md (exynos_m1_fp_ccmp): New insn reservation.
21422 * config/arm/types.md (fccmps): Add new insn type.
21423 (fccmpd): Likewise.
21424
21425 2016-02-15 Bernd Edlinger <bernd.edlinger@hotmail.de>
21426
21427 * alias.c (get_alias_set): Fix a typo in comment.
21428
21429 2016-02-15 Richard Biener <rguenther@suse.de>
21430
21431 PR tree-optimization/69595
21432 * match.pd: Complete range test simplification to true.
21433
21434 2016-02-15 Bernd Schmidt <bschmidt@redhat.com>
21435
21436 PR rtl-optimization/69648
21437 * lra-constraints.c (update_ebb_live_info): Don't remove sets of
21438 pic_offset_table_rtx.
21439
21440 PR rtl-optimization/69752
21441 * ira.c (update_equiv_regs): When looking for more than a single SET,
21442 also take other side effects into account.
21443
21444 2016-02-15 Marcin Kościelnicki <koriakin@0x04.net>
21445
21446 * config/s390/s390.c (s390_function_profiler): Add a new sequence
21447 for z900+ CPUs in 31-bit mode.
21448
21449 2016-02-15 Marcin Kościelnicki <koriakin@0x04.net>
21450
21451 * common/config/s390/s390-common.c (s390_supports_split_stack):
21452 New function.
21453 (TARGET_SUPPORTS_SPLIT_STACK): New macro.
21454 * config/s390/s390-protos.h: Add s390_expand_split_stack_prologue.
21455 * config/s390/s390.c (struct machine_function): New field
21456 split_stack_varargs_pointer.
21457 (s390_register_info): Mark r12 as clobbered if it'll be used as temp
21458 in s390_emit_prologue.
21459 (s390_emit_prologue): Use r12 as temp if r1 is taken by split-stack
21460 vararg pointer.
21461 (morestack_ref): New global.
21462 (SPLIT_STACK_AVAILABLE): New macro.
21463 (s390_expand_split_stack_prologue): New function.
21464 (s390_live_on_entry): New function.
21465 (s390_va_start): Use split-stack vararg pointer if appropriate.
21466 (s390_asm_file_end): Emit the split-stack note sections.
21467 (TARGET_EXTRA_LIVE_ON_ENTRY): New macro.
21468 * config/s390/s390.md (UNSPEC_STACK_CHECK): New unspec.
21469 (UNSPECV_SPLIT_STACK_CALL): New unspec.
21470 (UNSPECV_SPLIT_STACK_DATA): New unspec.
21471 (split_stack_prologue): New expand.
21472 (split_stack_space_check): New expand.
21473 (split_stack_data): New insn.
21474 (split_stack_call): New expand.
21475 (split_stack_call_*): New insn.
21476 (split_stack_cond_call): New expand.
21477 (split_stack_cond_call_*): New insn.
21478
21479 2016-02-15 Richard Biener <rguenther@suse.de>
21480
21481 PR tree-optimization/69783
21482 * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
21483 Add trivially correct cases.
21484
21485 2016-02-15 Tom de Vries <tom@codesourcery.com>
21486
21487 PR lto/69655
21488 * lto-cgraph.c (input_offload_tables): Add and handle bool parameter
21489 do_force_output.
21490 * lto-streamer.h (input_offload_tables): Add and handle bool parameter.
21491
21492 2016-02-15 Richard Biener <rguenther@suse.de>
21493
21494 PR tree-optimization/69776
21495 * tree-ssa-sccvn.h (vn_reference_lookup): Adjust prototype.
21496 * tree-ssa-sccvn.c (vn_reference_lookup): Add parameter to
21497 indicate whether we can use TBAA to disambiguate against stores.
21498 Use alias-set zero if not.
21499 (visit_reference_op_store): Do not use TBAA when looking up
21500 redundant stores.
21501 * tree-ssa-pre.c (compute_avail): Use TBAA here.
21502 (eliminate_dom_walker::before_dom_children): But not when looking
21503 up redundant stores.
21504
21505 2016-02-14 John David Anglin <danglin@gcc.gnu.org>
21506
21507 * config/pa/pa.md (absqi2, absghi2, bswaphi2, bswapsi2, bswapdi2): New.
21508
21509 2016-02-14 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
21510
21511 * config/i386/znver1.md
21512 (znver1_pop, znver1_pop_mem,
21513 znver1_load_imov_double_store,
21514 znver1_load_imov_direct_store,
21515 znver1_load_imov_direct_load,
21516 znver1_load_imov_double_load): Add new.
21517 (znver1_insn, znver1_insn_load): Add icmov type.
21518 (znver1_sseavx_fma,
21519 znver1_sseavx_fma_load,
21520 znver1_avx256_fma,
21521 znver1_avx256_fma_load): Fix pipe usage.
21522
21523 2016-02-14 Alan Modra <amodra@gmail.com>
21524
21525 PR target/68973
21526 * reload.c (find_reloads_address_1): For pre/post-inc/dec
21527 with an invalid hard reg, reload just the reg not the entire
21528 pre/post-inc/dec address expression.
21529
21530 2016-02-13 Oleg Endo <olegendo@gcc.gnu.org>
21531
21532 PR target/67260
21533 * config/sh/sh.md (sibcall_value_pcrel): Replace =&k scratch reg with
21534 fixed R1_REG scratch reg.
21535 (sibcall_value_pcrel_fdpic): Likewise.
21536
21537 2016-02-13 Oleg Endo <olegendo@gcc.gnu.org>
21538
21539 PR target/67636
21540 PR target/64345
21541 * config/sh/sh.md (*zero_extract_3): New insn_and_split pattern.
21542
21543 2016-02-12 Walter Lee <walt@tilera.com>
21544
21545 * config/tilepro/t-tilepro: Replace CC_FOR_BUILD with CXX_FOR_BUILD.
21546 * config/tilegx/t-tilegx: Likewise.
21547
21548 2016-02-12 David Malcolm <dmalcolm@redhat.com>
21549
21550 PR other/69554
21551 * diagnostic-show-locus.c (struct line_span): New struct.
21552 (layout::get_first_line): Delete.
21553 (layout::get_last_line): Delete.
21554 (layout::get_num_line_spans): New member function.
21555 (layout::get_line_span): Likewise.
21556 (layout::print_heading_for_line_span_index_p): Likewise.
21557 (layout::get_expanded_location): Likewise.
21558 (layout::calculate_line_spans): Likewise.
21559 (layout::m_first_line): Delete.
21560 (layout::m_last_line): Delete.
21561 (layout::m_line_spans): New field.
21562 (layout::layout): Update comment. Replace m_first_line and
21563 m_last_line with m_line_spans, replacing their initialization
21564 with a call to calculate_line_spans.
21565 (diagnostic_show_locus): When printing source lines and
21566 annotations, rather than looping over a single span
21567 of lines, instead loop over each line_span within
21568 the layout, with an inner loop over the lines within them.
21569 Call the context's start_span callback when changing line spans.
21570 * diagnostic.c (diagnostic_initialize): Initialize start_span.
21571 (diagnostic_build_prefix): Break out the building of the location
21572 part of the string into...
21573 (diagnostic_get_location_text): ...this new function, rewriting
21574 it from nested ternary expressions to a sequence of "if"
21575 statements.
21576 (default_diagnostic_start_span_fn): New function.
21577 * diagnostic.h (diagnostic_start_span_fn): New typedef.
21578 (diagnostic_context::start_span): New field.
21579 (default_diagnostic_start_span_fn): New prototype.
21580
21581 2016-02-12 David Malcolm <dmalcolm@redhat.com>
21582
21583 PR driver/69779
21584 * gcc.c (driver::finalize): Fix cleanup of "specs".
21585
21586 2016-02-12 David Malcolm <dmalcolm@redhat.com>
21587
21588 PR driver/69265
21589 PR driver/69453
21590 * gcc.c (driver::driver): Initialize m_option_suggestions.
21591 (driver::~driver): Clean up m_option_suggestions.
21592 (suggest_option): Convert to...
21593 (driver::suggest_option): ...this, and split out into
21594 driver::build_option_suggestions and find_closest_string.
21595 (driver::build_option_suggestions): New function, from
21596 first half of suggest_option. Special-case
21597 OPT_fsanitize_ and OPT_fsanitize_recover_, making use of
21598 the sanitizer_opts array. For options of enum types, add the
21599 various enum values to the candidate strings.
21600 (driver::handle_unrecognized_options): Remove "const".
21601 * gcc.h (driver::handle_unrecognized_options): Likewise.
21602 (driver::build_option_suggestions): New decl.
21603 (driver::suggest_option): New decl.
21604 (driver::m_option_suggestions): New field.
21605 * opts-common.c (add_misspelling_candidates): New function.
21606 * opts.c (sanitizer_opts): Remove decl of struct sanitizer_opts_s
21607 and make non-static.
21608 * opts.h (sanitizer_opts): New array decl.
21609 (add_misspelling_candidates): New function decl.
21610 * spellcheck.c (find_closest_string): New function.
21611 * spellcheck.h (find_closest_string): New function decl.
21612
21613 2016-02-12 Jakub Jelinek <jakub@redhat.com>
21614
21615 PR rtl-optimization/69764
21616 PR rtl-optimization/69771
21617 * optabs.c (expand_binop_directly): For shift_optab_p, force
21618 convert_modes with VOIDmode if xop1 has VOIDmode.
21619
21620 2016-02-12 Ilya Enkovich <enkovich.gnu@gmail.com>
21621
21622 PR target/69729
21623 * lto-streamer-out.c (lto_output): Use thunk.add_pointer_bounds_args
21624 to correctly determine instrumentation thunks.
21625
21626 2016-02-12 Jakub Jelinek <jakub@redhat.com>
21627
21628 PR ipa/69241
21629 * ipa-split.c (split_function): If split part returns TREE_ADDRESSABLE
21630 type by reference, force lhs on the call.
21631
21632 PR ipa/68672
21633 * ipa-split.c (split_function): Don't compute/use main_part_return_p.
21634 Compute retval and retbnd early in all cases if split_part_return_p
21635 and return_bb is not EXIT. Remove all clobber stmts and reset
21636 all debug stmts that refer to SSA_NAMEs defined in split part,
21637 except if it is retval, in that case replace the old retval with the
21638 lhs of the call to the split part.
21639
21640 2016-02-12 Kugan Vivekanandarajah <kuganv@linaro.org>
21641
21642 revert:
21643 2016-02-12 Kugan Vivekanandarajah <kuganv@linaro.org>
21644
21645 PR middle-end/66726
21646 * tree-ssa-reassoc.c (optimize_range_tests): Handle tcc_compare stmt
21647 whose result is used in PHI.
21648 (maybe_optimize_range_tests): Likewise.
21649 (final_range_test_p): Likweise.
21650
21651 2016-02-12 Kugan Vivekanandarajah <kuganv@linaro.org>
21652
21653 PR middle-end/66726
21654 * tree-ssa-reassoc.c (optimize_range_tests): Handle tcc_compare stmt
21655 whose result is used in PHI.
21656 (maybe_optimize_range_tests): Likewise.
21657 (final_range_test_p): Likweise.
21658
21659 2016-02-12 Jakub Jelinek <jakub@redhat.com>
21660
21661 * cgraph.c: Spelling fixes - behaviour -> behavior and
21662 neighbour -> neighbor.
21663 * target.def: Likewise.
21664 * sel-sched.c: Likewise.
21665 * config/mips/mips.c: Likewise.
21666 * config/arc/arc.md: Likewise.
21667 * config/arm/cortex-a57.md: Likewise.
21668 * config/arm/arm.c: Likewise.
21669 * config/arm/neon.md: Likewise.
21670 * config/arm/arm-c.c: Likewise.
21671 * config/vms/vms-c.c: Likewise.
21672 * config/s390/s390.c: Likewise.
21673 * config/i386/znver1.md: Likewise.
21674 * config/i386/i386.c: Likewise.
21675 * config/ia64/hpux-unix2003.h: Likewise.
21676 * config/msp430/msp430.md: Likewise.
21677 * config/rx/rx.c: Likewise.
21678 * config/rx/rx.md: Likewise.
21679 * config/aarch64/aarch64-simd.md: Likewise.
21680 * config/aarch64/aarch64.c: Likewise.
21681 * config/nvptx/nvptx.c: Likewise.
21682 * config/bfin/bfin.c: Likewise.
21683 * config/cris/cris.opt: Likewise.
21684 * config/rs6000/rs6000.c: Likewise.
21685 * target.h: Likewise.
21686 * spellcheck.c: Likewise.
21687 * ira-build.c: Likewise.
21688 * tree-inline.c: Likewise.
21689 * builtins.c: Likewise.
21690 * lra-constraints.c: Likewise.
21691 * explow.c: Likewise.
21692 * hwint.h: Likewise.
21693 * targhooks.c: Likewise.
21694 * tree-vect-data-refs.c: Likewise.
21695 * expr.c: Likewise.
21696 * doc/tm.texi: Likewise.
21697 * doc/extend.texi: Likewise.
21698 * doc/install.texi: Likewise.
21699 * doc/md.texi: Likewise.
21700 * tree-ssa-tail-merge.c: Likewise.
21701 * sched-int.h: Likewise.
21702 * match.pd: Likewise.
21703 * sched-ebb.c: Likewise.
21704 * target.def (omit_struct_return_reg): Likewise.
21705 * gimple-ssa-isolate-paths.c: Likewise.
21706 (find_implicit_erroneous_behaviour): Renamed to...
21707 (find_implicit_erroneous_behavior): ... this.
21708 (find_explicit_erroneous_behaviour): Renamed to...
21709 (find_explicit_erroneous_behavior): ... this.
21710 (gimple_ssa_isolate_erroneous_paths): Adjust caller.
21711
21712 2016-02-11 Segher Boessenkool <segher@kernel.crashing.org>
21713
21714 PR rtl-optimization/64682
21715 PR rtl-optimization/69567
21716 PR rtl-optimization/69737
21717 * combine.c (distribute_notes) <REG_DEAD>: If the register is set
21718 in I2 as well, just lose it.
21719
21720 2016-02-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
21721
21722 * config/aarch64/aarch64.c (aarch64_last_printed_arch_string):
21723 New variable.
21724 (aarch64_last_printed_tune_string): Likewise.
21725 (aarch64_declare_function_name): Only output .arch assembler
21726 directive if it will be different from the previously output
21727 directive. Same for .tune comment but only if -dA is set.
21728 (aarch64_start_file): New function.
21729 (TARGET_ASM_FILE_START): Define.
21730
21731 2016-02-11 David Malcolm <dmalcolm@redhat.com>
21732
21733 PR plugins/69758
21734 * Makefile.in (PLUGIN_HEADERS): Add params.list.
21735
21736 2016-02-11 Jakub Jelinek <jakub@redhat.com>
21737
21738 PR target/65313
21739 * tree-vect-slp.c (vect_schedule_slp_instance): Avoid
21740 -Wmaybe-uninitialized warning.
21741
21742 2016-02-11 Oleg Endo <olegendo@gcc.gnu.org>
21743
21744 PR target/69713
21745 * config/sh/sh.md (casesi_worker_0): Add T_REG use.
21746
21747 2016-02-11 Richard Biener <rguenther@suse.de>
21748
21749 PR rtl-optimization/69291
21750 * ifcvt.c (noce_try_store_flag_constants): Do not allow
21751 subexpressions affected by changing the result.
21752
21753 2016-02-10 Vladimir Makarov <vmakarov@redhat.com>
21754
21755 PR target/69148
21756 * lra-constraints.c (curr_insn_transform): Find in/out operands
21757 for secondary memory moves. Update dups.
21758
21759 2016-02-10 Yuri Rumyantsev <ysrumyan@gmail.com>
21760
21761 PR tree-optimization/69652
21762 * tree-vect-loop.c (optimize_mask_stores): Move declaration of STMT1
21763 to nested loop, did source re-formatting, skip debug statements,
21764 add check on statement with volatile operand, remove dead scalar
21765 statements.
21766
21767 2016-02-10 Jakub Jelinek <jakub@redhat.com>
21768 Patrick Palka <ppalka@gcc.gnu.org>
21769
21770 PR ipa/69241
21771 PR c++/69649
21772 * gimplify.c (gimplify_modify_expr): Set lhs even for noreturn
21773 calls if the return type is TREE_ADDRESSABLE.
21774 * cgraphunit.c (cgraph_node::expand_thunk): Likewise.
21775 * ipa-split.c (split_function): Fix doubled "we" in comment.
21776 Use void return type for the split part even if
21777 !split_point->split_part_set_retval.
21778
21779 2016-02-10 Bin Cheng <bin.cheng@arm.com>
21780
21781 PR tree-optimization/68021
21782 * tree-ssa-loop-ivopts.c (get_computation_aff): Set ratio to 1 if
21783 when computing the value of biv cand by itself.
21784
21785 2016-02-10 Wilco Dijkstra <wdijkstr@arm.com>
21786
21787 * config/aarch64/aarch64.c (cortexa53_tunings): Enable AES fusion.
21788 (cortexa57_tunings): Likewise.
21789 (cortexa72_tunings): Likewise.
21790 (arch_macro_fusion_pair_p): Add support for AES fusion.
21791 * config/aarch64/aarch64-fusion-pairs.def: Add AES_AESMC entry.
21792 * config/arm/aarch-common.c (aarch_crypto_can_dual_issue):
21793 Allow virtual registers before reload so early scheduling works.
21794 * config/arm/cortex-a57.md (cortex_a57_crypto_simple): Use
21795 correct latency and pipeline.
21796 (cortex_a57_crypto_complex): Likewise.
21797 (cortex_a57_crypto_xor): Likewise.
21798 (define_bypass): Add AES bypass.
21799
21800 2016-02-10 Richard Biener <rguenther@suse.de>
21801
21802 PR tree-optimization/69726
21803 * passes.def: Add DCE pass before late uninit.
21804 * match.pd: Add A ? B : (!A ? C : X) -> A ? B : C patterns to
21805 really fixup if-conversions job.
21806
21807 2016-02-10 Wilco Dijkstra <wdijkstr@arm.com>
21808
21809 * config/arm/arm.c (arm_cortex_a53_tune): Enable AES fusion.
21810 (arm_cortex_a57_tune): Likewise.
21811 (aarch_macro_fusion_pair_p): Add support for AES fusion.
21812 * config/arm/arm-protos.h (fuse_ops): Add FUSE_AES_AESMC.
21813
21814 2016-02-10 Eric Botcazou <ebotcazou@adacore.com>
21815
21816 * timevar.def (TV_PHASE_DBGINFO): Delete.
21817 (TV_PHASE_CHECK_DBGINFO): Likewise.
21818 * varpool.c (varpool_node::assemble_decl): Do not change timevar.
21819
21820 2016-02-10 Richard Biener <rguenther@suse.de>
21821
21822 PR tree-optimization/69719
21823 * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
21824 Adjust previous fix by ensuring that dr_a1 is left of dr_a2.
21825
21826 2016-02-09 Andrew Pinski <apinski@cavium.com>
21827
21828 PR tree-opt/69282
21829 * optabs-tree.c (expand_vec_cond_expr_p): Don't early return if
21830 get_vcond_mask_icode returns false.
21831
21832 2016-02-09 Michael Meissner <meissner@linux.vnet.ibm.com>
21833
21834 PR target/68404
21835 * config/rs6000/predicates.md (fusion_gpr_addis): Prevent fusing
21836 an ADDIS that adds a pointer to a large constant that sets the
21837 upper16 bits with a load operation.
21838
21839 2016-02-09 Charles Baylis <charles.baylis@linaro.org>
21840
21841 PR target/68532
21842 * config/arm/arm.c (arm_evpc_neon_vzip): Allow for big endian lane
21843 order.
21844 * config/arm/arm_neon.h (vzipq_s8): Adjust shuffle patterns for big
21845 endian.
21846 (vzipq_s16): Likewise.
21847 (vzipq_s32): Likewise.
21848 (vzipq_f32): Likewise.
21849 (vzipq_u8): Likewise.
21850 (vzipq_u16): Likewise.
21851 (vzipq_u32): Likewise.
21852 (vzipq_p8): Likewise.
21853 (vzipq_p16): Likewise.
21854
21855 2016-02-09 Charles Baylis <charles.baylis@linaro.org>
21856
21857 PR target/68532
21858 * config/arm/arm.c (neon_endian_lane_map): New function.
21859 (neon_vector_pair_endian_lane_map): New function.
21860 (arm_evpc_neon_vuzp): Allow for big endian lane order.
21861 * config/arm/arm_neon.h (vuzpq_s8): Adjust shuffle patterns for big
21862 endian.
21863 (vuzpq_s16): Likewise.
21864 (vuzpq_s32): Likewise.
21865 (vuzpq_f32): Likewise.
21866 (vuzpq_u8): Likewise.
21867 (vuzpq_u16): Likewise.
21868 (vuzpq_u32): Likewise.
21869 (vuzpq_p8): Likewise.
21870 (vuzpq_p16): Likewise.
21871
21872 2016-02-11 Alexandre Oliva <aoliva@redhat.com>
21873
21874 PR target/69634
21875 * regstat.c (regstat_bb_compute_calls_crossed): Disregard
21876 debug insns.
21877
21878 2016-02-09 Uros Bizjak <ubizjak@gmail.com>
21879
21880 * config/i386/i386.md (insv<mode>_1): Use gen_int_mode to
21881 truncate const_int operand 1 to QImode.
21882
21883 2016-02-09 Eric Botcazou <ebotcazou@adacore.com>
21884
21885 * gimple-ssa-backprop.c (optimize_phi): Do not replace an argument
21886 corresponding to an abnormal edge.
21887
21888 2016-02-09 Tom de Vries <tom@codesourcery.com>
21889
21890 PR tree-optimization/69599
21891 * tree-ssa-structalias.c (fndecl_maybe_in_other_partition): New
21892 function.
21893 (find_func_aliases_for_builtin_call, find_func_clobbers)
21894 (ipa_pta_execute): Handle case that foo and foo._0 are not in same lto
21895 partition.
21896
21897 2016-02-09 Richard Biener <rguenther@suse.de>
21898
21899 PR tree-optimization/69715
21900 * tree-ssa.c (execute_update_addresses_taken): Mark non-decl
21901 LHS on calls as non-rewritable.
21902
21903 2016-02-09 Tom de Vries <tom@codesourcery.com>
21904
21905 PR lto/69707
21906 * lto-wrapper.c (append_diag_options): New function.
21907 (compile_offload_image): Call append_diag_options.
21908
21909 2016-02-08 Sandra Loosemore <sandra@codesourcery.com>
21910
21911 PR other/69722
21912 * doc/extend.texi (Flag Output Operands): Correct sectioning.
21913 Minor copy-edit to fix verb tenses.
21914
21915 2016-02-08 Jakub Jelinek <jakub@redhat.com>
21916
21917 PR tree-optimization/69209
21918 * ipa-split.c (split_function): If split part is not
21919 returning retval, retval has gimple type but is not
21920 gimple value, force it into a SSA_NAME first.
21921
21922 2016-02-08 Nicklas Bo Jensen <nbjensen@gmail.com>
21923
21924 * doc/tree-ssa.texi (Preserving the virtual SSA form): Remove
21925 outdated section.
21926
21927 2016-02-08 Jason Merrill <jason@redhat.com>
21928
21929 PR c++/69631
21930 * convert.c (convert_to_integer_1): Check dofold on truncation
21931 distribution.
21932 (convert_to_pointer_maybe_fold, convert_to_real_maybe_fold)
21933 (convert_to_integer_maybe_fold, convert_to_complex_maybe_fold):
21934 Rename from *_nofold.
21935 * convert.h (convert_to_pointer_nofold, convert_to_integer_nofold)
21936 (convert_to_real_nofold, convert_to_complex_nofold): New inlines.
21937
21938 2016-02-08 Bernd Schmidt <bschmidt@redhat.com>
21939
21940 PR target/60410
21941 * tree.c (build_common_tree_nodes): Remove short_double argument.
21942 All callers changed.
21943 * tree.h (build_common_tree_nodes): Adjust declaration.
21944 * doc/invoke.texi (-fshort-double): Remove documentation.
21945 * config/mips/t-img-elf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
21946 MULTILIB_EXCEPTIONS): Remove -fshort-double variant.
21947 * lto-wrapper.c (merge_and_complain, append_compiler_options)
21948 (append_linker_options): Don't handle OPT_fshort_double.
21949
21950 PR rtl-optimization/68730
21951 * lra-remat.c (insn_to_cand_activation): New static variable.
21952 (lra_remat): Allocate and free it.
21953 (create_cand): New arg activation. Initialize a field in
21954 insn_to_cand_activation if it is nonnull.
21955 (create_cands): Pass the activation insn to create_cand when making
21956 a candidate involving an output reload. Reorganize code a little.
21957 (do_remat): Keep track of active status of candidates in a separate
21958 bitmap.
21959
21960 2016-02-08 Richard Biener <rguenther@suse.de>
21961
21962 PR tree-optimization/69719
21963 * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
21964 Properly use absolute of the difference of the two offsets to
21965 compare or adjust the segment length.
21966
21967 2016-02-08 Richard Biener <rguenther@suse.de>
21968 Jeff Law <law@redhat.com>
21969
21970 PR target/68273
21971 * tree-ssanames.c (make_ssa_name_fn): Always use unqualified
21972 types for anonymous SSA names.
21973
21974 2016-02-08 Richard Biener <rguenther@suse.de>
21975
21976 PR rtl-optimization/69274
21977 * ira.c (ira_setup_alts): Do not change recog_data.operand order.
21978
21979 2016-02-08 Jeff Law <law@redhat.com>
21980
21981 PR tree-optimization/65917
21982 * tree-ssa-dom.c (record_temporary_equivalences): Record both
21983 equivalences from if (x == y) style conditionals.
21984 (loop_depth_of_name): Remove.
21985 (record_equality): Remove loop depth check.
21986 * tree-ssa-scopedtables.h (const_and_copies): Refine comments.
21987 (const_and_copies::record_const_or_copy_raw): New member function.
21988 * tree-ssa-scopedtables.c
21989 (const_and_copies::record_const_or_copy_raw): New, factored out of
21990 (const_and_copies::record_const_or_copy): Call new member function.
21991
21992 2016-02-05 Jeff Law <law@redhat.com>
21993
21994 PR tree-optimization/68541
21995 * gimple-ssa-split-paths.c: Include tree-cfg.h and params.h.
21996 (count_stmts_in_block): New function.
21997 (poor_ifcvt_candidate_code): Likewise.
21998 (is_feasible_trace): Add some heuristics to determine when path
21999 splitting is profitable.
22000 (find_block_to_duplicate_for_splitting_paths): Make sure the graph
22001 is a diamond with a single exit.
22002
22003 2016-02-05 Martin Sebor <msebor@redhat.com>
22004
22005 PR c++/69662
22006 * doc/invoke.texi: Update -Wplacement-new to take an optional
22007 argument.
22008
22009 2016-02-06 Richard Henderson <rth@redhat.com>
22010
22011 PR c/69643
22012 * tree.c (tree_nop_conversion_p): Do not strip casts into or
22013 out of non-standard address spaces.
22014
22015 2016-02-05 Jakub Jelinek <jakub@redhat.com>
22016
22017 PR rtl-optimization/69691
22018 * lra-eliminations.c (move_plus_up): Don't add the addend twice.
22019
22020 2016-02-05 Pat Haugen <pthaugen@us.ibm.com>
22021
22022 * config/rs6000/crypto.md (crypto_vpermxor_<mode>): Correct insn type.
22023 * config/rs6000/rs6000.md (mov<mode>_hardfloat): Likewise.
22024 (*ieee128_mfvsrd_64bit): Likewise.
22025 (*ieee128_mfvsrd_32bit): Likewise.
22026
22027 2016-02-05 Ilya Enkovich <enkovich.gnu@gmail.com>
22028
22029 PR target/69369
22030 Revert r232560:
22031 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
22032
22033 * cgraphunit.c (cgraph_node::reset): Clear thunk info and
22034 instrumented_version.
22035
22036 2016-01-05 Jeremy Bennett <jeremy.bennett@embecosm.com>
22037
22038 * doc/invoke.texi (Optimize Options): In table of --param options
22039 rename second occurrence of tracer-min-branch-ratio to
22040 tracer-min-branch-probability, rename
22041 tracer-min-branch-ratio-feedback to
22042 tracer-min-branch-probability-feedback and clarify description,
22043 rename sched-spec-state-edge-prob-cutoff to
22044 sched-state-edge-prob-cutoff, rename selsched-max-insns-to-rename
22045 to selsched-insns-to-rename, rename lto-minpartition to
22046 lto-min-partition, delete reorder-blocks-duplicate and
22047 reorder-blocks-duplicate-feedback.
22048
22049 2016-02-05 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
22050
22051 * config/s390/s390.c (s390_register_info_set_ranges): Remove
22052 superfluous loops.
22053
22054 2016-02-05 Dominik Vogt <vogt@linux.vnet.ibm.com>
22055
22056 * doc/extend.texi: S/390: Correct some typos.
22057
22058 2016-02-05 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
22059
22060 * config/s390/s390.c (s390_emit_call): Add missing 64 bit check.
22061
22062 2016-02-05 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
22063
22064 PR target/69625
22065 * config/s390/s390.c (SAVE_SLOT_NONE, SAVE_SLOT_STACK): New defines.
22066 (s390_register_info_gprtofpr): Use new macros above.
22067 (s390_register_info_stdarg_fpr): Adjust max_fpr to better match
22068 its name.
22069 (s390_register_info_stdarg_gpr): Adjust max_gpr to better match
22070 its name. Adjust restore and save gpr ranges.
22071 (s390_register_info_set_ranges): New function.
22072 (s390_register_info): Use new macros above. Call
22073 s390_register_info_set_ranges.
22074 (s390_optimize_register_info): Likewise.
22075 (s390_hard_regno_rename_ok): Use new macros.
22076 (s390_hard_regno_scratch_ok): Likewise.
22077 (s390_emit_epilogue): Likewise.
22078 (s390_can_use_return_insn): Likewise.
22079 (s390_optimize_prologue): Likewise.
22080 * config/s390/s390.md (GPR2_REGNUM, GPR6_REGNUM): New constants.
22081
22082 2016-02-05 Jakub Jelinek <jakub@redhat.com>
22083
22084 PR bootstrap/69677
22085 * config/i386/i386.c (convert_scalars_to_vector): Readd stack
22086 alignment fixes.
22087 (ix86_option_override_internal): Disable TARGET_STV even for
22088 -m{incoming,preferred}-stack-boundary=3.
22089
22090 2016-02-03 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
22091
22092 * config.gcc: Mark deprecated rtems targets as obsolete.
22093
22094 2016-02-04 Segher Boessenkool <segher@kernel.crashing.org>
22095
22096 PR rtl-optimization/64682
22097 PR rtl-optimization/69567
22098 * combine.c (distribute_notes) <REG_DEAD>: Place the death note
22099 before I2 only if the register is both used and set in I2.
22100
22101 2016-02-04 DJ Delorie <dj@redhat.com>
22102
22103 * config/msp430/msp430.c (msp430_start_function): Add function type.
22104
22105 2016-02-04 Jakub Jelinek <jakub@redhat.com>
22106
22107 PR fortran/69368
22108 * tree-dfa.c (get_ref_base_and_extent): Remove unreachable code.
22109
22110 2016-02-04 Uros Bizjak <ubizjak@gmail.com>
22111
22112 PR rtl-optimization/69577
22113 Revert:
22114 2015-10-29 Richard Henderson <rth@redhat.com>
22115
22116 PR target/68124
22117 PR rtl-opt/67609
22118 * config/i386/i386.c (ix86_cannot_change_mode_class): Tighten
22119 sse check to the exact conditions of PR 67609.
22120
22121 2016-02-04 Michael Meissner <meissner@linux.vnet.ibm.com>
22122
22123 PR target/69667
22124 * config/rs6000/rs6000.md (mov<mode>_64bit_dm): Use 'd' constraint
22125 instead of 'ws', and 'wh' instead of 'wm' since TFmode/IFmode are
22126 not allowed into the traditional Altivec registers.
22127 (movtd_64bit_nodm): Likewise.
22128 (mov<mode>_32bit, FMOVE128_FPR iterator): Likewise.
22129
22130 2016-02-04 David Malcolm <dmalcolm@redhat.com>
22131
22132 * config/aarch64/cortex-a57-fma-steering.c
22133 (aarch64_register_fma_steering): Remove "static" from arguments
22134 to register_pass.
22135
22136 2016-02-04 Wilco Dijkstra <wdijkstr@arm.com>
22137
22138 PR target/69619
22139 * ccmp.c (expand_ccmp_expr_1): Avoid evaluating gs0/gs1
22140 twice when complex.
22141
22142 2016-02-04 Mike Frysinger <vapier@gentoo.org>
22143
22144 * doc/invoke.texi: Delete -mno-fma4.
22145
22146 2016-02-04 Richard Sandiford <richard.sandiford@arm.com>
22147
22148 PR rtl-optimization/69577
22149 * reginfo.c (record_subregs_of_mode): Add a partial_def parameter.
22150 (find_subregs_of_mode): Update accordingly. Iterate over partial
22151 definitions.
22152
22153 2016-02-04 Alan Lawrence <alan.lawrence@arm.com>
22154
22155 * config/arm/arm-protos.h (neon_reinterpret): Remove.
22156 * config/arm/arm.c (neon_reinterpret): Remove.
22157 * config/arm/arm_neon_builtins.def (vreinterpretv8qi, vreinterpretv4hi,
22158 vreinterpretv2si, vreinterpretv2sf, vreinterpretdi, vreinterpretv16qi,
22159 vreinterpretv8hi, vreinterpretv4si, vreinterpretv4sf, vreinterpretv2di,
22160 vreinterpretti): Remove.
22161 * config/arm/neon.md (neon_vreinterpretv8qi<mode>,
22162 neon_vreinterpretv4hi<mode>, neon_vreinterpretv2si<mode>,
22163 neon_vreinterpretv2sf<mode>, neon_vreinterpretdi<mode>,
22164 neon_vreinterpretti<mode>, neon_vreinterpretv16qi<mode>,
22165 neon_vreinterpretv8hi<mode>, neon_vreinterpretv4si<mode>,
22166 neon_vreinterpretv4sf<mode>, neon_vreinterpretv2di<mode>): Remove.
22167 * config/arm/arm_neon.h (vreinterpret_p8_p16, vreinterpret_p8_f32,
22168 vreinterpret_p8_p64, vreinterpret_p8_s64, vreinterpret_p8_u64,
22169 vreinterpret_p8_s8, vreinterpret_p8_s16, vreinterpret_p8_s32,
22170 vreinterpret_p8_u8, vreinterpret_p8_u16, vreinterpret_p8_u32,
22171 vreinterpret_p16_p8, vreinterpret_p16_f32, vreinterpret_p16_p64,
22172 vreinterpret_p16_s64, vreinterpret_p16_u64, vreinterpret_p16_s8,
22173 vreinterpret_p16_s16, vreinterpret_p16_s32, vreinterpret_p16_u8,
22174 vreinterpret_p16_u16, vreinterpret_p16_u32, vreinterpret_f32_p8,
22175 vreinterpret_f32_p16, vreinterpret_f32_p64, vreinterpret_f32_s64,
22176 vreinterpret_f32_u64, vreinterpret_f32_s8, vreinterpret_f32_s16,
22177 vreinterpret_f32_s32, vreinterpret_f32_u8, vreinterpret_f32_u16,
22178 vreinterpret_f32_u32, vreinterpret_p64_p8, vreinterpret_p64_p16,
22179 vreinterpret_p64_f32, vreinterpret_p64_s64, vreinterpret_p64_u64,
22180 vreinterpret_p64_s8, vreinterpret_p64_s16, vreinterpret_p64_s32,
22181 vreinterpret_p64_u8, vreinterpret_p64_u16, vreinterpret_p64_u32,
22182 vreinterpret_s64_p8, vreinterpret_s64_p16, vreinterpret_s64_f32,
22183 vreinterpret_s64_p64, vreinterpret_s64_u64, vreinterpret_s64_s8,
22184 vreinterpret_s64_s16, vreinterpret_s64_s32, vreinterpret_s64_u8,
22185 vreinterpret_s64_u16, vreinterpret_s64_u32, vreinterpret_u64_p8,
22186 vreinterpret_u64_p16, vreinterpret_u64_f32, vreinterpret_u64_p64,
22187 vreinterpret_u64_s64, vreinterpret_u64_s8, vreinterpret_u64_s16,
22188 vreinterpret_u64_s32, vreinterpret_u64_u8, vreinterpret_u64_u16,
22189 vreinterpret_u64_u32, vreinterpret_s8_p8, vreinterpret_s8_p16,
22190 vreinterpret_s8_f32, vreinterpret_s8_p64, vreinterpret_s8_s64,
22191 vreinterpret_s8_u64, vreinterpret_s8_s16, vreinterpret_s8_s32,
22192 vreinterpret_s8_u8, vreinterpret_s8_u16, vreinterpret_s8_u32,
22193 vreinterpret_s16_p8, vreinterpret_s16_p16, vreinterpret_s16_f32,
22194 vreinterpret_s16_p64, vreinterpret_s16_s64, vreinterpret_s16_u64,
22195 vreinterpret_s16_s8, vreinterpret_s16_s32, vreinterpret_s16_u8,
22196 vreinterpret_s16_u16, vreinterpret_s16_u32, vreinterpret_s32_p8,
22197 vreinterpret_s32_p16, vreinterpret_s32_f32, vreinterpret_s32_p64,
22198 vreinterpret_s32_s64, vreinterpret_s32_u64, vreinterpret_s32_s8,
22199 vreinterpret_s32_s16, vreinterpret_s32_u8, vreinterpret_s32_u16,
22200 vreinterpret_s32_u32, vreinterpret_u8_p8, vreinterpret_u8_p16,
22201 vreinterpret_u8_f32, vreinterpret_u8_p64, vreinterpret_u8_s64,
22202 vreinterpret_u8_u64, vreinterpret_u8_s8, vreinterpret_u8_s16,
22203 vreinterpret_u8_s32, vreinterpret_u8_u16, vreinterpret_u8_u32,
22204 vreinterpret_u16_p8, vreinterpret_u16_p16, vreinterpret_u16_f32,
22205 vreinterpret_u16_p64, vreinterpret_u16_s64, vreinterpret_u16_u64,
22206 vreinterpret_u16_s8, vreinterpret_u16_s16, vreinterpret_u16_s32,
22207 vreinterpret_u16_u8, vreinterpret_u16_u32, vreinterpret_u32_p8,
22208 vreinterpret_u32_p16, vreinterpret_u32_f32, vreinterpret_u32_p64,
22209 vreinterpret_u32_s64, vreinterpret_u32_u64, vreinterpret_u32_s8,
22210 vreinterpret_u32_s16, vreinterpret_u32_s32, vreinterpret_u32_u8,
22211 vreinterpret_u32_u16, vreinterpretq_p8_p16, vreinterpretq_p8_f32,
22212 vreinterpretq_p8_p64, vreinterpretq_p8_p128, vreinterpretq_p8_s64,
22213 vreinterpretq_p8_u64, vreinterpretq_p8_s8, vreinterpretq_p8_s16,
22214 vreinterpretq_p8_s32, vreinterpretq_p8_u8, vreinterpretq_p8_u16,
22215 vreinterpretq_p8_u32, vreinterpretq_p16_p8, vreinterpretq_p16_f32,
22216 vreinterpretq_p16_p64, vreinterpretq_p16_p128, vreinterpretq_p16_s64,
22217 vreinterpretq_p16_u64, vreinterpretq_p16_s8, vreinterpretq_p16_s16,
22218 vreinterpretq_p16_s32, vreinterpretq_p16_u8, vreinterpretq_p16_u16,
22219 vreinterpretq_p16_u32, vreinterpretq_f32_p8, vreinterpretq_f32_p16,
22220 vreinterpretq_f32_p64, vreinterpretq_f32_p128, vreinterpretq_f32_s64,
22221 vreinterpretq_f32_u64, vreinterpretq_f32_s8, vreinterpretq_f32_s16,
22222 vreinterpretq_f32_s32, vreinterpretq_f32_u8, vreinterpretq_f32_u16,
22223 vreinterpretq_f32_u32, vreinterpretq_p64_p8, vreinterpretq_p64_p16,
22224 vreinterpretq_p64_f32, vreinterpretq_p64_p128, vreinterpretq_p64_s64,
22225 vreinterpretq_p64_u64, vreinterpretq_p64_s8, vreinterpretq_p64_s16,
22226 vreinterpretq_p64_s32, vreinterpretq_p64_u8, vreinterpretq_p64_u16,
22227 vreinterpretq_p64_u32, vreinterpretq_p128_p8, vreinterpretq_p128_p16,
22228 vreinterpretq_p128_f32, vreinterpretq_p128_p64, vreinterpretq_p128_s64,
22229 vreinterpretq_p128_u64, vreinterpretq_p128_s8, vreinterpretq_p128_s16,
22230 vreinterpretq_p128_s32, vreinterpretq_p128_u8, vreinterpretq_p128_u16,
22231 vreinterpretq_p128_u32, vreinterpretq_s64_p8, vreinterpretq_s64_p16,
22232 vreinterpretq_s64_f32, vreinterpretq_s64_p64, vreinterpretq_s64_p128,
22233 vreinterpretq_s64_u64, vreinterpretq_s64_s8, vreinterpretq_s64_s16,
22234 vreinterpretq_s64_s32, vreinterpretq_s64_u8, vreinterpretq_s64_u16,
22235 vreinterpretq_s64_u32, vreinterpretq_u64_p8, vreinterpretq_u64_p16,
22236 vreinterpretq_u64_f32, vreinterpretq_u64_p64, vreinterpretq_u64_p128,
22237 vreinterpretq_u64_s64, vreinterpretq_u64_s8, vreinterpretq_u64_s16,
22238 vreinterpretq_u64_s32, vreinterpretq_u64_u8, vreinterpretq_u64_u16,
22239 vreinterpretq_u64_u32, vreinterpretq_s8_p8, vreinterpretq_s8_p16,
22240 vreinterpretq_s8_f32, vreinterpretq_s8_p64, vreinterpretq_s8_p128,
22241 vreinterpretq_s8_s64, vreinterpretq_s8_u64, vreinterpretq_s8_s16,
22242 vreinterpretq_s8_s32, vreinterpretq_s8_u8, vreinterpretq_s8_u16,
22243 vreinterpretq_s8_u32, vreinterpretq_s16_p8, vreinterpretq_s16_p16,
22244 vreinterpretq_s16_f32, vreinterpretq_s16_p64, vreinterpretq_s16_p128,
22245 vreinterpretq_s16_s64, vreinterpretq_s16_u64, vreinterpretq_s16_s8,
22246 vreinterpretq_s16_s32, vreinterpretq_s16_u8, vreinterpretq_s16_u16,
22247 vreinterpretq_s16_u32, vreinterpretq_s32_p8, vreinterpretq_s32_p16,
22248 vreinterpretq_s32_f16, vreinterpretq_s32_f32, vreinterpretq_s32_p64,
22249 vreinterpretq_s32_p128, vreinterpretq_s32_s64, vreinterpretq_s32_u64,
22250 vreinterpretq_s32_s8, vreinterpretq_s32_s16, vreinterpretq_s32_u8,
22251 vreinterpretq_s32_u16, vreinterpretq_s32_u32, vreinterpretq_u8_p8,
22252 vreinterpretq_u8_p16, vreinterpretq_u8_f32, vreinterpretq_u8_p64,
22253 vreinterpretq_u8_p128, vreinterpretq_u8_s64, vreinterpretq_u8_u64,
22254 vreinterpretq_u8_s8, vreinterpretq_u8_s16, vreinterpretq_u8_s32,
22255 vreinterpretq_u8_u16, vreinterpretq_u8_u32, vreinterpretq_u16_p8,
22256 vreinterpretq_u16_p16, vreinterpretq_u16_f32, vreinterpretq_u16_p64,
22257 vreinterpretq_u16_p128, vreinterpretq_u16_s64, vreinterpretq_u16_u64,
22258 vreinterpretq_u16_s8, vreinterpretq_u16_s16, vreinterpretq_u16_s32,
22259 vreinterpretq_u16_u8, vreinterpretq_u16_u32, vreinterpretq_u32_p8,
22260 vreinterpretq_u32_p16, vreinterpretq_u32_f32, vreinterpretq_u32_p64,
22261 vreinterpretq_u32_p128, vreinterpretq_u32_s64, vreinterpretq_u32_u64,
22262 vreinterpretq_u32_s8, vreinterpretq_u32_s16, vreinterpretq_u32_s32,
22263 vreinterpretq_u32_u8, vreinterpretq_u32_u16): Rewrite using casts.
22264
22265 2016-02-04 Martin Liska <mliska@suse.cz>
22266
22267 PR sanitizer/69276
22268 * asan.c (has_stmt_been_instrumented_p): Instrument gimple calls
22269 that are gimple_store_p.
22270 (maybe_instrument_call): Likewise.
22271
22272 2016-02-04 Bin Cheng <bin.cheng@arm.com>
22273
22274 * config/aarch64/aarch64.c (aarch64_legitimize_address): Force
22275 register scaling out of memory reference and comment why.
22276
22277 2016-02-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
22278
22279 PR target/65932
22280 PR target/67714
22281 * cse.c (cse_insn): Pass NULL to fold_rtx when initially
22282 folding the source of a SET.
22283
22284 2016-02-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
22285
22286 PR target/65932
22287 PR target/67714
22288 * config/arm/arm.c (arm_new_rtx_costs, MULT case): Properly extract
22289 the operands of the SIGN_EXTENDs from a SMUL[TB][TB] rtx.
22290
22291 2016-02-04 Jim Wilson <jim.wilson@linaro.org>
22292
22293 PR target/65932
22294 PR target/67714
22295 * config/arm/arm.h (PROMOTE_MODE): Don't set UNSIGNEDP for QImode and
22296 HImode.
22297
22298 2016-02-04 Christian Bruel <christian.bruel@st.com>
22299
22300 * config/arm/arm-c.c (arm_reset_previous_fndecl): Style fix and typo.
22301 * config/arm/arm.c (arm_set_current_function): Likewise.
22302
22303 2016-02-04 Jakub Jelinek <jakub@redhat.com>
22304 Ilya Enkovich <enkovich.gnu@gmail.com>
22305 H.J. Lu <hongjiu.lu@intel.com>
22306
22307 PR target/69454
22308 * config/i386/i386.c (convert_scalars_to_vector): Remove
22309 stack alignment fixes.
22310 (ix86_option_override_internal): Disable TARGET_STV if stack
22311 might not be aligned enough.
22312 (ix86_minimum_alignment): Assert that TARGET_STV is false.
22313
22314 2016-02-04 Victoria Stepanyan <victoria.stepanyan@amd.com>
22315
22316 * config/i386/x86-tune.def: Disable default prefetching
22317 for -march=znver1.
22318
22319 2016-02-03 Michael Meissner <meissner@linux.vnet.ibm.com>
22320 Vladimir Makarov <vmakarov@redhat.com>
22321
22322 PR target/69461
22323 * config/rs6000/rs6000.c (rs6000_legitimate_address_p): Fix thinko
22324 in validating fused toc addresses.
22325
22326 2016-02-03 Jakub Jelinek <jakub@redhat.com>
22327
22328 PR c/69627
22329 * diagnostic-show-locus.c (layout::get_state_at_point): Don't read
22330 range->m_caret fields if range->m_show_caret_p is false.
22331
22332 PR target/69644
22333 * config/rs6000/rs6000.c (rs6000_expand_atomic_compare_and_swap):
22334 Force oldval into register if it does not satisfy reg_or_short_operand
22335 predicate. Fix up formatting.
22336
22337 2016-02-03 Vladimir Makarov <vmakarov@redhat.com>
22338 Alexandre Oliva <aoliva@redhat.com>
22339
22340 PR target/69461
22341 * lra-constraints.c (simplify_operand_subreg): Check additionally
22342 address validity after potential reloading.
22343 (process_address_1): Check insns validity. In case of failure do
22344 nothing.
22345
22346 2016-02-03 Kirill Yukhin <kirill.yukhin@intel.com>
22347
22348 PR target/69118
22349 * config/i386/sse.md (define_insn "avx512f_maskcmp<mode>3"):
22350 Fix target.
22351
22352 2016-02-02 Jakub Jelinek <jakub@redhat.com>
22353
22354 * wide-int.cc (canonize_uhwi): New function.
22355 (wi::divmod_internal): Use it.
22356
22357 2016-02-02 James Norris <jnorris@codesourcery.com>
22358
22359 * gimplify.c (omp_notice_variable): Add usage check.
22360
22361 2016-02-02 Alexander Monakov <amonakov@ispras.ru>
22362
22363 * config/nvptx/nvptx.c (nvptx_print_operand): Treat LEU, GEU, LTU, GTU
22364 like LE, GE, LT, GT when emitting relational operator.
22365
22366 2016-02-02 Wilco Dijkstra <wdijkstr@arm.com>
22367
22368 * ira-costs.c (find_costs_and_classes): Add extra argument.
22369 * target.def (ira_change_pseudo_allocno_class): Add parameter.
22370 * targhooks.h (ira_change_pseudo_allocno_class): Likewise.
22371 * targhooks.c (ira_change_pseudo_allocno_class): Likewise.
22372 * config/aarch64/aarch64.c (aarch64_ira_change_pseudo_allocno_class)
22373 Add best_class parameter, and return it if not ALL_REGS.
22374 * config/mips/mips.c (mips_ira_change_pseudo_allocno_class):
22375 Add parameter.
22376 * doc/tm.texi (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS):
22377 Update target hook.
22378
22379 2016-02-02 Wilco Dijkstra <wdijkstr@arm.com>
22380
22381 * config/aarch64/aarch64.c
22382 (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS): New define.
22383 (aarch64_ira_change_pseudo_allocno_class): New function.
22384
22385 2016-02-02 Uros Bizjak <ubizjak@gmail.com>
22386
22387 PR target/67032
22388 * config/i386/i386.c (geode_cost): Increase cost of MMX and SSE moves.
22389
22390 2016-02-02 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
22391
22392 * config/avr/avr.c (avr_option_override): Set
22393 PARAM_ALLOW_STORE_DATA_RACES to 1.
22394
22395 2016-02-02 Richard Biener <rguenther@suse.de>
22396
22397 PR tree-optimization/69595
22398 * match.pd: Add range test simplifications to true/false.
22399
22400 2016-02-02 Thomas Schwinge <thomas@codesourcery.com>
22401
22402 * omp-builtins.def (BUILT_IN_GOACC_HOST_DATA): Remove.
22403 * omp-low.c (expand_omp_target): Use BUILT_IN_GOACC_DATA_START
22404 instead.
22405
22406 2016-02-02 Richard Biener <rguenther@suse.de>
22407
22408 PR tree-optimization/69606
22409 * tree-ssa-math-opts.c (bswap_replace): Clear flow sensitive
22410 info on the result before moving a stmt.
22411
22412 2016-02-02 Yuri Rumyantsev <ysrumyan@gmail.com>
22413
22414 PR middle-end/68542
22415 * config/i386/i386.c (ix86_expand_branch): Add support for conditional
22416 branch with vector comparison.
22417 * config/i386/sse.md (VI48_AVX): New mode iterator.
22418 (define_expand "cbranch<mode>4): Add support for conditional branch
22419 with vector comparison.
22420 * tree-vect-loop.c (optimize_mask_stores): New function.
22421 * tree-vect-stmts.c (vectorizable_mask_load_store): Initialize
22422 has_mask_store field of vect_info.
22423 * tree-vectorizer.c (vectorize_loops): Invoke optimaze_mask_stores for
22424 vectorized loops having masked stores after vec_info destroy.
22425 * tree-vectorizer.h (loop_vec_info): Add new has_mask_store field and
22426 correspondent macros.
22427 (optimize_mask_stores): Add prototype.
22428
22429 2016-02-02 Alan Modra <amodra@gmail.com>
22430
22431 PR target/69548
22432 * config/rs6000/predicates.md (quad_int_reg_operand): Don't
22433 allow subregs.
22434
22435 2016-02-02 Alan Modra <amodra@gmail.com>
22436
22437 PR target/68662
22438 * config/rs6000/rs6000.c (need_toc_init): New var, set it
22439 whenever toc_label_name used.
22440 (rs6000_file_start): Don't set up toc section here,
22441 (rs6000_output_function_epilogue): do so here instead,
22442 (rs6000_xcoff_file_start): and here.
22443 * config/rs6000/rs6000.md (load_toc_aix_si): Set need_toc_init.
22444 (load_toc_aix_di): Likewise.
22445
22446 2016-02-01 Jakub Jelinek <jakub@redhat.com>
22447
22448 PR rtl-optimization/69592
22449 * rtlanal.c (nonzero_bits_binary_arith_p): New inline function.
22450 (cached_nonzero_bits): Use it instead of ARITHMETIC_P.
22451 (num_sign_bit_copies_binary_arith_p): New inline function.
22452 (cached_num_sign_bit_copies): Use it instead of ARITHMETIC_P.
22453
22454 2016-02-01 Jeff Law <law@redhat.com>
22455
22456 PR tree-optimization/69580
22457 * params.def (FSM_MAXIMUM_PHI_ARGUMENTS): New param.
22458 * tree-ssa-threadbackward.c
22459 (fsm_find_control_statement_thread_paths): Do not try to walk
22460 through large PHI nodes.
22461
22462 2016-02-01 Jakub Jelinek <jakub@redhat.com>
22463
22464 * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Return false
22465 when count is incremented above limit, don't analyze further
22466 insns afterwards.
22467
22468 * omp-low.c (oacc_parse_default_dims): Avoid
22469 -Wsign-compare warning, make sure value fits into int
22470 rather than just unsigned int.
22471
22472 2016-02-01 Bin Cheng <bin.cheng@arm.com>
22473
22474 PR tree-optimization/67921
22475 * fold-const.c (split_tree): New parameters. Convert pointer
22476 type variable part to proper type before negating.
22477 (fold_binary_loc): Pass new arguments to split_tree.
22478
22479 2016-02-01 Nathan Sidwell <nathan@codesourcery.com>
22480
22481 * config/nvptx/nvptx.c (PTX_GANG_DEFAULT): New.
22482 (nvptx_goacc_validate_dims): Extend to handle global defaults.
22483 * target.def (OACC_VALIDATE_DIMS): Extend documentation.
22484 * doc/tm.texti: Rebuilt.
22485 * doc/invoke.texi (fopenacc-dim): Document.
22486 * lto-wrapper.c (merge_and_complain): Add OPT_fopenacc_dim_ case.
22487 (append_compiler_options): Likewise.
22488 * omp-low.c (oacc_default_dims, oacc_min_dims): New.
22489 (oacc_parse_default_dims): New.
22490 (oacc_validate_dims): Add USED arg. Select non-unity default when
22491 possible.
22492 (oacc_loop_fixed_partitions): Return mask of used partitions.
22493 (oacc_loop_auto_partitions): Emit dump info.
22494 (oacc_loop_partition): Return mask of used partitions.
22495 (execute_oacc_device_lower): Parse default dimension arg. Adjust
22496 loop partitioning and validation calls.
22497
22498 2016-02-01 Richard Biener <rguenther@suse.de>
22499
22500 PR middle-end/69556
22501 * match.pd: Guard (C1/X)*C2 -> (C1*C2)/X with single_use.
22502
22503 2016-02-01 Richard Biener <rguenther@suse.de>
22504
22505 PR tree-optimization/69574
22506 * tree-chrec.c (hide_evolution_in_other_loops_than_loop): Instead
22507 of asserting return chrec_dont_know.
22508
22509 2016-02-01 Martin Liska <mliska@suse.cz>
22510
22511 * mem-stats-traits.h: Add copyright header.
22512 * mem-stats.h: Likewise.
22513
22514 2016-02-01 Richard Biener <rguenther@suse.de>
22515
22516 PR tree-optimization/69579
22517 * tree-ssa-loop-ivcanon.c (propagate_constants_for_unrolling):
22518 Do not propagate through abnormal PHI results.
22519
22520 2016-02-01 Eric Botcazou <ebotcazou@adacore.com>
22521
22522 * postreload.c (reload_cse_simplify): Remove dead code.
22523
22524 2016-02-01 Jakub Jelinek <jakub@redhat.com>
22525
22526 PR rtl-optimization/69570
22527 * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Return true only
22528 if there is more than one set, not if there is a single set.
22529
22530 2016-02-01 Richard Henderson <rth@redhat.com>
22531
22532 PR rtl-opt/69535
22533 * combine.c (make_compound_operation): When looking through a
22534 subreg, make sure to re-extend to the width of the outer mode.
22535
22536 2016-01-30 Jakub Jelinek <jakub@redhat.com>
22537
22538 PR tree-optimization/69546
22539 * wide-int.cc (wi::divmod_internal): For unsigned division
22540 where both operands fit into uhwi, if o1 is 1 and o0 has
22541 msb set, if divident_prec is larger than bits per hwi,
22542 clear another quotient word and return 2 instead of 1.
22543 Similarly for remainder with msb in HWI set, if dividend_prec
22544 is larger than bits per hwi.
22545
22546 2016-01-29 Martin Jambor <mjambor@suse.cz>
22547
22548 * hsa-gen.c (get_memory_order_name): Mask with MEMMODEL_BASE_MASK.
22549 Use short lowercase names.
22550 (get_memory_order): Mask with MEMMODEL_BASE_MASK. Support
22551 MEMMODEL_CONSUME with acquire semantics and MEMMODEL_SEQ_CST with
22552 acq_rel one. Protect warning agains segfaults if
22553 get_memory_order_name returns NULL.
22554 (gen_hsa_ternary_atomic_for_builtin): Support with MEMMODEL_SEQ_CST
22555 with release semantics. Do not warn if get_memory_order already did.
22556 (gen_hsa_insns_for_call): Support with MEMMODEL_SEQ_CST with acquire
22557 semantics. Fix check for relaxed or acquire semantics. Do not warn
22558 if get_memory_order already did.
22559
22560 2016-01-29 Sebastian Pop <s.pop@samsung.com>
22561
22562 * doc/install.texi: Document that isl-0.16 is supported.
22563
22564 2016-01-29 Vladimir Makarov <vmakarov@redhat.com>
22565
22566 PR target/69299
22567 * config/i386/constraints.md (Bm): Describe as special memory
22568 constraint.
22569 * doc/md.texi (DEFINE_SPECIAL_MEMORY_CONSTRAINT): Describe it.
22570 * genoutput.c (main): Process DEFINE_SPECIAL_MEMORY_CONSTRAINT.
22571 * genpreds.c (struct constraint_data): Add is_special_memory.
22572 (have_special_memory_constraints, special_memory_start): New
22573 static vars.
22574 (special_memory_end): Ditto.
22575 (add_constraint): Add new arg is_special_memory. Add code to
22576 process its true value. Update have_special_memory_constraints.
22577 (process_define_constraint): Pass the new arg.
22578 (process_define_register_constraint): Ditto.
22579 (choose_enum_order): Process special memory.
22580 (write_tm_preds_h): Generate enum const CT_SPECIAL_MEMORY and
22581 function insn_extra_special_memory_constraint.
22582 (main): Process DEFINE_SPECIAL_MEMORY_CONSTRAINT.
22583 * gensupport.c (process_rtx): Process
22584 DEFINE_SPECIAL_MEMORY_CONSTRAINT.
22585 * ira-costs.c (record_reg_classes): Process CT_SPECIAL_MEMORY.
22586 * ira-lives.c (single_reg_class): Use
22587 insn_extra_special_memory_constraint.
22588 * ira.c (ira_setup_alts): Process CT_SPECIAL_MEMORY.
22589 * lra-constraints.c (process_alt_operands): Ditto.
22590 (curr_insn_transform): Use insn_extra_special_memory_constraint.
22591 * recog.c (asm_operand_ok, preprocess_constraints): Process
22592 CT_SPECIAL_MEMORY.
22593 * reload.c (find_reloads): Ditto.
22594 * rtl.def (DEFINE_SPECIFAL_MEMORY_CONSTRAINT): New.
22595 * stmt.c (parse_input_constraint): Use
22596 insn_extra_special_memory_constraint.
22597
22598 2016-01-29 H.J. Lu <hongjiu.lu@intel.com>
22599
22600 PR target/69530
22601 * lra-splill.c (lra_final_code_change): Revert r229087 by
22602 removing all sub-registers.
22603
22604 2016-01-29 Steve Ellcey <sellcey@imgtec.com>
22605
22606 PR target/65604
22607 * config/mips/mips.c (mips_output_division): Check flag_delayed_branch.
22608
22609 2016-01-29 Jakub Jelinek <jakub@redhat.com>
22610
22611 PR target/69551
22612 * config/i386/i386.c (ix86_expand_vector_set) <case V4SImode>: For
22613 SSE1, copy target into the temporary reg first before recursing
22614 on it.
22615
22616 2016-01-29 H.J. Lu <hongjiu.lu@intel.com>
22617
22618 * config/i386/sse.md (sse2_cvtps2pd<mask_name>): Replace vBm
22619 with vm.
22620
22621 2016-01-29 Jonathan Wakely <jwakely@redhat.com>
22622
22623 * ginclude/stdarg.h: Test __cplusplus instead of
22624 __GXX_EXPERIMENTAL_CXX0X__.
22625
22626 2016-01-29 Richard Biener <rguenther@suse.de>
22627
22628 PR tree-optimization/69547
22629 * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1):
22630 Do not mark clobbers necessary.
22631 (mark_all_reaching_defs_necessary_1): Likewise.
22632
22633 2016-01-29 Dominik Vogt <vogt@linux.vnet.ibm.com>
22634
22635 * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Format
22636 declaration name with %qs and print it in both error messages.
22637 Also fix indentation.
22638
22639 2016-01-29 Dominik Vogt <vogt@linux.vnet.ibm.com>
22640
22641 PR other/69006
22642 * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Remove
22643 trailing blank line from error message.
22644
22645 2016-01-29 Jonathan Wakely <jwakely@redhat.com>
22646
22647 PR c++/69462
22648 * ginclude/float.h: Also provide FLT_EVAL_METHOD and DECIMAL_DIG
22649 for C++-11.
22650
22651 2016-01-29 Richard Biener <rguenther@suse.de>
22652
22653 PR middle-end/69537
22654 * match.pd: Allow all integral types when simplifying a
22655 widening or sign-changing conversion.
22656
22657 2016-01-28 Sebastian Pop <s.pop@samsung.com>
22658
22659 * graphite-isl-ast-to-gimple.c (get_rename_from_scev): Revert assert
22660 back to setting codegen_error to fail codegen.
22661
22662 2016-01-28 Uros Bizjak <ubizjak@gmail.com>
22663
22664 PR target/69459
22665 * config/i386/constraints.md (C): Only accept constant zero operand.
22666 (BC): New constraint.
22667 * config/i386/sse.md (*mov<mode>_internal): Use BC constraint
22668 instead of C constraint.
22669 * doc/md.texi (Machine Constraints): Update description
22670 of C constraint.
22671
22672 2016-01-28 Steve Ellcey <sellcey@imgtec.com>
22673
22674 PR target/68400
22675 * config/mips/mips.c (and_operands_ok): Add MIPS16 check.
22676
22677 2016-01-28 Jakub Jelinek <jakub@redhat.com>
22678
22679 PR middle-end/69542
22680 * lra-remat.c (calculate_local_reg_remat_bb_data): Only consider
22681 non-debug insns.
22682
22683 2016-01-28 Pat Haugen <pthaugen@us.ibm.com>
22684
22685 * config/rs6000/rs6000.c (output_cbranch): Don't statically predict
22686 branches if using guessed profile.
22687
22688 2016-01-28 H.J. Lu <hongjiu.lu@intel.com>
22689
22690 * graphite-optimize-isl.c (optimize_isl): Fix dump.
22691
22692 2016-01-28 Richard Henderson <rth@redhat.com>
22693
22694 PR target/69305
22695 * config/aarch64/aarch64-modes.def (CC_Cmode): New
22696 * config/aarch64/aarch64-protos.h: Update.
22697 * config/aarch64/aarch64.c (aarch64_zero_extend_const_eq): New.
22698 (aarch64_select_cc_mode): Add check for use of CC_Cmode.
22699 (aarch64_get_condition_code_1): Handle CC_Cmode.
22700 * config/aarch64/aarch64.md (addti3): Use adddi3_compareC.
22701 (*add<mode>3_compareC_cconly_imm): New.
22702 (*add<mode>3_compareC_cconly): New.
22703 (*add<mode>3_compareC_imm): New.
22704 (add<mode>3_compareC): New.
22705 (add<mode>3_carryin, *addsi3_carryin_uxtw): Sort compare operand
22706 to be first. Use aarch64_carry_operation.
22707 (*add<mode>3_carryin_alt1, *addsi3_carryin_alt1_uxtw): Remove.
22708 (*add<mode>3_carryin_alt2, *addsi3_carryin_alt2_uxtw): Remove.
22709 (*add<mode>3_carryin_alt3, *addsi3_carryin_alt3_uxtw): Remove.
22710 (subti3): Use subdi3_compare1.
22711 (*sub<mode>3_compare0): Rename from sub<mode>3_compare0.
22712 (sub<mode>3_compare1): New.
22713 (*sub<mode>3_carryin0, *subsi3_carryin_uxtw): New.
22714 (*sub<mode>3_carryin): Use aarch64_borrow_operation.
22715 (*subsi3_carryin_uxtw): Likewise.
22716 (*ngc<mode>, *ngcsi_uxtw): Likewise.
22717 (*sub<mode>3_carryin_alt, *subsi3_carryin_alt_uxtw): New.
22718 * config/aarch64/iterators.md (DWI): New.
22719 * config/aarch64/predicates.md (aarch64_carry_operation): New.
22720 (aarch64_borrow_operation): New.
22721
22722 2016-01-28 Abderrazek Zaafrani <a.zaafrani@samsung.com>
22723
22724 * graphite-optimize-isl.c (optimize_isl): Print a different debug
22725 message when isl does not return a valid schedule.
22726
22727 2016-01-28 Sebastian Pop <s.pop@samsung.com>
22728
22729 * graphite-isl-ast-to-gimple.c (class translate_isl_ast_to_gimple):
22730 Remove comments from class declarations: they are already in the code
22731 close by the defs.
22732
22733 2016-01-28 Sebastian Pop <s.pop@samsung.com>
22734
22735 * graphite-isl-ast-to-gimple.c (binary_op_to_tree): Call
22736 codegen_error_p.
22737 (ternary_op_to_tree): Same.
22738 (unary_op_to_tree): Same.
22739 (nary_op_to_tree): Same.
22740 (gcc_expression_from_isl_expr_op): Same.
22741 (gcc_expression_from_isl_expression): Same.
22742 (graphite_create_new_loop): Same.
22743 (graphite_create_new_loop_guard): Same.
22744 (build_iv_mapping): Same.
22745 (graphite_create_new_guard): Same.
22746 (translate_isl_ast_to_gimple::copy_loop_phi_nodes): Same.
22747 (translate_isl_ast_to_gimple::translate_pending_phi_nodes): Same.
22748
22749 2016-01-28 Sebastian Pop <s.pop@samsung.com>
22750
22751 * graphite-isl-ast-to-gimple.c (get_rename_from_scev): Assert
22752 instead of setting codegen_error to fail codegen.
22753
22754 2016-01-28 Jason Merrill <jason@redhat.com>
22755
22756 * tree.h (BINFO_FLAG_0): Rename from BINFO_MARKED.
22757
22758 2016-01-28 Wilco Dijkstra <wdijkstr@arm.com>
22759
22760 * config/aarch64/aarch64.c (aarch64_if_then_else_costs):
22761 Remove CONST_INT_P check in CCMP cost calculation.
22762
22763 2016-01-28 Wilco Dijkstra <wdijkstr@arm.com>
22764
22765 * config/aarch64/aarch64.c (generic_vector_cost):
22766 Set vec_permute_cost.
22767 (cortexa57_vector_cost): Likewise.
22768 (exynosm1_vector_cost): Likewise.
22769 (xgene1_vector_cost): Likewise.
22770 (aarch64_builtin_vectorization_cost): Use vec_permute_cost.
22771 * config/aarch64/aarch64-protos.h (cpu_vector_cost):
22772 Add vec_permute_cost entry.
22773
22774 2016-01-28 Wilco Dijkstra <wdijkstr@arm.com>
22775
22776 * config/aarch64/aarch64.md (ccmp<mode>): Disassemble
22777 immediate as %1.
22778 (add<mode>3_compare0): Likewise.
22779 (addsi3_compare0_uxtw): Likewise.
22780 (add<mode>3nr_compare0): Likewise.
22781 (compare_neg<mode>): Likewise.
22782 (<optab><mode>3): Likewise.
22783
22784 2016-01-28 Ilya Enkovich <enkovich.gnu@gmail.com>
22785
22786 * tree-vect-stmts.c (vectorizable_comparison): Add
22787 NULL check for vectype.
22788
22789 2016-01-28 Richard Biener <rguenther@suse.de>
22790
22791 PR tree-optimization/69466
22792 * tree-vect-loop-manip.c (slpeel_duplicate_current_defs_from_edges):
22793 Account for PHIs we couldn't duplicate.
22794
22795 2016-01-28 Martin Liska <mliska@suse.cz>
22796
22797 PR pch/68758
22798 * ggc-common.c (gt_pch_save): Use ENABLE_VALGRIND_ANNOTATIONS macro
22799 instead of ENABLE_VALGRIND_CHECKING.
22800
22801 2016-01-27 Richard Henderson <rth@redhat.com>
22802
22803 PR rtl-opt/69447
22804 * lra-remat.c (subreg_regs): New.
22805 (dump_candidates_and_remat_bb_data): Dump it.
22806 (operand_to_remat): Reject if operand in subreg_regs.
22807 (set_bb_regs): Collect subreg_regs.
22808 (lra_remat): Init and free subreg_regs. Compute
22809 calculate_local_reg_remat_bb_data before create_cands.
22810
22811 2016-01-27 H.J. Lu <hongjiu.lu@intel.com>
22812
22813 PR target/68986
22814 * config/i386/i386.c (ix86_update_stack_boundary): Don't
22815 change stack_alignment_needed for __tls_get_addr call.
22816
22817 2016-01-27 Segher Boessenkool <segher@kernel.crashing.org>
22818
22819 * config/rs6000/rs6000.c (print_operand): Rollback 's' removal.
22820
22821 2016-01-27 Jeff Law <law@redhat.com>
22822
22823 PR tree-optimization/68398
22824 PR tree-optimization/69196
22825 * params.def (PARAM_FSM_SCALE_PATH_STMTS): New parameter.
22826 (PARAM_FSM_SCALE_PATH_BLOCKS): Likewise.
22827 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
22828 Only count PHIs in the last block in the path. The others will
22829 const/copy propagate away. Add heuristic to allow more irreducible
22830 subloops to be created when it is likely profitable to do so.
22831
22832 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
22833 Fix typo in comment. Use gsi_after_labels and remove the GIMPLE_LABEL
22834 check from within the loop. Use gsi_next_nondebug rather than gsi_next.
22835
22836 2016-01-27 Jakub Jelinek <jakub@redhat.com>
22837
22838 PR lto/69254
22839 * sanitizer.def: Add BEGIN_SANITIZER_BUILTINS and
22840 END_SANITIZER_BUILTINS markers using DEF_BUILTIN_STUB.
22841 * asan.c (DEF_BUILTIN_STUB): Temporarily define.
22842 * tree-streamer-in.c: Include asan.h.
22843 (streamer_get_builtin_tree): For builtins in sanitizer
22844 range call initialize_sanitizer_builtins and retry.
22845
22846 2016-01-27 Ian Lance Taylor <iant@google.com>
22847
22848 * common.opt (fkeep-gc-roots-live): New undocumented option.
22849 * tree-ssa-loop-ivopts.c (add_candidate_1): If
22850 -fkeep-gc-roots-live, skip pointers.
22851 (add_iv_candidate_for_biv): Handle add_candidate_1 returning
22852 NULL.
22853
22854 2016-01-27 Uros Bizjak <ubizjak@gmail.com>
22855
22856 PR target/69512
22857 * config/i386/i386.md (*zext<mode>_doubleword_and): New pattern.
22858 (*zext<mode>_doubleword): Disable for TARGET_ZERO_EXTEND_WITH_AND.
22859
22860 2016-01-27 Thomas Klausner <wiz@NetBSD.org>
22861
22862 PR target/68380
22863 * configure.ac: NetBSD provides SSP in its C library.
22864 * configure: Updated.
22865
22866 2016-01-27 Richard Biener <rguenther@suse.de>
22867
22868 PR tree-optimization/69166
22869 * tree-vect-loop.c (vect_is_simple_reduction): Always check
22870 reduction code for commutativity / associativity.
22871
22872 2016-01-27 Martin Jambor <mjambor@suse.cz>
22873
22874 PR tree-optimization/69355
22875 * tree-sra.c (analyze_access_subtree): Correct hole detection when
22876 total_scalarization fails.
22877
22878 2016-01-27 David Edelsohn <dje.gcc@gmail.com>
22879
22880 * config/rs6000/driver-rs6000.c (detect_processor_aix): Add
22881 power9.
22882
22883 2016-01-27 Christian Bruel <christian.bruel@st.com>
22884
22885 PR target/69245
22886 * config/arm/arm-c.c (arm_pragma_target_parse): Add comments.
22887 Move arm_reset_previous_fndecl and set_target_option_current_node in
22888 the conditional part. Call save_restore_target_globals.
22889 * config/arm/arm.c (arm_set_current_function):
22890 Refactor to better support #pragma target and attribute mix.
22891 Call save_restore_target_globals.
22892 * config/arm/arm-protos.h (save_restore_target_globals): New function.
22893
22894 2016-01-27 Martin Liska <mliska@suse.cz>
22895
22896 * hsa.c (hsa_summary_t::link_functions): Create IPA_REF_ADDR
22897 reference for an HSA kernel and its host function.
22898
22899 2016-01-27 Jakub Jelinek <jakub@redhat.com>
22900
22901 PR tree-optimization/69399
22902 * wide-int.h (wi::lrshift): For larger precisions, only
22903 use fast path if shift is known to be < HOST_BITS_PER_WIDE_INT.
22904
22905 2016-01-27 Claudiu Zissulescu <claziss@synopsys.com>
22906
22907 * config/arc/predicates.md (proper_comparison_operator): Reject
22908 constant-constant comparison.
22909
22910 2016-01-26 Tom de Vries <tom@codesourcery.com>
22911
22912 PR tree-optimization/69110
22913 * tree-data-ref.c (initialize_data_dependence_relation): Handle
22914 DR_NUM_DIMENSIONS == 0.
22915
22916 2016-01-26 Abderrazek Zaafrani <a.zaafrani@samsung.com>
22917 Sebastian Pop <s.pop@samsung.com>
22918
22919 * graphite-isl-ast-to-gimple.c (ternary_op_to_tree): Handle
22920 isl_ast_op_cond and isl_ast_op_select.
22921 (gcc_expression_from_isl_expr_op): Same.
22922
22923 2016-01-26 Jason Merrill <jason@redhat.com>
22924
22925 PR c++/68782
22926 * tree.c (recompute_constructor_flags): Split out from
22927 build_constructor.
22928 (verify_constructor_flags): New.
22929 * tree.h: Declare them.
22930
22931 2016-01-26 Iain Buclaw <ibuclaw@gdcproject.org>
22932
22933 PR rtl-optimization/69217
22934 * var-tracking.c (tracked_record_parameter_p): Don't segfault if there
22935 are no TYPE_FIELDS set for the record type.
22936
22937 2016-01-26 Jakub Jelinek <jakub@redhat.com>
22938
22939 PR target/68662
22940 * config/rs6000/rs6000.c (rs6000_option_override_internal): Initialize
22941 toc_label_name unconditionally.
22942 (rs6000_emit_load_toc_table): Call ggc_strdup on toc_label_name for
22943 SYMBOL_REF string. Use toc_label_name instead of constructing
22944 LCTOC1.
22945 (rs6000_elf_declare_function_name): Use toc_label_name instead of
22946 constructing LCTOC1.
22947
22948 2016-01-26 Martin Sebor <msebor@redhat.com>
22949
22950 PR other/69477
22951 * doc/extend.texi (Common Type Attributes): Move text that talks about
22952 attribute packed from attribute aligned to the section discussing
22953 the former attribute for clarity.
22954
22955 2016-01-26 Richard Henderson <rth@redhat.com>
22956
22957 PR middle-end/60908
22958 * trans-mem.c (tm_region_init): Mark entry block as visited.
22959
22960 2016-01-26 David Malcolm <dmalcolm@redhat.com>
22961
22962 PR other/69006
22963 * diagnostic-show-locus.c (layout::print_source_line): Replace
22964 call to pp_newline with call to layout::print_newline.
22965 (layout::print_annotation_line): Likewise.
22966 (layout::move_to_column): Likewise.
22967 (layout::print_any_fixits): After printing any fixits, print a
22968 trailing newline, if necessary.
22969 (layout::print_newline): New method, resetting any colorization
22970 before a newline.
22971 (diagnostic_show_locus): Move the pp_newline to before the
22972 early bailout. Remove dummy block enclosing the layout instance.
22973 * diagnostic.c (default_diagnostic_finalizer): Replace invocation
22974 of pp_newline_and_flush with pp_flush.
22975 (diagnostic_append_note): Delete use of pp_newline.
22976 (diagnostic_append_note_at_rich_loc): Delete.
22977 * diagnostic.h (diagnostic_append_note_at_rich_loc): Delete.
22978 * pretty-print.h (output_buffer_append_r): Reset buff->line_length
22979 when newline characters are added to the buffer.
22980
22981 2016-01-26 Michael Matz <matz@suse.de>
22982
22983 * configure.ac (ac_cv_std_swap_in_utility): New test.
22984 * system.h (<algorithm>): Check HAVE_SWAP_IN_UTILITY as well.
22985 * configure: Regenerate.
22986 * config.in: Regenerate.
22987
22988 2016-01-26 Claudiu Zissulescu <claziss@synopsys.com>
22989
22990 * config/arc/arc.md (cstoresi4): Force operand into register.
22991 (arcset<code>): Fix predicate.
22992 (arcsetltu): Likewise.
22993 (arcsetgeu): Likewise.
22994 (arcsethi): Likewise.
22995 (arcsetls): Likewise.
22996
22997 2016-01-26 Jakub Jelinek <jakub@redhat.com>
22998
22999 PR tree-optimization/69483
23000 * gimple-fold.c (canonicalize_constructor_val): Return NULL
23001 if base has error_mark_node type.
23002
23003 2016-01-26 Christophe Lyon <christophe.lyon@linaro.org>
23004
23005 PR target/68620
23006 * config/arm/arm.c (neon_valid_immediate): Handle FP16 vectors.
23007 * config/arm/arm_neon.h (__ARM_NUM_LANES, __arm_lane, arm_lanq):
23008 New helper macros.
23009 (vget_lane_f16): Handle big-endian.
23010 (vgetq_lane_f16): Likewise.
23011 (vset_lane_f16): Likewise.
23012 (vsetq_lane_f16): Likewise.
23013 * config/arm/iterators.md (VQXMOV): Add V8HF.
23014 (VDQ): Add V4HF and V8HF.
23015 (V_reg): Handle V4HF and V8HF.
23016 (Is_float_mode): Likewise.
23017 * config/arm/neon.md (movv4hf, movv8hf, neon_vdup_nv4hf,
23018 neon_vdup_nv8hf): New patterns.
23019 (vec_set<mode>_internal, vec_extract<mode>, neon_vld1_dup<mode>):
23020 Use VD_LANE iterator.
23021 (neon_vld1_dup<mode>): Use VQ2 iterator.
23022
23023 2016-01-26 Nathan Sidwell <nathan@acm.org>
23024
23025 * omp-low.h (oacc_fn_attrib_kernels_p): Declare.
23026 (set_oacc_fn_attrib): Add IS_KERNEL arg.
23027 * omp-low.c (set_oacc_fn_attrib): Add IS_KERNEL arg.
23028 (oacc_fn_attrib_kernels_p, oacc_fn_attrib_level): New.
23029 (expand_omp_target): Pass is_kernel to set_oacc_fn_attrib.
23030 (oacc_validate_dims): Add LEVEL arg, don't return level.
23031 (new_oacc_loop_routine): Use oacc_fn_attrib_level, not
23032 oacc_validate_dims.
23033 (execute_oacc_device_lower): Adjust, add more dump output.
23034 * tree-ssa-loop.c (gate_oacc_kernels): Use
23035 oacc_fn_attrib_kernels_p.
23036 * tree-parloops.c (create_parallel_loop): Adjust
23037 set_oacc_fn_attrib call.
23038
23039 2016-01-26 Jakub Jelinek <jakub@redhat.com>
23040
23041 PR lto/69254
23042 * lto-wrapper.c (merge_and_complain): Handle -fcilkplus.
23043 (append_compiler_options): Handle -fcilkplus.
23044 (append_linker_options): Ignore -fno-{openmp,openacc,cilkplus}.
23045
23046 2016-01-26 Nick Clifton <nickc@redhat.com>
23047
23048 PR target/66655
23049 * config/i386/winnt.c (i386_pe_binds_local_p): If a function has
23050 been marked as DECL_ONE_ONLY but we do not the means to make it
23051 so, then do not allow it to bind locally.
23052
23053 2016-01-26 Jakub Jelinek <jakub@redhat.com>
23054
23055 PR lto/69254
23056 * opts.h (parse_sanitizer_options): New prototype.
23057 * opts.c (sanitizer_opts): New array.
23058 (parse_sanitizer_options): New function.
23059 (common_handle_option): Use parse_sanitizer_options.
23060
23061 2016-01-26 H.J. Lu <hongjiu.lu@intel.com>
23062
23063 PR target/68986
23064 * config/i386/i386.c (ix86_compute_frame_layout): Move stack
23065 alignment adjustment to ...
23066 (ix86_update_stack_boundary): Here. Don't over-align stack for
23067 __tls_get_addr.
23068 (ix86_finalize_stack_realign_flags): Use stack_alignment_needed
23069 if __tls_get_addr is called.
23070
23071 2016-01-26 Christian Bruel <christian.bruel@st.com>
23072
23073 * doc/sourcebuild.texi (arm_crypto_pragma_ok): Remove.
23074
23075 2016-01-26 Eric Botcazou <ebotcazou@adacore.com>
23076
23077 * config/ia64/ia64.c (ia64_expand_vecint_compare): Use gen_int_mode.
23078
23079 2016-01-26 Richard Biener <rguenther@suse.de>
23080
23081 PR middle-end/69467
23082 * match.pd: Guard X * CST CMP 0 pattern with single_use.
23083
23084 2016-01-26 Richard Biener <rguenther@suse.de>
23085
23086 PR tree-optimization/69452
23087 * tree-ssa-loop-im.c (move_computations_dom_walker): Remove.
23088 (move_computations_dom_walker::before_dom_children): Rename
23089 to ...
23090 (move_computations_worker): This.
23091 (move_computations): Perform an RPO rather than a DOM walk.
23092
23093 2016-01-26 Jakub Jelinek <jakub@redhat.com>
23094
23095 PR target/69442
23096 * combine.c (combine_instructions): For REG_EQUAL note with
23097 SET_DEST being ZERO_EXTRACT, also temporarily set SET_DEST
23098 to the underlying register.
23099 * doc/rtl.texi (REG_EQUAL): Document the behavior of
23100 REG_EQUAL/REG_EQUIV notes if SET_DEST is ZERO_EXTRACT.
23101
23102 2016-01-26 Roger Ferrer Ibáñez <rofirrim@gmail.com>
23103
23104 PR target/67896
23105 * config/aarch64/aarch64-builtins.c
23106 (aarch64_init_simd_builtin_types): Do not set structural
23107 equality to __Poly{8,16,64,128}_t types.
23108
23109 2016-01-26 Richard Sandiford <richard.sandiford@arm.com>
23110
23111 PR tree-optimization/69400
23112 * wide-int.cc (wi_pack): Take the precision as argument and
23113 perform canonicalization here rather than in the callers.
23114 Use the main loop to handle all full-width HWIs. Add a
23115 zero HWI if in_len isn't a full result.
23116 (wi::divmod_internal): Update accordingly.
23117 (wi::mul_internal): Likewise. Simplify.
23118
23119 2016-01-25 Aditya Kumar <aditya.k7@samsung.com>
23120 Sebastian Pop <s.pop@samsung.com>
23121
23122 * graphite-poly.c (apply_poly_transforms): Simplify.
23123 (print_isl_set): Use more readable format: ISL_YAML_STYLE_BLOCK.
23124 (print_isl_map): Same.
23125 (print_isl_union_map): Same.
23126 (print_isl_schedule): New.
23127 (debug_isl_schedule): New.
23128 * graphite-dependences.c (scop_get_reads): Do not call
23129 isl_union_map_add_map that is undocumented isl functionality.
23130 (scop_get_must_writes): Same.
23131 (scop_get_may_writes): Same.
23132 (scop_get_original_schedule): Remove.
23133 (scop_get_dependences): Do not call isl_union_map_compute_flow that
23134 is deprecated in isl 0.15. Instead, use isl_union_access_* interface.
23135 (compute_deps): Remove.
23136 * graphite-isl-ast-to-gimple.c (print_schedule_ast): New.
23137 (debug_schedule_ast): New.
23138 (translate_isl_ast_to_gimple::scop_to_isl_ast): Call
23139 set_separate_option.
23140 (graphite_regenerate_ast_isl): Add dump.
23141 (translate_isl_ast_to_gimple::scop_to_isl_ast): Generate code
23142 from scop->transformed_schedule.
23143 (graphite_regenerate_ast_isl): Add more dump.
23144 * graphite-optimize-isl.c (optimize_isl): Set
23145 scop->transformed_schedule. Check whether schedules are equal.
23146 (apply_poly_transforms): Move here.
23147 * graphite-poly.c (apply_poly_transforms): ... from here.
23148 (free_poly_bb): Static.
23149 (free_scop): Static.
23150 (pbb_number_of_iterations_at_time): Remove.
23151 (print_isl_ast): New.
23152 (debug_isl_ast): New.
23153 (debug_scop_pbb): New.
23154 * graphite-scop-detection.c (print_edge): Move.
23155 (print_sese): Move.
23156 * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Remove.
23157 (build_scop_scattering): Remove.
23158 (create_pw_aff_from_tree): Assert instead of bailing out.
23159 (add_condition_to_pbb): Remove unused code, do not fail.
23160 (add_conditions_to_domain): Same.
23161 (add_conditions_to_constraints): Remove.
23162 (build_scop_context): New.
23163 (add_iter_domain_dimension): New.
23164 (build_iteration_domains): Initialize pbb->iterators.
23165 Call add_conditions_to_domain.
23166 (nested_in): New.
23167 (loop_at): New.
23168 (index_outermost_in_loop): New.
23169 (index_pbb_in_loop): New.
23170 (outermost_pbb_in): New.
23171 (add_in_sequence): New.
23172 (add_outer_projection): New.
23173 (outer_projection_mupa): New.
23174 (add_loop_schedule): New.
23175 (build_schedule_pbb): New.
23176 (build_schedule_loop): New.
23177 (embed_in_surrounding_loops): New.
23178 (build_schedule_loop_nest): New.
23179 (build_original_schedule): New.
23180 (build_poly_scop): Call build_original_schedule.
23181 * graphite.h: Declare print_isl_schedule and debug_isl_schedule.
23182 (free_poly_dr): Remove.
23183 (struct poly_bb): Add iterators. Remove schedule, transformed, saved.
23184 (free_poly_bb): Remove.
23185 (debug_loop_vec): Remove.
23186 (print_isl_ast): Declare.
23187 (debug_isl_ast): Declare.
23188 (scop_do_interchange): Remove.
23189 (scop_do_strip_mine): Remove.
23190 (scop_do_block): Remove.
23191 (flatten_all_loops): Remove.
23192 (optimize_isl): Remove.
23193 (pbb_number_of_iterations_at_time): Remove.
23194 (debug_scop_pbb): Declare.
23195 (print_schedule_ast): Declare.
23196 (debug_schedule_ast): Declare.
23197 (struct scop): Remove schedule. Add original_schedule,
23198 transformed_schedule.
23199 (free_gimple_poly_bb): Remove.
23200 (print_generated_program): Remove.
23201 (debug_generated_program): Remove.
23202 (unify_scattering_dimensions): Remove.
23203 * sese.c (print_edge): ... here.
23204 (print_sese): ... here.
23205 (debug_edge): ... here.
23206 (debug_sese): ... here.
23207 * sese.h (print_edge): Declare.
23208 (print_sese): Declare.
23209 (dump_edge): Declare.
23210 (dump_sese): Declare.
23211
23212 2016-01-25 Aditya Kumar <aditya.k7@samsung.com>
23213 Sebastian Pop <s.pop@samsung.com>
23214
23215 * Makefile.in: Set ISLVER in site.exp.
23216
23217 2016-01-25 Jakub Jelinek <jakub@redhat.com>
23218
23219 * omp-low.c (lower_omp_target) <case USE_DEVICE_PTR>: Set
23220 DECL_VALUE_EXPR of new_var even for the non-array case. Look
23221 through DECL_VALUE_EXPR for expansion.
23222
23223 2016-01-25 Bernd Edlinger <bernd.edlinger@hotmail.de>
23224
23225 * config/mips/mips.c (mips_compute_frame_info): Skip re-computing
23226 the frame info after reload completed.
23227
23228 2016-01-25 Jeff Law <law@redhat.com>
23229
23230 PR tree-optimization/69196
23231 PR tree-optimization/68398
23232 * tree-ssa-threadupdate.h (enum bb_dom_status): Moved here from
23233 tree-ssa-threadupdate.c.
23234 (determine_bb_domination_status): Prototype
23235 * tree-ssa-threadupdate.c (enum bb_dom_status): Remove
23236 (determine_bb_domination_status): No longer static.
23237 (valid_jump_thread_path): Remove code to detect characteristics
23238 of the jump thread path not associated with correctness.
23239 * tree-ssa-threadbackward.c (fsm_find_control_statment_thread_paths):
23240 Correct test for thread path length. Count PHIs for real operands as
23241 statements that need to be copied. Do not count ASSERT_EXPRs.
23242 Look at all the blocks in the thread path. Compute and selectively
23243 filter thread paths based on threading through the latch, threading
23244 a multiway branch or crossing a multiway branch.
23245
23246 2016-01-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
23247
23248 * config/rs6000/rs6000.c (rs6000_keep_leaf_when_profiled): Add
23249 decl with __attribute__ ((unused)) annotation.
23250
23251 2016-01-25 Ilya Enkovich <enkovich.gnu@gmail.com>
23252
23253 PR target/69421
23254 * tree-vect-stmts.c (vectorizable_condition): Check vectype
23255 of operands is compatible with a statement vectype.
23256
23257 2016-01-25 Eric Botcazou <ebotcazou@adacore.com>
23258
23259 * doc/extend.texi (scalar_storage_order type attribute): Fix typo and
23260 improve wording for mixed storage order support.
23261
23262 2016-01-25 Bilyan Borisov <bilyan.borisov@arm.com>
23263
23264 * config/aarch64/arm_neon.h (vcvt_s64_f64): New intrinsic.
23265 (vcvt_u64_f64): Likewise.
23266 (vcvta_s64_f64): Likewise.
23267 (vcvta_u64_f64): Likewise.
23268 (vcvtm_s64_f64): Likewise.
23269 (vcvtm_u64_f64): Likewise.
23270 (vcvtn_s64_f64): Likewise.
23271 (vcvtn_u64_f64): Likewise.
23272 (vcvtp_s64_f64): Likewise.
23273 (vcvtp_u64_f64): Likewise.
23274
23275 2016-01-25 Claudiu Zissulescu <claziss@synopsys.com>
23276
23277 * config/arc/arc.c (TARGET_DWARF_REGISTER_SPAN): Define.
23278 (arc_init): Check validity mll64 option.
23279 (arc_save_restore): Use double load/store instruction.
23280 (arc_expand_movmem): Likewise.
23281 (arc_split_move): Don't split if we have double load/store
23282 instructions. Returns a boolean.
23283 (arc_process_double_reg_moves): Change function to return boolean
23284 instead of a sequence of instructions.
23285 (arc_dwarf_register_span): New function.
23286 * config/arc/arc-protos.h (arc_split_move): Change prototype.
23287 * config/arc/arc.h (TARGET_CPU_CPP_BUILTINS): Define __ARC_LL64__.
23288 * config/arc/arc.md (*movdi_insn): Emit ldd/std instructions.
23289 (*movdf_insn): Likewise.
23290 * config/arc/arc.opt (mll64): New option.
23291 * config/arc/predicates.md (even_register_operand): New predicate.
23292 * doc/invoke.texi (ARC Options): Add mll64 documentation.
23293
23294 2016-01-25 Richard Biener <rguenther@suse.de>
23295
23296 PR lto/69393
23297 * dwarf2out.c (is_naming_typedef_decl): Not when DECL_NAMELESS.
23298 * tree-streamer-out.c (pack_ts_base_value_fields): Stream
23299 DECL_NAMELESS.
23300 * tree-streamer-in.c (unpack_ts_base_value_fields): Likewise.
23301
23302 2016-01-25 Richard Biener <rguenther@suse.de>
23303
23304 PR tree-optimization/69376
23305 * tree-ssa-sccvn.h (struct vn_ssa_aux): Add range_info_anti_range_p
23306 flag.
23307 (VN_INFO_ANTI_RANGE_P): New inline.
23308 (VN_INFO_RANGE_TYPE): Likewise.
23309 * tree-ssa-sccvn.c (set_ssa_val_to): Also record and copy
23310 SSA_NAME_ANTI_RANGE_P.
23311 (free_scc_vn): Restore SSA_NAME_ANTI_RANGE_P.
23312 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
23313 Properly query VN_INFO_RANGE_TYPE.
23314
23315 2016-01-25 Nick Clifton <nickc@redhat.com>
23316
23317 PR target/66655
23318 * config/i386/cygming.h (MAKE_DECL_ONE_ONLY): Remove definition.
23319
23320 2016-01-23 Tom de Vries <tom@codesourcery.com>
23321
23322 PR tree-optimization/69426
23323 * tree-parloops.c (eliminate_local_variables_stmt): Handle vdef of
23324 removed clobber.
23325
23326 2016-01-23 Jakub Jelinek <jakub@redhat.com>
23327
23328 * tree-ssanames.c (release_free_names_and_compact_live_names): Replace
23329 "the the" with "the" in the comments.
23330 * ipa-devirt.c (build_type_inheritance_graph,
23331 update_type_inheritance_graph): Likewise.
23332 * tree.c (build_function_type_list_1): Likewise.
23333 * cfgloopmanip.c (scale_loop_profile): Likewise.
23334 * tree-ssa-loop-ivopts.c (get_shiftadd_cost): Likewise.
23335 * gimple-ssa-split-paths.c
23336 (find_block_to_duplicate_for_splitting_paths): Likewise.
23337 * tree-sra.c (init_subtree_with_zero, clobber_subtree): Likewise.
23338 * expr.c (convert_move): Likewise.
23339 * var-tracking.c (vt_stack_adjustments): Likewise.
23340 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise.
23341 * tree-vrp.c (test_for_singularity): Likewise.
23342
23343 * tree-vect-stmts.c (vectorizable_condition): Build a VEC_COND_EXPR
23344 directly instead of building a temporary tree.
23345
23346 PR bootstrap/69434
23347 * genrecog.c: Define INCLUDE_ALGORITHM before including system.h,
23348 remove <algorithm> include.
23349
23350 2016-01-22 Jakub Jelinek <jakub@redhat.com>
23351
23352 PR target/69432
23353 * config/i386/i386.c: Include dojump.h.
23354 (expand_small_movmem_or_setmem,
23355 expand_set_or_movmem_prologue_epilogue_by_misaligned_moves): Spelling
23356 fixes.
23357 (ix86_expand_set_or_movmem): Call do_pending_stack_adjust () early
23358 if dynamic_check != -1.
23359
23360 2016-01-21 Jeff Law <law@redhat.com>
23361
23362 PR middle-end/69347
23363 * tree-ssa-dom.c (back_propagate_equivalences): Factored out of
23364 record_temporary_equivalences. Rewritten to avoid unnecessary calls
23365 into dominated_by_p.
23366 (cprop_into_successor_phis): Avoid unnecessary tests.
23367
23368 2016-01-22 Richard Henderson <rth@redhat.com>
23369
23370 PR target/69416
23371 * config/aarch64/aarch64.md (UNSPEC_NZCV): New.
23372 (ccmp<mode>, fccmp<mode>, fccmpe<mode>): Use it.
23373
23374 2016-01-22 Michael Matz <matz@suse.de>
23375
23376 * system.h (string, algorithm): Include only conditionally.
23377 (new): Include always under C++.
23378 * bb-reorder.c (toplevel): Define INCLUDE_ALGORITHM.
23379 * final.c (toplevel): Ditto.
23380 * ipa-chkp.c (toplevel): Define INCLUDE_STRING.
23381 * genconditions.c (write_header): Make gencondmd.c define
23382 INCLUDE_STRING.
23383 * mem-stats.h (mem_usage::print_dash_line): Don't use std::string.
23384
23385 * config/aarch64/aarch64.c (toplevel): Define INCLUDE_STRING.
23386 * common/config/aarch64/aarch64-common.c (toplevel): Ditto.
23387
23388 2016-01-22 Christian Bruel <christian.bruel@st.com>
23389
23390 PR target/68674
23391 * expr.c (expand_expr_real_1): Reset DECL_MODE if VECTOR_TYPE_P changed.
23392
23393 2016-01-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
23394
23395 PR target/69403
23396 * config/arm/thumb2.md (*thumb2_ior_scc_strict_it): Convert to
23397 define_insn_and_split. Ensure operands[1] and operands[0] do not
23398 get assigned the same register.
23399
23400 2016-01-22 Kugan Vivekanandarajah <kuganv@linaro.org>
23401
23402 * ipa-prop.c (ipa_set_jf_constant): Remove redundant unshare_expr.
23403
23404 2016-01-22 Christian Bruel <christian.bruel@st.com>
23405
23406 * config/arm/arm-c.c (arm_pragma_target_parse):
23407 Remove warn_builtin_macro_redefined overwrite.
23408
23409 2016-01-22 Eric Botcazou <ebotcazou@adacore.com>
23410
23411 * ipa-inline.c (can_inline_edge_p): Back out overzealous check on
23412 flag_non_call_exceptions compatibility.
23413
23414 2016-01-22 Jakub Jelinek <jakub@redhat.com>
23415
23416 PR debug/66668
23417 * dwarf2out.c (add_child_die_after): New function.
23418 (dwarf_qual_info_t): New type.
23419 (dwarf_qual_info): New variable.
23420 (qualified_die_p): New function.
23421 (modified_type_die): For -fdebug-types-section, ensure
23422 canonical order of qualifiers. Put qualified DIEs adjacent
23423 to the corresponding non-qualified type DIE and search there
23424 for existing qualified DIEs.
23425
23426 2016-01-22 Eric Botcazou <ebotcazou@adacore.com>
23427
23428 * doc/extend.texi (scalar_storage_order type attribute): Document
23429 restriction on type punning and aliasing, and remove future tense.
23430
23431 2016-01-21 Roman Zhuykov <zhroma@ispras.ru>
23432
23433 PR target/69252
23434 * modulo-sched.c (optimize_sc): Allow branch-scheduling to add a new
23435 first stage.
23436
23437 2016-01-21 Jeff Law <law@redhat.com>
23438
23439 PR middle-end/69347
23440 * tree-ssa-dom.c (dom_opt_dom_walker::thread_across_edge): Avoid
23441 useless call to record_temporary_equivalences.
23442 * tree-ssa-threadbackward.c (find_jump_threads_backwards): Just
23443 allocate 10 slots in the bb_path vector and let it grow as needed.
23444 (fsm_find_control_statement_thread_paths): Similarly for the next_path
23445 vector.
23446
23447 2016-01-21 David Edelsohn <dje.gcc@gmail.com>
23448
23449 * configure.ac (gcc_cv_as_powerpc_mfcrf, gcc_cv_as_machine_directive):
23450 Detangle.
23451 * configure: Regenerate.
23452
23453 2016-01-21 Pat Haugen <pthaugen@us.ibm.com>
23454
23455 * config/rs6000/aix71.h (ASM_CPU_SPEC): Add entry for Power9.
23456 * config/rs6000/driver-rs6000.c (struct asm_names): Likewise.
23457
23458 2016-01-21 Bernd Schmidt <bschmidt@redhat.com>
23459
23460 PR middle-end/66178
23461 * expr.c (expand_expr_real_2) [PLUS_EXPR, MINUS_EXPR]: Don't
23462 drop EXPAND_INITIALIZER.
23463 * rtl.h (contains_symbolic_reference_p): Declare.
23464 * rtlanal.c (contains_symbolic_reference_p): New function.
23465 * simplify-rtx.c (simplify_binary_operation_1): Don't turn
23466 a subtraction into a NOT if symbolic constants are involved.
23467
23468 2016-01-21 Anton Blanchard <anton@samba.org>
23469 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
23470
23471 PR target/63354
23472 * config/rs6000/linux64.h (TARGET_KEEP_LEAF_WHEN_PROFILED): New
23473 #define.
23474 * config/rs6000/rs6000.c (rs6000_keep_leaf_when_profiled): New
23475 function.
23476
23477 2016-01-21 Ajit Agarwal <ajitkum@xilinx.com>
23478
23479 * config/microblaze/microblaze.c
23480 (get_branch_target): New.
23481 (insert_wic_for_ilb_runout): New.
23482 (insert_wic): New.
23483 (microblaze_machine_dependent_reorg): New.
23484 (TARGET_MACHINE_DEPENDENT_REORG): Define macro.
23485 * config/microblaze/microblaze.md
23486 (UNSPEC_IPREFETCH): Define.
23487 (iprefetch): New pattern
23488 * config/microblaze/microblaze.opt
23489 (mxl-prefetch): New flag.
23490
23491 2016-01-21 Ajit Agarwal <ajitkum@xilinx.com>
23492
23493 * config/microblaze/microblaze.h
23494 (FIXED_REGISTERS): Update in macro.
23495 (CALL_USED_REGISTERS): Update in macro.
23496
23497 2016-01-21 Yuri Rumyantsev <ysrumyan@gmail.com>
23498
23499 PR rtl-optimization/68920
23500 * ifcvt.c (cond_move_process_if_block): Limit number of conditional
23501 moves.
23502
23503 2016-01-21 Vladimir Makarov <vmakarov@redhat.com>
23504
23505 PR rtl-optimization/68990
23506 * lra-coalesce.c (lra_coalesce): Invalidate value for the result
23507 pseudo instead of inheritance ones.
23508
23509 2016-01-21 Bernd Edlinger <bernd.edlinger@hotmail.de>
23510 Nick Clifton <nickc@redhat.com>
23511
23512 PR target/69129
23513 PR target/69012
23514 * config/mips/mips.c (mips_compute_frame_info): Initialise
23515 args_size and hard_frame_pointer_offset fields of the frame
23516 structure before calling mips_global_pointer.
23517
23518 2016-01-21 David Edelsohn <dje.gcc@gmail.com>
23519
23520 * configure.ac (gcc_cv_as_dwloc): Test support for debug frame section
23521 label reference.
23522 * configure: Regenerate.
23523
23524 2016-01-21 Richard Biener <rguenther@suse.de>
23525
23526 * graphite-optimize-isl.c (get_schedule_map): Fix typo.
23527
23528 2016-01-21 Marcin Kościelnicki <koriakin@0x04.net>
23529
23530 * config/s390/s390.c (s390_asm_declare_function_size): Add code
23531 to actually emit the .size directive.
23532
23533 2016-01-21 Stefan Sørensen <stefan.sorensen@spectralink.com>
23534 Jakub Jelinek <jakub@redhat.com>
23535
23536 PR target/69187
23537 PR target/65624
23538 * config/arm/arm-builtins.c (arm_expand_neon_builtin): Increase
23539 args array size by one to avoid buffer overflow.
23540
23541 2016-01-21 Marcin Kościelnicki <koriakin@0x04.net>
23542
23543 * config/s390/s390.md (pool_section_start): Use switch_to_section
23544 to select proper read-only data section instead of hardcoding
23545 .rodata.
23546 (pool_section_end): Use switch_to_section to match the above.
23547
23548 2016-01-21 Richard Biener <rguenther@suse.de>
23549
23550 PR tree-optimization/69378
23551 * tree-ssa-sccvn.c (dominated_by_p_w_unex): New function.
23552 (set_ssa_val_to): Use it for dominance checks taking into
23553 account not executable edges.
23554
23555 2016-01-21 Jakub Jelinek <jakub@redhat.com>
23556
23557 PR c++/69355
23558 * tree-dfa.c (get_ref_base_and_extent): Use GET_MODE_BITSIZE (mode)
23559 for bitsize instead of GET_MODE_PRECISION (mode).
23560
23561 2016-01-20 Martin Sebor <msebor@redhat.com>
23562
23563 PR c/52291
23564 * extend.texi (__sync Builtins): Clarify the semantics of
23565 __sync_fetch_and_OP built-ins on pointers.
23566 (__atomic Builtins): Same.
23567
23568 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
23569 Sebastian Pop <s.pop@samsung.com>
23570
23571 * graphite-isl-ast-to-gimple.c (enum phi_node_kind): New.
23572 (class translate_isl_ast_to_gimple): Use phi_node_kind instead of bool.
23573 (is_valid_rename): Same.
23574 (translate_isl_ast_to_gimple::get_rename): Same.
23575 (translate_isl_ast_to_gimple::rename_all_uses): Same.
23576 (translate_isl_ast_to_gimple::rename_uses): Same.
23577 (get_new_name): Check for close_phi nodes.
23578 (copy_loop_phi_args): Use phi_node_kind.
23579 (translate_isl_ast_to_gimple::copy_loop_close_phi_args): Same.
23580 (translate_isl_ast_to_gimple::copy_cond_phi_args): Same.
23581
23582 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
23583 Sebastian Pop <s.pop@samsung.com>
23584
23585 Revert commit r229783.
23586 * graphite-isl-ast-to-gimple.c (gcc_expression_from_isl_ast_expr_id):
23587 Remove use of parameter_rename_map.
23588 (copy_def): Remove.
23589 (copy_internal_parameters): Remove.
23590 (graphite_regenerate_ast_isl): Remove call to copy_internal_parameters.
23591 * sese.c (new_sese_info): Do not initialize parameter_rename_map.
23592 (free_sese_info): Do not free parameter_rename_map.
23593 (set_rename): Do not use parameter_rename_map.
23594 (rename_uses): Update call to set_rename.
23595 (graphite_copy_stmts_from_block): Do not use parameter_rename_map.
23596 * sese.h (parameter_rename_map_t): Remove.
23597 (struct sese_info_t): Remove field parameter_rename_map.
23598
23599 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
23600 Sebastian Pop <s.pop@samsung.com>
23601
23602 * graphite-isl-ast-to-gimple.c: Fix comment.
23603 * graphite-scop-detection.c (defined_in_loop_p): New.
23604 (canonicalize_loop_closed_ssa): Do not add close phi nodes for SSA
23605 names defined in loop.
23606
23607 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
23608 Sebastian Pop <s.pop@samsung.com>
23609
23610 * graphite-scop-detection.c (scop_detection::harmful_loop_in_region):
23611 Discard unstructured if-then-else regions.
23612
23613 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
23614 Sebastian Pop <s.pop@samsung.com>
23615
23616 * graphite-sese-to-poly.c (set_scop_parameter_dim): Remove.
23617 (cleanup_loop_iter_dom): Remove.
23618 (build_loop_iteration_domains): Remove.
23619 (build_scop_context): Remove.
23620 (build_scop_iteration_domain): Remove.
23621 (add_loop_constraints): New.
23622 (build_iteration_domains): New.
23623 (build_poly_scop): Call build_iteration_domains.
23624
23625 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
23626 Sebastian Pop <s.pop@samsung.com>
23627
23628 * graphite-scop-detection.c
23629 (scop_detection::harmful_loop_in_region): Free dom and loops.
23630 (scop_detection::loop_body_is_valid_scop): Free bbs.
23631
23632 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
23633 Sebastian Pop <s.pop@samsung.com>
23634
23635 * graphite-scop-detection.c (record_loop_in_sese): New.
23636 (gather_bbs::before_dom_children): Call record_loop_in_sese.
23637 (build_scops): Remove call to build_sese_loop_nests.
23638 * sese.c (sese_record_loop): Remove.
23639 (build_sese_loop_nests): Remove.
23640 (new_sese_info): Remove region->loops.
23641 (free_sese_info): Same.
23642 * sese.h (sese_contains_loop): Same.
23643 (build_sese_loop_nests): Remove.
23644 (sese_contains_loop): Remove.
23645
23646 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
23647 Sebastian Pop <s.pop@samsung.com>
23648
23649 * graphite-scop-detection.c (loop_is_valid_scop): Renamed
23650 loop_is_valid_in_scop.
23651 (scop_detection::harmful_stmt_in_region): Renamed
23652 harmful_loop_in_region.
23653 Call loop_is_valid_in_scop.
23654
23655 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
23656 Sebastian Pop <s.pop@samsung.com>
23657
23658 * graphite-isl-ast-to-gimple.c (translate_isl_ast): Also handle
23659 isl_ast_node_mark.
23660
23661 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
23662 Sebastian Pop <s.pop@samsung.com>
23663
23664 * graphite-poly.c (new_poly_bb): Remove use of PBB_IS_REDUCTION.
23665 * graphite.h (struct poly_bb): Remove field is_reduction.
23666 (PBB_IS_REDUCTION): Remove.
23667
23668 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
23669 Sebastian Pop <s.pop@samsung.com>
23670
23671 * graphite-dependences.c (constrain_domain): Add call to isl_*_coalesce.
23672 (add_pdr_constraints): Same.
23673 (scop_get_reads): Same.
23674 (scop_get_must_writes): Same.
23675 (scop_get_may_writes): Same.
23676 (scop_get_original_schedule): Same.
23677 (extend_schedule): Same.
23678 (apply_schedule_on_deps): Same.
23679 (carries_deps): Same.
23680 (compute_deps): Same.
23681 (scop_get_dependences): Same.
23682 * graphite-isl-ast-to-gimple.c
23683 (translate_isl_ast_to_gimple::generate_isl_schedule): Same.
23684 * graphite-optimize-isl.c (get_schedule_for_band): Same.
23685 (get_schedule_for_band_list): Same.
23686 (get_schedule_map): Same.
23687 (apply_schedule_map_to_scop): Same.
23688 * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
23689 (build_loop_iteration_domains): Same.
23690 (add_condition_to_pbb): Same.
23691 (add_param_constraints): Same.
23692 (pdr_add_memory_accesses): Same.
23693 (pdr_add_data_dimensions): Same.
23694
23695 2016-01-20 Sandra Loosemore <sandra@codesourcery.com>
23696
23697 * doc/invoke.texi (Instrumentation Options): Clarify -mmpx linking
23698 requirements.
23699
23700 2016-01-20 Sandra Loosemore <sandra@codesourcery.com>
23701
23702 * common.opt (feliminate-dwarf2-dups): Replace references to
23703 "DWARF 2" with just "DWARF".
23704 * config/ia64/ia64.opt (mdwarf2-asm): Likewise.
23705 * doc/extend.texi: Likewise.
23706 * doc/cpp.texi: Likewise.
23707 * doc/invoke.texi: Likewise.
23708 (Option Summary): Add -gdwarf to list of Debugging Options.
23709 (Debugging Options): Document -gdwarf.
23710 * doc/contrib.texi: Spell "DWARF" like that.
23711
23712 2016-01-21 Jakub Jelinek <jakub@redhat.com>
23713
23714 * omp-low.c (expand_omp_target): Avoid -Wmaybe-uninitialized
23715 warning. Fix up formatting.
23716
23717 PR middle-end/67653
23718 * gimplify.c (gimplify_asm_expr): Warn if it is too late to
23719 attempt to mark memory input operand addressable and
23720 call prepare_gimple_addressable in that case. Don't adjust
23721 input_location for diagnostics, use error_at instead.
23722
23723 2016-01-20 Peter Bergner <bergner@vnet.ibm.com>
23724
23725 * config/rs6000/ppc-auxv.h: New file.
23726 * config/rs6000/rs6000-builtin.def (cpu_init): Add new builtin.
23727 (cpu_is): Likewise.
23728 (cpu_supports): Likewise.
23729 * config/rs6000/rs6000.c: include "ppc-auxv.h".
23730 (cpu_is_info): New variable.
23731 (cpu_supports_info): Likewise.
23732 (tcb_verification_symbol): Likewise.
23733 (cpu_builtin_p): Likewise.
23734 (cpu_expand_builtin): New function.
23735 (rs6000_expand_ternop_builtin): Add support for CPU builtin functions.
23736 (rs6000_init_builtins): Likewise.
23737 (rs6000_elf_file_end): Emit HWCAP in TCB verification symbol.
23738 * config/rs6000/rs6000.h (TLS_REGNUM): New define.
23739 * configure.ac (gcc_cv_libc_provides_hwcap_in_tcb): New test.
23740 * configure: Regenerate.
23741 * config.in: Likewise.
23742 * doc/extend.texi (PowerPC Built-in Functions): Document
23743 __builtin_cpu_init, __builtin_cpu_is and __builtin_cpu_supports.
23744
23745 2016-01-20 David Edelsohn <dje.gcc@gmail.com>
23746
23747 PR target/68609
23748 * config/rs6000/rs6000.c (rs6000_emit_swsqrt): Add vector sqrt
23749 domain check.
23750 * config/rs6000/vector.md (sqrt<mode>2): Call rs6000_emit_swsqrt
23751 for V4SFmode.
23752
23753 2016-01-20 Richard Henderson <rth@redhat.com>
23754
23755 PR bootstrap/69343
23756 PR bootstrap/69339
23757 PR tree-opt/68964
23758 Revert:
23759 * tree.c (tm_define_builtin): New.
23760 (find_tm_vector_type): New.
23761 (build_tm_vector_builtins): New.
23762 (build_common_builtin_nodes): Call it.
23763
23764 2016-01-20 Christophe Lyon <christophe.lyon@linaro.org>
23765
23766 * doc/sourcebuild.texi (arm_crypto_pragma_ok): Document new entry.
23767 (arm_fp_ok): Likewise.
23768 (arm_fp): Likewise.
23769 (arm_crypto): Likewise.
23770
23771 2016-01-20 Ilya Enkovich <enkovich.gnu@gmail.com>
23772 Richard Biener <rguenther@suse.de>
23773
23774 PR tree-optimization/69328
23775 * tree-vect-stmts.c (vect_is_simple_cond): Check compared
23776 vectors have same number of elements.
23777 (vectorizable_condition): Fix masked version recognition.
23778
23779 2016-01-20 Richard Biener <rguenther@suse.de>
23780
23781 PR tree-optimization/69345
23782 * tree-ssa-sccvn.h (VN_INFO_RANGE_INFO): New inline function.
23783 (VN_INFO_PTR_INFO): Likewise.
23784 * tree-ssa-sccvn.c (set_ssa_val_to): Avoid clearing points-to
23785 info when it is equal between non-dominating SSA names.
23786 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
23787 Make sure to look at original SSA infos.
23788
23789 2016-01-20 Jeff Law <law@redhat.com>
23790
23791 PR target/25114
23792 * config/m68k/predicates.md (pow2_m1_operand): New predicate
23793 extracted from ...
23794 (reg_or_pow2_m1_operand): Call pow2_m1_operand.
23795 (pc_or_label_operand): New predicate.
23796 * config/m68k/m68k.md: Add new peephole2 patterns for GTU/LEU
23797 tests for small integers that are 2^n - 1.
23798
23799 2016-01-20 Jonathan Wakely <jwakely@redhat.com>
23800
23801 * doc/invoke.texi (Options Summary): Add '.' after @xref.
23802
23803 2016-01-19 Jeff Law <law@redhat.com>
23804
23805 PR middle-end/69347
23806 * tree-ssa-threadbackwards.c
23807 (fsm_find_control_statement_thread_paths): Do not try to lookup
23808 FSM paths for SSA_NAMEs appearing in abnormal PHIs.
23809
23810 2016-01-20 Kugan Vivekanandarajah <kuganv@linaro.org>
23811
23812 * doc/lto.texi: Remove text that says only Gold has linker plugin
23813 support.
23814
23815 2016-01-19 Eric Botcazou <ebotcazou@adacore.com>
23816
23817 * dwarf2out.c (need_endianity_attribute_p): New inline predicate.
23818 (base_type_die): Add REVERSE parameter and attach DW_AT_endianity to
23819 the DIE accordingly.
23820 (modified_type_die): Add REVERSE parameter and pass it recursively,
23821 as well as to base_type_die. Adjust presence check accordingly.
23822 (base_type_for_mode): Adjust call to modified_type_die.
23823 (add_type_attribute): Add REVERSE parameter and pass it to
23824 modified_type_die.
23825 (generic_parameter_die): Adjust call to add_type_attribute.
23826 (add_scalar_info): Likewise.
23827 (add_subscript_info): Likewise.
23828 (gen_array_type_die): Likewise.
23829 (gen_descr_array_type_die): Likewise.
23830 (gen_entry_point_die): Likewise.
23831 (gen_enumeration_type_die): Likewise.
23832 (gen_formal_parameter_die): Likewise.
23833 (gen_subprogram_die): Likewise.
23834 (gen_variable_die ): Likewise.
23835 (gen_const_die): Likewise.
23836 (gen_field_die): Likewise.
23837 (gen_pointer_type_die): Likewise.
23838 (gen_reference_type_die): Likewise.
23839 (gen_ptr_to_mbr_type_die): Likewise.
23840 (gen_inheritance_die): Likewise.
23841 (gen_subroutine_type_die): Likewise.
23842 (gen_typedef_die): Likewise.
23843 (force_type_die): Adjust call to modified_type_die.
23844
23845 2016-01-19 Sandra Loosemore <sandra@codesourcery.com>
23846
23847 * doc/standards.texi: Copy-editing for grammar, markup, and sentence
23848 flow throughout the file. Fix broken link to Objective-C 2.0
23849 documentation.
23850 * doc/invoke.texi: More copy-editing; fix numerous typos and spelling
23851 errors.
23852
23853 2016-01-19 Wilco Dijkstra <wdijkstr@arm.com>
23854
23855 * ccmp.c (expand_ccmp_expr_1): Avoid spurious unused warnings.
23856
23857 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
23858
23859 PR ipa/66223
23860 * ipa-devirt.c (is_cxa_pure_virtual_p): New function.
23861 (maybe_record_node): Record cxa_pure_virtual as the only possible
23862 target if there are not ohter candidates.
23863 (possible_polymorphic_call_target_p): Accept cxa_pure_virtual.
23864
23865 2016-01-19 Richard Biener <rguenther@suse.de>
23866
23867 * hsa-gen.c (get_memory_order_name): Use MEMMODEL_ constants.
23868 (get_memory_order): Likewise.
23869
23870 2016-01-19 Kirill Yukhin <kirill.yukhin@intel.com>
23871
23872 * tree-vect-stmts.c (vectorizable_store): Check
23873 rhs vectype.
23874
23875 2016-01-19 David Malcolm <dmalcolm@redhat.com>
23876
23877 PR jit/68446
23878 * gcc.c (driver::decode_argv): Add call to
23879 init_opts_obstack before init_options_struct.
23880 * opts.c (init_opts_obstack): Remove idempotency.
23881 (init_options_struct): Replace call to init_opts_obstack
23882 with a gcc_assert to verify that it has already been called.
23883 * toplev.c (toplev::main): Add call to init_opts_obstack before
23884 calls to init_options_struct.
23885 (toplev::finalize): Move cleanup of opts_obstack next to
23886 cleanup of save_decoded_options, clearing the latter, and
23887 save_decoded_options_count.
23888
23889 2016-01-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
23890
23891 PR target/69135
23892 * config/arm/vfp.md (l<vrint_pattern><su_optab><mode>si2): Set "conds"
23893 attribute to unconditional. Remove %? from output template.
23894
23895 2015-01-19 Wilco Dijkstra <wdijkstr@arm.com>
23896 Jiong Wang <jiong.wang@arm.com>
23897
23898 * ccmp.c (expand_ccmp_expr_1): Cost the instruction sequences
23899 generated from different expand order.
23900
23901 2015-01-19 Wilco Dijkstra <wdijkstr@arm.com>
23902
23903 * /config/aarch64/aarch64.c (aarch64_if_then_else_costs):
23904 Add support for CCMP costing.
23905
23906 2015-01-19 Wilco Dijkstra <wdijkstr@arm.com>
23907
23908 * ccmp.c (ccmp_candidate_p): Remove integer-only restriction.
23909 * config/aarch64/aarch64.md (fccmp<mode>): New pattern.
23910 (fccmpe<mode>): Likewise.
23911 (fcmp): Rename to fcmp and globalize pattern.
23912 (fcmpe): Likewise.
23913 * config/aarch64/aarch64.c (aarch64_gen_ccmp_first): Add FP support.
23914 (aarch64_gen_ccmp_next): Add FP support.
23915
23916 2015-01-19 Wilco Dijkstra <wdijkstr@arm.com>
23917
23918 * target.def (gen_ccmp_first): Update documentation.
23919 (gen_ccmp_next): Likewise.
23920 * doc/tm.texi (gen_ccmp_first): Update documentation.
23921 (gen_ccmp_next): Likewise.
23922 * ccmp.c (expand_ccmp_expr): Extract cmp_code from return value of
23923 expand_ccmp_expr_1. Improve comments.
23924 * config/aarch64/aarch64.md (ccmp_and): Use if_then_else for ccmp.
23925 (ccmp_ior<mode>): Remove pattern.
23926 (cmp<mode>): Remove expand.
23927 (cmp): Globalize pattern.
23928 (cstorecc4): Use cc_register.
23929 (mov<mode>cc): Remove ccmp_cc_register check.
23930 * config/aarch64/aarch64.c (aarch64_get_condition_code_1):
23931 Simplify after removal of CC_DNE/* modes.
23932 (aarch64_ccmp_mode_to_code): Remove.
23933 (aarch64_print_operand): Remove 'K' case. Merge 'm' and 'M' cases.
23934 In 'k' case use integer as condition.
23935 (aarch64_nzcv_codes): Remove inverted cases.
23936 (aarch64_code_to_ccmode): Remove.
23937 (aarch64_gen_ccmp_first): Use cmp pattern directly. Return the correct
23938 comparison with CC register to be used in folowing CCMP/branch/CSEL.
23939 (aarch64_gen_ccmp_next): Use previous comparison and mode in CCMP
23940 pattern. Return the comparison with CC register. Invert conditions
23941 when bitcode is OR.
23942 * config/aarch64/aarch64-modes.def: Remove CC_DNE/* modes.
23943 * config/aarch64/predicates.md (ccmp_cc_register): Remove.
23944
23945 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
23946
23947 * cgraphunit.c (cgraph_node::reset): Clear thunk info and
23948 instrumented_version.
23949
23950 2016-01-19 Richard Biener <rguenther@suse.de>
23951
23952 PR tree-optimization/69336
23953 * tree-ssa-scopedtables.c (avail_expr_hash): Handle all
23954 handled components with get_ref_base_and_extent.
23955 (equal_mem_array_ref_p): Adjust.
23956
23957 2016-01-19 Jakub Jelinek <jakub@redhat.com>
23958
23959 PR debug/65779
23960 * shrink-wrap.c: Include valtrack.h.
23961 (move_insn_for_shrink_wrap): Add DEBUG argument. If
23962 MAY_HAVE_DEBUG_INSNS, call dead_debug_add on DEBUG_INSNs
23963 in between insn and where it will be moved to. Call
23964 dead_debug_insert_temp.
23965 (prepare_shrink_wrap): Adjust caller. Call dead_debug_local_init
23966 first and dead_debug_local_finish at the end.
23967 For uses and defs bitmap, handle all regs in between REGNO and
23968 END_REGNO, not just the first one.
23969
23970 2016-01-19 Richard Biener <rguenther@suse.de>
23971
23972 PR tree-optimization/69352
23973 * tree-ssa-scopedtables.c (avail_expr_hash): Check for size == -1.
23974 (equal_mem_array_ref_p): Constrain size and max size properly.
23975 Compare the reverse flag.
23976
23977 2016-01-19 Bernd Schmidt <bschmidt@redhat.com>
23978
23979 * ira.c (ira): Update regstat data if we deleted insns.
23980
23981 2016-01-19 Jakub Jelinek <jakub@redhat.com>
23982
23983 PR rtl-optimization/68955
23984 PR rtl-optimization/64557
23985 * dse.c (record_store, check_mem_read_rtx): Don't call get_addr
23986 here. Fix up formatting.
23987 * alias.c (get_addr): Handle VALUE +/- CONST_SCALAR_INT_P.
23988
23989 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
23990
23991 PR lto/69133
23992 * cgraphunit.c (cgraph_node::expand_thunk): When forcing gimple
23993 assume that the node has body.
23994 * cgraph.c (cgraph_node::get_untransformed_body): Use gimple_body_p
23995 check.
23996
23997 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
23998
23999 * lto-streamer-out.c (lto_output): Do not stream instrumentation
24000 thunks.
24001
24002 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
24003
24004 * symtab.c (symtab_node::asm_name): Do not call printable name directly.
24005 (symtab_node::name): Report name as unnamed if DECL_NAME is not set.
24006
24007 2016-01-19 Martin Jambor <mjambor@suse.cz>
24008 Martin Liska <mliska@suse.cz>
24009 Michael Matz <matz@suse.de>
24010
24011 * Makefile.in (OBJS): Add new source files.
24012 (GTFILES): Add hsa.c.
24013 * common.opt (disable_hsa): New variable.
24014 (-Whsa): New warning.
24015 * config.in (ENABLE_HSA): New.
24016 * configure.ac: Treat hsa differently from other accelerators.
24017 (OFFLOAD_TARGETS): Define ENABLE_OFFLOADING according to
24018 $enable_offloading.
24019 (ENABLE_HSA): Define ENABLE_HSA according to $enable_hsa.
24020 * doc/install.texi (Configuration): Document --with-hsa-runtime,
24021 --with-hsa-runtime-include, --with-hsa-runtime-lib and
24022 --with-hsa-kmt-lib.
24023 * doc/invoke.texi (-Whsa): Document.
24024 (hsa-gen-debug-stores): Likewise.
24025 * lto-wrapper.c (compile_images_for_offload_targets): Do not attempt
24026 to invoke offload compiler for hsa acclerator.
24027 * opts.c (common_handle_option): Determine whether HSA offloading
24028 should be performed.
24029 * params.def (PARAM_HSA_GEN_DEBUG_STORES): New parameter.
24030 * builtin-types.def (BT_FN_VOID_UINT_PTR_INT_PTR): New.
24031 (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_INT_INT): Removed.
24032 (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_PTR): New.
24033 * gimple-low.c (lower_stmt): Also handle GIMPLE_OMP_GRID_BODY.
24034 * gimple-pretty-print.c (dump_gimple_omp_for): Also handle
24035 GF_OMP_FOR_KIND_GRID_LOOP.
24036 (dump_gimple_omp_block): Also handle GIMPLE_OMP_GRID_BODY.
24037 (pp_gimple_stmt_1): Likewise.
24038 * gimple-walk.c (walk_gimple_stmt): Likewise.
24039 * gimple.c (gimple_build_omp_grid_body): New function.
24040 (gimple_copy): Also handle GIMPLE_OMP_GRID_BODY.
24041 * gimple.def (GIMPLE_OMP_GRID_BODY): New.
24042 * gimple.h (enum gf_mask): Added GF_OMP_PARALLEL_GRID_PHONY,
24043 GF_OMP_FOR_KIND_GRID_LOOP, GF_OMP_FOR_GRID_PHONY and
24044 GF_OMP_TEAMS_GRID_PHONY.
24045 (gimple_statement_omp_single_layout): Updated comments.
24046 (gimple_build_omp_grid_body): New function.
24047 (gimple_has_substatements): Also handle GIMPLE_OMP_GRID_BODY.
24048 (gimple_omp_for_grid_phony): New function.
24049 (gimple_omp_for_set_grid_phony): Likewise.
24050 (gimple_omp_parallel_grid_phony): Likewise.
24051 (gimple_omp_parallel_set_grid_phony): Likewise.
24052 (gimple_omp_teams_grid_phony): Likewise.
24053 (gimple_omp_teams_set_grid_phony): Likewise.
24054 (gimple_return_set_retbnd): Also handle GIMPLE_OMP_GRID_BODY.
24055 * omp-builtins.def (BUILT_IN_GOMP_OFFLOAD_REGISTER): New.
24056 (BUILT_IN_GOMP_OFFLOAD_UNREGISTER): Likewise.
24057 (BUILT_IN_GOMP_TARGET): Updated type.
24058 * omp-low.c: Include symbol-summary.h, hsa.h and params.h.
24059 (adjust_for_condition): New function.
24060 (get_omp_for_step_from_incr): Likewise.
24061 (extract_omp_for_data): Moved parts to adjust_for_condition and
24062 get_omp_for_step_from_incr.
24063 (build_outer_var_ref): Handle GIMPLE_OMP_GRID_BODY.
24064 (fixup_child_record_type): Bail out if receiver_decl is NULL.
24065 (scan_sharing_clauses): Handle OMP_CLAUSE__GRIDDIM_.
24066 (scan_omp_parallel): Do not create child functions for phony
24067 constructs.
24068 (check_omp_nesting_restrictions): Handle GIMPLE_OMP_GRID_BODY.
24069 (scan_omp_1_op): Checking assert we are not remapping to
24070 ERROR_MARK. Also also handle GIMPLE_OMP_GRID_BODY.
24071 (parallel_needs_hsa_kernel_p): New function.
24072 (expand_parallel_call): Register apprpriate parallel child
24073 functions as HSA kernels.
24074 (grid_launch_attributes_trees): New type.
24075 (grid_attr_trees): New variable.
24076 (grid_create_kernel_launch_attr_types): New function.
24077 (grid_insert_store_range_dim): Likewise.
24078 (grid_get_kernel_launch_attributes): Likewise.
24079 (get_target_argument_identifier_1): Likewise.
24080 (get_target_argument_identifier): Likewise.
24081 (get_target_argument_value): Likewise.
24082 (push_target_argument_according_to_value): Likewise.
24083 (get_target_arguments): Likewise.
24084 (expand_omp_target): Call get_target_arguments instead of looking
24085 up for teams and thread limit.
24086 (grid_expand_omp_for_loop): New function.
24087 (grid_arg_decl_map): New type.
24088 (grid_remap_kernel_arg_accesses): New function.
24089 (grid_expand_target_kernel_body): New function.
24090 (expand_omp): Call it.
24091 (lower_omp_for): Do not emit phony constructs.
24092 (lower_omp_taskreg): Do not emit phony constructs but create for them
24093 a temporary variable receiver_decl.
24094 (lower_omp_taskreg): Do not emit phony constructs.
24095 (lower_omp_teams): Likewise.
24096 (lower_omp_grid_body): New function.
24097 (lower_omp_1): Call it.
24098 (grid_reg_assignment_to_local_var_p): New function.
24099 (grid_seq_only_contains_local_assignments): Likewise.
24100 (grid_find_single_omp_among_assignments_1): Likewise.
24101 (grid_find_single_omp_among_assignments): Likewise.
24102 (grid_find_ungridifiable_statement): Likewise.
24103 (grid_target_follows_gridifiable_pattern): Likewise.
24104 (grid_remap_prebody_decls): Likewise.
24105 (grid_copy_leading_local_assignments): Likewise.
24106 (grid_process_kernel_body_copy): Likewise.
24107 (grid_attempt_target_gridification): Likewise.
24108 (grid_gridify_all_targets_stmt): Likewise.
24109 (grid_gridify_all_targets): Likewise.
24110 (execute_lower_omp): Call grid_gridify_all_targets.
24111 (make_gimple_omp_edges): Handle GIMPLE_OMP_GRID_BODY.
24112 * tree-core.h (omp_clause_code): Added OMP_CLAUSE__GRIDDIM_.
24113 (tree_omp_clause): Added union field dimension.
24114 * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE__GRIDDIM_.
24115 * tree.c (omp_clause_num_ops): Added number of arguments of
24116 OMP_CLAUSE__GRIDDIM_.
24117 (omp_clause_code_name): Added name of OMP_CLAUSE__GRIDDIM_.
24118 (walk_tree_1): Handle OMP_CLAUSE__GRIDDIM_.
24119 * tree.h (OMP_CLAUSE_GRIDDIM_DIMENSION): New.
24120 (OMP_CLAUSE_SET_GRIDDIM_DIMENSION): Likewise.
24121 (OMP_CLAUSE_GRIDDIM_SIZE): Likewise.
24122 (OMP_CLAUSE_GRIDDIM_GROUP): Likewise.
24123 * passes.def: Schedule pass_ipa_hsa and pass_gen_hsail.
24124 * tree-pass.h (make_pass_gen_hsail): Declare.
24125 (make_pass_ipa_hsa): Likewise.
24126 * ipa-hsa.c: New file.
24127 * lto-section-in.c (lto_section_name): Add hsa section name.
24128 * lto-streamer.h (lto_section_type): Add hsa section.
24129 * timevar.def (TV_IPA_HSA): New.
24130 * hsa-brig-format.h: New file.
24131 * hsa-brig.c: New file.
24132 * hsa-dump.c: Likewise.
24133 * hsa-gen.c: Likewise.
24134 * hsa.c: Likewise.
24135 * hsa.h: Likewise.
24136 * toplev.c (compile_file): Call hsa_output_brig.
24137 * hsa-regalloc.c: New file.
24138
24139 2016-01-18 Jeff Law <law@redhat.com>
24140
24141 PR tree-optimization/69320
24142 * tree-ssa-dom.c (record_edge_info): For comparisons against a boolean
24143 ranged object, do nothing if the RHS constant is not [0..1].
24144 (optimize_stmt): Comparing a boolean ranged object against a
24145 constant outside [0..1] results in a compile-time constant.
24146
24147 * tree-ssanames.c (ssa_name_has_boolean_range): Remove unnecessary
24148 test.
24149
24150 2016-01-18 Sandra Loosemore <sandra@codesourcery.com>
24151
24152 * doc/invoke.texi (Invoking GCC): Add new section to menu.
24153 (Option Summary): Update to reflect new section and moved options.
24154 (C++ Dialect Options): Move -fstats to new section.
24155 (Debugging Options): Move all dump, statistics, and other GCC
24156 developer options to new section. Rewrite section introduction
24157 and re-order remaining options to put the more basic ones first.
24158 (Optimization Options): Move -fira-verbose and -flto-report* to
24159 new section.
24160 (Developer Options): New section incorporating moved options.
24161 * doc/cppopts.texi (-dM): Update cross-reference.
24162
24163 2016-01-18 Richard Henderson <rth@redhat.com>
24164
24165 PR target/69176
24166 * config/aarch64/aarch64.md (add<GPI>3): Move long immediate
24167 operands to pseudo only if CSE is expected. Split long immediate
24168 operands only after reload, and for the stack pointer.
24169 (*add<GPI>3_pluslong): Remove.
24170 (*addsi3_aarch64, *adddi3_aarch64): Merge into...
24171 (*add<GPI>3_aarch64): ... here. Add r/rk/Upl alternative.
24172 (*addsi3_aarch64_uxtw): Add r/rk/Upl alternative.
24173 (*add<GPI>3 peepholes): New.
24174 (*add<GPI>3 splitters): New.
24175 * config/aarch64/constraints.md (Upl): New.
24176 * config/aarch64/predicates.md (aarch64_pluslong_strict_immedate): New.
24177
24178 2016-01-18 Richard Biener <rguenther@suse.de>
24179
24180 PR tree-optimization/69297
24181 * tree-vect-slp.c (vect_bb_slp_scalar_cost): Count each scalar
24182 stmt at most once.
24183 (vect_bb_vectorization_profitable_p): Clear visited flag again.
24184
24185 2016-01-18 Yuri Rumyantsev <ysrumyan@gmail.com>
24186
24187 PR middle-end/68542
24188 * fold-const.c (fold_binary_op_with_conditional_arg): Bail out for case
24189 of mixind vector and scalar types.
24190 (fold_relational_const): Add handling of vector
24191 comparison with boolean result.
24192 * tree-cfg.c (verify_gimple_comparison): Add argument CODE, allow
24193 comparison of vector operands with boolean result for EQ/NE only.
24194 (verify_gimple_assign_binary): Adjust call for verify_gimple_comparison.
24195 (verify_gimple_cond): Likewise.
24196 * tree-vrp.c (extract_code_and_val_from_cond_with_ops): Modify check on
24197 valid type of VAL.
24198
24199 2016-01-18 Joseph Myers <joseph@codesourcery.com>
24200
24201 * config/mips/mips.h (ISA_HAS_PAIRED_SINGLE): Require
24202 !TARGET_OCTEON.
24203
24204 2016-01-18 Richard Biener <rguenther@suse.de>
24205
24206 PR middle-end/69308
24207 * gimple.c (gimple_could_trap_p_1): Handle GIMPLE_COND.
24208
24209 2016-01-18 Tom de Vries <tom@codesourcery.com>
24210
24211 * passes.def: Add pass_parallelize_loops to pass_oacc_kernels.
24212
24213 2016-01-18 Tom de Vries <tom@codesourcery.com>
24214
24215 * omp-low.c (set_oacc_fn_attrib): Make extern.
24216 * omp-low.h (set_oacc_fn_attrib): Declare.
24217 * tree-parloops.c (struct reduction_info): Add reduc_addr field.
24218 (create_call_for_reduction_1): Handle case that reduc_addr is non-NULL.
24219 (create_parallel_loop, gen_parallel_loop, try_create_reduction_list):
24220 Add and handle function parameter oacc_kernels_p.
24221 (find_reduc_addr, get_omp_data_i_param): New function.
24222 (ref_conflicts_with_region, oacc_entry_exit_ok_1)
24223 (oacc_entry_exit_single_gang, oacc_entry_exit_ok): New function.
24224 (parallelize_loops): Add and handle function parameter oacc_kernels_p.
24225 Calculate dominance info. Skip loops that are not in a kernels region
24226 in oacc_kernels_p mode. Skip inner loops of parallelized loops.
24227 (pass_parallelize_loops::execute): Call parallelize_loops with
24228 oacc_kernels_p argument.
24229 (pass_parallelize_loops::clone, pass_parallelize_loops::set_pass_param):
24230 New member function.
24231 (pass_parallelize_loops::bool oacc_kernels_p): New member var.
24232 * passes.def: Add argument to pass_parallelize_loops instantation.
24233
24234 2016-01-18 Tom de Vries <tom@codesourcery.com>
24235
24236 * tree-parloops.c (pass_parallelize_loops::execute): Allow
24237 pass_parallelize_loops to be run outside the loop pipeline.
24238
24239 2016-01-18 Alan Lawrence <alan.lawrence@arm.com>
24240
24241 * tree-scalar-evolution.c (follow_copies_to_constant): New.
24242 (analyze_initial_condition, analyze_scalar_evolution_1): Call previous.
24243
24244 2016-01-18 Alan Lawrence <alan.lawrence@arm.com>
24245
24246 PR target/63679
24247 * tree-ssa-scopedtables.c (avail_expr_hash): Hash MEM_REF and ARRAY_REF
24248 using get_ref_base_and_extent.
24249 (equal_mem_array_ref_p): New.
24250 (hashable_expr_equal_p): Add call to previous.
24251
24252 2016-01-18 Alan Lawrence <alan.lawrence@arm.com>
24253
24254 PR target/63679
24255 * tree-sra.c (disqualified_constants, constant_decl_p): New.
24256 (sra_initialize): Allocate disqualified_constants.
24257 (sra_deinitialize): Free disqualified_constants.
24258 (disqualify_candidate): Update disqualified_constants when appropriate.
24259 (create_access): Scan for constant-pool entries as we go along.
24260 (scalarizable_type_p): Add check against type_contains_placeholder_p.
24261 (maybe_add_sra_candidate): Allow constant-pool entries.
24262 (load_assign_lhs_subreplacements): Bind debug for constant pool vars.
24263 (initialize_constant_pool_replacements): New.
24264 (sra_modify_assign): Avoid mangling assignments created by previous,
24265 and don't generate writes into constant pool.
24266 (sra_modify_function_body): Call initialize_constant_pool_replacements.
24267
24268 2016-01-18 Ilya Enkovich <enkovich.gnu@gmail.com>
24269
24270 * config/i386/i386.c (scalar_to_vector_candidate_p): Support
24271 andnot instruction.
24272 (scalar_chain::convert_op): Likewise.
24273 * config/i386/i386.md (*andndi3_doubleword): New.
24274
24275 2016-01-18 Richard Biener <rguenther@suse.de>
24276
24277 PR tree-optimization/69170
24278 * tree-vect-slp.c (vect_build_slp_tree): Verify we are not
24279 building a vector from scalar results of a pattern stmt.
24280
24281 2016-01-18 Jakub Jelinek <jakub@redhat.com>
24282
24283 * haifa-sched.c (autopref_multipass_init): Work around
24284 -Wmaybe-uninitialized warning.
24285
24286 2016-01-18 Thomas Preud'homme <thomas.preudhomme@arm.com>
24287
24288 * config/arm/arm.c (thumb1_reorg): Check that the comparison is
24289 against the constant 0.
24290
24291 2016-01-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
24292
24293 PR tree-optimization/68799
24294 * gimple-ssa-strength-reduction.c (create_phi_basis): Directly
24295 look up phi candidates in the statement-candidate map.
24296 (phi_add_costs): Likewise.
24297 (record_phi_increments): Likewise.
24298 (phi_incr_cost): Likewise.
24299 (ncd_with_phi): Likewise.
24300 (all_phi_incrs_profitable): Likewise.
24301
24302 2016-01-17 Jakub Jelinek <jakub@redhat.com>
24303
24304 * omp-low.c (mark_loops_in_oacc_kernels_region): Work around
24305 -Wmaybe-uninitialized warning.
24306
24307 2016-01-16 Sandra Loosemore <sandra@codesourcery.com>
24308
24309 * doc/invoke.texi (Invoking GCC): Add new section to menu.
24310 (Option Summary): Update to reflect new section and moved options.
24311 (C++ Dialect Options): Move -fvtable-verify and related options.
24312 (Debugging Options): Move Sanitizer, Pointer Bounds Checker,
24313 and profiling-related options.
24314 (Optimization Options): Move profile generation options and
24315 -fstack-protector and related options.
24316 (Instrumentation Options): New section incorporating moved options.
24317 (Code Generation Options): Move -finstrument-functions and
24318 related options, -fstack-check, -fstack-limit*, and -fbounds-check.
24319
24320 2016-01-16 Tom de Vries <tom@codesourcery.com>
24321
24322 * passes.def: Move pass_expand_omp_ssa out of pass_parallelize_loops.
24323
24324 2016-01-16 Tom de Vries <tom@codesourcery.com>
24325
24326 * omp-low.c (expand_omp_atomic_fetch_op): Release defs of update stmt.
24327
24328 2016-01-16 Richard Sandiford <richard.sandiford@arm.com>
24329
24330 * hash-table.h (hash_table::empty): Turn into an inline wrapper
24331 that checks whether the table is already empty. Rename the
24332 original implementation to...
24333 (hash_table::empty_slot): ...this new private function.
24334
24335 2016-01-15 David Malcolm <dmalcolm@redhat.com>
24336
24337 PR diagnostic/68899
24338 * diagnostic-show-locus.c (layout::print_source_line): Move x
24339 offset of line until after call to
24340 get_line_width_without_trailing_whitespace.
24341
24342 2016-01-15 Jeff Law <law@redhat.com>
24343
24344 PR tree-optimization/69270
24345 * tree-ssanames.c (ssa_name_has_boolean_range): Moved here from
24346 tree-ssa-dom.c. Improve test for [0..1] ranve from VRP.
24347 * tree-ssa-dom.c (ssa_name_has_boolean_range): Remove.
24348 * tree-ssanames.h (ssa_name_has_boolean_range): Prototype.
24349 * tree-ssa-uncprop.c (associate_equivalences_with_edges): Use
24350 ssa_name_has_boolean_range and constant_boolean_node.
24351
24352 2016-01-15 Vladimir Makarov <vmakarov@redhat.com>
24353
24354 PR rtl-optimization/69030
24355 * lra-spills.c (remove_pseudos): Check nrefs and make the function
24356 returning bool.
24357 (spill_pseudos): Delete debug insn for dead pseudo.
24358 (lra_spill): Initiate spill_hard_reg and slots memory separately.
24359
24360 2016-01-15 Jiong Wang <jiong.wang@arm.com>
24361
24362 * config/aarch64/aarch64-builtins.c (aarch64_types_unopus_qualifiers):
24363 New.
24364 (TYPES_UNOPUS): Likewise.
24365 * config/aarch64/aarch64-simd-builtins.def (lbtruncuv2sf): Correct
24366 builtin type, from UNOP to UNOPUS.
24367 (lbtruncuv4sf): Likewise.
24368 (lbtruncuv2df): Likewise.
24369 (lrounduv2sf): Likewise.
24370 (lrounduv4sf): Likewise.
24371 (lrounduv2df): Likewise.
24372 (lroundusf): Likewise.
24373 (lroundusf): Likewise.
24374 (lceiluv2sf): Likewise.
24375 (lceiluv4sf): Likewise.
24376 (lceiluv2df): Likewise.
24377 (lceilusf): Likewise.
24378 (lceiludf): Likewise.
24379 (lflooruv2sf): Likewise.
24380 (lflooruv4sf): Likewise.
24381 (lflooruv2df): Likewise.
24382 (lfloorusf): Likewise.
24383 (lfloorudf): Likewise.
24384 (lfrintnuv2sf): Likewise.
24385 (lfrintnuv4sf): Likewise.
24386 (lfrintnuv2df): Likewise.
24387 (lfrintnusf): Likewise.
24388 (lfrintnudf): Likewise.
24389 * config/aarch64/arm_neon.h (vcvt_u32_f32): Remove unncessary type
24390 conversion.
24391 (vcvtq_u32_f32): Likewise.
24392 (vcvtq_u64_f64): Likewise.
24393 (vcvta_u32_f32): Likewise.
24394 (vcvtaq_u32_f32): Likewise.
24395 (vcvtaq_u64_f64): Likewise.
24396 (vcvtm_u32_f32): Likewise.
24397 (vcvtmq_u32_f32): Likewise.
24398 (vcvtmq_u64_f64): Likewise.
24399 (vcvtn_u32_f32): Likwise.
24400 (vcvtnq_u32_f32): Likewise.
24401 (vcvtnq_u64_f64): Likewise.
24402 (vcvtp_u32_f32): Likewise.
24403 (vcvtpq_u32_f32): Likewise.
24404 (vcvtpq_u64_f64): Likewise.
24405 (vcvtmd_u64_f64): Likewise.
24406 (vcvtms_u32_f32): Likewise.
24407 (vcvtad_u64_f64): Likewise.
24408 (vcvtas_u32_f32): Likewise.
24409 (vcvtnd_u64_f64): Likewise.
24410 (vcvtns_u32_f32): Likewise.
24411 (vcvtpd_u64_f64): Likewise.
24412 (vcvtps_u32_f32): Likewise.
24413
24414 2016-01-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
24415
24416 * config/aarch64/aarch64.c (aarch64_if_then_else_costs): Handle
24417 CSEL of zero_extended registers.
24418
24419 2016-01-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
24420
24421 * config/aarch64/aarch64.c (aarch64_rtx_costs, COMPARE case):
24422 Handle COMPARE of ZERO_EXTRACT against zero form of TST-immediate.
24423
24424 2016-01-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
24425
24426 * config/aarch64/aarch64.c (aarch64_process_one_target_attr): Return
24427 false when argument string is not found in the attributes table
24428 at all.
24429
24430 2016-01-15 David Edelsohn <dje.gcc@gmail.com>
24431
24432 PR target/68609
24433 * config/rs6000/rs6000.c (rs6000_emit_msub): Delete.
24434 (rs6000_emit_swsqrt): Convert to Goldschmidt's Algorithm
24435 * config/rs6000/rs6000.md (sqrt<mode>2): Limit swsqrt to high
24436 precision estimate.
24437
24438 2016-01-15 Richard Biener <rguenther@suse.de>
24439
24440 PR tree-optimization/66856
24441 * tree-vect-loop.c (vect_transform_loop): Free SLP instances here.
24442 * tree-vect-slp.c (vect_free_slp_tree): Decrement stmt reference count.
24443 (vect_create_new_slp_node): Increment stmt reference count.
24444 (vect_get_and_check_slp_defs): Make sure stmts are nor already in
24445 an SLP tree before swapping operands.
24446 (vect_build_slp_tree): Likewise.
24447 (destroy_bb_vec_info): Free stmt info after SLP instances.
24448 * tree-vect-stmts.c (new_stmt_vec_info): Initialize reference count.
24449 * tree-vectorizer.h (struct _stmt_vec_info): Add num_slp_uses field.
24450 (STMT_VINFO_NUM_SLP_USES): New macro.
24451
24452 2016-01-15 Richard Biener <rguenther@suse.de>
24453
24454 PR debug/69137
24455 * dwarf2out.c (add_linkage_name_raw): New function split out from ...
24456 (add_linkage_name): ... here.
24457 (gen_typedef_die): Use add_linkage_name_raw instead of
24458 add_linkage_attr to delay DECL_ASSEMBLER_NAME computation
24459 if necessary.
24460
24461 2016-01-15 Cesar Philippidis <cesar@codesourcery.com>
24462
24463 * gimplify.c (oacc_default_clause): Decode reference and pointer
24464 types for both kernels and parallel regions.
24465
24466 2016-01-15 Richard Sandiford <richard.sandiford@arm.com>
24467
24468 PR middle-end/69246
24469 * calls.c (emit_call_1): Force n_popped to zero for sibcalls.
24470
24471 2016-01-15 Ilya Enkovich <enkovich.gnu@gmail.com>
24472
24473 * config/i386/i386.c (scalar_chain::compute_convert_gain): Fix typo.
24474 (convert_scalars_to_vector): Likewise.
24475
24476 2016-01-15 Jonathan Wakely <jwakely@redhat.com>
24477
24478 * doc/extend.texi (Type Traits): Fix grammar.
24479
24480 2016-01-15 Martin Jambor <mjambor@suse.cz>
24481
24482 * tree-inline.c (remap_decl): Use existing dclarations if
24483 remapping a type and prevent_decl_creation_for_types.
24484 (replace_locals_stmt): Do an initial remapping of non-VLA typed
24485 decls first. Do real remapping with
24486 prevent_decl_creation_for_types set.
24487 * tree-inline.h (copy_body_data): New field
24488 prevent_decl_creation_for_types, moved remap_var_for_cilk to avoid
24489 padding.
24490
24491 2016-01-15 Dominik Vogt <vogt@linux.vnet.ibm.com>
24492
24493 * config/s390/s390.opt (mmvcle): More verbose help text.
24494
24495 2016-01-15 Dominik Vogt <vogt@linux.vnet.ibm.com>
24496
24497 * config/s390/s390.opt: Add period to -mzvector option text.
24498
24499 2016-01-15 Richard Biener <rguenther@suse.de>
24500
24501 PR tree-optimization/68961
24502 * tree-vect-slp.c (vect_analyze_slp_cost_1): Consider cost
24503 of invariants in stores again.
24504
24505 2016-01-15 Sebastian Huber <sebastian.huber@embedded-brains.de>
24506
24507 * config/arm/t-rtems: Add cortex-m7/fpv5-d16 multilib.
24508
24509 2016-01-15 Ilya Enkovich <enkovich.gnu@gmail.com>
24510
24511 * config/i386/i386.c (ix86_expand_branch): Don't split
24512 DI mode xor instruction to SI mode.
24513
24514 2016-01-15 Jan Hubicka <hubicka@ucw.cz>
24515
24516 PR ipa/68148
24517 * ipa-icf.c (sem_function::merge): Virtual functions may become
24518 reachable even if they address is not taken and there are no
24519 idrect calls.
24520
24521 2016-01-15 Jan Hubicka <hubicka@ucw.cz>
24522
24523 * lto-streamer-out.c (subtract_estimated_size): New function.
24524 (get_symbol_initial_value): Use it.
24525
24526 2016-01-15 Christian Bruel <christian.bruel@st.com>
24527
24528 PR target/65837
24529 * config/arm/arm-builtins.c (ARM_BUILTIN_CRYPTO_BASE): New enum tag.
24530 (arm_init_neon_builtins_internal): Rename arm_init_neon_builtins,
24531 (arm_init_crypto_builtins_internal): Rename arm_init_crypto_builtins.
24532 use add_builtin_function_ext_scope instead of add_builtin_function.
24533 (neon_set_p, neon_crypto_set_p): Remove.
24534 (arm_init_builtins): Always call arm_init_neon_builtins and
24535 arm_init_crypto_builtins.
24536 (arm_expand_builtin): Check that builtins are allowed for the arch.
24537 * config/arm/arm-protos.h (arm_init_neon_builtins): Remove prototype.
24538 * config/arm/arm.c (arm_valid_target_attribute_tree): Remove
24539 arm_init_neon_builtins call.
24540
24541 2016-01-15 Richard Biener <rguenther@suse.de>
24542
24543 PR tree-optimization/69117
24544 * tree-ssa-sccvn.h (struct vn_ssa_aux): Add info member.
24545 * tree-ssa-sccvn.c (set_ssa_val_to): Save and adjust SSA name info
24546 of the leader conservatively.
24547 (free_scc_vn): Restore original SSA name infos.
24548
24549 2016-01-14 Jeff Law <law@redhat.com>
24550
24551 PR tree-optimization/69270
24552 * tree-ssa-dom.c (ssa_name_has_boolean_range): If the type has a
24553 single bit of precision, verify it's also unsigned.
24554 (record_edge_info): Use constant_boolean_node rather than fold_convert
24555 to convert boolean_true/boolean_false to the right type.
24556
24557 2016-01-14 Richard Henderson <rth@redhat.com>
24558
24559 PR rtl-opt/69014
24560 * loop-doloop.c (record_reg_sets): New.
24561 (doloop_optimize): Reject the transform if the sequence
24562 clobbers registers live at the end of the loop block.
24563 (doloop_optimize_loops): Enable df_live if needed.
24564
24565 2016-01-14 Michael Meissner <meissner@linux.vnet.ibm.com>
24566
24567 * config/rs6000/rs6000-builtin.def: Revert 2016-01-13 change.
24568 * config/rs6000/rs6000.c: Likewise.
24569 * config/rs6000/rs6000.h: Likewise.
24570 * config/rs6000/rs6000.md: Likewise.
24571 * doc/extend.texi: Likewsie.
24572
24573 2016-01-14 Jeff Law <law@redhat.com>
24574
24575 * tree-ssa-dom.c (ssa_name_has_boolean_range): Fix comment
24576 typo.
24577
24578 2016-01-14 Richard Henderson <rth@redhat.com>
24579
24580 PR c/69272
24581 PR tree-opt/68964
24582 * trans-mem.c (tm_log_emit_stmt): Fix unit size to bit size.
24583 * tree.c (build_tm_vector_builtins): Use builtin_decl_explicit_p
24584 instead of builtin_decl_declared_p to test for declaration.
24585
24586 2016-01-14 Nicklas Bo Jensen <nbjensen@gmail.com>
24587
24588 * doc/loop.texi (Loop Analysis and Representation): Document
24589 loop_depth function.
24590
24591 2016-01-14 Tom de Vries <tom@codesourcery.com>
24592
24593 PR tree-optimization/68773
24594 * omp-low.c (expand_omp_target): Don't set force_output.
24595 * varpool.c (varpool_node::get_create): Same.
24596 * lto-cgraph.c (input_offload_tables): Mark entries in offload_vars and
24597 offload_funcs with force_output.
24598
24599 2016-01-14 Jakub Jelinek <jakub@redhat.com>
24600
24601 PR debug/69244
24602 * lra-eliminations.c (move_plus_up): Don't change anything if either
24603 the outer or inner subreg mode is not MODE_INT.
24604 * dwarf2out.c (mem_loc_descriptor): For SUBREG, if outer mode is
24605 integral <= DWARF2_ADDR_SIZE, convert to untyped afterwards.
24606
24607 2016-01-14 Alan Lawrence <alan.lawrence@arm.com>
24608
24609 * doc/md.texi (reduc_smin_@var{m}, reduc_smax_@var{m},
24610 reduc_umin_@var{m}, reduc_umax_@var{m}, reduc_splus_@var{m},
24611 reduc_uplus_@var{m}): Remove.
24612 * expr.c (expand_expr_real_2): Remove expansion path for
24613 reduc_[us](min|max|plus) optabs.
24614 * optabs-tree.c (scalar_reduc_to_vector): Remove.
24615 * optabs-tree.h (scalar_reduc_to_vector): Remove.
24616 * optabs.def (reduc_smax_optab, reduc_smin_optab, reduc_splus_optab,
24617 reduc_umax_optab, reduc_umin_optab, reduc_uplus_optab): Remove.
24618 * tree-vect-loop.c (vectorizable_reduction): Remove test for
24619 reduc_[us](min|max|plus) optabs.
24620
24621 2016-01-14 Alan Lawrence <alan.lawrence@arm.com>
24622
24623 * config/mips/mips-ps-3d.md (reduc_splus_v2sf): Remove.
24624 (reduc_plus_scal_v2sf): New.
24625 (reduc_smax_v2sf): Rename to...
24626 (reduc_smax_scal_v2sf): ...here, make result SFmode, add vec_extract.
24627 (reduc_smin_v2sf): Rename to...
24628 (reduc_smin_scal_v2sf): ...here, make result SFmode, add vec_extract.
24629
24630 2016-01-14 Jan Hubicka <hubicka@ucw.cz>
24631
24632 * alias.c (compare_base_symbol_refs): New function.
24633 (rtx_equal_for_memref_p, base_alias_check, memrefs_conflict_p): Use
24634 it.
24635
24636 2016-01-14 Jakub Jelinek <jakub@redhat.com>
24637
24638 PR middle-end/68146
24639 PR tree-optimization/69155
24640 * tree-complex.c: Include cfganal.h.
24641 (phis_to_revisit): New variable.
24642 (extract_component): Add phiarg_p argument. Assert that returned
24643 SSA_NAME has non-NULL SSA_NAME_DEF_STMT unless phiarg_p is true.
24644 (update_phi_components): Partly rewrite to use loop over real/imag
24645 components instead of code duplication. If extract_component returns
24646 SSA_NAME with NULL SSA_NAME_DEF_STMT, store SSA_NAME_VAR or
24647 create_tmp_reg into the PHI node instead, and mention the phi triplet
24648 in phis_to_revisit.
24649 (tree_lower_complex): Walk bbs in rpo order. Adjust phis recorded
24650 in phis_to_revisit at the end.
24651
24652 2016-01-14 Richard Biener <rguenther@suse.de>
24653
24654 PR tree-optimization/68060
24655 * tree-vect-loop.c (vect_is_simple_reduction): Check the
24656 outer loop reduction is only used in the inner loop before
24657 detecting a double reduction.
24658
24659 2016-01-14 Jakub Jelinek <jakub@redhat.com>
24660
24661 PR target/68269
24662 * combine.c (expand_field_assignment): Punt if compute_mode is
24663 unsupported scalar mode.
24664
24665 2016-01-14 Richard Biener <rguenther@suse.de>
24666
24667 PR tree-optimization/66856
24668 * tree-vect-slp.c (vect_build_slp_tree): Refactor to build
24669 SLP node only if it built successfully.
24670 (vect_analyze_slp_instance): Adjust.
24671
24672 2016-01-14 Jeff Law <law@redhat.com>
24673
24674 PR tree-optimization/69270
24675 * tree-ssa-dom.c (ssa_name_has_boolean_range): New function.
24676 (record_edge_info): Use it. Convert boolean_{true,false}_node
24677 to the type of op0.
24678
24679 2016-01-13 Jan Hubicka <hubicka@ucw.cz>
24680
24681 PR ipa/66487
24682 * ipa-polymorphic-call.c (inlined_polymorphic_ctor_dtor_block_p):
24683 use block_ultimate_origin
24684 (noncall-stmt_may_be_vtbl_ptr_store): Likewise.
24685
24686 2016-01-13 Sandra Loosemore <sandra@codesourcery.com>
24687
24688 * doc/invoke.texi (Submodel Options): Rename section to
24689 "Machine-Dependent Options" to better reflect its content.
24690 Rewrite introductory text to remove archaic CPU names.
24691 Update references.
24692
24693 2016-01-13 Sandra Loosemore <sandra@codesourcery.com>
24694
24695 * doc/invoke.texi (Code Gen Options): Move section up in file,
24696 before target-specific options. Update menu and option summary
24697 to reflect the new section ordering.
24698
24699 2016-01-13 Jonathan Wakely <jwakely@redhat.com>
24700
24701 * doc/invoke.texi (C Dialect Options): Adjust -std default for C++.
24702 (C++ Dialect Options): Add cross-reference to -std option.
24703 * doc/standards.texi (C++ Language): Document C++14 support.
24704
24705 2016-01-13 Michael Meissner <meissner@linux.vnet.ibm.com>
24706
24707 * config/rs6000/rs6000-builtin.def (BU_FLOAT128_2): Add support
24708 for pack/unpack functions for __ibm128.
24709 (PACK_IF): Likewise.
24710 (UNPACK_IF): Likewise.
24711
24712 * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
24713 support for __ibm128 pack/unpack functions.
24714 (rs6000_invalid_builtin): Likewise.
24715 (rs6000_init_builtins): Likewise.
24716 (rs6000_opt_masks): Likewise.
24717
24718 * config/rs6000/rs6000.h (MASK_FLOAT128): Add short name.
24719 (RS6000_BTM_FLOAT128): Add support for __ibm128 pack/unpack
24720 functions
24721 (RS6000_BTM_COMMON): Likewise.
24722
24723 * config/rs6000/rs6000.md (f128_vsx): New mode attribute.
24724 (unpack<mode>): Use FMOVE128_FPR iterator instead of FMOVE128, to
24725 disallow __builtin_{pack,unpack}_longdouble if long double is IEEE
24726 128-bit floating point. Add support for the double values to be
24727 in Altivec registers for TF/IF packing and unpacking, but restrict
24728 TD packing sub-fields to be FPR registers. Don't allow overlapped
24729 register support for packing. Allow pack inputs to be memory
24730 locations. Don't build generator functions for unpack<mode>_dm
24731 and unpack<mode>_nodm.
24732 (unpack<mode>_dm): Likewise.
24733 (unpack<mode>_nodm): Likewise.
24734 (pack<mode>): Likewise.
24735
24736 * config/rs6000/rs6000-builtin.def (__builtin_pack_ibm128): Add
24737 built-in functions to pack/unpack explicit __ibm128 values.
24738 (__builtin_unpack_ibm128): Likewise.
24739
24740 * doc/extend.texi (PowerPC Built-in Functions): Document
24741 __builtin_pack_ibm128 and __builtin_unpack_ibm128.
24742
24743 2016-01-13 Bernd Schmidt <bschmidt@redhat.com>
24744
24745 PR c/66208
24746 * c-common.c (check_function_nonnull): Remove unnecessary declaration.
24747 Add new arg loc and pass it down as context.
24748 (check_nonnull_arg): Don't mark ctx arg as unused. Use it as a pointer
24749 to the location to use for the warning.
24750 (check_function_arguments): New arg loc. All callers changed. Pass
24751 it to check_function_nonnull.
24752 * c-common.h (check_function_arguments): Adjust declaration.
24753
24754 2016-01-13 Jakub Jelinek <jakub@redhat.com>
24755
24756 PR tree-optimization/69156
24757 * gimple.c (validate_type): Removed.
24758 (gimple_builtin_call_types_compatible_p): Use
24759 useless_type_conversion_p instead of validate_type.
24760 * value-prof.c (gimple_stringop_fixed_value): Fold
24761 icall_size to correct type.
24762
24763 2016-01-13 Jonathan Wakely <jwakely@redhat.com>
24764
24765 * doc/extend.texi (__atomic Builtins): Clarify compare_exchange
24766 effects.
24767
24768 2016-01-13 Richard Henderson <rth@redhat.com>
24769
24770 PR tree-opt/68964
24771 * target.def (builtin_tm_load, builtin_tm_store): Remove.
24772 * config/i386/i386.c (ix86_builtin_tm_load): Remove.
24773 (ix86_builtin_tm_store): Remove.
24774 (TARGET_VECTORIZE_BUILTIN_TM_LOAD): Remove.
24775 (TARGET_VECTORIZE_BUILTIN_TM_STORE): Remove.
24776 * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_TM_LOAD): Remove.
24777 (TARGET_VECTORIZE_BUILTIN_TM_STORE): Remove.
24778 * doc/tm.texi: Rebuild.
24779
24780 * gtm-builtins.def (BUILT_IN_TM_MEMCPY_RNWT): New.
24781 (BUILT_IN_TM_MEMCPY_RTWN): New.
24782 * trans-mem.c (tm_log_emit_stmt): Rearrange code for better
24783 fallback from vector to integer helpers.
24784 (build_tm_load): Handle vector types directly, instead of
24785 via target hook.
24786 (build_tm_store): Likewise.
24787 (expand_assign_tm): Prepare for register types not handled by
24788 the above. Copy them to memory and use memcpy.
24789 * tree.c (tm_define_builtin): New.
24790 (find_tm_vector_type): New.
24791 (build_tm_vector_builtins): New.
24792 (build_common_builtin_nodes): Call it.
24793
24794 2016-01-13 Uros Bizjak <ubizjak@gmail.com>
24795
24796 * config/i386/i386.h (TARGET_FLT_EVAL_METHOD): Return -1 for
24797 TARGET_SSE_MATH without TARGET_SSE2. Rewrite.
24798
24799 2016-01-13 Tom de Vries <tom@codesourcery.com>
24800
24801 PR tree-optimization/69169
24802 * tree-ssa-structalias.c (create_variable_info_for_1): Add and handle
24803 handled_struct_type param.
24804 (create_variable_info_for, intra_create_variable_infos): Call
24805 create_variable_info_for_1 with extra arg.
24806
24807 2016-01-13 Yvan Roux <yvan.roux@linaro.org>
24808
24809 * config/arm/arm-arches.def: Remove spurious whitespace in "armv8.1-a"
24810 and "armv8.1-a+crc" entries.
24811
24812 2016-01-13 Alexander Fomin <alexander.fomin@intel.com>
24813
24814 PR target/69228
24815 * config/i386/sse.md (define_expand "avx512pf_gatherpf<mode>sf"):
24816 Change first operand predicate from register_or_constm1_operand
24817 to register_operand.
24818 (define_expand "avx512pf_gatherpf<mode>df"): Likewise.
24819 (define_expand "avx512pf_scatterpf<mode>sf"): Likewise.
24820 (define_expand "avx512pf_scatterpf<mode>df"): Likewise.
24821 (define_insn "*avx512pf_gatherpf<mode>sf"): Remove.
24822 (define_insn "*avx512pf_gatherpf<mode>df"): Likewise.
24823 (define_insn "*avx512pf_scatterpf<mode>sf"): Likewise.
24824 (define_insn "*avx512pf_scatterpf<mode>df"): Likewise.
24825 * config/i386/i386.c (ix86_expand_builtin): Remove first operand
24826 comparison with constm1_rtx from vec_prefetch_gen part.
24827
24828 2016-01-13 Richard Biener <rguenther@suse.de>
24829
24830 PR tree-optimization/69013
24831 * tree-ssa-uninit.c (prune_uninit_phi_opnds_in_unrealizable_paths):
24832 Exchange assert for a test.
24833
24834 2016-01-13 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
24835
24836 PR target/69247
24837 * config/s390/s390.md (bswaphi splitter): Use simplify_gen_subreg.
24838
24839 2016-01-13 Richard Biener <rguenther@suse.de>
24840
24841 PR tree-optimization/69242
24842 * tree-ssa-sccvn.c (visit_reference_op_load): Replace bogus
24843 assert with a check.
24844
24845 2016-01-13 Richard Biener <rguenther@suse.de>
24846
24847 PR tree-optimization/69186
24848 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
24849 Properly guard vect_update_misalignment_for_peel call.
24850
24851 2016-01-12 Jeff Law <law@redhat.com>
24852
24853 PR tree-optimization/pr67755
24854 * tree-ssa-threadupdate.c (struct ssa_local_info_t): Add new field
24855 "need_profile_correction".
24856 (thread_block_1): Initialize new field to false by default. If we
24857 have multiple thread paths through a common joiner to different
24858 final targets, then set new field to true.
24859 (compute_path_counts): Only do count adjustment when it's really
24860 needed.
24861
24862 2016-01-12 Sandra Loosemore <sandra@codesourcery.com>
24863
24864 * doc/invoke.texi (Spec Files): Move section down in file, past
24865 all command-line option descriptions.
24866
24867 2016-01-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
24868
24869 PR middle-end/54809
24870 * doc/gty.texi: Remove documentation of mark_hook.
24871 * gengtype.c (struct write_types_data): Remove code to support
24872 mark_hook attribute.
24873 (walk_type): Likewise.
24874 (write_func_for_structure): Likewise.
24875
24876 2016-01-12 Sandra Loosemore <sandra@codesourcery.com>
24877
24878 * doc/invoke.texi (Option Summary) Move -no-canonical-prefixes to
24879 Directory Options, and -specs= to Overall Options.
24880 (Overall Options): Adjust similarly. Reorder to group related
24881 options together. Make -specs= cross-reference the spec file details.
24882 (Directory Options): Adjust similarly.
24883
24884 2016-01-12 Jeff Law <law@redhat.com>
24885
24886 * tree-ssa-threadupdate.c: Various whitespace and typo fixes.
24887
24888 2016-01-12 Olivier Hainque <hainque@adacore.com>
24889
24890 * gcc.c (spec_undefvar_allowed): New global.
24891 (process_command): Set to true when running for --version or --help,
24892 alone or together.
24893 (getenv_spec_function): When the variable is not defined, use the
24894 variable name as the variable value if we're allowed not to issue
24895 a fatal error.
24896
24897 2016-01-12 Bin Cheng <bin.cheng@arm.com>
24898
24899 PR tree-optimization/68911
24900 * tree-vrp.c (adjust_range_with_scev): Check overflow in range
24901 information computed for expression "init + nit * step".
24902
24903 2016-01-12 Sandra Loosemore <sandra@codesourcery.com>
24904
24905 * doc/invoke.texi (Invoking GCC): Copy-edit. Incorporate information
24906 about name of GCC executable. Remove deleted node from menu.
24907 (Directory Options) <-B>: Remove cross-reference to deleted node.
24908 (Target Options): Delete section.
24909
24910 2016-01-12 Christian Bruel <christian.bruel@st.com>
24911
24912 PR target/69180
24913 * config/arm/arm-c.c (arm_pragma_target_parse): Set NODE_CONDITIONAL
24914 for __ARM_NEON_FP, __ARM_FP, _ARM_FEATURE_LDREX.
24915
24916 2016-01-12 Jakub Jelinek <jakub@redhat.com>
24917
24918 PR target/69198
24919 * config/i386/i386.c (ix86_expand_special_args_builtin): Ensure
24920 aligned_mem is properly set for AVX512-VL floating point masked
24921 stores.
24922
24923 PR target/69175
24924 * ifcvt.c (cond_exec_process_if_block): When removing the last
24925 insn from then_bb, remove also any possible barriers that follow it.
24926
24927 2016-01-12 H.J. Lu <hongjiu.lu@intel.com>
24928
24929 PR target/68456
24930 PR target/69226
24931 * config/i386/iamcu.h (SIZE_TYPE): New macro.
24932 (PTRDIFF_TYPE): Likewise.
24933 (WCHAR_TYPE): Likewise.
24934 (WCHAR_TYPE_SIZE): Likewise.
24935 (STDINT_LONG32): Likewise.
24936
24937 2016-01-12 Richard Biener <rguenther@suse.de>
24938
24939 PR tree-optimization/69053
24940 * tree-vect-loop.c (get_initial_def_for_reduction): Properly
24941 convert initial value for cond reductions.
24942
24943 2016-01-12 Richard Biener <rguenther@suse.de>
24944
24945 PR tree-optimization/69007
24946 * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Move
24947 widen_sum after dot_prod and sad.
24948
24949 2016-01-12 Richard Biener <rguenther@suse.de>
24950
24951 PR tree-optimization/69168
24952 * tree-vect-loop.c (vect_analyze_loop_2): Reset both main and
24953 pattern stmt SLP type.
24954 * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Patterns may
24955 end up unused so cope with that case.
24956
24957 2016-01-12 Richard Biener <rguenther@suse.de>
24958
24959 PR tree-optimization/69157
24960 * tree-vect-stmts.c (vectorizable_mask_load_store): Check
24961 stmts def type only during analyze phase.
24962 (vectorizable_call): Likewise.
24963 (vectorizable_simd_clone_call): Likewise.
24964 (vectorizable_conversion): Likewise.
24965 (vectorizable_assignment): Likewise.
24966 (vectorizable_shift): Likewise.
24967 (vectorizable_operation): Likewise.
24968 (vectorizable_store): Likewise.
24969 (vectorizable_load): Likewise.
24970
24971 2016-01-12 Richard Biener <rguenther@suse.de>
24972
24973 PR tree-optimization/69174
24974 * tree-vect-stmts.c (vect_mark_relevant): Remove excessive vertical
24975 space.
24976 (vectorizable_load): Properly compute the number of loads needed
24977 for permuted strided SLP loads and do not spuriously assign
24978 to SLP_TREE_VEC_STMTS.
24979
24980 2016-01-12 Andris Pavenis <andris.pavenis@iki.fi>
24981
24982 * config/i386/djgpp.h (PREFERRED_DEBUGGING_TYPE): Define to DWARF2
24983 (TARGET_ASM_OUTPUT_IDENT): Define to default_asm_output_ident_directive
24984 (MD_EXEC_PREFIX): Remove.
24985 (MD_STARTFILE_PREFIX) Removee.
24986 (FILE_NAME_ABSOLUTE_P): Remove.
24987 (CPP_SPEC): Do not read macros from sys/version.h.
24988 (LINK_COMMAND_SPEC): Remove.
24989 (LOCAL_INCLUDE_DIR): Remove.
24990 (TARGET_ASM_NAMED_SECTION): Define to i386_djgpp_asm_named_section
24991 (TARGET_OS_CPP_BUILTINS): Add DJGPP (non ISO only), __DJGPP, __DJGPP__, unix.
24992 (POST_LINK_SPEC): Define to invoke stubify after linker
24993 (LIBSTDCXX): Remove define
24994 (DBX_REGISTER_NUMBER): Define to svr4_dbx_register_map.
24995 (DEFAULT_PCC_STRUCT_RETURN): Define to 1.
24996 (SUBTARGET_OVERRIDE_OPTIONS): Remove warning about -mbnu2210.
24997 (SUBTARGET_OVERRIDE_OPTIONS): Ignore -fPIC and generate message.
24998 (SUBTARGET_OVERRIDE_OPTIONS): Default to DWARF2 debugging info.
24999 (IX86_MAYBE_NO_LIBGCC_TFMODE): Remove.
25000 (i386_djgpp_asm_named_section): Add propotype of new procedure
25001
25002 * config/i386/xm-djgpp.h (NATIVE_SYSTEM_HEADER_DIR): Define.
25003 (MD_EXEC_PREFIX): Define (moved from config/i386/djgpp.h).
25004 (STANDARD_STARTFILE_PREFIX_1): Define (moved from MD_STARTFILE_PREFIX
25005 in config/i386/djgpp.h).
25006 (STANDARD_STARTFILE_PREFIX_2): Define identical to
25007 STANDARD_STARTFILE_PREFIX_1.
25008 (LOCAL_INCLUDE_DIR): Define (moved from config/i386/djgpp.h).
25009 (GCC_DRIVER_HOST_INITIALIZATION): Fix reporting fatal
25010 installation errors.
25011 (MAX_OFILE_ALIGNMENT): Define to 128.
25012 (HAVE_FTW_H): Undefine as DJGPP do not have nftw, but have ftw.h.
25013
25014 * config/i386/djgpp.c: New file. Add implementation of
25015 i386_djgpp_asm_named_section.
25016
25017 * config/i386/djgpp.opt: Remove obsolete option -mbnu210.
25018
25019 * config/i386/t-djgpp: New file. Add djgpp.o to EXTRA_OBJS.
25020 Add rule for building djgpp.o.
25021
25022 2016-01-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
25023
25024 * config/rs6000/rs6000.c (v2df_reduction_p): New function.
25025 (rtx_is_swappable_p): Reductions are swappable.
25026 (insn_is_swappable_p): V2DF reductions are swappable.
25027
25028 2016-01-11 John David Anglin <danglin@gcc.gnu.org>
25029
25030 * config/pa/pa.c (pa_emit_move_sequence): Handle floating point
25031 reloads for other unsupported memory operands.
25032
25033 2016-01-12 Kugan Vivekanandarajah <kuganv@linaro.org>
25034 Jim Wilson <jim.wilson@linaro.org>
25035
25036 PR target/69194
25037 * config/arm/arm-builtins.c (arm_expand_neon_args): Call
25038 copy_to_mode_reg instead of force_reg.
25039
25040 2016-01-11 H.J. Lu <hongjiu.lu@intel.com>
25041
25042 PR target/69225
25043 * config/i386/i386.h (TARGET_FLT_EVAL_METHOD): Set to 2 only if
25044 TARGET_80387 is true.
25045
25046 2016-01-11 Jakub Jelinek <jakub@redhat.com>
25047
25048 PR target/69071
25049 * lra-eliminations.c (move_plus_up): Only move plus up
25050 if subreg of the constant can be simplified into constant
25051 and use the simplified subreg of the constant instead of
25052 the original constant.
25053
25054 * fold-const.c (fold_convertible_p): Don't return true
25055 for conversion of VECTOR_TYPE to same sized integral type.
25056 (fold_convert_loc): Fix up formatting. Fold conversion of
25057 VECTOR_TYPE to same sized integral type using VIEW_CONVERT_EXPR
25058 instead of NOP_EXPR.
25059
25060 PR tree-optimization/69214
25061 * tree-vrp.c (simplify_cond_using_ranges): Don't propagate
25062 innerop into a comparison if SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
25063 Formatting fix.
25064
25065 PR tree-optimization/69207
25066 * tree-vect-slp.c (vect_get_constant_vectors): For
25067 VECTOR_BOOLEAN_TYPE_P, assert op has integral type instead of
25068 fold_convertible_p to vector_type's element type, and always
25069 use VCE for non-VECTOR_BOOLEAN_TYPE_P.
25070
25071 2016-01-11 Richard Biener <rguenther@suse.de>
25072
25073 PR tree-optimization/69173
25074 * tree-vect-loop.c (vect_fixup_scalar_cycles_with_patterns): Only
25075 fixup the cycle if all stmts are in a pattern.
25076
25077 2016-01-11 Uros Bizjak <ubizjak@gmail.com>
25078
25079 PR middle-end/68999
25080 * alias.c (base_alias_check): Move check for addresses with
25081 alignment ANDs before the call for compare_base_decls.
25082 (memrefs_conflict_p): Return -1 for different decls
25083 that went through alignment adjustments.
25084
25085 2016-01-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
25086
25087 PR rtl-optimization/68796
25088 * config/aarch64/aarch64.md (*and<mode>_compare0): New pattern.
25089 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Handle HImode
25090 and QImode comparisons against zero with CC_NZmode.
25091 * config/aarch64/iterators.md (short_mask): New mode_attr.
25092
25093 2016-01-11 H.J. Lu <hongjiu.lu@intel.com>
25094
25095 * config/i386/sse.md (<avx512>_load<mode>_mask): Remove snprintf.
25096 (<avx512>_store<mode>_mask): Likewise.
25097
25098 2016-01-11 Bernd Schmidt <bschmidt@redhat.com>
25099 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
25100
25101 PR rtl-optimization/68841
25102 * ifcvt.c (struct noce_if_info): Add orig_x field.
25103 (bbs_ok_for_cmove_arith): Add to_rename parameter.
25104 Don't record conflicts on to_rename if it's present.
25105 Allow memory destinations in sets.
25106 (noce_try_cmove_arith): Call bbs_ok_for_cmove_arith even on simple
25107 blocks, passing orig_x to the checks.
25108 (noce_process_if_block): Set if_info->orig_x appropriately.
25109
25110 2016-01-11 Tom de Vries <tom@codesourcery.com>
25111
25112 PR tree-optimization/69069
25113 * tree-parloops.c (create_parallel_loop): Add missing phi args.
25114
25115 2016-01-11 Yuri Rumyantsev <ysrumyan@gmail.com>
25116
25117 PR rtl-optimization/68920
25118 * config/i386/i386.c (ix86_option_override_internal): Restrict number
25119 of conditional moves for RTL if-conversion to 1 for
25120 TARGET_ONE_IF_CONV_INSN.
25121 * config/i386/i386.h (TARGET_ONE_IF_CONV_INSN): New macros.
25122 * config/i386/x86-tune.def (X86_TUNE_ONE_IF_CONV_INSN): New macros.
25123 * params.def (PARAM_MAX_RTL_IF_CONVERSION_INSNS) : Introduce new
25124 parameter to restirct number of conditional moves for
25125 RTL if-conversion.
25126 * doc/invoke.texi (max-rtl-if-conversion-insns): Document it.
25127 * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Limit number of
25128 conditionl moves.
25129
25130 2016-01-11 Alexandre Oliva <aoliva@redhat.com>
25131
25132 PR bootstrap/69123
25133 * var-tracking.c (drop_overlapping_mem_locs): Operate on all
25134 onepart vars. Fix typo in comment. Fix reversed condition in
25135 unshare test.
25136 (dataflow_set_remove_mem_locs): Operate on all onepart vars.
25137
25138 PR bootstrap/69123
25139 * var-tracking.c (dump_onepart_variable_differences): New.
25140 (dataflow_set_different): If a detailed dump is requested,
25141 delay early returns and dump differences between onepart
25142 variables present before and after, and added variables.
25143
25144 2016-01-11 Ilya Enkovich <enkovich.gnu@gmail.com>
25145
25146 PR target/69010
25147 * expr.c (expand_expr_real_1): For boolean vector constants
25148 with a scalar mode use const_scalar_mask_from_tree.
25149 (const_scalar_mask_from_tree): New.
25150 * optabs.c (expand_vec_cond_mask_expr): Use mask mode
25151 assigned to a mask type to handle constants.
25152
25153 2016-01-11 Martin Jambor <mjambor@suse.cz>
25154
25155 PR ipa/69044
25156 * ipa-cp.c (estimate_local_effects): Do not clone for removal of
25157 useless parameters if we cannot change function signature.
25158
25159 2016-01-11 Martin Jambor <mjambor@suse.cz>
25160
25161 PR ipa/66616
25162 * cgraphclones.c (duplicate_thunk_for_node): Copy can_change_signature
25163 flag.
25164
25165 2016-01-11 Tom de Vries <tom@codesourcery.com>
25166
25167 PR tree-optimization/69109
25168 * tree-parloops.c (try_transform_to_exit_first_loop_alt): Don't allow
25169 latch with phi.
25170
25171 2016-01-11 Tom de Vries <tom@codesourcery.com>
25172
25173 PR tree-optimization/69108
25174 * tree-parloops.c (gather_scalar_reductions): Handle case that outer phi
25175 res is not used in a phi.
25176
25177 2016-01-11 Yury Gribov <y.gribov@samsung.com>
25178
25179 PR 67425
25180 * common.opt (frandom-seed): Fix parameter name.
25181 * doc/invoke.texi (frandom-seed): Ditto and describe parameter.
25182
25183 2016-01-11 Tom de Vries <tom@codesourcery.com>
25184
25185 PR tree-optimization/69058
25186 * tree-parloops.c (pass_parallelize_loops::execute): Return 0 if libgomp
25187 not supported.
25188
25189 2016-01-11 Andrew Burgess <andrew.burgess@embecosm.com>
25190
25191 * config/arc/arc.opt (mdiv-rem): Add period to the end.
25192 (mcode-density): Likewise.
25193
25194 2016-01-10 Tom de Vries <tom@codesourcery.com>
25195
25196 PR tree-optimization/69062
25197 * tree-parloops.c (loop_has_phi_with_address_arg): New function.
25198 (parallelize_loops): Don't paralelize loop that has phi with address
25199 arg.
25200
25201 2016-01-10 Tom de Vries <tom@codesourcery.com>
25202
25203 PR tree-optimization/69039
25204 * tree-parloops.c (try_create_reduction_list): Only allow single exit
25205 phi for reduction.
25206
25207 2016-01-09 John David Anglin <danglin@gcc.gnu.org>
25208
25209 PR middle-end/68743
25210 * match.pd: Require target has function_c99_misc before doing
25211 truncl(extend(x)) and trunc(extend(x)) -> extend(truncf(x)), etc.
25212
25213 2016-01-09 Gerald Pfeifer <gerald@pfeifer.com>
25214
25215 * configure.ac (isl_options_set_schedule_serialize_sccs): Also
25216 use GMPINC.
25217 * configure: Regenerate.
25218
25219 2016-01-09 Jakub Jelinek <jakub@redhat.com>
25220
25221 PR middle-end/50865
25222 PR tree-optimization/69097
25223 * fold-const.h (expr_not_equal_to): New prototype.
25224 * fold-const.c: Include stringpool.h and tree-ssanames.h.
25225 (expr_not_equal_to): New function.
25226 * match.pd (X % -Y is the same as X % Y): Don't optimize
25227 unless X is known not to be equal to minimum or Y is known
25228 not to be equal to -1.
25229 * tree-vrp.c (simplify_div_or_mod_using_ranges): Add GSI argument.
25230 fold TRUNC_MOD_EXPR if the second argument is not a power of two.
25231 (simplify_stmt_using_ranges): Adjust caller.
25232 (vrp_finalize): Call set_value_range on SSA_NAMEs before calling
25233 substitute_and_fold.
25234
25235 2016-01-09 Jan Hubicka <hubicka@ucw.cz>
25236
25237 * ipa-icf.c (sem_item_optimizer::merge_classes): Do not ICE on VAR_DECL
25238 w/o DECL_NAME.
25239
25240 2016-01-08 Jakub Jelinek <jakub@redhat.com>
25241
25242 PR tree-optimization/69167
25243 * gimple-fold.c (replace_stmt_with_simplification): Also punt if
25244 new SSA_NAME_OCCURS_IN_ABNORMAL_PHI SSA_NAMEs appear in operands of
25245 ops[0] comparison.
25246 * gimple-match-head.c (maybe_push_res_to_seq): Likewise.
25247
25248 2016-01-08 Alan Lawrence <alan.lawrence@arm.com>
25249 Richard Biener <rguenther@suse.de>
25250
25251 PR tree-optimization/68707
25252 * tree-vect-slp.c (vect_analyze_slp_instance): Cancel permuted SLP
25253 instances that can be handled via vect_load_lanes.
25254
25255 2016-01-08 Uros Bizjak <ubizjak@gmail.com>
25256
25257 * symtab.c (symtab_node::equal_address_to): Return -1 instead of 2
25258 if we can't determine address equivalence.
25259 * alias.c (compare_base_decl): Update for changed return value of
25260 symtab_node::equal_address_to.
25261
25262 2016-01-08 Jason Merrill <jason@redhat.com>
25263
25264 PR c++/68983
25265 PR c++/67557
25266 * function.c (assign_temp): Guard against TREE_ADDRESSABLE types here.
25267 * expr.c (store_field): Not here.
25268 * tree-cfgcleanup.c (fixup_noreturn_call): Don't clear LHS of a
25269 call with TREE_ADDRESSABLE type.
25270 * tree-cfg.c (verify_gimple_call): Adjust.
25271
25272 2016-01-08 Olivier Hainque <hainque@adacore.com>
25273
25274 * config/vxworks.h (VXWORKS_LIBGCC_SPEC): Don't link shared RTPs with
25275 libc_internal.
25276
25277 2016-01-08 Alan Lawrence <alan.lawrence@arm.com>
25278
25279 * gcc.target/rs6000/paired.md (reduc_smax_v2sf): Rename to...
25280 (reduc_smax_scal_v2sf): ...here, make result SFmode, extract element.
25281 (reduc_smin_v2sf): Rename to...
25282 (reduc_smin_scal_v2sf): ...here, make result SFmode, extract element.
25283 (reduc_splus_v2sf): Rename to...
25284 (reduc_plus_scal_v2sf): ...here, make result SFmode, extract element.
25285
25286 2016-01-08 Jakub Jelinek <jakub@redhat.com>
25287
25288 PR tree-optimization/69162
25289 * gimplify.c (gimplify_va_arg_expr): Encode original type of
25290 valist argument in another argument.
25291 (gimplify_modify_expr): Adjust for the above change. Cleanup.
25292 * tree-stdarg.c (expand_ifn_va_arg_1): Use new 3rd argument
25293 to determine the va_list type, build a MEM_REF instead of
25294 build_fold_indirect_ref.
25295
25296 PR tree-optimization/69172
25297 * gimple-fold.c (gimple_fold_builtin_memory_chk): Pass type to
25298 gimple_build.
25299
25300 2016-01-08 Thomas Preud'homme <thomas.preudhomme@arm.com>
25301
25302 PR tree-optimization/67781
25303 * tree-ssa-math-opts.c (find_bswap_or_nop): Zero out bytes in cmpxchg
25304 and cmpnop in two steps: first the ones not accessed in original
25305 gimple expression in a endian independent way and then the ones not
25306 accessed in the final result in an endian-specific way.
25307
25308 2016-01-08 Jakub Jelinek <jakub@redhat.com>
25309
25310 PR tree-optimization/69083
25311 * tree-vect-slp.c (vect_get_constant_vectors): For
25312 VECTOR_BOOLEAN_TYPE_P assert op is fold_convertible_p to vector_type's
25313 element type. If op is fold_convertible_p to vector_type's element
25314 type, use NOP_EXPR instead of VCE.
25315
25316 2016-01-08 Segher Boessenkool <segher@kernel.crashing.org>
25317
25318 PR rtl-optimization/67778
25319 PR rtl-optimization/68634
25320 PR rtl-optimization/68909
25321 * shrink-wrap.c (try_shrink_wrapping): Add comment. Don't pop
25322 block from the stack until done with it. Remove a superfluous
25323 bitmap set. Remove a superfluous bitmap test.
25324
25325 2016-01-07 Martin Sebor <msebor@redhat.com>
25326
25327 PR c/68966
25328 * doc/extend.texi (__atomic Builtins, __sync Builtins): Document
25329 constraint on the type of arguments.
25330
25331 2016-01-07 Andreas Tobler <andreast@gcc.gnu.org>
25332
25333 * config/arm/freebsd.h: Rename SUBTARGET_OVERRIDE_OPTIONS to
25334 SUBTARGET_OVERRIDE_INTERNAL_OPTIONS. Adjust to check
25335 unaligned_access on the gcc_options set.
25336 * config/arm/arm.c (arm_option_override_internal): Use
25337 SUBTARGET_OVERRIDE_INTERNAL_OPTIONS.
25338
25339 2016-01-07 Uros Bizjak <ubizjak@gmail.com>
25340
25341 PR target/69140
25342 * config/i386/i386.c (ix86_frame_pointer_required): Enable
25343 frame pointer for TARGET_64BIT_MS_ABI when stack is misaligned.
25344
25345 2016-01-07 Uros Bizjak <ubizjak@gmail.com>
25346
25347 Revert
25348 2016-01-06 Uros Bizjak <ubizjak@gmail.com>
25349
25350 PR target/69140
25351 * config/i386/i386.c (ix86_expand_prologue): Declare fs.sp_valid
25352 depending on frame_pointer_needed before remaining integer and SSE
25353 registers are saved.
25354
25355 2016-01-07 Sandra Loosemore <sandra@codesourcery.com>
25356
25357 PR 1078
25358 * doc/extend.texi (Nvidia PDX Function Attributes): New section.
25359
25360 2016-01-07 H.J. Lu <hongjiu.lu@intel.com>
25361
25362 PR target/69171
25363 * config/i386/sse.md (<sse>_sqrt<mode>2<mask_name><round_name>):
25364 Use the "xBm" constraint.
25365 (float<sseintvecmodelower><mode>2<mask_name><round_name):
25366 Likewise.
25367 (sse_cvtsi2ss<round_name>): Use round_nimm_scalar_predicate.
25368 (sse_cvtsi2ssq<round_name>): Likewise.
25369 (sse_cvtss2si<round_name>): Likewise.
25370 (sse_cvtss2siq<round_name>): Likewise.
25371 (sse2_cvtsi2sdq<round_name>): Likewise.
25372 (sse2_cvtsd2si<round_name>): Likewise.
25373 (sse2_cvtsd2siq<round_name>): Likewise.
25374 * config/i386/subst.md (round_nimm_scalar_predicate): New
25375 predicate.
25376
25377 2015-12-15 Bernd Schmidt <bschmidt@redhat.com>
25378
25379 PR middle-end/67639
25380 * varasm.c (make_decl_rtl): Mark invalid register vars as
25381 DECL_EXTERNAL.
25382
25383 PR rtl-optimization/66206
25384 * bt-load.c (find_btr_use): Change first arg to be a pointer to an rtx.
25385 All callers changed.
25386
25387 2016-01-07 Jakub Jelinek <jakub@redhat.com>
25388
25389 PR tree-optimization/69141
25390 * tree-ssa-pre.c: Include langhooks.h.
25391 (eliminate_dom_walker::before_dom_children): Use
25392 lang_hooks.decl_printable_name instead of
25393 cgraph_node::get ()->name ().
25394
25395 PR middle-end/68960
25396 * gimple-expr.c (copy_var_decl): If var has DECL_USER_ALIGN set, copy
25397 it and DECL_ALIGN too.
25398
25399 2016-01-06 Robert Suchanek <robert.suchanek@imgtec.com>
25400
25401 * config/mips/mips-ftypes.def: Sort to lexicographical order.
25402
25403 2016-01-06 Uros Bizjak <ubizjak@gmail.com>
25404
25405 PR target/69140
25406 * config/i386/i386.c (ix86_expand_prologue): Declare fs.sp_valid
25407 depending on frame_pointer_needed before remaining integer and SSE
25408 registers are saved.
25409
25410 2015-01-06 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
25411
25412 * config/rs6000/vsx.md (*p9_vecload_<mode>): Replace VSX_M
25413 mode iterator with VSX_M2.
25414 (*p9_vecstore_<mode>): Likewise.
25415 (*vsx_le_permute_<mode>): Restrict to !TARGET_P9_VECTOR.
25416 (*vsx_le_perm_load_<mode> for VSX_LE_128): Likewise.
25417 (*vsx_le_perm_store_<mode> for VSX_LE_128): Likewise.
25418 (define_split for VSX_LE128 stores): Likewise.
25419 (define_peephole2 for TImode LE swaps): Likewise.
25420 (define_split for VSX_LE128 post-reload stores): Likewise.
25421
25422 2016-01-06 Marek Polacek <polacek@redhat.com>
25423
25424 PR sanitizer/69099
25425 * convert.c (convert_to_integer_1): Adjust call to
25426 ubsan_instrument_float_cast. Use NULL_TREE instead of NULL.
25427 * ubsan.c (ubsan_instrument_float_cast): Drop the ARG parameter. Use
25428 EXPR instead of ARG.
25429 * ubsan.h (ubsan_instrument_float_cast): Adjust declaration.
25430
25431 2016-01-05 Sandra Loosemore <sandra@codesourcery.com>
25432
25433 PR 1078
25434 * doc/extend.texi (RL78 Variable Attributes): New section.
25435
25436 2016-01-05 Marek Polacek <polacek@redhat.com>
25437
25438 PR c/69104
25439 * builtins.c (get_memmodel): Use expansion point location rather than
25440 the input location. Call warning_at rather than warning.
25441 (expand_builtin_atomic_compare_exchange): Likewise.
25442 (expand_builtin_atomic_load): Likewise.
25443 (expand_builtin_atomic_store): Likewise.
25444 (expand_builtin_atomic_clear): Likewise.
25445
25446 2016-01-05 H.J. Lu <hongjiu.lu@intel.com>
25447
25448 PR target/68991
25449 * config/i386/i386.c (ix86_expand_vector_logical_operator):
25450 Replace nonimmediate_operand with vector_operand.
25451 * config/i386/predicates.md (vector_operand): New predicate.
25452 (general_vector_operand): Replace nonimmediate_operand with
25453 vector_operand.
25454 * config/i386/sse.md: Replace nonimmediate_operand with
25455 vector_operand and m constraint with Bm constraint on SSE
25456 patterns with 16-byte memory operand.
25457 * config/i386/subst.md (round_nimm_predicate): Replace
25458 nonimmediate_operand with vector_operand.
25459 (round_saeonly_nimm_predicate): Likewise.
25460 (round_saeonly_nimm_scalar_predicate): New.
25461
25462 2016-01-05 H.J. Lu <hongjiu.lu@intel.com>
25463
25464 PR target/68991
25465 * config/i386/constraints.md (Bm): New constraint.
25466 * config/i386/predicates.md (vector_memory_operand): New
25467 predicate.
25468 * config/i386/sse.md: Replace xm with xBm in plusminus and
25469 any_logic patterns.
25470
25471 2016-01-05 Sandra Loosemore <sandra@codesourcery.com>
25472
25473 PR 1078
25474 * doc/extend.texi (V850 Function Attributes): New section.
25475 (V850 Variable Attributes): New section.
25476
25477 2016-01-05 Sandra Loosemore <sandra@codesourcery.com>
25478
25479 PR 1078
25480 * doc/extend.texi (MicroBlaze Function Attributes): Document
25481 interrupt_handler and fast_interrupt attributes.
25482
25483 2016-01-05 Sergei Trofimovich <siarheit@google.com>
25484
25485 PR other/60465
25486 * config/ia64/ia64.c (ia64_expand_load_address): Use gprel64
25487 for local symbolic operands.
25488 * config/ia64/predicates.md (local_symbolic_operand64): New
25489 predicate.
25490
25491 2016-01-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
25492
25493 PR rtl-optimization/68651
25494 * combine.c (combine_simplify_rtx): Canonicalize x + x into
25495 x << 1.
25496
25497 2016-01-05 Nathan Sidwell <nathan@acm.org>
25498
25499 * alias.c (compare_base_decls): Use symtab_node::get.
25500
25501 2016-01-05 Nick Clifton <nickc@redhat.com>
25502
25503 PR target/68770
25504 * ira-costs.c (copy_cost): Initialise the t_icode field of the
25505 secondary_reload_info structure.
25506
25507 PR target/66655
25508 * config/i386/cygming.h (MAKE_DECL_ONE_ONLY): Define to use weak
25509 decls if weak support is available.
25510
25511 2016-01-04 Martin Sebor <msebor@redhat.com>
25512
25513 * doc/invoke.texi (Warning Options): Document -Winvalid-memory-model.
25514
25515 2016-01-04 Michael Meissner <meissner@linux.vnet.ibm.com>
25516
25517 * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Add
25518 OPTION_MASK_P9_DFORM.
25519
25520 * config/rs6000/constraints.md (wo constraint): New constraint for
25521 ISA 3.0 (power9).
25522
25523 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Add support
25524 for wo constraint.
25525 (rs6000_init_hard_regno_mode_ok): Likewise.
25526
25527 * config/rs6000/rs6000.h (r6000_reg_class_enum): Add support for
25528 wo constraint.
25529
25530 * config/rs6000/altivec.md (altivec_vperm_<mode>): Clean up vperm
25531 expanders not to have constraints. Add support for ISA 3.0 xxperm
25532 instruction. Add support for fusing xxlor with xxperm.
25533 (altivec_vperm_<mode>_internal): Likewise.
25534 (altivec_vperm_v8hiv16qi): Likewise.
25535 (altivec_vperm_<mode>v16q): Likewise.
25536 (altivec_vperm_<mode>_uns): Likewise.
25537 (vperm_v8hiv4si): Likewise.
25538 (vperm_v16qiv8hi): Likewise.
25539
25540 * doc/md.texi (RS/6000 constraints): Document wo constraint.
25541
25542 2016-01-04 Jakub Jelinek <jakub@redhat.com>
25543
25544 Update copyright years.
25545
25546 * gcc.c (process_command): Update copyright notice dates.
25547 * gcov-dump.c (print_version): Ditto.
25548 * gcov.c (print_version): Ditto.
25549 * gcov-tool.c (print_version): Ditto.
25550 * gengtype.c (create_file): Ditto.
25551 * doc/cpp.texi: Bump @copying's copyright year.
25552 * doc/cppinternals.texi: Ditto.
25553 * doc/gcc.texi: Ditto.
25554 * doc/gccint.texi: Ditto.
25555 * doc/gcov.texi: Ditto.
25556 * doc/install.texi: Ditto.
25557 * doc/invoke.texi: Ditto.
25558
25559 2016-01-04 Eric Botcazou <ebotcazou@adacore.com>
25560
25561 * config/arm/arm.c (aapcs_vfp_allocate_return_reg): Treat all integer
25562 modes larger than TImode as TImode if NEON is not enabled.
25563
25564 2016-01-04 Eric Botcazou <ebotcazou@adacore.com>
25565
25566 PR target/69100
25567 * config/sparc/sparc.h (FUNCTION_ARG_REGNO_P): Return true in 64-bit
25568 mode for %f0-%f31 only if TARGET_FPU.
25569
25570 2016-01-04 Eric Botcazou <ebotcazou@adacore.com>
25571
25572 PR target/69072
25573 * config/sparc/sparc.c (scan_record_type): Take into account subfields
25574 to compute the PACKED_P predicate.
25575 (function_arg_record_value): Minor tweaks.
25576
25577 2016-01-04 Thomas Preud'homme <thomas.preudhomme@arm.com>
25578
25579 * doc/install.texi (--with-multilib-list): Describe the meaning of the
25580 option for arm*-*-* targets.
25581
25582 2016-01-03 Sandra Loosemore <sandra@codesourcery.com>
25583
25584 * doc/extend.texi (Common Function Attributes): Move docs for
25585 MSP430-specific attributes to....
25586 (MSP430 Function Attributes): ...here. Delete the redundant
25587 entries and copy-edit the remaining text.
25588 (MSP430 Variable Attributes): Use uniform format for index
25589 entries and add a cross-reference to the corresponding function
25590 attribute docs.
25591
25592 2016-01-03 Vladimír Čunát <vcunat@gmail.com>
25593
25594 * doc/invoke.texi (RS/6000 and PowerPC Options): Fix
25595 -finite-math typo.
25596 (x86 Options): Likewise.
25597
25598 2016-01-01 Sandra Loosemore <sandra@codesourcery.com>
25599
25600 PR 1078
25601
25602 * extend.texi (Common Function Attributes) <no_stack_limit>: New.
25603 * invoke.texi (Code Gen Options) <-fno-stack-limit>: Add pointer
25604 to corresponding attribute.
25605
25606 2016-01-01 Sandra Loosemore <sandra@codesourcery.com>
25607
25608 * doc/extend.texi (Common Function Attributes) <noplt>: Move
25609 to correct alphabetization of table. Copy-edit and correct
25610 markup.
25611 <stack_protect>: Likewise.
25612 <target_clones>: Likewise.
25613 <simd>: Likewise.
25614 * doc/invoke.texi (Optimize Options) <-fstack-protector-explicit>:
25615 Correct punctuation.
25616 (Code Gen Options) <-fno-plt>: Copy-edit.
25617
25618 2016-01-01 Bernd Edlinger <bernd.edlinger@hotmail.de>
25619
25620 PR target/68917
25621 * config/tilegx/tilegx.md (clzsi2): Don't create DI subregs of
25622 SI values. Explicitly convert SI to DI and vice-versa.
25623
25624 2016-01-01 Jakub Jelinek <jakub@redhat.com>
25625
25626 PR tree-optimization/69070
25627 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Only test
25628 REAL_VALUE_ISSIGNALING_NAN on arg0 if arg0 is a REAL_CST.
25629
25630 PR sanitizer/69055
25631 * ubsan.c (ubsan_instrument_float_cast): Call
25632 initialize_sanitizer_builtins.
25633
25634 PR target/69015
25635 * ifcvt.c (find_cond_trap): Give up if returnjump_p (jump).
25636 \f
25637 Copyright (C) 2016 Free Software Foundation, Inc.
25638
25639 Copying and distribution of this file, with or without modification,
25640 are permitted in any medium without royalty provided the copyright
25641 notice and this notice are preserved.